diff --git a/favicon.ico b/favicon.ico
index 6b3998d7f..cc6cd7522 100644
Binary files a/favicon.ico and b/favicon.ico differ
diff --git a/index.html b/index.html
index 55812a0d7..f86f38d5f 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-
Webpack App
+Webpack App
\ No newline at end of file
diff --git a/main.js b/main.js
new file mode 100644
index 000000000..b0fa7b132
--- /dev/null
+++ b/main.js
@@ -0,0 +1,5249 @@
+/******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ 418:
+/***/ ((module) => {
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+
+/* eslint-disable no-unused-vars */
+var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var propIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+function toObject(val) {
+ if (val === null || val === undefined) {
+ throw new TypeError('Object.assign cannot be called with null or undefined');
+ }
+
+ return Object(val);
+}
+
+function shouldUseNative() {
+ try {
+ if (!Object.assign) {
+ return false;
+ }
+
+ // Detect buggy property enumeration order in older V8 versions.
+
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
+ test1[5] = 'de';
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
+ return false;
+ }
+
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
+ var test2 = {};
+ for (var i = 0; i < 10; i++) {
+ test2['_' + String.fromCharCode(i)] = i;
+ }
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
+ return test2[n];
+ });
+ if (order2.join('') !== '0123456789') {
+ return false;
+ }
+
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
+ var test3 = {};
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
+ test3[letter] = letter;
+ });
+ if (Object.keys(Object.assign({}, test3)).join('') !==
+ 'abcdefghijklmnopqrst') {
+ return false;
+ }
+
+ return true;
+ } catch (err) {
+ // We don't expect any of the above to throw, but better to be safe.
+ return false;
+ }
+}
+
+module.exports = shouldUseNative() ? Object.assign : function (target, source) {
+ var from;
+ var to = toObject(target);
+ var symbols;
+
+ for (var s = 1; s < arguments.length; s++) {
+ from = Object(arguments[s]);
+
+ for (var key in from) {
+ if (hasOwnProperty.call(from, key)) {
+ to[key] = from[key];
+ }
+ }
+
+ if (getOwnPropertySymbols) {
+ symbols = getOwnPropertySymbols(from);
+ for (var i = 0; i < symbols.length; i++) {
+ if (propIsEnumerable.call(from, symbols[i])) {
+ to[symbols[i]] = from[symbols[i]];
+ }
+ }
+ }
+ }
+
+ return to;
+};
+
+
+/***/ }),
+
+/***/ 448:
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+var __webpack_unused_export__;
+/** @license React v17.0.2
+ * react-dom.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+/*
+ Modernizr 3.0.0pre (Custom Build) | MIT
+*/
+var aa=__webpack_require__(294),m=__webpack_require__(418),r=__webpack_require__(840);function y(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};
+"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});
+["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});
+["checked","multiple","muted","selected"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}
+"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(oa,
+pa);D[b]=new B(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});
+D.xlinkHref=new B("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});
+function qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return"\n"+e[g].replace(" at new "," at ");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Na(a):""}
+function Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na("Lazy");case 13:return Na("Suspense");case 19:return Na("SuspenseList");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return""}}
+function Ra(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case ua:return"Fragment";case ta:return"Portal";case xa:return"Profiler";case wa:return"StrictMode";case Ba:return"Suspense";case Ca:return"SuspenseList"}if("object"===typeof a)switch(a.$$typeof){case za:return(a.displayName||"Context")+".Consumer";case ya:return(a._context.displayName||"Context")+".Provider";case Aa:var b=a.render;b=b.displayName||b.name||"";
+return a.displayName||(""!==b?"ForwardRef("+b+")":"ForwardRef");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;default:return""}}function Ta(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}
+function Ua(a){var b=Ta(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=
+null;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ta(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}
+function Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,"checked",b,!1)}
+function ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?bb(a,b.type,c):b.hasOwnProperty("defaultValue")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}
+function cb(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}
+function bb(a,b,c){if("number"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function db(a){var b="";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}
+function fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:Sa(c)}}
+function ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}var kb={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};
+function lb(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function mb(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?lb(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}
+var nb,ob=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||"innerHTML"in a)a.innerHTML=b;else{nb=nb||document.createElement("div");nb.innerHTML="";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});
+function pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}
+var qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,
+floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=["Webkit","ms","Moz","O"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(""+b).trim():b+"px"}
+function tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=sb(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});
+function vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!("object"===typeof b.dangerouslySetInnerHTML&&"__html"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(y(62));}}
+function wb(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;
+function Bb(a){if(a=Cb(a)){if("function"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}
+function $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}
+function hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;
+function ge(a,b){switch(a){case "keyup":return-1!==$d.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}function he(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case "compositionend":return he(b);case "keypress":if(32!==b.which)return null;fe=!0;return ee;case "textInput":return a=b.data,a===ee&&fe?null:a;default:return null}}
+function ke(a,b){if(ie)return"compositionend"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}
+function Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}
+var Pe=fa&&"documentMode"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;
+function Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,"selectionStart"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,"onSelect"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;
+function Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}
+function If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||"Unknown",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}
+var Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};
+function eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}
+function jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===
+n.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&
+u.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);
+d=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=
+Wg(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||"Component"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);
+function dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);
+function ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;
+function mh(a,b){var c=nh(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}
+function ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}
+function rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==c&&"$?"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}
+function sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}
+function Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return"function"===typeof b?b(a):b}
+function Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,
+eagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}
+function Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}
+function Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}
+function Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=
+e.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case "dialog":G("cancel",a);G("close",a);
+e=d;break;case "iframe":case "object":case "embed":G("load",a);e=d;break;case "video":case "audio":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&"hidden"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=
+64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&"unstable-defer-without-hiding"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}
+function Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}
+function Mi(a,b){try{var c="",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+"\n"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi="function"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}
+function Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){"function"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}var Ui="function"===typeof WeakSet?WeakSet:Set;
+function Vi(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}
+function Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,
+b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));
+return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}
+function aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,"function"===typeof d.setProperty?d.setProperty("display","none","important"):d.display="none";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null;d.style.display=sb("display",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?"":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===
+a)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}
+function bj(a,b){if(Mf&&"function"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if("function"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,
+f)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}
+function fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,""),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===
+c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}
+function gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}
+function hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}
+function cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,
+8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}
+function ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;"input"===a&&"radio"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>
+c?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.")}5!==V&&(V=2);k=Mi(k,h);p=
+g;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&("function"===typeof K.getDerivedStateFromError||null!==Q&&"function"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}
+function Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}
+function Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});"function"===typeof t.focus&&t.focus();for(t=
+0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;
+ck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==
+b?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if("object"===
+typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;"function"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);
+a=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,""));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));
+d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e {
+
+
+
+function checkDCE() {
+ /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
+ if (
+ typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
+ typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
+ ) {
+ return;
+ }
+ if (false) {}
+ try {
+ // Verify that the code above has been dead code eliminated (DCE'd).
+ __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
+ } catch (err) {
+ // DevTools shouldn't crash React, no matter what.
+ // We should still report in case we break this code.
+ console.error(err);
+ }
+}
+
+if (true) {
+ // DCE check should happen before ReactDOM bundle executes so that
+ // DevTools can report bad minification during injection.
+ checkDCE();
+ module.exports = __webpack_require__(448);
+} else {}
+
+
+/***/ }),
+
+/***/ 251:
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+var __webpack_unused_export__;
+/** @license React v17.0.2
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+__webpack_require__(418);var f=__webpack_require__(294),g=60103;__webpack_unused_export__=60107;if("function"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h("react.element");__webpack_unused_export__=h("react.fragment")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};
+function q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=""+k);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;
+
+
+/***/ }),
+
+/***/ 408:
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+/** @license React v17.0.2
+ * react.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+var l=__webpack_require__(418),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;
+if("function"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w("react.element");p=w("react.portal");exports.Fragment=w("react.fragment");exports.StrictMode=w("react.strict_mode");exports.Profiler=w("react.profiler");q=w("react.provider");r=w("react.context");t=w("react.forward_ref");exports.Suspense=w("react.suspense");u=w("react.memo");v=w("react.lazy")}var x="function"===typeof Symbol&&Symbol.iterator;
+function y(a){if(null===a||"object"!==typeof a)return null;a=x&&a[x]||a["@@iterator"];return"function"===typeof a?a:null}function z(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c {
+
+
+
+if (true) {
+ module.exports = __webpack_require__(408);
+} else {}
+
+
+/***/ }),
+
+/***/ 893:
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+
+
+if (true) {
+ module.exports = __webpack_require__(251);
+} else {}
+
+
+/***/ }),
+
+/***/ 53:
+/***/ ((__unused_webpack_module, exports) => {
+
+/** @license React v0.20.2
+ * scheduler.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+var f,g,h,k;if("object"===typeof performance&&"function"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}
+if("undefined"===typeof window||"function"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if("undefined"!==typeof console){var z=
+window.cancelAnimationFrame;"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills");"function"!==typeof z&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=
+E};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;
+function T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}
+function V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if("function"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();"function"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;
+exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};
+exports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};
+exports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};
+exports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};
+
+
+/***/ }),
+
+/***/ 840:
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+
+
+if (true) {
+ module.exports = __webpack_require__(53);
+} else {}
+
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
+(() => {
+
+// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
+var jsx_runtime = __webpack_require__(893);
+// EXTERNAL MODULE: ./node_modules/react-dom/index.js
+var react_dom = __webpack_require__(935);
+// EXTERNAL MODULE: ./node_modules/react/index.js
+var react = __webpack_require__(294);
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
+function objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+
+ return target;
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js
+function extends_extends() {
+ extends_extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return extends_extends.apply(this, arguments);
+}
+;// CONCATENATED MODULE: ./node_modules/is-in-browser/dist/module.js
+var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
+
+var isBrowser = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && document.nodeType === 9;
+
+/* harmony default export */ const dist_module = (isBrowser);
+
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
+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);
+ }
+}
+
+function createClass_createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ Object.defineProperty(Constructor, "prototype", {
+ writable: false
+ });
+ return Constructor;
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
+function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf(o, p);
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
+
+function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ _setPrototypeOf(subClass, superClass);
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+function _assertThisInitialized(self) {
+ if (self === void 0) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+
+ return self;
+}
+;// CONCATENATED MODULE: ./node_modules/jss/dist/jss.esm.js
+
+
+
+
+
+
+
+
+var plainObjectConstrurctor = {}.constructor;
+function cloneStyle(style) {
+ if (style == null || typeof style !== 'object') return style;
+ if (Array.isArray(style)) return style.map(cloneStyle);
+ if (style.constructor !== plainObjectConstrurctor) return style;
+ var newStyle = {};
+
+ for (var name in style) {
+ newStyle[name] = cloneStyle(style[name]);
+ }
+
+ return newStyle;
+}
+
+/**
+ * Create a rule instance.
+ */
+
+function createRule(name, decl, options) {
+ if (name === void 0) {
+ name = 'unnamed';
+ }
+
+ var jss = options.jss;
+ var declCopy = cloneStyle(decl);
+ var rule = jss.plugins.onCreateRule(name, declCopy, options);
+ if (rule) return rule; // It is an at-rule and it has no instance.
+
+ if (name[0] === '@') {
+ false ? 0 : void 0;
+ }
+
+ return null;
+}
+
+var join = function join(value, by) {
+ var result = '';
+
+ for (var i = 0; i < value.length; i++) {
+ // Remove !important from the value, it will be readded later.
+ if (value[i] === '!important') break;
+ if (result) result += by;
+ result += value[i];
+ }
+
+ return result;
+};
+/**
+ * Converts JSS array value to a CSS string.
+ *
+ * `margin: [['5px', '10px']]` > `margin: 5px 10px;`
+ * `border: ['1px', '2px']` > `border: 1px, 2px;`
+ * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`
+ * `color: ['red', !important]` > `color: red !important;`
+ */
+
+
+var toCssValue = function toCssValue(value, ignoreImportant) {
+ if (ignoreImportant === void 0) {
+ ignoreImportant = false;
+ }
+
+ if (!Array.isArray(value)) return value;
+ var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.
+
+ if (Array.isArray(value[0])) {
+ for (var i = 0; i < value.length; i++) {
+ if (value[i] === '!important') break;
+ if (cssValue) cssValue += ', ';
+ cssValue += join(value[i], ' ');
+ }
+ } else cssValue = join(value, ', '); // Add !important, because it was ignored.
+
+
+ if (!ignoreImportant && value[value.length - 1] === '!important') {
+ cssValue += ' !important';
+ }
+
+ return cssValue;
+};
+
+function getWhitespaceSymbols(options) {
+ if (options && options.format === false) {
+ return {
+ linebreak: '',
+ space: ''
+ };
+ }
+
+ return {
+ linebreak: '\n',
+ space: ' '
+ };
+}
+
+/**
+ * Indent a string.
+ * http://jsperf.com/array-join-vs-for
+ */
+
+function indentStr(str, indent) {
+ var result = '';
+
+ for (var index = 0; index < indent; index++) {
+ result += ' ';
+ }
+
+ return result + str;
+}
+/**
+ * Converts a Rule to CSS string.
+ */
+
+
+function toCss(selector, style, options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ var result = '';
+ if (!style) return result;
+ var _options = options,
+ _options$indent = _options.indent,
+ indent = _options$indent === void 0 ? 0 : _options$indent;
+ var fallbacks = style.fallbacks;
+
+ if (options.format === false) {
+ indent = -Infinity;
+ }
+
+ var _getWhitespaceSymbols = getWhitespaceSymbols(options),
+ linebreak = _getWhitespaceSymbols.linebreak,
+ space = _getWhitespaceSymbols.space;
+
+ if (selector) indent++; // Apply fallbacks first.
+
+ if (fallbacks) {
+ // Array syntax {fallbacks: [{prop: value}]}
+ if (Array.isArray(fallbacks)) {
+ for (var index = 0; index < fallbacks.length; index++) {
+ var fallback = fallbacks[index];
+
+ for (var prop in fallback) {
+ var value = fallback[prop];
+
+ if (value != null) {
+ if (result) result += linebreak;
+ result += indentStr(prop + ":" + space + toCssValue(value) + ";", indent);
+ }
+ }
+ }
+ } else {
+ // Object syntax {fallbacks: {prop: value}}
+ for (var _prop in fallbacks) {
+ var _value = fallbacks[_prop];
+
+ if (_value != null) {
+ if (result) result += linebreak;
+ result += indentStr(_prop + ":" + space + toCssValue(_value) + ";", indent);
+ }
+ }
+ }
+ }
+
+ for (var _prop2 in style) {
+ var _value2 = style[_prop2];
+
+ if (_value2 != null && _prop2 !== 'fallbacks') {
+ if (result) result += linebreak;
+ result += indentStr(_prop2 + ":" + space + toCssValue(_value2) + ";", indent);
+ }
+ } // Allow empty style in this case, because properties will be added dynamically.
+
+
+ if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.
+
+ if (!selector) return result;
+ indent--;
+ if (result) result = "" + linebreak + result + linebreak;
+ return indentStr("" + selector + space + "{" + result, indent) + indentStr('}', indent);
+}
+
+var escapeRegex = /([[\].#*$><+~=|^:(),"'`\s])/g;
+var nativeEscape = typeof CSS !== 'undefined' && CSS.escape;
+var jss_esm_escape = (function (str) {
+ return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\$1');
+});
+
+var BaseStyleRule =
+/*#__PURE__*/
+function () {
+ function BaseStyleRule(key, style, options) {
+ this.type = 'style';
+ this.isProcessed = false;
+ var sheet = options.sheet,
+ Renderer = options.Renderer;
+ this.key = key;
+ this.options = options;
+ this.style = style;
+ if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();
+ }
+ /**
+ * Get or set a style property.
+ */
+
+
+ var _proto = BaseStyleRule.prototype;
+
+ _proto.prop = function prop(name, value, options) {
+ // It's a getter.
+ if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.
+
+ var force = options ? options.force : false;
+ if (!force && this.style[name] === value) return this;
+ var newValue = value;
+
+ if (!options || options.process !== false) {
+ newValue = this.options.jss.plugins.onChangeValue(value, name, this);
+ }
+
+ var isEmpty = newValue == null || newValue === false;
+ var isDefined = name in this.style; // Value is empty and wasn't defined before.
+
+ if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.
+
+ var remove = isEmpty && isDefined;
+ if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.
+
+ if (this.renderable && this.renderer) {
+ if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);
+ return this;
+ }
+
+ var sheet = this.options.sheet;
+
+ if (sheet && sheet.attached) {
+ false ? 0 : void 0;
+ }
+
+ return this;
+ };
+
+ return BaseStyleRule;
+}();
+var StyleRule =
+/*#__PURE__*/
+function (_BaseStyleRule) {
+ _inheritsLoose(StyleRule, _BaseStyleRule);
+
+ function StyleRule(key, style, options) {
+ var _this;
+
+ _this = _BaseStyleRule.call(this, key, style, options) || this;
+ var selector = options.selector,
+ scoped = options.scoped,
+ sheet = options.sheet,
+ generateId = options.generateId;
+
+ if (selector) {
+ _this.selectorText = selector;
+ } else if (scoped !== false) {
+ _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);
+ _this.selectorText = "." + jss_esm_escape(_this.id);
+ }
+
+ return _this;
+ }
+ /**
+ * Set selector string.
+ * Attention: use this with caution. Most browsers didn't implement
+ * selectorText setter, so this may result in rerendering of entire Style Sheet.
+ */
+
+
+ var _proto2 = StyleRule.prototype;
+
+ /**
+ * Apply rule to an element inline.
+ */
+ _proto2.applyTo = function applyTo(renderable) {
+ var renderer = this.renderer;
+
+ if (renderer) {
+ var json = this.toJSON();
+
+ for (var prop in json) {
+ renderer.setProperty(renderable, prop, json[prop]);
+ }
+ }
+
+ return this;
+ }
+ /**
+ * Returns JSON representation of the rule.
+ * Fallbacks are not supported.
+ * Useful for inline styles.
+ */
+ ;
+
+ _proto2.toJSON = function toJSON() {
+ var json = {};
+
+ for (var prop in this.style) {
+ var value = this.style[prop];
+ if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);
+ }
+
+ return json;
+ }
+ /**
+ * Generates a CSS string.
+ */
+ ;
+
+ _proto2.toString = function toString(options) {
+ var sheet = this.options.sheet;
+ var link = sheet ? sheet.options.link : false;
+ var opts = link ? extends_extends({}, options, {
+ allowEmpty: true
+ }) : options;
+ return toCss(this.selectorText, this.style, opts);
+ };
+
+ createClass_createClass(StyleRule, [{
+ key: "selector",
+ set: function set(selector) {
+ if (selector === this.selectorText) return;
+ this.selectorText = selector;
+ var renderer = this.renderer,
+ renderable = this.renderable;
+ if (!renderable || !renderer) return;
+ var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.
+
+ if (!hasChanged) {
+ renderer.replaceRule(renderable, this);
+ }
+ }
+ /**
+ * Get selector string.
+ */
+ ,
+ get: function get() {
+ return this.selectorText;
+ }
+ }]);
+
+ return StyleRule;
+}(BaseStyleRule);
+var pluginStyleRule = {
+ onCreateRule: function onCreateRule(key, style, options) {
+ if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {
+ return null;
+ }
+
+ return new StyleRule(key, style, options);
+ }
+};
+
+var defaultToStringOptions = {
+ indent: 1,
+ children: true
+};
+var atRegExp = /@([\w-]+)/;
+/**
+ * Conditional rule for @media, @supports
+ */
+
+var ConditionalRule =
+/*#__PURE__*/
+function () {
+ function ConditionalRule(key, styles, options) {
+ this.type = 'conditional';
+ this.isProcessed = false;
+ this.key = key;
+ var atMatch = key.match(atRegExp);
+ this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.
+
+ this.query = options.name || "@" + this.at;
+ this.options = options;
+ this.rules = new RuleList(extends_extends({}, options, {
+ parent: this
+ }));
+
+ for (var name in styles) {
+ this.rules.add(name, styles[name]);
+ }
+
+ this.rules.process();
+ }
+ /**
+ * Get a rule.
+ */
+
+
+ var _proto = ConditionalRule.prototype;
+
+ _proto.getRule = function getRule(name) {
+ return this.rules.get(name);
+ }
+ /**
+ * Get index of a rule.
+ */
+ ;
+
+ _proto.indexOf = function indexOf(rule) {
+ return this.rules.indexOf(rule);
+ }
+ /**
+ * Create and register rule, run plugins.
+ */
+ ;
+
+ _proto.addRule = function addRule(name, style, options) {
+ var rule = this.rules.add(name, style, options);
+ if (!rule) return null;
+ this.options.jss.plugins.onProcessRule(rule);
+ return rule;
+ }
+ /**
+ * Replace rule, run plugins.
+ */
+ ;
+
+ _proto.replaceRule = function replaceRule(name, style, options) {
+ var newRule = this.rules.replace(name, style, options);
+ if (newRule) this.options.jss.plugins.onProcessRule(newRule);
+ return newRule;
+ }
+ /**
+ * Generates a CSS string.
+ */
+ ;
+
+ _proto.toString = function toString(options) {
+ if (options === void 0) {
+ options = defaultToStringOptions;
+ }
+
+ var _getWhitespaceSymbols = getWhitespaceSymbols(options),
+ linebreak = _getWhitespaceSymbols.linebreak;
+
+ if (options.indent == null) options.indent = defaultToStringOptions.indent;
+ if (options.children == null) options.children = defaultToStringOptions.children;
+
+ if (options.children === false) {
+ return this.query + " {}";
+ }
+
+ var children = this.rules.toString(options);
+ return children ? this.query + " {" + linebreak + children + linebreak + "}" : '';
+ };
+
+ return ConditionalRule;
+}();
+var keyRegExp = /@media|@supports\s+/;
+var pluginConditionalRule = {
+ onCreateRule: function onCreateRule(key, styles, options) {
+ return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;
+ }
+};
+
+var defaultToStringOptions$1 = {
+ indent: 1,
+ children: true
+};
+var nameRegExp = /@keyframes\s+([\w-]+)/;
+/**
+ * Rule for @keyframes
+ */
+
+var KeyframesRule =
+/*#__PURE__*/
+function () {
+ function KeyframesRule(key, frames, options) {
+ this.type = 'keyframes';
+ this.at = '@keyframes';
+ this.isProcessed = false;
+ var nameMatch = key.match(nameRegExp);
+
+ if (nameMatch && nameMatch[1]) {
+ this.name = nameMatch[1];
+ } else {
+ this.name = 'noname';
+ false ? 0 : void 0;
+ }
+
+ this.key = this.type + "-" + this.name;
+ this.options = options;
+ var scoped = options.scoped,
+ sheet = options.sheet,
+ generateId = options.generateId;
+ this.id = scoped === false ? this.name : jss_esm_escape(generateId(this, sheet));
+ this.rules = new RuleList(extends_extends({}, options, {
+ parent: this
+ }));
+
+ for (var name in frames) {
+ this.rules.add(name, frames[name], extends_extends({}, options, {
+ parent: this
+ }));
+ }
+
+ this.rules.process();
+ }
+ /**
+ * Generates a CSS string.
+ */
+
+
+ var _proto = KeyframesRule.prototype;
+
+ _proto.toString = function toString(options) {
+ if (options === void 0) {
+ options = defaultToStringOptions$1;
+ }
+
+ var _getWhitespaceSymbols = getWhitespaceSymbols(options),
+ linebreak = _getWhitespaceSymbols.linebreak;
+
+ if (options.indent == null) options.indent = defaultToStringOptions$1.indent;
+ if (options.children == null) options.children = defaultToStringOptions$1.children;
+
+ if (options.children === false) {
+ return this.at + " " + this.id + " {}";
+ }
+
+ var children = this.rules.toString(options);
+ if (children) children = "" + linebreak + children + linebreak;
+ return this.at + " " + this.id + " {" + children + "}";
+ };
+
+ return KeyframesRule;
+}();
+var keyRegExp$1 = /@keyframes\s+/;
+var refRegExp = /\$([\w-]+)/g;
+
+var findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {
+ if (typeof val === 'string') {
+ return val.replace(refRegExp, function (match, name) {
+ if (name in keyframes) {
+ return keyframes[name];
+ }
+
+ false ? 0 : void 0;
+ return match;
+ });
+ }
+
+ return val;
+};
+/**
+ * Replace the reference for a animation name.
+ */
+
+
+var replaceRef = function replaceRef(style, prop, keyframes) {
+ var value = style[prop];
+ var refKeyframe = findReferencedKeyframe(value, keyframes);
+
+ if (refKeyframe !== value) {
+ style[prop] = refKeyframe;
+ }
+};
+
+var pluginKeyframesRule = {
+ onCreateRule: function onCreateRule(key, frames, options) {
+ return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;
+ },
+ // Animation name ref replacer.
+ onProcessStyle: function onProcessStyle(style, rule, sheet) {
+ if (rule.type !== 'style' || !sheet) return style;
+ if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);
+ if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);
+ return style;
+ },
+ onChangeValue: function onChangeValue(val, prop, rule) {
+ var sheet = rule.options.sheet;
+
+ if (!sheet) {
+ return val;
+ }
+
+ switch (prop) {
+ case 'animation':
+ return findReferencedKeyframe(val, sheet.keyframes);
+
+ case 'animation-name':
+ return findReferencedKeyframe(val, sheet.keyframes);
+
+ default:
+ return val;
+ }
+ }
+};
+
+var KeyframeRule =
+/*#__PURE__*/
+function (_BaseStyleRule) {
+ _inheritsLoose(KeyframeRule, _BaseStyleRule);
+
+ function KeyframeRule() {
+ return _BaseStyleRule.apply(this, arguments) || this;
+ }
+
+ var _proto = KeyframeRule.prototype;
+
+ /**
+ * Generates a CSS string.
+ */
+ _proto.toString = function toString(options) {
+ var sheet = this.options.sheet;
+ var link = sheet ? sheet.options.link : false;
+ var opts = link ? extends_extends({}, options, {
+ allowEmpty: true
+ }) : options;
+ return toCss(this.key, this.style, opts);
+ };
+
+ return KeyframeRule;
+}(BaseStyleRule);
+var pluginKeyframeRule = {
+ onCreateRule: function onCreateRule(key, style, options) {
+ if (options.parent && options.parent.type === 'keyframes') {
+ return new KeyframeRule(key, style, options);
+ }
+
+ return null;
+ }
+};
+
+var FontFaceRule =
+/*#__PURE__*/
+function () {
+ function FontFaceRule(key, style, options) {
+ this.type = 'font-face';
+ this.at = '@font-face';
+ this.isProcessed = false;
+ this.key = key;
+ this.style = style;
+ this.options = options;
+ }
+ /**
+ * Generates a CSS string.
+ */
+
+
+ var _proto = FontFaceRule.prototype;
+
+ _proto.toString = function toString(options) {
+ var _getWhitespaceSymbols = getWhitespaceSymbols(options),
+ linebreak = _getWhitespaceSymbols.linebreak;
+
+ if (Array.isArray(this.style)) {
+ var str = '';
+
+ for (var index = 0; index < this.style.length; index++) {
+ str += toCss(this.at, this.style[index]);
+ if (this.style[index + 1]) str += linebreak;
+ }
+
+ return str;
+ }
+
+ return toCss(this.at, this.style, options);
+ };
+
+ return FontFaceRule;
+}();
+var keyRegExp$2 = /@font-face/;
+var pluginFontFaceRule = {
+ onCreateRule: function onCreateRule(key, style, options) {
+ return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;
+ }
+};
+
+var ViewportRule =
+/*#__PURE__*/
+function () {
+ function ViewportRule(key, style, options) {
+ this.type = 'viewport';
+ this.at = '@viewport';
+ this.isProcessed = false;
+ this.key = key;
+ this.style = style;
+ this.options = options;
+ }
+ /**
+ * Generates a CSS string.
+ */
+
+
+ var _proto = ViewportRule.prototype;
+
+ _proto.toString = function toString(options) {
+ return toCss(this.key, this.style, options);
+ };
+
+ return ViewportRule;
+}();
+var pluginViewportRule = {
+ onCreateRule: function onCreateRule(key, style, options) {
+ return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;
+ }
+};
+
+var SimpleRule =
+/*#__PURE__*/
+function () {
+ function SimpleRule(key, value, options) {
+ this.type = 'simple';
+ this.isProcessed = false;
+ this.key = key;
+ this.value = value;
+ this.options = options;
+ }
+ /**
+ * Generates a CSS string.
+ */
+ // eslint-disable-next-line no-unused-vars
+
+
+ var _proto = SimpleRule.prototype;
+
+ _proto.toString = function toString(options) {
+ if (Array.isArray(this.value)) {
+ var str = '';
+
+ for (var index = 0; index < this.value.length; index++) {
+ str += this.key + " " + this.value[index] + ";";
+ if (this.value[index + 1]) str += '\n';
+ }
+
+ return str;
+ }
+
+ return this.key + " " + this.value + ";";
+ };
+
+ return SimpleRule;
+}();
+var keysMap = {
+ '@charset': true,
+ '@import': true,
+ '@namespace': true
+};
+var pluginSimpleRule = {
+ onCreateRule: function onCreateRule(key, value, options) {
+ return key in keysMap ? new SimpleRule(key, value, options) : null;
+ }
+};
+
+var plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];
+
+var defaultUpdateOptions = {
+ process: true
+};
+var forceUpdateOptions = {
+ force: true,
+ process: true
+ /**
+ * Contains rules objects and allows adding/removing etc.
+ * Is used for e.g. by `StyleSheet` or `ConditionalRule`.
+ */
+
+};
+
+var RuleList =
+/*#__PURE__*/
+function () {
+ // Rules registry for access by .get() method.
+ // It contains the same rule registered by name and by selector.
+ // Original styles object.
+ // Used to ensure correct rules order.
+ function RuleList(options) {
+ this.map = {};
+ this.raw = {};
+ this.index = [];
+ this.counter = 0;
+ this.options = options;
+ this.classes = options.classes;
+ this.keyframes = options.keyframes;
+ }
+ /**
+ * Create and register rule.
+ *
+ * Will not render after Style Sheet was rendered the first time.
+ */
+
+
+ var _proto = RuleList.prototype;
+
+ _proto.add = function add(name, decl, ruleOptions) {
+ var _this$options = this.options,
+ parent = _this$options.parent,
+ sheet = _this$options.sheet,
+ jss = _this$options.jss,
+ Renderer = _this$options.Renderer,
+ generateId = _this$options.generateId,
+ scoped = _this$options.scoped;
+
+ var options = extends_extends({
+ classes: this.classes,
+ parent: parent,
+ sheet: sheet,
+ jss: jss,
+ Renderer: Renderer,
+ generateId: generateId,
+ scoped: scoped,
+ name: name,
+ keyframes: this.keyframes,
+ selector: undefined
+ }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but
+ // `sheet.addRule()` opens the door for any duplicate rule name. When this happens
+ // we need to make the key unique within this RuleList instance scope.
+
+
+ var key = name;
+
+ if (name in this.raw) {
+ key = name + "-d" + this.counter++;
+ } // We need to save the original decl before creating the rule
+ // because cache plugin needs to use it as a key to return a cached rule.
+
+
+ this.raw[key] = decl;
+
+ if (key in this.classes) {
+ // E.g. rules inside of @media container
+ options.selector = "." + jss_esm_escape(this.classes[key]);
+ }
+
+ var rule = createRule(key, decl, options);
+ if (!rule) return null;
+ this.register(rule);
+ var index = options.index === undefined ? this.index.length : options.index;
+ this.index.splice(index, 0, rule);
+ return rule;
+ }
+ /**
+ * Replace rule.
+ * Create a new rule and remove old one instead of overwriting
+ * because we want to invoke onCreateRule hook to make plugins work.
+ */
+ ;
+
+ _proto.replace = function replace(name, decl, ruleOptions) {
+ var oldRule = this.get(name);
+ var oldIndex = this.index.indexOf(oldRule);
+
+ if (oldRule) {
+ this.remove(oldRule);
+ }
+
+ var options = ruleOptions;
+ if (oldIndex !== -1) options = extends_extends({}, ruleOptions, {
+ index: oldIndex
+ });
+ return this.add(name, decl, options);
+ }
+ /**
+ * Get a rule by name or selector.
+ */
+ ;
+
+ _proto.get = function get(nameOrSelector) {
+ return this.map[nameOrSelector];
+ }
+ /**
+ * Delete a rule.
+ */
+ ;
+
+ _proto.remove = function remove(rule) {
+ this.unregister(rule);
+ delete this.raw[rule.key];
+ this.index.splice(this.index.indexOf(rule), 1);
+ }
+ /**
+ * Get index of a rule.
+ */
+ ;
+
+ _proto.indexOf = function indexOf(rule) {
+ return this.index.indexOf(rule);
+ }
+ /**
+ * Run `onProcessRule()` plugins on every rule.
+ */
+ ;
+
+ _proto.process = function process() {
+ var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop
+ // we end up with very hard-to-track-down side effects.
+
+ this.index.slice(0).forEach(plugins.onProcessRule, plugins);
+ }
+ /**
+ * Register a rule in `.map`, `.classes` and `.keyframes` maps.
+ */
+ ;
+
+ _proto.register = function register(rule) {
+ this.map[rule.key] = rule;
+
+ if (rule instanceof StyleRule) {
+ this.map[rule.selector] = rule;
+ if (rule.id) this.classes[rule.key] = rule.id;
+ } else if (rule instanceof KeyframesRule && this.keyframes) {
+ this.keyframes[rule.name] = rule.id;
+ }
+ }
+ /**
+ * Unregister a rule.
+ */
+ ;
+
+ _proto.unregister = function unregister(rule) {
+ delete this.map[rule.key];
+
+ if (rule instanceof StyleRule) {
+ delete this.map[rule.selector];
+ delete this.classes[rule.key];
+ } else if (rule instanceof KeyframesRule) {
+ delete this.keyframes[rule.name];
+ }
+ }
+ /**
+ * Update the function values with a new data.
+ */
+ ;
+
+ _proto.update = function update() {
+ var name;
+ var data;
+ var options;
+
+ if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {
+ name = arguments.length <= 0 ? undefined : arguments[0];
+ data = arguments.length <= 1 ? undefined : arguments[1];
+ options = arguments.length <= 2 ? undefined : arguments[2];
+ } else {
+ data = arguments.length <= 0 ? undefined : arguments[0];
+ options = arguments.length <= 1 ? undefined : arguments[1];
+ name = null;
+ }
+
+ if (name) {
+ this.updateOne(this.get(name), data, options);
+ } else {
+ for (var index = 0; index < this.index.length; index++) {
+ this.updateOne(this.index[index], data, options);
+ }
+ }
+ }
+ /**
+ * Execute plugins, update rule props.
+ */
+ ;
+
+ _proto.updateOne = function updateOne(rule, data, options) {
+ if (options === void 0) {
+ options = defaultUpdateOptions;
+ }
+
+ var _this$options2 = this.options,
+ plugins = _this$options2.jss.plugins,
+ sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.
+
+ if (rule.rules instanceof RuleList) {
+ rule.rules.update(data, options);
+ return;
+ }
+
+ var style = rule.style;
+ plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.
+
+ if (options.process && style && style !== rule.style) {
+ // We need to run the plugins in case new `style` relies on syntax plugins.
+ plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.
+
+ for (var prop in rule.style) {
+ var nextValue = rule.style[prop];
+ var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.
+ // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.
+
+ if (nextValue !== prevValue) {
+ rule.prop(prop, nextValue, forceUpdateOptions);
+ }
+ } // Remove props.
+
+
+ for (var _prop in style) {
+ var _nextValue = rule.style[_prop];
+ var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.
+ // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.
+
+ if (_nextValue == null && _nextValue !== _prevValue) {
+ rule.prop(_prop, null, forceUpdateOptions);
+ }
+ }
+ }
+ }
+ /**
+ * Convert rules to a CSS string.
+ */
+ ;
+
+ _proto.toString = function toString(options) {
+ var str = '';
+ var sheet = this.options.sheet;
+ var link = sheet ? sheet.options.link : false;
+
+ var _getWhitespaceSymbols = getWhitespaceSymbols(options),
+ linebreak = _getWhitespaceSymbols.linebreak;
+
+ for (var index = 0; index < this.index.length; index++) {
+ var rule = this.index[index];
+ var css = rule.toString(options); // No need to render an empty rule.
+
+ if (!css && !link) continue;
+ if (str) str += linebreak;
+ str += css;
+ }
+
+ return str;
+ };
+
+ return RuleList;
+}();
+
+var StyleSheet =
+/*#__PURE__*/
+function () {
+ function StyleSheet(styles, options) {
+ this.attached = false;
+ this.deployed = false;
+ this.classes = {};
+ this.keyframes = {};
+ this.options = extends_extends({}, options, {
+ sheet: this,
+ parent: this,
+ classes: this.classes,
+ keyframes: this.keyframes
+ });
+
+ if (options.Renderer) {
+ this.renderer = new options.Renderer(this);
+ }
+
+ this.rules = new RuleList(this.options);
+
+ for (var name in styles) {
+ this.rules.add(name, styles[name]);
+ }
+
+ this.rules.process();
+ }
+ /**
+ * Attach renderable to the render tree.
+ */
+
+
+ var _proto = StyleSheet.prototype;
+
+ _proto.attach = function attach() {
+ if (this.attached) return this;
+ if (this.renderer) this.renderer.attach();
+ this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.
+
+ if (!this.deployed) this.deploy();
+ return this;
+ }
+ /**
+ * Remove renderable from render tree.
+ */
+ ;
+
+ _proto.detach = function detach() {
+ if (!this.attached) return this;
+ if (this.renderer) this.renderer.detach();
+ this.attached = false;
+ return this;
+ }
+ /**
+ * Add a rule to the current stylesheet.
+ * Will insert a rule also after the stylesheet has been rendered first time.
+ */
+ ;
+
+ _proto.addRule = function addRule(name, decl, options) {
+ var queue = this.queue; // Plugins can create rules.
+ // In order to preserve the right order, we need to queue all `.addRule` calls,
+ // which happen after the first `rules.add()` call.
+
+ if (this.attached && !queue) this.queue = [];
+ var rule = this.rules.add(name, decl, options);
+ if (!rule) return null;
+ this.options.jss.plugins.onProcessRule(rule);
+
+ if (this.attached) {
+ if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.
+ // It will be inserted all together when .attach is called.
+
+ if (queue) queue.push(rule);else {
+ this.insertRule(rule);
+
+ if (this.queue) {
+ this.queue.forEach(this.insertRule, this);
+ this.queue = undefined;
+ }
+ }
+ return rule;
+ } // We can't add rules to a detached style node.
+ // We will redeploy the sheet once user will attach it.
+
+
+ this.deployed = false;
+ return rule;
+ }
+ /**
+ * Replace a rule in the current stylesheet.
+ */
+ ;
+
+ _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {
+ var oldRule = this.rules.get(nameOrSelector);
+ if (!oldRule) return this.addRule(nameOrSelector, decl, options);
+ var newRule = this.rules.replace(nameOrSelector, decl, options);
+
+ if (newRule) {
+ this.options.jss.plugins.onProcessRule(newRule);
+ }
+
+ if (this.attached) {
+ if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.
+ // It will be inserted all together when .attach is called.
+
+ if (this.renderer) {
+ if (!newRule) {
+ this.renderer.deleteRule(oldRule);
+ } else if (oldRule.renderable) {
+ this.renderer.replaceRule(oldRule.renderable, newRule);
+ }
+ }
+
+ return newRule;
+ } // We can't replace rules to a detached style node.
+ // We will redeploy the sheet once user will attach it.
+
+
+ this.deployed = false;
+ return newRule;
+ }
+ /**
+ * Insert rule into the StyleSheet
+ */
+ ;
+
+ _proto.insertRule = function insertRule(rule) {
+ if (this.renderer) {
+ this.renderer.insertRule(rule);
+ }
+ }
+ /**
+ * Create and add rules.
+ * Will render also after Style Sheet was rendered the first time.
+ */
+ ;
+
+ _proto.addRules = function addRules(styles, options) {
+ var added = [];
+
+ for (var name in styles) {
+ var rule = this.addRule(name, styles[name], options);
+ if (rule) added.push(rule);
+ }
+
+ return added;
+ }
+ /**
+ * Get a rule by name or selector.
+ */
+ ;
+
+ _proto.getRule = function getRule(nameOrSelector) {
+ return this.rules.get(nameOrSelector);
+ }
+ /**
+ * Delete a rule by name.
+ * Returns `true`: if rule has been deleted from the DOM.
+ */
+ ;
+
+ _proto.deleteRule = function deleteRule(name) {
+ var rule = typeof name === 'object' ? name : this.rules.get(name);
+
+ if (!rule || // Style sheet was created without link: true and attached, in this case we
+ // won't be able to remove the CSS rule from the DOM.
+ this.attached && !rule.renderable) {
+ return false;
+ }
+
+ this.rules.remove(rule);
+
+ if (this.attached && rule.renderable && this.renderer) {
+ return this.renderer.deleteRule(rule.renderable);
+ }
+
+ return true;
+ }
+ /**
+ * Get index of a rule.
+ */
+ ;
+
+ _proto.indexOf = function indexOf(rule) {
+ return this.rules.indexOf(rule);
+ }
+ /**
+ * Deploy pure CSS string to a renderable.
+ */
+ ;
+
+ _proto.deploy = function deploy() {
+ if (this.renderer) this.renderer.deploy();
+ this.deployed = true;
+ return this;
+ }
+ /**
+ * Update the function values with a new data.
+ */
+ ;
+
+ _proto.update = function update() {
+ var _this$rules;
+
+ (_this$rules = this.rules).update.apply(_this$rules, arguments);
+
+ return this;
+ }
+ /**
+ * Updates a single rule.
+ */
+ ;
+
+ _proto.updateOne = function updateOne(rule, data, options) {
+ this.rules.updateOne(rule, data, options);
+ return this;
+ }
+ /**
+ * Convert rules to a CSS string.
+ */
+ ;
+
+ _proto.toString = function toString(options) {
+ return this.rules.toString(options);
+ };
+
+ return StyleSheet;
+}();
+
+var PluginsRegistry =
+/*#__PURE__*/
+function () {
+ function PluginsRegistry() {
+ this.plugins = {
+ internal: [],
+ external: []
+ };
+ this.registry = {};
+ }
+
+ var _proto = PluginsRegistry.prototype;
+
+ /**
+ * Call `onCreateRule` hooks and return an object if returned by a hook.
+ */
+ _proto.onCreateRule = function onCreateRule(name, decl, options) {
+ for (var i = 0; i < this.registry.onCreateRule.length; i++) {
+ var rule = this.registry.onCreateRule[i](name, decl, options);
+ if (rule) return rule;
+ }
+
+ return null;
+ }
+ /**
+ * Call `onProcessRule` hooks.
+ */
+ ;
+
+ _proto.onProcessRule = function onProcessRule(rule) {
+ if (rule.isProcessed) return;
+ var sheet = rule.options.sheet;
+
+ for (var i = 0; i < this.registry.onProcessRule.length; i++) {
+ this.registry.onProcessRule[i](rule, sheet);
+ }
+
+ if (rule.style) this.onProcessStyle(rule.style, rule, sheet);
+ rule.isProcessed = true;
+ }
+ /**
+ * Call `onProcessStyle` hooks.
+ */
+ ;
+
+ _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {
+ for (var i = 0; i < this.registry.onProcessStyle.length; i++) {
+ rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);
+ }
+ }
+ /**
+ * Call `onProcessSheet` hooks.
+ */
+ ;
+
+ _proto.onProcessSheet = function onProcessSheet(sheet) {
+ for (var i = 0; i < this.registry.onProcessSheet.length; i++) {
+ this.registry.onProcessSheet[i](sheet);
+ }
+ }
+ /**
+ * Call `onUpdate` hooks.
+ */
+ ;
+
+ _proto.onUpdate = function onUpdate(data, rule, sheet, options) {
+ for (var i = 0; i < this.registry.onUpdate.length; i++) {
+ this.registry.onUpdate[i](data, rule, sheet, options);
+ }
+ }
+ /**
+ * Call `onChangeValue` hooks.
+ */
+ ;
+
+ _proto.onChangeValue = function onChangeValue(value, prop, rule) {
+ var processedValue = value;
+
+ for (var i = 0; i < this.registry.onChangeValue.length; i++) {
+ processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);
+ }
+
+ return processedValue;
+ }
+ /**
+ * Register a plugin.
+ */
+ ;
+
+ _proto.use = function use(newPlugin, options) {
+ if (options === void 0) {
+ options = {
+ queue: 'external'
+ };
+ }
+
+ var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.
+
+ if (plugins.indexOf(newPlugin) !== -1) {
+ return;
+ }
+
+ plugins.push(newPlugin);
+ this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {
+ for (var name in plugin) {
+ if (name in registry) {
+ registry[name].push(plugin[name]);
+ } else {
+ false ? 0 : void 0;
+ }
+ }
+
+ return registry;
+ }, {
+ onCreateRule: [],
+ onProcessRule: [],
+ onProcessStyle: [],
+ onProcessSheet: [],
+ onChangeValue: [],
+ onUpdate: []
+ });
+ };
+
+ return PluginsRegistry;
+}();
+
+/**
+ * Sheets registry to access all instances in one place.
+ */
+
+var SheetsRegistry =
+/*#__PURE__*/
+function () {
+ function SheetsRegistry() {
+ this.registry = [];
+ }
+
+ var _proto = SheetsRegistry.prototype;
+
+ /**
+ * Register a Style Sheet.
+ */
+ _proto.add = function add(sheet) {
+ var registry = this.registry;
+ var index = sheet.options.index;
+ if (registry.indexOf(sheet) !== -1) return;
+
+ if (registry.length === 0 || index >= this.index) {
+ registry.push(sheet);
+ return;
+ } // Find a position.
+
+
+ for (var i = 0; i < registry.length; i++) {
+ if (registry[i].options.index > index) {
+ registry.splice(i, 0, sheet);
+ return;
+ }
+ }
+ }
+ /**
+ * Reset the registry.
+ */
+ ;
+
+ _proto.reset = function reset() {
+ this.registry = [];
+ }
+ /**
+ * Remove a Style Sheet.
+ */
+ ;
+
+ _proto.remove = function remove(sheet) {
+ var index = this.registry.indexOf(sheet);
+ this.registry.splice(index, 1);
+ }
+ /**
+ * Convert all attached sheets to a CSS string.
+ */
+ ;
+
+ _proto.toString = function toString(_temp) {
+ var _ref = _temp === void 0 ? {} : _temp,
+ attached = _ref.attached,
+ options = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(_ref, ["attached"]);
+
+ var _getWhitespaceSymbols = getWhitespaceSymbols(options),
+ linebreak = _getWhitespaceSymbols.linebreak;
+
+ var css = '';
+
+ for (var i = 0; i < this.registry.length; i++) {
+ var sheet = this.registry[i];
+
+ if (attached != null && sheet.attached !== attached) {
+ continue;
+ }
+
+ if (css) css += linebreak;
+ css += sheet.toString(options);
+ }
+
+ return css;
+ };
+
+ createClass_createClass(SheetsRegistry, [{
+ key: "index",
+
+ /**
+ * Current highest index number.
+ */
+ get: function get() {
+ return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;
+ }
+ }]);
+
+ return SheetsRegistry;
+}();
+
+/**
+ * This is a global sheets registry. Only DomRenderer will add sheets to it.
+ * On the server one should use an own SheetsRegistry instance and add the
+ * sheets to it, because you need to make sure to create a new registry for
+ * each request in order to not leak sheets across requests.
+ */
+
+var sheets = new SheetsRegistry();
+
+/* eslint-disable */
+
+/**
+ * Now that `globalThis` is available on most platforms
+ * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)
+ * we check for `globalThis` first. `globalThis` is necessary for jss
+ * to run in Agoric's secure version of JavaScript (SES). Under SES,
+ * `globalThis` exists, but `window`, `self`, and `Function('return
+ * this')()` are all undefined for security reasons.
+ *
+ * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ */
+var globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();
+
+var ns = '2f1acc6c3a606b082e5eef5e54414ffb';
+if (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify
+// the current version with just one short number and use it for classes generation
+// we use a counter. Also it is more accurate, because user can manually reevaluate
+// the module.
+
+var moduleId = globalThis$1[ns]++;
+
+var maxRules = 1e10;
+/**
+ * Returns a function which generates unique class names based on counters.
+ * When new generator function is created, rule counter is reseted.
+ * We need to reset the rule counter for SSR for each request.
+ */
+
+var createGenerateId = function createGenerateId(options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ var ruleCounter = 0;
+
+ var generateId = function generateId(rule, sheet) {
+ ruleCounter += 1;
+
+ if (ruleCounter > maxRules) {
+ false ? 0 : void 0;
+ }
+
+ var jssId = '';
+ var prefix = '';
+
+ if (sheet) {
+ if (sheet.options.classNamePrefix) {
+ prefix = sheet.options.classNamePrefix;
+ }
+
+ if (sheet.options.jss.id != null) {
+ jssId = String(sheet.options.jss.id);
+ }
+ }
+
+ if (options.minify) {
+ // Using "c" because a number can't be the first char in a class name.
+ return "" + (prefix || 'c') + moduleId + jssId + ruleCounter;
+ }
+
+ return prefix + rule.key + "-" + moduleId + (jssId ? "-" + jssId : '') + "-" + ruleCounter;
+ };
+
+ return generateId;
+};
+
+/**
+ * Cache the value from the first time a function is called.
+ */
+
+var memoize = function memoize(fn) {
+ var value;
+ return function () {
+ if (!value) value = fn();
+ return value;
+ };
+};
+/**
+ * Get a style property value.
+ */
+
+
+var getPropertyValue = function getPropertyValue(cssRule, prop) {
+ try {
+ // Support CSSTOM.
+ if (cssRule.attributeStyleMap) {
+ return cssRule.attributeStyleMap.get(prop);
+ }
+
+ return cssRule.style.getPropertyValue(prop);
+ } catch (err) {
+ // IE may throw if property is unknown.
+ return '';
+ }
+};
+/**
+ * Set a style property.
+ */
+
+
+var setProperty = function setProperty(cssRule, prop, value) {
+ try {
+ var cssValue = value;
+
+ if (Array.isArray(value)) {
+ cssValue = toCssValue(value, true);
+
+ if (value[value.length - 1] === '!important') {
+ cssRule.style.setProperty(prop, cssValue, 'important');
+ return true;
+ }
+ } // Support CSSTOM.
+
+
+ if (cssRule.attributeStyleMap) {
+ cssRule.attributeStyleMap.set(prop, cssValue);
+ } else {
+ cssRule.style.setProperty(prop, cssValue);
+ }
+ } catch (err) {
+ // IE may throw if property is unknown.
+ return false;
+ }
+
+ return true;
+};
+/**
+ * Remove a style property.
+ */
+
+
+var removeProperty = function removeProperty(cssRule, prop) {
+ try {
+ // Support CSSTOM.
+ if (cssRule.attributeStyleMap) {
+ cssRule.attributeStyleMap.delete(prop);
+ } else {
+ cssRule.style.removeProperty(prop);
+ }
+ } catch (err) {
+ false ? 0 : void 0;
+ }
+};
+/**
+ * Set the selector.
+ */
+
+
+var setSelector = function setSelector(cssRule, selectorText) {
+ cssRule.selectorText = selectorText; // Return false if setter was not successful.
+ // Currently works in chrome only.
+
+ return cssRule.selectorText === selectorText;
+};
+/**
+ * Gets the `head` element upon the first call and caches it.
+ * We assume it can't be null.
+ */
+
+
+var getHead = memoize(function () {
+ return document.querySelector('head');
+});
+/**
+ * Find attached sheet with an index higher than the passed one.
+ */
+
+function findHigherSheet(registry, options) {
+ for (var i = 0; i < registry.length; i++) {
+ var sheet = registry[i];
+
+ if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {
+ return sheet;
+ }
+ }
+
+ return null;
+}
+/**
+ * Find attached sheet with the highest index.
+ */
+
+
+function findHighestSheet(registry, options) {
+ for (var i = registry.length - 1; i >= 0; i--) {
+ var sheet = registry[i];
+
+ if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {
+ return sheet;
+ }
+ }
+
+ return null;
+}
+/**
+ * Find a comment with "jss" inside.
+ */
+
+
+function findCommentNode(text) {
+ var head = getHead();
+
+ for (var i = 0; i < head.childNodes.length; i++) {
+ var node = head.childNodes[i];
+
+ if (node.nodeType === 8 && node.nodeValue.trim() === text) {
+ return node;
+ }
+ }
+
+ return null;
+}
+/**
+ * Find a node before which we can insert the sheet.
+ */
+
+
+function findPrevNode(options) {
+ var registry = sheets.registry;
+
+ if (registry.length > 0) {
+ // Try to insert before the next higher sheet.
+ var sheet = findHigherSheet(registry, options);
+
+ if (sheet && sheet.renderer) {
+ return {
+ parent: sheet.renderer.element.parentNode,
+ node: sheet.renderer.element
+ };
+ } // Otherwise insert after the last attached.
+
+
+ sheet = findHighestSheet(registry, options);
+
+ if (sheet && sheet.renderer) {
+ return {
+ parent: sheet.renderer.element.parentNode,
+ node: sheet.renderer.element.nextSibling
+ };
+ }
+ } // Try to find a comment placeholder if registry is empty.
+
+
+ var insertionPoint = options.insertionPoint;
+
+ if (insertionPoint && typeof insertionPoint === 'string') {
+ var comment = findCommentNode(insertionPoint);
+
+ if (comment) {
+ return {
+ parent: comment.parentNode,
+ node: comment.nextSibling
+ };
+ } // If user specifies an insertion point and it can't be found in the document -
+ // bad specificity issues may appear.
+
+
+ false ? 0 : void 0;
+ }
+
+ return false;
+}
+/**
+ * Insert style element into the DOM.
+ */
+
+
+function insertStyle(style, options) {
+ var insertionPoint = options.insertionPoint;
+ var nextNode = findPrevNode(options);
+
+ if (nextNode !== false && nextNode.parent) {
+ nextNode.parent.insertBefore(style, nextNode.node);
+ return;
+ } // Works with iframes and any node types.
+
+
+ if (insertionPoint && typeof insertionPoint.nodeType === 'number') {
+ var insertionPointElement = insertionPoint;
+ var parentNode = insertionPointElement.parentNode;
+ if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else false ? 0 : void 0;
+ return;
+ }
+
+ getHead().appendChild(style);
+}
+/**
+ * Read jss nonce setting from the page if the user has set it.
+ */
+
+
+var getNonce = memoize(function () {
+ var node = document.querySelector('meta[property="csp-nonce"]');
+ return node ? node.getAttribute('content') : null;
+});
+
+var _insertRule = function insertRule(container, rule, index) {
+ try {
+ if ('insertRule' in container) {
+ container.insertRule(rule, index);
+ } // Keyframes rule.
+ else if ('appendRule' in container) {
+ container.appendRule(rule);
+ }
+ } catch (err) {
+ false ? 0 : void 0;
+ return false;
+ }
+
+ return container.cssRules[index];
+};
+
+var getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {
+ var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong
+
+ if (index === undefined || index > maxIndex) {
+ // eslint-disable-next-line no-param-reassign
+ return maxIndex;
+ }
+
+ return index;
+};
+
+var createStyle = function createStyle() {
+ var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we
+ // insert rules after we insert the style tag.
+ // It seems to kick-off the source order specificity algorithm.
+
+ el.textContent = '\n';
+ return el;
+};
+
+var DomRenderer =
+/*#__PURE__*/
+function () {
+ // Will be empty if link: true option is not set, because
+ // it is only for use together with insertRule API.
+ function DomRenderer(sheet) {
+ this.getPropertyValue = getPropertyValue;
+ this.setProperty = setProperty;
+ this.removeProperty = removeProperty;
+ this.setSelector = setSelector;
+ this.hasInsertedRules = false;
+ this.cssRules = [];
+ // There is no sheet when the renderer is used from a standalone StyleRule.
+ if (sheet) sheets.add(sheet);
+ this.sheet = sheet;
+
+ var _ref = this.sheet ? this.sheet.options : {},
+ media = _ref.media,
+ meta = _ref.meta,
+ element = _ref.element;
+
+ this.element = element || createStyle();
+ this.element.setAttribute('data-jss', '');
+ if (media) this.element.setAttribute('media', media);
+ if (meta) this.element.setAttribute('data-meta', meta);
+ var nonce = getNonce();
+ if (nonce) this.element.setAttribute('nonce', nonce);
+ }
+ /**
+ * Insert style element into render tree.
+ */
+
+
+ var _proto = DomRenderer.prototype;
+
+ _proto.attach = function attach() {
+ // In the case the element node is external and it is already in the DOM.
+ if (this.element.parentNode || !this.sheet) return;
+ insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`
+ // most browsers create a new CSSStyleSheet, except of all IEs.
+
+ var deployed = Boolean(this.sheet && this.sheet.deployed);
+
+ if (this.hasInsertedRules && deployed) {
+ this.hasInsertedRules = false;
+ this.deploy();
+ }
+ }
+ /**
+ * Remove style element from render tree.
+ */
+ ;
+
+ _proto.detach = function detach() {
+ if (!this.sheet) return;
+ var parentNode = this.element.parentNode;
+ if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.
+ // Though IE will keep them and we need a consistent behavior.
+
+ if (this.sheet.options.link) {
+ this.cssRules = [];
+ this.element.textContent = '\n';
+ }
+ }
+ /**
+ * Inject CSS string into element.
+ */
+ ;
+
+ _proto.deploy = function deploy() {
+ var sheet = this.sheet;
+ if (!sheet) return;
+
+ if (sheet.options.link) {
+ this.insertRules(sheet.rules);
+ return;
+ }
+
+ this.element.textContent = "\n" + sheet.toString() + "\n";
+ }
+ /**
+ * Insert RuleList into an element.
+ */
+ ;
+
+ _proto.insertRules = function insertRules(rules, nativeParent) {
+ for (var i = 0; i < rules.index.length; i++) {
+ this.insertRule(rules.index[i], i, nativeParent);
+ }
+ }
+ /**
+ * Insert a rule into element.
+ */
+ ;
+
+ _proto.insertRule = function insertRule(rule, index, nativeParent) {
+ if (nativeParent === void 0) {
+ nativeParent = this.element.sheet;
+ }
+
+ if (rule.rules) {
+ var parent = rule;
+ var latestNativeParent = nativeParent;
+
+ if (rule.type === 'conditional' || rule.type === 'keyframes') {
+ var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.
+
+
+ latestNativeParent = _insertRule(nativeParent, parent.toString({
+ children: false
+ }), _insertionIndex);
+
+ if (latestNativeParent === false) {
+ return false;
+ }
+
+ this.refCssRule(rule, _insertionIndex, latestNativeParent);
+ }
+
+ this.insertRules(parent.rules, latestNativeParent);
+ return latestNativeParent;
+ }
+
+ var ruleStr = rule.toString();
+ if (!ruleStr) return false;
+ var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);
+
+ var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);
+
+ if (nativeRule === false) {
+ return false;
+ }
+
+ this.hasInsertedRules = true;
+ this.refCssRule(rule, insertionIndex, nativeRule);
+ return nativeRule;
+ };
+
+ _proto.refCssRule = function refCssRule(rule, index, cssRule) {
+ rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules
+ // like rules inside media queries or keyframes
+
+ if (rule.options.parent instanceof StyleSheet) {
+ this.cssRules.splice(index, 0, cssRule);
+ }
+ }
+ /**
+ * Delete a rule.
+ */
+ ;
+
+ _proto.deleteRule = function deleteRule(cssRule) {
+ var sheet = this.element.sheet;
+ var index = this.indexOf(cssRule);
+ if (index === -1) return false;
+ sheet.deleteRule(index);
+ this.cssRules.splice(index, 1);
+ return true;
+ }
+ /**
+ * Get index of a CSS Rule.
+ */
+ ;
+
+ _proto.indexOf = function indexOf(cssRule) {
+ return this.cssRules.indexOf(cssRule);
+ }
+ /**
+ * Generate a new CSS rule and replace the existing one.
+ */
+ ;
+
+ _proto.replaceRule = function replaceRule(cssRule, rule) {
+ var index = this.indexOf(cssRule);
+ if (index === -1) return false;
+ this.element.sheet.deleteRule(index);
+ this.cssRules.splice(index, 1);
+ return this.insertRule(rule, index);
+ }
+ /**
+ * Get all rules elements.
+ */
+ ;
+
+ _proto.getRules = function getRules() {
+ return this.element.sheet.cssRules;
+ };
+
+ return DomRenderer;
+}();
+
+var instanceCounter = 0;
+
+var Jss =
+/*#__PURE__*/
+function () {
+ function Jss(options) {
+ this.id = instanceCounter++;
+ this.version = "10.9.0";
+ this.plugins = new PluginsRegistry();
+ this.options = {
+ id: {
+ minify: false
+ },
+ createGenerateId: createGenerateId,
+ Renderer: dist_module ? DomRenderer : null,
+ plugins: []
+ };
+ this.generateId = createGenerateId({
+ minify: false
+ });
+
+ for (var i = 0; i < plugins.length; i++) {
+ this.plugins.use(plugins[i], {
+ queue: 'internal'
+ });
+ }
+
+ this.setup(options);
+ }
+ /**
+ * Prepares various options, applies plugins.
+ * Should not be used twice on the same instance, because there is no plugins
+ * deduplication logic.
+ */
+
+
+ var _proto = Jss.prototype;
+
+ _proto.setup = function setup(options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ if (options.createGenerateId) {
+ this.options.createGenerateId = options.createGenerateId;
+ }
+
+ if (options.id) {
+ this.options.id = extends_extends({}, this.options.id, options.id);
+ }
+
+ if (options.createGenerateId || options.id) {
+ this.generateId = this.options.createGenerateId(this.options.id);
+ }
+
+ if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;
+
+ if ('Renderer' in options) {
+ this.options.Renderer = options.Renderer;
+ } // eslint-disable-next-line prefer-spread
+
+
+ if (options.plugins) this.use.apply(this, options.plugins);
+ return this;
+ }
+ /**
+ * Create a Style Sheet.
+ */
+ ;
+
+ _proto.createStyleSheet = function createStyleSheet(styles, options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ var _options = options,
+ index = _options.index;
+
+ if (typeof index !== 'number') {
+ index = sheets.index === 0 ? 0 : sheets.index + 1;
+ }
+
+ var sheet = new StyleSheet(styles, extends_extends({}, options, {
+ jss: this,
+ generateId: options.generateId || this.generateId,
+ insertionPoint: this.options.insertionPoint,
+ Renderer: this.options.Renderer,
+ index: index
+ }));
+ this.plugins.onProcessSheet(sheet);
+ return sheet;
+ }
+ /**
+ * Detach the Style Sheet and remove it from the registry.
+ */
+ ;
+
+ _proto.removeStyleSheet = function removeStyleSheet(sheet) {
+ sheet.detach();
+ sheets.remove(sheet);
+ return this;
+ }
+ /**
+ * Create a rule without a Style Sheet.
+ * [Deprecated] will be removed in the next major version.
+ */
+ ;
+
+ _proto.createRule = function createRule$1(name, style, options) {
+ if (style === void 0) {
+ style = {};
+ }
+
+ if (options === void 0) {
+ options = {};
+ }
+
+ // Enable rule without name for inline styles.
+ if (typeof name === 'object') {
+ return this.createRule(undefined, name, style);
+ }
+
+ var ruleOptions = extends_extends({}, options, {
+ name: name,
+ jss: this,
+ Renderer: this.options.Renderer
+ });
+
+ if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;
+ if (!ruleOptions.classes) ruleOptions.classes = {};
+ if (!ruleOptions.keyframes) ruleOptions.keyframes = {};
+
+ var rule = createRule(name, style, ruleOptions);
+
+ if (rule) this.plugins.onProcessRule(rule);
+ return rule;
+ }
+ /**
+ * Register plugin. Passed function will be invoked with a rule instance.
+ */
+ ;
+
+ _proto.use = function use() {
+ var _this = this;
+
+ for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {
+ plugins[_key] = arguments[_key];
+ }
+
+ plugins.forEach(function (plugin) {
+ _this.plugins.use(plugin);
+ });
+ return this;
+ };
+
+ return Jss;
+}();
+
+var createJss = function createJss(options) {
+ return new Jss(options);
+};
+
+/**
+ * SheetsManager is like a WeakMap which is designed to count StyleSheet
+ * instances and attach/detach automatically.
+ * Used in react-jss.
+ */
+
+var SheetsManager =
+/*#__PURE__*/
+(/* unused pure expression or super */ null && (function () {
+ function SheetsManager() {
+ this.length = 0;
+ this.sheets = new WeakMap();
+ }
+
+ var _proto = SheetsManager.prototype;
+
+ _proto.get = function get(key) {
+ var entry = this.sheets.get(key);
+ return entry && entry.sheet;
+ };
+
+ _proto.add = function add(key, sheet) {
+ if (this.sheets.has(key)) return;
+ this.length++;
+ this.sheets.set(key, {
+ sheet: sheet,
+ refs: 0
+ });
+ };
+
+ _proto.manage = function manage(key) {
+ var entry = this.sheets.get(key);
+
+ if (entry) {
+ if (entry.refs === 0) {
+ entry.sheet.attach();
+ }
+
+ entry.refs++;
+ return entry.sheet;
+ }
+
+ warning(false, "[JSS] SheetsManager: can't find sheet to manage");
+ return undefined;
+ };
+
+ _proto.unmanage = function unmanage(key) {
+ var entry = this.sheets.get(key);
+
+ if (entry) {
+ if (entry.refs > 0) {
+ entry.refs--;
+ if (entry.refs === 0) entry.sheet.detach();
+ }
+ } else {
+ warning(false, "SheetsManager: can't find sheet to unmanage");
+ }
+ };
+
+ _createClass(SheetsManager, [{
+ key: "size",
+ get: function get() {
+ return this.length;
+ }
+ }]);
+
+ return SheetsManager;
+}()));
+
+/**
+* Export a constant indicating if this browser has CSSTOM support.
+* https://developers.google.com/web/updates/2018/03/cssom
+*/
+var hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;
+
+/**
+ * Extracts a styles object with only props that contain function values.
+ */
+function getDynamicStyles(styles) {
+ var to = null;
+
+ for (var key in styles) {
+ var value = styles[key];
+ var type = typeof value;
+
+ if (type === 'function') {
+ if (!to) to = {};
+ to[key] = value;
+ } else if (type === 'object' && value !== null && !Array.isArray(value)) {
+ var extracted = getDynamicStyles(value);
+
+ if (extracted) {
+ if (!to) to = {};
+ to[key] = extracted;
+ }
+ }
+ }
+
+ return to;
+}
+
+/**
+ * A better abstraction over CSS.
+ *
+ * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present
+ * @website https://github.com/cssinjs/jss
+ * @license MIT
+ */
+var index = createJss();
+
+/* harmony default export */ const jss_esm = ((/* unused pure expression or super */ null && (index)));
+
+
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/mergeClasses/mergeClasses.js
+
+
+function mergeClasses(options = {}) {
+ const {
+ baseClasses,
+ newClasses,
+ Component
+ } = options;
+
+ if (!newClasses) {
+ return baseClasses;
+ }
+
+ const nextClasses = extends_extends({}, baseClasses);
+
+ if (false) {}
+
+ Object.keys(newClasses).forEach(key => {
+ if (false) {}
+
+ if (newClasses[key]) {
+ nextClasses[key] = `${baseClasses[key]} ${newClasses[key]}`;
+ }
+ });
+ return nextClasses;
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/makeStyles/multiKeyStore.js
+// Used https://github.com/thinkloop/multi-key-cache as inspiration
+const multiKeyStore = {
+ set: (cache, key1, key2, value) => {
+ let subCache = cache.get(key1);
+
+ if (!subCache) {
+ subCache = new Map();
+ cache.set(key1, subCache);
+ }
+
+ subCache.set(key2, value);
+ },
+ get: (cache, key1, key2) => {
+ const subCache = cache.get(key1);
+ return subCache ? subCache.get(key2) : undefined;
+ },
+ delete: (cache, key1, key2) => {
+ const subCache = cache.get(key1);
+ subCache.delete(key2);
+ }
+};
+/* harmony default export */ const makeStyles_multiKeyStore = (multiKeyStore);
+;// CONCATENATED MODULE: ./node_modules/@mui/private-theming/useTheme/ThemeContext.js
+
+const ThemeContext = /*#__PURE__*/react.createContext(null);
+
+if (false) {}
+
+/* harmony default export */ const useTheme_ThemeContext = (ThemeContext);
+;// CONCATENATED MODULE: ./node_modules/@mui/private-theming/useTheme/useTheme.js
+
+
+function useTheme() {
+ const theme = react.useContext(useTheme_ThemeContext);
+
+ if (false) {}
+
+ return theme;
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/private-theming/ThemeProvider/nested.js
+const hasSymbol = typeof Symbol === 'function' && Symbol.for;
+/* harmony default export */ const nested = (hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__');
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/createGenerateClassName/createGenerateClassName.js
+
+/**
+ * This is the list of the style rule name we use as drop in replacement for the built-in
+ * pseudo classes (:checked, :disabled, :focused, etc.).
+ *
+ * Why do they exist in the first place?
+ * These classes are used at a specificity of 2.
+ * It allows them to override previously defined styles as well as
+ * being untouched by simple user overrides.
+ */
+
+const stateClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.
+// When new generator function is created, rule counter is reset.
+// We need to reset the rule counter for SSR for each request.
+//
+// It's inspired by
+// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js
+
+function createGenerateClassName(options = {}) {
+ const {
+ disableGlobal = false,
+ productionPrefix = 'jss',
+ seed = ''
+ } = options;
+ const seedPrefix = seed === '' ? '' : `${seed}-`;
+ let ruleCounter = 0;
+
+ const getNextCounterId = () => {
+ ruleCounter += 1;
+
+ if (false) {}
+
+ return ruleCounter;
+ };
+
+ return (rule, styleSheet) => {
+ const name = styleSheet.options.name; // Is a global static MUI style?
+
+ if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {
+ // We can use a shorthand class name, we never use the keys to style the components.
+ if (stateClasses.indexOf(rule.key) !== -1) {
+ return `Mui-${rule.key}`;
+ }
+
+ const prefix = `${seedPrefix}${name}-${rule.key}`;
+
+ if (!styleSheet.options.theme[nested] || seed !== '') {
+ return prefix;
+ }
+
+ return `${prefix}-${getNextCounterId()}`;
+ }
+
+ if (true) {
+ return `${seedPrefix}${productionPrefix}${getNextCounterId()}`;
+ }
+
+ const suffix = `${rule.key}-${getNextCounterId()}`; // Help with debuggability.
+
+ if (styleSheet.options.classNamePrefix) {
+ return `${seedPrefix}${styleSheet.options.classNamePrefix}-${suffix}`;
+ }
+
+ return `${seedPrefix}${suffix}`;
+ };
+}
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js
+
+
+
+var now = Date.now();
+var fnValuesNs = "fnValues" + now;
+var fnRuleNs = "fnStyle" + ++now;
+
+var functionPlugin = function functionPlugin() {
+ return {
+ onCreateRule: function onCreateRule(name, decl, options) {
+ if (typeof decl !== 'function') return null;
+ var rule = createRule(name, {}, options);
+ rule[fnRuleNs] = decl;
+ return rule;
+ },
+ onProcessStyle: function onProcessStyle(style, rule) {
+ // We need to extract function values from the declaration, so that we can keep core unaware of them.
+ // We need to do that only once.
+ // We don't need to extract functions on each style update, since this can happen only once.
+ // We don't support function values inside of function rules.
+ if (fnValuesNs in rule || fnRuleNs in rule) return style;
+ var fnValues = {};
+
+ for (var prop in style) {
+ var value = style[prop];
+ if (typeof value !== 'function') continue;
+ delete style[prop];
+ fnValues[prop] = value;
+ }
+
+ rule[fnValuesNs] = fnValues;
+ return style;
+ },
+ onUpdate: function onUpdate(data, rule, sheet, options) {
+ var styleRule = rule;
+ var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object
+ // will be returned from that function.
+
+ if (fnRule) {
+ // Empty object will remove all currently defined props
+ // in case function rule returns a falsy value.
+ styleRule.style = fnRule(data) || {};
+
+ if (false) { var prop; }
+ }
+
+ var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.
+
+ if (fnValues) {
+ for (var _prop in fnValues) {
+ styleRule.prop(_prop, fnValues[_prop](data), options);
+ }
+ }
+ }
+ };
+};
+
+/* harmony default export */ const jss_plugin_rule_value_function_esm = (functionPlugin);
+
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js
+
+
+
+var at = '@global';
+var atPrefix = '@global ';
+
+var GlobalContainerRule =
+/*#__PURE__*/
+function () {
+ function GlobalContainerRule(key, styles, options) {
+ this.type = 'global';
+ this.at = at;
+ this.isProcessed = false;
+ this.key = key;
+ this.options = options;
+ this.rules = new RuleList(extends_extends({}, options, {
+ parent: this
+ }));
+
+ for (var selector in styles) {
+ this.rules.add(selector, styles[selector]);
+ }
+
+ this.rules.process();
+ }
+ /**
+ * Get a rule.
+ */
+
+
+ var _proto = GlobalContainerRule.prototype;
+
+ _proto.getRule = function getRule(name) {
+ return this.rules.get(name);
+ }
+ /**
+ * Create and register rule, run plugins.
+ */
+ ;
+
+ _proto.addRule = function addRule(name, style, options) {
+ var rule = this.rules.add(name, style, options);
+ if (rule) this.options.jss.plugins.onProcessRule(rule);
+ return rule;
+ }
+ /**
+ * Replace rule, run plugins.
+ */
+ ;
+
+ _proto.replaceRule = function replaceRule(name, style, options) {
+ var newRule = this.rules.replace(name, style, options);
+ if (newRule) this.options.jss.plugins.onProcessRule(newRule);
+ return newRule;
+ }
+ /**
+ * Get index of a rule.
+ */
+ ;
+
+ _proto.indexOf = function indexOf(rule) {
+ return this.rules.indexOf(rule);
+ }
+ /**
+ * Generates a CSS string.
+ */
+ ;
+
+ _proto.toString = function toString(options) {
+ return this.rules.toString(options);
+ };
+
+ return GlobalContainerRule;
+}();
+
+var GlobalPrefixedRule =
+/*#__PURE__*/
+function () {
+ function GlobalPrefixedRule(key, style, options) {
+ this.type = 'global';
+ this.at = at;
+ this.isProcessed = false;
+ this.key = key;
+ this.options = options;
+ var selector = key.substr(atPrefix.length);
+ this.rule = options.jss.createRule(selector, style, extends_extends({}, options, {
+ parent: this
+ }));
+ }
+
+ var _proto2 = GlobalPrefixedRule.prototype;
+
+ _proto2.toString = function toString(options) {
+ return this.rule ? this.rule.toString(options) : '';
+ };
+
+ return GlobalPrefixedRule;
+}();
+
+var separatorRegExp = /\s*,\s*/g;
+
+function addScope(selector, scope) {
+ var parts = selector.split(separatorRegExp);
+ var scoped = '';
+
+ for (var i = 0; i < parts.length; i++) {
+ scoped += scope + " " + parts[i].trim();
+ if (parts[i + 1]) scoped += ', ';
+ }
+
+ return scoped;
+}
+
+function handleNestedGlobalContainerRule(rule, sheet) {
+ var options = rule.options,
+ style = rule.style;
+ var rules = style ? style[at] : null;
+ if (!rules) return;
+
+ for (var name in rules) {
+ sheet.addRule(name, rules[name], extends_extends({}, options, {
+ selector: addScope(name, rule.selector)
+ }));
+ }
+
+ delete style[at];
+}
+
+function handlePrefixedGlobalRule(rule, sheet) {
+ var options = rule.options,
+ style = rule.style;
+
+ for (var prop in style) {
+ if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;
+ var selector = addScope(prop.substr(at.length), rule.selector);
+ sheet.addRule(selector, style[prop], extends_extends({}, options, {
+ selector: selector
+ }));
+ delete style[prop];
+ }
+}
+/**
+ * Convert nested rules to separate, remove them from original styles.
+ */
+
+
+function jssGlobal() {
+ function onCreateRule(name, styles, options) {
+ if (!name) return null;
+
+ if (name === at) {
+ return new GlobalContainerRule(name, styles, options);
+ }
+
+ if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {
+ return new GlobalPrefixedRule(name, styles, options);
+ }
+
+ var parent = options.parent;
+
+ if (parent) {
+ if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {
+ options.scoped = false;
+ }
+ }
+
+ if (!options.selector && options.scoped === false) {
+ options.selector = name;
+ }
+
+ return null;
+ }
+
+ function onProcessRule(rule, sheet) {
+ if (rule.type !== 'style' || !sheet) return;
+ handleNestedGlobalContainerRule(rule, sheet);
+ handlePrefixedGlobalRule(rule, sheet);
+ }
+
+ return {
+ onCreateRule: onCreateRule,
+ onProcessRule: onProcessRule
+ };
+}
+
+/* harmony default export */ const jss_plugin_global_esm = (jssGlobal);
+
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js
+
+
+
+var jss_plugin_nested_esm_separatorRegExp = /\s*,\s*/g;
+var parentRegExp = /&/g;
+var jss_plugin_nested_esm_refRegExp = /\$([\w-]+)/g;
+/**
+ * Convert nested rules to separate, remove them from original styles.
+ */
+
+function jssNested() {
+ // Get a function to be used for $ref replacement.
+ function getReplaceRef(container, sheet) {
+ return function (match, key) {
+ var rule = container.getRule(key) || sheet && sheet.getRule(key);
+
+ if (rule) {
+ return rule.selector;
+ }
+
+ false ? 0 : void 0;
+ return key;
+ };
+ }
+
+ function replaceParentRefs(nestedProp, parentProp) {
+ var parentSelectors = parentProp.split(jss_plugin_nested_esm_separatorRegExp);
+ var nestedSelectors = nestedProp.split(jss_plugin_nested_esm_separatorRegExp);
+ var result = '';
+
+ for (var i = 0; i < parentSelectors.length; i++) {
+ var parent = parentSelectors[i];
+
+ for (var j = 0; j < nestedSelectors.length; j++) {
+ var nested = nestedSelectors[j];
+ if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.
+
+ result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + " " + nested;
+ }
+ }
+
+ return result;
+ }
+
+ function getOptions(rule, container, prevOptions) {
+ // Options has been already created, now we only increase index.
+ if (prevOptions) return extends_extends({}, prevOptions, {
+ index: prevOptions.index + 1
+ });
+ var nestingLevel = rule.options.nestingLevel;
+ nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;
+
+ var options = extends_extends({}, rule.options, {
+ nestingLevel: nestingLevel,
+ index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.
+
+ });
+
+ delete options.name;
+ return options;
+ }
+
+ function onProcessStyle(style, rule, sheet) {
+ if (rule.type !== 'style') return style;
+ var styleRule = rule;
+ var container = styleRule.options.parent;
+ var options;
+ var replaceRef;
+
+ for (var prop in style) {
+ var isNested = prop.indexOf('&') !== -1;
+ var isNestedConditional = prop[0] === '@';
+ if (!isNested && !isNestedConditional) continue;
+ options = getOptions(styleRule, container, options);
+
+ if (isNested) {
+ var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for
+ // all nested rules within the sheet.
+
+ if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.
+
+ selector = selector.replace(jss_plugin_nested_esm_refRegExp, replaceRef);
+ var name = styleRule.key + "-" + prop;
+
+ if ('replaceRule' in container) {
+ // for backward compatibility
+ container.replaceRule(name, style[prop], extends_extends({}, options, {
+ selector: selector
+ }));
+ } else {
+ container.addRule(name, style[prop], extends_extends({}, options, {
+ selector: selector
+ }));
+ }
+ } else if (isNestedConditional) {
+ // Place conditional right after the parent rule to ensure right ordering.
+ container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {
+ selector: styleRule.selector
+ });
+ }
+
+ delete style[prop];
+ }
+
+ return style;
+ }
+
+ return {
+ onProcessStyle: onProcessStyle
+ };
+}
+
+/* harmony default export */ const jss_plugin_nested_esm = (jssNested);
+
+;// CONCATENATED MODULE: ./node_modules/hyphenate-style-name/index.js
+/* eslint-disable no-var, prefer-template */
+var uppercasePattern = /[A-Z]/g
+var msPattern = /^ms-/
+var cache = {}
+
+function toHyphenLower(match) {
+ return '-' + match.toLowerCase()
+}
+
+function hyphenateStyleName(name) {
+ if (cache.hasOwnProperty(name)) {
+ return cache[name]
+ }
+
+ var hName = name.replace(uppercasePattern, toHyphenLower)
+ return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)
+}
+
+/* harmony default export */ const hyphenate_style_name = (hyphenateStyleName);
+
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js
+
+
+/**
+ * Convert camel cased property names to dash separated.
+ */
+
+function convertCase(style) {
+ var converted = {};
+
+ for (var prop in style) {
+ var key = prop.indexOf('--') === 0 ? prop : hyphenate_style_name(prop);
+ converted[key] = style[prop];
+ }
+
+ if (style.fallbacks) {
+ if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);
+ }
+
+ return converted;
+}
+/**
+ * Allow camel cased property names by converting them back to dasherized.
+ */
+
+
+function camelCase() {
+ function onProcessStyle(style) {
+ if (Array.isArray(style)) {
+ // Handle rules like @font-face, which can have multiple styles in an array
+ for (var index = 0; index < style.length; index++) {
+ style[index] = convertCase(style[index]);
+ }
+
+ return style;
+ }
+
+ return convertCase(style);
+ }
+
+ function onChangeValue(value, prop, rule) {
+ if (prop.indexOf('--') === 0) {
+ return value;
+ }
+
+ var hyphenatedProp = hyphenate_style_name(prop); // There was no camel case in place
+
+ if (prop === hyphenatedProp) return value;
+ rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.
+
+ return null;
+ }
+
+ return {
+ onProcessStyle: onProcessStyle,
+ onChangeValue: onChangeValue
+ };
+}
+
+/* harmony default export */ const jss_plugin_camel_case_esm = (camelCase);
+
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js
+
+
+var px = hasCSSTOMSupport && CSS ? CSS.px : 'px';
+var ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';
+var percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';
+/**
+ * Generated jss-plugin-default-unit CSS property units
+ */
+
+var defaultUnits = {
+ // Animation properties
+ 'animation-delay': ms,
+ 'animation-duration': ms,
+ // Background properties
+ 'background-position': px,
+ 'background-position-x': px,
+ 'background-position-y': px,
+ 'background-size': px,
+ // Border Properties
+ border: px,
+ 'border-bottom': px,
+ 'border-bottom-left-radius': px,
+ 'border-bottom-right-radius': px,
+ 'border-bottom-width': px,
+ 'border-left': px,
+ 'border-left-width': px,
+ 'border-radius': px,
+ 'border-right': px,
+ 'border-right-width': px,
+ 'border-top': px,
+ 'border-top-left-radius': px,
+ 'border-top-right-radius': px,
+ 'border-top-width': px,
+ 'border-width': px,
+ 'border-block': px,
+ 'border-block-end': px,
+ 'border-block-end-width': px,
+ 'border-block-start': px,
+ 'border-block-start-width': px,
+ 'border-block-width': px,
+ 'border-inline': px,
+ 'border-inline-end': px,
+ 'border-inline-end-width': px,
+ 'border-inline-start': px,
+ 'border-inline-start-width': px,
+ 'border-inline-width': px,
+ 'border-start-start-radius': px,
+ 'border-start-end-radius': px,
+ 'border-end-start-radius': px,
+ 'border-end-end-radius': px,
+ // Margin properties
+ margin: px,
+ 'margin-bottom': px,
+ 'margin-left': px,
+ 'margin-right': px,
+ 'margin-top': px,
+ 'margin-block': px,
+ 'margin-block-end': px,
+ 'margin-block-start': px,
+ 'margin-inline': px,
+ 'margin-inline-end': px,
+ 'margin-inline-start': px,
+ // Padding properties
+ padding: px,
+ 'padding-bottom': px,
+ 'padding-left': px,
+ 'padding-right': px,
+ 'padding-top': px,
+ 'padding-block': px,
+ 'padding-block-end': px,
+ 'padding-block-start': px,
+ 'padding-inline': px,
+ 'padding-inline-end': px,
+ 'padding-inline-start': px,
+ // Mask properties
+ 'mask-position-x': px,
+ 'mask-position-y': px,
+ 'mask-size': px,
+ // Width and height properties
+ height: px,
+ width: px,
+ 'min-height': px,
+ 'max-height': px,
+ 'min-width': px,
+ 'max-width': px,
+ // Position properties
+ bottom: px,
+ left: px,
+ top: px,
+ right: px,
+ inset: px,
+ 'inset-block': px,
+ 'inset-block-end': px,
+ 'inset-block-start': px,
+ 'inset-inline': px,
+ 'inset-inline-end': px,
+ 'inset-inline-start': px,
+ // Shadow properties
+ 'box-shadow': px,
+ 'text-shadow': px,
+ // Column properties
+ 'column-gap': px,
+ 'column-rule': px,
+ 'column-rule-width': px,
+ 'column-width': px,
+ // Font and text properties
+ 'font-size': px,
+ 'font-size-delta': px,
+ 'letter-spacing': px,
+ 'text-decoration-thickness': px,
+ 'text-indent': px,
+ 'text-stroke': px,
+ 'text-stroke-width': px,
+ 'word-spacing': px,
+ // Motion properties
+ motion: px,
+ 'motion-offset': px,
+ // Outline properties
+ outline: px,
+ 'outline-offset': px,
+ 'outline-width': px,
+ // Perspective properties
+ perspective: px,
+ 'perspective-origin-x': percent,
+ 'perspective-origin-y': percent,
+ // Transform properties
+ 'transform-origin': percent,
+ 'transform-origin-x': percent,
+ 'transform-origin-y': percent,
+ 'transform-origin-z': percent,
+ // Transition properties
+ 'transition-delay': ms,
+ 'transition-duration': ms,
+ // Alignment properties
+ 'vertical-align': px,
+ 'flex-basis': px,
+ // Some random properties
+ 'shape-margin': px,
+ size: px,
+ gap: px,
+ // Grid properties
+ grid: px,
+ 'grid-gap': px,
+ 'row-gap': px,
+ 'grid-row-gap': px,
+ 'grid-column-gap': px,
+ 'grid-template-rows': px,
+ 'grid-template-columns': px,
+ 'grid-auto-rows': px,
+ 'grid-auto-columns': px,
+ // Not existing properties.
+ // Used to avoid issues with jss-plugin-expand integration.
+ 'box-shadow-x': px,
+ 'box-shadow-y': px,
+ 'box-shadow-blur': px,
+ 'box-shadow-spread': px,
+ 'font-line-height': px,
+ 'text-shadow-x': px,
+ 'text-shadow-y': px,
+ 'text-shadow-blur': px
+};
+
+/**
+ * Clones the object and adds a camel cased property version.
+ */
+
+function addCamelCasedVersion(obj) {
+ var regExp = /(-[a-z])/g;
+
+ var replace = function replace(str) {
+ return str[1].toUpperCase();
+ };
+
+ var newObj = {};
+
+ for (var key in obj) {
+ newObj[key] = obj[key];
+ newObj[key.replace(regExp, replace)] = obj[key];
+ }
+
+ return newObj;
+}
+
+var units = addCamelCasedVersion(defaultUnits);
+/**
+ * Recursive deep style passing function
+ */
+
+function iterate(prop, value, options) {
+ if (value == null) return value;
+
+ if (Array.isArray(value)) {
+ for (var i = 0; i < value.length; i++) {
+ value[i] = iterate(prop, value[i], options);
+ }
+ } else if (typeof value === 'object') {
+ if (prop === 'fallbacks') {
+ for (var innerProp in value) {
+ value[innerProp] = iterate(innerProp, value[innerProp], options);
+ }
+ } else {
+ for (var _innerProp in value) {
+ value[_innerProp] = iterate(prop + "-" + _innerProp, value[_innerProp], options);
+ }
+ } // eslint-disable-next-line no-restricted-globals
+
+ } else if (typeof value === 'number' && isNaN(value) === false) {
+ var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.
+
+ if (unit && !(value === 0 && unit === px)) {
+ return typeof unit === 'function' ? unit(value).toString() : "" + value + unit;
+ }
+
+ return value.toString();
+ }
+
+ return value;
+}
+/**
+ * Add unit to numeric values.
+ */
+
+
+function defaultUnit(options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ var camelCasedOptions = addCamelCasedVersion(options);
+
+ function onProcessStyle(style, rule) {
+ if (rule.type !== 'style') return style;
+
+ for (var prop in style) {
+ style[prop] = iterate(prop, style[prop], camelCasedOptions);
+ }
+
+ return style;
+ }
+
+ function onChangeValue(value, prop) {
+ return iterate(prop, value, camelCasedOptions);
+ }
+
+ return {
+ onProcessStyle: onProcessStyle,
+ onChangeValue: onChangeValue
+ };
+}
+
+/* harmony default export */ const jss_plugin_default_unit_esm = (defaultUnit);
+
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+function _arrayLikeToArray(arr, len) {
+ if (len == null || len > arr.length) len = arr.length;
+
+ for (var i = 0, arr2 = new Array(len); i < len; i++) {
+ arr2[i] = arr[i];
+ }
+
+ return arr2;
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+
+function _arrayWithoutHoles(arr) {
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
+function _iterableToArray(iter) {
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+
+function _unsupportedIterableToArray(o, minLen) {
+ if (!o) return;
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
+ var n = Object.prototype.toString.call(o).slice(8, -1);
+ if (n === "Object" && o.constructor) n = o.constructor.name;
+ if (n === "Map" || n === "Set") return Array.from(o);
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
+function _nonIterableSpread() {
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+}
+;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+
+
+
+
+function _toConsumableArray(arr) {
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
+}
+;// CONCATENATED MODULE: ./node_modules/css-vendor/dist/css-vendor.esm.js
+
+
+
+// Export javascript style and css style vendor prefixes.
+var js = '';
+var css = '';
+var vendor = '';
+var browser = '';
+var isTouch = dist_module && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.
+
+if (dist_module) {
+ // Order matters. We need to check Webkit the last one because
+ // other vendors use to add Webkit prefixes to some properties
+ var jsCssMap = {
+ Moz: '-moz-',
+ ms: '-ms-',
+ O: '-o-',
+ Webkit: '-webkit-'
+ };
+
+ var _document$createEleme = document.createElement('p'),
+ style = _document$createEleme.style;
+
+ var testProp = 'Transform';
+
+ for (var key in jsCssMap) {
+ if (key + testProp in style) {
+ js = key;
+ css = jsCssMap[key];
+ break;
+ }
+ } // Correctly detect the Edge browser.
+
+
+ if (js === 'Webkit' && 'msHyphens' in style) {
+ js = 'ms';
+ css = jsCssMap.ms;
+ browser = 'edge';
+ } // Correctly detect the Safari browser.
+
+
+ if (js === 'Webkit' && '-apple-trailing-word' in style) {
+ vendor = 'apple';
+ }
+}
+/**
+ * Vendor prefix string for the current browser.
+ *
+ * @type {{js: String, css: String, vendor: String, browser: String}}
+ * @api public
+ */
+
+
+var prefix = {
+ js: js,
+ css: css,
+ vendor: vendor,
+ browser: browser,
+ isTouch: isTouch
+};
+
+/**
+ * Test if a keyframe at-rule should be prefixed or not
+ *
+ * @param {String} vendor prefix string for the current browser.
+ * @return {String}
+ * @api public
+ */
+
+function supportedKeyframes(key) {
+ // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'
+ if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.
+ // https://caniuse.com/#search=keyframes
+
+ if (prefix.js === 'ms') return key;
+ return "@" + prefix.css + "keyframes" + key.substr(10);
+}
+
+// https://caniuse.com/#search=appearance
+
+var appearence = {
+ noPrefill: ['appearance'],
+ supportedProperty: function supportedProperty(prop) {
+ if (prop !== 'appearance') return false;
+ if (prefix.js === 'ms') return "-webkit-" + prop;
+ return prefix.css + prop;
+ }
+};
+
+// https://caniuse.com/#search=color-adjust
+
+var colorAdjust = {
+ noPrefill: ['color-adjust'],
+ supportedProperty: function supportedProperty(prop) {
+ if (prop !== 'color-adjust') return false;
+ if (prefix.js === 'Webkit') return prefix.css + "print-" + prop;
+ return prop;
+ }
+};
+
+var regExp = /[-\s]+(.)?/g;
+/**
+ * Replaces the letter with the capital letter
+ *
+ * @param {String} match
+ * @param {String} c
+ * @return {String}
+ * @api private
+ */
+
+function toUpper(match, c) {
+ return c ? c.toUpperCase() : '';
+}
+/**
+ * Convert dash separated strings to camel-cased.
+ *
+ * @param {String} str
+ * @return {String}
+ * @api private
+ */
+
+
+function camelize(str) {
+ return str.replace(regExp, toUpper);
+}
+
+/**
+ * Convert dash separated strings to pascal cased.
+ *
+ * @param {String} str
+ * @return {String}
+ * @api private
+ */
+
+function pascalize(str) {
+ return camelize("-" + str);
+}
+
+// but we can use a longhand property instead.
+// https://caniuse.com/#search=mask
+
+var mask = {
+ noPrefill: ['mask'],
+ supportedProperty: function supportedProperty(prop, style) {
+ if (!/^mask/.test(prop)) return false;
+
+ if (prefix.js === 'Webkit') {
+ var longhand = 'mask-image';
+
+ if (camelize(longhand) in style) {
+ return prop;
+ }
+
+ if (prefix.js + pascalize(longhand) in style) {
+ return prefix.css + prop;
+ }
+ }
+
+ return prop;
+ }
+};
+
+// https://caniuse.com/#search=text-orientation
+
+var textOrientation = {
+ noPrefill: ['text-orientation'],
+ supportedProperty: function supportedProperty(prop) {
+ if (prop !== 'text-orientation') return false;
+
+ if (prefix.vendor === 'apple' && !prefix.isTouch) {
+ return prefix.css + prop;
+ }
+
+ return prop;
+ }
+};
+
+// https://caniuse.com/#search=transform
+
+var transform = {
+ noPrefill: ['transform'],
+ supportedProperty: function supportedProperty(prop, style, options) {
+ if (prop !== 'transform') return false;
+
+ if (options.transform) {
+ return prop;
+ }
+
+ return prefix.css + prop;
+ }
+};
+
+// https://caniuse.com/#search=transition
+
+var transition = {
+ noPrefill: ['transition'],
+ supportedProperty: function supportedProperty(prop, style, options) {
+ if (prop !== 'transition') return false;
+
+ if (options.transition) {
+ return prop;
+ }
+
+ return prefix.css + prop;
+ }
+};
+
+// https://caniuse.com/#search=writing-mode
+
+var writingMode = {
+ noPrefill: ['writing-mode'],
+ supportedProperty: function supportedProperty(prop) {
+ if (prop !== 'writing-mode') return false;
+
+ if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {
+ return prefix.css + prop;
+ }
+
+ return prop;
+ }
+};
+
+// https://caniuse.com/#search=user-select
+
+var userSelect = {
+ noPrefill: ['user-select'],
+ supportedProperty: function supportedProperty(prop) {
+ if (prop !== 'user-select') return false;
+
+ if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {
+ return prefix.css + prop;
+ }
+
+ return prop;
+ }
+};
+
+// https://caniuse.com/#search=multicolumn
+// https://github.com/postcss/autoprefixer/issues/491
+// https://github.com/postcss/autoprefixer/issues/177
+
+var breakPropsOld = {
+ supportedProperty: function supportedProperty(prop, style) {
+ if (!/^break-/.test(prop)) return false;
+
+ if (prefix.js === 'Webkit') {
+ var jsProp = "WebkitColumn" + pascalize(prop);
+ return jsProp in style ? prefix.css + "column-" + prop : false;
+ }
+
+ if (prefix.js === 'Moz') {
+ var _jsProp = "page" + pascalize(prop);
+
+ return _jsProp in style ? "page-" + prop : false;
+ }
+
+ return false;
+ }
+};
+
+// See https://github.com/postcss/autoprefixer/issues/324.
+
+var inlineLogicalOld = {
+ supportedProperty: function supportedProperty(prop, style) {
+ if (!/^(border|margin|padding)-inline/.test(prop)) return false;
+ if (prefix.js === 'Moz') return prop;
+ var newProp = prop.replace('-inline', '');
+ return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
+ }
+};
+
+// Camelization is required because we can't test using.
+// CSS syntax for e.g. in FF.
+
+var unprefixed = {
+ supportedProperty: function supportedProperty(prop, style) {
+ return camelize(prop) in style ? prop : false;
+ }
+};
+
+var prefixed = {
+ supportedProperty: function supportedProperty(prop, style) {
+ var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.
+
+ if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.
+
+ if (prop[0] === '-' && prop[1] === '-') return prop;
+ if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.
+
+ if (prefix.js !== 'Webkit' && "Webkit" + pascalized in style) return "-webkit-" + prop;
+ return false;
+ }
+};
+
+// https://caniuse.com/#search=scroll-snap
+
+var scrollSnap = {
+ supportedProperty: function supportedProperty(prop) {
+ if (prop.substring(0, 11) !== 'scroll-snap') return false;
+
+ if (prefix.js === 'ms') {
+ return "" + prefix.css + prop;
+ }
+
+ return prop;
+ }
+};
+
+// https://caniuse.com/#search=overscroll-behavior
+
+var overscrollBehavior = {
+ supportedProperty: function supportedProperty(prop) {
+ if (prop !== 'overscroll-behavior') return false;
+
+ if (prefix.js === 'ms') {
+ return prefix.css + "scroll-chaining";
+ }
+
+ return prop;
+ }
+};
+
+var propMap = {
+ 'flex-grow': 'flex-positive',
+ 'flex-shrink': 'flex-negative',
+ 'flex-basis': 'flex-preferred-size',
+ 'justify-content': 'flex-pack',
+ order: 'flex-order',
+ 'align-items': 'flex-align',
+ 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.
+
+}; // Support old flex spec from 2012.
+
+var flex2012 = {
+ supportedProperty: function supportedProperty(prop, style) {
+ var newProp = propMap[prop];
+ if (!newProp) return false;
+ return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
+ }
+};
+
+var propMap$1 = {
+ flex: 'box-flex',
+ 'flex-grow': 'box-flex',
+ 'flex-direction': ['box-orient', 'box-direction'],
+ order: 'box-ordinal-group',
+ 'align-items': 'box-align',
+ 'flex-flow': ['box-orient', 'box-direction'],
+ 'justify-content': 'box-pack'
+};
+var propKeys = Object.keys(propMap$1);
+
+var prefixCss = function prefixCss(p) {
+ return prefix.css + p;
+}; // Support old flex spec from 2009.
+
+
+var flex2009 = {
+ supportedProperty: function supportedProperty(prop, style, _ref) {
+ var multiple = _ref.multiple;
+
+ if (propKeys.indexOf(prop) > -1) {
+ var newProp = propMap$1[prop];
+
+ if (!Array.isArray(newProp)) {
+ return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;
+ }
+
+ if (!multiple) return false;
+
+ for (var i = 0; i < newProp.length; i++) {
+ if (!(prefix.js + pascalize(newProp[0]) in style)) {
+ return false;
+ }
+ }
+
+ return newProp.map(prefixCss);
+ }
+
+ return false;
+ }
+};
+
+// plugins = [
+// ...plugins,
+// breakPropsOld,
+// inlineLogicalOld,
+// unprefixed,
+// prefixed,
+// scrollSnap,
+// flex2012,
+// flex2009
+// ]
+// Plugins without 'noPrefill' value, going last.
+// 'flex-*' plugins should be at the bottom.
+// 'flex2009' going after 'flex2012'.
+// 'prefixed' going after 'unprefixed'
+
+var css_vendor_esm_plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];
+var propertyDetectors = css_vendor_esm_plugins.filter(function (p) {
+ return p.supportedProperty;
+}).map(function (p) {
+ return p.supportedProperty;
+});
+var noPrefill = css_vendor_esm_plugins.filter(function (p) {
+ return p.noPrefill;
+}).reduce(function (a, p) {
+ a.push.apply(a, _toConsumableArray(p.noPrefill));
+ return a;
+}, []);
+
+var el;
+var css_vendor_esm_cache = {};
+
+if (dist_module) {
+ el = document.createElement('p'); // We test every property on vendor prefix requirement.
+ // Once tested, result is cached. It gives us up to 70% perf boost.
+ // http://jsperf.com/element-style-object-access-vs-plain-object
+ //
+ // Prefill cache with known css properties to reduce amount of
+ // properties we need to feature test at runtime.
+ // http://davidwalsh.name/vendor-prefix
+
+ var computed = window.getComputedStyle(document.documentElement, '');
+
+ for (var key$1 in computed) {
+ // eslint-disable-next-line no-restricted-globals
+ if (!isNaN(key$1)) css_vendor_esm_cache[computed[key$1]] = computed[key$1];
+ } // Properties that cannot be correctly detected using the
+ // cache prefill method.
+
+
+ noPrefill.forEach(function (x) {
+ return delete css_vendor_esm_cache[x];
+ });
+}
+/**
+ * Test if a property is supported, returns supported property with vendor
+ * prefix if required. Returns `false` if not supported.
+ *
+ * @param {String} prop dash separated
+ * @param {Object} [options]
+ * @return {String|Boolean}
+ * @api public
+ */
+
+
+function supportedProperty(prop, options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ // For server-side rendering.
+ if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.
+
+ if ( true && css_vendor_esm_cache[prop] != null) {
+ return css_vendor_esm_cache[prop];
+ } // Check if 'transition' or 'transform' natively supported in browser.
+
+
+ if (prop === 'transition' || prop === 'transform') {
+ options[prop] = prop in el.style;
+ } // Find a plugin for current prefix property.
+
+
+ for (var i = 0; i < propertyDetectors.length; i++) {
+ css_vendor_esm_cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.
+
+ if (css_vendor_esm_cache[prop]) break;
+ } // Reset styles for current property.
+ // Firefox can even throw an error for invalid properties, e.g., "0".
+
+
+ try {
+ el.style[prop] = '';
+ } catch (err) {
+ return false;
+ }
+
+ return css_vendor_esm_cache[prop];
+}
+
+var cache$1 = {};
+var transitionProperties = {
+ transition: 1,
+ 'transition-property': 1,
+ '-webkit-transition': 1,
+ '-webkit-transition-property': 1
+};
+var transPropsRegExp = /(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g;
+var el$1;
+/**
+ * Returns prefixed value transition/transform if needed.
+ *
+ * @param {String} match
+ * @param {String} p1
+ * @param {String} p2
+ * @return {String}
+ * @api private
+ */
+
+function prefixTransitionCallback(match, p1, p2) {
+ if (p1 === 'var') return 'var';
+ if (p1 === 'all') return 'all';
+ if (p2 === 'all') return ', all';
+ var prefixedValue = p1 ? supportedProperty(p1) : ", " + supportedProperty(p2);
+ if (!prefixedValue) return p1 || p2;
+ return prefixedValue;
+}
+
+if (dist_module) el$1 = document.createElement('p');
+/**
+ * Returns prefixed value if needed. Returns `false` if value is not supported.
+ *
+ * @param {String} property
+ * @param {String} value
+ * @return {String|Boolean}
+ * @api public
+ */
+
+function supportedValue(property, value) {
+ // For server-side rendering.
+ var prefixedValue = value;
+ if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.
+ // We want only prefixable values here.
+ // eslint-disable-next-line no-restricted-globals
+
+ if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {
+ return prefixedValue;
+ } // Create cache key for current value.
+
+
+ var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.
+
+ if ( true && cache$1[cacheKey] != null) {
+ return cache$1[cacheKey];
+ } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.
+
+
+ try {
+ // Test value as it is.
+ el$1.style[property] = prefixedValue;
+ } catch (err) {
+ // Return false if value not supported.
+ cache$1[cacheKey] = false;
+ return false;
+ } // If 'transition' or 'transition-property' property.
+
+
+ if (transitionProperties[property]) {
+ prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);
+ } else if (el$1.style[property] === '') {
+ // Value with a vendor prefix.
+ prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert "flex" to "-ms-flexbox" for IE10.
+
+ if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.
+
+ el$1.style[property] = prefixedValue; // Return false if value not supported.
+
+ if (el$1.style[property] === '') {
+ cache$1[cacheKey] = false;
+ return false;
+ }
+ } // Reset styles for current property.
+
+
+ el$1.style[property] = ''; // Write current value to cache.
+
+ cache$1[cacheKey] = prefixedValue;
+ return cache$1[cacheKey];
+}
+
+
+
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js
+
+
+
+/**
+ * Add vendor prefix to a property name when needed.
+ */
+
+function jssVendorPrefixer() {
+ function onProcessRule(rule) {
+ if (rule.type === 'keyframes') {
+ var atRule = rule;
+ atRule.at = supportedKeyframes(atRule.at);
+ }
+ }
+
+ function prefixStyle(style) {
+ for (var prop in style) {
+ var value = style[prop];
+
+ if (prop === 'fallbacks' && Array.isArray(value)) {
+ style[prop] = value.map(prefixStyle);
+ continue;
+ }
+
+ var changeProp = false;
+ var supportedProp = supportedProperty(prop);
+ if (supportedProp && supportedProp !== prop) changeProp = true;
+ var changeValue = false;
+ var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));
+ if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;
+
+ if (changeProp || changeValue) {
+ if (changeProp) delete style[prop];
+ style[supportedProp || prop] = supportedValue$1 || value;
+ }
+ }
+
+ return style;
+ }
+
+ function onProcessStyle(style, rule) {
+ if (rule.type !== 'style') return style;
+ return prefixStyle(style);
+ }
+
+ function onChangeValue(value, prop) {
+ return supportedValue(prop, toCssValue(value)) || value;
+ }
+
+ return {
+ onProcessRule: onProcessRule,
+ onProcessStyle: onProcessStyle,
+ onChangeValue: onChangeValue
+ };
+}
+
+/* harmony default export */ const jss_plugin_vendor_prefixer_esm = (jssVendorPrefixer);
+
+;// CONCATENATED MODULE: ./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js
+/**
+ * Sort props by length.
+ */
+function jssPropsSort() {
+ var sort = function sort(prop0, prop1) {
+ if (prop0.length === prop1.length) {
+ return prop0 > prop1 ? 1 : -1;
+ }
+
+ return prop0.length - prop1.length;
+ };
+
+ return {
+ onProcessStyle: function onProcessStyle(style, rule) {
+ if (rule.type !== 'style') return style;
+ var newStyle = {};
+ var props = Object.keys(style).sort(sort);
+
+ for (var i = 0; i < props.length; i++) {
+ newStyle[props[i]] = style[props[i]];
+ }
+
+ return newStyle;
+ }
+ };
+}
+
+/* harmony default export */ const jss_plugin_props_sort_esm = (jssPropsSort);
+
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/jssPreset/jssPreset.js
+
+
+
+
+
+
+ // Subset of jss-preset-default with only the plugins the MUI components are using.
+
+function jssPreset_jssPreset() {
+ return {
+ plugins: [jss_plugin_rule_value_function_esm(), jss_plugin_global_esm(), jss_plugin_nested_esm(), jss_plugin_camel_case_esm(), jss_plugin_default_unit_esm(), // Disable the vendor prefixer server-side, it does nothing.
+ // This way, we can get a performance boost.
+ // In the documentation, we are using `autoprefixer` to solve this problem.
+ typeof window === 'undefined' ? null : jss_plugin_vendor_prefixer_esm(), jss_plugin_props_sort_esm()]
+ };
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/StylesProvider/StylesProvider.js
+
+
+const _excluded = (/* unused pure expression or super */ null && (["children", "injectFirst", "disableGeneration"]));
+
+
+
+
+
+ // Default JSS instance.
+
+
+const jss = createJss(jssPreset_jssPreset()); // Use a singleton or the provided one by the context.
+//
+// The counter-based approach doesn't tolerate any mistake.
+// It's much safer to use the same counter everywhere.
+
+const generateClassName = createGenerateClassName(); // Exported for test purposes
+
+const sheetsManager = new Map();
+const defaultOptions = {
+ disableGeneration: false,
+ generateClassName,
+ jss,
+ sheetsCache: null,
+ sheetsManager,
+ sheetsRegistry: null
+};
+const StylesContext = /*#__PURE__*/react.createContext(defaultOptions);
+
+if (false) {}
+
+let injectFirstNode;
+function StylesProvider(props) {
+ const {
+ children,
+ injectFirst = false,
+ disableGeneration = false
+ } = props,
+ localOptions = _objectWithoutPropertiesLoose(props, _excluded);
+
+ const outerOptions = React.useContext(StylesContext);
+
+ const context = _extends({}, outerOptions, {
+ disableGeneration
+ }, localOptions);
+
+ if (false) {}
+
+ if (false) {}
+
+ if (false) {}
+
+ if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {
+ if (!injectFirstNode) {
+ const head = document.head;
+ injectFirstNode = document.createComment('mui-inject-first');
+ head.insertBefore(injectFirstNode, head.firstChild);
+ }
+
+ context.jss = create({
+ plugins: jssPreset().plugins,
+ insertionPoint: injectFirstNode
+ });
+ }
+
+ return /*#__PURE__*/_jsx(StylesContext.Provider, {
+ value: context,
+ children: children
+ });
+}
+ false ? 0 : void 0;
+
+if (false) {}
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/makeStyles/indexCounter.js
+/* eslint-disable import/prefer-default-export */
+// Global index counter to preserve source order.
+// We create the style sheet during the creation of the component,
+// children are handled after the parents, so the order of style elements would be parent->child.
+// It is a problem though when a parent passes a className
+// which needs to override any child's styles.
+// StyleSheet of the child has a higher specificity, because of the source order.
+// So our solution is to render sheets them in the reverse order child->sheet, so
+// that parent has a higher specificity.
+let indexCounter = -1e9;
+function increment() {
+ indexCounter += 1;
+
+ if (false) {}
+
+ return indexCounter;
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/utils/esm/deepmerge.js
+
+function isPlainObject(item) {
+ return item !== null && typeof item === 'object' && item.constructor === Object;
+}
+function deepmerge(target, source, options = {
+ clone: true
+}) {
+ const output = options.clone ? extends_extends({}, target) : target;
+
+ if (isPlainObject(target) && isPlainObject(source)) {
+ Object.keys(source).forEach(key => {
+ // Avoid prototype pollution
+ if (key === '__proto__') {
+ return;
+ }
+
+ if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {
+ // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.
+ output[key] = deepmerge(target[key], source[key], options);
+ } else {
+ output[key] = source[key];
+ }
+ });
+ }
+
+ return output;
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/utils/esm/formatMuiErrorMessage.js
+/**
+ * WARNING: Don't import this directly.
+ * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.
+ * @param {number} code
+ */
+function formatMuiErrorMessage(code) {
+ // Apply babel-plugin-transform-template-literals in loose mode
+ // loose mode is safe iff we're concatenating primitives
+ // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose
+
+ /* eslint-disable prefer-template */
+ let url = 'https://mui.com/production-error/?code=' + code;
+
+ for (let i = 1; i < arguments.length; i += 1) {
+ // rest params over-transpile for this case
+ // eslint-disable-next-line prefer-rest-params
+ url += '&args[]=' + encodeURIComponent(arguments[i]);
+ }
+
+ return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';
+ /* eslint-enable prefer-template */
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/utils/esm/capitalize.js
+
+// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.
+//
+// A strict capitalization should uppercase the first letter of each word in the sentence.
+// We only handle the first word.
+function capitalize(string) {
+ if (typeof string !== 'string') {
+ throw new Error( false ? 0 : formatMuiErrorMessage(7));
+ }
+
+ return string.charAt(0).toUpperCase() + string.slice(1);
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/propsToClassKey/propsToClassKey.js
+
+const propsToClassKey_excluded = ["variant"];
+
+
+function isEmpty(string) {
+ return string.length === 0;
+}
+/**
+ * Generates string classKey based on the properties provided. It starts with the
+ * variant if defined, and then it appends all other properties in alphabetical order.
+ * @param {object} props - the properties for which the classKey should be created
+ */
+
+
+function propsToClassKey(props) {
+ const {
+ variant
+ } = props,
+ other = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(props, propsToClassKey_excluded);
+
+ let classKey = variant || '';
+ Object.keys(other).sort().forEach(key => {
+ if (key === 'color') {
+ classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);
+ } else {
+ classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;
+ }
+ });
+ return classKey;
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/getStylesCreator/getStylesCreator.js
+
+
+
+
+function getStylesCreator(stylesOrCreator) {
+ const themingEnabled = typeof stylesOrCreator === 'function';
+
+ if (false) {}
+
+ return {
+ create: (theme, name) => {
+ let styles;
+
+ try {
+ styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;
+ } catch (err) {
+ if (false) {}
+
+ throw err;
+ }
+
+ if (!name || !theme.components || !theme.components[name] || !theme.components[name].styleOverrides && !theme.components[name].variants) {
+ return styles;
+ }
+
+ const overrides = theme.components[name].styleOverrides || {};
+ const variants = theme.components[name].variants || [];
+
+ const stylesWithOverrides = extends_extends({}, styles);
+
+ Object.keys(overrides).forEach(key => {
+ if (false) {}
+
+ stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key] || {}, overrides[key]);
+ });
+ variants.forEach(definition => {
+ const classKey = propsToClassKey(definition.props);
+ stylesWithOverrides[classKey] = deepmerge(stylesWithOverrides[classKey] || {}, definition.style);
+ });
+ return stylesWithOverrides;
+ },
+ options: {}
+ };
+}
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/getStylesCreator/noopTheme.js
+// We use the same empty object to ref count the styles that don't need a theme object.
+const noopTheme = {};
+/* harmony default export */ const getStylesCreator_noopTheme = (noopTheme);
+;// CONCATENATED MODULE: ./node_modules/@mui/styles/makeStyles/makeStyles.js
+
+
+const makeStyles_excluded = ["name", "classNamePrefix", "Component", "defaultTheme"];
+
+
+
+
+
+
+
+
+
+
+function getClasses({
+ state,
+ stylesOptions
+}, classes, Component) {
+ if (stylesOptions.disableGeneration) {
+ return classes || {};
+ }
+
+ if (!state.cacheClasses) {
+ state.cacheClasses = {
+ // Cache for the finalized classes value.
+ value: null,
+ // Cache for the last used classes prop pointer.
+ lastProp: null,
+ // Cache for the last used rendered classes pointer.
+ lastJSS: {}
+ };
+ } // Tracks if either the rendered classes or classes prop has changed,
+ // requiring the generation of a new finalized classes object.
+
+
+ let generate = false;
+
+ if (state.classes !== state.cacheClasses.lastJSS) {
+ state.cacheClasses.lastJSS = state.classes;
+ generate = true;
+ }
+
+ if (classes !== state.cacheClasses.lastProp) {
+ state.cacheClasses.lastProp = classes;
+ generate = true;
+ }
+
+ if (generate) {
+ state.cacheClasses.value = mergeClasses({
+ baseClasses: state.cacheClasses.lastJSS,
+ newClasses: classes,
+ Component
+ });
+ }
+
+ return state.cacheClasses.value;
+}
+
+function attach({
+ state,
+ theme,
+ stylesOptions,
+ stylesCreator,
+ name
+}, props) {
+ if (stylesOptions.disableGeneration) {
+ return;
+ }
+
+ let sheetManager = makeStyles_multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);
+
+ if (!sheetManager) {
+ sheetManager = {
+ refs: 0,
+ staticSheet: null,
+ dynamicStyles: null
+ };
+ makeStyles_multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);
+ }
+
+ const options = extends_extends({}, stylesCreator.options, stylesOptions, {
+ theme,
+ flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'
+ });
+
+ options.generateId = options.serverGenerateClassName || options.generateClassName;
+ const sheetsRegistry = stylesOptions.sheetsRegistry;
+
+ if (sheetManager.refs === 0) {
+ let staticSheet;
+
+ if (stylesOptions.sheetsCache) {
+ staticSheet = makeStyles_multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);
+ }
+
+ const styles = stylesCreator.create(theme, name);
+
+ if (!staticSheet) {
+ staticSheet = stylesOptions.jss.createStyleSheet(styles, extends_extends({
+ link: false
+ }, options));
+ staticSheet.attach();
+
+ if (stylesOptions.sheetsCache) {
+ makeStyles_multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);
+ }
+ }
+
+ if (sheetsRegistry) {
+ sheetsRegistry.add(staticSheet);
+ }
+
+ sheetManager.staticSheet = staticSheet;
+ sheetManager.dynamicStyles = getDynamicStyles(styles);
+ }
+
+ if (sheetManager.dynamicStyles) {
+ const dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, extends_extends({
+ link: true
+ }, options));
+ dynamicSheet.update(props);
+ dynamicSheet.attach();
+ state.dynamicSheet = dynamicSheet;
+ state.classes = mergeClasses({
+ baseClasses: sheetManager.staticSheet.classes,
+ newClasses: dynamicSheet.classes
+ });
+
+ if (sheetsRegistry) {
+ sheetsRegistry.add(dynamicSheet);
+ }
+ } else {
+ state.classes = sheetManager.staticSheet.classes;
+ }
+
+ sheetManager.refs += 1;
+}
+
+function update({
+ state
+}, props) {
+ if (state.dynamicSheet) {
+ state.dynamicSheet.update(props);
+ }
+}
+
+function detach({
+ state,
+ theme,
+ stylesOptions,
+ stylesCreator
+}) {
+ if (stylesOptions.disableGeneration) {
+ return;
+ }
+
+ const sheetManager = makeStyles_multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);
+ sheetManager.refs -= 1;
+ const sheetsRegistry = stylesOptions.sheetsRegistry;
+
+ if (sheetManager.refs === 0) {
+ makeStyles_multiKeyStore["delete"](stylesOptions.sheetsManager, stylesCreator, theme);
+ stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);
+
+ if (sheetsRegistry) {
+ sheetsRegistry.remove(sheetManager.staticSheet);
+ }
+ }
+
+ if (state.dynamicSheet) {
+ stylesOptions.jss.removeStyleSheet(state.dynamicSheet);
+
+ if (sheetsRegistry) {
+ sheetsRegistry.remove(state.dynamicSheet);
+ }
+ }
+}
+
+function useSynchronousEffect(func, values) {
+ const key = react.useRef([]);
+ let output; // Store "generation" key. Just returns a new object every time
+
+ const currentKey = react.useMemo(() => ({}), values); // eslint-disable-line react-hooks/exhaustive-deps
+ // "the first render", or "memo dropped the value"
+
+ if (key.current !== currentKey) {
+ key.current = currentKey;
+ output = func();
+ }
+
+ react.useEffect(() => () => {
+ if (output) {
+ output();
+ }
+ }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps
+ );
+}
+
+function makeStyles(stylesOrCreator, options = {}) {
+ const {
+ // alias for classNamePrefix, if provided will listen to theme (required for theme.components[name].styleOverrides)
+ name,
+ // Help with debuggability.
+ classNamePrefix: classNamePrefixOption,
+ Component,
+ defaultTheme = getStylesCreator_noopTheme
+ } = options,
+ stylesOptions2 = objectWithoutPropertiesLoose_objectWithoutPropertiesLoose(options, makeStyles_excluded);
+
+ const stylesCreator = getStylesCreator(stylesOrCreator);
+ const classNamePrefix = name || classNamePrefixOption || 'makeStyles';
+ stylesCreator.options = {
+ index: increment(),
+ name,
+ meta: classNamePrefix,
+ classNamePrefix
+ };
+
+ const useStyles = (props = {}) => {
+ const theme = useTheme() || defaultTheme;
+
+ const stylesOptions = extends_extends({}, react.useContext(StylesContext), stylesOptions2);
+
+ const instance = react.useRef();
+ const shouldUpdate = react.useRef();
+ useSynchronousEffect(() => {
+ const current = {
+ name,
+ state: {},
+ stylesCreator,
+ stylesOptions,
+ theme
+ };
+ attach(current, props);
+ shouldUpdate.current = false;
+ instance.current = current;
+ return () => {
+ detach(current);
+ };
+ }, [theme, stylesCreator]);
+ react.useEffect(() => {
+ if (shouldUpdate.current) {
+ update(instance.current, props);
+ }
+
+ shouldUpdate.current = true;
+ });
+ const classes = getClasses(instance.current, props.classes, Component);
+
+ if (false) {}
+
+ if (false) {}
+
+ return classes;
+ };
+
+ return useStyles;
+}
+;// CONCATENATED MODULE: ./src/components/MapPosition.tsx
+var __assign = (undefined && undefined.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+
+/**
+ * Create a container that renders the map position after the mouse
+ * drag on the map has ended
+ *
+ * @returns {JSX.Element} the map position container
+ */
+var MapPosition = function () {
+ // get a reference to the windows object
+ var w = window;
+ // get a reference to the geoview api
+ var cgpv = w['cgpv'];
+ // import exported modules from the viewer
+ var api = cgpv.api, react = cgpv.react, ui = cgpv.ui, useTranslation = cgpv.useTranslation;
+ /** use react hooks, these hooks uses the viewer's context, importing them from the
+ * importing them from the react module at the top will not work
+ */
+ var useState = react.useState, useEffect = react.useEffect;
+ // import another hook used by material ui, again if you import it directly it won't work
+ var makeStyles = ui.makeStyles;
+ // state used to store latitude and longtitude after map drag end
+ var _a = useState(0), lat = _a[0], setLat = _a[1];
+ var _b = useState(0), lng = _b[0], setLng = _b[1];
+ var t = useTranslation().t;
+ /**
+ * style the position container
+ */
+ var useStyles = makeStyles(function (theme) { return ({
+ positionContainer: {
+ backgroundColor: theme.palette.primary.light,
+ padding: 10,
+ height: 180,
+ overflow: 'auto',
+ pointerEvents: 'initial',
+ },
+ }); });
+ var classes = useStyles();
+ useEffect(function () {
+ // listen to map drag move end event
+ api.on(api.eventNames.MAP.EVENT_MAP_MOVE_END, function (res) {
+ // if the event came from the loaded map
+ if (res.handlerName === 'mapWM') {
+ // get the returned position
+ var position = res.lnglat;
+ // update the state
+ if (position) {
+ setLng(position[0]);
+ setLat(position[1]);
+ }
+ }
+ }, 'mapWM');
+ }, []);
+ return ((0,jsx_runtime.jsxs)("div", __assign({ className: classes.positionContainer }, { children: [(0,jsx_runtime.jsx)("p", { children: (0,jsx_runtime.jsxs)("strong", { children: [t('custom.mapPosition'), " from External Package:"] }) }), (0,jsx_runtime.jsxs)("p", { children: ["Longitude: ", lng] }), (0,jsx_runtime.jsxs)("p", { children: ["Latitude: ", lat] })] })));
+};
+
+;// CONCATENATED MODULE: ./src/components/PanelContent.tsx
+var PanelContent_assign = (undefined && undefined.__assign) || function () {
+ PanelContent_assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return PanelContent_assign.apply(this, arguments);
+};
+
+var w = window;
+var cgpv = w['cgpv'];
+var NewPanelContent = function (props) {
+ return (0,jsx_runtime.jsx)("div", { children: "New Content" });
+};
+/**
+ * Create a new panel content
+ *
+ * @param {PanelContentProps} props panel content properties
+ * @returns {JSX.Element} the new create panel content
+ */
+var PanelContent = function (props) {
+ var buttonPanel = props.buttonPanel;
+ var ui = cgpv.ui;
+ var Button = ui.elements.Button;
+ return ((0,jsx_runtime.jsxs)("div", { children: [(0,jsx_runtime.jsx)("div", { children: "Test content" }), (0,jsx_runtime.jsx)("p", { children: (0,jsx_runtime.jsx)(Button, PanelContent_assign({ variant: "contained", tooltip: "Change Content", tooltipPlacement: "right", type: "text", onClick: function () {
+ var _a, _b;
+ (_a = buttonPanel === null || buttonPanel === void 0 ? void 0 : buttonPanel.panel) === null || _a === void 0 ? void 0 : _a.addActionButton('testButton', 'Test', 'arrow_back', function () {
+ var _a, _b;
+ (_a = buttonPanel === null || buttonPanel === void 0 ? void 0 : buttonPanel.panel) === null || _a === void 0 ? void 0 : _a.removeActionButton('testButton');
+ (_b = buttonPanel === null || buttonPanel === void 0 ? void 0 : buttonPanel.panel) === null || _b === void 0 ? void 0 : _b.changeContent((0,jsx_runtime.jsx)(PanelContent, PanelContent_assign({}, props)));
+ });
+ (_b = buttonPanel === null || buttonPanel === void 0 ? void 0 : buttonPanel.panel) === null || _b === void 0 ? void 0 : _b.changeContent((0,jsx_runtime.jsx)(NewPanelContent, PanelContent_assign({}, props)));
+ } }, { children: "Change Content" })) })] }));
+};
+
+;// CONCATENATED MODULE: ./src/components/App.tsx
+var App_assign = (undefined && undefined.__assign) || function () {
+ App_assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return App_assign.apply(this, arguments);
+};
+
+
+
+
+
+/**
+ * main container and map styling
+ */
+var useStyles = makeStyles(function (theme) { return ({
+ container: {
+ height: '100%',
+ },
+}); });
+// get reference to window object
+var App_w = window;
+// get reference to geoview apis
+var App_cgpv = App_w['cgpv'];
+var ui = App_cgpv.ui;
+/**
+ * Create a container containing a map using the GeoView viewer
+ *
+ * @returns {JSX.Elemet} the element that creates the container and the map
+ */
+var App = function () {
+ var classes = useStyles();
+ /**
+ * initialize the map after it has been loaded
+ */
+ (0,react.useEffect)(function () {
+ App_cgpv.init(function () {
+ var _a;
+ /**
+ * translations object to inject to the viewer translations
+ */
+ var translations = {
+ 'en-CA': {
+ panel: 'Test',
+ nothing_found: 'Nothing found',
+ action_back: 'Back',
+ custom: {
+ mapPosition: 'Map Position',
+ },
+ },
+ 'fr-CA': {
+ panel: 'Test',
+ nothing_found: 'Aucun résultat',
+ action_back: 'Retour',
+ custom: {
+ mapPosition: 'Localisation sur la carte',
+ },
+ },
+ };
+ // create a new component on the map after it has been rendered
+ /**
+ * First parameter is the id of that new component
+ * the id can be used to remove the added component using the .removeComponent(id) function
+ *
+ * Second parameter is the component to add, this can be a react component written in JSX
+ * or HTML created using React.createElement
+ */
+ App_cgpv.api.map('mapWM').addComponent('text', (0,jsx_runtime.jsx)(MapPosition, {}));
+ // get map instance
+ var mapInstance = App_cgpv.api.map('mapWM');
+ // add custom languages
+ mapInstance.i18nInstance.addResourceBundle('en-CA', 'translation', translations['en-CA'], true, false);
+ mapInstance.i18nInstance.addResourceBundle('fr-CA', 'translation', translations['fr-CA'], true, false);
+ // get language
+ var language = mapInstance.language;
+ // get home icon from ui
+ var HomeIcon = ui.elements.HomeIcon;
+ // button props
+ var button = {
+ // set ID to testPanelButton so that it can be accessed from the core viewer
+ id: 'testPanelButton',
+ tooltip: translations[language].panel,
+ tooltipPlacement: 'right',
+ children: (0,jsx_runtime.jsx)(HomeIcon, {}),
+ visible: true,
+ };
+ // panel props
+ var panel = {
+ title: translations[language].panel,
+ icon: (0,jsx_runtime.jsx)(HomeIcon, {}),
+ width: 300,
+ };
+ // create a new button panel on the appbar
+ var buttonPanel = App_cgpv.api
+ .map('mapWM')
+ .appBarButtons.createAppbarPanel(button, panel, null);
+ // set panel content
+ (_a = buttonPanel === null || buttonPanel === void 0 ? void 0 : buttonPanel.panel) === null || _a === void 0 ? void 0 : _a.changeContent((0,jsx_runtime.jsx)(PanelContent, { buttonPanel: buttonPanel, mapId: 'mapWM' }));
+ });
+ }, []);
+ return ((0,jsx_runtime.jsxs)("div", App_assign({ className: classes.container }, { children: [(0,jsx_runtime.jsx)("div", { children: "Test loading map from an external package" }), (0,jsx_runtime.jsx)("div", { id: "mapWM", className: "llwp-map ".concat(classes.container), style: {
+ height: '100vh',
+ zIndex: 0,
+ }, "data-lang": "en-CA", "data-config": "{\r\n 'map': {\r\n 'interaction': 'dynamic',\r\n 'view': {\r\n 'zoom': 4,\r\n 'center': [-100, 60],\r\n 'projection': 3857\r\n },\r\n 'basemapOptions': {\r\n 'id': 'transport',\r\n 'shaded': false,\r\n 'labeled': true\r\n },\r\n 'layers': []\r\n },\r\n 'theme': 'dark',\r\n 'languages': ['en-CA']\r\n }" })] })));
+};
+/* harmony default export */ const components_App = (App);
+
+;// CONCATENATED MODULE: ./src/index.tsx
+
+
+
+var container = document.getElementById('root');
+(0,react_dom.render)((0,jsx_runtime.jsx)(components_App, {}), container);
+
+})();
+
+/******/ })()
+;
\ No newline at end of file