From e94e38fe5712e257fb7aaf406b416cb923a43ed3 Mon Sep 17 00:00:00 2001 From: Nikolai Tellmann Date: Thu, 14 Dec 2023 17:39:38 +0000 Subject: [PATCH 01/86] Initialize React & TypeScript application using Vite --- js/admin.js | 2 +- ui/.eslintrc.cjs | 9 + ui/.gitignore | 23 + ui/README.md | 30 + ui/dist/index.html | 13 + ui/dist/plugin.css | 1 + ui/dist/plugin.js | 40 + ui/index.html | 12 + ui/package-lock.json | 3151 +++++++++++++++++++++++++++++++++++++++++ ui/package.json | 29 + ui/src/App.css | 36 + ui/src/App.tsx | 13 + ui/src/main.tsx | 9 + ui/tsconfig.json | 25 + ui/tsconfig.node.json | 10 + ui/vite.config.ts | 18 + 16 files changed, 3420 insertions(+), 1 deletion(-) create mode 100644 ui/.eslintrc.cjs create mode 100644 ui/.gitignore create mode 100644 ui/README.md create mode 100644 ui/dist/index.html create mode 100644 ui/dist/plugin.css create mode 100644 ui/dist/plugin.js create mode 100644 ui/index.html create mode 100644 ui/package-lock.json create mode 100644 ui/package.json create mode 100644 ui/src/App.css create mode 100644 ui/src/App.tsx create mode 100644 ui/src/main.tsx create mode 100644 ui/tsconfig.json create mode 100644 ui/tsconfig.node.json create mode 100644 ui/vite.config.ts diff --git a/js/admin.js b/js/admin.js index 68c24f82..6a82ddb1 100644 --- a/js/admin.js +++ b/js/admin.js @@ -29,7 +29,6 @@ SOFTWARE. // This file contains various javascript code for Vipps-specific functionality in the backend. // (function () { - console.log("Pagenow: " + pagenow); @@ -101,6 +100,7 @@ SOFTWARE. /* Tab-ify the settings page */ if (pagenow == 'woocommerce_page_wc-settings') { + return; if (jQuery('#vipps-settings-page').length > 0) { let toptitle = jQuery('h3.wc-settings-sub-title').parent().find('h2').first(); let tabholder = jQuery('
').insertAfter(toptitle); diff --git a/ui/.eslintrc.cjs b/ui/.eslintrc.cjs new file mode 100644 index 00000000..f84642ec --- /dev/null +++ b/ui/.eslintrc.cjs @@ -0,0 +1,9 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended'], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: {} +}; diff --git a/ui/.gitignore b/ui/.gitignore new file mode 100644 index 00000000..251ce6d2 --- /dev/null +++ b/ui/.gitignore @@ -0,0 +1,23 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/ui/README.md b/ui/README.md new file mode 100644 index 00000000..0d6babed --- /dev/null +++ b/ui/README.md @@ -0,0 +1,30 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default { + // other rules... + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.json', './tsconfig.node.json'], + tsconfigRootDir: __dirname, + }, +} +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/ui/dist/index.html b/ui/dist/index.html new file mode 100644 index 00000000..bd5ed66f --- /dev/null +++ b/ui/dist/index.html @@ -0,0 +1,13 @@ + + + + + + Vite + React + TS + + + + +
+ + diff --git a/ui/dist/plugin.css b/ui/dist/plugin.css new file mode 100644 index 00000000..ac5e9d94 --- /dev/null +++ b/ui/dist/plugin.css @@ -0,0 +1 @@ +.vipps-mobilepay-react-form-field{margin-bottom:2rem;display:flex;gap:2rem}.vipps-mobilepay-react-form-field>label{width:15%}.vipps-mobilepay-react-form-field>div{width:85%}.vipps-mobilepay-react-col{display:flex;flex-direction:column;gap:.5rem}.vipps-mobilepay-react-label{font-weight:600;color:#1d2327;font-size:14px}.vipps-mobilepay-react-tab-description{margin-bottom:1rem}.vipps-mobilepay-react-field-description{color:#666}.vipps-mobilepay-react-row-center{display:flex;align-items:center} diff --git a/ui/dist/plugin.js b/ui/dist/plugin.js new file mode 100644 index 00000000..03a4c3f3 --- /dev/null +++ b/ui/dist/plugin.js @@ -0,0 +1,40 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(l){if(l.ep)return;l.ep=!0;const i=n(l);fetch(l.href,i)}})();function vc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ts={exports:{}},cl={},ns={exports:{}},T={};/** + * @license React + * 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 tr=Symbol.for("react.element"),yc=Symbol.for("react.portal"),gc=Symbol.for("react.fragment"),_c=Symbol.for("react.strict_mode"),wc=Symbol.for("react.profiler"),kc=Symbol.for("react.provider"),Sc=Symbol.for("react.context"),xc=Symbol.for("react.forward_ref"),Ec=Symbol.for("react.suspense"),Cc=Symbol.for("react.memo"),Nc=Symbol.for("react.lazy"),Bo=Symbol.iterator;function jc(e){return e===null||typeof e!="object"?null:(e=Bo&&e[Bo]||e["@@iterator"],typeof e=="function"?e:null)}var rs={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ls=Object.assign,is={};function cn(e,t,n){this.props=e,this.context=t,this.refs=is,this.updater=n||rs}cn.prototype.isReactComponent={};cn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};cn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function os(){}os.prototype=cn.prototype;function Xi(e,t,n){this.props=e,this.context=t,this.refs=is,this.updater=n||rs}var Gi=Xi.prototype=new os;Gi.constructor=Xi;ls(Gi,cn.prototype);Gi.isPureReactComponent=!0;var Ho=Array.isArray,us=Object.prototype.hasOwnProperty,Zi={current:null},ss={key:!0,ref:!0,__self:!0,__source:!0};function as(e,t,n){var r,l={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)us.call(t,r)&&!ss.hasOwnProperty(r)&&(l[r]=t[r]);var u=arguments.length-2;if(u===1)l.children=n;else if(1>>1,J=E[Q];if(0>>1;Ql(Pl,z))wtl(cr,Pl)?(E[Q]=cr,E[wt]=z,Q=wt):(E[Q]=Pl,E[_t]=z,Q=_t);else if(wtl(cr,z))E[Q]=cr,E[wt]=z,Q=wt;else break e}}return P}function l(E,P){var z=E.sortIndex-P.sortIndex;return z!==0?z:E.id-P.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,u=o.now();e.unstable_now=function(){return o.now()-u}}var s=[],c=[],v=1,h=null,m=3,_=!1,w=!1,k=!1,U=typeof setTimeout=="function"?setTimeout:null,d=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function f(E){for(var P=n(c);P!==null;){if(P.callback===null)r(c);else if(P.startTime<=E)r(c),P.sortIndex=P.expirationTime,t(s,P);else break;P=n(c)}}function y(E){if(k=!1,f(E),!w)if(n(s)!==null)w=!0,Nl(x);else{var P=n(c);P!==null&&jl(y,P.startTime-E)}}function x(E,P){w=!1,k&&(k=!1,d(j),j=-1),_=!0;var z=m;try{for(f(P),h=n(s);h!==null&&(!(h.expirationTime>P)||E&&!Te());){var Q=h.callback;if(typeof Q=="function"){h.callback=null,m=h.priorityLevel;var J=Q(h.expirationTime<=P);P=e.unstable_now(),typeof J=="function"?h.callback=J:h===n(s)&&r(s),f(P)}else r(s);h=n(s)}if(h!==null)var ar=!0;else{var _t=n(c);_t!==null&&jl(y,_t.startTime-P),ar=!1}return ar}finally{h=null,m=z,_=!1}}var C=!1,N=null,j=-1,H=5,L=-1;function Te(){return!(e.unstable_now()-LE||125Q?(E.sortIndex=z,t(c,E),n(s)===null&&E===n(c)&&(k?(d(j),j=-1):k=!0,jl(y,z-Q))):(E.sortIndex=J,t(s,E),w||_||(w=!0,Nl(x))),E},e.unstable_shouldYield=Te,e.unstable_wrapCallback=function(E){var P=m;return function(){var z=m;m=P;try{return E.apply(this,arguments)}finally{m=z}}}})(ps);fs.exports=ps;var Uc=fs.exports;/** + * @license React + * 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. + */var ms=Ce,we=Uc;function g(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ni=Object.prototype.hasOwnProperty,$c=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Yo={},Xo={};function Ac(e){return ni.call(Xo,e)?!0:ni.call(Yo,e)?!1:$c.test(e)?Xo[e]=!0:(Yo[e]=!0,!1)}function Vc(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Wc(e,t,n,r){if(t===null||typeof t>"u"||Vc(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function de(e,t,n,r,l,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var re={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){re[e]=new de(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];re[t]=new de(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){re[e]=new de(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){re[e]=new de(e,2,!1,e,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(e){re[e]=new de(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){re[e]=new de(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){re[e]=new de(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){re[e]=new de(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){re[e]=new de(e,5,!1,e.toLowerCase(),null,!1,!1)});var qi=/[\-:]([a-z])/g;function bi(e){return e[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(e){var t=e.replace(qi,bi);re[t]=new de(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(qi,bi);re[t]=new de(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(qi,bi);re[t]=new de(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){re[e]=new de(e,1,!1,e.toLowerCase(),null,!1,!1)});re.xlinkHref=new de("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){re[e]=new de(e,1,!1,e.toLowerCase(),null,!0,!0)});function eo(e,t,n,r){var l=re.hasOwnProperty(t)?re[t]:null;(l!==null?l.type!==0:r||!(2u||l[o]!==i[u]){var s=` +`+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=u);break}}}finally{Ll=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?En(e):""}function Bc(e){switch(e.tag){case 5:return En(e.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 2:case 15:return e=Ol(e.type,!1),e;case 11:return e=Ol(e.type.render,!1),e;case 1:return e=Ol(e.type,!0),e;default:return""}}function oi(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ut:return"Fragment";case Dt:return"Portal";case ri:return"Profiler";case to:return"StrictMode";case li:return"Suspense";case ii:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ys:return(e.displayName||"Context")+".Consumer";case vs:return(e._context.displayName||"Context")+".Provider";case no:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ro:return t=e.displayName||null,t!==null?t:oi(e.type)||"Memo";case et:t=e._payload,e=e._init;try{return oi(e(t))}catch{}}return null}function Hc(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return oi(t);case 8:return t===to?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function mt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _s(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Qc(e){var t=_s(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function pr(e){e._valueTracker||(e._valueTracker=Qc(e))}function ws(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_s(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function $r(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ui(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=mt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ks(e,t){t=t.checked,t!=null&&eo(e,"checked",t,!1)}function si(e,t){ks(e,t);var n=mt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ai(e,t.type,n):t.hasOwnProperty("defaultValue")&&ai(e,t.type,mt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Jo(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ai(e,t,n){(t!=="number"||$r(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Cn=Array.isArray;function Zt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=mr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pn={animationIterationCount:!0,aspectRatio:!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},Yc=["Webkit","ms","Moz","O"];Object.keys(Pn).forEach(function(e){Yc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pn[t]=Pn[e]})});function Cs(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pn.hasOwnProperty(e)&&Pn[e]?(""+t).trim():t+"px"}function Ns(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Cs(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Xc=W({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 fi(e,t){if(t){if(Xc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(g(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(g(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(g(61))}if(t.style!=null&&typeof t.style!="object")throw Error(g(62))}}function pi(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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}}var mi=null;function lo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var hi=null,Jt=null,qt=null;function eu(e){if(e=lr(e)){if(typeof hi!="function")throw Error(g(280));var t=e.stateNode;t&&(t=hl(t),hi(e.stateNode,e.type,t))}}function js(e){Jt?qt?qt.push(e):qt=[e]:Jt=e}function Ps(){if(Jt){var e=Jt,t=qt;if(qt=Jt=null,eu(e),t)for(e=0;e>>=0,e===0?32:31-(id(e)/od|0)|0}var hr=64,vr=4194304;function Nn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Br(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var u=o&~l;u!==0?r=Nn(u):(i&=o,i!==0&&(r=Nn(i)))}else o=n&~l,o!==0?r=Nn(o):i!==0&&(r=Nn(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function nr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Fe(t),e[t]=n}function cd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tn),au=" ",cu=!1;function Xs(e,t){switch(e){case"keyup":return Dd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $t=!1;function $d(e,t){switch(e){case"compositionend":return Gs(t);case"keypress":return t.which!==32?null:(cu=!0,au);case"textInput":return e=t.data,e===au&&cu?null:e;default:return null}}function Ad(e,t){if($t)return e==="compositionend"||!po&&Xs(e,t)?(e=Qs(),Lr=ao=lt=null,$t=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=mu(n)}}function bs(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bs(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ea(){for(var e=window,t=$r();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=$r(e.document)}return t}function mo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Zd(e){var t=ea(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&bs(n.ownerDocument.documentElement,n)){if(r!==null&&mo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=hu(n,i);var o=hu(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,At=null,ki=null,On=null,Si=!1;function vu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Si||At==null||At!==$r(r)||(r=At,"selectionStart"in r&&mo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),On&&Bn(On,r)||(On=r,r=Yr(ki,"onSelect"),0Bt||(e.current=Pi[Bt],Pi[Bt]=null,Bt--)}function F(e,t){Bt++,Pi[Bt]=e.current,e.current=t}var ht={},ue=yt(ht),me=yt(!1),zt=ht;function rn(e,t){var n=e.type.contextTypes;if(!n)return ht;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function he(e){return e=e.childContextTypes,e!=null}function Gr(){D(me),D(ue)}function xu(e,t,n){if(ue.current!==ht)throw Error(g(168));F(ue,t),F(me,n)}function aa(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(g(108,Hc(e)||"Unknown",l));return W({},n,r)}function Zr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ht,zt=ue.current,F(ue,e),F(me,me.current),!0}function Eu(e,t,n){var r=e.stateNode;if(!r)throw Error(g(169));n?(e=aa(e,t,zt),r.__reactInternalMemoizedMergedChildContext=e,D(me),D(ue),F(ue,e)):D(me),F(me,n)}var Be=null,vl=!1,Ql=!1;function ca(e){Be===null?Be=[e]:Be.push(e)}function af(e){vl=!0,ca(e)}function gt(){if(!Ql&&Be!==null){Ql=!0;var e=0,t=I;try{var n=Be;for(I=1;e>=o,l-=o,He=1<<32-Fe(t)+l|n<j?(H=N,N=null):H=N.sibling;var L=m(d,N,f[j],y);if(L===null){N===null&&(N=H);break}e&&N&&L.alternate===null&&t(d,N),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L,N=H}if(j===f.length)return n(d,N),$&&St(d,j),x;if(N===null){for(;jj?(H=N,N=null):H=N.sibling;var Te=m(d,N,L.value,y);if(Te===null){N===null&&(N=H);break}e&&N&&Te.alternate===null&&t(d,N),a=i(Te,a,j),C===null?x=Te:C.sibling=Te,C=Te,N=H}if(L.done)return n(d,N),$&&St(d,j),x;if(N===null){for(;!L.done;j++,L=f.next())L=h(d,L.value,y),L!==null&&(a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return $&&St(d,j),x}for(N=r(d,N);!L.done;j++,L=f.next())L=_(N,d,j,L.value,y),L!==null&&(e&&L.alternate!==null&&N.delete(L.key===null?j:L.key),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return e&&N.forEach(function(mn){return t(d,mn)}),$&&St(d,j),x}function U(d,a,f,y){if(typeof f=="object"&&f!==null&&f.type===Ut&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case fr:e:{for(var x=f.key,C=a;C!==null;){if(C.key===x){if(x=f.type,x===Ut){if(C.tag===7){n(d,C.sibling),a=l(C,f.props.children),a.return=d,d=a;break e}}else if(C.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===et&&Lu(x)===C.type){n(d,C.sibling),a=l(C,f.props),a.ref=kn(d,C,f),a.return=d,d=a;break e}n(d,C);break}else t(d,C);C=C.sibling}f.type===Ut?(a=Pt(f.props.children,d.mode,y,f.key),a.return=d,d=a):(y=Ur(f.type,f.key,f.props,null,d.mode,y),y.ref=kn(d,a,f),y.return=d,d=y)}return o(d);case Dt:e:{for(C=f.key;a!==null;){if(a.key===C)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){n(d,a.sibling),a=l(a,f.children||[]),a.return=d,d=a;break e}else{n(d,a);break}else t(d,a);a=a.sibling}a=ei(f,d.mode,y),a.return=d,d=a}return o(d);case et:return C=f._init,U(d,a,C(f._payload),y)}if(Cn(f))return w(d,a,f,y);if(vn(f))return k(d,a,f,y);xr(d,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(n(d,a.sibling),a=l(a,f),a.return=d,d=a):(n(d,a),a=bl(f,d.mode,y),a.return=d,d=a),o(d)):n(d,a)}return U}var on=ga(!0),_a=ga(!1),ir={},Ve=yt(ir),Xn=yt(ir),Gn=yt(ir);function Nt(e){if(e===ir)throw Error(g(174));return e}function xo(e,t){switch(F(Gn,t),F(Xn,e),F(Ve,ir),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:di(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=di(t,e)}D(Ve),F(Ve,t)}function un(){D(Ve),D(Xn),D(Gn)}function wa(e){Nt(Gn.current);var t=Nt(Ve.current),n=di(t,e.type);t!==n&&(F(Xn,e),F(Ve,n))}function Eo(e){Xn.current===e&&(D(Ve),D(Xn))}var A=yt(0);function nl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Yl=[];function Co(){for(var e=0;en?n:4,e(!0);var r=Xl.transition;Xl.transition={};try{e(!1),t()}finally{I=n,Xl.transition=r}}function Ma(){return ze().memoizedState}function pf(e,t,n){var r=ft(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ka(e))Da(t,n);else if(n=ma(e,t,n,r),n!==null){var l=ae();Me(n,e,r,l),Ua(n,t,r)}}function mf(e,t,n){var r=ft(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ka(e))Da(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,u=i(o,n);if(l.hasEagerState=!0,l.eagerState=u,Ke(u,o)){var s=t.interleaved;s===null?(l.next=l,ko(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ma(e,t,l,r),n!==null&&(l=ae(),Me(n,e,r,l),Ua(n,t,r))}}function Ka(e){var t=e.alternate;return e===V||t!==null&&t===V}function Da(e,t){Rn=rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ua(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,oo(e,n)}}var ll={readContext:Pe,useCallback:le,useContext:le,useEffect:le,useImperativeHandle:le,useInsertionEffect:le,useLayoutEffect:le,useMemo:le,useReducer:le,useRef:le,useState:le,useDebugValue:le,useDeferredValue:le,useTransition:le,useMutableSource:le,useSyncExternalStore:le,useId:le,unstable_isNewReconciler:!1},hf={readContext:Pe,useCallback:function(e,t){return Ue().memoizedState=[e,t===void 0?null:t],e},useContext:Pe,useEffect:Ru,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Fr(4194308,4,La.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Fr(4,2,e,t)},useMemo:function(e,t){var n=Ue();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ue();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=pf.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=Ue();return e={current:e},t.memoizedState=e},useState:Ou,useDebugValue:To,useDeferredValue:function(e){return Ue().memoizedState=e},useTransition:function(){var e=Ou(!1),t=e[0];return e=ff.bind(null,e[1]),Ue().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=V,l=Ue();if($){if(n===void 0)throw Error(g(407));n=n()}else{if(n=t(),ee===null)throw Error(g(349));Lt&30||xa(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Ru(Ca.bind(null,r,i,e),[e]),r.flags|=2048,qn(9,Ea.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ue(),t=ee.identifierPrefix;if($){var n=Qe,r=He;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Zn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[$e]=t,e[Yn]=r,Xa(e,t,!1,!1),t.stateNode=e;e:{switch(o=pi(n,r),n){case"dialog":M("cancel",e),M("close",e),l=r;break;case"iframe":case"object":case"embed":M("load",e),l=r;break;case"video":case"audio":for(l=0;lan&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!$)return ie(t),null}else 2*Y()-i.renderingStartTime>an&&n!==1073741824&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Y(),t.sibling=null,n=A.current,F(A,r?n&1|2:n&1),t):(ie(t),null);case 22:case 23:return Mo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(ie(t),t.subtreeFlags&6&&(t.flags|=8192)):ie(t),null;case 24:return null;case 25:return null}throw Error(g(156,t.tag))}function xf(e,t){switch(vo(t),t.tag){case 1:return he(t.type)&&Gr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),D(me),D(ue),Co(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eo(t),null;case 13:if(D(A),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(g(340));ln()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(A),null;case 4:return un(),null;case 10:return wo(t.type._context),null;case 22:case 23:return Mo(),null;case 24:return null;default:return null}}var Cr=!1,oe=!1,Ef=typeof WeakSet=="function"?WeakSet:Set,S=null;function Xt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){B(e,t,r)}}var Vu=!1;function Cf(e,t){if(xi=Hr,e=ea(),mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,u=-1,s=-1,c=0,v=0,h=e,m=null;t:for(;;){for(var _;h!==n||l!==0&&h.nodeType!==3||(u=o+l),h!==i||r!==0&&h.nodeType!==3||(s=o+r),h.nodeType===3&&(o+=h.nodeValue.length),(_=h.firstChild)!==null;)m=h,h=_;for(;;){if(h===e)break t;if(m===n&&++c===l&&(u=o),m===i&&++v===r&&(s=o),(_=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=_}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ei={focusedElem:e,selectionRange:n},Hr=!1,S=t;S!==null;)if(t=S,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,S=e;else for(;S!==null;){t=S;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,U=w.memoizedState,d=t.stateNode,a=d.getSnapshotBeforeUpdate(t.elementType===t.type?k:Oe(t.type,k),U);d.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(g(163))}}catch(y){B(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,S=e;break}S=t.return}return w=Vu,Vu=!1,w}function In(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&$i(t,n,i)}l=l.next}while(l!==r)}}function _l(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ai(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ja(e){var t=e.alternate;t!==null&&(e.alternate=null,Ja(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$e],delete t[Yn],delete t[ji],delete t[uf],delete t[sf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function qa(e){return e.tag===5||e.tag===3||e.tag===4}function Wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xr));else if(r!==4&&(e=e.child,e!==null))for(Vi(e,t,n),e=e.sibling;e!==null;)Vi(e,t,n),e=e.sibling}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}var te=null,Re=!1;function be(e,t,n){for(n=n.child;n!==null;)ba(e,t,n),n=n.sibling}function ba(e,t,n){if(Ae&&typeof Ae.onCommitFiberUnmount=="function")try{Ae.onCommitFiberUnmount(dl,n)}catch{}switch(n.tag){case 5:oe||Xt(n,t);case 6:var r=te,l=Re;te=null,be(e,t,n),te=r,Re=l,te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):te.removeChild(n.stateNode));break;case 18:te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?Hl(e.parentNode,n):e.nodeType===1&&Hl(e,n),Vn(e)):Hl(te,n.stateNode));break;case 4:r=te,l=Re,te=n.stateNode.containerInfo,Re=!0,be(e,t,n),te=r,Re=l;break;case 0:case 11:case 14:case 15:if(!oe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$i(n,t,o),l=l.next}while(l!==r)}be(e,t,n);break;case 1:if(!oe&&(Xt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){B(n,t,u)}be(e,t,n);break;case 21:be(e,t,n);break;case 22:n.mode&1?(oe=(r=oe)||n.memoizedState!==null,be(e,t,n),oe=r):be(e,t,n);break;default:be(e,t,n)}}function Bu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ef),t.forEach(function(r){var l=If.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Le(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=Y()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jf(r/1960))-r,10e?16:e,it===null)var r=!1;else{if(e=it,it=null,ul=0,R&6)throw Error(g(331));var l=R;for(R|=4,S=e.current;S!==null;){var i=S,o=i.child;if(S.flags&16){var u=i.deletions;if(u!==null){for(var s=0;sY()-Io?jt(e,0):Ro|=n),ve(e,t)}function uc(e,t){t===0&&(e.mode&1?(t=vr,vr<<=1,!(vr&130023424)&&(vr=4194304)):t=1);var n=ae();e=Ze(e,t),e!==null&&(nr(e,t,n),ve(e,n))}function Rf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),uc(e,n)}function If(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(g(314))}r!==null&&r.delete(t),uc(e,n)}var sc;sc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)pe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pe=!1,kf(e,t,n);pe=!!(e.flags&131072)}else pe=!1,$&&t.flags&1048576&&da(t,qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mr(e,t),e=t.pendingProps;var l=rn(t,ue.current);en(t,n),l=jo(null,t,r,e,l,n);var i=Po();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,he(r)?(i=!0,Zr(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,So(t),l.updater=yl,t.stateNode=l,l._reactInternals=t,Ri(t,r,e,n),t=Mi(null,t,r,!0,i,n)):(t.tag=0,$&&i&&ho(t),se(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Mf(r),e=Oe(r,e),l){case 0:t=Fi(null,t,r,e,n);break e;case 1:t=Uu(null,t,r,e,n);break e;case 11:t=Ku(null,t,r,e,n);break e;case 14:t=Du(null,t,r,Oe(r.type,e),n);break e}throw Error(g(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Fi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Uu(e,t,r,l,n);case 3:e:{if(Ha(t),e===null)throw Error(g(387));r=t.pendingProps,i=t.memoizedState,l=i.element,ha(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=sn(Error(g(423)),t),t=$u(e,t,r,n,l);break e}else if(r!==l){l=sn(Error(g(424)),t),t=$u(e,t,r,n,l);break e}else for(ge=at(t.stateNode.containerInfo.firstChild),_e=t,$=!0,Ie=null,n=_a(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ln(),r===l){t=Je(e,t,n);break e}se(e,t,r,n)}t=t.child}return t;case 5:return wa(t),e===null&&Ti(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Ci(r,l)?o=null:i!==null&&Ci(r,i)&&(t.flags|=32),Ba(e,t),se(e,t,o,n),t.child;case 6:return e===null&&Ti(t),null;case 13:return Qa(e,t,n);case 4:return xo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=on(t,null,r,n):se(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Ku(e,t,r,l,n);case 7:return se(e,t,t.pendingProps,n),t.child;case 8:return se(e,t,t.pendingProps.children,n),t.child;case 12:return se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,F(br,r._currentValue),r._currentValue=o,i!==null)if(Ke(i.value,o)){if(i.children===l.children&&!me.current){t=Je(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var u=i.dependencies;if(u!==null){o=i.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var v=c.pending;v===null?s.next=s:(s.next=v.next,v.next=s),c.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Li(i.return,n,t),u.lanes|=n;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(g(341));o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),Li(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}se(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,en(t,n),l=Pe(l),r=r(l),t.flags|=1,se(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Du(e,t,r,l,n);case 15:return Va(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Mr(e,t),t.tag=1,he(r)?(e=!0,Zr(t)):e=!1,en(t,n),ya(t,r,l),Ri(t,r,l,n),Mi(null,t,r,!0,e,n);case 19:return Ya(e,t,n);case 22:return Wa(e,t,n)}throw Error(g(156,t.tag))};function ac(e,t){return Fs(e,t)}function Ff(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ne(e,t,n,r){return new Ff(e,t,n,r)}function Do(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Mf(e){if(typeof e=="function")return Do(e)?1:0;if(e!=null){if(e=e.$$typeof,e===no)return 11;if(e===ro)return 14}return 2}function pt(e,t){var n=e.alternate;return n===null?(n=Ne(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ur(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")Do(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Pt(n.children,l,i,t);case to:o=8,l|=8;break;case ri:return e=Ne(12,n,t,l|2),e.elementType=ri,e.lanes=i,e;case li:return e=Ne(13,n,t,l),e.elementType=li,e.lanes=i,e;case ii:return e=Ne(19,n,t,l),e.elementType=ii,e.lanes=i,e;case gs:return kl(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vs:o=10;break e;case ys:o=9;break e;case no:o=11;break e;case ro:o=14;break e;case et:o=16,r=null;break e}throw Error(g(130,e==null?e:typeof e,""))}return t=Ne(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function Pt(e,t,n,r){return e=Ne(7,e,r,t),e.lanes=n,e}function kl(e,t,n,r){return e=Ne(22,e,r,t),e.elementType=gs,e.lanes=n,e.stateNode={isHidden:!1},e}function bl(e,t,n){return e=Ne(6,e,null,t),e.lanes=n,e}function ei(e,t,n){return t=Ne(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Kf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Il(0),this.expirationTimes=Il(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Il(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Uo(e,t,n,r,l,i,o,u,s){return e=new Kf(e,t,n,u,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ne(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},So(i),e}function Df(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pc)}catch(e){console.error(e)}}pc(),ds.exports=ke;var Wf=ds.exports,qu=Wf;ti.createRoot=qu.createRoot,ti.hydrateRoot=qu.hydrateRoot;const or=window;if(!or.VippsMobilePayReactTranslations)throw new Error("VippsMobilePayReactTranslations not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactOptions)throw new Error("VippsMobilePayReactOptions not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactMetadata)throw new Error("VippsMobilePayReactMetadata not found, make sure to include this using wp_localize_script()");function O(e){var t;return((t=or.VippsMobilePayReactTranslations)==null?void 0:t[e])??e}const{VippsMobilePayReactTranslations:ap,VippsMobilePayReactOptions:bu,VippsMobilePayReactMetadata:cp}=or;function Bf({tabs:e,onTabChange:t,activeTab:n}){return p.jsx("div",{className:"vippstabholder",id:"vippstabholder",children:e.map((r,l)=>p.jsx("h3",{id:`woocommerce_vipps_${r}_options`,"aria-selected":r===n?"true":"false",className:`wc-settings-sub-title tab ${r===n?"active":""}`,title:r,onClick:()=>t(r),style:{cursor:"pointer"},children:r},l))})}const mc=Ce.createContext(null);function Hf({children:e}){const[t,n]=Ce.useState(bu);function r(o){return(t==null?void 0:t[o])??""}async function l(o,u){n(s=>({...s,[o]:u??null}))}async function i(o){o.preventDefault();const u=Object.entries(t).filter(([s,c])=>bu[s]!==c);for(const[s,c]of u)try{const v=await fetch("/wp-admin/admin-ajax.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_option",key:s,value:c})});if(!v.ok)throw new Error(v.statusText)}catch(v){throw console.error(v),v}}return p.jsxs(mc.Provider,{value:{setOption:l,getOption:r,submitChanges:i},children:[e,p.jsxs("div",{style:{border:"1px solid red",padding:4},children:[p.jsx("span",{style:{textAlign:"center",marginBottom:8},children:"DEBUG"}),p.jsx("pre",{children:JSON.stringify(t,null,2)})]})]})}function pn(){const e=Ce.useContext(mc);if(!e)throw new Error("useWP must be used within a WPOptionsProvider");return e}function It({htmlString:e,className:t=""}){return p.jsx("span",{className:[t].join(" "),dangerouslySetInnerHTML:{__html:e}})}function Qf(e){return p.jsx("input",{...e,className:["input-text regular-input",e.className??""].join(" "),style:{height:30},children:e.children})}function ur(e){return p.jsx("label",{...e,className:["vipps-mobilepay-react-label",e.className??""].join(" "),children:e.children})}function es({variant:e,...t}){return p.jsx("button",{...t,className:[`button-${e}`,t.className??""].join(" "),children:t.children})}function Yf({id:e,name:t,onChange:n,checked:r,children:l,className:i}){return p.jsx("input",{id:e,name:t,checked:r?Jf(r):void 0,onChange:o=>n(qf(o.target.checked)),type:"checkbox",className:[i??""].join(" "),children:l})}function Xf(e){return p.jsx("select",{...e,className:[e.className??""].join(" "),children:e.children})}function Gf(e){return p.jsx("option",{...e,className:[e.className??""].join(" "),children:e.children})}function Zf(e){return p.jsx("textarea",{...e,className:[e.className??""].join(" "),children:e.children})}function sr(e){return p.jsx("div",{...e,className:["vipps-mobilepay-react-form-field",e.className??""].join(" "),children:e.children})}function Jf(e){return e==="yes"}function qf(e){return e?"yes":"no"}function K({name:e,titleKey:t,labelKey:n,descriptionKey:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{className:"vipps-mobilepay-react-row-center",children:[p.jsx(Yf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,checked:l(e),onChange:o=>i(e,o)}),n&&p.jsx("label",{htmlFor:`woocommerce_vipps_${e}`,children:p.jsx(It,{htmlString:O(n)})})]}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function er({name:e,titleKey:t,descriptionKey:n,options:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Xf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:o=>i(e,o.target.value),value:l(e),required:!0,children:r.map(o=>p.jsx(Gf,{value:o,children:o},o))}),n&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(n)})]})]})}function b({name:e,titleKey:t,labelKey:n,descriptionKey:r,pattern:l,required:i,asterisk:o,type:u="text"}){const{getOption:s,setOption:c}=pn(),[v,h]=Ce.useState(!1),m=!v&&o;return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Qf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:_=>c(e,_.target.value),value:s(e),pattern:l,required:i,onFocus:()=>h(!0),onBlur:()=>h(!1),type:m?"password":u}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function bf({name:e,titleKey:t,labelKey:n,descriptionKey:r,rows:l=5}){const{getOption:i,setOption:o}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Zf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:u=>o(e,u.target.value),value:i(e),rows:l}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function ep(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description"}),p.jsx(K,{name:"enabled",titleKey:"enabled_title",labelKey:"enabled_label"}),p.jsx(er,{name:"payment_method_name",titleKey:"payment_method_name_title",descriptionKey:"payment_method_name_label",options:[O("payment_method_name_options_vipps"),O("payment_method_name_options_mobilepay")]}),p.jsx(b,{name:"orderprefix",titleKey:"orderprefix_title",labelKey:"orderprefix_label",pattern:"[a-zA-Z0-9-]+",required:!0}),p.jsx(b,{asterisk:!0,name:"merchantSerialNumber",titleKey:"merchantSerialNumber_title",labelKey:"merchantSerialNumber_label",required:!0}),p.jsx(b,{asterisk:!0,name:"clientId",titleKey:"clientId_title",labelKey:"clientId_label",required:!0}),p.jsx(b,{asterisk:!0,name:"secret",titleKey:"secret_title",labelKey:"secret_label",required:!0}),p.jsx(b,{name:"Ocp_Apim_Key_eCommerce",titleKey:"Ocp_Apim_Key_eCommerce_title",labelKey:"Ocp_Apim_Key_eCommerce_label",required:!0}),p.jsx(er,{name:"result_status",titleKey:"result_status_title",descriptionKey:"result_status_description",options:[O("result_status_options_on-hold"),O("result_status_options_processing")]}),p.jsx(b,{name:"title",titleKey:"title_title",labelKey:"title_description"}),p.jsx(bf,{name:"description",titleKey:"description_title",labelKey:"description_description",rows:5}),p.jsx(K,{name:"vippsdefault",titleKey:"vippsdefault_title",labelKey:"vippsdefault_label"})]})}function tp(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("express_options_description")}),p.jsx(K,{name:"cartexpress",titleKey:"cartexpress_title",labelKey:"cartexpress_title",descriptionKey:"cartexpress_description"}),p.jsx(er,{name:"singleproductexpress",titleKey:"singleproductexpress_title",descriptionKey:"singleproductexpress_description",options:[O("singleproductexpress_options_none"),O("singleproductexpress_options_some"),O("singleproductexpress_options_all")]}),p.jsx(K,{name:"singleproductexpressarchives",titleKey:"singleproductexpressarchives_title",labelKey:"singleproductexpressarchives_label",descriptionKey:"singleproductexpressarchives_description"}),p.jsx(K,{name:"expresscheckout_termscheckbox",titleKey:"expresscheckout_termscheckbox_title",labelKey:"expresscheckout_termscheckbox_label",descriptionKey:"expresscheckout_termscheckbox_description"}),p.jsx(K,{name:"expresscheckout_always_address",titleKey:"expresscheckout_always_address_title",labelKey:"expresscheckout_always_address_label",descriptionKey:"expresscheckout_always_address_description"}),p.jsx(K,{name:"enablestaticshipping",titleKey:"enablestaticshipping_title",labelKey:"enablestaticshipping_label",descriptionKey:"enablestaticshipping_description"}),p.jsx(K,{name:"expresscreateuser",titleKey:"expresscreateuser_title",labelKey:"expresscreateuser_label",descriptionKey:"expresscreateuser_description"}),p.jsx(K,{name:"singleproductbuynowcompatmode",titleKey:"singleproductbuynowcompatmode_title",labelKey:"singleproductbuynowcompatmode_label",descriptionKey:"singleproductbuynowcompatmode_description"}),p.jsx(K,{name:"deletefailedexpressorders",titleKey:"deletefailedexpressorders_title",labelKey:"deletefailedexpressorders_label",descriptionKey:"deletefailedexpressorders_description"})]})}function np(){const{getOption:e}=pn(),t=e("vcs_porterbuddy")==="yes",n=e("vcs_instabox")==="yes",r=e("vcs_helthjem")==="yes";return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_options_description")}),p.jsx(K,{name:"vipps_checkout_enabled",titleKey:"vipps_checkout_enabled_title",labelKey:"vipps_checkout_enabled_label",descriptionKey:"vipps_checkout_enabled_description"}),p.jsx(K,{name:"checkoutcreateuser",titleKey:"checkoutcreateuser_title",labelKey:"checkoutcreateuser_label",descriptionKey:"checkoutcreateuser_description"}),p.jsx(K,{name:"enablestaticshipping_checkout",titleKey:"enablestaticshipping_checkout_title",labelKey:"enablestaticshipping_checkout_label",descriptionKey:"enablestaticshipping_checkout_description"}),p.jsx(K,{name:"requireUserInfo_checkout",titleKey:"requireUserInfo_checkout_title",labelKey:"requireUserInfo_checkout_label",descriptionKey:"requireUserInfo_checkout_description"}),p.jsx(K,{name:"noAddressFields",titleKey:"noAddressFields_title",labelKey:"noAddressFields_label",descriptionKey:"noAddressFields_description"}),p.jsx(K,{name:"noContactFields",titleKey:"noContactFields_title",labelKey:"noContactFields_label",descriptionKey:"noContactFields_description"}),p.jsx("h3",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_shipping_title")}),p.jsx("p",{children:O("checkout_shipping_description")}),p.jsx(K,{name:"vcs_posten",titleKey:"vcs_posten_title",descriptionKey:"vcs_posten_description",labelKey:"vcs_posten_label"}),p.jsx(K,{name:"vcs_postnord",titleKey:"vcs_postnord_title",descriptionKey:"vcs_postnord_description",labelKey:"vcs_postnord_label"}),p.jsx(K,{name:"vcs_porterbuddy",titleKey:"vcs_porterbuddy_title",descriptionKey:"vcs_porterbuddy_description",labelKey:"vcs_porterbuddy_label"}),t&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_publicToken",titleKey:"vcs_porterbuddy_publicToken_title",descriptionKey:"vcs_porterbuddy_publicToken_description"}),p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_apiKey",titleKey:"vcs_porterbuddy_apiKey_title",descriptionKey:"vcs_porterbuddy_apiKey_description"}),p.jsx(b,{name:"vcs_porterbuddy_phoneNumber",titleKey:"vcs_porterbuddy_phoneNumber_title",descriptionKey:"vcs_porterbuddy_phoneNumber_description"})]}),p.jsx(K,{name:"vcs_instabox",titleKey:"vcs_instabox_title",descriptionKey:"vcs_instabox_description",labelKey:"vcs_instabox_label"}),n&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientId",titleKey:"vcs_instabox_clientId_title",descriptionKey:"vcs_instabox_clientId_description"}),p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientSecret",titleKey:"vcs_instabox_clientSecret_title",descriptionKey:"vcs_instabox_clientSecret_description"})]}),p.jsx(K,{name:"vcs_helthjem",titleKey:"vcs_helthjem_title",descriptionKey:"vcs_helthjem_description",labelKey:"vcs_helthjem_label"}),r&&p.jsxs(p.Fragment,{children:[p.jsx(b,{type:"number",name:"vcs_helthjem_shopId",titleKey:"vcs_helthjem_shopId_title",descriptionKey:"vcs_helthjem_shopId_description"}),p.jsx(b,{name:"vcs_helthjem_username",titleKey:"vcs_helthjem_username_title",descriptionKey:"vcs_helthjem_username_description"}),p.jsx(b,{asterisk:!0,name:"vcs_helthjem_password",titleKey:"vcs_helthjem_password_title",descriptionKey:"vcs_helthjem_password_description"})]})]})}function rp({onUpload:e}){return{handleImageUpload:()=>{const n=wp.media({library:{type:"image"},button:{},multiple:!1});n.on("select",()=>{const r=n.state().get("selection").first().toJSON();let l="";r.url?l=r.url:r.sizes&&r.sizes.thumbnail&&(l=r.sizes.thumbnail.url),l&&e(r.id,l)}),n.open()}}}function lp(){const{getOption:e,setOption:t}=pn();function n(){t("receiptimage",""),t("receiptimageurl","")}const{handleImageUpload:r}=rp({onUpload(o,u){t("receiptimage",o),t("receiptimageurl",u)}}),l=e("receiptimage"),i=e("receiptimage_url");return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("advanced_options_description")}),p.jsx(er,{name:"vippsspecialpagetemplate",titleKey:"vippsspecialpagetemplate_title",descriptionKey:"vippsspecialpagetemplate_description",options:Object.values(O("vippsspecialpagetemplate_options"))}),p.jsx(er,{name:"vippsspecialpageid",titleKey:"vippsspecialpageid_title",descriptionKey:"vippsspecialpageid_description",options:Object.values(O("vippsspecialpageid_options"))}),p.jsx(K,{name:"sendreceipts",titleKey:"sendreceipts_title",descriptionKey:"sendreceipts_description",labelKey:"sendreceipts_label"}),p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:"woocommerce_vipps_receiptimage",children:O("receiptimage_title")}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{children:[p.jsx("img",{src:i,id:l,style:{maxWidth:200,height:"auto"}}),l?p.jsx(es,{type:"button",onClick:n,variant:"link",children:O("remove_image")}):p.jsx(es,{type:"button",onClick:r,variant:"link",children:O("upload_image")}),p.jsx("input",{type:"hidden",name:"woocommerce_vipps_receiptimage",id:"woocommerce_vipps_receiptimage",value:l})]}),p.jsx("span",{className:"vipps-mobilepay-react-field-description",children:O("receiptimage_description")})]})]}),p.jsx(K,{name:"use_flock",titleKey:"use_flock_title",descriptionKey:"use_flock_description",labelKey:"use_flock_label"}),p.jsx(K,{name:"developermode",titleKey:"developermode_title",descriptionKey:"developermode_description",labelKey:"developermode_label"})]})}function ip(e){const[t,n]=Ce.useState(()=>window.location.hash),r=Ce.useCallback(()=>{n(window.location.hash)},[]);Ce.useEffect(()=>(window.addEventListener("hashchange",r),()=>{window.removeEventListener("hashchange",r)}),[r]);const l=Ce.useCallback(i=>{i!==t&&(window.location.hash="#"+i)},[t]);return Ce.useEffect(()=>{!t&&e&&l(e)},[t,e,l]),[decodeURIComponent(t.replace("#","")),l]}function op(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("developer_options_description")}),p.jsx(K,{name:"testmode",titleKey:"testmode_title",descriptionKey:"testmode_description",labelKey:"testmode_label"}),p.jsx(b,{name:"merchantSerialNumber_test",titleKey:"merchantSerialNumber_test_title",descriptionKey:"merchantSerialNumber_test_description",labelKey:"merchantSerialNumber_test_label"}),p.jsx(b,{asterisk:!0,name:"clientId_test",titleKey:"clientId_test_title",descriptionKey:"clientId_test_description",labelKey:"clientId_test_label"}),p.jsx(b,{asterisk:!0,name:"secret_test",titleKey:"secret_test_title",descriptionKey:"secret_test_description",labelKey:"secret_test_label"}),p.jsx(b,{asterisk:!0,name:"Ocp_Apim_Key_eCommerce_test",titleKey:"Ocp_Apim_Key_eCommerce_test_title",descriptionKey:"Ocp_Apim_Key_eCommerce_test_description",labelKey:"Ocp_Apim_Key_eCommerce_test_label"})]})}const kt=[O("main_options_title"),O("express_options_title"),O("checkout_options_title"),O("advanced_options_title"),O("developer_options_title")];function up(){const[e,t]=ip(kt[0]);return p.jsxs(p.Fragment,{children:[p.jsx(Bf,{tabs:kt,onTabChange:t,activeTab:decodeURIComponent(e)}),e===kt[0]&&p.jsx(ep,{}),e===kt[1]&&p.jsx(tp,{}),e===kt[2]&&p.jsx(np,{}),e===kt[3]&&p.jsx(lp,{}),e===kt[4]&&p.jsx(op,{})]})}function sp(){return p.jsx(Hf,{children:p.jsx(up,{})})}ti.createRoot(document.getElementById("vipps-mobilepay-react-ui")).render(p.jsx(Oc.StrictMode,{children:p.jsx(sp,{})})); diff --git a/ui/index.html b/ui/index.html new file mode 100644 index 00000000..540f319f --- /dev/null +++ b/ui/index.html @@ -0,0 +1,12 @@ + + + + + + Vite + React + TS + + +
+ + + diff --git a/ui/package-lock.json b/ui/package-lock.json new file mode 100644 index 00000000..263dd1e4 --- /dev/null +++ b/ui/package-lock.json @@ -0,0 +1,3151 @@ +{ + "name": "vipps-react-ui", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vipps-react-ui", + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", + "@vitejs/plugin-react": "^4.2.0", + "eslint": "^8.53.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.4", + "typescript": "^5.2.2", + "vite": "^5.0.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", + "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.5", + "@babel/parser": "^7.23.5", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", + "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.5", + "@babel/types": "^7.23.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", + "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", + "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", + "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", + "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", + "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", + "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", + "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", + "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", + "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", + "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", + "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", + "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", + "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", + "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", + "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", + "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", + "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", + "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", + "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", + "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", + "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", + "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.7.0.tgz", + "integrity": "sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.7.0.tgz", + "integrity": "sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.7.0.tgz", + "integrity": "sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.7.0.tgz", + "integrity": "sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.7.0.tgz", + "integrity": "sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.7.0.tgz", + "integrity": "sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.7.0.tgz", + "integrity": "sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.7.0.tgz", + "integrity": "sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.7.0.tgz", + "integrity": "sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.7.0.tgz", + "integrity": "sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.7.0.tgz", + "integrity": "sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.7.0.tgz", + "integrity": "sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.7.0.tgz", + "integrity": "sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.2.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.43.tgz", + "integrity": "sha512-nvOV01ZdBdd/KW6FahSbcNplt2jCJfyWdTos61RYHV+FVv5L/g9AOX1bmbVcWcLFL8+KHQfh1zVIQrud6ihyQA==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", + "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", + "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/type-utils": "6.13.2", + "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", + "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", + "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", + "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/utils": "6.13.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", + "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", + "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/visitor-keys": "6.13.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", + "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.13.2", + "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/typescript-estree": "6.13.2", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", + "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.13.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", + "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.5", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.609", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.609.tgz", + "integrity": "sha512-ihiCP7PJmjoGNuLpl7TjNA8pCQWu09vGyjlPYw1Rqww4gvNuCcmvl+44G+2QyJ6S2K4o+wbTS++Xz0YN8Q9ERw==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", + "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.8", + "@esbuild/android-arm64": "0.19.8", + "@esbuild/android-x64": "0.19.8", + "@esbuild/darwin-arm64": "0.19.8", + "@esbuild/darwin-x64": "0.19.8", + "@esbuild/freebsd-arm64": "0.19.8", + "@esbuild/freebsd-x64": "0.19.8", + "@esbuild/linux-arm": "0.19.8", + "@esbuild/linux-arm64": "0.19.8", + "@esbuild/linux-ia32": "0.19.8", + "@esbuild/linux-loong64": "0.19.8", + "@esbuild/linux-mips64el": "0.19.8", + "@esbuild/linux-ppc64": "0.19.8", + "@esbuild/linux-riscv64": "0.19.8", + "@esbuild/linux-s390x": "0.19.8", + "@esbuild/linux-x64": "0.19.8", + "@esbuild/netbsd-x64": "0.19.8", + "@esbuild/openbsd-x64": "0.19.8", + "@esbuild/sunos-x64": "0.19.8", + "@esbuild/win32-arm64": "0.19.8", + "@esbuild/win32-ia32": "0.19.8", + "@esbuild/win32-x64": "0.19.8" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz", + "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.7.0.tgz", + "integrity": "sha512-7Kw0dUP4BWH78zaZCqF1rPyQ8D5DSU6URG45v1dqS/faNsx9WXyess00uTOZxKr7oR/4TOjO1CPudT8L1UsEgw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.7.0", + "@rollup/rollup-android-arm64": "4.7.0", + "@rollup/rollup-darwin-arm64": "4.7.0", + "@rollup/rollup-darwin-x64": "4.7.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.7.0", + "@rollup/rollup-linux-arm64-gnu": "4.7.0", + "@rollup/rollup-linux-arm64-musl": "4.7.0", + "@rollup/rollup-linux-riscv64-gnu": "4.7.0", + "@rollup/rollup-linux-x64-gnu": "4.7.0", + "@rollup/rollup-linux-x64-musl": "4.7.0", + "@rollup/rollup-win32-arm64-msvc": "4.7.0", + "@rollup/rollup-win32-ia32-msvc": "4.7.0", + "@rollup/rollup-win32-x64-msvc": "4.7.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.7.tgz", + "integrity": "sha512-B4T4rJCDPihrQo2B+h1MbeGL/k/GMAHzhQ8S0LjQ142s6/+l3hHTT095ORvsshj4QCkoWu3Xtmob5mazvakaOw==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/ui/package.json b/ui/package.json new file mode 100644 index 00000000..232f2ad3 --- /dev/null +++ b/ui/package.json @@ -0,0 +1,29 @@ +{ + "name": "vipps-react-ui", + "private": true, + "version": "0.0.0", + "type": "module", + "license": "MIT", + "scripts": { + "dev": "vite build --watch", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@typescript-eslint/eslint-plugin": "^6.10.0", + "@typescript-eslint/parser": "^6.10.0", + "@vitejs/plugin-react": "^4.2.0", + "eslint": "^8.53.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.4", + "typescript": "^5.2.2", + "vite": "^5.0.0" + } +} diff --git a/ui/src/App.css b/ui/src/App.css new file mode 100644 index 00000000..ecd1a593 --- /dev/null +++ b/ui/src/App.css @@ -0,0 +1,36 @@ +.vipps-mobilepay-react-form-field { + margin-bottom: 2rem; + display: flex; + gap: 2rem; +} + +.vipps-mobilepay-react-form-field > label { + width: 15%; +} +.vipps-mobilepay-react-form-field > div { + width: 85%; +} + +.vipps-mobilepay-react-col { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.vipps-mobilepay-react-label { + font-weight: 600; + color: rgb(29, 35, 39); + font-size: 14px; +} + +.vipps-mobilepay-react-tab-description { + margin-bottom: 1rem; +} + +.vipps-mobilepay-react-field-description { + color: #666; +} +.vipps-mobilepay-react-row-center { + display: flex; + align-items: center; +} diff --git a/ui/src/App.tsx b/ui/src/App.tsx new file mode 100644 index 00000000..4604c49a --- /dev/null +++ b/ui/src/App.tsx @@ -0,0 +1,13 @@ +import './App.css'; +import { AdminSettings } from './components/admin-settings/admin-settings'; +import { WPOptionsProvider } from './wp-options-provider'; + +function App() { + return ( + + + + ); +} + +export default App; diff --git a/ui/src/main.tsx b/ui/src/main.tsx new file mode 100644 index 00000000..e0f9abff --- /dev/null +++ b/ui/src/main.tsx @@ -0,0 +1,9 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' + +ReactDOM.createRoot(document.getElementById('vipps-mobilepay-react-ui')!).render( + + + , +) diff --git a/ui/tsconfig.json b/ui/tsconfig.json new file mode 100644 index 00000000..a7fc6fbf --- /dev/null +++ b/ui/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/ui/tsconfig.node.json b/ui/tsconfig.node.json new file mode 100644 index 00000000..42872c59 --- /dev/null +++ b/ui/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/ui/vite.config.ts b/ui/vite.config.ts new file mode 100644 index 00000000..5b4e65fd --- /dev/null +++ b/ui/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + rollupOptions: { + output: { + dir: 'dist', + entryFileNames: 'plugin.js', + assetFileNames: 'plugin.css', + chunkFileNames: 'chunk.js', + manualChunks: undefined + } + } + } +}); From 6baed0488d463f10880c797826f979f1d9921de4 Mon Sep 17 00:00:00 2001 From: Nikolai Tellmann Date: Thu, 14 Dec 2023 18:08:07 +0000 Subject: [PATCH 02/86] Initialize React script with data & translations in WC_Gateway_Vipps --- WC_Gateway_Vipps.class.php | 346 ++++++++++++++++++++++++++++++++++++- 1 file changed, 342 insertions(+), 4 deletions(-) diff --git a/WC_Gateway_Vipps.class.php b/WC_Gateway_Vipps.class.php index 790a3eca..c6ac3cbc 100644 --- a/WC_Gateway_Vipps.class.php +++ b/WC_Gateway_Vipps.class.php @@ -169,7 +169,345 @@ public function __construct() { add_action('woocommerce_order_status_pending_to_cancelled', array($this, 'maybe_delete_order'), 99999, 1); add_action('woocommerce_payment_complete', array($this, 'order_payment_complete'), 10, 1); + + $this->init_react_admin_ui(); + } + + function init_react_admin_ui() { + global $Vipps; + $page_templates = $this->get_theme_page_templates(); + $page_list = $this->get_pagelist(); + // Loads the React UI for the admin settings interface. + wp_enqueue_script('vipps-mobilepay-react-ui', plugins_url('ui/dist/plugin.js',__FILE__), array('wp-i18n'), 0, true ); + + $current = get_option('woocommerce_vipps_settings'); + // New defaults based on old defaults + $default_static_shipping_for_checkout = 'no'; + $default_ask_address_for_express = 'no'; + if ($current) { + $default_static_shipping_for_checkout = (isset($current['enablestaticshipping'])) ? $current['enablestaticshipping'] : 'no'; + $default_ask_address_for_express = (isset($current['useExplicitCheckoutFlow']) && $current['useExplicitCheckoutFlow'] == "yes") ? "yes" : "no"; + // The old default used the same value as for Express Checkout. IOK 2023-07-27 + $vippscreateuserdefault = isset($current['expresscreateuser']) ? $current['expresscreateuser'] : $vippscreateuserdefault; + } + + $expresscreateuserdefault = "no"; + $vippscreateuserdefault = "no"; + // Express checkout uses verified email addresses,so we'll create users if the Login plugin is installed and WooCommerce is set to allow user registration. + if (class_exists('VippsWooLogin')) { + $woodefault = 'yes' === get_option('woocommerce_enable_signup_and_login_from_checkout'); + if ($woodefault) { + $expresscreateuserdefault = "yes"; + // $vippscreateuserdefault = "yes"; // However, for Vipps Checkout the email address is freetext so we'll treat the default a bit different. + } + } + + $translations = array( + // Main options + 'main_options_title' => __('Main options', 'woo-vipps'), + 'main_options_description' => __('Main options description', 'woo-vipps'), + + 'enabled_title' => __('Enable/Disable', 'woocommerce'), + 'enabled_label' => sprintf(__('Enable %1$s', 'woo-vipps'), Vipps::CompanyName()), + + 'payment_method_name_title' => __('Payment method', 'woo-vipps'), + 'payment_method_name_label' => __('Choose which payment method should be displayed to users at checkout', 'woo-vipps'), + 'payment_method_name_options_vipps' => __('Vipps', 'woo-vipps'), + 'payment_method_name_options_mobilepay' => __('MobilePay', 'woo-vipps'), + + 'orderprefix_title' => __('Order-id Prefix', 'woo-vipps'), + 'orderprefix_label' => __('An alphanumeric textstring to use as a prefix on orders from your shop, to avoid duplicate order-ids', 'woo-vipps'), + + 'merchantSerialNumber_title' => __('Merchant Serial Number', 'woo-vipps'), + 'merchantSerialNumber_label' => __('Your "Merchant Serial Number" from the Developer tab on https://portal.vipps.no', 'woo-vipps'), + + 'clientId_title' => __('Client Id', 'woo-vipps'), + 'clientId_label' => __('Find your account under the "Developer" tab on https://portal.vipps.no/ and choose "Show keys". Copy the value of "client_id"', 'woo-vipps'), + + 'secret_title' => __('Client Secret', 'woo-vipps'), + 'secret_label' => __('Find your account under the "Developer" tab on https://portal.vipps.no/ and choose "show keys". Copy the value of "client_secret"', 'woo-vipps'), + + 'Ocp_Apim_Key_eCommerce_title' => __('Subscription Key', 'woo-vipps'), + 'Ocp_Apim_Key_eCommerce_label' => __('Find your account under the "Developer" tab on https://portal.vipps.no/ and choose "show keys". Copy the value of "Vipps-Subscription-Key"', 'woo-vipps'), + + 'result_status_title' => sprintf(__('Order status on return from %1$s', 'woo-vipps'), Vipps::CompanyName()), + 'result_status_label' => __('Choose default order status for reserved (not captured) orders', 'woo-vipps'), + 'result_status_description' => __('By default, orders that are reserved but not captured will have the order status \'On hold\' until you capture the sum (by changing the status to \'Processing\' or \'Complete\')
Some stores prefer to use \'On hold\' only for orders where there are issues with the payment. In this case you can choose \'Processing\' instead, but you must then ensure that you do not ship the order until after you have done capture - because the \'capture\' step may in rare cases fail.
If you choose this setting, capture will still automatically happen on the status change to \'Complete\' ', 'woo-vipps'), + 'result_status_options_on-hold' => __('On hold', 'woo-vipps'), + 'result_status_options_processing' => __('Processing', 'woo-vipps'), + + 'title_title' => __('Title', 'woocommerce'), + 'title_description' => __('This controls the title which the user sees during checkout.', 'woocommerce'), + + 'description_title' => __('Description', 'woocommerce'), + 'description_description' => __('This controls the description which the user sees during checkout.', 'woocommerce'), + + 'vippsdefault_title' => sprintf(__('Use %1$s as default payment method on checkout page', 'woo-vipps'), $this->get_payment_method_name()), + 'vippsdefault_label' => sprintf(__('%1$s is default payment method', 'woo-vipps'), $this->get_payment_method_name()), + 'vippsdefault_description' => sprintf(__('Enable this to use %1$s as the default payment method on the checkout page, regardless of order.', 'woo-vipps'), $this->get_payment_method_name()), + + // Express options + 'express_options_title' => sprintf(__('Express Checkout', 'woo-vipps')), + 'express_options_description' => sprintf(__("%1\$s allows you to buy products by a single click from the cart page or directly from product or catalog pages. Product will get a 'buy now' button which will start the purchase process immediately.", 'woo-vipps'), Vipps::ExpressCheckoutName()), + + 'cartexpress_title' => __('Enable Express Checkout in cart', 'woo-vipps'), + 'cartexpress_label' => __('Enable Express Checkout in cart', 'woo-vipps'), + 'cartexpress_description' => sprintf(__('Enable this to allow customers to shop using %1$s directly from the cart with no login or address input needed', 'woo-vipps'), Vipps::ExpressCheckoutName()) . '.
' . + sprintf(__('Please note that for Express Checkout, shipping must be calculated in a callback from the %1$s app, without any knowledge of the customer. This means that Express Checkout may not be compatible with all Shipping plugins or setup. You should test that your setup works if you intend to provide this feature.', 'woo-vipps'), Vipps::CompanyName()), + + 'singleproductexpress_title' => __('Enable Express Checkout for single products', 'woo-vipps'), + 'singleproductexpress_label' => __('Enable Express Checkout for single products', 'woo-vipps'), + 'singleproductexpress_options_none' => __('No products', 'woo-vipps'), + 'singleproductexpress_options_some' => __('Some products', 'woo-vipps'), + 'singleproductexpress_options_all' => __('All products', 'woo-vipps'), + + 'singleproductexpress_description' => sprintf(__('Enable this to allow customers to buy a product using %1$s directly from the product page. If you choose \'some\', you must enable this on the relevant products', 'woo-vipps'), Vipps::ExpressCheckoutName()), + + 'singleproductexpressarchives_title' => __('Add \'Buy now\' button on catalog pages too', 'woo-vipps'), + 'singleproductexpressarchives_label' => __('Add the button for all relevant products on catalog pages', 'woo-vipps'), + 'singleproductexpressarchives_description' => sprintf(__('If %1$s is enabled for a product, add the \'Buy now\' button to catalog pages too', 'woo-vipps'), Vipps::ExpressCheckoutName()), + + 'expresscheckout_termscheckbox_title' => sprintf(__('Add terms and conditions checkbox on %1$s', 'woo-vipps'), Vipps::ExpressCheckoutName()), + 'expresscheckout_termscheckbox_label' => sprintf(__('Always ask for confirmation on %1$s', 'woo-vipps'), Vipps::ExpressCheckoutName()), + 'expresscheckout_termscheckbox_description' => sprintf(__('When using %1$s, ask the user to confirm that they have read and accepted the store\'s terms and conditions before proceeding', 'woo-vipps'), Vipps::ExpressCheckoutName()), + + 'expresscheckout_always_address_title' => __('Always ask for address, even if products don\'t need shipping', 'woo-vipps'), + 'expresscheckout_always_address_label' => __('Always ask the user for their address, even if you don\'t need it for shipping', 'woo-vipps'), + 'expresscheckout_always_address_description' => __('If the order contains only "virtual" products that do not need shipping, we do not normally ask the user for their address - but check this box to do so anyway.', 'woo-vipps'), + + 'enablestaticshipping_title' => __('Enable static shipping for Express Checkout', 'woo-vipps'), + 'enablestaticshipping_label' => __('Enable static shipping', 'woo-vipps'), + 'enablestaticshipping_description' => __('If your shipping options do not depend on the customer\'s address, you can enable \'Static shipping\', which will precompute the shipping options when using Express Checkout so that this will be much faster. If you do this and the customer isn\'t logged in, the base location of the store will be used to compute the shipping options for the order. You should only use this if your shipping is actually \'static\', that is, does not vary based on the customer\'s address. So fixed price/free shipping will work. If the customer is logged in, their address as registered in the store will be used, so if your customers are always logged in, you may be able to use this too.', 'woo-vipps'), + + 'expresscreateuser_title' => __('Create new customers on Express Checkout', 'woo-vipps'), + 'expresscreateuser_label' => __('Create new customers on Express Checkout', 'woo-vipps'), + 'expresscreateuser_description' => sprintf(__('Enable this to create and log in new customers when using express checkout. Otherwise, these will all be guest checkouts. If you have "Login with Vipps" installed, this will be the default (unless you have turned off user creation in WooCommerce itself)', 'woo-vipps'), Vipps::CompanyName()), + + 'singleproductbuynowcompatmode_title' => __('"Buy now" compatibility mode', 'woo-vipps'), + 'singleproductbuynowcompatmode_label' => __('Activate compatibility mode for all "Buy now" buttons', 'woo-vipps'), + 'singleproductbuynowcompatmode_description' => __('Choosing this will use a different method of handling the "Buy now" button on a single product, which will work for more product types and more plugins - while being slightly less smooth. Use this if your product needs more configuration than simple or standard variable products', 'woo-vipps'), + + 'deletefailedexpressorders_title' => __('Delete failed Express Checkout Orders', 'woo-vipps'), + 'deletefailedexpressorders_label' => __('Delete failed Express Checkout Orders', 'woo-vipps'), + 'deletefailedexpressorders_description' => __('As Express Checkout orders are anonymous, failed orders will end up as "cancelled" orders with no information in them. Enable this to delete these automatically when cancelled - but test to make sure no other plugin needs them for anything.', 'woo-vipps'), + + // Checkout options + 'checkout_options_title' => sprintf(__('Checkout', 'woo-vipps'), Vipps::CompanyName()), + 'checkout_options_description' => sprintf(__("%1\$s is a new service from %2\$s which replaces the usual WooCommerce checkout page entirely, replacing it with a simplified checkout screen providing payment both with %2\$s and credit card. Additionally, your customers will get the option of providing their address information using their %2\$s app directly.", 'woo-vipps'), Vipps::CheckoutName(), Vipps::CompanyName()), + + 'vipps_checkout_enabled_title' => sprintf(__('Activate Alternative %1$s', 'woocommerce'), Vipps::CheckoutName()), + 'vipps_checkout_enabled_label' => sprintf(__('Enable Alternative %1$s screen, replacing the standard checkout page', 'woo-vipps'), Vipps::CheckoutName()), + 'vipps_checkout_enabled_description' => sprintf(__('If activated, this will replace the standard Woo checkout screen with %1$s, providing easy checkout using %1$s or credit card, with no need to type in addresses.', 'woo-vipps'), Vipps::CheckoutName()), + + 'checkoutcreateuser_title' => sprintf(__('Create new customers on %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'checkoutcreateuser_label' => sprintf(__('Create new customers on %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'checkoutcreateuser_description' => sprintf(__('Enable this to create and login customers when using %1$s. Otherwise these will all be guest checkouts. If using, you may want to install Login with %1$s too.', 'woo-vipps'), Vipps::CheckoutName()), + + 'enablestaticshipping_checkout_title' => sprintf(__('Enable static shipping for %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'enablestaticshipping_checkout_label' => __('Enable static shipping', 'woo-vipps'), + 'enablestaticshipping_checkout_description' => sprintf(__('If your shipping options do not depend on the customers address, you can enable \'Static shipping\', which will precompute the shipping options when using %1$s so that this will be much faster. If you do this and the customer isn\'t logged in, the base location of the store will be used to compute the shipping options for the order. You should only use this if your shipping is actually \'static\', that is, does not vary based on the customers address. So fixed price/free shipping will work. If the customer is logged in, their address as registered in the store will be used, so if your customers are always logged in, you may be able to use this too.', 'woo-vipps'), Vipps::CheckoutName()), + + 'requireUserInfo_checkout_title' => __('Ask the user to consent to share user information', 'woo-vipps'), + 'requireUserInfo_checkout_label' => __('Ask the user to consent to share user information', 'woo-vipps'), + 'requireUserInfo_checkout_description' => sprintf(__('If using %1$s, ask for the users consent to share user information with the store. This will allow better integration between Login With %1$s but will add another step to first-time buyers.', 'woo-vipps'), Vipps::CompanyName()), + + 'noAddressFields_title' => __('Drop the address fields on the Checkout screen', 'woo-vipps'), + 'noAddressFields_label' => __('Don\'t require the address fields', 'woo-vipps'), + 'noAddressFields_description' => __('If your products don\'t require shipping, either because they are digital downloads, immaterial products or delivering the products directly on purchase, you can check this box. The user will then not be required to provide an address, which should speed things up a bit. If your products require shipping, this will have no effect. NB: If you have plugins that require shipping information, then this is not going to work very well.','woo-vipps'), + + 'noContactFields_title' => __('Drop the contact fields on the Checkout screen', 'woo-vipps'), + 'noContactFields_label' => __('Don\'t require the contact fields', 'woo-vipps'), + 'noContactFields_description' => __('If your products don\'t require shipping as above, and you also don\'t care about the customers name or contact information, you can drop this too! The customer fields will then be filled with a placeholder. NB: If you have plugins that require contact information, then this is not going to work very well. Also, for this to work you have to check the \'no addresses\' box as well.','woo-vipps'), + + // Checkout options -- shipping options + 'checkout_shipping_title' => sprintf(__('%1$s Shipping Methods', 'woo-vipps'), Vipps::CheckoutName()), + 'checkout_shipping_description' => sprintf(__("When using %1\$s, you have the option to use %1\$s specific shipping methods with extended features for certain carriers. These will add an apropriate logo as well as extended delivery options for certain methods. For some of these, you need to add integration data from the carriers below. You can then add these shipping methods to your shipping zones the normal way, but they will only appear in the %1\$s screen.", 'woo-vipps'), Vipps::CheckoutName()), + + 'vcs_posten_title' => __('Posten Norge', 'woo-vipps'), + 'vcs_posten_label' => sprintf(__('Support Posten Norge as a shipping method in %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'vcs_posten_description' => sprintf(__('Activate this for Posten Norge as a %1$s Shipping method.', 'woo-vipps'), Vipps::CheckoutName()), + + 'vcs_postnord_title' => __('PostNord', 'woo-vipps'), + 'vcs_postnord_label' => sprintf(__('Support PostenNord as a shipping method in %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'vcs_postnord_description' => sprintf(__('Activate this for PostNord as a %1$s Shipping method.', 'woo-vipps'), Vipps::CheckoutName()), + + 'vcs_porterbuddy_title' => __('Porterbuddy', 'woo-vipps'), + 'vcs_porterbuddy_label' => sprintf(__('Support Porterbuddy as a shipping method in %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'vcs_porterbuddy_description' => sprintf(__('Activate this for Porterbuddy as a %1$s Shipping method. Your store address will be used as the pick-up point and your admin email will be used for booking information from Porterbuddy.' ,'woo-vipps'), Vipps::CheckoutName()), + + 'vcs_porterbuddy_publicToken_title' => __('Porterbuddy public token', 'woo-vipps'), + 'vcs_porterbuddy_publicToken_label' => __('Porterbuddy public token', 'woo-vipps'), + 'vcs_porterbuddy_publicToken_description' => __('The public key provided to you by Porterbuddy','woo-vipps'), + + 'vcs_porterbuddy_apiKey_title' => __('Porterbuddy API key', 'woo-vipps'), + 'vcs_porterbuddy_apiKey_label' => __('Porterbuddy API key', 'woo-vipps'), + 'vcs_porterbuddy_apiKey_description' => __('The API key provided to you by Porterbuddy','woo-vipps'), + + 'vcs_porterbuddy_phoneNumber_title' => __('Porterbuddy Phone Number', 'woo-vipps'), + 'vcs_porterbuddy_phoneNumber_label' => __('Porterbuddy Phone Number', 'woo-vipps'), + 'vcs_porterbuddy_phoneNumber_description' => __('Your phone number where Porterbuddy may send you important messages. Format must be MSISDN (including country code). Example: "4791234567"','woo-vipps'), + + 'vcs_instabox_title' => __('Instabox', 'woo-vipps'), + 'vcs_instabox_label' => sprintf(__('Support Instabox as a shipping method in %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'vcs_instabox_description' => sprintf(__('Activate this for Instabox as a %1$s Shipping method.' ,'woo-vipps'), Vipps::CheckoutName()), + + 'vcs_instabox_clientId_title' => __('Instabox Client Id', 'woo-vipps'), + 'vcs_instabox_clientId_label' => __('Instabox Client Id', 'woo-vipps'), + 'vcs_instabox_clientId_description' => __('The Client Id provided to you by Instabox','woo-vipps'), + + 'vcs_instabox_clientSecret_title' => __('Instabox Client Secret', 'woo-vipps'), + 'vcs_instabox_clientSecret_label' => __('Instabox Client Secret', 'woo-vipps'), + 'vcs_instabox_clientSecret_description' => __('The Client Secret provided to you by Instabox','woo-vipps'), + + 'vcs_helthjem_title' => __('Helthjem', 'woo-vipps'), + 'vcs_helthjem_label' => sprintf(__('Support Helthjem as a shipping method in %1$s', 'woo-vipps'), Vipps::CheckoutName()), + 'vcs_helthjem_description' => sprintf(__('Activate this for Helthjem as a %1$s Shipping method.' ,'woo-vipps'), Vipps::CheckoutName()), + + 'vcs_helthjem_shopId_title' => __('Helthjem Shop Id', 'woo-vipps'), + 'vcs_helthjem_shopId_label' => __('Helthjem Shop Id', 'woo-vipps'), + 'vcs_helthjem_shopId_description' => __('The ShopId provided to you by Helthjem','woo-vipps'), + + 'vcs_helthjem_username_title' => __('Helthjem Username', 'woo-vipps'), + 'vcs_helthjem_username_label' => __('Helthjem Username', 'woo-vipps'), + 'vcs_helthjem_username_description' => __('The Username provided to you by Helthjem','woo-vipps'), + + 'vcs_helthjem_password_title' => __('Helthjem Password', 'woo-vipps'), + 'vcs_helthjem_password_label' => __('Helthjem Password', 'woo-vipps'), + 'vcs_helthjem_password_description' => __('Password provided to you by Helthjem','woo-vipps'), + + // Advanced options + 'advanced_options_title' => __('Advanced', 'woo-vipps'), + 'advanced_options_description' => __("If you have issues with your theme, you might find a setting here that will help. Normally you do not need to change these.", 'woo-vipps'), + + 'vippsspecialpagetemplate_title' => sprintf(__('Override page template used for the special %1$s pages', 'woo-vipps'), Vipps::CompanyName()), + 'vippsspecialpagetemplate_label' => sprintf(__('Use specific template for %1$s', 'woo-vipps'), Vipps::CompanyName()), + 'vippsspecialpagetemplate_description' => sprintf(__('Use this template from your theme or child-theme to display all the special %1$s pages. You will probably want a full-width template and it should call \'the_content()\' normally.', 'woo-vipps'), Vipps::CompanyName()), + 'vippsspecialpagetemplate_options' => $page_templates, + + 'vippsspecialpageid_title' => sprintf(__('Use a real page ID for the special %1$s pages - neccessary for some themes', 'woo-vipps'), Vipps::CompanyName()), + 'vippsspecialpageid_label' => __('Use a real page ID', 'woo-vipps'), + 'vippsspecialpageid_description' => sprintf(__('Some very few themes do not work with the simulated pages used by this plugin, and needs a real page ID for this. Choose a blank page for this; the content will be replaced, but the template and other metadata will be present. You only need to use this if the plugin seems to break on the special %1$s pages.', 'woo-vipps'), Vipps::CompanyName()), + 'vippsspecialpageid_options' => $page_list, + + 'sendreceipts_title' => __("Send receipts and order confirmation info to the customers' app on completed purchases.", 'woo-vipps'), + 'sendreceipts_label' => sprintf(__("Send receipts to the customers %1\$s app", 'woo-vipps'), Vipps::CompanyName()), + 'sendreceipts_description' => sprintf(__("If this is checked, a receipt will be sent to %1\$s which will be viewable in the users' app, specifying the order items, shipping et cetera", 'woo-vipps'), Vipps::CompanyName()), + + 'receiptimage_title' => sprintf(__('Use this image for the order confirmation link uploaded to the customers\' %1$s app', 'woo-vipps'), Vipps::CompanyName()), + 'receiptimage_label' => sprintf(__('Profile image used in the %1$s App', 'woo-vipps'), Vipps::CompanyName()), + 'receiptimage_description' => sprintf(__('If set, this image will be uploaded to %1$s and used to profile your store in the %1$s app for links to the order confirmation etc', 'woo-vipps'), Vipps::CompanyName()), + 'upload_image' => __('Upload image', 'woo-vipps'), + 'remove_image' => __('Remove image', 'woo-vipps'), + + 'use_flock_title' => __('Use flock() to lock orders for Express Checkout', 'woo-vipps'), + 'use_flock_label' => __('Use flock() to lock orders for Express Checkout', 'woo-vipps'), + 'use_flock_description' => __('Use the flock() system call to ensure orders are only finalized once. You can use this for normal setups, but probably not on Windows with IIS, and possibly not on distributed filesystems like NFS. If you don\t know what it is, probably do not use it. If you get duplicated shipping lines on some express orders, you may try using this', 'woo-vipps'), + + 'developermode_title' => __('Enable developer mode', 'woo-vipps'), + 'developermode_label' => __('Enable developer mode', 'woo-vipps'), + 'developermode_description' => __('Enable this to enter developer mode. This gives you access to the test-api and sometimes other tools not yet ready for general consumption', 'woo-vipps'), + + 'developer_options_title' => __('Developer mode', 'woo-vipps'), + 'developer_options_description' => __('These are settings for developers that contain extra features that are normally not useful for regular users, or are not yet ready for primetime', 'woo-vipps'), + + 'testmode_title' => __('Enable test mode', 'woo-vipps'), + 'testmode_label' => __('Enable test mode', 'woo-vipps'), + 'testmode_description' => sprintf(__('If you enable this, transactions will be made towards the %1$s Test API instead of the live one. No real transactions will be performed. You will need to fill out your test accounts keys below, and you will need to install a special test-mode app from Testflight on a device (which cannot run the regular %1$s app). Contact %1$s\'s technical support if you need this. If you turn this mode off, normal operation will resume. If you have the VIPPS_TEST_MODE defined in your wp-config file, this will override this value. ', 'woo-vipps'), Vipps::CompanyName()), + + 'merchantSerialNumber_test_title' => __('Merchant Serial Number', 'woo-vipps'), + 'merchantSerialNumber_test_label' => __('Merchant Serial Number', 'woo-vipps'), + 'merchantSerialNumber_test_description' => __('Your test account "Merchant Serial Number" from the Developer tab on https://portal.vipps.no','woo-vipps'), + + 'clientId_test_title' => __('Client Id', 'woo-vipps'), + 'clientId_test_label' => __('Client Id', 'woo-vipps'), + 'clientId_test_description' => __('Find your test account under the "Developer" tab on https://portal.vipps.no/ and choose "Show keys". Copy the value of "client_id"','woo-vipps'), + + 'secret_test_title' => __('Client Secret', 'woo-vipps'), + 'secret_test_label' => __('Client Secret', 'woo-vipps'), + 'secret_test_description' => __('Find your test account under the "Developer" tab on https://portal.vipps.no/ and choose "show keys". Copy the value of "client_secret"','woo-vipps'), + + 'Ocp_Apim_Key_eCommerce_test_title' => __('Subscription Key', 'woo-vipps'), + 'Ocp_Apim_Key_eCommerce_test_label' => __('Subscription Key', 'woo-vipps'), + 'Ocp_Apim_Key_eCommerce_test_description' => __('Find your test account under the "Developer" tab on https://portal.vipps.no/ and choose "show keys". Copy the value of "Vipps-Subscription-Key"','woo-vipps'), + ); + + + + $options = array( + // Main options tab data + 'enabled' => $this->get_option('enabled', 'no'), + 'payment_method_name' => $this->get_payment_method_name() ? $this->get_payment_method_name() : $this->detect_default_payment_method_name(), + 'orderprefix' => $this->get_option('orderprefix', $Vipps->generate_order_prefix()), + 'merchantSerialNumber' => $this->get_option('merchantSerialNumber'), + 'clientId' => $this->get_option('clientId'), + 'secret' => $this->get_option('secret'), + 'Ocp_Apim_Key_eCommerce' => $this->get_option('Ocp_Apim_Key_eCommerce'), + 'result_status' => $this->get_option('result_status', 'on-hold'), + 'title' => $this->get_option('title', sprintf(__('%1$s','woo-vipps'), $this->get_payment_method_name())) , + 'description' => $this->get_option('description', sprintf(__("Almost done! Remember, there are no fees using %1\$s when shopping online.", 'woo-vipps'), Vipps::CompanyName())), + 'vippsdefault' => $this->get_option('vippsdefault', 'yes'), + + // Express checkout tab data + 'cartexpress' => $this->get_option('cartexpress', 'yes'), + 'singleproductexpress' => $this->get_option('singleproductexpress', 'none'), + 'singleproductexpressarchives' => $this->get_option('singleproductexpressarchives', 'no'), + 'expresscheckout_termscheckbox' => $this->get_option('expresscheckout_termscheckbox', 'no'), + 'expresscheckout_always_address' => $this->get_option('expresscheckout_always_address', $default_ask_address_for_express), + 'enablestaticshipping' => $this->get_option('enablestaticshipping', 'no'), + 'expresscreateuser' => $this->get_option('expresscreateuser', $expresscreateuserdefault), + 'singleproductbuynowcompatmode' => $this->get_option('singleproductbuynowcompatmode', 'no'), + 'deletefailedexpressorders' => $this->get_option('deletefailedexpressorders', 'no'), + + // Checkout tab data + 'vipps_checkout_enabled' => $this->get_option('vipps_checkout_enabled', 'no'), + 'checkoutcreateuser' => $this->get_option('checkoutcreateuser', $vippscreateuserdefault), + 'enablestaticshipping_checkout' => $this->get_option('enablestaticshipping_checkout', 'no'), + 'requireUserInfo_checkout' => $this->get_option('requireUserInfo_checkout', 'no'), + 'noAddressFields' => $this->get_option('noAddressFields', 'no'), + 'noContactFields' => $this->get_option('noContactFields', 'no'), + + // Checkout tab - shipping data + 'checkout_shipping' => $this->get_option('checkout_shipping'), + 'vcs_posten' => $this->get_option('vcs_posten', 'yes'), + 'vcs_postnord' => $this->get_option('vcs_postnord', 'yes'), + 'vcs_porterbuddy' => $this->get_option('vcs_porterbuddy', 'no'), + 'vcs_porterbuddy_publicToken' => $this->get_option('vcs_porterbuddy_publicToken'), + 'vcs_porterbuddy_apiKey' => $this->get_option('vcs_porterbuddy_apiKey'), + 'vcs_porterbuddy_phoneNumber' => $this->get_option('vcs_porterbuddy_phoneNumber'), + 'vcs_instabox' => $this->get_option('vcs_instabox', 'no'), + 'vcs_instabox_clientId' => $this->get_option('vcs_instabox_clientId'), + 'vcs_instabox_clientSecret' => $this->get_option('vcs_instabox_clientSecret'), + 'vcs_helthjem' => $this->get_option('vcs_helthjem', 'no'), + 'vcs_helthjem_shopId' => $this->get_option('vcs_helthjem_shopId'), + 'vcs_helthjem_username' => $this->get_option('vcs_helthjem_username'), + 'vcs_helthjem_password' => $this->get_option('vcs_helthjem_password'), + + // Advanced tab + 'vippsspecialpagetemplate' => $this->get_option('vippsspecialpagetemplate'), + 'vippsspecialpageid' => $this->get_option('vippsspecialpageid'), + 'sendreceipts' => $this->get_option('sendreceipts', 'yes'), + 'receiptimage' => $this->get_option('receiptimage'), + 'receiptimage_url' => wp_get_attachment_url($this->get_option('receiptimage')), + 'use_flock' => $this->get_option('use_flock', 'no'), + 'developermode' => $this->get_option('developermode', VIPPS_TEST_MODE ? 'yes' : 'no'), + + // Developer tab + 'testmode' => $this->get_option('testmode', VIPPS_TEST_MODE ? 'yes' : 'no'), + 'merchantSerialNumber_test' => $this->get_option('merchantSerialNumber_test'), + 'clientId_test' => $this->get_option('clientId_test'), + 'secret_test' => $this->get_option('secret_test'), + 'Ocp_Apim_Key_eCommerce_test' => $this->get_option('Ocp_Apim_Key_eCommerce_test'), + ); + + $metadata = array( + 'admin_url' => admin_url('admin-ajax.php'), + ); + + wp_localize_script('vipps-mobilepay-react-ui', 'VippsMobilePayReactTranslations', $translations); + wp_localize_script('vipps-mobilepay-react-ui', 'VippsMobilePayReactOptions', $options); + wp_localize_script('vipps-mobilepay-react-ui', 'VippsMobilePayReactMetadata', $metadata); + wp_enqueue_style('vipps-mobilepay-react-ui', plugins_url('ui/dist/plugin.css',__FILE__), array(), 0 ); } // True iff this gateway is currently in test mode. IOK 2019-08-30 @@ -3241,9 +3579,9 @@ function activate_vipps_checkout(yesno) { - - generate_settings_html(); ?> -
+ + init_form_fields(); - + $this->init_react_admin_ui(); list($ok,$msg) = $this->check_connection(); if ($ok) { $this->adminnotify(sprintf(__("Connection to %1\$s is OK", 'woo-vipps'), Vipps::CompanyName())); From dfd32ad8c68916a4084f11314dd126ca72727a4c Mon Sep 17 00:00:00 2001 From: Nikolai Tellmann Date: Thu, 14 Dec 2023 19:19:09 +0000 Subject: [PATCH 03/86] Add WordPress data and options provider in a centralized place --- ui/src/lib/wp-data.ts | 31 ++++++++++++++ ui/src/vite-env.d.ts | 1 + ui/src/wp-options-provider.tsx | 76 ++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 ui/src/lib/wp-data.ts create mode 100644 ui/src/vite-env.d.ts create mode 100644 ui/src/wp-options-provider.tsx diff --git a/ui/src/lib/wp-data.ts b/ui/src/lib/wp-data.ts new file mode 100644 index 00000000..587cea4d --- /dev/null +++ b/ui/src/lib/wp-data.ts @@ -0,0 +1,31 @@ +/** + * Entry point for WordPress data, this file is meant to be a centralised place for all WordPress data, + * so that we can have a clear overview of what data is available and where it comes from. + */ +type WPWindow = (Window & typeof globalThis) & { + VippsMobilePayReactTranslations?: Record; + VippsMobilePayReactOptions?: Record; + VippsMobilePayReactMetadata?: Record; +}; +const wpWindow = window as WPWindow; + +if (!wpWindow.VippsMobilePayReactTranslations) { + throw new Error('VippsMobilePayReactTranslations not found, make sure to include this using wp_localize_script()'); +} +if (!wpWindow.VippsMobilePayReactOptions) { + throw new Error('VippsMobilePayReactOptions not found, make sure to include this using wp_localize_script()'); +} +if (!wpWindow.VippsMobilePayReactMetadata) { + throw new Error('VippsMobilePayReactMetadata not found, make sure to include this using wp_localize_script()'); +} + +export function gettext(msgid: string): string { + return wpWindow.VippsMobilePayReactTranslations?.[msgid] ?? msgid; +} + +export function getMetadata(key: string): string | null { + return wpWindow.VippsMobilePayReactMetadata?.[key] ?? null; +} + +const { VippsMobilePayReactTranslations, VippsMobilePayReactOptions, VippsMobilePayReactMetadata } = wpWindow; +export { VippsMobilePayReactTranslations, VippsMobilePayReactOptions, VippsMobilePayReactMetadata }; diff --git a/ui/src/vite-env.d.ts b/ui/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/ui/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/ui/src/wp-options-provider.tsx b/ui/src/wp-options-provider.tsx new file mode 100644 index 00000000..1c59ee37 --- /dev/null +++ b/ui/src/wp-options-provider.tsx @@ -0,0 +1,76 @@ +import { PropsWithChildren, createContext, useContext, useState } from 'react'; +import { VippsMobilePayReactOptions } from './lib/wp-data'; + +interface WPContext { + setOption: (option: string, value: string | null) => Promise; + getOption: (option: string) => string; + submitChanges: (event: React.FormEvent) => Promise; +} +const WPContext = createContext(null!); + +export function WPOptionsProvider({ children }: PropsWithChildren) { + const [values, setValues] = useState>(VippsMobilePayReactOptions); + + function getOption(key: string): string { + return values?.[key] ?? ''; + } + + async function setOption(key: string, value: string | null) { + setValues((values) => ({ + ...values, + [key]: value ?? null + })); + } + + async function submitChanges(event: React.FormEvent) { + event.preventDefault(); + + const changedOptions = Object.entries(values).filter(([key, value]) => VippsMobilePayReactOptions[key] !== value); + + for (const [key, value] of changedOptions) { + try { + const response = await fetch('/wp-admin/admin-ajax.php', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + action: 'set_option', + key, + value + }) + }); + if (!response.ok) { + throw new Error(response.statusText); + } + } catch (error) { + console.error(error); + throw error; + } + } + } + + return ( + + {children} +
+ DEBUG +
{JSON.stringify(values, null, 2)}
+
+
+ ); +} + +export function useWP() { + const context = useContext(WPContext); + if (!context) { + throw new Error('useWP must be used within a WPOptionsProvider'); + } + return context; +} From 1344801306083380fcae0e15c7ff3735b0a23d10 Mon Sep 17 00:00:00 2001 From: Nikolai Tellmann Date: Thu, 14 Dec 2023 19:20:10 +0000 Subject: [PATCH 04/86] Add new base components for forms and tabs --- ui/src/components/form-elements.tsx | 97 +++++++++++++ ui/src/components/options-form-fields.tsx | 162 ++++++++++++++++++++++ ui/src/components/tabs.tsx | 24 ++++ ui/src/components/unsafe-html-text.tsx | 16 +++ ui/src/hooks/use-hash.ts | 37 +++++ 5 files changed, 336 insertions(+) create mode 100644 ui/src/components/form-elements.tsx create mode 100644 ui/src/components/options-form-fields.tsx create mode 100644 ui/src/components/tabs.tsx create mode 100644 ui/src/components/unsafe-html-text.tsx create mode 100644 ui/src/hooks/use-hash.ts diff --git a/ui/src/components/form-elements.tsx b/ui/src/components/form-elements.tsx new file mode 100644 index 00000000..1db2180c --- /dev/null +++ b/ui/src/components/form-elements.tsx @@ -0,0 +1,97 @@ +import { ComponentProps, PropsWithChildren } from 'react'; + +export function WPInput(props: ComponentProps<'input'>) { + return ( + + {props.children} + + ); +} + +export function WPForm(props: ComponentProps<'form'>) { + return ( +
+ {props.children} +
+ ); +} + +export function WPLabel(props: ComponentProps<'label'>) { + return ( + + ); +} + +interface WPButton extends ComponentProps<'button'> { + variant?: 'primary' | 'secondary' | 'link'; +} +export function WPButton({ variant, ...restProps }: WPButton) { + return ( + + ); +} + +interface WPCheckboxProps { + name?: string; + id?: string; + checked: string | undefined; + onChange: (value: string) => void; + className?: string; +} +export function WPCheckbox({ id, name, onChange, checked, children, className }: PropsWithChildren) { + return ( + onChange(boolToTruth(e.target.checked))} + type="checkbox" + className={[className ?? ''].join(' ')} + > + {children} + + ); +} + +export function WPSelect(props: ComponentProps<'select'>) { + return ( + + ); +} + +export function WPOption(props: ComponentProps<'option'>) { + return ( + + ); +} + +export function WPTextarea(props: ComponentProps<'textarea'>) { + return ( + + ); +} + +export function WPFormField(props: ComponentProps<'div'>) { + return ( +
+ {props.children} +
+ ); +} + +function truthToBool(value: string | null) { + return value === 'yes'; +} +function boolToTruth(value: boolean) { + return value ? 'yes' : 'no'; +} diff --git a/ui/src/components/options-form-fields.tsx b/ui/src/components/options-form-fields.tsx new file mode 100644 index 00000000..78430f7a --- /dev/null +++ b/ui/src/components/options-form-fields.tsx @@ -0,0 +1,162 @@ +import { useState } from 'react'; +import { gettext } from '../lib/wp-data'; +import { useWP } from '../wp-options-provider'; +import { UnsafeHtmlText } from './unsafe-html-text'; +import { WPCheckbox, WPFormField, WPInput, WPLabel, WPOption, WPSelect, WPTextarea } from './form-elements'; + +interface Props { + name: string; + titleKey: string; + labelKey: string; + descriptionKey?: string; +} + +/** + * Checkbox form field component. + * Reads and updates the WP data available in the WPOptionsProvider. + */ +export function CheckboxFormField({ name, titleKey, labelKey, descriptionKey }: Props) { + const { getOption, setOption } = useWP(); + + return ( + + {gettext(titleKey)} +
+
+ setOption(name, value)} + /> + {labelKey && ( + + )} +
+ {descriptionKey && } +
+
+ ); +} + +interface SelectFormFieldProps { + name: string; + titleKey: string; + descriptionKey: string; + options: string[]; +} + +/** + * Select form field component. + * Reads and updates the WP data available in the WPOptionsProvider. + */ +export function SelectFormField({ name, titleKey, descriptionKey, options }: SelectFormFieldProps) { + const { getOption, setOption } = useWP(); + + return ( + + {gettext(titleKey)} +
+ setOption(name, e.target.value)} + value={getOption(name)} + required + > + {options.map((option) => ( + + {option} + + ))} + + {descriptionKey && } +
+
+ ); +} + +interface InputFormFieldProps { + name: string; + titleKey: string; + labelKey?: string; + descriptionKey?: string; + pattern?: string; + required?: boolean; + asterisk?: boolean; + type?: string; +} + +/** + * Input form field component. + * Reads and updates the WP data available in the WPOptionsProvider. + */ +export function InputFormField({ + name, + titleKey, + labelKey, + descriptionKey, + pattern, + required, + asterisk, + type = 'text' +}: InputFormFieldProps) { + const { getOption, setOption } = useWP(); + const [isFocused, setIsFocused] = useState(false); + const shouldHideValue = !isFocused && asterisk; + + return ( + + {gettext(titleKey)} +
+ setOption(name, e.target.value)} + value={getOption(name)} + pattern={pattern} + required={required} + onFocus={() => setIsFocused(true)} + onBlur={() => setIsFocused(false)} + type={shouldHideValue ? 'password' : type} + /> +
{labelKey && }
+ {descriptionKey && } +
+
+ ); +} + +interface TextareaFormFieldProps { + name: string; + titleKey: string; + labelKey?: string; + descriptionKey?: string; + rows?: number; +} + +/** + * Textarea form field component. + * Reads and updates the WP data available in the WPOptionsProvider. + */ +export function TextareaFormField({ name, titleKey, labelKey, descriptionKey, rows = 5 }: TextareaFormFieldProps) { + const { getOption, setOption } = useWP(); + return ( + + {gettext(titleKey)} +
+ setOption(name, e.target.value)} + value={getOption(name)} + rows={rows} + /> +
{labelKey && }
+ {descriptionKey && } +
+
+ ); +} diff --git a/ui/src/components/tabs.tsx b/ui/src/components/tabs.tsx new file mode 100644 index 00000000..4d76a96d --- /dev/null +++ b/ui/src/components/tabs.tsx @@ -0,0 +1,24 @@ +interface Props { + tabs: string[]; + onTabChange: (tab: string) => void; + activeTab: string; +} +export function Tabs({ tabs, onTabChange, activeTab }: Props) { + return ( +
+ {tabs.map((tab, index) => ( +

onTabChange(tab)} + style={{ cursor: 'pointer' }} + > + {tab} +

+ ))} +
+ ); +} diff --git a/ui/src/components/unsafe-html-text.tsx b/ui/src/components/unsafe-html-text.tsx new file mode 100644 index 00000000..67bc05dc --- /dev/null +++ b/ui/src/components/unsafe-html-text.tsx @@ -0,0 +1,16 @@ +import { PropsWithChildren } from 'react'; + +interface HtmlToReactConverterProps { + htmlString: string; + className?: string; +} + +/** + * Converts a HTML string to React nodes, with support for some basic HTML tags. + * It uses the dangerouslySetInnerHTML prop to render the HTML string directly. + * This is not recommended for user input, as it can lead to XSS attacks. + * @returns A React node with the converted HTML string. + */ +export function UnsafeHtmlText({ htmlString, className = '' }: PropsWithChildren): JSX.Element { + return ; +} diff --git a/ui/src/hooks/use-hash.ts b/ui/src/hooks/use-hash.ts new file mode 100644 index 00000000..ec214c46 --- /dev/null +++ b/ui/src/hooks/use-hash.ts @@ -0,0 +1,37 @@ +import { useCallback, useEffect, useState } from 'react'; + +/** + * Custom hook that manages the hash portion of the URL. + * + * @param defaultValue - The default value for the hash. + * @returns A tuple containing the current hash value and a function to update the hash. + */ +export function useHash(defaultValue?: string): [string, (newHash: string) => void] { + const [hash, setHash] = useState(() => window.location.hash); + + const hashChangeHandler = useCallback(() => { + setHash(window.location.hash); + }, []); + + useEffect(() => { + window.addEventListener('hashchange', hashChangeHandler); + return () => { + window.removeEventListener('hashchange', hashChangeHandler); + }; + }, [hashChangeHandler]); + + const updateHash = useCallback( + (newHash: string) => { + if (newHash !== hash) window.location.hash = '#' + newHash; + }, + [hash] + ); + + useEffect(() => { + if (!hash && defaultValue) { + updateHash(defaultValue); + } + }, [hash, defaultValue, updateHash]); + + return [decodeURIComponent(hash.replace('#', '')), updateHash]; +} From 7476535732a31eed5e23d681c0debee44652fd8f Mon Sep 17 00:00:00 2001 From: Nikolai Tellmann Date: Thu, 14 Dec 2023 19:22:53 +0000 Subject: [PATCH 05/86] Create tabs and form elements for payments settings --- ui/dist/plugin.js | 2 +- .../admin-settings/admin-settings.tsx | 65 +++++++ .../admin-settings/advanced-options-tab.tsx | 88 ++++++++++ .../admin-settings/checkout-options-tab.tsx | 158 ++++++++++++++++++ .../admin-settings/developer-options-tab.tsx | 29 ++++ .../admin-settings/express-options-tab.tsx | 77 +++++++++ .../admin-settings/main-options-tab.tsx | 39 +++++ ui/src/hooks/use-wp-image-upload.ts | 67 ++++++++ ui/src/wp-options-provider.tsx | 4 - 9 files changed, 524 insertions(+), 5 deletions(-) create mode 100644 ui/src/components/admin-settings/admin-settings.tsx create mode 100644 ui/src/components/admin-settings/advanced-options-tab.tsx create mode 100644 ui/src/components/admin-settings/checkout-options-tab.tsx create mode 100644 ui/src/components/admin-settings/developer-options-tab.tsx create mode 100644 ui/src/components/admin-settings/express-options-tab.tsx create mode 100644 ui/src/components/admin-settings/main-options-tab.tsx create mode 100644 ui/src/hooks/use-wp-image-upload.ts diff --git a/ui/dist/plugin.js b/ui/dist/plugin.js index 03a4c3f3..d3761f5c 100644 --- a/ui/dist/plugin.js +++ b/ui/dist/plugin.js @@ -37,4 +37,4 @@ `+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=u);break}}}finally{Ll=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?En(e):""}function Bc(e){switch(e.tag){case 5:return En(e.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 2:case 15:return e=Ol(e.type,!1),e;case 11:return e=Ol(e.type.render,!1),e;case 1:return e=Ol(e.type,!0),e;default:return""}}function oi(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ut:return"Fragment";case Dt:return"Portal";case ri:return"Profiler";case to:return"StrictMode";case li:return"Suspense";case ii:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ys:return(e.displayName||"Context")+".Consumer";case vs:return(e._context.displayName||"Context")+".Provider";case no:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ro:return t=e.displayName||null,t!==null?t:oi(e.type)||"Memo";case et:t=e._payload,e=e._init;try{return oi(e(t))}catch{}}return null}function Hc(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return oi(t);case 8:return t===to?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function mt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _s(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Qc(e){var t=_s(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function pr(e){e._valueTracker||(e._valueTracker=Qc(e))}function ws(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_s(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function $r(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ui(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=mt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ks(e,t){t=t.checked,t!=null&&eo(e,"checked",t,!1)}function si(e,t){ks(e,t);var n=mt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ai(e,t.type,n):t.hasOwnProperty("defaultValue")&&ai(e,t.type,mt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Jo(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ai(e,t,n){(t!=="number"||$r(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Cn=Array.isArray;function Zt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=mr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pn={animationIterationCount:!0,aspectRatio:!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},Yc=["Webkit","ms","Moz","O"];Object.keys(Pn).forEach(function(e){Yc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pn[t]=Pn[e]})});function Cs(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pn.hasOwnProperty(e)&&Pn[e]?(""+t).trim():t+"px"}function Ns(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Cs(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Xc=W({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 fi(e,t){if(t){if(Xc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(g(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(g(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(g(61))}if(t.style!=null&&typeof t.style!="object")throw Error(g(62))}}function pi(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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}}var mi=null;function lo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var hi=null,Jt=null,qt=null;function eu(e){if(e=lr(e)){if(typeof hi!="function")throw Error(g(280));var t=e.stateNode;t&&(t=hl(t),hi(e.stateNode,e.type,t))}}function js(e){Jt?qt?qt.push(e):qt=[e]:Jt=e}function Ps(){if(Jt){var e=Jt,t=qt;if(qt=Jt=null,eu(e),t)for(e=0;e>>=0,e===0?32:31-(id(e)/od|0)|0}var hr=64,vr=4194304;function Nn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Br(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var u=o&~l;u!==0?r=Nn(u):(i&=o,i!==0&&(r=Nn(i)))}else o=n&~l,o!==0?r=Nn(o):i!==0&&(r=Nn(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function nr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Fe(t),e[t]=n}function cd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tn),au=" ",cu=!1;function Xs(e,t){switch(e){case"keyup":return Dd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $t=!1;function $d(e,t){switch(e){case"compositionend":return Gs(t);case"keypress":return t.which!==32?null:(cu=!0,au);case"textInput":return e=t.data,e===au&&cu?null:e;default:return null}}function Ad(e,t){if($t)return e==="compositionend"||!po&&Xs(e,t)?(e=Qs(),Lr=ao=lt=null,$t=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=mu(n)}}function bs(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bs(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ea(){for(var e=window,t=$r();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=$r(e.document)}return t}function mo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Zd(e){var t=ea(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&bs(n.ownerDocument.documentElement,n)){if(r!==null&&mo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=hu(n,i);var o=hu(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,At=null,ki=null,On=null,Si=!1;function vu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Si||At==null||At!==$r(r)||(r=At,"selectionStart"in r&&mo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),On&&Bn(On,r)||(On=r,r=Yr(ki,"onSelect"),0Bt||(e.current=Pi[Bt],Pi[Bt]=null,Bt--)}function F(e,t){Bt++,Pi[Bt]=e.current,e.current=t}var ht={},ue=yt(ht),me=yt(!1),zt=ht;function rn(e,t){var n=e.type.contextTypes;if(!n)return ht;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function he(e){return e=e.childContextTypes,e!=null}function Gr(){D(me),D(ue)}function xu(e,t,n){if(ue.current!==ht)throw Error(g(168));F(ue,t),F(me,n)}function aa(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(g(108,Hc(e)||"Unknown",l));return W({},n,r)}function Zr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ht,zt=ue.current,F(ue,e),F(me,me.current),!0}function Eu(e,t,n){var r=e.stateNode;if(!r)throw Error(g(169));n?(e=aa(e,t,zt),r.__reactInternalMemoizedMergedChildContext=e,D(me),D(ue),F(ue,e)):D(me),F(me,n)}var Be=null,vl=!1,Ql=!1;function ca(e){Be===null?Be=[e]:Be.push(e)}function af(e){vl=!0,ca(e)}function gt(){if(!Ql&&Be!==null){Ql=!0;var e=0,t=I;try{var n=Be;for(I=1;e>=o,l-=o,He=1<<32-Fe(t)+l|n<j?(H=N,N=null):H=N.sibling;var L=m(d,N,f[j],y);if(L===null){N===null&&(N=H);break}e&&N&&L.alternate===null&&t(d,N),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L,N=H}if(j===f.length)return n(d,N),$&&St(d,j),x;if(N===null){for(;jj?(H=N,N=null):H=N.sibling;var Te=m(d,N,L.value,y);if(Te===null){N===null&&(N=H);break}e&&N&&Te.alternate===null&&t(d,N),a=i(Te,a,j),C===null?x=Te:C.sibling=Te,C=Te,N=H}if(L.done)return n(d,N),$&&St(d,j),x;if(N===null){for(;!L.done;j++,L=f.next())L=h(d,L.value,y),L!==null&&(a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return $&&St(d,j),x}for(N=r(d,N);!L.done;j++,L=f.next())L=_(N,d,j,L.value,y),L!==null&&(e&&L.alternate!==null&&N.delete(L.key===null?j:L.key),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return e&&N.forEach(function(mn){return t(d,mn)}),$&&St(d,j),x}function U(d,a,f,y){if(typeof f=="object"&&f!==null&&f.type===Ut&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case fr:e:{for(var x=f.key,C=a;C!==null;){if(C.key===x){if(x=f.type,x===Ut){if(C.tag===7){n(d,C.sibling),a=l(C,f.props.children),a.return=d,d=a;break e}}else if(C.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===et&&Lu(x)===C.type){n(d,C.sibling),a=l(C,f.props),a.ref=kn(d,C,f),a.return=d,d=a;break e}n(d,C);break}else t(d,C);C=C.sibling}f.type===Ut?(a=Pt(f.props.children,d.mode,y,f.key),a.return=d,d=a):(y=Ur(f.type,f.key,f.props,null,d.mode,y),y.ref=kn(d,a,f),y.return=d,d=y)}return o(d);case Dt:e:{for(C=f.key;a!==null;){if(a.key===C)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){n(d,a.sibling),a=l(a,f.children||[]),a.return=d,d=a;break e}else{n(d,a);break}else t(d,a);a=a.sibling}a=ei(f,d.mode,y),a.return=d,d=a}return o(d);case et:return C=f._init,U(d,a,C(f._payload),y)}if(Cn(f))return w(d,a,f,y);if(vn(f))return k(d,a,f,y);xr(d,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(n(d,a.sibling),a=l(a,f),a.return=d,d=a):(n(d,a),a=bl(f,d.mode,y),a.return=d,d=a),o(d)):n(d,a)}return U}var on=ga(!0),_a=ga(!1),ir={},Ve=yt(ir),Xn=yt(ir),Gn=yt(ir);function Nt(e){if(e===ir)throw Error(g(174));return e}function xo(e,t){switch(F(Gn,t),F(Xn,e),F(Ve,ir),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:di(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=di(t,e)}D(Ve),F(Ve,t)}function un(){D(Ve),D(Xn),D(Gn)}function wa(e){Nt(Gn.current);var t=Nt(Ve.current),n=di(t,e.type);t!==n&&(F(Xn,e),F(Ve,n))}function Eo(e){Xn.current===e&&(D(Ve),D(Xn))}var A=yt(0);function nl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Yl=[];function Co(){for(var e=0;en?n:4,e(!0);var r=Xl.transition;Xl.transition={};try{e(!1),t()}finally{I=n,Xl.transition=r}}function Ma(){return ze().memoizedState}function pf(e,t,n){var r=ft(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ka(e))Da(t,n);else if(n=ma(e,t,n,r),n!==null){var l=ae();Me(n,e,r,l),Ua(n,t,r)}}function mf(e,t,n){var r=ft(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ka(e))Da(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,u=i(o,n);if(l.hasEagerState=!0,l.eagerState=u,Ke(u,o)){var s=t.interleaved;s===null?(l.next=l,ko(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ma(e,t,l,r),n!==null&&(l=ae(),Me(n,e,r,l),Ua(n,t,r))}}function Ka(e){var t=e.alternate;return e===V||t!==null&&t===V}function Da(e,t){Rn=rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ua(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,oo(e,n)}}var ll={readContext:Pe,useCallback:le,useContext:le,useEffect:le,useImperativeHandle:le,useInsertionEffect:le,useLayoutEffect:le,useMemo:le,useReducer:le,useRef:le,useState:le,useDebugValue:le,useDeferredValue:le,useTransition:le,useMutableSource:le,useSyncExternalStore:le,useId:le,unstable_isNewReconciler:!1},hf={readContext:Pe,useCallback:function(e,t){return Ue().memoizedState=[e,t===void 0?null:t],e},useContext:Pe,useEffect:Ru,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Fr(4194308,4,La.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Fr(4,2,e,t)},useMemo:function(e,t){var n=Ue();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ue();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=pf.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=Ue();return e={current:e},t.memoizedState=e},useState:Ou,useDebugValue:To,useDeferredValue:function(e){return Ue().memoizedState=e},useTransition:function(){var e=Ou(!1),t=e[0];return e=ff.bind(null,e[1]),Ue().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=V,l=Ue();if($){if(n===void 0)throw Error(g(407));n=n()}else{if(n=t(),ee===null)throw Error(g(349));Lt&30||xa(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Ru(Ca.bind(null,r,i,e),[e]),r.flags|=2048,qn(9,Ea.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ue(),t=ee.identifierPrefix;if($){var n=Qe,r=He;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Zn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[$e]=t,e[Yn]=r,Xa(e,t,!1,!1),t.stateNode=e;e:{switch(o=pi(n,r),n){case"dialog":M("cancel",e),M("close",e),l=r;break;case"iframe":case"object":case"embed":M("load",e),l=r;break;case"video":case"audio":for(l=0;lan&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!$)return ie(t),null}else 2*Y()-i.renderingStartTime>an&&n!==1073741824&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Y(),t.sibling=null,n=A.current,F(A,r?n&1|2:n&1),t):(ie(t),null);case 22:case 23:return Mo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(ie(t),t.subtreeFlags&6&&(t.flags|=8192)):ie(t),null;case 24:return null;case 25:return null}throw Error(g(156,t.tag))}function xf(e,t){switch(vo(t),t.tag){case 1:return he(t.type)&&Gr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),D(me),D(ue),Co(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eo(t),null;case 13:if(D(A),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(g(340));ln()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(A),null;case 4:return un(),null;case 10:return wo(t.type._context),null;case 22:case 23:return Mo(),null;case 24:return null;default:return null}}var Cr=!1,oe=!1,Ef=typeof WeakSet=="function"?WeakSet:Set,S=null;function Xt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){B(e,t,r)}}var Vu=!1;function Cf(e,t){if(xi=Hr,e=ea(),mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,u=-1,s=-1,c=0,v=0,h=e,m=null;t:for(;;){for(var _;h!==n||l!==0&&h.nodeType!==3||(u=o+l),h!==i||r!==0&&h.nodeType!==3||(s=o+r),h.nodeType===3&&(o+=h.nodeValue.length),(_=h.firstChild)!==null;)m=h,h=_;for(;;){if(h===e)break t;if(m===n&&++c===l&&(u=o),m===i&&++v===r&&(s=o),(_=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=_}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ei={focusedElem:e,selectionRange:n},Hr=!1,S=t;S!==null;)if(t=S,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,S=e;else for(;S!==null;){t=S;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,U=w.memoizedState,d=t.stateNode,a=d.getSnapshotBeforeUpdate(t.elementType===t.type?k:Oe(t.type,k),U);d.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(g(163))}}catch(y){B(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,S=e;break}S=t.return}return w=Vu,Vu=!1,w}function In(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&$i(t,n,i)}l=l.next}while(l!==r)}}function _l(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ai(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ja(e){var t=e.alternate;t!==null&&(e.alternate=null,Ja(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$e],delete t[Yn],delete t[ji],delete t[uf],delete t[sf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function qa(e){return e.tag===5||e.tag===3||e.tag===4}function Wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xr));else if(r!==4&&(e=e.child,e!==null))for(Vi(e,t,n),e=e.sibling;e!==null;)Vi(e,t,n),e=e.sibling}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}var te=null,Re=!1;function be(e,t,n){for(n=n.child;n!==null;)ba(e,t,n),n=n.sibling}function ba(e,t,n){if(Ae&&typeof Ae.onCommitFiberUnmount=="function")try{Ae.onCommitFiberUnmount(dl,n)}catch{}switch(n.tag){case 5:oe||Xt(n,t);case 6:var r=te,l=Re;te=null,be(e,t,n),te=r,Re=l,te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):te.removeChild(n.stateNode));break;case 18:te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?Hl(e.parentNode,n):e.nodeType===1&&Hl(e,n),Vn(e)):Hl(te,n.stateNode));break;case 4:r=te,l=Re,te=n.stateNode.containerInfo,Re=!0,be(e,t,n),te=r,Re=l;break;case 0:case 11:case 14:case 15:if(!oe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$i(n,t,o),l=l.next}while(l!==r)}be(e,t,n);break;case 1:if(!oe&&(Xt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){B(n,t,u)}be(e,t,n);break;case 21:be(e,t,n);break;case 22:n.mode&1?(oe=(r=oe)||n.memoizedState!==null,be(e,t,n),oe=r):be(e,t,n);break;default:be(e,t,n)}}function Bu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ef),t.forEach(function(r){var l=If.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Le(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=Y()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jf(r/1960))-r,10e?16:e,it===null)var r=!1;else{if(e=it,it=null,ul=0,R&6)throw Error(g(331));var l=R;for(R|=4,S=e.current;S!==null;){var i=S,o=i.child;if(S.flags&16){var u=i.deletions;if(u!==null){for(var s=0;sY()-Io?jt(e,0):Ro|=n),ve(e,t)}function uc(e,t){t===0&&(e.mode&1?(t=vr,vr<<=1,!(vr&130023424)&&(vr=4194304)):t=1);var n=ae();e=Ze(e,t),e!==null&&(nr(e,t,n),ve(e,n))}function Rf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),uc(e,n)}function If(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(g(314))}r!==null&&r.delete(t),uc(e,n)}var sc;sc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)pe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pe=!1,kf(e,t,n);pe=!!(e.flags&131072)}else pe=!1,$&&t.flags&1048576&&da(t,qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mr(e,t),e=t.pendingProps;var l=rn(t,ue.current);en(t,n),l=jo(null,t,r,e,l,n);var i=Po();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,he(r)?(i=!0,Zr(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,So(t),l.updater=yl,t.stateNode=l,l._reactInternals=t,Ri(t,r,e,n),t=Mi(null,t,r,!0,i,n)):(t.tag=0,$&&i&&ho(t),se(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Mf(r),e=Oe(r,e),l){case 0:t=Fi(null,t,r,e,n);break e;case 1:t=Uu(null,t,r,e,n);break e;case 11:t=Ku(null,t,r,e,n);break e;case 14:t=Du(null,t,r,Oe(r.type,e),n);break e}throw Error(g(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Fi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Uu(e,t,r,l,n);case 3:e:{if(Ha(t),e===null)throw Error(g(387));r=t.pendingProps,i=t.memoizedState,l=i.element,ha(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=sn(Error(g(423)),t),t=$u(e,t,r,n,l);break e}else if(r!==l){l=sn(Error(g(424)),t),t=$u(e,t,r,n,l);break e}else for(ge=at(t.stateNode.containerInfo.firstChild),_e=t,$=!0,Ie=null,n=_a(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ln(),r===l){t=Je(e,t,n);break e}se(e,t,r,n)}t=t.child}return t;case 5:return wa(t),e===null&&Ti(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Ci(r,l)?o=null:i!==null&&Ci(r,i)&&(t.flags|=32),Ba(e,t),se(e,t,o,n),t.child;case 6:return e===null&&Ti(t),null;case 13:return Qa(e,t,n);case 4:return xo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=on(t,null,r,n):se(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Ku(e,t,r,l,n);case 7:return se(e,t,t.pendingProps,n),t.child;case 8:return se(e,t,t.pendingProps.children,n),t.child;case 12:return se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,F(br,r._currentValue),r._currentValue=o,i!==null)if(Ke(i.value,o)){if(i.children===l.children&&!me.current){t=Je(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var u=i.dependencies;if(u!==null){o=i.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var v=c.pending;v===null?s.next=s:(s.next=v.next,v.next=s),c.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Li(i.return,n,t),u.lanes|=n;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(g(341));o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),Li(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}se(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,en(t,n),l=Pe(l),r=r(l),t.flags|=1,se(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Du(e,t,r,l,n);case 15:return Va(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Mr(e,t),t.tag=1,he(r)?(e=!0,Zr(t)):e=!1,en(t,n),ya(t,r,l),Ri(t,r,l,n),Mi(null,t,r,!0,e,n);case 19:return Ya(e,t,n);case 22:return Wa(e,t,n)}throw Error(g(156,t.tag))};function ac(e,t){return Fs(e,t)}function Ff(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ne(e,t,n,r){return new Ff(e,t,n,r)}function Do(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Mf(e){if(typeof e=="function")return Do(e)?1:0;if(e!=null){if(e=e.$$typeof,e===no)return 11;if(e===ro)return 14}return 2}function pt(e,t){var n=e.alternate;return n===null?(n=Ne(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ur(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")Do(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Pt(n.children,l,i,t);case to:o=8,l|=8;break;case ri:return e=Ne(12,n,t,l|2),e.elementType=ri,e.lanes=i,e;case li:return e=Ne(13,n,t,l),e.elementType=li,e.lanes=i,e;case ii:return e=Ne(19,n,t,l),e.elementType=ii,e.lanes=i,e;case gs:return kl(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vs:o=10;break e;case ys:o=9;break e;case no:o=11;break e;case ro:o=14;break e;case et:o=16,r=null;break e}throw Error(g(130,e==null?e:typeof e,""))}return t=Ne(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function Pt(e,t,n,r){return e=Ne(7,e,r,t),e.lanes=n,e}function kl(e,t,n,r){return e=Ne(22,e,r,t),e.elementType=gs,e.lanes=n,e.stateNode={isHidden:!1},e}function bl(e,t,n){return e=Ne(6,e,null,t),e.lanes=n,e}function ei(e,t,n){return t=Ne(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Kf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Il(0),this.expirationTimes=Il(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Il(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Uo(e,t,n,r,l,i,o,u,s){return e=new Kf(e,t,n,u,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ne(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},So(i),e}function Df(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pc)}catch(e){console.error(e)}}pc(),ds.exports=ke;var Wf=ds.exports,qu=Wf;ti.createRoot=qu.createRoot,ti.hydrateRoot=qu.hydrateRoot;const or=window;if(!or.VippsMobilePayReactTranslations)throw new Error("VippsMobilePayReactTranslations not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactOptions)throw new Error("VippsMobilePayReactOptions not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactMetadata)throw new Error("VippsMobilePayReactMetadata not found, make sure to include this using wp_localize_script()");function O(e){var t;return((t=or.VippsMobilePayReactTranslations)==null?void 0:t[e])??e}const{VippsMobilePayReactTranslations:ap,VippsMobilePayReactOptions:bu,VippsMobilePayReactMetadata:cp}=or;function Bf({tabs:e,onTabChange:t,activeTab:n}){return p.jsx("div",{className:"vippstabholder",id:"vippstabholder",children:e.map((r,l)=>p.jsx("h3",{id:`woocommerce_vipps_${r}_options`,"aria-selected":r===n?"true":"false",className:`wc-settings-sub-title tab ${r===n?"active":""}`,title:r,onClick:()=>t(r),style:{cursor:"pointer"},children:r},l))})}const mc=Ce.createContext(null);function Hf({children:e}){const[t,n]=Ce.useState(bu);function r(o){return(t==null?void 0:t[o])??""}async function l(o,u){n(s=>({...s,[o]:u??null}))}async function i(o){o.preventDefault();const u=Object.entries(t).filter(([s,c])=>bu[s]!==c);for(const[s,c]of u)try{const v=await fetch("/wp-admin/admin-ajax.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_option",key:s,value:c})});if(!v.ok)throw new Error(v.statusText)}catch(v){throw console.error(v),v}}return p.jsxs(mc.Provider,{value:{setOption:l,getOption:r,submitChanges:i},children:[e,p.jsxs("div",{style:{border:"1px solid red",padding:4},children:[p.jsx("span",{style:{textAlign:"center",marginBottom:8},children:"DEBUG"}),p.jsx("pre",{children:JSON.stringify(t,null,2)})]})]})}function pn(){const e=Ce.useContext(mc);if(!e)throw new Error("useWP must be used within a WPOptionsProvider");return e}function It({htmlString:e,className:t=""}){return p.jsx("span",{className:[t].join(" "),dangerouslySetInnerHTML:{__html:e}})}function Qf(e){return p.jsx("input",{...e,className:["input-text regular-input",e.className??""].join(" "),style:{height:30},children:e.children})}function ur(e){return p.jsx("label",{...e,className:["vipps-mobilepay-react-label",e.className??""].join(" "),children:e.children})}function es({variant:e,...t}){return p.jsx("button",{...t,className:[`button-${e}`,t.className??""].join(" "),children:t.children})}function Yf({id:e,name:t,onChange:n,checked:r,children:l,className:i}){return p.jsx("input",{id:e,name:t,checked:r?Jf(r):void 0,onChange:o=>n(qf(o.target.checked)),type:"checkbox",className:[i??""].join(" "),children:l})}function Xf(e){return p.jsx("select",{...e,className:[e.className??""].join(" "),children:e.children})}function Gf(e){return p.jsx("option",{...e,className:[e.className??""].join(" "),children:e.children})}function Zf(e){return p.jsx("textarea",{...e,className:[e.className??""].join(" "),children:e.children})}function sr(e){return p.jsx("div",{...e,className:["vipps-mobilepay-react-form-field",e.className??""].join(" "),children:e.children})}function Jf(e){return e==="yes"}function qf(e){return e?"yes":"no"}function K({name:e,titleKey:t,labelKey:n,descriptionKey:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{className:"vipps-mobilepay-react-row-center",children:[p.jsx(Yf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,checked:l(e),onChange:o=>i(e,o)}),n&&p.jsx("label",{htmlFor:`woocommerce_vipps_${e}`,children:p.jsx(It,{htmlString:O(n)})})]}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function er({name:e,titleKey:t,descriptionKey:n,options:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Xf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:o=>i(e,o.target.value),value:l(e),required:!0,children:r.map(o=>p.jsx(Gf,{value:o,children:o},o))}),n&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(n)})]})]})}function b({name:e,titleKey:t,labelKey:n,descriptionKey:r,pattern:l,required:i,asterisk:o,type:u="text"}){const{getOption:s,setOption:c}=pn(),[v,h]=Ce.useState(!1),m=!v&&o;return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Qf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:_=>c(e,_.target.value),value:s(e),pattern:l,required:i,onFocus:()=>h(!0),onBlur:()=>h(!1),type:m?"password":u}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function bf({name:e,titleKey:t,labelKey:n,descriptionKey:r,rows:l=5}){const{getOption:i,setOption:o}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Zf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:u=>o(e,u.target.value),value:i(e),rows:l}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function ep(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description"}),p.jsx(K,{name:"enabled",titleKey:"enabled_title",labelKey:"enabled_label"}),p.jsx(er,{name:"payment_method_name",titleKey:"payment_method_name_title",descriptionKey:"payment_method_name_label",options:[O("payment_method_name_options_vipps"),O("payment_method_name_options_mobilepay")]}),p.jsx(b,{name:"orderprefix",titleKey:"orderprefix_title",labelKey:"orderprefix_label",pattern:"[a-zA-Z0-9-]+",required:!0}),p.jsx(b,{asterisk:!0,name:"merchantSerialNumber",titleKey:"merchantSerialNumber_title",labelKey:"merchantSerialNumber_label",required:!0}),p.jsx(b,{asterisk:!0,name:"clientId",titleKey:"clientId_title",labelKey:"clientId_label",required:!0}),p.jsx(b,{asterisk:!0,name:"secret",titleKey:"secret_title",labelKey:"secret_label",required:!0}),p.jsx(b,{name:"Ocp_Apim_Key_eCommerce",titleKey:"Ocp_Apim_Key_eCommerce_title",labelKey:"Ocp_Apim_Key_eCommerce_label",required:!0}),p.jsx(er,{name:"result_status",titleKey:"result_status_title",descriptionKey:"result_status_description",options:[O("result_status_options_on-hold"),O("result_status_options_processing")]}),p.jsx(b,{name:"title",titleKey:"title_title",labelKey:"title_description"}),p.jsx(bf,{name:"description",titleKey:"description_title",labelKey:"description_description",rows:5}),p.jsx(K,{name:"vippsdefault",titleKey:"vippsdefault_title",labelKey:"vippsdefault_label"})]})}function tp(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("express_options_description")}),p.jsx(K,{name:"cartexpress",titleKey:"cartexpress_title",labelKey:"cartexpress_title",descriptionKey:"cartexpress_description"}),p.jsx(er,{name:"singleproductexpress",titleKey:"singleproductexpress_title",descriptionKey:"singleproductexpress_description",options:[O("singleproductexpress_options_none"),O("singleproductexpress_options_some"),O("singleproductexpress_options_all")]}),p.jsx(K,{name:"singleproductexpressarchives",titleKey:"singleproductexpressarchives_title",labelKey:"singleproductexpressarchives_label",descriptionKey:"singleproductexpressarchives_description"}),p.jsx(K,{name:"expresscheckout_termscheckbox",titleKey:"expresscheckout_termscheckbox_title",labelKey:"expresscheckout_termscheckbox_label",descriptionKey:"expresscheckout_termscheckbox_description"}),p.jsx(K,{name:"expresscheckout_always_address",titleKey:"expresscheckout_always_address_title",labelKey:"expresscheckout_always_address_label",descriptionKey:"expresscheckout_always_address_description"}),p.jsx(K,{name:"enablestaticshipping",titleKey:"enablestaticshipping_title",labelKey:"enablestaticshipping_label",descriptionKey:"enablestaticshipping_description"}),p.jsx(K,{name:"expresscreateuser",titleKey:"expresscreateuser_title",labelKey:"expresscreateuser_label",descriptionKey:"expresscreateuser_description"}),p.jsx(K,{name:"singleproductbuynowcompatmode",titleKey:"singleproductbuynowcompatmode_title",labelKey:"singleproductbuynowcompatmode_label",descriptionKey:"singleproductbuynowcompatmode_description"}),p.jsx(K,{name:"deletefailedexpressorders",titleKey:"deletefailedexpressorders_title",labelKey:"deletefailedexpressorders_label",descriptionKey:"deletefailedexpressorders_description"})]})}function np(){const{getOption:e}=pn(),t=e("vcs_porterbuddy")==="yes",n=e("vcs_instabox")==="yes",r=e("vcs_helthjem")==="yes";return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_options_description")}),p.jsx(K,{name:"vipps_checkout_enabled",titleKey:"vipps_checkout_enabled_title",labelKey:"vipps_checkout_enabled_label",descriptionKey:"vipps_checkout_enabled_description"}),p.jsx(K,{name:"checkoutcreateuser",titleKey:"checkoutcreateuser_title",labelKey:"checkoutcreateuser_label",descriptionKey:"checkoutcreateuser_description"}),p.jsx(K,{name:"enablestaticshipping_checkout",titleKey:"enablestaticshipping_checkout_title",labelKey:"enablestaticshipping_checkout_label",descriptionKey:"enablestaticshipping_checkout_description"}),p.jsx(K,{name:"requireUserInfo_checkout",titleKey:"requireUserInfo_checkout_title",labelKey:"requireUserInfo_checkout_label",descriptionKey:"requireUserInfo_checkout_description"}),p.jsx(K,{name:"noAddressFields",titleKey:"noAddressFields_title",labelKey:"noAddressFields_label",descriptionKey:"noAddressFields_description"}),p.jsx(K,{name:"noContactFields",titleKey:"noContactFields_title",labelKey:"noContactFields_label",descriptionKey:"noContactFields_description"}),p.jsx("h3",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_shipping_title")}),p.jsx("p",{children:O("checkout_shipping_description")}),p.jsx(K,{name:"vcs_posten",titleKey:"vcs_posten_title",descriptionKey:"vcs_posten_description",labelKey:"vcs_posten_label"}),p.jsx(K,{name:"vcs_postnord",titleKey:"vcs_postnord_title",descriptionKey:"vcs_postnord_description",labelKey:"vcs_postnord_label"}),p.jsx(K,{name:"vcs_porterbuddy",titleKey:"vcs_porterbuddy_title",descriptionKey:"vcs_porterbuddy_description",labelKey:"vcs_porterbuddy_label"}),t&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_publicToken",titleKey:"vcs_porterbuddy_publicToken_title",descriptionKey:"vcs_porterbuddy_publicToken_description"}),p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_apiKey",titleKey:"vcs_porterbuddy_apiKey_title",descriptionKey:"vcs_porterbuddy_apiKey_description"}),p.jsx(b,{name:"vcs_porterbuddy_phoneNumber",titleKey:"vcs_porterbuddy_phoneNumber_title",descriptionKey:"vcs_porterbuddy_phoneNumber_description"})]}),p.jsx(K,{name:"vcs_instabox",titleKey:"vcs_instabox_title",descriptionKey:"vcs_instabox_description",labelKey:"vcs_instabox_label"}),n&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientId",titleKey:"vcs_instabox_clientId_title",descriptionKey:"vcs_instabox_clientId_description"}),p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientSecret",titleKey:"vcs_instabox_clientSecret_title",descriptionKey:"vcs_instabox_clientSecret_description"})]}),p.jsx(K,{name:"vcs_helthjem",titleKey:"vcs_helthjem_title",descriptionKey:"vcs_helthjem_description",labelKey:"vcs_helthjem_label"}),r&&p.jsxs(p.Fragment,{children:[p.jsx(b,{type:"number",name:"vcs_helthjem_shopId",titleKey:"vcs_helthjem_shopId_title",descriptionKey:"vcs_helthjem_shopId_description"}),p.jsx(b,{name:"vcs_helthjem_username",titleKey:"vcs_helthjem_username_title",descriptionKey:"vcs_helthjem_username_description"}),p.jsx(b,{asterisk:!0,name:"vcs_helthjem_password",titleKey:"vcs_helthjem_password_title",descriptionKey:"vcs_helthjem_password_description"})]})]})}function rp({onUpload:e}){return{handleImageUpload:()=>{const n=wp.media({library:{type:"image"},button:{},multiple:!1});n.on("select",()=>{const r=n.state().get("selection").first().toJSON();let l="";r.url?l=r.url:r.sizes&&r.sizes.thumbnail&&(l=r.sizes.thumbnail.url),l&&e(r.id,l)}),n.open()}}}function lp(){const{getOption:e,setOption:t}=pn();function n(){t("receiptimage",""),t("receiptimageurl","")}const{handleImageUpload:r}=rp({onUpload(o,u){t("receiptimage",o),t("receiptimageurl",u)}}),l=e("receiptimage"),i=e("receiptimage_url");return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("advanced_options_description")}),p.jsx(er,{name:"vippsspecialpagetemplate",titleKey:"vippsspecialpagetemplate_title",descriptionKey:"vippsspecialpagetemplate_description",options:Object.values(O("vippsspecialpagetemplate_options"))}),p.jsx(er,{name:"vippsspecialpageid",titleKey:"vippsspecialpageid_title",descriptionKey:"vippsspecialpageid_description",options:Object.values(O("vippsspecialpageid_options"))}),p.jsx(K,{name:"sendreceipts",titleKey:"sendreceipts_title",descriptionKey:"sendreceipts_description",labelKey:"sendreceipts_label"}),p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:"woocommerce_vipps_receiptimage",children:O("receiptimage_title")}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{children:[p.jsx("img",{src:i,id:l,style:{maxWidth:200,height:"auto"}}),l?p.jsx(es,{type:"button",onClick:n,variant:"link",children:O("remove_image")}):p.jsx(es,{type:"button",onClick:r,variant:"link",children:O("upload_image")}),p.jsx("input",{type:"hidden",name:"woocommerce_vipps_receiptimage",id:"woocommerce_vipps_receiptimage",value:l})]}),p.jsx("span",{className:"vipps-mobilepay-react-field-description",children:O("receiptimage_description")})]})]}),p.jsx(K,{name:"use_flock",titleKey:"use_flock_title",descriptionKey:"use_flock_description",labelKey:"use_flock_label"}),p.jsx(K,{name:"developermode",titleKey:"developermode_title",descriptionKey:"developermode_description",labelKey:"developermode_label"})]})}function ip(e){const[t,n]=Ce.useState(()=>window.location.hash),r=Ce.useCallback(()=>{n(window.location.hash)},[]);Ce.useEffect(()=>(window.addEventListener("hashchange",r),()=>{window.removeEventListener("hashchange",r)}),[r]);const l=Ce.useCallback(i=>{i!==t&&(window.location.hash="#"+i)},[t]);return Ce.useEffect(()=>{!t&&e&&l(e)},[t,e,l]),[decodeURIComponent(t.replace("#","")),l]}function op(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("developer_options_description")}),p.jsx(K,{name:"testmode",titleKey:"testmode_title",descriptionKey:"testmode_description",labelKey:"testmode_label"}),p.jsx(b,{name:"merchantSerialNumber_test",titleKey:"merchantSerialNumber_test_title",descriptionKey:"merchantSerialNumber_test_description",labelKey:"merchantSerialNumber_test_label"}),p.jsx(b,{asterisk:!0,name:"clientId_test",titleKey:"clientId_test_title",descriptionKey:"clientId_test_description",labelKey:"clientId_test_label"}),p.jsx(b,{asterisk:!0,name:"secret_test",titleKey:"secret_test_title",descriptionKey:"secret_test_description",labelKey:"secret_test_label"}),p.jsx(b,{asterisk:!0,name:"Ocp_Apim_Key_eCommerce_test",titleKey:"Ocp_Apim_Key_eCommerce_test_title",descriptionKey:"Ocp_Apim_Key_eCommerce_test_description",labelKey:"Ocp_Apim_Key_eCommerce_test_label"})]})}const kt=[O("main_options_title"),O("express_options_title"),O("checkout_options_title"),O("advanced_options_title"),O("developer_options_title")];function up(){const[e,t]=ip(kt[0]);return p.jsxs(p.Fragment,{children:[p.jsx(Bf,{tabs:kt,onTabChange:t,activeTab:decodeURIComponent(e)}),e===kt[0]&&p.jsx(ep,{}),e===kt[1]&&p.jsx(tp,{}),e===kt[2]&&p.jsx(np,{}),e===kt[3]&&p.jsx(lp,{}),e===kt[4]&&p.jsx(op,{})]})}function sp(){return p.jsx(Hf,{children:p.jsx(up,{})})}ti.createRoot(document.getElementById("vipps-mobilepay-react-ui")).render(p.jsx(Oc.StrictMode,{children:p.jsx(sp,{})})); +`+i.stack}return{value:e,source:t,stack:l,digest:null}}function Jl(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ii(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var gf=typeof WeakMap=="function"?WeakMap:Map;function $a(e,t,n){n=Ye(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ol||(ol=!0,Bi=r),Ii(e,t)},n}function Aa(e,t,n){n=Ye(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){Ii(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){Ii(e,t),typeof r!="function"&&(dt===null?dt=new Set([this]):dt.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Iu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new gf;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=Of.bind(null,e,t,n),t.then(e,e))}function Fu(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Mu(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ye(-1,1),t.tag=2,ct(n,t,1))),n.lanes|=1),e)}var _f=qe.ReactCurrentOwner,pe=!1;function se(e,t,n,r){t.child=e===null?_a(t,null,n,r):on(t,e.child,n,r)}function Ku(e,t,n,r,l){n=n.render;var i=t.ref;return en(t,l),r=jo(e,t,n,r,i,l),n=Po(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Je(e,t,l)):($&&n&&ho(t),t.flags|=1,se(e,t,r,l),t.child)}function Du(e,t,n,r,l){if(e===null){var i=n.type;return typeof i=="function"&&!Do(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,Va(e,t,i,r,l)):(e=Ur(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&l)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:Bn,n(o,r)&&e.ref===t.ref)return Je(e,t,l)}return t.flags|=1,e=pt(i,r),e.ref=t.ref,e.return=t,t.child=e}function Va(e,t,n,r,l){if(e!==null){var i=e.memoizedProps;if(Bn(i,r)&&e.ref===t.ref)if(pe=!1,t.pendingProps=r=i,(e.lanes&l)!==0)e.flags&131072&&(pe=!0);else return t.lanes=e.lanes,Je(e,t,l)}return Fi(e,t,n,r,l)}function Wa(e,t,n){var r=t.pendingProps,l=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},F(Gt,ye),ye|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,F(Gt,ye),ye|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,F(Gt,ye),ye|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,F(Gt,ye),ye|=r;return se(e,t,l,n),t.child}function Ba(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Fi(e,t,n,r,l){var i=he(n)?zt:ue.current;return i=rn(t,i),en(t,l),n=jo(e,t,n,r,i,l),r=Po(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Je(e,t,l)):($&&r&&ho(t),t.flags|=1,se(e,t,n,l),t.child)}function Uu(e,t,n,r,l){if(he(n)){var i=!0;Zr(t)}else i=!1;if(en(t,l),t.stateNode===null)Mr(e,t),ya(t,n,r),Ri(t,n,r,l),r=!0;else if(e===null){var o=t.stateNode,u=t.memoizedProps;o.props=u;var s=o.context,c=n.contextType;typeof c=="object"&&c!==null?c=Pe(c):(c=he(n)?zt:ue.current,c=rn(t,c));var v=n.getDerivedStateFromProps,h=typeof v=="function"||typeof o.getSnapshotBeforeUpdate=="function";h||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(u!==r||s!==c)&&Tu(t,o,r,c),tt=!1;var m=t.memoizedState;o.state=m,tl(t,r,o,l),s=t.memoizedState,u!==r||m!==s||me.current||tt?(typeof v=="function"&&(Oi(t,n,v,r),s=t.memoizedState),(u=tt||zu(t,n,u,r,m,s,c))?(h||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),o.props=r,o.state=s,o.context=c,r=u):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ha(e,t),u=t.memoizedProps,c=t.type===t.elementType?u:Oe(t.type,u),o.props=c,h=t.pendingProps,m=o.context,s=n.contextType,typeof s=="object"&&s!==null?s=Pe(s):(s=he(n)?zt:ue.current,s=rn(t,s));var _=n.getDerivedStateFromProps;(v=typeof _=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(u!==h||m!==s)&&Tu(t,o,r,s),tt=!1,m=t.memoizedState,o.state=m,tl(t,r,o,l);var w=t.memoizedState;u!==h||m!==w||me.current||tt?(typeof _=="function"&&(Oi(t,n,_,r),w=t.memoizedState),(c=tt||zu(t,n,c,r,m,w,s)||!1)?(v||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,w,s),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,w,s)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=w),o.props=r,o.state=w,o.context=s,r=c):(typeof o.componentDidUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return Mi(e,t,n,r,i,l)}function Mi(e,t,n,r,l,i){Ba(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return l&&Eu(t,n,!1),Je(e,t,i);r=t.stateNode,_f.current=t;var u=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=on(t,e.child,null,i),t.child=on(t,null,u,i)):se(e,t,u,i),t.memoizedState=r.state,l&&Eu(t,n,!0),t.child}function Ha(e){var t=e.stateNode;t.pendingContext?xu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&xu(e,t.context,!1),xo(e,t.containerInfo)}function $u(e,t,n,r,l){return ln(),yo(l),t.flags|=256,se(e,t,n,r),t.child}var Ki={dehydrated:null,treeContext:null,retryLane:0};function Di(e){return{baseLanes:e,cachePool:null,transitions:null}}function Qa(e,t,n){var r=t.pendingProps,l=A.current,i=!1,o=(t.flags&128)!==0,u;if((u=o)||(u=e!==null&&e.memoizedState===null?!1:(l&2)!==0),u?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),F(A,l&1),e===null)return Ti(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,i?(r=t.mode,i=t.child,o={mode:"hidden",children:o},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=kl(o,r,0,null),e=Pt(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Di(n),t.memoizedState=Ki,e):Lo(t,o));if(l=e.memoizedState,l!==null&&(u=l.dehydrated,u!==null))return wf(e,t,o,r,u,l,n);if(i){i=r.fallback,o=t.mode,l=e.child,u=l.sibling;var s={mode:"hidden",children:r.children};return!(o&1)&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=pt(l,s),r.subtreeFlags=l.subtreeFlags&14680064),u!==null?i=pt(u,i):(i=Pt(i,o,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,o=e.child.memoizedState,o=o===null?Di(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=Ki,r}return i=e.child,e=i.sibling,r=pt(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Lo(e,t){return t=kl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Er(e,t,n,r){return r!==null&&yo(r),on(t,e.child,null,n),e=Lo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function wf(e,t,n,r,l,i,o){if(n)return t.flags&256?(t.flags&=-257,r=Jl(Error(g(422))),Er(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,l=t.mode,r=kl({mode:"visible",children:r.children},l,0,null),i=Pt(i,l,o,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&on(t,e.child,null,o),t.child.memoizedState=Di(o),t.memoizedState=Ki,i);if(!(t.mode&1))return Er(e,t,o,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var u=r.dgst;return r=u,i=Error(g(419)),r=Jl(i,r,void 0),Er(e,t,o,r)}if(u=(o&e.childLanes)!==0,pe||u){if(r=ee,r!==null){switch(o&-o){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=l&(r.suspendedLanes|o)?0:l,l!==0&&l!==i.retryLane&&(i.retryLane=l,Ze(e,l),Me(r,e,l,-1))}return Ko(),r=Jl(Error(g(421))),Er(e,t,o,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Rf.bind(null,e),l._reactRetry=t,null):(e=i.treeContext,ge=at(l.nextSibling),_e=t,$=!0,Ie=null,e!==null&&(xe[Ee++]=He,xe[Ee++]=Qe,xe[Ee++]=Tt,He=e.id,Qe=e.overflow,Tt=t),t=Lo(t,r.children),t.flags|=4096,t)}function Au(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Li(e.return,t,n)}function ql(e,t,n,r,l){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=l)}function Ya(e,t,n){var r=t.pendingProps,l=r.revealOrder,i=r.tail;if(se(e,t,r.children,n),r=A.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Au(e,n,t);else if(e.tag===19)Au(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(F(A,r),!(t.mode&1))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&nl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),ql(t,!1,l,n,i);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&nl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}ql(t,!0,n,null,i);break;case"together":ql(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Mr(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Je(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ot|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(g(153));if(t.child!==null){for(e=t.child,n=pt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=pt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function kf(e,t,n){switch(t.tag){case 3:Ha(t),ln();break;case 5:wa(t);break;case 1:he(t.type)&&Zr(t);break;case 4:xo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;F(br,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(F(A,A.current&1),t.flags|=128,null):n&t.child.childLanes?Qa(e,t,n):(F(A,A.current&1),e=Je(e,t,n),e!==null?e.sibling:null);F(A,A.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Ya(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),F(A,A.current),r)break;return null;case 22:case 23:return t.lanes=0,Wa(e,t,n)}return Je(e,t,n)}var Xa,Ui,Ga,Za;Xa=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Ui=function(){};Ga=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,Nt(Ve.current);var i=null;switch(n){case"input":l=ui(e,l),r=ui(e,r),i=[];break;case"select":l=W({},l,{value:void 0}),r=W({},r,{value:void 0}),i=[];break;case"textarea":l=ci(e,l),r=ci(e,r),i=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Xr)}fi(n,r);var o;n=null;for(c in l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&l[c]!=null)if(c==="style"){var u=l[c];for(o in u)u.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(Kn.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var s=r[c];if(u=l!=null?l[c]:void 0,r.hasOwnProperty(c)&&s!==u&&(s!=null||u!=null))if(c==="style")if(u){for(o in u)!u.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in s)s.hasOwnProperty(o)&&u[o]!==s[o]&&(n||(n={}),n[o]=s[o])}else n||(i||(i=[]),i.push(c,n)),n=s;else c==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,u=u?u.__html:void 0,s!=null&&u!==s&&(i=i||[]).push(c,s)):c==="children"?typeof s!="string"&&typeof s!="number"||(i=i||[]).push(c,""+s):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(Kn.hasOwnProperty(c)?(s!=null&&c==="onScroll"&&M("scroll",e),i||u===s||(i=[])):(i=i||[]).push(c,s))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}};Za=function(e,t,n,r){n!==r&&(t.flags|=4)};function Sn(e,t){if(!$)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ie(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Sf(e,t,n){var r=t.pendingProps;switch(vo(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ie(t),null;case 1:return he(t.type)&&Gr(),ie(t),null;case 3:return r=t.stateNode,un(),D(me),D(ue),Co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Sr(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ie!==null&&(Yi(Ie),Ie=null))),Ui(e,t),ie(t),null;case 5:Eo(t);var l=Nt(Gn.current);if(n=t.type,e!==null&&t.stateNode!=null)Ga(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(g(166));return ie(t),null}if(e=Nt(Ve.current),Sr(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[$e]=t,r[Yn]=i,e=(t.mode&1)!==0,n){case"dialog":M("cancel",r),M("close",r);break;case"iframe":case"object":case"embed":M("load",r);break;case"video":case"audio":for(l=0;l<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[$e]=t,e[Yn]=r,Xa(e,t,!1,!1),t.stateNode=e;e:{switch(o=pi(n,r),n){case"dialog":M("cancel",e),M("close",e),l=r;break;case"iframe":case"object":case"embed":M("load",e),l=r;break;case"video":case"audio":for(l=0;lan&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!$)return ie(t),null}else 2*Y()-i.renderingStartTime>an&&n!==1073741824&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Y(),t.sibling=null,n=A.current,F(A,r?n&1|2:n&1),t):(ie(t),null);case 22:case 23:return Mo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(ie(t),t.subtreeFlags&6&&(t.flags|=8192)):ie(t),null;case 24:return null;case 25:return null}throw Error(g(156,t.tag))}function xf(e,t){switch(vo(t),t.tag){case 1:return he(t.type)&&Gr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),D(me),D(ue),Co(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eo(t),null;case 13:if(D(A),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(g(340));ln()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(A),null;case 4:return un(),null;case 10:return wo(t.type._context),null;case 22:case 23:return Mo(),null;case 24:return null;default:return null}}var Cr=!1,oe=!1,Ef=typeof WeakSet=="function"?WeakSet:Set,S=null;function Xt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){B(e,t,r)}}var Vu=!1;function Cf(e,t){if(xi=Hr,e=ea(),mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,u=-1,s=-1,c=0,v=0,h=e,m=null;t:for(;;){for(var _;h!==n||l!==0&&h.nodeType!==3||(u=o+l),h!==i||r!==0&&h.nodeType!==3||(s=o+r),h.nodeType===3&&(o+=h.nodeValue.length),(_=h.firstChild)!==null;)m=h,h=_;for(;;){if(h===e)break t;if(m===n&&++c===l&&(u=o),m===i&&++v===r&&(s=o),(_=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=_}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ei={focusedElem:e,selectionRange:n},Hr=!1,S=t;S!==null;)if(t=S,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,S=e;else for(;S!==null;){t=S;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,U=w.memoizedState,d=t.stateNode,a=d.getSnapshotBeforeUpdate(t.elementType===t.type?k:Oe(t.type,k),U);d.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(g(163))}}catch(y){B(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,S=e;break}S=t.return}return w=Vu,Vu=!1,w}function In(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&$i(t,n,i)}l=l.next}while(l!==r)}}function _l(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ai(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ja(e){var t=e.alternate;t!==null&&(e.alternate=null,Ja(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$e],delete t[Yn],delete t[ji],delete t[uf],delete t[sf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function qa(e){return e.tag===5||e.tag===3||e.tag===4}function Wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xr));else if(r!==4&&(e=e.child,e!==null))for(Vi(e,t,n),e=e.sibling;e!==null;)Vi(e,t,n),e=e.sibling}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}var te=null,Re=!1;function be(e,t,n){for(n=n.child;n!==null;)ba(e,t,n),n=n.sibling}function ba(e,t,n){if(Ae&&typeof Ae.onCommitFiberUnmount=="function")try{Ae.onCommitFiberUnmount(dl,n)}catch{}switch(n.tag){case 5:oe||Xt(n,t);case 6:var r=te,l=Re;te=null,be(e,t,n),te=r,Re=l,te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):te.removeChild(n.stateNode));break;case 18:te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?Hl(e.parentNode,n):e.nodeType===1&&Hl(e,n),Vn(e)):Hl(te,n.stateNode));break;case 4:r=te,l=Re,te=n.stateNode.containerInfo,Re=!0,be(e,t,n),te=r,Re=l;break;case 0:case 11:case 14:case 15:if(!oe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$i(n,t,o),l=l.next}while(l!==r)}be(e,t,n);break;case 1:if(!oe&&(Xt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){B(n,t,u)}be(e,t,n);break;case 21:be(e,t,n);break;case 22:n.mode&1?(oe=(r=oe)||n.memoizedState!==null,be(e,t,n),oe=r):be(e,t,n);break;default:be(e,t,n)}}function Bu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ef),t.forEach(function(r){var l=If.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Le(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=Y()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jf(r/1960))-r,10e?16:e,it===null)var r=!1;else{if(e=it,it=null,ul=0,R&6)throw Error(g(331));var l=R;for(R|=4,S=e.current;S!==null;){var i=S,o=i.child;if(S.flags&16){var u=i.deletions;if(u!==null){for(var s=0;sY()-Io?jt(e,0):Ro|=n),ve(e,t)}function uc(e,t){t===0&&(e.mode&1?(t=vr,vr<<=1,!(vr&130023424)&&(vr=4194304)):t=1);var n=ae();e=Ze(e,t),e!==null&&(nr(e,t,n),ve(e,n))}function Rf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),uc(e,n)}function If(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(g(314))}r!==null&&r.delete(t),uc(e,n)}var sc;sc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)pe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pe=!1,kf(e,t,n);pe=!!(e.flags&131072)}else pe=!1,$&&t.flags&1048576&&da(t,qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mr(e,t),e=t.pendingProps;var l=rn(t,ue.current);en(t,n),l=jo(null,t,r,e,l,n);var i=Po();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,he(r)?(i=!0,Zr(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,So(t),l.updater=yl,t.stateNode=l,l._reactInternals=t,Ri(t,r,e,n),t=Mi(null,t,r,!0,i,n)):(t.tag=0,$&&i&&ho(t),se(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Mf(r),e=Oe(r,e),l){case 0:t=Fi(null,t,r,e,n);break e;case 1:t=Uu(null,t,r,e,n);break e;case 11:t=Ku(null,t,r,e,n);break e;case 14:t=Du(null,t,r,Oe(r.type,e),n);break e}throw Error(g(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Fi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Uu(e,t,r,l,n);case 3:e:{if(Ha(t),e===null)throw Error(g(387));r=t.pendingProps,i=t.memoizedState,l=i.element,ha(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=sn(Error(g(423)),t),t=$u(e,t,r,n,l);break e}else if(r!==l){l=sn(Error(g(424)),t),t=$u(e,t,r,n,l);break e}else for(ge=at(t.stateNode.containerInfo.firstChild),_e=t,$=!0,Ie=null,n=_a(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ln(),r===l){t=Je(e,t,n);break e}se(e,t,r,n)}t=t.child}return t;case 5:return wa(t),e===null&&Ti(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Ci(r,l)?o=null:i!==null&&Ci(r,i)&&(t.flags|=32),Ba(e,t),se(e,t,o,n),t.child;case 6:return e===null&&Ti(t),null;case 13:return Qa(e,t,n);case 4:return xo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=on(t,null,r,n):se(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Ku(e,t,r,l,n);case 7:return se(e,t,t.pendingProps,n),t.child;case 8:return se(e,t,t.pendingProps.children,n),t.child;case 12:return se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,F(br,r._currentValue),r._currentValue=o,i!==null)if(Ke(i.value,o)){if(i.children===l.children&&!me.current){t=Je(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var u=i.dependencies;if(u!==null){o=i.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var v=c.pending;v===null?s.next=s:(s.next=v.next,v.next=s),c.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Li(i.return,n,t),u.lanes|=n;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(g(341));o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),Li(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}se(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,en(t,n),l=Pe(l),r=r(l),t.flags|=1,se(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Du(e,t,r,l,n);case 15:return Va(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Mr(e,t),t.tag=1,he(r)?(e=!0,Zr(t)):e=!1,en(t,n),ya(t,r,l),Ri(t,r,l,n),Mi(null,t,r,!0,e,n);case 19:return Ya(e,t,n);case 22:return Wa(e,t,n)}throw Error(g(156,t.tag))};function ac(e,t){return Fs(e,t)}function Ff(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ne(e,t,n,r){return new Ff(e,t,n,r)}function Do(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Mf(e){if(typeof e=="function")return Do(e)?1:0;if(e!=null){if(e=e.$$typeof,e===no)return 11;if(e===ro)return 14}return 2}function pt(e,t){var n=e.alternate;return n===null?(n=Ne(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ur(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")Do(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Pt(n.children,l,i,t);case to:o=8,l|=8;break;case ri:return e=Ne(12,n,t,l|2),e.elementType=ri,e.lanes=i,e;case li:return e=Ne(13,n,t,l),e.elementType=li,e.lanes=i,e;case ii:return e=Ne(19,n,t,l),e.elementType=ii,e.lanes=i,e;case gs:return kl(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vs:o=10;break e;case ys:o=9;break e;case no:o=11;break e;case ro:o=14;break e;case et:o=16,r=null;break e}throw Error(g(130,e==null?e:typeof e,""))}return t=Ne(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function Pt(e,t,n,r){return e=Ne(7,e,r,t),e.lanes=n,e}function kl(e,t,n,r){return e=Ne(22,e,r,t),e.elementType=gs,e.lanes=n,e.stateNode={isHidden:!1},e}function bl(e,t,n){return e=Ne(6,e,null,t),e.lanes=n,e}function ei(e,t,n){return t=Ne(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Kf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Il(0),this.expirationTimes=Il(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Il(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Uo(e,t,n,r,l,i,o,u,s){return e=new Kf(e,t,n,u,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ne(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},So(i),e}function Df(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pc)}catch(e){console.error(e)}}pc(),ds.exports=ke;var Wf=ds.exports,qu=Wf;ti.createRoot=qu.createRoot,ti.hydrateRoot=qu.hydrateRoot;const or=window;if(!or.VippsMobilePayReactTranslations)throw new Error("VippsMobilePayReactTranslations not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactOptions)throw new Error("VippsMobilePayReactOptions not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactMetadata)throw new Error("VippsMobilePayReactMetadata not found, make sure to include this using wp_localize_script()");function O(e){var t;return((t=or.VippsMobilePayReactTranslations)==null?void 0:t[e])??e}const{VippsMobilePayReactTranslations:ap,VippsMobilePayReactOptions:bu,VippsMobilePayReactMetadata:cp}=or;function Bf({tabs:e,onTabChange:t,activeTab:n}){return p.jsx("div",{className:"vippstabholder",id:"vippstabholder",children:e.map((r,l)=>p.jsx("h3",{id:`woocommerce_vipps_${r}_options`,"aria-selected":r===n?"true":"false",className:`wc-settings-sub-title tab ${r===n?"active":""}`,title:r,onClick:()=>t(r),style:{cursor:"pointer"},children:r},l))})}const mc=Ce.createContext(null);function Hf({children:e}){const[t,n]=Ce.useState(bu);function r(o){return(t==null?void 0:t[o])??""}async function l(o,u){n(s=>({...s,[o]:u??null}))}async function i(o){o.preventDefault();const u=Object.entries(t).filter(([s,c])=>bu[s]!==c);for(const[s,c]of u)try{const v=await fetch("/wp-admin/admin-ajax.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_option",key:s,value:c})});if(!v.ok)throw new Error(v.statusText)}catch(v){throw console.error(v),v}}return p.jsx(mc.Provider,{value:{setOption:l,getOption:r,submitChanges:i},children:e})}function pn(){const e=Ce.useContext(mc);if(!e)throw new Error("useWP must be used within a WPOptionsProvider");return e}function It({htmlString:e,className:t=""}){return p.jsx("span",{className:[t].join(" "),dangerouslySetInnerHTML:{__html:e}})}function Qf(e){return p.jsx("input",{...e,className:["input-text regular-input",e.className??""].join(" "),style:{height:30},children:e.children})}function ur(e){return p.jsx("label",{...e,className:["vipps-mobilepay-react-label",e.className??""].join(" "),children:e.children})}function es({variant:e,...t}){return p.jsx("button",{...t,className:[`button-${e}`,t.className??""].join(" "),children:t.children})}function Yf({id:e,name:t,onChange:n,checked:r,children:l,className:i}){return p.jsx("input",{id:e,name:t,checked:r?Jf(r):void 0,onChange:o=>n(qf(o.target.checked)),type:"checkbox",className:[i??""].join(" "),children:l})}function Xf(e){return p.jsx("select",{...e,className:[e.className??""].join(" "),children:e.children})}function Gf(e){return p.jsx("option",{...e,className:[e.className??""].join(" "),children:e.children})}function Zf(e){return p.jsx("textarea",{...e,className:[e.className??""].join(" "),children:e.children})}function sr(e){return p.jsx("div",{...e,className:["vipps-mobilepay-react-form-field",e.className??""].join(" "),children:e.children})}function Jf(e){return e==="yes"}function qf(e){return e?"yes":"no"}function K({name:e,titleKey:t,labelKey:n,descriptionKey:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{className:"vipps-mobilepay-react-row-center",children:[p.jsx(Yf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,checked:l(e),onChange:o=>i(e,o)}),n&&p.jsx("label",{htmlFor:`woocommerce_vipps_${e}`,children:p.jsx(It,{htmlString:O(n)})})]}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function er({name:e,titleKey:t,descriptionKey:n,options:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Xf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:o=>i(e,o.target.value),value:l(e),required:!0,children:r.map(o=>p.jsx(Gf,{value:o,children:o},o))}),n&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(n)})]})]})}function b({name:e,titleKey:t,labelKey:n,descriptionKey:r,pattern:l,required:i,asterisk:o,type:u="text"}){const{getOption:s,setOption:c}=pn(),[v,h]=Ce.useState(!1),m=!v&&o;return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Qf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:_=>c(e,_.target.value),value:s(e),pattern:l,required:i,onFocus:()=>h(!0),onBlur:()=>h(!1),type:m?"password":u}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function bf({name:e,titleKey:t,labelKey:n,descriptionKey:r,rows:l=5}){const{getOption:i,setOption:o}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Zf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:u=>o(e,u.target.value),value:i(e),rows:l}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function ep(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description"}),p.jsx(K,{name:"enabled",titleKey:"enabled_title",labelKey:"enabled_label"}),p.jsx(er,{name:"payment_method_name",titleKey:"payment_method_name_title",descriptionKey:"payment_method_name_label",options:[O("payment_method_name_options_vipps"),O("payment_method_name_options_mobilepay")]}),p.jsx(b,{name:"orderprefix",titleKey:"orderprefix_title",labelKey:"orderprefix_label",pattern:"[a-zA-Z0-9-]+",required:!0}),p.jsx(b,{asterisk:!0,name:"merchantSerialNumber",titleKey:"merchantSerialNumber_title",labelKey:"merchantSerialNumber_label"}),p.jsx(b,{asterisk:!0,name:"clientId",titleKey:"clientId_title",labelKey:"clientId_label"}),p.jsx(b,{asterisk:!0,name:"secret",titleKey:"secret_title",labelKey:"secret_label"}),p.jsx(b,{name:"Ocp_Apim_Key_eCommerce",titleKey:"Ocp_Apim_Key_eCommerce_title",labelKey:"Ocp_Apim_Key_eCommerce_label"}),p.jsx(er,{name:"result_status",titleKey:"result_status_title",descriptionKey:"result_status_description",options:[O("result_status_options_on-hold"),O("result_status_options_processing")]}),p.jsx(b,{name:"title",titleKey:"title_title",labelKey:"title_description"}),p.jsx(bf,{name:"description",titleKey:"description_title",labelKey:"description_description",rows:5}),p.jsx(K,{name:"vippsdefault",titleKey:"vippsdefault_title",labelKey:"vippsdefault_label"})]})}function tp(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("express_options_description")}),p.jsx(K,{name:"cartexpress",titleKey:"cartexpress_title",labelKey:"cartexpress_title",descriptionKey:"cartexpress_description"}),p.jsx(er,{name:"singleproductexpress",titleKey:"singleproductexpress_title",descriptionKey:"singleproductexpress_description",options:[O("singleproductexpress_options_none"),O("singleproductexpress_options_some"),O("singleproductexpress_options_all")]}),p.jsx(K,{name:"singleproductexpressarchives",titleKey:"singleproductexpressarchives_title",labelKey:"singleproductexpressarchives_label",descriptionKey:"singleproductexpressarchives_description"}),p.jsx(K,{name:"expresscheckout_termscheckbox",titleKey:"expresscheckout_termscheckbox_title",labelKey:"expresscheckout_termscheckbox_label",descriptionKey:"expresscheckout_termscheckbox_description"}),p.jsx(K,{name:"expresscheckout_always_address",titleKey:"expresscheckout_always_address_title",labelKey:"expresscheckout_always_address_label",descriptionKey:"expresscheckout_always_address_description"}),p.jsx(K,{name:"enablestaticshipping",titleKey:"enablestaticshipping_title",labelKey:"enablestaticshipping_label",descriptionKey:"enablestaticshipping_description"}),p.jsx(K,{name:"expresscreateuser",titleKey:"expresscreateuser_title",labelKey:"expresscreateuser_label",descriptionKey:"expresscreateuser_description"}),p.jsx(K,{name:"singleproductbuynowcompatmode",titleKey:"singleproductbuynowcompatmode_title",labelKey:"singleproductbuynowcompatmode_label",descriptionKey:"singleproductbuynowcompatmode_description"}),p.jsx(K,{name:"deletefailedexpressorders",titleKey:"deletefailedexpressorders_title",labelKey:"deletefailedexpressorders_label",descriptionKey:"deletefailedexpressorders_description"})]})}function np(){const{getOption:e}=pn(),t=e("vcs_porterbuddy")==="yes",n=e("vcs_instabox")==="yes",r=e("vcs_helthjem")==="yes";return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_options_description")}),p.jsx(K,{name:"vipps_checkout_enabled",titleKey:"vipps_checkout_enabled_title",labelKey:"vipps_checkout_enabled_label",descriptionKey:"vipps_checkout_enabled_description"}),p.jsx(K,{name:"checkoutcreateuser",titleKey:"checkoutcreateuser_title",labelKey:"checkoutcreateuser_label",descriptionKey:"checkoutcreateuser_description"}),p.jsx(K,{name:"enablestaticshipping_checkout",titleKey:"enablestaticshipping_checkout_title",labelKey:"enablestaticshipping_checkout_label",descriptionKey:"enablestaticshipping_checkout_description"}),p.jsx(K,{name:"requireUserInfo_checkout",titleKey:"requireUserInfo_checkout_title",labelKey:"requireUserInfo_checkout_label",descriptionKey:"requireUserInfo_checkout_description"}),p.jsx(K,{name:"noAddressFields",titleKey:"noAddressFields_title",labelKey:"noAddressFields_label",descriptionKey:"noAddressFields_description"}),p.jsx(K,{name:"noContactFields",titleKey:"noContactFields_title",labelKey:"noContactFields_label",descriptionKey:"noContactFields_description"}),p.jsx("h3",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_shipping_title")}),p.jsx("p",{children:O("checkout_shipping_description")}),p.jsx(K,{name:"vcs_posten",titleKey:"vcs_posten_title",descriptionKey:"vcs_posten_description",labelKey:"vcs_posten_label"}),p.jsx(K,{name:"vcs_postnord",titleKey:"vcs_postnord_title",descriptionKey:"vcs_postnord_description",labelKey:"vcs_postnord_label"}),p.jsx(K,{name:"vcs_porterbuddy",titleKey:"vcs_porterbuddy_title",descriptionKey:"vcs_porterbuddy_description",labelKey:"vcs_porterbuddy_label"}),t&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_publicToken",titleKey:"vcs_porterbuddy_publicToken_title",descriptionKey:"vcs_porterbuddy_publicToken_description"}),p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_apiKey",titleKey:"vcs_porterbuddy_apiKey_title",descriptionKey:"vcs_porterbuddy_apiKey_description"}),p.jsx(b,{name:"vcs_porterbuddy_phoneNumber",titleKey:"vcs_porterbuddy_phoneNumber_title",descriptionKey:"vcs_porterbuddy_phoneNumber_description"})]}),p.jsx(K,{name:"vcs_instabox",titleKey:"vcs_instabox_title",descriptionKey:"vcs_instabox_description",labelKey:"vcs_instabox_label"}),n&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientId",titleKey:"vcs_instabox_clientId_title",descriptionKey:"vcs_instabox_clientId_description"}),p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientSecret",titleKey:"vcs_instabox_clientSecret_title",descriptionKey:"vcs_instabox_clientSecret_description"})]}),p.jsx(K,{name:"vcs_helthjem",titleKey:"vcs_helthjem_title",descriptionKey:"vcs_helthjem_description",labelKey:"vcs_helthjem_label"}),r&&p.jsxs(p.Fragment,{children:[p.jsx(b,{type:"number",name:"vcs_helthjem_shopId",titleKey:"vcs_helthjem_shopId_title",descriptionKey:"vcs_helthjem_shopId_description"}),p.jsx(b,{name:"vcs_helthjem_username",titleKey:"vcs_helthjem_username_title",descriptionKey:"vcs_helthjem_username_description"}),p.jsx(b,{asterisk:!0,name:"vcs_helthjem_password",titleKey:"vcs_helthjem_password_title",descriptionKey:"vcs_helthjem_password_description"})]})]})}function rp({onUpload:e}){return{handleImageUpload:()=>{const n=wp.media({library:{type:"image"},button:{},multiple:!1});n.on("select",()=>{const r=n.state().get("selection").first().toJSON();let l="";r.url?l=r.url:r.sizes&&r.sizes.thumbnail&&(l=r.sizes.thumbnail.url),l&&e(r.id,l)}),n.open()}}}function lp(){const{getOption:e,setOption:t}=pn();function n(){t("receiptimage",""),t("receiptimage_url","")}const{handleImageUpload:r}=rp({onUpload(o,u){t("receiptimage",o),t("receiptimage_url",u)}}),l=e("receiptimage"),i=e("receiptimage_url");return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("advanced_options_description")}),p.jsx(er,{name:"vippsspecialpagetemplate",titleKey:"vippsspecialpagetemplate_title",descriptionKey:"vippsspecialpagetemplate_description",options:Object.values(O("vippsspecialpagetemplate_options"))}),p.jsx(er,{name:"vippsspecialpageid",titleKey:"vippsspecialpageid_title",descriptionKey:"vippsspecialpageid_description",options:Object.values(O("vippsspecialpageid_options"))}),p.jsx(K,{name:"sendreceipts",titleKey:"sendreceipts_title",descriptionKey:"sendreceipts_description",labelKey:"sendreceipts_label"}),p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:"woocommerce_vipps_receiptimage",children:O("receiptimage_title")}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{children:[l?p.jsxs(p.Fragment,{children:[p.jsx("img",{src:i,id:l,style:{width:200}}),p.jsx(es,{type:"button",onClick:n,variant:"link",children:O("remove_image")})]}):p.jsx(es,{type:"button",onClick:r,variant:"link",children:O("upload_image")}),p.jsx("input",{type:"hidden",name:"woocommerce_vipps_receiptimage",id:"woocommerce_vipps_receiptimage",value:l})]}),p.jsx("span",{className:"vipps-mobilepay-react-field-description",children:O("receiptimage_description")})]})]}),p.jsx(K,{name:"use_flock",titleKey:"use_flock_title",descriptionKey:"use_flock_description",labelKey:"use_flock_label"}),p.jsx(K,{name:"developermode",titleKey:"developermode_title",descriptionKey:"developermode_description",labelKey:"developermode_label"})]})}function ip(e){const[t,n]=Ce.useState(()=>window.location.hash),r=Ce.useCallback(()=>{n(window.location.hash)},[]);Ce.useEffect(()=>(window.addEventListener("hashchange",r),()=>{window.removeEventListener("hashchange",r)}),[r]);const l=Ce.useCallback(i=>{i!==t&&(window.location.hash="#"+i)},[t]);return Ce.useEffect(()=>{!t&&e&&l(e)},[t,e,l]),[decodeURIComponent(t.replace("#","")),l]}function op(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("developer_options_description")}),p.jsx(K,{name:"testmode",titleKey:"testmode_title",descriptionKey:"testmode_description",labelKey:"testmode_label"}),p.jsx(b,{name:"merchantSerialNumber_test",titleKey:"merchantSerialNumber_test_title",labelKey:"merchantSerialNumber_test_description"}),p.jsx(b,{asterisk:!0,name:"clientId_test",titleKey:"clientId_test_title",labelKey:"clientId_test_description"}),p.jsx(b,{asterisk:!0,name:"secret_test",titleKey:"secret_test_title",labelKey:"secret_test_description"}),p.jsx(b,{asterisk:!0,name:"Ocp_Apim_Key_eCommerce_test",titleKey:"Ocp_Apim_Key_eCommerce_test_title",labelKey:"Ocp_Apim_Key_eCommerce_test_description"})]})}const kt=[O("main_options_title"),O("express_options_title"),O("checkout_options_title"),O("advanced_options_title"),O("developer_options_title")];function up(){const[e,t]=ip(kt[0]);function n(r){return r!==e}return p.jsxs(p.Fragment,{children:[p.jsx(Bf,{tabs:kt,onTabChange:t,activeTab:decodeURIComponent(e)}),p.jsx("div",{style:{display:n(kt[0])?"none":"block"},children:p.jsx(ep,{})}),p.jsx("div",{style:{display:n(kt[1])?"none":"block"},children:p.jsx(tp,{})}),p.jsx("div",{style:{display:n(kt[2])?"none":"block"},children:p.jsx(np,{})}),p.jsx("div",{style:{display:n(kt[3])?"none":"block"},children:p.jsx(lp,{})}),p.jsx("div",{style:{display:n(kt[4])?"none":"block"},children:p.jsx(op,{})})]})}function sp(){return p.jsx(Hf,{children:p.jsx(up,{})})}ti.createRoot(document.getElementById("vipps-mobilepay-react-ui")).render(p.jsx(Oc.StrictMode,{children:p.jsx(sp,{})})); diff --git a/ui/src/components/admin-settings/admin-settings.tsx b/ui/src/components/admin-settings/admin-settings.tsx new file mode 100644 index 00000000..316740c7 --- /dev/null +++ b/ui/src/components/admin-settings/admin-settings.tsx @@ -0,0 +1,65 @@ +import { gettext } from '../../lib/wp-data'; +import { Tabs } from '../tabs'; +import { AdminSettingsMainOptionsTab } from './main-options-tab'; +import { AdminSettingsExpressOptionsTab } from './express-options-tab'; +import { AdminSettingsCheckoutOptionsTab } from './checkout-options-tab'; +import { AdminSettingsAdvancedOptionsTab } from './advanced-options-tab'; +import { useHash } from '../../hooks/use-hash'; +import { AdminSettingsDeveloperOptionsTab } from './developer-options-tab'; + +const TAB_IDS = [ + gettext('main_options_title'), + gettext('express_options_title'), + gettext('checkout_options_title'), + gettext('advanced_options_title'), + gettext('developer_options_title') +]; + +export function AdminSettings(): JSX.Element { + const [activeTab, setActiveTab] = useHash(TAB_IDS[0]); + + function isVisible(tab: string): boolean { + return tab !== activeTab; + } + + return ( + <> + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ + ); +} diff --git a/ui/src/components/admin-settings/advanced-options-tab.tsx b/ui/src/components/admin-settings/advanced-options-tab.tsx new file mode 100644 index 00000000..5a47d74c --- /dev/null +++ b/ui/src/components/admin-settings/advanced-options-tab.tsx @@ -0,0 +1,88 @@ +import { useWPImageUpload } from '../../hooks/use-wp-image-upload'; +import { gettext } from '../../lib/wp-data'; +import { useWP } from '../../wp-options-provider'; +import { CheckboxFormField, SelectFormField } from '../options-form-fields'; +import { WPButton, WPFormField, WPLabel } from '../form-elements'; + +export function AdminSettingsAdvancedOptionsTab(): JSX.Element { + const { getOption, setOption } = useWP(); + + function handleImageRemove() { + setOption('receiptimage', ''); + setOption('receiptimage_url', ''); + } + + const { handleImageUpload } = useWPImageUpload({ + onUpload(id, url) { + setOption('receiptimage', id); + setOption('receiptimage_url', url); + } + }); + + const imageId = getOption('receiptimage'); + const imageUrl = getOption('receiptimage_url'); + + return ( +
+

{gettext('advanced_options_description')}

+ + + + + + + + + {gettext('receiptimage_title')} +
+
+ {imageId ? ( + <> + + + {gettext('remove_image')} + + + ) : ( + + {gettext('upload_image')} + + )} + +
+ {gettext('receiptimage_description')} +
+
+ + + + +
+ ); +} diff --git a/ui/src/components/admin-settings/checkout-options-tab.tsx b/ui/src/components/admin-settings/checkout-options-tab.tsx new file mode 100644 index 00000000..c3d40833 --- /dev/null +++ b/ui/src/components/admin-settings/checkout-options-tab.tsx @@ -0,0 +1,158 @@ +import { gettext } from '../../lib/wp-data'; +import { useWP } from '../../wp-options-provider'; +import { CheckboxFormField, InputFormField } from '../options-form-fields'; + +export function AdminSettingsCheckoutOptionsTab() { + const { getOption } = useWP(); + + const showPorterbuddy = getOption('vcs_porterbuddy') === 'yes'; + const showInstabox = getOption('vcs_instabox') === 'yes'; + const showHelthjem = getOption('vcs_helthjem') === 'yes'; + + return ( +
+

{gettext('checkout_options_description')}

+ + + + + + + + + + + + + +

{gettext('checkout_shipping_title')}

+

{gettext('checkout_shipping_description')}

+ + + + + + + + {showPorterbuddy && ( + <> + + + + + )} + + + + {showInstabox && ( + <> + + + + )} + + + + {showHelthjem && ( + <> + + + + + )} +
+ ); +} diff --git a/ui/src/components/admin-settings/developer-options-tab.tsx b/ui/src/components/admin-settings/developer-options-tab.tsx new file mode 100644 index 00000000..6530b924 --- /dev/null +++ b/ui/src/components/admin-settings/developer-options-tab.tsx @@ -0,0 +1,29 @@ +import { gettext } from '../../lib/wp-data'; +import { CheckboxFormField, InputFormField } from '../options-form-fields'; + +export function AdminSettingsDeveloperOptionsTab(): JSX.Element { + return ( +
+

{gettext('developer_options_description')}

+ + + + + + + + + + +
+ ); +} diff --git a/ui/src/components/admin-settings/express-options-tab.tsx b/ui/src/components/admin-settings/express-options-tab.tsx new file mode 100644 index 00000000..2a6705d5 --- /dev/null +++ b/ui/src/components/admin-settings/express-options-tab.tsx @@ -0,0 +1,77 @@ +import { gettext } from '../../lib/wp-data'; +import { CheckboxFormField, SelectFormField } from '../options-form-fields'; + +export function AdminSettingsExpressOptionsTab() { + return ( +
+

{gettext('express_options_description')}

+ + + + + + + + + + + + + + + + + + +
+ ); +} diff --git a/ui/src/components/admin-settings/main-options-tab.tsx b/ui/src/components/admin-settings/main-options-tab.tsx new file mode 100644 index 00000000..e2114838 --- /dev/null +++ b/ui/src/components/admin-settings/main-options-tab.tsx @@ -0,0 +1,39 @@ +import { gettext } from '../../lib/wp-data'; +import { CheckboxFormField, InputFormField, SelectFormField, TextareaFormField } from '../options-form-fields'; + +export function AdminSettingsMainOptionsTab() { + return ( +
+

+ + + + + + + + + + + + + + + + + + + +
+ ); +} diff --git a/ui/src/hooks/use-wp-image-upload.ts b/ui/src/hooks/use-wp-image-upload.ts new file mode 100644 index 00000000..77be544b --- /dev/null +++ b/ui/src/hooks/use-wp-image-upload.ts @@ -0,0 +1,67 @@ +interface Attachment { + url: string; + sizes?: { + thumbnail: { + url: string; + }; + }; + id: string; +} +interface MediaUploader { + state(): { + get(selection: string): { + first(): { + toJSON(): Attachment; + }; + }; + }; + on(event: string, callback: () => void): void; + open(): void; +} +// Some basic types to make TypeScript happy +// This can be extended as needed +declare const wp: { + media(options: { + library: { + type: string; + }; + button: object; + multiple: boolean; + }): MediaUploader; +}; + +interface UseWPImageUpload { + onUpload: (id: string, url: string) => void; +} +export function useWPImageUpload({ onUpload }: UseWPImageUpload) { + const handleImageUpload = () => { + const mediaUploader = wp.media({ + library: { + type: 'image' + }, + button: {}, + multiple: false + }); + + mediaUploader.on('select', () => { + const attachment: Attachment = mediaUploader.state().get('selection').first().toJSON(); + + let url = ''; + if (attachment.url) { + url = attachment.url; + } else if (attachment.sizes && attachment.sizes.thumbnail) { + url = attachment.sizes.thumbnail.url; + } + + if (!url) return; + + onUpload(attachment.id, url); + }); + + mediaUploader.open(); + }; + + return { + handleImageUpload + }; +} diff --git a/ui/src/wp-options-provider.tsx b/ui/src/wp-options-provider.tsx index 1c59ee37..a7fbf08c 100644 --- a/ui/src/wp-options-provider.tsx +++ b/ui/src/wp-options-provider.tsx @@ -59,10 +59,6 @@ export function WPOptionsProvider({ children }: PropsWithChildren) { }} > {children} -
- DEBUG -
{JSON.stringify(values, null, 2)}
-
); } From 5453486e280b08498f72f97dd3a9310628d1215b Mon Sep 17 00:00:00 2001 From: Nikolai Tellmann Date: Thu, 21 Dec 2023 21:04:24 +0000 Subject: [PATCH 06/86] Add documentation in the React app --- WC_Gateway_Vipps.class.php | 14 ++- ui/dist/plugin.js | 10 +- ui/src/App.tsx | 7 +- .../admin-settings/admin-settings.tsx | 8 ++ .../admin-settings/advanced-options-tab.tsx | 19 +++- .../admin-settings/checkout-options-tab.tsx | 34 +++++- .../admin-settings/developer-options-tab.tsx | 10 ++ .../admin-settings/express-options-tab.tsx | 16 ++- .../admin-settings/main-options-tab.tsx | 21 +++- ui/src/components/form-elements.tsx | 89 ++++++++++++++-- ui/src/components/options-form-fields.tsx | 100 +++++++++++++++++- ui/src/components/tabs.tsx | 25 ++++- ui/src/components/unsafe-html-text.tsx | 8 +- ui/src/hooks/use-hash.ts | 26 ++++- ui/src/hooks/use-wp-image-upload.ts | 6 ++ ui/src/lib/wp-data.ts | 41 +++++++ ui/src/main.tsx | 16 ++- ui/src/wp-options-provider.tsx | 34 ++++++ ui/vite.config.ts | 2 + 19 files changed, 453 insertions(+), 33 deletions(-) diff --git a/WC_Gateway_Vipps.class.php b/WC_Gateway_Vipps.class.php index c6ac3cbc..7dc6f831 100644 --- a/WC_Gateway_Vipps.class.php +++ b/WC_Gateway_Vipps.class.php @@ -173,6 +173,7 @@ public function __construct() { $this->init_react_admin_ui(); } + // Initializes the React application for the admin settings interface function init_react_admin_ui() { global $Vipps; $page_templates = $this->get_theme_page_templates(); @@ -407,7 +408,8 @@ function init_react_admin_ui() { 'developermode_title' => __('Enable developer mode', 'woo-vipps'), 'developermode_label' => __('Enable developer mode', 'woo-vipps'), 'developermode_description' => __('Enable this to enter developer mode. This gives you access to the test-api and sometimes other tools not yet ready for general consumption', 'woo-vipps'), - + + // Developer options 'developer_options_title' => __('Developer mode', 'woo-vipps'), 'developer_options_description' => __('These are settings for developers that contain extra features that are normally not useful for regular users, or are not yet ready for primetime', 'woo-vipps'), @@ -433,7 +435,7 @@ function init_react_admin_ui() { ); - + // Collects all the data for the React UI $options = array( // Main options tab data 'enabled' => $this->get_option('enabled', 'no'), @@ -500,13 +502,18 @@ function init_react_admin_ui() { 'Ocp_Apim_Key_eCommerce_test' => $this->get_option('Ocp_Apim_Key_eCommerce_test'), ); + // Provide some general data to the React UI $metadata = array( 'admin_url' => admin_url('admin-ajax.php'), ); + // Provide translations to the React UI wp_localize_script('vipps-mobilepay-react-ui', 'VippsMobilePayReactTranslations', $translations); + // Provide options to the React UI wp_localize_script('vipps-mobilepay-react-ui', 'VippsMobilePayReactOptions', $options); + // Provide metadata to the React UI wp_localize_script('vipps-mobilepay-react-ui', 'VippsMobilePayReactMetadata', $metadata); + // Enqueue the React UI css file wp_enqueue_style('vipps-mobilepay-react-ui', plugins_url('ui/dist/plugin.css',__FILE__), array(), 0 ); } @@ -3608,6 +3615,9 @@ function process_admin_options () { // We may have changed the number of form fields at this point if dev mode was changed // from off to on,so re-initialize the form fields here. IOK 2019-09-03 $this->init_form_fields(); + + // This is necessary because the form fields are not re-initialized when the form is submitted. + // Without this, the data in the form fields will be stale until a page reload. $this->init_react_admin_ui(); list($ok,$msg) = $this->check_connection(); if ($ok) { diff --git a/ui/dist/plugin.js b/ui/dist/plugin.js index d3761f5c..9787ae6a 100644 --- a/ui/dist/plugin.js +++ b/ui/dist/plugin.js @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var tr=Symbol.for("react.element"),yc=Symbol.for("react.portal"),gc=Symbol.for("react.fragment"),_c=Symbol.for("react.strict_mode"),wc=Symbol.for("react.profiler"),kc=Symbol.for("react.provider"),Sc=Symbol.for("react.context"),xc=Symbol.for("react.forward_ref"),Ec=Symbol.for("react.suspense"),Cc=Symbol.for("react.memo"),Nc=Symbol.for("react.lazy"),Bo=Symbol.iterator;function jc(e){return e===null||typeof e!="object"?null:(e=Bo&&e[Bo]||e["@@iterator"],typeof e=="function"?e:null)}var rs={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ls=Object.assign,is={};function cn(e,t,n){this.props=e,this.context=t,this.refs=is,this.updater=n||rs}cn.prototype.isReactComponent={};cn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};cn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function os(){}os.prototype=cn.prototype;function Xi(e,t,n){this.props=e,this.context=t,this.refs=is,this.updater=n||rs}var Gi=Xi.prototype=new os;Gi.constructor=Xi;ls(Gi,cn.prototype);Gi.isPureReactComponent=!0;var Ho=Array.isArray,us=Object.prototype.hasOwnProperty,Zi={current:null},ss={key:!0,ref:!0,__self:!0,__source:!0};function as(e,t,n){var r,l={},i=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)us.call(t,r)&&!ss.hasOwnProperty(r)&&(l[r]=t[r]);var u=arguments.length-2;if(u===1)l.children=n;else if(1>>1,J=E[Q];if(0>>1;Ql(Pl,z))wtl(cr,Pl)?(E[Q]=cr,E[wt]=z,Q=wt):(E[Q]=Pl,E[_t]=z,Q=_t);else if(wtl(cr,z))E[Q]=cr,E[wt]=z,Q=wt;else break e}}return P}function l(E,P){var z=E.sortIndex-P.sortIndex;return z!==0?z:E.id-P.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,u=o.now();e.unstable_now=function(){return o.now()-u}}var s=[],c=[],v=1,h=null,m=3,_=!1,w=!1,k=!1,U=typeof setTimeout=="function"?setTimeout:null,d=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function f(E){for(var P=n(c);P!==null;){if(P.callback===null)r(c);else if(P.startTime<=E)r(c),P.sortIndex=P.expirationTime,t(s,P);else break;P=n(c)}}function y(E){if(k=!1,f(E),!w)if(n(s)!==null)w=!0,Nl(x);else{var P=n(c);P!==null&&jl(y,P.startTime-E)}}function x(E,P){w=!1,k&&(k=!1,d(j),j=-1),_=!0;var z=m;try{for(f(P),h=n(s);h!==null&&(!(h.expirationTime>P)||E&&!Te());){var Q=h.callback;if(typeof Q=="function"){h.callback=null,m=h.priorityLevel;var J=Q(h.expirationTime<=P);P=e.unstable_now(),typeof J=="function"?h.callback=J:h===n(s)&&r(s),f(P)}else r(s);h=n(s)}if(h!==null)var ar=!0;else{var _t=n(c);_t!==null&&jl(y,_t.startTime-P),ar=!1}return ar}finally{h=null,m=z,_=!1}}var C=!1,N=null,j=-1,H=5,L=-1;function Te(){return!(e.unstable_now()-LE||125Q?(E.sortIndex=z,t(c,E),n(s)===null&&E===n(c)&&(k?(d(j),j=-1):k=!0,jl(y,z-Q))):(E.sortIndex=J,t(s,E),w||_||(w=!0,Nl(x))),E},e.unstable_shouldYield=Te,e.unstable_wrapCallback=function(E){var P=m;return function(){var z=m;m=P;try{return E.apply(this,arguments)}finally{m=z}}}})(ps);fs.exports=ps;var Uc=fs.exports;/** + */(function(e){function t(E,P){var z=E.length;E.push(P);e:for(;0>>1,J=E[Q];if(0>>1;Ql(Pl,z))wtl(cr,Pl)?(E[Q]=cr,E[wt]=z,Q=wt):(E[Q]=Pl,E[_t]=z,Q=_t);else if(wtl(cr,z))E[Q]=cr,E[wt]=z,Q=wt;else break e}}return P}function l(E,P){var z=E.sortIndex-P.sortIndex;return z!==0?z:E.id-P.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,u=o.now();e.unstable_now=function(){return o.now()-u}}var s=[],c=[],v=1,h=null,m=3,_=!1,w=!1,k=!1,U=typeof setTimeout=="function"?setTimeout:null,d=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function f(E){for(var P=n(c);P!==null;){if(P.callback===null)r(c);else if(P.startTime<=E)r(c),P.sortIndex=P.expirationTime,t(s,P);else break;P=n(c)}}function y(E){if(k=!1,f(E),!w)if(n(s)!==null)w=!0,Nl(x);else{var P=n(c);P!==null&&jl(y,P.startTime-E)}}function x(E,P){w=!1,k&&(k=!1,d(j),j=-1),_=!0;var z=m;try{for(f(P),h=n(s);h!==null&&(!(h.expirationTime>P)||E&&!Te());){var Q=h.callback;if(typeof Q=="function"){h.callback=null,m=h.priorityLevel;var J=Q(h.expirationTime<=P);P=e.unstable_now(),typeof J=="function"?h.callback=J:h===n(s)&&r(s),f(P)}else r(s);h=n(s)}if(h!==null)var ar=!0;else{var _t=n(c);_t!==null&&jl(y,_t.startTime-P),ar=!1}return ar}finally{h=null,m=z,_=!1}}var C=!1,N=null,j=-1,B=5,L=-1;function Te(){return!(e.unstable_now()-LE||125Q?(E.sortIndex=z,t(c,E),n(s)===null&&E===n(c)&&(k?(d(j),j=-1):k=!0,jl(y,z-Q))):(E.sortIndex=J,t(s,E),w||_||(w=!0,Nl(x))),E},e.unstable_shouldYield=Te,e.unstable_wrapCallback=function(E){var P=m;return function(){var z=m;m=P;try{return E.apply(this,arguments)}finally{m=z}}}})(ps);fs.exports=ps;var Uc=fs.exports;/** * @license React * react-dom.production.min.js * @@ -34,7 +34,7 @@ `+Tl+e}var Ll=!1;function Ol(e,t){if(!e||Ll)return"";Ll=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&typeof c.stack=="string"){for(var l=c.stack.split(` `),i=r.stack.split(` `),o=l.length-1,u=i.length-1;1<=o&&0<=u&&l[o]!==i[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==i[u]){if(o!==1||u!==1)do if(o--,u--,0>u||l[o]!==i[u]){var s=` -`+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=u);break}}}finally{Ll=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?En(e):""}function Bc(e){switch(e.tag){case 5:return En(e.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 2:case 15:return e=Ol(e.type,!1),e;case 11:return e=Ol(e.type.render,!1),e;case 1:return e=Ol(e.type,!0),e;default:return""}}function oi(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ut:return"Fragment";case Dt:return"Portal";case ri:return"Profiler";case to:return"StrictMode";case li:return"Suspense";case ii:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ys:return(e.displayName||"Context")+".Consumer";case vs:return(e._context.displayName||"Context")+".Provider";case no:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ro:return t=e.displayName||null,t!==null?t:oi(e.type)||"Memo";case et:t=e._payload,e=e._init;try{return oi(e(t))}catch{}}return null}function Hc(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return oi(t);case 8:return t===to?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function mt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _s(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Qc(e){var t=_s(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function pr(e){e._valueTracker||(e._valueTracker=Qc(e))}function ws(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_s(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function $r(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ui(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=mt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ks(e,t){t=t.checked,t!=null&&eo(e,"checked",t,!1)}function si(e,t){ks(e,t);var n=mt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ai(e,t.type,n):t.hasOwnProperty("defaultValue")&&ai(e,t.type,mt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Jo(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ai(e,t,n){(t!=="number"||$r(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Cn=Array.isArray;function Zt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=mr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pn={animationIterationCount:!0,aspectRatio:!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},Yc=["Webkit","ms","Moz","O"];Object.keys(Pn).forEach(function(e){Yc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pn[t]=Pn[e]})});function Cs(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pn.hasOwnProperty(e)&&Pn[e]?(""+t).trim():t+"px"}function Ns(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Cs(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Xc=W({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 fi(e,t){if(t){if(Xc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(g(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(g(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(g(61))}if(t.style!=null&&typeof t.style!="object")throw Error(g(62))}}function pi(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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}}var mi=null;function lo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var hi=null,Jt=null,qt=null;function eu(e){if(e=lr(e)){if(typeof hi!="function")throw Error(g(280));var t=e.stateNode;t&&(t=hl(t),hi(e.stateNode,e.type,t))}}function js(e){Jt?qt?qt.push(e):qt=[e]:Jt=e}function Ps(){if(Jt){var e=Jt,t=qt;if(qt=Jt=null,eu(e),t)for(e=0;e>>=0,e===0?32:31-(id(e)/od|0)|0}var hr=64,vr=4194304;function Nn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Br(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var u=o&~l;u!==0?r=Nn(u):(i&=o,i!==0&&(r=Nn(i)))}else o=n&~l,o!==0?r=Nn(o):i!==0&&(r=Nn(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function nr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Fe(t),e[t]=n}function cd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tn),au=" ",cu=!1;function Xs(e,t){switch(e){case"keyup":return Dd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $t=!1;function $d(e,t){switch(e){case"compositionend":return Gs(t);case"keypress":return t.which!==32?null:(cu=!0,au);case"textInput":return e=t.data,e===au&&cu?null:e;default:return null}}function Ad(e,t){if($t)return e==="compositionend"||!po&&Xs(e,t)?(e=Qs(),Lr=ao=lt=null,$t=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=mu(n)}}function bs(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bs(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ea(){for(var e=window,t=$r();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=$r(e.document)}return t}function mo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Zd(e){var t=ea(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&bs(n.ownerDocument.documentElement,n)){if(r!==null&&mo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=hu(n,i);var o=hu(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,At=null,ki=null,On=null,Si=!1;function vu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Si||At==null||At!==$r(r)||(r=At,"selectionStart"in r&&mo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),On&&Bn(On,r)||(On=r,r=Yr(ki,"onSelect"),0Bt||(e.current=Pi[Bt],Pi[Bt]=null,Bt--)}function F(e,t){Bt++,Pi[Bt]=e.current,e.current=t}var ht={},ue=yt(ht),me=yt(!1),zt=ht;function rn(e,t){var n=e.type.contextTypes;if(!n)return ht;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function he(e){return e=e.childContextTypes,e!=null}function Gr(){D(me),D(ue)}function xu(e,t,n){if(ue.current!==ht)throw Error(g(168));F(ue,t),F(me,n)}function aa(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(g(108,Hc(e)||"Unknown",l));return W({},n,r)}function Zr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ht,zt=ue.current,F(ue,e),F(me,me.current),!0}function Eu(e,t,n){var r=e.stateNode;if(!r)throw Error(g(169));n?(e=aa(e,t,zt),r.__reactInternalMemoizedMergedChildContext=e,D(me),D(ue),F(ue,e)):D(me),F(me,n)}var Be=null,vl=!1,Ql=!1;function ca(e){Be===null?Be=[e]:Be.push(e)}function af(e){vl=!0,ca(e)}function gt(){if(!Ql&&Be!==null){Ql=!0;var e=0,t=I;try{var n=Be;for(I=1;e>=o,l-=o,He=1<<32-Fe(t)+l|n<j?(H=N,N=null):H=N.sibling;var L=m(d,N,f[j],y);if(L===null){N===null&&(N=H);break}e&&N&&L.alternate===null&&t(d,N),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L,N=H}if(j===f.length)return n(d,N),$&&St(d,j),x;if(N===null){for(;jj?(H=N,N=null):H=N.sibling;var Te=m(d,N,L.value,y);if(Te===null){N===null&&(N=H);break}e&&N&&Te.alternate===null&&t(d,N),a=i(Te,a,j),C===null?x=Te:C.sibling=Te,C=Te,N=H}if(L.done)return n(d,N),$&&St(d,j),x;if(N===null){for(;!L.done;j++,L=f.next())L=h(d,L.value,y),L!==null&&(a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return $&&St(d,j),x}for(N=r(d,N);!L.done;j++,L=f.next())L=_(N,d,j,L.value,y),L!==null&&(e&&L.alternate!==null&&N.delete(L.key===null?j:L.key),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return e&&N.forEach(function(mn){return t(d,mn)}),$&&St(d,j),x}function U(d,a,f,y){if(typeof f=="object"&&f!==null&&f.type===Ut&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case fr:e:{for(var x=f.key,C=a;C!==null;){if(C.key===x){if(x=f.type,x===Ut){if(C.tag===7){n(d,C.sibling),a=l(C,f.props.children),a.return=d,d=a;break e}}else if(C.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===et&&Lu(x)===C.type){n(d,C.sibling),a=l(C,f.props),a.ref=kn(d,C,f),a.return=d,d=a;break e}n(d,C);break}else t(d,C);C=C.sibling}f.type===Ut?(a=Pt(f.props.children,d.mode,y,f.key),a.return=d,d=a):(y=Ur(f.type,f.key,f.props,null,d.mode,y),y.ref=kn(d,a,f),y.return=d,d=y)}return o(d);case Dt:e:{for(C=f.key;a!==null;){if(a.key===C)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){n(d,a.sibling),a=l(a,f.children||[]),a.return=d,d=a;break e}else{n(d,a);break}else t(d,a);a=a.sibling}a=ei(f,d.mode,y),a.return=d,d=a}return o(d);case et:return C=f._init,U(d,a,C(f._payload),y)}if(Cn(f))return w(d,a,f,y);if(vn(f))return k(d,a,f,y);xr(d,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(n(d,a.sibling),a=l(a,f),a.return=d,d=a):(n(d,a),a=bl(f,d.mode,y),a.return=d,d=a),o(d)):n(d,a)}return U}var on=ga(!0),_a=ga(!1),ir={},Ve=yt(ir),Xn=yt(ir),Gn=yt(ir);function Nt(e){if(e===ir)throw Error(g(174));return e}function xo(e,t){switch(F(Gn,t),F(Xn,e),F(Ve,ir),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:di(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=di(t,e)}D(Ve),F(Ve,t)}function un(){D(Ve),D(Xn),D(Gn)}function wa(e){Nt(Gn.current);var t=Nt(Ve.current),n=di(t,e.type);t!==n&&(F(Xn,e),F(Ve,n))}function Eo(e){Xn.current===e&&(D(Ve),D(Xn))}var A=yt(0);function nl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Yl=[];function Co(){for(var e=0;en?n:4,e(!0);var r=Xl.transition;Xl.transition={};try{e(!1),t()}finally{I=n,Xl.transition=r}}function Ma(){return ze().memoizedState}function pf(e,t,n){var r=ft(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ka(e))Da(t,n);else if(n=ma(e,t,n,r),n!==null){var l=ae();Me(n,e,r,l),Ua(n,t,r)}}function mf(e,t,n){var r=ft(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ka(e))Da(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,u=i(o,n);if(l.hasEagerState=!0,l.eagerState=u,Ke(u,o)){var s=t.interleaved;s===null?(l.next=l,ko(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ma(e,t,l,r),n!==null&&(l=ae(),Me(n,e,r,l),Ua(n,t,r))}}function Ka(e){var t=e.alternate;return e===V||t!==null&&t===V}function Da(e,t){Rn=rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ua(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,oo(e,n)}}var ll={readContext:Pe,useCallback:le,useContext:le,useEffect:le,useImperativeHandle:le,useInsertionEffect:le,useLayoutEffect:le,useMemo:le,useReducer:le,useRef:le,useState:le,useDebugValue:le,useDeferredValue:le,useTransition:le,useMutableSource:le,useSyncExternalStore:le,useId:le,unstable_isNewReconciler:!1},hf={readContext:Pe,useCallback:function(e,t){return Ue().memoizedState=[e,t===void 0?null:t],e},useContext:Pe,useEffect:Ru,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Fr(4194308,4,La.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Fr(4,2,e,t)},useMemo:function(e,t){var n=Ue();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ue();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=pf.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=Ue();return e={current:e},t.memoizedState=e},useState:Ou,useDebugValue:To,useDeferredValue:function(e){return Ue().memoizedState=e},useTransition:function(){var e=Ou(!1),t=e[0];return e=ff.bind(null,e[1]),Ue().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=V,l=Ue();if($){if(n===void 0)throw Error(g(407));n=n()}else{if(n=t(),ee===null)throw Error(g(349));Lt&30||xa(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Ru(Ca.bind(null,r,i,e),[e]),r.flags|=2048,qn(9,Ea.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ue(),t=ee.identifierPrefix;if($){var n=Qe,r=He;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Zn++,0")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=u);break}}}finally{Ll=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?En(e):""}function Hc(e){switch(e.tag){case 5:return En(e.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 2:case 15:return e=Ol(e.type,!1),e;case 11:return e=Ol(e.type.render,!1),e;case 1:return e=Ol(e.type,!0),e;default:return""}}function oi(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ut:return"Fragment";case Dt:return"Portal";case ri:return"Profiler";case to:return"StrictMode";case li:return"Suspense";case ii:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ys:return(e.displayName||"Context")+".Consumer";case vs:return(e._context.displayName||"Context")+".Provider";case no:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ro:return t=e.displayName||null,t!==null?t:oi(e.type)||"Memo";case et:t=e._payload,e=e._init;try{return oi(e(t))}catch{}}return null}function Bc(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return oi(t);case 8:return t===to?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function mt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function _s(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Qc(e){var t=_s(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function pr(e){e._valueTracker||(e._valueTracker=Qc(e))}function ws(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=_s(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function $r(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function ui(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=mt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ks(e,t){t=t.checked,t!=null&&eo(e,"checked",t,!1)}function si(e,t){ks(e,t);var n=mt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ai(e,t.type,n):t.hasOwnProperty("defaultValue")&&ai(e,t.type,mt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Jo(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ai(e,t,n){(t!=="number"||$r(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Cn=Array.isArray;function Zt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=mr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pn={animationIterationCount:!0,aspectRatio:!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},Yc=["Webkit","ms","Moz","O"];Object.keys(Pn).forEach(function(e){Yc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pn[t]=Pn[e]})});function Cs(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pn.hasOwnProperty(e)&&Pn[e]?(""+t).trim():t+"px"}function Ns(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Cs(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Xc=W({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 fi(e,t){if(t){if(Xc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(g(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(g(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(g(61))}if(t.style!=null&&typeof t.style!="object")throw Error(g(62))}}function pi(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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}}var mi=null;function lo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var hi=null,Jt=null,qt=null;function eu(e){if(e=lr(e)){if(typeof hi!="function")throw Error(g(280));var t=e.stateNode;t&&(t=hl(t),hi(e.stateNode,e.type,t))}}function js(e){Jt?qt?qt.push(e):qt=[e]:Jt=e}function Ps(){if(Jt){var e=Jt,t=qt;if(qt=Jt=null,eu(e),t)for(e=0;e>>=0,e===0?32:31-(id(e)/od|0)|0}var hr=64,vr=4194304;function Nn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Hr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var u=o&~l;u!==0?r=Nn(u):(i&=o,i!==0&&(r=Nn(i)))}else o=n&~l,o!==0?r=Nn(o):i!==0&&(r=Nn(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function nr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Fe(t),e[t]=n}function cd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tn),au=" ",cu=!1;function Xs(e,t){switch(e){case"keyup":return Dd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $t=!1;function $d(e,t){switch(e){case"compositionend":return Gs(t);case"keypress":return t.which!==32?null:(cu=!0,au);case"textInput":return e=t.data,e===au&&cu?null:e;default:return null}}function Ad(e,t){if($t)return e==="compositionend"||!po&&Xs(e,t)?(e=Qs(),Lr=ao=lt=null,$t=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=mu(n)}}function bs(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bs(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ea(){for(var e=window,t=$r();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=$r(e.document)}return t}function mo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Zd(e){var t=ea(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&bs(n.ownerDocument.documentElement,n)){if(r!==null&&mo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=hu(n,i);var o=hu(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,At=null,ki=null,On=null,Si=!1;function vu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Si||At==null||At!==$r(r)||(r=At,"selectionStart"in r&&mo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),On&&Hn(On,r)||(On=r,r=Yr(ki,"onSelect"),0Ht||(e.current=Pi[Ht],Pi[Ht]=null,Ht--)}function F(e,t){Ht++,Pi[Ht]=e.current,e.current=t}var ht={},ue=yt(ht),me=yt(!1),zt=ht;function rn(e,t){var n=e.type.contextTypes;if(!n)return ht;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function he(e){return e=e.childContextTypes,e!=null}function Gr(){D(me),D(ue)}function xu(e,t,n){if(ue.current!==ht)throw Error(g(168));F(ue,t),F(me,n)}function aa(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(g(108,Bc(e)||"Unknown",l));return W({},n,r)}function Zr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ht,zt=ue.current,F(ue,e),F(me,me.current),!0}function Eu(e,t,n){var r=e.stateNode;if(!r)throw Error(g(169));n?(e=aa(e,t,zt),r.__reactInternalMemoizedMergedChildContext=e,D(me),D(ue),F(ue,e)):D(me),F(me,n)}var He=null,vl=!1,Ql=!1;function ca(e){He===null?He=[e]:He.push(e)}function af(e){vl=!0,ca(e)}function gt(){if(!Ql&&He!==null){Ql=!0;var e=0,t=I;try{var n=He;for(I=1;e>=o,l-=o,Be=1<<32-Fe(t)+l|n<j?(B=N,N=null):B=N.sibling;var L=m(d,N,f[j],y);if(L===null){N===null&&(N=B);break}e&&N&&L.alternate===null&&t(d,N),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L,N=B}if(j===f.length)return n(d,N),$&&St(d,j),x;if(N===null){for(;jj?(B=N,N=null):B=N.sibling;var Te=m(d,N,L.value,y);if(Te===null){N===null&&(N=B);break}e&&N&&Te.alternate===null&&t(d,N),a=i(Te,a,j),C===null?x=Te:C.sibling=Te,C=Te,N=B}if(L.done)return n(d,N),$&&St(d,j),x;if(N===null){for(;!L.done;j++,L=f.next())L=h(d,L.value,y),L!==null&&(a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return $&&St(d,j),x}for(N=r(d,N);!L.done;j++,L=f.next())L=_(N,d,j,L.value,y),L!==null&&(e&&L.alternate!==null&&N.delete(L.key===null?j:L.key),a=i(L,a,j),C===null?x=L:C.sibling=L,C=L);return e&&N.forEach(function(mn){return t(d,mn)}),$&&St(d,j),x}function U(d,a,f,y){if(typeof f=="object"&&f!==null&&f.type===Ut&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case fr:e:{for(var x=f.key,C=a;C!==null;){if(C.key===x){if(x=f.type,x===Ut){if(C.tag===7){n(d,C.sibling),a=l(C,f.props.children),a.return=d,d=a;break e}}else if(C.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===et&&Lu(x)===C.type){n(d,C.sibling),a=l(C,f.props),a.ref=kn(d,C,f),a.return=d,d=a;break e}n(d,C);break}else t(d,C);C=C.sibling}f.type===Ut?(a=Pt(f.props.children,d.mode,y,f.key),a.return=d,d=a):(y=Ur(f.type,f.key,f.props,null,d.mode,y),y.ref=kn(d,a,f),y.return=d,d=y)}return o(d);case Dt:e:{for(C=f.key;a!==null;){if(a.key===C)if(a.tag===4&&a.stateNode.containerInfo===f.containerInfo&&a.stateNode.implementation===f.implementation){n(d,a.sibling),a=l(a,f.children||[]),a.return=d,d=a;break e}else{n(d,a);break}else t(d,a);a=a.sibling}a=ei(f,d.mode,y),a.return=d,d=a}return o(d);case et:return C=f._init,U(d,a,C(f._payload),y)}if(Cn(f))return w(d,a,f,y);if(vn(f))return k(d,a,f,y);xr(d,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,a!==null&&a.tag===6?(n(d,a.sibling),a=l(a,f),a.return=d,d=a):(n(d,a),a=bl(f,d.mode,y),a.return=d,d=a),o(d)):n(d,a)}return U}var on=ga(!0),_a=ga(!1),ir={},Ve=yt(ir),Xn=yt(ir),Gn=yt(ir);function Nt(e){if(e===ir)throw Error(g(174));return e}function xo(e,t){switch(F(Gn,t),F(Xn,e),F(Ve,ir),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:di(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=di(t,e)}D(Ve),F(Ve,t)}function un(){D(Ve),D(Xn),D(Gn)}function wa(e){Nt(Gn.current);var t=Nt(Ve.current),n=di(t,e.type);t!==n&&(F(Xn,e),F(Ve,n))}function Eo(e){Xn.current===e&&(D(Ve),D(Xn))}var A=yt(0);function nl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Yl=[];function Co(){for(var e=0;en?n:4,e(!0);var r=Xl.transition;Xl.transition={};try{e(!1),t()}finally{I=n,Xl.transition=r}}function Ma(){return ze().memoizedState}function pf(e,t,n){var r=ft(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ka(e))Da(t,n);else if(n=ma(e,t,n,r),n!==null){var l=ae();Me(n,e,r,l),Ua(n,t,r)}}function mf(e,t,n){var r=ft(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ka(e))Da(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,u=i(o,n);if(l.hasEagerState=!0,l.eagerState=u,Ke(u,o)){var s=t.interleaved;s===null?(l.next=l,ko(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ma(e,t,l,r),n!==null&&(l=ae(),Me(n,e,r,l),Ua(n,t,r))}}function Ka(e){var t=e.alternate;return e===V||t!==null&&t===V}function Da(e,t){Rn=rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ua(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,oo(e,n)}}var ll={readContext:Pe,useCallback:le,useContext:le,useEffect:le,useImperativeHandle:le,useInsertionEffect:le,useLayoutEffect:le,useMemo:le,useReducer:le,useRef:le,useState:le,useDebugValue:le,useDeferredValue:le,useTransition:le,useMutableSource:le,useSyncExternalStore:le,useId:le,unstable_isNewReconciler:!1},hf={readContext:Pe,useCallback:function(e,t){return Ue().memoizedState=[e,t===void 0?null:t],e},useContext:Pe,useEffect:Ru,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Fr(4194308,4,La.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Fr(4,2,e,t)},useMemo:function(e,t){var n=Ue();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ue();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=pf.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=Ue();return e={current:e},t.memoizedState=e},useState:Ou,useDebugValue:To,useDeferredValue:function(e){return Ue().memoizedState=e},useTransition:function(){var e=Ou(!1),t=e[0];return e=ff.bind(null,e[1]),Ue().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=V,l=Ue();if($){if(n===void 0)throw Error(g(407));n=n()}else{if(n=t(),ee===null)throw Error(g(349));Lt&30||xa(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Ru(Ca.bind(null,r,i,e),[e]),r.flags|=2048,qn(9,Ea.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ue(),t=ee.identifierPrefix;if($){var n=Qe,r=Be;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Zn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[$e]=t,e[Yn]=r,Xa(e,t,!1,!1),t.stateNode=e;e:{switch(o=pi(n,r),n){case"dialog":M("cancel",e),M("close",e),l=r;break;case"iframe":case"object":case"embed":M("load",e),l=r;break;case"video":case"audio":for(l=0;lan&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!$)return ie(t),null}else 2*Y()-i.renderingStartTime>an&&n!==1073741824&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Y(),t.sibling=null,n=A.current,F(A,r?n&1|2:n&1),t):(ie(t),null);case 22:case 23:return Mo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(ie(t),t.subtreeFlags&6&&(t.flags|=8192)):ie(t),null;case 24:return null;case 25:return null}throw Error(g(156,t.tag))}function xf(e,t){switch(vo(t),t.tag){case 1:return he(t.type)&&Gr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),D(me),D(ue),Co(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eo(t),null;case 13:if(D(A),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(g(340));ln()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(A),null;case 4:return un(),null;case 10:return wo(t.type._context),null;case 22:case 23:return Mo(),null;case 24:return null;default:return null}}var Cr=!1,oe=!1,Ef=typeof WeakSet=="function"?WeakSet:Set,S=null;function Xt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){B(e,t,r)}}var Vu=!1;function Cf(e,t){if(xi=Hr,e=ea(),mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,u=-1,s=-1,c=0,v=0,h=e,m=null;t:for(;;){for(var _;h!==n||l!==0&&h.nodeType!==3||(u=o+l),h!==i||r!==0&&h.nodeType!==3||(s=o+r),h.nodeType===3&&(o+=h.nodeValue.length),(_=h.firstChild)!==null;)m=h,h=_;for(;;){if(h===e)break t;if(m===n&&++c===l&&(u=o),m===i&&++v===r&&(s=o),(_=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=_}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ei={focusedElem:e,selectionRange:n},Hr=!1,S=t;S!==null;)if(t=S,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,S=e;else for(;S!==null;){t=S;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,U=w.memoizedState,d=t.stateNode,a=d.getSnapshotBeforeUpdate(t.elementType===t.type?k:Oe(t.type,k),U);d.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(g(163))}}catch(y){B(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,S=e;break}S=t.return}return w=Vu,Vu=!1,w}function In(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&$i(t,n,i)}l=l.next}while(l!==r)}}function _l(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ai(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ja(e){var t=e.alternate;t!==null&&(e.alternate=null,Ja(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$e],delete t[Yn],delete t[ji],delete t[uf],delete t[sf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function qa(e){return e.tag===5||e.tag===3||e.tag===4}function Wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xr));else if(r!==4&&(e=e.child,e!==null))for(Vi(e,t,n),e=e.sibling;e!==null;)Vi(e,t,n),e=e.sibling}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}var te=null,Re=!1;function be(e,t,n){for(n=n.child;n!==null;)ba(e,t,n),n=n.sibling}function ba(e,t,n){if(Ae&&typeof Ae.onCommitFiberUnmount=="function")try{Ae.onCommitFiberUnmount(dl,n)}catch{}switch(n.tag){case 5:oe||Xt(n,t);case 6:var r=te,l=Re;te=null,be(e,t,n),te=r,Re=l,te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):te.removeChild(n.stateNode));break;case 18:te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?Hl(e.parentNode,n):e.nodeType===1&&Hl(e,n),Vn(e)):Hl(te,n.stateNode));break;case 4:r=te,l=Re,te=n.stateNode.containerInfo,Re=!0,be(e,t,n),te=r,Re=l;break;case 0:case 11:case 14:case 15:if(!oe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$i(n,t,o),l=l.next}while(l!==r)}be(e,t,n);break;case 1:if(!oe&&(Xt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){B(n,t,u)}be(e,t,n);break;case 21:be(e,t,n);break;case 22:n.mode&1?(oe=(r=oe)||n.memoizedState!==null,be(e,t,n),oe=r):be(e,t,n);break;default:be(e,t,n)}}function Bu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ef),t.forEach(function(r){var l=If.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Le(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=Y()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jf(r/1960))-r,10e?16:e,it===null)var r=!1;else{if(e=it,it=null,ul=0,R&6)throw Error(g(331));var l=R;for(R|=4,S=e.current;S!==null;){var i=S,o=i.child;if(S.flags&16){var u=i.deletions;if(u!==null){for(var s=0;sY()-Io?jt(e,0):Ro|=n),ve(e,t)}function uc(e,t){t===0&&(e.mode&1?(t=vr,vr<<=1,!(vr&130023424)&&(vr=4194304)):t=1);var n=ae();e=Ze(e,t),e!==null&&(nr(e,t,n),ve(e,n))}function Rf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),uc(e,n)}function If(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(g(314))}r!==null&&r.delete(t),uc(e,n)}var sc;sc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)pe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pe=!1,kf(e,t,n);pe=!!(e.flags&131072)}else pe=!1,$&&t.flags&1048576&&da(t,qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mr(e,t),e=t.pendingProps;var l=rn(t,ue.current);en(t,n),l=jo(null,t,r,e,l,n);var i=Po();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,he(r)?(i=!0,Zr(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,So(t),l.updater=yl,t.stateNode=l,l._reactInternals=t,Ri(t,r,e,n),t=Mi(null,t,r,!0,i,n)):(t.tag=0,$&&i&&ho(t),se(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Mf(r),e=Oe(r,e),l){case 0:t=Fi(null,t,r,e,n);break e;case 1:t=Uu(null,t,r,e,n);break e;case 11:t=Ku(null,t,r,e,n);break e;case 14:t=Du(null,t,r,Oe(r.type,e),n);break e}throw Error(g(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Fi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Uu(e,t,r,l,n);case 3:e:{if(Ha(t),e===null)throw Error(g(387));r=t.pendingProps,i=t.memoizedState,l=i.element,ha(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=sn(Error(g(423)),t),t=$u(e,t,r,n,l);break e}else if(r!==l){l=sn(Error(g(424)),t),t=$u(e,t,r,n,l);break e}else for(ge=at(t.stateNode.containerInfo.firstChild),_e=t,$=!0,Ie=null,n=_a(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ln(),r===l){t=Je(e,t,n);break e}se(e,t,r,n)}t=t.child}return t;case 5:return wa(t),e===null&&Ti(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Ci(r,l)?o=null:i!==null&&Ci(r,i)&&(t.flags|=32),Ba(e,t),se(e,t,o,n),t.child;case 6:return e===null&&Ti(t),null;case 13:return Qa(e,t,n);case 4:return xo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=on(t,null,r,n):se(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Ku(e,t,r,l,n);case 7:return se(e,t,t.pendingProps,n),t.child;case 8:return se(e,t,t.pendingProps.children,n),t.child;case 12:return se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,F(br,r._currentValue),r._currentValue=o,i!==null)if(Ke(i.value,o)){if(i.children===l.children&&!me.current){t=Je(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var u=i.dependencies;if(u!==null){o=i.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var v=c.pending;v===null?s.next=s:(s.next=v.next,v.next=s),c.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Li(i.return,n,t),u.lanes|=n;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(g(341));o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),Li(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}se(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,en(t,n),l=Pe(l),r=r(l),t.flags|=1,se(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Du(e,t,r,l,n);case 15:return Va(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Mr(e,t),t.tag=1,he(r)?(e=!0,Zr(t)):e=!1,en(t,n),ya(t,r,l),Ri(t,r,l,n),Mi(null,t,r,!0,e,n);case 19:return Ya(e,t,n);case 22:return Wa(e,t,n)}throw Error(g(156,t.tag))};function ac(e,t){return Fs(e,t)}function Ff(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ne(e,t,n,r){return new Ff(e,t,n,r)}function Do(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Mf(e){if(typeof e=="function")return Do(e)?1:0;if(e!=null){if(e=e.$$typeof,e===no)return 11;if(e===ro)return 14}return 2}function pt(e,t){var n=e.alternate;return n===null?(n=Ne(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ur(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")Do(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Pt(n.children,l,i,t);case to:o=8,l|=8;break;case ri:return e=Ne(12,n,t,l|2),e.elementType=ri,e.lanes=i,e;case li:return e=Ne(13,n,t,l),e.elementType=li,e.lanes=i,e;case ii:return e=Ne(19,n,t,l),e.elementType=ii,e.lanes=i,e;case gs:return kl(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vs:o=10;break e;case ys:o=9;break e;case no:o=11;break e;case ro:o=14;break e;case et:o=16,r=null;break e}throw Error(g(130,e==null?e:typeof e,""))}return t=Ne(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function Pt(e,t,n,r){return e=Ne(7,e,r,t),e.lanes=n,e}function kl(e,t,n,r){return e=Ne(22,e,r,t),e.elementType=gs,e.lanes=n,e.stateNode={isHidden:!1},e}function bl(e,t,n){return e=Ne(6,e,null,t),e.lanes=n,e}function ei(e,t,n){return t=Ne(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Kf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Il(0),this.expirationTimes=Il(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Il(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Uo(e,t,n,r,l,i,o,u,s){return e=new Kf(e,t,n,u,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ne(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},So(i),e}function Df(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pc)}catch(e){console.error(e)}}pc(),ds.exports=ke;var Wf=ds.exports,qu=Wf;ti.createRoot=qu.createRoot,ti.hydrateRoot=qu.hydrateRoot;const or=window;if(!or.VippsMobilePayReactTranslations)throw new Error("VippsMobilePayReactTranslations not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactOptions)throw new Error("VippsMobilePayReactOptions not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactMetadata)throw new Error("VippsMobilePayReactMetadata not found, make sure to include this using wp_localize_script()");function O(e){var t;return((t=or.VippsMobilePayReactTranslations)==null?void 0:t[e])??e}const{VippsMobilePayReactTranslations:ap,VippsMobilePayReactOptions:bu,VippsMobilePayReactMetadata:cp}=or;function Bf({tabs:e,onTabChange:t,activeTab:n}){return p.jsx("div",{className:"vippstabholder",id:"vippstabholder",children:e.map((r,l)=>p.jsx("h3",{id:`woocommerce_vipps_${r}_options`,"aria-selected":r===n?"true":"false",className:`wc-settings-sub-title tab ${r===n?"active":""}`,title:r,onClick:()=>t(r),style:{cursor:"pointer"},children:r},l))})}const mc=Ce.createContext(null);function Hf({children:e}){const[t,n]=Ce.useState(bu);function r(o){return(t==null?void 0:t[o])??""}async function l(o,u){n(s=>({...s,[o]:u??null}))}async function i(o){o.preventDefault();const u=Object.entries(t).filter(([s,c])=>bu[s]!==c);for(const[s,c]of u)try{const v=await fetch("/wp-admin/admin-ajax.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_option",key:s,value:c})});if(!v.ok)throw new Error(v.statusText)}catch(v){throw console.error(v),v}}return p.jsx(mc.Provider,{value:{setOption:l,getOption:r,submitChanges:i},children:e})}function pn(){const e=Ce.useContext(mc);if(!e)throw new Error("useWP must be used within a WPOptionsProvider");return e}function It({htmlString:e,className:t=""}){return p.jsx("span",{className:[t].join(" "),dangerouslySetInnerHTML:{__html:e}})}function Qf(e){return p.jsx("input",{...e,className:["input-text regular-input",e.className??""].join(" "),style:{height:30},children:e.children})}function ur(e){return p.jsx("label",{...e,className:["vipps-mobilepay-react-label",e.className??""].join(" "),children:e.children})}function es({variant:e,...t}){return p.jsx("button",{...t,className:[`button-${e}`,t.className??""].join(" "),children:t.children})}function Yf({id:e,name:t,onChange:n,checked:r,children:l,className:i}){return p.jsx("input",{id:e,name:t,checked:r?Jf(r):void 0,onChange:o=>n(qf(o.target.checked)),type:"checkbox",className:[i??""].join(" "),children:l})}function Xf(e){return p.jsx("select",{...e,className:[e.className??""].join(" "),children:e.children})}function Gf(e){return p.jsx("option",{...e,className:[e.className??""].join(" "),children:e.children})}function Zf(e){return p.jsx("textarea",{...e,className:[e.className??""].join(" "),children:e.children})}function sr(e){return p.jsx("div",{...e,className:["vipps-mobilepay-react-form-field",e.className??""].join(" "),children:e.children})}function Jf(e){return e==="yes"}function qf(e){return e?"yes":"no"}function K({name:e,titleKey:t,labelKey:n,descriptionKey:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{className:"vipps-mobilepay-react-row-center",children:[p.jsx(Yf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,checked:l(e),onChange:o=>i(e,o)}),n&&p.jsx("label",{htmlFor:`woocommerce_vipps_${e}`,children:p.jsx(It,{htmlString:O(n)})})]}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function er({name:e,titleKey:t,descriptionKey:n,options:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Xf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:o=>i(e,o.target.value),value:l(e),required:!0,children:r.map(o=>p.jsx(Gf,{value:o,children:o},o))}),n&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(n)})]})]})}function b({name:e,titleKey:t,labelKey:n,descriptionKey:r,pattern:l,required:i,asterisk:o,type:u="text"}){const{getOption:s,setOption:c}=pn(),[v,h]=Ce.useState(!1),m=!v&&o;return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Qf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:_=>c(e,_.target.value),value:s(e),pattern:l,required:i,onFocus:()=>h(!0),onBlur:()=>h(!1),type:m?"password":u}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function bf({name:e,titleKey:t,labelKey:n,descriptionKey:r,rows:l=5}){const{getOption:i,setOption:o}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Zf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:u=>o(e,u.target.value),value:i(e),rows:l}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function ep(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description"}),p.jsx(K,{name:"enabled",titleKey:"enabled_title",labelKey:"enabled_label"}),p.jsx(er,{name:"payment_method_name",titleKey:"payment_method_name_title",descriptionKey:"payment_method_name_label",options:[O("payment_method_name_options_vipps"),O("payment_method_name_options_mobilepay")]}),p.jsx(b,{name:"orderprefix",titleKey:"orderprefix_title",labelKey:"orderprefix_label",pattern:"[a-zA-Z0-9-]+",required:!0}),p.jsx(b,{asterisk:!0,name:"merchantSerialNumber",titleKey:"merchantSerialNumber_title",labelKey:"merchantSerialNumber_label"}),p.jsx(b,{asterisk:!0,name:"clientId",titleKey:"clientId_title",labelKey:"clientId_label"}),p.jsx(b,{asterisk:!0,name:"secret",titleKey:"secret_title",labelKey:"secret_label"}),p.jsx(b,{name:"Ocp_Apim_Key_eCommerce",titleKey:"Ocp_Apim_Key_eCommerce_title",labelKey:"Ocp_Apim_Key_eCommerce_label"}),p.jsx(er,{name:"result_status",titleKey:"result_status_title",descriptionKey:"result_status_description",options:[O("result_status_options_on-hold"),O("result_status_options_processing")]}),p.jsx(b,{name:"title",titleKey:"title_title",labelKey:"title_description"}),p.jsx(bf,{name:"description",titleKey:"description_title",labelKey:"description_description",rows:5}),p.jsx(K,{name:"vippsdefault",titleKey:"vippsdefault_title",labelKey:"vippsdefault_label"})]})}function tp(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("express_options_description")}),p.jsx(K,{name:"cartexpress",titleKey:"cartexpress_title",labelKey:"cartexpress_title",descriptionKey:"cartexpress_description"}),p.jsx(er,{name:"singleproductexpress",titleKey:"singleproductexpress_title",descriptionKey:"singleproductexpress_description",options:[O("singleproductexpress_options_none"),O("singleproductexpress_options_some"),O("singleproductexpress_options_all")]}),p.jsx(K,{name:"singleproductexpressarchives",titleKey:"singleproductexpressarchives_title",labelKey:"singleproductexpressarchives_label",descriptionKey:"singleproductexpressarchives_description"}),p.jsx(K,{name:"expresscheckout_termscheckbox",titleKey:"expresscheckout_termscheckbox_title",labelKey:"expresscheckout_termscheckbox_label",descriptionKey:"expresscheckout_termscheckbox_description"}),p.jsx(K,{name:"expresscheckout_always_address",titleKey:"expresscheckout_always_address_title",labelKey:"expresscheckout_always_address_label",descriptionKey:"expresscheckout_always_address_description"}),p.jsx(K,{name:"enablestaticshipping",titleKey:"enablestaticshipping_title",labelKey:"enablestaticshipping_label",descriptionKey:"enablestaticshipping_description"}),p.jsx(K,{name:"expresscreateuser",titleKey:"expresscreateuser_title",labelKey:"expresscreateuser_label",descriptionKey:"expresscreateuser_description"}),p.jsx(K,{name:"singleproductbuynowcompatmode",titleKey:"singleproductbuynowcompatmode_title",labelKey:"singleproductbuynowcompatmode_label",descriptionKey:"singleproductbuynowcompatmode_description"}),p.jsx(K,{name:"deletefailedexpressorders",titleKey:"deletefailedexpressorders_title",labelKey:"deletefailedexpressorders_label",descriptionKey:"deletefailedexpressorders_description"})]})}function np(){const{getOption:e}=pn(),t=e("vcs_porterbuddy")==="yes",n=e("vcs_instabox")==="yes",r=e("vcs_helthjem")==="yes";return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_options_description")}),p.jsx(K,{name:"vipps_checkout_enabled",titleKey:"vipps_checkout_enabled_title",labelKey:"vipps_checkout_enabled_label",descriptionKey:"vipps_checkout_enabled_description"}),p.jsx(K,{name:"checkoutcreateuser",titleKey:"checkoutcreateuser_title",labelKey:"checkoutcreateuser_label",descriptionKey:"checkoutcreateuser_description"}),p.jsx(K,{name:"enablestaticshipping_checkout",titleKey:"enablestaticshipping_checkout_title",labelKey:"enablestaticshipping_checkout_label",descriptionKey:"enablestaticshipping_checkout_description"}),p.jsx(K,{name:"requireUserInfo_checkout",titleKey:"requireUserInfo_checkout_title",labelKey:"requireUserInfo_checkout_label",descriptionKey:"requireUserInfo_checkout_description"}),p.jsx(K,{name:"noAddressFields",titleKey:"noAddressFields_title",labelKey:"noAddressFields_label",descriptionKey:"noAddressFields_description"}),p.jsx(K,{name:"noContactFields",titleKey:"noContactFields_title",labelKey:"noContactFields_label",descriptionKey:"noContactFields_description"}),p.jsx("h3",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_shipping_title")}),p.jsx("p",{children:O("checkout_shipping_description")}),p.jsx(K,{name:"vcs_posten",titleKey:"vcs_posten_title",descriptionKey:"vcs_posten_description",labelKey:"vcs_posten_label"}),p.jsx(K,{name:"vcs_postnord",titleKey:"vcs_postnord_title",descriptionKey:"vcs_postnord_description",labelKey:"vcs_postnord_label"}),p.jsx(K,{name:"vcs_porterbuddy",titleKey:"vcs_porterbuddy_title",descriptionKey:"vcs_porterbuddy_description",labelKey:"vcs_porterbuddy_label"}),t&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_publicToken",titleKey:"vcs_porterbuddy_publicToken_title",descriptionKey:"vcs_porterbuddy_publicToken_description"}),p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_apiKey",titleKey:"vcs_porterbuddy_apiKey_title",descriptionKey:"vcs_porterbuddy_apiKey_description"}),p.jsx(b,{name:"vcs_porterbuddy_phoneNumber",titleKey:"vcs_porterbuddy_phoneNumber_title",descriptionKey:"vcs_porterbuddy_phoneNumber_description"})]}),p.jsx(K,{name:"vcs_instabox",titleKey:"vcs_instabox_title",descriptionKey:"vcs_instabox_description",labelKey:"vcs_instabox_label"}),n&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientId",titleKey:"vcs_instabox_clientId_title",descriptionKey:"vcs_instabox_clientId_description"}),p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientSecret",titleKey:"vcs_instabox_clientSecret_title",descriptionKey:"vcs_instabox_clientSecret_description"})]}),p.jsx(K,{name:"vcs_helthjem",titleKey:"vcs_helthjem_title",descriptionKey:"vcs_helthjem_description",labelKey:"vcs_helthjem_label"}),r&&p.jsxs(p.Fragment,{children:[p.jsx(b,{type:"number",name:"vcs_helthjem_shopId",titleKey:"vcs_helthjem_shopId_title",descriptionKey:"vcs_helthjem_shopId_description"}),p.jsx(b,{name:"vcs_helthjem_username",titleKey:"vcs_helthjem_username_title",descriptionKey:"vcs_helthjem_username_description"}),p.jsx(b,{asterisk:!0,name:"vcs_helthjem_password",titleKey:"vcs_helthjem_password_title",descriptionKey:"vcs_helthjem_password_description"})]})]})}function rp({onUpload:e}){return{handleImageUpload:()=>{const n=wp.media({library:{type:"image"},button:{},multiple:!1});n.on("select",()=>{const r=n.state().get("selection").first().toJSON();let l="";r.url?l=r.url:r.sizes&&r.sizes.thumbnail&&(l=r.sizes.thumbnail.url),l&&e(r.id,l)}),n.open()}}}function lp(){const{getOption:e,setOption:t}=pn();function n(){t("receiptimage",""),t("receiptimage_url","")}const{handleImageUpload:r}=rp({onUpload(o,u){t("receiptimage",o),t("receiptimage_url",u)}}),l=e("receiptimage"),i=e("receiptimage_url");return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("advanced_options_description")}),p.jsx(er,{name:"vippsspecialpagetemplate",titleKey:"vippsspecialpagetemplate_title",descriptionKey:"vippsspecialpagetemplate_description",options:Object.values(O("vippsspecialpagetemplate_options"))}),p.jsx(er,{name:"vippsspecialpageid",titleKey:"vippsspecialpageid_title",descriptionKey:"vippsspecialpageid_description",options:Object.values(O("vippsspecialpageid_options"))}),p.jsx(K,{name:"sendreceipts",titleKey:"sendreceipts_title",descriptionKey:"sendreceipts_description",labelKey:"sendreceipts_label"}),p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:"woocommerce_vipps_receiptimage",children:O("receiptimage_title")}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{children:[l?p.jsxs(p.Fragment,{children:[p.jsx("img",{src:i,id:l,style:{width:200}}),p.jsx(es,{type:"button",onClick:n,variant:"link",children:O("remove_image")})]}):p.jsx(es,{type:"button",onClick:r,variant:"link",children:O("upload_image")}),p.jsx("input",{type:"hidden",name:"woocommerce_vipps_receiptimage",id:"woocommerce_vipps_receiptimage",value:l})]}),p.jsx("span",{className:"vipps-mobilepay-react-field-description",children:O("receiptimage_description")})]})]}),p.jsx(K,{name:"use_flock",titleKey:"use_flock_title",descriptionKey:"use_flock_description",labelKey:"use_flock_label"}),p.jsx(K,{name:"developermode",titleKey:"developermode_title",descriptionKey:"developermode_description",labelKey:"developermode_label"})]})}function ip(e){const[t,n]=Ce.useState(()=>window.location.hash),r=Ce.useCallback(()=>{n(window.location.hash)},[]);Ce.useEffect(()=>(window.addEventListener("hashchange",r),()=>{window.removeEventListener("hashchange",r)}),[r]);const l=Ce.useCallback(i=>{i!==t&&(window.location.hash="#"+i)},[t]);return Ce.useEffect(()=>{!t&&e&&l(e)},[t,e,l]),[decodeURIComponent(t.replace("#","")),l]}function op(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("developer_options_description")}),p.jsx(K,{name:"testmode",titleKey:"testmode_title",descriptionKey:"testmode_description",labelKey:"testmode_label"}),p.jsx(b,{name:"merchantSerialNumber_test",titleKey:"merchantSerialNumber_test_title",labelKey:"merchantSerialNumber_test_description"}),p.jsx(b,{asterisk:!0,name:"clientId_test",titleKey:"clientId_test_title",labelKey:"clientId_test_description"}),p.jsx(b,{asterisk:!0,name:"secret_test",titleKey:"secret_test_title",labelKey:"secret_test_description"}),p.jsx(b,{asterisk:!0,name:"Ocp_Apim_Key_eCommerce_test",titleKey:"Ocp_Apim_Key_eCommerce_test_title",labelKey:"Ocp_Apim_Key_eCommerce_test_description"})]})}const kt=[O("main_options_title"),O("express_options_title"),O("checkout_options_title"),O("advanced_options_title"),O("developer_options_title")];function up(){const[e,t]=ip(kt[0]);function n(r){return r!==e}return p.jsxs(p.Fragment,{children:[p.jsx(Bf,{tabs:kt,onTabChange:t,activeTab:decodeURIComponent(e)}),p.jsx("div",{style:{display:n(kt[0])?"none":"block"},children:p.jsx(ep,{})}),p.jsx("div",{style:{display:n(kt[1])?"none":"block"},children:p.jsx(tp,{})}),p.jsx("div",{style:{display:n(kt[2])?"none":"block"},children:p.jsx(np,{})}),p.jsx("div",{style:{display:n(kt[3])?"none":"block"},children:p.jsx(lp,{})}),p.jsx("div",{style:{display:n(kt[4])?"none":"block"},children:p.jsx(op,{})})]})}function sp(){return p.jsx(Hf,{children:p.jsx(up,{})})}ti.createRoot(document.getElementById("vipps-mobilepay-react-ui")).render(p.jsx(Oc.StrictMode,{children:p.jsx(sp,{})})); +`+i.stack}return{value:e,source:t,stack:l,digest:null}}function Jl(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ii(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var gf=typeof WeakMap=="function"?WeakMap:Map;function $a(e,t,n){n=Ye(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ol||(ol=!0,Hi=r),Ii(e,t)},n}function Aa(e,t,n){n=Ye(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){Ii(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){Ii(e,t),typeof r!="function"&&(dt===null?dt=new Set([this]):dt.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Iu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new gf;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=Of.bind(null,e,t,n),t.then(e,e))}function Fu(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Mu(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ye(-1,1),t.tag=2,ct(n,t,1))),n.lanes|=1),e)}var _f=qe.ReactCurrentOwner,pe=!1;function se(e,t,n,r){t.child=e===null?_a(t,null,n,r):on(t,e.child,n,r)}function Ku(e,t,n,r,l){n=n.render;var i=t.ref;return en(t,l),r=jo(e,t,n,r,i,l),n=Po(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Je(e,t,l)):($&&n&&ho(t),t.flags|=1,se(e,t,r,l),t.child)}function Du(e,t,n,r,l){if(e===null){var i=n.type;return typeof i=="function"&&!Do(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,Va(e,t,i,r,l)):(e=Ur(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&l)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:Hn,n(o,r)&&e.ref===t.ref)return Je(e,t,l)}return t.flags|=1,e=pt(i,r),e.ref=t.ref,e.return=t,t.child=e}function Va(e,t,n,r,l){if(e!==null){var i=e.memoizedProps;if(Hn(i,r)&&e.ref===t.ref)if(pe=!1,t.pendingProps=r=i,(e.lanes&l)!==0)e.flags&131072&&(pe=!0);else return t.lanes=e.lanes,Je(e,t,l)}return Fi(e,t,n,r,l)}function Wa(e,t,n){var r=t.pendingProps,l=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},F(Gt,ye),ye|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,F(Gt,ye),ye|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,F(Gt,ye),ye|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,F(Gt,ye),ye|=r;return se(e,t,l,n),t.child}function Ha(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Fi(e,t,n,r,l){var i=he(n)?zt:ue.current;return i=rn(t,i),en(t,l),n=jo(e,t,n,r,i,l),r=Po(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Je(e,t,l)):($&&r&&ho(t),t.flags|=1,se(e,t,n,l),t.child)}function Uu(e,t,n,r,l){if(he(n)){var i=!0;Zr(t)}else i=!1;if(en(t,l),t.stateNode===null)Mr(e,t),ya(t,n,r),Ri(t,n,r,l),r=!0;else if(e===null){var o=t.stateNode,u=t.memoizedProps;o.props=u;var s=o.context,c=n.contextType;typeof c=="object"&&c!==null?c=Pe(c):(c=he(n)?zt:ue.current,c=rn(t,c));var v=n.getDerivedStateFromProps,h=typeof v=="function"||typeof o.getSnapshotBeforeUpdate=="function";h||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(u!==r||s!==c)&&Tu(t,o,r,c),tt=!1;var m=t.memoizedState;o.state=m,tl(t,r,o,l),s=t.memoizedState,u!==r||m!==s||me.current||tt?(typeof v=="function"&&(Oi(t,n,v,r),s=t.memoizedState),(u=tt||zu(t,n,u,r,m,s,c))?(h||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),o.props=r,o.state=s,o.context=c,r=u):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ha(e,t),u=t.memoizedProps,c=t.type===t.elementType?u:Oe(t.type,u),o.props=c,h=t.pendingProps,m=o.context,s=n.contextType,typeof s=="object"&&s!==null?s=Pe(s):(s=he(n)?zt:ue.current,s=rn(t,s));var _=n.getDerivedStateFromProps;(v=typeof _=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(u!==h||m!==s)&&Tu(t,o,r,s),tt=!1,m=t.memoizedState,o.state=m,tl(t,r,o,l);var w=t.memoizedState;u!==h||m!==w||me.current||tt?(typeof _=="function"&&(Oi(t,n,_,r),w=t.memoizedState),(c=tt||zu(t,n,c,r,m,w,s)||!1)?(v||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,w,s),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,w,s)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=w),o.props=r,o.state=w,o.context=s,r=c):(typeof o.componentDidUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),r=!1)}return Mi(e,t,n,r,i,l)}function Mi(e,t,n,r,l,i){Ha(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return l&&Eu(t,n,!1),Je(e,t,i);r=t.stateNode,_f.current=t;var u=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=on(t,e.child,null,i),t.child=on(t,null,u,i)):se(e,t,u,i),t.memoizedState=r.state,l&&Eu(t,n,!0),t.child}function Ba(e){var t=e.stateNode;t.pendingContext?xu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&xu(e,t.context,!1),xo(e,t.containerInfo)}function $u(e,t,n,r,l){return ln(),yo(l),t.flags|=256,se(e,t,n,r),t.child}var Ki={dehydrated:null,treeContext:null,retryLane:0};function Di(e){return{baseLanes:e,cachePool:null,transitions:null}}function Qa(e,t,n){var r=t.pendingProps,l=A.current,i=!1,o=(t.flags&128)!==0,u;if((u=o)||(u=e!==null&&e.memoizedState===null?!1:(l&2)!==0),u?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),F(A,l&1),e===null)return Ti(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,i?(r=t.mode,i=t.child,o={mode:"hidden",children:o},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=kl(o,r,0,null),e=Pt(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Di(n),t.memoizedState=Ki,e):Lo(t,o));if(l=e.memoizedState,l!==null&&(u=l.dehydrated,u!==null))return wf(e,t,o,r,u,l,n);if(i){i=r.fallback,o=t.mode,l=e.child,u=l.sibling;var s={mode:"hidden",children:r.children};return!(o&1)&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=pt(l,s),r.subtreeFlags=l.subtreeFlags&14680064),u!==null?i=pt(u,i):(i=Pt(i,o,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,o=e.child.memoizedState,o=o===null?Di(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=Ki,r}return i=e.child,e=i.sibling,r=pt(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Lo(e,t){return t=kl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Er(e,t,n,r){return r!==null&&yo(r),on(t,e.child,null,n),e=Lo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function wf(e,t,n,r,l,i,o){if(n)return t.flags&256?(t.flags&=-257,r=Jl(Error(g(422))),Er(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,l=t.mode,r=kl({mode:"visible",children:r.children},l,0,null),i=Pt(i,l,o,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&on(t,e.child,null,o),t.child.memoizedState=Di(o),t.memoizedState=Ki,i);if(!(t.mode&1))return Er(e,t,o,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var u=r.dgst;return r=u,i=Error(g(419)),r=Jl(i,r,void 0),Er(e,t,o,r)}if(u=(o&e.childLanes)!==0,pe||u){if(r=ee,r!==null){switch(o&-o){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=l&(r.suspendedLanes|o)?0:l,l!==0&&l!==i.retryLane&&(i.retryLane=l,Ze(e,l),Me(r,e,l,-1))}return Ko(),r=Jl(Error(g(421))),Er(e,t,o,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Rf.bind(null,e),l._reactRetry=t,null):(e=i.treeContext,ge=at(l.nextSibling),_e=t,$=!0,Ie=null,e!==null&&(xe[Ee++]=Be,xe[Ee++]=Qe,xe[Ee++]=Tt,Be=e.id,Qe=e.overflow,Tt=t),t=Lo(t,r.children),t.flags|=4096,t)}function Au(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Li(e.return,t,n)}function ql(e,t,n,r,l){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=l)}function Ya(e,t,n){var r=t.pendingProps,l=r.revealOrder,i=r.tail;if(se(e,t,r.children,n),r=A.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Au(e,n,t);else if(e.tag===19)Au(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(F(A,r),!(t.mode&1))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&nl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),ql(t,!1,l,n,i);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&nl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}ql(t,!0,n,null,i);break;case"together":ql(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Mr(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Je(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ot|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(g(153));if(t.child!==null){for(e=t.child,n=pt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=pt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function kf(e,t,n){switch(t.tag){case 3:Ba(t),ln();break;case 5:wa(t);break;case 1:he(t.type)&&Zr(t);break;case 4:xo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;F(br,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(F(A,A.current&1),t.flags|=128,null):n&t.child.childLanes?Qa(e,t,n):(F(A,A.current&1),e=Je(e,t,n),e!==null?e.sibling:null);F(A,A.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Ya(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),F(A,A.current),r)break;return null;case 22:case 23:return t.lanes=0,Wa(e,t,n)}return Je(e,t,n)}var Xa,Ui,Ga,Za;Xa=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Ui=function(){};Ga=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,Nt(Ve.current);var i=null;switch(n){case"input":l=ui(e,l),r=ui(e,r),i=[];break;case"select":l=W({},l,{value:void 0}),r=W({},r,{value:void 0}),i=[];break;case"textarea":l=ci(e,l),r=ci(e,r),i=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Xr)}fi(n,r);var o;n=null;for(c in l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&l[c]!=null)if(c==="style"){var u=l[c];for(o in u)u.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(Kn.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var s=r[c];if(u=l!=null?l[c]:void 0,r.hasOwnProperty(c)&&s!==u&&(s!=null||u!=null))if(c==="style")if(u){for(o in u)!u.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in s)s.hasOwnProperty(o)&&u[o]!==s[o]&&(n||(n={}),n[o]=s[o])}else n||(i||(i=[]),i.push(c,n)),n=s;else c==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,u=u?u.__html:void 0,s!=null&&u!==s&&(i=i||[]).push(c,s)):c==="children"?typeof s!="string"&&typeof s!="number"||(i=i||[]).push(c,""+s):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(Kn.hasOwnProperty(c)?(s!=null&&c==="onScroll"&&M("scroll",e),i||u===s||(i=[])):(i=i||[]).push(c,s))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}};Za=function(e,t,n,r){n!==r&&(t.flags|=4)};function Sn(e,t){if(!$)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ie(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Sf(e,t,n){var r=t.pendingProps;switch(vo(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ie(t),null;case 1:return he(t.type)&&Gr(),ie(t),null;case 3:return r=t.stateNode,un(),D(me),D(ue),Co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Sr(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ie!==null&&(Yi(Ie),Ie=null))),Ui(e,t),ie(t),null;case 5:Eo(t);var l=Nt(Gn.current);if(n=t.type,e!==null&&t.stateNode!=null)Ga(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(g(166));return ie(t),null}if(e=Nt(Ve.current),Sr(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[$e]=t,r[Yn]=i,e=(t.mode&1)!==0,n){case"dialog":M("cancel",r),M("close",r);break;case"iframe":case"object":case"embed":M("load",r);break;case"video":case"audio":for(l=0;l<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[$e]=t,e[Yn]=r,Xa(e,t,!1,!1),t.stateNode=e;e:{switch(o=pi(n,r),n){case"dialog":M("cancel",e),M("close",e),l=r;break;case"iframe":case"object":case"embed":M("load",e),l=r;break;case"video":case"audio":for(l=0;lan&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!$)return ie(t),null}else 2*Y()-i.renderingStartTime>an&&n!==1073741824&&(t.flags|=128,r=!0,Sn(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Y(),t.sibling=null,n=A.current,F(A,r?n&1|2:n&1),t):(ie(t),null);case 22:case 23:return Mo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(ie(t),t.subtreeFlags&6&&(t.flags|=8192)):ie(t),null;case 24:return null;case 25:return null}throw Error(g(156,t.tag))}function xf(e,t){switch(vo(t),t.tag){case 1:return he(t.type)&&Gr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),D(me),D(ue),Co(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Eo(t),null;case 13:if(D(A),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(g(340));ln()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return D(A),null;case 4:return un(),null;case 10:return wo(t.type._context),null;case 22:case 23:return Mo(),null;case 24:return null;default:return null}}var Cr=!1,oe=!1,Ef=typeof WeakSet=="function"?WeakSet:Set,S=null;function Xt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){H(e,t,r)}else n.current=null}function $i(e,t,n){try{n()}catch(r){H(e,t,r)}}var Vu=!1;function Cf(e,t){if(xi=Br,e=ea(),mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,u=-1,s=-1,c=0,v=0,h=e,m=null;t:for(;;){for(var _;h!==n||l!==0&&h.nodeType!==3||(u=o+l),h!==i||r!==0&&h.nodeType!==3||(s=o+r),h.nodeType===3&&(o+=h.nodeValue.length),(_=h.firstChild)!==null;)m=h,h=_;for(;;){if(h===e)break t;if(m===n&&++c===l&&(u=o),m===i&&++v===r&&(s=o),(_=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=_}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(Ei={focusedElem:e,selectionRange:n},Br=!1,S=t;S!==null;)if(t=S,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,S=e;else for(;S!==null;){t=S;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,U=w.memoizedState,d=t.stateNode,a=d.getSnapshotBeforeUpdate(t.elementType===t.type?k:Oe(t.type,k),U);d.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(g(163))}}catch(y){H(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,S=e;break}S=t.return}return w=Vu,Vu=!1,w}function In(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&$i(t,n,i)}l=l.next}while(l!==r)}}function _l(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Ai(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ja(e){var t=e.alternate;t!==null&&(e.alternate=null,Ja(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$e],delete t[Yn],delete t[ji],delete t[uf],delete t[sf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function qa(e){return e.tag===5||e.tag===3||e.tag===4}function Wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xr));else if(r!==4&&(e=e.child,e!==null))for(Vi(e,t,n),e=e.sibling;e!==null;)Vi(e,t,n),e=e.sibling}function Wi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Wi(e,t,n),e=e.sibling;e!==null;)Wi(e,t,n),e=e.sibling}var te=null,Re=!1;function be(e,t,n){for(n=n.child;n!==null;)ba(e,t,n),n=n.sibling}function ba(e,t,n){if(Ae&&typeof Ae.onCommitFiberUnmount=="function")try{Ae.onCommitFiberUnmount(dl,n)}catch{}switch(n.tag){case 5:oe||Xt(n,t);case 6:var r=te,l=Re;te=null,be(e,t,n),te=r,Re=l,te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):te.removeChild(n.stateNode));break;case 18:te!==null&&(Re?(e=te,n=n.stateNode,e.nodeType===8?Bl(e.parentNode,n):e.nodeType===1&&Bl(e,n),Vn(e)):Bl(te,n.stateNode));break;case 4:r=te,l=Re,te=n.stateNode.containerInfo,Re=!0,be(e,t,n),te=r,Re=l;break;case 0:case 11:case 14:case 15:if(!oe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&$i(n,t,o),l=l.next}while(l!==r)}be(e,t,n);break;case 1:if(!oe&&(Xt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){H(n,t,u)}be(e,t,n);break;case 21:be(e,t,n);break;case 22:n.mode&1?(oe=(r=oe)||n.memoizedState!==null,be(e,t,n),oe=r):be(e,t,n);break;default:be(e,t,n)}}function Hu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ef),t.forEach(function(r){var l=If.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Le(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~i}if(r=l,r=Y()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*jf(r/1960))-r,10e?16:e,it===null)var r=!1;else{if(e=it,it=null,ul=0,R&6)throw Error(g(331));var l=R;for(R|=4,S=e.current;S!==null;){var i=S,o=i.child;if(S.flags&16){var u=i.deletions;if(u!==null){for(var s=0;sY()-Io?jt(e,0):Ro|=n),ve(e,t)}function uc(e,t){t===0&&(e.mode&1?(t=vr,vr<<=1,!(vr&130023424)&&(vr=4194304)):t=1);var n=ae();e=Ze(e,t),e!==null&&(nr(e,t,n),ve(e,n))}function Rf(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),uc(e,n)}function If(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(g(314))}r!==null&&r.delete(t),uc(e,n)}var sc;sc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)pe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pe=!1,kf(e,t,n);pe=!!(e.flags&131072)}else pe=!1,$&&t.flags&1048576&&da(t,qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Mr(e,t),e=t.pendingProps;var l=rn(t,ue.current);en(t,n),l=jo(null,t,r,e,l,n);var i=Po();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,he(r)?(i=!0,Zr(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,So(t),l.updater=yl,t.stateNode=l,l._reactInternals=t,Ri(t,r,e,n),t=Mi(null,t,r,!0,i,n)):(t.tag=0,$&&i&&ho(t),se(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Mr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Mf(r),e=Oe(r,e),l){case 0:t=Fi(null,t,r,e,n);break e;case 1:t=Uu(null,t,r,e,n);break e;case 11:t=Ku(null,t,r,e,n);break e;case 14:t=Du(null,t,r,Oe(r.type,e),n);break e}throw Error(g(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Fi(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Uu(e,t,r,l,n);case 3:e:{if(Ba(t),e===null)throw Error(g(387));r=t.pendingProps,i=t.memoizedState,l=i.element,ha(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=sn(Error(g(423)),t),t=$u(e,t,r,n,l);break e}else if(r!==l){l=sn(Error(g(424)),t),t=$u(e,t,r,n,l);break e}else for(ge=at(t.stateNode.containerInfo.firstChild),_e=t,$=!0,Ie=null,n=_a(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ln(),r===l){t=Je(e,t,n);break e}se(e,t,r,n)}t=t.child}return t;case 5:return wa(t),e===null&&Ti(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,Ci(r,l)?o=null:i!==null&&Ci(r,i)&&(t.flags|=32),Ha(e,t),se(e,t,o,n),t.child;case 6:return e===null&&Ti(t),null;case 13:return Qa(e,t,n);case 4:return xo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=on(t,null,r,n):se(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Ku(e,t,r,l,n);case 7:return se(e,t,t.pendingProps,n),t.child;case 8:return se(e,t,t.pendingProps.children,n),t.child;case 12:return se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,F(br,r._currentValue),r._currentValue=o,i!==null)if(Ke(i.value,o)){if(i.children===l.children&&!me.current){t=Je(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var u=i.dependencies;if(u!==null){o=i.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(i.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var v=c.pending;v===null?s.next=s:(s.next=v.next,v.next=s),c.pending=s}}i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Li(i.return,n,t),u.lanes|=n;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(g(341));o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),Li(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}se(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,en(t,n),l=Pe(l),r=r(l),t.flags|=1,se(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Du(e,t,r,l,n);case 15:return Va(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Mr(e,t),t.tag=1,he(r)?(e=!0,Zr(t)):e=!1,en(t,n),ya(t,r,l),Ri(t,r,l,n),Mi(null,t,r,!0,e,n);case 19:return Ya(e,t,n);case 22:return Wa(e,t,n)}throw Error(g(156,t.tag))};function ac(e,t){return Fs(e,t)}function Ff(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ne(e,t,n,r){return new Ff(e,t,n,r)}function Do(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Mf(e){if(typeof e=="function")return Do(e)?1:0;if(e!=null){if(e=e.$$typeof,e===no)return 11;if(e===ro)return 14}return 2}function pt(e,t){var n=e.alternate;return n===null?(n=Ne(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ur(e,t,n,r,l,i){var o=2;if(r=e,typeof e=="function")Do(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Pt(n.children,l,i,t);case to:o=8,l|=8;break;case ri:return e=Ne(12,n,t,l|2),e.elementType=ri,e.lanes=i,e;case li:return e=Ne(13,n,t,l),e.elementType=li,e.lanes=i,e;case ii:return e=Ne(19,n,t,l),e.elementType=ii,e.lanes=i,e;case gs:return kl(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case vs:o=10;break e;case ys:o=9;break e;case no:o=11;break e;case ro:o=14;break e;case et:o=16,r=null;break e}throw Error(g(130,e==null?e:typeof e,""))}return t=Ne(o,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function Pt(e,t,n,r){return e=Ne(7,e,r,t),e.lanes=n,e}function kl(e,t,n,r){return e=Ne(22,e,r,t),e.elementType=gs,e.lanes=n,e.stateNode={isHidden:!1},e}function bl(e,t,n){return e=Ne(6,e,null,t),e.lanes=n,e}function ei(e,t,n){return t=Ne(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Kf(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Il(0),this.expirationTimes=Il(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Il(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Uo(e,t,n,r,l,i,o,u,s){return e=new Kf(e,t,n,u,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ne(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},So(i),e}function Df(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pc)}catch(e){console.error(e)}}pc(),ds.exports=ke;var Wf=ds.exports,qu=Wf;ti.createRoot=qu.createRoot,ti.hydrateRoot=qu.hydrateRoot;const or=window;if(!or.VippsMobilePayReactTranslations)throw new Error("VippsMobilePayReactTranslations not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactOptions)throw new Error("VippsMobilePayReactOptions not found, make sure to include this using wp_localize_script()");if(!or.VippsMobilePayReactMetadata)throw new Error("VippsMobilePayReactMetadata not found, make sure to include this using wp_localize_script()");function O(e){var t;return((t=or.VippsMobilePayReactTranslations)==null?void 0:t[e])??e}const{VippsMobilePayReactTranslations:ap,VippsMobilePayReactOptions:bu,VippsMobilePayReactMetadata:cp}=or;function Hf({tabs:e,onTabChange:t,activeTab:n}){return p.jsx("div",{className:"vippstabholder",id:"vippstabholder",children:e.map((r,l)=>p.jsx("h3",{id:`woocommerce_vipps_${r}_options`,"aria-selected":r===n?"true":"false",className:`wc-settings-sub-title tab ${r===n?"active":""}`,title:r,onClick:()=>t(r),style:{cursor:"pointer"},children:r},l))})}const mc=Ce.createContext(null);function Bf({children:e}){const[t,n]=Ce.useState(bu);function r(o){return(t==null?void 0:t[o])??""}async function l(o,u){n(s=>({...s,[o]:u??null}))}async function i(o){o.preventDefault();const u=Object.entries(t).filter(([s,c])=>bu[s]!==c);for(const[s,c]of u)try{const v=await fetch("/wp-admin/admin-ajax.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_option",key:s,value:c})});if(!v.ok)throw new Error(v.statusText)}catch(v){throw console.error(v),v}}return p.jsx(mc.Provider,{value:{setOption:l,getOption:r,submitChanges:i},children:e})}function pn(){const e=Ce.useContext(mc);if(!e)throw new Error("useWP must be used within a WPOptionsProvider");return e}function It({htmlString:e,className:t=""}){return p.jsx("span",{className:[t].join(" "),dangerouslySetInnerHTML:{__html:e}})}function Qf(e){return p.jsx("input",{...e,className:["input-text regular-input",e.className??""].join(" "),style:{height:30},children:e.children})}function ur(e){return p.jsx("label",{...e,className:["vipps-mobilepay-react-label",e.className??""].join(" "),children:e.children})}function es({variant:e,...t}){return p.jsx("button",{...t,className:[`button-${e}`,t.className??""].join(" "),children:t.children})}function Yf({id:e,name:t,onChange:n,checked:r,children:l,className:i}){return p.jsx("input",{id:e,name:t,checked:r?Jf(r):void 0,onChange:o=>n(qf(o.target.checked)),type:"checkbox",className:[i??""].join(" "),children:l})}function Xf(e){return p.jsx("select",{...e,className:[e.className??""].join(" "),children:e.children})}function Gf(e){return p.jsx("option",{...e,className:[e.className??""].join(" "),children:e.children})}function Zf(e){return p.jsx("textarea",{...e,className:[e.className??""].join(" "),children:e.children})}function sr(e){return p.jsx("div",{...e,className:["vipps-mobilepay-react-form-field",e.className??""].join(" "),children:e.children})}function Jf(e){return e==="yes"}function qf(e){return e?"yes":"no"}function K({name:e,titleKey:t,labelKey:n,descriptionKey:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{className:"vipps-mobilepay-react-row-center",children:[p.jsx(Yf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,checked:l(e),onChange:o=>i(e,o)}),n&&p.jsx("label",{htmlFor:`woocommerce_vipps_${e}`,children:p.jsx(It,{htmlString:O(n)})})]}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function er({name:e,titleKey:t,descriptionKey:n,options:r}){const{getOption:l,setOption:i}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Xf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:o=>i(e,o.target.value),value:l(e),required:!0,children:r.map(o=>p.jsx(Gf,{value:o,children:o},o))}),n&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(n)})]})]})}function b({name:e,titleKey:t,labelKey:n,descriptionKey:r,pattern:l,required:i,asterisk:o,type:u="text"}){const{getOption:s,setOption:c}=pn(),[v,h]=Ce.useState(!1),m=!v&&o;return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Qf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:_=>c(e,_.target.value),value:s(e),pattern:l,required:i,onFocus:()=>h(!0),onBlur:()=>h(!1),type:m?"password":u}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function bf({name:e,titleKey:t,labelKey:n,descriptionKey:r,rows:l=5}){const{getOption:i,setOption:o}=pn();return p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:`woocommerce_vipps_${e}`,children:O(t)}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsx(Zf,{id:`woocommerce_vipps_${e}`,name:`woocommerce_vipps_${e}`,onChange:u=>o(e,u.target.value),value:i(e),rows:l}),p.jsx("div",{children:n&&p.jsx(It,{htmlString:O(n)})}),r&&p.jsx(It,{className:"vipps-mobilepay-react-field-description",htmlString:O(r)})]})]})}function ep(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description"}),p.jsx(K,{name:"enabled",titleKey:"enabled_title",labelKey:"enabled_label"}),p.jsx(er,{name:"payment_method_name",titleKey:"payment_method_name_title",descriptionKey:"payment_method_name_label",options:[O("payment_method_name_options_vipps"),O("payment_method_name_options_mobilepay")]}),p.jsx(b,{name:"orderprefix",titleKey:"orderprefix_title",labelKey:"orderprefix_label",pattern:"[a-zA-Z0-9-]+",required:!0}),p.jsx(b,{asterisk:!0,name:"merchantSerialNumber",titleKey:"merchantSerialNumber_title",labelKey:"merchantSerialNumber_label"}),p.jsx(b,{asterisk:!0,name:"clientId",titleKey:"clientId_title",labelKey:"clientId_label"}),p.jsx(b,{asterisk:!0,name:"secret",titleKey:"secret_title",labelKey:"secret_label"}),p.jsx(b,{name:"Ocp_Apim_Key_eCommerce",titleKey:"Ocp_Apim_Key_eCommerce_title",labelKey:"Ocp_Apim_Key_eCommerce_label"}),p.jsx(er,{name:"result_status",titleKey:"result_status_title",descriptionKey:"result_status_description",options:[O("result_status_options_on-hold"),O("result_status_options_processing")]}),p.jsx(b,{name:"title",titleKey:"title_title",labelKey:"title_description"}),p.jsx(bf,{name:"description",titleKey:"description_title",labelKey:"description_description",rows:5}),p.jsx(K,{name:"vippsdefault",titleKey:"vippsdefault_title",labelKey:"vippsdefault_label"})]})}function tp(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("express_options_description")}),p.jsx(K,{name:"cartexpress",titleKey:"cartexpress_title",labelKey:"cartexpress_title",descriptionKey:"cartexpress_description"}),p.jsx(er,{name:"singleproductexpress",titleKey:"singleproductexpress_title",descriptionKey:"singleproductexpress_description",options:[O("singleproductexpress_options_none"),O("singleproductexpress_options_some"),O("singleproductexpress_options_all")]}),p.jsx(K,{name:"singleproductexpressarchives",titleKey:"singleproductexpressarchives_title",labelKey:"singleproductexpressarchives_label",descriptionKey:"singleproductexpressarchives_description"}),p.jsx(K,{name:"expresscheckout_termscheckbox",titleKey:"expresscheckout_termscheckbox_title",labelKey:"expresscheckout_termscheckbox_label",descriptionKey:"expresscheckout_termscheckbox_description"}),p.jsx(K,{name:"expresscheckout_always_address",titleKey:"expresscheckout_always_address_title",labelKey:"expresscheckout_always_address_label",descriptionKey:"expresscheckout_always_address_description"}),p.jsx(K,{name:"enablestaticshipping",titleKey:"enablestaticshipping_title",labelKey:"enablestaticshipping_label",descriptionKey:"enablestaticshipping_description"}),p.jsx(K,{name:"expresscreateuser",titleKey:"expresscreateuser_title",labelKey:"expresscreateuser_label",descriptionKey:"expresscreateuser_description"}),p.jsx(K,{name:"singleproductbuynowcompatmode",titleKey:"singleproductbuynowcompatmode_title",labelKey:"singleproductbuynowcompatmode_label",descriptionKey:"singleproductbuynowcompatmode_description"}),p.jsx(K,{name:"deletefailedexpressorders",titleKey:"deletefailedexpressorders_title",labelKey:"deletefailedexpressorders_label",descriptionKey:"deletefailedexpressorders_description"})]})}function np(){const{getOption:e}=pn(),t=e("vcs_porterbuddy")==="yes",n=e("vcs_instabox")==="yes",r=e("vcs_helthjem")==="yes";return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_options_description")}),p.jsx(K,{name:"vipps_checkout_enabled",titleKey:"vipps_checkout_enabled_title",labelKey:"vipps_checkout_enabled_label",descriptionKey:"vipps_checkout_enabled_description"}),p.jsx(K,{name:"checkoutcreateuser",titleKey:"checkoutcreateuser_title",labelKey:"checkoutcreateuser_label",descriptionKey:"checkoutcreateuser_description"}),p.jsx(K,{name:"enablestaticshipping_checkout",titleKey:"enablestaticshipping_checkout_title",labelKey:"enablestaticshipping_checkout_label",descriptionKey:"enablestaticshipping_checkout_description"}),p.jsx(K,{name:"requireUserInfo_checkout",titleKey:"requireUserInfo_checkout_title",labelKey:"requireUserInfo_checkout_label",descriptionKey:"requireUserInfo_checkout_description"}),p.jsx(K,{name:"noAddressFields",titleKey:"noAddressFields_title",labelKey:"noAddressFields_label",descriptionKey:"noAddressFields_description"}),p.jsx(K,{name:"noContactFields",titleKey:"noContactFields_title",labelKey:"noContactFields_label",descriptionKey:"noContactFields_description"}),p.jsx("h3",{className:"vipps-mobilepay-react-tab-description",children:O("checkout_shipping_title")}),p.jsx("p",{children:O("checkout_shipping_description")}),p.jsx(K,{name:"vcs_posten",titleKey:"vcs_posten_title",descriptionKey:"vcs_posten_description",labelKey:"vcs_posten_label"}),p.jsx(K,{name:"vcs_postnord",titleKey:"vcs_postnord_title",descriptionKey:"vcs_postnord_description",labelKey:"vcs_postnord_label"}),p.jsx(K,{name:"vcs_porterbuddy",titleKey:"vcs_porterbuddy_title",descriptionKey:"vcs_porterbuddy_description",labelKey:"vcs_porterbuddy_label"}),t&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_publicToken",titleKey:"vcs_porterbuddy_publicToken_title",descriptionKey:"vcs_porterbuddy_publicToken_description"}),p.jsx(b,{asterisk:!0,name:"vcs_porterbuddy_apiKey",titleKey:"vcs_porterbuddy_apiKey_title",descriptionKey:"vcs_porterbuddy_apiKey_description"}),p.jsx(b,{name:"vcs_porterbuddy_phoneNumber",titleKey:"vcs_porterbuddy_phoneNumber_title",descriptionKey:"vcs_porterbuddy_phoneNumber_description"})]}),p.jsx(K,{name:"vcs_instabox",titleKey:"vcs_instabox_title",descriptionKey:"vcs_instabox_description",labelKey:"vcs_instabox_label"}),n&&p.jsxs(p.Fragment,{children:[p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientId",titleKey:"vcs_instabox_clientId_title",descriptionKey:"vcs_instabox_clientId_description"}),p.jsx(b,{asterisk:!0,name:"vcs_instabox_clientSecret",titleKey:"vcs_instabox_clientSecret_title",descriptionKey:"vcs_instabox_clientSecret_description"})]}),p.jsx(K,{name:"vcs_helthjem",titleKey:"vcs_helthjem_title",descriptionKey:"vcs_helthjem_description",labelKey:"vcs_helthjem_label"}),r&&p.jsxs(p.Fragment,{children:[p.jsx(b,{type:"number",name:"vcs_helthjem_shopId",titleKey:"vcs_helthjem_shopId_title",descriptionKey:"vcs_helthjem_shopId_description"}),p.jsx(b,{name:"vcs_helthjem_username",titleKey:"vcs_helthjem_username_title",descriptionKey:"vcs_helthjem_username_description"}),p.jsx(b,{asterisk:!0,name:"vcs_helthjem_password",titleKey:"vcs_helthjem_password_title",descriptionKey:"vcs_helthjem_password_description"})]})]})}function rp({onUpload:e}){return{handleImageUpload:()=>{const n=wp.media({library:{type:"image"},button:{},multiple:!1});n.on("select",()=>{const r=n.state().get("selection").first().toJSON();let l="";r.url?l=r.url:r.sizes&&r.sizes.thumbnail&&(l=r.sizes.thumbnail.url),l&&e(r.id,l)}),n.open()}}}function lp(){const{getOption:e,setOption:t}=pn();function n(){t("receiptimage",""),t("receiptimage_url","")}const{handleImageUpload:r}=rp({onUpload(o,u){t("receiptimage",o),t("receiptimage_url",u)}}),l=e("receiptimage"),i=e("receiptimage_url");return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("advanced_options_description")}),p.jsx(er,{name:"vippsspecialpagetemplate",titleKey:"vippsspecialpagetemplate_title",descriptionKey:"vippsspecialpagetemplate_description",options:Object.values(O("vippsspecialpagetemplate_options"))}),p.jsx(er,{name:"vippsspecialpageid",titleKey:"vippsspecialpageid_title",descriptionKey:"vippsspecialpageid_description",options:Object.values(O("vippsspecialpageid_options"))}),p.jsx(K,{name:"sendreceipts",titleKey:"sendreceipts_title",descriptionKey:"sendreceipts_description",labelKey:"sendreceipts_label"}),p.jsxs(sr,{children:[p.jsx(ur,{htmlFor:"woocommerce_vipps_receiptimage",children:O("receiptimage_title")}),p.jsxs("div",{className:"vipps-mobilepay-react-col",children:[p.jsxs("div",{children:[l?p.jsxs(p.Fragment,{children:[p.jsx("img",{src:i,id:l,style:{width:200}}),p.jsx(es,{type:"button",onClick:n,variant:"link",children:O("remove_image")})]}):p.jsx(es,{type:"button",onClick:r,variant:"link",children:O("upload_image")}),p.jsx("input",{type:"hidden",name:"woocommerce_vipps_receiptimage",id:"woocommerce_vipps_receiptimage",value:l})]}),p.jsx("span",{className:"vipps-mobilepay-react-field-description",children:O("receiptimage_description")})]})]}),p.jsx(K,{name:"use_flock",titleKey:"use_flock_title",descriptionKey:"use_flock_description",labelKey:"use_flock_label"}),p.jsx(K,{name:"developermode",titleKey:"developermode_title",descriptionKey:"developermode_description",labelKey:"developermode_label"})]})}function ip(e){const[t,n]=Ce.useState(()=>window.location.hash),r=Ce.useCallback(()=>{n(window.location.hash)},[]);Ce.useEffect(()=>(window.addEventListener("hashchange",r),()=>{window.removeEventListener("hashchange",r)}),[r]);const l=Ce.useCallback(o=>{o!==t&&(window.location.hash="#"+o)},[t]);return Ce.useEffect(()=>{!t&&e&&l(e)},[t,e,l]),[decodeURIComponent(t.replace("#","")),l]}function op(){return p.jsxs("div",{children:[p.jsx("p",{className:"vipps-mobilepay-react-tab-description",children:O("developer_options_description")}),p.jsx(K,{name:"testmode",titleKey:"testmode_title",descriptionKey:"testmode_description",labelKey:"testmode_label"}),p.jsx(b,{name:"merchantSerialNumber_test",titleKey:"merchantSerialNumber_test_title",labelKey:"merchantSerialNumber_test_description"}),p.jsx(b,{asterisk:!0,name:"clientId_test",titleKey:"clientId_test_title",labelKey:"clientId_test_description"}),p.jsx(b,{asterisk:!0,name:"secret_test",titleKey:"secret_test_title",labelKey:"secret_test_description"}),p.jsx(b,{asterisk:!0,name:"Ocp_Apim_Key_eCommerce_test",titleKey:"Ocp_Apim_Key_eCommerce_test_title",labelKey:"Ocp_Apim_Key_eCommerce_test_description"})]})}const kt=[O("main_options_title"),O("express_options_title"),O("checkout_options_title"),O("advanced_options_title"),O("developer_options_title")];function up(){const[e,t]=ip(kt[0]);function n(r){return r!==e}return p.jsxs(p.Fragment,{children:[p.jsx(Hf,{tabs:kt,onTabChange:t,activeTab:decodeURIComponent(e)}),p.jsx("div",{style:{display:n(kt[0])?"none":"block"},children:p.jsx(ep,{})}),p.jsx("div",{style:{display:n(kt[1])?"none":"block"},children:p.jsx(tp,{})}),p.jsx("div",{style:{display:n(kt[2])?"none":"block"},children:p.jsx(np,{})}),p.jsx("div",{style:{display:n(kt[3])?"none":"block"},children:p.jsx(lp,{})}),p.jsx("div",{style:{display:n(kt[4])?"none":"block"},children:p.jsx(op,{})})]})}function sp(){return p.jsx(Bf,{children:p.jsx(up,{})})}ti.createRoot(document.getElementById("vipps-mobilepay-react-ui")).render(p.jsx(Oc.StrictMode,{children:p.jsx(sp,{})})); diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 4604c49a..9c4169a5 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -2,7 +2,12 @@ import './App.css'; import { AdminSettings } from './components/admin-settings/admin-settings'; import { WPOptionsProvider } from './wp-options-provider'; -function App() { +/** + * Renders the main application component. + * + * @returns The rendered application component. + */ +function App(): JSX.Element { return ( diff --git a/ui/src/components/admin-settings/admin-settings.tsx b/ui/src/components/admin-settings/admin-settings.tsx index 316740c7..eecad747 100644 --- a/ui/src/components/admin-settings/admin-settings.tsx +++ b/ui/src/components/admin-settings/admin-settings.tsx @@ -7,6 +7,7 @@ import { AdminSettingsAdvancedOptionsTab } from './advanced-options-tab'; import { useHash } from '../../hooks/use-hash'; import { AdminSettingsDeveloperOptionsTab } from './developer-options-tab'; +// The tabs to render on the admin settings page. const TAB_IDS = [ gettext('main_options_title'), gettext('express_options_title'), @@ -15,9 +16,16 @@ const TAB_IDS = [ gettext('developer_options_title') ]; +/** + * A React component that renders the admin settings page. + * + * @returns The rendered admin settings page. + */ export function AdminSettings(): JSX.Element { + // Get the active tab from the URL hash. const [activeTab, setActiveTab] = useHash(TAB_IDS[0]); + // Function to determine if a tab is visible. function isVisible(tab: string): boolean { return tab !== activeTab; } diff --git a/ui/src/components/admin-settings/advanced-options-tab.tsx b/ui/src/components/admin-settings/advanced-options-tab.tsx index 5a47d74c..d41469a5 100644 --- a/ui/src/components/admin-settings/advanced-options-tab.tsx +++ b/ui/src/components/admin-settings/advanced-options-tab.tsx @@ -4,14 +4,24 @@ import { useWP } from '../../wp-options-provider'; import { CheckboxFormField, SelectFormField } from '../options-form-fields'; import { WPButton, WPFormField, WPLabel } from '../form-elements'; +/** + * A React component that renders the advanced options tab for the admin settings page. + * + * @returns The rendered advanced options tab. + */ export function AdminSettingsAdvancedOptionsTab(): JSX.Element { const { getOption, setOption } = useWP(); + /** + * Removes the image from the options and clears the image URL. + */ function handleImageRemove() { setOption('receiptimage', ''); setOption('receiptimage_url', ''); } - + /** + * Handles the image upload and updates the receipt image option and URL. + */ const { handleImageUpload } = useWPImageUpload({ onUpload(id, url) { setOption('receiptimage', id); @@ -26,6 +36,7 @@ export function AdminSettingsAdvancedOptionsTab(): JSX.Element {

{gettext('advanced_options_description')}

+ {/* Renders a checkbox to override the page template used for the special Vipps pages */} + {/* Renders a checkbox to use a real page ID for the special Vipps pages */} + {/* Renders a checkbox to enable the sending of receipts */} + {/* Renders an image upload field to upload the receipt image */} {gettext('receiptimage_title')}
+ {/* Only show the image upload button if there is no image */} {imageId ? ( <> + {/* Renders a checkbox to enable the use of flock() */} + {/* Renders a checkbox to enable developer mode */}

{gettext('checkout_options_description')}

+ {/* Renders a checkbox to enable the Alternative screen */} + {/* Renders a checkbox to enable the creation of new customers on Checkout */} + {/* Renders a checkbox to enable static shipping */} + {/* Renders a checkbox to enable the sharing of user information */} + {/* Renders a checkbox to enable the dropping of address fields */} + {/* Renders a checkbox to enable the dropping of contact fields */} {gettext('checkout_shipping_title')}

{gettext('checkout_shipping_description')}

+ {/* Renders a checkbox to enable Posten Norge */} + {/* Renders a checkbox to enable Posten Nord */} + {/* Render a checkbox to enable Porterbuddy */} + {/* Display Porterbuddy input fields if Porterbuddy is enabled */} {showPorterbuddy && ( <> + {/* Renders a text input field for the Porterbuddy public token */} + + {/* Renders a text input field for the Porterbuddy API key */} + + {/* Renders a text input field for the Porterbuddy phone number */} )} + {/* Renders a checkbox to enable Instabox */} + {/* Display Instabox input fields if Instabox is enabled */} {showInstabox && ( <> + {/* Renders a text input field for the Instabox Client Id */} + + {/* Renders a text input field for the Instabox Client Secret */} )} + {/* Renders a checkbox to enable Helthjem */} + {/* Display Helthjem input fields if Helthjem is enabled */} {showHelthjem && ( <> + {/* Renders a text input field for the Helthjem Shop Id */} + + {/* Renders a text input field for the Helthjem Username */} + + {/* Renders a text input field for the Helthjem Password */}

{gettext('developer_options_description')}

+ {/* Renders a checkbox to enable test mode */} + {/* Renders an input field for the TEST merchant serial number */} + {/* Renders an input field for the TEST client ID */} + {/* Renders an input field for the TEST client secret */} + {/* Renders an input field for the TEST subscription key */}

{gettext('express_options_description')}

+ {/* Renders a checkbox to enable Express Checkout in cart */} + {/* Renders a select field that allows an admin to specify which products should have the "express checkout" option enabled */} + {/* Renders a checkbox to enable the 'Buy now' button on catalog pages */} + {/* Renders a checkbox to enable whether or not users should be asked if they've read the store's terms and conditions */} + {/* Renders a checkbox to enable whether or not the users should always be asked for an address */} + {/* Renders a checkbox to enable static shipping for Express Checkout */} + {/* Renders a checkbox to enable whether or not new users should be created when using Express Checkout */} + {/* Renders a checkbox to enable compatibility mode for the "Buy now" button */} + {/* Renders a checkbox to enable whether or not failed Express Checkout orders should be deleted */}

+ {/* Renders a checkbox that specifies whether or not the plugin is enabled */} + {/* Renders a select field that specifies the payment method name (Vipps or MobilePay) */} + {/* Renders an input field for the order prefix */} + + {/* Renders an input field for the merchant serial number */} + + {/* Renders an input field for the VippsMobilePay client ID */} + + {/* Renders an input field for the VippsMobilePay secret */} + {/* Renders an input field for the VippsMobilePay Ocp_Apim_Key_eCommerce */} + {/* Renders a select field for the result status (On-Hold or Processing) */} + {/* Renders an input field for the title */} + {/* Renders a textarea field for the description */} + {/* Renders a checkbox that specifies whether or not Vipps is the default payment method */}
); diff --git a/ui/src/components/form-elements.tsx b/ui/src/components/form-elements.tsx index 1db2180c..21d64e42 100644 --- a/ui/src/components/form-elements.tsx +++ b/ui/src/components/form-elements.tsx @@ -1,6 +1,11 @@ import { ComponentProps, PropsWithChildren } from 'react'; -export function WPInput(props: ComponentProps<'input'>) { +/** + * Renders an input element with custom styling. + * + * @returns The rendered input element. + */ +export function WPInput(props: ComponentProps<'input'>): JSX.Element { return ( {props.children} @@ -8,7 +13,12 @@ export function WPInput(props: ComponentProps<'input'>) { ); } -export function WPForm(props: ComponentProps<'form'>) { +/** + * Renders a form element with the provided props. + * + * @returns The rendered form element. + */ +export function WPForm(props: ComponentProps<'form'>): JSX.Element { return (
{props.children} @@ -16,7 +26,12 @@ export function WPForm(props: ComponentProps<'form'>) { ); } -export function WPLabel(props: ComponentProps<'label'>) { +/** + * Renders a label element with custom styling. + * + * @returns The rendered label element. + */ +export function WPLabel(props: ComponentProps<'label'>): JSX.Element { return (