var _6=Object.defineProperty;var O6=(e,t,r)=>t in e?_6(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var ch=(e,t,r)=>O6(e,typeof t!="symbol"?t+"":t,r);function M6(e,t){for(var r=0;rs[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))s(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function r(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(a){if(a.ep)return;a.ep=!0;const i=r(a);fetch(a.href,i)}})();function Jn(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var C2={exports:{}},Dm={},E2={exports:{}},Ae={};/** * @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 yc=Symbol.for("react.element"),D6=Symbol.for("react.portal"),$6=Symbol.for("react.fragment"),L6=Symbol.for("react.strict_mode"),I6=Symbol.for("react.profiler"),R6=Symbol.for("react.provider"),F6=Symbol.for("react.context"),z6=Symbol.for("react.forward_ref"),B6=Symbol.for("react.suspense"),U6=Symbol.for("react.memo"),H6=Symbol.for("react.lazy"),pb=Symbol.iterator;function V6(e){return e===null||typeof e!="object"?null:(e=pb&&e[pb]||e["@@iterator"],typeof e=="function"?e:null)}var P2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},A2=Object.assign,T2={};function kl(e,t,r){this.props=e,this.context=t,this.refs=T2,this.updater=r||P2}kl.prototype.isReactComponent={};kl.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")};kl.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function _2(){}_2.prototype=kl.prototype;function Lg(e,t,r){this.props=e,this.context=t,this.refs=T2,this.updater=r||P2}var Ig=Lg.prototype=new _2;Ig.constructor=Lg;A2(Ig,kl.prototype);Ig.isPureReactComponent=!0;var gb=Array.isArray,O2=Object.prototype.hasOwnProperty,Rg={current:null},M2={key:!0,ref:!0,__self:!0,__source:!0};function D2(e,t,r){var s,a={},i=null,l=null;if(t!=null)for(s in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(i=""+t.key),t)O2.call(t,s)&&!M2.hasOwnProperty(s)&&(a[s]=t[s]);var o=arguments.length-2;if(o===1)a.children=r;else if(1>>1,W=O[L];if(0>>1;La(U,H))Ka(F,U)?(O[L]=F,O[K]=H,L=K):(O[L]=U,O[R]=H,L=R);else if(Ka(F,H))O[L]=F,O[K]=H,L=K;else break e}}return $}function a(O,$){var H=O.sortIndex-$.sortIndex;return H!==0?H:O.id-$.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var l=Date,o=l.now();e.unstable_now=function(){return l.now()-o}}var c=[],d=[],u=1,m=null,f=3,h=!1,p=!1,v=!1,y=typeof setTimeout=="function"?setTimeout:null,g=typeof clearTimeout=="function"?clearTimeout:null,b=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function j(O){for(var $=r(d);$!==null;){if($.callback===null)s(d);else if($.startTime<=O)s(d),$.sortIndex=$.expirationTime,t(c,$);else break;$=r(d)}}function w(O){if(v=!1,j(O),!p)if(r(c)!==null)p=!0,k(C);else{var $=r(d);$!==null&&P(w,$.startTime-O)}}function C(O,$){p=!1,v&&(v=!1,g(_),_=-1),h=!0;var H=f;try{for(j($),m=r(c);m!==null&&(!(m.expirationTime>$)||O&&!z());){var L=m.callback;if(typeof L=="function"){m.callback=null,f=m.priorityLevel;var W=L(m.expirationTime<=$);$=e.unstable_now(),typeof W=="function"?m.callback=W:m===r(c)&&s(c),j($)}else s(c);m=r(c)}if(m!==null)var M=!0;else{var R=r(d);R!==null&&P(w,R.startTime-$),M=!1}return M}finally{m=null,f=H,h=!1}}var N=!1,A=null,_=-1,I=5,B=-1;function z(){return!(e.unstable_now()-BO||125L?(O.sortIndex=H,t(d,O),r(c)===null&&O===r(d)&&(v?(g(_),_=-1):v=!0,P(w,H-L))):(O.sortIndex=W,t(c,O),p||h||(p=!0,k(C))),O},e.unstable_shouldYield=z,e.unstable_wrapCallback=function(O){var $=f;return function(){var H=f;f=$;try{return O.apply(this,arguments)}finally{f=H}}}})(z2);F2.exports=z2;var t_=F2.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 r_=x,Yr=t_;function ae(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Nx=Object.prototype.hasOwnProperty,n_=/^[: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]*$/,vb={},bb={};function s_(e){return Nx.call(bb,e)?!0:Nx.call(vb,e)?!1:n_.test(e)?bb[e]=!0:(vb[e]=!0,!1)}function a_(e,t,r,s){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function i_(e,t,r,s){if(t===null||typeof t>"u"||a_(e,t,r,s))return!0;if(s)return!1;if(r!==null)switch(r.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 Nr(e,t,r,s,a,i,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=a,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=l}var er={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){er[e]=new Nr(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];er[t]=new Nr(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){er[e]=new Nr(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){er[e]=new Nr(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){er[e]=new Nr(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){er[e]=new Nr(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){er[e]=new Nr(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){er[e]=new Nr(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){er[e]=new Nr(e,5,!1,e.toLowerCase(),null,!1,!1)});var zg=/[\-:]([a-z])/g;function Bg(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(zg,Bg);er[t]=new Nr(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(zg,Bg);er[t]=new Nr(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(zg,Bg);er[t]=new Nr(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){er[e]=new Nr(e,1,!1,e.toLowerCase(),null,!1,!1)});er.xlinkHref=new Nr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){er[e]=new Nr(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ug(e,t,r,s){var a=er.hasOwnProperty(t)?er[t]:null;(a!==null?a.type!==0:s||!(2o||a[l]!==i[o]){var c=` `+a[l].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=l&&0<=o);break}}}finally{mh=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?po(e):""}function l_(e){switch(e.tag){case 5:return po(e.type);case 16:return po("Lazy");case 13:return po("Suspense");case 19:return po("SuspenseList");case 0:case 2:case 15:return e=fh(e.type,!1),e;case 11:return e=fh(e.type.render,!1),e;case 1:return e=fh(e.type,!0),e;default:return""}}function Ex(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 $i:return"Fragment";case Di:return"Portal";case Sx:return"Profiler";case Hg:return"StrictMode";case kx:return"Suspense";case Cx:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case H2:return(e.displayName||"Context")+".Consumer";case U2:return(e._context.displayName||"Context")+".Provider";case Vg:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Kg:return t=e.displayName||null,t!==null?t:Ex(e.type)||"Memo";case Rs:t=e._payload,e=e._init;try{return Ex(e(t))}catch{}}return null}function o_(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 Ex(t);case 8:return t===Hg?"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 la(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function K2(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function c_(e){var t=K2(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var a=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(l){s=""+l,i.call(this,l)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return s},setValue:function(l){s=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function od(e){e._valueTracker||(e._valueTracker=c_(e))}function W2(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),s="";return e&&(s=K2(e)?e.checked?"true":"false":e.value),e=s,e!==r?(t.setValue(e),!0):!1}function gu(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 Px(e,t){var r=t.checked;return mt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function wb(e,t){var r=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;r=la(t.value!=null?t.value:r),e._wrapperState={initialChecked:s,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function q2(e,t){t=t.checked,t!=null&&Ug(e,"checked",t,!1)}function Ax(e,t){q2(e,t);var r=la(t.value),s=t.type;if(r!=null)s==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Tx(e,t.type,r):t.hasOwnProperty("defaultValue")&&Tx(e,t.type,la(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Nb(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Tx(e,t,r){(t!=="number"||gu(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var go=Array.isArray;function Yi(e,t,r,s){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=cd.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ro(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var ko={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},d_=["Webkit","ms","Moz","O"];Object.keys(ko).forEach(function(e){d_.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ko[t]=ko[e]})});function Z2(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||ko.hasOwnProperty(e)&&ko[e]?(""+t).trim():t+"px"}function J2(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var s=r.indexOf("--")===0,a=Z2(r,t[r],s);r==="float"&&(r="cssFloat"),s?e.setProperty(r,a):e[r]=a}}var u_=mt({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 Mx(e,t){if(t){if(u_[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ae(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ae(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ae(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ae(62))}}function Dx(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 $x=null;function Wg(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Lx=null,Xi=null,Zi=null;function Cb(e){if(e=jc(e)){if(typeof Lx!="function")throw Error(ae(280));var t=e.stateNode;t&&(t=Fm(t),Lx(e.stateNode,e.type,t))}}function Q2(e){Xi?Zi?Zi.push(e):Zi=[e]:Xi=e}function eS(){if(Xi){var e=Xi,t=Zi;if(Zi=Xi=null,Cb(e),t)for(e=0;e>>=0,e===0?32:31-(w_(e)/N_|0)|0}var dd=64,ud=4194304;function yo(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 ju(e,t){var r=e.pendingLanes;if(r===0)return 0;var s=0,a=e.suspendedLanes,i=e.pingedLanes,l=r&268435455;if(l!==0){var o=l&~a;o!==0?s=yo(o):(i&=l,i!==0&&(s=yo(i)))}else l=r&~a,l!==0?s=yo(l):i!==0&&(s=yo(i));if(s===0)return 0;if(t!==0&&t!==s&&!(t&a)&&(a=s&-s,i=t&-t,a>=i||a===16&&(i&4194240)!==0))return t;if(s&4&&(s|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0r;r++)t.push(e);return t}function vc(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Mn(t),e[t]=r}function E_(e,t){var r=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 s=e.eventTimes;for(e=e.expirationTimes;0=Eo),$b=" ",Lb=!1;function bS(e,t){switch(e){case"keyup":return tO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jS(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Li=!1;function nO(e,t){switch(e){case"compositionend":return jS(t);case"keypress":return t.which!==32?null:(Lb=!0,$b);case"textInput":return e=t.data,e===$b&&Lb?null:e;default:return null}}function sO(e,t){if(Li)return e==="compositionend"||!e0&&bS(e,t)?(e=yS(),Qd=Zg=qs=null,Li=!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:r,offset:t-e};e=s}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=zb(r)}}function kS(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?kS(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function CS(){for(var e=window,t=gu();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=gu(e.document)}return t}function t0(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 fO(e){var t=CS(),r=e.focusedElem,s=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&kS(r.ownerDocument.documentElement,r)){if(s!==null&&t0(r)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=r.textContent.length,i=Math.min(s.start,a);s=s.end===void 0?i:Math.min(s.end,a),!e.extend&&i>s&&(a=s,s=i,i=a),a=Bb(r,i);var l=Bb(r,s);a&&l&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),i>s?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Ii=null,Ux=null,Ao=null,Hx=!1;function Ub(e,t,r){var s=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Hx||Ii==null||Ii!==gu(s)||(s=Ii,"selectionStart"in s&&t0(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Ao&&Vo(Ao,s)||(Ao=s,s=Su(Ux,"onSelect"),0zi||(e.current=Yx[zi],Yx[zi]=null,zi--)}function Ze(e,t){zi++,Yx[zi]=e.current,e.current=t}var oa={},mr=ga(oa),Tr=ga(!1),ti=oa;function il(e,t){var r=e.type.contextTypes;if(!r)return oa;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var a={},i;for(i in r)a[i]=t[i];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function _r(e){return e=e.childContextTypes,e!=null}function Cu(){rt(Tr),rt(mr)}function Yb(e,t,r){if(mr.current!==oa)throw Error(ae(168));Ze(mr,t),Ze(Tr,r)}function $S(e,t,r){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return r;s=s.getChildContext();for(var a in s)if(!(a in t))throw Error(ae(108,o_(e)||"Unknown",a));return mt({},r,s)}function Eu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||oa,ti=mr.current,Ze(mr,e),Ze(Tr,Tr.current),!0}function Xb(e,t,r){var s=e.stateNode;if(!s)throw Error(ae(169));r?(e=$S(e,t,ti),s.__reactInternalMemoizedMergedChildContext=e,rt(Tr),rt(mr),Ze(mr,e)):rt(Tr),Ze(Tr,r)}var ss=null,zm=!1,Eh=!1;function LS(e){ss===null?ss=[e]:ss.push(e)}function kO(e){zm=!0,LS(e)}function ya(){if(!Eh&&ss!==null){Eh=!0;var e=0,t=Be;try{var r=ss;for(Be=1;e>=l,a-=l,ls=1<<32-Mn(t)+a|r<_?(I=A,A=null):I=A.sibling;var B=f(g,A,j[_],w);if(B===null){A===null&&(A=I);break}e&&A&&B.alternate===null&&t(g,A),b=i(B,b,_),N===null?C=B:N.sibling=B,N=B,A=I}if(_===j.length)return r(g,A),at&&Aa(g,_),C;if(A===null){for(;__?(I=A,A=null):I=A.sibling;var z=f(g,A,B.value,w);if(z===null){A===null&&(A=I);break}e&&A&&z.alternate===null&&t(g,A),b=i(z,b,_),N===null?C=z:N.sibling=z,N=z,A=I}if(B.done)return r(g,A),at&&Aa(g,_),C;if(A===null){for(;!B.done;_++,B=j.next())B=m(g,B.value,w),B!==null&&(b=i(B,b,_),N===null?C=B:N.sibling=B,N=B);return at&&Aa(g,_),C}for(A=s(g,A);!B.done;_++,B=j.next())B=h(A,g,_,B.value,w),B!==null&&(e&&B.alternate!==null&&A.delete(B.key===null?_:B.key),b=i(B,b,_),N===null?C=B:N.sibling=B,N=B);return e&&A.forEach(function(T){return t(g,T)}),at&&Aa(g,_),C}function y(g,b,j,w){if(typeof j=="object"&&j!==null&&j.type===$i&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case ld:e:{for(var C=j.key,N=b;N!==null;){if(N.key===C){if(C=j.type,C===$i){if(N.tag===7){r(g,N.sibling),b=a(N,j.props.children),b.return=g,g=b;break e}}else if(N.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Rs&&Qb(C)===N.type){r(g,N.sibling),b=a(N,j.props),b.ref=Xl(g,N,j),b.return=g,g=b;break e}r(g,N);break}else t(g,N);N=N.sibling}j.type===$i?(b=qa(j.props.children,g.mode,w,j.key),b.return=g,g=b):(w=lu(j.type,j.key,j.props,null,g.mode,w),w.ref=Xl(g,b,j),w.return=g,g=w)}return l(g);case Di:e:{for(N=j.key;b!==null;){if(b.key===N)if(b.tag===4&&b.stateNode.containerInfo===j.containerInfo&&b.stateNode.implementation===j.implementation){r(g,b.sibling),b=a(b,j.children||[]),b.return=g,g=b;break e}else{r(g,b);break}else t(g,b);b=b.sibling}b=$h(j,g.mode,w),b.return=g,g=b}return l(g);case Rs:return N=j._init,y(g,b,N(j._payload),w)}if(go(j))return p(g,b,j,w);if(Kl(j))return v(g,b,j,w);yd(g,j)}return typeof j=="string"&&j!==""||typeof j=="number"?(j=""+j,b!==null&&b.tag===6?(r(g,b.sibling),b=a(b,j),b.return=g,g=b):(r(g,b),b=Dh(j,g.mode,w),b.return=g,g=b),l(g)):r(g,b)}return y}var ol=zS(!0),BS=zS(!1),Tu=ga(null),_u=null,Hi=null,a0=null;function i0(){a0=Hi=_u=null}function l0(e){var t=Tu.current;rt(Tu),e._currentValue=t}function Jx(e,t,r){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===r)break;e=e.return}}function Qi(e,t){_u=e,a0=Hi=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Pr=!0),e.firstContext=null)}function pn(e){var t=e._currentValue;if(a0!==e)if(e={context:e,memoizedValue:t,next:null},Hi===null){if(_u===null)throw Error(ae(308));Hi=e,_u.dependencies={lanes:0,firstContext:e}}else Hi=Hi.next=e;return t}var Ra=null;function o0(e){Ra===null?Ra=[e]:Ra.push(e)}function US(e,t,r,s){var a=t.interleaved;return a===null?(r.next=r,o0(t)):(r.next=a.next,a.next=r),t.interleaved=r,ys(e,s)}function ys(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Fs=!1;function c0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function HS(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ms(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ea(e,t,r){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,De&2){var a=s.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),s.pending=t,ys(e,r)}return a=s.interleaved,a===null?(t.next=t,o0(s)):(t.next=a.next,a.next=t),s.interleaved=t,ys(e,r)}function tu(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,r|=s,t.lanes=r,Gg(e,r)}}function ej(e,t){var r=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,r===s)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var l={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?a=i=l:i=i.next=l,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:s.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:s.shared,effects:s.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function Ou(e,t,r,s){var a=e.updateQueue;Fs=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,o=a.shared.pending;if(o!==null){a.shared.pending=null;var c=o,d=c.next;c.next=null,l===null?i=d:l.next=d,l=c;var u=e.alternate;u!==null&&(u=u.updateQueue,o=u.lastBaseUpdate,o!==l&&(o===null?u.firstBaseUpdate=d:o.next=d,u.lastBaseUpdate=c))}if(i!==null){var m=a.baseState;l=0,u=d=c=null,o=i;do{var f=o.lane,h=o.eventTime;if((s&f)===f){u!==null&&(u=u.next={eventTime:h,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var p=e,v=o;switch(f=t,h=r,v.tag){case 1:if(p=v.payload,typeof p=="function"){m=p.call(h,m,f);break e}m=p;break e;case 3:p.flags=p.flags&-65537|128;case 0:if(p=v.payload,f=typeof p=="function"?p.call(h,m,f):p,f==null)break e;m=mt({},m,f);break e;case 2:Fs=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,f=a.effects,f===null?a.effects=[o]:f.push(o))}else h={eventTime:h,lane:f,tag:o.tag,payload:o.payload,callback:o.callback,next:null},u===null?(d=u=h,c=m):u=u.next=h,l|=f;if(o=o.next,o===null){if(o=a.shared.pending,o===null)break;f=o,o=f.next,f.next=null,a.lastBaseUpdate=f,a.shared.pending=null}}while(!0);if(u===null&&(c=m),a.baseState=c,a.firstBaseUpdate=d,a.lastBaseUpdate=u,t=a.shared.interleaved,t!==null){a=t;do l|=a.lane,a=a.next;while(a!==t)}else i===null&&(a.shared.lanes=0);si|=l,e.lanes=l,e.memoizedState=m}}function tj(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var s=Ah.transition;Ah.transition={};try{e(!1),t()}finally{Be=r,Ah.transition=s}}function ik(){return gn().memoizedState}function AO(e,t,r){var s=ra(e);if(r={lane:s,action:r,hasEagerState:!1,eagerState:null,next:null},lk(e))ok(t,r);else if(r=US(e,t,r,s),r!==null){var a=vr();Dn(r,e,s,a),ck(r,t,s)}}function TO(e,t,r){var s=ra(e),a={lane:s,action:r,hasEagerState:!1,eagerState:null,next:null};if(lk(e))ok(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var l=t.lastRenderedState,o=i(l,r);if(a.hasEagerState=!0,a.eagerState=o,In(o,l)){var c=t.interleaved;c===null?(a.next=a,o0(t)):(a.next=c.next,c.next=a),t.interleaved=a;return}}catch{}finally{}r=US(e,t,a,s),r!==null&&(a=vr(),Dn(r,e,s,a),ck(r,t,s))}}function lk(e){var t=e.alternate;return e===ut||t!==null&&t===ut}function ok(e,t){To=Du=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function ck(e,t,r){if(r&4194240){var s=t.lanes;s&=e.pendingLanes,r|=s,t.lanes=r,Gg(e,r)}}var $u={readContext:pn,useCallback:sr,useContext:sr,useEffect:sr,useImperativeHandle:sr,useInsertionEffect:sr,useLayoutEffect:sr,useMemo:sr,useReducer:sr,useRef:sr,useState:sr,useDebugValue:sr,useDeferredValue:sr,useTransition:sr,useMutableSource:sr,useSyncExternalStore:sr,useId:sr,unstable_isNewReconciler:!1},_O={readContext:pn,useCallback:function(e,t){return Hn().memoizedState=[e,t===void 0?null:t],e},useContext:pn,useEffect:nj,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,nu(4194308,4,tk.bind(null,t,e),r)},useLayoutEffect:function(e,t){return nu(4194308,4,e,t)},useInsertionEffect:function(e,t){return nu(4,2,e,t)},useMemo:function(e,t){var r=Hn();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var s=Hn();return t=r!==void 0?r(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=AO.bind(null,ut,e),[s.memoizedState,e]},useRef:function(e){var t=Hn();return e={current:e},t.memoizedState=e},useState:rj,useDebugValue:g0,useDeferredValue:function(e){return Hn().memoizedState=e},useTransition:function(){var e=rj(!1),t=e[0];return e=PO.bind(null,e[1]),Hn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var s=ut,a=Hn();if(at){if(r===void 0)throw Error(ae(407));r=r()}else{if(r=t(),Bt===null)throw Error(ae(349));ni&30||qS(s,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,nj(YS.bind(null,s,i,e),[e]),s.flags|=2048,Jo(9,GS.bind(null,s,i,r,t),void 0,null),r},useId:function(){var e=Hn(),t=Bt.identifierPrefix;if(at){var r=os,s=ls;r=(s&~(1<<32-Mn(s)-1)).toString(32)+r,t=":"+t+"R"+r,r=Xo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=l.createElement(r,{is:s.is}):(e=l.createElement(r),r==="select"&&(l=e,s.multiple?l.multiple=!0:s.size&&(l.size=s.size))):e=l.createElementNS(e,r),e[Kn]=t,e[qo]=s,vk(e,t,!1,!1),t.stateNode=e;e:{switch(l=Dx(r,s),r){case"dialog":et("cancel",e),et("close",e),a=s;break;case"iframe":case"object":case"embed":et("load",e),a=s;break;case"video":case"audio":for(a=0;aul&&(t.flags|=128,s=!0,Zl(i,!1),t.lanes=4194304)}else{if(!s)if(e=Mu(l),e!==null){if(t.flags|=128,s=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Zl(i,!0),i.tail===null&&i.tailMode==="hidden"&&!l.alternate&&!at)return ar(t),null}else 2*gt()-i.renderingStartTime>ul&&r!==1073741824&&(t.flags|=128,s=!0,Zl(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(r=i.last,r!==null?r.sibling=l:t.child=l,i.last=l)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=gt(),t.sibling=null,r=dt.current,Ze(dt,s?r&1|2:r&1),t):(ar(t),null);case 22:case 23:return N0(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&t.mode&1?Br&1073741824&&(ar(t),t.subtreeFlags&6&&(t.flags|=8192)):ar(t),null;case 24:return null;case 25:return null}throw Error(ae(156,t.tag))}function FO(e,t){switch(n0(t),t.tag){case 1:return _r(t.type)&&Cu(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return cl(),rt(Tr),rt(mr),m0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return u0(t),null;case 13:if(rt(dt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ae(340));ll()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return rt(dt),null;case 4:return cl(),null;case 10:return l0(t.type._context),null;case 22:case 23:return N0(),null;case 24:return null;default:return null}}var bd=!1,lr=!1,zO=typeof WeakSet=="function"?WeakSet:Set,me=null;function Vi(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(s){ft(e,t,s)}else r.current=null}function lp(e,t,r){try{r()}catch(s){ft(e,t,s)}}var hj=!1;function BO(e,t){if(Vx=wu,e=CS(),t0(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var s=r.getSelection&&r.getSelection();if(s&&s.rangeCount!==0){r=s.anchorNode;var a=s.anchorOffset,i=s.focusNode;s=s.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var l=0,o=-1,c=-1,d=0,u=0,m=e,f=null;t:for(;;){for(var h;m!==r||a!==0&&m.nodeType!==3||(o=l+a),m!==i||s!==0&&m.nodeType!==3||(c=l+s),m.nodeType===3&&(l+=m.nodeValue.length),(h=m.firstChild)!==null;)f=m,m=h;for(;;){if(m===e)break t;if(f===r&&++d===a&&(o=l),f===i&&++u===s&&(c=l),(h=m.nextSibling)!==null)break;m=f,f=m.parentNode}m=h}r=o===-1||c===-1?null:{start:o,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(Kx={focusedElem:e,selectionRange:r},wu=!1,me=t;me!==null;)if(t=me,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,me=e;else for(;me!==null;){t=me;try{var p=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var v=p.memoizedProps,y=p.memoizedState,g=t.stateNode,b=g.getSnapshotBeforeUpdate(t.elementType===t.type?v:Sn(t.type,v),y);g.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var j=t.stateNode.containerInfo;j.nodeType===1?j.textContent="":j.nodeType===9&&j.documentElement&&j.removeChild(j.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ae(163))}}catch(w){ft(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,me=e;break}me=t.return}return p=hj,hj=!1,p}function _o(e,t,r){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var a=s=s.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,i!==void 0&&lp(t,r,i)}a=a.next}while(a!==s)}}function Hm(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var s=r.create;r.destroy=s()}r=r.next}while(r!==t)}}function op(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function wk(e){var t=e.alternate;t!==null&&(e.alternate=null,wk(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Kn],delete t[qo],delete t[Gx],delete t[NO],delete t[SO])),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 Nk(e){return e.tag===5||e.tag===3||e.tag===4}function xj(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Nk(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 cp(e,t,r){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=ku));else if(s!==4&&(e=e.child,e!==null))for(cp(e,t,r),e=e.sibling;e!==null;)cp(e,t,r),e=e.sibling}function dp(e,t,r){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(dp(e,t,r),e=e.sibling;e!==null;)dp(e,t,r),e=e.sibling}var Zt=null,En=!1;function Ls(e,t,r){for(r=r.child;r!==null;)Sk(e,t,r),r=r.sibling}function Sk(e,t,r){if(qn&&typeof qn.onCommitFiberUnmount=="function")try{qn.onCommitFiberUnmount($m,r)}catch{}switch(r.tag){case 5:lr||Vi(r,t);case 6:var s=Zt,a=En;Zt=null,Ls(e,t,r),Zt=s,En=a,Zt!==null&&(En?(e=Zt,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Zt.removeChild(r.stateNode));break;case 18:Zt!==null&&(En?(e=Zt,r=r.stateNode,e.nodeType===8?Ch(e.parentNode,r):e.nodeType===1&&Ch(e,r),Uo(e)):Ch(Zt,r.stateNode));break;case 4:s=Zt,a=En,Zt=r.stateNode.containerInfo,En=!0,Ls(e,t,r),Zt=s,En=a;break;case 0:case 11:case 14:case 15:if(!lr&&(s=r.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){a=s=s.next;do{var i=a,l=i.destroy;i=i.tag,l!==void 0&&(i&2||i&4)&&lp(r,t,l),a=a.next}while(a!==s)}Ls(e,t,r);break;case 1:if(!lr&&(Vi(r,t),s=r.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=r.memoizedProps,s.state=r.memoizedState,s.componentWillUnmount()}catch(o){ft(r,t,o)}Ls(e,t,r);break;case 21:Ls(e,t,r);break;case 22:r.mode&1?(lr=(s=lr)||r.memoizedState!==null,Ls(e,t,r),lr=s):Ls(e,t,r);break;default:Ls(e,t,r)}}function pj(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new zO),t.forEach(function(s){var a=XO.bind(null,e,s);r.has(s)||(r.add(s),s.then(a,a))})}}function Nn(e,t){var r=t.deletions;if(r!==null)for(var s=0;sa&&(a=l),s&=~i}if(s=a,s=gt()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*HO(s/1960))-s,10e?16:e,Gs===null)var s=!1;else{if(e=Gs,Gs=null,Ru=0,De&6)throw Error(ae(331));var a=De;for(De|=4,me=e.current;me!==null;){var i=me,l=i.child;if(me.flags&16){var o=i.deletions;if(o!==null){for(var c=0;cgt()-j0?Wa(e,0):b0|=r),Or(e,t)}function Ok(e,t){t===0&&(e.mode&1?(t=ud,ud<<=1,!(ud&130023424)&&(ud=4194304)):t=1);var r=vr();e=ys(e,t),e!==null&&(vc(e,t,r),Or(e,r))}function YO(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Ok(e,r)}function XO(e,t){var r=0;switch(e.tag){case 13:var s=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(ae(314))}s!==null&&s.delete(t),Ok(e,r)}var Mk;Mk=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Tr.current)Pr=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Pr=!1,IO(e,t,r);Pr=!!(e.flags&131072)}else Pr=!1,at&&t.flags&1048576&&IS(t,Au,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;su(e,t),e=t.pendingProps;var a=il(t,mr.current);Qi(t,r),a=h0(null,t,s,e,a,r);var i=x0();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,_r(s)?(i=!0,Eu(t)):i=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,c0(t),a.updater=Um,t.stateNode=a,a._reactInternals=t,ep(t,s,e,r),t=np(null,t,s,!0,i,r)):(t.tag=0,at&&i&&r0(t),pr(null,t,a,r),t=t.child),t;case 16:s=t.elementType;e:{switch(su(e,t),e=t.pendingProps,a=s._init,s=a(s._payload),t.type=s,a=t.tag=JO(s),e=Sn(s,e),a){case 0:t=rp(null,t,s,e,r);break e;case 1:t=uj(null,t,s,e,r);break e;case 11:t=cj(null,t,s,e,r);break e;case 14:t=dj(null,t,s,Sn(s.type,e),r);break e}throw Error(ae(306,s,""))}return t;case 0:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Sn(s,a),rp(e,t,s,a,r);case 1:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Sn(s,a),uj(e,t,s,a,r);case 3:e:{if(pk(t),e===null)throw Error(ae(387));s=t.pendingProps,i=t.memoizedState,a=i.element,HS(e,t),Ou(t,s,null,r);var l=t.memoizedState;if(s=l.element,i.isDehydrated)if(i={element:s,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){a=dl(Error(ae(423)),t),t=mj(e,t,s,r,a);break e}else if(s!==a){a=dl(Error(ae(424)),t),t=mj(e,t,s,r,a);break e}else for(Kr=Qs(t.stateNode.containerInfo.firstChild),Wr=t,at=!0,An=null,r=BS(t,null,s,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(ll(),s===a){t=vs(e,t,r);break e}pr(e,t,s,r)}t=t.child}return t;case 5:return VS(t),e===null&&Zx(t),s=t.type,a=t.pendingProps,i=e!==null?e.memoizedProps:null,l=a.children,Wx(s,a)?l=null:i!==null&&Wx(s,i)&&(t.flags|=32),xk(e,t),pr(e,t,l,r),t.child;case 6:return e===null&&Zx(t),null;case 13:return gk(e,t,r);case 4:return d0(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=ol(t,null,s,r):pr(e,t,s,r),t.child;case 11:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Sn(s,a),cj(e,t,s,a,r);case 7:return pr(e,t,t.pendingProps,r),t.child;case 8:return pr(e,t,t.pendingProps.children,r),t.child;case 12:return pr(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(s=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,Ze(Tu,s._currentValue),s._currentValue=l,i!==null)if(In(i.value,l)){if(i.children===a.children&&!Tr.current){t=vs(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var o=i.dependencies;if(o!==null){l=i.child;for(var c=o.firstContext;c!==null;){if(c.context===s){if(i.tag===1){c=ms(-1,r&-r),c.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var u=d.pending;u===null?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}i.lanes|=r,c=i.alternate,c!==null&&(c.lanes|=r),Jx(i.return,r,t),o.lanes|=r;break}c=c.next}}else if(i.tag===10)l=i.type===t.type?null:i.child;else if(i.tag===18){if(l=i.return,l===null)throw Error(ae(341));l.lanes|=r,o=l.alternate,o!==null&&(o.lanes|=r),Jx(l,r,t),l=i.sibling}else l=i.child;if(l!==null)l.return=i;else for(l=i;l!==null;){if(l===t){l=null;break}if(i=l.sibling,i!==null){i.return=l.return,l=i;break}l=l.return}i=l}pr(e,t,a.children,r),t=t.child}return t;case 9:return a=t.type,s=t.pendingProps.children,Qi(t,r),a=pn(a),s=s(a),t.flags|=1,pr(e,t,s,r),t.child;case 14:return s=t.type,a=Sn(s,t.pendingProps),a=Sn(s.type,a),dj(e,t,s,a,r);case 15:return fk(e,t,t.type,t.pendingProps,r);case 17:return s=t.type,a=t.pendingProps,a=t.elementType===s?a:Sn(s,a),su(e,t),t.tag=1,_r(s)?(e=!0,Eu(t)):e=!1,Qi(t,r),dk(t,s,a),ep(t,s,a,r),np(null,t,s,!0,e,r);case 19:return yk(e,t,r);case 22:return hk(e,t,r)}throw Error(ae(156,t.tag))};function Dk(e,t){return lS(e,t)}function ZO(e,t,r,s){this.tag=e,this.key=r,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=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mn(e,t,r,s){return new ZO(e,t,r,s)}function k0(e){return e=e.prototype,!(!e||!e.isReactComponent)}function JO(e){if(typeof e=="function")return k0(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Vg)return 11;if(e===Kg)return 14}return 2}function na(e,t){var r=e.alternate;return r===null?(r=mn(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function lu(e,t,r,s,a,i){var l=2;if(s=e,typeof e=="function")k0(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case $i:return qa(r.children,a,i,t);case Hg:l=8,a|=8;break;case Sx:return e=mn(12,r,t,a|2),e.elementType=Sx,e.lanes=i,e;case kx:return e=mn(13,r,t,a),e.elementType=kx,e.lanes=i,e;case Cx:return e=mn(19,r,t,a),e.elementType=Cx,e.lanes=i,e;case V2:return Km(r,a,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case U2:l=10;break e;case H2:l=9;break e;case Vg:l=11;break e;case Kg:l=14;break e;case Rs:l=16,s=null;break e}throw Error(ae(130,e==null?e:typeof e,""))}return t=mn(l,r,t,a),t.elementType=e,t.type=s,t.lanes=i,t}function qa(e,t,r,s){return e=mn(7,e,s,t),e.lanes=r,e}function Km(e,t,r,s){return e=mn(22,e,s,t),e.elementType=V2,e.lanes=r,e.stateNode={isHidden:!1},e}function Dh(e,t,r){return e=mn(6,e,null,t),e.lanes=r,e}function $h(e,t,r){return t=mn(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function QO(e,t,r,s,a){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=xh(0),this.expirationTimes=xh(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=xh(0),this.identifierPrefix=s,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function C0(e,t,r,s,a,i,l,o,c){return e=new QO(e,t,r,o,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=mn(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:s,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},c0(i),e}function e5(e,t,r){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Rk)}catch(e){console.error(e)}}Rk(),R2.exports=en;var Fk=R2.exports,Sj=Fk;wx.createRoot=Sj.createRoot,wx.hydrateRoot=Sj.hydrateRoot;/** * @remix-run/router v1.23.0 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function ec(){return ec=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function zk(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function i5(){return Math.random().toString(36).substr(2,8)}function Cj(e,t){return{usr:e.state,key:e.key,idx:t}}function xp(e,t,r,s){return r===void 0&&(r=null),ec({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Pl(t):t,{state:r,key:t&&t.key||s||i5()})}function Bu(e){let{pathname:t="/",search:r="",hash:s=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),s&&s!=="#"&&(t+=s.charAt(0)==="#"?s:"#"+s),t}function Pl(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let s=e.indexOf("?");s>=0&&(t.search=e.substr(s),e=e.substr(0,s)),e&&(t.pathname=e)}return t}function l5(e,t,r,s){s===void 0&&(s={});let{window:a=document.defaultView,v5Compat:i=!1}=s,l=a.history,o=Ys.Pop,c=null,d=u();d==null&&(d=0,l.replaceState(ec({},l.state,{idx:d}),""));function u(){return(l.state||{idx:null}).idx}function m(){o=Ys.Pop;let y=u(),g=y==null?null:y-d;d=y,c&&c({action:o,location:v.location,delta:g})}function f(y,g){o=Ys.Push;let b=xp(v.location,y,g);d=u()+1;let j=Cj(b,d),w=v.createHref(b);try{l.pushState(j,"",w)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;a.location.assign(w)}i&&c&&c({action:o,location:v.location,delta:1})}function h(y,g){o=Ys.Replace;let b=xp(v.location,y,g);d=u();let j=Cj(b,d),w=v.createHref(b);l.replaceState(j,"",w),i&&c&&c({action:o,location:v.location,delta:0})}function p(y){let g=a.location.origin!=="null"?a.location.origin:a.location.href,b=typeof y=="string"?y:Bu(y);return b=b.replace(/ $/,"%20"),yt(g,"No window.location.(origin|href) available to create URL for href: "+b),new URL(b,g)}let v={get action(){return o},get location(){return e(a,l)},listen(y){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(kj,m),c=y,()=>{a.removeEventListener(kj,m),c=null}},createHref(y){return t(a,y)},createURL:p,encodeLocation(y){let g=p(y);return{pathname:g.pathname,search:g.search,hash:g.hash}},push:f,replace:h,go(y){return l.go(y)}};return v}var Ej;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Ej||(Ej={}));function o5(e,t,r){return r===void 0&&(r="/"),c5(e,t,r)}function c5(e,t,r,s){let a=typeof t=="string"?Pl(t):t,i=T0(a.pathname||"/",r);if(i==null)return null;let l=Bk(e);d5(l);let o=null;for(let c=0;o==null&&c{let c={relativePath:o===void 0?i.path||"":o,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};c.relativePath.startsWith("/")&&(yt(c.relativePath.startsWith(s),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+s+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(s.length));let d=sa([s,c.relativePath]),u=r.concat(c);i.children&&i.children.length>0&&(yt(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),Bk(i.children,t,u,d)),!(i.path==null&&!i.index)&&t.push({path:d,score:g5(d,i.index),routesMeta:u})};return e.forEach((i,l)=>{var o;if(i.path===""||!((o=i.path)!=null&&o.includes("?")))a(i,l);else for(let c of Uk(i.path))a(i,l,c)}),t}function Uk(e){let t=e.split("/");if(t.length===0)return[];let[r,...s]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(s.length===0)return a?[i,""]:[i];let l=Uk(s.join("/")),o=[];return o.push(...l.map(c=>c===""?i:[i,c].join("/"))),a&&o.push(...l),o.map(c=>e.startsWith("/")&&c===""?"/":c)}function d5(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:y5(t.routesMeta.map(s=>s.childrenIndex),r.routesMeta.map(s=>s.childrenIndex)))}const u5=/^:[\w-]+$/,m5=3,f5=2,h5=1,x5=10,p5=-2,Pj=e=>e==="*";function g5(e,t){let r=e.split("/"),s=r.length;return r.some(Pj)&&(s+=p5),t&&(s+=f5),r.filter(a=>!Pj(a)).reduce((a,i)=>a+(u5.test(i)?m5:i===""?h5:x5),s)}function y5(e,t){return e.length===t.length&&e.slice(0,-1).every((s,a)=>s===t[a])?e[e.length-1]-t[t.length-1]:0}function v5(e,t,r){let{routesMeta:s}=e,a={},i="/",l=[];for(let o=0;o{let{paramName:f,isOptional:h}=u;if(f==="*"){let v=o[m]||"";l=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const p=o[m];return h&&!p?d[f]=void 0:d[f]=(p||"").replace(/%2F/g,"/"),d},{}),pathname:i,pathnameBase:l,pattern:e}}function j5(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),zk(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let s=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,o,c)=>(s.push({paramName:o,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(s.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),s]}function w5(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return zk(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function T0(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,s=e.charAt(r);return s&&s!=="/"?null:e.slice(r)||"/"}function N5(e,t){t===void 0&&(t="/");let{pathname:r,search:s="",hash:a=""}=typeof e=="string"?Pl(e):e;return{pathname:r?r.startsWith("/")?r:S5(r,t):t,search:E5(s),hash:P5(a)}}function S5(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Lh(e,t,r,s){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(s)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function k5(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function _0(e,t){let r=k5(e);return t?r.map((s,a)=>a===r.length-1?s.pathname:s.pathnameBase):r.map(s=>s.pathnameBase)}function O0(e,t,r,s){s===void 0&&(s=!1);let a;typeof e=="string"?a=Pl(e):(a=ec({},e),yt(!a.pathname||!a.pathname.includes("?"),Lh("?","pathname","search",a)),yt(!a.pathname||!a.pathname.includes("#"),Lh("#","pathname","hash",a)),yt(!a.search||!a.search.includes("#"),Lh("#","search","hash",a)));let i=e===""||a.pathname==="",l=i?"/":a.pathname,o;if(l==null)o=r;else{let m=t.length-1;if(!s&&l.startsWith("..")){let f=l.split("/");for(;f[0]==="..";)f.shift(),m-=1;a.pathname=f.join("/")}o=m>=0?t[m]:"/"}let c=N5(a,o),d=l&&l!=="/"&&l.endsWith("/"),u=(i||l===".")&&r.endsWith("/");return!c.pathname.endsWith("/")&&(d||u)&&(c.pathname+="/"),c}const sa=e=>e.join("/").replace(/\/\/+/g,"/"),C5=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),E5=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,P5=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function A5(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Hk=["post","put","patch","delete"];new Set(Hk);const T5=["get",...Hk];new Set(T5);/** * React Router v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function tc(){return tc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{o.current=!0}),x.useCallback(function(d,u){if(u===void 0&&(u={}),!o.current)return;if(typeof d=="number"){s.go(d);return}let m=O0(d,JSON.parse(l),i,u.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:sa([t,m.pathname])),(u.replace?s.replace:s.push)(m,u.state,u)},[t,s,l,i,e])}function Tl(){let{matches:e}=x.useContext(Ps),t=e[e.length-1];return t?t.params:{}}function Wk(e,t){let{relative:r}=t===void 0?{}:t,{future:s}=x.useContext(va),{matches:a}=x.useContext(Ps),{pathname:i}=vi(),l=JSON.stringify(_0(a,s.v7_relativeSplatPath));return x.useMemo(()=>O0(e,JSON.parse(l),i,r==="path"),[e,l,i,r])}function D5(e,t){return $5(e,t)}function $5(e,t,r,s){Al()||yt(!1);let{navigator:a}=x.useContext(va),{matches:i}=x.useContext(Ps),l=i[i.length-1],o=l?l.params:{};l&&l.pathname;let c=l?l.pathnameBase:"/";l&&l.route;let d=vi(),u;if(t){var m;let y=typeof t=="string"?Pl(t):t;c==="/"||(m=y.pathname)!=null&&m.startsWith(c)||yt(!1),u=y}else u=d;let f=u.pathname||"/",h=f;if(c!=="/"){let y=c.replace(/^\//,"").split("/");h="/"+f.replace(/^\//,"").split("/").slice(y.length).join("/")}let p=o5(e,{pathname:h}),v=z5(p&&p.map(y=>Object.assign({},y,{params:Object.assign({},o,y.params),pathname:sa([c,a.encodeLocation?a.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?c:sa([c,a.encodeLocation?a.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),i,r,s);return t&&v?x.createElement(Xm.Provider,{value:{location:tc({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Ys.Pop}},v):v}function L5(){let e=V5(),t=A5(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return x.createElement(x.Fragment,null,x.createElement("h2",null,"Unexpected Application Error!"),x.createElement("h3",{style:{fontStyle:"italic"}},t),r?x.createElement("pre",{style:a},r):null,null)}const I5=x.createElement(L5,null);class R5 extends x.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?x.createElement(Ps.Provider,{value:this.props.routeContext},x.createElement(Vk.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function F5(e){let{routeContext:t,match:r,children:s}=e,a=x.useContext(M0);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),x.createElement(Ps.Provider,{value:t},s)}function z5(e,t,r,s){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),s===void 0&&(s=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=s)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let l=e,o=(a=r)==null?void 0:a.errors;if(o!=null){let u=l.findIndex(m=>m.route.id&&(o==null?void 0:o[m.route.id])!==void 0);u>=0||yt(!1),l=l.slice(0,Math.min(l.length,u+1))}let c=!1,d=-1;if(r&&s&&s.v7_partialHydration)for(let u=0;u=0?l=l.slice(0,d+1):l=[l[0]];break}}}return l.reduceRight((u,m,f)=>{let h,p=!1,v=null,y=null;r&&(h=o&&m.route.id?o[m.route.id]:void 0,v=m.route.errorElement||I5,c&&(d<0&&f===0?(W5("route-fallback"),p=!0,y=null):d===f&&(p=!0,y=m.route.hydrateFallbackElement||null)));let g=t.concat(l.slice(0,f+1)),b=()=>{let j;return h?j=v:p?j=y:m.route.Component?j=x.createElement(m.route.Component,null):m.route.element?j=m.route.element:j=u,x.createElement(F5,{match:m,routeContext:{outlet:u,matches:g,isDataRoute:r!=null},children:j})};return r&&(m.route.ErrorBoundary||m.route.errorElement||f===0)?x.createElement(R5,{location:r.location,revalidation:r.revalidation,component:v,error:h,children:b(),routeContext:{outlet:null,matches:g,isDataRoute:!0}}):b()},null)}var qk=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(qk||{}),Gk=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Gk||{});function B5(e){let t=x.useContext(M0);return t||yt(!1),t}function U5(e){let t=x.useContext(_5);return t||yt(!1),t}function H5(e){let t=x.useContext(Ps);return t||yt(!1),t}function Yk(e){let t=H5(),r=t.matches[t.matches.length-1];return r.route.id||yt(!1),r.route.id}function V5(){var e;let t=x.useContext(Vk),r=U5(),s=Yk();return t!==void 0?t:(e=r.errors)==null?void 0:e[s]}function K5(){let{router:e}=B5(qk.UseNavigateStable),t=Yk(Gk.UseNavigateStable),r=x.useRef(!1);return Kk(()=>{r.current=!0}),x.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,tc({fromRouteId:t},i)))},[e,t])}const Aj={};function W5(e,t,r){Aj[e]||(Aj[e]=!0)}function q5(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function G5(e){let{to:t,replace:r,state:s,relative:a}=e;Al()||yt(!1);let{future:i,static:l}=x.useContext(va),{matches:o}=x.useContext(Ps),{pathname:c}=vi(),d=Sr(),u=O0(t,_0(o,i.v7_relativeSplatPath),c,a==="path"),m=JSON.stringify(u);return x.useEffect(()=>d(JSON.parse(m),{replace:r,state:s,relative:a}),[d,m,a,r,s]),null}function Ne(e){yt(!1)}function Y5(e){let{basename:t="/",children:r=null,location:s,navigationType:a=Ys.Pop,navigator:i,static:l=!1,future:o}=e;Al()&&yt(!1);let c=t.replace(/^\/*/,"/"),d=x.useMemo(()=>({basename:c,navigator:i,static:l,future:tc({v7_relativeSplatPath:!1},o)}),[c,o,i,l]);typeof s=="string"&&(s=Pl(s));let{pathname:u="/",search:m="",hash:f="",state:h=null,key:p="default"}=s,v=x.useMemo(()=>{let y=T0(u,c);return y==null?null:{location:{pathname:y,search:m,hash:f,state:h,key:p},navigationType:a}},[c,u,m,f,h,p,a]);return v==null?null:x.createElement(va.Provider,{value:d},x.createElement(Xm.Provider,{children:r,value:v}))}function X5(e){let{children:t,location:r}=e;return D5(pp(t),r)}new Promise(()=>{});function pp(e,t){t===void 0&&(t=[]);let r=[];return x.Children.forEach(e,(s,a)=>{if(!x.isValidElement(s))return;let i=[...t,a];if(s.type===x.Fragment){r.push.apply(r,pp(s.props.children,i));return}s.type!==Ne&&yt(!1),!s.props.index||!s.props.children||yt(!1);let l={id:s.props.id||i.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,loader:s.props.loader,action:s.props.action,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(l.children=pp(s.props.children,i)),r.push(l)}),r}/** * React Router DOM v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function gp(){return gp=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[a]=e[a]);return r}function J5(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Q5(e,t){return e.button===0&&(!t||t==="_self")&&!J5(e)}function yp(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let s=e[r];return t.concat(Array.isArray(s)?s.map(a=>[r,a]):[[r,s]])},[]))}function eM(e,t){let r=yp(e);return t&&t.forEach((s,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const tM=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],rM="6";try{window.__reactRouterVersion=rM}catch{}const nM="startTransition",Tj=L2[nM];function sM(e){let{basename:t,children:r,future:s,window:a}=e,i=x.useRef();i.current==null&&(i.current=a5({window:a,v5Compat:!0}));let l=i.current,[o,c]=x.useState({action:l.action,location:l.location}),{v7_startTransition:d}=s||{},u=x.useCallback(m=>{d&&Tj?Tj(()=>c(m)):c(m)},[c,d]);return x.useLayoutEffect(()=>l.listen(u),[l,u]),x.useEffect(()=>q5(s),[s]),x.createElement(Y5,{basename:t,children:r,location:o.location,navigationType:o.action,navigator:l,future:s})}const aM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",iM=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,vp=x.forwardRef(function(t,r){let{onClick:s,relative:a,reloadDocument:i,replace:l,state:o,target:c,to:d,preventScrollReset:u,viewTransition:m}=t,f=Z5(t,tM),{basename:h}=x.useContext(va),p,v=!1;if(typeof d=="string"&&iM.test(d)&&(p=d,aM))try{let j=new URL(window.location.href),w=d.startsWith("//")?new URL(j.protocol+d):new URL(d),C=T0(w.pathname,h);w.origin===j.origin&&C!=null?d=C+w.search+w.hash:v=!0}catch{}let y=O5(d,{relative:a}),g=lM(d,{replace:l,state:o,target:c,preventScrollReset:u,relative:a,viewTransition:m});function b(j){s&&s(j),j.defaultPrevented||g(j)}return x.createElement("a",gp({},f,{href:p||y,onClick:v||i?s:b,ref:r,target:c}))});var _j;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(_j||(_j={}));var Oj;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Oj||(Oj={}));function lM(e,t){let{target:r,replace:s,state:a,preventScrollReset:i,relative:l,viewTransition:o}=t===void 0?{}:t,c=Sr(),d=vi(),u=Wk(e,{relative:l});return x.useCallback(m=>{if(Q5(m,r)){m.preventDefault();let f=s!==void 0?s:Bu(d)===Bu(u);c(e,{replace:f,state:a,preventScrollReset:i,relative:l,viewTransition:o})}},[d,c,u,s,a,r,e,i,l,o])}function Xk(e){let t=x.useRef(yp(e)),r=x.useRef(!1),s=vi(),a=x.useMemo(()=>eM(s.search,r.current?null:t.current),[s.search]),i=Sr(),l=x.useCallback((o,c)=>{const d=yp(typeof o=="function"?o(a):o);r.current=!0,i("?"+d,c)},[i,a]);return[a,l]}const Zk=x.createContext(void 0),oM=({children:e})=>{const[t,r]=x.useState(null),[s,a]=x.useState(null),[i,l]=x.useState(!0);x.useEffect(()=>{const h=localStorage.getItem("auth_token"),p=localStorage.getItem("auth_user");if(h&&p)try{a(h),r(JSON.parse(p)),console.log("Restored auth from localStorage:",{user:JSON.parse(p),token:h})}catch(v){console.error("Error parsing stored user data:",v),localStorage.removeItem("auth_token"),localStorage.removeItem("auth_user")}l(!1)},[]);const o=x.useCallback(async(h,p)=>{try{l(!0),console.log("Attempting login with:",{email:h,passwordLength:p.length});const v=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:h,password:p})});console.log("Response status:",v.status);const y=await v.json();if(console.log("Response data:",y),y.success){const{user:g,token:b}=y.data;return r(g),a(b),localStorage.setItem("auth_token",b),localStorage.setItem("auth_user",JSON.stringify(g)),console.log("Login successful:",{user:g,token:b}),console.log("Auth state updated:",{isAuthenticated:!0,user:g}),setTimeout(()=>{console.log("Auth state after update:",{user:g,token:b,isAuthenticated:!!g&&!!b})},100),!0}else return console.error("Login failed:",y.error),!1}catch(v){return console.error("Login error:",v),!1}finally{l(!1)}},[]),c=async(h,p,v="user")=>{try{l(!0);const g=await(await fetch("/api/auth/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:h,password:p,role:v})})).json();if(g.success){const{user:b,token:j}=g.data;return r(b),a(j),localStorage.setItem("auth_token",j),localStorage.setItem("auth_user",JSON.stringify(b)),console.log("Registration successful:",{user:b,token:j}),!0}else return console.error("Registration failed:",g.error),!1}catch(y){return console.error("Registration error:",y),!1}finally{l(!1)}},d=async()=>{if(!s)return!1;try{return(await fetch("/api/auth/verify",{headers:{Authorization:`Bearer ${s}`}})).ok?!0:(u(),!1)}catch(h){return console.error("Token validation error:",h),u(),!1}},u=()=>{console.log("Logging out..."),r(null),a(null),localStorage.removeItem("auth_token"),localStorage.removeItem("auth_user")},f={user:t,token:s,login:o,logout:u,register:c,checkTokenValidity:d,isLoading:i,isAuthenticated:!!t&&!!s};return n.jsx(Zk.Provider,{value:f,children:e})},Nc=()=>{const e=x.useContext(Zk);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e},Ce=({children:e,requiredRole:t})=>{const{isAuthenticated:r,user:s,isLoading:a}=Nc();if(console.log("ProtectedRoute render:",{isAuthenticated:r,user:s,isLoading:a,requiredRole:t}),a)return n.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-indigo-600 mx-auto"}),n.jsx("p",{className:"mt-4 text-gray-600",children:"Загрузка..."})]})});if(!r)return n.jsx(G5,{to:"/access-portal-2024",replace:!0});if(t&&s){const i={viewer:1,user:2,admin:3},l=i[s.role],o=i[t];if(lwindow.history.back(),className:"mt-4 inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-indigo-600 bg-indigo-100 hover:bg-indigo-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",children:"Назад"})]})})}return n.jsx(n.Fragment,{children:e})};/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */var cM={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const dM=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),ue=(e,t)=>{const r=x.forwardRef(({color:s="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:l,className:o="",children:c,...d},u)=>x.createElement("svg",{ref:u,...cM,width:a,height:a,stroke:s,strokeWidth:l?Number(i)*24/Number(a):i,className:["lucide",`lucide-${dM(e)}`,o].join(" "),...d},[...t.map(([m,f])=>x.createElement(m,f)),...Array.isArray(c)?c:[c]]));return r.displayName=`${e}`,r};/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Do=ue("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bs=ue("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const uM=ue("AlertTriangle",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"c3ski4"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Zm=ue("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ca=ue("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const D0=ue("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const nt=ue("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const _l=ue("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Xe=ue("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Jk=ue("BarChart",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const qr=ue("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Qk=ue("Calculator",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["line",{x1:"8",x2:"16",y1:"6",y2:"6",key:"x4nwl0"}],["line",{x1:"16",x2:"16",y1:"14",y2:"18",key:"wjye3r"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M8 18h.01",key:"lrp35t"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ut=ue("Calendar",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2",key:"eu3xkr"}],["line",{x1:"16",x2:"16",y1:"2",y2:"6",key:"m3sa8f"}],["line",{x1:"8",x2:"8",y1:"2",y2:"6",key:"18kwsl"}],["line",{x1:"3",x2:"21",y1:"10",y2:"10",key:"xt86sb"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Mr=ue("CheckCircle",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bp=ue("CheckSquare",[["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}],["path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",key:"1jnkn4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Nt=ue("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ol=ue("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const $0=ue("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const mM=ue("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const $n=ue("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const L0=ue("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const fM=ue("Cog",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Cr=ue("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const br=ue("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const rc=ue("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Mt=ue("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Jm=ue("ExternalLink",[["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}],["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["line",{x1:"10",x2:"21",y1:"14",y2:"3",key:"18c3s4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const I0=ue("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ht=ue("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const da=ue("FileText",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Qm=ue("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vt=ue("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const hM=ue("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const xr=ue("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const xM=ue("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const pM=ue("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ii=ue("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Mj=ue("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Dj=ue("Loader",[["line",{x1:"12",x2:"12",y1:"2",y2:"6",key:"gza1u7"}],["line",{x1:"12",x2:"12",y1:"18",y2:"22",key:"1qhbu9"}],["line",{x1:"4.93",x2:"7.76",y1:"4.93",y2:"7.76",key:"xae44r"}],["line",{x1:"16.24",x2:"19.07",y1:"16.24",y2:"19.07",key:"bxnmvf"}],["line",{x1:"2",x2:"6",y1:"12",y2:"12",key:"89khin"}],["line",{x1:"18",x2:"22",y1:"12",y2:"12",key:"pb8tfm"}],["line",{x1:"4.93",x2:"7.76",y1:"19.07",y2:"16.24",key:"1uxjnu"}],["line",{x1:"16.24",x2:"19.07",y1:"7.76",y2:"4.93",key:"6duxfx"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const gM=ue("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const yM=ue("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const vM=ue("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const bM=ue("MapPin",[["path",{d:"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z",key:"2oe9fu"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const jM=ue("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ga=ue("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const R0=ue("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wM=ue("MousePointerClick",[["path",{d:"m9 9 5 12 1.8-5.2L21 14Z",key:"1b76lo"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const eC=ue("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const NM=ue("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z",key:"ymcmye"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const tC=ue("PenSquare",[["path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1qinfi"}],["path",{d:"M18.5 2.5a2.12 2.12 0 0 1 3 3L12 15l-4 1 1-4Z",key:"w2jsv5"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const SM=ue("PieChart",[["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}],["path",{d:"M22 12A10 10 0 0 0 12 2v10z",key:"1rfc4y"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ot=ue("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const jr=ue("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const rC=ue("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Te=ue("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const kM=ue("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const _e=ue("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const CM=ue("Send",[["path",{d:"m22 2-7 20-4-9-9-4Z",key:"1q3vgg"}],["path",{d:"M22 2 11 13",key:"nzbqef"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Dr=ue("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const EM=ue("Shield",[["path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10",key:"1irkt0"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const nC=ue("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const jp=ue("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const $j=ue("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const wp=ue("Tag",[["path",{d:"M12 2H2v10l9.29 9.29c.94.94 2.48.94 3.42 0l6.58-6.58c.94-.94.94-2.48 0-3.42L12 2Z",key:"14b2ls"}],["path",{d:"M7 7h.01",key:"7u93v4"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Tt=ue("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const PM=ue("TestTube",[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5h0c-1.4 0-2.5-1.1-2.5-2.5V2",key:"187lwq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Uu=ue("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const ef=ue("TrendingDown",[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Je=ue("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Np=ue("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const yn=ue("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const AM=ue("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Sp=ue("XCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** * @license lucide-react v0.294.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const dr=ue("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),TM=()=>{const{user:e,logout:t}=Nc(),[r,s]=x.useState(!1);if(!e)return null;const a=l=>{switch(l){case"admin":return"bg-red-100 text-red-800";case"user":return"bg-blue-100 text-blue-800";case"viewer":return"bg-gray-100 text-gray-800";default:return"bg-gray-100 text-gray-800"}},i=l=>{switch(l){case"admin":return"Администратор";case"user":return"Пользователь";case"viewer":return"Наблюдатель";default:return l}};return n.jsxs("div",{className:"relative",children:[n.jsxs("button",{onClick:()=>s(!r),className:"flex items-center space-x-3 text-sm rounded-full text-gray-700 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"h-8 w-8 rounded-full bg-indigo-500 flex items-center justify-center",children:n.jsx(Np,{className:"h-5 w-5 text-white"})}),n.jsxs("div",{className:"text-left",children:[n.jsx("div",{className:"font-medium",children:e.email}),n.jsx("div",{className:`text-xs px-2 py-1 rounded-full ${a(e.role)}`,children:i(e.role)})]})]}),n.jsx(Ol,{className:`h-4 w-4 transition-transform ${r?"rotate-180":""}`})]}),r&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"fixed inset-0 z-10",onClick:()=>s(!1)}),n.jsx("div",{className:"absolute right-0 mt-2 w-64 bg-white rounded-md shadow-lg ring-1 ring-black ring-opacity-5 z-20",children:n.jsxs("div",{className:"py-1",children:[n.jsxs("div",{className:"px-4 py-3 border-b border-gray-100",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx("div",{className:"h-10 w-10 rounded-full bg-indigo-500 flex items-center justify-center",children:n.jsx(Np,{className:"h-6 w-6 text-white"})}),n.jsxs("div",{children:[n.jsx("div",{className:"font-medium text-gray-900",children:e.email}),n.jsx("div",{className:`text-xs px-2 py-1 rounded-full ${a(e.role)} inline-block mt-1`,children:i(e.role)})]})]}),e.lastLogin&&n.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:["Последний вход: ",new Date(e.lastLogin).toLocaleString("ru-RU")]})]}),n.jsxs("div",{className:"py-1",children:[n.jsxs("button",{onClick:()=>{s(!1)},className:"flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100",children:[n.jsx(Dr,{className:"h-4 w-4 mr-3"}),"Настройки профиля"]}),n.jsxs("button",{onClick:()=>{t(),s(!1)},className:"flex items-center w-full px-4 py-2 text-sm text-gray-700 hover:bg-gray-100",children:[n.jsx(yM,{className:"h-4 w-4 mr-3"}),"Выйти"]})]})]})})]})]})},Ee=({children:e})=>{const[t,r]=x.useState(!1),[s,a]=x.useState([]),i=vi(),{user:l}=Nc(),c=[{name:"Основное",items:[{name:"Дашборд",href:"/dashboard",icon:Xe,roles:["admin","user","viewer"]},{name:"Планирование",href:"/planning",icon:Ut,roles:["admin","user"]}]},{name:"Notion",key:"notion",icon:br,items:[{name:"Данные Notion",href:"/notion-data",icon:br,roles:["admin","user","viewer"]},{name:"Аналитика Notion",href:"/notion-analytics",icon:Je,roles:["admin","user","viewer"]},{name:"Конфигурации Notion",href:"/notion-configs",icon:fM,roles:["admin"]},{name:"Unified Notion",href:"/notion-unified",icon:br,roles:["admin"]}]},{name:"Анализ ГЕО",key:"geo-analysis",icon:vt,items:[{name:"Анализ ГЕО",href:"/geo-analysis",icon:vt,roles:["admin","user"]},{name:"Калькулятор ГЕО",href:"/geo-calculator",icon:Qk,roles:["admin","user"]},{name:"Результаты анализов",href:"/analysis-results",icon:Xe,roles:["admin","user","viewer"]},{name:"История анализов",href:"/analysis-history",icon:$n,roles:["admin","user","viewer"]},{name:"Позиции сайтов",href:"/results",icon:Jk,roles:["admin","user","viewer"]}]},{name:"Анализ конкурентов",key:"competitor-analysis",icon:_e,items:[{name:"Анализ конкурентов",href:"/competitor-analysis",icon:_e,roles:["admin","user"]},{name:"Мониторинг конкурентов",href:"/competitor-monitor",icon:Te,roles:["admin","user"]},{name:"Визуализация сетей",href:"/competitor-network",icon:eC,roles:["admin","user"]},{name:"Проверка клоакинга",href:"/cloaking-check",icon:Ht,roles:["admin","user"]}]},{name:"DataForSEO",key:"dataforseo",icon:_e,items:[{name:"Keywords Research",href:"/dataforseo/keywords",icon:_e,roles:["admin","user"]},{name:"SERP Analysis",href:"/dataforseo/serp",icon:Xe,roles:["admin","user"]},{name:"Competitor Analysis",href:"/dataforseo/competitors",icon:Je,roles:["admin","user"]},{name:"Google Trends",href:"/dataforseo/trends",icon:Je,roles:["admin","user"]},{name:"Backlinks & Domains",href:"/dataforseo/backlinks",icon:vt,roles:["admin","user"]},{name:"Keyword Ideas",href:"/dataforseo/ideas",icon:_e,roles:["admin","user"]},{name:"Rank Tracking",href:"/dataforseo/rank-tracking",icon:Xe,roles:["admin","user"]}]},{name:"Rank Tracker",key:"rank-tracker",icon:Tt,items:[{name:"Dashboard",href:"/rank-tracker",icon:Tt,roles:["admin","user"]},{name:"Проверка позиций",href:"/rank-checker",icon:_e,roles:["admin","user"]},{name:"Dashboard V1 (Домены)",href:"/rank-dashboard-v1",icon:Xe,roles:["admin","user"]},{name:"Dashboard V2 (Keywords)",href:"/rank-dashboard-v2",icon:Xe,roles:["admin","user"]},{name:"Dashboard V3 (Сайты)",href:"/rank-dashboard-v3",icon:Xe,roles:["admin","user"]},{name:"Отслеживаемые ключи",href:"/rank-tracker/keywords",icon:_e,roles:["admin","user"]},{name:"Настройка отслеживания",href:"/rank-tracker/setup",icon:Dr,roles:["admin","user"]}]},{name:"Инструменты",items:[{name:"Keitaro Dashboard",href:"/keitaro",icon:Je,roles:["admin"]},{name:"ИИ-ассистент",href:"/ai-assistant",icon:qr,roles:["admin","user"]},{name:"HTML Редактор",href:"/html-editor",icon:L0,roles:["admin","user"]},{name:"Уникализация сайта",href:"/site-uniquifier",icon:Te,roles:["admin","user"]},{name:"Формирование ТЗ",href:"/tz-generation",icon:Dr,roles:["admin","user"]},{name:"Подбор доменов",href:"/domain-search",icon:_e,roles:["admin","user"]},{name:"Подбор дропов",href:"/drop-search",icon:_e,roles:["admin","user"]},{name:"Настройки",href:"/settings",icon:Dr,roles:["admin"]}]}].map(f=>({...f,items:f.items.filter(h=>l&&h.roles.includes(l.role))})).filter(f=>f.items.length>0),d=f=>{a(h=>h.includes(f)?h.filter(p=>p!==f):[...h,f])},u=(f,h,p=!1)=>n.jsxs(vp,{to:f.href,className:`group flex items-center px-2 py-2 text-sm font-medium rounded-md ${h?"bg-primary-100 text-primary-700":"text-gray-600 hover:bg-gray-50 hover:text-gray-900"}`,children:[n.jsx(f.icon,{className:`${p?"mr-3 h-4 w-4":"mr-3 h-5 w-5"}`}),f.name]},f.name),m=f=>n.jsx("div",{children:f.key?n.jsxs("div",{children:[n.jsxs("button",{onClick:()=>d(f.key),className:"group flex w-full items-center justify-between px-2 py-2 text-sm font-medium text-gray-600 hover:bg-gray-50 hover:text-gray-900 rounded-md",children:[n.jsxs("div",{className:"flex items-center",children:[n.jsx(f.icon,{className:"mr-3 h-5 w-5"}),f.name]}),s.includes(f.key)?n.jsx(Ol,{className:"h-4 w-4"}):n.jsx($0,{className:"h-4 w-4"})]}),s.includes(f.key)&&n.jsx("div",{className:"ml-6 space-y-1",children:f.items.map(h=>{const p=i.pathname===h.href;return u(h,p,!0)})})]}):n.jsx("div",{children:f.items.map(h=>{const p=i.pathname===h.href;return u(h,p)})})},f.name||f.key);return n.jsxs("div",{className:"min-h-screen bg-gray-50",children:[n.jsxs("div",{className:`fixed inset-0 z-50 lg:hidden ${t?"block":"hidden"}`,children:[n.jsx("div",{className:"fixed inset-0 bg-gray-600 bg-opacity-75",onClick:()=>r(!1)}),n.jsxs("div",{className:"fixed inset-y-0 left-0 flex w-64 flex-col bg-white",children:[n.jsxs("div",{className:"flex h-16 items-center justify-between px-4",children:[n.jsx("h1",{className:"text-xl font-bold text-gray-900",children:"SEO Combine"}),n.jsx("button",{onClick:()=>r(!1),className:"text-gray-400 hover:text-gray-600",children:n.jsx(dr,{className:"h-6 w-6"})})]}),n.jsx("nav",{className:"flex-1 space-y-1 px-2 py-4",children:c.map(m)})]})]}),n.jsx("div",{className:"hidden lg:fixed lg:inset-y-0 lg:flex lg:w-64 lg:flex-col",children:n.jsxs("div",{className:"flex flex-col flex-grow bg-white border-r border-gray-200",children:[n.jsx("div",{className:"flex h-16 items-center px-4",children:n.jsx("h1",{className:"text-xl font-bold text-gray-900",children:"SEO Combine"})}),n.jsx("nav",{className:"flex-1 space-y-1 px-2 py-4",children:c.map(m)})]})}),n.jsxs("div",{className:"lg:pl-64",children:[n.jsxs("div",{className:"sticky top-0 z-40 flex h-16 shrink-0 items-center gap-x-4 border-b border-gray-200 bg-white px-4 shadow-sm sm:gap-x-6 sm:px-6 lg:px-8",children:[n.jsx("button",{type:"button",className:"-m-2.5 p-2.5 text-gray-700 lg:hidden",onClick:()=>r(!0),children:n.jsx(jM,{className:"h-6 w-6"})}),n.jsxs("div",{className:"flex flex-1 gap-x-4 self-stretch lg:gap-x-6",children:[n.jsx("div",{className:"flex flex-1"}),n.jsxs("div",{className:"flex items-center gap-x-4 lg:gap-x-6",children:[n.jsx("div",{className:"text-sm text-gray-500",children:"SEO Yan Team"}),n.jsx(TM,{})]})]})]}),n.jsx("main",{className:"py-6",children:n.jsx("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8",children:e})})]})]})},_M=()=>{const{login:e,isLoading:t,isAuthenticated:r,user:s}=Nc();Sr();const[a,i]=x.useState(""),[l,o]=x.useState(""),[c,d]=x.useState(!1),[u,m]=x.useState(""),[f,h]=x.useState("");console.log("Login component render:",{isAuthenticated:r,isLoading:t}),x.useEffect(()=>{console.log("Auth state changed:",{isAuthenticated:r,user:s,isLoading:t}),r&&s&&console.log("User authenticated, should redirect...")},[r,s,t]),x.useEffect(()=>{r&&(console.log("User already authenticated, redirecting..."),console.log("Auth state in useEffect:",{isAuthenticated:r,user:s}),window.location.replace("/dashboard"))},[r,s]);const p=async v=>{if(v.preventDefault(),m(""),h(""),!a||!l){m("Пожалуйста, заполните все поля");return}const y=await e(a,l);console.log("Login result:",y),y?(h("Вход выполнен успешно!"),console.log("Login successful, redirecting..."),console.log("Current auth state:",{isAuthenticated:r,user:s}),setTimeout(()=>{console.log("Redirecting now..."),console.log("Auth state before redirect:",{isAuthenticated:r,user:s}),window.location.replace("/dashboard"),setTimeout(()=>{console.log("Reloading page..."),window.location.reload()},100)},500)):m("Неверный email или пароль")};return n.jsx("div",{className:"min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8",children:n.jsxs("div",{className:"max-w-md w-full space-y-8",children:[n.jsxs("div",{children:[n.jsx("div",{className:"mx-auto h-12 w-12 flex items-center justify-center rounded-full bg-indigo-600",children:n.jsx("svg",{className:"h-8 w-8 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:n.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})})}),n.jsx("h2",{className:"mt-6 text-center text-3xl font-extrabold text-gray-900",children:"SEO-комбайн"}),n.jsx("p",{className:"mt-2 text-center text-sm text-gray-600",children:"Войдите в свой аккаунт"})]}),n.jsxs("form",{className:"mt-8 space-y-6",onSubmit:p,children:[n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700",children:"Логин"}),n.jsxs("div",{className:"mt-1 relative",children:[n.jsx("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:n.jsx(vM,{className:"h-5 w-5 text-gray-400"})}),n.jsx("input",{id:"email",name:"email",type:"text",autoComplete:"username",required:!0,value:a,onChange:v=>i(v.target.value),className:"appearance-none relative block w-full pl-10 pr-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm",placeholder:"Введите логин"})]})]}),n.jsxs("div",{children:[n.jsx("label",{htmlFor:"password",className:"block text-sm font-medium text-gray-700",children:"Пароль"}),n.jsxs("div",{className:"mt-1 relative",children:[n.jsx("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:n.jsx(gM,{className:"h-5 w-5 text-gray-400"})}),n.jsx("input",{id:"password",name:"password",type:c?"text":"password",autoComplete:"current-password",required:!0,value:l,onChange:v=>o(v.target.value),className:"appearance-none relative block w-full pl-10 pr-10 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm",placeholder:"Введите пароль"}),n.jsx("div",{className:"absolute inset-y-0 right-0 pr-3 flex items-center",children:n.jsx("button",{type:"button",onClick:()=>d(!c),className:"text-gray-400 hover:text-gray-600",children:c?n.jsx(I0,{className:"h-5 w-5"}):n.jsx(Ht,{className:"h-5 w-5"})})})]})]})]}),u&&n.jsxs("div",{className:"flex items-center space-x-2 text-red-600 text-sm",children:[n.jsx(bs,{className:"h-4 w-4"}),n.jsx("span",{children:u})]}),f&&n.jsxs("div",{className:"flex items-center space-x-2 text-green-600 text-sm",children:[n.jsx(Mr,{className:"h-4 w-4"}),n.jsx("span",{children:f})]}),n.jsx("div",{children:n.jsx("button",{type:"submit",disabled:t,className:"group relative w-full flex justify-center py-2 px-4 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 disabled:opacity-50 disabled:cursor-not-allowed",children:t?n.jsxs("div",{className:"flex items-center",children:[n.jsxs("svg",{className:"animate-spin -ml-1 mr-3 h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[n.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Вход..."]}):"Войти"})})]})]})})},OM=()=>{const e=[{id:"geo_analysis",name:"Анализ ГЕО",description:"Анализ ключевых слов по гео",status:"completed",icon:Xe,color:"green"},{id:"competitor_analysis",name:"Анализ конкурентов",description:"Анализ топ-конкурентов",status:"pending",icon:_e,color:"gray"},{id:"tz_generation",name:"Формирование ТЗ",description:"Создание технических заданий",status:"pending",icon:Dr,color:"gray"},{id:"ai_assistant",name:"ИИ-ассистент",description:"Рекомендации по стратегии",status:"pending",icon:Ot,color:"gray"},{id:"domain_search",name:"Подбор доменов",description:"Поиск EMD и брендовых доменов",status:"pending",icon:_e,color:"gray"},{id:"drop_search",name:"Подбор дропов",description:"Поиск дропнутых доменов",status:"pending",icon:_e,color:"gray"}],t=s=>{switch(s){case"completed":return n.jsx(Mr,{className:"h-5 w-5 text-green-500"});case"running":return n.jsx($n,{className:"h-5 w-5 text-blue-500"});case"error":return n.jsx(bs,{className:"h-5 w-5 text-red-500"});default:return n.jsx($n,{className:"h-5 w-5 text-gray-400"})}},r=s=>{switch(s){case"completed":return"bg-green-100 text-green-800";case"running":return"bg-blue-100 text-blue-800";case"error":return"bg-red-100 text-red-800";default:return"bg-gray-100 text-gray-800"}};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"SEO Combine Dashboard"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Комплексный анализ ключевых слов и конкурентов"})]}),n.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[n.jsx(vp,{to:"/analysis",className:"card hover:shadow-md transition-shadow cursor-pointer",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Xe,{className:"h-8 w-8 text-primary-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Новый анализ"}),n.jsx("p",{className:"text-sm text-gray-500",children:"Запустить анализ ключевых слов"})]})]})}),n.jsx(vp,{to:"/settings",className:"card hover:shadow-md transition-shadow cursor-pointer",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Dr,{className:"h-8 w-8 text-primary-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Настройки"}),n.jsx("p",{className:"text-sm text-gray-500",children:"Настроить API ключи"})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Mr,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Готово к работе"}),n.jsx("p",{className:"text-sm text-gray-500",children:"Этап 1: Анализ ГЕО"})]})]})})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Этапы анализа"}),n.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",children:e.map(s=>n.jsxs("div",{className:"border border-gray-200 rounded-lg p-4",children:[n.jsxs("div",{className:"flex items-start justify-between",children:[n.jsxs("div",{className:"flex items-start space-x-3",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(s.icon,{className:"h-6 w-6 text-primary-600"})}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-medium text-gray-900",children:s.name}),n.jsx("p",{className:"text-xs text-gray-500 mt-1",children:s.description})]})]}),n.jsx("div",{className:"flex items-center space-x-2",children:t(s.status)})]}),n.jsx("div",{className:"mt-3",children:n.jsx("span",{className:`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${r(s.status)}`,children:s.status==="completed"?"Завершено":s.status==="running"?"Выполняется":s.status==="error"?"Ошибка":"Ожидает"})})]},s.id))})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Последняя активность"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx(Mr,{className:"h-5 w-5 text-green-500"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-900",children:"Анализ ГЕО завершен"}),n.jsx("p",{className:"text-xs text-gray-500",children:"2 минуты назад"})]})]}),n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx($n,{className:"h-5 w-5 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-900",children:"Ожидает настройки API"}),n.jsx("p",{className:"text-xs text-gray-500",children:"5 минут назад"})]})]})]})]})]})},MM=()=>{const[e,t]=x.useState({rapidApi:{key:"",host:"ahrefs-keyword-research.p.rapidapi.com",enabled:!1},openai:{apiKey:"",model:"gpt-4",enabled:!1},anthropic:{apiKey:"",model:"claude-3-sonnet-20240229",enabled:!1},apify:{apiToken:"",enabled:!1},expiredDomains:{apiKey:"",enabled:!1}}),[r,s]=x.useState({}),[a,i]=x.useState(!1),[l,o]=x.useState(!1),[c,d]=x.useState(null),u=y=>{s(g=>({...g,[y]:!g[y]}))};x.useEffect(()=>{m()},[]);const m=async()=>{try{i(!0);const g=await(await fetch("/api/settings")).json();g.success&&t(b=>({...b,rapidApi:{key:g.data.rapidApiKey||"",host:g.data.rapidApiHost||"ahrefs-keyword-research.p.rapidapi.com",enabled:!!g.data.rapidApiKey}}))}catch(y){console.error("Error loading settings:",y),d({type:"error",text:"Ошибка загрузки настроек"})}finally{i(!1)}},f=(y,g,b)=>{t(j=>({...j,[y]:{...j[y],[g]:b}}))},h=async y=>{if(y==="rapidApi")try{i(!0);const b=await(await fetch("/api/settings/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rapidApiKey:e.rapidApi.key})})).json();b.success&&b.data.isValid?d({type:"success",text:"RapidAPI ключ действителен!"}):d({type:"error",text:b.data.message||"RapidAPI ключ недействителен"})}catch(g){console.error("Error testing connection:",g),d({type:"error",text:"Ошибка тестирования соединения"})}finally{i(!1)}else d({type:"error",text:"Тестирование для этого сервиса пока не реализовано"})},p=async()=>{var y;try{o(!0),d(null);const b=await(await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rapidApiKey:e.rapidApi.key,rapidApiHost:e.rapidApi.host,port:3001,nodeEnv:"development"})})).json();b.success?(d({type:"success",text:"Настройки сохранены успешно!"}),t(j=>({...j,rapidApi:{...j.rapidApi,enabled:!!j.rapidApi.key}}))):d({type:"error",text:((y=b.error)==null?void 0:y.message)||"Ошибка сохранения настроек"})}catch(g){console.error("Error saving settings:",g),d({type:"error",text:"Ошибка сохранения настроек"})}finally{o(!1)}},v=[{key:"rapidApi",name:"RapidAPI (Ahrefs)",description:"Для анализа ключевых слов и получения метрик",icon:vt,fields:[{key:"key",label:"API Key",type:"password",placeholder:"Введите ваш RapidAPI ключ"},{key:"host",label:"Host",type:"text",placeholder:"ahrefs-keyword-research.p.rapidapi.com"}]},{key:"openai",name:"OpenAI",description:"Для генерации и рерайта контента",icon:qr,fields:[{key:"apiKey",label:"API Key",type:"password",placeholder:"Введите ваш OpenAI API ключ"},{key:"model",label:"Model",type:"select",options:["gpt-4","gpt-4-turbo","gpt-3.5-turbo"]}]},{key:"anthropic",name:"Anthropic (Claude)",description:"Для проверки и исправления контента",icon:qr,fields:[{key:"apiKey",label:"API Key",type:"password",placeholder:"Введите ваш Anthropic API ключ"},{key:"model",label:"Model",type:"select",options:["claude-3-sonnet-20240229","claude-3-haiku-20240307","claude-3-opus-20240229"]}]},{key:"apify",name:"Apify",description:"Для парсинга WHOIS и других данных",icon:br,fields:[{key:"apiToken",label:"API Token",type:"password",placeholder:"Введите ваш Apify API токен"}]},{key:"expiredDomains",name:"ExpiredDomains",description:"Для поиска дропнутых доменов",icon:EM,fields:[{key:"apiKey",label:"API Key",type:"password",placeholder:"Введите ваш ExpiredDomains API ключ"}]}];return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Настройки API"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Настройте API ключи для различных сервисов"})]}),c&&n.jsx("div",{className:`p-4 rounded-md ${c.type==="success"?"bg-green-50 border border-green-200 text-green-800":"bg-red-50 border border-red-200 text-red-800"}`,children:c.text}),a&&n.jsxs("div",{className:"flex items-center justify-center p-4",children:[n.jsx(Mj,{className:"h-6 w-6 animate-spin text-primary-600"}),n.jsx("span",{className:"ml-2 text-gray-600",children:"Загрузка..."})]}),n.jsx("div",{className:"grid gap-6",children:v.map(y=>{const g=y.icon,b=e[y.key];return n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-start justify-between",children:[n.jsxs("div",{className:"flex items-start space-x-3",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(g,{className:"h-6 w-6 text-primary-600"})}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:y.name}),n.jsx("p",{className:"text-sm text-gray-500",children:y.description})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("button",{onClick:()=>h(y.key),className:"btn btn-secondary text-sm",children:"Тест"}),n.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:b.enabled,onChange:j=>f(y.key,"enabled",j.target.checked),className:"sr-only peer"}),n.jsx("div",{className:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-primary-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-600"})]})]})]}),n.jsx("div",{className:"mt-4 space-y-4",children:y.fields.map(j=>{var w;return n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:j.label}),j.type==="select"?n.jsx("select",{value:String(b[j.key]),onChange:C=>f(y.key,j.key,C.target.value),className:"input",children:(w=j.options)==null?void 0:w.map(C=>n.jsx("option",{value:C,children:C},C))}):n.jsxs("div",{className:"relative",children:[n.jsx("input",{type:j.type==="password"&&!r[`${y.key}_${j.key}`]?"password":"text",value:String(b[j.key]),onChange:C=>f(y.key,j.key,C.target.value),placeholder:j.placeholder,className:"input pr-10"}),j.type==="password"&&n.jsx("button",{type:"button",onClick:()=>u(`${y.key}_${j.key}`),className:"absolute inset-y-0 right-0 pr-3 flex items-center",children:r[`${y.key}_${j.key}`]?n.jsx(I0,{className:"h-4 w-4 text-gray-400"}):n.jsx(Ht,{className:"h-4 w-4 text-gray-400"})})]})]},j.key)})}),n.jsx("div",{className:"mt-4 flex items-center space-x-2",children:b.enabled?n.jsxs("div",{className:"flex items-center text-green-600 text-sm",children:[n.jsx(Nt,{className:"h-4 w-4 mr-1"}),"Включено"]}):n.jsxs("div",{className:"flex items-center text-gray-400 text-sm",children:[n.jsx(dr,{className:"h-4 w-4 mr-1"}),"Отключено"]})})]},y.key)})}),n.jsx("div",{className:"flex justify-end",children:n.jsxs("button",{onClick:p,disabled:l,className:"btn btn-primary flex items-center",children:[l&&n.jsx(Mj,{className:"h-4 w-4 animate-spin mr-2"}),l?"Сохранение...":"Сохранить настройки"]})})]})},Ql=["af","al","dz","ad","ao","ag","ar","am","aw","au","at","az","bs","bh","bd","by","be","bz","bj","bt","bo","ba","bw","br","vg","bn","bg","bf","kh","cm","ca","cv","ky","cl","co","cg","cd","cr","ci","hr","cy","cz","dk","dj","do","ec","eg","sv","gq","ee","et","fo","fj","fi","fr","gf","pf","ga","ge","de","gh","gi","gr","gd","gp","gu","gt","gn","gy","ht","hn","hk","hu","is","in","id","iq","ie","il","it","jm","jp","jo","kz","ke","kr","kw","kg","lv","lb","ly","lt","lu","mk","mg","mw","my","mv","ml","mt","mq","mr","mu","yt","mx","md","mc","mn","me","ma","mz","na","np","nl","nc","nz","ni","ne","ng","no","om","pk","pa","py","pe","ph","pl","pt","pr","qa","re","ro","rw","kn","lc","vc","sa","sn","rs","sc","sg","sk","si","za","es","lk","sr","se","ch","tw","tj","tz","th","tg","tk","tt","tn","tr","tm","tc","tv","ug","ua","ae","gb","us","uy","ve","vn","vi","ye","zm","zw"],Lj=["de","fr","gb","it","es","pl","nl","be","gr","pt","cz","ro","hu","se","at","ch","cn","in","jp","kr","id","ph","th","vn","my","sg","pk","bd","tr","sa","ae","il","us","br","mx","ar","co","cl","pe","ca","ng","eg","za","ke","et","tz","gh","dz","ma","au","nz"],Ij=["us","ca","gb","de","fr","it","es","nl","be","at","ch","se","no","dk","fi","ie","pt","jp","kr","sg","il","au","nz"],Ih={af:"Afghanistan",al:"Albania",dz:"Algeria",ad:"Andorra",ao:"Angola",ag:"Antigua and Barbuda",ar:"Argentina",am:"Armenia",aw:"Aruba",au:"Australia",at:"Austria",az:"Azerbaijan",bs:"Bahamas",bh:"Bahrain",bd:"Bangladesh",by:"Belarus",be:"Belgium",bz:"Belize",bj:"Benin",bt:"Bhutan",bo:"Bolivia",ba:"Bosnia and Herzegovina",bw:"Botswana",br:"Brazil",vg:"British Virgin Islands",bn:"Brunei",bg:"Bulgaria",bf:"Burkina Faso",kh:"Cambodia",cm:"Cameroon",ca:"Canada",cv:"Cape Verde",ky:"Cayman Islands",cl:"Chile",co:"Colombia",cg:"Congo",cd:"Democratic Republic of the Congo",cr:"Costa Rica",ci:"Côte d'Ivoire",hr:"Croatia",cy:"Cyprus",cz:"Czech Republic",dk:"Denmark",dj:"Djibouti",do:"Dominican Republic",ec:"Ecuador",eg:"Egypt",sv:"El Salvador",gq:"Equatorial Guinea",ee:"Estonia",et:"Ethiopia",fo:"Faroe Islands",fj:"Fiji",fi:"Finland",fr:"France",gf:"French Guiana",pf:"French Polynesia",ga:"Gabon",ge:"Georgia",de:"Germany",gh:"Ghana",gi:"Gibraltar",gr:"Greece",gd:"Grenada",gp:"Guadeloupe",gu:"Guam",gt:"Guatemala",gn:"Guinea",gy:"Guyana",ht:"Haiti",hn:"Honduras",hk:"Hong Kong",hu:"Hungary",is:"Iceland",in:"India",id:"Indonesia",iq:"Iraq",ie:"Ireland",il:"Israel",it:"Italy",jm:"Jamaica",jp:"Japan",jo:"Jordan",kz:"Kazakhstan",ke:"Kenya",kr:"South Korea",kw:"Kuwait",kg:"Kyrgyzstan",lv:"Latvia",lb:"Lebanon",ly:"Libya",lt:"Lithuania",lu:"Luxembourg",mk:"North Macedonia",mg:"Madagascar",mw:"Malawi",my:"Malaysia",mv:"Maldives",ml:"Mali",mt:"Malta",mq:"Martinique",mr:"Mauritania",mu:"Mauritius",yt:"Mayotte",mx:"Mexico",md:"Moldova",mc:"Monaco",mn:"Mongolia",me:"Montenegro",ma:"Morocco",mz:"Mozambique",na:"Namibia",np:"Nepal",nl:"Netherlands",nc:"New Caledonia",nz:"New Zealand",ni:"Nicaragua",ne:"Niger",ng:"Nigeria",no:"Norway",om:"Oman",pk:"Pakistan",pa:"Panama",py:"Paraguay",pe:"Peru",ph:"Philippines",pl:"Poland",pt:"Portugal",pr:"Puerto Rico",qa:"Qatar",re:"Réunion",ro:"Romania",rw:"Rwanda",kn:"Saint Kitts and Nevis",lc:"Saint Lucia",vc:"Saint Vincent and the Grenadines",sa:"Saudi Arabia",sn:"Senegal",rs:"Serbia",sc:"Seychelles",sg:"Singapore",sk:"Slovakia",si:"Slovenia",za:"South Africa",es:"Spain",lk:"Sri Lanka",sr:"Suriname",se:"Sweden",ch:"Switzerland",tw:"Taiwan",tj:"Tajikistan",tz:"Tanzania",th:"Thailand",tg:"Togo",tk:"Tokelau",tt:"Trinidad and Tobago",tn:"Tunisia",tr:"Turkey",tm:"Turkmenistan",tc:"Turks and Caicos Islands",tv:"Tuvalu",ug:"Uganda",ua:"Ukraine",ae:"United Arab Emirates",gb:"United Kingdom",us:"United States",uy:"Uruguay",ve:"Venezuela",vn:"Vietnam",vi:"U.S. Virgin Islands",ye:"Yemen",zm:"Zambia",zw:"Zimbabwe"},Ei={europe:{name:"Европа",countries:["al","at","by","be","ba","bg","hr","cy","cz","dk","ee","fi","fr","de","gi","gr","ge","hu","is","ie","it","lv","lt","lu","mk","mt","md","me","nl","no","pl","pt","ro","rs","sk","si","es","se","ch","ua","gb"]},americas:{name:"Латам + Америка",countries:["ag","ar","aw","bs","bz","bo","br","cl","co","cr","do","ec","sv","gt","gy","ht","hn","jm","mx","ni","pa","py","pe","sr","tt","us","uy","ve"]},asia:{name:"Азия + Австралия",countries:["af","am","az","bh","bd","bt","bn","kh","hk","in","id","iq","il","jp","jo","kz","kr","kw","kg","lb","ly","my","mv","mn","np","om","pk","ph","qa","sa","sg","lk","tj","th","tm","tr","tw","ae","vn","ye","au","fj","nz"]},africa:{name:"Африка",countries:["dz","ao","bj","bw","bf","cm","cv","cg","cd","ci","dj","eg","gq","ga","gh","gn","et","ke","mg","mw","ml","mr","mu","ma","mz","na","ne","ng","rw","sn","sc","za","tz","tg","tn","ug","zm","zw"]}},Sc=({selectedCountries:e,onCountriesChange:t})=>{const[r,s]=x.useState(""),[a,i]=x.useState({europe:!0,americas:!0,asia:!0,africa:!0}),[l,o]=x.useState(!1),[c,d]=x.useState(""),u=x.useMemo(()=>r?Ql.filter(A=>Ih[A].toLowerCase().includes(r.toLowerCase())||A.toLowerCase().includes(r.toLowerCase())):Ql,[r]),m=x.useMemo(()=>{const A={};return Object.entries(Ei).forEach(([_,I])=>{A[_]=I.countries.filter(B=>u.includes(B))}),A},[u]),f=A=>{i(_=>({..._,[A]:!_[A]}))},h=A=>{e.includes(A)?t(e.filter(_=>_!==A)):t([...e,A])},p=()=>{t([...Ql])},v=()=>{t([])},y=()=>{t([...Lj])},g=()=>{t([...Ij])},b=A=>{const _=Ei[A].countries,I=[...new Set([...e,..._])];t(I)},j=A=>{const _=Ei[A];if(_){const I=_.countries;t(e.filter(B=>!I.includes(B)))}},w=()=>{const A=c.split(/[,\s]+/).map(_=>_.trim().toLowerCase()).filter(_=>_.length===2&&Ql.includes(_));if(A.length>0){const _=[...new Set([...e,...A])];t(_),d(""),o(!1)}},C=A=>Ei[A].countries.every(I=>e.includes(I)),N=A=>{const _=Ei[A].countries,I=_.filter(B=>e.includes(B));return I.length>0&&I.length<_.length};return n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"relative",children:[n.jsx(_e,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),n.jsx("input",{type:"text",placeholder:"Поиск стран...",value:r,onChange:A=>s(A.target.value),className:"w-full pl-10 pr-10 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"}),r&&n.jsx("button",{onClick:()=>s(""),className:"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Очистить поиск",children:n.jsx(dr,{className:"h-4 w-4"})})]}),n.jsxs("div",{className:"flex flex-wrap gap-2",children:[n.jsx("button",{onClick:p,className:"px-3 py-1 text-sm bg-primary-100 text-primary-700 rounded-md hover:bg-primary-200 transition-colors",children:"Выбрать все"}),n.jsxs("button",{onClick:g,className:"px-3 py-1 text-sm bg-purple-100 text-purple-700 rounded-md hover:bg-purple-200 transition-colors",title:"Выбрать только Tier-1 страны (самые развитые с высоким доходом)",children:["💎 Tier-1 (",Ij.length,")"]}),n.jsxs("button",{onClick:y,className:"px-3 py-1 text-sm bg-green-100 text-green-700 rounded-md hover:bg-green-200 transition-colors",title:"Выбрать только топ страны с большим населением",children:["⭐ Топ страны (",Lj.length,")"]}),n.jsx("button",{onClick:v,className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200 transition-colors",children:"Очистить все"}),n.jsxs("button",{onClick:()=>o(!l),className:"px-3 py-1 text-sm bg-blue-100 text-blue-700 rounded-md hover:bg-blue-200 transition-colors",children:[n.jsx(vt,{className:"inline h-3 w-3 mr-1"}),"Добавить вручную"]})]}),l&&n.jsxs("div",{className:"p-3 bg-blue-50 rounded-lg border border-blue-200",children:[n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("input",{type:"text",placeholder:"Введите коды стран через запятую (us, gb, de...)",value:c,onChange:A=>d(A.target.value),className:"flex-1 px-3 py-2 border border-blue-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"}),n.jsx("button",{onClick:w,className:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 transition-colors",children:"Добавить"}),n.jsx("button",{onClick:()=>o(!1),className:"px-4 py-2 bg-gray-300 text-gray-700 rounded-md hover:bg-gray-400 transition-colors",children:n.jsx(dr,{className:"h-4 w-4"})})]}),n.jsx("p",{className:"text-xs text-blue-600 mt-1",children:"Введите 2-буквенные коды стран (например: us, gb, de, fr)"})]}),n.jsxs("div",{className:"text-sm text-gray-600",children:["Выбрано: ",e.length," из ",Ql.length," стран"]}),n.jsx("div",{className:"max-h-96 overflow-y-auto border border-gray-200 rounded-lg",children:Object.entries(m).length===0||Object.values(m).every(A=>A.length===0)?u.length>0?n.jsx("div",{className:"p-2",children:n.jsx("div",{className:"grid grid-cols-2 gap-1",children:u.map(A=>n.jsxs("label",{className:"flex items-center space-x-2 p-2 hover:bg-gray-50 rounded cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:e.includes(A),onChange:()=>h(A),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsxs("span",{className:"text-sm text-gray-700",children:[Ih[A]||A," (",A.toUpperCase(),")"]})]},A))})}):n.jsx("div",{className:"p-4 text-center text-gray-500",children:"Страны не найдены"}):Object.entries(m).map(([A,_])=>{if(_.length===0)return null;const I=Ei[A];if(!I)return null;const B=a[A],z=C(A),T=N(A);return n.jsxs("div",{className:"border-b border-gray-100 last:border-b-0",children:[n.jsxs("div",{className:"flex items-center justify-between p-3 bg-gray-50 hover:bg-gray-100 transition-colors",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("button",{onClick:()=>f(A),className:"p-1 hover:bg-gray-200 rounded",children:B?n.jsx(Ol,{className:"h-4 w-4"}):n.jsx($0,{className:"h-4 w-4"})}),n.jsx("span",{className:"font-medium text-gray-900",children:I.name}),n.jsxs("span",{className:"text-sm text-gray-500",children:["(",_.length,")"]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[z&&n.jsx("button",{onClick:()=>j(A),className:"px-2 py-1 text-xs bg-red-100 text-red-700 rounded hover:bg-red-200 transition-colors",children:"Очистить"}),!z&&n.jsx("button",{onClick:()=>b(A),className:"px-2 py-1 text-xs bg-green-100 text-green-700 rounded hover:bg-green-200 transition-colors",children:"Выбрать все"}),n.jsx("div",{className:"flex items-center",children:n.jsx("input",{type:"checkbox",checked:z,ref:D=>{D&&(D.indeterminate=T)},onChange:()=>z?j(A):b(A),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"})})]})]}),B&&n.jsx("div",{className:"p-2",children:n.jsx("div",{className:"grid grid-cols-2 gap-1",children:_.map(D=>n.jsxs("label",{className:"flex items-center space-x-2 p-2 hover:bg-gray-50 rounded cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:e.includes(D),onChange:()=>h(D),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsxs("span",{className:"text-sm text-gray-700",children:[Ih[D]," (",D.toUpperCase(),")"]})]},D))})})]},A)})}),e.length>0&&n.jsxs("div",{className:"p-3 bg-green-50 rounded-lg border border-green-200",children:[n.jsx("h4",{className:"text-sm font-medium text-green-800 mb-2",children:"Выбранные страны:"}),n.jsxs("div",{className:"flex flex-wrap gap-1",children:[e.slice(0,10).map(A=>n.jsxs("span",{className:"inline-flex items-center px-2 py-1 text-xs bg-green-100 text-green-800 rounded-md",children:[A.toUpperCase(),n.jsx("button",{onClick:()=>h(A),className:"ml-1 hover:text-green-600",children:n.jsx(dr,{className:"h-3 w-3"})})]},A)),e.length>10&&n.jsxs("span",{className:"text-xs text-green-600",children:["и еще ",e.length-10,"..."]})]})]})]})},DM=()=>{const[e,t]=x.useState([""]),[r,s]=x.useState(["us"]),[a,i]=x.useState({geoAnalysis:!0,competitorAnalysis:!1,tzGeneration:!1,aiAssistant:!1,domainSearch:!1,dropSearch:!1}),l=()=>{t([...e,""])},o=(f,h)=>{const p=[...e];p[f]=h,t(p)},c=f=>{e.length>1&&t(e.filter((h,p)=>p!==f))},d=f=>{i(h=>({...h,[f]:!h[f]}))},u=()=>{console.log("Starting analysis with:",{keywords:e.filter(f=>f.trim()),countries:r,enabledStages:a})},m=[{key:"geoAnalysis",name:"Анализ ГЕО",description:"Анализ ключевых слов по выбранным гео",icon:vt,required:!0},{key:"competitorAnalysis",name:"Анализ конкурентов",description:"Анализ топ-конкурентов в выдаче",icon:_e,required:!1},{key:"tzGeneration",name:"Формирование ТЗ",description:"Создание технических заданий",icon:Dr,required:!1},{key:"aiAssistant",name:"ИИ-ассистент",description:"Рекомендации по стратегии",icon:Ot,required:!1},{key:"domainSearch",name:"Подбор доменов",description:"Поиск EMD и брендовых доменов",icon:_e,required:!1},{key:"dropSearch",name:"Подбор дропов",description:"Поиск дропнутых доменов",icon:_e,required:!1}];return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Новый анализ"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Настройте параметры анализа и запустите процесс"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Ключевые слова"}),n.jsxs("div",{className:"space-y-3",children:[e.map((f,h)=>n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("input",{type:"text",value:f,onChange:p=>o(h,p.target.value),placeholder:"Введите ключевое слово",className:"input flex-1"}),e.length>1&&n.jsx("button",{onClick:()=>c(h),className:"px-3 py-2 text-red-600 hover:text-red-800",children:"×"})]},h)),n.jsx("button",{onClick:l,className:"btn btn-secondary w-full",children:"+ Добавить ключевое слово"})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Гео (страны)"}),n.jsx(Sc,{selectedCountries:r,onCountriesChange:s})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Этапы анализа"}),n.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:m.map(f=>n.jsx("div",{className:"border border-gray-200 rounded-lg p-4",children:n.jsxs("div",{className:"flex items-start justify-between",children:[n.jsxs("div",{className:"flex items-start space-x-3",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(f.icon,{className:"h-6 w-6 text-primary-600"})}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-medium text-gray-900",children:f.name}),n.jsx("p",{className:"text-xs text-gray-500 mt-1",children:f.description})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[f.required&&n.jsx("span",{className:"text-xs text-red-500",children:"Обязательно"}),n.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:a[f.key],onChange:()=>d(f.key),disabled:f.required,className:"sr-only peer"}),n.jsx("div",{className:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-primary-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-600 peer-disabled:opacity-50"})]})]})]})},f.key))})]}),n.jsxs("div",{className:"flex justify-end space-x-4",children:[n.jsx("button",{className:"btn btn-secondary",children:"Сохранить как шаблон"}),n.jsxs("button",{onClick:u,className:"btn btn-primary",disabled:e.filter(f=>f.trim()).length===0||r.length===0,children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),"Запустить анализ"]})]})]})},$M=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(!0),[a,i]=x.useState(null);x.useEffect(()=>{(async()=>{try{s(!0);const C=await fetch("/api/geo-analysis");if(!C.ok)throw new Error(`HTTP error! status: ${C.status}`);const N=await C.json();if(N.success&&N.data.results){const A=N.data.results.reduce((I,B)=>{const z=B.keyword;return I[z]||(I[z]={id:z,name:B.keyword,keywords:[B.keyword],countries:[],createdAt:B.lastUpdated,status:"completed",resultsCount:0,type:"geo_analysis",results:[]}),I[z].countries.push(B.country),I[z].resultsCount++,I[z].results.push(B),I},{}),_=Object.values(A);t(_)}else t([])}catch(C){console.error("Error fetching analyses:",C),i(C instanceof Error?C.message:"Unknown error"),t([])}finally{s(!1)}})()},[]);const[l,o]=x.useState(""),[c,d]=x.useState("all"),[u,m]=x.useState("all"),f=e.filter(w=>{const C=w.name.toLowerCase().includes(l.toLowerCase())||w.keywords.some(_=>_.toLowerCase().includes(l.toLowerCase())),N=c==="all"||w.status===c,A=u==="all"||w.type===u;return C&&N&&A}),h=w=>{switch(w){case"completed":return"bg-green-100 text-green-800";case"running":return"bg-blue-100 text-blue-800";case"error":return"bg-red-100 text-red-800";default:return"bg-gray-100 text-gray-800"}},p=w=>{switch(w){case"completed":return"Завершен";case"running":return"Выполняется";case"error":return"Ошибка";default:return"Неизвестно"}},v=w=>new Date(w).toLocaleDateString("ru-RU",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),y=w=>{console.log("Viewing analysis:",w)},g=w=>{t(e.filter(C=>C.id!==w))},b=w=>{console.log("Exporting analysis:",w)},j=w=>{console.log("Continuing analysis:",w)};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"История анализов"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Просмотр и управление выполненными анализами"})]}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[n.jsx("div",{className:"flex-1",children:n.jsxs("div",{className:"relative",children:[n.jsx(_e,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),n.jsx("input",{type:"text",placeholder:"Поиск по названию или ключевым словам...",value:l,onChange:w=>o(w.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"})]})}),n.jsxs("div",{className:"flex gap-2",children:[n.jsxs("select",{value:c,onChange:w=>d(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"all",children:"Все статусы"}),n.jsx("option",{value:"completed",children:"Завершен"}),n.jsx("option",{value:"running",children:"Выполняется"}),n.jsx("option",{value:"error",children:"Ошибка"})]}),n.jsxs("select",{value:u,onChange:w=>m(w.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"all",children:"Все типы"}),n.jsx("option",{value:"geo_analysis",children:"Анализ ГЕО"}),n.jsx("option",{value:"competitor_analysis",children:"Анализ конкурентов"}),n.jsx("option",{value:"tz_generation",children:"Формирование ТЗ"})]})]})]})}),n.jsx("div",{className:"space-y-4",children:r?n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary-500 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Загрузка анализов..."}),n.jsx("p",{className:"text-gray-500",children:"Получаем данные из базы"})]}):a?n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"text-red-500 text-6xl mb-4",children:"⚠️"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-500 mb-4",children:a}),n.jsx("button",{onClick:()=>window.location.reload(),className:"btn btn-primary",children:"Попробовать снова"})]}):f.length===0?n.jsxs("div",{className:"card text-center py-12",children:[n.jsx(Xe,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Анализы не найдены"}),n.jsx("p",{className:"text-gray-500",children:"Попробуйте изменить фильтры или создать новый анализ"})]}):f.map(w=>n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex justify-between items-start",children:[n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"flex items-center space-x-3 mb-2",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:w.name}),n.jsx("span",{className:`px-2 py-1 text-xs rounded-full ${h(w.status)}`,children:p(w.status)})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Ключевые слова"}),n.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:w.keywords.map((C,N)=>n.jsx("span",{className:"px-2 py-1 text-xs bg-blue-100 text-blue-800 rounded-full",children:C},N))})]}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Страны"}),n.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:w.countries.map((C,N)=>n.jsx("span",{className:"px-2 py-1 text-xs bg-green-100 text-green-800 rounded-full",children:C.toUpperCase()},N))})]}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Результаты"}),n.jsxs("p",{className:"text-sm font-medium text-gray-900 mt-1",children:[w.resultsCount," записей"]})]})]}),n.jsxs("div",{className:"flex items-center text-sm text-gray-500",children:[n.jsx(Ut,{className:"h-4 w-4 mr-1"}),"Создан: ",v(w.createdAt)]})]}),n.jsxs("div",{className:"flex items-center space-x-2 ml-4",children:[n.jsx("button",{onClick:()=>y(w.id),className:"p-2 text-gray-400 hover:text-gray-600 transition-colors",title:"Просмотреть",children:n.jsx(Ht,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>b(w.id),className:"p-2 text-gray-400 hover:text-gray-600 transition-colors",title:"Экспортировать",children:n.jsx(Mt,{className:"h-4 w-4"})}),w.status==="completed"&&n.jsx("button",{onClick:()=>j(w.id),className:"p-2 text-green-400 hover:text-green-600 transition-colors",title:"Продолжить анализ",children:n.jsx(Ot,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>g(w.id),className:"p-2 text-red-400 hover:text-red-600 transition-colors",title:"Удалить",children:n.jsx(Uu,{className:"h-4 w-4"})})]})]})},w.id))}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Xe,{className:"h-8 w-8 text-primary-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Всего анализов"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:e.length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx($n,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Завершенных"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:e.filter(w=>w.status==="completed").length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Ot,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Выполняется"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:e.filter(w=>w.status==="running").length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Qm,{className:"h-8 w-8 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Результатов"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:e.reduce((w,C)=>w+C.resultsCount,0)})]})]})})]})]})},sC=({onModeChange:e,className:t=""})=>{const[r,s]=x.useState(null),[a,i]=x.useState("unified"),[l,o]=x.useState(""),[c,d]=x.useState(!0);x.useEffect(()=>{(async()=>{try{const p=await fetch("/api/notion-configs/default",{headers:{Authorization:`Bearer ${localStorage.getItem("auth_token")}`}});if(p.ok){const v=await p.json();s(v.data),v.data.displayMode&&(i(v.data.displayMode),o(v.data.selectedDatabaseId||""))}}catch(p){console.error("Error fetching active config:",p)}finally{d(!1)}})()},[]);const u=async h=>{var p;if(r)try{const v={displayMode:h};if(h==="single"){const g=(p=r.databases)==null?void 0:p.find(b=>b.isActive);g&&(v.selectedDatabaseId=g.databaseId,o(g.databaseId))}else o("");if((await fetch(`/api/notion-configs/${r.id}/display-mode`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("auth_token")}`},body:JSON.stringify(v)})).ok)i(h),e(h,h==="single"?v.selectedDatabaseId:void 0);else throw new Error("Ошибка изменения режима отображения")}catch(v){console.error("Error changing display mode:",v),alert("Ошибка изменения режима отображения")}},m=async h=>{if(r)try{if((await fetch(`/api/notion-configs/${r.id}/display-mode`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("auth_token")}`},body:JSON.stringify({displayMode:"single",selectedDatabaseId:h})})).ok)o(h),e("single",h);else throw new Error("Ошибка изменения выбранной таблицы")}catch(p){console.error("Error changing selected database:",p),alert("Ошибка изменения выбранной таблицы")}};if(c)return n.jsx("div",{className:`animate-pulse ${t}`,children:n.jsx("div",{className:"h-10 bg-gray-200 rounded"})});if(!r||!r.databases||r.databases.length===0)return null;const f=r.databases.filter(h=>h.isActive);return n.jsxs("div",{className:`flex items-center space-x-4 ${t}`,children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(xM,{className:"h-4 w-4 text-gray-500"}),n.jsx("span",{className:"text-sm font-medium text-gray-700",children:"Режим отображения:"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("button",{onClick:()=>u("unified"),className:`px-3 py-1 text-sm rounded-md transition-colors ${a==="unified"?"bg-indigo-100 text-indigo-700 border border-indigo-200":"bg-gray-100 text-gray-600 hover:bg-gray-200"}`,children:[n.jsx(br,{className:"h-3 w-3 inline mr-1"}),"Объединенный"]}),n.jsxs("button",{onClick:()=>u("single"),className:`px-3 py-1 text-sm rounded-md transition-colors ${a==="single"?"bg-indigo-100 text-indigo-700 border border-indigo-200":"bg-gray-100 text-gray-600 hover:bg-gray-200"}`,children:[n.jsx(br,{className:"h-3 w-3 inline mr-1"}),"Одна таблица"]})]}),a==="single"&&f.length>0&&n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Таблица:"}),n.jsx("select",{value:l,onChange:h=>m(h.target.value),className:"px-3 py-1 text-sm border border-gray-300 rounded-md focus:ring-indigo-500 focus:border-indigo-500",children:f.map(h=>n.jsx("option",{value:h.databaseId,children:h.databaseName||h.databaseId},h.id))})]})]})},Rh=({agentId:e,agentName:t,agentAvatar:r,className:s="",onSuggestion:a})=>{const[i,l]=x.useState([]),[o,c]=x.useState(""),[d,u]=x.useState(!1),[m,f]=x.useState(!0),[h,p]=x.useState(null),v=x.useRef(null),y=()=>{var j;(j=v.current)==null||j.scrollIntoView({behavior:"smooth"})};x.useEffect(y,[i]),x.useEffect(()=>{(async()=>{try{f(!0);const w=localStorage.getItem("auth_token"),C=await fetch(`/api/ai/conversations?agentId=${e}`,{headers:{...w&&{Authorization:`Bearer ${w}`}},credentials:"include"});if(C.ok){const N=await C.json();if(N.success&&N.data&&N.data.length>0){const A=N.data[0];p(A.conversation_id);const _=await fetch(`/api/ai/conversation/${A.conversation_id}/messages`,{headers:{...w&&{Authorization:`Bearer ${w}`}},credentials:"include"});if(_.ok){const I=await _.json();if(I.success&&I.data){const B=I.data.map((z,T)=>{var E;let D;if(z.action_params)try{const S=typeof z.action_params=="string"?JSON.parse(z.action_params):z.action_params;S&&(S.nextAgent||z.action)&&(D={nextAgent:S.nextAgent||S.action||z.action,action:S.action||z.action,reason:S.reason||"Предложение следующего действия"})}catch(S){console.warn("Failed to parse action_params:",S)}return{id:((E=z.message_id)==null?void 0:E.toString())||`msg-${T}`,sender:z.sender_type==="user"?"user":"agent",content:z.message||"",timestamp:new Date(z.created_at),suggestion:D}});l(B)}else l([{id:"0",sender:"agent",content:`Привет! Я ${t}. Чем могу помочь? 😊 Можете спросить: • "Что у нас есть по 'casino bonus'?" • "Где частотка > 1000?" • "Собери данные по 'online casino' для US, UK"`,timestamp:new Date}])}else l([{id:"0",sender:"agent",content:`Привет! Я ${t}. Чем могу помочь? 😊 Можете спросить: • "Что у нас есть по 'casino bonus'?" • "Где частотка > 1000?" • "Собери данные по 'online casino' для US, UK"`,timestamp:new Date}])}else l([{id:"0",sender:"agent",content:`Привет! Я ${t}. Чем могу помочь? 😊 Можете спросить: • "Что у нас есть по 'casino bonus'?" • "Где частотка > 1000?" • "Собери данные по 'online casino' для US, UK"`,timestamp:new Date}])}else l([{id:"0",sender:"agent",content:`Привет! Я ${t}. Чем могу помочь? 😊 Можете спросить: • "Что у нас есть по 'casino bonus'?" • "Где частотка > 1000?" • "Собери данные по 'online casino' для US, UK"`,timestamp:new Date}])}catch(w){console.error("Error loading conversation history:",w),l([{id:"0",sender:"agent",content:`Привет! Я ${t}. Чем могу помочь? 😊 Можете спросить: • "Что у нас есть по 'casino bonus'?" • "Где частотка > 1000?" • "Собери данные по 'online casino' для US, UK"`,timestamp:new Date}])}finally{f(!1)}})()},[e,t]);const g=async()=>{if(!o.trim()||d)return;const j={id:Date.now().toString(),sender:"user",content:o,timestamp:new Date};l(w=>[...w,j]),c(""),u(!0);try{const w=localStorage.getItem("auth_token"),C=await fetch("/api/ai/chat",{method:"POST",headers:{"Content-Type":"application/json",...w&&{Authorization:`Bearer ${w}`}},credentials:"include",body:JSON.stringify({agentId:e,message:o,conversationId:h})}),N=await C.json();if(!C.ok)throw new Error(N.error||"Failed to send message");N.conversationId&&!h&&p(N.conversationId);const A={id:(Date.now()+1).toString(),sender:"agent",content:N.message,timestamp:new Date,suggestion:N.suggestion};l(_=>[..._,A]),N.suggestion&&a&&a(N.suggestion)}catch(w){console.error("Error sending message:",w);const C={id:(Date.now()+1).toString(),sender:"agent",content:`❌ Ошибка: ${w.message}`,timestamp:new Date};l(N=>[...N,C])}finally{u(!1)}},b=j=>{j.key==="Enter"&&!j.shiftKey&&(j.preventDefault(),g())};return n.jsxs("div",{className:`flex flex-col bg-white rounded-lg shadow-lg border border-gray-200 ${s}`,children:[n.jsx("div",{className:"p-4 border-b bg-gradient-to-r from-primary-50 to-primary-100",children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsxs("div",{className:"relative",children:[r?n.jsx("img",{src:r,alt:t,className:"h-10 w-10 rounded-full border-2 border-primary-500"}):n.jsx("div",{className:"h-10 w-10 rounded-full bg-primary-600 flex items-center justify-center",children:n.jsx(qr,{className:"h-6 w-6 text-white"})}),n.jsx("div",{className:"absolute -bottom-1 -right-1 h-3 w-3 bg-green-500 border-2 border-white rounded-full"})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"font-semibold text-gray-900",children:t}),n.jsx("p",{className:"text-xs text-gray-500",children:"В сети"})]})]})}),n.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4 bg-gray-50 min-h-[400px] max-h-[600px]",children:[m?n.jsx("div",{className:"flex items-center justify-center h-full",children:n.jsxs("div",{className:"flex flex-col items-center gap-2",children:[n.jsx(Dj,{className:"h-6 w-6 animate-spin text-primary-600"}),n.jsx("p",{className:"text-sm text-gray-500",children:"Загрузка истории..."})]})}):i.map(j=>n.jsxs("div",{className:`flex gap-2 ${j.sender==="user"?"justify-end":"justify-start"}`,children:[j.sender==="agent"&&n.jsx("div",{className:"flex-shrink-0",children:r?n.jsx("img",{src:r,alt:"Agent",className:"h-8 w-8 rounded-full border border-primary-300"}):n.jsx("div",{className:"h-8 w-8 rounded-full bg-primary-600 flex items-center justify-center",children:n.jsx(qr,{className:"h-5 w-5 text-white"})})}),n.jsxs("div",{className:"flex flex-col max-w-[75%]",children:[n.jsx("div",{className:`rounded-lg p-3 ${j.sender==="user"?"bg-primary-600 text-white":"bg-white border border-gray-200 text-gray-900"}`,children:n.jsx("p",{className:"whitespace-pre-wrap text-sm",children:j.content})}),j.suggestion&&n.jsxs("div",{className:"mt-2 p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:[n.jsx("p",{className:"text-xs font-semibold text-yellow-800 mb-1",children:"💡 Предложение:"}),n.jsx("p",{className:"text-xs text-yellow-700 mb-2",children:j.suggestion.reason}),n.jsxs("button",{onClick:()=>a&&a(j.suggestion),className:"text-xs px-3 py-1 bg-yellow-600 text-white rounded hover:bg-yellow-700",children:["Передать ",j.suggestion.nextAgent]})]}),n.jsx("span",{className:"text-xs text-gray-400 mt-1",children:j.timestamp.toLocaleTimeString()})]}),j.sender==="user"&&n.jsx("div",{className:"flex-shrink-0",children:n.jsx("div",{className:"h-8 w-8 rounded-full bg-gray-300 flex items-center justify-center",children:n.jsx(Np,{className:"h-5 w-5 text-gray-600"})})})]},j.id)),d&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx("div",{className:"h-8 w-8 rounded-full bg-primary-600 flex items-center justify-center",children:n.jsx(qr,{className:"h-5 w-5 text-white"})}),n.jsx("div",{className:"bg-white border border-gray-200 rounded-lg p-3",children:n.jsxs("div",{className:"flex gap-1",children:[n.jsx("div",{className:"w-2 h-2 bg-primary-400 rounded-full animate-bounce"}),n.jsx("div",{className:"w-2 h-2 bg-primary-400 rounded-full animate-bounce [animation-delay:0.2s]"}),n.jsx("div",{className:"w-2 h-2 bg-primary-400 rounded-full animate-bounce [animation-delay:0.4s]"})]})})]}),n.jsx("div",{ref:v})]}),n.jsxs("div",{className:"p-4 border-t bg-white",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsx("textarea",{value:o,onChange:j=>c(j.target.value),onKeyPress:b,placeholder:"Напишите сообщение... (Enter - отправить, Shift+Enter - новая строка)",className:"flex-1 px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 resize-none",disabled:d,rows:2}),n.jsx("button",{onClick:g,disabled:d||!o.trim(),className:"px-4 py-2 bg-primary-600 text-white rounded-lg hover:bg-primary-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center gap-2",children:d?n.jsx(Dj,{className:"h-5 w-5 animate-spin"}):n.jsx(CM,{className:"h-5 w-5"})})]}),n.jsx("p",{className:"text-xs text-gray-400 mt-2",children:`💡 Примеры: "где частотка > 1000", "собери данные по 'casino' для US, UK"`})]})]})},Nd=({agentId:e,aiEnabled:t,suggestionsEnabled:r,onAiToggle:s,onSuggestionsToggle:a})=>n.jsxs("div",{className:"flex flex-wrap items-center gap-4 p-4 bg-white rounded-lg shadow-sm border border-gray-200",children:[n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(qr,{className:`h-5 w-5 ${t?"text-primary-600":"text-gray-400"}`}),n.jsx("span",{className:"font-medium text-gray-700",children:"AI Агент:"}),n.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:t,onChange:i=>s(i.target.checked),className:"sr-only peer"}),n.jsx("div",{className:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-primary-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-primary-600"})]}),n.jsx("span",{className:`font-semibold ${t?"text-green-600":"text-gray-500"}`,children:t?"ВКЛ":"ВЫКЛ"})]}),t&&n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(pM,{className:`h-5 w-5 ${r?"text-yellow-600":"text-gray-400"}`}),n.jsx("span",{className:"font-medium text-gray-700",children:"Подсказки:"}),n.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:r,onChange:i=>a(i.target.checked),className:"sr-only peer"}),n.jsx("div",{className:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-yellow-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-yellow-600"})]}),n.jsx("span",{className:`font-semibold ${r?"text-green-600":"text-gray-500"}`,children:r?"ВКЛ":"ВЫКЛ"})]}),t&&n.jsx("div",{className:"ml-auto text-xs text-gray-500",children:r?n.jsx("span",{className:"text-yellow-600",children:"💡 Агент будет давать подсказки в процессе работы"}):n.jsx("span",{children:"💬 Агент доступен в чате"})})]}),F0=({agentId:e,agentName:t,agentAvatar:r,defaultPosition:s="right",onSuggestion:a})=>{const[i,l]=x.useState(!1),[o,c]=x.useState(!1),[d,u]=x.useState(!1),[m,f]=x.useState(s);x.useEffect(()=>{const v=localStorage.getItem(`ai_prefs_${e}`);if(v){const y=JSON.parse(v);l(y.aiEnabled||!1),c(y.suggestionsEnabled||!1)}},[e]);const h=async v=>{l(v);const y={aiEnabled:v,suggestionsEnabled:o};localStorage.setItem(`ai_prefs_${e}`,JSON.stringify(y));try{const g=localStorage.getItem("auth_token");await fetch(`/api/ai/preferences/${e}`,{method:"PUT",headers:{"Content-Type":"application/json",...g&&{Authorization:`Bearer ${g}`}},credentials:"include",body:JSON.stringify({ai_enabled:v,suggestions_enabled:o})})}catch(g){console.error("Failed to save AI preferences:",g)}},p=async v=>{c(v);const y={aiEnabled:i,suggestionsEnabled:v};localStorage.setItem(`ai_prefs_${e}`,JSON.stringify(y));try{const g=localStorage.getItem("auth_token");await fetch(`/api/ai/preferences/${e}`,{method:"PUT",headers:{"Content-Type":"application/json",...g&&{Authorization:`Bearer ${g}`}},credentials:"include",body:JSON.stringify({ai_enabled:i,suggestions_enabled:v})})}catch(g){console.error("Failed to save AI preferences:",g)}};return i?m==="floating"?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"mb-4",children:n.jsx(Nd,{agentId:e,aiEnabled:i,suggestionsEnabled:o,onAiToggle:h,onSuggestionsToggle:p})}),n.jsx("div",{className:`fixed bottom-4 right-4 z-50 transition-all ${d?"w-16":"w-96"}`,children:d?n.jsx("button",{onClick:()=>u(!1),className:"h-16 w-16 rounded-full bg-primary-600 text-white shadow-lg hover:bg-primary-700 flex items-center justify-center",children:n.jsx(qr,{className:"h-8 w-8"})}):n.jsxs("div",{className:"h-[600px]",children:[n.jsxs("div",{className:"flex items-center justify-between p-2 bg-primary-600 text-white rounded-t-lg",children:[n.jsxs("span",{className:"text-sm font-medium",children:["💬 ",t]}),n.jsx("button",{onClick:()=>u(!0),className:"p-1 hover:bg-primary-700 rounded",children:n.jsx(Ol,{className:"h-4 w-4"})})]}),n.jsx(Rh,{agentId:e,agentName:t,agentAvatar:r,onSuggestion:a,className:"rounded-t-none"})]})})]}):m==="right"?n.jsxs("div",{className:"space-y-4",children:[n.jsx(Nd,{agentId:e,aiEnabled:i,suggestionsEnabled:o,onAiToggle:h,onSuggestionsToggle:p}),n.jsx("div",{className:"h-[700px]",children:n.jsx(Rh,{agentId:e,agentName:t,agentAvatar:r,onSuggestion:a})})]}):n.jsxs("div",{className:"space-y-4",children:[n.jsx(Nd,{agentId:e,aiEnabled:i,suggestionsEnabled:o,onAiToggle:h,onSuggestionsToggle:p}),n.jsx("div",{className:"h-[500px]",children:n.jsx(Rh,{agentId:e,agentName:t,agentAvatar:r,onSuggestion:a})})]}):n.jsx("div",{className:"mb-4",children:n.jsx(Nd,{agentId:e,aiEnabled:i,suggestionsEnabled:o,onAiToggle:h,onSuggestionsToggle:p})})},Sd={pl:"Poland",cz:"Czech Republic",ro:"Romania",in:"India",tr:"Turkey",de:"Germany",it:"Italy",gr:"Greece",us:"United States",gb:"United Kingdom",fr:"France",es:"Spain",nl:"Netherlands",be:"Belgium",at:"Austria",ch:"Switzerland",se:"Sweden",no:"Norway",dk:"Denmark",fi:"Finland",ie:"Ireland",pt:"Portugal",bg:"Bulgaria",hr:"Croatia",sk:"Slovakia",si:"Slovenia",hu:"Hungary",lv:"Latvia",lt:"Lithuania",ee:"Estonia",is:"Iceland",ca:"Canada",mx:"Mexico",br:"Brazil",cl:"Chile",co:"Colombia",pe:"Peru",ve:"Venezuela",ec:"Ecuador",bo:"Bolivia",py:"Paraguay",uy:"Uruguay",ar:"Argentina",au:"Australia",nz:"New Zealand",jp:"Japan",kr:"South Korea",cn:"China",sg:"Singapore",my:"Malaysia",th:"Thailand",id:"Indonesia",ph:"Philippines",vn:"Vietnam",kh:"Cambodia",kz:"Kazakhstan",uz:"Uzbekistan",tm:"Turkmenistan",tj:"Tajikistan",kg:"Kyrgyzstan",af:"Afghanistan",pk:"Pakistan",bd:"Bangladesh",lk:"Sri Lanka",iq:"Iraq",il:"Israel",sa:"Saudi Arabia",ae:"United Arab Emirates",qa:"Qatar",kw:"Kuwait",om:"Oman",ye:"Yemen",eg:"Egypt",tn:"Tunisia",dz:"Algeria",ma:"Morocco",et:"Ethiopia",ke:"Kenya",ug:"Uganda",tz:"Tanzania",zm:"Zambia",zw:"Zimbabwe",mz:"Mozambique",ao:"Angola",cd:"Democratic Republic of the Congo",cg:"Republic of the Congo",cf:"Central African Republic",ng:"Nigeria",cm:"Cameroon",ga:"Gabon",gh:"Ghana",tg:"Togo",bj:"Benin",bf:"Burkina Faso",ci:"Ivory Coast",gn:"Guinea",sn:"Senegal",ml:"Mali",ru:"Russia",ua:"Ukraine",by:"Belarus",md:"Moldova",ge:"Georgia",am:"Armenia",az:"Azerbaijan",al:"Albania",rs:"Serbia",ba:"Bosnia and Herzegovina"},LM=()=>{const e=Sr(),[t,r]=x.useState(""),[s,a]=x.useState(new Set),[i,l]=x.useState("searchVolume"),[o,c]=x.useState("desc"),[d,u]=x.useState("searchVolume"),[m,f]=x.useState("desc"),[h,p]=x.useState(!0),[v,y]=x.useState(null),[g,b]=x.useState([]),[j,w]=x.useState({}),[C,N]=x.useState({}),[A,_]=x.useState("unified"),[I,B]=x.useState(""),[z,T]=x.useState({}),[D,E]=x.useState(new Set),[S,k]=x.useState(new Set),[P,O]=x.useState(!1),$=V=>{if(!V)return"N/A";try{return new Date(V).toLocaleDateString("ru-RU",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return"N/A"}},H=(V,q,J)=>{if(V.hasError)return n.jsx("span",{className:"text-red-600 font-semibold",title:V.errorMessage||"Ошибка получения данных",children:"ERROR"});const G=V[q];return G===0?J?J(0):"0":G==null?n.jsx("span",{className:"text-gray-400",title:"Данные не доступны для этого GEO",children:"N/A"}):J?J(G):G},L=(V,q)=>{_(V),B(q||"")},W=V=>{const q=j[V]||0;return console.log(`getLaunchedSitesCount(${V}): ${q}`),q},M=(V,q)=>{const J=g.find(G=>G.keyword===V);if(J){const G=J.countries.find(le=>le.country.toLowerCase()===q.toLowerCase());if(G)return{totalDomains:G.totalDomains||0,sitesInWork:G.sitesInWork||0,launchedSites:G.launchedSites||0}}return{totalDomains:0,sitesInWork:0,launchedSites:0}},R=async(V,q,J)=>{try{const G=JSON.parse(localStorage.getItem("projects")||"[]");if(G.find(ce=>ce.keyword.toLowerCase()===V.toLowerCase()&&ce.country.toLowerCase()===q.toLowerCase()))alert(`Проект "${V} (${Sd[q]||q})" уже существует в плане!`);else{const ce={id:Date.now().toString(),keyword:V,country:q,status:"plan",priority:"medium",createdAt:new Date().toISOString().split("T")[0],updatedAt:new Date().toISOString().split("T")[0],searchVolume:J,notes:"Автоматически добавлено из анализа"};G.push(ce),localStorage.setItem("projects",JSON.stringify(G)),alert(`Проект "${V} (${Sd[q]||q})" добавлен в план!`)}}catch(G){console.error("Ошибка при добавлении в план:",G),alert("Ошибка при добавлении проекта в план")}};x.useEffect(()=>{(async()=>{try{p(!0);const q=await fetch("/api/geo-analysis",{headers:{"Cache-Control":"no-cache",Pragma:"no-cache"}});if(!q.ok)throw new Error(`HTTP error! status: ${q.status}`);const J=await q.json();let G=[];if(J.success&&J.data.results&&(G=J.data.results,console.log("Loaded",G.length,"results from API/DB")),G.length>0){const le=G.reduce((oe,se)=>{const ie=se.keyword;oe[ie]||(oe[ie]={keyword:se.keyword,totalCountries:0,totalSearchVolume:0,totalClickstreamVolume:0,averageCTR:0,averageDifficulty:0,minSearchVolume:se.googleAdsVolume||se.searchVolume||0,maxSearchVolume:se.googleAdsVolume||se.searchVolume||0,countries:[]});const de=se.googleAdsVolume||se.searchVolume||0,Le=se.clickstreamWithAds||se.clicks||0;return oe[ie].countries.push({country:se.country.toLowerCase(),countryName:se.countryName||Sd[se.country.toLowerCase()]||se.country,googleAdsVolume:se.googleAdsVolume||0,googleAdsCPC:se.googleAdsCPC||0,googleAdsTrendMoM:se.googleAdsTrendMoM||null,clickstreamWithAds:se.clickstreamWithAds||0,clickstreamOrganic:se.clickstreamOrganic||0,clickstreamTrendMoM:se.clickstreamTrendMoM||null,ctr:se.ctr||null,dataForSeoTrends:se.dataForSeoTrends||null,dataForSeoTrendsTrend:se.dataForSeoTrendsTrend||null,googleTrends:se.googleTrends||null,googleTrendsTrend:se.googleTrendsTrend||null,ahrefsVolume:se.ahrefsVolume||0,ahrefsClicks:se.ahrefsClicks||0,ahrefsDifficulty:se.ahrefsDifficulty||0,totalDomains:se.totalDomains||0,sitesInWork:se.sitesInWork||0,launchedSites:se.launchedSites||0,searchVolume:de,clicks:Le,cpc:se.googleAdsCPC||se.cpc||0,difficulty:se.ahrefsDifficulty||se.difficulty||0,globalSearchVolume:se.globalSearchVolume||0,trafficPotential:se.clickstreamWithAds||se.trafficPotential||0,lastUpdated:se.lastUpdated||new Date().toISOString()}),oe[ie].totalCountries++,oe[ie].totalSearchVolume+=de,oe[ie].totalClickstreamVolume+=Le,se.ctr&&(oe[ie].averageCTR+=se.ctr),oe[ie].averageDifficulty+=se.ahrefsDifficulty||se.difficulty||0,oe[ie].minSearchVolume=Math.min(oe[ie].minSearchVolume,de),oe[ie].maxSearchVolume=Math.max(oe[ie].maxSearchVolume,de),oe},{});Object.values(le).forEach(oe=>{oe.averageDifficulty=Math.round(oe.averageDifficulty/oe.totalCountries),oe.averageCTR=oe.averageCTR/oe.totalCountries});const ce=Object.values(le);b(ce),console.log("Analysis data loaded with Notion stats from database")}else b([])}catch(q){console.error("Error fetching analyses:",q),y(q instanceof Error?q.message:"Unknown error"),b([])}finally{p(!1)}})()},[]);const U=V=>{const q=new Set(s);q.has(V)?q.delete(V):q.add(V),a(q)},K=V=>{d===V?f(m==="asc"?"desc":"asc"):(u(V),f("desc"))},Y=[...g.filter(V=>V.keyword.toLowerCase().includes(t.toLowerCase()))].sort((V,q)=>{const J=Number(V[i])||0,G=Number(q[i])||0;return o==="asc"?J-G:G-J});return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Результаты анализов"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Просмотр и анализ собранных данных по ключевым словам"}),n.jsx("div",{className:"mt-4",children:n.jsx(sC,{onModeChange:L})})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-5 gap-4",children:[n.jsx("div",{className:"card",title:"Общее количество стран в анализе",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(vt,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Стран"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:new Set(g.flatMap(V=>V.countries.map(q=>q.country))).size})]})]})}),n.jsx("div",{className:"card",title:"Минимальная частотность среди всех результатов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Je,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Мин частотность"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:g.length>0?Math.min(...g.flatMap(V=>V.countries.map(q=>q.googleAdsVolume||q.searchVolume||0))).toLocaleString():0})]})]})}),n.jsx("div",{className:"card",title:"Максимальная частотность среди всех результатов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Xe,{className:"h-8 w-8 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Макс частотность"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:g.length>0?Math.max(...g.flatMap(V=>V.countries.map(q=>q.googleAdsVolume||q.searchVolume||0))).toLocaleString():0})]})]})}),n.jsx("div",{className:"card",title:"Количество стран где запущены сайты",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(vt,{className:"h-8 w-8 text-orange-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Запущенные страны"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:g.reduce((V,q)=>V+q.countries.filter(J=>(J.launchedSites||0)>0).length,0)})]})]})}),n.jsx("div",{className:"card",title:"Общее количество запущенных сайтов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(yn,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Запущенные сайты"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:g.reduce((V,q)=>V+q.countries.reduce((J,G)=>J+(G.launchedSites||0),0),0)})]})]})})]}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[n.jsx("div",{className:"flex-1",children:n.jsxs("div",{className:"relative",children:[n.jsx(_e,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),n.jsx("input",{type:"text",placeholder:"Поиск по ключевым словам...",value:t,onChange:V=>r(V.target.value),className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"})]})}),n.jsxs("div",{className:"flex gap-2",children:[n.jsxs("select",{value:i,onChange:V=>l(V.target.value),className:"px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"totalSearchVolume",children:"Общая частотность"}),n.jsx("option",{value:"totalCountries",children:"Количество стран"}),n.jsx("option",{value:"averageDifficulty",children:"Средний KD"})]}),n.jsx("button",{onClick:()=>c(o==="asc"?"desc":"asc"),className:"px-3 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-primary-500",children:n.jsx(nt,{className:"h-4 w-4"})})]})]})}),n.jsx("div",{className:"space-y-4",children:h?n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary-500 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Загрузка результатов..."}),n.jsx("p",{className:"text-gray-500",children:"Получаем данные из базы"})]}):v?n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"text-red-500 text-6xl mb-4",children:"⚠️"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-500 mb-4",children:v}),n.jsx("button",{onClick:()=>window.location.reload(),className:"btn btn-primary",children:"Попробовать снова"})]}):Y.length===0?n.jsxs("div",{className:"card text-center py-12",children:[n.jsx(Xe,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Результаты не найдены"}),n.jsx("p",{className:"text-gray-500",children:"Попробуйте изменить фильтры или создать новый анализ"})]}):Y.map(V=>n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx("button",{onClick:()=>U(V.keyword),className:"p-1 hover:bg-gray-100 rounded",children:s.has(V.keyword)?n.jsx(Ol,{className:"h-5 w-5 text-gray-500"}):n.jsx($0,{className:"h-5 w-5 text-gray-500"})}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 cursor-pointer hover:text-primary-600",onClick:()=>e(`/keyword/${V.keyword}`),children:V.keyword})]}),n.jsxs("div",{className:"flex items-center space-x-6",children:[n.jsxs("div",{className:"text-right min-w-[80px]",children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Стран"}),n.jsx("p",{className:"text-lg font-semibold",children:V.totalCountries})]}),n.jsxs("div",{className:"text-right min-w-[120px]",children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Средняя частотность"}),n.jsx("p",{className:"text-lg font-semibold",children:Math.round(V.totalSearchVolume/V.totalCountries).toLocaleString()}),n.jsxs("p",{className:"text-xs text-gray-400",children:[V.minSearchVolume.toLocaleString()," - ",V.maxSearchVolume.toLocaleString()]})]}),n.jsxs("div",{className:"text-right min-w-[100px]",children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Средний клик"}),n.jsx("p",{className:"text-lg font-semibold",children:Math.round(V.countries.reduce((q,J)=>q+(J.clicks||0),0)/V.countries.length).toLocaleString()})]}),n.jsxs("div",{className:"text-right min-w-[100px]",children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Средний потенциал"}),n.jsx("p",{className:"text-lg font-semibold",children:Math.round(V.countries.reduce((q,J)=>q+(J.trafficPotential||0),0)/V.countries.length).toLocaleString()})]}),n.jsxs("div",{className:"text-right min-w-[100px]",children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Средний KD"}),n.jsx("p",{className:"text-lg font-semibold",children:V.averageDifficulty})]}),n.jsxs("div",{className:"text-right min-w-[100px]",children:[n.jsx("p",{className:"text-sm text-gray-500",children:"Запущенные сайты"}),n.jsx("p",{className:"text-lg font-semibold text-green-600",children:W(V.keyword)})]})]})]}),s.has(V.keyword)&&n.jsx("div",{className:"mt-4 border-t pt-4",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider sticky left-0 z-10 bg-gray-50",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:()=>{V.countries.every(J=>D.has(`${V.keyword}-${J.country}`))?V.countries.forEach(J=>{D.delete(`${V.keyword}-${J.country}`)}):V.countries.forEach(J=>{D.add(`${V.keyword}-${J.country}`)}),E(new Set(D))},className:"p-1 hover:bg-gray-200 rounded",title:V.countries.every(q=>D.has(`${V.keyword}-${q.country}`))?"Снять выделение":"Выделить все",children:V.countries.every(q=>D.has(`${V.keyword}-${q.country}`))?n.jsx(bp,{className:"h-4 w-4"}):n.jsx(jp,{className:"h-4 w-4"})}),n.jsxs("button",{onClick:()=>K("country"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Страна"}),n.jsx(nt,{className:"h-3 w-3"})]})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>K("createdAt"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Дата проверки",children:[n.jsx(Ut,{className:"h-3 w-3"}),n.jsx("span",{children:"Дата проверки"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-blue-50",children:n.jsxs("button",{onClick:()=>K("googleAdsVolume"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Google Ads частотность",children:[n.jsx("span",{children:"Google Ads"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-blue-50",children:n.jsxs("button",{onClick:()=>K("googleAdsCPC"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Google Ads CPC",children:[n.jsx("span",{children:"CPC"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-green-50",children:n.jsxs("button",{onClick:()=>K("clickstreamWithAds"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Clickstream частотность (альтернативный источник)",children:[n.jsx("span",{children:"Clickstream"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-green-50",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Изменение Clickstream за месяц",children:[n.jsx("span",{children:"Trend MoM"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-gray-50",children:n.jsxs("button",{onClick:()=>K("ahrefsVolume"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Ahrefs частотность",children:[n.jsx("span",{children:"Ahrefs"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-gray-50",children:n.jsxs("button",{onClick:()=>K("ahrefsDifficulty"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Ahrefs KD",children:[n.jsx("span",{children:"KD"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>K("totalDomains"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Доменов"}),n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsx("span",{children:"Запущено"})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{children:"Действия"}),D.size>0&&Array.from(D).some(q=>q.startsWith(`${V.keyword}-`))&&n.jsxs("button",{onClick:async()=>{const q=Array.from(D).filter(J=>J.startsWith(`${V.keyword}-`)).map(J=>{const[,G]=J.split("-",2);return{keyword:V.keyword,country:G}});if(q.length!==0){O(!0);try{for(const J of q){k(G=>new Set([...G,`${J.keyword}-${J.country}`]));try{const le=await(await fetch("/api/geo-analysis/multi-source",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:J.keyword,country:J.country.toUpperCase()})})).json();le.success&&await fetch("/api/geo-analysis/multi-source/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({results:[le.data]})})}catch(G){console.error(`Error updating ${J.keyword}-${J.country}:`,G)}finally{k(G=>{const le=new Set(G);return le.delete(`${J.keyword}-${J.country}`),le})}}E(new Set),window.location.reload()}catch(J){alert("Ошибка массового обновления: "+J.message)}finally{O(!1)}}},className:"btn-secondary text-xs px-2 py-1 flex items-center gap-1",disabled:P,children:[n.jsx(Te,{className:`h-3 w-3 ${P?"animate-spin":""}`}),"Обновить выбранные (",Array.from(D).filter(q=>q.startsWith(`${V.keyword}-`)).length,")"]})]})})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:[...V.countries].sort((q,J)=>{const G=d==="country"?q[d]:Number(q[d])||0,le=d==="country"?J[d]:Number(J[d])||0;return d==="country"?m==="asc"?G.localeCompare(le):le.localeCompare(G):m==="asc"?G-le:le-G}).map((q,J)=>{const G=`${V.keyword}-${q.country}`,le=D.has(G),ce=S.has(G);return n.jsxs("tr",{className:`hover:bg-gray-50 ${le?"bg-blue-50":""}`,children:[n.jsx("td",{className:"px-4 py-4 whitespace-nowrap sticky left-0 z-10 bg-white",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:oe=>{oe.stopPropagation();const se=new Set(D);le?se.delete(G):se.add(G),E(se)},className:"p-1 hover:bg-gray-200 rounded",children:le?n.jsx(bp,{className:"h-4 w-4 text-blue-600"}):n.jsx(jp,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>e(`/keyword/${V.keyword}/country/${q.country}`),className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-800 rounded-full hover:bg-blue-200 transition-colors",title:`${q.countryName||Sd[q.country.toLowerCase()]||q.country}`,children:q.country.toUpperCase()})]})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-600",children:n.jsx("span",{className:"text-xs",title:q.createdAt||q.updatedAt||"N/A",children:$(q.createdAt||q.updatedAt)})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-blue-50 font-medium",children:H(q,"googleAdsVolume",oe=>oe.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-600 bg-blue-50",children:H(q,"googleAdsCPC",oe=>`$${oe.toFixed(2)}`)}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-green-50 font-medium",children:H(q,"clickstreamWithAds",oe=>oe.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm bg-green-50",children:q.clickstreamTrendMoM?n.jsx("span",{className:`px-2 py-1 text-xs rounded ${q.clickstreamTrendMoM.includes("+")?"bg-green-100 text-green-800":q.clickstreamTrendMoM.includes("-")?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:q.clickstreamTrendMoM}):"-"}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-gray-50 font-medium",children:(q.ahrefsVolume||0).toLocaleString()}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap bg-gray-50",children:q.ahrefsDifficulty>0?n.jsx("span",{className:`px-2 py-1 text-xs font-medium rounded-full ${q.ahrefsDifficulty<30?"bg-green-100 text-green-800":q.ahrefsDifficulty<60?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:q.ahrefsDifficulty}):"-"}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-800 rounded-full",children:M(V.keyword,q.country).totalDomains.toLocaleString()})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-green-100 text-green-800 rounded-full",children:M(V.keyword,q.country).launchedSites.toLocaleString()})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm font-medium",children:n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>e(`/keyword/${V.keyword}/country/${q.country}`),className:"text-primary-600 hover:text-primary-900",title:"Просмотр деталей",children:n.jsx(Ht,{className:"h-4 w-4"})}),n.jsx("button",{onClick:async()=>{k(oe=>new Set([...oe,G]));try{const se=await(await fetch("/api/geo-analysis/multi-source",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:V.keyword,country:q.country.toUpperCase()})})).json();se.success?(await fetch("/api/geo-analysis/multi-source/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({results:[se.data]})}),window.location.reload()):alert("Ошибка обновления: "+(se.error||"Неизвестная ошибка"))}catch(oe){alert("Ошибка обновления: "+oe.message)}finally{k(oe=>{const se=new Set(oe);return se.delete(G),se})}},className:"text-green-600 hover:text-green-900",title:"Обновить данные",disabled:ce,children:n.jsx(Te,{className:`h-4 w-4 ${ce?"animate-spin":""}`})}),n.jsx("button",{onClick:()=>R(V.keyword,q.country,q.googleAdsVolume||q.searchVolume),className:"text-blue-600 hover:text-blue-900",title:"Добавить в план",children:n.jsx(jr,{className:"h-4 w-4"})})]})})]},J)})})]})})})]},V.keyword))}),n.jsx(F0,{agentId:"geo_analysis",agentName:"GEO Analysis Agent",defaultPosition:"floating",onSuggestion:V=>{console.log("AI suggestion:",V)}})]})},eo={pl:"Poland",cz:"Czech Republic",ro:"Romania",in:"India",tr:"Turkey",de:"Germany",it:"Italy",gr:"Greece",us:"United States",gb:"United Kingdom",fr:"France",es:"Spain",nl:"Netherlands",be:"Belgium",at:"Austria",ch:"Switzerland",se:"Sweden",no:"Norway",dk:"Denmark",fi:"Finland",ie:"Ireland",pt:"Portugal",bg:"Bulgaria",hr:"Croatia",sk:"Slovakia",si:"Slovenia",hu:"Hungary",lv:"Latvia",lt:"Lithuania",ee:"Estonia",cy:"Cyprus",mt:"Malta",lu:"Luxembourg",is:"Iceland",li:"Liechtenstein",ad:"Andorra",mc:"Monaco",sm:"San Marino",va:"Vatican City",ca:"Canada",mx:"Mexico",br:"Argentina",cl:"Chile",co:"Colombia",pe:"Peru",ve:"Venezuela",ec:"Ecuador",bo:"Bolivia",py:"Paraguay",uy:"Uruguay",gy:"Guyana",sr:"Suriname",gf:"French Guiana",fk:"Falkland Islands",gs:"South Georgia",ar:"Argentina",au:"Australia",nz:"New Zealand",jp:"Japan",kr:"South Korea",cn:"China",hk:"Hong Kong",tw:"Taiwan",sg:"Singapore",my:"Malaysia",th:"Thailand",id:"Indonesia",ph:"Philippines",vn:"Vietnam",kh:"Cambodia",la:"Laos",mm:"Myanmar",bn:"Brunei",tl:"East Timor",mn:"Mongolia",kz:"Kazakhstan",uz:"Uzbekistan",tm:"Turkmenistan",tj:"Tajikistan",kg:"Kyrgyzstan",af:"Afghanistan",pk:"Pakistan",bd:"Bangladesh",lk:"Sri Lanka",mv:"Maldives",bt:"Bhutan",np:"Nepal",ir:"Iran",iq:"Iraq",sy:"Syria",lb:"Lebanon",jo:"Jordan",il:"Israel",ps:"Palestine",sa:"Saudi Arabia",ae:"United Arab Emirates",qa:"Qatar",bh:"Bahrain",kw:"Kuwait",om:"Oman",ye:"Yemen",eg:"Egypt",ly:"Libya",tn:"Tunisia",dz:"Algeria",ma:"Morocco",sd:"Sudan",ss:"South Sudan",et:"Ethiopia",er:"Eritrea",dj:"Djibouti",so:"Somalia",ke:"Kenya",ug:"Uganda",tz:"Tanzania",rw:"Rwanda",bi:"Burundi",mw:"Malawi",zm:"Zambia",zw:"Zimbabwe",bw:"Botswana",na:"Namibia",sz:"Eswatini",ls:"Lesotho",mg:"Madagascar",mu:"Mauritius",sc:"Seychelles",km:"Comoros",yt:"Mayotte",re:"Réunion",mz:"Mozambique",ao:"Angola",cd:"Democratic Republic of the Congo",cg:"Republic of the Congo",cf:"Central African Republic",td:"Chad",ne:"Niger",ng:"Nigeria",cm:"Cameroon",gq:"Equatorial Guinea",ga:"Gabon",st:"São Tomé and Príncipe",gh:"Ghana",tg:"Togo",bj:"Benin",bf:"Burkina Faso",ci:"Ivory Coast",lr:"Liberia",sl:"Sierra Leone",gn:"Guinea",gw:"Guinea-Bissau",gm:"Gambia",sn:"Senegal",ml:"Mali",mr:"Mauritania",cv:"Cape Verde",ru:"Russia",ua:"Ukraine",by:"Belarus",md:"Moldova",ge:"Georgia",am:"Armenia",az:"Azerbaijan",al:"Albania",mk:"North Macedonia",me:"Montenegro",rs:"Serbia",ba:"Bosnia and Herzegovina",xk:"Kosovo"},IM=()=>{const{keyword:e}=Tl(),t=Sr(),[r,s]=x.useState(new Set),[a,i]=x.useState("searchVolume"),[l,o]=x.useState("desc"),[c,d]=x.useState(null),[u,m]=x.useState(!0),[f,h]=x.useState(null),[p,v]=x.useState({});x.useEffect(()=>{e&&(async()=>{try{m(!0);const k=await fetch("/api/geo-analysis");if(!k.ok)throw new Error("Failed to fetch data");const P=await k.json();console.log("Searching for keyword:",e),console.log("Available keywords:",P.data.results.map($=>$.keyword));const O=P.data.results.filter($=>$.keyword===e);if(console.log("Filtered results:",O),O.length>0){const $=O.reduce((L,W)=>L+W.searchVolume,0),H=Math.round(O.reduce((L,W)=>L+W.difficulty,0)/O.length);d({keyword:e,totalCountries:O.length,totalSearchVolume:$,averageDifficulty:H,countries:O.map(L=>({country:L.country,countryName:L.countryName||eo[L.country.toLowerCase()]||L.country,googleAdsVolume:L.googleAdsVolume||0,googleAdsCPC:L.googleAdsCPC||0,googleAdsTrendMoM:L.googleAdsTrendMoM||null,clickstreamWithAds:L.clickstreamWithAds||0,clickstreamOrganic:L.clickstreamOrganic||0,ctr:L.ctr||null,ahrefsVolume:L.ahrefsVolume||0,ahrefsClicks:L.ahrefsClicks||0,ahrefsDifficulty:L.ahrefsDifficulty||0,dataForSeoTrends:L.dataForSeoTrends||null,googleTrends:L.googleTrends||null,searchVolume:L.googleAdsVolume||L.searchVolume||0,clicks:L.clickstreamWithAds||L.clicks||0,cpc:L.googleAdsCPC||L.cpc||0,difficulty:L.ahrefsDifficulty||L.difficulty||0,globalSearchVolume:L.globalSearchVolume||0,trafficPotential:L.trafficPotential||0,lastUpdated:L.lastUpdated||new Date().toISOString(),competitorAnalysis:{completed:!1,competitors:[]},aiAnalysis:{completed:!1,recommendations:{difficulty:"unknown",potential:"unknown",strategy:"Анализ не выполнен",estimatedTraffic:"Не определено",competitionLevel:"Не определено",suggestedDomains:0,suggestedDrops:0}},tzGeneration:{completed:!1,variants:[]},domainSearch:{completed:!1,domains:[]},dropSearch:{completed:!1,drops:[]},totalDomains:Math.floor(Math.random()*1e3)+100,sitesAllStatuses:Math.floor(Math.random()*500)+50,launchedSites:Math.floor(Math.random()*100)+10}))})}else h("Данные для указанного ключевого слова не найдены")}catch(k){h("Ошибка при загрузке данных"),console.error("Error fetching keyword data:",k)}finally{m(!1)}})()},[e]),x.useEffect(()=>{(async()=>{if(!(!c||!c.countries)){console.log("Loading Notion data for KeywordDetail...");try{const k={};for(const P of c.countries){const O=`${e}-${P.country.toLowerCase()}`;try{const $=await fetch(`/api/notion/stats/${e}/${P.country.toLowerCase()}`);if($.ok){const H=await $.json();H.success&&(k[O]={totalDomains:H.totalDomains,sitesInWork:H.sitesInWork,launchedSites:H.launchedSites})}}catch($){console.error(`Error loading stats for ${e} ${P.country}:`,$)}}v(k),console.log("Notion stats loaded for KeywordDetail:",k)}catch(k){console.error("Error loading Notion data:",k)}}})()},[c,e]);const y=S=>{const k=`${e}-${S.toLowerCase()}`;return p[k]||{totalDomains:0,sitesInWork:0,launchedSites:0}},g=()=>{s(new Set(c.countries.map(S=>S.country)))},b=()=>{s(new Set)},j=S=>{a===S?o(l==="asc"?"desc":"asc"):(i(S),o("desc"))},w=async(S,k,P)=>{try{const O=JSON.parse(localStorage.getItem("projects")||"[]");if(O.find(H=>H.keyword.toLowerCase()===S.toLowerCase()&&H.country.toLowerCase()===k.toLowerCase()))alert(`Проект "${S} (${eo[k]||k})" уже существует в плане!`);else{const H={id:Date.now().toString(),keyword:S,country:k,status:"plan",priority:"medium",createdAt:new Date().toISOString().split("T")[0],updatedAt:new Date().toISOString().split("T")[0],searchVolume:P,notes:"Автоматически добавлено из анализа"};O.push(H),localStorage.setItem("projects",JSON.stringify(O)),alert(`Проект "${S} (${eo[k]||k})" добавлен в план!`)}}catch(O){console.error("Ошибка при добавлении в план:",O),alert("Ошибка при добавлении проекта в план")}},C=async()=>{if(r.size===0){alert("Выберите страны для добавления в план");return}try{const S=JSON.parse(localStorage.getItem("projects")||"[]");let k=0,P=0;for(const O of r){const $=c.countries.find(L=>L.country===O);if(!$)continue;if(S.find(L=>L.keyword.toLowerCase()===e.toLowerCase()&&L.country.toLowerCase()===O.toLowerCase()))P++;else{const L={id:Date.now().toString()+Math.random().toString(36).substr(2,9),keyword:e,country:O,status:"plan",priority:"medium",createdAt:new Date().toISOString().split("T")[0],updatedAt:new Date().toISOString().split("T")[0],searchVolume:$.searchVolume,notes:"Автоматически добавлено из анализа"};S.push(L),k++}}localStorage.setItem("projects",JSON.stringify(S)),k>0&&P>0?alert(`Добавлено в план: ${k} проектов Пропущено (уже существуют): ${P} проектов`):k>0?alert(`Успешно добавлено в план: ${k} проектов`):alert(`Все выбранные проекты уже существуют в плане (${P} проектов)`),b()}catch(S){console.error("Ошибка при массовом добавлении в план:",S),alert("Ошибка при добавлении проектов в план")}},N=()=>{console.log("Starting competitor analysis for countries:",Array.from(r))},A=()=>{console.log("Starting AI analysis for countries:",Array.from(r))},_=()=>{console.log("Starting TZ generation for countries:",Array.from(r))},I=()=>{console.log("Starting domain search for countries:",Array.from(r))},B=()=>{console.log("Starting drop search for countries:",Array.from(r))},z=S=>{t(`/keyword/${e}/country/${S}`)},T=S=>new Date(S).toLocaleDateString("ru-RU",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),D=S=>{const k=new Date(S),P=k.getDate().toString().padStart(2,"0"),O=(k.getMonth()+1).toString().padStart(2,"0"),$=k.getFullYear();return`${P}.${O}.${$}`};if(u)return n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary-600 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Загрузка данных..."}),n.jsx("p",{className:"text-gray-500",children:"Получение информации о ключевом слове"})]})});if(f||!c)return n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"text-6xl text-red-300 mb-4",children:"⚠️"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-500 mb-4",children:f||"Данные не найдены"}),n.jsxs("button",{onClick:()=>t("/analysis-results"),className:"btn-primary",children:[n.jsx(ca,{className:"h-4 w-4 mr-2"}),"Вернуться к результатам"]})]})});const E=[...c.countries].sort((S,k)=>{const P=Number(S[a])||0,O=Number(k[a])||0;return l==="asc"?P-O:O-P});return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsx("button",{onClick:()=>t("/analysis-results"),className:"p-2 hover:bg-gray-100 rounded-lg transition-colors",children:n.jsx(ca,{className:"h-5 w-5"})}),n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:c.keyword}),n.jsx("p",{className:"text-sm text-gray-500",children:"Детальный анализ по ключевому слову"})]})]}),n.jsx("div",{className:"flex items-center space-x-2",children:n.jsxs("button",{className:"btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]})})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(vt,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Стран"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:c.totalCountries})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Xe,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Общая частотность"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:c.totalSearchVolume.toLocaleString()})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Je,{className:"h-8 w-8 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Средний KD"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:c.averageDifficulty})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(yn,{className:"h-8 w-8 text-orange-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Выбрано стран"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:r.size})]})]})})]}),r.size>0&&n.jsx("div",{className:"card bg-blue-50 border-blue-200",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsxs("span",{className:"text-sm font-medium text-blue-900",children:["Выбрано стран: ",r.size]}),n.jsx("button",{onClick:b,className:"text-sm text-blue-600 hover:text-blue-800",children:"Очистить выбор"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("button",{onClick:C,className:"btn-primary text-sm",children:[n.jsx(jr,{className:"h-4 w-4 mr-1"}),"Добавить в план"]}),n.jsxs("button",{onClick:N,className:"btn-secondary text-sm",children:[n.jsx(_e,{className:"h-4 w-4 mr-1"}),"Анализ конкурентов"]}),n.jsxs("button",{onClick:A,className:"btn-secondary text-sm",children:[n.jsx(qr,{className:"h-4 w-4 mr-1"}),"ИИ-анализ"]}),n.jsxs("button",{onClick:_,className:"btn-secondary text-sm",children:[n.jsx(da,{className:"h-4 w-4 mr-1"}),"ТЗ"]}),n.jsxs("button",{onClick:I,className:"btn-secondary text-sm",children:[n.jsx(Tt,{className:"h-4 w-4 mr-1"}),"Домены"]}),n.jsxs("button",{onClick:B,className:"btn-secondary text-sm",children:[n.jsx(br,{className:"h-4 w-4 mr-1"}),"Дропы"]})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[n.jsx("div",{className:"flex-1",children:n.jsxs("select",{value:a,onChange:S=>i(S.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"ahrefsVolume",children:"Частотность Ahrefs"}),n.jsx("option",{value:"googleAdsVolume",children:"Keyword Planner (Google Ads)"}),n.jsx("option",{value:"clickstreamWithAds",children:"Clickstream"}),n.jsx("option",{value:"difficulty",children:"KD"}),n.jsx("option",{value:"totalDomains",children:"Всего доменов"}),n.jsx("option",{value:"launchedSites",children:"Запущенные сайты"})]})}),n.jsx("div",{className:"flex gap-2",children:n.jsx("button",{onClick:()=>o(l==="asc"?"desc":"asc"),className:"px-3 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-primary-500",children:n.jsx(nt,{className:"h-4 w-4"})})})]})}),n.jsx("div",{className:"card",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Страна"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-gray-50",title:"Частотность по данным Ahrefs",children:n.jsxs("button",{onClick:()=>j("ahrefsVolume"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Частотность Ahrefs"}),a==="ahrefsVolume"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-gray-50",title:"Keyword Difficulty (сложность)",children:n.jsxs("button",{onClick:()=>j("difficulty"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"KD"}),a==="difficulty"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-blue-50",title:"Частотность из Google Keyword Planner (DataForSEO)",children:n.jsxs("button",{onClick:()=>j("googleAdsVolume"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Keyword Planner"}),a==="googleAdsVolume"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-green-50",title:"Фактические клики (Clickstream)",children:n.jsxs("button",{onClick:()=>j("clickstreamWithAds"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Clickstream"}),a==="clickstreamWithAds"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>j("lastUpdated"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Дата обновления"}),a==="lastUpdated"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>j("totalDomains"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Всего доменов"}),a==="totalDomains"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>j("launchedSites"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Запущенные сайты"}),a==="launchedSites"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Действия"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:E.map((S,k)=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:n.jsxs("button",{onClick:()=>t(`/keyword/${e}/country/${S.country}`),className:"px-3 py-1 text-sm font-medium bg-blue-100 text-blue-800 rounded-full hover:bg-blue-200 transition-colors",title:`${eo[S.country.toLowerCase()]||S.country}`,children:[eo[S.country.toLowerCase()]||S.country," (",S.country.toUpperCase(),")"]})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-gray-50 font-medium",children:(S.ahrefsVolume||0).toLocaleString()}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap bg-gray-50",children:n.jsx("span",{className:`px-2 py-1 text-xs font-medium rounded-full ${(S.ahrefsDifficulty||S.difficulty||0)<30?"bg-green-100 text-green-800":(S.ahrefsDifficulty||S.difficulty||0)<60?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:S.ahrefsDifficulty||S.difficulty||0})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-blue-50 font-medium",children:(S.googleAdsVolume||0).toLocaleString()}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-green-50 font-medium",children:(S.clickstreamWithAds||0).toLocaleString()}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-500",children:D(S.createdAt||S.updatedAt||S.lastUpdated)}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-blue-100 text-blue-800 rounded-full",children:y(S.country).totalDomains.toLocaleString()})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-green-100 text-green-800 rounded-full",children:y(S.country).launchedSites.toLocaleString()})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm font-medium",children:n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>z(S.country),className:"text-primary-600 hover:text-primary-900",title:"Просмотр деталей",children:n.jsx(Ht,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>w(e,S.country,S.googleAdsVolume||S.searchVolume),className:"text-blue-600 hover:text-blue-900",title:"Добавить в план",children:n.jsx(jr,{className:"h-4 w-4"})})]})})]},k))})]})})}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("button",{onClick:g,className:"btn-secondary text-sm",children:[n.jsx(bp,{className:"h-4 w-4 mr-1"}),"Выбрать все"]}),n.jsxs("button",{onClick:b,className:"btn-secondary text-sm",children:[n.jsx(jp,{className:"h-4 w-4 mr-1"}),"Очистить"]})]}),n.jsxs("div",{className:"text-sm text-gray-500",children:["Обновлено: ",T(c.countries[0].lastUpdated)]})]})]})};function aC(e,t){return function(){return e.apply(t,arguments)}}const{toString:RM}=Object.prototype,{getPrototypeOf:z0}=Object,{iterator:tf,toStringTag:iC}=Symbol,rf=(e=>t=>{const r=RM.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),Rn=e=>(e=e.toLowerCase(),t=>rf(t)===e),nf=e=>t=>typeof t===e,{isArray:Ml}=Array,ml=nf("undefined");function kc(e){return e!==null&&!ml(e)&&e.constructor!==null&&!ml(e.constructor)&&$r(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const lC=Rn("ArrayBuffer");function FM(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&lC(e.buffer),t}const zM=nf("string"),$r=nf("function"),oC=nf("number"),Cc=e=>e!==null&&typeof e=="object",BM=e=>e===!0||e===!1,ou=e=>{if(rf(e)!=="object")return!1;const t=z0(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(iC in e)&&!(tf in e)},UM=e=>{if(!Cc(e)||kc(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},HM=Rn("Date"),VM=Rn("File"),KM=Rn("Blob"),WM=Rn("FileList"),qM=e=>Cc(e)&&$r(e.pipe),GM=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||$r(e.append)&&((t=rf(e))==="formdata"||t==="object"&&$r(e.toString)&&e.toString()==="[object FormData]"))},YM=Rn("URLSearchParams"),[XM,ZM,JM,QM]=["ReadableStream","Request","Response","Headers"].map(Rn),eD=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ec(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let s,a;if(typeof e!="object"&&(e=[e]),Ml(e))for(s=0,a=e.length;s0;)if(a=r[s],t===a.toLowerCase())return a;return null}const za=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,dC=e=>!ml(e)&&e!==za;function kp(){const{caseless:e,skipUndefined:t}=dC(this)&&this||{},r={},s=(a,i)=>{const l=e&&cC(r,i)||i;ou(r[l])&&ou(a)?r[l]=kp(r[l],a):ou(a)?r[l]=kp({},a):Ml(a)?r[l]=a.slice():(!t||!ml(a))&&(r[l]=a)};for(let a=0,i=arguments.length;a(Ec(t,(a,i)=>{r&&$r(a)?e[i]=aC(a,r):e[i]=a},{allOwnKeys:s}),e),rD=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),nD=(e,t,r,s)=>{e.prototype=Object.create(t.prototype,s),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},sD=(e,t,r,s)=>{let a,i,l;const o={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),i=a.length;i-- >0;)l=a[i],(!s||s(l,e,t))&&!o[l]&&(t[l]=e[l],o[l]=!0);e=r!==!1&&z0(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},aD=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const s=e.indexOf(t,r);return s!==-1&&s===r},iD=e=>{if(!e)return null;if(Ml(e))return e;let t=e.length;if(!oC(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},lD=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&z0(Uint8Array)),oD=(e,t)=>{const s=(e&&e[tf]).call(e);let a;for(;(a=s.next())&&!a.done;){const i=a.value;t.call(e,i[0],i[1])}},cD=(e,t)=>{let r;const s=[];for(;(r=e.exec(t))!==null;)s.push(r);return s},dD=Rn("HTMLFormElement"),uD=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,s,a){return s.toUpperCase()+a}),Rj=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),mD=Rn("RegExp"),uC=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),s={};Ec(r,(a,i)=>{let l;(l=t(a,i,e))!==!1&&(s[i]=l||a)}),Object.defineProperties(e,s)},fD=e=>{uC(e,(t,r)=>{if($r(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const s=e[r];if($r(s)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},hD=(e,t)=>{const r={},s=a=>{a.forEach(i=>{r[i]=!0})};return Ml(e)?s(e):s(String(e).split(t)),r},xD=()=>{},pD=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function gD(e){return!!(e&&$r(e.append)&&e[iC]==="FormData"&&e[tf])}const yD=e=>{const t=new Array(10),r=(s,a)=>{if(Cc(s)){if(t.indexOf(s)>=0)return;if(kc(s))return s;if(!("toJSON"in s)){t[a]=s;const i=Ml(s)?[]:{};return Ec(s,(l,o)=>{const c=r(l,a+1);!ml(c)&&(i[o]=c)}),t[a]=void 0,i}}return s};return r(e,0)},vD=Rn("AsyncFunction"),bD=e=>e&&(Cc(e)||$r(e))&&$r(e.then)&&$r(e.catch),mC=((e,t)=>e?setImmediate:t?((r,s)=>(za.addEventListener("message",({source:a,data:i})=>{a===za&&i===r&&s.length&&s.shift()()},!1),a=>{s.push(a),za.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",$r(za.postMessage)),jD=typeof queueMicrotask<"u"?queueMicrotask.bind(za):typeof process<"u"&&process.nextTick||mC,wD=e=>e!=null&&$r(e[tf]),ee={isArray:Ml,isArrayBuffer:lC,isBuffer:kc,isFormData:GM,isArrayBufferView:FM,isString:zM,isNumber:oC,isBoolean:BM,isObject:Cc,isPlainObject:ou,isEmptyObject:UM,isReadableStream:XM,isRequest:ZM,isResponse:JM,isHeaders:QM,isUndefined:ml,isDate:HM,isFile:VM,isBlob:KM,isRegExp:mD,isFunction:$r,isStream:qM,isURLSearchParams:YM,isTypedArray:lD,isFileList:WM,forEach:Ec,merge:kp,extend:tD,trim:eD,stripBOM:rD,inherits:nD,toFlatObject:sD,kindOf:rf,kindOfTest:Rn,endsWith:aD,toArray:iD,forEachEntry:oD,matchAll:cD,isHTMLForm:dD,hasOwnProperty:Rj,hasOwnProp:Rj,reduceDescriptors:uC,freezeMethods:fD,toObjectSet:hD,toCamelCase:uD,noop:xD,toFiniteNumber:pD,findKey:cC,global:za,isContextDefined:dC,isSpecCompliantForm:gD,toJSONObject:yD,isAsyncFn:vD,isThenable:bD,setImmediate:mC,asap:jD,isIterable:wD};function Se(e,t,r,s,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),s&&(this.request=s),a&&(this.response=a,this.status=a.status?a.status:null)}ee.inherits(Se,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ee.toJSONObject(this.config),code:this.code,status:this.status}}});const fC=Se.prototype,hC={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{hC[e]={value:e}});Object.defineProperties(Se,hC);Object.defineProperty(fC,"isAxiosError",{value:!0});Se.from=(e,t,r,s,a,i)=>{const l=Object.create(fC);ee.toFlatObject(e,l,function(u){return u!==Error.prototype},d=>d!=="isAxiosError");const o=e&&e.message?e.message:"Error",c=t==null&&e?e.code:t;return Se.call(l,o,c,r,s,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",i&&Object.assign(l,i),l};const ND=null;function Cp(e){return ee.isPlainObject(e)||ee.isArray(e)}function xC(e){return ee.endsWith(e,"[]")?e.slice(0,-2):e}function Fj(e,t,r){return e?e.concat(t).map(function(a,i){return a=xC(a),!r&&i?"["+a+"]":a}).join(r?".":""):t}function SD(e){return ee.isArray(e)&&!e.some(Cp)}const kD=ee.toFlatObject(ee,{},null,function(t){return/^is[A-Z]/.test(t)});function sf(e,t,r){if(!ee.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=ee.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,y){return!ee.isUndefined(y[v])});const s=r.metaTokens,a=r.visitor||u,i=r.dots,l=r.indexes,c=(r.Blob||typeof Blob<"u"&&Blob)&&ee.isSpecCompliantForm(t);if(!ee.isFunction(a))throw new TypeError("visitor must be a function");function d(p){if(p===null)return"";if(ee.isDate(p))return p.toISOString();if(ee.isBoolean(p))return p.toString();if(!c&&ee.isBlob(p))throw new Se("Blob is not supported. Use a Buffer instead.");return ee.isArrayBuffer(p)||ee.isTypedArray(p)?c&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function u(p,v,y){let g=p;if(p&&!y&&typeof p=="object"){if(ee.endsWith(v,"{}"))v=s?v:v.slice(0,-2),p=JSON.stringify(p);else if(ee.isArray(p)&&SD(p)||(ee.isFileList(p)||ee.endsWith(v,"[]"))&&(g=ee.toArray(p)))return v=xC(v),g.forEach(function(j,w){!(ee.isUndefined(j)||j===null)&&t.append(l===!0?Fj([v],w,i):l===null?v:v+"[]",d(j))}),!1}return Cp(p)?!0:(t.append(Fj(y,v,i),d(p)),!1)}const m=[],f=Object.assign(kD,{defaultVisitor:u,convertValue:d,isVisitable:Cp});function h(p,v){if(!ee.isUndefined(p)){if(m.indexOf(p)!==-1)throw Error("Circular reference detected in "+v.join("."));m.push(p),ee.forEach(p,function(g,b){(!(ee.isUndefined(g)||g===null)&&a.call(t,g,ee.isString(b)?b.trim():b,v,f))===!0&&h(g,v?v.concat(b):[b])}),m.pop()}}if(!ee.isObject(e))throw new TypeError("data must be an object");return h(e),t}function zj(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(s){return t[s]})}function B0(e,t){this._pairs=[],e&&sf(e,this,t)}const pC=B0.prototype;pC.append=function(t,r){this._pairs.push([t,r])};pC.toString=function(t){const r=t?function(s){return t.call(this,s,zj)}:zj;return this._pairs.map(function(a){return r(a[0])+"="+r(a[1])},"").join("&")};function CD(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function gC(e,t,r){if(!t)return e;const s=r&&r.encode||CD;ee.isFunction(r)&&(r={serialize:r});const a=r&&r.serialize;let i;if(a?i=a(t,r):i=ee.isURLSearchParams(t)?t.toString():new B0(t,r).toString(s),i){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class Bj{constructor(){this.handlers=[]}use(t,r,s){return this.handlers.push({fulfilled:t,rejected:r,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ee.forEach(this.handlers,function(s){s!==null&&t(s)})}}const yC={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ED=typeof URLSearchParams<"u"?URLSearchParams:B0,PD=typeof FormData<"u"?FormData:null,AD=typeof Blob<"u"?Blob:null,TD={isBrowser:!0,classes:{URLSearchParams:ED,FormData:PD,Blob:AD},protocols:["http","https","file","blob","url","data"]},U0=typeof window<"u"&&typeof document<"u",Ep=typeof navigator=="object"&&navigator||void 0,_D=U0&&(!Ep||["ReactNative","NativeScript","NS"].indexOf(Ep.product)<0),OD=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",MD=U0&&window.location.href||"http://localhost",DD=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:U0,hasStandardBrowserEnv:_D,hasStandardBrowserWebWorkerEnv:OD,navigator:Ep,origin:MD},Symbol.toStringTag,{value:"Module"})),cr={...DD,...TD};function $D(e,t){return sf(e,new cr.classes.URLSearchParams,{visitor:function(r,s,a,i){return cr.isNode&&ee.isBuffer(r)?(this.append(s,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function LD(e){return ee.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function ID(e){const t={},r=Object.keys(e);let s;const a=r.length;let i;for(s=0;s=r.length;return l=!l&&ee.isArray(a)?a.length:l,c?(ee.hasOwnProp(a,l)?a[l]=[a[l],s]:a[l]=s,!o):((!a[l]||!ee.isObject(a[l]))&&(a[l]=[]),t(r,s,a[l],i)&&ee.isArray(a[l])&&(a[l]=ID(a[l])),!o)}if(ee.isFormData(e)&&ee.isFunction(e.entries)){const r={};return ee.forEachEntry(e,(s,a)=>{t(LD(s),a,r,0)}),r}return null}function RD(e,t,r){if(ee.isString(e))try{return(t||JSON.parse)(e),ee.trim(e)}catch(s){if(s.name!=="SyntaxError")throw s}return(r||JSON.stringify)(e)}const Pc={transitional:yC,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const s=r.getContentType()||"",a=s.indexOf("application/json")>-1,i=ee.isObject(t);if(i&&ee.isHTMLForm(t)&&(t=new FormData(t)),ee.isFormData(t))return a?JSON.stringify(vC(t)):t;if(ee.isArrayBuffer(t)||ee.isBuffer(t)||ee.isStream(t)||ee.isFile(t)||ee.isBlob(t)||ee.isReadableStream(t))return t;if(ee.isArrayBufferView(t))return t.buffer;if(ee.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let o;if(i){if(s.indexOf("application/x-www-form-urlencoded")>-1)return $D(t,this.formSerializer).toString();if((o=ee.isFileList(t))||s.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return sf(o?{"files[]":t}:t,c&&new c,this.formSerializer)}}return i||a?(r.setContentType("application/json",!1),RD(t)):t}],transformResponse:[function(t){const r=this.transitional||Pc.transitional,s=r&&r.forcedJSONParsing,a=this.responseType==="json";if(ee.isResponse(t)||ee.isReadableStream(t))return t;if(t&&ee.isString(t)&&(s&&!this.responseType||a)){const l=!(r&&r.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(o){if(l)throw o.name==="SyntaxError"?Se.from(o,Se.ERR_BAD_RESPONSE,this,null,this.response):o}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:cr.classes.FormData,Blob:cr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ee.forEach(["delete","get","head","post","put","patch"],e=>{Pc.headers[e]={}});const FD=ee.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),zD=e=>{const t={};let r,s,a;return e&&e.split(` `).forEach(function(l){a=l.indexOf(":"),r=l.substring(0,a).trim().toLowerCase(),s=l.substring(a+1).trim(),!(!r||t[r]&&FD[r])&&(r==="set-cookie"?t[r]?t[r].push(s):t[r]=[s]:t[r]=t[r]?t[r]+", "+s:s)}),t},Uj=Symbol("internals");function to(e){return e&&String(e).trim().toLowerCase()}function cu(e){return e===!1||e==null?e:ee.isArray(e)?e.map(cu):String(e)}function BD(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=r.exec(e);)t[s[1]]=s[2];return t}const UD=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Fh(e,t,r,s,a){if(ee.isFunction(s))return s.call(this,t,r);if(a&&(t=r),!!ee.isString(t)){if(ee.isString(s))return t.indexOf(s)!==-1;if(ee.isRegExp(s))return s.test(t)}}function HD(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,s)=>r.toUpperCase()+s)}function VD(e,t){const r=ee.toCamelCase(" "+t);["get","set","has"].forEach(s=>{Object.defineProperty(e,s+r,{value:function(a,i,l){return this[s].call(this,t,a,i,l)},configurable:!0})})}let Lr=class{constructor(t){t&&this.set(t)}set(t,r,s){const a=this;function i(o,c,d){const u=to(c);if(!u)throw new Error("header name must be a non-empty string");const m=ee.findKey(a,u);(!m||a[m]===void 0||d===!0||d===void 0&&a[m]!==!1)&&(a[m||c]=cu(o))}const l=(o,c)=>ee.forEach(o,(d,u)=>i(d,u,c));if(ee.isPlainObject(t)||t instanceof this.constructor)l(t,r);else if(ee.isString(t)&&(t=t.trim())&&!UD(t))l(zD(t),r);else if(ee.isObject(t)&&ee.isIterable(t)){let o={},c,d;for(const u of t){if(!ee.isArray(u))throw TypeError("Object iterator must return a key-value pair");o[d=u[0]]=(c=o[d])?ee.isArray(c)?[...c,u[1]]:[c,u[1]]:u[1]}l(o,r)}else t!=null&&i(r,t,s);return this}get(t,r){if(t=to(t),t){const s=ee.findKey(this,t);if(s){const a=this[s];if(!r)return a;if(r===!0)return BD(a);if(ee.isFunction(r))return r.call(this,a,s);if(ee.isRegExp(r))return r.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=to(t),t){const s=ee.findKey(this,t);return!!(s&&this[s]!==void 0&&(!r||Fh(this,this[s],s,r)))}return!1}delete(t,r){const s=this;let a=!1;function i(l){if(l=to(l),l){const o=ee.findKey(s,l);o&&(!r||Fh(s,s[o],o,r))&&(delete s[o],a=!0)}}return ee.isArray(t)?t.forEach(i):i(t),a}clear(t){const r=Object.keys(this);let s=r.length,a=!1;for(;s--;){const i=r[s];(!t||Fh(this,this[i],i,t,!0))&&(delete this[i],a=!0)}return a}normalize(t){const r=this,s={};return ee.forEach(this,(a,i)=>{const l=ee.findKey(s,i);if(l){r[l]=cu(a),delete r[i];return}const o=t?HD(i):String(i).trim();o!==i&&delete r[i],r[o]=cu(a),s[o]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return ee.forEach(this,(s,a)=>{s!=null&&s!==!1&&(r[a]=t&&ee.isArray(s)?s.join(", "):s)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const s=new this(t);return r.forEach(a=>s.set(a)),s}static accessor(t){const s=(this[Uj]=this[Uj]={accessors:{}}).accessors,a=this.prototype;function i(l){const o=to(l);s[o]||(VD(a,l),s[o]=!0)}return ee.isArray(t)?t.forEach(i):i(t),this}};Lr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ee.reduceDescriptors(Lr.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(s){this[r]=s}}});ee.freezeMethods(Lr);function zh(e,t){const r=this||Pc,s=t||r,a=Lr.from(s.headers);let i=s.data;return ee.forEach(e,function(o){i=o.call(r,i,a.normalize(),t?t.status:void 0)}),a.normalize(),i}function bC(e){return!!(e&&e.__CANCEL__)}function Dl(e,t,r){Se.call(this,e??"canceled",Se.ERR_CANCELED,t,r),this.name="CanceledError"}ee.inherits(Dl,Se,{__CANCEL__:!0});function jC(e,t,r){const s=r.config.validateStatus;!r.status||!s||s(r.status)?e(r):t(new Se("Request failed with status code "+r.status,[Se.ERR_BAD_REQUEST,Se.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function KD(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function WD(e,t){e=e||10;const r=new Array(e),s=new Array(e);let a=0,i=0,l;return t=t!==void 0?t:1e3,function(c){const d=Date.now(),u=s[i];l||(l=d),r[a]=c,s[a]=d;let m=i,f=0;for(;m!==a;)f+=r[m++],m=m%e;if(a=(a+1)%e,a===i&&(i=(i+1)%e),d-l{r=u,a=null,i&&(clearTimeout(i),i=null),e(...d)};return[(...d)=>{const u=Date.now(),m=u-r;m>=s?l(d,u):(a=d,i||(i=setTimeout(()=>{i=null,l(a)},s-m)))},()=>a&&l(a)]}const Hu=(e,t,r=3)=>{let s=0;const a=WD(50,250);return qD(i=>{const l=i.loaded,o=i.lengthComputable?i.total:void 0,c=l-s,d=a(c),u=l<=o;s=l;const m={loaded:l,total:o,progress:o?l/o:void 0,bytes:c,rate:d||void 0,estimated:d&&o&&u?(o-l)/d:void 0,event:i,lengthComputable:o!=null,[t?"download":"upload"]:!0};e(m)},r)},Hj=(e,t)=>{const r=e!=null;return[s=>t[0]({lengthComputable:r,total:e,loaded:s}),t[1]]},Vj=e=>(...t)=>ee.asap(()=>e(...t)),GD=cr.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,cr.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(cr.origin),cr.navigator&&/(msie|trident)/i.test(cr.navigator.userAgent)):()=>!0,YD=cr.hasStandardBrowserEnv?{write(e,t,r,s,a,i){const l=[e+"="+encodeURIComponent(t)];ee.isNumber(r)&&l.push("expires="+new Date(r).toGMTString()),ee.isString(s)&&l.push("path="+s),ee.isString(a)&&l.push("domain="+a),i===!0&&l.push("secure"),document.cookie=l.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function XD(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function ZD(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function wC(e,t,r){let s=!XD(t);return e&&(s||r==!1)?ZD(e,t):t}const Kj=e=>e instanceof Lr?{...e}:e;function li(e,t){t=t||{};const r={};function s(d,u,m,f){return ee.isPlainObject(d)&&ee.isPlainObject(u)?ee.merge.call({caseless:f},d,u):ee.isPlainObject(u)?ee.merge({},u):ee.isArray(u)?u.slice():u}function a(d,u,m,f){if(ee.isUndefined(u)){if(!ee.isUndefined(d))return s(void 0,d,m,f)}else return s(d,u,m,f)}function i(d,u){if(!ee.isUndefined(u))return s(void 0,u)}function l(d,u){if(ee.isUndefined(u)){if(!ee.isUndefined(d))return s(void 0,d)}else return s(void 0,u)}function o(d,u,m){if(m in t)return s(d,u);if(m in e)return s(void 0,d)}const c={url:i,method:i,data:i,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:o,headers:(d,u,m)=>a(Kj(d),Kj(u),m,!0)};return ee.forEach(Object.keys({...e,...t}),function(u){const m=c[u]||a,f=m(e[u],t[u],u);ee.isUndefined(f)&&m!==o||(r[u]=f)}),r}const NC=e=>{const t=li({},e);let{data:r,withXSRFToken:s,xsrfHeaderName:a,xsrfCookieName:i,headers:l,auth:o}=t;if(t.headers=l=Lr.from(l),t.url=gC(wC(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),o&&l.set("Authorization","Basic "+btoa((o.username||"")+":"+(o.password?unescape(encodeURIComponent(o.password)):""))),ee.isFormData(r)){if(cr.hasStandardBrowserEnv||cr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(ee.isFunction(r.getHeaders)){const c=r.getHeaders(),d=["content-type","content-length"];Object.entries(c).forEach(([u,m])=>{d.includes(u.toLowerCase())&&l.set(u,m)})}}if(cr.hasStandardBrowserEnv&&(s&&ee.isFunction(s)&&(s=s(t)),s||s!==!1&&GD(t.url))){const c=a&&i&&YD.read(i);c&&l.set(a,c)}return t},JD=typeof XMLHttpRequest<"u",QD=JD&&function(e){return new Promise(function(r,s){const a=NC(e);let i=a.data;const l=Lr.from(a.headers).normalize();let{responseType:o,onUploadProgress:c,onDownloadProgress:d}=a,u,m,f,h,p;function v(){h&&h(),p&&p(),a.cancelToken&&a.cancelToken.unsubscribe(u),a.signal&&a.signal.removeEventListener("abort",u)}let y=new XMLHttpRequest;y.open(a.method.toUpperCase(),a.url,!0),y.timeout=a.timeout;function g(){if(!y)return;const j=Lr.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),C={data:!o||o==="text"||o==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:j,config:e,request:y};jC(function(A){r(A),v()},function(A){s(A),v()},C),y=null}"onloadend"in y?y.onloadend=g:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.indexOf("file:")===0)||setTimeout(g)},y.onabort=function(){y&&(s(new Se("Request aborted",Se.ECONNABORTED,e,y)),y=null)},y.onerror=function(w){const C=w&&w.message?w.message:"Network Error",N=new Se(C,Se.ERR_NETWORK,e,y);N.event=w||null,s(N),y=null},y.ontimeout=function(){let w=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||yC;a.timeoutErrorMessage&&(w=a.timeoutErrorMessage),s(new Se(w,C.clarifyTimeoutError?Se.ETIMEDOUT:Se.ECONNABORTED,e,y)),y=null},i===void 0&&l.setContentType(null),"setRequestHeader"in y&&ee.forEach(l.toJSON(),function(w,C){y.setRequestHeader(C,w)}),ee.isUndefined(a.withCredentials)||(y.withCredentials=!!a.withCredentials),o&&o!=="json"&&(y.responseType=a.responseType),d&&([f,p]=Hu(d,!0),y.addEventListener("progress",f)),c&&y.upload&&([m,h]=Hu(c),y.upload.addEventListener("progress",m),y.upload.addEventListener("loadend",h)),(a.cancelToken||a.signal)&&(u=j=>{y&&(s(!j||j.type?new Dl(null,e,y):j),y.abort(),y=null)},a.cancelToken&&a.cancelToken.subscribe(u),a.signal&&(a.signal.aborted?u():a.signal.addEventListener("abort",u)));const b=KD(a.url);if(b&&cr.protocols.indexOf(b)===-1){s(new Se("Unsupported protocol "+b+":",Se.ERR_BAD_REQUEST,e));return}y.send(i||null)})},e$=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let s=new AbortController,a;const i=function(d){if(!a){a=!0,o();const u=d instanceof Error?d:this.reason;s.abort(u instanceof Se?u:new Dl(u instanceof Error?u.message:u))}};let l=t&&setTimeout(()=>{l=null,i(new Se(`timeout ${t} of ms exceeded`,Se.ETIMEDOUT))},t);const o=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(d=>{d.unsubscribe?d.unsubscribe(i):d.removeEventListener("abort",i)}),e=null)};e.forEach(d=>d.addEventListener("abort",i));const{signal:c}=s;return c.unsubscribe=()=>ee.asap(o),c}},t$=function*(e,t){let r=e.byteLength;if(r{const a=r$(e,t);let i=0,l,o=c=>{l||(l=!0,s&&s(c))};return new ReadableStream({async pull(c){try{const{done:d,value:u}=await a.next();if(d){o(),c.close();return}let m=u.byteLength;if(r){let f=i+=m;r(f)}c.enqueue(new Uint8Array(u))}catch(d){throw o(d),d}},cancel(c){return o(c),a.return()}},{highWaterMark:2})},qj=64*1024,{isFunction:kd}=ee,SC=(({fetch:e,Request:t,Response:r})=>({fetch:e,Request:t,Response:r}))(ee.global),{ReadableStream:Gj,TextEncoder:Yj}=ee.global,Xj=(e,...t)=>{try{return!!e(...t)}catch{return!1}},s$=e=>{const{fetch:t,Request:r,Response:s}=Object.assign({},SC,e),a=kd(t),i=kd(r),l=kd(s);if(!a)return!1;const o=a&&kd(Gj),c=a&&(typeof Yj=="function"?(p=>v=>p.encode(v))(new Yj):async p=>new Uint8Array(await new r(p).arrayBuffer())),d=i&&o&&Xj(()=>{let p=!1;const v=new r(cr.origin,{body:new Gj,method:"POST",get duplex(){return p=!0,"half"}}).headers.has("Content-Type");return p&&!v}),u=l&&o&&Xj(()=>ee.isReadableStream(new s("").body)),m={stream:u&&(p=>p.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!m[p]&&(m[p]=(v,y)=>{let g=v&&v[p];if(g)return g.call(v);throw new Se(`Response type '${p}' is not supported`,Se.ERR_NOT_SUPPORT,y)})});const f=async p=>{if(p==null)return 0;if(ee.isBlob(p))return p.size;if(ee.isSpecCompliantForm(p))return(await new r(cr.origin,{method:"POST",body:p}).arrayBuffer()).byteLength;if(ee.isArrayBufferView(p)||ee.isArrayBuffer(p))return p.byteLength;if(ee.isURLSearchParams(p)&&(p=p+""),ee.isString(p))return(await c(p)).byteLength},h=async(p,v)=>{const y=ee.toFiniteNumber(p.getContentLength());return y??f(v)};return async p=>{let{url:v,method:y,data:g,signal:b,cancelToken:j,timeout:w,onDownloadProgress:C,onUploadProgress:N,responseType:A,headers:_,withCredentials:I="same-origin",fetchOptions:B}=NC(p);A=A?(A+"").toLowerCase():"text";let z=e$([b,j&&j.toAbortSignal()],w),T=null;const D=z&&z.unsubscribe&&(()=>{z.unsubscribe()});let E;try{if(N&&d&&y!=="get"&&y!=="head"&&(E=await h(_,g))!==0){let H=new r(v,{method:"POST",body:g,duplex:"half"}),L;if(ee.isFormData(g)&&(L=H.headers.get("content-type"))&&_.setContentType(L),H.body){const[W,M]=Hj(E,Hu(Vj(N)));g=Wj(H.body,qj,W,M)}}ee.isString(I)||(I=I?"include":"omit");const S=i&&"credentials"in r.prototype,k={...B,signal:z,method:y.toUpperCase(),headers:_.normalize().toJSON(),body:g,duplex:"half",credentials:S?I:void 0};T=i&&new r(v,k);let P=await(i?t(T,B):t(v,k));const O=u&&(A==="stream"||A==="response");if(u&&(C||O&&D)){const H={};["status","statusText","headers"].forEach(R=>{H[R]=P[R]});const L=ee.toFiniteNumber(P.headers.get("content-length")),[W,M]=C&&Hj(L,Hu(Vj(C),!0))||[];P=new s(Wj(P.body,qj,W,()=>{M&&M(),D&&D()}),H)}A=A||"text";let $=await m[ee.findKey(m,A)||"text"](P,p);return!O&&D&&D(),await new Promise((H,L)=>{jC(H,L,{data:$,headers:Lr.from(P.headers),status:P.status,statusText:P.statusText,config:p,request:T})})}catch(S){throw D&&D(),S&&S.name==="TypeError"&&/Load failed|fetch/i.test(S.message)?Object.assign(new Se("Network Error",Se.ERR_NETWORK,p,T),{cause:S.cause||S}):Se.from(S,S&&S.code,p,T)}}},a$=new Map,kC=e=>{let t=ee.merge.call({skipUndefined:!0},SC,e?e.env:null);const{fetch:r,Request:s,Response:a}=t,i=[s,a,r];let l=i.length,o=l,c,d,u=a$;for(;o--;)c=i[o],d=u.get(c),d===void 0&&u.set(c,d=o?new Map:s$(t)),u=d;return d};kC();const Pp={http:ND,xhr:QD,fetch:{get:kC}};ee.forEach(Pp,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zj=e=>`- ${e}`,i$=e=>ee.isFunction(e)||e===null||e===!1,CC={getAdapter:(e,t)=>{e=ee.isArray(e)?e:[e];const{length:r}=e;let s,a;const i={};for(let l=0;l`adapter ${c} `+(d===!1?"is not supported by the environment":"is not available in the build"));let o=r?l.length>1?`since : `+l.map(Zj).join(` `):" "+Zj(l[0]):"as no adapter specified";throw new Se("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return a},adapters:Pp};function Bh(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Dl(null,e)}function Jj(e){return Bh(e),e.headers=Lr.from(e.headers),e.data=zh.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),CC.getAdapter(e.adapter||Pc.adapter,e)(e).then(function(s){return Bh(e),s.data=zh.call(e,e.transformResponse,s),s.headers=Lr.from(s.headers),s},function(s){return bC(s)||(Bh(e),s&&s.response&&(s.response.data=zh.call(e,e.transformResponse,s.response),s.response.headers=Lr.from(s.response.headers))),Promise.reject(s)})}const EC="1.12.0",af={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{af[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}});const Qj={};af.transitional=function(t,r,s){function a(i,l){return"[Axios v"+EC+"] Transitional option '"+i+"'"+l+(s?". "+s:"")}return(i,l,o)=>{if(t===!1)throw new Se(a(l," has been removed"+(r?" in "+r:"")),Se.ERR_DEPRECATED);return r&&!Qj[l]&&(Qj[l]=!0,console.warn(a(l," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,l,o):!0}};af.spelling=function(t){return(r,s)=>(console.warn(`${s} is likely a misspelling of ${t}`),!0)};function l$(e,t,r){if(typeof e!="object")throw new Se("options must be an object",Se.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let a=s.length;for(;a-- >0;){const i=s[a],l=t[i];if(l){const o=e[i],c=o===void 0||l(o,i,e);if(c!==!0)throw new Se("option "+i+" must be "+c,Se.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new Se("Unknown option "+i,Se.ERR_BAD_OPTION)}}const du={assertOptions:l$,validators:af},Un=du.validators;let Ya=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Bj,response:new Bj}}async request(t,r){try{return await this._request(t,r)}catch(s){if(s instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const i=a.stack?a.stack.replace(/^.+\n/,""):"";try{s.stack?i&&!String(s.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(s.stack+=` `+i):s.stack=i}catch{}}throw s}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=li(this.defaults,r);const{transitional:s,paramsSerializer:a,headers:i}=r;s!==void 0&&du.assertOptions(s,{silentJSONParsing:Un.transitional(Un.boolean),forcedJSONParsing:Un.transitional(Un.boolean),clarifyTimeoutError:Un.transitional(Un.boolean)},!1),a!=null&&(ee.isFunction(a)?r.paramsSerializer={serialize:a}:du.assertOptions(a,{encode:Un.function,serialize:Un.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),du.assertOptions(r,{baseUrl:Un.spelling("baseURL"),withXsrfToken:Un.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let l=i&&ee.merge(i.common,i[r.method]);i&&ee.forEach(["delete","get","head","post","put","patch","common"],p=>{delete i[p]}),r.headers=Lr.concat(l,i);const o=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(r)===!1||(c=c&&v.synchronous,o.unshift(v.fulfilled,v.rejected))});const d=[];this.interceptors.response.forEach(function(v){d.push(v.fulfilled,v.rejected)});let u,m=0,f;if(!c){const p=[Jj.bind(this),void 0];for(p.unshift(...o),p.push(...d),f=p.length,u=Promise.resolve(r);m{if(!s._listeners)return;let i=s._listeners.length;for(;i-- >0;)s._listeners[i](a);s._listeners=null}),this.promise.then=a=>{let i;const l=new Promise(o=>{s.subscribe(o),i=o}).then(a);return l.cancel=function(){s.unsubscribe(i)},l},t(function(i,l,o){s.reason||(s.reason=new Dl(i,l,o),r(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=s=>{t.abort(s)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new PC(function(a){t=a}),cancel:t}}};function c$(e){return function(r){return e.apply(null,r)}}function d$(e){return ee.isObject(e)&&e.isAxiosError===!0}const Ap={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ap).forEach(([e,t])=>{Ap[t]=e});function AC(e){const t=new Ya(e),r=aC(Ya.prototype.request,t);return ee.extend(r,Ya.prototype,t,{allOwnKeys:!0}),ee.extend(r,t,null,{allOwnKeys:!0}),r.create=function(a){return AC(li(e,a))},r}const ye=AC(Pc);ye.Axios=Ya;ye.CanceledError=Dl;ye.CancelToken=o$;ye.isCancel=bC;ye.VERSION=EC;ye.toFormData=sf;ye.AxiosError=Se;ye.Cancel=ye.CanceledError;ye.all=function(t){return Promise.all(t)};ye.spread=c$;ye.isAxiosError=d$;ye.mergeConfig=li;ye.AxiosHeaders=Lr;ye.formToJSON=e=>vC(ee.isHTMLForm(e)?new FormData(e):e);ye.getAdapter=CC.getAdapter;ye.HttpStatusCode=Ap;ye.default=ye;const{Axios:tte,AxiosError:rte,CanceledError:nte,isCancel:ste,CancelToken:ate,VERSION:ite,all:lte,Cancel:ote,isAxiosError:cte,spread:dte,toFormData:ute,AxiosHeaders:mte,HttpStatusCode:fte,formToJSON:hte,getAdapter:xte,mergeConfig:pte}=ye;function rr(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,s;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?y$:g$;MC.useSyncExternalStore=fl.useSyncExternalStore!==void 0?fl.useSyncExternalStore:v$;OC.exports=MC;var b$=OC.exports;/** * @license React * use-sync-external-store-shim/with-selector.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var lf=x,j$=b$;function w$(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var N$=typeof Object.is=="function"?Object.is:w$,S$=j$.useSyncExternalStore,k$=lf.useRef,C$=lf.useEffect,E$=lf.useMemo,P$=lf.useDebugValue;_C.useSyncExternalStoreWithSelector=function(e,t,r,s,a){var i=k$(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=E$(function(){function c(h){if(!d){if(d=!0,u=h,h=s(h),a!==void 0&&l.hasValue){var p=l.value;if(a(p,h))return m=p}return m=h}if(p=m,N$(u,h))return p;var v=s(h);return a!==void 0&&a(p,v)?(u=h,p):(u=h,m=v)}var d=!1,u,m,f=r===void 0?null:r;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,r,s,a]);var o=S$(e,i[0],i[1]);return C$(function(){l.hasValue=!0,l.value=o},[o]),P$(o),o};TC.exports=_C;var DC=TC.exports;const A$=Jn(DC),T$={},ew=e=>{let t;const r=new Set,s=(u,m)=>{const f=typeof u=="function"?u(t):u;if(!Object.is(f,t)){const h=t;t=m??(typeof f!="object"||f===null)?f:Object.assign({},t,f),r.forEach(p=>p(t,h))}},a=()=>t,c={setState:s,getState:a,getInitialState:()=>d,subscribe:u=>(r.add(u),()=>r.delete(u)),destroy:()=>{(T$?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},d=t=e(s,a,c);return c},_$=e=>e?ew(e):ew,{useDebugValue:O$}=te,{useSyncExternalStoreWithSelector:M$}=A$,D$=e=>e;function $C(e,t=D$,r){const s=M$(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return O$(s),s}const tw=(e,t)=>{const r=_$(e),s=(a,i=t)=>$C(r,a,i);return Object.assign(s,r),s},$$=(e,t)=>e?tw(e,t):tw;function Vt(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[s,a]of e)if(!Object.is(a,t.get(s)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const s of e)if(!t.has(s))return!1;return!0}const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(const s of r)if(!Object.prototype.hasOwnProperty.call(t,s)||!Object.is(e[s],t[s]))return!1;return!0}var L$={value:()=>{}};function of(){for(var e=0,t=arguments.length,r={},s;e=0&&(s=r.slice(a+1),r=r.slice(0,a)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:s}})}uu.prototype=of.prototype={constructor:uu,on:function(e,t){var r=this._,s=I$(e+"",r),a,i=-1,l=s.length;if(arguments.length<2){for(;++i0)for(var r=new Array(a),s=0,a,i;s=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),nw.hasOwnProperty(t)?{space:nw[t],local:e}:e}function F$(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Tp&&t.documentElement.namespaceURI===Tp?t.createElement(e):t.createElementNS(r,e)}}function z$(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function LC(e){var t=cf(e);return(t.local?z$:F$)(t)}function B$(){}function H0(e){return e==null?B$:function(){return this.querySelector(e)}}function U$(e){typeof e!="function"&&(e=H0(e));for(var t=this._groups,r=t.length,s=new Array(r),a=0;a=j&&(j=b+1);!(C=y[j])&&++j=0;)(l=s[a])&&(i&&l.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(l,i),i=l);return this}function fL(e){e||(e=hL);function t(m,f){return m&&f?e(m.__data__,f.__data__):!m-!f}for(var r=this._groups,s=r.length,a=new Array(s),i=0;it?1:e>=t?0:NaN}function xL(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function pL(){return Array.from(this)}function gL(){for(var e=this._groups,t=0,r=e.length;t1?this.each((t==null?PL:typeof t=="function"?TL:AL)(e,t,r??"")):hl(this.node(),e)}function hl(e,t){return e.style.getPropertyValue(t)||BC(e).getComputedStyle(e,null).getPropertyValue(t)}function OL(e){return function(){delete this[e]}}function ML(e,t){return function(){this[e]=t}}function DL(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function $L(e,t){return arguments.length>1?this.each((t==null?OL:typeof t=="function"?DL:ML)(e,t)):this.node()[e]}function UC(e){return e.trim().split(/^|\s+/)}function V0(e){return e.classList||new HC(e)}function HC(e){this._node=e,this._names=UC(e.getAttribute("class")||"")}HC.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function VC(e,t){for(var r=V0(e),s=-1,a=t.length;++s=0&&(r=t.slice(s+1),t=t.slice(0,s)),{type:t,name:r}})}function cI(e){return function(){var t=this.__on;if(t){for(var r=0,s=-1,a=t.length,i;r()=>e;function _p(e,{sourceEvent:t,subject:r,target:s,identifier:a,active:i,x:l,y:o,dx:c,dy:d,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:a,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:l,enumerable:!0,configurable:!0},y:{value:o,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:d,enumerable:!0,configurable:!0},_:{value:u}})}_p.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function vI(e){return!e.ctrlKey&&!e.button}function bI(){return this.parentNode}function jI(e,t){return t??{x:e.x,y:e.y}}function wI(){return navigator.maxTouchPoints||"ontouchstart"in this}function NI(){var e=vI,t=bI,r=jI,s=wI,a={},i=of("start","drag","end"),l=0,o,c,d,u,m=0;function f(w){w.on("mousedown.drag",h).filter(s).on("touchstart.drag",y).on("touchmove.drag",g,yI).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(w,C){if(!(u||!e.call(this,w,C))){var N=j(this,t.call(this,w,C),w,C,"mouse");N&&(un(w.view).on("mousemove.drag",p,nc).on("mouseup.drag",v,nc),GC(w.view),Hh(w),d=!1,o=w.clientX,c=w.clientY,N("start",w))}}function p(w){if(tl(w),!d){var C=w.clientX-o,N=w.clientY-c;d=C*C+N*N>m}a.mouse("drag",w)}function v(w){un(w.view).on("mousemove.drag mouseup.drag",null),YC(w.view,d),tl(w),a.mouse("end",w)}function y(w,C){if(e.call(this,w,C)){var N=w.changedTouches,A=t.call(this,w,C),_=N.length,I,B;for(I=0;I<_;++I)(B=j(this,A,w,C,N[I].identifier,N[I]))&&(Hh(w),B("start",w,N[I]))}}function g(w){var C=w.changedTouches,N=C.length,A,_;for(A=0;A>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Ed(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Ed(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=kI.exec(e))?new Ar(t[1],t[2],t[3],1):(t=CI.exec(e))?new Ar(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=EI.exec(e))?Ed(t[1],t[2],t[3],t[4]):(t=PI.exec(e))?Ed(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=AI.exec(e))?dw(t[1],t[2]/100,t[3]/100,1):(t=TI.exec(e))?dw(t[1],t[2]/100,t[3]/100,t[4]):sw.hasOwnProperty(e)?lw(sw[e]):e==="transparent"?new Ar(NaN,NaN,NaN,0):null}function lw(e){return new Ar(e>>16&255,e>>8&255,e&255,1)}function Ed(e,t,r,s){return s<=0&&(e=t=r=NaN),new Ar(e,t,r,s)}function MI(e){return e instanceof Tc||(e=oi(e)),e?(e=e.rgb(),new Ar(e.r,e.g,e.b,e.opacity)):new Ar}function Op(e,t,r,s){return arguments.length===1?MI(e):new Ar(e,t,r,s??1)}function Ar(e,t,r,s){this.r=+e,this.g=+t,this.b=+r,this.opacity=+s}K0(Ar,Op,XC(Tc,{brighter(e){return e=e==null?Ku:Math.pow(Ku,e),new Ar(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sc:Math.pow(sc,e),new Ar(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ar(Xa(this.r),Xa(this.g),Xa(this.b),Wu(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ow,formatHex:ow,formatHex8:DI,formatRgb:cw,toString:cw}));function ow(){return`#${Ba(this.r)}${Ba(this.g)}${Ba(this.b)}`}function DI(){return`#${Ba(this.r)}${Ba(this.g)}${Ba(this.b)}${Ba((isNaN(this.opacity)?1:this.opacity)*255)}`}function cw(){const e=Wu(this.opacity);return`${e===1?"rgb(":"rgba("}${Xa(this.r)}, ${Xa(this.g)}, ${Xa(this.b)}${e===1?")":`, ${e})`}`}function Wu(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Xa(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ba(e){return e=Xa(e),(e<16?"0":"")+e.toString(16)}function dw(e,t,r,s){return s<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new _n(e,t,r,s)}function ZC(e){if(e instanceof _n)return new _n(e.h,e.s,e.l,e.opacity);if(e instanceof Tc||(e=oi(e)),!e)return new _n;if(e instanceof _n)return e;e=e.rgb();var t=e.r/255,r=e.g/255,s=e.b/255,a=Math.min(t,r,s),i=Math.max(t,r,s),l=NaN,o=i-a,c=(i+a)/2;return o?(t===i?l=(r-s)/o+(r0&&c<1?0:l,new _n(l,o,c,e.opacity)}function $I(e,t,r,s){return arguments.length===1?ZC(e):new _n(e,t,r,s??1)}function _n(e,t,r,s){this.h=+e,this.s=+t,this.l=+r,this.opacity=+s}K0(_n,$I,XC(Tc,{brighter(e){return e=e==null?Ku:Math.pow(Ku,e),new _n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sc:Math.pow(sc,e),new _n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,s=r+(r<.5?r:1-r)*t,a=2*r-s;return new Ar(Vh(e>=240?e-240:e+120,a,s),Vh(e,a,s),Vh(e<120?e+240:e-120,a,s),this.opacity)},clamp(){return new _n(uw(this.h),Pd(this.s),Pd(this.l),Wu(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Wu(this.opacity);return`${e===1?"hsl(":"hsla("}${uw(this.h)}, ${Pd(this.s)*100}%, ${Pd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function uw(e){return e=(e||0)%360,e<0?e+360:e}function Pd(e){return Math.max(0,Math.min(1,e||0))}function Vh(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const W0=e=>()=>e;function LI(e,t){return function(r){return e+r*t}}function II(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(s){return Math.pow(e+s*t,r)}}function RI(e){return(e=+e)==1?JC:function(t,r){return r-t?II(t,r,e):W0(isNaN(t)?r:t)}}function JC(e,t){var r=t-e;return r?LI(e,r):W0(isNaN(e)?t:e)}const qu=function e(t){var r=RI(t);function s(a,i){var l=r((a=Op(a)).r,(i=Op(i)).r),o=r(a.g,i.g),c=r(a.b,i.b),d=JC(a.opacity,i.opacity);return function(u){return a.r=l(u),a.g=o(u),a.b=c(u),a.opacity=d(u),a+""}}return s.gamma=e,s}(1);function FI(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,s=t.slice(),a;return function(i){for(a=0;ar&&(i=t.slice(r,i),o[l]?o[l]+=i:o[++l]=i),(s=s[0])===(a=a[0])?o[l]?o[l]+=a:o[++l]=a:(o[++l]=null,c.push({i:l,x:Tn(s,a)})),r=Kh.lastIndex;return r180?u+=360:u-d>180&&(d+=360),f.push({i:m.push(a(m)+"rotate(",null,s)-2,x:Tn(d,u)})):u&&m.push(a(m)+"rotate("+u+s)}function o(d,u,m,f){d!==u?f.push({i:m.push(a(m)+"skewX(",null,s)-2,x:Tn(d,u)}):u&&m.push(a(m)+"skewX("+u+s)}function c(d,u,m,f,h,p){if(d!==m||u!==f){var v=h.push(a(h)+"scale(",null,",",null,")");p.push({i:v-4,x:Tn(d,m)},{i:v-2,x:Tn(u,f)})}else(m!==1||f!==1)&&h.push(a(h)+"scale("+m+","+f+")")}return function(d,u){var m=[],f=[];return d=e(d),u=e(u),i(d.translateX,d.translateY,u.translateX,u.translateY,m,f),l(d.rotate,u.rotate,m,f),o(d.skewX,u.skewX,m,f),c(d.scaleX,d.scaleY,u.scaleX,u.scaleY,m,f),d=u=null,function(h){for(var p=-1,v=f.length,y;++p=0&&e._call.call(void 0,t),e=e._next;--xl}function hw(){ci=(Yu=ic.now())+df,xl=bo=0;try{rR()}finally{xl=0,sR(),ci=0}}function nR(){var e=ic.now(),t=e-Yu;t>r4&&(df-=t,Yu=e)}function sR(){for(var e,t=Gu,r,s=1/0;t;)t._call?(s>t._time&&(s=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:Gu=r);jo=e,$p(s)}function $p(e){if(!xl){bo&&(bo=clearTimeout(bo));var t=e-ci;t>24?(e<1/0&&(bo=setTimeout(hw,e-ic.now()-df)),ro&&(ro=clearInterval(ro))):(ro||(Yu=ic.now(),ro=setInterval(nR,r4)),xl=1,n4(hw))}}function xw(e,t,r){var s=new Xu;return t=t==null?0:+t,s.restart(a=>{s.stop(),e(a+t)},t,r),s}var aR=of("start","end","cancel","interrupt"),iR=[],a4=0,pw=1,Lp=2,mu=3,gw=4,Ip=5,fu=6;function uf(e,t,r,s,a,i){var l=e.__transition;if(!l)e.__transition={};else if(r in l)return;lR(e,r,{name:t,index:s,group:a,on:aR,tween:iR,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:a4})}function Y0(e,t){var r=Fn(e,t);if(r.state>a4)throw new Error("too late; already scheduled");return r}function Qn(e,t){var r=Fn(e,t);if(r.state>mu)throw new Error("too late; already running");return r}function Fn(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function lR(e,t,r){var s=e.__transition,a;s[t]=r,r.timer=s4(i,0,r.time);function i(d){r.state=pw,r.timer.restart(l,r.delay,r.time),r.delay<=d&&l(d-r.delay)}function l(d){var u,m,f,h;if(r.state!==pw)return c();for(u in s)if(h=s[u],h.name===r.name){if(h.state===mu)return xw(l);h.state===gw?(h.state=fu,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete s[u]):+uLp&&s.state=0&&(t=t.slice(0,r)),!t||t==="start"})}function IR(e,t,r){var s,a,i=LR(t)?Y0:Qn;return function(){var l=i(this,e),o=l.on;o!==s&&(a=(s=o).copy()).on(t,r),l.on=a}}function RR(e,t){var r=this._id;return arguments.length<2?Fn(this.node(),r).on.on(e):this.each(IR(r,e,t))}function FR(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function zR(){return this.on("end.remove",FR(this._id))}function BR(e){var t=this._name,r=this._id;typeof e!="function"&&(e=H0(e));for(var s=this._groups,a=s.length,i=new Array(a),l=0;l()=>e;function m8(e,{sourceEvent:t,target:r,transform:s,dispatch:a}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:a}})}function cs(e,t,r){this.k=e,this.x=t,this.y=r}cs.prototype={constructor:cs,scale:function(e){return e===1?this:new cs(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new cs(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fs=new cs(1,0,0);cs.prototype;function Wh(e){e.stopImmediatePropagation()}function no(e){e.preventDefault(),e.stopImmediatePropagation()}function f8(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function h8(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function yw(){return this.__zoom||fs}function x8(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function p8(){return navigator.maxTouchPoints||"ontouchstart"in this}function g8(e,t,r){var s=e.invertX(t[0][0])-r[0][0],a=e.invertX(t[1][0])-r[1][0],i=e.invertY(t[0][1])-r[0][1],l=e.invertY(t[1][1])-r[1][1];return e.translate(a>s?(s+a)/2:Math.min(0,s)||Math.max(0,a),l>i?(i+l)/2:Math.min(0,i)||Math.max(0,l))}function c4(){var e=f8,t=h8,r=g8,s=x8,a=p8,i=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],o=250,c=QI,d=of("start","zoom","end"),u,m,f,h=500,p=150,v=0,y=10;function g(E){E.property("__zoom",yw).on("wheel.zoom",_,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",B).filter(a).on("touchstart.zoom",z).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",D).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(E,S,k,P){var O=E.selection?E.selection():E;O.property("__zoom",yw),E!==O?C(E,S,k,P):O.interrupt().each(function(){N(this,arguments).event(P).start().zoom(null,typeof S=="function"?S.apply(this,arguments):S).end()})},g.scaleBy=function(E,S,k,P){g.scaleTo(E,function(){var O=this.__zoom.k,$=typeof S=="function"?S.apply(this,arguments):S;return O*$},k,P)},g.scaleTo=function(E,S,k,P){g.transform(E,function(){var O=t.apply(this,arguments),$=this.__zoom,H=k==null?w(O):typeof k=="function"?k.apply(this,arguments):k,L=$.invert(H),W=typeof S=="function"?S.apply(this,arguments):S;return r(j(b($,W),H,L),O,l)},k,P)},g.translateBy=function(E,S,k,P){g.transform(E,function(){return r(this.__zoom.translate(typeof S=="function"?S.apply(this,arguments):S,typeof k=="function"?k.apply(this,arguments):k),t.apply(this,arguments),l)},null,P)},g.translateTo=function(E,S,k,P,O){g.transform(E,function(){var $=t.apply(this,arguments),H=this.__zoom,L=P==null?w($):typeof P=="function"?P.apply(this,arguments):P;return r(fs.translate(L[0],L[1]).scale(H.k).translate(typeof S=="function"?-S.apply(this,arguments):-S,typeof k=="function"?-k.apply(this,arguments):-k),$,l)},P,O)};function b(E,S){return S=Math.max(i[0],Math.min(i[1],S)),S===E.k?E:new cs(S,E.x,E.y)}function j(E,S,k){var P=S[0]-k[0]*E.k,O=S[1]-k[1]*E.k;return P===E.x&&O===E.y?E:new cs(E.k,P,O)}function w(E){return[(+E[0][0]+ +E[1][0])/2,(+E[0][1]+ +E[1][1])/2]}function C(E,S,k,P){E.on("start.zoom",function(){N(this,arguments).event(P).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(P).end()}).tween("zoom",function(){var O=this,$=arguments,H=N(O,$).event(P),L=t.apply(O,$),W=k==null?w(L):typeof k=="function"?k.apply(O,$):k,M=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),R=O.__zoom,U=typeof S=="function"?S.apply(O,$):S,K=c(R.invert(W).concat(M/R.k),U.invert(W).concat(M/U.k));return function(F){if(F===1)F=U;else{var Y=K(F),V=M/Y[2];F=new cs(V,W[0]-Y[0]*V,W[1]-Y[1]*V)}H.zoom(null,F)}})}function N(E,S,k){return!k&&E.__zooming||new A(E,S)}function A(E,S){this.that=E,this.args=S,this.active=0,this.sourceEvent=null,this.extent=t.apply(E,S),this.taps=0}A.prototype={event:function(E){return E&&(this.sourceEvent=E),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(E,S){return this.mouse&&E!=="mouse"&&(this.mouse[1]=S.invert(this.mouse[0])),this.touch0&&E!=="touch"&&(this.touch0[1]=S.invert(this.touch0[0])),this.touch1&&E!=="touch"&&(this.touch1[1]=S.invert(this.touch1[0])),this.that.__zoom=S,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(E){var S=un(this.that).datum();d.call(E,this.that,new m8(E,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:d}),S)}};function _(E,...S){if(!e.apply(this,arguments))return;var k=N(this,S).event(E),P=this.__zoom,O=Math.max(i[0],Math.min(i[1],P.k*Math.pow(2,s.apply(this,arguments)))),$=Pn(E);if(k.wheel)(k.mouse[0][0]!==$[0]||k.mouse[0][1]!==$[1])&&(k.mouse[1]=P.invert(k.mouse[0]=$)),clearTimeout(k.wheel);else{if(P.k===O)return;k.mouse=[$,P.invert($)],hu(this),k.start()}no(E),k.wheel=setTimeout(H,p),k.zoom("mouse",r(j(b(P,O),k.mouse[0],k.mouse[1]),k.extent,l));function H(){k.wheel=null,k.end()}}function I(E,...S){if(f||!e.apply(this,arguments))return;var k=E.currentTarget,P=N(this,S,!0).event(E),O=un(E.view).on("mousemove.zoom",W,!0).on("mouseup.zoom",M,!0),$=Pn(E,k),H=E.clientX,L=E.clientY;GC(E.view),Wh(E),P.mouse=[$,this.__zoom.invert($)],hu(this),P.start();function W(R){if(no(R),!P.moved){var U=R.clientX-H,K=R.clientY-L;P.moved=U*U+K*K>v}P.event(R).zoom("mouse",r(j(P.that.__zoom,P.mouse[0]=Pn(R,k),P.mouse[1]),P.extent,l))}function M(R){O.on("mousemove.zoom mouseup.zoom",null),YC(R.view,P.moved),no(R),P.event(R).end()}}function B(E,...S){if(e.apply(this,arguments)){var k=this.__zoom,P=Pn(E.changedTouches?E.changedTouches[0]:E,this),O=k.invert(P),$=k.k*(E.shiftKey?.5:2),H=r(j(b(k,$),P,O),t.apply(this,S),l);no(E),o>0?un(this).transition().duration(o).call(C,H,P,E):un(this).call(g.transform,H,P,E)}}function z(E,...S){if(e.apply(this,arguments)){var k=E.touches,P=k.length,O=N(this,S,E.changedTouches.length===P).event(E),$,H,L,W;for(Wh(E),H=0;H"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},d4=ws.error001();function Qe(e,t){const r=x.useContext(mf);if(r===null)throw new Error(d4);return $C(r,e,t)}const Dt=()=>{const e=x.useContext(mf);if(e===null)throw new Error(d4);return x.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},v8=e=>e.userSelectionActive?"none":"all";function di({position:e,children:t,className:r,style:s,...a}){const i=Qe(v8),l=`${e}`.split("-");return te.createElement("div",{className:rr(["react-flow__panel",r,...l]),style:{...s,pointerEvents:i},...a},t)}function b8({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:te.createElement(di,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},te.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const j8=({x:e,y:t,label:r,labelStyle:s={},labelShowBg:a=!0,labelBgStyle:i={},labelBgPadding:l=[2,4],labelBgBorderRadius:o=2,children:c,className:d,...u})=>{const m=x.useRef(null),[f,h]=x.useState({x:0,y:0,width:0,height:0}),p=rr(["react-flow__edge-textwrapper",d]);return x.useEffect(()=>{if(m.current){const v=m.current.getBBox();h({x:v.x,y:v.y,width:v.width,height:v.height})}},[r]),typeof r>"u"||!r?null:te.createElement("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:p,visibility:f.width?"visible":"hidden",...u},a&&te.createElement("rect",{width:f.width+2*l[0],x:-l[0],y:-l[1],height:f.height+2*l[1],className:"react-flow__edge-textbg",style:i,rx:o,ry:o}),te.createElement("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:m,style:s},r),c)};var w8=x.memo(j8);const Z0=e=>({width:e.offsetWidth,height:e.offsetHeight}),pl=(e,t=0,r=1)=>Math.min(Math.max(e,t),r),J0=(e={x:0,y:0},t)=>({x:pl(e.x,t[0][0],t[1][0]),y:pl(e.y,t[0][1],t[1][1])}),vw=(e,t,r)=>er?-pl(Math.abs(e-r),1,50)/50:0,u4=(e,t)=>{const r=vw(e.x,35,t.width-35)*20,s=vw(e.y,35,t.height-35)*20;return[r,s]},m4=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},f4=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),lc=({x:e,y:t,width:r,height:s})=>({x:e,y:t,x2:e+r,y2:t+s}),h4=({x:e,y:t,x2:r,y2:s})=>({x:e,y:t,width:r-e,height:s-t}),bw=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),N8=(e,t)=>h4(f4(lc(e),lc(t))),Rp=(e,t)=>{const r=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),s=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(r*s)},S8=e=>fn(e.width)&&fn(e.height)&&fn(e.x)&&fn(e.y),fn=e=>!isNaN(e)&&isFinite(e),xt=Symbol.for("internals"),x4=["Enter"," ","Escape"],k8=(e,t)=>{},C8=e=>"nativeEvent"in e;function Fp(e){var a,i;const t=C8(e)?e.nativeEvent:e,r=((i=(a=t.composedPath)==null?void 0:a.call(t))==null?void 0:i[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const p4=e=>"clientX"in e,aa=(e,t)=>{var i,l;const r=p4(e),s=r?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,a=r?e.clientY:(l=e.touches)==null?void 0:l[0].clientY;return{x:s-((t==null?void 0:t.left)??0),y:a-((t==null?void 0:t.top)??0)}},Zu=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},_c=({id:e,path:t,labelX:r,labelY:s,label:a,labelStyle:i,labelShowBg:l,labelBgStyle:o,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:m,markerStart:f,interactionWidth:h=20})=>te.createElement(te.Fragment,null,te.createElement("path",{id:e,style:u,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:m,markerStart:f}),h&&te.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),a&&fn(r)&&fn(s)?te.createElement(w8,{x:r,y:s,label:a,labelStyle:i,labelShowBg:l,labelBgStyle:o,labelBgPadding:c,labelBgBorderRadius:d}):null);_c.displayName="BaseEdge";function so(e,t,r){return r===void 0?r:s=>{const a=t().edges.find(i=>i.id===e);a&&r(s,{...a})}}function g4({sourceX:e,sourceY:t,targetX:r,targetY:s}){const a=Math.abs(r-e)/2,i=r{const[y,g,b]=v4({sourceX:e,sourceY:t,sourcePosition:a,targetX:r,targetY:s,targetPosition:i});return te.createElement(_c,{path:y,labelX:g,labelY:b,label:l,labelStyle:o,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:m,style:f,markerEnd:h,markerStart:p,interactionWidth:v})});Q0.displayName="SimpleBezierEdge";const ww={[be.Left]:{x:-1,y:0},[be.Right]:{x:1,y:0},[be.Top]:{x:0,y:-1},[be.Bottom]:{x:0,y:1}},E8=({source:e,sourcePosition:t=be.Bottom,target:r})=>t===be.Left||t===be.Right?e.xMath.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function P8({source:e,sourcePosition:t=be.Bottom,target:r,targetPosition:s=be.Top,center:a,offset:i}){const l=ww[t],o=ww[s],c={x:e.x+l.x*i,y:e.y+l.y*i},d={x:r.x+o.x*i,y:r.y+o.y*i},u=E8({source:c,sourcePosition:t,target:d}),m=u.x!==0?"x":"y",f=u[m];let h=[],p,v;const y={x:0,y:0},g={x:0,y:0},[b,j,w,C]=g4({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(l[m]*o[m]===-1){p=a.x??b,v=a.y??j;const A=[{x:p,y:c.y},{x:p,y:d.y}],_=[{x:c.x,y:v},{x:d.x,y:v}];l[m]===f?h=m==="x"?A:_:h=m==="x"?_:A}else{const A=[{x:c.x,y:d.y}],_=[{x:d.x,y:c.y}];if(m==="x"?h=l.x===f?_:A:h=l.y===f?A:_,t===s){const D=Math.abs(e[m]-r[m]);if(D<=i){const E=Math.min(i-1,i-D);l[m]===f?y[m]=(c[m]>e[m]?-1:1)*E:g[m]=(d[m]>r[m]?-1:1)*E}}if(t!==s){const D=m==="x"?"y":"x",E=l[m]===o[D],S=c[D]>d[D],k=c[D]=T?(p=(I.x+B.x)/2,v=h[0].y):(p=h[0].x,v=(I.y+B.y)/2)}return[[e,{x:c.x+y.x,y:c.y+y.y},...h,{x:d.x+g.x,y:d.y+g.y},r],p,v,w,C]}function A8(e,t,r,s){const a=Math.min(Nw(e,t)/2,Nw(t,r)/2,s),{x:i,y:l}=t;if(e.x===i&&i===r.x||e.y===l&&l===r.y)return`L${i} ${l}`;if(e.y===l){const d=e.x{let j="";return b>0&&b{const[g,b,j]=zp({sourceX:e,sourceY:t,sourcePosition:m,targetX:r,targetY:s,targetPosition:f,borderRadius:v==null?void 0:v.borderRadius,offset:v==null?void 0:v.offset});return te.createElement(_c,{path:g,labelX:b,labelY:j,label:a,labelStyle:i,labelShowBg:l,labelBgStyle:o,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:h,markerStart:p,interactionWidth:y})});ff.displayName="SmoothStepEdge";const ey=x.memo(e=>{var t;return te.createElement(ff,{...e,pathOptions:x.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(t=e.pathOptions)==null?void 0:t.offset])})});ey.displayName="StepEdge";function T8({sourceX:e,sourceY:t,targetX:r,targetY:s}){const[a,i,l,o]=g4({sourceX:e,sourceY:t,targetX:r,targetY:s});return[`M ${e},${t}L ${r},${s}`,a,i,l,o]}const ty=x.memo(({sourceX:e,sourceY:t,targetX:r,targetY:s,label:a,labelStyle:i,labelShowBg:l,labelBgStyle:o,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:m,markerStart:f,interactionWidth:h})=>{const[p,v,y]=T8({sourceX:e,sourceY:t,targetX:r,targetY:s});return te.createElement(_c,{path:p,labelX:v,labelY:y,label:a,labelStyle:i,labelShowBg:l,labelBgStyle:o,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:m,markerStart:f,interactionWidth:h})});ty.displayName="StraightEdge";function _d(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Sw({pos:e,x1:t,y1:r,x2:s,y2:a,c:i}){switch(e){case be.Left:return[t-_d(t-s,i),r];case be.Right:return[t+_d(s-t,i),r];case be.Top:return[t,r-_d(r-a,i)];case be.Bottom:return[t,r+_d(a-r,i)]}}function b4({sourceX:e,sourceY:t,sourcePosition:r=be.Bottom,targetX:s,targetY:a,targetPosition:i=be.Top,curvature:l=.25}){const[o,c]=Sw({pos:r,x1:e,y1:t,x2:s,y2:a,c:l}),[d,u]=Sw({pos:i,x1:s,y1:a,x2:e,y2:t,c:l}),[m,f,h,p]=y4({sourceX:e,sourceY:t,targetX:s,targetY:a,sourceControlX:o,sourceControlY:c,targetControlX:d,targetControlY:u});return[`M${e},${t} C${o},${c} ${d},${u} ${s},${a}`,m,f,h,p]}const Ju=x.memo(({sourceX:e,sourceY:t,targetX:r,targetY:s,sourcePosition:a=be.Bottom,targetPosition:i=be.Top,label:l,labelStyle:o,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:m,style:f,markerEnd:h,markerStart:p,pathOptions:v,interactionWidth:y})=>{const[g,b,j]=b4({sourceX:e,sourceY:t,sourcePosition:a,targetX:r,targetY:s,targetPosition:i,curvature:v==null?void 0:v.curvature});return te.createElement(_c,{path:g,labelX:b,labelY:j,label:l,labelStyle:o,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:m,style:f,markerEnd:h,markerStart:p,interactionWidth:y})});Ju.displayName="BezierEdge";const ry=x.createContext(null),_8=ry.Provider;ry.Consumer;const O8=()=>x.useContext(ry),M8=e=>"id"in e&&"source"in e&&"target"in e,D8=({source:e,sourceHandle:t,target:r,targetHandle:s})=>`reactflow__edge-${e}${t||""}-${r}${s||""}`,Bp=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(s=>`${s}=${e[s]}`).join("&")}`,$8=(e,t)=>t.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),j4=(e,t)=>{if(!e.source||!e.target)return t;let r;return M8(e)?r={...e}:r={...e,id:D8(e)},$8(r,t)?t:t.concat(r)},Up=({x:e,y:t},[r,s,a],i,[l,o])=>{const c={x:(e-r)/a,y:(t-s)/a};return i?{x:l*Math.round(c.x/l),y:o*Math.round(c.y/o)}:c},w4=({x:e,y:t},[r,s,a])=>({x:e*a+r,y:t*a+s}),Za=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(e.width??0)*t[0],s=(e.height??0)*t[1],a={x:e.position.x-r,y:e.position.y-s};return{...a,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-s}:a}},hf=(e,t=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((s,a)=>{const{x:i,y:l}=Za(a,t).positionAbsolute;return f4(s,lc({x:i,y:l,width:a.width||0,height:a.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return h4(r)},N4=(e,t,[r,s,a]=[0,0,1],i=!1,l=!1,o=[0,0])=>{const c={x:(t.x-r)/a,y:(t.y-s)/a,width:t.width/a,height:t.height/a},d=[];return e.forEach(u=>{const{width:m,height:f,selectable:h=!0,hidden:p=!1}=u;if(l&&!h||p)return!1;const{positionAbsolute:v}=Za(u,o),y={x:v.x,y:v.y,width:m||0,height:f||0},g=Rp(c,y),b=typeof m>"u"||typeof f>"u"||m===null||f===null,j=i&&g>0,w=(m||0)*(f||0);(b||j||g>=w||u.dragging)&&d.push(u)}),d},S4=(e,t)=>{const r=e.map(s=>s.id);return t.filter(s=>r.includes(s.source)||r.includes(s.target))},k4=(e,t,r,s,a,i=.1)=>{const l=t/(e.width*(1+i)),o=r/(e.height*(1+i)),c=Math.min(l,o),d=pl(c,s,a),u=e.x+e.width/2,m=e.y+e.height/2,f=t/2-u*d,h=r/2-m*d;return{x:f,y:h,zoom:d}},_a=(e,t=0)=>e.transition().duration(t);function kw(e,t,r,s){return(t[r]||[]).reduce((a,i)=>{var l,o;return`${e.id}-${i.id}-${r}`!==s&&a.push({id:i.id||null,type:r,nodeId:e.id,x:(((l=e.positionAbsolute)==null?void 0:l.x)??0)+i.x+i.width/2,y:(((o=e.positionAbsolute)==null?void 0:o.y)??0)+i.y+i.height/2}),a},[])}function L8(e,t,r,s,a,i){const{x:l,y:o}=aa(e),d=t.elementsFromPoint(l,o).find(p=>p.classList.contains("react-flow__handle"));if(d){const p=d.getAttribute("data-nodeid");if(p){const v=ny(void 0,d),y=d.getAttribute("data-handleid"),g=i({nodeId:p,id:y,type:v});if(g){const b=a.find(j=>j.nodeId===p&&j.type===v&&j.id===y);return{handle:{id:y,type:v,nodeId:p,x:(b==null?void 0:b.x)||r.x,y:(b==null?void 0:b.y)||r.y},validHandleResult:g}}}}let u=[],m=1/0;if(a.forEach(p=>{const v=Math.sqrt((p.x-r.x)**2+(p.y-r.y)**2);if(v<=s){const y=i(p);v<=m&&(vp.isValid),h=u.some(({handle:p})=>p.type==="target");return u.find(({handle:p,validHandleResult:v})=>h?p.type==="target":f?v.isValid:!0)||u[0]}const I8={source:null,target:null,sourceHandle:null,targetHandle:null},C4=()=>({handleDomNode:null,isValid:!1,connection:I8,endHandle:null});function E4(e,t,r,s,a,i,l){const o=a==="target",c=l.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),d={...C4(),handleDomNode:c};if(c){const u=ny(void 0,c),m=c.getAttribute("data-nodeid"),f=c.getAttribute("data-handleid"),h=c.classList.contains("connectable"),p=c.classList.contains("connectableend"),v={source:o?m:r,sourceHandle:o?f:s,target:o?r:m,targetHandle:o?s:f};d.connection=v,h&&p&&(t===ui.Strict?o&&u==="source"||!o&&u==="target":m!==r||f!==s)&&(d.endHandle={nodeId:m,handleId:f,type:u},d.isValid=i(v))}return d}function R8({nodes:e,nodeId:t,handleId:r,handleType:s}){return e.reduce((a,i)=>{if(i[xt]){const{handleBounds:l}=i[xt];let o=[],c=[];l&&(o=kw(i,l,"source",`${t}-${r}-${s}`),c=kw(i,l,"target",`${t}-${r}-${s}`)),a.push(...o,...c)}return a},[])}function ny(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function qh(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function F8(e,t){let r=null;return t?r="valid":e&&!t&&(r="invalid"),r}function P4({event:e,handleId:t,nodeId:r,onConnect:s,isTarget:a,getState:i,setState:l,isValidConnection:o,edgeUpdaterType:c,onReconnectEnd:d}){const u=m4(e.target),{connectionMode:m,domNode:f,autoPanOnConnect:h,connectionRadius:p,onConnectStart:v,panBy:y,getNodes:g,cancelConnection:b}=i();let j=0,w;const{x:C,y:N}=aa(e),A=u==null?void 0:u.elementFromPoint(C,N),_=ny(c,A),I=f==null?void 0:f.getBoundingClientRect();if(!I||!_)return;let B,z=aa(e,I),T=!1,D=null,E=!1,S=null;const k=R8({nodes:g(),nodeId:r,handleId:t,handleType:_}),P=()=>{if(!h)return;const[H,L]=u4(z,I);y({x:H,y:L}),j=requestAnimationFrame(P)};l({connectionPosition:z,connectionStatus:null,connectionNodeId:r,connectionHandleId:t,connectionHandleType:_,connectionStartHandle:{nodeId:r,handleId:t,type:_},connectionEndHandle:null}),v==null||v(e,{nodeId:r,handleId:t,handleType:_});function O(H){const{transform:L}=i();z=aa(H,I);const{handle:W,validHandleResult:M}=L8(H,u,Up(z,L,!1,[1,1]),p,k,R=>E4(R,m,r,t,a?"target":"source",o,u));if(w=W,T||(P(),T=!0),S=M.handleDomNode,D=M.connection,E=M.isValid,l({connectionPosition:w&&E?w4({x:w.x,y:w.y},L):z,connectionStatus:F8(!!w,E),connectionEndHandle:M.endHandle}),!w&&!E&&!S)return qh(B);D.source!==D.target&&S&&(qh(B),B=S,S.classList.add("connecting","react-flow__handle-connecting"),S.classList.toggle("valid",E),S.classList.toggle("react-flow__handle-valid",E))}function $(H){var L,W;(w||S)&&D&&E&&(s==null||s(D)),(W=(L=i()).onConnectEnd)==null||W.call(L,H),c&&(d==null||d(H)),qh(B),b(),cancelAnimationFrame(j),T=!1,E=!1,D=null,S=null,u.removeEventListener("mousemove",O),u.removeEventListener("mouseup",$),u.removeEventListener("touchmove",O),u.removeEventListener("touchend",$)}u.addEventListener("mousemove",O),u.addEventListener("mouseup",$),u.addEventListener("touchmove",O),u.addEventListener("touchend",$)}const Cw=()=>!0,z8=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),B8=(e,t,r)=>s=>{const{connectionStartHandle:a,connectionEndHandle:i,connectionClickStartHandle:l}=s;return{connecting:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.handleId)===t&&(a==null?void 0:a.type)===r||(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.handleId)===t&&(i==null?void 0:i.type)===r,clickConnecting:(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===t&&(l==null?void 0:l.type)===r}},A4=x.forwardRef(({type:e="source",position:t=be.Top,isValidConnection:r,isConnectable:s=!0,isConnectableStart:a=!0,isConnectableEnd:i=!0,id:l,onConnect:o,children:c,className:d,onMouseDown:u,onTouchStart:m,...f},h)=>{var I,B;const p=l||null,v=e==="target",y=Dt(),g=O8(),{connectOnClick:b,noPanClassName:j}=Qe(z8,Vt),{connecting:w,clickConnecting:C}=Qe(B8(g,p,e),Vt);g||(B=(I=y.getState()).onError)==null||B.call(I,"010",ws.error010());const N=z=>{const{defaultEdgeOptions:T,onConnect:D,hasDefaultEdges:E}=y.getState(),S={...T,...z};if(E){const{edges:k,setEdges:P}=y.getState();P(j4(S,k))}D==null||D(S),o==null||o(S)},A=z=>{if(!g)return;const T=p4(z);a&&(T&&z.button===0||!T)&&P4({event:z,handleId:p,nodeId:g,onConnect:N,isTarget:v,getState:y.getState,setState:y.setState,isValidConnection:r||y.getState().isValidConnection||Cw}),T?u==null||u(z):m==null||m(z)},_=z=>{const{onClickConnectStart:T,onClickConnectEnd:D,connectionClickStartHandle:E,connectionMode:S,isValidConnection:k}=y.getState();if(!g||!E&&!a)return;if(!E){T==null||T(z,{nodeId:g,handleId:p,handleType:e}),y.setState({connectionClickStartHandle:{nodeId:g,type:e,handleId:p}});return}const P=m4(z.target),O=r||k||Cw,{connection:$,isValid:H}=E4({nodeId:g,id:p,type:e},S,E.nodeId,E.handleId||null,E.type,O,P);H&&N($),D==null||D(z),y.setState({connectionClickStartHandle:null})};return te.createElement("div",{"data-handleid":p,"data-nodeid":g,"data-handlepos":t,"data-id":`${g}-${p}-${e}`,className:rr(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",j,d,{source:!v,target:v,connectable:s,connectablestart:a,connectableend:i,connecting:C,connectionindicator:s&&(a&&!w||i&&w)}]),onMouseDown:A,onTouchStart:A,onClick:b?_:void 0,ref:h,...f},c)});A4.displayName="Handle";var Qu=x.memo(A4);const T4=({data:e,isConnectable:t,targetPosition:r=be.Top,sourcePosition:s=be.Bottom})=>te.createElement(te.Fragment,null,te.createElement(Qu,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label,te.createElement(Qu,{type:"source",position:s,isConnectable:t}));T4.displayName="DefaultNode";var Hp=x.memo(T4);const _4=({data:e,isConnectable:t,sourcePosition:r=be.Bottom})=>te.createElement(te.Fragment,null,e==null?void 0:e.label,te.createElement(Qu,{type:"source",position:r,isConnectable:t}));_4.displayName="InputNode";var O4=x.memo(_4);const M4=({data:e,isConnectable:t,targetPosition:r=be.Top})=>te.createElement(te.Fragment,null,te.createElement(Qu,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label);M4.displayName="OutputNode";var D4=x.memo(M4);const sy=()=>null;sy.displayName="GroupNode";const U8=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected).map(t=>({...t}))}),Od=e=>e.id;function H8(e,t){return Vt(e.selectedNodes.map(Od),t.selectedNodes.map(Od))&&Vt(e.selectedEdges.map(Od),t.selectedEdges.map(Od))}const $4=x.memo(({onSelectionChange:e})=>{const t=Dt(),{selectedNodes:r,selectedEdges:s}=Qe(U8,H8);return x.useEffect(()=>{const a={nodes:r,edges:s};e==null||e(a),t.getState().onSelectionChange.forEach(i=>i(a))},[r,s,e]),null});$4.displayName="SelectionListener";const V8=e=>!!e.onSelectionChange;function K8({onSelectionChange:e}){const t=Qe(V8);return e||t?te.createElement($4,{onSelectionChange:e}):null}const W8=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Pi(e,t){x.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function Pe(e,t,r){x.useEffect(()=>{typeof t<"u"&&r({[e]:t})},[t])}const q8=({nodes:e,edges:t,defaultNodes:r,defaultEdges:s,onConnect:a,onConnectStart:i,onConnectEnd:l,onClickConnectStart:o,onClickConnectEnd:c,nodesDraggable:d,nodesConnectable:u,nodesFocusable:m,edgesFocusable:f,edgesUpdatable:h,elevateNodesOnSelect:p,minZoom:v,maxZoom:y,nodeExtent:g,onNodesChange:b,onEdgesChange:j,elementsSelectable:w,connectionMode:C,snapGrid:N,snapToGrid:A,translateExtent:_,connectOnClick:I,defaultEdgeOptions:B,fitView:z,fitViewOptions:T,onNodesDelete:D,onEdgesDelete:E,onNodeDrag:S,onNodeDragStart:k,onNodeDragStop:P,onSelectionDrag:O,onSelectionDragStart:$,onSelectionDragStop:H,noPanClassName:L,nodeOrigin:W,rfId:M,autoPanOnConnect:R,autoPanOnNodeDrag:U,onError:K,connectionRadius:F,isValidConnection:Y,nodeDragThreshold:V})=>{const{setNodes:q,setEdges:J,setDefaultNodesAndEdges:G,setMinZoom:le,setMaxZoom:ce,setTranslateExtent:oe,setNodeExtent:se,reset:ie}=Qe(W8,Vt),de=Dt();return x.useEffect(()=>{const Le=s==null?void 0:s.map(Z=>({...Z,...B}));return G(r,Le),()=>{ie()}},[]),Pe("defaultEdgeOptions",B,de.setState),Pe("connectionMode",C,de.setState),Pe("onConnect",a,de.setState),Pe("onConnectStart",i,de.setState),Pe("onConnectEnd",l,de.setState),Pe("onClickConnectStart",o,de.setState),Pe("onClickConnectEnd",c,de.setState),Pe("nodesDraggable",d,de.setState),Pe("nodesConnectable",u,de.setState),Pe("nodesFocusable",m,de.setState),Pe("edgesFocusable",f,de.setState),Pe("edgesUpdatable",h,de.setState),Pe("elementsSelectable",w,de.setState),Pe("elevateNodesOnSelect",p,de.setState),Pe("snapToGrid",A,de.setState),Pe("snapGrid",N,de.setState),Pe("onNodesChange",b,de.setState),Pe("onEdgesChange",j,de.setState),Pe("connectOnClick",I,de.setState),Pe("fitViewOnInit",z,de.setState),Pe("fitViewOnInitOptions",T,de.setState),Pe("onNodesDelete",D,de.setState),Pe("onEdgesDelete",E,de.setState),Pe("onNodeDrag",S,de.setState),Pe("onNodeDragStart",k,de.setState),Pe("onNodeDragStop",P,de.setState),Pe("onSelectionDrag",O,de.setState),Pe("onSelectionDragStart",$,de.setState),Pe("onSelectionDragStop",H,de.setState),Pe("noPanClassName",L,de.setState),Pe("nodeOrigin",W,de.setState),Pe("rfId",M,de.setState),Pe("autoPanOnConnect",R,de.setState),Pe("autoPanOnNodeDrag",U,de.setState),Pe("onError",K,de.setState),Pe("connectionRadius",F,de.setState),Pe("isValidConnection",Y,de.setState),Pe("nodeDragThreshold",V,de.setState),Pi(e,q),Pi(t,J),Pi(v,le),Pi(y,ce),Pi(_,oe),Pi(g,se),null},Ew={display:"none"},G8={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},L4="react-flow__node-desc",I4="react-flow__edge-desc",Y8="react-flow__aria-live",X8=e=>e.ariaLiveMessage;function Z8({rfId:e}){const t=Qe(X8);return te.createElement("div",{id:`${Y8}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:G8},t)}function J8({rfId:e,disableKeyboardA11y:t}){return te.createElement(te.Fragment,null,te.createElement("div",{id:`${L4}-${e}`,style:Ew},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),te.createElement("div",{id:`${I4}-${e}`,style:Ew},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&te.createElement(Z8,{rfId:e}))}var cc=(e=null,t={actInsideInputWithModifier:!0})=>{const[r,s]=x.useState(!1),a=x.useRef(!1),i=x.useRef(new Set([])),[l,o]=x.useMemo(()=>{if(e!==null){const d=(Array.isArray(e)?e:[e]).filter(m=>typeof m=="string").map(m=>m.split("+")),u=d.reduce((m,f)=>m.concat(...f),[]);return[d,u]}return[[],[]]},[e]);return x.useEffect(()=>{const c=typeof document<"u"?document:null,d=(t==null?void 0:t.target)||c;if(e!==null){const u=h=>{if(a.current=h.ctrlKey||h.metaKey||h.shiftKey,(!a.current||a.current&&!t.actInsideInputWithModifier)&&Fp(h))return!1;const v=Aw(h.code,o);i.current.add(h[v]),Pw(l,i.current,!1)&&(h.preventDefault(),s(!0))},m=h=>{if((!a.current||a.current&&!t.actInsideInputWithModifier)&&Fp(h))return!1;const v=Aw(h.code,o);Pw(l,i.current,!0)?(s(!1),i.current.clear()):i.current.delete(h[v]),h.key==="Meta"&&i.current.clear(),a.current=!1},f=()=>{i.current.clear(),s(!1)};return d==null||d.addEventListener("keydown",u),d==null||d.addEventListener("keyup",m),window.addEventListener("blur",f),()=>{d==null||d.removeEventListener("keydown",u),d==null||d.removeEventListener("keyup",m),window.removeEventListener("blur",f)}}},[e,s]),r};function Pw(e,t,r){return e.filter(s=>r||s.length===t.size).some(s=>s.every(a=>t.has(a)))}function Aw(e,t){return t.includes(e)?"code":"key"}function R4(e,t,r,s){var o,c;const a=e.parentNode||e.parentId;if(!a)return r;const i=t.get(a),l=Za(i,s);return R4(i,t,{x:(r.x??0)+l.x,y:(r.y??0)+l.y,z:(((o=i[xt])==null?void 0:o.z)??0)>(r.z??0)?((c=i[xt])==null?void 0:c.z)??0:r.z??0},s)}function F4(e,t,r){e.forEach(s=>{var i;const a=s.parentNode||s.parentId;if(a&&!e.has(a))throw new Error(`Parent node ${a} not found`);if(a||r!=null&&r[s.id]){const{x:l,y:o,z:c}=R4(s,e,{...s.position,z:((i=s[xt])==null?void 0:i.z)??0},t);s.positionAbsolute={x:l,y:o},s[xt].z=c,r!=null&&r[s.id]&&(s[xt].isParent=!0)}})}function Gh(e,t,r,s){const a=new Map,i={},l=s?1e3:0;return e.forEach(o=>{var h;const c=(fn(o.zIndex)?o.zIndex:0)+(o.selected?l:0),d=t.get(o.id),u={...o,positionAbsolute:{x:o.position.x,y:o.position.y}},m=o.parentNode||o.parentId;m&&(i[m]=!0);const f=(d==null?void 0:d.type)&&(d==null?void 0:d.type)!==o.type;Object.defineProperty(u,xt,{enumerable:!1,value:{handleBounds:f||(h=d==null?void 0:d[xt])==null?void 0:h.handleBounds,z:c}}),a.set(o.id,u)}),F4(a,r,i),a}function z4(e,t={}){const{getNodes:r,width:s,height:a,minZoom:i,maxZoom:l,d3Zoom:o,d3Selection:c,fitViewOnInitDone:d,fitViewOnInit:u,nodeOrigin:m}=e(),f=t.initial&&!d&&u;if(o&&c&&(f||!t.initial)){const p=r().filter(y=>{var b;const g=t.includeHiddenNodes?y.width&&y.height:!y.hidden;return(b=t.nodes)!=null&&b.length?g&&t.nodes.some(j=>j.id===y.id):g}),v=p.every(y=>y.width&&y.height);if(p.length>0&&v){const y=hf(p,m),{x:g,y:b,zoom:j}=k4(y,s,a,t.minZoom??i,t.maxZoom??l,t.padding??.1),w=fs.translate(g,b).scale(j);return typeof t.duration=="number"&&t.duration>0?o.transform(_a(c,t.duration),w):o.transform(c,w),!0}}return!1}function Q8(e,t){return e.forEach(r=>{const s=t.get(r.id);s&&t.set(s.id,{...s,[xt]:s[xt],selected:r.selected})}),new Map(t)}function e7(e,t){return t.map(r=>{const s=e.find(a=>a.id===r.id);return s&&(r.selected=s.selected),r})}function Md({changedNodes:e,changedEdges:t,get:r,set:s}){const{nodeInternals:a,edges:i,onNodesChange:l,onEdgesChange:o,hasDefaultNodes:c,hasDefaultEdges:d}=r();e!=null&&e.length&&(c&&s({nodeInternals:Q8(e,a)}),l==null||l(e)),t!=null&&t.length&&(d&&s({edges:e7(t,i)}),o==null||o(t))}const Ai=()=>{},t7={zoomIn:Ai,zoomOut:Ai,zoomTo:Ai,getZoom:()=>1,setViewport:Ai,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Ai,fitBounds:Ai,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},r7=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),n7=()=>{const e=Dt(),{d3Zoom:t,d3Selection:r}=Qe(r7,Vt);return x.useMemo(()=>r&&t?{zoomIn:a=>t.scaleBy(_a(r,a==null?void 0:a.duration),1.2),zoomOut:a=>t.scaleBy(_a(r,a==null?void 0:a.duration),1/1.2),zoomTo:(a,i)=>t.scaleTo(_a(r,i==null?void 0:i.duration),a),getZoom:()=>e.getState().transform[2],setViewport:(a,i)=>{const[l,o,c]=e.getState().transform,d=fs.translate(a.x??l,a.y??o).scale(a.zoom??c);t.transform(_a(r,i==null?void 0:i.duration),d)},getViewport:()=>{const[a,i,l]=e.getState().transform;return{x:a,y:i,zoom:l}},fitView:a=>z4(e.getState,a),setCenter:(a,i,l)=>{const{width:o,height:c,maxZoom:d}=e.getState(),u=typeof(l==null?void 0:l.zoom)<"u"?l.zoom:d,m=o/2-a*u,f=c/2-i*u,h=fs.translate(m,f).scale(u);t.transform(_a(r,l==null?void 0:l.duration),h)},fitBounds:(a,i)=>{const{width:l,height:o,minZoom:c,maxZoom:d}=e.getState(),{x:u,y:m,zoom:f}=k4(a,l,o,c,d,(i==null?void 0:i.padding)??.1),h=fs.translate(u,m).scale(f);t.transform(_a(r,i==null?void 0:i.duration),h)},project:a=>{const{transform:i,snapToGrid:l,snapGrid:o}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Up(a,i,l,o)},screenToFlowPosition:a=>{const{transform:i,snapToGrid:l,snapGrid:o,domNode:c}=e.getState();if(!c)return a;const{x:d,y:u}=c.getBoundingClientRect(),m={x:a.x-d,y:a.y-u};return Up(m,i,l,o)},flowToScreenPosition:a=>{const{transform:i,domNode:l}=e.getState();if(!l)return a;const{x:o,y:c}=l.getBoundingClientRect(),d=w4(a,i);return{x:d.x+o,y:d.y+c}},viewportInitialized:!0}:t7,[t,r])};function ay(){const e=n7(),t=Dt(),r=x.useCallback(()=>t.getState().getNodes().map(v=>({...v})),[]),s=x.useCallback(v=>t.getState().nodeInternals.get(v),[]),a=x.useCallback(()=>{const{edges:v=[]}=t.getState();return v.map(y=>({...y}))},[]),i=x.useCallback(v=>{const{edges:y=[]}=t.getState();return y.find(g=>g.id===v)},[]),l=x.useCallback(v=>{const{getNodes:y,setNodes:g,hasDefaultNodes:b,onNodesChange:j}=t.getState(),w=y(),C=typeof v=="function"?v(w):v;if(b)g(C);else if(j){const N=C.length===0?w.map(A=>({type:"remove",id:A.id})):C.map(A=>({item:A,type:"reset"}));j(N)}},[]),o=x.useCallback(v=>{const{edges:y=[],setEdges:g,hasDefaultEdges:b,onEdgesChange:j}=t.getState(),w=typeof v=="function"?v(y):v;if(b)g(w);else if(j){const C=w.length===0?y.map(N=>({type:"remove",id:N.id})):w.map(N=>({item:N,type:"reset"}));j(C)}},[]),c=x.useCallback(v=>{const y=Array.isArray(v)?v:[v],{getNodes:g,setNodes:b,hasDefaultNodes:j,onNodesChange:w}=t.getState();if(j){const N=[...g(),...y];b(N)}else if(w){const C=y.map(N=>({item:N,type:"add"}));w(C)}},[]),d=x.useCallback(v=>{const y=Array.isArray(v)?v:[v],{edges:g=[],setEdges:b,hasDefaultEdges:j,onEdgesChange:w}=t.getState();if(j)b([...g,...y]);else if(w){const C=y.map(N=>({item:N,type:"add"}));w(C)}},[]),u=x.useCallback(()=>{const{getNodes:v,edges:y=[],transform:g}=t.getState(),[b,j,w]=g;return{nodes:v().map(C=>({...C})),edges:y.map(C=>({...C})),viewport:{x:b,y:j,zoom:w}}},[]),m=x.useCallback(({nodes:v,edges:y})=>{const{nodeInternals:g,getNodes:b,edges:j,hasDefaultNodes:w,hasDefaultEdges:C,onNodesDelete:N,onEdgesDelete:A,onNodesChange:_,onEdgesChange:I}=t.getState(),B=(v||[]).map(S=>S.id),z=(y||[]).map(S=>S.id),T=b().reduce((S,k)=>{const P=k.parentNode||k.parentId,O=!B.includes(k.id)&&P&&S.find(H=>H.id===P);return(typeof k.deletable=="boolean"?k.deletable:!0)&&(B.includes(k.id)||O)&&S.push(k),S},[]),D=j.filter(S=>typeof S.deletable=="boolean"?S.deletable:!0),E=D.filter(S=>z.includes(S.id));if(T||E){const S=S4(T,D),k=[...E,...S],P=k.reduce((O,$)=>(O.includes($.id)||O.push($.id),O),[]);if((C||w)&&(C&&t.setState({edges:j.filter(O=>!P.includes(O.id))}),w&&(T.forEach(O=>{g.delete(O.id)}),t.setState({nodeInternals:new Map(g)}))),P.length>0&&(A==null||A(k),I&&I(P.map(O=>({id:O,type:"remove"})))),T.length>0&&(N==null||N(T),_)){const O=T.map($=>({id:$.id,type:"remove"}));_(O)}}},[]),f=x.useCallback(v=>{const y=S8(v),g=y?null:t.getState().nodeInternals.get(v.id);return!y&&!g?[null,null,y]:[y?v:bw(g),g,y]},[]),h=x.useCallback((v,y=!0,g)=>{const[b,j,w]=f(v);return b?(g||t.getState().getNodes()).filter(C=>{if(!w&&(C.id===j.id||!C.positionAbsolute))return!1;const N=bw(C),A=Rp(N,b);return y&&A>0||A>=b.width*b.height}):[]},[]),p=x.useCallback((v,y,g=!0)=>{const[b]=f(v);if(!b)return!1;const j=Rp(b,y);return g&&j>0||j>=b.width*b.height},[]);return x.useMemo(()=>({...e,getNodes:r,getNode:s,getEdges:a,getEdge:i,setNodes:l,setEdges:o,addNodes:c,addEdges:d,toObject:u,deleteElements:m,getIntersectingNodes:h,isNodeIntersecting:p}),[e,r,s,a,i,l,o,c,d,u,m,h,p])}const s7={actInsideInputWithModifier:!1};var a7=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const r=Dt(),{deleteElements:s}=ay(),a=cc(e,s7),i=cc(t);x.useEffect(()=>{if(a){const{edges:l,getNodes:o}=r.getState(),c=o().filter(u=>u.selected),d=l.filter(u=>u.selected);s({nodes:c,edges:d}),r.setState({nodesSelectionActive:!1})}},[a]),x.useEffect(()=>{r.setState({multiSelectionActive:i})},[i])};function i7(e){const t=Dt();x.useEffect(()=>{let r;const s=()=>{var i,l;if(!e.current)return;const a=Z0(e.current);(a.height===0||a.width===0)&&((l=(i=t.getState()).onError)==null||l.call(i,"004",ws.error004())),t.setState({width:a.width||500,height:a.height||500})};return s(),window.addEventListener("resize",s),e.current&&(r=new ResizeObserver(()=>s()),r.observe(e.current)),()=>{window.removeEventListener("resize",s),r&&e.current&&r.unobserve(e.current)}},[])}const iy={position:"absolute",width:"100%",height:"100%",top:0,left:0},l7=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,Dd=e=>({x:e.x,y:e.y,zoom:e.k}),Ti=(e,t)=>e.target.closest(`.${t}`),Tw=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),_w=e=>{const t=e.ctrlKey&&Zu()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},o7=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),c7=({onMove:e,onMoveStart:t,onMoveEnd:r,onPaneContextMenu:s,zoomOnScroll:a=!0,zoomOnPinch:i=!0,panOnScroll:l=!1,panOnScrollSpeed:o=.5,panOnScrollMode:c=Ua.Free,zoomOnDoubleClick:d=!0,elementsSelectable:u,panOnDrag:m=!0,defaultViewport:f,translateExtent:h,minZoom:p,maxZoom:v,zoomActivationKeyCode:y,preventScrolling:g=!0,children:b,noWheelClassName:j,noPanClassName:w})=>{const C=x.useRef(),N=Dt(),A=x.useRef(!1),_=x.useRef(!1),I=x.useRef(null),B=x.useRef({x:0,y:0,zoom:0}),{d3Zoom:z,d3Selection:T,d3ZoomHandler:D,userSelectionActive:E}=Qe(o7,Vt),S=cc(y),k=x.useRef(0),P=x.useRef(!1),O=x.useRef();return i7(I),x.useEffect(()=>{if(I.current){const $=I.current.getBoundingClientRect(),H=c4().scaleExtent([p,v]).translateExtent(h),L=un(I.current).call(H),W=fs.translate(f.x,f.y).scale(pl(f.zoom,p,v)),M=[[0,0],[$.width,$.height]],R=H.constrain()(W,M,h);H.transform(L,R),H.wheelDelta(_w),N.setState({d3Zoom:H,d3Selection:L,d3ZoomHandler:L.on("wheel.zoom"),transform:[R.x,R.y,R.k],domNode:I.current.closest(".react-flow")})}},[]),x.useEffect(()=>{T&&z&&(l&&!S&&!E?T.on("wheel.zoom",$=>{if(Ti($,j))return!1;$.preventDefault(),$.stopImmediatePropagation();const H=T.property("__zoom").k||1;if($.ctrlKey&&i){const Y=Pn($),V=_w($),q=H*Math.pow(2,V);z.scaleTo(T,q,Y,$);return}const L=$.deltaMode===1?20:1;let W=c===Ua.Vertical?0:$.deltaX*L,M=c===Ua.Horizontal?0:$.deltaY*L;!Zu()&&$.shiftKey&&c!==Ua.Vertical&&(W=$.deltaY*L,M=0),z.translateBy(T,-(W/H)*o,-(M/H)*o,{internal:!0});const R=Dd(T.property("__zoom")),{onViewportChangeStart:U,onViewportChange:K,onViewportChangeEnd:F}=N.getState();clearTimeout(O.current),P.current||(P.current=!0,t==null||t($,R),U==null||U(R)),P.current&&(e==null||e($,R),K==null||K(R),O.current=setTimeout(()=>{r==null||r($,R),F==null||F(R),P.current=!1},150))},{passive:!1}):typeof D<"u"&&T.on("wheel.zoom",function($,H){if(!g&&$.type==="wheel"&&!$.ctrlKey||Ti($,j))return null;$.preventDefault(),D.call(this,$,H)},{passive:!1}))},[E,l,c,T,z,D,S,i,g,j,t,e,r]),x.useEffect(()=>{z&&z.on("start",$=>{var W,M;if(!$.sourceEvent||$.sourceEvent.internal)return null;k.current=(W=$.sourceEvent)==null?void 0:W.button;const{onViewportChangeStart:H}=N.getState(),L=Dd($.transform);A.current=!0,B.current=L,((M=$.sourceEvent)==null?void 0:M.type)==="mousedown"&&N.setState({paneDragging:!0}),H==null||H(L),t==null||t($.sourceEvent,L)})},[z,t]),x.useEffect(()=>{z&&(E&&!A.current?z.on("zoom",null):E||z.on("zoom",$=>{var L;const{onViewportChange:H}=N.getState();if(N.setState({transform:[$.transform.x,$.transform.y,$.transform.k]}),_.current=!!(s&&Tw(m,k.current??0)),(e||H)&&!((L=$.sourceEvent)!=null&&L.internal)){const W=Dd($.transform);H==null||H(W),e==null||e($.sourceEvent,W)}}))},[E,z,e,m,s]),x.useEffect(()=>{z&&z.on("end",$=>{if(!$.sourceEvent||$.sourceEvent.internal)return null;const{onViewportChangeEnd:H}=N.getState();if(A.current=!1,N.setState({paneDragging:!1}),s&&Tw(m,k.current??0)&&!_.current&&s($.sourceEvent),_.current=!1,(r||H)&&l7(B.current,$.transform)){const L=Dd($.transform);B.current=L,clearTimeout(C.current),C.current=setTimeout(()=>{H==null||H(L),r==null||r($.sourceEvent,L)},l?150:0)}})},[z,l,m,r,s]),x.useEffect(()=>{z&&z.filter($=>{const H=S||a,L=i&&$.ctrlKey;if((m===!0||Array.isArray(m)&&m.includes(1))&&$.button===1&&$.type==="mousedown"&&(Ti($,"react-flow__node")||Ti($,"react-flow__edge")))return!0;if(!m&&!H&&!l&&!d&&!i||E||!d&&$.type==="dblclick"||Ti($,j)&&$.type==="wheel"||Ti($,w)&&($.type!=="wheel"||l&&$.type==="wheel"&&!S)||!i&&$.ctrlKey&&$.type==="wheel"||!H&&!l&&!L&&$.type==="wheel"||!m&&($.type==="mousedown"||$.type==="touchstart")||Array.isArray(m)&&!m.includes($.button)&&$.type==="mousedown")return!1;const W=Array.isArray(m)&&m.includes($.button)||!$.button||$.button<=1;return(!$.ctrlKey||$.type==="wheel")&&W})},[E,z,a,i,l,d,m,u,S]),te.createElement("div",{className:"react-flow__renderer",ref:I,style:iy},b)},d7=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function u7(){const{userSelectionActive:e,userSelectionRect:t}=Qe(d7,Vt);return e&&t?te.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function Ow(e,t){const r=t.parentNode||t.parentId,s=e.find(a=>a.id===r);if(s){const a=t.position.x+t.width-s.width,i=t.position.y+t.height-s.height;if(a>0||i>0||t.position.x<0||t.position.y<0){if(s.style={...s.style},s.style.width=s.style.width??s.width,s.style.height=s.style.height??s.height,a>0&&(s.style.width+=a),i>0&&(s.style.height+=i),t.position.x<0){const l=Math.abs(t.position.x);s.position.x=s.position.x-l,s.style.width+=l,t.position.x=0}if(t.position.y<0){const l=Math.abs(t.position.y);s.position.y=s.position.y-l,s.style.height+=l,t.position.y=0}s.width=s.style.width,s.height=s.style.height}}}function B4(e,t){if(e.some(s=>s.type==="reset"))return e.filter(s=>s.type==="reset").map(s=>s.item);const r=e.filter(s=>s.type==="add").map(s=>s.item);return t.reduce((s,a)=>{const i=e.filter(o=>o.id===a.id);if(i.length===0)return s.push(a),s;const l={...a};for(const o of i)if(o)switch(o.type){case"select":{l.selected=o.selected;break}case"position":{typeof o.position<"u"&&(l.position=o.position),typeof o.positionAbsolute<"u"&&(l.positionAbsolute=o.positionAbsolute),typeof o.dragging<"u"&&(l.dragging=o.dragging),l.expandParent&&Ow(s,l);break}case"dimensions":{typeof o.dimensions<"u"&&(l.width=o.dimensions.width,l.height=o.dimensions.height),typeof o.updateStyle<"u"&&(l.style={...l.style||{},...o.dimensions}),typeof o.resizing=="boolean"&&(l.resizing=o.resizing),l.expandParent&&Ow(s,l);break}case"remove":return s}return s.push(l),s},r)}function U4(e,t){return B4(e,t)}function m7(e,t){return B4(e,t)}const zs=(e,t)=>({id:e,type:"select",selected:t});function Wi(e,t){return e.reduce((r,s)=>{const a=t.includes(s.id);return!s.selected&&a?(s.selected=!0,r.push(zs(s.id,!0))):s.selected&&!a&&(s.selected=!1,r.push(zs(s.id,!1))),r},[])}const Yh=(e,t)=>r=>{r.target===t.current&&(e==null||e(r))},f7=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),H4=x.memo(({isSelecting:e,selectionMode:t=oc.Full,panOnDrag:r,onSelectionStart:s,onSelectionEnd:a,onPaneClick:i,onPaneContextMenu:l,onPaneScroll:o,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:u,children:m})=>{const f=x.useRef(null),h=Dt(),p=x.useRef(0),v=x.useRef(0),y=x.useRef(),{userSelectionActive:g,elementsSelectable:b,dragging:j}=Qe(f7,Vt),w=()=>{h.setState({userSelectionActive:!1,userSelectionRect:null}),p.current=0,v.current=0},C=D=>{i==null||i(D),h.getState().resetSelectedElements(),h.setState({nodesSelectionActive:!1})},N=D=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){D.preventDefault();return}l==null||l(D)},A=o?D=>o(D):void 0,_=D=>{const{resetSelectedElements:E,domNode:S}=h.getState();if(y.current=S==null?void 0:S.getBoundingClientRect(),!b||!e||D.button!==0||D.target!==f.current||!y.current)return;const{x:k,y:P}=aa(D,y.current);E(),h.setState({userSelectionRect:{width:0,height:0,startX:k,startY:P,x:k,y:P}}),s==null||s(D)},I=D=>{const{userSelectionRect:E,nodeInternals:S,edges:k,transform:P,onNodesChange:O,onEdgesChange:$,nodeOrigin:H,getNodes:L}=h.getState();if(!e||!y.current||!E)return;h.setState({userSelectionActive:!0,nodesSelectionActive:!1});const W=aa(D,y.current),M=E.startX??0,R=E.startY??0,U={...E,x:W.xq.id),V=F.map(q=>q.id);if(p.current!==V.length){p.current=V.length;const q=Wi(K,V);q.length&&(O==null||O(q))}if(v.current!==Y.length){v.current=Y.length;const q=Wi(k,Y);q.length&&($==null||$(q))}h.setState({userSelectionRect:U})},B=D=>{if(D.button!==0)return;const{userSelectionRect:E}=h.getState();!g&&E&&D.target===f.current&&(C==null||C(D)),h.setState({nodesSelectionActive:p.current>0}),w(),a==null||a(D)},z=D=>{g&&(h.setState({nodesSelectionActive:p.current>0}),a==null||a(D)),w()},T=b&&(e||g);return te.createElement("div",{className:rr(["react-flow__pane",{dragging:j,selection:e}]),onClick:T?void 0:Yh(C,f),onContextMenu:Yh(N,f),onWheel:Yh(A,f),onMouseEnter:T?void 0:c,onMouseDown:T?_:void 0,onMouseMove:T?I:d,onMouseUp:T?B:void 0,onMouseLeave:T?z:u,ref:f,style:iy},m,te.createElement(u7,null))});H4.displayName="Pane";function V4(e,t){const r=e.parentNode||e.parentId;if(!r)return!1;const s=t.get(r);return s?s.selected?!0:V4(s,t):!1}function Mw(e,t,r){let s=e;do{if(s!=null&&s.matches(t))return!0;if(s===r.current)return!1;s=s.parentElement}while(s);return!1}function h7(e,t,r,s){return Array.from(e.values()).filter(a=>(a.selected||a.id===s)&&(!a.parentNode||a.parentId||!V4(a,e))&&(a.draggable||t&&typeof a.draggable>"u")).map(a=>{var i,l;return{id:a.id,position:a.position||{x:0,y:0},positionAbsolute:a.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((i=a.positionAbsolute)==null?void 0:i.x)??0),y:r.y-(((l=a.positionAbsolute)==null?void 0:l.y)??0)},delta:{x:0,y:0},extent:a.extent,parentNode:a.parentNode||a.parentId,parentId:a.parentNode||a.parentId,width:a.width,height:a.height,expandParent:a.expandParent}})}function x7(e,t){return!t||t==="parent"?t:[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]}function K4(e,t,r,s,a=[0,0],i){const l=x7(e,e.extent||s);let o=l;const c=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(c&&e.width&&e.height){const m=r.get(c),{x:f,y:h}=Za(m,a).positionAbsolute;o=m&&fn(f)&&fn(h)&&fn(m.width)&&fn(m.height)?[[f+e.width*a[0],h+e.height*a[1]],[f+m.width-e.width+e.width*a[0],h+m.height-e.height+e.height*a[1]]]:o}else i==null||i("005",ws.error005()),o=l;else if(e.extent&&c&&e.extent!=="parent"){const m=r.get(c),{x:f,y:h}=Za(m,a).positionAbsolute;o=[[e.extent[0][0]+f,e.extent[0][1]+h],[e.extent[1][0]+f,e.extent[1][1]+h]]}let d={x:0,y:0};if(c){const m=r.get(c);d=Za(m,a).positionAbsolute}const u=o&&o!=="parent"?J0(t,o):t;return{position:{x:u.x-d.x,y:u.y-d.y},positionAbsolute:u}}function Xh({nodeId:e,dragItems:t,nodeInternals:r}){const s=t.map(a=>({...r.get(a.id),position:a.position,positionAbsolute:a.positionAbsolute}));return[e?s.find(a=>a.id===e):s[0],s]}const Dw=(e,t,r,s)=>{const a=t.querySelectorAll(e);if(!a||!a.length)return null;const i=Array.from(a),l=t.getBoundingClientRect(),o={x:l.width*s[0],y:l.height*s[1]};return i.map(c=>{const d=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),position:c.getAttribute("data-handlepos"),x:(d.left-l.left-o.x)/r,y:(d.top-l.top-o.y)/r,...Z0(c)}})};function ao(e,t,r){return r===void 0?r:s=>{const a=t().nodeInternals.get(e);a&&r(s,{...a})}}function Vp({id:e,store:t,unselect:r=!1,nodeRef:s}){const{addSelectedNodes:a,unselectNodesAndEdges:i,multiSelectionActive:l,nodeInternals:o,onError:c}=t.getState(),d=o.get(e);if(!d){c==null||c("012",ws.error012(e));return}t.setState({nodesSelectionActive:!1}),d.selected?(r||d.selected&&l)&&(i({nodes:[d],edges:[]}),requestAnimationFrame(()=>{var u;return(u=s==null?void 0:s.current)==null?void 0:u.blur()})):a([e])}function p7(){const e=Dt();return x.useCallback(({sourceEvent:r})=>{const{transform:s,snapGrid:a,snapToGrid:i}=e.getState(),l=r.touches?r.touches[0].clientX:r.clientX,o=r.touches?r.touches[0].clientY:r.clientY,c={x:(l-s[0])/s[2],y:(o-s[1])/s[2]};return{xSnapped:i?a[0]*Math.round(c.x/a[0]):c.x,ySnapped:i?a[1]*Math.round(c.y/a[1]):c.y,...c}},[])}function Zh(e){return(t,r,s)=>e==null?void 0:e(t,s)}function W4({nodeRef:e,disabled:t=!1,noDragClassName:r,handleSelector:s,nodeId:a,isSelectable:i,selectNodesOnDrag:l}){const o=Dt(),[c,d]=x.useState(!1),u=x.useRef([]),m=x.useRef({x:null,y:null}),f=x.useRef(0),h=x.useRef(null),p=x.useRef({x:0,y:0}),v=x.useRef(null),y=x.useRef(!1),g=x.useRef(!1),b=x.useRef(!1),j=p7();return x.useEffect(()=>{if(e!=null&&e.current){const w=un(e.current),C=({x:_,y:I})=>{const{nodeInternals:B,onNodeDrag:z,onSelectionDrag:T,updateNodePositions:D,nodeExtent:E,snapGrid:S,snapToGrid:k,nodeOrigin:P,onError:O}=o.getState();m.current={x:_,y:I};let $=!1,H={x:0,y:0,x2:0,y2:0};if(u.current.length>1&&E){const W=hf(u.current,P);H=lc(W)}if(u.current=u.current.map(W=>{const M={x:_-W.distance.x,y:I-W.distance.y};k&&(M.x=S[0]*Math.round(M.x/S[0]),M.y=S[1]*Math.round(M.y/S[1]));const R=[[E[0][0],E[0][1]],[E[1][0],E[1][1]]];u.current.length>1&&E&&!W.extent&&(R[0][0]=W.positionAbsolute.x-H.x+E[0][0],R[1][0]=W.positionAbsolute.x+(W.width??0)-H.x2+E[1][0],R[0][1]=W.positionAbsolute.y-H.y+E[0][1],R[1][1]=W.positionAbsolute.y+(W.height??0)-H.y2+E[1][1]);const U=K4(W,M,B,R,P,O);return $=$||W.position.x!==U.position.x||W.position.y!==U.position.y,W.position=U.position,W.positionAbsolute=U.positionAbsolute,W}),!$)return;D(u.current,!0,!0),d(!0);const L=a?z:Zh(T);if(L&&v.current){const[W,M]=Xh({nodeId:a,dragItems:u.current,nodeInternals:B});L(v.current,W,M)}},N=()=>{if(!h.current)return;const[_,I]=u4(p.current,h.current);if(_!==0||I!==0){const{transform:B,panBy:z}=o.getState();m.current.x=(m.current.x??0)-_/B[2],m.current.y=(m.current.y??0)-I/B[2],z({x:_,y:I})&&C(m.current)}f.current=requestAnimationFrame(N)},A=_=>{var P;const{nodeInternals:I,multiSelectionActive:B,nodesDraggable:z,unselectNodesAndEdges:T,onNodeDragStart:D,onSelectionDragStart:E}=o.getState();g.current=!0;const S=a?D:Zh(E);(!l||!i)&&!B&&a&&((P=I.get(a))!=null&&P.selected||T()),a&&i&&l&&Vp({id:a,store:o,nodeRef:e});const k=j(_);if(m.current=k,u.current=h7(I,z,k,a),S&&u.current){const[O,$]=Xh({nodeId:a,dragItems:u.current,nodeInternals:I});S(_.sourceEvent,O,$)}};if(t)w.on(".drag",null);else{const _=NI().on("start",I=>{const{domNode:B,nodeDragThreshold:z}=o.getState();z===0&&A(I),b.current=!1;const T=j(I);m.current=T,h.current=(B==null?void 0:B.getBoundingClientRect())||null,p.current=aa(I.sourceEvent,h.current)}).on("drag",I=>{var D,E;const B=j(I),{autoPanOnNodeDrag:z,nodeDragThreshold:T}=o.getState();if(I.sourceEvent.type==="touchmove"&&I.sourceEvent.touches.length>1&&(b.current=!0),!b.current){if(!y.current&&g.current&&z&&(y.current=!0,N()),!g.current){const S=B.xSnapped-(((D=m==null?void 0:m.current)==null?void 0:D.x)??0),k=B.ySnapped-(((E=m==null?void 0:m.current)==null?void 0:E.y)??0);Math.sqrt(S*S+k*k)>T&&A(I)}(m.current.x!==B.xSnapped||m.current.y!==B.ySnapped)&&u.current&&g.current&&(v.current=I.sourceEvent,p.current=aa(I.sourceEvent,h.current),C(B))}}).on("end",I=>{if(!(!g.current||b.current)&&(d(!1),y.current=!1,g.current=!1,cancelAnimationFrame(f.current),u.current)){const{updateNodePositions:B,nodeInternals:z,onNodeDragStop:T,onSelectionDragStop:D}=o.getState(),E=a?T:Zh(D);if(B(u.current,!1,!1),E){const[S,k]=Xh({nodeId:a,dragItems:u.current,nodeInternals:z});E(I.sourceEvent,S,k)}}}).filter(I=>{const B=I.target;return!I.button&&(!r||!Mw(B,`.${r}`,e))&&(!s||Mw(B,s,e))});return w.call(_),()=>{w.on(".drag",null)}}}},[e,t,r,s,i,o,a,l,j]),c}function q4(){const e=Dt();return x.useCallback(r=>{const{nodeInternals:s,nodeExtent:a,updateNodePositions:i,getNodes:l,snapToGrid:o,snapGrid:c,onError:d,nodesDraggable:u}=e.getState(),m=l().filter(b=>b.selected&&(b.draggable||u&&typeof b.draggable>"u")),f=o?c[0]:5,h=o?c[1]:5,p=r.isShiftPressed?4:1,v=r.x*f*p,y=r.y*h*p,g=m.map(b=>{if(b.positionAbsolute){const j={x:b.positionAbsolute.x+v,y:b.positionAbsolute.y+y};o&&(j.x=c[0]*Math.round(j.x/c[0]),j.y=c[1]*Math.round(j.y/c[1]));const{positionAbsolute:w,position:C}=K4(b,j,s,a,void 0,d);b.position=C,b.positionAbsolute=w}return b});i(g,!0,!1)},[])}const nl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var io=e=>{const t=({id:r,type:s,data:a,xPos:i,yPos:l,xPosOrigin:o,yPosOrigin:c,selected:d,onClick:u,onMouseEnter:m,onMouseMove:f,onMouseLeave:h,onContextMenu:p,onDoubleClick:v,style:y,className:g,isDraggable:b,isSelectable:j,isConnectable:w,isFocusable:C,selectNodesOnDrag:N,sourcePosition:A,targetPosition:_,hidden:I,resizeObserver:B,dragHandle:z,zIndex:T,isParent:D,noDragClassName:E,noPanClassName:S,initialized:k,disableKeyboardA11y:P,ariaLabel:O,rfId:$,hasHandleBounds:H})=>{const L=Dt(),W=x.useRef(null),M=x.useRef(null),R=x.useRef(A),U=x.useRef(_),K=x.useRef(s),F=j||b||u||m||f||h,Y=q4(),V=ao(r,L.getState,m),q=ao(r,L.getState,f),J=ao(r,L.getState,h),G=ao(r,L.getState,p),le=ao(r,L.getState,v),ce=ie=>{const{nodeDragThreshold:de}=L.getState();if(j&&(!N||!b||de>0)&&Vp({id:r,store:L,nodeRef:W}),u){const Le=L.getState().nodeInternals.get(r);Le&&u(ie,{...Le})}},oe=ie=>{if(!Fp(ie)&&!P)if(x4.includes(ie.key)&&j){const de=ie.key==="Escape";Vp({id:r,store:L,unselect:de,nodeRef:W})}else b&&d&&Object.prototype.hasOwnProperty.call(nl,ie.key)&&(L.setState({ariaLiveMessage:`Moved selected node ${ie.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~l}`}),Y({x:nl[ie.key].x,y:nl[ie.key].y,isShiftPressed:ie.shiftKey}))};x.useEffect(()=>()=>{M.current&&(B==null||B.unobserve(M.current),M.current=null)},[]),x.useEffect(()=>{if(W.current&&!I){const ie=W.current;(!k||!H||M.current!==ie)&&(M.current&&(B==null||B.unobserve(M.current)),B==null||B.observe(ie),M.current=ie)}},[I,k,H]),x.useEffect(()=>{const ie=K.current!==s,de=R.current!==A,Le=U.current!==_;W.current&&(ie||de||Le)&&(ie&&(K.current=s),de&&(R.current=A),Le&&(U.current=_),L.getState().updateNodeDimensions([{id:r,nodeElement:W.current,forceUpdate:!0}]))},[r,s,A,_]);const se=W4({nodeRef:W,disabled:I||!b,noDragClassName:E,handleSelector:z,nodeId:r,isSelectable:j,selectNodesOnDrag:N});return I?null:te.createElement("div",{className:rr(["react-flow__node",`react-flow__node-${s}`,{[S]:b},g,{selected:d,selectable:j,parent:D,dragging:se}]),ref:W,style:{zIndex:T,transform:`translate(${o}px,${c}px)`,pointerEvents:F?"all":"none",visibility:k?"visible":"hidden",...y},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:V,onMouseMove:q,onMouseLeave:J,onContextMenu:G,onClick:ce,onDoubleClick:le,onKeyDown:C?oe:void 0,tabIndex:C?0:void 0,role:C?"button":void 0,"aria-describedby":P?void 0:`${L4}-${$}`,"aria-label":O},te.createElement(_8,{value:r},te.createElement(e,{id:r,data:a,type:s,xPos:i,yPos:l,selected:d,isConnectable:w,sourcePosition:A,targetPosition:_,dragging:se,dragHandle:z,zIndex:T})))};return t.displayName="NodeWrapper",x.memo(t)};const g7=e=>{const t=e.getNodes().filter(r=>r.selected);return{...hf(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function y7({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:r}){const s=Dt(),{width:a,height:i,x:l,y:o,transformString:c,userSelectionActive:d}=Qe(g7,Vt),u=q4(),m=x.useRef(null);if(x.useEffect(()=>{var p;r||(p=m.current)==null||p.focus({preventScroll:!0})},[r]),W4({nodeRef:m}),d||!a||!i)return null;const f=e?p=>{const v=s.getState().getNodes().filter(y=>y.selected);e(p,v)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(nl,p.key)&&u({x:nl[p.key].x,y:nl[p.key].y,isShiftPressed:p.shiftKey})};return te.createElement("div",{className:rr(["react-flow__nodesselection","react-flow__container",t]),style:{transform:c}},te.createElement("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:r?void 0:-1,onKeyDown:r?void 0:h,style:{width:a,height:i,top:o,left:l}}))}var v7=x.memo(y7);const b7=e=>e.nodesSelectionActive,G4=({children:e,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:l,deleteKeyCode:o,onMove:c,onMoveStart:d,onMoveEnd:u,selectionKeyCode:m,selectionOnDrag:f,selectionMode:h,onSelectionStart:p,onSelectionEnd:v,multiSelectionKeyCode:y,panActivationKeyCode:g,zoomActivationKeyCode:b,elementsSelectable:j,zoomOnScroll:w,zoomOnPinch:C,panOnScroll:N,panOnScrollSpeed:A,panOnScrollMode:_,zoomOnDoubleClick:I,panOnDrag:B,defaultViewport:z,translateExtent:T,minZoom:D,maxZoom:E,preventScrolling:S,onSelectionContextMenu:k,noWheelClassName:P,noPanClassName:O,disableKeyboardA11y:$})=>{const H=Qe(b7),L=cc(m),W=cc(g),M=W||B,R=W||N,U=L||f&&M!==!0;return a7({deleteKeyCode:o,multiSelectionKeyCode:y}),te.createElement(c7,{onMove:c,onMoveStart:d,onMoveEnd:u,onPaneContextMenu:i,elementsSelectable:j,zoomOnScroll:w,zoomOnPinch:C,panOnScroll:R,panOnScrollSpeed:A,panOnScrollMode:_,zoomOnDoubleClick:I,panOnDrag:!L&&M,defaultViewport:z,translateExtent:T,minZoom:D,maxZoom:E,zoomActivationKeyCode:b,preventScrolling:S,noWheelClassName:P,noPanClassName:O},te.createElement(H4,{onSelectionStart:p,onSelectionEnd:v,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:l,panOnDrag:M,isSelecting:!!U,selectionMode:h},e,H&&te.createElement(v7,{onSelectionContextMenu:k,noPanClassName:O,disableKeyboardA11y:$})))};G4.displayName="FlowRenderer";var j7=x.memo(G4);function w7(e){return Qe(x.useCallback(r=>e?N4(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function N7(e){const t={input:io(e.input||O4),default:io(e.default||Hp),output:io(e.output||D4),group:io(e.group||sy)},r={},s=Object.keys(e).filter(a=>!["input","default","output","group"].includes(a)).reduce((a,i)=>(a[i]=io(e[i]||Hp),a),r);return{...t,...s}}const S7=({x:e,y:t,width:r,height:s,origin:a})=>!r||!s?{x:e,y:t}:a[0]<0||a[1]<0||a[0]>1||a[1]>1?{x:e,y:t}:{x:e-r*a[0],y:t-s*a[1]},k7=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Y4=e=>{const{nodesDraggable:t,nodesConnectable:r,nodesFocusable:s,elementsSelectable:a,updateNodeDimensions:i,onError:l}=Qe(k7,Vt),o=w7(e.onlyRenderVisibleElements),c=x.useRef(),d=x.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const u=new ResizeObserver(m=>{const f=m.map(h=>({id:h.target.getAttribute("data-id"),nodeElement:h.target,forceUpdate:!0}));i(f)});return c.current=u,u},[]);return x.useEffect(()=>()=>{var u;(u=c==null?void 0:c.current)==null||u.disconnect()},[]),te.createElement("div",{className:"react-flow__nodes",style:iy},o.map(u=>{var C,N,A;let m=u.type||"default";e.nodeTypes[m]||(l==null||l("003",ws.error003(m)),m="default");const f=e.nodeTypes[m]||e.nodeTypes.default,h=!!(u.draggable||t&&typeof u.draggable>"u"),p=!!(u.selectable||a&&typeof u.selectable>"u"),v=!!(u.connectable||r&&typeof u.connectable>"u"),y=!!(u.focusable||s&&typeof u.focusable>"u"),g=e.nodeExtent?J0(u.positionAbsolute,e.nodeExtent):u.positionAbsolute,b=(g==null?void 0:g.x)??0,j=(g==null?void 0:g.y)??0,w=S7({x:b,y:j,width:u.width??0,height:u.height??0,origin:e.nodeOrigin});return te.createElement(f,{key:u.id,id:u.id,className:u.className,style:u.style,type:m,data:u.data,sourcePosition:u.sourcePosition||be.Bottom,targetPosition:u.targetPosition||be.Top,hidden:u.hidden,xPos:b,yPos:j,xPosOrigin:w.x,yPosOrigin:w.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!u.selected,isDraggable:h,isSelectable:p,isConnectable:v,isFocusable:y,resizeObserver:d,dragHandle:u.dragHandle,zIndex:((C=u[xt])==null?void 0:C.z)??0,isParent:!!((N=u[xt])!=null&&N.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!u.width&&!!u.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:u.ariaLabel,hasHandleBounds:!!((A=u[xt])!=null&&A.handleBounds)})}))};Y4.displayName="NodeRenderer";var C7=x.memo(Y4);const E7=(e,t,r)=>r===be.Left?e-t:r===be.Right?e+t:e,P7=(e,t,r)=>r===be.Top?e-t:r===be.Bottom?e+t:e,$w="react-flow__edgeupdater",Lw=({position:e,centerX:t,centerY:r,radius:s=10,onMouseDown:a,onMouseEnter:i,onMouseOut:l,type:o})=>te.createElement("circle",{onMouseDown:a,onMouseEnter:i,onMouseOut:l,className:rr([$w,`${$w}-${o}`]),cx:E7(t,s,e),cy:P7(r,s,e),r:s,stroke:"transparent",fill:"transparent"}),A7=()=>!0;var _i=e=>{const t=({id:r,className:s,type:a,data:i,onClick:l,onEdgeDoubleClick:o,selected:c,animated:d,label:u,labelStyle:m,labelShowBg:f,labelBgStyle:h,labelBgPadding:p,labelBgBorderRadius:v,style:y,source:g,target:b,sourceX:j,sourceY:w,targetX:C,targetY:N,sourcePosition:A,targetPosition:_,elementsSelectable:I,hidden:B,sourceHandleId:z,targetHandleId:T,onContextMenu:D,onMouseEnter:E,onMouseMove:S,onMouseLeave:k,reconnectRadius:P,onReconnect:O,onReconnectStart:$,onReconnectEnd:H,markerEnd:L,markerStart:W,rfId:M,ariaLabel:R,isFocusable:U,isReconnectable:K,pathOptions:F,interactionWidth:Y,disableKeyboardA11y:V})=>{const q=x.useRef(null),[J,G]=x.useState(!1),[le,ce]=x.useState(!1),oe=Dt(),se=x.useMemo(()=>`url('#${Bp(W,M)}')`,[W,M]),ie=x.useMemo(()=>`url('#${Bp(L,M)}')`,[L,M]);if(B)return null;const de=He=>{var Oe;const{edges:Re,addSelectedEdges:Et,unselectNodesAndEdges:nr,multiSelectionActive:X}=oe.getState(),re=Re.find(wt=>wt.id===r);re&&(I&&(oe.setState({nodesSelectionActive:!1}),re.selected&&X?(nr({nodes:[],edges:[re]}),(Oe=q.current)==null||Oe.blur()):Et([r])),l&&l(He,re))},Le=so(r,oe.getState,o),Z=so(r,oe.getState,D),ne=so(r,oe.getState,E),je=so(r,oe.getState,S),Ge=so(r,oe.getState,k),xe=(He,Re)=>{if(He.button!==0)return;const{edges:Et,isValidConnection:nr}=oe.getState(),X=Re?b:g,re=(Re?T:z)||null,Oe=Re?"target":"source",wt=nr||A7,Ve=Re,Ue=Et.find(Yt=>Yt.id===r);ce(!0),$==null||$(He,Ue,Oe);const hr=Yt=>{ce(!1),H==null||H(Yt,Ue,Oe)};P4({event:He,handleId:re,nodeId:X,onConnect:Yt=>O==null?void 0:O(Ue,Yt),isTarget:Ve,getState:oe.getState,setState:oe.setState,isValidConnection:wt,edgeUpdaterType:Oe,onReconnectEnd:hr})},he=He=>xe(He,!0),we=He=>xe(He,!1),Fe=()=>G(!0),qt=()=>G(!1),fr=!I&&!l,Gt=He=>{var Re;if(!V&&x4.includes(He.key)&&I){const{unselectNodesAndEdges:Et,addSelectedEdges:nr,edges:X}=oe.getState();He.key==="Escape"?((Re=q.current)==null||Re.blur(),Et({edges:[X.find(Oe=>Oe.id===r)]})):nr([r])}};return te.createElement("g",{className:rr(["react-flow__edge",`react-flow__edge-${a}`,s,{selected:c,animated:d,inactive:fr,updating:J}]),onClick:de,onDoubleClick:Le,onContextMenu:Z,onMouseEnter:ne,onMouseMove:je,onMouseLeave:Ge,onKeyDown:U?Gt:void 0,tabIndex:U?0:void 0,role:U?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":R===null?void 0:R||`Edge from ${g} to ${b}`,"aria-describedby":U?`${I4}-${M}`:void 0,ref:q},!le&&te.createElement(e,{id:r,source:g,target:b,selected:c,animated:d,label:u,labelStyle:m,labelShowBg:f,labelBgStyle:h,labelBgPadding:p,labelBgBorderRadius:v,data:i,style:y,sourceX:j,sourceY:w,targetX:C,targetY:N,sourcePosition:A,targetPosition:_,sourceHandleId:z,targetHandleId:T,markerStart:se,markerEnd:ie,pathOptions:F,interactionWidth:Y}),K&&te.createElement(te.Fragment,null,(K==="source"||K===!0)&&te.createElement(Lw,{position:A,centerX:j,centerY:w,radius:P,onMouseDown:he,onMouseEnter:Fe,onMouseOut:qt,type:"source"}),(K==="target"||K===!0)&&te.createElement(Lw,{position:_,centerX:C,centerY:N,radius:P,onMouseDown:we,onMouseEnter:Fe,onMouseOut:qt,type:"target"})))};return t.displayName="EdgeWrapper",x.memo(t)};function T7(e){const t={default:_i(e.default||Ju),straight:_i(e.bezier||ty),step:_i(e.step||ey),smoothstep:_i(e.step||ff),simplebezier:_i(e.simplebezier||Q0)},r={},s=Object.keys(e).filter(a=>!["default","bezier"].includes(a)).reduce((a,i)=>(a[i]=_i(e[i]||Ju),a),r);return{...t,...s}}function Iw(e,t,r=null){const s=((r==null?void 0:r.x)||0)+t.x,a=((r==null?void 0:r.y)||0)+t.y,i=(r==null?void 0:r.width)||t.width,l=(r==null?void 0:r.height)||t.height;switch(e){case be.Top:return{x:s+i/2,y:a};case be.Right:return{x:s+i,y:a+l/2};case be.Bottom:return{x:s+i/2,y:a+l};case be.Left:return{x:s,y:a+l/2}}}function Rw(e,t){return e?e.length===1||!t?e[0]:t&&e.find(r=>r.id===t)||null:null}const _7=(e,t,r,s,a,i)=>{const l=Iw(r,e,t),o=Iw(i,s,a);return{sourceX:l.x,sourceY:l.y,targetX:o.x,targetY:o.y}};function O7({sourcePos:e,targetPos:t,sourceWidth:r,sourceHeight:s,targetWidth:a,targetHeight:i,width:l,height:o,transform:c}){const d={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+r,t.x+a),y2:Math.max(e.y+s,t.y+i)};d.x===d.x2&&(d.x2+=1),d.y===d.y2&&(d.y2+=1);const u=lc({x:(0-c[0])/c[2],y:(0-c[1])/c[2],width:l/c[2],height:o/c[2]}),m=Math.max(0,Math.min(u.x2,d.x2)-Math.max(u.x,d.x)),f=Math.max(0,Math.min(u.y2,d.y2)-Math.max(u.y,d.y));return Math.ceil(m*f)>0}function Fw(e){var s,a,i,l,o;const t=((s=e==null?void 0:e[xt])==null?void 0:s.handleBounds)||null,r=t&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((a=e==null?void 0:e.positionAbsolute)==null?void 0:a.x)<"u"&&typeof((i=e==null?void 0:e.positionAbsolute)==null?void 0:i.y)<"u";return[{x:((l=e==null?void 0:e.positionAbsolute)==null?void 0:l.x)||0,y:((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},t,!!r]}const M7=[{level:0,isMaxLevel:!0,edges:[]}];function D7(e,t,r=!1){let s=-1;const a=e.reduce((l,o)=>{var u,m;const c=fn(o.zIndex);let d=c?o.zIndex:0;if(r){const f=t.get(o.target),h=t.get(o.source),p=o.selected||(f==null?void 0:f.selected)||(h==null?void 0:h.selected),v=Math.max(((u=h==null?void 0:h[xt])==null?void 0:u.z)||0,((m=f==null?void 0:f[xt])==null?void 0:m.z)||0,1e3);d=(c?o.zIndex:0)+(p?v:0)}return l[d]?l[d].push(o):l[d]=[o],s=d>s?d:s,l},{}),i=Object.entries(a).map(([l,o])=>{const c=+l;return{edges:o,level:c,isMaxLevel:c===s}});return i.length===0?M7:i}function $7(e,t,r){const s=Qe(x.useCallback(a=>e?a.edges.filter(i=>{const l=t.get(i.source),o=t.get(i.target);return(l==null?void 0:l.width)&&(l==null?void 0:l.height)&&(o==null?void 0:o.width)&&(o==null?void 0:o.height)&&O7({sourcePos:l.positionAbsolute||{x:0,y:0},targetPos:o.positionAbsolute||{x:0,y:0},sourceWidth:l.width,sourceHeight:l.height,targetWidth:o.width,targetHeight:o.height,width:a.width,height:a.height,transform:a.transform})}):a.edges,[e,t]));return D7(s,t,r)}const L7=({color:e="none",strokeWidth:t=1})=>te.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),I7=({color:e="none",strokeWidth:t=1})=>te.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),zw={[gl.Arrow]:L7,[gl.ArrowClosed]:I7};function R7(e){const t=Dt();return x.useMemo(()=>{var a,i;return Object.prototype.hasOwnProperty.call(zw,e)?zw[e]:((i=(a=t.getState()).onError)==null||i.call(a,"009",ws.error009(e)),null)},[e])}const F7=({id:e,type:t,color:r,width:s=12.5,height:a=12.5,markerUnits:i="strokeWidth",strokeWidth:l,orient:o="auto-start-reverse"})=>{const c=R7(t);return c?te.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${s}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:o,refX:"0",refY:"0"},te.createElement(c,{color:r,strokeWidth:l})):null},z7=({defaultColor:e,rfId:t})=>r=>{const s=[];return r.edges.reduce((a,i)=>([i.markerStart,i.markerEnd].forEach(l=>{if(l&&typeof l=="object"){const o=Bp(l,t);s.includes(o)||(a.push({id:o,color:l.color||e,...l}),s.push(o))}}),a),[]).sort((a,i)=>a.id.localeCompare(i.id))},X4=({defaultColor:e,rfId:t})=>{const r=Qe(x.useCallback(z7({defaultColor:e,rfId:t}),[e,t]),(s,a)=>!(s.length!==a.length||s.some((i,l)=>i.id!==a[l].id)));return te.createElement("defs",null,r.map(s=>te.createElement(F7,{id:s.id,key:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient})))};X4.displayName="MarkerDefinitions";var B7=x.memo(X4);const U7=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),Z4=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:r,rfId:s,edgeTypes:a,noPanClassName:i,onEdgeContextMenu:l,onEdgeMouseEnter:o,onEdgeMouseMove:c,onEdgeMouseLeave:d,onEdgeClick:u,onEdgeDoubleClick:m,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,reconnectRadius:v,children:y,disableKeyboardA11y:g})=>{const{edgesFocusable:b,edgesUpdatable:j,elementsSelectable:w,width:C,height:N,connectionMode:A,nodeInternals:_,onError:I}=Qe(U7,Vt),B=$7(t,_,r);return C?te.createElement(te.Fragment,null,B.map(({level:z,edges:T,isMaxLevel:D})=>te.createElement("svg",{key:z,style:{zIndex:z},width:C,height:N,className:"react-flow__edges react-flow__container"},D&&te.createElement(B7,{defaultColor:e,rfId:s}),te.createElement("g",null,T.map(E=>{const[S,k,P]=Fw(_.get(E.source)),[O,$,H]=Fw(_.get(E.target));if(!P||!H)return null;let L=E.type||"default";a[L]||(I==null||I("011",ws.error011(L)),L="default");const W=a[L]||a.default,M=A===ui.Strict?$.target:($.target??[]).concat($.source??[]),R=Rw(k.source,E.sourceHandle),U=Rw(M,E.targetHandle),K=(R==null?void 0:R.position)||be.Bottom,F=(U==null?void 0:U.position)||be.Top,Y=!!(E.focusable||b&&typeof E.focusable>"u"),V=E.reconnectable||E.updatable,q=typeof f<"u"&&(V||j&&typeof V>"u");if(!R||!U)return I==null||I("008",ws.error008(R,E)),null;const{sourceX:J,sourceY:G,targetX:le,targetY:ce}=_7(S,R,K,O,U,F);return te.createElement(W,{key:E.id,id:E.id,className:rr([E.className,i]),type:L,data:E.data,selected:!!E.selected,animated:!!E.animated,hidden:!!E.hidden,label:E.label,labelStyle:E.labelStyle,labelShowBg:E.labelShowBg,labelBgStyle:E.labelBgStyle,labelBgPadding:E.labelBgPadding,labelBgBorderRadius:E.labelBgBorderRadius,style:E.style,source:E.source,target:E.target,sourceHandleId:E.sourceHandle,targetHandleId:E.targetHandle,markerEnd:E.markerEnd,markerStart:E.markerStart,sourceX:J,sourceY:G,targetX:le,targetY:ce,sourcePosition:K,targetPosition:F,elementsSelectable:w,onContextMenu:l,onMouseEnter:o,onMouseMove:c,onMouseLeave:d,onClick:u,onEdgeDoubleClick:m,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,reconnectRadius:v,rfId:s,ariaLabel:E.ariaLabel,isFocusable:Y,isReconnectable:q,pathOptions:"pathOptions"in E?E.pathOptions:void 0,interactionWidth:E.interactionWidth,disableKeyboardA11y:g})})))),y):null};Z4.displayName="EdgeRenderer";var H7=x.memo(Z4);const V7=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function K7({children:e}){const t=Qe(V7);return te.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function W7(e){const t=ay(),r=x.useRef(!1);x.useEffect(()=>{!r.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),r.current=!0)},[e,t.viewportInitialized])}const q7={[be.Left]:be.Right,[be.Right]:be.Left,[be.Top]:be.Bottom,[be.Bottom]:be.Top},J4=({nodeId:e,handleType:t,style:r,type:s=Ks.Bezier,CustomComponent:a,connectionStatus:i})=>{var N,A,_;const{fromNode:l,handleId:o,toX:c,toY:d,connectionMode:u}=Qe(x.useCallback(I=>({fromNode:I.nodeInternals.get(e),handleId:I.connectionHandleId,toX:(I.connectionPosition.x-I.transform[0])/I.transform[2],toY:(I.connectionPosition.y-I.transform[1])/I.transform[2],connectionMode:I.connectionMode}),[e]),Vt),m=(N=l==null?void 0:l[xt])==null?void 0:N.handleBounds;let f=m==null?void 0:m[t];if(u===ui.Loose&&(f=f||(m==null?void 0:m[t==="source"?"target":"source"])),!l||!f)return null;const h=o?f.find(I=>I.id===o):f[0],p=h?h.x+h.width/2:(l.width??0)/2,v=h?h.y+h.height/2:l.height??0,y=(((A=l.positionAbsolute)==null?void 0:A.x)??0)+p,g=(((_=l.positionAbsolute)==null?void 0:_.y)??0)+v,b=h==null?void 0:h.position,j=b?q7[b]:null;if(!b||!j)return null;if(a)return te.createElement(a,{connectionLineType:s,connectionLineStyle:r,fromNode:l,fromHandle:h,fromX:y,fromY:g,toX:c,toY:d,fromPosition:b,toPosition:j,connectionStatus:i});let w="";const C={sourceX:y,sourceY:g,sourcePosition:b,targetX:c,targetY:d,targetPosition:j};return s===Ks.Bezier?[w]=b4(C):s===Ks.Step?[w]=zp({...C,borderRadius:0}):s===Ks.SmoothStep?[w]=zp(C):s===Ks.SimpleBezier?[w]=v4(C):w=`M${y},${g} ${c},${d}`,te.createElement("path",{d:w,fill:"none",className:"react-flow__connection-path",style:r})};J4.displayName="ConnectionLine";const G7=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Y7({containerStyle:e,style:t,type:r,component:s}){const{nodeId:a,handleType:i,nodesConnectable:l,width:o,height:c,connectionStatus:d}=Qe(G7,Vt);return!(a&&i&&o&&l)?null:te.createElement("svg",{style:e,width:o,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},te.createElement("g",{className:rr(["react-flow__connection",d])},te.createElement(J4,{nodeId:a,handleType:i,style:t,type:r,CustomComponent:s,connectionStatus:d})))}function Bw(e,t){return x.useRef(null),Dt(),x.useMemo(()=>t(e),[e])}const Q4=({nodeTypes:e,edgeTypes:t,onMove:r,onMoveStart:s,onMoveEnd:a,onInit:i,onNodeClick:l,onEdgeClick:o,onNodeDoubleClick:c,onEdgeDoubleClick:d,onNodeMouseEnter:u,onNodeMouseMove:m,onNodeMouseLeave:f,onNodeContextMenu:h,onSelectionContextMenu:p,onSelectionStart:v,onSelectionEnd:y,connectionLineType:g,connectionLineStyle:b,connectionLineComponent:j,connectionLineContainerStyle:w,selectionKeyCode:C,selectionOnDrag:N,selectionMode:A,multiSelectionKeyCode:_,panActivationKeyCode:I,zoomActivationKeyCode:B,deleteKeyCode:z,onlyRenderVisibleElements:T,elementsSelectable:D,selectNodesOnDrag:E,defaultViewport:S,translateExtent:k,minZoom:P,maxZoom:O,preventScrolling:$,defaultMarkerColor:H,zoomOnScroll:L,zoomOnPinch:W,panOnScroll:M,panOnScrollSpeed:R,panOnScrollMode:U,zoomOnDoubleClick:K,panOnDrag:F,onPaneClick:Y,onPaneMouseEnter:V,onPaneMouseMove:q,onPaneMouseLeave:J,onPaneScroll:G,onPaneContextMenu:le,onEdgeContextMenu:ce,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ie,onReconnect:de,onReconnectStart:Le,onReconnectEnd:Z,reconnectRadius:ne,noDragClassName:je,noWheelClassName:Ge,noPanClassName:xe,elevateEdgesOnSelect:he,disableKeyboardA11y:we,nodeOrigin:Fe,nodeExtent:qt,rfId:fr})=>{const Gt=Bw(e,N7),He=Bw(t,T7);return W7(i),te.createElement(j7,{onPaneClick:Y,onPaneMouseEnter:V,onPaneMouseMove:q,onPaneMouseLeave:J,onPaneContextMenu:le,onPaneScroll:G,deleteKeyCode:z,selectionKeyCode:C,selectionOnDrag:N,selectionMode:A,onSelectionStart:v,onSelectionEnd:y,multiSelectionKeyCode:_,panActivationKeyCode:I,zoomActivationKeyCode:B,elementsSelectable:D,onMove:r,onMoveStart:s,onMoveEnd:a,zoomOnScroll:L,zoomOnPinch:W,zoomOnDoubleClick:K,panOnScroll:M,panOnScrollSpeed:R,panOnScrollMode:U,panOnDrag:F,defaultViewport:S,translateExtent:k,minZoom:P,maxZoom:O,onSelectionContextMenu:p,preventScrolling:$,noDragClassName:je,noWheelClassName:Ge,noPanClassName:xe,disableKeyboardA11y:we},te.createElement(K7,null,te.createElement(H7,{edgeTypes:He,onEdgeClick:o,onEdgeDoubleClick:d,onlyRenderVisibleElements:T,onEdgeContextMenu:ce,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ie,onReconnect:de,onReconnectStart:Le,onReconnectEnd:Z,reconnectRadius:ne,defaultMarkerColor:H,noPanClassName:xe,elevateEdgesOnSelect:!!he,disableKeyboardA11y:we,rfId:fr},te.createElement(Y7,{style:b,type:g,component:j,containerStyle:w})),te.createElement("div",{className:"react-flow__edgelabel-renderer"}),te.createElement(C7,{nodeTypes:Gt,onNodeClick:l,onNodeDoubleClick:c,onNodeMouseEnter:u,onNodeMouseMove:m,onNodeMouseLeave:f,onNodeContextMenu:h,selectNodesOnDrag:E,onlyRenderVisibleElements:T,noPanClassName:xe,noDragClassName:je,disableKeyboardA11y:we,nodeOrigin:Fe,nodeExtent:qt,rfId:fr})))};Q4.displayName="GraphView";var X7=x.memo(Q4);const Kp=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Is={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Kp,nodeExtent:Kp,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:ui.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:k8,isValidConnection:void 0},Z7=()=>$$((e,t)=>({...Is,setNodes:r=>{const{nodeInternals:s,nodeOrigin:a,elevateNodesOnSelect:i}=t();e({nodeInternals:Gh(r,s,a,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:s={}}=t();e({edges:r.map(a=>({...s,...a}))})},setDefaultNodesAndEdges:(r,s)=>{const a=typeof r<"u",i=typeof s<"u",l=a?Gh(r,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:l,edges:i?s:[],hasDefaultNodes:a,hasDefaultEdges:i})},updateNodeDimensions:r=>{const{onNodesChange:s,nodeInternals:a,fitViewOnInit:i,fitViewOnInitDone:l,fitViewOnInitOptions:o,domNode:c,nodeOrigin:d}=t(),u=c==null?void 0:c.querySelector(".react-flow__viewport");if(!u)return;const m=window.getComputedStyle(u),{m22:f}=new window.DOMMatrixReadOnly(m.transform),h=r.reduce((v,y)=>{const g=a.get(y.id);if(g!=null&&g.hidden)a.set(g.id,{...g,[xt]:{...g[xt],handleBounds:void 0}});else if(g){const b=Z0(y.nodeElement);!!(b.width&&b.height&&(g.width!==b.width||g.height!==b.height||y.forceUpdate))&&(a.set(g.id,{...g,[xt]:{...g[xt],handleBounds:{source:Dw(".source",y.nodeElement,f,d),target:Dw(".target",y.nodeElement,f,d)}},...b}),v.push({id:g.id,type:"dimensions",dimensions:b}))}return v},[]);F4(a,d);const p=l||i&&!l&&z4(t,{initial:!0,...o});e({nodeInternals:new Map(a),fitViewOnInitDone:p}),(h==null?void 0:h.length)>0&&(s==null||s(h))},updateNodePositions:(r,s=!0,a=!1)=>{const{triggerNodeChanges:i}=t(),l=r.map(o=>{const c={id:o.id,type:"position",dragging:a};return s&&(c.positionAbsolute=o.positionAbsolute,c.position=o.position),c});i(l)},triggerNodeChanges:r=>{const{onNodesChange:s,nodeInternals:a,hasDefaultNodes:i,nodeOrigin:l,getNodes:o,elevateNodesOnSelect:c}=t();if(r!=null&&r.length){if(i){const d=U4(r,o()),u=Gh(d,a,l,c);e({nodeInternals:u})}s==null||s(r)}},addSelectedNodes:r=>{const{multiSelectionActive:s,edges:a,getNodes:i}=t();let l,o=null;s?l=r.map(c=>zs(c,!0)):(l=Wi(i(),r),o=Wi(a,[])),Md({changedNodes:l,changedEdges:o,get:t,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:s,edges:a,getNodes:i}=t();let l,o=null;s?l=r.map(c=>zs(c,!0)):(l=Wi(a,r),o=Wi(i(),[])),Md({changedNodes:o,changedEdges:l,get:t,set:e})},unselectNodesAndEdges:({nodes:r,edges:s}={})=>{const{edges:a,getNodes:i}=t(),l=r||i(),o=s||a,c=l.map(u=>(u.selected=!1,zs(u.id,!1))),d=o.map(u=>zs(u.id,!1));Md({changedNodes:c,changedEdges:d,get:t,set:e})},setMinZoom:r=>{const{d3Zoom:s,maxZoom:a}=t();s==null||s.scaleExtent([r,a]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:s,minZoom:a}=t();s==null||s.scaleExtent([a,r]),e({maxZoom:r})},setTranslateExtent:r=>{var s;(s=t().d3Zoom)==null||s.translateExtent(r),e({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:s}=t(),i=s().filter(o=>o.selected).map(o=>zs(o.id,!1)),l=r.filter(o=>o.selected).map(o=>zs(o.id,!1));Md({changedNodes:i,changedEdges:l,get:t,set:e})},setNodeExtent:r=>{const{nodeInternals:s}=t();s.forEach(a=>{a.positionAbsolute=J0(a.position,r)}),e({nodeExtent:r,nodeInternals:new Map(s)})},panBy:r=>{const{transform:s,width:a,height:i,d3Zoom:l,d3Selection:o,translateExtent:c}=t();if(!l||!o||!r.x&&!r.y)return!1;const d=fs.translate(s[0]+r.x,s[1]+r.y).scale(s[2]),u=[[0,0],[a,i]],m=l==null?void 0:l.constrain()(d,u,c);return l.transform(o,m),s[0]!==m.x||s[1]!==m.y||s[2]!==m.k},cancelConnection:()=>e({connectionNodeId:Is.connectionNodeId,connectionHandleId:Is.connectionHandleId,connectionHandleType:Is.connectionHandleType,connectionStatus:Is.connectionStatus,connectionStartHandle:Is.connectionStartHandle,connectionEndHandle:Is.connectionEndHandle}),reset:()=>e({...Is})}),Object.is),eE=({children:e})=>{const t=x.useRef(null);return t.current||(t.current=Z7()),te.createElement(y8,{value:t.current},e)};eE.displayName="ReactFlowProvider";const tE=({children:e})=>x.useContext(mf)?te.createElement(te.Fragment,null,e):te.createElement(eE,null,e);tE.displayName="ReactFlowWrapper";const J7={input:O4,default:Hp,output:D4,group:sy},Q7={default:Ju,straight:ty,step:ey,smoothstep:ff,simplebezier:Q0},eF=[0,0],tF=[15,15],rF={x:0,y:0,zoom:1},nF={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},xf=x.forwardRef(({nodes:e,edges:t,defaultNodes:r,defaultEdges:s,className:a,nodeTypes:i=J7,edgeTypes:l=Q7,onNodeClick:o,onEdgeClick:c,onInit:d,onMove:u,onMoveStart:m,onMoveEnd:f,onConnect:h,onConnectStart:p,onConnectEnd:v,onClickConnectStart:y,onClickConnectEnd:g,onNodeMouseEnter:b,onNodeMouseMove:j,onNodeMouseLeave:w,onNodeContextMenu:C,onNodeDoubleClick:N,onNodeDragStart:A,onNodeDrag:_,onNodeDragStop:I,onNodesDelete:B,onEdgesDelete:z,onSelectionChange:T,onSelectionDragStart:D,onSelectionDrag:E,onSelectionDragStop:S,onSelectionContextMenu:k,onSelectionStart:P,onSelectionEnd:O,connectionMode:$=ui.Strict,connectionLineType:H=Ks.Bezier,connectionLineStyle:L,connectionLineComponent:W,connectionLineContainerStyle:M,deleteKeyCode:R="Backspace",selectionKeyCode:U="Shift",selectionOnDrag:K=!1,selectionMode:F=oc.Full,panActivationKeyCode:Y="Space",multiSelectionKeyCode:V=Zu()?"Meta":"Control",zoomActivationKeyCode:q=Zu()?"Meta":"Control",snapToGrid:J=!1,snapGrid:G=tF,onlyRenderVisibleElements:le=!1,selectNodesOnDrag:ce=!0,nodesDraggable:oe,nodesConnectable:se,nodesFocusable:ie,nodeOrigin:de=eF,edgesFocusable:Le,edgesUpdatable:Z,elementsSelectable:ne,defaultViewport:je=rF,minZoom:Ge=.5,maxZoom:xe=2,translateExtent:he=Kp,preventScrolling:we=!0,nodeExtent:Fe,defaultMarkerColor:qt="#b1b1b7",zoomOnScroll:fr=!0,zoomOnPinch:Gt=!0,panOnScroll:He=!1,panOnScrollSpeed:Re=.5,panOnScrollMode:Et=Ua.Free,zoomOnDoubleClick:nr=!0,panOnDrag:X=!0,onPaneClick:re,onPaneMouseEnter:Oe,onPaneMouseMove:wt,onPaneMouseLeave:Ve,onPaneScroll:Ue,onPaneContextMenu:hr,children:es,onEdgeContextMenu:Yt,onEdgeDoubleClick:Ea,onEdgeMouseEnter:ke,onEdgeMouseMove:Ds,onEdgeMouseLeave:Zc,onEdgeUpdate:Jc,onEdgeUpdateStart:Qc,onEdgeUpdateEnd:ed,onReconnect:td,onReconnectStart:rd,onReconnectEnd:nd,reconnectRadius:sd=10,edgeUpdaterRadius:Si=10,onNodesChange:ge,onEdgesChange:ki,noDragClassName:$s="nodrag",noWheelClassName:ad="nowheel",noPanClassName:fb="nopan",fitView:h6=!1,fitViewOptions:x6,connectOnClick:p6=!0,attributionPosition:g6,proOptions:y6,defaultEdgeOptions:v6,elevateNodesOnSelect:b6=!0,elevateEdgesOnSelect:j6=!1,disableKeyboardA11y:hb=!1,autoPanOnConnect:w6=!0,autoPanOnNodeDrag:N6=!0,connectionRadius:S6=20,isValidConnection:k6,onError:C6,style:E6,id:xb,nodeDragThreshold:P6,...A6},T6)=>{const oh=xb||"1";return te.createElement("div",{...A6,style:{...E6,...nF},ref:T6,className:rr(["react-flow",a]),"data-testid":"rf__wrapper",id:xb},te.createElement(tE,null,te.createElement(X7,{onInit:d,onMove:u,onMoveStart:m,onMoveEnd:f,onNodeClick:o,onEdgeClick:c,onNodeMouseEnter:b,onNodeMouseMove:j,onNodeMouseLeave:w,onNodeContextMenu:C,onNodeDoubleClick:N,nodeTypes:i,edgeTypes:l,connectionLineType:H,connectionLineStyle:L,connectionLineComponent:W,connectionLineContainerStyle:M,selectionKeyCode:U,selectionOnDrag:K,selectionMode:F,deleteKeyCode:R,multiSelectionKeyCode:V,panActivationKeyCode:Y,zoomActivationKeyCode:q,onlyRenderVisibleElements:le,selectNodesOnDrag:ce,defaultViewport:je,translateExtent:he,minZoom:Ge,maxZoom:xe,preventScrolling:we,zoomOnScroll:fr,zoomOnPinch:Gt,zoomOnDoubleClick:nr,panOnScroll:He,panOnScrollSpeed:Re,panOnScrollMode:Et,panOnDrag:X,onPaneClick:re,onPaneMouseEnter:Oe,onPaneMouseMove:wt,onPaneMouseLeave:Ve,onPaneScroll:Ue,onPaneContextMenu:hr,onSelectionContextMenu:k,onSelectionStart:P,onSelectionEnd:O,onEdgeContextMenu:Yt,onEdgeDoubleClick:Ea,onEdgeMouseEnter:ke,onEdgeMouseMove:Ds,onEdgeMouseLeave:Zc,onReconnect:td??Jc,onReconnectStart:rd??Qc,onReconnectEnd:nd??ed,reconnectRadius:sd??Si,defaultMarkerColor:qt,noDragClassName:$s,noWheelClassName:ad,noPanClassName:fb,elevateEdgesOnSelect:j6,rfId:oh,disableKeyboardA11y:hb,nodeOrigin:de,nodeExtent:Fe}),te.createElement(q8,{nodes:e,edges:t,defaultNodes:r,defaultEdges:s,onConnect:h,onConnectStart:p,onConnectEnd:v,onClickConnectStart:y,onClickConnectEnd:g,nodesDraggable:oe,nodesConnectable:se,nodesFocusable:ie,edgesFocusable:Le,edgesUpdatable:Z,elementsSelectable:ne,elevateNodesOnSelect:b6,minZoom:Ge,maxZoom:xe,nodeExtent:Fe,onNodesChange:ge,onEdgesChange:ki,snapToGrid:J,snapGrid:G,connectionMode:$,translateExtent:he,connectOnClick:p6,defaultEdgeOptions:v6,fitView:h6,fitViewOptions:x6,onNodesDelete:B,onEdgesDelete:z,onNodeDragStart:A,onNodeDrag:_,onNodeDragStop:I,onSelectionDrag:E,onSelectionDragStart:D,onSelectionDragStop:S,noPanClassName:fb,nodeOrigin:de,rfId:oh,autoPanOnConnect:w6,autoPanOnNodeDrag:N6,onError:C6,connectionRadius:S6,isValidConnection:k6,nodeDragThreshold:P6}),te.createElement(K8,{onSelectionChange:T}),es,te.createElement(b8,{proOptions:y6,position:g6}),te.createElement(J8,{rfId:oh,disableKeyboardA11y:hb})))});xf.displayName="ReactFlow";function rE(e){return t=>{const[r,s]=x.useState(t),a=x.useCallback(i=>s(l=>e(i,l)),[]);return[r,s,a]}}const ly=rE(U4),oy=rE(m7),nE=({id:e,x:t,y:r,width:s,height:a,style:i,color:l,strokeColor:o,strokeWidth:c,className:d,borderRadius:u,shapeRendering:m,onClick:f,selected:h})=>{const{background:p,backgroundColor:v}=i||{},y=l||p||v;return te.createElement("rect",{className:rr(["react-flow__minimap-node",{selected:h},d]),x:t,y:r,rx:u,ry:u,width:s,height:a,fill:y,stroke:o,strokeWidth:c,shapeRendering:m,onClick:f?g=>f(g,e):void 0})};nE.displayName="MiniMapNode";var sF=x.memo(nE);const aF=e=>e.nodeOrigin,iF=e=>e.getNodes().filter(t=>!t.hidden&&t.width&&t.height),Jh=e=>e instanceof Function?e:()=>e;function lF({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:a=2,nodeComponent:i=sF,onClick:l}){const o=Qe(iF,Vt),c=Qe(aF),d=Jh(t),u=Jh(e),m=Jh(r),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return te.createElement(te.Fragment,null,o.map(h=>{const{x:p,y:v}=Za(h,c).positionAbsolute;return te.createElement(i,{key:h.id,x:p,y:v,width:h.width,height:h.height,style:h.style,selected:h.selected,className:m(h),color:d(h),borderRadius:s,strokeColor:u(h),strokeWidth:a,shapeRendering:f,onClick:l,id:h.id})}))}var oF=x.memo(lF);const cF=200,dF=150,uF=e=>{const t=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:t.length>0?N8(hf(t,e.nodeOrigin),r):r,rfId:e.rfId}},mF="react-flow__minimap-desc";function sE({style:e,className:t,nodeStrokeColor:r="transparent",nodeColor:s="#e2e2e2",nodeClassName:a="",nodeBorderRadius:i=5,nodeStrokeWidth:l=2,nodeComponent:o,maskColor:c="rgb(240, 240, 240, 0.6)",maskStrokeColor:d="none",maskStrokeWidth:u=1,position:m="bottom-right",onClick:f,onNodeClick:h,pannable:p=!1,zoomable:v=!1,ariaLabel:y="React Flow mini map",inversePan:g=!1,zoomStep:b=10,offsetScale:j=5}){const w=Dt(),C=x.useRef(null),{boundingRect:N,viewBB:A,rfId:_}=Qe(uF,Vt),I=(e==null?void 0:e.width)??cF,B=(e==null?void 0:e.height)??dF,z=N.width/I,T=N.height/B,D=Math.max(z,T),E=D*I,S=D*B,k=j*D,P=N.x-(E-N.width)/2-k,O=N.y-(S-N.height)/2-k,$=E+k*2,H=S+k*2,L=`${mF}-${_}`,W=x.useRef(0);W.current=D,x.useEffect(()=>{if(C.current){const U=un(C.current),K=V=>{const{transform:q,d3Selection:J,d3Zoom:G}=w.getState();if(V.sourceEvent.type!=="wheel"||!J||!G)return;const le=-V.sourceEvent.deltaY*(V.sourceEvent.deltaMode===1?.05:V.sourceEvent.deltaMode?1:.002)*b,ce=q[2]*Math.pow(2,le);G.scaleTo(J,ce)},F=V=>{const{transform:q,d3Selection:J,d3Zoom:G,translateExtent:le,width:ce,height:oe}=w.getState();if(V.sourceEvent.type!=="mousemove"||!J||!G)return;const se=W.current*Math.max(1,q[2])*(g?-1:1),ie={x:q[0]-V.sourceEvent.movementX*se,y:q[1]-V.sourceEvent.movementY*se},de=[[0,0],[ce,oe]],Le=fs.translate(ie.x,ie.y).scale(q[2]),Z=G.constrain()(Le,de,le);G.transform(J,Z)},Y=c4().on("zoom",p?F:null).on("zoom.wheel",v?K:null);return U.call(Y),()=>{U.on("zoom",null)}}},[p,v,g,b]);const M=f?U=>{const K=Pn(U);f(U,{x:K[0],y:K[1]})}:void 0,R=h?(U,K)=>{const F=w.getState().nodeInternals.get(K);h(U,F)}:void 0;return te.createElement(di,{position:m,style:e,className:rr(["react-flow__minimap",t]),"data-testid":"rf__minimap"},te.createElement("svg",{width:I,height:B,viewBox:`${P} ${O} ${$} ${H}`,role:"img","aria-labelledby":L,ref:C,onClick:M},y&&te.createElement("title",{id:L},y),te.createElement(oF,{onClick:R,nodeColor:s,nodeStrokeColor:r,nodeBorderRadius:i,nodeClassName:a,nodeStrokeWidth:l,nodeComponent:o}),te.createElement("path",{className:"react-flow__minimap-mask",d:`M${P-k},${O-k}h${$+k*2}v${H+k*2}h${-$-k*2}z M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fill:c,fillRule:"evenodd",stroke:d,strokeWidth:u,pointerEvents:"none"})))}sE.displayName="MiniMap";var cy=x.memo(sE);function fF(){return te.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},te.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function hF(){return te.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},te.createElement("path",{d:"M0 0h32v4.2H0z"}))}function xF(){return te.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},te.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function pF(){return te.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},te.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function gF(){return te.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},te.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const wo=({children:e,className:t,...r})=>te.createElement("button",{type:"button",className:rr(["react-flow__controls-button",t]),...r},e);wo.displayName="ControlButton";const yF=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),aE=({style:e,showZoom:t=!0,showFitView:r=!0,showInteractive:s=!0,fitViewOptions:a,onZoomIn:i,onZoomOut:l,onFitView:o,onInteractiveChange:c,className:d,children:u,position:m="bottom-left"})=>{const f=Dt(),[h,p]=x.useState(!1),{isInteractive:v,minZoomReached:y,maxZoomReached:g}=Qe(yF,Vt),{zoomIn:b,zoomOut:j,fitView:w}=ay();if(x.useEffect(()=>{p(!0)},[]),!h)return null;const C=()=>{b(),i==null||i()},N=()=>{j(),l==null||l()},A=()=>{w(a),o==null||o()},_=()=>{f.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),c==null||c(!v)};return te.createElement(di,{className:rr(["react-flow__controls",d]),position:m,style:e,"data-testid":"rf__controls"},t&&te.createElement(te.Fragment,null,te.createElement(wo,{onClick:C,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:g},te.createElement(fF,null)),te.createElement(wo,{onClick:N,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:y},te.createElement(hF,null))),r&&te.createElement(wo,{className:"react-flow__controls-fitview",onClick:A,title:"fit view","aria-label":"fit view"},te.createElement(xF,null)),s&&te.createElement(wo,{className:"react-flow__controls-interactive",onClick:_,title:"toggle interactivity","aria-label":"toggle interactivity"},v?te.createElement(gF,null):te.createElement(pF,null)),u)};aE.displayName="Controls";var dy=x.memo(aE),Ln;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ln||(Ln={}));function vF({color:e,dimensions:t,lineWidth:r}){return te.createElement("path",{stroke:e,strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function bF({color:e,radius:t}){return te.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const jF={[Ln.Dots]:"#91919a",[Ln.Lines]:"#eee",[Ln.Cross]:"#e2e2e2"},wF={[Ln.Dots]:1,[Ln.Lines]:1,[Ln.Cross]:6},NF=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function iE({id:e,variant:t=Ln.Dots,gap:r=20,size:s,lineWidth:a=1,offset:i=2,color:l,style:o,className:c}){const d=x.useRef(null),{transform:u,patternId:m}=Qe(NF,Vt),f=l||jF[t],h=s||wF[t],p=t===Ln.Dots,v=t===Ln.Cross,y=Array.isArray(r)?r:[r,r],g=[y[0]*u[2]||1,y[1]*u[2]||1],b=h*u[2],j=v?[b,b]:g,w=p?[b/i,b/i]:[j[0]/i,j[1]/i];return te.createElement("svg",{className:rr(["react-flow__background",c]),style:{...o,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:d,"data-testid":"rf__background"},te.createElement("pattern",{id:m+e,x:u[0]%g[0],y:u[1]%g[1],width:g[0],height:g[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${w[0]},-${w[1]})`},p?te.createElement(bF,{color:f,radius:b/i}):te.createElement(vF,{dimensions:j,color:f,lineWidth:a})),te.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${m+e})`}))}iE.displayName="Background";var uy=x.memo(iE);const SF=({keyword:e,country:t})=>{const[r,s]=x.useState([]),[a,i]=x.useState(null),[l,o]=x.useState(null),[c,d]=x.useState(!1),[u,m]=x.useState(!1),[f,h]=x.useState("graph"),[p,v]=x.useState([]),[y,g]=x.useState(!1),[b,j]=x.useState(!0),[w,C,N]=ly([]),[A,_,I]=oy([]);x.useEffect(()=>{B()},[e,t,y,b]);const B=async()=>{try{d(!0);const S={country:t,keyword:e,limit:200},k=await ye.get("/api/competitors/domains",{params:S});if(k.data.success){let P=k.data.domains;y&&(P=P.filter(O=>O.hasCloaking)),b||(P=P.filter(O=>!O.isOurSite)),s(P)}}catch(S){console.error("Failed to load domains:",S)}finally{d(!1)}},z=async S=>{try{m(!0);const k={country:t,keyword:e},P=await ye.get(`/api/competitors/domain/${encodeURIComponent(S)}`,{params:k});if(P.data.success&&P.data.urls.length>0){const O=P.data.urls[0].url,$=await ye.post("/api/cloaking/network",{url:O,maxDepth:3});$.data&&(o($.data),T($.data))}}catch(k){console.error("Failed to analyze network:",k)}finally{m(!1)}},T=S=>{if(!S||!S.network)return;const k=[],P=[];S.network.nodes.forEach((O,$)=>{const H=O.group==="cloaking",L=$/S.network.nodes.length*2*Math.PI,W=300,M=Math.cos(L)*W+400,R=Math.sin(L)*W+300;k.push({id:O.id,type:"default",position:{x:M,y:R},data:{label:n.jsxs("div",{className:"text-center p-2",children:[n.jsx("div",{className:"font-bold text-sm mb-1 break-words max-w-[200px]",children:O.label}),n.jsx("div",{className:"text-xs text-gray-600 break-all max-w-[200px]",children:O.url}),H&&n.jsx("div",{className:"text-xs text-red-600 font-bold mt-1",children:"⚠️ Клоакинг"})]})},style:{background:H?"#ff6b6b":"#51cf66",color:"white",border:`2px solid ${H?"#ff4757":"#40c057"}`,borderRadius:"12px",padding:"10px",fontSize:"12px",fontWeight:"bold",width:250,minHeight:80}})}),S.network.edges.forEach((O,$)=>{const H=O.type==="canonical";P.push({id:`edge-${$}`,source:O.from,target:O.to,type:"smoothstep",animated:!0,label:n.jsx("div",{className:"bg-white px-2 py-1 rounded shadow text-xs font-bold",children:H?"🔗 Canonical":`🌐 ${O.label}`}),style:{stroke:H?"#339af0":"#ffd43b",strokeWidth:H?3:2,strokeDasharray:H?"0":"5,5"},markerEnd:{type:gl.ArrowClosed,color:H?"#339af0":"#ffd43b"}})}),C(k),_(P)},D=async()=>{if(l)try{m(!0);const S=new Set;l.sites.forEach(O=>{O.canonical&&O.canonical!==O.url&&S.add(O.canonical),O.hreflangDetails&&O.hreflangDetails.forEach($=>{$.url!==O.url&&S.add($.url)})});const k=Array.from(S).map(async O=>{var $;try{const H=await ye.post("/api/cloaking/check",{url:O});return{url:O,cloakingDetected:H.data.cloakingDetected,cloakingType:H.data.cloakingType,canonical:(($=H.data.googlebotFull)==null?void 0:$.canonical)||null,hreflang:H.data.googlebotFull?[...H.data.googlebotFull.htmlHreflang||[],...H.data.googlebotFull.httpHreflang||[]]:[]}}catch{return{url:O,error:!0}}}),P=await Promise.all(k);v(P.filter(O=>!O.error))}catch(S){console.error("Failed to analyze related sites:",S)}finally{m(!1)}},E=S=>{i(S),o(null),C([]),_([]),h("graph"),v([]),z(S)};return n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-xl font-bold text-gray-900",children:"Анализ сетей конкурентов"}),n.jsx("p",{className:"text-sm text-gray-600",children:"Выберите конкурента для анализа его сети сайтов"})]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsxs("label",{className:"flex items-center space-x-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:y,onChange:S=>{g(S.target.checked),i(null),o(null)},className:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Только с клоакингом"})]}),n.jsxs("label",{className:"flex items-center space-x-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:b,onChange:S=>{j(S.target.checked),i(null),o(null)},className:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Показывать наши сайты"})]})]})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-4",children:[n.jsx("h3",{className:"text-lg font-bold text-gray-900 mb-4",children:"🏢 Конкуренты"}),c?n.jsx("div",{className:"text-center py-8",children:n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"})}):n.jsxs("div",{className:"space-y-2 max-h-[700px] overflow-y-auto",children:[r.map(S=>n.jsx("div",{onClick:()=>E(S.domain),className:`p-3 rounded-lg cursor-pointer transition-all ${a===S.domain?"bg-blue-100 border-2 border-blue-500":"bg-gray-50 hover:bg-gray-100 border-2 border-transparent"}`,children:n.jsx("div",{className:"flex items-start justify-between",children:n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"font-bold text-sm text-gray-900 flex items-center gap-2",children:[n.jsx("span",{children:S.domain}),S.isOurSite&&n.jsx("span",{children:"🏠"}),S.hasCloaking&&n.jsx("span",{children:"⚠️"}),S.hasCanonical&&n.jsx("span",{className:`text-xs font-bold px-1.5 py-0.5 rounded ${S.canonicalToOtherDomain?"bg-red-100 text-red-700":"bg-green-100 text-green-700"}`,children:"C"}),S.hasHreflang&&n.jsx("span",{className:"text-xs font-bold px-1.5 py-0.5 rounded bg-blue-100 text-blue-700",children:"H"})]}),n.jsxs("div",{className:"text-xs text-gray-600 mt-1",children:["Появлений: ",S.appearances," | Лучшая позиция: ",S.bestPosition]}),S.cloakingTypes.length>0&&n.jsxs("div",{className:"text-xs text-red-600 mt-1",children:["Клоакинг: ",S.cloakingTypes.join(", ")]})]})})},S.domain)),r.length===0&&n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Нет доменов для отображения"})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-4",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"🕸️ Сеть сайтов"}),l&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx("button",{onClick:()=>h("graph"),className:`px-3 py-1 text-sm rounded ${f==="graph"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"Граф"}),n.jsx("button",{onClick:()=>{h("text"),D()},className:`px-3 py-1 text-sm rounded ${f==="text"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"Текст"})]})]}),u?n.jsxs("div",{className:"text-center py-8",children:[n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-2"}),n.jsx("p",{className:"text-gray-600 text-sm",children:"Анализируем сеть..."})]}):l?n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"bg-gray-50 p-3 rounded-lg",children:n.jsxs("div",{className:"text-sm",children:[n.jsx("div",{className:"font-bold mb-1",children:"Статистика:"}),n.jsxs("div",{className:"text-xs",children:["Всего сайтов: ",l.totalSitesFound]}),n.jsxs("div",{className:"text-xs text-red-600",children:["С клоакингом: ",l.sites.filter(S=>S.cloakingDetected).length]}),n.jsxs("div",{className:"text-xs text-green-600",children:["Без клоакинга: ",l.sites.filter(S=>!S.cloakingDetected).length]})]})}),f==="graph"?n.jsx("div",{className:"h-[500px] border border-gray-300 rounded-lg overflow-hidden",children:n.jsxs(xf,{nodes:w,edges:A,onNodesChange:N,onEdgesChange:I,fitView:!0,attributionPosition:"bottom-left",children:[n.jsx(dy,{}),n.jsx(cy,{nodeColor:S=>{const k=l.network.nodes.find(P=>P.id===S.id);return(k==null?void 0:k.group)==="cloaking"?"#ff6b6b":"#51cf66"},nodeStrokeWidth:3}),n.jsx(uy,{color:"#f8f9fa",gap:20}),n.jsx(di,{position:"top-left",className:"bg-white p-2 rounded shadow text-xs",children:n.jsxs("div",{className:"space-y-1",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-3 h-3 bg-red-500 rounded"}),n.jsx("span",{children:"Клоакинг"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-3 h-3 bg-green-500 rounded"}),n.jsx("span",{children:"Чистый"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-8 h-0.5 bg-blue-500"}),n.jsx("span",{children:"Canonical"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-8 h-0.5 bg-yellow-500 border-dashed border-t"}),n.jsx("span",{children:"Hreflang"})]})]})})]})}):n.jsxs("div",{className:"space-y-4 max-h-[500px] overflow-y-auto",children:[l.sites.map((S,k)=>n.jsxs("div",{className:"border border-gray-200 rounded-lg p-3",children:[n.jsxs("div",{className:"font-bold text-sm mb-2",children:[n.jsx("a",{href:S.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:S.url}),S.cloakingDetected&&n.jsxs("span",{className:"ml-2 text-xs text-red-600 font-bold",children:["⚠️ Клоакинг: ",S.cloakingType]})]}),S.canonical&&n.jsxs("div",{className:"text-xs mb-2",children:[n.jsx("span",{className:"font-bold text-blue-600",children:"Canonical:"})," ",n.jsx("a",{href:S.canonical,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:S.canonical}),S.canonical!==S.url&&n.jsx("span",{className:"ml-2 text-red-600",children:"(на другой URL)"})]}),S.hreflangDetails&&S.hreflangDetails.length>0&&n.jsxs("div",{className:"text-xs mb-2",children:[n.jsxs("span",{className:"font-bold text-yellow-600",children:["Hreflang (",S.hreflangCount,"):"]}),n.jsx("div",{className:"ml-2 mt-1 space-y-1",children:S.hreflangDetails.map((P,O)=>n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs("span",{className:"text-gray-600",children:[P.lang,":"]}),n.jsx("a",{href:P.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:P.url}),P.url!==S.url&&n.jsx("span",{className:"text-gray-500",children:"(отличается от текущего URL)"})]},O))})]})]},k)),p.length>0&&n.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-300",children:[n.jsx("h3",{className:"font-bold text-sm mb-2",children:"🔗 Связанные сайты (проверены):"}),p.map((S,k)=>n.jsxs("div",{className:"border border-gray-200 rounded-lg p-3 mb-2",children:[n.jsxs("div",{className:"font-bold text-sm mb-2",children:[n.jsx("a",{href:S.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:S.url}),S.cloakingDetected&&n.jsxs("span",{className:"ml-2 text-xs text-red-600 font-bold",children:["⚠️ Клоакинг: ",S.cloakingType]})]}),S.canonical&&n.jsxs("div",{className:"text-xs mb-2",children:[n.jsx("span",{className:"font-bold text-blue-600",children:"Canonical:"})," ",S.canonical]}),S.hreflang&&S.hreflang.length>0&&n.jsxs("div",{className:"text-xs",children:[n.jsx("span",{className:"font-bold text-yellow-600",children:"Hreflang:"}),n.jsx("div",{className:"ml-2 mt-1",children:S.hreflang.map((P,O)=>n.jsxs("div",{children:[P.lang,": ",P.url]},O))})]})]},k))]})]})]}):a?n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Анализируем сеть..."}):n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Выберите конкурента из списка"})]})]})]})},lE=({keyword:e,country:t,databaseId:r})=>{const[s,a]=x.useState([]),[i,l]=x.useState(!0),[o,c]=x.useState(null),[d,u]=x.useState(!1),[m,f]=x.useState("all"),[h,p]=x.useState("all"),[v,y]=x.useState("all"),g=async()=>{try{l(!0),c(null);const T=`/api/notion/sites/${e}/${t}/positions${r?`?databaseId=${r}`:""}`,D=await fetch(T);if(!D.ok)throw new Error("Failed to fetch positions");const E=await D.json();a(E.sitesWithPositions||[])}catch(T){console.error("Error fetching positions:",T),c("Ошибка при загрузке позиций")}finally{l(!1),u(!1)}};x.useEffect(()=>{e&&t&&g()},[e,t,r]);const b=()=>{u(!0),g()},j=(T,D)=>{if(T===null||D===null)return{change:0,icon:Ga,color:"text-gray-400"};const E=D-T;return E>0?{change:E,icon:_l,color:"text-green-600"}:E<0?{change:Math.abs(E),icon:Zm,color:"text-red-600"}:{change:0,icon:Ga,color:"text-gray-400"}},w=T=>T?new Date(T).toLocaleDateString("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}):"—",C=T=>{try{return new URL(T.startsWith("http")?T:`https://${T}`).hostname.replace("www.","")}catch{return T}},N=x.useMemo(()=>[...new Set(s.map(T=>T.geo).filter(Boolean))].sort(),[s]),A=x.useMemo(()=>[...new Set(s.map(T=>T.brand).filter(Boolean))].sort(),[s]),_=x.useMemo(()=>[...new Set(s.map(T=>T.responsible_person||T.responsible).filter(Boolean))].sort(),[s]),I=x.useMemo(()=>s.filter(T=>{const D=m==="all"||T.geo===m,E=h==="all"||T.brand===h,S=v==="all"||T.responsible_person===v||T.responsible===v;return D&&E&&S}),[s,m,h,v]),B=()=>{f("all"),p("all"),y("all")},z=m!=="all"||h!=="all"||v!=="all";return i?n.jsx("div",{className:"flex items-center justify-center py-12",children:n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"})}):o?n.jsxs("div",{className:"text-center py-12",children:[n.jsx("p",{className:"text-red-600 mb-4",children:o}),n.jsx("button",{onClick:b,className:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700",children:"Попробовать снова"})]}):n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsxs("h3",{className:"text-lg font-semibold text-gray-900",children:["Позиции сайтов (",I.length," из ",s.length,")"]}),n.jsx("p",{className:"text-sm text-gray-500 mt-1",children:'Показываются только сайты со статусами "seo process" и "canonical"'})]}),n.jsxs("button",{onClick:b,disabled:d,className:"flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:[n.jsx(Te,{className:`h-4 w-4 ${d?"animate-spin":""}`}),"Обновить"]})]}),n.jsx("div",{className:"bg-white rounded-lg shadow p-4",children:n.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(Qm,{className:"h-4 w-4 text-gray-500"}),n.jsx("span",{className:"text-sm font-medium text-gray-700",children:"Фильтры:"})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("label",{className:"text-sm text-gray-600",children:"GEO:"}),n.jsxs("select",{value:m,onChange:T=>f(T.target.value),className:"px-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[n.jsx("option",{value:"all",children:"Все"}),N.map(T=>n.jsx("option",{value:T,children:T.toUpperCase()},T))]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("label",{className:"text-sm text-gray-600",children:"Бренд:"}),n.jsxs("select",{value:h,onChange:T=>p(T.target.value),className:"px-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[n.jsx("option",{value:"all",children:"Все"}),A.map(T=>n.jsx("option",{value:T,children:T},T))]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("label",{className:"text-sm text-gray-600",children:"Ответственный:"}),n.jsxs("select",{value:v,onChange:T=>y(T.target.value),className:"px-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[n.jsx("option",{value:"all",children:"Все"}),_.map(T=>n.jsx("option",{value:T,children:T},T))]})]}),z&&n.jsxs("button",{onClick:B,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-gray-600 hover:text-gray-800 hover:bg-gray-100 rounded-md transition-colors",children:[n.jsx(dr,{className:"h-3 w-3"}),"Сбросить"]})]})}),I.length===0?n.jsxs("div",{className:"text-center py-12 bg-gray-50 rounded-lg",children:[n.jsx("p",{className:"text-gray-500",children:s.length===0?"Нет сайтов для отображения":"Нет сайтов, соответствующих выбранным фильтрам"}),z&&n.jsx("button",{onClick:B,className:"mt-4 px-4 py-2 text-sm text-blue-600 hover:text-blue-800",children:"Сбросить фильтры"})]}):n.jsx("div",{className:"bg-white rounded-lg shadow overflow-hidden",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Сайт"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"GEO"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Бренд"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Ответственный"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Статус"}),n.jsx("th",{className:"px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Текущая позиция"}),n.jsx("th",{className:"px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Предыдущая позиция"}),n.jsx("th",{className:"px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Изменение"}),n.jsx("th",{className:"px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Лучшая позиция"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Последняя проверка"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:I.map(T=>{var S;const D=j(T.currentPosition,T.previousPosition),E=D.icon;return n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("div",{className:"flex items-center",children:n.jsxs("a",{href:T.url||T.main_site,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-blue-600 hover:text-blue-800 flex items-center gap-1",children:[C(T.url||T.main_site||""),n.jsx(Jm,{className:"h-3 w-3"})]})})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-gray-100 text-gray-800 rounded-full",children:((S=T.geo)==null?void 0:S.toUpperCase())||"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:"text-sm text-gray-900",children:T.brand||"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:"text-sm text-gray-600",children:T.responsible_person||T.responsible||"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:`px-2 py-1 text-xs font-medium rounded-full ${T.status==="seo process"?"bg-green-100 text-green-800":T.status==="canonical"?"bg-blue-100 text-blue-800":"bg-gray-100 text-gray-800"}`,children:T.status})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-center",children:T.currentPosition!==null?n.jsx("span",{className:"text-sm font-semibold text-gray-900",children:T.currentPosition}):n.jsx("span",{className:"text-sm text-gray-400",children:"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-center",children:T.previousPosition!==null?n.jsx("span",{className:"text-sm text-gray-600",children:T.previousPosition}):n.jsx("span",{className:"text-sm text-gray-400",children:"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-center",children:D.change!==0?n.jsxs("div",{className:`flex items-center justify-center gap-1 ${D.color}`,children:[n.jsx(E,{className:"h-4 w-4"}),n.jsx("span",{className:"text-sm font-medium",children:D.change})]}):n.jsx("span",{className:"text-sm text-gray-400",children:"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-center",children:T.bestPosition!==null?n.jsxs("div",{className:"flex items-center justify-center gap-1 text-green-600",children:[n.jsx(Je,{className:"h-4 w-4"}),n.jsx("span",{className:"text-sm font-semibold",children:T.bestPosition})]}):n.jsx("span",{className:"text-sm text-gray-400",children:"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsxs("div",{className:"flex items-center gap-1 text-sm text-gray-500",children:[n.jsx(Ut,{className:"h-4 w-4"}),w(T.lastChecked)]})})]},T.id||T.notion_id)})})]})})})]})},Uw={pl:"Poland",cz:"Czech Republic",ro:"Romania",in:"India",tr:"Turkey",de:"Germany",it:"Italy",gr:"Greece",us:"United States",gb:"United Kingdom",fr:"France",es:"Spain",nl:"Netherlands",be:"Belgium",at:"Austria",ch:"Switzerland",se:"Sweden",no:"Norway",dk:"Denmark",fi:"Finland",ie:"Ireland",pt:"Portugal",bg:"Bulgaria",hr:"Croatia",sk:"Slovakia",si:"Slovenia",hu:"Hungary",lv:"Latvia",lt:"Lithuania",ee:"Estonia",is:"Iceland",ca:"Canada",mx:"Mexico",br:"Brazil",cl:"Chile",co:"Colombia",pe:"Peru",ve:"Venezuela",ec:"Ecuador",bo:"Bolivia",py:"Paraguay",uy:"Uruguay",ar:"Argentina",au:"Australia",nz:"New Zealand",jp:"Japan",kr:"South Korea",cn:"China",sg:"Singapore",my:"Malaysia",th:"Thailand",id:"Indonesia",ph:"Philippines",vn:"Vietnam",kh:"Cambodia",kz:"Kazakhstan",uz:"Uzbekistan",tm:"Turkmenistan",tj:"Tajikistan",kg:"Kyrgyzstan",af:"Afghanistan",pk:"Pakistan",bd:"Bangladesh",lk:"Sri Lanka",iq:"Iraq",il:"Israel",sa:"Saudi Arabia",ae:"United Arab Emirates",qa:"Qatar",kw:"Kuwait",om:"Oman",ye:"Yemen",eg:"Egypt",tn:"Tunisia",dz:"Algeria",ma:"Morocco",et:"Ethiopia",ke:"Kenya",ug:"Uganda",tz:"Tanzania",zm:"Zambia",zw:"Zimbabwe",mz:"Mozambique",ao:"Angola",cd:"Democratic Republic of the Congo",cg:"Republic of the Congo",cf:"Central African Republic",ng:"Nigeria",cm:"Cameroon",ga:"Gabon",gh:"Ghana",tg:"Togo",bj:"Benin",bf:"Burkina Faso",ci:"Ivory Coast",gn:"Guinea",sn:"Senegal",ml:"Mali",ru:"Russia",ua:"Ukraine",by:"Belarus",md:"Moldova",ge:"Georgia",am:"Armenia",az:"Azerbaijan",al:"Albania",rs:"Serbia",ba:"Bosnia and Herzegovina"},nn=(e,t)=>{if(!e||e.length0?"+100.0%":"-";const a=(r-s)/s*100;return`${a>0?"+":""}${a.toFixed(1)}%`},$d=({data:e,color:t="#3B82F6",height:r=200})=>{const[s,a]=te.useState(null);if(!e||e.length===0)return null;const i=Math.max(...e.map(v=>v.value),1),l=Math.min(...e.map(v=>v.value),0),o=i-l||1,c=600,d={top:20,right:40,bottom:40,left:50},u=c-d.left-d.right,m=r-d.top-d.bottom,f=e.map((v,y)=>{const g=d.left+y/(e.length-1)*u,b=d.top+m-(v.value-l)/o*m;return{x:g,y:b,value:v.value,label:v.label}}),h=f.map((v,y)=>`${y===0?"M":"L"} ${v.x} ${v.y}`).join(" "),p=`${h} L ${f[f.length-1].x} ${r-d.bottom} L ${d.left} ${r-d.bottom} Z`;return n.jsx("div",{className:"w-full",children:n.jsxs("svg",{width:"100%",height:r,viewBox:`0 0 ${c} ${r}`,className:"overflow-visible",children:[n.jsx("g",{className:"text-gray-300",children:[0,.25,.5,.75,1].map((v,y)=>{const g=d.top+m*v;return n.jsxs("g",{children:[n.jsx("line",{x1:d.left,y1:g,x2:c-d.right,y2:g,stroke:"currentColor",strokeWidth:"1",opacity:"0.2"}),n.jsx("text",{x:d.left-10,y:g+4,fontSize:"10",fill:"currentColor",textAnchor:"end",children:Math.round(i-(i-l)*v).toLocaleString()})]},y)})}),n.jsx("path",{d:p,fill:t,opacity:"0.1"}),n.jsx("path",{d:h,fill:"none",stroke:t,strokeWidth:"2"}),f.map((v,y)=>n.jsx("g",{children:n.jsx("circle",{cx:v.x,cy:v.y,r:s===y?"6":"4",fill:t,style:{cursor:"pointer",transition:"r 0.2s"},onMouseEnter:()=>a(y),onMouseLeave:()=>a(null)})},y)),s!==null&&n.jsxs("g",{children:[n.jsx("rect",{x:f[s].x-60,y:f[s].y-50,width:"120",height:"40",fill:"rgba(0, 0, 0, 0.9)",rx:"4"}),n.jsx("text",{x:f[s].x,y:f[s].y-32,fontSize:"11",fill:"#fff",textAnchor:"middle",fontWeight:"600",children:f[s].label}),n.jsx("text",{x:f[s].x,y:f[s].y-18,fontSize:"14",fill:"#fff",textAnchor:"middle",fontWeight:"bold",children:f[s].value.toLocaleString()})]}),f.filter((v,y)=>y%Math.max(1,Math.floor(f.length/6))===0).map((v,y)=>n.jsx("text",{x:v.x,y:r-d.bottom+20,fontSize:"10",fill:"#666",textAnchor:"middle",children:v.label},y))]})})},kF=()=>{var ce,oe,se,ie,de,Le,Z,ne,je,Ge,xe,he,we,Fe,qt,fr,Gt,He,Re,Et,nr;const{keyword:e,country:t}=Tl(),r=Sr(),[s,a]=x.useState("geo"),[i,l]=x.useState(null),[o,c]=x.useState(!0),[d,u]=x.useState(null),[m,f]=x.useState(null),[h,p]=x.useState([]),[v,y]=x.useState(!0),[g,b]=x.useState(!1),[j,w]=x.useState(!1),[C,N]=x.useState("6"),[A,_]=x.useState("10"),[I,B]=x.useState("line");x.useEffect(()=>{e&&t&&(async()=>{var re,Oe,wt,Ve,Ue,hr,es,Yt,Ea,ke,Ds,Zc,Jc,Qc,ed,td,rd,nd,sd;try{c(!0);const Si=localStorage.getItem("geo_analysis_results");let ge=null;if(Si&&(ge=JSON.parse(Si).find($s=>$s.keyword===e&&$s.country.toLowerCase()===(t==null?void 0:t.toLowerCase()))),!ge)try{const ki=await fetch("/api/geo-analysis");if(ki.ok){const $s=await ki.json();$s.success&&$s.data.results&&(ge=$s.data.results.find(ad=>ad.keyword===e&&ad.country.toLowerCase()===(t==null?void 0:t.toLowerCase())))}}catch{console.log("API not available, using only localStorage")}console.log("Found result:",ge),ge?l({keyword:ge.keyword,country:ge.country,countryName:ge.countryName||Uw[ge.country.toLowerCase()]||ge.country,googleAdsVolume:ge.googleAdsVolume||((re=ge.googleAds)==null?void 0:re.volume)||0,googleAdsCPC:ge.googleAdsCPC||((Oe=ge.googleAds)==null?void 0:Oe.cpc)||0,googleAdsCompetition:ge.googleAdsCompetition||((wt=ge.googleAds)==null?void 0:wt.competition)||0,googleAdsTrendMoM:ge.googleAdsTrendMoM||((Ve=ge.googleAds)==null?void 0:Ve.trendMoM)||null,clickstreamWithAds:ge.clickstreamWithAds||((hr=(Ue=ge.clickstream)==null?void 0:Ue.withAds)==null?void 0:hr.volume)||0,clickstreamOrganic:ge.clickstreamOrganic||((Yt=(es=ge.clickstream)==null?void 0:es.organic)==null?void 0:Yt.volume)||0,clickstreamTrendMoM:ge.clickstreamTrendMoM||((ke=(Ea=ge.clickstream)==null?void 0:Ea.withAds)==null?void 0:ke.trendMoM)||null,ctr:ge.ctr||null,dataForSeoTrends:((Ds=ge.dataForSeoTrends)==null?void 0:Ds.popularity)||ge.dataForSeoTrends||null,dataForSeoTrendsTrend:((Zc=ge.dataForSeoTrends)==null?void 0:Zc.weeklyTrend)||ge.dataForSeoTrendsTrend||null,googleTrends:((Jc=ge.googleTrends)==null?void 0:Jc.popularity)||((Qc=ge.googleTrends)==null?void 0:Qc.averagePopularity)||ge.googleTrends||null,googleTrendsTrend:((ed=ge.googleTrends)==null?void 0:ed.weeklyTrend)||((td=ge.googleTrends)==null?void 0:td.trend)||ge.googleTrendsTrend||null,ahrefsVolume:ge.ahrefsVolume||((rd=ge.ahrefs)==null?void 0:rd.volume)||0,ahrefsClicks:ge.ahrefsClicks||((nd=ge.ahrefs)==null?void 0:nd.clicks)||0,ahrefsDifficulty:ge.ahrefsDifficulty||((sd=ge.ahrefs)==null?void 0:sd.difficulty)||0,rawData:ge.rawData||null,searchVolume:ge.googleAdsVolume||ge.searchVolume||0,clicks:ge.clickstreamWithAds||ge.clicks||0,cpc:ge.googleAdsCPC||ge.cpc||0,difficulty:ge.ahrefsDifficulty||ge.difficulty||0,globalSearchVolume:ge.globalSearchVolume||0,trafficPotential:ge.clickstreamWithAds||ge.trafficPotential||0,lastUpdated:ge.lastUpdated||new Date().toISOString(),competitorAnalysis:{completed:!1,competitors:[]},aiAnalysis:{completed:!1,recommendations:{difficulty:"unknown",potential:"unknown",strategy:"Анализ не выполнен",estimatedTraffic:"Не определено",competitionLevel:"Не определено",suggestedDomains:0,suggestedDrops:0,keyInsights:[],recommendedActions:[]}},tzGeneration:{completed:!1,variants:[]},domainSearch:{completed:!1,domains:[]},dropSearch:{completed:!1,drops:[]},totalDomains:Math.floor(Math.random()*1e3)+100,sitesAllStatuses:Math.floor(Math.random()*500)+50,launchedSites:Math.floor(Math.random()*100)+10}):u("Данные для указанного ключевого слова и страны не найдены")}catch(Si){u("Ошибка при загрузке данных"),console.error("Error fetching country data:",Si)}finally{c(!1)}})()},[e,t]),x.useEffect(()=>{(async()=>{if(!(!e||!t))try{y(!0);const re=await fetch(`/api/notion/stats/${e}/${t}`);if(re.ok){const wt=await re.json();f(wt)}const Oe=await fetch(`/api/notion/sites/${e}/${t}`);if(Oe.ok){const wt=await Oe.json();p(wt.sites||[])}}catch(re){console.error("Error fetching Notion data:",re)}finally{y(!1)}})()},[e,t]),x.useEffect(()=>{e&&t&&i&&J()},[e,t,i==null?void 0:i.keyword]);const z=[{id:"geo",name:"Анализ ГЕО",icon:vt},{id:"competitors",name:"Конкуренты",icon:_e},{id:"networks",name:"Анализ сетей",icon:ii},{id:"ai",name:"ИИ-анализ",icon:qr},{id:"results",name:"Результаты",icon:Jk},{id:"tz",name:"ТЗ",icon:da},{id:"domains",name:"Домены",icon:Tt},{id:"drops",name:"Дропы",icon:br}],[T,D]=x.useState(!1),[E,S]=x.useState(null),[k,P]=x.useState([]),[O,$]=x.useState(null),H=async(X,re)=>{try{await navigator.clipboard.writeText(X),$(re),setTimeout(()=>$(null),2e3)}catch(Oe){console.error("Failed to copy text:",Oe)}},[L,W]=x.useState([]),[M,R]=x.useState("analyzed"),[U,K]=x.useState([]),[F,Y]=x.useState(!1),V=async X=>{var Oe,wt;if(X!=="competitors"){console.log(`Starting ${X} analysis for ${i.keyword} in ${i.country}`);return}D(!0),K([]),Y(!0);const re=Ve=>{const Ue=new Date().toLocaleTimeString("ru-RU");K(hr=>[...hr,`[${Ue}] ${Ve}`])};try{re("🚀 Запуск анализа конкурентов..."),re(`📝 Keyword: ${i.keyword}, Country: ${i.country}`),re("🌐 Отправка запроса к DataForSEO API...");const Ve=await fetch("/api/competitors/analyze",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:i.keyword,country:i.country,topN:10,checkCloaking:!0,analyzeContent:!0})});if(re(`📡 Получен ответ от сервера (статус: ${Ve.status})`),!Ve.ok){const hr=await Ve.text();throw re(`❌ Ошибка HTTP: ${Ve.status} - ${hr.substring(0,200)}`),new Error(`HTTP error! status: ${Ve.status}`)}re("📦 Парсинг данных...");const Ue=await Ve.json();re(`✅ Данные получены: ${((Oe=Ue.competitors)==null?void 0:Oe.length)||0} конкурентов, ${((wt=Ue.ourSites)==null?void 0:wt.length)||0} наших сайтов`),Ue.success?(console.log("✅ Competitor analysis completed!",Ue),S(Ue),Ue.fullSerp&&Ue.fullSerp.length>0&&W(Ue.fullSerp),l({...i,competitorAnalysis:{completed:!0,competitors:Ue.competitors||[],ourSites:Ue.ourSites||[],summary:Ue.summary||{},lastCheck:Ue.checkDate,fullSerp:Ue.fullSerp||[]}}),await fetch("/api/competitors/schedule",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:i.keyword,country:i.country})}),console.log("✅ Добавлено в расписание ежедневных проверок"),re("📊 Загрузка истории проверок..."),q(),re("✅ Анализ завершен успешно!")):re(`❌ Анализ не успешен: ${Ue.error||"Unknown error"}`)}catch(Ve){console.error("❌ Competitor analysis failed:",Ve),re(`❌ ОШИБКА: ${Ve.message||Ve}`),Ve.response&&re(`📄 Response data: ${JSON.stringify(Ve.response.data).substring(0,200)}`),alert(`Ошибка анализа: ${Ve}`)}finally{D(!1),re("🏁 Процесс завершен")}},q=async()=>{try{const re=await(await fetch(`/api/competitors/history?keyword=${i.keyword}&country=${i.country}&limit=10`)).json();re.success&&P(re.data||[])}catch(X){console.error("Failed to load competitor history:",X)}},J=async()=>{if(!(!e||!t))try{const re=await(await fetch(`/api/competitors/latest?keyword=${e}&country=${t}`)).json();re.success&&re.analysis?(console.log("✅ Loaded latest competitor data from DB:",re.analysis),l(Oe=>({...Oe,competitorAnalysis:{completed:!0,competitors:re.analysis.competitors||[],ourSites:re.analysis.ourSites||[],summary:re.analysis.summary||{},lastCheck:re.analysis.checkDate,fullSerp:re.analysis.fullSerp||[]}})),re.analysis.fullSerp&&W(re.analysis.fullSerp),re.analysis.competitors&&S(re.analysis)):console.log("ℹ️ No competitor data found in DB")}catch(X){console.error("Failed to load latest competitor data:",X)}},G=X=>new Date(X).toLocaleDateString("ru-RU",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),le=X=>{const re=new Date(X),Oe=re.getDate().toString().padStart(2,"0"),wt=(re.getMonth()+1).toString().padStart(2,"0"),Ve=re.getFullYear();return`${Oe}.${wt}.${Ve}`};return o?n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary-600 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Загрузка данных..."}),n.jsx("p",{className:"text-gray-500",children:"Получение информации о ключевом слове и стране"})]})}):d||!i?n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"text-6xl text-red-300 mb-4",children:"⚠️"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-500 mb-4",children:d||"Данные не найдены"}),n.jsxs("button",{onClick:()=>r(`/keyword/${e}`),className:"btn-primary",children:[n.jsx(ca,{className:"h-4 w-4 mr-2"}),"Вернуться к ключевому слову"]})]})}):n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsx("button",{onClick:()=>r(`/keyword/${i.keyword}`),className:"p-2 hover:bg-gray-100 rounded-lg transition-colors",children:n.jsx(ca,{className:"h-5 w-5"})}),n.jsxs("div",{children:[n.jsxs("h1",{className:"text-2xl font-bold text-gray-900",children:[i.keyword," - ",i.country.toUpperCase()]}),n.jsx("p",{className:"text-sm text-gray-500",children:"Детальный анализ по ключевому слову и стране"})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("button",{onClick:async()=>{if(!(!e||!t)){b(!0);try{const re=await(await fetch("/api/geo-analysis/multi-source",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:e,country:t.toUpperCase()})})).json();re.success?(await fetch("/api/geo-analysis/multi-source/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({results:[re.data]})}),window.location.reload()):alert("Ошибка обновления: "+(re.error||"Неизвестная ошибка"))}catch(X){alert("Ошибка обновления: "+X.message)}finally{b(!1)}}},className:"btn-secondary",disabled:g,children:[n.jsx(Te,{className:`h-4 w-4 mr-2 ${g?"animate-spin":""}`}),g?"Обновление...":"Обновить данные"]}),n.jsxs("button",{onClick:()=>r("/planning"),className:"btn-primary",children:[n.jsx(jr,{className:"h-4 w-4 mr-2"}),"Добавить в план"]}),n.jsxs("button",{className:"btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]})]})]}),n.jsx("div",{className:"border-b border-gray-200",children:n.jsx("nav",{className:"-mb-px flex space-x-8",children:z.map(X=>{const re=X.icon,Oe=X.id==="geo"||X.id==="competitors"&&i.competitorAnalysis.completed||X.id==="ai"&&i.aiAnalysis.completed||X.id==="tz"&&i.tzGeneration.completed||X.id==="domains"&&i.domainSearch.completed||X.id==="drops"&&i.dropSearch.completed;return n.jsxs("button",{onClick:()=>a(X.id),className:`flex items-center space-x-2 py-2 px-1 border-b-2 font-medium text-sm ${s===X.id?"border-primary-500 text-primary-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"}`,children:[n.jsx(re,{className:"h-4 w-4"}),n.jsx("span",{children:X.name}),Oe&&n.jsx("div",{className:"w-2 h-2 bg-green-500 rounded-full"})]},X.id)})})}),n.jsxs("div",{className:"space-y-6",children:[s==="geo"&&n.jsxs("div",{className:"space-y-6",children:[(i.createdAt||i.updatedAt)&&n.jsxs("div",{className:"text-sm text-gray-600 flex items-center gap-2",children:[n.jsx(Ut,{className:"h-4 w-4"}),n.jsxs("span",{children:["Дата проверки: ",G(i.createdAt||i.updatedAt)]})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-6 gap-4",children:[n.jsx("div",{className:"card",title:"Google Ads частотность",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Xe,{className:"h-8 w-8 text-blue-600"}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-xs font-medium text-gray-500",children:"Google Ads"}),n.jsx("p",{className:"text-xl font-semibold text-gray-900",children:i.googleAdsVolume.toLocaleString()}),i.googleAdsTrendMoM&&n.jsx("p",{className:`text-xs ${i.googleAdsTrendMoM.includes("+")?"text-green-600":"text-red-600"}`,children:i.googleAdsTrendMoM})]})]})}),n.jsx("div",{className:"card",title:"Clickstream клики",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(yn,{className:"h-8 w-8 text-green-600"}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-xs font-medium text-gray-500",children:"Clickstream"}),n.jsx("p",{className:"text-xl font-semibold text-gray-900",children:i.clickstreamWithAds.toLocaleString()}),i.clickstreamTrendMoM&&n.jsx("p",{className:`text-xs ${i.clickstreamTrendMoM.includes("+")?"text-green-600":"text-red-600"}`,children:i.clickstreamTrendMoM})]})]})}),n.jsx("div",{className:"card",title:"DataForSEO Trends",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Je,{className:"h-8 w-8 text-purple-600"}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-xs font-medium text-gray-500",children:"DFSEO Trends"}),n.jsx("p",{className:"text-xl font-semibold text-gray-900",children:i.dataForSeoTrends||"-"}),i.dataForSeoTrendsTrend&&n.jsxs("p",{className:`text-xs ${i.dataForSeoTrendsTrend>0?"text-green-600":"text-red-600"}`,children:[i.dataForSeoTrendsTrend>0?"+":"",i.dataForSeoTrendsTrend,"%"]})]})]})}),n.jsx("div",{className:"card",title:"Ahrefs данные",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Xe,{className:"h-8 w-8 text-gray-600"}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-xs font-medium text-gray-500",children:"Ahrefs"}),n.jsx("p",{className:"text-xl font-semibold text-gray-900",children:i.ahrefsVolume.toLocaleString()}),n.jsxs("p",{className:"text-xs text-gray-500",children:["KD: ",i.ahrefsDifficulty]})]})]})}),n.jsx("div",{className:"card",title:"Google Ads CPC",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx("div",{className:"h-8 w-8 bg-blue-100 rounded-full flex items-center justify-center text-blue-600 font-bold",children:"$"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-xs font-medium text-gray-500",children:"CPC"}),n.jsxs("p",{className:"text-xl font-semibold text-gray-900",children:["$",i.googleAdsCPC.toFixed(2)]})]})]})}),n.jsx("div",{className:"card",title:"Notion статистика",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ot,{className:"h-8 w-8 text-green-600"}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-xs font-medium text-gray-500",children:"Запущено"}),n.jsx("p",{className:"text-xl font-semibold text-gray-900",children:v?"...":(m==null?void 0:m.launchedSites)||0})]})]})})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"card bg-blue-50",children:[n.jsxs("h3",{className:"text-lg font-medium text-gray-900 mb-4 flex items-center",children:[n.jsx("div",{className:"w-3 h-3 bg-blue-600 rounded-full mr-2"}),"Google Ads"]}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Частотность"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.googleAdsVolume.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"CPC"}),n.jsxs("dd",{className:"text-sm font-semibold text-gray-900",children:["$",i.googleAdsCPC.toFixed(2)]})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Конкуренция"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.googleAdsCompetition})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Тренд (MoM)"}),n.jsx("dd",{className:`text-sm font-semibold ${(ce=i.googleAdsTrendMoM)!=null&&ce.includes("+")?"text-green-600":(oe=i.googleAdsTrendMoM)!=null&&oe.includes("-")?"text-red-600":"text-gray-900"}`,children:i.googleAdsTrendMoM||"-"})]})]})]}),n.jsxs("div",{className:"card bg-green-50",children:[n.jsxs("h3",{className:"text-lg font-medium text-gray-900 mb-4 flex items-center",children:[n.jsx("div",{className:"w-3 h-3 bg-green-600 rounded-full mr-2"}),"Clickstream (альтернативная частотность)"]}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Частотность"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.clickstreamWithAds.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Тренд (MoM)"}),n.jsx("dd",{className:`text-sm font-semibold ${(se=i.clickstreamTrendMoM)!=null&&se.includes("+")?"text-green-600":(ie=i.clickstreamTrendMoM)!=null&&ie.includes("-")?"text-red-600":"text-gray-900"}`,children:i.clickstreamTrendMoM||"-"})]})]})]}),n.jsxs("div",{className:"card bg-gray-50",children:[n.jsxs("h3",{className:"text-lg font-medium text-gray-900 mb-4 flex items-center",children:[n.jsx("div",{className:"w-3 h-3 bg-gray-600 rounded-full mr-2"}),"Ahrefs"]}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Частотность"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.ahrefsVolume.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Клики"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.ahrefsClicks.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"KD (сложность)"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.ahrefsDifficulty})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("dt",{className:"text-sm font-medium text-gray-600",children:"Глобальная частота"}),n.jsx("dd",{className:"text-sm font-semibold text-gray-900",children:i.globalSearchVolume.toLocaleString()})]})]})]}),n.jsxs("div",{className:"card bg-purple-50",children:[n.jsxs("h3",{className:"text-lg font-medium text-gray-900 mb-4 flex items-center",children:[n.jsx("div",{className:"w-3 h-3 bg-purple-600 rounded-full mr-2"}),"Trends (динамика)"]}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between",children:[n.jsxs("dt",{className:"text-sm font-medium text-gray-600",children:["DFSEO Тренд",n.jsx("span",{className:"text-xs text-gray-500 ml-1",children:"(неделя)"})]}),n.jsx("dd",{className:`text-sm font-semibold ${i.dataForSeoTrendsTrend&&i.dataForSeoTrendsTrend.includes("+")?"text-green-600":i.dataForSeoTrendsTrend&&i.dataForSeoTrendsTrend.includes("-")?"text-red-600":"text-gray-900"}`,children:i.dataForSeoTrendsTrend||"-"})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsxs("dt",{className:"text-sm font-medium text-gray-600",children:["Google Тренд",n.jsx("span",{className:"text-xs text-gray-500 ml-1",children:"(неделя)"})]}),n.jsx("dd",{className:`text-sm font-semibold ${i.googleTrendsTrend&&i.googleTrendsTrend.includes("+")?"text-green-600":i.googleTrendsTrend&&i.googleTrendsTrend.includes("-")?"text-red-600":"text-gray-900"}`,children:i.googleTrendsTrend||"-"})]}),n.jsx("div",{className:"text-xs text-gray-500 mt-3 pt-3 border-t border-gray-200",children:"💡 Тренд показывает изменение популярности за последнюю неделю. График смотрите ниже ⬇️"})]})]})]}),i.rawData&&n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[((de=i.rawData.googleAds)==null?void 0:de.monthlySearches)&&i.rawData.googleAds.monthlySearches.length>0&&n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Google Ads - Динамика"}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>B("line"),className:`px-3 py-1 text-xs font-medium rounded ${I==="line"?"bg-white text-blue-600 shadow":"text-gray-600"}`,children:"Линия"}),n.jsx("button",{onClick:()=>B("bar"),className:`px-3 py-1 text-xs font-medium rounded ${I==="bar"?"bg-white text-blue-600 shadow":"text-gray-600"}`,children:"Столбцы"})]}),n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>N("6"),className:`px-3 py-1 text-xs font-medium rounded ${C==="6"?"bg-white text-blue-600 shadow":"text-gray-600"}`,children:"6 месяцев"}),n.jsx("button",{onClick:()=>N("12"),className:`px-3 py-1 text-xs font-medium rounded ${C==="12"?"bg-white text-blue-600 shadow":"text-gray-600"}`,children:"12 месяцев"})]})]})]}),I==="line"?n.jsx($d,{data:i.rawData.googleAds.monthlySearches.slice(0,C==="6"?6:C==="12"?12:i.rawData.googleAds.monthlySearches.length).reverse().map(X=>({label:`${X.year}-${String(X.month).padStart(2,"0")}`,value:X.search_volume})),color:"#3B82F6",height:250}):n.jsx("div",{className:"space-y-3",children:i.rawData.googleAds.monthlySearches.slice(0,C==="6"?6:C==="12"?12:i.rawData.googleAds.monthlySearches.length).map((X,re)=>n.jsxs("div",{className:"flex items-center",children:[n.jsxs("div",{className:"w-20 text-sm text-gray-600",children:[X.year,"-",String(X.month).padStart(2,"0")]}),n.jsx("div",{className:"flex-1",children:n.jsx("div",{className:"bg-gray-200 rounded-full h-6 overflow-hidden",children:n.jsx("div",{className:"bg-blue-600 h-6 rounded-full flex items-center justify-end pr-2",style:{width:`${Math.min(100,X.search_volume/Math.max(...i.rawData.googleAds.monthlySearches.map(Oe=>Oe.search_volume))*100)}%`},children:n.jsx("span",{className:"text-xs text-white font-semibold",children:X.search_volume.toLocaleString()})})})})]},re))})]}),((Z=(Le=i.rawData.clickstream)==null?void 0:Le.withAds)==null?void 0:Z.monthlySearches)&&i.rawData.clickstream.withAds.monthlySearches.length>0&&n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Clickstream - Динамика"}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>B("line"),className:`px-3 py-1 text-xs font-medium rounded ${I==="line"?"bg-white text-green-600 shadow":"text-gray-600"}`,children:"Линия"}),n.jsx("button",{onClick:()=>B("bar"),className:`px-3 py-1 text-xs font-medium rounded ${I==="bar"?"bg-white text-green-600 shadow":"text-gray-600"}`,children:"Столбцы"})]}),n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>N("6"),className:`px-3 py-1 text-xs font-medium rounded ${C==="6"?"bg-white text-green-600 shadow":"text-gray-600"}`,children:"6 месяцев"}),n.jsx("button",{onClick:()=>N("12"),className:`px-3 py-1 text-xs font-medium rounded ${C==="12"?"bg-white text-green-600 shadow":"text-gray-600"}`,children:"12 месяцев"})]})]})]}),I==="line"?n.jsx($d,{data:i.rawData.clickstream.withAds.monthlySearches.slice(0,C==="6"?6:C==="12"?12:i.rawData.clickstream.withAds.monthlySearches.length).reverse().map(X=>({label:`${X.year}-${String(X.month).padStart(2,"0")}`,value:X.search_volume})),color:"#16A34A",height:250}):n.jsx("div",{className:"space-y-3",children:i.rawData.clickstream.withAds.monthlySearches.slice(0,C==="6"?6:C==="12"?12:i.rawData.clickstream.withAds.monthlySearches.length).map((X,re)=>n.jsxs("div",{className:"flex items-center",children:[n.jsxs("div",{className:"w-20 text-sm text-gray-600",children:[X.year,"-",String(X.month).padStart(2,"0")]}),n.jsx("div",{className:"flex-1",children:n.jsx("div",{className:"bg-gray-200 rounded-full h-6 overflow-hidden",children:n.jsx("div",{className:"bg-green-600 h-6 rounded-full flex items-center justify-end pr-2",style:{width:`${Math.min(100,X.search_volume/Math.max(...i.rawData.clickstream.withAds.monthlySearches.map(Oe=>Oe.search_volume))*100)}%`},children:n.jsx("span",{className:"text-xs text-white font-semibold",children:X.search_volume.toLocaleString()})})})})]},re))})]})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[((je=(ne=i.rawData)==null?void 0:ne.dataForSeoTrends)==null?void 0:je.weeklyData)&&i.rawData.dataForSeoTrends.weeklyData.length>0&&n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"DataForSEO Trends - Популярность"}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>B("line"),className:`px-3 py-1 text-xs font-medium rounded ${I==="line"?"bg-white text-purple-600 shadow":"text-gray-600"}`,children:"Линия"}),n.jsx("button",{onClick:()=>B("bar"),className:`px-3 py-1 text-xs font-medium rounded ${I==="bar"?"bg-white text-purple-600 shadow":"text-gray-600"}`,children:"Столбцы"})]}),n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>_("10"),className:`px-2 py-1 text-xs font-medium rounded ${A==="10"?"bg-white text-purple-600 shadow":"text-gray-600"}`,children:"10н"}),n.jsx("button",{onClick:()=>_("26"),className:`px-2 py-1 text-xs font-medium rounded ${A==="26"?"bg-white text-purple-600 shadow":"text-gray-600"}`,children:"26н"}),n.jsx("button",{onClick:()=>_("all"),className:`px-2 py-1 text-xs font-medium rounded ${A==="all"?"bg-white text-purple-600 shadow":"text-gray-600"}`,children:"Все"})]})]})]}),I==="line"?n.jsxs(n.Fragment,{children:[n.jsx($d,{data:i.rawData.dataForSeoTrends.weeklyData.slice(-(A==="10"?10:A==="26"?26:i.rawData.dataForSeoTrends.weeklyData.length)).map(X=>({label:new Date(X.dateFrom).toLocaleDateString("ru-RU",{month:"short",day:"numeric"}),value:X.value})),color:"#9333EA",height:250}),n.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-200",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("span",{className:"text-gray-600",children:"Средняя популярность:"}),n.jsx("span",{className:"font-semibold text-gray-900",children:i.rawData.dataForSeoTrends.popularity||i.dataForSeoTrends})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"Недельный тренд:"}),n.jsx("span",{className:`font-semibold ${(Ge=i.rawData.dataForSeoTrends.weeklyTrend)!=null&&Ge.includes("+")?"text-green-600":(xe=i.rawData.dataForSeoTrends.weeklyTrend)!=null&&xe.includes("-")?"text-red-600":"text-gray-900"}`,children:i.rawData.dataForSeoTrends.weeklyTrend||i.dataForSeoTrendsTrend||"-"})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"Месячный тренд:"}),n.jsx("span",{className:`font-semibold ${nn(i.rawData.dataForSeoTrends.weeklyData,4).includes("+")?"text-green-600":nn(i.rawData.dataForSeoTrends.weeklyData,4).includes("-")?"text-red-600":"text-gray-900"}`,children:nn(i.rawData.dataForSeoTrends.weeklyData,4)})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"6-месячный тренд:"}),n.jsx("span",{className:`font-semibold ${nn(i.rawData.dataForSeoTrends.weeklyData,26).includes("+")?"text-green-600":nn(i.rawData.dataForSeoTrends.weeklyData,26).includes("-")?"text-red-600":"text-gray-900"}`,children:nn(i.rawData.dataForSeoTrends.weeklyData,26)})]})]})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"space-y-2 max-h-96 overflow-y-auto",children:i.rawData.dataForSeoTrends.weeklyData.slice(-(A==="10"?10:A==="26"?26:i.rawData.dataForSeoTrends.weeklyData.length)).reverse().map((X,re)=>n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"w-24 text-xs text-gray-600",children:new Date(X.dateFrom).toLocaleDateString("ru-RU",{month:"short",day:"numeric"})}),n.jsx("div",{className:"flex-1",children:n.jsx("div",{className:"bg-gray-200 rounded-full h-5 overflow-hidden",children:n.jsx("div",{className:"bg-purple-600 h-5 rounded-full flex items-center justify-end pr-2",style:{width:`${Math.min(100,X.value)}%`},children:n.jsx("span",{className:"text-xs text-white font-semibold",children:X.value})})})})]},re))}),n.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-200",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("span",{className:"text-gray-600",children:"Средняя популярность:"}),n.jsx("span",{className:"font-semibold text-gray-900",children:i.rawData.dataForSeoTrends.popularity||i.dataForSeoTrends})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"Недельный тренд:"}),n.jsx("span",{className:`font-semibold ${(he=i.rawData.dataForSeoTrends.weeklyTrend)!=null&&he.includes("+")?"text-green-600":(we=i.rawData.dataForSeoTrends.weeklyTrend)!=null&&we.includes("-")?"text-red-600":"text-gray-900"}`,children:i.rawData.dataForSeoTrends.weeklyTrend||i.dataForSeoTrendsTrend||"-"})]})]})]})]}),((qt=(Fe=i.rawData)==null?void 0:Fe.googleTrends)==null?void 0:qt.weeklyData)&&i.rawData.googleTrends.weeklyData.length>0&&n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:"Google Trends - Интерес"}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>B("line"),className:`px-3 py-1 text-xs font-medium rounded ${I==="line"?"bg-white text-yellow-600 shadow":"text-gray-600"}`,children:"Линия"}),n.jsx("button",{onClick:()=>B("bar"),className:`px-3 py-1 text-xs font-medium rounded ${I==="bar"?"bg-white text-yellow-600 shadow":"text-gray-600"}`,children:"Столбцы"})]}),n.jsxs("div",{className:"flex bg-gray-100 rounded-lg p-1",children:[n.jsx("button",{onClick:()=>_("10"),className:`px-2 py-1 text-xs font-medium rounded ${A==="10"?"bg-white text-yellow-600 shadow":"text-gray-600"}`,children:"10н"}),n.jsx("button",{onClick:()=>_("26"),className:`px-2 py-1 text-xs font-medium rounded ${A==="26"?"bg-white text-yellow-600 shadow":"text-gray-600"}`,children:"26н"}),n.jsx("button",{onClick:()=>_("all"),className:`px-2 py-1 text-xs font-medium rounded ${A==="all"?"bg-white text-yellow-600 shadow":"text-gray-600"}`,children:"Все"})]})]})]}),I==="line"?n.jsxs(n.Fragment,{children:[n.jsx($d,{data:i.rawData.googleTrends.weeklyData.slice(-(A==="10"?10:A==="26"?26:i.rawData.googleTrends.weeklyData.length)).map(X=>({label:new Date(X.dateFrom).toLocaleDateString("ru-RU",{month:"short",day:"numeric"}),value:X.value})),color:"#CA8A04",height:250}),n.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-200",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("span",{className:"text-gray-600",children:"Средний интерес:"}),n.jsx("span",{className:"font-semibold text-gray-900",children:i.rawData.googleTrends.popularity||i.googleTrends})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"Недельный тренд:"}),n.jsx("span",{className:`font-semibold ${(fr=i.rawData.googleTrends.weeklyTrend)!=null&&fr.includes("+")?"text-green-600":(Gt=i.rawData.googleTrends.weeklyTrend)!=null&&Gt.includes("-")?"text-red-600":"text-gray-900"}`,children:i.rawData.googleTrends.weeklyTrend||i.googleTrendsTrend||"-"})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"Месячный тренд:"}),n.jsx("span",{className:`font-semibold ${nn(i.rawData.googleTrends.weeklyData,4).includes("+")?"text-green-600":nn(i.rawData.googleTrends.weeklyData,4).includes("-")?"text-red-600":"text-gray-900"}`,children:nn(i.rawData.googleTrends.weeklyData,4)})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"6-месячный тренд:"}),n.jsx("span",{className:`font-semibold ${nn(i.rawData.googleTrends.weeklyData,26).includes("+")?"text-green-600":nn(i.rawData.googleTrends.weeklyData,26).includes("-")?"text-red-600":"text-gray-900"}`,children:nn(i.rawData.googleTrends.weeklyData,26)})]})]})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"space-y-2 max-h-96 overflow-y-auto",children:i.rawData.googleTrends.weeklyData.slice(-(A==="10"?10:A==="26"?26:i.rawData.googleTrends.weeklyData.length)).reverse().map((X,re)=>n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"w-24 text-xs text-gray-600",children:new Date(X.dateFrom).toLocaleDateString("ru-RU",{month:"short",day:"numeric"})}),n.jsx("div",{className:"flex-1",children:n.jsx("div",{className:"bg-gray-200 rounded-full h-5 overflow-hidden",children:n.jsx("div",{className:"bg-yellow-600 h-5 rounded-full flex items-center justify-end pr-2",style:{width:`${Math.min(100,X.value)}%`},children:n.jsx("span",{className:"text-xs text-white font-semibold",children:X.value})})})})]},re))}),n.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-200",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("span",{className:"text-gray-600",children:"Средний интерес:"}),n.jsx("span",{className:"font-semibold text-gray-900",children:i.rawData.googleTrends.popularity||i.googleTrends})]}),n.jsxs("div",{className:"flex justify-between text-sm mt-2",children:[n.jsx("span",{className:"text-gray-600",children:"Недельный тренд:"}),n.jsx("span",{className:`font-semibold ${(He=i.rawData.googleTrends.weeklyTrend)!=null&&He.includes("+")?"text-green-600":(Re=i.rawData.googleTrends.weeklyTrend)!=null&&Re.includes("-")?"text-red-600":"text-gray-900"}`,children:i.rawData.googleTrends.weeklyTrend||i.googleTrendsTrend||"-"})]})]})]})]})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Все метрики (детально)"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-700 mb-3 text-sm",children:"Google Ads"}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Частотность:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.googleAdsVolume.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"CPC:"}),n.jsxs("dd",{className:"font-semibold text-gray-900",children:["$",i.googleAdsCPC.toFixed(2)]})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Конкуренция:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.googleAdsCompetition})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Тренд:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.googleAdsTrendMoM||"-"})]})]})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-700 mb-3 text-sm",children:"Clickstream"}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Частотность:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.clickstreamWithAds.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Тренд (MoM):"}),n.jsx("dd",{className:`font-semibold text-sm ${(Et=i.clickstreamTrendMoM)!=null&&Et.includes("+")?"text-green-600":(nr=i.clickstreamTrendMoM)!=null&&nr.includes("-")?"text-red-600":"text-gray-900"}`,children:i.clickstreamTrendMoM||"-"})]})]})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-700 mb-3 text-sm",children:"Ahrefs"}),n.jsxs("dl",{className:"space-y-2",children:[n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Частотность:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.ahrefsVolume.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Клики:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.ahrefsClicks.toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"KD:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.ahrefsDifficulty})]}),n.jsxs("div",{className:"flex justify-between text-sm",children:[n.jsx("dt",{className:"text-gray-600",children:"Глобальная:"}),n.jsx("dd",{className:"font-semibold text-gray-900",children:i.globalSearchVolume.toLocaleString()})]})]})]})]})]}),(i.dataForSeoTrends!==null||i.googleTrends!==null)&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[i.dataForSeoTrends!==null&&n.jsxs("div",{className:"card bg-purple-50",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"DataForSEO Trends"}),n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-4xl font-bold text-purple-600 mb-2",children:i.dataForSeoTrends}),n.jsx("div",{className:"text-sm text-gray-600 mb-2",children:"Средняя популярность"}),i.dataForSeoTrendsTrend!==null&&n.jsxs("div",{className:`inline-block px-3 py-1 rounded-full text-sm font-semibold ${i.dataForSeoTrendsTrend>0?"bg-green-100 text-green-800":i.dataForSeoTrendsTrend<0?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:[i.dataForSeoTrendsTrend>0?"+":"",i.dataForSeoTrendsTrend,"% тренд"]})]})]}),i.googleTrends!==null&&n.jsxs("div",{className:"card bg-yellow-50",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Google Trends"}),n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-4xl font-bold text-yellow-600 mb-2",children:i.googleTrends}),n.jsx("div",{className:"text-sm text-gray-600 mb-2",children:"Средний интерес"}),i.googleTrendsTrend!==null&&n.jsxs("div",{className:`inline-block px-3 py-1 rounded-full text-sm font-semibold ${i.googleTrendsTrend>0?"bg-green-100 text-green-800":i.googleTrendsTrend<0?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:[i.googleTrendsTrend>0?"+":"",i.googleTrendsTrend,"% тренд"]})]})]})]}),n.jsxs("div",{className:"card",children:[n.jsxs("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:['Сайты по бренду "',i.keyword,'" в ',Uw[i.country.toLowerCase()]||i.country]}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Домен"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Статус"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Позиция"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Трафик"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Дата запуска"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Действия"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:v?n.jsx("tr",{children:n.jsx("td",{colSpan:6,className:"px-6 py-4 text-center text-gray-500",children:"Загрузка данных из Notion..."})}):h.length===0?n.jsx("tr",{children:n.jsx("td",{colSpan:6,className:"px-6 py-4 text-center text-gray-500",children:"Сайты не найдены в базе Notion"})}):h.map((X,re)=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:n.jsx("a",{href:X.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800",children:X.url})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:`px-2 py-1 text-xs font-medium rounded-full ${X.status==="in prod"?"bg-green-100 text-green-800":X.status==="indexing"?"bg-yellow-100 text-yellow-800":X.status==="pre indexing"?"bg-gray-100 text-gray-800":X.status==="seo process"?"bg-blue-100 text-blue-800":"bg-gray-100 text-gray-800"}`,children:X.status==="in prod"?"В продакшене":X.status==="indexing"?"Индексация":X.status==="pre indexing"?"Предварительная индексация":X.status==="seo process"?"SEO процесс":X.status})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:"-"}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:"-"}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:X.start_date?le(X.start_date):"-"}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium",children:n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{className:"text-primary-600 hover:text-primary-900",title:"Просмотр",children:n.jsx(Ht,{className:"h-4 w-4"})}),n.jsx("button",{className:"text-blue-600 hover:text-blue-900",title:"Анализ",children:n.jsx(_e,{className:"h-4 w-4"})})]})})]},re))})]})})]})]}),s==="competitors"&&n.jsx("div",{className:"space-y-6",children:i.competitorAnalysis.completed?n.jsxs("div",{className:"space-y-4",children:[i.competitorAnalysis.checkDate&&n.jsxs("div",{className:"text-sm text-gray-600 flex items-center gap-2",children:[n.jsx(Ut,{className:"h-4 w-4"}),n.jsxs("span",{children:["Дата проверки: ",G(i.competitorAnalysis.checkDate)]})]}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsxs("button",{onClick:()=>R("analyzed"),className:`px-4 py-2 rounded-lg font-medium transition-all ${M==="analyzed"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:["Топ-10 с анализом (",i.competitorAnalysis.competitors.length,")"]}),n.jsxs("button",{onClick:async()=>{if(!(!e||!t)){w(!0);try{const re=await(await fetch("/api/competitors/analyze",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:e,country:t.toUpperCase(),topN:10,checkCloaking:!0,analyzeContent:!0})})).json();re.success?window.location.reload():alert("Ошибка обновления: "+(re.error||"Неизвестная ошибка"))}catch(X){alert("Ошибка обновления: "+X.message)}finally{w(!1)}}},className:"btn-secondary text-sm flex items-center gap-1",disabled:j,children:[n.jsx(Te,{className:`h-4 w-4 ${j?"animate-spin":""}`}),j?"Обновление...":"Обновить выдачу"]}),n.jsxs("button",{onClick:()=>R("serp"),className:`px-4 py-2 rounded-lg font-medium transition-all ${M==="serp"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:["Весь SERP (",(i.competitorAnalysis.fullSerp||L).length,")"]}),n.jsxs("button",{onClick:()=>R("our"),className:`px-4 py-2 rounded-lg font-medium transition-all ${M==="our"?"bg-green-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:["Наши сайты (",i.competitorAnalysis.ourSites.length,")"]})]}),n.jsxs("button",{className:"btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]})]}),M==="analyzed"&&n.jsx("div",{className:"card overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"№"}),n.jsx("th",{className:"px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"URL"}),n.jsx("th",{className:"px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Title"}),n.jsx("th",{className:"px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Description"}),n.jsx("th",{className:"px-3 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"H1"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"H1-H6"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Слов"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"KW"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Плотность"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Links"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Canonical"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Hreflang"}),n.jsx("th",{className:"px-3 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Cloak"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:i.competitorAnalysis.competitors.map((X,re)=>{var Ea;const Oe=`title-${re}`,wt=`desc-${re}`,Ve=`h1-${re}`,Ue=X.isOurSite;let hr="none",es="";X.hasCanonical&&X.canonicalUrl&&(es=X.canonicalUrl,X.canonicalSelf?hr="self":hr="other");let Yt=[];if((Ea=X.rawCloakingData)!=null&&Ea.googlebotFull){const ke=X.rawCloakingData.googlebotFull;ke.htmlHreflang&&Array.isArray(ke.htmlHreflang)?Yt=ke.htmlHreflang:ke.httpHreflang&&Array.isArray(ke.httpHreflang)&&(Yt=ke.httpHreflang)}return Yt.length===0&&X.hreflangLangs&&X.hreflangLangs.length>0&&(Yt=X.hreflangLangs.map(ke=>({lang:ke,url:X.url}))),n.jsxs("tr",{className:`hover:bg-gray-50 cursor-pointer ${Ue?"bg-green-50":""}`,onClick:()=>r(`/competitor/${encodeURIComponent(X.url)}?keyword=${e}&country=${t}`),children:[n.jsxs("td",{className:"px-3 py-3 whitespace-nowrap text-sm font-medium text-gray-900",children:[X.position,Ue&&n.jsx("span",{className:"ml-1 text-green-600",children:"⭐"})]}),n.jsxs("td",{className:"px-3 py-3 text-sm font-medium text-blue-600 max-w-md",children:[n.jsx("div",{className:"hover:underline block truncate cursor-pointer",title:`${X.url} Кликните на строку для деталей Ctrl/Cmd+Клик для открытия сайта`,onClick:ke=>{ke.stopPropagation(),(ke.ctrlKey||ke.metaKey)&&window.open(X.url,"_blank","noopener,noreferrer")},onContextMenu:ke=>{ke.stopPropagation()},children:X.url}),n.jsx("div",{className:"text-xs text-gray-500",children:X.domain})]}),n.jsx("td",{className:"px-3 py-3 text-sm text-gray-600 max-w-xs",children:n.jsxs("div",{className:"flex items-center gap-1 group",children:[n.jsx("span",{className:"truncate",children:X.title||"-"}),X.title&&n.jsx("button",{onClick:ke=>{ke.stopPropagation(),H(X.title,Oe)},className:"opacity-0 group-hover:opacity-100 transition-opacity p-1 hover:bg-gray-200 rounded",title:"Копировать Title",children:O===Oe?n.jsx(Nt,{className:"h-3 w-3 text-green-600"}):n.jsx(Cr,{className:"h-3 w-3 text-gray-500"})})]})}),n.jsx("td",{className:"px-3 py-3 text-sm text-gray-600 max-w-xs",children:n.jsxs("div",{className:"flex items-center gap-1 group",children:[n.jsx("span",{className:"truncate",children:X.description||"-"}),X.description&&n.jsx("button",{onClick:ke=>{ke.stopPropagation(),H(X.description,wt)},className:"opacity-0 group-hover:opacity-100 transition-opacity p-1 hover:bg-gray-200 rounded",title:"Копировать Description",children:O===wt?n.jsx(Nt,{className:"h-3 w-3 text-green-600"}):n.jsx(Cr,{className:"h-3 w-3 text-gray-500"})})]})}),n.jsx("td",{className:"px-3 py-3 text-sm text-gray-600 max-w-xs",children:n.jsxs("div",{className:"flex items-center gap-1 group",children:[n.jsx("span",{className:"truncate",children:X.h1||"-"}),X.h1&&n.jsx("button",{onClick:ke=>{ke.stopPropagation(),H(X.h1,Ve)},className:"opacity-0 group-hover:opacity-100 transition-opacity p-1 hover:bg-gray-200 rounded",title:"Копировать H1",children:O===Ve?n.jsx(Nt,{className:"h-3 w-3 text-green-600"}):n.jsx(Cr,{className:"h-3 w-3 text-gray-500"})})]})}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-center",children:n.jsxs("details",{className:"inline-block",onClick:ke=>ke.stopPropagation(),children:[n.jsxs("summary",{className:"cursor-pointer text-xs px-2 py-1 bg-blue-50 text-blue-700 rounded hover:bg-blue-100",children:["H: ",X.h1Count||0,"/",X.h2Count||0,"/",X.h3Count||0]}),n.jsxs("div",{className:"absolute z-10 mt-2 p-3 bg-white border rounded-lg shadow-lg text-left min-w-[300px]",children:[X.h1&&n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("strong",{children:["H1 (",X.h1Count,"):"]})," ",X.h1]}),X.h2&&n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("strong",{children:["H2 (",X.h2Count,"):"]})," ",X.h2]}),X.h3&&n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("strong",{children:["H3 (",X.h3Count,"):"]})," ",X.h3]}),X.h4&&n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("strong",{children:["H4 (",X.h4Count,"):"]})," ",X.h4]}),X.h5&&n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("strong",{children:["H5 (",X.h5Count,"):"]})," ",X.h5]}),X.h6&&n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("strong",{children:["H6 (",X.h6Count,"):"]})," ",X.h6]})]})]})}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-sm text-center text-gray-900",children:X.wordCount||0}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-sm text-center text-gray-900",children:X.keywordOccurrences||0}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-sm text-center text-gray-900",children:X.keywordDensity?`${X.keywordDensity.toFixed(2)}%`:"-"}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-sm text-center text-gray-900",children:X.linksExternal||0}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-center",onClick:ke=>ke.stopPropagation(),children:hr==="none"?n.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-gray-100 text-gray-600",children:n.jsx(dr,{className:"h-3 w-3"})}):hr==="self"?n.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-green-100 text-green-800",title:es,children:n.jsx(Nt,{className:"h-3 w-3"})}):n.jsxs("div",{className:"relative group",children:[n.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-red-100 text-red-800",children:n.jsx(D0,{className:"h-3 w-3"})}),n.jsxs("div",{className:"absolute z-10 left-0 mt-2 p-2 bg-white border rounded-lg shadow-lg text-xs max-w-xs opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none",children:[n.jsx("div",{className:"font-semibold mb-1",children:"Canonical URL:"}),n.jsx("div",{className:"text-blue-600 break-all",children:es})]})]})}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-center",onClick:ke=>ke.stopPropagation(),children:X.hasHreflang?n.jsxs("details",{className:"inline-block",children:[n.jsxs("summary",{className:"cursor-pointer inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-green-100 text-green-800 hover:bg-green-200",children:[n.jsx(Nt,{className:"h-3 w-3 mr-1"}),n.jsxs("span",{children:["(",X.hreflangCount,")"]})]}),n.jsxs("div",{className:"absolute z-10 mt-2 p-2 bg-white border rounded-lg shadow-lg text-left min-w-[250px] max-h-60 overflow-y-auto",children:[n.jsx("div",{className:"text-xs font-semibold mb-2",children:"Hreflang теги:"}),Yt.length>0?Yt.map((ke,Ds)=>n.jsxs("div",{className:"text-xs mb-1 border-b pb-1",children:[n.jsx("div",{className:"font-medium text-blue-600",children:ke.lang||ke}),ke.url&&n.jsx("div",{className:"text-gray-600 truncate",children:ke.url})]},Ds)):X.hreflangLangs&&X.hreflangLangs.map((ke,Ds)=>n.jsx("div",{className:"text-xs",children:ke},Ds))]})]}):n.jsx("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-gray-100 text-gray-600",children:n.jsx(dr,{className:"h-3 w-3"})})}),n.jsx("td",{className:"px-3 py-3 whitespace-nowrap text-center",onClick:ke=>ke.stopPropagation(),children:X.cloakingDetected?n.jsxs("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded bg-red-100 text-red-800",children:["⚠️ ",X.cloakingType||"Yes"]}):n.jsx("span",{className:"text-gray-400",children:"-"})})]},re)})})]})}),M==="serp"&&n.jsx("div",{className:"space-y-3",children:(i.competitorAnalysis.fullSerp||L).map((X,re)=>n.jsx("div",{className:`card ${X.isOurSite?"border-2 border-green-500 bg-green-50":""}`,children:n.jsxs("div",{className:"flex items-start gap-4",children:[n.jsx("div",{className:`flex-shrink-0 w-12 h-12 rounded-lg flex items-center justify-center font-bold text-lg ${X.position<=3?"bg-green-100 text-green-700":X.position<=10?"bg-blue-100 text-blue-700":X.position<=20?"bg-yellow-100 text-yellow-700":"bg-gray-100 text-gray-700"}`,children:X.position}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[n.jsx("h4",{className:"font-semibold text-gray-900",children:X.title}),X.isOurSite&&n.jsx("span",{className:"px-2 py-1 bg-green-600 text-white text-xs font-bold rounded",children:"НАШ САЙТ ⭐"})]}),n.jsx("a",{href:X.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline truncate block",children:X.url}),n.jsx("p",{className:"text-sm text-gray-600 mt-2",children:X.description}),n.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:["Домен: ",n.jsx("span",{className:"font-medium",children:X.domain})]})]})]})},re))}),M==="our"&&n.jsx("div",{className:"space-y-3",children:i.competitorAnalysis.ourSites.map((X,re)=>n.jsx("div",{className:"card border-2 border-green-500 bg-green-50",children:n.jsxs("div",{className:"flex items-start gap-4",children:[n.jsxs("div",{className:`flex-shrink-0 w-14 h-14 rounded-lg flex items-center justify-center font-bold text-xl ${X.position<=3?"bg-green-600 text-white":X.position<=10?"bg-blue-600 text-white":X.position<=20?"bg-yellow-500 text-white":"bg-gray-400 text-white"}`,children:["#",X.position]}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[n.jsx("h4",{className:"text-lg font-bold text-gray-900",children:X.domain}),n.jsx("span",{className:"px-3 py-1 bg-green-600 text-white text-xs font-bold rounded",children:"НАШ САЙТ ⭐"})]}),n.jsx("p",{className:"font-medium text-gray-800 mb-1",children:X.title}),n.jsx("a",{href:X.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline block mb-2",children:X.url}),n.jsx("p",{className:"text-sm text-gray-600",children:X.description}),X.wordCount&&n.jsxs("div",{className:"mt-4 grid grid-cols-4 gap-4",children:[n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-xl font-semibold text-gray-900",children:X.wordCount}),n.jsx("div",{className:"text-xs text-gray-500",children:"Слов"})]}),n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"text-xl font-semibold text-gray-900",children:[X.keywordDensity,"%"]}),n.jsx("div",{className:"text-xs text-gray-500",children:"KD"})]}),X.cloakingDetected&&n.jsxs("div",{className:"col-span-2 text-center px-3 py-2 bg-red-100 rounded",children:[n.jsx("div",{className:"text-sm font-semibold text-red-700",children:"⚠️ Клоакинг обнаружен!"}),n.jsx("div",{className:"text-xs text-red-600",children:X.cloakingType})]})]})]})]})},re))})]}):n.jsxs("div",{className:"card text-center py-12",children:[n.jsx(_e,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Анализ конкурентов не выполнен"}),n.jsx("p",{className:"text-gray-500 mb-4",children:"Получите топ-10 конкурентов с полным анализом контента и проверкой клоакинга"}),n.jsx("p",{className:"text-xs text-gray-500 mb-6",children:"⏱️ Анализ занимает ~2-3 минуты (проверка 10 сайтов)"}),n.jsx("button",{onClick:()=>V("competitors"),className:"btn-primary",disabled:T,children:T?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"animate-spin h-4 w-4 mr-2 border-2 border-white border-t-transparent rounded-full"}),"Анализируем... (может занять 2-3 мин)"]}):n.jsxs(n.Fragment,{children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),"Запустить анализ топ-10"]})})]})}),s==="networks"&&n.jsx(SF,{keyword:e,country:t}),s==="ai"&&n.jsx("div",{className:"space-y-6",children:i.aiAnalysis.completed?n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Рекомендации ИИ"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-2",children:"Общая стратегия"}),n.jsx("p",{className:"text-gray-600",children:i.aiAnalysis.recommendations.strategy})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-2",children:"Потенциал трафика"}),n.jsx("p",{className:"text-gray-600",children:i.aiAnalysis.recommendations.estimatedTraffic})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-2",children:"Уровень конкуренции"}),n.jsx("p",{className:"text-gray-600",children:i.aiAnalysis.recommendations.competitionLevel})]})]})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Ключевые инсайты"}),n.jsx("ul",{className:"space-y-2",children:i.aiAnalysis.recommendations.keyInsights.map((X,re)=>n.jsxs("li",{className:"flex items-start space-x-2",children:[n.jsx("div",{className:"w-2 h-2 bg-blue-500 rounded-full mt-2 flex-shrink-0"}),n.jsx("span",{className:"text-gray-600",children:X})]},re))})]}),n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Рекомендуемые действия"}),n.jsx("ul",{className:"space-y-2",children:i.aiAnalysis.recommendations.recommendedActions.map((X,re)=>n.jsxs("li",{className:"flex items-start space-x-2",children:[n.jsx("div",{className:"w-2 h-2 bg-green-500 rounded-full mt-2 flex-shrink-0"}),n.jsx("span",{className:"text-gray-600",children:X})]},re))})]}),n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Рекомендации по доменам"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{className:"text-center p-4 bg-blue-50 rounded-lg",children:[n.jsx("div",{className:"text-2xl font-semibold text-blue-600",children:i.aiAnalysis.recommendations.suggestedDomains}),n.jsx("div",{className:"text-sm text-blue-800",children:"Новых доменов"})]}),n.jsxs("div",{className:"text-center p-4 bg-green-50 rounded-lg",children:[n.jsx("div",{className:"text-2xl font-semibold text-green-600",children:i.aiAnalysis.recommendations.suggestedDrops}),n.jsx("div",{className:"text-sm text-green-800",children:"Дропов"})]})]})]})]}):n.jsxs("div",{className:"card text-center py-12",children:[n.jsx(qr,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"ИИ-анализ не выполнен"}),n.jsx("p",{className:"text-gray-500 mb-4",children:"Запустите ИИ-анализ для получения рекомендаций и стратегии"}),n.jsxs("button",{onClick:()=>V("ai"),className:"btn-primary",children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),"Запустить анализ"]})]})}),s==="results"&&n.jsx(lE,{keyword:e||"",country:t||"",databaseId:m==null?void 0:m.databaseId}),["tz","domains","drops"].includes(s)&&n.jsxs("div",{className:"card text-center py-12",children:[n.jsxs("div",{className:"text-6xl text-gray-300 mb-4",children:[s==="tz"&&n.jsx(da,{}),s==="domains"&&n.jsx(Tt,{}),s==="drops"&&n.jsx(br,{})]}),n.jsxs("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:[s==="tz"&&"Формирование ТЗ не выполнено",s==="domains"&&"Подбор доменов не выполнен",s==="drops"&&"Подбор дропов не выполнен"]}),n.jsxs("p",{className:"text-gray-500 mb-4",children:[s==="tz"&&"Запустите формирование ТЗ для создания технических заданий",s==="domains"&&"Запустите подбор доменов для поиска подходящих доменных имен",s==="drops"&&"Запустите подбор дропов для поиска освобождающихся доменов"]}),n.jsxs("button",{onClick:()=>V(s),className:"btn-primary",children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),"Запустить ",s==="tz"?"формирование ТЗ":s==="domains"?"подбор доменов":"подбор дропов"]})]})]}),F&&n.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:n.jsxs("div",{className:"bg-white rounded-lg max-w-3xl w-full max-h-[80vh] flex flex-col",children:[n.jsxs("div",{className:"p-6 border-b flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-xl font-bold text-gray-900",children:"Лог анализа конкурентов"}),n.jsx("p",{className:"text-sm text-gray-600 mt-1",children:T?"⏳ Анализ выполняется...":"✅ Анализ завершен"})]}),!T&&n.jsx("button",{onClick:()=>Y(!1),className:"text-gray-500 hover:text-gray-700 text-2xl font-bold",children:"✕"})]}),n.jsx("div",{className:"flex-1 overflow-y-auto p-6 bg-gray-50",children:n.jsxs("div",{className:"space-y-2 font-mono text-sm",children:[U.map((X,re)=>n.jsx("div",{className:`p-3 rounded ${X.includes("❌")?"bg-red-100 text-red-800":X.includes("✅")?"bg-green-100 text-green-800":X.includes("🚀")||X.includes("🏁")?"bg-blue-100 text-blue-800":"bg-white text-gray-700"}`,children:X},re)),T&&n.jsxs("div",{className:"flex items-center gap-3 p-3 bg-blue-50 text-blue-700 rounded",children:[n.jsx("div",{className:"animate-spin h-5 w-5 border-2 border-blue-600 border-t-transparent rounded-full"}),n.jsx("span",{children:"Ожидание ответа от сервера..."})]})]})}),n.jsx("div",{className:"p-6 border-t bg-gray-50",children:n.jsx("button",{onClick:()=>Y(!1),disabled:T,className:`w-full py-3 rounded-lg font-medium transition-all ${T?"bg-gray-300 text-gray-500 cursor-not-allowed":"bg-blue-600 text-white hover:bg-blue-700"}`,children:T?"Подождите...":"Закрыть"})})]})})]})},CF=()=>{const e=Sr(),[t,r]=x.useState([""]),[s,a]=x.useState(["us"]),[i,l]=x.useState(!1),[o,c]=x.useState([]),[d,u]=x.useState(new Set),[m,f]=x.useState("searchVolume"),[h,p]=x.useState("desc"),[v,y]=x.useState({minSearchVolume:0,maxSearchVolume:1e6,minDifficulty:0,maxDifficulty:100,minCpc:0,maxCpc:10}),g=k=>{if(!k)return"N/A";try{return new Date(k).toLocaleDateString("ru-RU",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return"N/A"}},b=(k,P,O)=>{if(k.hasError)return n.jsx("span",{className:"text-red-600 font-semibold",title:k.errorMessage||"Ошибка получения данных",children:"ERROR"});const $=k[P];return $===0?O?O(0):"0":$==null?n.jsx("span",{className:"text-gray-400",title:"Данные не доступны для этого GEO",children:"N/A"}):O?O($):$},j=()=>{r([...t,""])},w=(k,P)=>{const O=[...t];O[k]=P,r(O)},C=k=>{t.length>1&&r(t.filter((P,O)=>O!==k))};x.useEffect(()=>{(async()=>{try{const P=await fetch("/api/geo-analysis");if(P.ok){const O=await P.json();O.success&&O.data.results&&c(O.data.results)}}catch(P){console.error("Ошибка загрузки результатов:",P)}})()},[]);const N=async()=>{var k,P,O,$,H,L,W,M,R,U,K,F,Y,V,q,J,G,le,ce,oe,se,ie,de,Le,Z,ne,je,Ge,xe,he,we,Fe,qt,fr;l(!0);try{const Gt=t.filter(Re=>Re.trim()!=="");if(Gt.length===0){alert("Пожалуйста, введите хотя бы одно ключевое слово"),l(!1);return}if(s.length===0){alert("Пожалуйста, выберите хотя бы одну страну"),l(!1);return}const He=[];for(const Re of Gt)for(const Et of s)try{const nr=await fetch("/api/geo-analysis/multi-source",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:Re.trim(),country:Et.toUpperCase()})});if(!nr.ok){console.error(`Error for ${Re} in ${Et}:`,nr.status);continue}const X=await nr.json();if(X.success&&X.data){const re=X.data;He.push({id:`${Re}-${Et}-${Date.now()}`,keyword:Re.trim(),country:Et.toUpperCase(),countryName:re.countryName||Et,googleAdsVolume:((k=re.googleAds)==null?void 0:k.volume)||0,googleAdsCPC:((P=re.googleAds)==null?void 0:P.cpc)||0,googleAdsCompetition:((O=re.googleAds)==null?void 0:O.competition)||0,googleAdsTrendMoM:(($=re.googleAds)==null?void 0:$.trendMoM)||null,clickstreamWithAds:((L=(H=re.clickstream)==null?void 0:H.withAds)==null?void 0:L.volume)||0,clickstreamTrendMoM:((M=(W=re.clickstream)==null?void 0:W.withAds)==null?void 0:M.trendMoM)||null,dataForSeoTrends:((R=re.dataForSeoTrends)==null?void 0:R.popularity)||((U=re.dataForSeoTrends)==null?void 0:U.averagePopularity)||null,dataForSeoTrendsTrend:((K=re.dataForSeoTrends)==null?void 0:K.weeklyTrend)||((F=re.dataForSeoTrends)==null?void 0:F.trend)||null,googleTrends:((Y=re.googleTrends)==null?void 0:Y.popularity)||((V=re.googleTrends)==null?void 0:V.averagePopularity)||null,googleTrendsTrend:((q=re.googleTrends)==null?void 0:q.weeklyTrend)||((J=re.googleTrends)==null?void 0:J.trend)||null,semrushVolume:((G=re.semrush)==null?void 0:G.volume)||0,semrushCPC:((le=re.semrush)==null?void 0:le.cpc)||0,semrushDifficulty:((ce=re.semrush)==null?void 0:ce.difficulty)||0,semrushTrend:((oe=re.semrush)==null?void 0:oe.trend)||null,ahrefsVolume:((se=re.ahrefs)==null?void 0:se.volume)||((ie=re.ahrefs)==null?void 0:ie.searchVolume)||0,ahrefsClicks:((de=re.ahrefs)==null?void 0:de.clicks)||0,ahrefsDifficulty:((Le=re.ahrefs)==null?void 0:Le.difficulty)||0,searchVolume:((Z=re.googleAds)==null?void 0:Z.volume)||((je=(ne=re.clickstream)==null?void 0:ne.withAds)==null?void 0:je.volume)||0,clicks:((xe=(Ge=re.clickstream)==null?void 0:Ge.withAds)==null?void 0:xe.volume)||0,cpc:((he=re.googleAds)==null?void 0:he.cpc)||((we=re.semrush)==null?void 0:we.cpc)||0,difficulty:((Fe=re.semrush)==null?void 0:Fe.difficulty)||0,trafficPotential:((fr=(qt=re.clickstream)==null?void 0:qt.withAds)==null?void 0:fr.volume)||0,rawData:re})}}catch(nr){console.error(`Error fetching data for ${Re} in ${Et}:`,nr)}if(He.length>0){c(He);try{const Re=await fetch("/api/geo-analysis/multi-source/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({results:He})});if(Re.ok){const Et=await Re.json();console.log("✅ Results saved to database:",Et.message)}else console.warn("⚠️ Failed to save to database, but displaying results anyway")}catch(Re){console.error("Error saving to database:",Re)}}else throw new Error("Не удалось получить данные ни для одного ключевого слова")}catch(Gt){console.error("Ошибка при запуске анализа:",Gt),alert(`Ошибка: ${Gt instanceof Error?Gt.message:"Неизвестная ошибка"}`)}finally{l(!1)}},A=()=>{console.log("Exporting results:",o)},_=async k=>{var P;if(confirm("Вы уверены, что хотите удалить этот анализ?"))try{const O=await fetch(`/api/geo-analysis/${k}`,{method:"DELETE",headers:{"Content-Type":"application/json"}});if(!O.ok)throw new Error(`HTTP error! status: ${O.status}`);const $=await O.json();if($.success)c(o.filter(H=>H.id!==k)),u(new Set([...d].filter(H=>H!==k))),alert("Анализ успешно удален");else throw new Error(((P=$.error)==null?void 0:P.message)||"Ошибка при удалении")}catch(O){console.error("Ошибка при удалении анализа:",O),alert(`Ошибка: ${O instanceof Error?O.message:"Неизвестная ошибка"}`)}},I=k=>{const P=new Set(d);P.has(k)?P.delete(k):P.add(k),u(P)},B=()=>{u(new Set(S.map(k=>k.id)))},z=()=>{u(new Set)},T=()=>{console.log("Continuing to next stage with:",Array.from(d))},D=k=>{m===k?p(h==="asc"?"desc":"asc"):(f(k),p("desc"))},E=(k,P)=>{y(O=>({...O,[k]:P}))},S=o.filter(k=>{const P=k.googleAdsVolume||k.clickstreamWithAds||k.ahrefsVolume||0,O=0,$=k.googleAdsCPC||0;return P>=v.minSearchVolume&&P<=v.maxSearchVolume&&O>=v.minDifficulty&&O<=v.maxDifficulty&&$>=v.minCpc&&$<=v.maxCpc}).sort((k,P)=>{const O=k[m]||0,$=P[m]||0;return h==="asc"?O-$:$-O});return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Анализ ГЕО"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Анализ ключевых слов по выбранным гео с получением метрик Ahrefs"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Ключевые слова"}),n.jsxs("div",{className:"space-y-3",children:[t.map((k,P)=>n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("input",{type:"text",value:k,onChange:O=>w(P,O.target.value),placeholder:"Введите ключевое слово",className:"input flex-1"}),t.length>1&&n.jsx("button",{onClick:()=>C(P),className:"px-3 py-2 text-red-600 hover:text-red-800",children:"×"})]},P)),n.jsx("button",{onClick:j,className:"btn btn-secondary w-full",children:"+ Добавить ключевое слово"})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Гео (страны)"}),n.jsx(Sc,{selectedCountries:s,onCountriesChange:a})]})]}),n.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Управление"}),n.jsxs("div",{className:"flex flex-col space-y-3",children:[n.jsxs("button",{onClick:N,disabled:i||t.filter(k=>k.trim()).length===0||s.length===0,className:"btn btn-primary w-full text-lg py-3",children:[n.jsx(Ot,{className:"h-5 w-5 mr-2"}),i?"Анализ выполняется...":"Запустить анализ"]}),o.length>0&&n.jsxs("div",{className:"flex space-x-2",children:[n.jsxs("button",{onClick:A,className:"btn btn-secondary flex-1",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]}),d.size>0&&n.jsxs("button",{onClick:T,className:"btn btn-primary flex-1",children:[n.jsx(D0,{className:"h-4 w-4 mr-2"}),"Продолжить (",d.size,")"]})]})]})]}),o.length>0&&n.jsx("div",{className:"card",children:n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-medium text-gray-700 mb-2",children:"Фильтры"}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{children:[n.jsxs("label",{className:"block text-xs text-gray-500",title:"Минимальный и максимальный объем поиска для фильтрации результатов",children:["Частотность",n.jsx(xr,{className:"h-3 w-3 inline ml-1 cursor-help"})]}),n.jsxs("div",{className:"flex space-x-1",children:[n.jsx("input",{type:"number",value:v.minSearchVolume,onChange:k=>E("minSearchVolume",parseInt(k.target.value)||0),placeholder:"Мин",className:"input text-sm"}),n.jsx("input",{type:"number",value:v.maxSearchVolume,onChange:k=>E("maxSearchVolume",parseInt(k.target.value)||1e6),placeholder:"Макс",className:"input text-sm"})]})]}),n.jsxs("div",{children:[n.jsxs("label",{className:"block text-xs text-gray-500",title:"Keyword Difficulty - сложность продвижения по ключевому слову (0-100)",children:["KD (Difficulty)",n.jsx(xr,{className:"h-3 w-3 inline ml-1 cursor-help"})]}),n.jsxs("div",{className:"flex space-x-1",children:[n.jsx("input",{type:"number",value:v.minDifficulty,onChange:k=>E("minDifficulty",parseInt(k.target.value)||0),placeholder:"Мин",className:"input text-sm"}),n.jsx("input",{type:"number",value:v.maxDifficulty,onChange:k=>E("maxDifficulty",parseInt(k.target.value)||100),placeholder:"Макс",className:"input text-sm"})]})]}),n.jsxs("div",{children:[n.jsxs("label",{className:"block text-xs text-gray-500",title:"Cost Per Click - цена за клик в рекламных кампаниях",children:["CPC ($ за клик)",n.jsx(xr,{className:"h-3 w-3 inline ml-1 cursor-help"})]}),n.jsxs("div",{className:"flex space-x-1",children:[n.jsx("input",{type:"number",step:"0.01",value:v.minCpc,onChange:k=>E("minCpc",parseFloat(k.target.value)||0),placeholder:"Мин",className:"input text-sm"}),n.jsx("input",{type:"number",step:"0.01",value:v.maxCpc,onChange:k=>E("maxCpc",parseFloat(k.target.value)||10),placeholder:"Макс",className:"input text-sm"})]})]})]})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-medium text-gray-700 mb-2",children:"Сортировка"}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("select",{value:m,onChange:k=>f(k.target.value),className:"input text-sm",children:[n.jsx("option",{value:"googleAdsVolume",children:"Google Ads Volume"}),n.jsx("option",{value:"clickstreamWithAds",children:"Clickstream Volume"}),n.jsx("option",{value:"ahrefsVolume",children:"Ahrefs Volume"}),n.jsx("option",{value:"googleAdsCPC",children:"Google Ads CPC"}),n.jsx("option",{value:"dataForSeoTrends",children:"DFSEO Trends"}),n.jsx("option",{value:"googleTrends",children:"Google Trends"})]}),n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>p("desc"),className:`btn text-sm ${h==="desc"?"btn-primary":"btn-secondary"}`,children:"↓ Убывание"}),n.jsx("button",{onClick:()=>p("asc"),className:`btn text-sm ${h==="asc"?"btn-primary":"btn-secondary"}`,children:"↑ Возрастание"})]})]})]})]})}),n.jsx(F0,{agentId:"geo_analysis",agentName:"GEO Analysis Agent",defaultPosition:"right",onSuggestion:k=>{console.log("AI suggestion:",k)}})]})]}),o.length>0&&n.jsx("div",{className:"space-y-6",children:n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex justify-between items-center mb-4",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900",children:"Результаты анализа"}),n.jsxs("p",{className:"text-sm text-gray-500",children:[S.length," из ",o.length," результатов"]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("button",{onClick:B,className:"text-sm text-primary-600 hover:text-primary-800",children:"Выбрать все"}),n.jsx("span",{className:"text-gray-300",children:"|"}),n.jsx("button",{onClick:z,className:"text-sm text-gray-600 hover:text-gray-800",children:"Снять выделение"})]})]}),n.jsx("div",{className:"overflow-x-auto -mx-4 sm:mx-0",children:n.jsx("div",{className:"inline-block min-w-full align-middle",children:n.jsx("div",{className:"overflow-hidden shadow ring-1 ring-black ring-opacity-5 sm:rounded-lg",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"sticky left-0 z-10 bg-gray-50 px-3 sm:px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsx("input",{type:"checkbox",checked:d.size===S.length&&S.length>0,onChange:d.size===S.length?z:B,className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"})}),n.jsx("th",{className:"sticky left-10 sm:left-16 z-10 bg-gray-50 px-3 sm:px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider whitespace-nowrap",children:"Ключевое слово"}),n.jsx("th",{className:"px-3 sm:px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider whitespace-nowrap",children:"Страна"}),n.jsx("th",{className:"px-3 sm:px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider whitespace-nowrap",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Дата проверки",children:[n.jsx(Ut,{className:"h-3 w-3"}),n.jsx("span",{children:"Дата проверки"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-blue-50 border-l-2 border-blue-200",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Среднемесячный объем поиска из Google Ads (частотность)",children:[n.jsx("span",{children:"Google Ads"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-blue-50",children:n.jsxs("button",{onClick:()=>D("googleAdsCPC"),className:"flex items-center space-x-1 hover:text-gray-700",title:"Средняя цена за клик в Google Ads (Cost Per Click)",children:[n.jsx("span",{children:"CPC"}),m==="googleAdsCPC"&&n.jsx(nt,{className:"h-3 w-3"}),n.jsx(xr,{className:"h-3 w-3 cursor-help ml-1"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-blue-50",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Изменение частотности за месяц (Month over Month)",children:[n.jsx("span",{children:"Trend MoM"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-green-50 border-l-2 border-green-200",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Фактическое количество кликов по результатам поиска (с учетом рекламы)",children:[n.jsx("span",{children:"Clickstream"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-green-50",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Изменение Clickstream за месяц",children:[n.jsx("span",{children:"Trend MoM"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-purple-50 border-l-2 border-purple-200",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Средняя популярность запроса за период (данные DataForSEO, шкала 0-100)",children:[n.jsx("span",{children:"DFSEO Trends"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-purple-50",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Изменение популярности (неделя к неделе)",children:[n.jsx("span",{children:"Trend"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-yellow-50 border-l-2 border-yellow-200",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Популярность в Google Trends (относительный интерес, шкала 0-100)",children:[n.jsx("span",{children:"Google Trends"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-yellow-50",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Изменение интереса (неделя к неделе)",children:[n.jsx("span",{children:"Trend"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-gray-50 border-l-2 border-gray-200",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Среднемесячный объем поиска по данным Ahrefs (частотность)",children:[n.jsx("span",{children:"Ahrefs Vol"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider bg-gray-50",children:n.jsxs("div",{className:"flex items-center space-x-1",title:"Предполагаемое количество кликов в месяц (Ahrefs Clicks)",children:[n.jsx("span",{children:"Clicks"}),n.jsx(xr,{className:"h-3 w-3 cursor-help"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Действия"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:S.map(k=>n.jsxs("tr",{className:d.has(k.id)?"bg-blue-50":"",children:[n.jsx("td",{className:"sticky left-0 z-10 bg-white px-3 sm:px-6 py-4 whitespace-nowrap",children:n.jsx("input",{type:"checkbox",checked:d.has(k.id),onChange:()=>I(k.id),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"})}),n.jsx("td",{className:"sticky left-10 sm:left-16 z-10 bg-white px-3 sm:px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:k.keyword}),n.jsx("td",{className:"px-3 sm:px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:k.countryName||k.country.toUpperCase()}),n.jsx("td",{className:"px-3 sm:px-6 py-4 whitespace-nowrap text-sm text-gray-600",children:n.jsx("span",{className:"text-xs",title:k.createdAt||k.updatedAt||"N/A",children:g(k.createdAt||k.updatedAt)})}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-blue-50 border-l-2 border-blue-200 font-medium",children:b(k,"googleAdsVolume",P=>P.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-500 bg-blue-50",children:b(k,"googleAdsCPC",P=>`$${P.toFixed(2)}`)}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm bg-blue-50",children:k.googleAdsTrendMoM?n.jsx("span",{className:`px-2 py-1 text-xs rounded ${k.googleAdsTrendMoM.includes("+")?"bg-green-100 text-green-800":k.googleAdsTrendMoM.includes("-")?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:k.googleAdsTrendMoM}):"-"}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-900 bg-green-50 border-l-2 border-green-200 font-medium",children:b(k,"clickstreamWithAds",P=>P.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm bg-green-50",children:k.clickstreamTrendMoM?n.jsx("span",{className:`px-2 py-1 text-xs rounded ${k.clickstreamTrendMoM.includes("+")?"bg-green-100 text-green-800":k.clickstreamTrendMoM.includes("-")?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:k.clickstreamTrendMoM}):"-"}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-500 bg-purple-50 border-l-2 border-purple-200",children:b(k,"dataForSeoTrends",P=>P.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm bg-purple-50",children:k.dataForSeoTrendsTrend?n.jsxs("span",{className:`px-2 py-1 text-xs rounded ${k.dataForSeoTrendsTrend>0?"bg-green-100 text-green-800":k.dataForSeoTrendsTrend<0?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:[k.dataForSeoTrendsTrend>0?"+":"",k.dataForSeoTrendsTrend,"%"]}):"-"}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-500 bg-yellow-50 border-l-2 border-yellow-200",children:b(k,"googleTrends",P=>P.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm bg-yellow-50",children:k.googleTrendsTrend?n.jsxs("span",{className:`px-2 py-1 text-xs rounded ${k.googleTrendsTrend>0?"bg-green-100 text-green-800":k.googleTrendsTrend<0?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:[k.googleTrendsTrend>0?"+":"",k.googleTrendsTrend,"%"]}):"-"}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-500 bg-gray-50 border-l-2 border-gray-200",children:b(k,"ahrefsVolume",P=>P.toLocaleString())}),n.jsx("td",{className:"px-4 py-4 whitespace-nowrap text-sm text-gray-500 bg-gray-50",children:b(k,"ahrefsClicks",P=>P.toLocaleString())}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium",children:n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>e("/planning"),className:"text-blue-600 hover:text-blue-900",title:"Добавить в план",children:n.jsx(jr,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>_(k.id),className:"text-red-600 hover:text-red-900",title:"Удалить анализ",children:n.jsx("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]})})]},k.id))})]})})})}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[n.jsx("div",{className:"card",title:"Средний объем поиска по данным Google Ads среди всех результатов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Xe,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Google Ads Vol."}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:o.length>0?Math.round(o.reduce((k,P)=>k+(P.googleAdsVolume||0),0)/o.length).toLocaleString():0})]})]})}),n.jsx("div",{className:"card",title:"Среднее количество кликов по данным Clickstream среди всех результатов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Xe,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Clickstream Vol."}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:o.length>0?Math.round(o.reduce((k,P)=>k+(P.clickstreamWithAds||0),0)/o.length).toLocaleString():0})]})]})}),n.jsx("div",{className:"card",title:"Средний объем поиска по данным Ahrefs среди всех результатов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Je,{className:"h-8 w-8 text-gray-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Ahrefs Vol."}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:o.length>0?Math.round(o.reduce((k,P)=>k+(P.ahrefsVolume||0),0)/o.length).toLocaleString():0})]})]})}),n.jsx("div",{className:"card",title:"Средняя популярность в DataForSEO Trends среди всех результатов",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Je,{className:"h-8 w-8 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Avg DFSEO Trends"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:o.length>0&&Math.round(o.reduce((k,P)=>k+(P.dataForSeoTrends||0),0)/o.filter(k=>k.dataForSeoTrends).length)||0})]})]})})]})]})})]})},EF=()=>{var $,H;const[e,t]=x.useState(1e4),[r,s]=x.useState(8.5),[a,i]=x.useState(45),[l,o]=x.useState(25),[c,d]=x.useState(35),[u,m]=x.useState(10),[f,h]=x.useState(5),[p,v]=x.useState([{id:"grid-1",name:"Основная стратегия",sitesCount:1,linkTypes:[{id:"crowd",name:"Крауд",pricePerDomain:150,quantity:3},{id:"scrap",name:"Лом",pricePerDomain:80,quantity:5},{id:"front",name:"Морда",pricePerDomain:200,quantity:2},{id:"sitewide",name:"Сквозная",pricePerDomain:120,quantity:4}]}]),[y,g]=x.useState(3),[b,j]=x.useState(20),[w,C]=x.useState(150),[N,A]=x.useState(40),[_,I]=x.useState(100),[B,z]=x.useState(!1),T=x.useMemo(()=>{const L=e,W=L*(r/100),M=W*(a/100),R=M*(l/100),U=R*(c/100);return{searches:L,siteVisits:W,offerClicks:M,registrations:R,deposits:U}},[e,r,a,l,c]),D=x.useMemo(()=>{const L=u*f,W=p.reduce((R,U)=>R+U.linkTypes.reduce((K,F)=>K+F.pricePerDomain*F.quantity*U.sitesCount,0),0),M=[];for(let R=1;R<=y;R++){const U=1+b/100*(R-1),K=W*U,F=(R===1?L:0)+K;M.push({month:R,linkCost:K,domainCost:R===1?L:0,totalCost:F,cumulativeCost:M.reduce((Y,V)=>Y+V.totalCost,F)})}return{domainCost:L,totalMonthlyLinkCost:W,forecast:M,totalCost:L+M.reduce((R,U)=>R+U.linkCost,0)}},[u,f,p,y,b]),E=x.useMemo(()=>{const L=T.deposits,W=B?L*_:L*w*(N/100),M=D.forecast.map(R=>{const U=W*R.month,K=U-R.cumulativeCost,F=R.cumulativeCost>0?K/R.cumulativeCost*100:0;return{month:R.month,revenue:U,costs:R.cumulativeCost,profit:K,roi:F}});return{monthlyDeposits:L,monthlyRevenue:W,forecast:M}},[T.deposits,w,N,_,B,D]),S=(L,W,M,R)=>{v(U=>U.map(K=>K.id===L?{...K,linkTypes:K.linkTypes.map(F=>F.id===W?{...F,[M]:R}:F)}:K))},k=(L,W)=>{v(M=>M.map(R=>R.id===L?{...R,sitesCount:W}:R))},P=()=>{const L={id:`grid-${Date.now()}`,name:`Стратегия ${p.length+1}`,sitesCount:1,linkTypes:[{id:`crowd-${Date.now()}`,name:"Крауд",pricePerDomain:150,quantity:3},{id:`scrap-${Date.now()}`,name:"Лом",pricePerDomain:80,quantity:5},{id:`front-${Date.now()}`,name:"Морда",pricePerDomain:200,quantity:2},{id:`sitewide-${Date.now()}`,name:"Сквозная",pricePerDomain:120,quantity:4}]};v(W=>[...W,L])},O=L=>{p.length>1&&v(W=>W.filter(M=>M.id!==L))};return n.jsxs("div",{className:"min-h-screen bg-gradient-to-br from-gray-50 to-gray-100 p-6",children:[n.jsxs("div",{className:"max-w-7xl mx-auto",children:[n.jsx("div",{className:"bg-white rounded-lg shadow-lg p-6 mb-6",children:n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsx("div",{className:"bg-blue-100 p-3 rounded-lg",children:n.jsx(Qk,{className:"w-8 h-8 text-blue-600"})}),n.jsxs("div",{children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-800",children:"Калькулятор Запуска ГЕО"}),n.jsx("p",{className:"text-gray-600 mt-1",children:"Расчет воронки конверсий и прогноз затрат"})]})]})}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-lg p-6",children:[n.jsxs("div",{className:"flex items-center space-x-3 mb-6",children:[n.jsx(rc,{className:"w-6 h-6 text-green-600"}),n.jsx("h2",{className:"text-2xl font-bold text-gray-800",children:"Прогноз Затрат"})]}),n.jsxs("div",{className:"mb-6 p-4 bg-blue-50 rounded-lg",children:[n.jsx("h3",{className:"font-semibold text-gray-700 mb-3",children:"Домены (разовая покупка)"}),n.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm text-gray-600 mb-1",children:"Стоимость 1 домена ($)"}),n.jsx("input",{type:"number",value:u,onChange:L=>m(Number(L.target.value)),className:"w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500",min:"0",step:"0.01"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm text-gray-600 mb-1",children:"Количество"}),n.jsx("input",{type:"number",value:f,onChange:L=>h(Number(L.target.value)),className:"w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500",min:"0"})]})]}),n.jsx("div",{className:"mt-3 text-right",children:n.jsxs("span",{className:"text-lg font-bold text-blue-600",children:["Итого: $",D.domainCost]})})]}),n.jsxs("div",{className:"mb-6",children:[n.jsxs("div",{className:"flex items-center justify-between mb-3",children:[n.jsx("h3",{className:"font-semibold text-gray-700",children:"Ссылочный массив (ежемесячно)"}),n.jsxs("button",{onClick:P,className:"flex items-center space-x-1 bg-purple-600 text-white px-3 py-1 rounded-lg hover:bg-purple-700 transition-colors text-sm",children:[n.jsx("span",{children:"+"}),n.jsx("span",{children:"Добавить сетку"})]})]}),p.map((L,W)=>n.jsxs("div",{className:"mb-6 p-4 bg-gray-50 rounded-lg border",children:[n.jsxs("div",{className:"flex items-center justify-between mb-3",children:[n.jsx("input",{type:"text",value:L.name,onChange:M=>{const R=[...p];R[W].name=M.target.value,v(R)},className:"font-medium text-gray-700 bg-transparent border-b border-gray-300 focus:border-purple-500 focus:outline-none"}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("label",{className:"text-sm text-gray-600",children:"Количество сайтов:"}),n.jsx("input",{type:"number",value:L.sitesCount,onChange:M=>k(L.id,Number(M.target.value)),className:"w-20 px-2 py-1 border rounded text-sm focus:ring-2 focus:ring-purple-500",min:"1"}),p.length>1&&n.jsx("button",{onClick:()=>O(L.id),className:"text-red-600 hover:text-red-800 text-sm",children:"Удалить"})]})]}),n.jsx("div",{className:"space-y-3",children:L.linkTypes.map(M=>n.jsxs("div",{className:"p-3 bg-white rounded-lg border",children:[n.jsx("div",{className:"font-medium text-gray-700 mb-2",children:M.name}),n.jsxs("div",{className:"grid grid-cols-4 gap-2",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:"$/домен"}),n.jsx("input",{type:"number",value:M.pricePerDomain,onChange:R=>S(L.id,M.id,"pricePerDomain",Number(R.target.value)),className:"w-full px-2 py-1 border rounded text-sm focus:ring-2 focus:ring-purple-500",min:"0",step:"0.01"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:"Кол-во"}),n.jsx("input",{type:"number",value:M.quantity,onChange:R=>S(L.id,M.id,"quantity",Number(R.target.value)),className:"w-full px-2 py-1 border rounded text-sm focus:ring-2 focus:ring-purple-500",min:"0"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:"На 1 сайт"}),n.jsxs("div",{className:"px-2 py-1 bg-blue-100 rounded text-sm font-semibold text-blue-700",children:["$",(M.pricePerDomain*M.quantity).toFixed(0)]})]}),n.jsxs("div",{children:[n.jsxs("label",{className:"block text-xs text-gray-600 mb-1",children:["Всего (",L.sitesCount," сайт.)"]}),n.jsxs("div",{className:"px-2 py-1 bg-purple-100 rounded text-sm font-semibold text-purple-700",children:["$",(M.pricePerDomain*M.quantity*L.sitesCount).toFixed(0)]})]})]})]},M.id))}),n.jsxs("div",{className:"mt-3 text-right",children:[n.jsxs("span",{className:"text-sm text-gray-600",children:['Итого для "',L.name,'": ']}),n.jsxs("span",{className:"text-lg font-bold text-purple-600",children:["$",L.linkTypes.reduce((M,R)=>M+R.pricePerDomain*R.quantity*L.sitesCount,0).toFixed(0)]})]})]},L.id)),n.jsx("div",{className:"mt-3 text-right border-t pt-3",children:n.jsxs("span",{className:"text-lg font-bold text-purple-600",children:["Общий итог в месяц: $",D.totalMonthlyLinkCost.toFixed(0)]})})]}),n.jsxs("div",{className:"mb-6 p-4 bg-orange-50 rounded-lg",children:[n.jsx("h3",{className:"font-semibold text-gray-700 mb-3",children:"Настройки прогноза"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsxs("label",{className:"block text-sm text-gray-600 mb-2",children:["Период прогноза: ",y," мес."]}),n.jsx("input",{type:"range",min:"1",max:"12",value:y,onChange:L=>g(Number(L.target.value)),className:"w-full"})]}),n.jsxs("div",{children:[n.jsxs("label",{className:"block text-sm text-gray-600 mb-2",children:["Рост количества ссылок: ",b,"% в месяц"]}),n.jsx("input",{type:"range",min:"0",max:"100",value:b,onChange:L=>j(Number(L.target.value)),className:"w-full"})]})]})]}),n.jsxs("div",{className:"overflow-x-auto",children:[n.jsx("h3",{className:"font-semibold text-gray-700 mb-3",children:"Прогноз затрат по месяцам"}),n.jsxs("table",{className:"w-full text-sm",children:[n.jsx("thead",{className:"bg-gray-100",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-3 py-2 text-left",children:"Месяц"}),n.jsx("th",{className:"px-3 py-2 text-right",children:"Ссылки"}),n.jsx("th",{className:"px-3 py-2 text-right",children:"Домены"}),n.jsx("th",{className:"px-3 py-2 text-right",children:"Всего"}),n.jsx("th",{className:"px-3 py-2 text-right",children:"Накопл."})]})}),n.jsx("tbody",{children:D.forecast.map(L=>n.jsxs("tr",{className:"border-t",children:[n.jsx("td",{className:"px-3 py-2",children:L.month}),n.jsxs("td",{className:"px-3 py-2 text-right",children:["$",L.linkCost.toFixed(0)]}),n.jsxs("td",{className:"px-3 py-2 text-right",children:["$",L.domainCost.toFixed(0)]}),n.jsxs("td",{className:"px-3 py-2 text-right font-semibold",children:["$",L.totalCost.toFixed(0)]}),n.jsxs("td",{className:"px-3 py-2 text-right font-bold text-orange-600",children:["$",L.cumulativeCost.toFixed(0)]})]},L.month))})]})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-lg p-6",children:[n.jsxs("div",{className:"flex items-center space-x-3 mb-6",children:[n.jsx(Je,{className:"w-6 h-6 text-blue-600"}),n.jsx("h2",{className:"text-2xl font-bold text-gray-800",children:"Воронка Конверсий"})]}),n.jsxs("div",{className:"mb-6 p-4 bg-blue-50 rounded-lg",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Частотность ключа (в месяц)"}),n.jsx("input",{type:"number",value:e,onChange:L=>t(Number(L.target.value)),className:"w-full px-4 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 text-lg font-semibold",min:"0"})]}),n.jsxs("div",{className:"space-y-4 mb-6",children:[n.jsxs("div",{className:"p-4 bg-gradient-to-r from-blue-50 to-blue-100 rounded-lg",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:["% с поиска на сайт (CTR): ",r,"%"]}),n.jsx("input",{type:"range",min:"0",max:"100",step:"0.1",value:r,onChange:L=>s(Number(L.target.value)),className:"w-full"}),n.jsxs("div",{className:"mt-2 text-right text-lg font-bold text-blue-600",children:[T.siteVisits.toFixed(0)," визитов"]})]}),n.jsxs("div",{className:"p-4 bg-gradient-to-r from-green-50 to-green-100 rounded-lg",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:["% с сайта на оффер: ",a,"%"]}),n.jsx("input",{type:"range",min:"0",max:"100",step:"0.1",value:a,onChange:L=>i(Number(L.target.value)),className:"w-full"}),n.jsxs("div",{className:"mt-2 text-right text-lg font-bold text-green-600",children:[T.offerClicks.toFixed(0)," кликов"]})]}),n.jsxs("div",{className:"p-4 bg-gradient-to-r from-yellow-50 to-yellow-100 rounded-lg",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:["% с оффера на регу: ",l,"%"]}),n.jsx("input",{type:"range",min:"0",max:"100",step:"0.1",value:l,onChange:L=>o(Number(L.target.value)),className:"w-full"}),n.jsxs("div",{className:"mt-2 text-right text-lg font-bold text-yellow-600",children:[T.registrations.toFixed(0)," регистраций"]})]}),n.jsxs("div",{className:"p-4 bg-gradient-to-r from-purple-50 to-purple-100 rounded-lg",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:["% с реги в деп: ",c,"%"]}),n.jsx("input",{type:"range",min:"0",max:"100",step:"0.1",value:c,onChange:L=>d(Number(L.target.value)),className:"w-full"}),n.jsxs("div",{className:"mt-2 text-right text-lg font-bold text-purple-600",children:[T.deposits.toFixed(0)," депозитов"]})]})]}),n.jsxs("div",{className:"p-4 bg-gradient-to-r from-green-50 to-emerald-100 rounded-lg",children:[n.jsxs("div",{className:"mb-4",children:[n.jsx("label",{className:"block text-sm text-gray-700 mb-2",children:"Стратегия монетизации:"}),n.jsxs("div",{className:"flex space-x-4",children:[n.jsxs("label",{className:"flex items-center",children:[n.jsx("input",{type:"radio",checked:!B,onChange:()=>z(!1),className:"mr-2"}),n.jsx("span",{className:"text-sm",children:"RevShare"})]}),n.jsxs("label",{className:"flex items-center",children:[n.jsx("input",{type:"radio",checked:B,onChange:()=>z(!0),className:"mr-2"}),n.jsx("span",{className:"text-sm",children:"CPA"})]})]})]}),B?n.jsxs("div",{className:"mb-4",children:[n.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:"CPA ставка ($)"}),n.jsx("input",{type:"number",value:_,onChange:L=>I(Number(L.target.value)),className:"w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-green-500",min:"0",step:"0.01"})]}):n.jsxs("div",{className:"grid grid-cols-2 gap-4 mb-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:"Средний депозит ($)"}),n.jsx("input",{type:"number",value:w,onChange:L=>C(Number(L.target.value)),className:"w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-green-500",min:"0",step:"0.01"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-xs text-gray-600 mb-1",children:"RevShare (%)"}),n.jsx("input",{type:"number",value:N,onChange:L=>A(Number(L.target.value)),className:"w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-green-500",min:"0",max:"100",step:"0.1"})]})]}),n.jsxs("div",{className:"space-y-2 text-sm",children:[n.jsxs("div",{className:"flex justify-between",children:[n.jsx("span",{className:"text-gray-600",children:"Депозитов в месяц:"}),n.jsx("span",{className:"font-bold",children:E.monthlyDeposits.toFixed(0)})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsxs("span",{className:"text-gray-600",children:["Доход в месяц (",B?"CPA":"RevShare","):"]}),n.jsxs("span",{className:"font-bold text-green-600",children:["$",E.monthlyRevenue.toFixed(0)]})]})]})]})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-lg p-6 mb-6",children:[n.jsxs("div",{className:"flex items-center space-x-3 mb-6",children:[n.jsx(Je,{className:"w-6 h-6 text-indigo-600"}),n.jsx("h2",{className:"text-2xl font-bold text-gray-800",children:"Прогноз ROI"})]}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-gradient-to-r from-indigo-100 to-purple-100",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left",children:"Месяц"}),n.jsx("th",{className:"px-4 py-3 text-right",children:"Доход"}),n.jsx("th",{className:"px-4 py-3 text-right",children:"Затраты"}),n.jsx("th",{className:"px-4 py-3 text-right",children:"Прибыль"}),n.jsx("th",{className:"px-4 py-3 text-right",children:"ROI"})]})}),n.jsx("tbody",{children:E.forecast.map(L=>n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsxs("td",{className:"px-4 py-3 font-medium",children:["Месяц ",L.month]}),n.jsxs("td",{className:"px-4 py-3 text-right font-semibold text-green-600",children:["$",L.revenue.toFixed(0)]}),n.jsxs("td",{className:"px-4 py-3 text-right font-semibold text-red-600",children:["$",L.costs.toFixed(0)]}),n.jsxs("td",{className:`px-4 py-3 text-right font-bold ${L.profit>=0?"text-green-600":"text-red-600"}`,children:["$",L.profit.toFixed(0)]}),n.jsxs("td",{className:`px-4 py-3 text-right font-bold text-lg ${L.roi>=0?"text-green-600":"text-red-600"}`,children:[L.roi.toFixed(1),"%"]})]},L.month))})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-lg p-6",children:[n.jsx("h2",{className:"text-2xl font-bold text-gray-800 mb-4",children:"Итоги"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[n.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-blue-100 p-4 rounded-lg",children:[n.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Общие затраты"}),n.jsxs("div",{className:"text-2xl font-bold text-blue-600",children:["$",D.totalCost.toFixed(0)]})]}),n.jsxs("div",{className:"bg-gradient-to-br from-green-50 to-green-100 p-4 rounded-lg",children:[n.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Общий доход"}),n.jsxs("div",{className:"text-2xl font-bold text-green-600",children:["$",(E.monthlyRevenue*y).toFixed(0)]})]}),n.jsxs("div",{className:"bg-gradient-to-br from-purple-50 to-purple-100 p-4 rounded-lg",children:[n.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Чистая прибыль"}),n.jsxs("div",{className:"text-2xl font-bold text-purple-600",children:["$",(($=E.forecast[E.forecast.length-1])==null?void 0:$.profit.toFixed(0))||0]})]}),n.jsxs("div",{className:"bg-gradient-to-br from-orange-50 to-orange-100 p-4 rounded-lg",children:[n.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Итоговый ROI"}),n.jsxs("div",{className:"text-2xl font-bold text-orange-600",children:[((H=E.forecast[E.forecast.length-1])==null?void 0:H.roi.toFixed(1))||0,"%"]})]})]})]})]}),n.jsx("div",{className:"mt-6",children:n.jsx(F0,{agentId:"geo_analysis",agentName:"GEO Analysis Agent",defaultPosition:"bottom",onSuggestion:L=>{console.log("AI suggestion:",L)}})})]})},PF=()=>{const[e,t]=x.useState([""]),[r,s]=x.useState(["us"]),[a,i]=x.useState(!1),[l,o]=x.useState([]),c=()=>{t([...e,""])},d=(h,p)=>{const v=[...e];v[h]=p,t(v)},u=h=>{e.length>1&&t(e.filter((p,v)=>v!==h))},m=async()=>{i(!0),setTimeout(()=>{o([{domain:"example.com",title:"Example - Best Jewelry Store",description:"Shop the finest jewelry collection online",wordCount:2500,keywordDensity:2.5,domainAge:5,backlinks:1250,registrationDate:"2019-01-15",content:"Sample content...",structure:{h1:["Best Jewelry Store"],h2:["Our Collection","Why Choose Us"],h3:["Rings","Necklaces","Earrings"]}}]),i(!1)},3e3)},f=()=>{console.log("Exporting results:",l)};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Анализ конкурентов"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Анализ топ-конкурентов в выдаче по выбранным ключевым словам и гео"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Ключевые слова"}),n.jsxs("div",{className:"space-y-3",children:[e.map((h,p)=>n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("input",{type:"text",value:h,onChange:v=>d(p,v.target.value),placeholder:"Введите ключевое слово",className:"input flex-1"}),e.length>1&&n.jsx("button",{onClick:()=>u(p),className:"px-3 py-2 text-red-600 hover:text-red-800",children:"×"})]},p)),n.jsx("button",{onClick:c,className:"btn btn-secondary w-full",children:"+ Добавить ключевое слово"})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Гео (страны)"}),n.jsx(Sc,{selectedCountries:r,onCountriesChange:s})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Дополнительные настройки"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Количество конкурентов для анализа"}),n.jsxs("select",{className:"input",children:[n.jsx("option",{value:"5",children:"Топ 5"}),n.jsx("option",{value:"10",children:"Топ 10"}),n.jsx("option",{value:"20",children:"Топ 20"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Глубина анализа контента"}),n.jsxs("select",{className:"input",children:[n.jsx("option",{value:"basic",children:"Базовая (заголовки, описание)"}),n.jsx("option",{value:"full",children:"Полная (весь контент)"})]})]})]})]})]}),n.jsxs("div",{className:"space-y-6",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900",children:"Результаты анализа"}),n.jsx("p",{className:"text-sm text-gray-500",children:l.length>0?`${l.length} конкурентов проанализировано`:"Запустите анализ для получения данных"})]}),n.jsxs("div",{className:"flex space-x-2",children:[l.length>0&&n.jsxs("button",{onClick:f,className:"btn btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]}),n.jsxs("button",{onClick:m,disabled:a||e.filter(h=>h.trim()).length===0||r.length===0,className:"btn btn-primary",children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),a?"Анализ...":"Запустить анализ"]})]})]})}),l.length>0&&n.jsx("div",{className:"space-y-4",children:l.map((h,p)=>n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex justify-between items-start mb-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:h.domain}),n.jsx("p",{className:"text-sm text-gray-500",children:h.title})]}),n.jsx("div",{className:"flex space-x-2",children:n.jsxs("span",{className:"px-2 py-1 text-xs bg-blue-100 text-blue-800 rounded-full",children:["#",p+1]})})]}),n.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-4",children:[n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-1",children:[n.jsx(da,{className:"h-4 w-4 text-gray-400 mr-1"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Слов"})]}),n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:h.wordCount})]}),n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-1",children:[n.jsx(Xe,{className:"h-4 w-4 text-gray-400 mr-1"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Плотность"})]}),n.jsxs("p",{className:"text-lg font-semibold text-gray-900",children:[h.keywordDensity,"%"]})]}),n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-1",children:[n.jsx(ii,{className:"h-4 w-4 text-gray-400 mr-1"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Ссылки"})]}),n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:h.backlinks})]}),n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-1",children:[n.jsx(Ut,{className:"h-4 w-4 text-gray-400 mr-1"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Возраст"})]}),n.jsxs("p",{className:"text-lg font-semibold text-gray-900",children:[h.domainAge," лет"]})]})]}),n.jsxs("div",{className:"mb-4",children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Описание"}),n.jsx("p",{className:"text-sm text-gray-600",children:h.description})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Структура заголовков"}),n.jsxs("div",{className:"space-y-2",children:[h.structure.h1.length>0&&n.jsxs("div",{children:[n.jsx("span",{className:"text-xs font-medium text-gray-500",children:"H1:"}),n.jsx("span",{className:"text-xs text-gray-600 ml-2",children:h.structure.h1.join(", ")})]}),h.structure.h2.length>0&&n.jsxs("div",{children:[n.jsx("span",{className:"text-xs font-medium text-gray-500",children:"H2:"}),n.jsx("span",{className:"text-xs text-gray-600 ml-2",children:h.structure.h2.join(", ")})]}),h.structure.h3.length>0&&n.jsxs("div",{children:[n.jsx("span",{className:"text-xs font-medium text-gray-500",children:"H3:"}),n.jsx("span",{className:"text-xs text-gray-600 ml-2",children:h.structure.h3.join(", ")})]})]})]})]},p))}),l.length>0&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(da,{className:"h-8 w-8 text-primary-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Среднее количество слов"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:Math.round(l.reduce((h,p)=>h+p.wordCount,0)/l.length)})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(ii,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Среднее количество ссылок"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:Math.round(l.reduce((h,p)=>h+p.backlinks,0)/l.length)})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Ut,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Средний возраст домена"}),n.jsxs("p",{className:"text-2xl font-semibold text-gray-900",children:[Math.round(l.reduce((h,p)=>h+p.domainAge,0)/l.length)," лет"]})]})]})})]})]})]})]})},AF=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(""),[a,i]=x.useState([]),[l,o]=x.useState("all"),[c,d]=x.useState([]),[u,m]=x.useState(null),[f,h]=x.useState(null),[p,v]=x.useState(!1),[y,g]=x.useState(!1),[b,j]=x.useState(!1),[w,C]=x.useState(!0),[N,A]=x.useState("graph"),[_,I]=x.useState([]),[B,z,T]=ly([]),[D,E,S]=oy([]);x.useEffect(()=>{k()},[]),x.useEffect(()=>{r?P():(i([]),o("all"))},[r]),x.useEffect(()=>{r?O():d([])},[r,l,b,w]);const k=async()=>{try{if((await ye.get("/api/competitors/domains",{params:{limit:1}})).data.success){const R=await ye.get("/api/competitors/countries");R.data.success&&t(R.data.countries)}}catch(M){console.error("Failed to load countries:",M);try{const R=await ye.get("/api/competitors/countries");R.data.success&&t(R.data.countries)}catch(R){console.error("Failed to load countries fallback:",R)}}},P=async()=>{try{v(!0);const M=await ye.get("/api/competitors/brands",{params:{country:r}});M.data.success&&i(M.data.brands)}catch(M){console.error("Failed to load brands:",M)}finally{v(!1)}},O=async()=>{try{v(!0);const M={country:r,limit:200};l!=="all"&&(M.keyword=l);const R=await ye.get("/api/competitors/domains",{params:M});if(R.data.success){let U=R.data.domains;b&&(U=U.filter(K=>K.hasCloaking)),w||(U=U.filter(K=>!K.isOurSite)),d(U)}}catch(M){console.error("Failed to load domains:",M)}finally{v(!1)}},$=async M=>{try{g(!0);const R={country:r};l!=="all"&&(R.keyword=l);const U=await ye.get(`/api/competitors/domain/${encodeURIComponent(M)}`,{params:R});if(U.data.success&&U.data.urls.length>0){const K=U.data.urls[0].url,F=await ye.post("/api/cloaking/network",{url:K,maxDepth:3});F.data&&(h(F.data),H(F.data))}}catch(R){console.error("Failed to analyze network:",R)}finally{g(!1)}},H=M=>{if(!M||!M.network)return;const R=[],U=[],K=new Map;M.network.nodes.forEach((F,Y)=>{const V=F.group==="cloaking",q=Y/M.network.nodes.length*2*Math.PI,J=300,G=Math.cos(q)*J+400,le=Math.sin(q)*J+300;K.set(F.id,{x:G,y:le}),R.push({id:F.id,type:"default",position:{x:G,y:le},data:{label:n.jsxs("div",{className:"text-center p-2",children:[n.jsx("div",{className:"font-bold text-sm mb-1 break-words max-w-[200px]",children:F.label}),n.jsx("div",{className:"text-xs text-gray-600 break-all max-w-[200px]",children:F.url}),V&&n.jsx("div",{className:"text-xs text-red-600 font-bold mt-1",children:"⚠️ Клоакинг"})]})},style:{background:V?"#ff6b6b":"#51cf66",color:"white",border:`2px solid ${V?"#ff4757":"#40c057"}`,borderRadius:"12px",padding:"10px",fontSize:"12px",fontWeight:"bold",width:250,minHeight:80}})}),M.network.edges.forEach((F,Y)=>{const V=F.type==="canonical";U.push({id:`edge-${Y}`,source:F.from,target:F.to,type:"smoothstep",animated:!0,label:n.jsx("div",{className:"bg-white px-2 py-1 rounded shadow text-xs font-bold",children:V?"🔗 Canonical":`🌐 ${F.label}`}),style:{stroke:V?"#339af0":"#ffd43b",strokeWidth:V?3:2,strokeDasharray:V?"0":"5,5"},markerEnd:{type:gl.ArrowClosed,color:V?"#339af0":"#ffd43b"}})}),z(R),E(U)},L=M=>{m(M),h(null),z([]),E([]),A("graph"),I([]),$(M)},W=async()=>{if(f)try{g(!0);const M=new Set;f.sites.forEach(K=>{K.canonical&&K.canonical!==K.url&&M.add(K.canonical),K.hreflangDetails&&K.hreflangDetails.forEach(F=>{F.url!==K.url&&M.add(F.url)})});const R=Array.from(M).map(async K=>{var F;try{const Y=await ye.post("/api/cloaking/check",{url:K});return{url:K,cloakingDetected:Y.data.cloakingDetected,cloakingType:Y.data.cloakingType,canonical:((F=Y.data.googlebotFull)==null?void 0:F.canonical)||null,hreflang:Y.data.googlebotFull?[...Y.data.googlebotFull.htmlHreflang||[],...Y.data.googlebotFull.httpHreflang||[]]:[]}}catch{return{url:K,error:!0}}}),U=await Promise.all(R);I(U.filter(K=>!K.error))}catch(M){console.error("Failed to analyze related sites:",M)}finally{g(!1)}};return n.jsxs("div",{className:"container mx-auto px-4 py-8",children:[n.jsxs("div",{className:"mb-6",children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:"🌐 Визуализация сетей конкурентов"}),n.jsx("p",{className:"text-gray-600",children:"Выберите ГЕО и бренд, затем конкурента для анализа сети"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-4",children:[n.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:"🌍 ГЕО"}),n.jsxs("div",{className:"mb-4",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Страна"}),n.jsxs("select",{value:r,onChange:M=>{s(M.target.value),m(null),h(null)},className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",children:[n.jsx("option",{value:"",children:"Выберите страну"}),e.map(M=>n.jsx("option",{value:M,children:M},M))]})]}),r&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"mb-4",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Бренд (ключевое слово)"}),n.jsxs("select",{value:l,onChange:M=>{o(M.target.value),m(null),h(null)},className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",children:[n.jsx("option",{value:"all",children:"Все бренды"}),a.map(M=>n.jsx("option",{value:M,children:M},M))]})]}),n.jsxs("div",{className:"space-y-2 mb-4",children:[n.jsxs("label",{className:"flex items-center space-x-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:b,onChange:M=>{j(M.target.checked),m(null),h(null)},className:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Только с клоакингом"})]}),n.jsxs("label",{className:"flex items-center space-x-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:w,onChange:M=>{C(M.target.checked),m(null),h(null)},className:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Показывать наши сайты"})]})]})]}),!r&&n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Выберите страну для начала"})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-4",children:[n.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:"🏢 Конкуренты"}),r?p?n.jsx("div",{className:"text-center py-8",children:n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"})}):n.jsxs("div",{className:"space-y-2 max-h-[700px] overflow-y-auto",children:[c.map(M=>n.jsx("div",{onClick:()=>L(M.domain),className:`p-3 rounded-lg cursor-pointer transition-all ${u===M.domain?"bg-blue-100 border-2 border-blue-500":"bg-gray-50 hover:bg-gray-100 border-2 border-transparent"}`,children:n.jsx("div",{className:"flex items-start justify-between",children:n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"font-bold text-sm text-gray-900 flex items-center gap-2",children:[n.jsx("span",{children:M.domain}),M.isOurSite&&n.jsx("span",{children:"🏠"}),M.hasCloaking&&n.jsx("span",{children:"⚠️"}),M.hasCanonical&&n.jsx("span",{className:`text-xs font-bold px-1.5 py-0.5 rounded ${M.canonicalToOtherDomain?"bg-red-100 text-red-700":"bg-green-100 text-green-700"}`,children:"C"}),M.hasHreflang&&n.jsx("span",{className:"text-xs font-bold px-1.5 py-0.5 rounded bg-blue-100 text-blue-700",children:"H"})]}),n.jsxs("div",{className:"text-xs text-gray-600 mt-1",children:["Появлений: ",M.appearances," | Лучшая позиция: ",M.bestPosition]}),M.cloakingTypes.length>0&&n.jsxs("div",{className:"text-xs text-red-600 mt-1",children:["Клоакинг: ",M.cloakingTypes.join(", ")]})]})})},M.domain)),c.length===0&&n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Нет доменов для отображения"})]}):n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Выберите страну в первой колонке"})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-4",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsx("h2",{className:"text-xl font-bold text-gray-900",children:"🕸️ Сеть сайтов"}),f&&n.jsxs("div",{className:"flex gap-2",children:[n.jsx("button",{onClick:()=>A("graph"),className:`px-3 py-1 text-sm rounded ${N==="graph"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"Граф"}),n.jsx("button",{onClick:()=>{A("text"),W()},className:`px-3 py-1 text-sm rounded ${N==="text"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"Текст"})]})]}),y?n.jsxs("div",{className:"text-center py-8",children:[n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-2"}),n.jsx("p",{className:"text-gray-600 text-sm",children:"Анализируем сеть..."})]}):f?n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"bg-gray-50 p-3 rounded-lg",children:n.jsxs("div",{className:"text-sm",children:[n.jsx("div",{className:"font-bold mb-1",children:"Статистика:"}),n.jsxs("div",{className:"text-xs",children:["Всего сайтов: ",f.totalSitesFound]}),n.jsxs("div",{className:"text-xs text-red-600",children:["С клоакингом: ",f.sites.filter(M=>M.cloakingDetected).length]}),n.jsxs("div",{className:"text-xs text-green-600",children:["Без клоакинга: ",f.sites.filter(M=>!M.cloakingDetected).length]}),n.jsxs("div",{className:"text-xs text-gray-600 mt-1 break-all",children:["Корневой URL: ",f.rootUrl]})]})}),N==="graph"?n.jsx("div",{className:"h-[500px] border border-gray-300 rounded-lg overflow-hidden",children:n.jsxs(xf,{nodes:B,edges:D,onNodesChange:T,onEdgesChange:S,fitView:!0,attributionPosition:"bottom-left",children:[n.jsx(dy,{}),n.jsx(cy,{nodeColor:M=>{const R=f.network.nodes.find(U=>U.id===M.id);return(R==null?void 0:R.group)==="cloaking"?"#ff6b6b":"#51cf66"},nodeStrokeWidth:3}),n.jsx(uy,{color:"#f8f9fa",gap:20}),n.jsx(di,{position:"top-left",className:"bg-white p-2 rounded shadow text-xs",children:n.jsxs("div",{className:"space-y-1",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-3 h-3 bg-red-500 rounded"}),n.jsx("span",{children:"Клоакинг"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-3 h-3 bg-green-500 rounded"}),n.jsx("span",{children:"Чистый"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-8 h-0.5 bg-blue-500"}),n.jsx("span",{children:"Canonical"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-8 h-0.5 bg-yellow-500 border-dashed border-t"}),n.jsx("span",{children:"Hreflang"})]})]})})]})}):n.jsxs("div",{className:"space-y-4 max-h-[500px] overflow-y-auto",children:[f.sites.map((M,R)=>n.jsxs("div",{className:"border border-gray-200 rounded-lg p-3",children:[n.jsxs("div",{className:"font-bold text-sm mb-2",children:[n.jsx("a",{href:M.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:M.url}),M.cloakingDetected&&n.jsxs("span",{className:"ml-2 text-xs text-red-600 font-bold",children:["⚠️ Клоакинг: ",M.cloakingType]})]}),M.canonical&&n.jsxs("div",{className:"text-xs mb-2",children:[n.jsx("span",{className:"font-bold text-blue-600",children:"Canonical:"})," ",n.jsx("a",{href:M.canonical,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:M.canonical}),M.canonical!==M.url&&n.jsx("span",{className:"ml-2 text-red-600",children:"(на другой URL)"})]}),M.hreflangDetails&&M.hreflangDetails.length>0&&n.jsxs("div",{className:"text-xs mb-2",children:[n.jsxs("span",{className:"font-bold text-yellow-600",children:["Hreflang (",M.hreflangCount,"):"]}),n.jsx("div",{className:"ml-2 mt-1 space-y-1",children:M.hreflangDetails.map((U,K)=>n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs("span",{className:"text-gray-600",children:[U.lang,":"]}),n.jsx("a",{href:U.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:U.url}),U.url!==M.url&&n.jsx("span",{className:"text-gray-500",children:"(отличается от текущего URL)"})]},K))})]})]},R)),_.length>0&&n.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-300",children:[n.jsx("h3",{className:"font-bold text-sm mb-2",children:"🔗 Связанные сайты (проверены):"}),_.map((M,R)=>n.jsxs("div",{className:"border border-gray-200 rounded-lg p-3 mb-2",children:[n.jsxs("div",{className:"font-bold text-sm mb-2",children:[n.jsx("a",{href:M.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:M.url}),M.cloakingDetected&&n.jsxs("span",{className:"ml-2 text-xs text-red-600 font-bold",children:["⚠️ Клоакинг: ",M.cloakingType]})]}),M.canonical&&n.jsxs("div",{className:"text-xs mb-2",children:[n.jsx("span",{className:"font-bold text-blue-600",children:"Canonical:"})," ",M.canonical]}),M.hreflang&&M.hreflang.length>0&&n.jsxs("div",{className:"text-xs",children:[n.jsx("span",{className:"font-bold text-yellow-600",children:"Hreflang:"}),n.jsx("div",{className:"ml-2 mt-1",children:M.hreflang.map((U,K)=>n.jsxs("div",{children:[U.lang,": ",U.url]},K))})]})]},R))]})]})]}):u?n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Анализируем сеть..."}):n.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Выберите конкурента из списка"})]})]})]})},Hw={cloaking:{style:{background:"#ff6b6b",color:"white",border:"2px solid #ff4757",borderRadius:"8px",padding:"10px",fontSize:"12px",fontWeight:"bold"}},clean:{style:{background:"#51cf66",color:"white",border:"2px solid #40c057",borderRadius:"8px",padding:"10px",fontSize:"12px",fontWeight:"bold"}}},Vw={canonical:{style:{stroke:"#339af0",strokeWidth:3},markerEnd:{type:"arrowclosed",color:"#339af0"}},hreflang:{style:{stroke:"#ffd43b",strokeWidth:2,strokeDasharray:"5,5"},markerEnd:{type:"arrowclosed",color:"#ffd43b"}}},oE=({data:e,loading:t})=>{const[r,s,a]=ly([]),[i,l,o]=oy([]);te.useEffect(()=>{console.log("🎨 NetworkGraph получил data:",e)},[e]);const c=x.useMemo(()=>e?e.nodes.map((m,f)=>{var p;const h=((p=Hw[m.group])==null?void 0:p.style)||Hw.clean.style;return{id:m.id,position:{x:f%3*400+50,y:Math.floor(f/3)*250+50},data:{label:n.jsxs("div",{className:"text-center p-2",children:[n.jsx("div",{className:"font-bold text-sm mb-1",children:m.label}),n.jsx("div",{className:"text-xs text-gray-600 break-all",children:m.url})]})},style:{...h,width:250,height:80,borderRadius:"12px"}}}):[],[e]),d=x.useMemo(()=>e?e.edges.map((m,f)=>{const h=Vw[m.type]||Vw.hreflang;return{id:`${m.from}-${m.to}-${f}`,source:m.from,target:m.to,label:n.jsx("div",{className:"bg-white px-2 py-1 rounded shadow text-xs font-bold",children:m.type==="canonical"?"🔗 Canonical":`🌐 ${m.label}`}),style:h.style,markerEnd:h.markerEnd,labelStyle:{fontSize:"12px",fontWeight:"bold"},labelBgStyle:{fill:"white",fillOpacity:.9}}}):[],[e]);te.useEffect(()=>{s(c),l(d)},[c,d,s,l]);const u=x.useCallback(m=>l(f=>j4(m,f)),[l]);return t?n.jsx("div",{className:"flex items-center justify-center h-96 bg-gray-50 rounded-lg",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-600",children:"Анализируем сетку конкурента..."})]})}):!e||e.nodes.length===0?n.jsx("div",{className:"flex items-center justify-center h-96 bg-gray-50 rounded-lg",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-6xl mb-4",children:"🌐"}),n.jsx("p",{className:"text-gray-600",children:"Нет данных для отображения"})]})}):n.jsx("div",{className:"w-full h-96 border border-gray-300 rounded-lg overflow-hidden",children:n.jsxs(xf,{nodes:r,edges:i,onNodesChange:a,onEdgesChange:o,onConnect:u,fitView:!0,attributionPosition:"bottom-left",children:[n.jsx(dy,{}),n.jsx(cy,{nodeColor:m=>{var f;return((f=m.data)==null?void 0:f.group)==="cloaking"?"#ff6b6b":"#51cf66"},nodeStrokeWidth:3,zoomable:!0,pannable:!0}),n.jsx(uy,{color:"#f8f9fa",gap:20}),n.jsx(di,{position:"top-left",className:"bg-white p-3 rounded-lg shadow-lg",children:n.jsxs("div",{className:"space-y-2",children:[n.jsx("h3",{className:"font-bold text-sm text-gray-800",children:"Легенда:"}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-4 h-4 bg-red-500 rounded"}),n.jsx("span",{className:"text-xs",children:"Клоакинг"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-4 h-4 bg-green-500 rounded"}),n.jsx("span",{className:"text-xs",children:"Чистый"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-4 h-0.5 bg-blue-500"}),n.jsx("span",{className:"text-xs",children:"Canonical"})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("div",{className:"w-4 h-0.5 bg-yellow-500 border-dashed border-t-2"}),n.jsx("span",{className:"text-xs",children:"Hreflang"})]})]})}),n.jsx(di,{position:"top-right",className:"bg-white p-3 rounded-lg shadow-lg",children:n.jsxs("div",{className:"text-sm",children:[n.jsx("div",{className:"font-bold text-gray-800",children:"Статистика:"}),n.jsxs("div",{className:"text-xs text-gray-600",children:["Узлов: ",e.nodes.length]}),n.jsxs("div",{className:"text-xs text-gray-600",children:["Связей: ",e.edges.length]}),n.jsxs("div",{className:"text-xs text-red-600",children:["Клоакинг: ",e.nodes.filter(m=>m.group==="cloaking").length]}),n.jsxs("div",{className:"text-xs text-green-600",children:["Чистых: ",e.nodes.filter(m=>m.group==="clean").length]})]})})]})})},TF=()=>{var K;const{url:e}=Tl(),[t]=Xk(),r=t.get("keyword")||"",s=t.get("country")||"",a=Sr(),[i,l]=x.useState(!0),[o,c]=x.useState(null),[d,u]=x.useState(null),[m,f]=x.useState(null),[h,p]=x.useState(!1),[v,y]=x.useState(!1),[g,b]=x.useState(null),[j,w]=x.useState(!1),[C,N]=x.useState(!1),[A,_]=x.useState(!1),I=async(F,Y)=>{try{await navigator.clipboard.writeText(F),f(Y),setTimeout(()=>f(null),2e3)}catch(V){console.error("Failed to copy:",V)}},B=F=>{if(!F)return null;try{const Y=new DOMParser,V=`
${F}
`,J=Y.parseFromString(V,"text/html").querySelector("div");if(!J)return null;const G=[];let le=0;const ce=[],oe=se=>{if(se.nodeType===Node.ELEMENT_NODE){const ie=se,de=ie.tagName.toLowerCase();["h1","h2","h3","h4","h5","h6","p","ul","ol","li","strong","b","em","i","br"].includes(de)&&ce.push(ie),ie.childNodes.forEach(Le=>oe(Le))}};return oe(J),ce.forEach(se=>{var de,Le,Z,ne,je,Ge;const ie=se.tagName.toLowerCase();if(["h1","h2","h3","h4","h5","h6"].includes(ie)){const xe=((de=se.textContent)==null?void 0:de.trim())||"";if(xe){const he=ie==="h1"?"text-3xl":ie==="h2"?"text-2xl":ie==="h3"?"text-xl":ie==="h4"?"text-lg":ie==="h5"?"text-base":"text-sm",we=ie==="h1"?"text-red-600":ie==="h2"?"text-orange-600":ie==="h3"?"text-yellow-600":ie==="h4"?"text-green-600":ie==="h5"?"text-blue-600":"text-purple-600";G.push(n.jsxs("div",{className:`${he} font-bold text-gray-900 mt-6 mb-3`,style:{fontWeight:700,fontSize:ie==="h1"?"1.875rem":ie==="h2"?"1.5rem":ie==="h3"?"1.25rem":ie==="h4"?"1.125rem":ie==="h5"?"1rem":"0.875rem"},children:[n.jsxs("span",{className:`text-xs font-mono ${we} mr-2`,children:["<",ie,">"]}),xe,n.jsxs("span",{className:`text-xs font-mono ${we} ml-2`,children:[""]})]},`${ie}-${le++}`))}}if(ie==="p"){const xe=((Le=se.textContent)==null?void 0:Le.trim())||"";xe&&xe.length>10&&G.push(n.jsx("p",{className:"text-gray-700 mb-3 leading-relaxed text-base",children:xe},`p-${le++}`))}if(ie==="ul"||ie==="ol"){const xe=[];if(se.querySelectorAll("li").forEach(he=>{var Fe;const we=((Fe=he.textContent)==null?void 0:Fe.trim())||"";we&&xe.push(we)}),xe.length>0){const he=ie==="ul"?"ul":"ol";G.push(n.jsx(he,{className:"list-disc list-inside mb-3 text-gray-700 space-y-1",children:xe.map((we,Fe)=>n.jsx("li",{className:"mb-1",children:we},Fe))},`${ie}-${le++}`))}}if(["strong","b"].includes(ie)){const xe=((Z=se.textContent)==null?void 0:Z.trim())||"";xe&&((ne=se.parentElement)==null?void 0:ne.tagName.toLowerCase())!=="p"&&G.push(n.jsx("strong",{className:"font-bold text-gray-900",style:{fontWeight:700},children:xe},`strong-${le++}`))}if(["em","i"].includes(ie)){const xe=((je=se.textContent)==null?void 0:je.trim())||"";xe&&((Ge=se.parentElement)==null?void 0:Ge.tagName.toLowerCase())!=="p"&&G.push(n.jsx("em",{className:"italic text-gray-800",style:{fontStyle:"italic"},children:xe},`em-${le++}`))}ie==="br"&&G.push(n.jsx("br",{},`br-${le++}`))}),G.length>0?G:null}catch(Y){return console.error("Error formatting text with headings:",Y),null}},z=F=>{if(!F||!F.nodes)return"";let Y=`=== Анализ сетей === `;const V={};return F.nodes.forEach(q=>{const J=q.group||"unknown";V[J]||(V[J]=[]),V[J].push(q)}),Object.entries(V).forEach(([q,J])=>{const G={clean:"✅ Чистые домены",suspicious:"⚠️ Подозрительные",malicious:"❌ Вредоносные",unknown:"❓ Неизвестные"}[q]||q;Y+=`${G} (${J.length}): `,J.forEach(le=>{Y+=` • ${le.label} (${le.url}) `}),Y+=` `}),F.edges&&F.edges.length>0&&(Y+=`=== Связи === `,F.edges.forEach(q=>{const J=F.nodes.find(le=>le.id===q.source),G=F.nodes.find(le=>le.id===q.target);J&&G&&(Y+=`${J.label} → ${G.label} `)})),Y};x.useEffect(()=>{(async()=>{if(!e){c("URL not provided"),l(!1);return}try{l(!0);const Y=decodeURIComponent(e),V=new URLSearchParams;r&&V.append("keyword",r),s&&V.append("country",s);const J=await(await fetch(`/api/competitors/url/${encodeURIComponent(Y)}?${V.toString()}`)).json();if(!J.success)throw new Error(J.error||"Failed to fetch competitor data");u(J.data)}catch(Y){c(Y.message||"Failed to load competitor data")}finally{l(!1)}})()},[e,r,s]);const T=async()=>{if(!(d!=null&&d.url)){c("URL not available");return}w(!0),b(null),c(null);try{const Y=await(await fetch("/api/cloaking/network",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:d.url,maxDepth:3})})).json();if(!Y||Y.error)throw new Error((Y==null?void 0:Y.error)||"Network analysis failed");const V=Y.network?{nodes:Y.network.nodes||[],edges:Y.network.edges||[]}:Y;b(V)}catch(F){c(F.message||"Network analysis failed")}finally{w(!1)}};if(i)return n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsx("div",{className:"max-w-7xl mx-auto",children:n.jsxs("div",{className:"card text-center py-12",children:[n.jsx("div",{className:"animate-spin h-8 w-8 border-4 border-blue-600 border-t-transparent rounded-full mx-auto mb-4"}),n.jsx("p",{className:"text-gray-600",children:"Загрузка данных конкурента..."})]})})});if(o||!d)return n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsx("div",{className:"max-w-7xl mx-auto",children:n.jsxs("div",{className:"card text-center py-12",children:[n.jsx(Sp,{className:"h-12 w-12 text-red-500 mx-auto mb-4"}),n.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-600 mb-4",children:o||"Данные не найдены"}),n.jsxs("button",{onClick:()=>a(-1),className:"btn-secondary",children:[n.jsx(ca,{className:"h-4 w-4 mr-2"}),"Назад"]})]})})});let D="none";d.hasCanonical&&d.canonicalUrl&&(D=d.canonicalSelf?"self":"other");let E=[];if((K=d.rawCloakingData)!=null&&K.googlebotFull){const F=d.rawCloakingData.googlebotFull;F.htmlHreflang&&Array.isArray(F.htmlHreflang)?E=F.htmlHreflang:F.httpHreflang&&Array.isArray(F.httpHreflang)&&(E=F.httpHreflang)}E.length===0&&d.hreflangLangs&&d.hreflangLangs.length>0&&(E=d.hreflangLangs.map(F=>({lang:F,url:d.url})));const S=(d==null?void 0:d.h1Count)||0,k=(d==null?void 0:d.h2Count)||0,P=(d==null?void 0:d.h3Count)||0,O=(d==null?void 0:d.h4Count)||0,$=(d==null?void 0:d.h5Count)||0,H=(d==null?void 0:d.h6Count)||0,L=(d==null?void 0:d.wordCount)||0,W=(d==null?void 0:d.keywordOccurrences)||0,M=(d==null?void 0:d.keywordDensity)||0,U=(F=>{if(!F)return[];try{const q=new DOMParser().parseFromString(`
${F}
`,"text/html").querySelector("div");if(!q)return[];const J=[];return q.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(G=>{var ce;const le=((ce=G.textContent)==null?void 0:ce.trim())||"";le&&J.push({tag:G.tagName.toLowerCase(),text:le})}),J}catch(Y){return console.error("Error extracting headings:",Y),[]}})((d==null?void 0:d.extractedHtml)||"");return n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsxs("div",{className:"max-w-7xl mx-auto space-y-6",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("button",{onClick:()=>a(-1),className:"btn-secondary",children:[n.jsx(ca,{className:"h-4 w-4 mr-2"}),"Назад"]}),n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsx("div",{className:"text-sm text-gray-600",children:r&&s&&n.jsxs("span",{children:["Keyword: ",n.jsx("span",{className:"font-semibold",children:r})," | Country: ",n.jsx("span",{className:"font-semibold",children:s})]})}),n.jsxs("button",{onClick:async()=>{if(!(!e||!r||!s)){_(!0);try{const Y=await(await fetch("/api/competitors/analyze",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:r,country:s.toUpperCase(),topN:10,checkCloaking:!0,analyzeContent:!0})})).json();if(Y.success){const V=decodeURIComponent(e),q=new URLSearchParams;q.append("keyword",r),q.append("country",s);const G=await(await fetch(`/api/competitors/url/${encodeURIComponent(V)}?${q.toString()}`)).json();G.success&&u(G.data)}else alert("Ошибка обновления: "+(Y.error||"Неизвестная ошибка"))}catch(F){alert("Ошибка обновления: "+F.message)}finally{_(!1)}}},className:"btn-secondary text-sm flex items-center gap-1",disabled:A,children:[n.jsx(Te,{className:`h-4 w-4 ${A?"animate-spin":""}`}),A?"Обновление...":"Обновить данные"]})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("div",{className:"flex items-start justify-between mb-4",children:n.jsxs("div",{className:"flex-1",children:[n.jsxs("h1",{className:"text-2xl font-bold text-gray-900 mb-2",children:[d.domain,d.isOurSite&&n.jsx("span",{className:"ml-2 px-2 py-1 bg-green-600 text-white text-xs font-bold rounded",children:"НАШ САЙТ ⭐"})]}),n.jsxs("a",{href:d.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 flex items-center gap-1",children:[d.url,n.jsx(Jm,{className:"h-4 w-4"})]}),n.jsxs("div",{className:"mt-2 text-sm text-gray-600",children:["Позиция: ",n.jsxs("span",{className:"font-semibold",children:["#",d.position]})," | Дата проверки: ",n.jsx("span",{className:"font-semibold",children:new Date(d.checkDate).toLocaleDateString("ru-RU")})]})]})}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-6",children:[n.jsxs("div",{className:"border rounded-lg p-4",children:[n.jsxs("div",{className:"flex items-center justify-between mb-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Title"}),d.title&&n.jsx("button",{onClick:()=>I(d.title,"title"),className:"p-1 hover:bg-gray-200 rounded",title:"Копировать Title",children:m==="title"?n.jsx(Nt,{className:"h-4 w-4 text-green-600"}):n.jsx(Cr,{className:"h-4 w-4 text-gray-500"})})]}),n.jsx("p",{className:"text-sm text-gray-900",children:d.title||"-"})]}),n.jsxs("div",{className:"border rounded-lg p-4",children:[n.jsxs("div",{className:"flex items-center justify-between mb-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"Description"}),d.description&&n.jsx("button",{onClick:()=>I(d.description,"description"),className:"p-1 hover:bg-gray-200 rounded",title:"Копировать Description",children:m==="description"?n.jsx(Nt,{className:"h-4 w-4 text-green-600"}):n.jsx(Cr,{className:"h-4 w-4 text-gray-500"})})]}),n.jsx("p",{className:"text-sm text-gray-900",children:d.description||"-"})]}),n.jsxs("div",{className:"border rounded-lg p-4",children:[n.jsxs("div",{className:"flex items-center justify-between mb-2",children:[n.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"H1"}),d.h1&&n.jsx("button",{onClick:()=>I(d.h1,"h1"),className:"p-1 hover:bg-gray-200 rounded",title:"Копировать H1",children:m==="h1"?n.jsx(Nt,{className:"h-4 w-4 text-green-600"}):n.jsx(Cr,{className:"h-4 w-4 text-gray-500"})})]}),n.jsx("p",{className:"text-sm text-gray-900",children:d.h1||"-"})]})]}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Параметр"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Значение"})]})}),n.jsxs("tbody",{className:"bg-white divide-y divide-gray-200",children:[n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"H1-H6"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs("span",{children:["H1: ",S," | H2: ",k," | H3: ",P," | H4: ",O," | H5: ",$," | H6: ",H]}),U.length>0&&n.jsxs("details",{className:"inline-block relative",children:[n.jsxs("summary",{className:"cursor-pointer text-blue-600 hover:text-blue-800 font-medium ml-2",children:["Показать все заголовки (",U.length,")"]}),n.jsxs("div",{className:"absolute z-20 mt-2 left-0 bg-white border border-gray-300 rounded-lg shadow-lg p-3 max-w-2xl max-h-96 overflow-y-auto",children:[n.jsxs("div",{className:"flex items-center justify-between mb-2",children:[n.jsx("span",{className:"text-xs font-semibold text-gray-700",children:"Все заголовки:"}),n.jsxs("button",{onClick:F=>{F.stopPropagation();const Y=U.map(V=>`<${V.tag}>${V.text}`).join(` `);I(Y,"headings")},className:"text-xs text-blue-600 hover:text-blue-800 flex items-center gap-1",children:[n.jsx(Cr,{className:"h-3 w-3"}),"Копировать все"]})]}),n.jsx("div",{className:"space-y-2 text-sm",children:U.map((F,Y)=>n.jsxs("div",{className:"flex items-start gap-2 p-2 hover:bg-gray-50 rounded",children:[n.jsx("span",{className:"text-xs font-mono text-gray-500 min-w-[30px]",children:F.tag.toUpperCase()}),n.jsx("span",{className:"flex-1 text-gray-800",children:F.text}),n.jsx("button",{onClick:V=>{V.stopPropagation(),I(F.text,`heading-${Y}`)},className:"text-gray-400 hover:text-blue-600",title:"Копировать",children:n.jsx(Cr,{className:"h-3 w-3"})})]},Y))})]})]})]})})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Количество слов"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:L})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Вхождений ключевого слова"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:W})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Плотность ключевого слова"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:M>0?`${M.toFixed(2)}%`:"-"})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Внешние ссылки"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:d.linksExternal||0})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Canonical"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:D==="none"?n.jsxs("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-gray-100 text-gray-600",children:[n.jsx(dr,{className:"h-3 w-3 mr-1"}),"Нет"]}):D==="self"?n.jsxs("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-green-100 text-green-800",children:[n.jsx(Mr,{className:"h-3 w-3 mr-1"}),"На себя: ",d.canonicalUrl]}):n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsxs("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-red-100 text-red-800",children:[n.jsx(D0,{className:"h-3 w-3 mr-1"}),"На другой сайт"]}),n.jsx("a",{href:d.canonicalUrl,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline text-xs",children:d.canonicalUrl})]})})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Hreflang"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:d.hasHreflang?n.jsxs("div",{children:[n.jsxs("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-green-100 text-green-800 mb-2",children:[n.jsx(Mr,{className:"h-3 w-3 mr-1"}),"Есть (",d.hreflangCount,")"]}),E.length>0&&n.jsx("div",{className:"mt-2 space-y-1",children:E.map((F,Y)=>n.jsxs("div",{className:"text-xs border rounded p-2",children:[n.jsx("div",{className:"font-medium text-blue-600",children:F.lang||F}),F.url&&n.jsx("div",{className:"text-gray-600 truncate",children:F.url})]},Y))})]}):n.jsxs("span",{className:"inline-flex items-center px-2 py-1 text-xs font-semibold rounded bg-gray-100 text-gray-600",children:[n.jsx(dr,{className:"h-3 w-3 mr-1"}),"Нет"]})})]}),n.jsxs("tr",{children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-700",children:"Клоакинг"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:d.cloakingDetected?n.jsxs("div",{children:[n.jsxs("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded bg-red-100 text-red-800 mb-2",children:["⚠️ ",d.cloakingType||"Обнаружен"]}),d.cloakingDifferences&&d.cloakingDifferences.length>0&&n.jsxs("div",{className:"mt-2",children:[n.jsx("div",{className:"text-xs font-semibold mb-1",children:"Различия:"}),n.jsx("ul",{className:"list-disc list-inside text-xs text-gray-600",children:d.cloakingDifferences.map((F,Y)=>n.jsx("li",{children:F},Y))})]})]}):n.jsx("span",{className:"text-gray-400",children:"-"})})]})]})]})})]}),(d.fullHtml||d.extractedText)&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[d.fullHtml&&n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("h3",{className:"text-lg font-semibold text-gray-900 flex items-center gap-2",children:[n.jsx(L0,{className:"h-5 w-5"}),"Полный HTML"]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:()=>I(d.fullHtml,"html"),className:"btn-secondary text-sm flex items-center gap-1",title:"Копировать HTML",children:m==="html"?n.jsxs(n.Fragment,{children:[n.jsx(Nt,{className:"h-4 w-4"}),"Скопировано!"]}):n.jsxs(n.Fragment,{children:[n.jsx(Cr,{className:"h-4 w-4"}),"Копировать"]})}),n.jsx("button",{onClick:()=>p(!h),className:"btn-secondary text-sm",children:h?"Скрыть":"Показать"})]})]}),h&&n.jsx("pre",{className:"bg-gray-900 text-green-400 p-4 rounded-lg overflow-x-auto text-xs max-h-96 overflow-y-auto",children:d.fullHtml})]}),d.extractedText&&n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("h3",{className:"text-lg font-semibold text-gray-900 flex items-center gap-2",children:[n.jsx(da,{className:"h-5 w-5"}),"Очищенный текст (SEO контент)"]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:()=>I(d.extractedText,"text"),className:"btn-secondary text-sm flex items-center gap-1",title:"Копировать текст",children:m==="text"?n.jsxs(n.Fragment,{children:[n.jsx(Nt,{className:"h-4 w-4"}),"Скопировано!"]}):n.jsxs(n.Fragment,{children:[n.jsx(Cr,{className:"h-4 w-4"}),"Копировать"]})}),n.jsx("button",{onClick:()=>y(!v),className:"btn-secondary text-sm",children:v?"Скрыть":"Показать"})]})]}),v&&n.jsx("div",{className:"bg-gray-50 p-4 rounded-lg max-h-96 overflow-y-auto",children:d.extractedHtml?n.jsx("div",{className:"text-gray-900 prose prose-lg max-w-none",children:B(d.extractedHtml)||n.jsx("div",{className:"text-sm whitespace-pre-wrap",children:d.extractedText})}):n.jsx("div",{className:"text-sm text-gray-900 whitespace-pre-wrap",children:d.extractedText})})]})]}),n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("h3",{className:"text-lg font-semibold text-gray-900 flex items-center gap-2",children:[n.jsx(eC,{className:"h-5 w-5"}),"Анализ сетей"]}),n.jsx("button",{onClick:T,className:"btn-primary",disabled:j,children:j?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"animate-spin h-4 w-4 mr-2 border-2 border-white border-t-transparent rounded-full"}),"Анализируем..."]}):n.jsxs(n.Fragment,{children:[n.jsx(vt,{className:"h-4 w-4 mr-2"}),"Запустить анализ сети"]})})]}),g&&n.jsxs("div",{className:"mt-4 space-y-4",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Визуализация сети"}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:()=>I(z(g),"network"),className:"btn-secondary text-sm flex items-center gap-1",title:"Копировать текстовый анализ",children:m==="network"?n.jsxs(n.Fragment,{children:[n.jsx(Nt,{className:"h-4 w-4"}),"Скопировано!"]}):n.jsxs(n.Fragment,{children:[n.jsx(Cr,{className:"h-4 w-4"}),"Копировать текст"]})}),n.jsx("button",{onClick:()=>N(!C),className:"btn-secondary text-sm",children:C?"Скрыть текст":"Показать текст"})]})]}),C&&n.jsx("div",{className:"bg-gray-50 p-4 rounded-lg max-h-96 overflow-y-auto",children:n.jsx("pre",{className:"text-sm text-gray-900 whitespace-pre-wrap font-mono",children:z(g)})}),n.jsx(oE,{data:g,loading:!1})]})]})]})})},_F=()=>{const[e,t]=x.useState("rewrite_top1"),[r,s]=x.useState(!1),[a,i]=x.useState([]),[l,o]=x.useState(new Set),c=[{id:"rewrite_top1",name:"Рерайт топ-1",description:"Переписать контент с первого места в выдаче",icon:Tt,color:"blue"},{id:"rewrite_top2",name:"Рерайт топ-2",description:"Переписать контент со второго места (если подходит)",icon:Tt,color:"green"},{id:"based_on_top1_top2",name:"На основе топ-1 и топ-2",description:"Создать контент на основе анализа топ-2 конкурентов",icon:yn,color:"purple"},{id:"median",name:"Медианный подход",description:"Создать контент по медиане всех конкурентов",icon:Dr,color:"orange"}],d=async()=>{s(!0),setTimeout(()=>{i([{id:"tz_1",template:e,wordCount:2500,keywordDensity:2.5,additionalKeywords:["jewelry store","online shopping","premium quality"],prompt:'Создайте статью о ювелирных изделиях объемом 2500 слов с плотностью ключевого слова "jewelry" 2.5%. Включите дополнительные ключевые слова: jewelry store, online shopping, premium quality. Структура: H1, 3-4 H2, 6-8 H3.',content:"Здесь будет сгенерированный контент..."}]),s(!1)},2e3)},u=async(f,h)=>{try{await navigator.clipboard.writeText(f),o(p=>new Set([...p,h])),setTimeout(()=>{o(p=>{const v=new Set(p);return v.delete(h),v})},2e3)}catch(p){console.error("Failed to copy text: ",p)}},m=()=>{console.log("Exporting TZ:",a)};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Формирование ТЗ"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Автоматическое создание технических заданий на основе анализа конкурентов"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Шаблон ТЗ"}),n.jsx("div",{className:"space-y-3",children:c.map(f=>{const h=f.icon;return n.jsxs("label",{className:`flex items-start space-x-3 p-4 border rounded-lg cursor-pointer transition-colors ${e===f.id?"border-primary-500 bg-primary-50":"border-gray-200 hover:border-gray-300"}`,children:[n.jsx("input",{type:"radio",name:"template",value:f.id,checked:e===f.id,onChange:p=>t(p.target.value),className:"mt-1"}),n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(h,{className:`h-5 w-5 text-${f.color}-600`}),n.jsx("h3",{className:"text-sm font-medium text-gray-900",children:f.name})]}),n.jsx("p",{className:"text-sm text-gray-500 mt-1",children:f.description})]})]},f.id)})})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Дополнительные настройки"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Количество слов"}),n.jsxs("select",{className:"input",children:[n.jsx("option",{value:"1500",children:"1500 слов"}),n.jsx("option",{value:"2000",children:"2000 слов"}),n.jsx("option",{value:"2500",children:"2500 слов"}),n.jsx("option",{value:"3000",children:"3000 слов"}),n.jsx("option",{value:"custom",children:"Кастомное"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Плотность ключевого слова (%)"}),n.jsxs("select",{className:"input",children:[n.jsx("option",{value:"1.5",children:"1.5%"}),n.jsx("option",{value:"2.0",children:"2.0%"}),n.jsx("option",{value:"2.5",children:"2.5%"}),n.jsx("option",{value:"3.0",children:"3.0%"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Количество дополнительных ключевых слов"}),n.jsxs("select",{className:"input",children:[n.jsx("option",{value:"3",children:"3 ключевых слова"}),n.jsx("option",{value:"5",children:"5 ключевых слов"}),n.jsx("option",{value:"7",children:"7 ключевых слов"}),n.jsx("option",{value:"10",children:"10 ключевых слов"})]})]})]})]}),n.jsx("div",{className:"card",children:n.jsxs("button",{onClick:d,disabled:r,className:"btn btn-primary w-full",children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),r?"Генерация...":"Сгенерировать ТЗ"]})})]}),n.jsxs("div",{className:"space-y-6",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900",children:"Сгенерированные ТЗ"}),n.jsx("p",{className:"text-sm text-gray-500",children:a.length>0?`${a.length} ТЗ готово`:"Сгенерируйте ТЗ для просмотра"})]}),a.length>0&&n.jsxs("button",{onClick:m,className:"btn btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]})]})}),a.length>0&&n.jsx("div",{className:"space-y-4",children:a.map(f=>{var h;return n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex justify-between items-start mb-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:(h=c.find(p=>p.id===f.template))==null?void 0:h.name}),n.jsxs("p",{className:"text-sm text-gray-500",children:[f.wordCount," слов • Плотность: ",f.keywordDensity,"%"]})]}),n.jsx("div",{className:"flex space-x-2",children:n.jsx("button",{onClick:()=>u(f.prompt,`prompt_${f.id}`),className:"p-2 text-gray-400 hover:text-gray-600 transition-colors",children:l.has(`prompt_${f.id}`)?n.jsx(Nt,{className:"h-4 w-4 text-green-600"}):n.jsx(Cr,{className:"h-4 w-4"})})})]}),n.jsxs("div",{className:"mb-4",children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Промпт для ИИ"}),n.jsx("div",{className:"p-3 bg-gray-50 rounded-lg",children:n.jsx("p",{className:"text-sm text-gray-700",children:f.prompt})})]}),n.jsxs("div",{className:"mb-4",children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Дополнительные ключевые слова"}),n.jsx("div",{className:"flex flex-wrap gap-2",children:f.additionalKeywords.map((p,v)=>n.jsx("span",{className:"px-2 py-1 text-xs bg-blue-100 text-blue-800 rounded-full",children:p},v))})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Сгенерированный контент"}),n.jsx("div",{className:"p-3 bg-gray-50 rounded-lg max-h-32 overflow-y-auto",children:n.jsx("p",{className:"text-sm text-gray-700",children:f.content})})]})]},f.id)})}),a.length>0&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(da,{className:"h-8 w-8 text-primary-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Всего ТЗ"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:a.length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Tt,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Среднее количество слов"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:Math.round(a.reduce((f,h)=>f+h.wordCount,0)/a.length)})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(yn,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Средняя плотность"}),n.jsxs("p",{className:"text-2xl font-semibold text-gray-900",children:[a.reduce((f,h)=>f+h.keywordDensity,0)/a.length,"%"]})]})]})})]})]})]})]})},OF=()=>{const[e,t]=x.useState(!1),[r,s]=x.useState(null),a=async()=>{t(!0),setTimeout(()=>{s({overallStrategy:{difficulty:"medium",potential:"high",recommendation:"Рекомендуется создание 3-5 сайтов с разными подходами"},geoRecommendations:[{country:"us",difficulty:"high",potential:"very_high",recommendation:"Создать 2 EMD сайта + 1 брендовый",domains:{emd:2,brand:1,drops:3}},{country:"gb",difficulty:"medium",potential:"high",recommendation:"Создать 1 EMD сайт + 2 дропа",domains:{emd:1,brand:0,drops:2}}],contentStrategy:{wordCount:2500,keywordDensity:2.5,structure:"H1 + 4 H2 + 8 H3",additionalKeywords:["jewelry store","online shopping","premium quality"]},timeline:{phase1:"Создание EMD сайтов (1-2 недели)",phase2:"Разработка контента (2-3 недели)",phase3:"Запуск и мониторинг (1 неделя)"}}),t(!1)},3e3)},i=()=>{console.log("Exporting recommendations:",r)},l=c=>{switch(c){case"low":return"bg-green-100 text-green-800";case"medium":return"bg-yellow-100 text-yellow-800";case"high":return"bg-red-100 text-red-800";default:return"bg-gray-100 text-gray-800"}},o=c=>{switch(c){case"low":return"bg-red-100 text-red-800";case"medium":return"bg-yellow-100 text-yellow-800";case"high":return"bg-green-100 text-green-800";case"very_high":return"bg-blue-100 text-blue-800";default:return"bg-gray-100 text-gray-800"}};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"ИИ-ассистент"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Анализ стратегии и рекомендации по созданию сайтов на основе данных анализа"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"space-y-6",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"text-center",children:[n.jsx(qr,{className:"h-12 w-12 text-primary-600 mx-auto mb-4"}),n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-2",children:"Анализ стратегии"}),n.jsx("p",{className:"text-sm text-gray-500 mb-4",children:"ИИ проанализирует ваши данные и даст рекомендации по стратегии"}),n.jsxs("button",{onClick:a,disabled:e,className:"btn btn-primary w-full",children:[n.jsx(qr,{className:"h-4 w-4 mr-2"}),e?"Анализ...":"Запустить анализ"]})]})}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Используемые данные"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Анализ ГЕО"}),n.jsx("span",{className:"text-sm text-green-600",children:"✓ Готово"})]}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Анализ конкурентов"}),n.jsx("span",{className:"text-sm text-yellow-600",children:"⚠ Частично"})]}),n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Формирование ТЗ"}),n.jsx("span",{className:"text-sm text-gray-400",children:"○ Не готово"})]})]})]})]}),n.jsxs("div",{className:"space-y-6",children:[r&&n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900",children:"Рекомендации ИИ"}),n.jsx("p",{className:"text-sm text-gray-500",children:"Стратегия на основе анализа данных"})]}),n.jsxs("button",{onClick:i,className:"btn btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]})]})}),r&&n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Общая стратегия"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4",children:[n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-2",children:[n.jsx(Tt,{className:"h-6 w-6 text-gray-400 mr-2"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Сложность"})]}),n.jsx("span",{className:`px-2 py-1 text-xs rounded-full ${l(r.overallStrategy.difficulty)}`,children:r.overallStrategy.difficulty})]}),n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-2",children:[n.jsx(Je,{className:"h-6 w-6 text-gray-400 mr-2"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Потенциал"})]}),n.jsx("span",{className:`px-2 py-1 text-xs rounded-full ${o(r.overallStrategy.potential)}`,children:r.overallStrategy.potential})]}),n.jsxs("div",{className:"text-center",children:[n.jsxs("div",{className:"flex items-center justify-center mb-2",children:[n.jsx(yn,{className:"h-6 w-6 text-gray-400 mr-2"}),n.jsx("span",{className:"text-sm text-gray-500",children:"Сайтов"})]}),n.jsx("span",{className:"text-lg font-semibold text-gray-900",children:"3-5"})]})]}),n.jsx("div",{className:"p-3 bg-blue-50 rounded-lg",children:n.jsx("p",{className:"text-sm text-blue-800",children:r.overallStrategy.recommendation})})]}),r&&n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Рекомендации по гео"}),n.jsx("div",{className:"space-y-4",children:r.geoRecommendations.map((c,d)=>n.jsxs("div",{className:"border border-gray-200 rounded-lg p-4",children:[n.jsxs("div",{className:"flex justify-between items-start mb-3",children:[n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900",children:c.country.toUpperCase()}),n.jsx("p",{className:"text-sm text-gray-500",children:c.recommendation})]}),n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("span",{className:`px-2 py-1 text-xs rounded-full ${l(c.difficulty)}`,children:c.difficulty}),n.jsx("span",{className:`px-2 py-1 text-xs rounded-full ${o(c.potential)}`,children:c.potential})]})]}),n.jsxs("div",{className:"grid grid-cols-3 gap-4 text-center",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:c.domains.emd}),n.jsx("p",{className:"text-xs text-gray-500",children:"EMD"})]}),n.jsxs("div",{children:[n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:c.domains.brand}),n.jsx("p",{className:"text-xs text-gray-500",children:"Бренд"})]}),n.jsxs("div",{children:[n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:c.domains.drops}),n.jsx("p",{className:"text-xs text-gray-500",children:"Дропы"})]})]})]},d))})]}),r&&n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Стратегия контента"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"flex justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Количество слов:"}),n.jsx("span",{className:"text-sm font-medium text-gray-900",children:r.contentStrategy.wordCount})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Плотность ключевого слова:"}),n.jsxs("span",{className:"text-sm font-medium text-gray-900",children:[r.contentStrategy.keywordDensity,"%"]})]}),n.jsxs("div",{className:"flex justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Структура:"}),n.jsx("span",{className:"text-sm font-medium text-gray-900",children:r.contentStrategy.structure})]}),n.jsxs("div",{children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Дополнительные ключевые слова:"}),n.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:r.contentStrategy.additionalKeywords.map((c,d)=>n.jsx("span",{className:"px-2 py-1 text-xs bg-blue-100 text-blue-800 rounded-full",children:c},d))})]})]})]}),r&&n.jsxs("div",{className:"card",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:"Временная шкала"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx("div",{className:"w-3 h-3 bg-blue-500 rounded-full"}),n.jsx("span",{className:"text-sm text-gray-700",children:r.timeline.phase1})]}),n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx("div",{className:"w-3 h-3 bg-green-500 rounded-full"}),n.jsx("span",{className:"text-sm text-gray-700",children:r.timeline.phase2})]}),n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx("div",{className:"w-3 h-3 bg-purple-500 rounded-full"}),n.jsx("span",{className:"text-sm text-gray-700",children:r.timeline.phase3})]})]})]})]})]})]})},MF=()=>{const[e,t]=x.useState([""]),[r,s]=x.useState(["us"]),[a,i]=x.useState({emd:!0,brand:!0,generic:!1}),[l,o]=x.useState({com:!0,net:!1,org:!1,local:!0}),[c,d]=x.useState(!1),[u,m]=x.useState([]),f=()=>{t([...e,""])},h=(j,w)=>{const C=[...e];C[j]=w,t(C)},p=j=>{e.length>1&&t(e.filter((w,C)=>C!==j))},v=async()=>{d(!0),setTimeout(()=>{m([{domain:"jewelry-store.com",available:!0,price:12.99,registrar:"GoDaddy",type:"emd",geo:"us",extension:"com"},{domain:"premium-jewelry.net",available:!0,price:15.99,registrar:"Namecheap",type:"emd",geo:"us",extension:"net"},{domain:"luxury-jewelry.org",available:!1,price:null,registrar:null,type:"emd",geo:"us",extension:"org"}]),d(!1)},2e3)},y=()=>{console.log("Exporting results:",u)},g=j=>{i(w=>({...w,[j]:!w[j]}))},b=j=>{o(w=>({...w,[j]:!w[j]}))};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Подбор доменов"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Поиск EMD, брендовых и генерических доменов по ключевым словам"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Ключевые слова"}),n.jsxs("div",{className:"space-y-3",children:[e.map((j,w)=>n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("input",{type:"text",value:j,onChange:C=>h(w,C.target.value),placeholder:"Введите ключевое слово",className:"input flex-1"}),e.length>1&&n.jsx("button",{onClick:()=>p(w),className:"px-3 py-2 text-red-600 hover:text-red-800",children:"×"})]},w)),n.jsx("button",{onClick:f,className:"btn btn-secondary w-full",children:"+ Добавить ключевое слово"})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Гео (страны)"}),n.jsx(Sc,{selectedCountries:r,onCountriesChange:s})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Типы доменов"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("label",{className:"flex items-center space-x-3",children:[n.jsx("input",{type:"checkbox",checked:a.emd,onChange:()=>g("emd"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsxs("div",{children:[n.jsx("span",{className:"text-sm font-medium text-gray-900",children:"EMD (Exact Match Domain)"}),n.jsx("p",{className:"text-xs text-gray-500",children:"jewelry-store.com, premium-jewelry.net"})]})]}),n.jsxs("label",{className:"flex items-center space-x-3",children:[n.jsx("input",{type:"checkbox",checked:a.brand,onChange:()=>g("brand"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsxs("div",{children:[n.jsx("span",{className:"text-sm font-medium text-gray-900",children:"Брендовые домены"}),n.jsx("p",{className:"text-xs text-gray-500",children:"luxuryjewelry.com, diamondstore.net"})]})]}),n.jsxs("label",{className:"flex items-center space-x-3",children:[n.jsx("input",{type:"checkbox",checked:a.generic,onChange:()=>g("generic"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsxs("div",{children:[n.jsx("span",{className:"text-sm font-medium text-gray-900",children:"Генерические домены"}),n.jsx("p",{className:"text-xs text-gray-500",children:"shop.com, store.net, market.org"})]})]})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Расширения доменов"}),n.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:l.com,onChange:()=>b("com"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:".com"})]}),n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:l.net,onChange:()=>b("net"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:".net"})]}),n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:l.org,onChange:()=>b("org"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:".org"})]}),n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:l.local,onChange:()=>b("local"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:"Локальные"})]})]})]})]}),n.jsxs("div",{className:"space-y-6",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900",children:"Найденные домены"}),n.jsx("p",{className:"text-sm text-gray-500",children:u.length>0?`${u.length} доменов найдено`:"Запустите поиск для получения результатов"})]}),n.jsxs("div",{className:"flex space-x-2",children:[u.length>0&&n.jsxs("button",{onClick:y,className:"btn btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]}),n.jsxs("button",{onClick:v,disabled:c||e.filter(j=>j.trim()).length===0||r.length===0,className:"btn btn-primary",children:[n.jsx(_e,{className:"h-4 w-4 mr-2"}),c?"Поиск...":"Найти домены"]})]})]})}),u.length>0&&n.jsx("div",{className:"space-y-4",children:u.map((j,w)=>n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex justify-between items-start mb-3",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:j.domain}),n.jsxs("p",{className:"text-sm text-gray-500",children:[j.type.toUpperCase()," • ",j.geo.toUpperCase()," • .",j.extension]})]}),n.jsx("div",{className:"flex items-center space-x-2",children:j.available?n.jsxs("span",{className:"flex items-center px-2 py-1 text-xs bg-green-100 text-green-800 rounded-full",children:[n.jsx(Nt,{className:"h-3 w-3 mr-1"}),"Доступен"]}):n.jsxs("span",{className:"flex items-center px-2 py-1 text-xs bg-red-100 text-red-800 rounded-full",children:[n.jsx(dr,{className:"h-3 w-3 mr-1"}),"Занят"]})})]}),j.available&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(rc,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Цена"}),n.jsxs("p",{className:"text-sm font-medium text-gray-900",children:["$",j.price]})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(vt,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Регистратор"}),n.jsx("p",{className:"text-sm font-medium text-gray-900",children:j.registrar})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(ii,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Тип"}),n.jsx("p",{className:"text-sm font-medium text-gray-900",children:j.type.toUpperCase()})]})]})]})]},w))}),u.length>0&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Nt,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Доступных"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:u.filter(j=>j.available).length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(dr,{className:"h-8 w-8 text-red-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Занятых"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:u.filter(j=>!j.available).length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(rc,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Средняя цена"}),n.jsxs("p",{className:"text-2xl font-semibold text-gray-900",children:["$",u.filter(j=>j.available).reduce((j,w)=>j+w.price,0)/u.filter(j=>j.available).length||0]})]})]})})]})]})]})]})},DF=()=>{const[e,t]=x.useState([""]),[r,s]=x.useState(["us"]),[a,i]=x.useState({minBacklinks:10,maxBacklinks:1e3,minAge:1,maxAge:10,extensions:{com:!0,net:!1,org:!1,local:!0}}),[l,o]=x.useState(!1),[c,d]=x.useState([]),u=()=>{t([...e,""])},m=(g,b)=>{const j=[...e];j[g]=b,t(j)},f=g=>{e.length>1&&t(e.filter((b,j)=>j!==g))},h=async()=>{o(!0),setTimeout(()=>{d([{domain:"jewelry-store.com",available:!0,expiryDate:"2024-12-15",backlinks:150,domainAge:3,type:"com",geo:"us",lastSeen:"2024-01-15"},{domain:"premium-jewelry.net",available:!0,expiryDate:"2024-11-20",backlinks:75,domainAge:2,type:"net",geo:"us",lastSeen:"2024-01-10"},{domain:"luxury-jewelry.org",available:!1,expiryDate:null,backlinks:200,domainAge:5,type:"org",geo:"us",lastSeen:"2024-01-20"}]),o(!1)},3e3)},p=()=>{console.log("Exporting results:",c)},v=g=>{i(b=>({...b,extensions:{...b.extensions,[g]:!b.extensions[g]}}))},y=(g,b)=>{i(j=>({...j,[g]:b}))};return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Подбор дропов"}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Поиск дропнутых доменов с историей и обратными ссылками"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Ключевые слова"}),n.jsxs("div",{className:"space-y-3",children:[e.map((g,b)=>n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("input",{type:"text",value:g,onChange:j=>m(b,j.target.value),placeholder:"Введите ключевое слово",className:"input flex-1"}),e.length>1&&n.jsx("button",{onClick:()=>f(b),className:"px-3 py-2 text-red-600 hover:text-red-800",children:"×"})]},b)),n.jsx("button",{onClick:u,className:"btn btn-secondary w-full",children:"+ Добавить ключевое слово"})]})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Гео (страны)"}),n.jsx(Sc,{selectedCountries:r,onCountriesChange:s})]}),n.jsxs("div",{className:"card",children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900 mb-4",children:"Фильтры"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Количество обратных ссылок"}),n.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[n.jsx("input",{type:"number",value:a.minBacklinks,onChange:g=>y("minBacklinks",parseInt(g.target.value)),placeholder:"Мин",className:"input"}),n.jsx("input",{type:"number",value:a.maxBacklinks,onChange:g=>y("maxBacklinks",parseInt(g.target.value)),placeholder:"Макс",className:"input"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Возраст домена (лет)"}),n.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[n.jsx("input",{type:"number",value:a.minAge,onChange:g=>y("minAge",parseInt(g.target.value)),placeholder:"Мин",className:"input"}),n.jsx("input",{type:"number",value:a.maxAge,onChange:g=>y("maxAge",parseInt(g.target.value)),placeholder:"Макс",className:"input"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Расширения доменов"}),n.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:a.extensions.com,onChange:()=>v("com"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:".com"})]}),n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:a.extensions.net,onChange:()=>v("net"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:".net"})]}),n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:a.extensions.org,onChange:()=>v("org"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:".org"})]}),n.jsxs("label",{className:"flex items-center space-x-2",children:[n.jsx("input",{type:"checkbox",checked:a.extensions.local,onChange:()=>v("local"),className:"rounded border-gray-300 text-primary-600 focus:ring-primary-500"}),n.jsx("span",{className:"text-sm text-gray-900",children:"Локальные"})]})]})]})]})]})]}),n.jsxs("div",{className:"space-y-6",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h2",{className:"text-lg font-medium text-gray-900",children:"Найденные дропы"}),n.jsx("p",{className:"text-sm text-gray-500",children:c.length>0?`${c.length} дропов найдено`:"Запустите поиск для получения результатов"})]}),n.jsxs("div",{className:"flex space-x-2",children:[c.length>0&&n.jsxs("button",{onClick:p,className:"btn btn-secondary",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт"]}),n.jsxs("button",{onClick:h,disabled:l||e.filter(g=>g.trim()).length===0||r.length===0,className:"btn btn-primary",children:[n.jsx(_e,{className:"h-4 w-4 mr-2"}),l?"Поиск...":"Найти дропы"]})]})]})}),c.length>0&&n.jsx("div",{className:"space-y-4",children:c.map((g,b)=>n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"flex justify-between items-start mb-3",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900",children:g.domain}),n.jsxs("p",{className:"text-sm text-gray-500",children:[g.type.toUpperCase()," • ",g.geo.toUpperCase()]})]}),n.jsx("div",{className:"flex items-center space-x-2",children:g.available?n.jsxs("span",{className:"flex items-center px-2 py-1 text-xs bg-green-100 text-green-800 rounded-full",children:[n.jsx(Nt,{className:"h-3 w-3 mr-1"}),"Доступен"]}):n.jsxs("span",{className:"flex items-center px-2 py-1 text-xs bg-red-100 text-red-800 rounded-full",children:[n.jsx(dr,{className:"h-3 w-3 mr-1"}),"Занят"]})})]}),n.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(ii,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Ссылки"}),n.jsx("p",{className:"text-sm font-medium text-gray-900",children:g.backlinks})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx($n,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Возраст"}),n.jsxs("p",{className:"text-sm font-medium text-gray-900",children:[g.domainAge," лет"]})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(Ut,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Истекает"}),n.jsx("p",{className:"text-sm font-medium text-gray-900",children:g.expiryDate?new Date(g.expiryDate).toLocaleDateString():"N/A"})]})]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx(Je,{className:"h-4 w-4 text-gray-400"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-xs text-gray-500",children:"Последний раз"}),n.jsx("p",{className:"text-sm font-medium text-gray-900",children:new Date(g.lastSeen).toLocaleDateString()})]})]})]})]},b))}),c.length>0&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(Nt,{className:"h-8 w-8 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Доступных"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:c.filter(g=>g.available).length})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx(ii,{className:"h-8 w-8 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Среднее количество ссылок"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:Math.round(c.reduce((g,b)=>g+b.backlinks,0)/c.length)})]})]})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"flex-shrink-0",children:n.jsx($n,{className:"h-8 w-8 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Средний возраст"}),n.jsxs("p",{className:"text-2xl font-semibold text-gray-900",children:[Math.round(c.reduce((g,b)=>g+b.domainAge,0)/c.length)," лет"]})]})]})})]})]})]})]})},$F=()=>{const e=Sr();Xk();const[t,r]=x.useState([]),[s,a]=x.useState(!0),[i,l]=x.useState(!1),[o,c]=x.useState(null),[d,u]=x.useState("all"),[m,f]=x.useState(""),[h,p]=x.useState("createdAt"),[v,y]=x.useState("desc"),g={pl:"Poland",cz:"Czech Republic",ro:"Romania",in:"India",tr:"Turkey",de:"Germany",it:"Italy",gr:"Greece",us:"United States",gb:"United Kingdom",fr:"France",es:"Spain",nl:"Netherlands",be:"Belgium",at:"Austria",ch:"Switzerland",se:"Sweden",no:"Norway",dk:"Denmark",fi:"Finland",bg:"Bulgaria",hr:"Croatia",sk:"Slovakia",si:"Slovenia",hu:"Hungary",pt:"Portugal",ie:"Ireland",cy:"Cyprus",mt:"Malta",lu:"Luxembourg",lv:"Latvia",lt:"Lithuania",ee:"Estonia"},b={plan:{label:"План",color:"bg-gray-100 text-gray-800",icon:Ut},domains:{label:"Домены есть",color:"bg-blue-100 text-blue-800",icon:Tt},in_progress:{label:"В работе",color:"bg-yellow-100 text-yellow-800",icon:$n},launched:{label:"Запущенные сайты",color:"bg-green-100 text-green-800",icon:Mr}},j={low:{label:"Низкий",color:"bg-gray-100 text-gray-800"},medium:{label:"Средний",color:"bg-blue-100 text-blue-800"},high:{label:"Высокий",color:"bg-red-100 text-red-800"}};x.useEffect(()=>{const _=localStorage.getItem("projects");if(_)try{const I=JSON.parse(_);r(I)}catch(I){console.error("Ошибка при загрузке проектов из localStorage:",I)}a(!1)},[]);const w=t.filter(_=>{const I=d==="all"||_.status===d,B=_.keyword.toLowerCase().includes(m.toLowerCase())||_.country.toLowerCase().includes(m.toLowerCase());return I&&B}).sort((_,I)=>{const B=_[h],z=I[h];return v==="asc"?B>z?1:-1:B{h===_?y(v==="asc"?"desc":"asc"):(p(_),y("asc"))},A={plan:t.filter(_=>_.status==="plan").length,domains:t.filter(_=>_.status==="domains").length,in_progress:t.filter(_=>_.status==="in_progress").length,launched:t.filter(_=>_.status==="launched").length};return s?n.jsx("div",{className:"flex items-center justify-center h-64",children:n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-primary-600"})}):n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Планирование проектов"}),n.jsx("p",{className:"text-gray-600",children:"Управление бэклогом и статусами проектов"})]}),n.jsxs("button",{onClick:()=>l(!0),className:"btn-primary",children:[n.jsx(jr,{className:"h-4 w-4 mr-2"}),"Добавить проект"]})]}),n.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:Object.entries(b).map(([_,I])=>{const B=I.icon;return n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:I.label}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:A[_]})]}),n.jsx(B,{className:"h-8 w-8 text-gray-400"})]})},_)})}),n.jsx("div",{className:"card",children:n.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[n.jsx("div",{className:"flex-1",children:n.jsxs("div",{className:"relative",children:[n.jsx(_e,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),n.jsx("input",{type:"text",placeholder:"Поиск по ключевому слову или стране...",value:m,onChange:_=>f(_.target.value),className:"pl-10 input-field"})]})}),n.jsx("div",{className:"flex gap-2",children:n.jsxs("select",{value:d,onChange:_=>u(_.target.value),className:"input-field",children:[n.jsx("option",{value:"all",children:"Все статусы"}),n.jsx("option",{value:"plan",children:"План"}),n.jsx("option",{value:"domains",children:"Домены есть"}),n.jsx("option",{value:"in_progress",children:"В работе"}),n.jsx("option",{value:"launched",children:"Запущенные сайты"})]})})]})}),n.jsx("div",{className:"card overflow-hidden",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>C("keyword"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Ключевое слово"}),h==="keyword"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>C("country"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Страна"}),h==="country"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>C("status"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Статус"}),h==="status"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>C("searchVolume"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Частотность"}),h==="searchVolume"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>C("priority"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Приоритет"}),h==="priority"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Запущенные сайты"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:n.jsxs("button",{onClick:()=>C("updatedAt"),className:"flex items-center space-x-1 hover:text-gray-700",children:[n.jsx("span",{children:"Обновлено"}),h==="updatedAt"&&n.jsx(nt,{className:"h-3 w-3"})]})}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Действия"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:w.map(_=>{var T;const I=b[_.status],B=j[_.priority],z=I.icon;return n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:_.keyword}),n.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:[g[_.country.toLowerCase()]||_.country," (",_.country.toUpperCase(),")"]}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsxs("span",{className:`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${I.color}`,children:[n.jsx(z,{className:"h-3 w-3 mr-1"}),I.label]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:((T=_.searchVolume)==null?void 0:T.toLocaleString())||0}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${B.color}`,children:B.label})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:_.launchedSites||0}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:new Date(_.updatedAt).toLocaleDateString("ru-RU")}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium",children:n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>e(`/keyword/${_.keyword}/country/${_.country}`),className:"text-blue-600 hover:text-blue-900",title:"Перейти к анализу ГЕО",children:n.jsx(Jm,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>c(_),className:"text-indigo-600 hover:text-indigo-900",title:"Редактировать проект",children:n.jsx(tC,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>{confirm("Удалить проект?")&&r(t.filter(D=>D.id!==_.id))},className:"text-red-600 hover:text-red-900",title:"Удалить проект",children:n.jsx(Uu,{className:"h-4 w-4"})})]})})]},_.id)})})]})})}),(i||o)&&n.jsx("div",{className:"fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full z-50",children:n.jsx("div",{className:"relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white",children:n.jsxs("div",{className:"mt-3",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:o?"Редактировать проект":"Добавить проект"}),n.jsxs("form",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Ключевое слово"}),n.jsx("input",{type:"text",defaultValue:(o==null?void 0:o.keyword)||"",className:"mt-1 input-field",placeholder:"Введите ключевое слово"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Страна"}),n.jsx("input",{type:"text",defaultValue:(o==null?void 0:o.country)||"",className:"mt-1 input-field",placeholder:"Введите код страны (например, bg)"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Статус"}),n.jsxs("select",{defaultValue:(o==null?void 0:o.status)||"plan",className:"mt-1 input-field",children:[n.jsx("option",{value:"plan",children:"План"}),n.jsx("option",{value:"domains",children:"Домены есть"}),n.jsx("option",{value:"in_progress",children:"В работе"}),n.jsx("option",{value:"launched",children:"Запущенные сайты"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Приоритет"}),n.jsxs("select",{defaultValue:(o==null?void 0:o.priority)||"medium",className:"mt-1 input-field",children:[n.jsx("option",{value:"low",children:"Низкий"}),n.jsx("option",{value:"medium",children:"Средний"}),n.jsx("option",{value:"high",children:"Высокий"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Запущенные сайты"}),n.jsx("input",{type:"number",defaultValue:(o==null?void 0:o.launchedSites)||0,className:"mt-1 input-field",min:"0"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Заметки"}),n.jsx("textarea",{defaultValue:(o==null?void 0:o.notes)||"",className:"mt-1 input-field",rows:3,placeholder:"Дополнительные заметки..."})]}),n.jsxs("div",{className:"flex justify-end space-x-3 pt-4",children:[n.jsx("button",{type:"button",onClick:()=>{l(!1),c(null)},className:"btn-secondary",children:"Отмена"}),n.jsx("button",{type:"submit",className:"btn-primary",children:o?"Сохранить":"Добавить"})]})]})]})})})]})},LF=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(!0),[a,i]=x.useState(null),[l,o]=x.useState(""),[c,d]=x.useState("all"),[u,m]=x.useState("all"),[f,h]=x.useState("all"),[p,v]=x.useState("all"),[y,g]=x.useState("created_time"),[b,j]=x.useState("desc"),[w,C]=x.useState(null),[N,A]=x.useState("unified"),[_,I]=x.useState(""),B=(M,R)=>{A(M),I(R||""),z(M,R||"")},z=async(M,R)=>{try{s(!0),i(null);const U=`/api/notion/projects/cached${M==="single"&&R?`?databaseId=${R}`:""}`,F=await(await fetch(U)).json();F.success?(t(F.data),C(new Date().toLocaleString("ru-RU"))):i("Ошибка загрузки данных из Notion")}catch(U){i("Ошибка подключения к серверу"),console.error("Error fetching Notion data:",U)}finally{s(!1)}},T=async()=>{z(N,_)},D=async()=>{try{s(!0);const R=await(await fetch("/api/notion/sync",{method:"POST"})).json();if(R.success)await T(),alert("Синхронизация с Notion завершена успешно!");else throw new Error(R.error||"Ошибка синхронизации")}catch(M){console.error("Error syncing Notion data:",M),alert("Ошибка синхронизации с Notion: "+(M instanceof Error?M.message:"Неизвестная ошибка"))}finally{s(!1)}},E=async()=>{try{s(!0);const R=await fetch("/api/http-status/check-all-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({batchSize:3,statusFilter:["migrate to server","canonical","redirect","seo process","deleted"]})});if(!R.ok)throw new Error("Ошибка при проверке HTTP статусов");const U=await R.json();if(U.success)await T(),alert(`Проверено ${U.data.totalChecked} сайтов в ${U.data.totalBatches} батчах`);else throw new Error(U.error||"Неизвестная ошибка")}catch(M){console.error("Error checking HTTP statuses:",M),alert("Ошибка при проверке HTTP статусов: "+(M instanceof Error?M.message:"Неизвестная ошибка"))}finally{s(!1)}};x.useEffect(()=>{T()},[]);const S=e.filter(M=>{var V,q,J,G;const R=((V=M.brand)==null?void 0:V.toLowerCase().includes(l.toLowerCase()))||((q=M.geo)==null?void 0:q.toLowerCase().includes(l.toLowerCase()))||((J=M.url)==null?void 0:J.toLowerCase().includes(l.toLowerCase()))||((G=M.status)==null?void 0:G.toLowerCase().includes(l.toLowerCase())),U=c==="all"||M.status===c,K=u==="all"||M.geo===u,F=f==="all"||M.brand===f,Y=p==="all"||M.responsiblePerson===p||M.responsible===p;return R&&U&&K&&F&&Y}).sort((M,R)=>{const U=M[y]||"",K=R[y]||"";return b==="asc"?U.toString().localeCompare(K.toString()):K.toString().localeCompare(U.toString())}),k=[...new Set(e.map(M=>M.status).filter(Boolean))],P=[...new Set(e.map(M=>M.geo).filter(Boolean))],O=[...new Set(e.map(M=>M.brand).filter(Boolean))],$=[...new Set(e.map(M=>M.responsiblePerson||M.responsible).filter(Boolean))],H={total:e.length,byStatus:k.reduce((M,R)=>(M[R]=e.filter(U=>U.status===R).length,M),{}),byGeo:P.reduce((M,R)=>(M[R]=e.filter(U=>U.geo===R).length,M),{}),byBrand:O.reduce((M,R)=>(M[R]=e.filter(U=>U.brand===R).length,M),{})},L=()=>{const M=[["URL","Status","Brand","GEO","Language","Type","Start Date","Responsible","Notes"].join(","),...S.map(F=>[F.url||"",F.status||"",F.brand||"",F.geo||"",F.language||"",F.type||"",F.start_date||"",F.responsible||"",(F.notes||"").replace(/,/g,";")].join(","))].join(` `),R=new Blob([M],{type:"text/csv;charset=utf-8;"}),U=document.createElement("a"),K=URL.createObjectURL(R);U.setAttribute("href",K),U.setAttribute("download",`notion-projects-${new Date().toISOString().split("T")[0]}.csv`),U.style.visibility="hidden",document.body.appendChild(U),U.click(),document.body.removeChild(U)},W=M=>{switch(M==null?void 0:M.toLowerCase()){case"seo process":return"bg-green-100 text-green-800";case"in prod":case"indexing":case"pre indexing":return"bg-blue-100 text-blue-800";case"migrate to server":return"bg-yellow-100 text-yellow-800";case"canonical":case"redirect":return"bg-orange-100 text-orange-800";case"deleted":case"no web":return"bg-red-100 text-red-800";case"pending create":case"pending ns":case"to buy":return"bg-purple-100 text-purple-800";case"document req":case"refund":return"bg-pink-100 text-pink-800";case"запущенные сайты":case"launched":return"bg-green-100 text-green-800";case"в работе":case"in progress":return"bg-blue-100 text-blue-800";case"план":case"planned":return"bg-yellow-100 text-yellow-800";case"домены есть":case"domains ready":return"bg-purple-100 text-purple-800";default:return"bg-gray-100 text-gray-800"}};return r?n.jsxs("div",{className:"flex items-center justify-center h-64",children:[n.jsx(Te,{className:"h-8 w-8 animate-spin text-primary-600"}),n.jsx("span",{className:"ml-2 text-gray-600",children:"Загрузка данных из Notion..."})]}):a?n.jsxs("div",{className:"text-center py-12",children:[n.jsx(bs,{className:"h-12 w-12 text-red-500 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Ошибка загрузки данных"}),n.jsx("p",{className:"text-gray-600 mb-4",children:a}),n.jsx("button",{onClick:T,className:"bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700",children:"Попробовать снова"})]}):n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsxs("h1",{className:"text-2xl font-bold text-gray-900 flex items-center",children:[n.jsx(br,{className:"h-8 w-8 mr-3 text-primary-600"}),"Данные из Notion"]}),n.jsxs("p",{className:"text-gray-600 mt-1",children:["Всего проектов: ",H.total," | Последняя синхронизация: ",w]}),n.jsx("div",{className:"mt-4",children:n.jsx(sC,{onModeChange:B})})]}),n.jsxs("div",{className:"flex space-x-3",children:[n.jsxs("button",{onClick:T,className:"bg-gray-100 text-gray-700 px-4 py-2 rounded-md hover:bg-gray-200 flex items-center",children:[n.jsx(Te,{className:"h-4 w-4 mr-2"}),"Обновить"]}),n.jsxs("button",{onClick:D,className:"bg-purple-600 text-white px-4 py-2 rounded-md hover:bg-purple-700 flex items-center",children:[n.jsx(rC,{className:"h-4 w-4 mr-2"}),"Синхронизировать с Notion"]}),n.jsxs("button",{onClick:E,className:"bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 flex items-center",children:[n.jsx(Mr,{className:"h-4 w-4 mr-2"}),"Проверить HTTP статусы"]}),n.jsxs("button",{onClick:L,className:"bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700 flex items-center",children:[n.jsx(Mt,{className:"h-4 w-4 mr-2"}),"Экспорт CSV"]})]})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[n.jsx("div",{className:"bg-white p-4 rounded-lg shadow",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(br,{className:"h-8 w-8 text-blue-600"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Всего проектов"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:H.total})]})]})}),n.jsx("div",{className:"bg-white p-4 rounded-lg shadow",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(vt,{className:"h-8 w-8 text-green-600"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Уникальных GEO"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:P.length})]})]})}),n.jsx("div",{className:"bg-white p-4 rounded-lg shadow",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(wp,{className:"h-8 w-8 text-purple-600"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Уникальных брендов"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:O.length})]})]})}),n.jsx("div",{className:"bg-white p-4 rounded-lg shadow",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(yn,{className:"h-8 w-8 text-orange-600"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Уникальных статусов"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:k.length})]})]})})]}),n.jsx("div",{className:"bg-white p-4 rounded-lg shadow",children:n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Поиск"}),n.jsxs("div",{className:"relative",children:[n.jsx(_e,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),n.jsx("input",{type:"text",placeholder:"Поиск по бренду, GEO, URL...",value:l,onChange:M=>o(M.target.value),className:"pl-10 w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Статус"}),n.jsxs("select",{value:c,onChange:M=>d(M.target.value),className:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"all",children:"Все статусы"}),k.map(M=>n.jsx("option",{value:M,children:M},M))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"GEO"}),n.jsxs("select",{value:u,onChange:M=>m(M.target.value),className:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"all",children:"Все GEO"}),P.map(M=>n.jsx("option",{value:M,children:M},M))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Бренд"}),n.jsxs("select",{value:f,onChange:M=>h(M.target.value),className:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"all",children:"Все бренды"}),O.map(M=>n.jsx("option",{value:M,children:M},M))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Ответственный"}),n.jsxs("select",{value:p,onChange:M=>v(M.target.value),className:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",children:[n.jsx("option",{value:"all",children:"Все"}),$.map(M=>n.jsx("option",{value:M,children:M},M))]})]})]})}),n.jsxs("div",{className:"bg-white shadow rounded-lg overflow-hidden",children:[n.jsx("div",{className:"px-4 py-3 border-b border-gray-200",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("h3",{className:"text-lg font-medium text-gray-900",children:["Проекты (",S.length,")"]}),n.jsxs("div",{className:"flex items-center space-x-2",children:[n.jsx("label",{className:"text-sm text-gray-600",children:"Сортировка:"}),n.jsxs("select",{value:y,onChange:M=>g(M.target.value),className:"border border-gray-300 rounded-md px-2 py-1 text-sm",children:[n.jsx("option",{value:"created_time",children:"Дата создания"}),n.jsx("option",{value:"brand",children:"Бренд"}),n.jsx("option",{value:"geo",children:"GEO"}),n.jsx("option",{value:"status",children:"Статус"}),n.jsx("option",{value:"start_date",children:"Дата запуска"})]}),n.jsx("button",{onClick:()=>j(b==="asc"?"desc":"asc"),className:"text-gray-600 hover:text-gray-800",children:b==="asc"?"↑":"↓"})]})]})}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"URL"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"HTTP Статус"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Статус"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Бренд"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"GEO"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Язык"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Тип"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Дата запуска"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Дата создания"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Ответственный"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Действия"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:S.map(M=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Jm,{className:"h-4 w-4 text-gray-400 mr-2"}),n.jsx("a",{href:M.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:text-blue-800 truncate max-w-xs",children:M.url})]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("div",{className:"flex items-center",children:M.httpStatus?n.jsx("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${M.httpStatus===200?"bg-green-100 text-green-800":M.httpStatus>=400&&M.httpStatus<500?"bg-yellow-100 text-yellow-800":M.httpStatus>=500?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:M.httpStatus}):n.jsx("span",{className:"inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-gray-100 text-gray-500",children:"Не проверен"})})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${W(M.status)}`,children:M.status})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:M.brand}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:M.geo}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:M.language}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:M.type}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ut,{className:"h-3 w-3 text-gray-400 mr-1"}),M.startDate||M.start_date?new Date(M.startDate||M.start_date).toLocaleDateString("ru-RU"):"-"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx($n,{className:"h-3 w-3 text-gray-400 mr-1"}),M.createdTime?new Date(M.createdTime).toLocaleDateString("ru-RU"):"-"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(yn,{className:"h-3 w-3 text-gray-400 mr-1"}),M.responsiblePerson||M.responsible||"-"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500",children:n.jsx("button",{onClick:()=>{console.log("Project actions:",M)},className:"text-primary-600 hover:text-primary-800",children:"Подробнее"})})]},M.id))})]})}),S.length===0&&n.jsxs("div",{className:"text-center py-8",children:[n.jsx(br,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-500",children:"Проекты не найдены"})]})]})]})};function cE(e){var t,r,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;te===0?0:e>0?1:-1,Zr=e=>typeof e=="number"&&e!=+e,Ha=e=>typeof e=="string"&&e.indexOf("%")===e.length-1,ve=e=>(typeof e=="number"||e instanceof Number)&&!Zr(e),Xn=e=>ve(e)||typeof e=="string",BF=0,dc=e=>{var t=++BF;return"".concat(e||"").concat(t)},ur=function(t,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!ve(t)&&typeof t!="string")return s;var i;if(Ha(t)){if(r==null)return s;var l=t.indexOf("%");i=r*parseFloat(t.slice(0,l))/100}else i=+t;return Zr(i)&&(i=s),a&&r!=null&&i>r&&(i=r),i},mE=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},s=0;ss&&(typeof t=="function"?t(s):mi(s,t))===r)}var ot=e=>e===null||typeof e>"u",Oc=e=>ot(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1)),UF=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function py(e){if(typeof e!="string")return!1;var t=UF;return t.includes(e)}var HF=["viewBox","children"],Kw=["points","pathLength"],Qh={svg:HF,polygon:Kw,polyline:Kw},gy=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(x.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var s={};return Object.keys(r).forEach(a=>{py(a)&&(s[a]=i=>r[a](r,i))}),s},VF=(e,t,r)=>s=>(e(t,r,s),null),Pf=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var s=null;return Object.keys(e).forEach(a=>{var i=e[a];py(a)&&typeof i=="function"&&(s||(s={}),s[a]=VF(i,t,r))}),s},KF=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"];function hE(e){if(typeof e!="string")return!1;var t=KF;return t.includes(e)}function As(e){var t=Object.entries(e).filter(r=>{var[s]=r;return hE(s)});return Object.fromEntries(t)}var Ww=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",qw=null,ex=null,xE=e=>{if(e===qw&&Array.isArray(ex))return ex;var t=[];return x.Children.forEach(e,r=>{ot(r)||(zF.isFragment(r)?t=t.concat(xE(r.props.children)):t.push(r))}),ex=t,qw=e,t};function yy(e,t){var r=[],s=[];return Array.isArray(t)?s=t.map(a=>Ww(a)):s=[Ww(t)],xE(e).forEach(a=>{var i=mi(a,"type.displayName")||mi(a,"type.name");s.indexOf(i)!==-1&&r.push(a)}),r}var pE=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0,WF=(e,t,r,s)=>{var a;if(typeof t=="symbol"||typeof t=="number")return!0;var i=(a=s&&(Qh==null?void 0:Qh[s]))!==null&&a!==void 0?a:[],l=t.startsWith("data-"),o=typeof e!="function"&&(!!s&&i.includes(t)||hE(t)),c=!!r&&py(t);return l||o||c},it=(e,t,r)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var s=e;if(x.isValidElement(e)&&(s=e.props),typeof s!="object"&&typeof s!="function")return null;var a={};return Object.keys(s).forEach(i=>{var l;WF((l=s)===null||l===void 0?void 0:l[i],i,t,r)&&(a[i]=s[i])}),a},qF=["children","width","height","viewBox","className","style","title","desc"];function Wp(){return Wp=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:r,width:s,height:a,viewBox:i,className:l,style:o,title:c,desc:d}=e,u=GF(e,qF),m=i||{width:s,height:a,x:0,y:0},f=Ie("recharts-surface",l);return x.createElement("svg",Wp({},it(u,!0,"svg"),{className:f,width:s,height:a,style:o,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height),ref:t}),x.createElement("title",null,c),x.createElement("desc",null,d),r)}),XF=["children","className"];function qp(){return qp=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:r,className:s}=e,a=ZF(e,XF),i=Ie("recharts-layer",s);return x.createElement("g",qp({className:i},it(a,!0),{ref:t}),r)}),QF=x.createContext(null);function Ye(e){return function(){return e}}const yE=Math.cos,em=Math.sin,zn=Math.sqrt,tm=Math.PI,Af=2*tm,Gp=Math.PI,Yp=2*Gp,Oa=1e-6,e9=Yp-Oa;function vE(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return vE;const r=10**t;return function(s){this._+=s[0];for(let a=1,i=s.length;aOa)if(!(Math.abs(m*c-d*u)>Oa)||!i)this._append`L${this._x1=t},${this._y1=r}`;else{let h=s-l,p=a-o,v=c*c+d*d,y=h*h+p*p,g=Math.sqrt(v),b=Math.sqrt(f),j=i*Math.tan((Gp-Math.acos((v+f-y)/(2*g*b)))/2),w=j/b,C=j/g;Math.abs(w-1)>Oa&&this._append`L${t+w*u},${r+w*m}`,this._append`A${i},${i},0,0,${+(m*h>u*p)},${this._x1=t+C*c},${this._y1=r+C*d}`}}arc(t,r,s,a,i,l){if(t=+t,r=+r,s=+s,l=!!l,s<0)throw new Error(`negative radius: ${s}`);let o=s*Math.cos(a),c=s*Math.sin(a),d=t+o,u=r+c,m=1^l,f=l?a-i:i-a;this._x1===null?this._append`M${d},${u}`:(Math.abs(this._x1-d)>Oa||Math.abs(this._y1-u)>Oa)&&this._append`L${d},${u}`,s&&(f<0&&(f=f%Yp+Yp),f>e9?this._append`A${s},${s},0,1,${m},${t-o},${r-c}A${s},${s},0,1,${m},${this._x1=d},${this._y1=u}`:f>Oa&&this._append`A${s},${s},0,${+(f>=Gp)},${m},${this._x1=t+s*Math.cos(i)},${this._y1=r+s*Math.sin(i)}`)}rect(t,r,s,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${s=+s}v${+a}h${-s}Z`}toString(){return this._}}function vy(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const s=Math.floor(r);if(!(s>=0))throw new RangeError(`invalid digits: ${r}`);t=s}return e},()=>new r9(t)}function by(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function bE(e){this._context=e}bE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Tf(e){return new bE(e)}function jE(e){return e[0]}function wE(e){return e[1]}function NE(e,t){var r=Ye(!0),s=null,a=Tf,i=null,l=vy(o);e=typeof e=="function"?e:e===void 0?jE:Ye(e),t=typeof t=="function"?t:t===void 0?wE:Ye(t);function o(c){var d,u=(c=by(c)).length,m,f=!1,h;for(s==null&&(i=a(h=l())),d=0;d<=u;++d)!(d=h;--p)o.point(j[p],w[p]);o.lineEnd(),o.areaEnd()}g&&(j[f]=+e(y,f,m),w[f]=+t(y,f,m),o.point(s?+s(y,f,m):j[f],r?+r(y,f,m):w[f]))}if(b)return o=null,b+""||null}function u(){return NE().defined(a).curve(l).context(i)}return d.x=function(m){return arguments.length?(e=typeof m=="function"?m:Ye(+m),s=null,d):e},d.x0=function(m){return arguments.length?(e=typeof m=="function"?m:Ye(+m),d):e},d.x1=function(m){return arguments.length?(s=m==null?null:typeof m=="function"?m:Ye(+m),d):s},d.y=function(m){return arguments.length?(t=typeof m=="function"?m:Ye(+m),r=null,d):t},d.y0=function(m){return arguments.length?(t=typeof m=="function"?m:Ye(+m),d):t},d.y1=function(m){return arguments.length?(r=m==null?null:typeof m=="function"?m:Ye(+m),d):r},d.lineX0=d.lineY0=function(){return u().x(e).y(t)},d.lineY1=function(){return u().x(e).y(r)},d.lineX1=function(){return u().x(s).y(t)},d.defined=function(m){return arguments.length?(a=typeof m=="function"?m:Ye(!!m),d):a},d.curve=function(m){return arguments.length?(l=m,i!=null&&(o=l(i)),d):l},d.context=function(m){return arguments.length?(m==null?i=o=null:o=l(i=m),d):i},d}class SE{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function n9(e){return new SE(e,!0)}function s9(e){return new SE(e,!1)}const jy={draw(e,t){const r=zn(t/tm);e.moveTo(r,0),e.arc(0,0,r,0,Af)}},a9={draw(e,t){const r=zn(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},kE=zn(1/3),i9=kE*2,l9={draw(e,t){const r=zn(t/i9),s=r*kE;e.moveTo(0,-r),e.lineTo(s,0),e.lineTo(0,r),e.lineTo(-s,0),e.closePath()}},o9={draw(e,t){const r=zn(t),s=-r/2;e.rect(s,s,r,r)}},c9=.8908130915292852,CE=em(tm/10)/em(7*tm/10),d9=em(Af/10)*CE,u9=-yE(Af/10)*CE,m9={draw(e,t){const r=zn(t*c9),s=d9*r,a=u9*r;e.moveTo(0,-r),e.lineTo(s,a);for(let i=1;i<5;++i){const l=Af*i/5,o=yE(l),c=em(l);e.lineTo(c*r,-o*r),e.lineTo(o*s-c*a,c*s+o*a)}e.closePath()}},tx=zn(3),f9={draw(e,t){const r=-zn(t/(tx*3));e.moveTo(0,r*2),e.lineTo(-tx*r,-r),e.lineTo(tx*r,-r),e.closePath()}},sn=-.5,an=zn(3)/2,Xp=1/zn(12),h9=(Xp/2+1)*3,x9={draw(e,t){const r=zn(t/h9),s=r/2,a=r*Xp,i=s,l=r*Xp+r,o=-i,c=l;e.moveTo(s,a),e.lineTo(i,l),e.lineTo(o,c),e.lineTo(sn*s-an*a,an*s+sn*a),e.lineTo(sn*i-an*l,an*i+sn*l),e.lineTo(sn*o-an*c,an*o+sn*c),e.lineTo(sn*s+an*a,sn*a-an*s),e.lineTo(sn*i+an*l,sn*l-an*i),e.lineTo(sn*o+an*c,sn*c-an*o),e.closePath()}};function p9(e,t){let r=null,s=vy(a);e=typeof e=="function"?e:Ye(e||jy),t=typeof t=="function"?t:Ye(t===void 0?64:+t);function a(){let i;if(r||(r=i=s()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),i)return r=null,i+""||null}return a.type=function(i){return arguments.length?(e=typeof i=="function"?i:Ye(i),a):e},a.size=function(i){return arguments.length?(t=typeof i=="function"?i:Ye(+i),a):t},a.context=function(i){return arguments.length?(r=i??null,a):r},a}function rm(){}function nm(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function EE(e){this._context=e}EE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:nm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:nm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function g9(e){return new EE(e)}function PE(e){this._context=e}PE.prototype={areaStart:rm,areaEnd:rm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:nm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function y9(e){return new PE(e)}function AE(e){this._context=e}AE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,s=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,s):this._context.moveTo(r,s);break;case 3:this._point=4;default:nm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function v9(e){return new AE(e)}function TE(e){this._context=e}TE.prototype={areaStart:rm,areaEnd:rm,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function b9(e){return new TE(e)}function Gw(e){return e<0?-1:1}function Yw(e,t,r){var s=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(s||a<0&&-0),l=(r-e._y1)/(a||s<0&&-0),o=(i*a+l*s)/(s+a);return(Gw(i)+Gw(l))*Math.min(Math.abs(i),Math.abs(l),.5*Math.abs(o))||0}function Xw(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function rx(e,t,r){var s=e._x0,a=e._y0,i=e._x1,l=e._y1,o=(i-s)/3;e._context.bezierCurveTo(s+o,a+o*t,i-o,l-o*r,i,l)}function sm(e){this._context=e}sm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:rx(this,this._t0,Xw(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,rx(this,Xw(this,r=Yw(this,e,t)),r);break;default:rx(this,this._t0,r=Yw(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function _E(e){this._context=new OE(e)}(_E.prototype=Object.create(sm.prototype)).point=function(e,t){sm.prototype.point.call(this,t,e)};function OE(e){this._context=e}OE.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,s,a,i){this._context.bezierCurveTo(t,e,s,r,i,a)}};function j9(e){return new sm(e)}function w9(e){return new _E(e)}function ME(e){this._context=e}ME.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var s=Zw(e),a=Zw(t),i=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/i[t];for(i[r-1]=(e[r]+a[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function S9(e){return new _f(e,.5)}function k9(e){return new _f(e,0)}function C9(e){return new _f(e,1)}function yl(e,t){if((l=e.length)>1)for(var r=1,s,a,i=e[t[0]],l,o=i.length;r=0;)r[t]=t;return r}function E9(e,t){return e[t]}function P9(e){const t=[];return t.key=e,t}function A9(){var e=Ye([]),t=Zp,r=yl,s=E9;function a(i){var l=Array.from(e.apply(this,arguments),P9),o,c=l.length,d=-1,u;for(const m of i)for(o=0,++d;o0){for(var r,s,a=0,i=e[0].length,l;a0){for(var r=0,s=e[t[0]],a,i=s.length;r0)||!((i=(a=e[t[0]]).length)>0))){for(var r=0,s=1,a,i,l;s{var t="symbol".concat(Oc(e));return DE[t]||jy},B9=(e,t,r)=>{if(t==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var s=18*F9;return 1.25*e*e*(Math.tan(s)-Math.tan(s*2)*Math.tan(s)**2)}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},U9=(e,t)=>{DE["symbol".concat(Oc(e))]=t},$E=e=>{var{type:t="circle",size:r=64,sizeType:s="area"}=e,a=I9(e,M9),i=Qw(Qw({},a),{},{type:t,size:r,sizeType:s}),l="circle";typeof t=="string"&&(l=t);var o=()=>{var f=z9(l),h=p9().type(f).size(B9(r,s,l));return h()},{className:c,cx:d,cy:u}=i,m=it(i,!0);return d===+d&&u===+u&&r===+r?x.createElement("path",Jp({},m,{className:Ie("recharts-symbols",c),transform:"translate(".concat(d,", ").concat(u,")"),d:o()})):null};$E.registerSymbol=U9;var LE={},IE={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,s){const a=new Map;for(let i=0;i=0}e.isLength=t})(FE);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=FE;function r(s){return s!=null&&typeof s!="function"&&t.isLength(s.length)}e.isArrayLike=r})(Of);var zE={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="object"&&r!==null}e.isObjectLike=t})(zE);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Of,r=zE;function s(a){return r.isObjectLike(a)&&t.isArrayLike(a)}e.isArrayLikeObject=s})(RE);var BE={},UE={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=pf;function r(s){return function(a){return t.get(a,s)}}e.property=r})(UE);var HE={},nx={},sx={},Ny={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r!==null&&(typeof r=="object"||typeof r=="function")}e.isObject=t})(Ny);var Sy={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==null||typeof r!="object"&&typeof r!="function"}e.isPrimitive=t})(Sy);var ky={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,s){return r===s||Number.isNaN(r)&&Number.isNaN(s)}e.eq=t})(ky);var eN;function H9(){return eN||(eN=1,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Cy(),r=Ny,s=Sy,a=ky;function i(m,f,h){return typeof h!="function"?t.isMatch(m,f):l(m,f,function p(v,y,g,b,j,w){const C=h(v,y,g,b,j,w);return C!==void 0?!!C:l(v,y,p,w)},new Map)}function l(m,f,h,p){if(f===m)return!0;switch(typeof f){case"object":return o(m,f,h,p);case"function":return Object.keys(f).length>0?l(m,{...f},h,p):a.eq(m,f);default:return r.isObject(m)?typeof f=="string"?f==="":!0:a.eq(m,f)}}function o(m,f,h,p){if(f==null)return!0;if(Array.isArray(f))return d(m,f,h,p);if(f instanceof Map)return c(m,f,h,p);if(f instanceof Set)return u(m,f,h,p);const v=Object.keys(f);if(m==null)return v.length===0;if(v.length===0)return!0;if(p&&p.has(f))return p.get(f)===m;p&&p.set(f,m);try{for(let y=0;y{})}e.isMatch=r}(nx)),nx}var VE={},Ey={},KE={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return Object.getOwnPropertySymbols(r).filter(s=>Object.prototype.propertyIsEnumerable.call(r,s))}e.getSymbols=t})(KE);var Py={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r==null?r===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(r)}e.getTag=t})(Py);var Ay={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t="[object RegExp]",r="[object String]",s="[object Number]",a="[object Boolean]",i="[object Arguments]",l="[object Symbol]",o="[object Date]",c="[object Map]",d="[object Set]",u="[object Array]",m="[object Function]",f="[object ArrayBuffer]",h="[object Object]",p="[object Error]",v="[object DataView]",y="[object Uint8Array]",g="[object Uint8ClampedArray]",b="[object Uint16Array]",j="[object Uint32Array]",w="[object BigUint64Array]",C="[object Int8Array]",N="[object Int16Array]",A="[object Int32Array]",_="[object BigInt64Array]",I="[object Float32Array]",B="[object Float64Array]";e.argumentsTag=i,e.arrayBufferTag=f,e.arrayTag=u,e.bigInt64ArrayTag=_,e.bigUint64ArrayTag=w,e.booleanTag=a,e.dataViewTag=v,e.dateTag=o,e.errorTag=p,e.float32ArrayTag=I,e.float64ArrayTag=B,e.functionTag=m,e.int16ArrayTag=N,e.int32ArrayTag=A,e.int8ArrayTag=C,e.mapTag=c,e.numberTag=s,e.objectTag=h,e.regexpTag=t,e.setTag=d,e.stringTag=r,e.symbolTag=l,e.uint16ArrayTag=b,e.uint32ArrayTag=j,e.uint8ArrayTag=y,e.uint8ClampedArrayTag=g})(Ay);var WE={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}e.isTypedArray=t})(WE);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=KE,r=Py,s=Ay,a=Sy,i=WE;function l(u,m){return o(u,void 0,u,new Map,m)}function o(u,m,f,h=new Map,p=void 0){const v=p==null?void 0:p(u,m,f,h);if(v!==void 0)return v;if(a.isPrimitive(u))return u;if(h.has(u))return h.get(u);if(Array.isArray(u)){const y=new Array(u.length);h.set(u,y);for(let g=0;gt.isMatch(i,a)}e.matches=s})(HE);var qE={},GE={},YE={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Ey,r=Ay;function s(a,i){return t.cloneDeepWith(a,(l,o,c,d)=>{const u=i==null?void 0:i(l,o,c,d);if(u!==void 0)return u;if(typeof a=="object")switch(Object.prototype.toString.call(a)){case r.numberTag:case r.stringTag:case r.booleanTag:{const m=new a.constructor(a==null?void 0:a.valueOf());return t.copyProperties(m,a),m}case r.argumentsTag:{const m={};return t.copyProperties(m,a),m.length=a.length,m[Symbol.iterator]=a[Symbol.iterator],m}default:return}})}e.cloneDeepWith=s})(YE);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=YE;function r(s){return t.cloneDeepWith(s)}e.cloneDeep=r})(GE);var XE={},Ty={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=/^(?:0|[1-9]\d*)$/;function r(s,a=Number.MAX_SAFE_INTEGER){switch(typeof s){case"number":return Number.isInteger(s)&&s>=0&&se,bt=()=>{var e=x.useContext(_y);return e?e.store.dispatch:W9},xu=()=>{},q9=()=>xu,G9=(e,t)=>e===t;function pe(e){var t=x.useContext(_y);return DC.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:q9,t?t.store.getState:xu,t?t.store.getState:xu,t?e:xu,G9)}function Y9(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function X9(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function Z9(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(s=>typeof s=="function"?`function ${s.name||"unnamed"}()`:typeof s).join(", ");throw new TypeError(`${t}[${r}]`)}}var nN=e=>Array.isArray(e)?e:[e];function J9(e){const t=Array.isArray(e[0])?e[0]:e;return Z9(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function Q9(e,t){const r=[],{length:s}=e;for(let a=0;a{r=Id(),l.resetResultsCount()},l.resultsCount=()=>i,l.resetResultsCount=()=>{i=0},l}function nz(e,...t){const r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,s=(...a)=>{let i=0,l=0,o,c={},d=a.pop();typeof d=="object"&&(c=d,d=a.pop()),Y9(d,`createSelector expects an output function after the inputs, but received: [${typeof d}]`);const u={...r,...c},{memoize:m,memoizeOptions:f=[],argsMemoize:h=JE,argsMemoizeOptions:p=[]}=u,v=nN(f),y=nN(p),g=J9(a),b=m(function(){return i++,d.apply(null,arguments)},...v),j=h(function(){l++;const C=Q9(g,arguments);return o=b.apply(null,C),o},...y);return Object.assign(j,{resultFunc:d,memoizedResultFunc:b,dependencies:g,dependencyRecomputations:()=>l,resetDependencyRecomputations:()=>{l=0},lastResult:()=>o,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:m,argsMemoize:h})};return Object.assign(s,{withTypes:()=>s}),s}var Q=nz(JE),sz=Object.assign((e,t=Q)=>{X9(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const r=Object.keys(e),s=r.map(i=>e[i]);return t(s,(...i)=>i.reduce((l,o,c)=>(l[r[c]]=o,l),{}))},{withTypes:()=>sz}),QE={},e3={},t3={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(s){return typeof s=="symbol"?1:s===null?2:s===void 0?3:s!==s?4:0}const r=(s,a,i)=>{if(s!==a){const l=t(s),o=t(a);if(l===o&&l===0){if(sa)return i==="desc"?-1:1}return i==="desc"?o-l:l-o}return 0};e.compareValues=r})(t3);var r3={},Oy={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return typeof r=="symbol"||r instanceof Symbol}e.isSymbol=t})(Oy);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Oy,r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function a(i,l){return Array.isArray(i)?!1:typeof i=="number"||typeof i=="boolean"||i==null||t.isSymbol(i)?!0:typeof i=="string"&&(s.test(i)||!r.test(i))||l!=null&&Object.hasOwn(l,i)}e.isKey=a})(r3);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=t3,r=r3,s=gf;function a(i,l,o,c){if(i==null)return[];o=c?void 0:o,Array.isArray(i)||(i=Object.values(i)),Array.isArray(l)||(l=l==null?[null]:[l]),l.length===0&&(l=[null]),Array.isArray(o)||(o=o==null?[]:[o]),o=o.map(h=>String(h));const d=(h,p)=>{let v=h;for(let y=0;yp==null||h==null?p:typeof h=="object"&&"key"in h?Object.hasOwn(p,h.key)?p[h.key]:d(p,h.path):typeof h=="function"?h(p):Array.isArray(h)?d(p,h):typeof p=="object"?p[h]:p,m=l.map(h=>(Array.isArray(h)&&h.length===1&&(h=h[0]),h==null||typeof h=="function"||Array.isArray(h)||r.isKey(h)?h:{key:h,path:s.toPath(h)}));return i.map(h=>({original:h,criteria:m.map(p=>u(p,h))})).slice().sort((h,p)=>{for(let v=0;vh.original)}e.orderBy=a})(e3);var n3={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,s=1){const a=[],i=Math.floor(s),l=(o,c)=>{for(let d=0;d1&&s.isIterateeCall(i,l[0],l[1])?l=[]:o>2&&s.isIterateeCall(l[0],l[1],l[2])&&(l=[l[0]]),t.orderBy(i,r.flatten(l),["asc"])}e.sortBy=a})(QE);var az=QE.sortBy;const Mf=Jn(az);var s3=e=>e.legend.settings,iz=e=>e.legend.size,lz=e=>e.legend.payload;Q([lz,s3],(e,t)=>{var{itemSorter:r}=t,s=e.flat(1);return r?Mf(s,r):s});var Rd=1;function oz(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,r]=x.useState({height:0,left:0,top:0,width:0}),s=x.useCallback(a=>{if(a!=null){var i=a.getBoundingClientRect(),l={height:i.height,left:i.left,top:i.top,width:i.width};(Math.abs(l.height-t.height)>Rd||Math.abs(l.left-t.left)>Rd||Math.abs(l.top-t.top)>Rd||Math.abs(l.width-t.width)>Rd)&&r({height:l.height,left:l.left,top:l.top,width:l.width})}},[t.width,t.height,t.top,t.left,...e]);return[t,s]}function Xt(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var cz=typeof Symbol=="function"&&Symbol.observable||"@@observable",aN=cz,ax=()=>Math.random().toString(36).substring(7).split("").join("."),dz={INIT:`@@redux/INIT${ax()}`,REPLACE:`@@redux/REPLACE${ax()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${ax()}`},am=dz;function Dy(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function a3(e,t,r){if(typeof e!="function")throw new Error(Xt(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(Xt(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(Xt(1));return r(a3)(e,t)}let s=e,a=t,i=new Map,l=i,o=0,c=!1;function d(){l===i&&(l=new Map,i.forEach((y,g)=>{l.set(g,y)}))}function u(){if(c)throw new Error(Xt(3));return a}function m(y){if(typeof y!="function")throw new Error(Xt(4));if(c)throw new Error(Xt(5));let g=!0;d();const b=o++;return l.set(b,y),function(){if(g){if(c)throw new Error(Xt(6));g=!1,d(),l.delete(b),i=null}}}function f(y){if(!Dy(y))throw new Error(Xt(7));if(typeof y.type>"u")throw new Error(Xt(8));if(typeof y.type!="string")throw new Error(Xt(17));if(c)throw new Error(Xt(9));try{c=!0,a=s(a,y)}finally{c=!1}return(i=l).forEach(b=>{b()}),y}function h(y){if(typeof y!="function")throw new Error(Xt(10));s=y,f({type:am.REPLACE})}function p(){const y=m;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Xt(11));function b(){const w=g;w.next&&w.next(u())}return b(),{unsubscribe:y(b)}},[aN](){return this}}}return f({type:am.INIT}),{dispatch:f,subscribe:m,getState:u,replaceReducer:h,[aN]:p}}function uz(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:am.INIT})>"u")throw new Error(Xt(12));if(typeof r(void 0,{type:am.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Xt(13))})}function i3(e){const t=Object.keys(e),r={};for(let i=0;i"u")throw o&&o.type,new Error(Xt(14));d[m]=p,c=c||p!==h}return c=c||s.length!==Object.keys(l).length,c?d:l}}function im(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...s)=>t(r(...s)))}function mz(...e){return t=>(r,s)=>{const a=t(r,s);let i=()=>{throw new Error(Xt(15))};const l={getState:a.getState,dispatch:(c,...d)=>i(c,...d)},o=e.map(c=>c(l));return i=im(...o)(a.dispatch),{...a,dispatch:i}}}function l3(e){return Dy(e)&&"type"in e&&typeof e.type=="string"}var o3=Symbol.for("immer-nothing"),iN=Symbol.for("immer-draftable"),Jr=Symbol.for("immer-state");function On(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vl=Object.getPrototypeOf;function fi(e){return!!e&&!!e[Jr]}function Ns(e){var t;return e?c3(e)||Array.isArray(e)||!!e[iN]||!!((t=e.constructor)!=null&&t[iN])||Mc(e)||$f(e):!1}var fz=Object.prototype.constructor.toString();function c3(e){if(!e||typeof e!="object")return!1;const t=vl(e);if(t===null)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object?!0:typeof r=="function"&&Function.toString.call(r)===fz}function lm(e,t){Df(e)===0?Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)}):e.forEach((r,s)=>t(s,r,e))}function Df(e){const t=e[Jr];return t?t.type_:Array.isArray(e)?1:Mc(e)?2:$f(e)?3:0}function Qp(e,t){return Df(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function d3(e,t,r){const s=Df(e);s===2?e.set(t,r):s===3?e.add(r):e[t]=r}function hz(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Mc(e){return e instanceof Map}function $f(e){return e instanceof Set}function Ma(e){return e.copy_||e.base_}function eg(e,t){if(Mc(e))return new Map(e);if($f(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=c3(e);if(t===!0||t==="class_only"&&!r){const s=Object.getOwnPropertyDescriptors(e);delete s[Jr];let a=Reflect.ownKeys(s);for(let i=0;i1&&Object.defineProperties(e,{set:{value:Fd},add:{value:Fd},clear:{value:Fd},delete:{value:Fd}}),Object.freeze(e),t&&Object.values(e).forEach(r=>$y(r,!0))),e}function Fd(){On(2)}function Lf(e){return Object.isFrozen(e)}var xz={};function hi(e){const t=xz[e];return t||On(0,e),t}var uc;function u3(){return uc}function pz(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function lN(e,t){t&&(hi("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function tg(e){rg(e),e.drafts_.forEach(gz),e.drafts_=null}function rg(e){e===uc&&(uc=e.parent_)}function oN(e){return uc=pz(uc,e)}function gz(e){const t=e[Jr];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function cN(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[Jr].modified_&&(tg(t),On(4)),Ns(e)&&(e=om(t,e),t.parent_||cm(t,e)),t.patches_&&hi("Patches").generateReplacementPatches_(r[Jr].base_,e,t.patches_,t.inversePatches_)):e=om(t,r,[]),tg(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==o3?e:void 0}function om(e,t,r){if(Lf(t))return t;const s=t[Jr];if(!s)return lm(t,(a,i)=>dN(e,s,t,a,i,r)),t;if(s.scope_!==e)return t;if(!s.modified_)return cm(e,s.base_,!0),s.base_;if(!s.finalized_){s.finalized_=!0,s.scope_.unfinalizedDrafts_--;const a=s.copy_;let i=a,l=!1;s.type_===3&&(i=new Set(a),a.clear(),l=!0),lm(i,(o,c)=>dN(e,s,a,o,c,r,l)),cm(e,a,!1),r&&e.patches_&&hi("Patches").generatePatches_(s,r,e.patches_,e.inversePatches_)}return s.copy_}function dN(e,t,r,s,a,i,l){if(fi(a)){const o=i&&t&&t.type_!==3&&!Qp(t.assigned_,s)?i.concat(s):void 0,c=om(e,a,o);if(d3(r,s,c),fi(c))e.canAutoFreeze_=!1;else return}else l&&r.add(a);if(Ns(a)&&!Lf(a)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;om(e,a),(!t||!t.scope_.parent_)&&typeof s!="symbol"&&(Mc(r)?r.has(s):Object.prototype.propertyIsEnumerable.call(r,s))&&cm(e,a)}}function cm(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&$y(t,r)}function yz(e,t){const r=Array.isArray(e),s={type_:r?1:0,scope_:t?t.scope_:u3(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let a=s,i=Ly;r&&(a=[s],i=mc);const{revoke:l,proxy:o}=Proxy.revocable(a,i);return s.draft_=o,s.revoke_=l,o}var Ly={get(e,t){if(t===Jr)return e;const r=Ma(e);if(!Qp(r,t))return vz(e,r,t);const s=r[t];return e.finalized_||!Ns(s)?s:s===ix(e.base_,t)?(lx(e),e.copy_[t]=sg(s,e)):s},has(e,t){return t in Ma(e)},ownKeys(e){return Reflect.ownKeys(Ma(e))},set(e,t,r){const s=m3(Ma(e),t);if(s!=null&&s.set)return s.set.call(e.draft_,r),!0;if(!e.modified_){const a=ix(Ma(e),t),i=a==null?void 0:a[Jr];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(hz(r,a)&&(r!==void 0||Qp(e.base_,t)))return!0;lx(e),ng(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return ix(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,lx(e),ng(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Ma(e),s=Reflect.getOwnPropertyDescriptor(r,t);return s&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:s.enumerable,value:r[t]}},defineProperty(){On(11)},getPrototypeOf(e){return vl(e.base_)},setPrototypeOf(){On(12)}},mc={};lm(Ly,(e,t)=>{mc[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});mc.deleteProperty=function(e,t){return mc.set.call(this,e,t,void 0)};mc.set=function(e,t,r){return Ly.set.call(this,e[0],t,r,e[0])};function ix(e,t){const r=e[Jr];return(r?Ma(r):e)[t]}function vz(e,t,r){var a;const s=m3(t,r);return s?"value"in s?s.value:(a=s.get)==null?void 0:a.call(e.draft_):void 0}function m3(e,t){if(!(t in e))return;let r=vl(e);for(;r;){const s=Object.getOwnPropertyDescriptor(r,t);if(s)return s;r=vl(r)}}function ng(e){e.modified_||(e.modified_=!0,e.parent_&&ng(e.parent_))}function lx(e){e.copy_||(e.copy_=eg(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var bz=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,r,s)=>{if(typeof t=="function"&&typeof r!="function"){const i=r;r=t;const l=this;return function(c=i,...d){return l.produce(c,u=>r.call(this,u,...d))}}typeof r!="function"&&On(6),s!==void 0&&typeof s!="function"&&On(7);let a;if(Ns(t)){const i=oN(this),l=sg(t,void 0);let o=!0;try{a=r(l),o=!1}finally{o?tg(i):rg(i)}return lN(i,s),cN(a,i)}else if(!t||typeof t!="object"){if(a=r(t),a===void 0&&(a=t),a===o3&&(a=void 0),this.autoFreeze_&&$y(a,!0),s){const i=[],l=[];hi("Patches").generateReplacementPatches_(t,a,i,l),s(i,l)}return a}else On(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(l,...o)=>this.produceWithPatches(l,c=>t(c,...o));let s,a;return[this.produce(t,r,(l,o)=>{s=l,a=o}),s,a]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){Ns(e)||On(8),fi(e)&&(e=hs(e));const t=oN(this),r=sg(e,void 0);return r[Jr].isManual_=!0,rg(t),r}finishDraft(e,t){const r=e&&e[Jr];(!r||!r.isManual_)&&On(9);const{scope_:s}=r;return lN(s,t),cN(void 0,s)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const a=t[r];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}r>-1&&(t=t.slice(r+1));const s=hi("Patches").applyPatches_;return fi(e)?s(e,t):this.produce(e,a=>s(a,t))}};function sg(e,t){const r=Mc(e)?hi("MapSet").proxyMap_(e,t):$f(e)?hi("MapSet").proxySet_(e,t):yz(e,t);return(t?t.scope_:u3()).drafts_.push(r),r}function hs(e){return fi(e)||On(10,e),f3(e)}function f3(e){if(!Ns(e)||Lf(e))return e;const t=e[Jr];let r;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=eg(e,t.scope_.immer_.useStrictShallowCopy_)}else r=eg(e,!0);return lm(r,(s,a)=>{d3(r,s,f3(a))}),t&&(t.finalized_=!1),r}var jz=new bz,h3=jz.produce;function x3(e){return({dispatch:r,getState:s})=>a=>i=>typeof i=="function"?i(r,s,e):a(i)}var wz=x3(),Nz=x3,Sz=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?im:im.apply(null,arguments)};function vn(e,t){function r(...s){if(t){let a=t(...s);if(!a)throw new Error(Gr(0));return{type:e,payload:a.payload,..."meta"in a&&{meta:a.meta},..."error"in a&&{error:a.error}}}return{type:e,payload:s[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=s=>l3(s)&&s.type===e,r}var p3=class No extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,No.prototype)}static get[Symbol.species](){return No}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new No(...t[0].concat(this)):new No(...t.concat(this))}};function uN(e){return Ns(e)?h3(e,()=>{}):e}function zd(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function kz(e){return typeof e=="boolean"}var Cz=()=>function(t){const{thunk:r=!0,immutableCheck:s=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{};let l=new p3;return r&&(kz(r)?l.push(wz):l.push(Nz(r.extraArgument))),l},Ez="RTK_autoBatch",mN=e=>t=>{setTimeout(t,e)},Pz=(e={type:"raf"})=>t=>(...r)=>{const s=t(...r);let a=!0,i=!1,l=!1;const o=new Set,c=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:mN(10):e.type==="callback"?e.queueNotification:mN(e.timeout),d=()=>{l=!1,i&&(i=!1,o.forEach(u=>u()))};return Object.assign({},s,{subscribe(u){const m=()=>a&&u(),f=s.subscribe(m);return o.add(u),()=>{f(),o.delete(u)}},dispatch(u){var m;try{return a=!((m=u==null?void 0:u.meta)!=null&&m[Ez]),i=!a,i&&(l||(l=!0,c(d))),s.dispatch(u)}finally{a=!0}}})},Az=e=>function(r){const{autoBatch:s=!0}=r??{};let a=new p3(e);return s&&a.push(Pz(typeof s=="object"?s:void 0)),a};function Tz(e){const t=Cz(),{reducer:r=void 0,middleware:s,devTools:a=!0,preloadedState:i=void 0,enhancers:l=void 0}=e||{};let o;if(typeof r=="function")o=r;else if(Dy(r))o=i3(r);else throw new Error(Gr(1));let c;typeof s=="function"?c=s(t):c=t();let d=im;a&&(d=Sz({trace:!1,...typeof a=="object"&&a}));const u=mz(...c),m=Az(u);let f=typeof l=="function"?l(m):m();const h=d(...f);return a3(o,i,h)}function g3(e){const t={},r=[];let s;const a={addCase(i,l){const o=typeof i=="string"?i:i.type;if(!o)throw new Error(Gr(28));if(o in t)throw new Error(Gr(29));return t[o]=l,a},addAsyncThunk(i,l){return l.pending&&(t[i.pending.type]=l.pending),l.rejected&&(t[i.rejected.type]=l.rejected),l.fulfilled&&(t[i.fulfilled.type]=l.fulfilled),l.settled&&r.push({matcher:i.settled,reducer:l.settled}),a},addMatcher(i,l){return r.push({matcher:i,reducer:l}),a},addDefaultCase(i){return s=i,a}};return e(a),[t,r,s]}function _z(e){return typeof e=="function"}function Oz(e,t){let[r,s,a]=g3(t),i;if(_z(e))i=()=>uN(e());else{const o=uN(e);i=()=>o}function l(o=i(),c){let d=[r[c.type],...s.filter(({matcher:u})=>u(c)).map(({reducer:u})=>u)];return d.filter(u=>!!u).length===0&&(d=[a]),d.reduce((u,m)=>{if(m)if(fi(u)){const h=m(u,c);return h===void 0?u:h}else{if(Ns(u))return h3(u,f=>m(f,c));{const f=m(u,c);if(f===void 0){if(u===null)return u;throw Error("A case reducer on a non-draftable value must not return undefined")}return f}}return u},o)}return l.getInitialState=i,l}var Mz="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",Dz=(e=21)=>{let t="",r=e;for(;r--;)t+=Mz[Math.random()*64|0];return t},$z=Symbol.for("rtk-slice-createasyncthunk");function Lz(e,t){return`${e}/${t}`}function Iz({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[$z];return function(a){const{name:i,reducerPath:l=i}=a;if(!i)throw new Error(Gr(11));const o=(typeof a.reducers=="function"?a.reducers(Fz()):a.reducers)||{},c=Object.keys(o),d={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},u={addCase(w,C){const N=typeof w=="string"?w:w.type;if(!N)throw new Error(Gr(12));if(N in d.sliceCaseReducersByType)throw new Error(Gr(13));return d.sliceCaseReducersByType[N]=C,u},addMatcher(w,C){return d.sliceMatchers.push({matcher:w,reducer:C}),u},exposeAction(w,C){return d.actionCreators[w]=C,u},exposeCaseReducer(w,C){return d.sliceCaseReducersByName[w]=C,u}};c.forEach(w=>{const C=o[w],N={reducerName:w,type:Lz(i,w),createNotation:typeof a.reducers=="function"};Bz(C)?Hz(N,C,u,t):zz(N,C,u)});function m(){const[w={},C=[],N=void 0]=typeof a.extraReducers=="function"?g3(a.extraReducers):[a.extraReducers],A={...w,...d.sliceCaseReducersByType};return Oz(a.initialState,_=>{for(let I in A)_.addCase(I,A[I]);for(let I of d.sliceMatchers)_.addMatcher(I.matcher,I.reducer);for(let I of C)_.addMatcher(I.matcher,I.reducer);N&&_.addDefaultCase(N)})}const f=w=>w,h=new Map,p=new WeakMap;let v;function y(w,C){return v||(v=m()),v(w,C)}function g(){return v||(v=m()),v.getInitialState()}function b(w,C=!1){function N(_){let I=_[w];return typeof I>"u"&&C&&(I=zd(p,N,g)),I}function A(_=f){const I=zd(h,C,()=>new WeakMap);return zd(I,_,()=>{const B={};for(const[z,T]of Object.entries(a.selectors??{}))B[z]=Rz(T,_,()=>zd(p,_,g),C);return B})}return{reducerPath:w,getSelectors:A,get selectors(){return A(N)},selectSlice:N}}const j={name:i,reducer:y,actions:d.actionCreators,caseReducers:d.sliceCaseReducersByName,getInitialState:g,...b(l),injectInto(w,{reducerPath:C,...N}={}){const A=C??l;return w.inject({reducerPath:A,reducer:y},N),{...j,...b(A,!0)}}};return j}}function Rz(e,t,r,s){function a(i,...l){let o=t(i);return typeof o>"u"&&s&&(o=r()),e(o,...l)}return a.unwrapped=e,a}var rn=Iz();function Fz(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function zz({type:e,reducerName:t,createNotation:r},s,a){let i,l;if("reducer"in s){if(r&&!Uz(s))throw new Error(Gr(17));i=s.reducer,l=s.prepare}else i=s;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,l?vn(e,l):vn(e))}function Bz(e){return e._reducerDefinitionType==="asyncThunk"}function Uz(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Hz({type:e,reducerName:t},r,s,a){if(!a)throw new Error(Gr(18));const{payloadCreator:i,fulfilled:l,pending:o,rejected:c,settled:d,options:u}=r,m=a(e,i,u);s.exposeAction(t,m),l&&s.addCase(m.fulfilled,l),o&&s.addCase(m.pending,o),c&&s.addCase(m.rejected,c),d&&s.addMatcher(m.settled,d),s.exposeCaseReducer(t,{fulfilled:l||Bd,pending:o||Bd,rejected:c||Bd,settled:d||Bd})}function Bd(){}var Vz="task",y3="listener",v3="completed",Iy="cancelled",Kz=`task-${Iy}`,Wz=`task-${v3}`,ag=`${y3}-${Iy}`,qz=`${y3}-${v3}`,If=class{constructor(e){ch(this,"name","TaskAbortError");ch(this,"message");this.code=e,this.message=`${Vz} ${Iy} (reason: ${e})`}},Ry=(e,t)=>{if(typeof e!="function")throw new TypeError(Gr(32))},dm=()=>{},b3=(e,t=dm)=>(e.catch(t),e),j3=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Ja=(e,t)=>{const r=e.signal;r.aborted||("reason"in r||Object.defineProperty(r,"reason",{enumerable:!0,value:t,configurable:!0,writable:!0}),e.abort(t))},Qa=e=>{if(e.aborted){const{reason:t}=e;throw new If(t)}};function w3(e,t){let r=dm;return new Promise((s,a)=>{const i=()=>a(new If(e.reason));if(e.aborted){i();return}r=j3(e,i),t.finally(()=>r()).then(s,a)}).finally(()=>{r=dm})}var Gz=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof If?"cancelled":"rejected",error:r}}finally{t==null||t()}},um=e=>t=>b3(w3(e,t).then(r=>(Qa(e),r))),N3=e=>{const t=um(e);return r=>t(new Promise(s=>setTimeout(s,r)))},{assign:sl}=Object,fN={},Rf="listenerMiddleware",Yz=(e,t)=>{const r=s=>j3(e,()=>Ja(s,e.reason));return(s,a)=>{Ry(s);const i=new AbortController;r(i);const l=Gz(async()=>{Qa(e),Qa(i.signal);const o=await s({pause:um(i.signal),delay:N3(i.signal),signal:i.signal});return Qa(i.signal),o},()=>Ja(i,Wz));return a!=null&&a.autoJoin&&t.push(l.catch(dm)),{result:um(e)(l),cancel(){Ja(i,Kz)}}}},Xz=(e,t)=>{const r=async(s,a)=>{Qa(t);let i=()=>{};const o=[new Promise((c,d)=>{let u=e({predicate:s,effect:(m,f)=>{f.unsubscribe(),c([m,f.getState(),f.getOriginalState()])}});i=()=>{u(),d()}})];a!=null&&o.push(new Promise(c=>setTimeout(c,a,null)));try{const c=await w3(t,Promise.race(o));return Qa(t),c}finally{i()}};return(s,a)=>b3(r(s,a))},S3=e=>{let{type:t,actionCreator:r,matcher:s,predicate:a,effect:i}=e;if(t)a=vn(t).match;else if(r)t=r.type,a=r.match;else if(s)a=s;else if(!a)throw new Error(Gr(21));return Ry(i),{predicate:a,type:t,effect:i}},k3=sl(e=>{const{type:t,predicate:r,effect:s}=S3(e);return{id:Dz(),effect:s,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Gr(22))}}},{withTypes:()=>k3}),hN=(e,t)=>{const{type:r,effect:s,predicate:a}=S3(t);return Array.from(e.values()).find(i=>(typeof r=="string"?i.type===r:i.predicate===a)&&i.effect===s)},ig=e=>{e.pending.forEach(t=>{Ja(t,ag)})},Zz=e=>()=>{e.forEach(ig),e.clear()},xN=(e,t,r)=>{try{e(t,r)}catch(s){setTimeout(()=>{throw s},0)}},C3=sl(vn(`${Rf}/add`),{withTypes:()=>C3}),Jz=vn(`${Rf}/removeAll`),E3=sl(vn(`${Rf}/remove`),{withTypes:()=>E3}),Qz=(...e)=>{console.error(`${Rf}/error`,...e)},Dc=(e={})=>{const t=new Map,{extra:r,onError:s=Qz}=e;Ry(s);const a=u=>(u.unsubscribe=()=>t.delete(u.id),t.set(u.id,u),m=>{u.unsubscribe(),m!=null&&m.cancelActive&&ig(u)}),i=u=>{const m=hN(t,u)??k3(u);return a(m)};sl(i,{withTypes:()=>i});const l=u=>{const m=hN(t,u);return m&&(m.unsubscribe(),u.cancelActive&&ig(m)),!!m};sl(l,{withTypes:()=>l});const o=async(u,m,f,h)=>{const p=new AbortController,v=Xz(i,p.signal),y=[];try{u.pending.add(p),await Promise.resolve(u.effect(m,sl({},f,{getOriginalState:h,condition:(g,b)=>v(g,b).then(Boolean),take:v,delay:N3(p.signal),pause:um(p.signal),extra:r,signal:p.signal,fork:Yz(p.signal,y),unsubscribe:u.unsubscribe,subscribe:()=>{t.set(u.id,u)},cancelActiveListeners:()=>{u.pending.forEach((g,b,j)=>{g!==p&&(Ja(g,ag),j.delete(g))})},cancel:()=>{Ja(p,ag),u.pending.delete(p)},throwIfCancelled:()=>{Qa(p.signal)}})))}catch(g){g instanceof If||xN(s,g,{raisedBy:"effect"})}finally{await Promise.all(y),Ja(p,qz),u.pending.delete(p)}},c=Zz(t);return{middleware:u=>m=>f=>{if(!l3(f))return m(f);if(C3.match(f))return i(f.payload);if(Jz.match(f)){c();return}if(E3.match(f))return l(f.payload);let h=u.getState();const p=()=>{if(h===fN)throw new Error(Gr(23));return h};let v;try{if(v=m(f),t.size>0){const y=u.getState(),g=Array.from(t.values());for(const b of g){let j=!1;try{j=b.predicate(f,y,h)}catch(w){j=!1,xN(s,w,{raisedBy:"predicate"})}j&&o(b,f,u,p)}}}finally{h=fN}return v},startListening:i,stopListening:l,clearListeners:c}};function Gr(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var eB={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},P3=rn({name:"chartLayout",initialState:eB,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,s,a,i;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(s=t.payload.right)!==null&&s!==void 0?s:0,e.margin.bottom=(a=t.payload.bottom)!==null&&a!==void 0?a:0,e.margin.left=(i=t.payload.left)!==null&&i!==void 0?i:0},setScale(e,t){e.scale=t.payload}}}),{setMargin:tB,setLayout:rB,setChartSize:nB,setScale:sB}=P3.actions,aB=P3.reducer;function pN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function gN(e){for(var t=1;te*180/Math.PI,kt=(e,t,r,s)=>({x:e+Math.cos(-mm*s)*r,y:t+Math.sin(-mm*s)*r}),A3=function(t,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(s.left||0)-(s.right||0)),Math.abs(r-(s.top||0)-(s.bottom||0)))/2},dB=(e,t)=>{var{x:r,y:s}=e,{x:a,y:i}=t;return Math.sqrt((r-a)**2+(s-i)**2)},uB=(e,t)=>{var{x:r,y:s}=e,{cx:a,cy:i}=t,l=dB({x:r,y:s},{x:a,y:i});if(l<=0)return{radius:l,angle:0};var o=(r-a)/l,c=Math.acos(o);return s>i&&(c=2*Math.PI-c),{radius:l,angle:cB(c),angleInRadian:c}},mB=e=>{var{startAngle:t,endAngle:r}=e,s=Math.floor(t/360),a=Math.floor(r/360),i=Math.min(s,a);return{startAngle:t-i*360,endAngle:r-i*360}},fB=(e,t)=>{var{startAngle:r,endAngle:s}=t,a=Math.floor(r/360),i=Math.floor(s/360),l=Math.min(a,i);return e+l*360},hB=(e,t)=>{var{x:r,y:s}=e,{radius:a,angle:i}=uB({x:r,y:s},t),{innerRadius:l,outerRadius:o}=t;if(ao||a===0)return null;var{startAngle:c,endAngle:d}=mB(t),u=i,m;if(c<=d){for(;u>d;)u-=360;for(;u=c&&u<=d}else{for(;u>c;)u-=360;for(;u=d&&u<=c}return m?gN(gN({},t),{},{radius:a,angle:fB(u,t)}):null};function T3(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function yN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function dn(e){for(var t=1;t{var i,l=-1,o=(i=t==null?void 0:t.length)!==null&&i!==void 0?i:0;if(o<=1||e==null)return 0;if(s==="angleAxis"&&a!=null&&Math.abs(Math.abs(a[1]-a[0])-360)<=1e-6)for(var c=0;c0?r[c-1].coordinate:r[o-1].coordinate,u=r[c].coordinate,m=c>=o-1?r[0].coordinate:r[c+1].coordinate,f=void 0;if(zt(u-d)!==zt(m-u)){var h=[];if(zt(m-u)===zt(a[1]-a[0])){f=m;var p=u+a[1]-a[0];h[0]=Math.min(p,(p+d)/2),h[1]=Math.max(p,(p+d)/2)}else{f=d;var v=m+a[1]-a[0];h[0]=Math.min(u,(v+u)/2),h[1]=Math.max(u,(v+u)/2)}var y=[Math.min(u,(f+u)/2),Math.max(u,(f+u)/2)];if(e>y[0]&&e<=y[1]||e>=h[0]&&e<=h[1]){({index:l}=r[c]);break}}else{var g=Math.min(d,m),b=Math.max(d,m);if(e>(g+u)/2&&e<=(b+u)/2){({index:l}=r[c]);break}}}else if(t){for(var j=0;j0&&j(t[j].coordinate+t[j-1].coordinate)/2&&e<=(t[j].coordinate+t[j+1].coordinate)/2||j===o-1&&e>(t[j].coordinate+t[j-1].coordinate)/2){({index:l}=t[j]);break}}return l},vB=(e,t,r)=>{if(t&&r){var{width:s,height:a}=r,{align:i,verticalAlign:l,layout:o}=t;if((o==="vertical"||o==="horizontal"&&l==="middle")&&i!=="center"&&ve(e[i]))return dn(dn({},e),{},{[i]:e[i]+(s||0)});if((o==="horizontal"||o==="vertical"&&i==="center")&&l!=="middle"&&ve(e[l]))return dn(dn({},e),{},{[l]:e[l]+(a||0)})}return e},ba=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",_3=(e,t,r,s)=>{if(s)return e.map(o=>o.coordinate);var a,i,l=e.map(o=>(o.coordinate===t&&(a=!0),o.coordinate===r&&(i=!0),o.coordinate));return a||l.push(t),i||l.push(r),l},O3=(e,t,r)=>{if(!e)return null;var{duplicateDomain:s,type:a,range:i,scale:l,realScaleType:o,isCategorical:c,categoricalDomain:d,tickCount:u,ticks:m,niceTicks:f,axisType:h}=e;if(!l)return null;var p=o==="scaleBand"&&l.bandwidth?l.bandwidth()/2:2,v=a==="category"&&l.bandwidth?l.bandwidth()/p:0;if(v=h==="angleAxis"&&i&&i.length>=2?zt(i[0]-i[1])*2*v:v,m||f){var y=(m||f||[]).map((g,b)=>{var j=s?s.indexOf(g):g;return{coordinate:l(j)+v,value:g,offset:v,index:b}});return y.filter(g=>!Zr(g.coordinate))}return c&&d?d.map((g,b)=>({coordinate:l(g)+v,value:g,index:b,offset:v})):l.ticks&&u!=null?l.ticks(u).map((g,b)=>({coordinate:l(g)+v,value:g,offset:v,index:b})):l.domain().map((g,b)=>({coordinate:l(g)+v,value:s?s[g]:g,index:b,offset:v}))},vN=1e-4,bB=e=>{var t=e.domain();if(!(!t||t.length<=2)){var r=t.length,s=e.range(),a=Math.min(s[0],s[1])-vN,i=Math.max(s[0],s[1])+vN,l=e(t[0]),o=e(t[r-1]);(li||oi)&&e.domain([t[0],t[r-1]])}},jB=(e,t)=>{if(!t||t.length!==2||!ve(t[0])||!ve(t[1]))return e;var r=Math.min(t[0],t[1]),s=Math.max(t[0],t[1]),a=[e[0],e[1]];return(!ve(e[0])||e[0]s)&&(a[1]=s),a[0]>s&&(a[0]=s),a[1]{var t=e.length;if(!(t<=0))for(var r=0,s=e[0].length;r=0?(e[l][r][0]=a,e[l][r][1]=a+o,a=e[l][r][1]):(e[l][r][0]=i,e[l][r][1]=i+o,i=e[l][r][1])}},NB=e=>{var t=e.length;if(!(t<=0))for(var r=0,s=e[0].length;r=0?(e[i][r][0]=a,e[i][r][1]=a+l,a=e[i][r][1]):(e[i][r][0]=0,e[i][r][1]=0)}},SB={sign:wB,expand:T9,none:yl,silhouette:_9,wiggle:O9,positive:NB},kB=(e,t,r)=>{var s=SB[r],a=A9().keys(t).value((i,l)=>+Ke(i,l,0)).order(Zp).offset(s);return a(e)};function CB(e){return e==null?void 0:String(e)}function bN(e){var{axis:t,ticks:r,bandSize:s,entry:a,index:i,dataKey:l}=e;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!ot(a[t.dataKey])){var o=fE(r,"value",a[t.dataKey]);if(o)return o.coordinate+s/2}return r[i]?r[i].coordinate+s/2:null}var c=Ke(a,ot(l)?t.dataKey:l);return ot(c)?null:t.scale(c)}var jN=e=>{var{axis:t,ticks:r,offset:s,bandSize:a,entry:i,index:l}=e;if(t.type==="category")return r[l]?r[l].coordinate+s:null;var o=Ke(i,t.dataKey,t.scale.domain()[l]);return ot(o)?null:t.scale(o)-a/2+s},EB=e=>{var{numericAxis:t}=e,r=t.scale.domain();if(t.type==="number"){var s=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return s<=0&&a>=0?0:a<0?a:s}return r[0]},PB=e=>{var t=e.flat(2).filter(ve);return[Math.min(...t),Math.max(...t)]},AB=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],TB=(e,t,r)=>{if(e!=null)return AB(Object.keys(e).reduce((s,a)=>{var i=e[a],{stackedData:l}=i,o=l.reduce((c,d)=>{var u=T3(d,t,r),m=PB(u);return[Math.min(c[0],m[0]),Math.max(c[1],m[1])]},[1/0,-1/0]);return[Math.min(o[0],s[0]),Math.max(o[1],s[1])]},[1/0,-1/0]))},wN=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,NN=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,fc=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var s=e.scale.bandwidth();if(!r||s>0)return s}if(e&&t&&t.length>=2){for(var a=Mf(t,u=>u.coordinate),i=1/0,l=1,o=a.length;l=a.left&&e<=a.left+a.width&&t>=a.top&&t<=a.top+a.height;return i?{x:e,y:t}:null}return s?hB({x:e,y:t},s):null}var OB=(e,t,r,s)=>{var a=t.find(d=>d&&d.index===r);if(a){if(e==="horizontal")return{x:a.coordinate,y:s.y};if(e==="vertical")return{x:s.x,y:a.coordinate};if(e==="centric"){var i=a.coordinate,{radius:l}=s;return dn(dn(dn({},s),kt(s.cx,s.cy,l,i)),{},{angle:i,radius:l})}var o=a.coordinate,{angle:c}=s;return dn(dn(dn({},s),kt(s.cx,s.cy,o,c)),{},{angle:c,radius:o})}return{x:0,y:0}},MB=(e,t)=>t==="horizontal"?e.x:t==="vertical"?e.y:t==="centric"?e.angle:e.radius,Ts=e=>e.layout.width,_s=e=>e.layout.height,DB=e=>e.layout.scale,M3=e=>e.layout.margin,Ff=Q(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),zf=Q(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),D3="data-recharts-item-index",$3="data-recharts-item-data-key",$c=60;function kN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Ud(e){for(var t=1;te.brush.height;function FB(e){var t=zf(e);return t.reduce((r,s)=>{if(s.orientation==="left"&&!s.mirror&&!s.hide){var a=typeof s.width=="number"?s.width:$c;return r+a}return r},0)}function zB(e){var t=zf(e);return t.reduce((r,s)=>{if(s.orientation==="right"&&!s.mirror&&!s.hide){var a=typeof s.width=="number"?s.width:$c;return r+a}return r},0)}function BB(e){var t=Ff(e);return t.reduce((r,s)=>s.orientation==="top"&&!s.mirror&&!s.hide?r+s.height:r,0)}function UB(e){var t=Ff(e);return t.reduce((r,s)=>s.orientation==="bottom"&&!s.mirror&&!s.hide?r+s.height:r,0)}var $t=Q([Ts,_s,M3,RB,FB,zB,BB,UB,s3,iz],(e,t,r,s,a,i,l,o,c,d)=>{var u={left:(r.left||0)+a,right:(r.right||0)+i},m={top:(r.top||0)+l,bottom:(r.bottom||0)+o},f=Ud(Ud({},m),u),h=f.bottom;f.bottom+=s,f=vB(f,c,d);var p=e-f.left-f.right,v=t-f.top-f.bottom;return Ud(Ud({brushBottom:h},f),{},{width:Math.max(p,0),height:Math.max(v,0)})}),HB=Q($t,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Fy=Q(Ts,_s,(e,t)=>({x:0,y:0,width:e,height:t})),VB=x.createContext(null),Ir=()=>x.useContext(VB)!=null,Bf=e=>e.brush,Uf=Q([Bf,$t,M3],(e,t,r)=>({height:e.height,x:ve(e.x)?e.x:t.left,y:ve(e.y)?e.y:t.top+t.height+t.brushBottom-((r==null?void 0:r.bottom)||0),width:ve(e.width)?e.width:t.width})),zy=()=>{var e,t=Ir(),r=pe(HB),s=pe(Uf),a=(e=pe(Bf))===null||e===void 0?void 0:e.padding;return!t||!s||!a?r:{width:s.width-a.left-a.right,height:s.height-a.top-a.bottom,x:a.left,y:a.top}},KB={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},L3=()=>{var e;return(e=pe($t))!==null&&e!==void 0?e:KB},I3=()=>pe(Ts),R3=()=>pe(_s),Me=e=>e.layout.layoutType,Hf=()=>pe(Me),WB={settings:{layout:"horizontal",align:"center",verticalAlign:"middle",itemSorter:"value"},size:{width:0,height:0},payload:[]},F3=rn({name:"legend",initialState:WB,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload(e,t){e.payload.push(t.payload)},removeLegendPayload(e,t){var r=hs(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)}}}),{setLegendSize:gte,setLegendSettings:yte,addLegendPayload:z3,removeLegendPayload:B3}=F3.actions,qB=F3.reducer;function lg(){return lg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{separator:t=" : ",contentStyle:r={},itemStyle:s={},labelStyle:a={},payload:i,formatter:l,itemSorter:o,wrapperClassName:c,labelClassName:d,label:u,labelFormatter:m,accessibilityLayer:f=!1}=e,h=()=>{if(i&&i.length){var C={padding:0,margin:0},N=(o?Mf(i,o):i).map((A,_)=>{if(A.type==="none")return null;var I=A.formatter||l||ZB,{value:B,name:z}=A,T=B,D=z;if(I){var E=I(B,z,A,_,i);if(Array.isArray(E))[T,D]=E;else if(E!=null)T=E;else return null}var S=ox({display:"block",paddingTop:4,paddingBottom:4,color:A.color||"#000"},s);return x.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(_),style:S},Xn(D)?x.createElement("span",{className:"recharts-tooltip-item-name"},D):null,Xn(D)?x.createElement("span",{className:"recharts-tooltip-item-separator"},t):null,x.createElement("span",{className:"recharts-tooltip-item-value"},T),x.createElement("span",{className:"recharts-tooltip-item-unit"},A.unit||""))});return x.createElement("ul",{className:"recharts-tooltip-item-list",style:C},N)}return null},p=ox({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},r),v=ox({margin:0},a),y=!ot(u),g=y?u:"",b=Ie("recharts-default-tooltip",c),j=Ie("recharts-tooltip-label",d);y&&m&&i!==void 0&&i!==null&&(g=m(u,i));var w=f?{role:"status","aria-live":"assertive"}:{};return x.createElement("div",lg({className:b,style:p},w),x.createElement("p",{className:j,style:v},x.isValidElement(g)?g:"".concat(g)),h())},lo="recharts-tooltip-wrapper",QB={visibility:"hidden"};function eU(e){var{coordinate:t,translateX:r,translateY:s}=e;return Ie(lo,{["".concat(lo,"-right")]:ve(r)&&t&&ve(t.x)&&r>=t.x,["".concat(lo,"-left")]:ve(r)&&t&&ve(t.x)&&r=t.y,["".concat(lo,"-top")]:ve(s)&&t&&ve(t.y)&&s0?a:0),m=r[s]+a;if(t[s])return l[s]?u:m;var f=c[s];if(f==null)return 0;if(l[s]){var h=u,p=f;return hy?Math.max(u,f):Math.max(m,f)}function tU(e){var{translateX:t,translateY:r,useTranslate3d:s}=e;return{transform:s?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function rU(e){var{allowEscapeViewBox:t,coordinate:r,offsetTopLeft:s,position:a,reverseDirection:i,tooltipBox:l,useTranslate3d:o,viewBox:c}=e,d,u,m;return l.height>0&&l.width>0&&r?(u=EN({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:s,position:a,reverseDirection:i,tooltipDimension:l.width,viewBox:c,viewBoxDimension:c.width}),m=EN({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:s,position:a,reverseDirection:i,tooltipDimension:l.height,viewBox:c,viewBoxDimension:c.height}),d=tU({translateX:u,translateY:m,useTranslate3d:o})):d=QB,{cssProperties:d,cssClasses:eU({translateX:u,translateY:m,coordinate:r})}}function PN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Hd(e){for(var t=1;t{if(t.key==="Escape"){var r,s,a,i;this.setState({dismissed:!0,dismissedAtCoordinate:{x:(r=(s=this.props.coordinate)===null||s===void 0?void 0:s.x)!==null&&r!==void 0?r:0,y:(a=(i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==null&&a!==void 0?a:0}})}})}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}componentDidUpdate(){var t,r;this.state.dismissed&&(((t=this.props.coordinate)===null||t===void 0?void 0:t.x)!==this.state.dismissedAtCoordinate.x||((r=this.props.coordinate)===null||r===void 0?void 0:r.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}render(){var{active:t,allowEscapeViewBox:r,animationDuration:s,animationEasing:a,children:i,coordinate:l,hasPayload:o,isAnimationActive:c,offset:d,position:u,reverseDirection:m,useTranslate3d:f,viewBox:h,wrapperStyle:p,lastBoundingBox:v,innerRef:y,hasPortalFromProps:g}=this.props,{cssClasses:b,cssProperties:j}=rU({allowEscapeViewBox:r,coordinate:l,offsetTopLeft:d,position:u,reverseDirection:m,tooltipBox:{height:v.height,width:v.width},useTranslate3d:f,viewBox:h}),w=g?{}:Hd(Hd({transition:c&&t?"transform ".concat(s,"ms ").concat(a):void 0},j),{},{pointerEvents:"none",visibility:!this.state.dismissed&&t&&o?"visible":"hidden",position:"absolute",top:0,left:0}),C=Hd(Hd({},w),{},{visibility:!this.state.dismissed&&t&&o?"visible":"hidden"},p);return x.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:b,style:C,ref:y},i)}}var iU=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),bi={isSsr:iU()},U3=()=>pe(e=>e.rootProps.accessibilityLayer);function Qr(e){return Number.isFinite(e)}function bl(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function cg(){return cg=Object.assign?Object.assign.bind():function(e){for(var t=1;tQr(e.x)&&Qr(e.y),oo=e=>e.x,co=e=>e.y,dU=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(Oc(e));return(r==="curveMonotone"||r==="curveBump")&&t?_N["".concat(r).concat(t==="vertical"?"Y":"X")]:_N[r]||Tf},uU=e=>{var{type:t="linear",points:r=[],baseLine:s,layout:a,connectNulls:i=!1}=e,l=dU(t,a),o=i?r.filter(Vd):r,c;if(Array.isArray(s)){var d=i?s.filter(m=>Vd(m)):s,u=o.map((m,f)=>TN(TN({},m),{},{base:d[f]}));return a==="vertical"?c=Ld().y(co).x1(oo).x0(m=>m.base.x):c=Ld().x(oo).y1(co).y0(m=>m.base.y),c.defined(Vd).curve(l),c(u)}return a==="vertical"&&ve(s)?c=Ld().y(co).x1(oo).x0(s):ve(s)?c=Ld().x(oo).y1(co).y0(s):c=NE().x(oo).y(co),c.defined(Vd).curve(l),c(o)},By=e=>{var{className:t,points:r,path:s,pathRef:a}=e;if((!r||!r.length)&&!s)return null;var i=r&&r.length?uU(e):s;return x.createElement("path",cg({},As(e),gy(e),{className:Ie("recharts-curve",t),d:i===null?void 0:i,ref:a}))},mU=["x","y","top","left","width","height","className"];function dg(){return dg=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(a,"v").concat(s,"M").concat(i,",").concat(t,"h").concat(r),bU=e=>{var{x:t=0,y:r=0,top:s=0,left:a=0,width:i=0,height:l=0,className:o}=e,c=gU(e,mU),d=fU({x:t,y:r,top:s,left:a,width:i,height:l},c);return!ve(t)||!ve(r)||!ve(i)||!ve(l)||!ve(s)||!ve(a)?null:x.createElement("path",dg({},it(d,!0),{className:Ie("recharts-cross",o),d:vU(t,r,i,l,s,a)}))};function jU(e,t,r,s){var a=s/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-a:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-a,width:e==="horizontal"?s:r.width-1,height:e==="horizontal"?r.height-1:s}}function MN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function wU(e){for(var t=1;t(l[o]===void 0&&s[o]!==void 0&&(l[o]=s[o]),l),r);return i}function CU(){}function DN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function $N(e){for(var t=1;te.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),H3=(e,t,r)=>e.map(s=>"".concat(TU(s)," ").concat(t,"ms ").concat(r)).join(","),_U=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((r,s)=>r.filter(a=>s.includes(a))),hc=(e,t)=>Object.keys(t).reduce((r,s)=>$N($N({},r),{},{[s]:e(s,t[s])}),{});function LN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Jt(e){for(var t=1;te+(t-e)*r,ug=e=>{var{from:t,to:r}=e;return t!==r},V3=(e,t,r)=>{var s=hc((a,i)=>{if(ug(i)){var[l,o]=e(i.from,i.to,i.velocity);return Jt(Jt({},i),{},{from:l,velocity:o})}return i},t);return r<1?hc((a,i)=>ug(i)?Jt(Jt({},i),{},{velocity:fm(i.velocity,s[a].velocity,r),from:fm(i.from,s[a].from,r)}):i,t):V3(e,s,r-1)};function $U(e,t,r,s,a,i){var l,o=s.reduce((f,h)=>Jt(Jt({},f),{},{[h]:{from:e[h],velocity:0,to:t[h]}}),{}),c=()=>hc((f,h)=>h.from,o),d=()=>!Object.values(o).filter(ug).length,u=null,m=f=>{l||(l=f);var h=f-l,p=h/r.dt;o=V3(r,o,p),a(Jt(Jt(Jt({},e),t),c())),l=f,d()||(u=i.setTimeout(m))};return()=>(u=i.setTimeout(m),()=>{u()})}function LU(e,t,r,s,a,i,l){var o=null,c=a.reduce((m,f)=>Jt(Jt({},m),{},{[f]:[e[f],t[f]]}),{}),d,u=m=>{d||(d=m);var f=(m-d)/s,h=hc((v,y)=>fm(...y,r(f)),c);if(i(Jt(Jt(Jt({},e),t),h)),f<1)o=l.setTimeout(u);else{var p=hc((v,y)=>fm(...y,r(1)),c);i(Jt(Jt(Jt({},e),t),p))}};return()=>(o=l.setTimeout(u),()=>{o()})}const IU=(e,t,r,s,a,i)=>{var l=_U(e,t);return r.isStepper===!0?$U(e,t,r,l,a,i):LU(e,t,r,s,l,a,i)};var hm=1e-4,K3=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],W3=(e,t)=>e.map((r,s)=>r*t**s).reduce((r,s)=>r+s),IN=(e,t)=>r=>{var s=K3(e,t);return W3(s,r)},RU=(e,t)=>r=>{var s=K3(e,t),a=[...s.map((i,l)=>i*l).slice(1),0];return W3(a,r)},RN=function(){for(var t,r,s,a,i=arguments.length,l=new Array(i),o=0;oparseFloat(p)))}}else l.length===4&&([t,s,r,a]=l);var d=IN(t,r),u=IN(s,a),m=RU(t,r),f=p=>p>1?1:p<0?0:p,h=p=>{for(var v=p>1?1:p,y=v,g=0;g<8;++g){var b=d(y)-v,j=m(y);if(Math.abs(b-v)0&&arguments[0]!==void 0?arguments[0]:{},{stiff:r=100,damping:s=8,dt:a=17}=t,i=(l,o,c)=>{var d=-(l-o)*r,u=c*s,m=c+(d-u)*a/1e3,f=c*a/1e3+l;return Math.abs(f-o){if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return RN(e);case"spring":return FU();default:if(e.split("(")[0]==="cubic-bezier")return RN(e)}return typeof e=="function"?e:null};function BU(e){var t,r=()=>null,s=!1,a=null,i=l=>{if(!s){if(Array.isArray(l)){if(!l.length)return;var o=l,[c,...d]=o;if(typeof c=="number"){a=e.setTimeout(i.bind(null,d),c);return}i(c),a=e.setTimeout(i.bind(null,d));return}typeof l=="string"&&(t=l,r(t)),typeof l=="object"&&(t=l,r(t)),typeof l=="function"&&l()}};return{stop:()=>{s=!0},start:l=>{s=!1,a&&(a(),a=null),i(l)},subscribe:l=>(r=l,()=>{r=()=>null}),getTimeoutController:()=>e}}class UU{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=performance.now(),a=null,i=l=>{l-s>=r?t(l):typeof requestAnimationFrame=="function"&&(a=requestAnimationFrame(i))};return a=requestAnimationFrame(i),()=>{cancelAnimationFrame(a)}}}function HU(){return BU(new UU)}var VU=x.createContext(HU);function KU(e,t){var r=x.useContext(VU);return x.useMemo(()=>t??r(e),[e,t,r])}var WU={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},FN={t:0},cx={t:1};function Lc(e){var t=Rr(e,WU),{isActive:r,canBegin:s,duration:a,easing:i,begin:l,onAnimationEnd:o,onAnimationStart:c,children:d}=t,u=KU(t.animationId,t.animationManager),[m,f]=x.useState(r?FN:cx),h=x.useRef(null);return x.useEffect(()=>{r||f(cx)},[r]),x.useEffect(()=>{if(!r||!s)return CU;var p=IU(FN,cx,zU(i),a,f,u.getTimeoutController()),v=()=>{h.current=p()};return u.start([c,l,v,a,o]),()=>{u.stop(),h.current&&h.current(),o()}},[r,s,a,i,l,c,o,u]),d(m.t)}function Ic(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=x.useRef(dc(t)),s=x.useRef(e);return s.current!==e&&(r.current=dc(t),s.current=e),r.current}function zN(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function BN(e){for(var t=1;t{var i=Math.min(Math.abs(r)/2,Math.abs(s)/2),l=s>=0?1:-1,o=r>=0?1:-1,c=s>=0&&r>=0||s<0&&r<0?1:0,d;if(i>0&&a instanceof Array){for(var u=[0,0,0,0],m=0,f=4;mi?i:a[m];d="M".concat(e,",").concat(t+l*u[0]),u[0]>0&&(d+="A ".concat(u[0],",").concat(u[0],",0,0,").concat(c,",").concat(e+o*u[0],",").concat(t)),d+="L ".concat(e+r-o*u[1],",").concat(t),u[1]>0&&(d+="A ".concat(u[1],",").concat(u[1],",0,0,").concat(c,`, `).concat(e+r,",").concat(t+l*u[1])),d+="L ".concat(e+r,",").concat(t+s-l*u[2]),u[2]>0&&(d+="A ".concat(u[2],",").concat(u[2],",0,0,").concat(c,`, `).concat(e+r-o*u[2],",").concat(t+s)),d+="L ".concat(e+o*u[3],",").concat(t+s),u[3]>0&&(d+="A ".concat(u[3],",").concat(u[3],",0,0,").concat(c,`, `).concat(e,",").concat(t+s-l*u[3])),d+="Z"}else if(i>0&&a===+a&&a>0){var h=Math.min(i,a);d="M ".concat(e,",").concat(t+l*h,` A `).concat(h,",").concat(h,",0,0,").concat(c,",").concat(e+o*h,",").concat(t,` L `).concat(e+r-o*h,",").concat(t,` A `).concat(h,",").concat(h,",0,0,").concat(c,",").concat(e+r,",").concat(t+l*h,` L `).concat(e+r,",").concat(t+s-l*h,` A `).concat(h,",").concat(h,",0,0,").concat(c,",").concat(e+r-o*h,",").concat(t+s,` L `).concat(e+o*h,",").concat(t+s,` A `).concat(h,",").concat(h,",0,0,").concat(c,",").concat(e,",").concat(t+s-l*h," Z")}else d="M ".concat(e,",").concat(t," h ").concat(r," v ").concat(s," h ").concat(-r," Z");return d},XU={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},q3=e=>{var t=Rr(e,XU),r=x.useRef(null),[s,a]=x.useState(-1);x.useEffect(()=>{if(r.current&&r.current.getTotalLength)try{var E=r.current.getTotalLength();E&&a(E)}catch{}},[]);var{x:i,y:l,width:o,height:c,radius:d,className:u}=t,{animationEasing:m,animationDuration:f,animationBegin:h,isAnimationActive:p,isUpdateAnimationActive:v}=t,y=x.useRef(o),g=x.useRef(c),b=x.useRef(i),j=x.useRef(l),w=x.useMemo(()=>({x:i,y:l,width:o,height:c,radius:d}),[i,l,o,c,d]),C=Ic(w,"rectangle-");if(i!==+i||l!==+l||o!==+o||c!==+c||o===0||c===0)return null;var N=Ie("recharts-rectangle",u);if(!v)return x.createElement("path",xm({},it(t,!0),{className:N,d:UN(i,l,o,c,d)}));var A=y.current,_=g.current,I=b.current,B=j.current,z="0px ".concat(s===-1?1:s,"px"),T="".concat(s,"px 0px"),D=H3(["strokeDasharray"],f,typeof m=="string"?m:void 0);return x.createElement(Lc,{animationId:C,key:C,canBegin:s>0,duration:f,easing:m,isActive:v,begin:h},E=>{var S=ht(A,o,E),k=ht(_,c,E),P=ht(I,i,E),O=ht(B,l,E);r.current&&(y.current=S,g.current=k,b.current=P,j.current=O);var $;return p?E>0?$={transition:D,strokeDasharray:T}:$={strokeDasharray:z}:$={strokeDasharray:T},x.createElement("path",xm({},it(t,!0),{className:N,d:UN(P,O,S,k,d),ref:r,style:BN(BN({},$),t.style)}))})};function G3(e){var{cx:t,cy:r,radius:s,startAngle:a,endAngle:i}=e,l=kt(t,r,s,a),o=kt(t,r,s,i);return{points:[l,o],cx:t,cy:r,radius:s,startAngle:a,endAngle:i}}function mg(){return mg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=zt(t-e),s=Math.min(Math.abs(t-e),359.999);return r*s},Kd=e=>{var{cx:t,cy:r,radius:s,angle:a,sign:i,isExternal:l,cornerRadius:o,cornerIsExternal:c}=e,d=o*(l?1:-1)+s,u=Math.asin(o/d)/mm,m=c?a:a+i*u,f=kt(t,r,d,m),h=kt(t,r,s,m),p=c?a-i*u:a,v=kt(t,r,d*Math.cos(u*mm),p);return{center:f,circleTangency:h,lineTangency:v,theta:u}},Y3=e=>{var{cx:t,cy:r,innerRadius:s,outerRadius:a,startAngle:i,endAngle:l}=e,o=ZU(i,l),c=i+o,d=kt(t,r,a,i),u=kt(t,r,a,c),m="M ".concat(d.x,",").concat(d.y,` A `).concat(a,",").concat(a,`,0, `).concat(+(Math.abs(o)>180),",").concat(+(i>c),`, `).concat(u.x,",").concat(u.y,` `);if(s>0){var f=kt(t,r,s,i),h=kt(t,r,s,c);m+="L ".concat(h.x,",").concat(h.y,` A `).concat(s,",").concat(s,`,0, `).concat(+(Math.abs(o)>180),",").concat(+(i<=c),`, `).concat(f.x,",").concat(f.y," Z")}else m+="L ".concat(t,",").concat(r," Z");return m},JU=e=>{var{cx:t,cy:r,innerRadius:s,outerRadius:a,cornerRadius:i,forceCornerRadius:l,cornerIsExternal:o,startAngle:c,endAngle:d}=e,u=zt(d-c),{circleTangency:m,lineTangency:f,theta:h}=Kd({cx:t,cy:r,radius:a,angle:c,sign:u,cornerRadius:i,cornerIsExternal:o}),{circleTangency:p,lineTangency:v,theta:y}=Kd({cx:t,cy:r,radius:a,angle:d,sign:-u,cornerRadius:i,cornerIsExternal:o}),g=o?Math.abs(c-d):Math.abs(c-d)-h-y;if(g<0)return l?"M ".concat(f.x,",").concat(f.y,` a`).concat(i,",").concat(i,",0,0,1,").concat(i*2,`,0 a`).concat(i,",").concat(i,",0,0,1,").concat(-i*2,`,0 `):Y3({cx:t,cy:r,innerRadius:s,outerRadius:a,startAngle:c,endAngle:d});var b="M ".concat(f.x,",").concat(f.y,` A`).concat(i,",").concat(i,",0,0,").concat(+(u<0),",").concat(m.x,",").concat(m.y,` A`).concat(a,",").concat(a,",0,").concat(+(g>180),",").concat(+(u<0),",").concat(p.x,",").concat(p.y,` A`).concat(i,",").concat(i,",0,0,").concat(+(u<0),",").concat(v.x,",").concat(v.y,` `);if(s>0){var{circleTangency:j,lineTangency:w,theta:C}=Kd({cx:t,cy:r,radius:s,angle:c,sign:u,isExternal:!0,cornerRadius:i,cornerIsExternal:o}),{circleTangency:N,lineTangency:A,theta:_}=Kd({cx:t,cy:r,radius:s,angle:d,sign:-u,isExternal:!0,cornerRadius:i,cornerIsExternal:o}),I=o?Math.abs(c-d):Math.abs(c-d)-C-_;if(I<0&&i===0)return"".concat(b,"L").concat(t,",").concat(r,"Z");b+="L".concat(A.x,",").concat(A.y,` A`).concat(i,",").concat(i,",0,0,").concat(+(u<0),",").concat(N.x,",").concat(N.y,` A`).concat(s,",").concat(s,",0,").concat(+(I>180),",").concat(+(u>0),",").concat(j.x,",").concat(j.y,` A`).concat(i,",").concat(i,",0,0,").concat(+(u<0),",").concat(w.x,",").concat(w.y,"Z")}else b+="L".concat(t,",").concat(r,"Z");return b},QU={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},X3=e=>{var t=Rr(e,QU),{cx:r,cy:s,innerRadius:a,outerRadius:i,cornerRadius:l,forceCornerRadius:o,cornerIsExternal:c,startAngle:d,endAngle:u,className:m}=t;if(i0&&Math.abs(d-u)<360?v=JU({cx:r,cy:s,innerRadius:a,outerRadius:i,cornerRadius:Math.min(p,h/2),forceCornerRadius:o,cornerIsExternal:c,startAngle:d,endAngle:u}):v=Y3({cx:r,cy:s,innerRadius:a,outerRadius:i,startAngle:d,endAngle:u}),x.createElement("path",mg({},it(t,!0),{className:f,d:v}))};function eH(e,t,r){var s,a,i,l;if(e==="horizontal")s=t.x,i=s,a=r.top,l=r.top+r.height;else if(e==="vertical")a=t.y,l=a,s=r.left,i=r.left+r.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var{cx:o,cy:c,innerRadius:d,outerRadius:u,angle:m}=t,f=kt(o,c,d,m),h=kt(o,c,u,m);s=f.x,a=f.y,i=h.x,l=h.y}else return G3(t);return[{x:s,y:a},{x:i,y:l}]}var Z3={},J3={},Q3={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Oy;function r(s){return t.isSymbol(s)?NaN:Number(s)}e.toNumber=r})(Q3);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=Q3;function r(s){return s?(s=t.toNumber(s),s===1/0||s===-1/0?(s<0?-1:1)*Number.MAX_VALUE:s===s?s:0):s===0?s:0}e.toFinite=r})(J3);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=My,r=J3;function s(a,i,l){l&&typeof l!="number"&&t.isIterateeCall(a,i,l)&&(i=l=void 0),a=r.toFinite(a),i===void 0?(i=a,a=0):i=r.toFinite(i),l=l===void 0?at?1:e>=t?0:NaN}function rH(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function Uy(e){let t,r,s;e.length!==2?(t=ia,r=(o,c)=>ia(e(o),c),s=(o,c)=>e(o)-c):(t=e===ia||e===rH?e:nH,r=e,s=e);function a(o,c,d=0,u=o.length){if(d>>1;r(o[m],c)<0?d=m+1:u=m}while(d>>1;r(o[m],c)<=0?d=m+1:u=m}while(dd&&s(o[m-1],c)>-s(o[m],c)?m-1:m}return{left:a,center:l,right:i}}function nH(){return 0}function tP(e){return e===null?NaN:+e}function*sH(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const aH=Uy(ia),Rc=aH.right;Uy(tP).center;class HN extends Map{constructor(t,r=oH){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[s,a]of t)this.set(s,a)}get(t){return super.get(VN(this,t))}has(t){return super.has(VN(this,t))}set(t,r){return super.set(iH(this,t),r)}delete(t){return super.delete(lH(this,t))}}function VN({_intern:e,_key:t},r){const s=t(r);return e.has(s)?e.get(s):r}function iH({_intern:e,_key:t},r){const s=t(r);return e.has(s)?e.get(s):(e.set(s,r),r)}function lH({_intern:e,_key:t},r){const s=t(r);return e.has(s)&&(r=e.get(s),e.delete(s)),r}function oH(e){return e!==null&&typeof e=="object"?e.valueOf():e}function cH(e=ia){if(e===ia)return rP;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const s=e(t,r);return s||s===0?s:(e(r,r)===0)-(e(t,t)===0)}}function rP(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const dH=Math.sqrt(50),uH=Math.sqrt(10),mH=Math.sqrt(2);function pm(e,t,r){const s=(t-e)/Math.max(0,r),a=Math.floor(Math.log10(s)),i=s/Math.pow(10,a),l=i>=dH?10:i>=uH?5:i>=mH?2:1;let o,c,d;return a<0?(d=Math.pow(10,-a)/l,o=Math.round(e*d),c=Math.round(t*d),o/dt&&--c,d=-d):(d=Math.pow(10,a)*l,o=Math.round(e/d),c=Math.round(t/d),o*dt&&--c),c0))return[];if(e===t)return[e];const s=t=a))return[];const o=i-a+1,c=new Array(o);if(s)if(l<0)for(let d=0;d=s)&&(r=s);return r}function WN(e,t){let r;for(const s of e)s!=null&&(r>s||r===void 0&&s>=s)&&(r=s);return r}function nP(e,t,r=0,s=1/0,a){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),s=Math.floor(Math.min(e.length-1,s)),!(r<=t&&t<=s))return e;for(a=a===void 0?rP:cH(a);s>r;){if(s-r>600){const c=s-r+1,d=t-r+1,u=Math.log(c),m=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*m*(c-m)/c)*(d-c/2<0?-1:1),h=Math.max(r,Math.floor(t-d*m/c+f)),p=Math.min(s,Math.floor(t+(c-d)*m/c+f));nP(e,t,h,p,a)}const i=e[t];let l=r,o=s;for(uo(e,r,t),a(e[s],i)>0&&uo(e,r,s);l0;)--o}a(e[r],i)===0?uo(e,r,o):(++o,uo(e,o,s)),o<=t&&(r=o+1),t<=o&&(s=o-1)}return e}function uo(e,t,r){const s=e[t];e[t]=e[r],e[r]=s}function fH(e,t,r){if(e=Float64Array.from(sH(e)),!(!(s=e.length)||isNaN(t=+t))){if(t<=0||s<2)return WN(e);if(t>=1)return KN(e);var s,a=(s-1)*t,i=Math.floor(a),l=KN(nP(e,i).subarray(0,i+1)),o=WN(e.subarray(i+1));return l+(o-l)*(a-i)}}function hH(e,t,r=tP){if(!(!(s=e.length)||isNaN(t=+t))){if(t<=0||s<2)return+r(e[0],0,e);if(t>=1)return+r(e[s-1],s-1,e);var s,a=(s-1)*t,i=Math.floor(a),l=+r(e[i],i,e),o=+r(e[i+1],i+1,e);return l+(o-l)*(a-i)}}function xH(e,t,r){e=+e,t=+t,r=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+r;for(var s=-1,a=Math.max(0,Math.ceil((t-e)/r))|0,i=new Array(a);++st&&(r=e,e=t,t=r),function(s){return Math.max(e,Math.min(t,s))}}function vH(e,t,r){var s=e[0],a=e[1],i=t[0],l=t[1];return a2?bH:vH,c=d=null,m}function m(f){return f==null||isNaN(f=+f)?i:(c||(c=o(e.map(s),t,r)))(s(l(f)))}return m.invert=function(f){return l(a((d||(d=o(t,e.map(s),Tn)))(f)))},m.domain=function(f){return arguments.length?(e=Array.from(f,gm),u()):e.slice()},m.range=function(f){return arguments.length?(t=Array.from(f),u()):t.slice()},m.rangeRound=function(f){return t=Array.from(f),r=q0,u()},m.clamp=function(f){return arguments.length?(l=f?!0:yr,u()):l!==yr},m.interpolate=function(f){return arguments.length?(r=f,u()):r},m.unknown=function(f){return arguments.length?(i=f,m):i},function(f,h){return s=f,a=h,u()}}function Ky(){return Vf()(yr,yr)}function jH(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function ym(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,s=e.slice(0,r);return[s.length>1?s[0]+s.slice(2):s,+e.slice(r+1)]}function jl(e){return e=ym(Math.abs(e)),e?e[1]:NaN}function wH(e,t){return function(r,s){for(var a=r.length,i=[],l=0,o=e[0],c=0;a>0&&o>0&&(c+o+1>s&&(o=Math.max(1,s-c)),i.push(r.substring(a-=o,a+o)),!((c+=o+1)>s));)o=e[l=(l+1)%e.length];return i.reverse().join(t)}}function NH(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var SH=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function xc(e){if(!(t=SH.exec(e)))throw new Error("invalid format: "+e);var t;return new Wy({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}xc.prototype=Wy.prototype;function Wy(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Wy.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function kH(e){e:for(var t=e.length,r=1,s=-1,a;r0&&(s=0);break}return s>0?e.slice(0,s)+e.slice(a+1):e}var aP;function CH(e,t){var r=ym(e,t);if(!r)return e+"";var s=r[0],a=r[1],i=a-(aP=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=s.length;return i===l?s:i>l?s+new Array(i-l+1).join("0"):i>0?s.slice(0,i)+"."+s.slice(i):"0."+new Array(1-i).join("0")+ym(e,Math.max(0,t+i-1))[0]}function GN(e,t){var r=ym(e,t);if(!r)return e+"";var s=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+s:s.length>a+1?s.slice(0,a+1)+"."+s.slice(a+1):s+new Array(a-s.length+2).join("0")}const YN={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:jH,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>GN(e*100,t),r:GN,s:CH,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function XN(e){return e}var ZN=Array.prototype.map,JN=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function EH(e){var t=e.grouping===void 0||e.thousands===void 0?XN:wH(ZN.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",s=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",i=e.numerals===void 0?XN:NH(ZN.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",o=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function d(m){m=xc(m);var f=m.fill,h=m.align,p=m.sign,v=m.symbol,y=m.zero,g=m.width,b=m.comma,j=m.precision,w=m.trim,C=m.type;C==="n"?(b=!0,C="g"):YN[C]||(j===void 0&&(j=12),w=!0,C="g"),(y||f==="0"&&h==="=")&&(y=!0,f="0",h="=");var N=v==="$"?r:v==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",A=v==="$"?s:/[%p]/.test(C)?l:"",_=YN[C],I=/[defgprs%]/.test(C);j=j===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,j)):Math.max(0,Math.min(20,j));function B(z){var T=N,D=A,E,S,k;if(C==="c")D=_(z)+D,z="";else{z=+z;var P=z<0||1/z<0;if(z=isNaN(z)?c:_(Math.abs(z),j),w&&(z=kH(z)),P&&+z==0&&p!=="+"&&(P=!1),T=(P?p==="("?p:o:p==="-"||p==="("?"":p)+T,D=(C==="s"?JN[8+aP/3]:"")+D+(P&&p==="("?")":""),I){for(E=-1,S=z.length;++Ek||k>57){D=(k===46?a+z.slice(E+1):z.slice(E))+D,z=z.slice(0,E);break}}}b&&!y&&(z=t(z,1/0));var O=T.length+z.length+D.length,$=O>1)+T+z+D+$.slice(O);break;default:z=$+T+z+D;break}return i(z)}return B.toString=function(){return m+""},B}function u(m,f){var h=d((m=xc(m),m.type="f",m)),p=Math.max(-8,Math.min(8,Math.floor(jl(f)/3)))*3,v=Math.pow(10,-p),y=JN[8+p/3];return function(g){return h(v*g)+y}}return{format:d,formatPrefix:u}}var Wd,qy,iP;PH({thousands:",",grouping:[3],currency:["$",""]});function PH(e){return Wd=EH(e),qy=Wd.format,iP=Wd.formatPrefix,Wd}function AH(e){return Math.max(0,-jl(Math.abs(e)))}function TH(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(jl(t)/3)))*3-jl(Math.abs(e)))}function _H(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,jl(t)-jl(e))+1}function lP(e,t,r,s){var a=xg(e,t,r),i;switch(s=xc(s??",f"),s.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return s.precision==null&&!isNaN(i=TH(a,l))&&(s.precision=i),iP(s,l)}case"":case"e":case"g":case"p":case"r":{s.precision==null&&!isNaN(i=_H(a,Math.max(Math.abs(e),Math.abs(t))))&&(s.precision=i-(s.type==="e"));break}case"f":case"%":{s.precision==null&&!isNaN(i=AH(a))&&(s.precision=i-(s.type==="%")*2);break}}return qy(s)}function ja(e){var t=e.domain;return e.ticks=function(r){var s=t();return fg(s[0],s[s.length-1],r??10)},e.tickFormat=function(r,s){var a=t();return lP(a[0],a[a.length-1],r??10,s)},e.nice=function(r){r==null&&(r=10);var s=t(),a=0,i=s.length-1,l=s[a],o=s[i],c,d,u=10;for(o0;){if(d=hg(l,o,r),d===c)return s[a]=l,s[i]=o,t(s);if(d>0)l=Math.floor(l/d)*d,o=Math.ceil(o/d)*d;else if(d<0)l=Math.ceil(l*d)/d,o=Math.floor(o*d)/d;else break;c=d}return e},e}function oP(){var e=Ky();return e.copy=function(){return Fc(e,oP())},wn.apply(e,arguments),ja(e)}function cP(e){var t;function r(s){return s==null||isNaN(s=+s)?t:s}return r.invert=r,r.domain=r.range=function(s){return arguments.length?(e=Array.from(s,gm),r):e.slice()},r.unknown=function(s){return arguments.length?(t=s,r):t},r.copy=function(){return cP(e).unknown(t)},e=arguments.length?Array.from(e,gm):[0,1],ja(r)}function dP(e,t){e=e.slice();var r=0,s=e.length-1,a=e[r],i=e[s],l;return iMath.pow(e,t)}function LH(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function t1(e){return(t,r)=>-e(-t,r)}function Gy(e){const t=e(QN,e1),r=t.domain;let s=10,a,i;function l(){return a=LH(s),i=$H(s),r()[0]<0?(a=t1(a),i=t1(i),e(OH,MH)):e(QN,e1),t}return t.base=function(o){return arguments.length?(s=+o,l()):s},t.domain=function(o){return arguments.length?(r(o),l()):r()},t.ticks=o=>{const c=r();let d=c[0],u=c[c.length-1];const m=u0){for(;f<=h;++f)for(p=1;pu)break;g.push(v)}}else for(;f<=h;++f)for(p=s-1;p>=1;--p)if(v=f>0?p/i(-f):p*i(f),!(vu)break;g.push(v)}g.length*2{if(o==null&&(o=10),c==null&&(c=s===10?"s":","),typeof c!="function"&&(!(s%1)&&(c=xc(c)).precision==null&&(c.trim=!0),c=qy(c)),o===1/0)return c;const d=Math.max(1,s*o/t.ticks().length);return u=>{let m=u/i(Math.round(a(u)));return m*sr(dP(r(),{floor:o=>i(Math.floor(a(o))),ceil:o=>i(Math.ceil(a(o)))})),t}function uP(){const e=Gy(Vf()).domain([1,10]);return e.copy=()=>Fc(e,uP()).base(e.base()),wn.apply(e,arguments),e}function r1(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function n1(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Yy(e){var t=1,r=e(r1(t),n1(t));return r.constant=function(s){return arguments.length?e(r1(t=+s),n1(t)):t},ja(r)}function mP(){var e=Yy(Vf());return e.copy=function(){return Fc(e,mP()).constant(e.constant())},wn.apply(e,arguments)}function s1(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function IH(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function RH(e){return e<0?-e*e:e*e}function Xy(e){var t=e(yr,yr),r=1;function s(){return r===1?e(yr,yr):r===.5?e(IH,RH):e(s1(r),s1(1/r))}return t.exponent=function(a){return arguments.length?(r=+a,s()):r},ja(t)}function Zy(){var e=Xy(Vf());return e.copy=function(){return Fc(e,Zy()).exponent(e.exponent())},wn.apply(e,arguments),e}function FH(){return Zy.apply(null,arguments).exponent(.5)}function a1(e){return Math.sign(e)*e*e}function zH(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function fP(){var e=Ky(),t=[0,1],r=!1,s;function a(i){var l=zH(e(i));return isNaN(l)?s:r?Math.round(l):l}return a.invert=function(i){return e.invert(a1(i))},a.domain=function(i){return arguments.length?(e.domain(i),a):e.domain()},a.range=function(i){return arguments.length?(e.range((t=Array.from(i,gm)).map(a1)),a):t.slice()},a.rangeRound=function(i){return a.range(i).round(!0)},a.round=function(i){return arguments.length?(r=!!i,a):r},a.clamp=function(i){return arguments.length?(e.clamp(i),a):e.clamp()},a.unknown=function(i){return arguments.length?(s=i,a):s},a.copy=function(){return fP(e.domain(),t).round(r).clamp(e.clamp()).unknown(s)},wn.apply(a,arguments),ja(a)}function hP(){var e=[],t=[],r=[],s;function a(){var l=0,o=Math.max(1,t.length);for(r=new Array(o-1);++l0?r[o-1]:e[0],o=r?[s[r-1],t]:[s[d-1],s[d]]},l.unknown=function(c){return arguments.length&&(i=c),l},l.thresholds=function(){return s.slice()},l.copy=function(){return xP().domain([e,t]).range(a).unknown(i)},wn.apply(ja(l),arguments)}function pP(){var e=[.5],t=[0,1],r,s=1;function a(i){return i!=null&&i<=i?t[Rc(e,i,0,s)]:r}return a.domain=function(i){return arguments.length?(e=Array.from(i),s=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(i){return arguments.length?(t=Array.from(i),s=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(i){var l=t.indexOf(i);return[e[l-1],e[l]]},a.unknown=function(i){return arguments.length?(r=i,a):r},a.copy=function(){return pP().domain(e).range(t).unknown(r)},wn.apply(a,arguments)}const dx=new Date,ux=new Date;function Lt(e,t,r,s){function a(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return a.floor=i=>(e(i=new Date(+i)),i),a.ceil=i=>(e(i=new Date(i-1)),t(i,1),e(i),i),a.round=i=>{const l=a(i),o=a.ceil(i);return i-l(t(i=new Date(+i),l==null?1:Math.floor(l)),i),a.range=(i,l,o)=>{const c=[];if(i=a.ceil(i),o=o==null?1:Math.floor(o),!(i0))return c;let d;do c.push(d=new Date(+i)),t(i,o),e(i);while(dLt(l=>{if(l>=l)for(;e(l),!i(l);)l.setTime(l-1)},(l,o)=>{if(l>=l)if(o<0)for(;++o<=0;)for(;t(l,-1),!i(l););else for(;--o>=0;)for(;t(l,1),!i(l););}),r&&(a.count=(i,l)=>(dx.setTime(+i),ux.setTime(+l),e(dx),e(ux),Math.floor(r(dx,ux))),a.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?a.filter(s?l=>s(l)%i===0:l=>a.count(0,l)%i===0):a)),a}const vm=Lt(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);vm.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Lt(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):vm);vm.range;const ds=1e3,hn=ds*60,us=hn*60,Ss=us*24,Jy=Ss*7,i1=Ss*30,mx=Ss*365,Va=Lt(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ds)},(e,t)=>(t-e)/ds,e=>e.getUTCSeconds());Va.range;const Qy=Lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ds)},(e,t)=>{e.setTime(+e+t*hn)},(e,t)=>(t-e)/hn,e=>e.getMinutes());Qy.range;const ev=Lt(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*hn)},(e,t)=>(t-e)/hn,e=>e.getUTCMinutes());ev.range;const tv=Lt(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ds-e.getMinutes()*hn)},(e,t)=>{e.setTime(+e+t*us)},(e,t)=>(t-e)/us,e=>e.getHours());tv.range;const rv=Lt(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*us)},(e,t)=>(t-e)/us,e=>e.getUTCHours());rv.range;const zc=Lt(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*hn)/Ss,e=>e.getDate()-1);zc.range;const Kf=Lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ss,e=>e.getUTCDate()-1);Kf.range;const gP=Lt(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ss,e=>Math.floor(e/Ss));gP.range;function ji(e){return Lt(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*hn)/Jy)}const Wf=ji(0),bm=ji(1),BH=ji(2),UH=ji(3),wl=ji(4),HH=ji(5),VH=ji(6);Wf.range;bm.range;BH.range;UH.range;wl.range;HH.range;VH.range;function wi(e){return Lt(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/Jy)}const qf=wi(0),jm=wi(1),KH=wi(2),WH=wi(3),Nl=wi(4),qH=wi(5),GH=wi(6);qf.range;jm.range;KH.range;WH.range;Nl.range;qH.range;GH.range;const nv=Lt(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());nv.range;const sv=Lt(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());sv.range;const ks=Lt(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ks.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Lt(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});ks.range;const Cs=Lt(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Cs.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Lt(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});Cs.range;function yP(e,t,r,s,a,i){const l=[[Va,1,ds],[Va,5,5*ds],[Va,15,15*ds],[Va,30,30*ds],[i,1,hn],[i,5,5*hn],[i,15,15*hn],[i,30,30*hn],[a,1,us],[a,3,3*us],[a,6,6*us],[a,12,12*us],[s,1,Ss],[s,2,2*Ss],[r,1,Jy],[t,1,i1],[t,3,3*i1],[e,1,mx]];function o(d,u,m){const f=uy).right(l,f);if(h===l.length)return e.every(xg(d/mx,u/mx,m));if(h===0)return vm.every(Math.max(xg(d,u,m),1));const[p,v]=l[f/l[h-1][2]53)return null;"w"in G||(G.w=1),"Z"in G?(ce=hx(mo(G.y,0,1)),oe=ce.getUTCDay(),ce=oe>4||oe===0?jm.ceil(ce):jm(ce),ce=Kf.offset(ce,(G.V-1)*7),G.y=ce.getUTCFullYear(),G.m=ce.getUTCMonth(),G.d=ce.getUTCDate()+(G.w+6)%7):(ce=fx(mo(G.y,0,1)),oe=ce.getDay(),ce=oe>4||oe===0?bm.ceil(ce):bm(ce),ce=zc.offset(ce,(G.V-1)*7),G.y=ce.getFullYear(),G.m=ce.getMonth(),G.d=ce.getDate()+(G.w+6)%7)}else("W"in G||"U"in G)&&("w"in G||(G.w="u"in G?G.u%7:"W"in G?1:0),oe="Z"in G?hx(mo(G.y,0,1)).getUTCDay():fx(mo(G.y,0,1)).getDay(),G.m=0,G.d="W"in G?(G.w+6)%7+G.W*7-(oe+5)%7:G.w+G.U*7-(oe+6)%7);return"Z"in G?(G.H+=G.Z/100|0,G.M+=G.Z%100,hx(G)):fx(G)}}function _(V,q,J,G){for(var le=0,ce=q.length,oe=J.length,se,ie;le=oe)return-1;if(se=q.charCodeAt(le++),se===37){if(se=q.charAt(le++),ie=C[se in l1?q.charAt(le++):se],!ie||(G=ie(V,J,G))<0)return-1}else if(se!=J.charCodeAt(G++))return-1}return G}function I(V,q,J){var G=d.exec(q.slice(J));return G?(V.p=u.get(G[0].toLowerCase()),J+G[0].length):-1}function B(V,q,J){var G=h.exec(q.slice(J));return G?(V.w=p.get(G[0].toLowerCase()),J+G[0].length):-1}function z(V,q,J){var G=m.exec(q.slice(J));return G?(V.w=f.get(G[0].toLowerCase()),J+G[0].length):-1}function T(V,q,J){var G=g.exec(q.slice(J));return G?(V.m=b.get(G[0].toLowerCase()),J+G[0].length):-1}function D(V,q,J){var G=v.exec(q.slice(J));return G?(V.m=y.get(G[0].toLowerCase()),J+G[0].length):-1}function E(V,q,J){return _(V,t,q,J)}function S(V,q,J){return _(V,r,q,J)}function k(V,q,J){return _(V,s,q,J)}function P(V){return l[V.getDay()]}function O(V){return i[V.getDay()]}function $(V){return c[V.getMonth()]}function H(V){return o[V.getMonth()]}function L(V){return a[+(V.getHours()>=12)]}function W(V){return 1+~~(V.getMonth()/3)}function M(V){return l[V.getUTCDay()]}function R(V){return i[V.getUTCDay()]}function U(V){return c[V.getUTCMonth()]}function K(V){return o[V.getUTCMonth()]}function F(V){return a[+(V.getUTCHours()>=12)]}function Y(V){return 1+~~(V.getUTCMonth()/3)}return{format:function(V){var q=N(V+="",j);return q.toString=function(){return V},q},parse:function(V){var q=A(V+="",!1);return q.toString=function(){return V},q},utcFormat:function(V){var q=N(V+="",w);return q.toString=function(){return V},q},utcParse:function(V){var q=A(V+="",!0);return q.toString=function(){return V},q}}}var l1={"-":"",_:" ",0:"0"},Kt=/^\s*\d+/,eV=/^%/,tV=/[\\^$*+?|[\]().{}]/g;function $e(e,t,r){var s=e<0?"-":"",a=(s?-e:e)+"",i=a.length;return s+(i[t.toLowerCase(),r]))}function nV(e,t,r){var s=Kt.exec(t.slice(r,r+1));return s?(e.w=+s[0],r+s[0].length):-1}function sV(e,t,r){var s=Kt.exec(t.slice(r,r+1));return s?(e.u=+s[0],r+s[0].length):-1}function aV(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.U=+s[0],r+s[0].length):-1}function iV(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.V=+s[0],r+s[0].length):-1}function lV(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.W=+s[0],r+s[0].length):-1}function o1(e,t,r){var s=Kt.exec(t.slice(r,r+4));return s?(e.y=+s[0],r+s[0].length):-1}function c1(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.y=+s[0]+(+s[0]>68?1900:2e3),r+s[0].length):-1}function oV(e,t,r){var s=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return s?(e.Z=s[1]?0:-(s[2]+(s[3]||"00")),r+s[0].length):-1}function cV(e,t,r){var s=Kt.exec(t.slice(r,r+1));return s?(e.q=s[0]*3-3,r+s[0].length):-1}function dV(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.m=s[0]-1,r+s[0].length):-1}function d1(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.d=+s[0],r+s[0].length):-1}function uV(e,t,r){var s=Kt.exec(t.slice(r,r+3));return s?(e.m=0,e.d=+s[0],r+s[0].length):-1}function u1(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.H=+s[0],r+s[0].length):-1}function mV(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.M=+s[0],r+s[0].length):-1}function fV(e,t,r){var s=Kt.exec(t.slice(r,r+2));return s?(e.S=+s[0],r+s[0].length):-1}function hV(e,t,r){var s=Kt.exec(t.slice(r,r+3));return s?(e.L=+s[0],r+s[0].length):-1}function xV(e,t,r){var s=Kt.exec(t.slice(r,r+6));return s?(e.L=Math.floor(s[0]/1e3),r+s[0].length):-1}function pV(e,t,r){var s=eV.exec(t.slice(r,r+1));return s?r+s[0].length:-1}function gV(e,t,r){var s=Kt.exec(t.slice(r));return s?(e.Q=+s[0],r+s[0].length):-1}function yV(e,t,r){var s=Kt.exec(t.slice(r));return s?(e.s=+s[0],r+s[0].length):-1}function m1(e,t){return $e(e.getDate(),t,2)}function vV(e,t){return $e(e.getHours(),t,2)}function bV(e,t){return $e(e.getHours()%12||12,t,2)}function jV(e,t){return $e(1+zc.count(ks(e),e),t,3)}function vP(e,t){return $e(e.getMilliseconds(),t,3)}function wV(e,t){return vP(e,t)+"000"}function NV(e,t){return $e(e.getMonth()+1,t,2)}function SV(e,t){return $e(e.getMinutes(),t,2)}function kV(e,t){return $e(e.getSeconds(),t,2)}function CV(e){var t=e.getDay();return t===0?7:t}function EV(e,t){return $e(Wf.count(ks(e)-1,e),t,2)}function bP(e){var t=e.getDay();return t>=4||t===0?wl(e):wl.ceil(e)}function PV(e,t){return e=bP(e),$e(wl.count(ks(e),e)+(ks(e).getDay()===4),t,2)}function AV(e){return e.getDay()}function TV(e,t){return $e(bm.count(ks(e)-1,e),t,2)}function _V(e,t){return $e(e.getFullYear()%100,t,2)}function OV(e,t){return e=bP(e),$e(e.getFullYear()%100,t,2)}function MV(e,t){return $e(e.getFullYear()%1e4,t,4)}function DV(e,t){var r=e.getDay();return e=r>=4||r===0?wl(e):wl.ceil(e),$e(e.getFullYear()%1e4,t,4)}function $V(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+$e(t/60|0,"0",2)+$e(t%60,"0",2)}function f1(e,t){return $e(e.getUTCDate(),t,2)}function LV(e,t){return $e(e.getUTCHours(),t,2)}function IV(e,t){return $e(e.getUTCHours()%12||12,t,2)}function RV(e,t){return $e(1+Kf.count(Cs(e),e),t,3)}function jP(e,t){return $e(e.getUTCMilliseconds(),t,3)}function FV(e,t){return jP(e,t)+"000"}function zV(e,t){return $e(e.getUTCMonth()+1,t,2)}function BV(e,t){return $e(e.getUTCMinutes(),t,2)}function UV(e,t){return $e(e.getUTCSeconds(),t,2)}function HV(e){var t=e.getUTCDay();return t===0?7:t}function VV(e,t){return $e(qf.count(Cs(e)-1,e),t,2)}function wP(e){var t=e.getUTCDay();return t>=4||t===0?Nl(e):Nl.ceil(e)}function KV(e,t){return e=wP(e),$e(Nl.count(Cs(e),e)+(Cs(e).getUTCDay()===4),t,2)}function WV(e){return e.getUTCDay()}function qV(e,t){return $e(jm.count(Cs(e)-1,e),t,2)}function GV(e,t){return $e(e.getUTCFullYear()%100,t,2)}function YV(e,t){return e=wP(e),$e(e.getUTCFullYear()%100,t,2)}function XV(e,t){return $e(e.getUTCFullYear()%1e4,t,4)}function ZV(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Nl(e):Nl.ceil(e),$e(e.getUTCFullYear()%1e4,t,4)}function JV(){return"+0000"}function h1(){return"%"}function x1(e){return+e}function p1(e){return Math.floor(+e/1e3)}var Oi,NP,SP;QV({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function QV(e){return Oi=QH(e),NP=Oi.format,Oi.parse,SP=Oi.utcFormat,Oi.utcParse,Oi}function eK(e){return new Date(e)}function tK(e){return e instanceof Date?+e:+new Date(+e)}function av(e,t,r,s,a,i,l,o,c,d){var u=Ky(),m=u.invert,f=u.domain,h=d(".%L"),p=d(":%S"),v=d("%I:%M"),y=d("%I %p"),g=d("%a %d"),b=d("%b %d"),j=d("%B"),w=d("%Y");function C(N){return(c(N)t(a/(e.length-1)))},r.quantiles=function(s){return Array.from({length:s+1},(a,i)=>fH(e,i/s))},r.copy=function(){return PP(t).domain(e)},Os.apply(r,arguments)}function Yf(){var e=0,t=.5,r=1,s=1,a,i,l,o,c,d=yr,u,m=!1,f;function h(v){return isNaN(v=+v)?f:(v=.5+((v=+u(v))-i)*(s*ve.chartData,ov=Q([Na],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),Xf=(e,t,r,s)=>s?ov(e):Na(e);function Sl(e){if(Array.isArray(e)&&e.length===2){var[t,r]=e;if(Qr(t)&&Qr(r))return!0}return!1}function g1(e,t,r){return r?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function iK(e,t){if(t&&typeof e!="function"&&Array.isArray(e)&&e.length===2){var[r,s]=e,a,i;if(Qr(r))a=r;else if(typeof r=="function")return;if(Qr(s))i=s;else if(typeof s=="function")return;var l=[a,i];if(Sl(l))return l}}function lK(e,t,r){if(!(!r&&t==null)){if(typeof e=="function"&&t!=null)try{var s=e(t,r);if(Sl(s))return g1(s,t,r)}catch{}if(Array.isArray(e)&&e.length===2){var[a,i]=e,l,o;if(a==="auto")t!=null&&(l=Math.min(...t));else if(ve(a))l=a;else if(typeof a=="function")try{t!=null&&(l=a(t==null?void 0:t[0]))}catch{}else if(typeof a=="string"&&wN.test(a)){var c=wN.exec(a);if(c==null||t==null)l=void 0;else{var d=+c[1];l=t[0]-d}}else l=t==null?void 0:t[0];if(i==="auto")t!=null&&(o=Math.max(...t));else if(ve(i))o=i;else if(typeof i=="function")try{t!=null&&(o=i(t==null?void 0:t[1]))}catch{}else if(typeof i=="string"&&NN.test(i)){var u=NN.exec(i);if(u==null||t==null)o=void 0;else{var m=+u[1];o=t[1]+m}}else o=t==null?void 0:t[1];var f=[l,o];if(Sl(f))return t==null?f:g1(f,t,r)}}}var Il=1e9,oK={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},dv,lt=!0,bn="[DecimalError] ",ei=bn+"Invalid argument: ",cv=bn+"Exponent out of range: ",Rl=Math.floor,Da=Math.pow,cK=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Vr,Rt=1e7,tt=7,OP=9007199254740991,wm=Rl(OP/tt),fe={};fe.absoluteValue=fe.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};fe.comparedTo=fe.cmp=function(e){var t,r,s,a,i=this;if(e=new i.constructor(e),i.s!==e.s)return i.s||-e.s;if(i.e!==e.e)return i.e>e.e^i.s<0?1:-1;for(s=i.d.length,a=e.d.length,t=0,r=se.d[t]^i.s<0?1:-1;return s===a?0:s>a^i.s<0?1:-1};fe.decimalPlaces=fe.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*tt;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};fe.dividedBy=fe.div=function(e){return xs(this,new this.constructor(e))};fe.dividedToIntegerBy=fe.idiv=function(e){var t=this,r=t.constructor;return We(xs(t,new r(e),0,1),r.precision)};fe.equals=fe.eq=function(e){return!this.cmp(e)};fe.exponent=function(){return Ct(this)};fe.greaterThan=fe.gt=function(e){return this.cmp(e)>0};fe.greaterThanOrEqualTo=fe.gte=function(e){return this.cmp(e)>=0};fe.isInteger=fe.isint=function(){return this.e>this.d.length-2};fe.isNegative=fe.isneg=function(){return this.s<0};fe.isPositive=fe.ispos=function(){return this.s>0};fe.isZero=function(){return this.s===0};fe.lessThan=fe.lt=function(e){return this.cmp(e)<0};fe.lessThanOrEqualTo=fe.lte=function(e){return this.cmp(e)<1};fe.logarithm=fe.log=function(e){var t,r=this,s=r.constructor,a=s.precision,i=a+5;if(e===void 0)e=new s(10);else if(e=new s(e),e.s<1||e.eq(Vr))throw Error(bn+"NaN");if(r.s<1)throw Error(bn+(r.s?"NaN":"-Infinity"));return r.eq(Vr)?new s(0):(lt=!1,t=xs(pc(r,i),pc(e,i),i),lt=!0,We(t,a))};fe.minus=fe.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?$P(t,e):MP(t,(e.s=-e.s,e))};fe.modulo=fe.mod=function(e){var t,r=this,s=r.constructor,a=s.precision;if(e=new s(e),!e.s)throw Error(bn+"NaN");return r.s?(lt=!1,t=xs(r,e,0,1).times(e),lt=!0,r.minus(t)):We(new s(r),a)};fe.naturalExponential=fe.exp=function(){return DP(this)};fe.naturalLogarithm=fe.ln=function(){return pc(this)};fe.negated=fe.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};fe.plus=fe.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?MP(t,e):$P(t,(e.s=-e.s,e))};fe.precision=fe.sd=function(e){var t,r,s,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ei+e);if(t=Ct(a)+1,s=a.d.length-1,r=s*tt+1,s=a.d[s],s){for(;s%10==0;s/=10)r--;for(s=a.d[0];s>=10;s/=10)r++}return e&&t>r?t:r};fe.squareRoot=fe.sqrt=function(){var e,t,r,s,a,i,l,o=this,c=o.constructor;if(o.s<1){if(!o.s)return new c(0);throw Error(bn+"NaN")}for(e=Ct(o),lt=!1,a=Math.sqrt(+o),a==0||a==1/0?(t=Wn(o.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Rl((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),s=new c(t)):s=new c(a.toString()),r=c.precision,a=l=r+3;;)if(i=s,s=i.plus(xs(o,i,l+2)).times(.5),Wn(i.d).slice(0,l)===(t=Wn(s.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(We(i,r+1,0),i.times(i).eq(o)){s=i;break}}else if(t!="9999")break;l+=4}return lt=!0,We(s,r)};fe.times=fe.mul=function(e){var t,r,s,a,i,l,o,c,d,u=this,m=u.constructor,f=u.d,h=(e=new m(e)).d;if(!u.s||!e.s)return new m(0);for(e.s*=u.s,r=u.e+e.e,c=f.length,d=h.length,c=0;){for(t=0,a=c+s;a>s;)o=i[a]+h[s]*f[a-s-1]+t,i[a--]=o%Rt|0,t=o/Rt|0;i[a]=(i[a]+t)%Rt|0}for(;!i[--l];)i.pop();return t?++r:i.shift(),e.d=i,e.e=r,lt?We(e,m.precision):e};fe.toDecimalPlaces=fe.todp=function(e,t){var r=this,s=r.constructor;return r=new s(r),e===void 0?r:(Zn(e,0,Il),t===void 0?t=s.rounding:Zn(t,0,8),We(r,e+Ct(r)+1,t))};fe.toExponential=function(e,t){var r,s=this,a=s.constructor;return e===void 0?r=xi(s,!0):(Zn(e,0,Il),t===void 0?t=a.rounding:Zn(t,0,8),s=We(new a(s),e+1,t),r=xi(s,!0,e+1)),r};fe.toFixed=function(e,t){var r,s,a=this,i=a.constructor;return e===void 0?xi(a):(Zn(e,0,Il),t===void 0?t=i.rounding:Zn(t,0,8),s=We(new i(a),e+Ct(a)+1,t),r=xi(s.abs(),!1,e+Ct(s)+1),a.isneg()&&!a.isZero()?"-"+r:r)};fe.toInteger=fe.toint=function(){var e=this,t=e.constructor;return We(new t(e),Ct(e)+1,t.rounding)};fe.toNumber=function(){return+this};fe.toPower=fe.pow=function(e){var t,r,s,a,i,l,o=this,c=o.constructor,d=12,u=+(e=new c(e));if(!e.s)return new c(Vr);if(o=new c(o),!o.s){if(e.s<1)throw Error(bn+"Infinity");return o}if(o.eq(Vr))return o;if(s=c.precision,e.eq(Vr))return We(o,s);if(t=e.e,r=e.d.length-1,l=t>=r,i=o.s,l){if((r=u<0?-u:u)<=OP){for(a=new c(Vr),t=Math.ceil(s/tt+4),lt=!1;r%2&&(a=a.times(o),v1(a.d,t)),r=Rl(r/2),r!==0;)o=o.times(o),v1(o.d,t);return lt=!0,e.s<0?new c(Vr).div(a):We(a,s)}}else if(i<0)throw Error(bn+"NaN");return i=i<0&&e.d[Math.max(t,r)]&1?-1:1,o.s=1,lt=!1,a=e.times(pc(o,s+d)),lt=!0,a=DP(a),a.s=i,a};fe.toPrecision=function(e,t){var r,s,a=this,i=a.constructor;return e===void 0?(r=Ct(a),s=xi(a,r<=i.toExpNeg||r>=i.toExpPos)):(Zn(e,1,Il),t===void 0?t=i.rounding:Zn(t,0,8),a=We(new i(a),e,t),r=Ct(a),s=xi(a,e<=r||r<=i.toExpNeg,e)),s};fe.toSignificantDigits=fe.tosd=function(e,t){var r=this,s=r.constructor;return e===void 0?(e=s.precision,t=s.rounding):(Zn(e,1,Il),t===void 0?t=s.rounding:Zn(t,0,8)),We(new s(r),e,t)};fe.toString=fe.valueOf=fe.val=fe.toJSON=fe[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Ct(e),r=e.constructor;return xi(e,t<=r.toExpNeg||t>=r.toExpPos)};function MP(e,t){var r,s,a,i,l,o,c,d,u=e.constructor,m=u.precision;if(!e.s||!t.s)return t.s||(t=new u(e)),lt?We(t,m):t;if(c=e.d,d=t.d,l=e.e,a=t.e,c=c.slice(),i=l-a,i){for(i<0?(s=c,i=-i,o=d.length):(s=d,a=l,o=c.length),l=Math.ceil(m/tt),o=l>o?l+1:o+1,i>o&&(i=o,s.length=1),s.reverse();i--;)s.push(0);s.reverse()}for(o=c.length,i=d.length,o-i<0&&(i=o,s=d,d=c,c=s),r=0;i;)r=(c[--i]=c[i]+d[i]+r)/Rt|0,c[i]%=Rt;for(r&&(c.unshift(r),++a),o=c.length;c[--o]==0;)c.pop();return t.d=c,t.e=a,lt?We(t,m):t}function Zn(e,t,r){if(e!==~~e||er)throw Error(ei+e)}function Wn(e){var t,r,s,a=e.length-1,i="",l=e[0];if(a>0){for(i+=l,t=1;tl?1:-1;else for(o=c=0;oa[o]?1:-1;break}return c}function r(s,a,i){for(var l=0;i--;)s[i]-=l,l=s[i]1;)s.shift()}return function(s,a,i,l){var o,c,d,u,m,f,h,p,v,y,g,b,j,w,C,N,A,_,I=s.constructor,B=s.s==a.s?1:-1,z=s.d,T=a.d;if(!s.s)return new I(s);if(!a.s)throw Error(bn+"Division by zero");for(c=s.e-a.e,A=T.length,C=z.length,h=new I(B),p=h.d=[],d=0;T[d]==(z[d]||0);)++d;if(T[d]>(z[d]||0)&&--c,i==null?b=i=I.precision:l?b=i+(Ct(s)-Ct(a))+1:b=i,b<0)return new I(0);if(b=b/tt+2|0,d=0,A==1)for(u=0,T=T[0],b++;(d1&&(T=e(T,u),z=e(z,u),A=T.length,C=z.length),w=A,v=z.slice(0,A),y=v.length;y=Rt/2&&++N;do u=0,o=t(T,v,A,y),o<0?(g=v[0],A!=y&&(g=g*Rt+(v[1]||0)),u=g/N|0,u>1?(u>=Rt&&(u=Rt-1),m=e(T,u),f=m.length,y=v.length,o=t(m,v,f,y),o==1&&(u--,r(m,A16)throw Error(cv+Ct(e));if(!e.s)return new u(Vr);for(lt=!1,o=m,l=new u(.03125);e.abs().gte(.1);)e=e.times(l),d+=5;for(s=Math.log(Da(2,d))/Math.LN10*2+5|0,o+=s,r=a=i=new u(Vr),u.precision=o;;){if(a=We(a.times(e),o),r=r.times(++c),l=i.plus(xs(a,r,o)),Wn(l.d).slice(0,o)===Wn(i.d).slice(0,o)){for(;d--;)i=We(i.times(i),o);return u.precision=m,t==null?(lt=!0,We(i,m)):i}i=l}}function Ct(e){for(var t=e.e*tt,r=e.d[0];r>=10;r/=10)t++;return t}function xx(e,t,r){if(t>e.LN10.sd())throw lt=!0,r&&(e.precision=r),Error(bn+"LN10 precision limit exceeded");return We(new e(e.LN10),t)}function Bs(e){for(var t="";e--;)t+="0";return t}function pc(e,t){var r,s,a,i,l,o,c,d,u,m=1,f=10,h=e,p=h.d,v=h.constructor,y=v.precision;if(h.s<1)throw Error(bn+(h.s?"NaN":"-Infinity"));if(h.eq(Vr))return new v(0);if(t==null?(lt=!1,d=y):d=t,h.eq(10))return t==null&&(lt=!0),xx(v,d);if(d+=f,v.precision=d,r=Wn(p),s=r.charAt(0),i=Ct(h),Math.abs(i)<15e14){for(;s<7&&s!=1||s==1&&r.charAt(1)>3;)h=h.times(e),r=Wn(h.d),s=r.charAt(0),m++;i=Ct(h),s>1?(h=new v("0."+r),i++):h=new v(s+"."+r.slice(1))}else return c=xx(v,d+2,y).times(i+""),h=pc(new v(s+"."+r.slice(1)),d-f).plus(c),v.precision=y,t==null?(lt=!0,We(h,y)):h;for(o=l=h=xs(h.minus(Vr),h.plus(Vr),d),u=We(h.times(h),d),a=3;;){if(l=We(l.times(u),d),c=o.plus(xs(l,new v(a),d)),Wn(c.d).slice(0,d)===Wn(o.d).slice(0,d))return o=o.times(2),i!==0&&(o=o.plus(xx(v,d+2,y).times(i+""))),o=xs(o,new v(m),d),v.precision=y,t==null?(lt=!0,We(o,y)):o;o=c,a+=2}}function y1(e,t){var r,s,a;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(s=t.search(/e/i))>0?(r<0&&(r=s),r+=+t.slice(s+1),t=t.substring(0,s)):r<0&&(r=t.length),s=0;t.charCodeAt(s)===48;)++s;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(s,a),t){if(a-=s,r=r-s-1,e.e=Rl(r/tt),e.d=[],s=(r+1)%tt,r<0&&(s+=tt),swm||e.e<-wm))throw Error(cv+r)}else e.s=0,e.e=0,e.d=[0];return e}function We(e,t,r){var s,a,i,l,o,c,d,u,m=e.d;for(l=1,i=m[0];i>=10;i/=10)l++;if(s=t-l,s<0)s+=tt,a=t,d=m[u=0];else{if(u=Math.ceil((s+1)/tt),i=m.length,u>=i)return e;for(d=i=m[u],l=1;i>=10;i/=10)l++;s%=tt,a=s-tt+l}if(r!==void 0&&(i=Da(10,l-a-1),o=d/i%10|0,c=t<0||m[u+1]!==void 0||d%i,c=r<4?(o||c)&&(r==0||r==(e.s<0?3:2)):o>5||o==5&&(r==4||c||r==6&&(s>0?a>0?d/Da(10,l-a):0:m[u-1])%10&1||r==(e.s<0?8:7))),t<1||!m[0])return c?(i=Ct(e),m.length=1,t=t-i-1,m[0]=Da(10,(tt-t%tt)%tt),e.e=Rl(-t/tt)||0):(m.length=1,m[0]=e.e=e.s=0),e;if(s==0?(m.length=u,i=1,u--):(m.length=u+1,i=Da(10,tt-s),m[u]=a>0?(d/Da(10,l-a)%Da(10,a)|0)*i:0),c)for(;;)if(u==0){(m[0]+=i)==Rt&&(m[0]=1,++e.e);break}else{if(m[u]+=i,m[u]!=Rt)break;m[u--]=0,i=1}for(s=m.length;m[--s]===0;)m.pop();if(lt&&(e.e>wm||e.e<-wm))throw Error(cv+Ct(e));return e}function $P(e,t){var r,s,a,i,l,o,c,d,u,m,f=e.constructor,h=f.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new f(e),lt?We(t,h):t;if(c=e.d,m=t.d,s=t.e,d=e.e,c=c.slice(),l=d-s,l){for(u=l<0,u?(r=c,l=-l,o=m.length):(r=m,s=d,o=c.length),a=Math.max(Math.ceil(h/tt),o)+2,l>a&&(l=a,r.length=1),r.reverse(),a=l;a--;)r.push(0);r.reverse()}else{for(a=c.length,o=m.length,u=a0;--a)c[o++]=0;for(a=m.length;a>l;){if(c[--a]0?i=i.charAt(0)+"."+i.slice(1)+Bs(s):l>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+Bs(-a-1)+i,r&&(s=r-l)>0&&(i+=Bs(s))):a>=l?(i+=Bs(a+1-l),r&&(s=r-a-1)>0&&(i=i+"."+Bs(s))):((s=a+1)0&&(a+1===l&&(i+="."),i+=Bs(s))),e.s<0?"-"+i:i}function v1(e,t){if(e.length>t)return e.length=t,!0}function LP(e){var t,r,s;function a(i){var l=this;if(!(l instanceof a))return new a(i);if(l.constructor=a,i instanceof a){l.s=i.s,l.e=i.e,l.d=(i=i.d)?i.slice():i;return}if(typeof i=="number"){if(i*0!==0)throw Error(ei+i);if(i>0)l.s=1;else if(i<0)i=-i,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(i===~~i&&i<1e7){l.e=0,l.d=[i];return}return y1(l,i.toString())}else if(typeof i!="string")throw Error(ei+i);if(i.charCodeAt(0)===45?(i=i.slice(1),l.s=-1):l.s=1,cK.test(i))y1(l,i);else throw Error(ei+i)}if(a.prototype=fe,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=LP,a.config=a.set=dK,e===void 0&&(e={}),e)for(s=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&s<=a[t+2])this[r]=s;else throw Error(ei+r+": "+s);if((s=e[r="LN10"])!==void 0)if(s==Math.LN10)this[r]=new this(s);else throw Error(ei+r+": "+s);return this}var dv=LP(oK);Vr=new dv(1);const ze=dv;var uK=e=>e,IP={},RP=e=>e===IP,b1=e=>function t(){return arguments.length===0||arguments.length===1&&RP(arguments.length<=0?void 0:arguments[0])?t:e(...arguments)},FP=(e,t)=>e===1?t:b1(function(){for(var r=arguments.length,s=new Array(r),a=0;al!==IP).length;return i>=e?t(...s):FP(e-i,b1(function(){for(var l=arguments.length,o=new Array(l),c=0;cRP(u)?o.shift():u);return t(...d,...o)}))}),Zf=e=>FP(e.length,e),yg=(e,t)=>{for(var r=[],s=e;sArray.isArray(t)?t.map(e):Object.keys(t).map(r=>t[r]).map(e)),fK=function(){for(var t=arguments.length,r=new Array(t),s=0;sc(o),i(...arguments))}},vg=e=>Array.isArray(e)?e.reverse():e.split("").reverse().join(""),zP=e=>{var t=null,r=null;return function(){for(var s=arguments.length,a=new Array(s),i=0;i{var c;return l===((c=t)===null||c===void 0?void 0:c[o])})||(t=a,r=e(...a)),r}};function BP(e){var t;return e===0?t=1:t=Math.floor(new ze(e).abs().log(10).toNumber())+1,t}function UP(e,t,r){for(var s=new ze(e),a=0,i=[];s.lt(t)&&a<1e5;)i.push(s.toNumber()),s=s.add(r),a++;return i}Zf((e,t,r)=>{var s=+e,a=+t;return s+r*(a-s)});Zf((e,t,r)=>{var s=t-+e;return s=s||1/0,(r-e)/s});Zf((e,t,r)=>{var s=t-+e;return s=s||1/0,Math.max(0,Math.min(1,(r-e)/s))});var HP=e=>{var[t,r]=e,[s,a]=[t,r];return t>r&&([s,a]=[r,t]),[s,a]},VP=(e,t,r)=>{if(e.lte(0))return new ze(0);var s=BP(e.toNumber()),a=new ze(10).pow(s),i=e.div(a),l=s!==1?.05:.1,o=new ze(Math.ceil(i.div(l).toNumber())).add(r).mul(l),c=o.mul(a);return t?new ze(c.toNumber()):new ze(Math.ceil(c.toNumber()))},hK=(e,t,r)=>{var s=new ze(1),a=new ze(e);if(!a.isint()&&r){var i=Math.abs(e);i<1?(s=new ze(10).pow(BP(e)-1),a=new ze(Math.floor(a.div(s).toNumber())).mul(s)):i>1&&(a=new ze(Math.floor(e)))}else e===0?a=new ze(Math.floor((t-1)/2)):r||(a=new ze(Math.floor(e)));var l=Math.floor((t-1)/2),o=fK(mK(c=>a.add(new ze(c-l).mul(s)).toNumber()),yg);return o(0,t)},KP=function(t,r,s,a){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((r-t)/(s-1)))return{step:new ze(0),tickMin:new ze(0),tickMax:new ze(0)};var l=VP(new ze(r).sub(t).div(s-1),a,i),o;t<=0&&r>=0?o=new ze(0):(o=new ze(t).add(r).div(2),o=o.sub(new ze(o).mod(l)));var c=Math.ceil(o.sub(t).div(l).toNumber()),d=Math.ceil(new ze(r).sub(o).div(l).toNumber()),u=c+d+1;return u>s?KP(t,r,s,a,i+1):(u0?d+(s-u):d,c=r>0?c:c+(s-u)),{step:l,tickMin:o.sub(new ze(c).mul(l)),tickMax:o.add(new ze(d).mul(l))})};function xK(e){var[t,r]=e,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=Math.max(s,2),[l,o]=HP([t,r]);if(l===-1/0||o===1/0){var c=o===1/0?[l,...yg(0,s-1).map(()=>1/0)]:[...yg(0,s-1).map(()=>-1/0),o];return t>r?vg(c):c}if(l===o)return hK(l,s,a);var{step:d,tickMin:u,tickMax:m}=KP(l,o,i,a,0),f=UP(u,m.add(new ze(.1).mul(d)),d);return t>r?vg(f):f}function pK(e,t){var[r,s]=e,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,[i,l]=HP([r,s]);if(i===-1/0||l===1/0)return[r,s];if(i===l)return[i];var o=Math.max(t,2),c=VP(new ze(l).sub(i).div(o-1),a,0),d=[...UP(new ze(i),new ze(l),c),l];return a===!1&&(d=d.map(u=>Math.round(u))),r>s?vg(d):d}var gK=zP(xK),yK=zP(pK),WP=e=>e.rootProps.maxBarSize,vK=e=>e.rootProps.barGap,qP=e=>e.rootProps.barCategoryGap,bK=e=>e.rootProps.barSize,Bc=e=>e.rootProps.stackOffset,uv=e=>e.options.chartName,mv=e=>e.rootProps.syncId,GP=e=>e.rootProps.syncMethod,fv=e=>e.options.eventEmitter,as={allowDuplicatedCategory:!0,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"category"},Ur={allowDataOverflow:!1,allowDuplicatedCategory:!0,radiusAxisId:0,scale:"auto",tick:!0,tickCount:5,type:"number"},Jf=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t},jK={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:as.angleAxisId,includeHidden:!1,name:void 0,reversed:as.reversed,scale:as.scale,tick:as.tick,tickCount:void 0,ticks:void 0,type:as.type,unit:void 0},wK={allowDataOverflow:Ur.allowDataOverflow,allowDecimals:!1,allowDuplicatedCategory:Ur.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Ur.radiusAxisId,includeHidden:!1,name:void 0,reversed:!1,scale:Ur.scale,tick:Ur.tick,tickCount:Ur.tickCount,ticks:void 0,type:Ur.type,unit:void 0},NK={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:as.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:as.angleAxisId,includeHidden:!1,name:void 0,reversed:!1,scale:as.scale,tick:as.tick,tickCount:void 0,ticks:void 0,type:"number",unit:void 0},SK={allowDataOverflow:Ur.allowDataOverflow,allowDecimals:!1,allowDuplicatedCategory:Ur.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Ur.radiusAxisId,includeHidden:!1,name:void 0,reversed:!1,scale:Ur.scale,tick:Ur.tick,tickCount:Ur.tickCount,ticks:void 0,type:"category",unit:void 0},hv=(e,t)=>e.polarAxis.angleAxis[t]!=null?e.polarAxis.angleAxis[t]:e.layout.layoutType==="radial"?NK:jK,xv=(e,t)=>e.polarAxis.radiusAxis[t]!=null?e.polarAxis.radiusAxis[t]:e.layout.layoutType==="radial"?SK:wK,Qf=e=>e.polarOptions,pv=Q([Ts,_s,$t],A3),YP=Q([Qf,pv],(e,t)=>{if(e!=null)return ur(e.innerRadius,t,0)}),XP=Q([Qf,pv],(e,t)=>{if(e!=null)return ur(e.outerRadius,t,t*.8)}),kK=e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:r}=e;return[t,r]},ZP=Q([Qf],kK);Q([hv,ZP],Jf);var JP=Q([pv,YP,XP],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});Q([xv,JP],Jf);var QP=Q([Me,Qf,YP,XP,Ts,_s],(e,t,r,s,a,i)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||s==null)){var{cx:l,cy:o,startAngle:c,endAngle:d}=t;return{cx:ur(l,a,a/2),cy:ur(o,i,i/2),innerRadius:r,outerRadius:s,startAngle:c,endAngle:d,clockWise:!1}}}),ct=(e,t)=>t,Uc=(e,t,r)=>r;function gv(e){return e==null?void 0:e.id}var It=e=>{var t=Me(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Fl=e=>e.tooltip.settings.axisId,Wt=e=>{var t=It(e),r=Fl(e);return Hc(e,t,r)},eA=Q([Wt],e=>e==null?void 0:e.dataKey);function tA(e,t,r){var{chartData:s=[]}=t,{allowDuplicatedCategory:a,dataKey:i}=r,l=new Map;return e.forEach(o=>{var c,d=(c=o.data)!==null&&c!==void 0?c:s;if(!(d==null||d.length===0)){var u=gv(o);d.forEach((m,f)=>{var h=i==null||a?f:String(Ke(m,i,null)),p=Ke(m,o.dataKey,0),v;l.has(h)?v=l.get(h):v={},Object.assign(v,{[u]:p}),l.set(h,v)})}}),Array.from(l.values())}function eh(e){return e.stackId!=null&&e.dataKey!=null}function j1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Nm(e){for(var t=1;te.cartesianAxis.xAxis[t],Sa=(e,t)=>{var r=rA(e,t);return r??Fr},zr={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:bg,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,width:$c},nA=(e,t)=>e.cartesianAxis.yAxis[t],ka=(e,t)=>{var r=nA(e,t);return r??zr},AK={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},yv=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??AK},jt=(e,t,r)=>{switch(t){case"xAxis":return Sa(e,r);case"yAxis":return ka(e,r);case"zAxis":return yv(e,r);case"angleAxis":return hv(e,r);case"radiusAxis":return xv(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},TK=(e,t,r)=>{switch(t){case"xAxis":return Sa(e,r);case"yAxis":return ka(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Hc=(e,t,r)=>{switch(t){case"xAxis":return Sa(e,r);case"yAxis":return ka(e,r);case"angleAxis":return hv(e,r);case"radiusAxis":return xv(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},sA=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function vv(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var th=e=>e.graphicalItems.cartesianItems,_K=Q([ct,Uc],vv),bv=(e,t,r)=>e.filter(r).filter(s=>(t==null?void 0:t.includeHidden)===!0?!0:!s.hide),Vc=Q([th,jt,_K],bv),aA=Q([Vc],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(eh)),iA=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),lA=Q([Vc],iA),jv=e=>e.map(t=>t.data).filter(Boolean).flat(1),OK=Q([Vc],jv),wv=(e,t)=>{var{chartData:r=[],dataStartIndex:s,dataEndIndex:a}=t;return e.length>0?e:r.slice(s,a+1)},Nv=Q([OK,Xf],wv),Sv=(e,t,r)=>(t==null?void 0:t.dataKey)!=null?e.map(s=>({value:Ke(s,t.dataKey)})):r.length>0?r.map(s=>s.dataKey).flatMap(s=>e.map(a=>({value:Ke(a,s)}))):e.map(s=>({value:s})),rh=Q([Nv,jt,Vc],Sv);function oA(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function Ni(e){return e.filter(t=>Xn(t)||t instanceof Date).map(Number).filter(t=>Zr(t)===!1)}function MK(e,t,r){return!r||typeof t!="number"||Zr(t)?[]:r.length?Ni(r.flatMap(s=>{var a=Ke(e,s.dataKey),i,l;if(Array.isArray(a)?[i,l]=a:i=l=a,!(!Qr(i)||!Qr(l)))return[t-i,t+l]})):[]}var DK=Q([aA,Xf,Wt],tA),cA=(e,t,r)=>{var s={},a=t.reduce((i,l)=>(l.stackId==null||(i[l.stackId]==null&&(i[l.stackId]=[]),i[l.stackId].push(l)),i),s);return Object.fromEntries(Object.entries(a).map(i=>{var[l,o]=i,c=o.map(gv);return[l,{stackedData:kB(e,c,r),graphicalItems:o}]}))},jg=Q([DK,aA,Bc],cA),dA=(e,t,r)=>{var{dataStartIndex:s,dataEndIndex:a}=t;if(r!=="zAxis"){var i=TB(e,s,a);if(!(i!=null&&i[0]===0&&i[1]===0))return i}},$K=Q([jg,Na,ct],dA),uA=(e,t,r,s,a)=>r.length>0?e.flatMap(i=>r.flatMap(l=>{var o,c,d=(o=s[l.id])===null||o===void 0?void 0:o.filter(m=>oA(a,m)),u=Ke(i,(c=t.dataKey)!==null&&c!==void 0?c:l.dataKey);return{value:u,errorDomain:MK(i,u,d)}})).filter(Boolean):(t==null?void 0:t.dataKey)!=null?e.map(i=>({value:Ke(i,t.dataKey),errorDomain:[]})):e.map(i=>({value:i,errorDomain:[]})),nh=e=>e.errorBars,mA=(e,t,r)=>e.flatMap(s=>t[s.id]).filter(Boolean).filter(s=>oA(r,s));Q([lA,nh,ct],mA);var LK=Q([Nv,jt,lA,nh,ct],uA);function IK(e){var{value:t}=e;if(Xn(t)||t instanceof Date)return t}var w1=e=>{var t=e.flatMap(s=>[s.value,s.errorDomain]).flat(1),r=Ni(t);if(r.length!==0)return[Math.min(...r),Math.max(...r)]},RK=(e,t,r)=>{var s=e.map(IK).filter(a=>a!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&mE(s))?eP(0,e.length):t.allowDuplicatedCategory?s:Array.from(new Set(s))},kv=e=>{var t;if(e==null||!("domain"in e))return bg;if(e.domain!=null)return e.domain;if(e.ticks!=null){if(e.type==="number"){var r=Ni(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e==null?void 0:e.domain)!==null&&t!==void 0?t:bg},Sm=function(){for(var t=arguments.length,r=new Array(t),s=0;se.referenceElements.dots,zl=(e,t,r)=>e.filter(s=>s.ifOverflow==="extendDomain").filter(s=>t==="xAxis"?s.xAxisId===r:s.yAxisId===r),FK=Q([fA,ct,Uc],zl),hA=e=>e.referenceElements.areas,zK=Q([hA,ct,Uc],zl),xA=e=>e.referenceElements.lines,BK=Q([xA,ct,Uc],zl),pA=(e,t)=>{var r=Ni(e.map(s=>t==="xAxis"?s.x:s.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]},UK=Q(FK,ct,pA),gA=(e,t)=>{var r=Ni(e.flatMap(s=>[t==="xAxis"?s.x1:s.y1,t==="xAxis"?s.x2:s.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]},HK=Q([zK,ct],gA),yA=(e,t)=>{var r=Ni(e.map(s=>t==="xAxis"?s.x:s.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]},VK=Q(BK,ct,yA),KK=Q(UK,VK,HK,(e,t,r)=>Sm(e,r,t)),vA=Q([jt],kv),Cv=(e,t,r,s,a,i,l)=>{var o=iK(t,e.allowDataOverflow);if(o!=null)return o;var c=i==="vertical"&&l==="xAxis"||i==="horizontal"&&l==="yAxis",d=c?Sm(r,a,w1(s)):Sm(a,w1(s));return lK(t,d,e.allowDataOverflow)},WK=Q([jt,vA,$K,LK,KK,Me,ct],Cv),qK=[0,1],Ev=(e,t,r,s,a,i,l)=>{if(!((e==null||r==null||r.length===0)&&l===void 0)){var{dataKey:o,type:c}=e,d=ba(t,i);return d&&o==null?eP(0,r.length):c==="category"?RK(s,e,d):a==="expand"?qK:l}},Pv=Q([jt,Me,Nv,rh,Bc,ct,WK],Ev),bA=(e,t,r,s,a)=>{if(e!=null){var{scale:i,type:l}=e;if(i==="auto")return t==="radial"&&a==="radiusAxis"?"band":t==="radial"&&a==="angleAxis"?"linear":l==="category"&&s&&(s.indexOf("LineChart")>=0||s.indexOf("AreaChart")>=0||s.indexOf("ComposedChart")>=0&&!r)?"point":l==="category"?"band":"linear";if(typeof i=="string"){var o="scale".concat(Oc(i));return o in So?o:"point"}}},Bl=Q([jt,Me,sA,uv,ct],bA);function GK(e){if(e!=null){if(e in So)return So[e]();var t="scale".concat(Oc(e));if(t in So)return So[t]()}}function Av(e,t,r,s){if(!(r==null||s==null)){if(typeof e.scale=="function")return e.scale.copy().domain(r).range(s);var a=GK(t);if(a!=null){var i=a.domain(r).range(s);return bB(i),i}}}var Tv=(e,t,r)=>{var s=kv(t);if(!(r!=="auto"&&r!=="linear")){if(t!=null&&t.tickCount&&Array.isArray(s)&&(s[0]==="auto"||s[1]==="auto")&&Sl(e))return gK(e,t.tickCount,t.allowDecimals);if(t!=null&&t.tickCount&&t.type==="number"&&Sl(e))return yK(e,t.tickCount,t.allowDecimals)}},_v=Q([Pv,Hc,Bl],Tv),Ov=(e,t,r,s)=>{if(s!=="angleAxis"&&(e==null?void 0:e.type)==="number"&&Sl(t)&&Array.isArray(r)&&r.length>0){var a=t[0],i=r[0],l=t[1],o=r[r.length-1];return[Math.min(a,i),Math.max(l,o)]}return t},YK=Q([jt,Pv,_v,ct],Ov),XK=Q(rh,jt,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,s=Array.from(Ni(e.map(o=>o.value))).sort((o,c)=>o-c);if(s.length<2)return 1/0;var a=s[s.length-1]-s[0];if(a===0)return 1/0;for(var i=0;is,(e,t,r,s,a)=>{if(!Qr(e))return 0;var i=t==="vertical"?s.height:s.width;if(a==="gap")return e*i/2;if(a==="no-gap"){var l=ur(r,e*i),o=e*i/2;return o-l-(o-l)/i*l}return 0}),ZK=(e,t)=>{var r=Sa(e,t);return r==null||typeof r.padding!="string"?0:jA(e,"xAxis",t,r.padding)},JK=(e,t)=>{var r=ka(e,t);return r==null||typeof r.padding!="string"?0:jA(e,"yAxis",t,r.padding)},QK=Q(Sa,ZK,(e,t)=>{var r,s;if(e==null)return{left:0,right:0};var{padding:a}=e;return typeof a=="string"?{left:t,right:t}:{left:((r=a.left)!==null&&r!==void 0?r:0)+t,right:((s=a.right)!==null&&s!==void 0?s:0)+t}}),eW=Q(ka,JK,(e,t)=>{var r,s;if(e==null)return{top:0,bottom:0};var{padding:a}=e;return typeof a=="string"?{top:t,bottom:t}:{top:((r=a.top)!==null&&r!==void 0?r:0)+t,bottom:((s=a.bottom)!==null&&s!==void 0?s:0)+t}}),tW=Q([$t,QK,Uf,Bf,(e,t,r)=>r],(e,t,r,s,a)=>{var{padding:i}=s;return a?[i.left,r.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),rW=Q([$t,Me,eW,Uf,Bf,(e,t,r)=>r],(e,t,r,s,a,i)=>{var{padding:l}=a;return i?[s.height-l.bottom,l.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Kc=(e,t,r,s)=>{var a;switch(t){case"xAxis":return tW(e,r,s);case"yAxis":return rW(e,r,s);case"zAxis":return(a=yv(e,r))===null||a===void 0?void 0:a.range;case"angleAxis":return ZP(e);case"radiusAxis":return JP(e,r);default:return}},wA=Q([jt,Kc],Jf),Ul=Q([jt,Bl,YK,wA],Av);Q([Vc,nh,ct],mA);function NA(e,t){return e.idt.id?1:0}var sh=(e,t)=>t,ah=(e,t,r)=>r,nW=Q(Ff,sh,ah,(e,t,r)=>e.filter(s=>s.orientation===t).filter(s=>s.mirror===r).sort(NA)),sW=Q(zf,sh,ah,(e,t,r)=>e.filter(s=>s.orientation===t).filter(s=>s.mirror===r).sort(NA)),SA=(e,t)=>({width:e.width,height:t.height}),aW=(e,t)=>{var r=typeof t.width=="number"?t.width:$c;return{width:r,height:e.height}},kA=Q($t,Sa,SA),iW=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},lW=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},oW=Q(_s,$t,nW,sh,ah,(e,t,r,s,a)=>{var i={},l;return r.forEach(o=>{var c=SA(t,o);l==null&&(l=iW(t,s,e));var d=s==="top"&&!a||s==="bottom"&&a;i[o.id]=l-Number(d)*c.height,l+=(d?-1:1)*c.height}),i}),cW=Q(Ts,$t,sW,sh,ah,(e,t,r,s,a)=>{var i={},l;return r.forEach(o=>{var c=aW(t,o);l==null&&(l=lW(t,s,e));var d=s==="left"&&!a||s==="right"&&a;i[o.id]=l-Number(d)*c.width,l+=(d?-1:1)*c.width}),i}),dW=(e,t)=>{var r=$t(e),s=Sa(e,t);if(s!=null){var a=oW(e,s.orientation,s.mirror),i=a[t];return i==null?{x:r.left,y:0}:{x:r.left,y:i}}},uW=(e,t)=>{var r=$t(e),s=ka(e,t);if(s!=null){var a=cW(e,s.orientation,s.mirror),i=a[t];return i==null?{x:0,y:r.top}:{x:i,y:r.top}}},CA=Q($t,ka,(e,t)=>{var r=typeof t.width=="number"?t.width:$c;return{width:r,height:e.height}}),N1=(e,t,r)=>{switch(t){case"xAxis":return kA(e,r).width;case"yAxis":return CA(e,r).height;default:return}},EA=(e,t,r,s)=>{if(r!=null){var{allowDuplicatedCategory:a,type:i,dataKey:l}=r,o=ba(e,s),c=t.map(d=>d.value);if(l&&o&&i==="category"&&a&&mE(c))return c}},Mv=Q([Me,rh,jt,ct],EA),PA=(e,t,r,s)=>{if(!(r==null||r.dataKey==null)){var{type:a,scale:i}=r,l=ba(e,s);if(l&&(a==="number"||i!=="auto"))return t.map(o=>o.value)}},Dv=Q([Me,rh,Hc,ct],PA),S1=Q([Me,TK,Bl,Ul,Mv,Dv,Kc,_v,ct],(e,t,r,s,a,i,l,o,c)=>{if(t==null)return null;var d=ba(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:i,duplicateDomain:a,isCategorical:d,niceTicks:o,range:l,realScaleType:r,scale:s}}),mW=(e,t,r,s,a,i,l,o,c)=>{if(!(t==null||s==null)){var d=ba(e,c),{type:u,ticks:m,tickCount:f}=t,h=r==="scaleBand"&&typeof s.bandwidth=="function"?s.bandwidth()/2:2,p=u==="category"&&s.bandwidth?s.bandwidth()/h:0;p=c==="angleAxis"&&i!=null&&i.length>=2?zt(i[0]-i[1])*2*p:p;var v=m||a;if(v){var y=v.map((g,b)=>{var j=l?l.indexOf(g):g;return{index:b,coordinate:s(j)+p,value:g,offset:p}});return y.filter(g=>!Zr(g.coordinate))}return d&&o?o.map((g,b)=>({coordinate:s(g)+p,value:g,index:b,offset:p})):s.ticks?s.ticks(f).map(g=>({coordinate:s(g)+p,value:g,offset:p})):s.domain().map((g,b)=>({coordinate:s(g)+p,value:l?l[g]:g,index:b,offset:p}))}},AA=Q([Me,Hc,Bl,Ul,_v,Kc,Mv,Dv,ct],mW),fW=(e,t,r,s,a,i,l)=>{if(!(t==null||r==null||s==null||s[0]===s[1])){var o=ba(e,l),{tickCount:c}=t,d=0;return d=l==="angleAxis"&&(s==null?void 0:s.length)>=2?zt(s[0]-s[1])*2*d:d,o&&i?i.map((u,m)=>({coordinate:r(u)+d,value:u,index:m,offset:d})):r.ticks?r.ticks(c).map(u=>({coordinate:r(u)+d,value:u,offset:d})):r.domain().map((u,m)=>({coordinate:r(u)+d,value:a?a[u]:u,index:m,offset:d}))}},ua=Q([Me,Hc,Ul,Kc,Mv,Dv,ct],fW),ma=Q(jt,Ul,(e,t)=>{if(!(e==null||t==null))return Nm(Nm({},e),{},{scale:t})}),hW=Q([jt,Bl,Pv,wA],Av);Q((e,t,r)=>yv(e,r),hW,(e,t)=>{if(!(e==null||t==null))return Nm(Nm({},e),{},{scale:t})});var xW=Q([Me,Ff,zf],(e,t,r)=>{switch(e){case"horizontal":return t.some(s=>s.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(s=>s.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),TA=e=>e.options.defaultTooltipEventType,_A=e=>e.options.validateTooltipEventTypes;function OA(e,t,r){if(e==null)return t;var s=e?"axis":"item";return r==null?t:r.includes(s)?s:t}function $v(e,t){var r=TA(e),s=_A(e);return OA(t,r,s)}function pW(e){return pe(t=>$v(t,e))}var MA=(e,t)=>{var r,s=Number(t);if(!(Zr(s)||t==null))return s>=0?e==null||(r=e[s])===null||r===void 0?void 0:r.value:void 0},gW=e=>e.tooltip.settings,Ws={active:!1,index:null,dataKey:void 0,coordinate:void 0},yW={itemInteraction:{click:Ws,hover:Ws},axisInteraction:{click:Ws,hover:Ws},keyboardInteraction:Ws,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},DA=rn({name:"tooltip",initialState:yW,reducers:{addTooltipEntrySettings(e,t){e.tooltipItemPayloads.push(t.payload)},removeTooltipEntrySettings(e,t){var r=hs(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate,e.keyboardInteraction.dataKey=t.payload.activeDataKey}}}),{addTooltipEntrySettings:vW,removeTooltipEntrySettings:bW,setTooltipSettingsState:jW,setActiveMouseOverItemIndex:$A,mouseLeaveItem:wW,mouseLeaveChart:LA,setActiveClickItemIndex:NW,setMouseOverAxisIndex:IA,setMouseClickAxisIndex:SW,setSyncInteraction:wg,setKeyboardInteraction:Ng}=DA.actions,kW=DA.reducer;function k1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function qd(e){for(var t=1;t{if(t==null)return Ws;var a=AW(e,t,r);if(a==null)return Ws;if(a.active)return a;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var i=e.settings.active===!0;if(TW(a)){if(i)return qd(qd({},a),{},{active:!0})}else if(s!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:s};return qd(qd({},Ws),{},{coordinate:a.coordinate})},Lv=(e,t)=>{var r=e==null?void 0:e.index;if(r==null)return null;var s=Number(r);if(!Qr(s))return r;var a=0,i=1/0;return t.length>0&&(i=t.length-1),String(Math.max(a,Math.min(s,i)))},FA=(e,t,r,s,a,i,l,o)=>{if(!(i==null||o==null)){var c=l[0],d=c==null?void 0:o(c.positions,i);if(d!=null)return d;var u=a==null?void 0:a[Number(i)];if(u)switch(r){case"horizontal":return{x:u.coordinate,y:(s.top+t)/2};default:return{x:(s.left+e)/2,y:u.coordinate}}}},zA=(e,t,r,s)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var a;return r==="hover"?a=e.itemInteraction.hover.dataKey:a=e.itemInteraction.click.dataKey,a==null&&s!=null?[e.tooltipItemPayloads[0]]:e.tooltipItemPayloads.filter(i=>{var l;return((l=i.settings)===null||l===void 0?void 0:l.dataKey)===a})},Wc=e=>e.options.tooltipPayloadSearcher,Hl=e=>e.tooltip;function C1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function E1(e){for(var t=1;t{if(!(t==null||i==null)){var{chartData:o,computedData:c,dataStartIndex:d,dataEndIndex:u}=r,m=[];return e.reduce((f,h)=>{var p,{dataDefinedOnItem:v,settings:y}=h,g=DW(v,o),b=Array.isArray(g)?T3(g,d,u):g,j=(p=y==null?void 0:y.dataKey)!==null&&p!==void 0?p:s,w=y==null?void 0:y.nameKey,C;if(s&&Array.isArray(b)&&!Array.isArray(b[0])&&l==="axis"?C=fE(b,s,a):C=i(b,t,c,w),Array.isArray(C))C.forEach(A=>{var _=E1(E1({},y),{},{name:A.name,unit:A.unit,color:void 0,fill:void 0});f.push(SN({tooltipEntrySettings:_,dataKey:A.dataKey,payload:A.payload,value:Ke(A.payload,A.dataKey),name:A.name}))});else{var N;f.push(SN({tooltipEntrySettings:y,dataKey:j,payload:C,value:Ke(C,j),name:(N=Ke(C,w))!==null&&N!==void 0?N:y==null?void 0:y.name}))}return f},m)}},Iv=Q([Wt,Me,sA,uv,It],bA),$W=Q([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),LW=Q([It,Fl],vv),qc=Q([$W,Wt,LW],bv),IW=Q([qc],e=>e.filter(eh)),RW=Q([qc],jv),Vl=Q([RW,Na],wv),FW=Q([IW,Na,Wt],tA),Rv=Q([Vl,Wt,qc],Sv),zW=Q([Wt],kv),BW=Q([qc],e=>e.filter(eh)),UW=Q([FW,BW,Bc],cA),HW=Q([UW,Na,It],dA),VW=Q([qc],iA),KW=Q([Vl,Wt,VW,nh,It],uA),WW=Q([fA,It,Fl],zl),qW=Q([WW,It],pA),GW=Q([hA,It,Fl],zl),YW=Q([GW,It],gA),XW=Q([xA,It,Fl],zl),ZW=Q([XW,It],yA),JW=Q([qW,ZW,YW],Sm),QW=Q([Wt,zW,HW,KW,JW,Me,It],Cv),UA=Q([Wt,Me,Vl,Rv,Bc,It,QW],Ev),eq=Q([UA,Wt,Iv],Tv),tq=Q([Wt,UA,eq,It],Ov),HA=e=>{var t=It(e),r=Fl(e),s=!1;return Kc(e,t,r,s)},VA=Q([Wt,HA],Jf),KA=Q([Wt,Iv,tq,VA],Av),rq=Q([Me,Rv,Wt,It],EA),nq=Q([Me,Rv,Wt,It],PA),sq=(e,t,r,s,a,i,l,o)=>{if(t){var{type:c}=t,d=ba(e,o);if(s){var u=r==="scaleBand"&&s.bandwidth?s.bandwidth()/2:2,m=c==="category"&&s.bandwidth?s.bandwidth()/u:0;return m=o==="angleAxis"&&a!=null&&(a==null?void 0:a.length)>=2?zt(a[0]-a[1])*2*m:m,d&&l?l.map((f,h)=>({coordinate:s(f)+m,value:f,index:h,offset:m})):s.domain().map((f,h)=>({coordinate:s(f)+m,value:i?i[f]:f,index:h,offset:m}))}}},Ms=Q([Me,Wt,Iv,KA,HA,rq,nq,It],sq),Fv=Q([TA,_A,gW],(e,t,r)=>OA(r.shared,e,t)),WA=e=>e.tooltip.settings.trigger,zv=e=>e.tooltip.settings.defaultIndex,ih=Q([Hl,Fv,WA,zv],RA),fa=Q([ih,Vl],Lv),qA=Q([Ms,fa],MA),GA=Q([ih],e=>{if(e)return e.dataKey}),YA=Q([Hl,Fv,WA,zv],zA),aq=Q([Ts,_s,Me,$t,Ms,zv,YA,Wc],FA),iq=Q([ih,aq],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),lq=Q([ih],e=>e.active),oq=Q([YA,fa,Na,eA,qA,Wc,Fv],BA),cq=Q([oq],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function P1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function A1(e){for(var t=1;tpe(Wt),hq=()=>{var e=fq(),t=pe(Ms),r=pe(KA);return fc(A1(A1({},e),{},{scale:r}),t)},xq=()=>pe(uv),Bv=(e,t)=>t,XA=(e,t,r)=>r,Uv=(e,t,r,s)=>s,pq=Q(Ms,e=>Mf(e,t=>t.coordinate)),Hv=Q([Hl,Bv,XA,Uv],RA),ZA=Q([Hv,Vl],Lv),gq=(e,t,r)=>{if(t!=null){var s=Hl(e);return t==="axis"?r==="hover"?s.axisInteraction.hover.dataKey:s.axisInteraction.click.dataKey:r==="hover"?s.itemInteraction.hover.dataKey:s.itemInteraction.click.dataKey}},JA=Q([Hl,Bv,XA,Uv],zA),km=Q([Ts,_s,Me,$t,Ms,Uv,JA,Wc],FA),yq=Q([Hv,km],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),QA=Q(Ms,ZA,MA),vq=Q([JA,ZA,Na,eA,QA,Wc,Bv],BA),bq=Q([Hv],e=>({isActive:e.active,activeIndex:e.index})),jq=(e,t,r,s,a,i,l,o)=>{if(!(!e||!t||!s||!a||!i)){var c=_B(e.chartX,e.chartY,t,r,o);if(c){var d=MB(c,t),u=yB(d,l,i,s,a),m=OB(t,i,u,c);return{activeIndex:String(u),activeCoordinate:m}}}};function Sg(){return Sg=Object.assign?Object.assign.bind():function(e){for(var t=1;tx.useContext(eT),tT={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function s(){}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(r=!1));function a(c,d,u){this.fn=c,this.context=d,this.once=u||!1}function i(c,d,u,m,f){if(typeof u!="function")throw new TypeError("The listener must be a function");var h=new a(u,m||c,f),p=r?r+d:d;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],h]:c._events[p].push(h):(c._events[p]=h,c._eventsCount++),c}function l(c,d){--c._eventsCount===0?c._events=new s:delete c._events[d]}function o(){this._events=new s,this._eventsCount=0}o.prototype.eventNames=function(){var d=[],u,m;if(this._eventsCount===0)return d;for(m in u=this._events)t.call(u,m)&&d.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(u)):d},o.prototype.listeners=function(d){var u=r?r+d:d,m=this._events[u];if(!m)return[];if(m.fn)return[m.fn];for(var f=0,h=m.length,p=new Array(h);f{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),_q=rT.reducer,{createEventEmitter:Oq}=rT.actions;function Mq(e){return e.tooltip.syncInteraction}var Dq={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},nT=rn({name:"chartData",initialState:Dq,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:r,endIndex:s}=t.payload;r!=null&&(e.dataStartIndex=r),s!=null&&(e.dataEndIndex=s)}}}),{setChartData:O1,setDataStartEndIndexes:$q,setComputedData:vte}=nT.actions,Lq=nT.reducer,Iq=["x","y"];function M1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Pa(e){for(var t=1;t{};function Hq(){var e=pe(mv),t=pe(fv),r=bt(),s=pe(GP),a=pe(Ms),i=Hf(),l=zy(),o=pe(c=>c.rootProps.className);x.useEffect(()=>{if(e==null)return sT;var c=(d,u,m)=>{if(t!==m&&e===d){if(s==="index"){var f;if(l&&u!==null&&u!==void 0&&(f=u.payload)!==null&&f!==void 0&&f.coordinate){var h=u.payload.coordinate,{x:p,y:v}=h,y=Bq(h,Iq),g=Pa(Pa(Pa({},y),typeof p=="number"&&{x:Math.max(l.x,Math.min(p,l.x+l.width))}),typeof v=="number"&&{y:Math.max(l.y,Math.min(v,l.y+l.height))}),b=Pa(Pa({},u),{},{payload:Pa(Pa({},u.payload),{},{coordinate:g})});r(b)}else r(u);return}if(a!=null){var j;if(typeof s=="function"){var w={activeTooltipIndex:u.payload.index==null?void 0:Number(u.payload.index),isTooltipActive:u.payload.active,activeIndex:u.payload.index==null?void 0:Number(u.payload.index),activeLabel:u.payload.label,activeDataKey:u.payload.dataKey,activeCoordinate:u.payload.coordinate},C=s(a,w);j=a[C]}else s==="value"&&(j=a.find(D=>String(D.value)===u.payload.label));var{coordinate:N}=u.payload;if(j==null||u.payload.active===!1||N==null||l==null){r(wg({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0}));return}var{x:A,y:_}=N,I=Math.min(A,l.x+l.width),B=Math.min(_,l.y+l.height),z={x:i==="horizontal"?j.coordinate:I,y:i==="horizontal"?B:j.coordinate},T=wg({active:u.payload.active,coordinate:z,dataKey:u.payload.dataKey,index:String(j.index),label:u.payload.label});r(T)}}};return gc.on(kg,c),()=>{gc.off(kg,c)}},[o,r,t,e,s,a,i,l])}function Vq(){var e=pe(mv),t=pe(fv),r=bt();x.useEffect(()=>{if(e==null)return sT;var s=(a,i,l)=>{t!==l&&e===a&&r($q(i))};return gc.on(_1,s),()=>{gc.off(_1,s)}},[r,t,e])}function Kq(){var e=bt();x.useEffect(()=>{e(Oq())},[e]),Hq(),Vq()}function Wq(e,t,r,s,a,i){var l=pe(f=>gq(f,e,t)),o=pe(fv),c=pe(mv),d=pe(GP),u=pe(Mq),m=u==null?void 0:u.active;x.useEffect(()=>{if(!m&&c!=null&&o!=null){var f=wg({active:i,coordinate:r,dataKey:l,index:a,label:typeof s=="number"?String(s):s});gc.emit(kg,c,f,o)}},[m,r,l,a,s,o,c,d,i])}function D1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function $1(e){for(var t=1;t{C(jW({shared:y,trigger:g,axisId:w,active:r,defaultIndex:N}))},[C,y,g,w,r,N]);var A=zy(),_=U3(),I=pW(y),{activeIndex:B,isActive:z}=pe(U=>bq(U,I,g,N)),T=pe(U=>vq(U,I,g,N)),D=pe(U=>QA(U,I,g,N)),E=pe(U=>yq(U,I,g,N)),S=T,k=Eq(),P=r??z,[O,$]=oz([S,P]),H=I==="axis"?D:void 0;Wq(I,g,E,H,B,P);var L=j??k;if(L==null)return null;var W=S??L1;P||(W=L1),o&&W.length&&(W=K9(S.filter(U=>U.value!=null&&(U.hide!==!0||t.includeHidden)),u,Xq));var M=W.length>0,R=x.createElement(aU,{allowEscapeViewBox:s,animationDuration:a,animationEasing:i,isAnimationActive:c,active:P,coordinate:E,hasPayload:M,offset:d,position:m,reverseDirection:f,useTranslate3d:h,viewBox:A,wrapperStyle:p,lastBoundingBox:O,innerRef:$,hasPortalFromProps:!!j},Zq(l,$1($1({},t),{},{payload:W,label:H,active:P,coordinate:E,accessibilityLayer:_})));return x.createElement(x.Fragment,null,Fk.createPortal(R,L),P&&x.createElement(Cq,{cursor:v,tooltipEventType:I,coordinate:E,payload:S,index:B}))}var aT={},iT={},lT={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r,s,{signal:a,edges:i}={}){let l,o=null;const c=i!=null&&i.includes("leading"),d=i==null||i.includes("trailing"),u=()=>{o!==null&&(r.apply(l,o),l=void 0,o=null)},m=()=>{d&&u(),v()};let f=null;const h=()=>{f!=null&&clearTimeout(f),f=setTimeout(()=>{f=null,m()},s)},p=()=>{f!==null&&(clearTimeout(f),f=null)},v=()=>{p(),l=void 0,o=null},y=()=>{u()},g=function(...b){if(a!=null&&a.aborted)return;l=this,o=b;const j=f==null;h(),c&&j&&u()};return g.schedule=h,g.cancel=v,g.flush=y,a==null||a.addEventListener("abort",v,{once:!0}),g}e.debounce=t})(lT);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=lT;function r(s,a=0,i={}){typeof i!="object"&&(i={});const{leading:l=!1,trailing:o=!0,maxWait:c}=i,d=Array(2);l&&(d[0]="leading"),o&&(d[1]="trailing");let u,m=null;const f=t.debounce(function(...v){u=s.apply(this,v),m=null},a,{edges:d}),h=function(...v){return c!=null&&(m===null&&(m=Date.now()),Date.now()-m>=c)?(u=s.apply(this,v),m=Date.now(),f.cancel(),f.schedule(),u):(f.apply(this,v),u)},p=()=>(f.flush(),u);return h.cancel=f.cancel,h.flush=p,h}e.debounce=r})(iT);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=iT;function r(s,a=0,i={}){const{leading:l=!0,trailing:o=!0}=i;return t.debounce(s,a,{leading:l,maxWait:a,trailing:o})}e.throttle=r})(aT);var Qq=aT.throttle;const eG=Jn(Qq);var $o=function(t,r){for(var s=arguments.length,a=new Array(s>2?s-2:0),i=2;i{var{aspect:r,initialDimension:s={width:-1,height:-1},width:a="100%",height:i="100%",minWidth:l=0,minHeight:o,maxHeight:c,children:d,debounce:u=0,id:m,className:f,onResize:h,style:p={}}=e,v=x.useRef(null),y=x.useRef();y.current=h,x.useImperativeHandle(t,()=>v.current);var[g,b]=x.useState({containerWidth:s.width,containerHeight:s.height}),j=x.useCallback((C,N)=>{b(A=>{var _=Math.round(C),I=Math.round(N);return A.containerWidth===_&&A.containerHeight===I?A:{containerWidth:_,containerHeight:I}})},[]);x.useEffect(()=>{var C=I=>{var B,{width:z,height:T}=I[0].contentRect;j(z,T),(B=y.current)===null||B===void 0||B.call(y,z,T)};u>0&&(C=eG(C,u,{trailing:!0,leading:!1}));var N=new ResizeObserver(C),{width:A,height:_}=v.current.getBoundingClientRect();return j(A,_),N.observe(v.current),()=>{N.disconnect()}},[j,u]);var w=x.useMemo(()=>{var{containerWidth:C,containerHeight:N}=g;if(C<0||N<0)return null;$o(Ha(a)||Ha(i),`The width(%s) and height(%s) are both fixed numbers, maybe you don't need to use a ResponsiveContainer.`,a,i),$o(!r||r>0,"The aspect(%s) must be greater than zero.",r);var A=Ha(a)?C:a,_=Ha(i)?N:i;return r&&r>0&&(A?_=A/r:_&&(A=_*r),c&&_>c&&(_=c)),$o(A>0||_>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the height and width.`,A,_,a,i,l,o,r),x.Children.map(d,I=>x.cloneElement(I,{width:A,height:_,style:px({width:A,height:_},I.props.style)}))},[r,d,i,c,o,l,g,a]);return x.createElement("div",{id:m?"".concat(m):void 0,className:Ie("recharts-responsive-container",f),style:px(px({},p),{},{width:a,height:i,minWidth:l,minHeight:o,maxHeight:c}),ref:v},x.createElement("div",{style:{width:0,height:0,overflow:"visible"}},w))}),Gc=e=>null;Gc.displayName="Cell";function sG(e,t,r){return(t=aG(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function aG(e){var t=iG(e,"string");return typeof t=="symbol"?t:t+""}function iG(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var s=r.call(e,t);if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class lG{constructor(t){sG(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var s=this.cache.keys().next().value;this.cache.delete(s)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function R1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function oG(e){for(var t=1;t{try{var r=document.getElementById(z1);r||(r=document.createElement("span"),r.setAttribute("id",z1),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,fG,t),r.textContent="".concat(e);var s=r.getBoundingClientRect();return{width:s.width,height:s.height}}catch{return{width:0,height:0}}},Lo=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||bi.isSsr)return{width:0,height:0};if(!oT.enableCache)return B1(t,r);var s=hG(t,r),a=F1.get(s);if(a)return a;var i=B1(t,r);return F1.set(s,i),i},U1=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,H1=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,xG=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,pG=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,cT={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},gG=Object.keys(cT),qi="NaN";function yG(e,t){return e*cT[t]}class kr{static parse(t){var r,[,s,a]=(r=pG.exec(t))!==null&&r!==void 0?r:[];return new kr(parseFloat(s),a??"")}constructor(t,r){this.num=t,this.unit=r,this.num=t,this.unit=r,Zr(t)&&(this.unit=""),r!==""&&!xG.test(r)&&(this.num=NaN,this.unit=""),gG.includes(r)&&(this.num=yG(t,r),this.unit="px")}add(t){return this.unit!==t.unit?new kr(NaN,""):new kr(this.num+t.num,this.unit)}subtract(t){return this.unit!==t.unit?new kr(NaN,""):new kr(this.num-t.num,this.unit)}multiply(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new kr(NaN,""):new kr(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new kr(NaN,""):new kr(this.num/t.num,this.unit||t.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return Zr(this.num)}}function dT(e){if(e.includes(qi))return qi;for(var t=e;t.includes("*")||t.includes("/");){var r,[,s,a,i]=(r=U1.exec(t))!==null&&r!==void 0?r:[],l=kr.parse(s??""),o=kr.parse(i??""),c=a==="*"?l.multiply(o):l.divide(o);if(c.isNaN())return qi;t=t.replace(U1,c.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var d,[,u,m,f]=(d=H1.exec(t))!==null&&d!==void 0?d:[],h=kr.parse(u??""),p=kr.parse(f??""),v=m==="+"?h.add(p):h.subtract(p);if(v.isNaN())return qi;t=t.replace(H1,v.toString())}return t}var V1=/\(([^()]*)\)/;function vG(e){for(var t=e,r;(r=V1.exec(t))!=null;){var[,s]=r;t=t.replace(V1,dT(s))}return t}function bG(e){var t=e.replace(/\s+/g,"");return t=vG(t),t=dT(t),t}function jG(e){try{return bG(e)}catch{return qi}}function gx(e){var t=jG(e.slice(5,-1));return t===qi?"":t}var wG=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],NG=["dx","dy","angle","className","breakAll"];function Cg(){return Cg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:t,breakAll:r,style:s}=e;try{var a=[];ot(t)||(r?a=t.toString().split(""):a=t.toString().split(uT));var i=a.map(o=>({word:o,width:Lo(o,s).width})),l=r?0:Lo(" ",s).width;return{wordsWithComputedWidth:i,spaceWidth:l}}catch{return null}},kG=(e,t,r,s,a)=>{var{maxLines:i,children:l,style:o,breakAll:c}=e,d=ve(i),u=l,m=function(){var z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return z.reduce((T,D)=>{var{word:E,width:S}=D,k=T[T.length-1];if(k&&(s==null||a||k.width+S+rB.reduce((z,T)=>z.width>T.width?z:T);if(!d||a)return f;var p=f.length>i||h(f).width>Number(s);if(!p)return f;for(var v="…",y=B=>{var z=u.slice(0,B),T=mT({breakAll:c,style:o,children:z+v}).wordsWithComputedWidth,D=m(T),E=D.length>i||h(D).width>Number(s);return[E,D]},g=0,b=u.length-1,j=0,w;g<=b&&j<=u.length-1;){var C=Math.floor((g+b)/2),N=C-1,[A,_]=y(N),[I]=y(C);if(!A&&!I&&(g=C+1),A&&I&&(b=C-1),!A&&I){w=_;break}j++}return w||f},W1=e=>{var t=ot(e)?[]:e.toString().split(uT);return[{words:t}]},CG=e=>{var{width:t,scaleToFit:r,children:s,style:a,breakAll:i,maxLines:l}=e;if((t||r)&&!bi.isSsr){var o,c,d=mT({breakAll:i,children:s,style:a});if(d){var{wordsWithComputedWidth:u,spaceWidth:m}=d;o=u,c=m}else return W1(s);return kG({breakAll:i,children:s,maxLines:l,style:a},o,c,t,r)}return W1(s)},q1="#808080",lh=x.forwardRef((e,t)=>{var{x:r=0,y:s=0,lineHeight:a="1em",capHeight:i="0.71em",scaleToFit:l=!1,textAnchor:o="start",verticalAnchor:c="end",fill:d=q1}=e,u=K1(e,wG),m=x.useMemo(()=>CG({breakAll:u.breakAll,children:u.children,maxLines:u.maxLines,scaleToFit:l,style:u.style,width:u.width}),[u.breakAll,u.children,u.maxLines,l,u.style,u.width]),{dx:f,dy:h,angle:p,className:v,breakAll:y}=u,g=K1(u,NG);if(!Xn(r)||!Xn(s)||m.length===0)return null;var b=r+(ve(f)?f:0),j=s+(ve(h)?h:0),w;switch(c){case"start":w=gx("calc(".concat(i,")"));break;case"middle":w=gx("calc(".concat((m.length-1)/2," * -").concat(a," + (").concat(i," / 2))"));break;default:w=gx("calc(".concat(m.length-1," * -").concat(a,")"));break}var C=[];if(l){var N=m[0].width,{width:A}=u;C.push("scale(".concat(ve(A)?A/N:1,")"))}return p&&C.push("rotate(".concat(p,", ").concat(b,", ").concat(j,")")),C.length&&(g.transform=C.join(" ")),x.createElement("text",Cg({},it(g,!0),{ref:t,x:b,y:j,className:Ie("recharts-text",v),textAnchor:o,fill:d.includes("url")?q1:d}),m.map((_,I)=>{var B=_.words.join(y?"":" ");return x.createElement("tspan",{x:b,dy:I===0?w:a,key:"".concat(B,"-").concat(I)},B)}))});lh.displayName="Text";var EG=["labelRef"];function PG(e,t){if(e==null)return{};var r,s,a=AG(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s{var{x:t,y:r,width:s,height:a,children:i}=e,l=x.useMemo(()=>({x:t,y:r,width:s,height:a}),[t,r,s,a]);return x.createElement(fT.Provider,{value:l},i)},hT=()=>{var e=x.useContext(fT),t=zy();return e||t},DG=x.createContext(null),$G=()=>{var e=x.useContext(DG),t=pe(QP);return e||t},LG=e=>{var{value:t,formatter:r}=e,s=ot(e.children)?t:e.children;return typeof r=="function"?r(s):s},Kv=e=>e!=null&&typeof e=="function",IG=(e,t)=>{var r=zt(t-e),s=Math.min(Math.abs(t-e),360);return r*s},RG=(e,t,r,s,a)=>{var{offset:i,className:l}=e,{cx:o,cy:c,innerRadius:d,outerRadius:u,startAngle:m,endAngle:f,clockWise:h}=a,p=(d+u)/2,v=IG(m,f),y=v>=0?1:-1,g,b;switch(t){case"insideStart":g=m+y*i,b=h;break;case"insideEnd":g=f-y*i,b=!h;break;case"end":g=f+y*i,b=h;break;default:throw new Error("Unsupported position ".concat(t))}b=v<=0?b:!b;var j=kt(o,c,p,g),w=kt(o,c,p,g+(b?1:-1)*359),C="M".concat(j.x,",").concat(j.y,` A`).concat(p,",").concat(p,",0,1,").concat(b?0:1,`, `).concat(w.x,",").concat(w.y),N=ot(e.id)?dc("recharts-radial-line-"):e.id;return x.createElement("text",is({},s,{dominantBaseline:"central",className:Ie("recharts-radial-bar-label",l)}),x.createElement("defs",null,x.createElement("path",{id:N,d:C})),x.createElement("textPath",{xlinkHref:"#".concat(N)},r))},FG=(e,t,r)=>{var{cx:s,cy:a,innerRadius:i,outerRadius:l,startAngle:o,endAngle:c}=e,d=(o+c)/2;if(r==="outside"){var{x:u,y:m}=kt(s,a,l+t,d);return{x:u,y:m,textAnchor:u>=s?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:s,y:a,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:s,y:a,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:s,y:a,textAnchor:"middle",verticalAnchor:"end"};var f=(i+l)/2,{x:h,y:p}=kt(s,a,f,d);return{x:h,y:p,textAnchor:"middle",verticalAnchor:"middle"}},xT=e=>"cx"in e&&ve(e.cx),zG=(e,t)=>{var{parentViewBox:r,offset:s,position:a}=e,i;r!=null&&!xT(r)&&(i=r);var{x:l,y:o,width:c,height:d}=t,u=d>=0?1:-1,m=u*s,f=u>0?"end":"start",h=u>0?"start":"end",p=c>=0?1:-1,v=p*s,y=p>0?"end":"start",g=p>0?"start":"end";if(a==="top"){var b={x:l+c/2,y:o-u*s,textAnchor:"middle",verticalAnchor:f};return pt(pt({},b),i?{height:Math.max(o-i.y,0),width:c}:{})}if(a==="bottom"){var j={x:l+c/2,y:o+d+m,textAnchor:"middle",verticalAnchor:h};return pt(pt({},j),i?{height:Math.max(i.y+i.height-(o+d),0),width:c}:{})}if(a==="left"){var w={x:l-v,y:o+d/2,textAnchor:y,verticalAnchor:"middle"};return pt(pt({},w),i?{width:Math.max(w.x-i.x,0),height:d}:{})}if(a==="right"){var C={x:l+c+v,y:o+d/2,textAnchor:g,verticalAnchor:"middle"};return pt(pt({},C),i?{width:Math.max(i.x+i.width-C.x,0),height:d}:{})}var N=i?{width:c,height:d}:{};return a==="insideLeft"?pt({x:l+v,y:o+d/2,textAnchor:g,verticalAnchor:"middle"},N):a==="insideRight"?pt({x:l+c-v,y:o+d/2,textAnchor:y,verticalAnchor:"middle"},N):a==="insideTop"?pt({x:l+c/2,y:o+m,textAnchor:"middle",verticalAnchor:h},N):a==="insideBottom"?pt({x:l+c/2,y:o+d-m,textAnchor:"middle",verticalAnchor:f},N):a==="insideTopLeft"?pt({x:l+v,y:o+m,textAnchor:g,verticalAnchor:h},N):a==="insideTopRight"?pt({x:l+c-v,y:o+m,textAnchor:y,verticalAnchor:h},N):a==="insideBottomLeft"?pt({x:l+v,y:o+d-m,textAnchor:g,verticalAnchor:f},N):a==="insideBottomRight"?pt({x:l+c-v,y:o+d-m,textAnchor:y,verticalAnchor:f},N):a&&typeof a=="object"&&(ve(a.x)||Ha(a.x))&&(ve(a.y)||Ha(a.y))?pt({x:l+ur(a.x,c),y:o+ur(a.y,d),textAnchor:"end",verticalAnchor:"end"},N):pt({x:l+c/2,y:o+d/2,textAnchor:"middle",verticalAnchor:"middle"},N)},BG={offset:5};function Us(e){var t=Rr(e,BG),{viewBox:r,position:s,value:a,children:i,content:l,className:o="",textBreakAll:c,labelRef:d}=t,u=$G(),m=hT(),f=s==="center"?m:u??m,h=r||f;if(!h||ot(a)&&ot(i)&&!x.isValidElement(l)&&typeof l!="function")return null;var p=pt(pt({},t),{},{viewBox:h});if(x.isValidElement(l)){var{labelRef:v}=p,y=PG(p,EG);return x.cloneElement(l,y)}var g;if(typeof l=="function"){if(g=x.createElement(l,p),x.isValidElement(g))return g}else g=LG(t);var b=xT(h),j=it(t,!0);if(b&&(s==="insideStart"||s==="insideEnd"||s==="end"))return RG(t,s,g,j,h);var w=b?FG(h,t.offset,t.position):zG(t,h);return x.createElement(lh,is({ref:d,className:Ie("recharts-label",o)},j,w,{breakAll:c}),g)}Us.displayName="Label";var UG=(e,t,r)=>{if(!e)return null;var s={viewBox:t,labelRef:r};return e===!0?x.createElement(Us,is({key:"label-implicit"},s)):Xn(e)?x.createElement(Us,is({key:"label-implicit",value:e},s)):x.isValidElement(e)?e.type===Us?x.cloneElement(e,pt({key:"label-implicit"},s)):x.createElement(Us,is({key:"label-implicit",content:e},s)):Kv(e)?x.createElement(Us,is({key:"label-implicit",content:e},s)):e&&typeof e=="object"?x.createElement(Us,is({},e,{key:"label-implicit"},s)):null};function HG(e){var{label:t}=e,r=hT();return UG(t,r)||null}var pT={},gT={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return r[r.length-1]}e.last=t})(gT);var yT={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){return Array.isArray(r)?r:Array.from(r)}e.toArray=t})(yT);(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});const t=gT,r=yT,s=Of;function a(i){if(s.isArrayLike(i))return t.last(r.toArray(i))}e.last=a})(pT);var VG=pT.last;const KG=Jn(VG);var WG=["valueAccessor"],qG=["dataKey","clockWise","id","textBreakAll"];function Cm(){return Cm=Object.assign?Object.assign.bind():function(e){for(var t=1;tArray.isArray(e.value)?KG(e.value):e.value,vT=x.createContext(void 0),bT=vT.Provider,jT=x.createContext(void 0),XG=jT.Provider;function ZG(){return x.useContext(vT)}function JG(){return x.useContext(jT)}function pu(e){var{valueAccessor:t=YG}=e,r=Y1(e,WG),{dataKey:s,clockWise:a,id:i,textBreakAll:l}=r,o=Y1(r,qG),c=ZG(),d=JG(),u=c||d;return!u||!u.length?null:x.createElement(tr,{className:"recharts-label-list"},u.map((m,f)=>{var h,p=ot(s)?t(m,f):Ke(m&&m.payload,s),v=ot(i)?{}:{id:"".concat(i,"-").concat(f)};return x.createElement(Us,Cm({},it(m,!0),o,v,{fill:(h=r.fill)!==null&&h!==void 0?h:m.fill,parentViewBox:m.parentViewBox,value:p,textBreakAll:l,viewBox:m.viewBox,key:"label-".concat(f),index:f}))}))}pu.displayName="LabelList";function Wv(e){var{label:t}=e;return t?t===!0?x.createElement(pu,{key:"labelList-implicit"}):x.isValidElement(t)||Kv(t)?x.createElement(pu,{key:"labelList-implicit",content:t}):typeof t=="object"?x.createElement(pu,Cm({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function Eg(){return Eg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{cx:t,cy:r,r:s,className:a}=e,i=Ie("recharts-dot",a);return t===+t&&r===+r&&s===+s?x.createElement("circle",Eg({},As(e),gy(e),{className:i,cx:t,cy:r,r:s})):null},NT=e=>e.graphicalItems.polarItems,QG=Q([ct,Uc],vv),qv=Q([NT,jt,QG],bv),eY=Q([qv],jv),Gv=Q([eY,ov],wv),tY=Q([Gv,jt,qv],Sv),rY=Q([Gv,jt,qv],(e,t,r)=>r.length>0?e.flatMap(s=>r.flatMap(a=>{var i,l=Ke(s,(i=t.dataKey)!==null&&i!==void 0?i:a.dataKey);return{value:l,errorDomain:[]}})).filter(Boolean):(t==null?void 0:t.dataKey)!=null?e.map(s=>({value:Ke(s,t.dataKey),errorDomain:[]})):e.map(s=>({value:s,errorDomain:[]}))),X1=()=>{},nY=Q([jt,vA,X1,rY,X1,Me,ct],Cv),ST=Q([jt,Me,Gv,tY,Bc,ct,nY],Ev),sY=Q([ST,jt,Bl],Tv);Q([jt,ST,sY,ct],Ov);var aY={radiusAxis:{},angleAxis:{}},kT=rn({name:"polarAxis",initialState:aY,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:bte,removeRadiusAxis:jte,addAngleAxis:wte,removeAngleAxis:Nte}=kT.actions,iY=kT.reducer;function Z1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function J1(e){for(var t=1;tt,Yv=Q([NT,dY],(e,t)=>e.filter(r=>r.type==="pie").find(r=>r.id===t)),uY=[],Xv=(e,t,r)=>(r==null?void 0:r.length)===0?uY:r,CT=Q([ov,Yv,Xv],(e,t,r)=>{var{chartData:s}=e;if(t!=null){var a;if((t==null?void 0:t.data)!=null&&t.data.length>0?a=t.data:a=s,(!a||!a.length)&&r!=null&&(a=r.map(i=>J1(J1({},t.presentationProps),i.props))),a!=null)return a}}),mY=Q([CT,Yv,Xv],(e,t,r)=>{if(!(e==null||t==null))return e.map((s,a)=>{var i,l=Ke(s,t.nameKey,t.name),o;return r!=null&&(i=r[a])!==null&&i!==void 0&&(i=i.props)!==null&&i!==void 0&&i.fill?o=r[a].props.fill:typeof s=="object"&&s!=null&&"fill"in s?o=s.fill:o=t.fill,{value:Ll(l,t.dataKey),color:o,payload:s,type:t.legendType}})}),fY=Q([CT,Yv,Xv,$t],(e,t,r,s)=>{if(!(t==null||e==null))return oX({offset:s,pieSettings:t,displayedData:e,cells:r})}),ET={};(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(r){var a;if(typeof r!="object"||r==null)return!1;if(Object.getPrototypeOf(r)===null)return!0;if(Object.prototype.toString.call(r)!=="[object Object]"){const i=r[Symbol.toStringTag];return i==null||!((a=Object.getOwnPropertyDescriptor(r,Symbol.toStringTag))!=null&&a.writable)?!1:r.toString()===`[object ${i}]`}let s=r;for(;Object.getPrototypeOf(s)!==null;)s=Object.getPrototypeOf(s);return Object.getPrototypeOf(r)===s}e.isPlainObject=t})(ET);var hY=ET.isPlainObject;const xY=Jn(hY);function Q1(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function e2(e){for(var t=1;t{var i=r-s,l;return l="M ".concat(e,",").concat(t),l+="L ".concat(e+r,",").concat(t),l+="L ".concat(e+r-i/2,",").concat(t+a),l+="L ".concat(e+r-i/2-s,",").concat(t+a),l+="L ".concat(e,",").concat(t," Z"),l},vY={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},bY=e=>{var t=Rr(e,vY),{x:r,y:s,upperWidth:a,lowerWidth:i,height:l,className:o}=t,{animationEasing:c,animationDuration:d,animationBegin:u,isUpdateAnimationActive:m}=t,f=x.useRef(),[h,p]=x.useState(-1),v=x.useRef(a),y=x.useRef(i),g=x.useRef(l),b=x.useRef(r),j=x.useRef(s),w=Ic(e,"trapezoid-");if(x.useEffect(()=>{if(f.current&&f.current.getTotalLength)try{var E=f.current.getTotalLength();E&&p(E)}catch{}},[]),r!==+r||s!==+s||a!==+a||i!==+i||l!==+l||a===0&&i===0||l===0)return null;var C=Ie("recharts-trapezoid",o);if(!m)return x.createElement("g",null,x.createElement("path",Em({},it(t,!0),{className:C,d:t2(r,s,a,i,l)})));var N=v.current,A=y.current,_=g.current,I=b.current,B=j.current,z="0px ".concat(h===-1?1:h,"px"),T="".concat(h,"px 0px"),D=H3(["strokeDasharray"],d,c);return x.createElement(Lc,{animationId:w,key:w,canBegin:h>0,duration:d,easing:c,isActive:m,begin:u},E=>{var S=ht(N,a,E),k=ht(A,i,E),P=ht(_,l,E),O=ht(I,r,E),$=ht(B,s,E);f.current&&(v.current=S,y.current=k,g.current=P,b.current=O,j.current=$);var H=E>0?{transition:D,strokeDasharray:T}:{strokeDasharray:z};return x.createElement("path",Em({},it(t,!0),{className:C,d:t2(O,$,S,k,P),ref:f,style:e2(e2({},H),t.style)}))})},jY=["option","shapeType","propTransformer","activeClassName","isActive"];function wY(e,t){if(e==null)return{};var r,s,a=NY(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s{var r=bt();return(s,a)=>i=>{e==null||e(s,a,i),r($A({activeIndex:String(a),activeDataKey:t,activeCoordinate:s.tooltipPosition}))}},Jv=e=>{var t=bt();return(r,s)=>a=>{e==null||e(r,s,a),t(wW())}},Qv=(e,t)=>{var r=bt();return(s,a)=>i=>{e==null||e(s,a,i),r(NW({activeIndex:String(a),activeDataKey:t,activeCoordinate:s.tooltipPosition}))}};function eb(e){var{fn:t,args:r}=e,s=bt(),a=Ir();return x.useEffect(()=>{if(!a){var i=t(r);return s(vW(i)),()=>{s(bW(i))}}},[t,r,s,a]),null}var AT=()=>{};function TT(e){var{legendPayload:t}=e,r=bt(),s=Ir();return x.useEffect(()=>s?AT:(r(z3(t)),()=>{r(B3(t))}),[r,s,t]),null}function TY(e){var{legendPayload:t}=e,r=bt(),s=pe(Me);return x.useEffect(()=>s!=="centric"&&s!=="radial"?AT:(r(z3(t)),()=>{r(B3(t))}),[r,s,t]),null}var yx,_Y=()=>{var[e]=x.useState(()=>dc("uid-"));return e},OY=(yx=L2.useId)!==null&&yx!==void 0?yx:_Y;function MY(e,t){var r=OY();return t||(e?"".concat(e,"-").concat(r):r)}var DY=x.createContext(void 0),tb=e=>{var{id:t,type:r,children:s}=e,a=MY("recharts-".concat(r),t);return x.createElement(DY.Provider,{value:a},s(a))},$Y={cartesianItems:[],polarItems:[]},_T=rn({name:"graphicalItems",initialState:$Y,reducers:{addCartesianGraphicalItem(e,t){e.cartesianItems.push(t.payload)},replaceCartesianGraphicalItem(e,t){var{prev:r,next:s}=t.payload,a=hs(e).cartesianItems.indexOf(r);a>-1&&(e.cartesianItems[a]=s)},removeCartesianGraphicalItem(e,t){var r=hs(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},addPolarGraphicalItem(e,t){e.polarItems.push(t.payload)},removePolarGraphicalItem(e,t){var r=hs(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)}}}),{addCartesianGraphicalItem:LY,replaceCartesianGraphicalItem:IY,removeCartesianGraphicalItem:RY,addPolarGraphicalItem:FY,removePolarGraphicalItem:zY}=_T.actions,BY=_T.reducer;function OT(e){var t=bt(),r=x.useRef(null);return x.useEffect(()=>{r.current===null?t(LY(e)):r.current!==e&&t(IY({prev:r.current,next:e})),r.current=e},[t,e]),x.useEffect(()=>()=>{r.current&&(t(RY(r.current)),r.current=null)},[t]),null}function UY(e){var t=bt();return x.useEffect(()=>(t(FY(e)),()=>{t(zY(e))}),[t,e]),null}var HY=["onMouseEnter","onClick","onMouseLeave"],VY=["id"],KY=["id"];function rb(e,t){if(e==null)return{};var r,s,a=WY(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;syy(e.children,Gc),[e.children]),r=pe(s=>mY(s,e.id,t));return r==null?null:x.createElement(TY,{legendPayload:r})}function ZY(e){var{dataKey:t,nameKey:r,sectors:s,stroke:a,strokeWidth:i,fill:l,name:o,hide:c,tooltipType:d}=e;return{dataDefinedOnItem:s.map(u=>u.tooltipPayload),positions:s.map(u=>u.tooltipPosition),settings:{stroke:a,strokeWidth:i,fill:l,dataKey:t,nameKey:r,name:Ll(o,t),hide:c,type:d,color:l,unit:""}}}var JY=(e,t)=>e>t?"start":eur(typeof t=="function"?t(e):t,r,r*.8),eX=(e,t,r)=>{var{top:s,left:a,width:i,height:l}=t,o=A3(i,l),c=a+ur(e.cx,i,i/2),d=s+ur(e.cy,l,l/2),u=ur(e.innerRadius,o,0),m=QY(r,e.outerRadius,o),f=e.maxRadius||Math.sqrt(i*i+l*l)/2;return{cx:c,cy:d,innerRadius:u,outerRadius:m,maxRadius:f}},tX=(e,t)=>{var r=zt(t-e),s=Math.min(Math.abs(t-e),360);return r*s};function rX(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var nX=(e,t)=>{if(x.isValidElement(e))return x.cloneElement(e,t);if(typeof e=="function")return e(t);var r=Ie("recharts-pie-label-line",typeof e!="boolean"?e.className:"");return x.createElement(By,ha({},t,{type:"linear",className:r}))},sX=(e,t,r)=>{if(x.isValidElement(e))return x.cloneElement(e,t);var s=r;if(typeof e=="function"&&(s=e(t),x.isValidElement(s)))return s;var a=Ie("recharts-pie-label-text",rX(e));return x.createElement(lh,ha({},t,{alignmentBaseline:"middle",className:a}),s)};function aX(e){var{sectors:t,props:r,showLabels:s}=e,{label:a,labelLine:i,dataKey:l}=r;if(!s||!a||!t)return null;var o=As(r),c=it(a,!1),d=it(i,!1),u=typeof a=="object"&&"offsetRadius"in a&&typeof a.offsetRadius=="number"&&a.offsetRadius||20,m=t.map((f,h)=>{var p=(f.startAngle+f.endAngle)/2,v=kt(f.cx,f.cy,f.outerRadius+u,p),y=st(st(st(st({},o),f),{},{stroke:"none"},c),{},{index:h,textAnchor:JY(v.x,f.cx)},v),g=st(st(st(st({},o),f),{},{fill:"none",stroke:f.fill},d),{},{index:h,points:[kt(f.cx,f.cy,f.outerRadius,p),v],key:"line"});return x.createElement(tr,{key:"label-".concat(f.startAngle,"-").concat(f.endAngle,"-").concat(f.midAngle,"-").concat(h)},i&&nX(i,g),sX(a,y,Ke(f,l)))});return x.createElement(tr,{className:"recharts-pie-labels"},m)}function iX(e){var{sectors:t,props:r,showLabels:s}=e,{label:a}=r;return typeof a=="object"&&a!=null&&"position"in a?x.createElement(Wv,{label:r.label}):x.createElement(aX,{sectors:t,props:r,showLabels:s})}function lX(e){var{sectors:t,activeShape:r,inactiveShape:s,allOtherPieProps:a}=e,i=pe(fa),{onMouseEnter:l,onClick:o,onMouseLeave:c}=a,d=rb(a,HY),u=Zv(l,a.dataKey),m=Jv(c),f=Qv(o,a.dataKey);return t==null||t.length===0?null:x.createElement(x.Fragment,null,t.map((h,p)=>{if((h==null?void 0:h.startAngle)===0&&(h==null?void 0:h.endAngle)===0&&t.length!==1)return null;var v=r&&String(p)===i,y=i?s:null,g=v?r:y,b=st(st({},h),{},{stroke:h.stroke,tabIndex:-1,[D3]:p,[$3]:a.dataKey});return x.createElement(tr,ha({tabIndex:-1,className:"recharts-pie-sector"},Pf(d,h,p),{onMouseEnter:u(h,p),onMouseLeave:m(h,p),onClick:f(h,p),key:"sector-".concat(h==null?void 0:h.startAngle,"-").concat(h==null?void 0:h.endAngle,"-").concat(h.midAngle,"-").concat(p)}),x.createElement(PT,ha({option:g,isActive:v,shapeType:"sector"},b)))}))}function oX(e){var t,{pieSettings:r,displayedData:s,cells:a,offset:i}=e,{cornerRadius:l,startAngle:o,endAngle:c,dataKey:d,nameKey:u,tooltipType:m}=r,f=Math.abs(r.minAngle),h=tX(o,c),p=Math.abs(h),v=s.length<=1?0:(t=r.paddingAngle)!==null&&t!==void 0?t:0,y=s.filter(N=>Ke(N,d,0)!==0).length,g=(p>=360?y:y-1)*v,b=p-y*f-g,j=s.reduce((N,A)=>{var _=Ke(A,d,0);return N+(ve(_)?_:0)},0),w;if(j>0){var C;w=s.map((N,A)=>{var _=Ke(N,d,0),I=Ke(N,u,A),B=eX(r,i,N),z=(ve(_)?_:0)/j,T,D=st(st({},N),a&&a[A]&&a[A].props);A?T=C.endAngle+zt(h)*v*(_!==0?1:0):T=o;var E=T+zt(h)*((_!==0?f:0)+z*b),S=(T+E)/2,k=(B.innerRadius+B.outerRadius)/2,P=[{name:I,value:_,payload:D,dataKey:d,type:m}],O=kt(B.cx,B.cy,k,S);return C=st(st(st(st({},r.presentationProps),{},{percent:z,cornerRadius:l,name:I,tooltipPayload:P,midAngle:S,middleRadius:k,tooltipPosition:O},D),B),{},{value:Ke(N,d),startAngle:T,endAngle:E,payload:D,paddingAngle:zt(h)*v}),C})}return w}function cX(e){var{showLabels:t,sectors:r,children:s}=e,a=x.useMemo(()=>!t||!r?[]:r.map(i=>({value:i.value,payload:i.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:i.cx,cy:i.cy,innerRadius:i.innerRadius,outerRadius:i.outerRadius,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},fill:i.fill})),[r,t]);return x.createElement(XG,{value:t?a:void 0},s)}function dX(e){var{props:t,previousSectorsRef:r}=e,{sectors:s,isAnimationActive:a,animationBegin:i,animationDuration:l,animationEasing:o,activeShape:c,inactiveShape:d,onAnimationStart:u,onAnimationEnd:m}=t,f=Ic(t,"recharts-pie-"),h=r.current,[p,v]=x.useState(!1),y=x.useCallback(()=>{typeof m=="function"&&m(),v(!1)},[m]),g=x.useCallback(()=>{typeof u=="function"&&u(),v(!0)},[u]);return x.createElement(cX,{showLabels:!p,sectors:s},x.createElement(Lc,{animationId:f,begin:i,duration:l,isActive:a,easing:o,onAnimationStart:g,onAnimationEnd:y,key:f},b=>{var j=[],w=s&&s[0],C=w==null?void 0:w.startAngle;return s==null||s.forEach((N,A)=>{var _=h&&h[A],I=A>0?mi(N,"paddingAngle",0):0;if(_){var B=ht(_.endAngle-_.startAngle,N.endAngle-N.startAngle,b),z=st(st({},N),{},{startAngle:C+I,endAngle:C+B+I});j.push(z),C=z.endAngle}else{var{endAngle:T,startAngle:D}=N,E=ht(0,T-D,b),S=st(st({},N),{},{startAngle:C+I,endAngle:C+E+I});j.push(S),C=S.endAngle}}),r.current=j,x.createElement(tr,null,x.createElement(lX,{sectors:j,activeShape:c,inactiveShape:d,allOtherPieProps:t}))}),x.createElement(iX,{showLabels:!p,sectors:s,props:t}),t.children)}var uX={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:!bi.isSsr,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff"};function mX(e){var{id:t}=e,r=rb(e,VY),{hide:s,className:a,rootTabIndex:i}=e,l=x.useMemo(()=>yy(e.children,Gc),[e.children]),o=pe(u=>fY(u,t,l)),c=x.useRef(null),d=Ie("recharts-pie",a);return s||o==null?(c.current=null,x.createElement(tr,{tabIndex:i,className:d})):x.createElement(x.Fragment,null,x.createElement(eb,{fn:ZY,args:st(st({},e),{},{sectors:o})}),x.createElement(tr,{tabIndex:i,className:d},x.createElement(dX,{props:st(st({},r),{},{sectors:o}),previousSectorsRef:c})))}function MT(e){var t=Rr(e,uX),{id:r}=t,s=rb(t,KY),a=As(s);return x.createElement(tb,{id:r,type:"pie"},i=>x.createElement(x.Fragment,null,x.createElement(UY,{type:"pie",id:i,data:s.data,dataKey:s.dataKey,hide:s.hide,angleAxisId:0,radiusAxisId:0,name:s.name,nameKey:s.nameKey,tooltipType:s.tooltipType,legendType:s.legendType,fill:s.fill,cx:s.cx,cy:s.cy,startAngle:s.startAngle,endAngle:s.endAngle,paddingAngle:s.paddingAngle,minAngle:s.minAngle,innerRadius:s.innerRadius,outerRadius:s.outerRadius,cornerRadius:s.cornerRadius,presentationProps:a}),x.createElement(XY,ha({},s,{id:i})),x.createElement(mX,ha({},s,{id:i}))))}MT.displayName="Pie";function a2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function i2(e){for(var t=1;t{if(e)return{top:e.top,bottom:e.bottom,left:e.left,right:e.right}}),SX=Q([NX,Ts,_s],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),nb=()=>pe(SX),kX=()=>pe(cq);function l2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function o2(e){for(var t=1;t{var{point:t,childIndex:r,mainColor:s,activeDot:a,dataKey:i}=e;if(a===!1||t.x==null||t.y==null)return null;var l=o2(o2({index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:s??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},it(a,!1)),gy(a)),o;return x.isValidElement(a)?o=x.cloneElement(a,l):typeof a=="function"?o=a(l):o=x.createElement(wT,l),x.createElement(tr,{className:"recharts-active-dot"},o)};function TX(e){var{points:t,mainColor:r,activeDot:s,itemDataKey:a}=e,i=pe(fa),l=kX();if(t==null||l==null)return null;var o=t.find(c=>l.includes(c.payload));return ot(o)?null:AX({point:o,childIndex:Number(i),mainColor:r,dataKey:a,activeDot:s})}var _X="Invariant failed";function OX(e,t){throw new Error(_X)}var MX=["x","y"];function Pg(){return Pg=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:0;return(s,a)=>{if(ve(t))return t;var i=ve(s)||ot(s);return i?t(s,a):(i||OX(),r)}},BX={},$T=rn({name:"errorBars",initialState:BX,reducers:{addErrorBar:(e,t)=>{var{itemId:r,errorBar:s}=t.payload;e[r]||(e[r]=[]),e[r].push(s)},replaceErrorBar:(e,t)=>{var{itemId:r,prev:s,next:a}=t.payload;e[r]&&(e[r]=e[r].map(i=>i.dataKey===s.dataKey&&i.direction===s.direction?a:i))},removeErrorBar:(e,t)=>{var{itemId:r,errorBar:s}=t.payload;e[r]&&(e[r]=e[r].filter(a=>a.dataKey!==s.dataKey||a.direction!==s.direction))}}}),{addErrorBar:Cte,replaceErrorBar:Ete,removeErrorBar:Pte}=$T.actions,UX=$T.reducer,HX=["children"];function VX(e,t){if(e==null)return{};var r,s,a=KX(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s({x:0,y:0,value:0}),errorBarOffset:0},qX=x.createContext(WX);function LT(e){var{children:t}=e,r=VX(e,HX);return x.createElement(qX.Provider,{value:r},t)}function ab(e,t){var r,s,a=pe(d=>Sa(d,e)),i=pe(d=>ka(d,t)),l=(r=a==null?void 0:a.allowDataOverflow)!==null&&r!==void 0?r:Fr.allowDataOverflow,o=(s=i==null?void 0:i.allowDataOverflow)!==null&&s!==void 0?s:zr.allowDataOverflow,c=l||o;return{needClip:c,needClipX:l,needClipY:o}}function IT(e){var{xAxisId:t,yAxisId:r,clipPathId:s}=e,a=nb(),{needClipX:i,needClipY:l,needClip:o}=ab(t,r);if(!o)return null;var{x:c,y:d,width:u,height:m}=a;return x.createElement("clipPath",{id:"clipPath-".concat(s)},x.createElement("rect",{x:i?c:c-u/2,y:l?d:d-m/2,width:i?u:u*2,height:l?m:m*2}))}var GX=["onMouseEnter","onMouseLeave","onClick"],YX=["value","background","tooltipPosition"],XX=["id"],ZX=["onMouseEnter","onClick","onMouseLeave"];function xa(){return xa=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:r,fill:s,legendType:a,hide:i}=e;return[{inactive:i,dataKey:t,type:a,color:s,value:Ll(r,t),payload:e}]};function nZ(e){var{dataKey:t,stroke:r,strokeWidth:s,fill:a,name:i,hide:l,unit:o}=e;return{dataDefinedOnItem:void 0,positions:void 0,settings:{stroke:r,strokeWidth:s,fill:a,dataKey:t,nameKey:void 0,name:Ll(i,t),hide:l,type:e.tooltipType,color:e.fill,unit:o}}}function sZ(e){var t=pe(fa),{data:r,dataKey:s,background:a,allOtherBarProps:i}=e,{onMouseEnter:l,onMouseLeave:o,onClick:c}=i,d=Am(i,GX),u=Zv(l,s),m=Jv(o),f=Qv(c,s);if(!a||r==null)return null;var h=it(a,!1);return x.createElement(x.Fragment,null,r.map((p,v)=>{var{value:y,background:g,tooltipPosition:b}=p,j=Am(p,YX);if(!g)return null;var w=u(p,v),C=m(p,v),N=f(p,v),A=gr(gr(gr(gr(gr({option:a,isActive:String(v)===t},j),{},{fill:"#eee"},g),h),Pf(d,p,v)),{},{onMouseEnter:w,onMouseLeave:C,onClick:N,dataKey:s,index:v,className:"recharts-bar-background-rectangle"});return x.createElement(sb,xa({key:"background-bar-".concat(v)},A))}))}function aZ(e){var{showLabels:t,children:r,rects:s}=e,a=s==null?void 0:s.map(i=>{var l={x:i.x,y:i.y,width:i.width,height:i.height};return gr(gr({},l),{},{value:i.value,payload:i.payload,parentViewBox:i.parentViewBox,viewBox:l,fill:i.fill})});return x.createElement(bT,{value:t?a:void 0},r)}function iZ(e){var{shape:t,activeBar:r,baseProps:s,entry:a,index:i,dataKey:l}=e,o=pe(fa),c=pe(GA),d=r&&String(i)===o&&(c==null||l===c),u=d?r:t;return x.createElement(sb,xa({},s,a,{isActive:d,option:u,index:i,dataKey:l}))}function lZ(e){var{shape:t,baseProps:r,entry:s,index:a,dataKey:i}=e;return x.createElement(sb,xa({},r,s,{isActive:!1,option:t,index:a,dataKey:i}))}function oZ(e){var{data:t,props:r}=e,s=As(r),{id:a}=s,i=Am(s,XX),{shape:l,dataKey:o,activeBar:c}=r,{onMouseEnter:d,onClick:u,onMouseLeave:m}=r,f=Am(r,ZX),h=Zv(d,o),p=Jv(m),v=Qv(u,o);return t?x.createElement(x.Fragment,null,t.map((y,g)=>x.createElement(tr,xa({className:"recharts-bar-rectangle"},Pf(f,y,g),{onMouseEnter:h(y,g),onMouseLeave:p(y,g),onClick:v(y,g),key:"rectangle-".concat(y==null?void 0:y.x,"-").concat(y==null?void 0:y.y,"-").concat(y==null?void 0:y.value,"-").concat(g)}),c?x.createElement(iZ,{shape:l,activeBar:c,baseProps:i,entry:y,index:g,dataKey:o}):x.createElement(lZ,{shape:l,baseProps:i,entry:y,index:g,dataKey:o})))):null}function cZ(e){var{props:t,previousRectanglesRef:r}=e,{data:s,layout:a,isAnimationActive:i,animationBegin:l,animationDuration:o,animationEasing:c,onAnimationEnd:d,onAnimationStart:u}=t,m=r.current,f=Ic(t,"recharts-bar-"),[h,p]=x.useState(!1),v=!h,y=x.useCallback(()=>{typeof d=="function"&&d(),p(!1)},[d]),g=x.useCallback(()=>{typeof u=="function"&&u(),p(!0)},[u]);return x.createElement(aZ,{showLabels:v,rects:s},x.createElement(Lc,{animationId:f,begin:l,duration:o,isActive:i,easing:c,onAnimationEnd:y,onAnimationStart:g,key:f},b=>{var j=b===1?s:s==null?void 0:s.map((w,C)=>{var N=m&&m[C];if(N)return gr(gr({},w),{},{x:ht(N.x,w.x,b),y:ht(N.y,w.y,b),width:ht(N.width,w.width,b),height:ht(N.height,w.height,b)});if(a==="horizontal"){var A=ht(0,w.height,b);return gr(gr({},w),{},{y:w.y+w.height-A,height:A})}var _=ht(0,w.width,b);return gr(gr({},w),{},{width:_})});return b>0&&(r.current=j??null),j==null?null:x.createElement(tr,null,x.createElement(oZ,{props:t,data:j}))}),x.createElement(Wv,{label:t.label}),t.children)}function dZ(e){var t=x.useRef(null);return x.createElement(cZ,{previousRectanglesRef:t,props:e})}var RT=0,uZ=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:Ke(e,t)}};class mZ extends x.PureComponent{render(){var{hide:t,data:r,dataKey:s,className:a,xAxisId:i,yAxisId:l,needClip:o,background:c,id:d}=this.props;if(t||r==null)return null;var u=Ie("recharts-bar",a),m=d;return x.createElement(tr,{className:u,id:d},o&&x.createElement("defs",null,x.createElement(IT,{clipPathId:m,xAxisId:i,yAxisId:l})),x.createElement(tr,{className:"recharts-bar-rectangles",clipPath:o?"url(#clipPath-".concat(m,")"):void 0},x.createElement(sZ,{data:r,dataKey:s,background:c,allOtherBarProps:this.props}),x.createElement(dZ,this.props)))}}var fZ={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",hide:!1,isAnimationActive:!bi.isSsr,legendType:"rect",minPointSize:RT,xAxisId:0,yAxisId:0};function hZ(e){var{xAxisId:t,yAxisId:r,hide:s,legendType:a,minPointSize:i,activeBar:l,animationBegin:o,animationDuration:c,animationEasing:d,isAnimationActive:u}=e,{needClip:m}=ab(t,r),f=Hf(),h=Ir(),p=yy(e.children,Gc),v=pe(b=>BZ(b,t,r,h,e.id,p));if(f!=="vertical"&&f!=="horizontal")return null;var y,g=v==null?void 0:v[0];return g==null||g.height==null||g.width==null?y=0:y=f==="vertical"?g.height/2:g.width/2,x.createElement(LT,{xAxisId:t,yAxisId:r,data:v,dataPointFormatter:uZ,errorBarOffset:y},x.createElement(mZ,xa({},e,{layout:f,needClip:m,data:v,xAxisId:t,yAxisId:r,hide:s,legendType:a,minPointSize:i,activeBar:l,animationBegin:o,animationDuration:c,animationEasing:d,isAnimationActive:u})))}function xZ(e){var{layout:t,barSettings:{dataKey:r,minPointSize:s},pos:a,bandSize:i,xAxis:l,yAxis:o,xAxisTicks:c,yAxisTicks:d,stackedData:u,displayedData:m,offset:f,cells:h,parentViewBox:p}=e,v=t==="horizontal"?o:l,y=u?v.scale.domain():null,g=EB({numericAxis:v});return m.map((b,j)=>{var w,C,N,A,_,I;u?w=jB(u[j],y):(w=Ke(b,r),Array.isArray(w)||(w=[g,w]));var B=zX(s,RT)(w[1],j);if(t==="horizontal"){var z,[T,D]=[o.scale(w[0]),o.scale(w[1])];C=jN({axis:l,ticks:c,bandSize:i,offset:a.offset,entry:b,index:j}),N=(z=D??T)!==null&&z!==void 0?z:void 0,A=a.size;var E=T-D;if(_=Zr(E)?0:E,I={x:C,y:f.top,width:A,height:f.height},Math.abs(B)>0&&Math.abs(_)0&&Math.abs(A)x.createElement(x.Fragment,null,x.createElement(TT,{legendPayload:rZ(t)}),x.createElement(eb,{fn:nZ,args:t}),x.createElement(OT,{type:"bar",id:s,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:CB(t.stackId),hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r}),x.createElement(hZ,xa({},t,{id:s}))))}Tm.displayName="Bar";function u2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Yd(e){for(var t=1;tt,bZ=(e,t,r)=>r,jZ=(e,t,r,s)=>s,wZ=(e,t,r,s,a)=>a,Yc=Q([th,wZ],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),NZ=Q([Yc],e=>e==null?void 0:e.maxBarSize),SZ=(e,t,r,s,a,i)=>i,m2=(e,t,r)=>{var s=r??e;if(!ot(s))return ur(s,t,0)},kZ=Q([Me,th,vZ,bZ,jZ],(e,t,r,s,a)=>t.filter(i=>e==="horizontal"?i.xAxisId===r:i.yAxisId===s).filter(i=>i.isPanorama===a).filter(i=>i.hide===!1).filter(i=>i.type==="bar")),CZ=(e,t,r,s)=>{var a=Me(e);return a==="horizontal"?jg(e,"yAxis",r,s):jg(e,"xAxis",t,s)},EZ=(e,t,r)=>{var s=Me(e);return s==="horizontal"?N1(e,"xAxis",t):N1(e,"yAxis",r)},PZ=(e,t,r)=>{var s={},a=e.filter(eh),i=e.filter(d=>d.stackId==null),l=a.reduce((d,u)=>(d[u.stackId]||(d[u.stackId]=[]),d[u.stackId].push(u),d),s),o=Object.entries(l).map(d=>{var[u,m]=d,f=m.map(p=>p.dataKey),h=m2(t,r,m[0].barSize);return{stackId:u,dataKeys:f,barSize:h}}),c=i.map(d=>{var u=[d.dataKey].filter(f=>f!=null),m=m2(t,r,d.barSize);return{stackId:void 0,dataKeys:u,barSize:m}});return[...o,...c]},AZ=Q([kZ,bK,EZ],PZ),TZ=(e,t,r,s,a)=>{var i,l,o=Yc(e,t,r,s,a);if(o!=null){var c=Me(e),d=WP(e),{maxBarSize:u}=o,m=ot(u)?d:u,f,h;return c==="horizontal"?(f=ma(e,"xAxis",t,s),h=ua(e,"xAxis",t,s)):(f=ma(e,"yAxis",r,s),h=ua(e,"yAxis",r,s)),(i=(l=fc(f,h,!0))!==null&&l!==void 0?l:m)!==null&&i!==void 0?i:0}},FT=(e,t,r,s)=>{var a=Me(e),i,l;return a==="horizontal"?(i=ma(e,"xAxis",t,s),l=ua(e,"xAxis",t,s)):(i=ma(e,"yAxis",r,s),l=ua(e,"yAxis",r,s)),fc(i,l)};function _Z(e,t,r,s,a){var i=s.length;if(!(i<1)){var l=ur(e,r,0,!0),o,c=[];if(Qr(s[0].barSize)){var d=!1,u=r/i,m=s.reduce((g,b)=>g+(b.barSize||0),0);m+=(i-1)*l,m>=r&&(m-=(i-1)*l,l=0),m>=r&&u>0&&(d=!0,u*=.9,m=i*u);var f=(r-m)/2>>0,h={offset:f-l,size:0};o=s.reduce((g,b)=>{var j,w={stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:h.offset+h.size+l,size:d?u:(j=b.barSize)!==null&&j!==void 0?j:0}},C=[...g,w];return h=C[C.length-1].position,C},c)}else{var p=ur(t,r,0,!0);r-2*p-(i-1)*l<=0&&(l=0);var v=(r-2*p-(i-1)*l)/i;v>1&&(v>>=0);var y=Qr(a)?Math.min(v,a):v;o=s.reduce((g,b,j)=>[...g,{stackId:b.stackId,dataKeys:b.dataKeys,position:{offset:p+(v+l)*j+(v-y)/2,size:y}}],c)}return o}}var OZ=(e,t,r,s,a,i,l)=>{var o=ot(l)?t:l,c=_Z(r,s,a!==i?a:i,e,o);return a!==i&&c!=null&&(c=c.map(d=>Yd(Yd({},d),{},{position:Yd(Yd({},d.position),{},{offset:d.position.offset-a/2})}))),c},MZ=Q([AZ,WP,vK,qP,TZ,FT,NZ],OZ),DZ=(e,t,r,s)=>ma(e,"xAxis",t,s),$Z=(e,t,r,s)=>ma(e,"yAxis",r,s),LZ=(e,t,r,s)=>ua(e,"xAxis",t,s),IZ=(e,t,r,s)=>ua(e,"yAxis",r,s),RZ=Q([MZ,Yc],(e,t)=>{if(!(e==null||t==null)){var r=e.find(s=>s.stackId===t.stackId&&t.dataKey!=null&&s.dataKeys.includes(t.dataKey));if(r!=null)return r.position}}),FZ=(e,t)=>{var r=gv(t);if(!(!e||r==null||t==null)){var{stackId:s}=t;if(s!=null){var a=e[s];if(a){var{stackedData:i}=a;if(i)return i.find(l=>l.key===r)}}}},zZ=Q([CZ,Yc],FZ),BZ=Q([$t,Fy,DZ,$Z,LZ,IZ,RZ,Me,Xf,FT,zZ,Yc,SZ],(e,t,r,s,a,i,l,o,c,d,u,m,f)=>{var{chartData:h,dataStartIndex:p,dataEndIndex:v}=c;if(!(m==null||l==null||t==null||o!=="horizontal"&&o!=="vertical"||r==null||s==null||a==null||i==null||d==null)){var{data:y}=m,g;if(y!=null&&y.length>0?g=y:g=h==null?void 0:h.slice(p,v+1),g!=null)return xZ({layout:o,barSettings:m,pos:l,parentViewBox:t,bandSize:d,xAxis:r,yAxis:s,xAxisTicks:a,yAxisTicks:i,stackedData:u,displayedData:g,offset:e,cells:f})}}),zT=e=>{var{chartData:t}=e,r=bt(),s=Ir();return x.useEffect(()=>s?()=>{}:(r(O1(t)),()=>{r(O1(void 0))}),[t,r,s]),null},f2={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},BT=rn({name:"brush",initialState:f2,reducers:{setBrushSettings(e,t){return t.payload==null?f2:t.payload}}}),{setBrushSettings:Ate}=BT.actions,UZ=BT.reducer;function HZ(e,t,r){return(t=VZ(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function VZ(e){var t=KZ(e,"string");return typeof t=="symbol"?t:t+""}function KZ(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var s=r.call(e,t);if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class ib{static create(t){return new ib(t)}constructor(t){this.scale=t}get domain(){return this.scale.domain}get range(){return this.scale.range}get rangeMin(){return this.range()[0]}get rangeMax(){return this.range()[1]}get bandwidth(){return this.scale.bandwidth}apply(t){var{bandAware:r,position:s}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t!==void 0){if(s)switch(s){case"start":return this.scale(t);case"middle":{var a=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+a}case"end":{var i=this.bandwidth?this.bandwidth():0;return this.scale(t)+i}default:return this.scale(t)}if(r){var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+l}return this.scale(t)}}isInRange(t){var r=this.range(),s=r[0],a=r[r.length-1];return s<=a?t>=s&&t<=a:t>=a&&t<=s}}HZ(ib,"EPS",1e-4);function WZ(e){return(e%180+180)%180}var qZ=function(t){var{width:r,height:s}=t,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=WZ(a),l=i*Math.PI/180,o=Math.atan(s/r),c=l>o&&l{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=hs(e).dots.findIndex(s=>s===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=hs(e).areas.findIndex(s=>s===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=hs(e).lines.findIndex(s=>s===t.payload);r!==-1&&e.lines.splice(r,1)}}}),{addDot:Tte,removeDot:_te,addArea:Ote,removeArea:Mte,addLine:Dte,removeLine:$te}=UT.actions,YZ=UT.reducer,XZ=x.createContext(void 0),ZZ=e=>{var{children:t}=e,[r]=x.useState("".concat(dc("recharts"),"-clip")),s=nb();if(s==null)return null;var{x:a,y:i,width:l,height:o}=s;return x.createElement(XZ.Provider,{value:r},x.createElement("defs",null,x.createElement("clipPath",{id:r},x.createElement("rect",{x:a,y:i,height:o,width:l}))),t)};function vx(e,t){for(var r in e)if({}.hasOwnProperty.call(e,r)&&(!{}.hasOwnProperty.call(t,r)||e[r]!==t[r]))return!1;for(var s in t)if({}.hasOwnProperty.call(t,s)&&!{}.hasOwnProperty.call(e,s))return!1;return!0}function HT(e,t,r){if(t<1)return[];if(t===1&&r===void 0)return e;for(var s=[],a=0;ae*a)return!1;var i=r();return e*(t-e*i/2-s)>=0&&e*(t+e*i/2-a)<=0}function eJ(e,t){return HT(e,t+1)}function tJ(e,t,r,s,a){for(var i=(s||[]).slice(),{start:l,end:o}=t,c=0,d=1,u=l,m=function(){var p=s==null?void 0:s[c];if(p===void 0)return{v:HT(s,d)};var v=c,y,g=()=>(y===void 0&&(y=r(p,v)),y),b=p.coordinate,j=c===0||_m(e,b,g,u,o);j||(c=0,u=l,d+=1),j&&(u=b+e*(g()/2+a),c+=d)},f;d<=i.length;)if(f=m(),f)return f.v;return[]}function h2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function ir(e){for(var t=1;t(p===void 0&&(p=r(h,f)),p);if(f===l-1){var y=e*(h.coordinate+e*v()/2-c);i[f]=h=ir(ir({},h),{},{tickCoord:y>0?h.coordinate-y*e:h.coordinate})}else i[f]=h=ir(ir({},h),{},{tickCoord:h.coordinate});var g=_m(e,h.tickCoord,v,o,c);g&&(c=h.tickCoord-e*(v()/2+a),i[f]=ir(ir({},h),{},{isShow:!0}))},u=l-1;u>=0;u--)d(u);return i}function iJ(e,t,r,s,a,i){var l=(s||[]).slice(),o=l.length,{start:c,end:d}=t;if(i){var u=s[o-1],m=r(u,o-1),f=e*(u.coordinate+e*m/2-d);l[o-1]=u=ir(ir({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate});var h=_m(e,u.tickCoord,()=>m,c,d);h&&(d=u.tickCoord-e*(m/2+a),l[o-1]=ir(ir({},u),{},{isShow:!0}))}for(var p=i?o-1:o,v=function(b){var j=l[b],w,C=()=>(w===void 0&&(w=r(j,b)),w);if(b===0){var N=e*(j.coordinate-e*C()/2-c);l[b]=j=ir(ir({},j),{},{tickCoord:N<0?j.coordinate-N*e:j.coordinate})}else l[b]=j=ir(ir({},j),{},{tickCoord:j.coordinate});var A=_m(e,j.tickCoord,C,c,d);A&&(c=j.tickCoord+e*(C()/2+a),l[b]=ir(ir({},j),{},{isShow:!0}))},y=0;y{var C=typeof d=="function"?d(j.value,w):j.value;return p==="width"?JZ(Lo(C,{fontSize:t,letterSpacing:r}),v,m):Lo(C,{fontSize:t,letterSpacing:r})[p]},g=a.length>=2?zt(a[1].coordinate-a[0].coordinate):1,b=QZ(i,g,p);return c==="equidistantPreserveStart"?tJ(g,b,y,a,l):(c==="preserveStart"||c==="preserveStartEnd"?h=iJ(g,b,y,a,l,c==="preserveStartEnd"):h=aJ(g,b,y,a,l),h.filter(j=>j.isShow))}var lJ=["viewBox"],oJ=["viewBox"];function Gi(){return Gi=Object.assign?Object.assign.bind():function(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:[],{tickLine:a,stroke:i,tick:l,tickFormatter:o,unit:c,padding:d,tickTextProps:u}=this.props,m=lb(Pt(Pt({},this.props),{},{ticks:s}),t,r),f=this.getTickTextAnchor(),h=this.getTickVerticalAnchor(),p=As(this.props),v=it(l,!1),y=Pt(Pt({},p),{},{fill:"none"},it(a,!1)),g=m.map((b,j)=>{var{line:w,tick:C}=this.getTickLineCoord(b),N=Pt(Pt(Pt(Pt({textAnchor:f,verticalAnchor:h},p),{},{stroke:"none",fill:i},v),C),{},{index:j,payload:b,visibleTicksCount:m.length,tickFormatter:o,padding:d},u);return x.createElement(tr,Gi({className:"recharts-cartesian-axis-tick",key:"tick-".concat(b.value,"-").concat(b.coordinate,"-").concat(b.tickCoord)},Pf(this.props,b,j)),a&&x.createElement("line",Gi({},y,w,{className:Ie("recharts-cartesian-axis-tick-line",mi(a,"className"))})),l&&Ca.renderTickItem(l,N,"".concat(typeof o=="function"?o(b.value,j):b.value).concat(c||"")))});return g.length>0?x.createElement("g",{className:"recharts-cartesian-axis-ticks"},g):null}render(){var{axisLine:t,width:r,height:s,className:a,hide:i}=this.props;if(i)return null;var{ticks:l}=this.props;return r!=null&&r<=0||s!=null&&s<=0?null:x.createElement(tr,{className:Ie("recharts-cartesian-axis",a),ref:o=>{if(o){var c=o.getElementsByClassName("recharts-cartesian-axis-tick-value");this.tickRefs.current=Array.from(c);var d=c[0];if(d){var u=window.getComputedStyle(d).fontSize,m=window.getComputedStyle(d).letterSpacing;(u!==this.state.fontSize||m!==this.state.letterSpacing)&&this.setState({fontSize:window.getComputedStyle(d).fontSize,letterSpacing:window.getComputedStyle(d).letterSpacing})}}}},t&&this.renderAxisLine(),this.renderTicks(this.state.fontSize,this.state.letterSpacing,l),x.createElement(MG,{x:this.props.x,y:this.props.y,width:this.props.width,height:this.props.height},x.createElement(HG,{label:this.props.label}),this.props.children))}}ob(Ca,"displayName","CartesianAxis");ob(Ca,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var mJ=["x1","y1","x2","y2","key"],fJ=["offset"],hJ=["xAxisId","yAxisId"],xJ=["xAxisId","yAxisId"];function g2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function or(e){for(var t=1;t{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:r,x:s,y:a,width:i,height:l,ry:o}=e;return x.createElement("rect",{x:s,y:a,ry:o,width:i,height:l,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function VT(e,t){var r;if(x.isValidElement(e))r=x.cloneElement(e,t);else if(typeof e=="function")r=e(t);else{var{x1:s,y1:a,x2:i,y2:l,key:o}=t,c=Om(t,mJ),d=As(c),{offset:u}=d,m=Om(d,fJ);r=x.createElement("line",Ka({},m,{x1:s,y1:a,x2:i,y2:l,fill:"none",key:o}))}return r}function jJ(e){var{x:t,width:r,horizontal:s=!0,horizontalPoints:a}=e;if(!s||!a||!a.length)return null;var{xAxisId:i,yAxisId:l}=e,o=Om(e,hJ),c=a.map((d,u)=>{var m=or(or({},o),{},{x1:t,y1:d,x2:t+r,y2:d,key:"line-".concat(u),index:u});return VT(s,m)});return x.createElement("g",{className:"recharts-cartesian-grid-horizontal"},c)}function wJ(e){var{y:t,height:r,vertical:s=!0,verticalPoints:a}=e;if(!s||!a||!a.length)return null;var{xAxisId:i,yAxisId:l}=e,o=Om(e,xJ),c=a.map((d,u)=>{var m=or(or({},o),{},{x1:d,y1:t,x2:d,y2:t+r,key:"line-".concat(u),index:u});return VT(s,m)});return x.createElement("g",{className:"recharts-cartesian-grid-vertical"},c)}function NJ(e){var{horizontalFill:t,fillOpacity:r,x:s,y:a,width:i,height:l,horizontalPoints:o,horizontal:c=!0}=e;if(!c||!t||!t.length)return null;var d=o.map(m=>Math.round(m+a-a)).sort((m,f)=>m-f);a!==d[0]&&d.unshift(0);var u=d.map((m,f)=>{var h=!d[f+1],p=h?a+l-m:d[f+1]-m;if(p<=0)return null;var v=f%t.length;return x.createElement("rect",{key:"react-".concat(f),y:m,x:s,height:p,width:i,stroke:"none",fill:t[v],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return x.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},u)}function SJ(e){var{vertical:t=!0,verticalFill:r,fillOpacity:s,x:a,y:i,width:l,height:o,verticalPoints:c}=e;if(!t||!r||!r.length)return null;var d=c.map(m=>Math.round(m+a-a)).sort((m,f)=>m-f);a!==d[0]&&d.unshift(0);var u=d.map((m,f)=>{var h=!d[f+1],p=h?a+l-m:d[f+1]-m;if(p<=0)return null;var v=f%r.length;return x.createElement("rect",{key:"react-".concat(f),x:m,y:i,width:p,height:o,stroke:"none",fill:r[v],fillOpacity:s,className:"recharts-cartesian-grid-bg"})});return x.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},u)}var kJ=(e,t)=>{var{xAxis:r,width:s,height:a,offset:i}=e;return _3(lb(or(or(or({},Ca.defaultProps),r),{},{ticks:O3(r),viewBox:{x:0,y:0,width:s,height:a}})),i.left,i.left+i.width,t)},CJ=(e,t)=>{var{yAxis:r,width:s,height:a,offset:i}=e;return _3(lb(or(or(or({},Ca.defaultProps),r),{},{ticks:O3(r),viewBox:{x:0,y:0,width:s,height:a}})),i.top,i.top+i.height,t)},EJ={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0};function La(e){var t=I3(),r=R3(),s=L3(),a=or(or({},Rr(e,EJ)),{},{x:ve(e.x)?e.x:s.left,y:ve(e.y)?e.y:s.top,width:ve(e.width)?e.width:s.width,height:ve(e.height)?e.height:s.height}),{xAxisId:i,yAxisId:l,x:o,y:c,width:d,height:u,syncWithTicks:m,horizontalValues:f,verticalValues:h}=a,p=Ir(),v=pe(I=>S1(I,"xAxis",i,p)),y=pe(I=>S1(I,"yAxis",l,p));if(!ve(d)||d<=0||!ve(u)||u<=0||!ve(o)||o!==+o||!ve(c)||c!==+c)return null;var g=a.verticalCoordinatesGenerator||kJ,b=a.horizontalCoordinatesGenerator||CJ,{horizontalPoints:j,verticalPoints:w}=a;if((!j||!j.length)&&typeof b=="function"){var C=f&&f.length,N=b({yAxis:y?or(or({},y),{},{ticks:C?f:y.ticks}):void 0,width:t,height:r,offset:s},C?!0:m);$o(Array.isArray(N),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof N,"]")),Array.isArray(N)&&(j=N)}if((!w||!w.length)&&typeof g=="function"){var A=h&&h.length,_=g({xAxis:v?or(or({},v),{},{ticks:A?h:v.ticks}):void 0,width:t,height:r,offset:s},A?!0:m);$o(Array.isArray(_),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof _,"]")),Array.isArray(_)&&(w=_)}return x.createElement("g",{className:"recharts-cartesian-grid"},x.createElement(bJ,{fill:a.fill,fillOpacity:a.fillOpacity,x:a.x,y:a.y,width:a.width,height:a.height,ry:a.ry}),x.createElement(NJ,Ka({},a,{horizontalPoints:j})),x.createElement(SJ,Ka({},a,{verticalPoints:w})),x.createElement(jJ,Ka({},a,{offset:s,horizontalPoints:j,xAxis:v,yAxis:y})),x.createElement(wJ,Ka({},a,{offset:s,verticalPoints:w,xAxis:v,yAxis:y})))}La.displayName="CartesianGrid";var KT=(e,t,r,s)=>ma(e,"xAxis",t,s),WT=(e,t,r,s)=>ua(e,"xAxis",t,s),qT=(e,t,r,s)=>ma(e,"yAxis",r,s),GT=(e,t,r,s)=>ua(e,"yAxis",r,s),PJ=Q([Me,KT,qT,WT,GT],(e,t,r,s,a)=>ba(e,"xAxis")?fc(t,s,!1):fc(r,a,!1)),AJ=(e,t,r,s,a)=>a;function TJ(e){return e.type==="line"}var _J=Q([th,AJ],(e,t)=>e.filter(TJ).find(r=>r.id===t)),OJ=Q([Me,KT,qT,WT,GT,_J,PJ,Xf],(e,t,r,s,a,i,l,o)=>{var{chartData:c,dataStartIndex:d,dataEndIndex:u}=o;if(!(i==null||t==null||r==null||s==null||a==null||s.length===0||a.length===0||l==null)){var{dataKey:m,data:f}=i,h;if(f!=null&&f.length>0?h=f:h=c==null?void 0:c.slice(d,u+1),h!=null)return eQ({layout:e,xAxis:t,yAxis:r,xAxisTicks:s,yAxisTicks:a,dataKey:m,bandSize:l,displayedData:h})}}),MJ=["id"],DJ=["type","layout","connectNulls","needClip"],$J=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function y2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function Hr(e){for(var t=1;t{var{dataKey:t,name:r,stroke:s,legendType:a,hide:i}=e;return[{inactive:i,dataKey:t,type:a,color:s,value:Ll(r,t),payload:e}]};function BJ(e){var{dataKey:t,data:r,stroke:s,strokeWidth:a,fill:i,name:l,hide:o,unit:c}=e;return{dataDefinedOnItem:r,positions:void 0,settings:{stroke:s,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:Ll(l,t),hide:o,type:e.tooltipType,color:e.stroke,unit:c}}}var YT=(e,t)=>"".concat(t,"px ").concat(e-t,"px");function UJ(e,t){for(var r=e.length%2!==0?[...e,0]:e,s=[],a=0;a{var s=r.reduce((m,f)=>m+f);if(!s)return YT(t,e);for(var a=Math.floor(e/s),i=e%s,l=t-e,o=[],c=0,d=0;ci){o=[...r.slice(0,c),i-d];break}var u=o.length%2===0?[0,l]:[l];return[...UJ(r,a),...o,...u].map(m=>"".concat(m,"px")).join(", ")};function VJ(e,t){var r;if(x.isValidElement(e))r=x.cloneElement(e,t);else if(typeof e=="function")r=e(t);else{var s=Ie("recharts-line-dot",typeof e!="boolean"?e.className:"");r=x.createElement(wT,pi({},t,{className:s}))}return r}function KJ(e,t){return e==null?!1:t?!0:e.length===1}function WJ(e){var{clipPathId:t,points:r,props:s}=e,{dot:a,dataKey:i,needClip:l}=s;if(!KJ(r,a))return null;var{id:o}=s,c=cb(s,MJ),d=pE(a),u=As(c),m=it(a,!0),f=r.map((p,v)=>{var y=Hr(Hr(Hr({key:"dot-".concat(v),r:3},u),m),{},{index:v,cx:p.x,cy:p.y,dataKey:i,value:p.value,payload:p.payload,points:r});return VJ(a,y)}),h={clipPath:l?"url(#clipPath-".concat(d?"":"dots-").concat(t,")"):void 0};return x.createElement(tr,pi({className:"recharts-line-dots",key:"dots"},h),f)}function qJ(e){var{showLabels:t,children:r,points:s}=e,a=x.useMemo(()=>s==null?void 0:s.map(i=>{var l={x:i.x,y:i.y,width:0,height:0};return Hr(Hr({},l),{},{value:i.value,payload:i.payload,viewBox:l,parentViewBox:void 0,fill:void 0})}),[s]);return x.createElement(bT,{value:t?a:null},r)}function v2(e){var{clipPathId:t,pathRef:r,points:s,strokeDasharray:a,props:i}=e,{type:l,layout:o,connectNulls:c,needClip:d}=i,u=cb(i,DJ),m=Hr(Hr({},it(u,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:d?"url(#clipPath-".concat(t,")"):void 0,points:s,type:l,layout:o,connectNulls:c,strokeDasharray:a??i.strokeDasharray});return x.createElement(x.Fragment,null,(s==null?void 0:s.length)>1&&x.createElement(By,pi({},m,{pathRef:r})),x.createElement(WJ,{points:s,clipPathId:t,props:i}))}function GJ(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function YJ(e){var{clipPathId:t,props:r,pathRef:s,previousPointsRef:a,longestAnimatedLengthRef:i}=e,{points:l,strokeDasharray:o,isAnimationActive:c,animationBegin:d,animationDuration:u,animationEasing:m,animateNewValues:f,width:h,height:p,onAnimationEnd:v,onAnimationStart:y}=r,g=a.current,b=Ic(r,"recharts-line-"),[j,w]=x.useState(!1),C=!j,N=x.useCallback(()=>{typeof v=="function"&&v(),w(!1)},[v]),A=x.useCallback(()=>{typeof y=="function"&&y(),w(!0)},[y]),_=GJ(s.current),I=i.current;return x.createElement(qJ,{points:l,showLabels:C},r.children,x.createElement(Lc,{animationId:b,begin:d,duration:u,isActive:c,easing:m,onAnimationEnd:N,onAnimationStart:A,key:b},B=>{var z=ht(I,_+I,B),T=Math.min(z,_),D;if(c)if(o){var E="".concat(o).split(/[,\s]+/gim).map(P=>parseFloat(P));D=HJ(T,_,E)}else D=YT(_,T);else D=o==null?void 0:String(o);if(g){var S=g.length/l.length,k=B===1?l:l.map((P,O)=>{var $=Math.floor(O*S);if(g[$]){var H=g[$];return Hr(Hr({},P),{},{x:ht(H.x,P.x,B),y:ht(H.y,P.y,B)})}return f?Hr(Hr({},P),{},{x:ht(h*2,P.x,B),y:ht(p/2,P.y,B)}):Hr(Hr({},P),{},{x:P.x,y:P.y})});return a.current=k,x.createElement(v2,{props:r,points:k,clipPathId:t,pathRef:s,strokeDasharray:D})}return B>0&&_>0&&(a.current=l,i.current=T),x.createElement(v2,{props:r,points:l,clipPathId:t,pathRef:s,strokeDasharray:D})}),x.createElement(Wv,{label:r.label}))}function XJ(e){var{clipPathId:t,props:r}=e,s=x.useRef(null),a=x.useRef(0),i=x.useRef(null);return x.createElement(YJ,{props:r,clipPathId:t,previousPointsRef:s,longestAnimatedLengthRef:a,pathRef:i})}var ZJ=(e,t)=>({x:e.x,y:e.y,value:e.value,errorVal:Ke(e.payload,t)});class JJ extends x.Component{render(){var t,{hide:r,dot:s,points:a,className:i,xAxisId:l,yAxisId:o,top:c,left:d,width:u,height:m,id:f,needClip:h}=this.props;if(r)return null;var p=Ie("recharts-line",i),v=f,{r:y=3,strokeWidth:g=2}=(t=it(s,!1))!==null&&t!==void 0?t:{r:3,strokeWidth:2},b=pE(s),j=y*2+g;return x.createElement(x.Fragment,null,x.createElement(tr,{className:p},h&&x.createElement("defs",null,x.createElement(IT,{clipPathId:v,xAxisId:l,yAxisId:o}),!b&&x.createElement("clipPath",{id:"clipPath-dots-".concat(v)},x.createElement("rect",{x:d-j/2,y:c-j/2,width:u+j,height:m+j}))),x.createElement(LT,{xAxisId:l,yAxisId:o,data:a,dataPointFormatter:ZJ,errorBarOffset:0},x.createElement(XJ,{props:this.props,clipPathId:v}))),x.createElement(TX,{activeDot:this.props.activeDot,points:a,mainColor:this.props.stroke,itemDataKey:this.props.dataKey}))}}var XT={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:!bi.isSsr,label:!1,legendType:"line",stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0};function QJ(e){var t=Rr(e,XT),{activeDot:r,animateNewValues:s,animationBegin:a,animationDuration:i,animationEasing:l,connectNulls:o,dot:c,hide:d,isAnimationActive:u,label:m,legendType:f,xAxisId:h,yAxisId:p,id:v}=t,y=cb(t,$J),{needClip:g}=ab(h,p),b=nb(),j=Hf(),w=Ir(),C=pe(B=>OJ(B,h,p,w,v));if(j!=="horizontal"&&j!=="vertical"||C==null||b==null)return null;var{height:N,width:A,x:_,y:I}=b;return x.createElement(JJ,pi({},y,{id:v,connectNulls:o,dot:c,activeDot:r,animateNewValues:s,animationBegin:a,animationDuration:i,animationEasing:l,isAnimationActive:u,hide:d,label:m,legendType:f,xAxisId:h,yAxisId:p,points:C,layout:j,height:N,width:A,left:_,top:I,needClip:g}))}function eQ(e){var{layout:t,xAxis:r,yAxis:s,xAxisTicks:a,yAxisTicks:i,dataKey:l,bandSize:o,displayedData:c}=e;return c.map((d,u)=>{var m=Ke(d,l);if(t==="horizontal"){var f=bN({axis:r,ticks:a,bandSize:o,entry:d,index:u}),h=ot(m)?null:s.scale(m);return{x:f,y:h,value:m,payload:d}}var p=ot(m)?null:r.scale(m),v=bN({axis:s,ticks:i,bandSize:o,entry:d,index:u});return p==null||v==null?null:{x:p,y:v,value:m,payload:d}}).filter(Boolean)}function $a(e){var t=Rr(e,XT),r=Ir();return x.createElement(tb,{id:t.id,type:"line"},s=>x.createElement(x.Fragment,null,x.createElement(TT,{legendPayload:zJ(t)}),x.createElement(eb,{fn:BJ,args:t}),x.createElement(OT,{type:"line",id:s,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),x.createElement(QJ,pi({},t,{id:s}))))}$a.displayName="Line";var tQ=["children"],rQ=["dangerouslySetInnerHTML","ticks"],nQ=["id"];function ZT(e,t,r){return(t=sQ(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function sQ(e){var t=aQ(e,"string");return typeof t=="symbol"?t:t+""}function aQ(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var s=r.call(e,t);if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ag(){return Ag=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:s}=e,a=Tg(e,tQ);return a},[e]);return x.useEffect(()=>(t(gX(r)),()=>{t(yX(r))}),[r,t]),e.children}var oQ=e=>{var{xAxisId:t,className:r}=e,s=pe(Fy),a=Ir(),i="xAxis",l=pe(y=>Ul(y,i,t,a)),o=pe(y=>AA(y,i,t,a)),c=pe(y=>kA(y,t)),d=pe(y=>dW(y,t)),u=pe(y=>rA(y,t));if(c==null||d==null||u==null)return null;var{dangerouslySetInnerHTML:m,ticks:f}=e,h=Tg(e,rQ),{id:p}=u,v=Tg(u,nQ);return x.createElement(Ca,Ag({},h,v,{scale:l,x:d.x,y:d.y,width:c.width,height:c.height,className:Ie("recharts-".concat(i," ").concat(i),r),viewBox:s,ticks:o}))},cQ=e=>{var t,r,s,a,i;return x.createElement(lQ,{interval:(t=e.interval)!==null&&t!==void 0?t:"preserveEnd",id:e.xAxisId,scale:e.scale,type:e.type,padding:e.padding,allowDataOverflow:e.allowDataOverflow,domain:e.domain,dataKey:e.dataKey,allowDuplicatedCategory:e.allowDuplicatedCategory,allowDecimals:e.allowDecimals,tickCount:e.tickCount,includeHidden:(r=e.includeHidden)!==null&&r!==void 0?r:!1,reversed:e.reversed,ticks:e.ticks,height:e.height,orientation:e.orientation,mirror:e.mirror,hide:e.hide,unit:e.unit,name:e.name,angle:(s=e.angle)!==null&&s!==void 0?s:0,minTickGap:(a=e.minTickGap)!==null&&a!==void 0?a:5,tick:(i=e.tick)!==null&&i!==void 0?i:!0,tickFormatter:e.tickFormatter},x.createElement(oQ,e))};class kn extends x.Component{render(){return x.createElement(cQ,this.props)}}ZT(kn,"displayName","XAxis");ZT(kn,"defaultProps",{allowDataOverflow:Fr.allowDataOverflow,allowDecimals:Fr.allowDecimals,allowDuplicatedCategory:Fr.allowDuplicatedCategory,height:Fr.height,hide:!1,mirror:Fr.mirror,orientation:Fr.orientation,padding:Fr.padding,reversed:Fr.reversed,scale:Fr.scale,tickCount:Fr.tickCount,type:Fr.type,xAxisId:0});var dQ=e=>{var{ticks:t,label:r,labelGapWithTick:s=5,tickSize:a=0,tickMargin:i=0}=e,l=0;if(t){t.forEach(u=>{if(u){var m=u.getBoundingClientRect();m.width>l&&(l=m.width)}});var o=r?r.getBoundingClientRect().width:0,c=a+i,d=l+c+o+(r?s:0);return Math.round(d)}return 0},uQ=["dangerouslySetInnerHTML","ticks"],mQ=["id"];function JT(e,t,r){return(t=fQ(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function fQ(e){var t=hQ(e,"string");return typeof t=="symbol"?t:t+""}function hQ(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var s=r.call(e,t);if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _g(){return _g=Object.assign?Object.assign.bind():function(e){for(var t=1;t(t(vX(e)),()=>{t(bX(e))}),[e,t]),null}var gQ=e=>{var t,{yAxisId:r,className:s,width:a,label:i}=e,l=x.useRef(null),o=x.useRef(null),c=pe(Fy),d=Ir(),u=bt(),m="yAxis",f=pe(N=>Ul(N,m,r,d)),h=pe(N=>CA(N,r)),p=pe(N=>uW(N,r)),v=pe(N=>AA(N,m,r,d)),y=pe(N=>nA(N,r));if(x.useLayoutEffect(()=>{var N;if(!(a!=="auto"||!h||Kv(i)||x.isValidElement(i)||y==null)){var A=l.current,_=A==null||(N=A.tickRefs)===null||N===void 0?void 0:N.current,{tickSize:I,tickMargin:B}=A.props,z=dQ({ticks:_,label:o.current,labelGapWithTick:5,tickSize:I,tickMargin:B});Math.round(h.width)!==Math.round(z)&&u(jX({id:r,width:z}))}},[l,l==null||(t=l.current)===null||t===void 0||(t=t.tickRefs)===null||t===void 0?void 0:t.current,h==null?void 0:h.width,h,u,i,r,a]),h==null||p==null||y==null)return null;var{dangerouslySetInnerHTML:g,ticks:b}=e,j=b2(e,uQ),{id:w}=y,C=b2(y,mQ);return x.createElement(Ca,_g({},j,C,{ref:l,labelRef:o,scale:f,x:p.x,y:p.y,tickTextProps:a==="auto"?{width:void 0}:{width:a},width:h.width,height:h.height,className:Ie("recharts-".concat(m," ").concat(m),s),viewBox:c,ticks:v}))},yQ=e=>{var t,r,s,a,i;return x.createElement(x.Fragment,null,x.createElement(pQ,{interval:(t=e.interval)!==null&&t!==void 0?t:"preserveEnd",id:e.yAxisId,scale:e.scale,type:e.type,domain:e.domain,allowDataOverflow:e.allowDataOverflow,dataKey:e.dataKey,allowDuplicatedCategory:e.allowDuplicatedCategory,allowDecimals:e.allowDecimals,tickCount:e.tickCount,padding:e.padding,includeHidden:(r=e.includeHidden)!==null&&r!==void 0?r:!1,reversed:e.reversed,ticks:e.ticks,width:e.width,orientation:e.orientation,mirror:e.mirror,hide:e.hide,unit:e.unit,name:e.name,angle:(s=e.angle)!==null&&s!==void 0?s:0,minTickGap:(a=e.minTickGap)!==null&&a!==void 0?a:5,tick:(i=e.tick)!==null&&i!==void 0?i:!0,tickFormatter:e.tickFormatter}),x.createElement(gQ,e))},vQ={allowDataOverflow:zr.allowDataOverflow,allowDecimals:zr.allowDecimals,allowDuplicatedCategory:zr.allowDuplicatedCategory,hide:!1,mirror:zr.mirror,orientation:zr.orientation,padding:zr.padding,reversed:zr.reversed,scale:zr.scale,tickCount:zr.tickCount,type:zr.type,width:zr.width,yAxisId:0};class Cn extends x.Component{render(){return x.createElement(yQ,this.props)}}JT(Cn,"displayName","YAxis");JT(Cn,"defaultProps",vQ);var bQ={};/** * @license React * use-sync-external-store-with-selector.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var Xc=x;function jQ(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var wQ=typeof Object.is=="function"?Object.is:jQ,NQ=Xc.useSyncExternalStore,SQ=Xc.useRef,kQ=Xc.useEffect,CQ=Xc.useMemo,EQ=Xc.useDebugValue;bQ.useSyncExternalStoreWithSelector=function(e,t,r,s,a){var i=SQ(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=CQ(function(){function c(h){if(!d){if(d=!0,u=h,h=s(h),a!==void 0&&l.hasValue){var p=l.value;if(a(p,h))return m=p}return m=h}if(p=m,wQ(u,h))return p;var v=s(h);return a!==void 0&&a(p,v)?(u=h,p):(u=h,m=v)}var d=!1,u,m,f=r===void 0?null:r;return[function(){return c(t())},f===null?void 0:function(){return c(f())}]},[t,r,s,a]);var o=NQ(e,i[0],i[1]);return kQ(function(){l.hasValue=!0,l.value=o},[o]),EQ(o),o};function PQ(e){e()}function AQ(){let e=null,t=null;return{clear(){e=null,t=null},notify(){PQ(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let s=e;for(;s;)r.push(s),s=s.next;return r},subscribe(r){let s=!0;const a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!s||e===null||(s=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var j2={notify(){},get:()=>[]};function TQ(e,t){let r,s=j2,a=0,i=!1;function l(v){u();const y=s.subscribe(v);let g=!1;return()=>{g||(g=!0,y(),m())}}function o(){s.notify()}function c(){p.onStateChange&&p.onStateChange()}function d(){return i}function u(){a++,r||(r=e.subscribe(c),s=AQ())}function m(){a--,r&&a===0&&(r(),r=void 0,s.clear(),s=j2)}function f(){i||(i=!0,u())}function h(){i&&(i=!1,m())}const p={addNestedSub:l,notifyNestedSubs:o,handleChangeWrapper:c,isSubscribed:d,trySubscribe:f,tryUnsubscribe:h,getListeners:()=>s};return p}var _Q=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",OQ=_Q(),MQ=()=>typeof navigator<"u"&&navigator.product==="ReactNative",DQ=MQ(),$Q=()=>OQ||DQ?x.useLayoutEffect:x.useEffect,LQ=$Q(),bx=Symbol.for("react-redux-context"),jx=typeof globalThis<"u"?globalThis:{};function IQ(){if(!x.createContext)return{};const e=jx[bx]??(jx[bx]=new Map);let t=e.get(x.createContext);return t||(t=x.createContext(null),e.set(x.createContext,t)),t}var RQ=IQ();function FQ(e){const{children:t,context:r,serverState:s,store:a}=e,i=x.useMemo(()=>{const c=TQ(a);return{store:a,subscription:c,getServerState:s?()=>s:void 0}},[a,s]),l=x.useMemo(()=>a.getState(),[a]);LQ(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),l!==a.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,l]);const o=r||RQ;return x.createElement(o.Provider,{value:i},t)}var zQ=FQ,BQ=(e,t)=>t,db=Q([BQ,Me,QP,It,VA,Ms,pq,$t],jq),ub=e=>{var t=e.currentTarget.getBoundingClientRect(),r=t.width/e.currentTarget.offsetWidth,s=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/r),chartY:Math.round((e.clientY-t.top)/s)}},QT=vn("mouseClick"),e6=Dc();e6.startListening({actionCreator:QT,effect:(e,t)=>{var r=e.payload,s=db(t.getState(),ub(r));(s==null?void 0:s.activeIndex)!=null&&t.dispatch(SW({activeIndex:s.activeIndex,activeDataKey:void 0,activeCoordinate:s.activeCoordinate}))}});var Og=vn("mouseMove"),t6=Dc();t6.startListening({actionCreator:Og,effect:(e,t)=>{var r=e.payload,s=t.getState(),a=$v(s,s.tooltip.settings.shared),i=db(s,ub(r));a==="axis"&&((i==null?void 0:i.activeIndex)!=null?t.dispatch(IA({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate})):t.dispatch(LA()))}});function UQ(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":t}var w2={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index"},r6=rn({name:"rootProps",initialState:w2,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:w2.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className}}}),HQ=r6.reducer,{updateOptions:VQ}=r6.actions,n6=rn({name:"polarOptions",initialState:null,reducers:{updatePolarOptions:(e,t)=>t.payload}}),{updatePolarOptions:KQ}=n6.actions,WQ=n6.reducer,s6=vn("keyDown"),a6=vn("focus"),mb=Dc();mb.startListening({actionCreator:s6,effect:(e,t)=>{var r=t.getState(),s=r.rootProps.accessibilityLayer!==!1;if(s){var{keyboardInteraction:a}=r.tooltip,i=e.payload;if(!(i!=="ArrowRight"&&i!=="ArrowLeft"&&i!=="Enter")){var l=Number(Lv(a,Vl(r))),o=Ms(r);if(i==="Enter"){var c=km(r,"axis","hover",String(a.index));t.dispatch(Ng({active:!a.active,activeIndex:a.index,activeDataKey:a.dataKey,activeCoordinate:c}));return}var d=xW(r),u=d==="left-to-right"?1:-1,m=i==="ArrowRight"?1:-1,f=l+m*u;if(!(o==null||f>=o.length||f<0)){var h=km(r,"axis","hover",String(f));t.dispatch(Ng({active:!0,activeIndex:f.toString(),activeDataKey:void 0,activeCoordinate:h}))}}}}});mb.startListening({actionCreator:a6,effect:(e,t)=>{var r=t.getState(),s=r.rootProps.accessibilityLayer!==!1;if(s){var{keyboardInteraction:a}=r.tooltip;if(!a.active&&a.index==null){var i="0",l=km(r,"axis","hover",String(i));t.dispatch(Ng({activeDataKey:void 0,active:!0,activeIndex:i,activeCoordinate:l}))}}}});var ln=vn("externalEvent"),i6=Dc();i6.startListening({actionCreator:ln,effect:(e,t)=>{if(e.payload.handler!=null){var r=t.getState(),s={activeCoordinate:iq(r),activeDataKey:GA(r),activeIndex:fa(r),activeLabel:qA(r),activeTooltipIndex:fa(r),isTooltipActive:lq(r)};e.payload.handler(s,e.payload.reactEvent)}}});var qQ=Q([Hl],e=>e.tooltipItemPayloads),GQ=Q([qQ,Wc,(e,t,r)=>t,(e,t,r)=>r],(e,t,r,s)=>{var a=e.find(o=>o.settings.dataKey===s);if(a!=null){var{positions:i}=a;if(i!=null){var l=t(i,r);return l}}}),l6=vn("touchMove"),o6=Dc();o6.startListening({actionCreator:l6,effect:(e,t)=>{var r=e.payload,s=t.getState(),a=$v(s,s.tooltip.settings.shared);if(a==="axis"){var i=db(s,ub({clientX:r.touches[0].clientX,clientY:r.touches[0].clientY,currentTarget:r.currentTarget}));(i==null?void 0:i.activeIndex)!=null&&t.dispatch(IA({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(a==="item"){var l,o=r.touches[0],c=document.elementFromPoint(o.clientX,o.clientY);if(!c||!c.getAttribute)return;var d=c.getAttribute(D3),u=(l=c.getAttribute($3))!==null&&l!==void 0?l:void 0,m=GQ(t.getState(),d,u);t.dispatch($A({activeDataKey:u,activeIndex:d,activeCoordinate:m}))}}});var YQ=i3({brush:UZ,cartesianAxis:wX,chartData:Lq,errorBars:UX,graphicalItems:BY,layout:aB,legend:qB,options:_q,polarAxis:iY,polarOptions:WQ,referenceElements:YZ,rootProps:HQ,tooltip:kW}),XQ=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return Tz({reducer:YQ,preloadedState:t,middleware:s=>s({serializableCheck:!1}).concat([e6.middleware,t6.middleware,mb.middleware,i6.middleware,o6.middleware]),devTools:!!window.RECHARTS_DEV_TOOLS_ENABLED&&{serialize:{replacer:UQ},name:"recharts-".concat(r)}})};function c6(e){var{preloadedState:t,children:r,reduxStoreName:s}=e,a=Ir(),i=x.useRef(null);if(a)return r;i.current==null&&(i.current=XQ(t,s));var l=_y;return x.createElement(zQ,{context:l,store:i.current},r)}function d6(e){var{layout:t,width:r,height:s,margin:a}=e,i=bt(),l=Ir();return x.useEffect(()=>{l||(i(rB(t)),i(nB({width:r,height:s})),i(tB(a)))},[i,l,t,r,s,a]),null}function u6(e){var t=bt();return x.useEffect(()=>{t(VQ(e))},[t,e]),null}var ZQ=["children"];function JQ(e,t){if(e==null)return{};var r,s,a=QQ(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s{var r=I3(),s=R3(),a=U3();if(!bl(r)||!bl(s))return null;var{children:i,otherAttributes:l,title:o,desc:c}=e,d,u;return typeof l.tabIndex=="number"?d=l.tabIndex:d=a?0:void 0,typeof l.role=="string"?u=l.role:u=a?"application":void 0,x.createElement(gE,Mm({},l,{title:o,desc:c,role:u,tabIndex:d,width:r,height:s,style:eee,ref:t}),i)}),ree=e=>{var{children:t}=e,r=pe(Uf);if(!r)return null;var{width:s,height:a,y:i,x:l}=r;return x.createElement(gE,{width:s,height:a,x:l,y:i},t)},N2=x.forwardRef((e,t)=>{var{children:r}=e,s=JQ(e,ZQ),a=Ir();return a?x.createElement(ree,null,r):x.createElement(tee,Mm({ref:t},s),r)});function nee(){var e=bt(),[t,r]=x.useState(null),s=pe(DB);return x.useEffect(()=>{if(t!=null){var a=t.getBoundingClientRect(),i=a.width/t.offsetWidth;Qr(i)&&i!==s&&e(sB(i))}},[t,e,s]),r}function S2(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,s)}return r}function see(e){for(var t=1;t{var{children:r,className:s,height:a,onClick:i,onContextMenu:l,onDoubleClick:o,onMouseDown:c,onMouseEnter:d,onMouseLeave:u,onMouseMove:m,onMouseUp:f,onTouchEnd:h,onTouchMove:p,onTouchStart:v,style:y,width:g}=e,b=bt(),[j,w]=x.useState(null),[C,N]=x.useState(null);Kq();var A=nee(),_=x.useCallback(W=>{A(W),typeof t=="function"&&t(W),w(W),N(W)},[A,t,w,N]),I=x.useCallback(W=>{b(QT(W)),b(ln({handler:i,reactEvent:W}))},[b,i]),B=x.useCallback(W=>{b(Og(W)),b(ln({handler:d,reactEvent:W}))},[b,d]),z=x.useCallback(W=>{b(LA()),b(ln({handler:u,reactEvent:W}))},[b,u]),T=x.useCallback(W=>{b(Og(W)),b(ln({handler:m,reactEvent:W}))},[b,m]),D=x.useCallback(()=>{b(a6())},[b]),E=x.useCallback(W=>{b(s6(W.key))},[b]),S=x.useCallback(W=>{b(ln({handler:l,reactEvent:W}))},[b,l]),k=x.useCallback(W=>{b(ln({handler:o,reactEvent:W}))},[b,o]),P=x.useCallback(W=>{b(ln({handler:c,reactEvent:W}))},[b,c]),O=x.useCallback(W=>{b(ln({handler:f,reactEvent:W}))},[b,f]),$=x.useCallback(W=>{b(ln({handler:v,reactEvent:W}))},[b,v]),H=x.useCallback(W=>{b(l6(W)),b(ln({handler:p,reactEvent:W}))},[b,p]),L=x.useCallback(W=>{b(ln({handler:h,reactEvent:W}))},[b,h]);return x.createElement(eT.Provider,{value:j},x.createElement(QF.Provider,{value:C},x.createElement("div",{className:Ie("recharts-wrapper",s),style:see({position:"relative",cursor:"default",width:g,height:a},y),onClick:I,onContextMenu:S,onDoubleClick:k,onFocus:D,onKeyDown:E,onMouseDown:P,onMouseEnter:B,onMouseLeave:z,onMouseMove:T,onMouseUp:O,onTouchEnd:L,onTouchMove:H,onTouchStart:$,ref:_},r)))}),cee=["children","className","width","height","style","compact","title","desc"];function dee(e,t){if(e==null)return{};var r,s,a=uee(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s{var{children:r,className:s,width:a,height:i,style:l,compact:o,title:c,desc:d}=e,u=dee(e,cee),m=As(u);return o?x.createElement(N2,{otherAttributes:m,title:c,desc:d},r):x.createElement(oee,{className:s,style:l,width:a,height:i,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},x.createElement(N2,{otherAttributes:m,title:c,desc:d,ref:t},x.createElement(ZZ,null,r)))}),mee=["width","height"];function Mg(){return Mg=Object.assign?Object.assign.bind():function(e){for(var t=1;tx.createElement(f6,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:gee,tooltipPayloadSearcher:Vv,categoricalChartProps:e,ref:t})),yee=["axis","item"],Dg=x.forwardRef((e,t)=>x.createElement(f6,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:yee,tooltipPayloadSearcher:Vv,categoricalChartProps:e,ref:t}));function vee(e){var t=bt();return x.useEffect(()=>{t(KQ(e))},[t,e]),null}var bee=["width","height","layout"];function $g(){return $g=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=Rr(e,Eee);return x.createElement(kee,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:Cee,tooltipPayloadSearcher:Vv,categoricalChartProps:r,ref:t})});const k2=["#3B82F6","#10B981","#F59E0B","#EF4444","#8B5CF6","#06B6D4","#84CC16","#F97316"],Aee=()=>{const[e,t]=x.useState(null),[r,s]=x.useState(!0),[a,i]=x.useState(null),[l,o]=x.useState("bar"),c=async()=>{try{s(!0),i(null);const m=await(await fetch("/api/notion/projects/cached")).json();if(m.success&&m.data){const f=m.data,h={};f.forEach(C=>{h[C.geo]=(h[C.geo]||0)+1});const p=Object.entries(h).map(([C,N])=>({geo:C.toUpperCase(),count:N})).sort((C,N)=>N.count-C.count),v={};f.forEach(C=>{v[C.brand]=(v[C.brand]||0)+1});const y=Object.entries(v).map(([C,N])=>({brand:C.charAt(0).toUpperCase()+C.slice(1),count:N})).sort((C,N)=>N.count-C.count),g={};f.forEach(C=>{g[C.status]=(g[C.status]||0)+1});const b=Object.entries(g).map(([C,N])=>({status:C.charAt(0).toUpperCase()+C.slice(1),count:N})).sort((C,N)=>N.count-C.count),j={};f.forEach(C=>{const N=C.responsiblePerson||"Не назначен";j[N]=(j[N]||0)+1});const w=Object.entries(j).map(([C,N])=>({responsible:C,count:N})).sort((C,N)=>N.count-C.count);t({geoStats:p,brandStats:y,statusStats:b,responsibleStats:w,totalProjects:f.length,lastSync:new Date().toLocaleString("ru-RU")})}else i("Ошибка загрузки данных из Notion")}catch(u){i("Ошибка подключения к серверу"),console.error("Error fetching analytics data:",u)}finally{s(!1)}};x.useEffect(()=>{c()},[]);const d=({data:u,dataKey:m,nameKey:f,title:h,icon:p})=>n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsxs("div",{className:"flex items-center justify-between mb-6",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx(p,{className:"h-6 w-6 text-primary-600"}),n.jsx("h3",{className:"text-lg font-semibold text-gray-900",children:h})]}),n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>o("bar"),className:`p-2 rounded-md ${l==="bar"?"bg-primary-100 text-primary-600":"text-gray-400 hover:text-gray-600"}`,children:n.jsx(Xe,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>o("pie"),className:`p-2 rounded-md ${l==="pie"?"bg-primary-100 text-primary-600":"text-gray-400 hover:text-gray-600"}`,children:n.jsx(SM,{className:"h-4 w-4"})})]})]}),n.jsx("div",{className:"h-80",children:n.jsx(rs,{width:"100%",height:"100%",children:l==="bar"?n.jsxs(Dg,{data:u,children:[n.jsx(La,{strokeDasharray:"3 3"}),n.jsx(kn,{dataKey:f,tick:{fontSize:12},angle:-45,textAnchor:"end",height:80}),n.jsx(Cn,{tick:{fontSize:12}}),n.jsx(Vn,{formatter:v=>[v,"Количество"],labelFormatter:v=>`${f}: ${v}`}),n.jsx(Tm,{dataKey:m,fill:"#3B82F6",radius:[4,4,0,0]})]}):n.jsxs(Pee,{children:[n.jsx(MT,{data:u,cx:"50%",cy:"50%",labelLine:!1,label:({name:v,percent:y})=>`${v} ${(y*100).toFixed(0)}%`,outerRadius:80,fill:"#8884d8",dataKey:m,children:u.map((v,y)=>n.jsx(Gc,{fill:k2[y%k2.length]},`cell-${y}`))}),n.jsx(Vn,{})]})})})]});return r?n.jsxs("div",{className:"flex items-center justify-center h-64",children:[n.jsx(Te,{className:"h-8 w-8 animate-spin text-primary-600"}),n.jsx("span",{className:"ml-2 text-gray-600",children:"Загрузка аналитики..."})]}):a?n.jsxs("div",{className:"text-center py-12",children:[n.jsx(bs,{className:"h-12 w-12 text-red-500 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Ошибка загрузки аналитики"}),n.jsx("p",{className:"text-gray-600 mb-4",children:a}),n.jsx("button",{onClick:c,className:"bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700",children:"Попробовать снова"})]}):e?n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx(Je,{className:"h-8 w-8 text-primary-600"}),n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Аналитика Notion"}),n.jsx("p",{className:"text-gray-600",children:"Статистика по проектам из Notion"})]})]}),n.jsxs("button",{onClick:c,className:"flex items-center space-x-2 bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700",children:[n.jsx(Te,{className:"h-4 w-4"}),n.jsx("span",{children:"Обновить"})]})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx("div",{className:"bg-blue-50 rounded-lg p-4",children:n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx(vt,{className:"h-8 w-8 text-blue-600"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-blue-600 font-medium",children:"Всего проектов"}),n.jsx("p",{className:"text-2xl font-bold text-blue-900",children:e.totalProjects})]})]})}),n.jsx("div",{className:"bg-green-50 rounded-lg p-4",children:n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx(wp,{className:"h-8 w-8 text-green-600"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-green-600 font-medium",children:"Уникальных GEO"}),n.jsx("p",{className:"text-2xl font-bold text-green-900",children:e.geoStats.length})]})]})}),n.jsx("div",{className:"bg-purple-50 rounded-lg p-4",children:n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx(Do,{className:"h-8 w-8 text-purple-600"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-purple-600 font-medium",children:"Уникальных брендов"}),n.jsx("p",{className:"text-2xl font-bold text-purple-900",children:e.brandStats.length})]})]})})]}),n.jsxs("div",{className:"mt-4 text-sm text-gray-500",children:["Последнее обновление: ",e.lastSync]})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsx(d,{data:e.geoStats,dataKey:"count",nameKey:"geo",title:"Распределение по GEO",icon:vt}),n.jsx(d,{data:e.brandStats,dataKey:"count",nameKey:"brand",title:"Распределение по брендам",icon:wp})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsx(d,{data:e.statusStats,dataKey:"count",nameKey:"status",title:"Распределение по статусам",icon:Do}),n.jsx(d,{data:e.responsibleStats,dataKey:"count",nameKey:"responsible",title:"Распределение по ответственным",icon:yn})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Детальная статистика"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-6",children:[n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-3",children:"Топ GEO"}),n.jsx("div",{className:"space-y-2",children:e.geoStats.slice(0,5).map((u,m)=>n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:u.geo}),n.jsx("span",{className:"text-sm font-medium text-gray-900",children:u.count})]},u.geo))})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-3",children:"Топ бренды"}),n.jsx("div",{className:"space-y-2",children:e.brandStats.slice(0,5).map((u,m)=>n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:u.brand}),n.jsx("span",{className:"text-sm font-medium text-gray-900",children:u.count})]},u.brand))})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-3",children:"Статусы"}),n.jsx("div",{className:"space-y-2",children:e.statusStats.map((u,m)=>n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:u.status}),n.jsx("span",{className:"text-sm font-medium text-gray-900",children:u.count})]},u.status))})]}),n.jsxs("div",{children:[n.jsx("h4",{className:"font-medium text-gray-900 mb-3",children:"Ответственные"}),n.jsx("div",{className:"space-y-2",children:e.responsibleStats.slice(0,5).map((u,m)=>n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-gray-600",children:u.responsible}),n.jsx("span",{className:"text-sm font-medium text-gray-900",children:u.count})]},u.responsible))})]})]})]})]}):n.jsxs("div",{className:"text-center py-12",children:[n.jsx(Do,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Нет данных для аналитики"}),n.jsx("p",{className:"text-gray-600",children:"Данные из Notion не найдены"})]})},Tee=()=>{const{checkTokenValidity:e}=Nc(),[t,r]=x.useState([]),[s,a]=x.useState(!0),[i,l]=x.useState(null),[o,c]=x.useState(!1),[d,u]=x.useState(null),[m,f]=x.useState(new Set),[h,p]=x.useState(null),[v,y]=x.useState({name:"",description:"",notionToken:"",databaseId:"",isActive:!0,isDefault:!1}),[g,b]=x.useState([]),j=async()=>{try{if(a(!0),!await e()){l("Сессия истекла. Пожалуйста, войдите в систему заново.");return}const k=await fetch("/api/notion-configs",{headers:{Authorization:`Bearer ${localStorage.getItem("auth_token")}`}});if(!k.ok)throw new Error("Ошибка загрузки конфигураций");const P=await k.json();r(P.data);const O=P.data.find($=>$.isDefault);p(O||null)}catch(S){l(S instanceof Error?S.message:"Ошибка загрузки данных")}finally{a(!1)}};x.useEffect(()=>{j()},[]);const w=async S=>{S.preventDefault();try{if(!(await fetch("/api/notion-configs",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("auth_token")}`},body:JSON.stringify({...v,databases:g.length>0?g:void 0})})).ok)throw new Error("Ошибка создания конфигурации");await j(),c(!1),I()}catch(k){l(k instanceof Error?k.message:"Ошибка создания конфигурации")}},C=async S=>{if(S.preventDefault(),!!d)try{if(!(await fetch(`/api/notion-configs/${d.id}`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("auth_token")}`},body:JSON.stringify({...v,databases:g.length>0?g:void 0})})).ok)throw new Error("Ошибка обновления конфигурации");await j(),u(null),I()}catch(k){l(k instanceof Error?k.message:"Ошибка обновления конфигурации")}},N=async S=>{if(confirm("Вы уверены, что хотите удалить эту конфигурацию?"))try{if(!(await fetch(`/api/notion-configs/${S}`,{method:"DELETE",headers:{Authorization:`Bearer ${localStorage.getItem("auth_token")}`}})).ok)throw new Error("Ошибка удаления конфигурации");await j()}catch(k){l(k instanceof Error?k.message:"Ошибка удаления конфигурации")}},A=async S=>{try{if(!(await fetch(`/api/notion-configs/${S}/set-default`,{method:"POST",headers:{Authorization:`Bearer ${localStorage.getItem("auth_token")}`}})).ok)throw new Error("Ошибка установки конфигурации по умолчанию");await j(),alert("Активная конфигурация Notion изменена! Данные будут обновлены при следующей синхронизации.")}catch(k){l(k instanceof Error?k.message:"Ошибка установки конфигурации по умолчанию")}},_=async S=>{try{if(!(await fetch("/api/notion-configs/test-connection",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("auth_token")}`},body:JSON.stringify({notionToken:S.notionToken,databaseId:S.databaseId})})).ok)throw new Error("Ошибка тестирования подключения");alert("Подключение к Notion успешно!")}catch(k){alert(k instanceof Error?k.message:"Ошибка тестирования подключения")}},I=()=>{y({name:"",description:"",notionToken:"",databaseId:"",isActive:!0,isDefault:!1}),b([])},B=()=>{b([...g,{databaseId:"",databaseName:"",databaseDescription:"",isActive:!0,sortOrder:g.length}])},z=S=>{b(g.filter((k,P)=>P!==S))},T=(S,k,P)=>{const O=[...g];O[S]={...O[S],[k]:P},b(O)},D=S=>{u(S),y({name:S.name,description:S.description||"",notionToken:S.notionToken,databaseId:S.databaseId,isActive:S.isActive,isDefault:S.isDefault}),S.databases?b(S.databases.map(k=>({databaseId:k.databaseId,databaseName:k.databaseName||"",databaseDescription:k.databaseDescription||"",isActive:k.isActive,sortOrder:k.sortOrder}))):b([])},E=S=>{f(k=>{const P=new Set(k);return P.has(S)?P.delete(S):P.add(S),P})};return s?n.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:n.jsxs("div",{className:"text-center",children:[n.jsx(Te,{className:"h-8 w-8 animate-spin text-indigo-600 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-600",children:"Загрузка конфигураций..."})]})}):n.jsxs("div",{className:"min-h-screen bg-gray-50",children:[n.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[n.jsx("div",{className:"mb-8",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Конфигурации Notion"}),n.jsx("p",{className:"mt-2 text-gray-600",children:"Управление подключениями к различным аккаунтам и таблицам Notion"}),h&&n.jsxs("div",{className:"mt-3 inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-green-100 text-green-800",children:[n.jsx(Mr,{className:"h-4 w-4 mr-2"}),"Активная: ",h.name]})]}),n.jsxs("button",{onClick:()=>c(!0),className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",children:[n.jsx(jr,{className:"h-5 w-5 mr-2"}),"Добавить конфигурацию"]})]})}),i&&n.jsxs("div",{className:"mb-6 bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative",children:[n.jsx("span",{className:"block sm:inline",children:i}),n.jsx("button",{onClick:()=>l(null),className:"absolute top-0 right-0 px-4 py-3",children:n.jsx(Sp,{className:"h-5 w-5"})})]}),n.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:t.map(S=>n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsxs("div",{className:"flex items-start justify-between mb-4",children:[n.jsxs("div",{className:"flex items-center",children:[n.jsx(br,{className:"h-8 w-8 text-indigo-600 mr-3"}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900",children:S.name}),S.isDefault&&n.jsxs("div",{className:"flex items-center mt-1",children:[n.jsx($j,{className:"h-4 w-4 text-yellow-500 mr-1"}),n.jsx("span",{className:"text-sm text-yellow-600",children:"По умолчанию"})]})]})]}),n.jsx("div",{className:"flex items-center space-x-2",children:S.isActive?n.jsx(Mr,{className:"h-5 w-5 text-green-500"}):n.jsx(Sp,{className:"h-5 w-5 text-red-500"})})]}),S.description&&n.jsx("p",{className:"text-gray-600 text-sm mb-4",children:S.description}),n.jsxs("div",{className:"space-y-2 mb-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Database ID"}),n.jsx("p",{className:"text-sm text-gray-900 font-mono",children:S.databaseId})]}),n.jsxs("div",{children:[n.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Token"}),n.jsxs("div",{className:"flex items-center",children:[n.jsx("p",{className:"text-sm text-gray-900 font-mono flex-1",children:m.has(S.id)?S.notionToken:"••••••••••••••••••••••••••••••••"}),n.jsx("button",{onClick:()=>E(S.id),className:"ml-2 text-gray-400 hover:text-gray-600",children:m.has(S.id)?n.jsx(I0,{className:"h-4 w-4"}):n.jsx(Ht,{className:"h-4 w-4"})})]})]})]}),n.jsxs("div",{className:"flex items-center justify-between pt-4 border-t border-gray-200",children:[n.jsxs("div",{className:"flex space-x-2",children:[n.jsxs("button",{onClick:()=>_(S),className:"inline-flex items-center px-3 py-1 border border-gray-300 text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50",children:[n.jsx(PM,{className:"h-3 w-3 mr-1"}),"Тест"]}),!S.isDefault&&n.jsxs("button",{onClick:()=>A(S.id),className:"inline-flex items-center px-3 py-1 border border-gray-300 text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50",children:[n.jsx($j,{className:"h-3 w-3 mr-1"}),"По умолчанию"]})]}),n.jsxs("div",{className:"flex space-x-2",children:[n.jsx("button",{onClick:()=>D(S),className:"text-indigo-600 hover:text-indigo-900",children:n.jsx(tC,{className:"h-4 w-4"})}),n.jsx("button",{onClick:()=>N(S.id),className:"text-red-600 hover:text-red-900",children:n.jsx(Uu,{className:"h-4 w-4"})})]})]})]},S.id))}),t.length===0&&n.jsxs("div",{className:"text-center py-12",children:[n.jsx(br,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Нет конфигураций"}),n.jsx("p",{className:"text-gray-600 mb-6",children:"Добавьте первую конфигурацию Notion для начала работы"}),n.jsxs("button",{onClick:()=>c(!0),className:"inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700",children:[n.jsx(jr,{className:"h-5 w-5 mr-2"}),"Добавить конфигурацию"]})]})]}),(o||d)&&n.jsx("div",{className:"fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full z-50",children:n.jsx("div",{className:"relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-md bg-white",children:n.jsxs("div",{className:"mt-3",children:[n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-4",children:d?"Редактировать конфигурацию":"Добавить конфигурацию"}),n.jsxs("form",{onSubmit:d?C:w,children:[n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Название"}),n.jsx("input",{type:"text",required:!0,className:"mt-1 block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",value:v.name,onChange:S=>y({...v,name:S.target.value})})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Описание"}),n.jsx("textarea",{className:"mt-1 block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",rows:3,value:v.description,onChange:S=>y({...v,description:S.target.value})})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Notion Token"}),n.jsx("input",{type:"text",required:!0,className:"mt-1 block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",value:v.notionToken,onChange:S=>y({...v,notionToken:S.target.value})})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Database ID (основная)"}),n.jsx("input",{type:"text",required:!0,className:"mt-1 block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",value:v.databaseId,onChange:S=>y({...v,databaseId:S.target.value})})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700",children:"Дополнительные базы данных"}),n.jsxs("div",{className:"mt-2 space-y-2",children:[g.map((S,k)=>n.jsxs("div",{className:"flex space-x-2 p-3 border border-gray-200 rounded-md",children:[n.jsx("div",{className:"flex-1",children:n.jsx("input",{type:"text",placeholder:"Database ID",className:"block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",value:S.databaseId,onChange:P=>T(k,"databaseId",P.target.value)})}),n.jsx("div",{className:"flex-1",children:n.jsx("input",{type:"text",placeholder:"Название",className:"block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",value:S.databaseName,onChange:P=>T(k,"databaseName",P.target.value)})}),n.jsx("div",{className:"flex-1",children:n.jsx("input",{type:"text",placeholder:"Описание",className:"block w-full border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm",value:S.databaseDescription,onChange:P=>T(k,"databaseDescription",P.target.value)})}),n.jsx("div",{className:"flex items-center",children:n.jsx("input",{type:"checkbox",className:"rounded border-gray-300 text-indigo-600 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50",checked:S.isActive,onChange:P=>T(k,"isActive",P.target.checked)})}),n.jsx("button",{type:"button",onClick:()=>z(k),className:"text-red-600 hover:text-red-800",children:n.jsx(Uu,{className:"h-4 w-4"})})]},k)),n.jsxs("button",{type:"button",onClick:B,className:"inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm leading-4 font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500",children:[n.jsx(jr,{className:"h-4 w-4 mr-1"}),"Добавить базу данных"]})]})]}),n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsxs("label",{className:"flex items-center",children:[n.jsx("input",{type:"checkbox",className:"rounded border-gray-300 text-indigo-600 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50",checked:v.isActive,onChange:S=>y({...v,isActive:S.target.checked})}),n.jsx("span",{className:"ml-2 text-sm text-gray-700",children:"Активна"})]}),n.jsxs("label",{className:"flex items-center",children:[n.jsx("input",{type:"checkbox",className:"rounded border-gray-300 text-indigo-600 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50",checked:v.isDefault,onChange:S=>y({...v,isDefault:S.target.checked})}),n.jsx("span",{className:"ml-2 text-sm text-gray-700",children:"По умолчанию"})]})]})]}),n.jsxs("div",{className:"flex justify-end space-x-3 mt-6",children:[n.jsx("button",{type:"button",onClick:()=>{c(!1),u(null),I()},className:"px-4 py-2 border border-gray-300 rounded-md text-sm font-medium text-gray-700 bg-white hover:bg-gray-50",children:"Отмена"}),n.jsx("button",{type:"submit",className:"px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700",children:d?"Сохранить":"Создать"})]})]})]})})})]})},_ee=()=>{const[e,t]=x.useState({unifiedDatabaseId:"",notionToken:"",isEnabled:!0}),[r,s]=x.useState({lastSync:null,isEnabled:!1}),[a,i]=x.useState(!1),[l,o]=x.useState(!1),[c,d]=x.useState(null);x.useEffect(()=>{u(),m()},[]);const u=async()=>{try{const v=await(await fetch("/api/notion-unified/config")).json();v.success&&v.data&&t(v.data)}catch(p){console.error("Error fetching unified config:",p)}},m=async()=>{try{const v=await(await fetch("/api/notion-unified/status")).json();v.success&&s(v.data)}catch(p){console.error("Error fetching sync status:",p)}},f=async p=>{p.preventDefault(),i(!0),d(null);try{const y=await(await fetch("/api/notion-unified/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json();y.success?(d({type:"success",text:"Конфигурация сохранена успешно!"}),await m()):d({type:"error",text:y.error||"Ошибка сохранения конфигурации"})}catch(v){d({type:"error",text:"Ошибка подключения к серверу"}),console.error("Error saving config:",v)}finally{i(!1)}},h=async()=>{o(!0),d(null);try{const v=await(await fetch("/api/notion-unified/sync",{method:"POST"})).json();v.success?(d({type:"success",text:`Синхронизация завершена! ${v.data.synced} записей синхронизировано, ${v.data.errors} ошибок`}),await m()):d({type:"error",text:v.error||"Ошибка синхронизации"})}catch(p){d({type:"error",text:"Ошибка подключения к серверу"}),console.error("Error syncing:",p)}finally{o(!1)}};return n.jsxs("div",{className:"space-y-6",children:[n.jsx("div",{className:"flex items-center justify-between",children:n.jsxs("div",{children:[n.jsxs("h1",{className:"text-2xl font-bold text-gray-900 flex items-center",children:[n.jsx(br,{className:"h-8 w-8 mr-3 text-primary-600"}),"Unified Notion Database"]}),n.jsx("p",{className:"text-gray-600 mt-1",children:"Объединенная база данных Notion - автоматическое объединение всех таблиц в одну"})]})}),n.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4",children:n.jsxs("div",{className:"flex items-start",children:[n.jsx(bs,{className:"h-5 w-5 text-blue-600 mt-0.5 mr-3"}),n.jsxs("div",{children:[n.jsx("h3",{className:"font-medium text-blue-900",children:"Как это работает?"}),n.jsxs("ul",{className:"mt-2 text-sm text-blue-800 space-y-1 list-disc list-inside",children:[n.jsx("li",{children:"Система объединяет данные из всех ваших Notion таблиц"}),n.jsx("li",{children:"Автоматически синхронизирует в одну центральную таблицу"}),n.jsx("li",{children:"Синхронизация происходит каждый день в 02:00"}),n.jsx("li",{children:"Поля: Brand, GEO, Status, TYPE, URL, Start Date, Created Time, Responsible"}),n.jsx("li",{children:"⚡ Оптимизированная батчевая запись - синхронизация за ~30-40 секунд"})]})]})]})}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Статус синхронизации"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsx("div",{className:"bg-gray-50 p-4 rounded-lg",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx($n,{className:"h-5 w-5 text-gray-600 mr-2"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-600",children:"Последняя синхронизация"}),n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:r.lastSync?new Date(r.lastSync).toLocaleString("ru-RU"):"Не выполнялась"})]})]})}),n.jsx("div",{className:"bg-gray-50 p-4 rounded-lg",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Mr,{className:`h-5 w-5 mr-2 ${r.isEnabled?"text-green-600":"text-gray-400"}`}),n.jsxs("div",{children:[n.jsx("p",{className:"text-sm text-gray-600",children:"Статус"}),n.jsx("p",{className:"text-lg font-semibold text-gray-900",children:r.isEnabled?"Активна":"Отключена"})]})]})})]}),n.jsx("div",{className:"mt-4",children:n.jsxs("button",{onClick:h,disabled:l||!e.unifiedDatabaseId,className:"bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700 disabled:bg-gray-300 disabled:cursor-not-allowed flex items-center",children:[n.jsx(rC,{className:`h-4 w-4 mr-2 ${l?"animate-spin":""}`}),l?"Синхронизация...":"Запустить синхронизацию"]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Настройки Unified Database"}),n.jsxs("form",{onSubmit:f,className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Database ID центральной таблицы Notion"}),n.jsx("input",{type:"text",value:e.unifiedDatabaseId,onChange:p=>t({...e,unifiedDatabaseId:p.target.value}),placeholder:"Например: 128fc55e9923801fa292c98b2d368684",className:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",required:!0}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"ID базы данных Notion, куда будут синхронизироваться все данные"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Notion API Token"}),n.jsx("input",{type:"password",value:e.notionToken,onChange:p=>t({...e,notionToken:p.target.value}),placeholder:"secret_...",className:"w-full border border-gray-300 rounded-md px-3 py-2 focus:outline-none focus:ring-2 focus:ring-primary-500",required:!0}),n.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Integration token с правами на запись в unified базу данных"})]}),n.jsxs("div",{className:"flex items-center",children:[n.jsx("input",{type:"checkbox",id:"isEnabled",checked:e.isEnabled,onChange:p=>t({...e,isEnabled:p.target.checked}),className:"h-4 w-4 text-primary-600 focus:ring-primary-500 border-gray-300 rounded"}),n.jsx("label",{htmlFor:"isEnabled",className:"ml-2 block text-sm text-gray-700",children:"Включить автоматическую синхронизацию (раз в день в 02:00)"})]}),n.jsx("div",{className:"flex items-center space-x-3",children:n.jsxs("button",{type:"submit",disabled:a,className:"bg-primary-600 text-white px-4 py-2 rounded-md hover:bg-primary-700 disabled:bg-gray-300 disabled:cursor-not-allowed flex items-center",children:[n.jsx(kM,{className:"h-4 w-4 mr-2"}),a?"Сохранение...":"Сохранить настройки"]})})]}),c&&n.jsx("div",{className:`mt-4 p-4 rounded-md ${c.type==="success"?"bg-green-50 border border-green-200":"bg-red-50 border border-red-200"}`,children:n.jsxs("div",{className:"flex items-center",children:[c.type==="success"?n.jsx(Mr,{className:"h-5 w-5 text-green-600 mr-2"}):n.jsx(bs,{className:"h-5 w-5 text-red-600 mr-2"}),n.jsx("p",{className:c.type==="success"?"text-green-800":"text-red-800",children:c.text})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Инструкция по настройке"}),n.jsxs("ol",{className:"list-decimal list-inside space-y-3 text-sm text-gray-700",children:[n.jsxs("li",{children:[n.jsx("strong",{children:"Создайте новую базу данных в Notion"}),n.jsx("p",{className:"ml-6 mt-1 text-gray-600",children:"Это будет ваша центральная объединенная таблица"})]}),n.jsxs("li",{children:[n.jsx("strong",{children:"Добавьте следующие поля:"}),n.jsxs("ul",{className:"ml-6 mt-1 space-y-1 text-gray-600",children:[n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"URL"})," (Title)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"Brand"})," (Text)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"GEO"})," (Text)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"Status"})," (Text)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"TYPE"})," (Text)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"START DATE"})," (Date)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"Created time"})," (Date)"]}),n.jsxs("li",{children:["• ",n.jsx("code",{className:"bg-gray-100 px-1 rounded",children:"Ответственный за сайт"})," (Text)"]})]})]}),n.jsxs("li",{children:[n.jsx("strong",{children:"Создайте Integration в Notion"}),n.jsx("p",{className:"ml-6 mt-1 text-gray-600",children:n.jsx("a",{href:"https://www.notion.so/my-integrations",target:"_blank",rel:"noopener noreferrer",className:"text-primary-600 hover:text-primary-800",children:"https://www.notion.so/my-integrations"})})]}),n.jsxs("li",{children:[n.jsx("strong",{children:"Подключите Integration к созданной базе данных"}),n.jsx("p",{className:"ml-6 mt-1 text-gray-600",children:"В настройках базы данных → Connections → Add your integration"})]}),n.jsxs("li",{children:[n.jsx("strong",{children:"Скопируйте Database ID"}),n.jsx("p",{className:"ml-6 mt-1 text-gray-600",children:"Из URL базы данных: notion.so/[Database ID]?v=..."})]}),n.jsx("li",{children:n.jsx("strong",{children:"Введите Database ID и Token выше и сохраните"})}),n.jsx("li",{children:n.jsx("strong",{children:"Запустите синхронизацию вручную для проверки"})})]})]})]})},Oee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState([]),[a,i]=x.useState([]),[l,o]=x.useState([]),[c,d]=x.useState(!0),[u,m]=x.useState(!1),[f,h]=x.useState(!1),[p,v]=x.useState("overview"),[y,g]=x.useState("day"),[b,j]=x.useState(null),[w,C]=x.useState(null),[N,A]=x.useState([]),[_,I]=x.useState([]),[B,z]=x.useState(""),[T,D]=x.useState("desc"),[E,S]=x.useState(()=>{const Z=new Date;return Z.setDate(Z.getDate()-30),Z.toISOString().split("T")[0]}),[k,P]=x.useState(()=>new Date().toISOString().split("T")[0]),[O,$]=x.useState(""),[H,L]=x.useState(""),[W,M]=x.useState({apiUrl:"",apiToken:"",isEnabled:!0}),[R,U]=x.useState(null);x.useEffect(()=>{F(),Y(),V(),q(),J()},[E,k,y,O,H,p]);const K=Z=>{const ne=new Date,je=3*60,Ge=ne.getTimezoneOffset(),xe=je+Ge,he=new Date(ne.getTime()+xe*6e4),we=new Date(he);we.setDate(we.getDate()-1);const Fe=new Date(he);Fe.setDate(he.getDate()-he.getDay()+1);const qt=new Date(Fe);qt.setDate(Fe.getDate()-7);const fr=new Date(qt);fr.setDate(qt.getDate()+6);const Gt=new Date(he.getFullYear(),he.getMonth(),1),He=new Date(he.getFullYear(),he.getMonth()-1,1),Re=new Date(he.getFullYear(),he.getMonth(),0);switch(console.log("Date calculations (Kiev timezone):"),console.log("Today:",he.toISOString().split("T")[0]),console.log("Last month start:",He.toISOString().split("T")[0]),console.log("Last month end:",Re.toISOString().split("T")[0]),Z){case"today":S(he.toISOString().split("T")[0]),P(he.toISOString().split("T")[0]);break;case"yesterday":S(we.toISOString().split("T")[0]),P(we.toISOString().split("T")[0]);break;case"thisWeek":S(Fe.toISOString().split("T")[0]),P(he.toISOString().split("T")[0]);break;case"lastWeek":S(qt.toISOString().split("T")[0]),P(fr.toISOString().split("T")[0]);break;case"thisMonth":S(Gt.toISOString().split("T")[0]),P(he.toISOString().split("T")[0]);break;case"lastMonth":S(He.toISOString().split("T")[0]),P(Re.toISOString().split("T")[0]);break}},F=async()=>{try{const ne=await(await fetch("/api/keitaro/config")).json();ne.success&&M(ne.data)}catch(Z){console.error("Error fetching config:",Z)}},Y=async()=>{try{d(!0);let Z=`/api/keitaro/stats?dateFrom=${E}&dateTo=${k}`;O&&(Z+=`&site=${encodeURIComponent(O)}`),H&&(Z+=`&geo=${encodeURIComponent(H)}`);const je=await(await fetch(Z)).json();je.success&&t(je.data)}catch(Z){console.error("Error fetching stats:",Z)}finally{d(!1)}},V=async()=>{try{const ne=await(await fetch(`/api/keitaro/stats-by-geo?dateFrom=${E}&dateTo=${k}`)).json();ne.success&&s(ne.data)}catch(Z){console.error("Error fetching geo stats:",Z)}},q=async()=>{try{const ne=await(await fetch(`/api/keitaro/stats-by-site?dateFrom=${E}&dateTo=${k}`)).json();ne.success&&i(ne.data)}catch(Z){console.error("Error fetching site stats:",Z)}},J=async()=>{try{let Z="";if(p==="sites"?Z=`/api/keitaro/stats-by-site-periods?dateFrom=${E}&dateTo=${k}&period=${y}`:p==="geo"?Z=`/api/keitaro/stats-by-geo-periods?dateFrom=${E}&dateTo=${k}&period=${y}`:p==="dates"&&(Z=`/api/keitaro/stats-by-days?dateFrom=${E}&dateTo=${k}`),console.log("fetchDateStats - activeTab:",p,"url:",Z,"dateFrom:",E,"dateTo:",k),Z){const je=await(await fetch(Z)).json();console.log("fetchDateStats response:",je),je.success&&o(je.data)}}catch(Z){console.error("Error fetching date stats:",Z)}},G=async Z=>{try{if(b===Z){j(null);return}const je=await(await fetch(`/api/keitaro/site-details?site=${encodeURIComponent(Z)}&dateFrom=${E}&dateTo=${k}`)).json();je.success&&(A(je.data),j(Z))}catch(ne){console.error("Error fetching site details:",ne)}},le=async Z=>{try{if(w===Z){C(null);return}const je=await(await fetch(`/api/keitaro/geo-details?geo=${encodeURIComponent(Z)}&dateFrom=${E}&dateTo=${k}`)).json();je.success&&(I(je.data),C(Z))}catch(ne){console.error("Error fetching geo details:",ne)}},ce=Z=>{B===Z?D(T==="asc"?"desc":"asc"):(z(Z),D("desc"))},oe=(Z,ne,je)=>[...Z].sort((Ge,xe)=>{let he=Ge[ne],we=xe[ne];return typeof he=="string"&&!isNaN(parseFloat(he))&&(he=parseFloat(he)),typeof we=="string"&&!isNaN(parseFloat(we))&&(we=parseFloat(we)),je==="asc"?he>we?1:-1:he{try{m(!0);const ne=await(await fetch("/api/keitaro/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dateFrom:E,dateTo:k})})).json();ne.success?(U({type:"success",text:ne.message}),Y(),V(),q(),J()):U({type:"error",text:ne.error})}catch(Z){console.error("Error syncing:",Z),U({type:"error",text:"Ошибка синхронизации"})}finally{m(!1)}},ie=async()=>{try{const ne=await(await fetch("/api/keitaro/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(W)})).json();ne.success?(U({type:"success",text:"Конфигурация сохранена"}),h(!1)):U({type:"error",text:ne.error})}catch(Z){console.error("Error saving config:",Z),U({type:"error",text:"Ошибка сохранения конфигурации"})}},de=e.reduce((Z,ne)=>({uniqueVisitors:Z.uniqueVisitors+ne.unique_visitors,registrations:Z.registrations+ne.registrations,deposits:Z.deposits+ne.deposits,revenue:Z.revenue+ne.revenue}),{uniqueVisitors:0,registrations:0,deposits:0,revenue:0}),Le=[{id:"overview",label:"Обзор",icon:Xe},{id:"sites",label:"По сайтам",icon:R0},{id:"geo",label:"По GEO",icon:bM},{id:"dates",label:"По датам",icon:$n}];return n.jsx("div",{className:"min-h-screen bg-gray-50",children:n.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[n.jsx("div",{className:"mb-8",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Keitaro Dashboard"}),n.jsx("p",{className:"text-gray-600 mt-2",children:"Аналитика и статистика Keitaro"})]}),n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsxs("button",{onClick:()=>h(!f),className:"flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50",children:[n.jsx(Dr,{className:"h-4 w-4 mr-2"}),"Настройки"]}),n.jsxs("button",{onClick:se,disabled:u,className:"flex items-center px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 disabled:opacity-50",children:[n.jsx(Te,{className:`h-4 w-4 mr-2 ${u?"animate-spin":""}`}),u?"Синхронизация...":"Синхронизировать"]})]})]})}),R&&n.jsx("div",{className:`mb-6 p-4 rounded-md ${R.type==="success"?"bg-green-50 text-green-800 border border-green-200":"bg-red-50 text-red-800 border border-red-200"}`,children:n.jsxs("div",{className:"flex items-center",children:[R.type==="success"?n.jsx(Mr,{className:"h-5 w-5 mr-2"}):n.jsx(bs,{className:"h-5 w-5 mr-2"}),R.text]})}),f&&n.jsxs("div",{className:"mb-8 bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Настройки Keitaro"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"API URL"}),n.jsx("input",{type:"text",value:W.apiUrl,onChange:Z=>M({...W,apiUrl:Z.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"https://your-keitaro.com"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"API Token"}),n.jsx("input",{type:"password",value:W.apiToken,onChange:Z=>M({...W,apiToken:Z.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"Your API token"})]})]}),n.jsxs("div",{className:"flex items-center mt-4",children:[n.jsx("input",{type:"checkbox",id:"enabled",checked:W.isEnabled,onChange:Z=>M({...W,isEnabled:Z.target.checked}),className:"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"}),n.jsx("label",{htmlFor:"enabled",className:"ml-2 block text-sm text-gray-700",children:"Включить интеграцию"})]}),n.jsx("div",{className:"flex justify-end mt-6",children:n.jsx("button",{onClick:ie,className:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700",children:"Сохранить"})})]}),n.jsxs("div",{className:"mb-8 bg-white rounded-lg shadow-md p-6",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4 mb-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Дата от"}),n.jsx("input",{type:"date",value:E,onChange:Z=>S(Z.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Дата до"}),n.jsx("input",{type:"date",value:k,onChange:Z=>P(Z.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Сайт"}),n.jsx("input",{type:"text",value:O,onChange:Z=>$(Z.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"Фильтр по сайту"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"GEO"}),n.jsx("input",{type:"text",value:H,onChange:Z=>L(Z.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"Фильтр по GEO"})]})]}),n.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[n.jsx("button",{onClick:()=>K("today"),className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",children:"Сегодня"}),n.jsx("button",{onClick:()=>K("yesterday"),className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",children:"Вчера"}),n.jsx("button",{onClick:()=>K("thisWeek"),className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",children:"Эта неделя"}),n.jsx("button",{onClick:()=>K("lastWeek"),className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",children:"Прошлая неделя"}),n.jsx("button",{onClick:()=>K("thisMonth"),className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",children:"Этот месяц"}),n.jsx("button",{onClick:()=>K("lastMonth"),className:"px-3 py-1 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",children:"Прошлый месяц"})]}),n.jsx("button",{onClick:()=>{Y(),V(),q(),J()},className:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700",children:"Обновить"})]}),n.jsx("div",{className:"mb-6",children:n.jsx("div",{className:"border-b border-gray-200",children:n.jsx("nav",{className:"-mb-px flex space-x-8",children:Le.map(Z=>{const ne=Z.icon;return n.jsxs("button",{onClick:()=>v(Z.id),className:`flex items-center py-2 px-1 border-b-2 font-medium text-sm ${p===Z.id?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"}`,children:[n.jsx(ne,{className:"h-4 w-4 mr-2"}),Z.label]},Z.id)})})})}),p==="dates"&&n.jsx("div",{className:"mb-6 bg-white rounded-lg shadow-md p-4",children:n.jsxs("div",{className:"flex items-center space-x-4",children:[n.jsx("span",{className:"text-sm font-medium text-gray-700",children:"Группировка:"}),n.jsx("div",{className:"flex space-x-2",children:[{value:"day",label:"По дням"},{value:"week",label:"По неделям"},{value:"month",label:"По месяцам"}].map(Z=>n.jsx("button",{onClick:()=>g(Z.value),className:`px-3 py-1 text-sm rounded-md ${y===Z.value?"bg-blue-100 text-blue-700":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:Z.label},Z.value))})]})}),p==="overview"&&n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-6",children:[n.jsx("div",{className:"bg-white rounded-lg shadow-md p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-blue-100 rounded-lg",children:n.jsx(yn,{className:"h-6 w-6 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Уникальные посетители"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:de.uniqueVisitors.toLocaleString()})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow-md p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-green-100 rounded-lg",children:n.jsx(Je,{className:"h-6 w-6 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Регистрации"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:de.registrations.toLocaleString()})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow-md p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-purple-100 rounded-lg",children:n.jsx(wM,{className:"h-6 w-6 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Депозиты"}),n.jsx("p",{className:"text-2xl font-semibold text-gray-900",children:de.deposits.toLocaleString()})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow-md p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-yellow-100 rounded-lg",children:n.jsx(rc,{className:"h-6 w-6 text-yellow-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Доход"}),n.jsxs("p",{className:"text-2xl font-semibold text-gray-900",children:["$",de.revenue.toLocaleString()]})]})]})})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Топ-10 GEO по депозитам"}),n.jsx(rs,{width:"100%",height:300,children:n.jsxs(Dg,{data:r.slice(0,10),children:[n.jsx(La,{strokeDasharray:"3 3"}),n.jsx(kn,{dataKey:"geo"}),n.jsx(Cn,{}),n.jsx(Vn,{}),n.jsx(Tm,{dataKey:"total_deposits",fill:"#8B5CF6"})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Топ-10 сайтов по депозитам"}),n.jsx(rs,{width:"100%",height:300,children:n.jsxs(Dg,{data:a.slice(0,10),children:[n.jsx(La,{strokeDasharray:"3 3"}),n.jsx(kn,{dataKey:"site",angle:-45,textAnchor:"end",height:100}),n.jsx(Cn,{}),n.jsx(Vn,{}),n.jsx(Tm,{dataKey:"total_deposits",fill:"#10B981"})]})})]})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Уники по дням"}),n.jsx(rs,{width:"100%",height:300,children:n.jsxs(Mi,{data:e.reduce((Z,ne)=>{const je=Z.find(Ge=>Ge.date===ne.stat_date);return je?je.unique_visitors+=ne.unique_visitors:Z.push({date:ne.stat_date,unique_visitors:ne.unique_visitors}),Z},[]).sort((Z,ne)=>new Date(Z.date).getTime()-new Date(ne.date).getTime()),children:[n.jsx(La,{strokeDasharray:"3 3"}),n.jsx(kn,{dataKey:"date"}),n.jsx(Cn,{}),n.jsx(Vn,{}),n.jsx($a,{type:"monotone",dataKey:"unique_visitors",stroke:"#3B82F6",strokeWidth:2})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Регистрации по дням"}),n.jsx(rs,{width:"100%",height:300,children:n.jsxs(Mi,{data:e.reduce((Z,ne)=>{const je=Z.find(Ge=>Ge.date===ne.stat_date);return je?je.registrations+=ne.registrations:Z.push({date:ne.stat_date,registrations:ne.registrations}),Z},[]).sort((Z,ne)=>new Date(Z.date).getTime()-new Date(ne.date).getTime()),children:[n.jsx(La,{strokeDasharray:"3 3"}),n.jsx(kn,{dataKey:"date"}),n.jsx(Cn,{}),n.jsx(Vn,{}),n.jsx($a,{type:"monotone",dataKey:"registrations",stroke:"#10B981",strokeWidth:2})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Депозиты по дням"}),n.jsx(rs,{width:"100%",height:300,children:n.jsxs(Mi,{data:e.reduce((Z,ne)=>{const je=Z.find(Ge=>Ge.date===ne.stat_date);return je?je.deposits+=ne.deposits:Z.push({date:ne.stat_date,deposits:ne.deposits}),Z},[]).sort((Z,ne)=>new Date(Z.date).getTime()-new Date(ne.date).getTime()),children:[n.jsx(La,{strokeDasharray:"3 3"}),n.jsx(kn,{dataKey:"date"}),n.jsx(Cn,{}),n.jsx(Vn,{}),n.jsx($a,{type:"monotone",dataKey:"deposits",stroke:"#8B5CF6",strokeWidth:2})]})})]})]})]}),p==="sites"&&n.jsxs("div",{className:"bg-white rounded-lg shadow-md overflow-hidden",children:[n.jsx("div",{className:"px-6 py-4 border-b border-gray-200",children:n.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:"Статистика по сайтам"})}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("site"),children:["Сайт ",B==="site"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("geos_count"),children:["GEO ",B==="geos_count"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("total_unique_visitors"),children:["Уники ",B==="total_unique_visitors"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("total_registrations"),children:["Регистрации ",B==="total_registrations"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("total_deposits"),children:["Депозиты ",B==="total_deposits"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("total_revenue"),children:["Доход ",B==="total_revenue"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("avg_cr_regs_to_deps"),children:["R2D (%) ",B==="avg_cr_regs_to_deps"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("avg_ucr_regs"),children:["U2R (%) ",B==="avg_ucr_regs"&&(T==="asc"?"↑":"↓")]}),n.jsxs("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer hover:bg-gray-100",onClick:()=>ce("avg_u2d"),children:["U2D (%) ",B==="avg_u2d"&&(T==="asc"?"↑":"↓")]})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:oe(a,B,T).map(Z=>n.jsxs(te.Fragment,{children:[n.jsxs("tr",{className:"hover:bg-gray-50 cursor-pointer",onClick:()=>G(Z.site),children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("span",{children:Z.site}),n.jsx("svg",{className:"ml-2 h-4 w-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Z.geos_count}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Z.total_unique_visitors.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Z.total_registrations.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-purple-600",children:Z.total_deposits.toLocaleString()}),n.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-green-600",children:["$",Z.total_revenue.toLocaleString()]}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.avg_cr_regs_to_deps))||0)>30?"bg-green-100 text-green-800":(parseFloat(String(Z.avg_cr_regs_to_deps))||0)>15?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.avg_cr_regs_to_deps))||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.avg_ucr_regs))||0)>10?"bg-green-100 text-green-800":(parseFloat(String(Z.avg_ucr_regs))||0)>5?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.avg_ucr_regs))||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.avg_u2d))||0)>5?"bg-green-100 text-green-800":(parseFloat(String(Z.avg_u2d))||0)>2?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.avg_u2d))||0).toFixed(1),"%"]})})]}),b===Z.site&&n.jsxs(n.Fragment,{children:[(()=>{const ne=new Date(E),je=new Date(k);return Math.ceil((je.getTime()-ne.getTime())/(1e3*60*60*24))>5?n.jsx("tr",{className:"bg-gray-50",children:n.jsx("td",{colSpan:9,className:"px-6 py-4",children:n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsxs("div",{className:"bg-white rounded-lg p-4",children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Уники по дням"}),n.jsx(rs,{width:"100%",height:150,children:n.jsxs(Mi,{data:e.filter(xe=>xe.site===Z.site).reduce((xe,he)=>{const we=xe.find(Fe=>Fe.date===he.stat_date);return we?we.unique_visitors+=he.unique_visitors:xe.push({date:he.stat_date,unique_visitors:he.unique_visitors}),xe},[]).sort((xe,he)=>new Date(xe.date).getTime()-new Date(he.date).getTime()),children:[n.jsx(kn,{dataKey:"date",hide:!0}),n.jsx(Cn,{hide:!0}),n.jsx(Vn,{}),n.jsx($a,{type:"monotone",dataKey:"unique_visitors",stroke:"#3B82F6",strokeWidth:2})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg p-4",children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Регистрации по дням"}),n.jsx(rs,{width:"100%",height:150,children:n.jsxs(Mi,{data:e.filter(xe=>xe.site===Z.site).reduce((xe,he)=>{const we=xe.find(Fe=>Fe.date===he.stat_date);return we?we.registrations+=he.registrations:xe.push({date:he.stat_date,registrations:he.registrations}),xe},[]).sort((xe,he)=>new Date(xe.date).getTime()-new Date(he.date).getTime()),children:[n.jsx(kn,{dataKey:"date",hide:!0}),n.jsx(Cn,{hide:!0}),n.jsx(Vn,{}),n.jsx($a,{type:"monotone",dataKey:"registrations",stroke:"#10B981",strokeWidth:2})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg p-4",children:[n.jsx("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Депозиты по дням"}),n.jsx(rs,{width:"100%",height:150,children:n.jsxs(Mi,{data:e.filter(xe=>xe.site===Z.site).reduce((xe,he)=>{const we=xe.find(Fe=>Fe.date===he.stat_date);return we?we.deposits+=he.deposits:xe.push({date:he.stat_date,deposits:he.deposits}),xe},[]).sort((xe,he)=>new Date(xe.date).getTime()-new Date(he.date).getTime()),children:[n.jsx(kn,{dataKey:"date",hide:!0}),n.jsx(Cn,{hide:!0}),n.jsx(Vn,{}),n.jsx($a,{type:"monotone",dataKey:"deposits",stroke:"#8B5CF6",strokeWidth:2})]})})]})]})})}):null})(),N.map(ne=>n.jsxs("tr",{className:"bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap pl-8",children:n.jsx("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:ne.geo})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:"-"}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:ne.unique_visitors.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:ne.registrations.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-purple-600",children:ne.deposits.toLocaleString()}),n.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-green-600",children:["$",ne.revenue.toLocaleString()]}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(ne.cr_regs_to_deps)||0)>30?"bg-green-100 text-green-800":(parseFloat(ne.cr_regs_to_deps)||0)>15?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(ne.cr_regs_to_deps)||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(ne.ucr_regs)||0)>10?"bg-green-100 text-green-800":(parseFloat(ne.ucr_regs)||0)>5?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(ne.ucr_regs)||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(ne.u2d)||0)>5?"bg-green-100 text-green-800":(parseFloat(ne.u2d)||0)>2?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(ne.u2d)||0).toFixed(1),"%"]})})]},`${ne.geo}`))]})]},Z.site))})]})})]}),p==="geo"&&n.jsxs("div",{className:"bg-white rounded-lg shadow-md overflow-hidden",children:[n.jsx("div",{className:"px-6 py-4 border-b border-gray-200",children:n.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:"Статистика по GEO"})}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"GEO"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Сайтов"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Уники"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Регистрации"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Депозиты"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Доход"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"R2D (%)"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"U2R (%)"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"U2D (%)"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:r.map(Z=>n.jsxs(te.Fragment,{children:[n.jsxs("tr",{className:"hover:bg-gray-50 cursor-pointer",onClick:()=>le(Z.geo),children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800",children:Z.geo}),n.jsx("svg",{className:"ml-2 h-4 w-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:n.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Z.sites_count}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Z.total_unique_visitors.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Z.total_registrations.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-purple-600",children:Z.total_deposits.toLocaleString()}),n.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-green-600",children:["$",Z.total_revenue.toLocaleString()]}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.avg_cr_regs_to_deps))||0)>30?"bg-green-100 text-green-800":(parseFloat(String(Z.avg_cr_regs_to_deps))||0)>15?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.avg_cr_regs_to_deps))||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.avg_ucr_regs))||0)>10?"bg-green-100 text-green-800":(parseFloat(String(Z.avg_ucr_regs))||0)>5?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.avg_ucr_regs))||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.avg_u2d))||0)>5?"bg-green-100 text-green-800":(parseFloat(String(Z.avg_u2d))||0)>2?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.avg_u2d))||0).toFixed(1),"%"]})})]}),w===Z.geo&&_.map(ne=>n.jsxs("tr",{className:"bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap pl-8",children:n.jsx("span",{className:"text-sm text-gray-600",children:ne.site})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:"-"}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:ne.unique_visitors.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:ne.registrations.toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-purple-600",children:ne.deposits.toLocaleString()}),n.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-green-600",children:["$",ne.revenue.toLocaleString()]}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(ne.cr_regs_to_deps)||0)>30?"bg-green-100 text-green-800":(parseFloat(ne.cr_regs_to_deps)||0)>15?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(ne.cr_regs_to_deps)||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(ne.ucr_regs)||0)>10?"bg-green-100 text-green-800":(parseFloat(ne.ucr_regs)||0)>5?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(ne.ucr_regs)||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(ne.u2d)||0)>5?"bg-green-100 text-green-800":(parseFloat(ne.u2d)||0)>2?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(ne.u2d)||0).toFixed(1),"%"]})})]},`${ne.site}`))]},Z.geo))})]})})]}),p==="dates"&&n.jsxs("div",{className:"bg-white rounded-lg shadow-md overflow-hidden",children:[n.jsx("div",{className:"px-6 py-4 border-b border-gray-200",children:n.jsx("h2",{className:"text-lg font-semibold text-gray-900",children:"Статистика по неделям"})}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Неделя"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Уники"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Регистрации"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Депозиты"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Доход"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"R2D (%)"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"U2R (%)"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"U2D (%)"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:l.map((Z,ne)=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900",children:Z.week_start&&Z.week_end?`${new Date(Z.week_start).toLocaleDateString("ru-RU")} - ${new Date(Z.week_end).toLocaleDateString("ru-RU")}`:Z.stat_date?new Date(Z.stat_date).toLocaleDateString("ru-RU"):Z.period}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Number(Z.unique_visitors).toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:Number(Z.registrations).toLocaleString()}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-purple-600",children:Number(Z.deposits).toLocaleString()}),n.jsxs("td",{className:"px-6 py-4 whitespace-nowrap text-sm font-semibold text-green-600",children:["$",Number(Z.revenue).toLocaleString()]}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.cr_regs_to_deps))||0)>30?"bg-green-100 text-green-800":(parseFloat(String(Z.cr_regs_to_deps))||0)>15?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.cr_regs_to_deps))||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.ucr_regs))||0)>10?"bg-green-100 text-green-800":(parseFloat(String(Z.ucr_regs))||0)>5?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.ucr_regs))||0).toFixed(1),"%"]})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900",children:n.jsxs("span",{className:`inline-flex px-2 py-1 text-xs font-semibold rounded-full ${(parseFloat(String(Z.u2d))||0)>5?"bg-green-100 text-green-800":(parseFloat(String(Z.u2d))||0)>2?"bg-yellow-100 text-yellow-800":"bg-red-100 text-red-800"}`,children:[(parseFloat(String(Z.u2d))||0).toFixed(1),"%"]})})]},ne))})]})})]}),c&&n.jsxs("div",{className:"text-center py-12",children:[n.jsx(Te,{className:"h-12 w-12 text-gray-400 mx-auto mb-4 animate-spin"}),n.jsx("p",{className:"text-gray-600",children:"Загрузка данных..."})]}),!c&&e.length===0&&n.jsxs("div",{className:"text-center py-12",children:[n.jsx(bs,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-600",children:"Нет данных за выбранный период"})]})]})})},Mee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(null),[a,i]=x.useState(!0),[l,o]=x.useState(!1),c=async()=>{try{o(!0);const p=await(await fetch("/api/balance/providers")).json();p.success&&t(p.data);const y=await(await fetch("/api/balance/stats")).json();y.success&&s(y.data)}catch(h){console.error("Error fetching API balance data:",h)}finally{i(!1),o(!1)}};x.useEffect(()=>{c()},[]);const d=h=>{switch(h){case"serp":return"bg-blue-100 text-blue-800";case"ai":return"bg-purple-100 text-purple-800";case"ahrefs":return"bg-green-100 text-green-800";case"domain":return"bg-orange-100 text-orange-800";default:return"bg-gray-100 text-gray-800"}},u=h=>{switch(h){case"serp":return"🔍";case"ai":return"🤖";case"ahrefs":return"🔗";case"domain":return"🌐";default:return"⚙️"}},m=(h,p="USD")=>p==="requests"?`${h.toLocaleString()} requests`:new Intl.NumberFormat("en-US",{style:"currency",currency:p}).format(h),f=h=>new Date(h).toLocaleString();return a?n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsx("div",{className:"max-w-7xl mx-auto",children:n.jsxs("div",{className:"animate-pulse",children:[n.jsx("div",{className:"h-8 bg-gray-200 rounded w-1/4 mb-6"}),n.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-6 mb-8",children:[...Array(4)].map((h,p)=>n.jsx("div",{className:"h-32 bg-gray-200 rounded-lg"},p))}),n.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[...Array(6)].map((h,p)=>n.jsx("div",{className:"h-48 bg-gray-200 rounded-lg"},p))})]})})}):n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsxs("div",{className:"max-w-7xl mx-auto",children:[n.jsxs("div",{className:"flex justify-between items-center mb-6",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"API Balance Monitor"}),n.jsx("p",{className:"text-gray-600 mt-2",children:"Monitor and manage your API balances"})]}),n.jsxs("div",{className:"flex space-x-3",children:[n.jsxs("button",{onClick:c,disabled:l,className:"btn-secondary flex items-center space-x-2",children:[n.jsx(Te,{className:`h-4 w-4 ${l?"animate-spin":""}`}),n.jsx("span",{children:"Refresh"})]}),n.jsxs("button",{className:"btn-primary flex items-center space-x-2",children:[n.jsx(jr,{className:"h-4 w-4"}),n.jsx("span",{children:"Add Provider"})]})]})]}),r&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-6 mb-8",children:[n.jsx("div",{className:"card p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Total Balance"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:m(r.totalBalance)})]}),n.jsx(rc,{className:"h-8 w-8 text-green-600"})]})}),n.jsx("div",{className:"card p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Active Providers"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:r.totalProviders})]}),n.jsx(Do,{className:"h-8 w-8 text-blue-600"})]})}),n.jsx("div",{className:"card p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Spent Today"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:m(r.totalSpentToday)})]}),n.jsx(Je,{className:"h-8 w-8 text-orange-600"})]})}),n.jsx("div",{className:"card p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Active Alerts"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:r.activeAlerts})]}),n.jsx(uM,{className:"h-8 w-8 text-red-600"})]})})]}),n.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:e.map(h=>n.jsxs("div",{className:"card p-6",children:[n.jsxs("div",{className:"flex items-start justify-between mb-4",children:[n.jsxs("div",{className:"flex items-center space-x-3",children:[n.jsx("span",{className:"text-2xl",children:u(h.type)}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900",children:h.name}),n.jsx("span",{className:`px-2 py-1 text-xs font-medium rounded-full ${d(h.type)}`,children:h.type.toUpperCase()})]})]}),n.jsx("button",{className:"btn-secondary btn-sm",children:n.jsx(Dr,{className:"h-4 w-4"})})]}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Balance"}),n.jsx("span",{className:`text-lg font-semibold ${h.balance<10?"text-red-600":"text-green-600"}`,children:m(h.balance,h.currency)})]}),h.totalLimit&&n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Total Limit"}),n.jsx("span",{className:"text-sm font-medium",children:m(h.totalLimit,h.currency)})]}),h.resetTimestamp&&n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Reset Time"}),n.jsx("span",{className:"text-sm text-gray-500",children:new Date(h.resetTimestamp*1e3).toLocaleString()})]}),n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Requests Today"}),n.jsx("span",{className:"text-sm font-medium",children:h.requestsToday})]}),n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Requests This Month"}),n.jsx("span",{className:"text-sm font-medium",children:h.requestsThisMonth})]}),n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Total Spent"}),n.jsx("span",{className:"text-sm font-medium",children:m(h.totalSpent,h.currency)})]}),h.costPerRequest&&n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Cost per Request"}),n.jsx("span",{className:"text-sm font-medium",children:m(h.costPerRequest,h.currency)})]}),n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Last Updated"}),n.jsx("span",{className:"text-sm text-gray-500",children:f(h.lastUpdated)})]}),n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Status"}),n.jsx("span",{className:`px-2 py-1 text-xs font-medium rounded-full ${h.isActive?"bg-green-100 text-green-800":"bg-red-100 text-red-800"}`,children:h.isActive?"Active":"Inactive"})]})]})]},h.id))}),e.length===0&&n.jsx("div",{className:"card p-12 text-center",children:n.jsxs("div",{className:"text-gray-500",children:[n.jsx(Do,{className:"h-12 w-12 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium mb-2",children:"No API Providers"}),n.jsx("p",{className:"mb-4",children:"Add your first API provider to start monitoring balances"}),n.jsxs("button",{className:"btn-primary",children:[n.jsx(jr,{className:"h-4 w-4 mr-2"}),"Add Provider"]})]})})]})})},Dee=()=>{const[e,t]=x.useState(""),[r,s]=x.useState(!1),[a,i]=x.useState(null),[l,o]=x.useState(null),[c,d]=x.useState(null),[u,m]=x.useState(!1),[f,h]=x.useState({}),[p,v]=x.useState({}),[y,g]=x.useState(null),[b,j]=x.useState("tree"),[w,C]=x.useState(null),N=T=>{if(!T)return"";const E=new DOMParser().parseFromString(T,"text/html"),S=[],k=(P,O=0)=>{var $,H,L;if(P.nodeType===Node.ELEMENT_NODE){const W=P,M=W.tagName.toLowerCase();if(["h1","h2","h3","h4","h5","h6"].includes(M)){const R=(($=W.textContent)==null?void 0:$.trim())||"";R&&S.push({type:"heading",level:parseInt(M.charAt(1)),tag:M,text:R,indent:O})}if(M==="p"){const R=((H=W.textContent)==null?void 0:H.trim())||"";R&&R.length>10&&S.push({type:"paragraph",tag:"p",text:R,indent:O})}W.childNodes.forEach(R=>k(R,O+1))}else if(P.nodeType===Node.TEXT_NODE){const W=((L=P.textContent)==null?void 0:L.trim())||"";W&&W.length>20&&!S.some(M=>M.text===W)&&S.push({type:"text",tag:"text",text:W,indent:O})}};return k(E.body||E),S.map((P,O)=>{const $=`ml-${Math.min(P.indent*2,8)}`;if(P.type==="heading"){const H=P.level===1?"text-lg":P.level===2?"text-base":"text-sm";return n.jsxs("div",{className:`${$} font-bold text-gray-900 mt-4 mb-2 ${H}`,children:[n.jsxs("span",{className:"text-blue-600 text-xs font-mono mr-2",children:["<",P.tag,">"]}),P.text,n.jsxs("span",{className:"text-blue-600 text-xs font-mono ml-1",children:[""]})]},O)}else return P.type==="paragraph"?n.jsxs("div",{className:`${$} text-gray-700 mb-3 text-xs leading-relaxed`,children:[n.jsx("span",{className:"text-green-600 text-xs font-mono mr-2",children:"

"}),P.text,n.jsx("span",{className:"text-green-600 text-xs font-mono ml-1",children:"

"})]},O):n.jsx("div",{className:`${$} text-gray-600 mb-2 text-xs leading-relaxed`,children:P.text},O)})},A=async()=>{var T;if(console.log("🔍 createExtendedNetworkAnalysis вызвана"),!a){console.error("❌ Нет результата для анализа"),o("Нет результата для анализа");return}console.log("✅ Начинаем расширенный анализ для:",a.url),m(!0),o(null);try{const D=new Set;D.add(a.url);const E=new URL(a.url).origin;D.add(E);const{normalUser:S,googlebotBasic:k,googlebotFull:P}=a;[S,k,P].forEach(H=>{"error"in H||(H.canonical&&D.add(H.canonical),H.htmlHreflang.forEach(L=>D.add(L.url)),H.httpHreflang.forEach(L=>D.add(L.url)))});const O=[],$=Array.from(D);console.log("URLs для анализа:",$),C({current:0,total:$.length});for(let H=0;H<$.length;H++){const L=$[H];console.log(`Анализируем URL ${H+1}/${$.length}:`,L),C({current:H+1,total:$.length});const W=L===a.url;let M=null;try{M=(await ye.post("/api/cloaking/check",{url:L},{timeout:6e4})).data,console.log(`✅ Успешно проанализирован: ${L}`)}catch(U){console.error(`❌ Ошибка анализа ${L}:`,(U==null?void 0:U.message)||U)}let R="";try{const U=new URL(L),K=U.origin,F=U.pathname;F==="/"?R=`Главная (${K})`:R=F}catch{R=L}O.push({url:L,name:W?"🔍 ОРИГИНАЛ":R,canonical:((T=M==null?void 0:M.normalUser)==null?void 0:T.canonical)||null,hreflang:M!=null&&M.normalUser?(M.normalUser.htmlHreflang||[]).concat(M.normalUser.httpHreflang||[]):[],isOriginal:W,cloakingDetected:(M==null?void 0:M.cloakingDetected)||!1,hasError:!M})}console.log("Расширенный анализ завершен:",{totalUrls:$.length,sitesFound:O.length,urlsChecked:$,sites:O}),g({sites:O,originalUrl:a.url,timestamp:new Date().toISOString()})}catch(D){console.error("❌ Ошибка в createExtendedNetworkAnalysis:",D),o(`Ошибка создания расширенного анализа сети: ${(D==null?void 0:D.message)||String(D)}`)}finally{m(!1),C(null)}},_=()=>{if(!y)return;const T=` Network Analysis: ${y.originalUrl} Generated: ${new Date(y.timestamp).toLocaleString()} ${y.sites.map((k,P)=>{const O=50+P*350,$=100;return` ${k.name} ${k.canonical?` Canonical ${k.canonical} `:""} ${k.hreflang.length>0?` Hreflang (${k.hreflang.length} tags) ${k.hreflang.map((H,L)=>` ${(H==null?void 0:H.lang)||"unknown"}: ${(H==null?void 0:H.url)||"N/A"} `).join("")} `:""} `}).join("")} `,D=new Blob([T],{type:"image/svg+xml"}),E=URL.createObjectURL(D),S=document.createElement("a");S.href=E,S.download=`network-analysis-${Date.now()}.svg`,document.body.appendChild(S),S.click(),document.body.removeChild(S),URL.revokeObjectURL(E)},I=async T=>{var D,E;if(T.preventDefault(),!e.trim()){o("Please enter a URL");return}s(!0),o(null),i(null);try{const S=await ye.post("/api/cloaking/check",{url:e.trim()});i(S.data)}catch(S){o(((E=(D=S.response)==null?void 0:D.data)==null?void 0:E.error)||S.message||"An error occurred")}finally{s(!1)}},B=async()=>{var T,D,E,S,k,P;if(!e.trim()){o("Please enter a URL first");return}m(!0),d(null),o(null);try{console.log("🌐 Запуск анализа сети для:",e.trim());const O=await ye.post("/api/cloaking/network",{url:e.trim(),maxDepth:3});console.log("✅ Анализ завершён, данные:",O.data),console.log("📊 Узлов:",(D=(T=O.data.network)==null?void 0:T.nodes)==null?void 0:D.length),console.log("🔗 Связей:",(S=(E=O.data.network)==null?void 0:E.edges)==null?void 0:S.length),d(O.data)}catch(O){console.error("❌ Ошибка анализа сети:",O),o(((P=(k=O.response)==null?void 0:k.data)==null?void 0:P.error)||O.message||"Network analysis failed")}finally{m(!1)}},z=()=>{if(!a)return null;const{normalUser:T,googlebotBasic:D,googlebotFull:E}=a;return n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:`p-4 rounded-lg ${a.cloakingDetected?"bg-red-50 border-2 border-red-200":"bg-green-50 border-2 border-green-200"}`,children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-semibold",children:a.cloakingDetected?n.jsx("span",{className:"text-red-600",children:"🚨 КЛОАКИНГ ОБНАРУЖЕН!"}):n.jsx("span",{className:"text-green-600",children:"✅ Клоакинг не обнаружен"})}),a.cloakingType&&n.jsxs("p",{className:"text-sm text-gray-600 mt-1",children:["Тип: ",n.jsx("span",{className:"font-medium",children:a.cloakingType})]})]}),n.jsx("div",{className:"text-right",children:n.jsx("div",{className:"text-xs text-gray-500",children:new Date(a.timestamp).toLocaleString("ru-RU")})})]}),a.differences.length>0&&n.jsxs("div",{className:"mt-3",children:[n.jsx("p",{className:"text-sm font-medium text-gray-700 mb-2",children:"Обнаруженные различия:"}),n.jsx("ul",{className:"list-disc list-inside space-y-1",children:a.differences.map((S,k)=>n.jsx("li",{className:"text-sm text-gray-600",children:S},k))})]})]}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"w-full border-collapse border border-gray-300 bg-white shadow-sm",children:[n.jsx("thead",{children:n.jsxs("tr",{className:"bg-gray-100",children:[n.jsx("th",{className:"px-4 py-3 text-left border-r font-semibold text-gray-700",children:"Параметр"}),n.jsx("th",{className:"px-4 py-3 text-left border-r font-semibold text-blue-700",children:"👤 Normal User"}),n.jsxs("th",{className:"px-4 py-3 text-left border-r font-semibold text-purple-700",children:["🤖 Googlebot",n.jsx("br",{}),n.jsx("span",{className:"text-xs font-normal",children:"(базовый)"})]}),n.jsxs("th",{className:"px-4 py-3 text-left font-semibold text-green-700",children:["🔍 Googlebot",n.jsx("br",{}),n.jsx("span",{className:"text-xs font-normal",children:"(полный)"})]})]})}),n.jsxs("tbody",{children:[n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"📌 Title"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":T.title}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":D.title}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":E.title})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"🏷️ H1"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":T.h1}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":D.h1}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":E.h1})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"🔗 Canonical"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":T.canonical?n.jsxs("span",{className:"text-green-600",children:["✅ ",T.canonical]}):n.jsx("span",{className:"text-red-500",children:"❌ НЕТ"})}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":D.canonical?n.jsxs("span",{className:"text-green-600",children:["✅ ",D.canonical]}):n.jsx("span",{className:"text-red-500",children:"❌ НЕТ"})}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":E.canonical?n.jsxs("span",{className:"text-green-600",children:["✅ ",E.canonical]}):n.jsx("span",{className:"text-red-500",children:"❌ НЕТ"})})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"🌍 Hreflang"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":n.jsxs("div",{children:[n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:T.totalHreflang})," тегов",T.httpHreflang.length>0&&n.jsxs("span",{className:"text-xs text-blue-600 ml-1",children:["(",T.httpHreflang.length," в HTTP)"]})]}),T.totalHreflang>0&&n.jsxs("div",{className:"mt-2",children:[n.jsx("button",{onClick:()=>h(S=>({...S,"normalUser-hreflang":!S["normalUser-hreflang"]})),className:"text-blue-600 hover:text-blue-800 underline text-xs font-medium",children:f["normalUser-hreflang"]?"🔼 Скрыть все теги":"🔽 Показать все теги"}),f["normalUser-hreflang"]&&n.jsxs("div",{className:"mt-2 p-3 bg-blue-50 rounded border max-h-60 overflow-y-auto",children:[T.htmlHreflang.length>0&&n.jsxs("div",{className:"mb-3",children:[n.jsxs("div",{className:"font-semibold text-blue-800 mb-1 text-xs",children:["📌 HTML теги (",T.htmlHreflang.length,"):"]}),T.htmlHreflang.map((S,k)=>n.jsxs("div",{className:"text-xs text-blue-700 mb-1 pl-2",children:[n.jsxs("span",{className:"font-bold",children:[S.lang,":"]})," ",n.jsx("span",{className:"break-all",children:S.url})]},k))]}),T.httpHreflang.length>0&&n.jsxs("div",{children:[n.jsxs("div",{className:"font-semibold text-purple-800 mb-1 text-xs",children:["🔗 HTTP Link заголовки (",T.httpHreflang.length,"):"]}),T.httpHreflang.map((S,k)=>n.jsxs("div",{className:"text-xs text-purple-700 mb-1 pl-2",children:[n.jsxs("span",{className:"font-bold",children:[S.lang,":"]})," ",n.jsx("span",{className:"break-all",children:S.url})]},k))]})]})]})]})}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":n.jsxs("div",{children:[n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:D.totalHreflang})," тегов",D.httpHreflang.length>0&&n.jsxs("span",{className:"text-xs text-blue-600 ml-1",children:["(",D.httpHreflang.length," в HTTP)"]})]}),D.totalHreflang>0&&n.jsxs("div",{className:"mt-2",children:[n.jsx("button",{onClick:()=>h(S=>({...S,"googlebotBasic-hreflang":!S["googlebotBasic-hreflang"]})),className:"text-blue-600 hover:text-blue-800 underline text-xs font-medium",children:f["googlebotBasic-hreflang"]?"🔼 Скрыть все теги":"🔽 Показать все теги"}),f["googlebotBasic-hreflang"]&&n.jsxs("div",{className:"mt-2 p-3 bg-blue-50 rounded border max-h-60 overflow-y-auto",children:[D.htmlHreflang.length>0&&n.jsxs("div",{className:"mb-3",children:[n.jsxs("div",{className:"font-semibold text-blue-800 mb-1 text-xs",children:["📌 HTML теги (",D.htmlHreflang.length,"):"]}),D.htmlHreflang.map((S,k)=>n.jsxs("div",{className:"text-xs text-blue-700 mb-1 pl-2",children:[n.jsxs("span",{className:"font-bold",children:[S.lang,":"]})," ",n.jsx("span",{className:"break-all",children:S.url})]},k))]}),D.httpHreflang.length>0&&n.jsxs("div",{children:[n.jsxs("div",{className:"font-semibold text-purple-800 mb-1 text-xs",children:["🔗 HTTP Link заголовки (",D.httpHreflang.length,"):"]}),D.httpHreflang.map((S,k)=>n.jsxs("div",{className:"text-xs text-purple-700 mb-1 pl-2",children:[n.jsxs("span",{className:"font-bold",children:[S.lang,":"]})," ",n.jsx("span",{className:"break-all",children:S.url})]},k))]})]})]})]})}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":n.jsxs("div",{children:[n.jsxs("div",{children:[n.jsx("span",{className:"font-semibold",children:E.totalHreflang})," тегов",E.httpHreflang.length>0&&n.jsxs("span",{className:"text-xs text-blue-600 ml-1",children:["(",E.httpHreflang.length," в HTTP)"]})]}),E.totalHreflang>0&&n.jsxs("div",{className:"mt-2",children:[n.jsx("button",{onClick:()=>h(S=>({...S,"googlebotFull-hreflang":!S["googlebotFull-hreflang"]})),className:"text-blue-600 hover:text-blue-800 underline text-xs font-medium",children:f["googlebotFull-hreflang"]?"🔼 Скрыть все теги":"🔽 Показать все теги"}),f["googlebotFull-hreflang"]&&n.jsxs("div",{className:"mt-2 p-3 bg-blue-50 rounded border max-h-60 overflow-y-auto",children:[E.htmlHreflang.length>0&&n.jsxs("div",{className:"mb-3",children:[n.jsxs("div",{className:"font-semibold text-blue-800 mb-1 text-xs",children:["📌 HTML теги (",E.htmlHreflang.length,"):"]}),E.htmlHreflang.map((S,k)=>n.jsxs("div",{className:"text-xs text-blue-700 mb-1 pl-2",children:[n.jsxs("span",{className:"font-bold",children:[S.lang,":"]})," ",n.jsx("span",{className:"break-all",children:S.url})]},k))]}),E.httpHreflang.length>0&&n.jsxs("div",{children:[n.jsxs("div",{className:"font-semibold text-purple-800 mb-1 text-xs",children:["🔗 HTTP Link заголовки (",E.httpHreflang.length,"):"]}),E.httpHreflang.map((S,k)=>n.jsxs("div",{className:"text-xs text-purple-700 mb-1 pl-2",children:[n.jsxs("span",{className:"font-bold",children:[S.lang,":"]})," ",n.jsx("span",{className:"break-all",children:S.url})]},k))]})]})]})]})})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"📝 Meta Description"}),n.jsx("td",{className:"px-4 py-3 border-r text-xs",children:"error"in T?"❌ Ошибка":T.metaDescription.substring(0,80)+"..."}),n.jsx("td",{className:"px-4 py-3 border-r text-xs",children:"error"in D?"❌ Ошибка":D.metaDescription.substring(0,80)+"..."}),n.jsx("td",{className:"px-4 py-3 text-xs",children:"error"in E?"❌ Ошибка":E.metaDescription.substring(0,80)+"..."})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"📑 H2 заголовки"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":`${T.h2Count} заголовков`}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":`${D.h2Count} заголовков`}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":`${E.h2Count} заголовков`})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"📏 Размер HTML"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":`${(T.htmlSize/1024).toFixed(2)} KB`}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":`${(D.htmlSize/1024).toFixed(2)} KB`}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":`${(E.htmlSize/1024).toFixed(2)} KB`})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50 bg-blue-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"💾 HTML код"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":n.jsxs("div",{children:[n.jsx("button",{onClick:()=>h(S=>({...S,"normalUser-html":!S["normalUser-html"]})),className:"text-blue-600 hover:text-blue-800 underline text-xs font-medium",children:f["normalUser-html"]?"🔼 Скрыть HTML":"🔽 Показать HTML"}),f["normalUser-html"]&&n.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto bg-gray-100 p-2 rounded text-xs font-mono",children:n.jsx("pre",{className:"whitespace-pre-wrap break-all",children:T.fullHtml})})]})}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":n.jsxs("div",{children:[n.jsx("button",{onClick:()=>h(S=>({...S,"googlebotBasic-html":!S["googlebotBasic-html"]})),className:"text-blue-600 hover:text-blue-800 underline text-xs font-medium",children:f["googlebotBasic-html"]?"🔼 Скрыть HTML":"🔽 Показать HTML"}),f["googlebotBasic-html"]&&n.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto bg-gray-100 p-2 rounded text-xs font-mono",children:n.jsx("pre",{className:"whitespace-pre-wrap break-all",children:D.fullHtml})})]})}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":n.jsxs("div",{children:[n.jsx("button",{onClick:()=>h(S=>({...S,"googlebotFull-html":!S["googlebotFull-html"]})),className:"text-blue-600 hover:text-blue-800 underline text-xs font-medium",children:f["googlebotFull-html"]?"🔼 Скрыть HTML":"🔽 Показать HTML"}),f["googlebotFull-html"]&&n.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto bg-gray-100 p-2 rounded text-xs font-mono",children:n.jsx("pre",{className:"whitespace-pre-wrap break-all",children:E.fullHtml})})]})})]}),n.jsxs("tr",{className:"border-t hover:bg-gray-50 bg-green-50",children:[n.jsx("td",{className:"px-4 py-3 border-r font-medium text-gray-700 bg-gray-50",children:"📄 Текст страницы"}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in T?"❌ Ошибка":n.jsxs("div",{children:[n.jsx("button",{onClick:()=>v(S=>({...S,"normalUser-text":!S["normalUser-text"]})),className:"text-green-600 hover:text-green-800 underline text-xs font-medium",children:p["normalUser-text"]?"🔼 Скрыть текст":"🔽 Показать текст"}),p["normalUser-text"]&&n.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto bg-gradient-to-br from-white to-gray-50 p-3 rounded border border-green-200",children:N(T.fullHtml)})]})}),n.jsx("td",{className:"px-4 py-3 border-r text-sm",children:"error"in D?"❌ Ошибка":n.jsxs("div",{children:[n.jsx("button",{onClick:()=>v(S=>({...S,"googlebotBasic-text":!S["googlebotBasic-text"]})),className:"text-green-600 hover:text-green-800 underline text-xs font-medium",children:p["googlebotBasic-text"]?"🔼 Скрыть текст":"🔽 Показать текст"}),p["googlebotBasic-text"]&&n.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto bg-gradient-to-br from-white to-gray-50 p-3 rounded border border-green-200",children:N(D.fullHtml)})]})}),n.jsx("td",{className:"px-4 py-3 text-sm",children:"error"in E?"❌ Ошибка":n.jsxs("div",{children:[n.jsx("button",{onClick:()=>v(S=>({...S,"googlebotFull-text":!S["googlebotFull-text"]})),className:"text-green-600 hover:text-green-800 underline text-xs font-medium",children:p["googlebotFull-text"]?"🔼 Скрыть текст":"🔽 Показать текст"}),p["googlebotFull-text"]&&n.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto bg-gradient-to-br from-white to-gray-50 p-3 rounded border border-green-200",children:N(E.fullHtml)})]})})]})]})]})})]})};return n.jsxs("div",{className:"max-w-7xl mx-auto p-6",children:[n.jsxs("div",{className:"mb-8",children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-800 mb-2",children:"🔍 Проверка клоакинга конкурентов"}),n.jsx("p",{className:"text-gray-600",children:"Проверьте, скрывает ли сайт контент от обычных краулеров"})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6 mb-6",children:[n.jsxs("form",{onSubmit:I,className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{htmlFor:"url",className:"block text-sm font-medium text-gray-700 mb-2",children:"URL сайта конкурента"}),n.jsx("input",{type:"text",id:"url",value:e,onChange:T=>t(T.target.value),placeholder:"https://example.com",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",disabled:r})]}),n.jsx("button",{type:"submit",disabled:r,className:`w-full py-3 px-6 rounded-lg font-semibold text-white transition-colors ${r?"bg-gray-400 cursor-not-allowed":"bg-blue-600 hover:bg-blue-700"}`,children:r?n.jsxs("span",{className:"flex items-center justify-center",children:[n.jsxs("svg",{className:"animate-spin -ml-1 mr-3 h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[n.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),"Проверяем..."]}):"🚀 Проверить клоакинг"}),a&&n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"flex gap-3 flex-wrap",children:[n.jsx("button",{type:"button",onClick:B,disabled:u,className:"bg-purple-600 hover:bg-purple-700 disabled:bg-gray-400 text-white font-medium py-2 px-6 rounded-lg transition-colors",children:u?"🌐 Анализирую сеть...":"🌐 Анализ всей сетки"}),n.jsx("button",{type:"button",onClick:A,disabled:u,className:"bg-orange-600 hover:bg-orange-700 disabled:bg-gray-400 text-white font-medium py-2 px-6 rounded-lg transition-colors",children:u?w?`🔍 Анализирую ${w.current}/${w.total}...`:"🔍 Анализирую всю сеть...":"🔍 Расширенный анализ"})]}),y&&n.jsxs("div",{className:"space-y-3",children:[n.jsx("div",{className:"text-sm font-medium text-gray-700",children:"Варианты визуализации:"}),n.jsxs("div",{className:"flex gap-2 flex-wrap",children:[n.jsx("button",{type:"button",onClick:()=>j("tree"),className:`px-4 py-2 rounded-lg font-medium transition-colors ${b==="tree"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"🌳 Древовидная схема"}),n.jsx("button",{type:"button",onClick:()=>j("network"),className:`px-4 py-2 rounded-lg font-medium transition-colors ${b==="network"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"🕸️ Сетевая диаграмма"}),n.jsx("button",{type:"button",onClick:()=>j("matrix"),className:`px-4 py-2 rounded-lg font-medium transition-colors ${b==="matrix"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"}`,children:"📊 Матрица связей"}),n.jsx("button",{type:"button",onClick:_,className:"bg-green-600 hover:bg-green-700 text-white font-medium py-2 px-4 rounded-lg transition-colors",children:"💾 Скачать"})]})]})]})]}),l&&n.jsx("div",{className:"mt-4 p-4 bg-red-50 border border-red-200 rounded-lg",children:n.jsxs("p",{className:"text-red-600 text-sm",children:["❌ ",l]})})]}),a&&n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6",children:[n.jsx("h2",{className:"text-2xl font-bold text-gray-800 mb-4",children:"Результаты проверки"}),n.jsxs("div",{className:"mb-4 text-sm text-gray-600",children:[n.jsx("span",{className:"font-medium",children:"URL:"})," ",a.url]}),z()]}),c&&n.jsxs("div",{className:"mt-8 p-6 bg-gradient-to-r from-purple-50 to-blue-50 border border-purple-200 rounded-lg",children:[n.jsx("h3",{className:"text-xl font-bold text-purple-800 mb-4",children:"🌐 Анализ сети конкурента"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-6",children:[n.jsxs("div",{className:"bg-white p-4 rounded-lg border",children:[n.jsx("div",{className:"text-2xl font-bold text-blue-600",children:c.totalSitesFound}),n.jsx("div",{className:"text-sm text-gray-600",children:"Всего сайтов найдено"})]}),n.jsxs("div",{className:"bg-white p-4 rounded-lg border",children:[n.jsx("div",{className:"text-2xl font-bold text-red-600",children:c.sites.filter(T=>T.cloakingDetected).length}),n.jsx("div",{className:"text-sm text-gray-600",children:"С клоакингом"})]}),n.jsxs("div",{className:"bg-white p-4 rounded-lg border",children:[n.jsx("div",{className:"text-2xl font-bold text-green-600",children:c.sites.filter(T=>!T.cloakingDetected).length}),n.jsx("div",{className:"text-sm text-gray-600",children:"Чистые сайты"})]})]}),n.jsxs("div",{className:"space-y-3",children:[n.jsx("h4",{className:"font-semibold text-gray-800",children:"Найденные сайты:"}),n.jsx("div",{className:"max-h-96 overflow-y-auto space-y-2",children:c.sites.map((T,D)=>n.jsx("div",{className:`p-3 rounded-lg border ${T.cloakingDetected?"bg-red-50 border-red-200":"bg-green-50 border-green-200"}`,children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex-1",children:[n.jsx("div",{className:"font-medium text-gray-900 truncate",children:T.url}),n.jsxs("div",{className:"text-sm text-gray-600",children:["Canonical: ",T.canonical||"НЕТ"," | Hreflang: ",T.hreflangCount||0]})]}),n.jsx("div",{className:"ml-4",children:T.cloakingDetected?n.jsx("span",{className:"px-2 py-1 bg-red-100 text-red-800 text-xs rounded-full",children:"🚨 Клоакинг"}):n.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full",children:"✅ Чистый"})})]})},D))})]}),c.network&&n.jsxs("div",{className:"mt-6",children:[n.jsx("h4",{className:"font-semibold text-gray-800 mb-4",children:"Интерактивная схема сети:"}),n.jsx(oE,{data:c.network,loading:u})]}),c.sites&&n.jsxs("div",{className:"mt-8",children:[n.jsx("h4",{className:"font-semibold text-gray-800 mb-4",children:"📋 Детальный анализ связей:"}),n.jsx("div",{className:"space-y-4",children:c.sites.map((T,D)=>n.jsxs("div",{className:"bg-white p-4 rounded-lg border border-gray-200",children:[n.jsx("div",{className:"flex items-start justify-between mb-3",children:n.jsxs("div",{className:"flex-1",children:[n.jsxs("h5",{className:"font-bold text-lg text-gray-900 mb-1",children:[D+1,". ",T.url]}),n.jsx("div",{className:"flex items-center gap-2",children:T.cloakingDetected?n.jsxs("span",{className:"px-2 py-1 bg-red-100 text-red-800 text-xs rounded-full font-bold",children:["🚨 КЛОАКИНГ: ",T.cloakingType]}):n.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 text-xs rounded-full font-bold",children:"✅ ЧИСТЫЙ"})})]})}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[T.canonical&&n.jsxs("div",{className:"bg-blue-50 p-3 rounded-lg",children:[n.jsx("div",{className:"flex items-center mb-2",children:n.jsx("span",{className:"text-blue-600 font-bold text-sm",children:"🔗 Canonical:"})}),n.jsxs("div",{className:"text-sm text-gray-700 break-all",children:[n.jsx("strong",{children:"→"})," ",T.canonical]})]}),T.hreflangCount>0&&n.jsxs("div",{className:"bg-yellow-50 p-3 rounded-lg",children:[n.jsx("div",{className:"flex items-center mb-2",children:n.jsxs("span",{className:"text-yellow-600 font-bold text-sm",children:["🌐 Hreflang (",T.hreflangCount,"):"]})}),n.jsx("div",{className:"text-sm text-gray-700",children:T.hreflangDetails&&T.hreflangDetails.length>0?n.jsx("div",{className:"space-y-1",children:T.hreflangDetails.map((E,S)=>n.jsxs("div",{className:"text-xs bg-white p-2 rounded border",children:[n.jsxs("span",{className:"font-bold text-yellow-700",children:[E.lang,":"]}),n.jsx("div",{className:"text-gray-600 break-all mt-1",children:E.url})]},S))}):n.jsxs("div",{className:"text-xs text-gray-500",children:["Найдено ",T.hreflangCount," языковых версий"]})})]})]}),n.jsx("div",{className:"mt-3 pt-3 border-t border-gray-100",children:n.jsxs("div",{className:"text-xs text-gray-500",children:[n.jsx("strong",{children:"Анализ:"})," ",new Date(T.timestamp).toLocaleString("ru-RU")]})})]},D))})]})]}),y&&n.jsxs("div",{className:"mt-8 p-6 bg-gradient-to-r from-indigo-50 to-purple-50 border border-indigo-200 rounded-lg",children:[n.jsxs("h3",{className:"text-xl font-bold text-indigo-800 mb-4",children:["📊 Визуализация сети: ",y.originalUrl]}),b==="tree"&&n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"text-sm font-medium text-gray-600 mb-3",children:"🌳 Древовидная схема связей (как на вашем примере)"}),n.jsx("div",{className:"bg-white p-4 rounded-lg border",children:n.jsx("div",{className:"flex flex-wrap gap-4",children:y.sites.map((T,D)=>n.jsxs("div",{className:"relative",children:[n.jsxs("div",{className:`p-3 rounded-lg border-2 ${T.hasError?"bg-red-50 border-red-300":T.isOriginal?"bg-yellow-100 border-yellow-400 shadow-lg":"bg-gray-50 border-gray-300"}`,children:[n.jsxs("div",{className:`font-bold text-sm ${T.hasError?"text-red-700":T.isOriginal?"text-yellow-800":"text-gray-700"}`,children:[T.hasError?"❌ ":T.isOriginal?"🔍 ":"",T.name]}),n.jsx("div",{className:"text-xs text-gray-500 mt-1 break-all",children:T.url}),T.hasError&&n.jsx("div",{className:"text-xs text-red-600 mt-1",children:"Не удалось загрузить"})]}),T.canonical&&n.jsxs("div",{className:"mt-2 ml-4",children:[n.jsx("div",{className:"text-xs font-medium text-blue-600 mb-1",children:"Canonical:"}),n.jsx("div",{className:"bg-blue-50 p-2 rounded text-xs break-all",children:T.canonical})]}),T.hreflang.length>0&&n.jsxs("div",{className:"mt-2 ml-4",children:[n.jsxs("div",{className:"text-xs font-medium text-purple-600 mb-1",children:["Hreflang (",T.hreflang.length,"):"]}),n.jsx("div",{className:"bg-purple-50 p-2 rounded max-h-32 overflow-y-auto",children:T.hreflang.map((E,S)=>n.jsxs("div",{className:"text-xs mb-1",children:[n.jsxs("span",{className:"font-bold text-purple-600",children:[(E==null?void 0:E.lang)||"unknown",":"]}),n.jsx("div",{className:"break-all text-gray-600",children:(E==null?void 0:E.url)||"N/A"})]},S))})]})]},D))})})]}),b==="network"&&n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"text-sm font-medium text-gray-600 mb-3",children:"🕸️ Сетевая диаграмма с центральным узлом"}),n.jsx("div",{className:"bg-white p-6 rounded-lg border min-h-96",children:n.jsxs("div",{className:"relative",children:[n.jsx("div",{className:"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2",children:n.jsxs("div",{className:"bg-yellow-200 border-4 border-yellow-400 p-4 rounded-full shadow-lg",children:[n.jsx("div",{className:"font-bold text-yellow-800 text-center",children:"🔍 ОРИГИНАЛ"}),n.jsx("div",{className:"text-xs text-yellow-700 text-center mt-1 break-all",children:y.originalUrl})]})}),y.sites.filter(T=>!T.isOriginal).map((T,D)=>{const E=D*2*Math.PI/(y.sites.length-1),S=200,k=Math.cos(E)*S,P=Math.sin(E)*S;return n.jsxs("div",{className:"absolute transform -translate-x-1/2 -translate-y-1/2",style:{left:`calc(50% + ${k}px)`,top:`calc(50% + ${P}px)`},children:[n.jsxs("div",{className:`border-2 p-3 rounded-lg shadow ${T.hasError?"bg-red-100 border-red-300":"bg-blue-100 border-blue-300"}`,children:[n.jsxs("div",{className:`font-medium text-sm ${T.hasError?"text-red-800":"text-blue-800"}`,children:[T.hasError?"❌ ":"",T.name]}),n.jsx("div",{className:`text-xs break-all ${T.hasError?"text-red-600":"text-blue-600"}`,children:T.url}),T.hasError?n.jsx("div",{className:"text-xs text-red-600 mt-1",children:"Ошибка загрузки"}):T.hreflang.length>0&&n.jsxs("div",{className:"text-xs text-purple-600 mt-1",children:[T.hreflang.length," hreflang"]})]}),n.jsx("svg",{className:"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 pointer-events-none",style:{width:`${Math.abs(k)}px`,height:`${Math.abs(P)}px`},children:n.jsx("line",{x1:k>0?0:Math.abs(k),y1:P>0?0:Math.abs(P),x2:k>0?Math.abs(k):0,y2:P>0?Math.abs(P):0,stroke:"#94a3b8",strokeWidth:"2",strokeDasharray:"5,5"})})]},D)})]})})]}),b==="matrix"&&n.jsxs("div",{className:"space-y-4",children:[n.jsx("div",{className:"text-sm font-medium text-gray-600 mb-3",children:"📊 Матрица связей и данных"}),n.jsx("div",{className:"bg-white rounded-lg border overflow-hidden",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left font-semibold text-gray-700",children:"URL"}),n.jsx("th",{className:"px-4 py-3 text-left font-semibold text-gray-700",children:"Canonical"}),n.jsx("th",{className:"px-4 py-3 text-left font-semibold text-gray-700",children:"Hreflang"}),n.jsx("th",{className:"px-4 py-3 text-left font-semibold text-gray-700",children:"Статус"})]})}),n.jsx("tbody",{children:y.sites.map((T,D)=>n.jsxs("tr",{className:`border-t ${T.isOriginal?"bg-yellow-50":""}`,children:[n.jsxs("td",{className:"px-4 py-3",children:[n.jsxs("div",{className:"font-medium text-sm",children:[T.isOriginal&&"🔍 ",T.name]}),n.jsx("div",{className:"text-xs text-gray-500 break-all",children:T.url})]}),n.jsx("td",{className:"px-4 py-3",children:T.canonical?n.jsx("div",{className:"text-xs bg-blue-50 p-2 rounded break-all",children:T.canonical}):n.jsx("span",{className:"text-gray-400 text-xs",children:"Нет"})}),n.jsx("td",{className:"px-4 py-3",children:T.hreflang.length>0?n.jsxs("div",{className:"space-y-1",children:[n.jsxs("div",{className:"text-xs font-medium text-purple-600",children:[T.hreflang.length," hreflang тегов"]}),n.jsx("div",{className:"max-h-20 overflow-y-auto",children:T.hreflang.map((E,S)=>n.jsxs("div",{className:"text-xs bg-purple-50 p-1 rounded mb-1",children:[n.jsxs("span",{className:"font-bold text-purple-600",children:[(E==null?void 0:E.lang)||"unknown",":"]}),n.jsx("div",{className:"break-all text-gray-600",children:(E==null?void 0:E.url)||"N/A"})]},S))})]}):n.jsx("span",{className:"text-gray-400 text-xs",children:"Нет"})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:`px-2 py-1 rounded-full text-xs font-medium ${T.hasError?"bg-gray-200 text-gray-800":T.isOriginal?"bg-yellow-200 text-yellow-800":T.cloakingDetected?"bg-red-200 text-red-800":"bg-green-200 text-green-800"}`,children:T.hasError?"Ошибка":T.isOriginal?"Оригинал":T.cloakingDetected?"Клоакинг":"Чистый"})})]},D))})]})})]})]})]})},$ee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState([]),[a,i]=x.useState([]),[l,o]=x.useState([]),[c,d]=x.useState(null),[u,m]=x.useState(!0),[f,h]=x.useState(null),[p,v]=x.useState(""),[y,g]=x.useState(""),[b,j]=x.useState(["en"]),[w,C]=x.useState(["mobile"]),[N,A]=x.useState([]),[_,I]=x.useState(!1),[B,z]=x.useState(!1),[T,D]=x.useState(null),[E,S]=x.useState({}),[k,P]=x.useState({}),O=[{code:"en",name:"English"},{code:"es",name:"Spanish"},{code:"ru",name:"Russian"},{code:"de",name:"German"},{code:"fr",name:"French"},{code:"it",name:"Italian"},{code:"pt",name:"Portuguese"},{code:"pl",name:"Polish"},{code:"tr",name:"Turkish"},{code:"ja",name:"Japanese"},{code:"ko",name:"Korean"},{code:"zh",name:"Chinese"},{code:"zh-TW",name:"Traditional Chinese"}];x.useEffect(()=>{$()},[]);const $=async()=>{try{m(!0),h(null);const[K,F,Y,V,q]=await Promise.all([fetch("/api/rank-tracker/projects"),fetch("/api/rank-tracker/brands"),fetch("/api/rank-tracker/geo"),fetch("/api/rank-tracker/responsible"),fetch("/api/rank-tracker/stats")]);if(!K.ok)throw new Error("Failed to load projects");if(!F.ok)throw new Error("Failed to load brands");if(!Y.ok)throw new Error("Failed to load geo");if(!V.ok)throw new Error("Failed to load responsible");if(!q.ok)throw new Error("Failed to load stats");const[J,G,le,ce,oe]=await Promise.all([K.json(),F.json(),Y.json(),V.json(),q.json()]);t(J.data||[]),s(G.data||[]),i(le.data||[]),o(ce.data||[]),d(oe.data||null)}catch(K){console.error("Error loading data:",K),h(K.message||"Failed to load data")}finally{m(!1)}},H=K=>{if(!K)return a;const F=e.filter(V=>V.brand.toLowerCase()===K.toLowerCase()),Y=new Set(F.map(V=>V.geo.toLowerCase()));return a.filter(V=>Y.has(V.geo.toLowerCase()))},L=K=>{if(!K)return r;const F=e.filter(V=>V.geo.toLowerCase()===K.toLowerCase()),Y=new Set(F.map(V=>V.brand.toLowerCase()));return r.filter(V=>Y.has(V.brand.toLowerCase()))};x.useEffect(()=>{if(p&&y){const K=e.filter(F=>F.brand.toLowerCase()===p.toLowerCase()&&F.geo.toLowerCase()===y.toLowerCase());A(K),W(K)}else A([])},[p,y,e]),x.useEffect(()=>{p&&y&&(H(p).some(Y=>Y.geo.toLowerCase()===y.toLowerCase())||g(""))},[p]),x.useEffect(()=>{p&&y&&(L(y).some(Y=>Y.brand.toLowerCase()===p.toLowerCase())||v(""))},[y]);const W=async K=>{const F={};for(const Y of K)try{const q=await(await fetch(`/api/rank-tracker/site-stats/${Y.id}`)).json();q.success&&(F[Y.id]={currentPosition:q.data.currentPosition,bestPosition:q.data.bestPosition,bestPositionDate:q.data.bestPositionDate})}catch(V){console.error(`Error loading stats for project ${Y.id}:`,V)}P(Y=>({...Y,...F}))},M=async()=>{if(!p||!y){alert("Выберите бренд и гео");return}if(b.length===0){alert("Выберите хотя бы один язык");return}if(w.length===0){alert("Выберите хотя бы одно устройство");return}try{I(!0);const F=await(await fetch("/api/rank-tracker/get-positions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({brand:p,geo:y,languages:b,devices:w})})).json();F.success?(alert(`Позиции получены для ${F.processed} сайтов`),await W(N),await $()):alert("Ошибка получения позиций: "+(F.error||"Неизвестная ошибка"))}catch(K){alert("Ошибка получения позиций: "+K.message)}finally{I(!1)}},R=async K=>{if(E[K]){D(T===K?null:K);return}try{const Y=await(await fetch(`/api/rank-tracker/positions-history/${K}`)).json();Y.success&&(S(V=>({...V,[K]:Y.data})),D(K))}catch(F){console.error("Error loading position history:",F)}},U=async()=>{if(!p||!y){alert("Выберите бренд и гео");return}if(b.length===0){alert("Выберите хотя бы один язык");return}if(w.length===0){alert("Выберите хотя бы одно устройство");return}try{z(!0);const F=await(await fetch("/api/rank-tracker/enable-tracking",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({brand:p,geo:y,languages:b,devices:w})})).json();F.success?alert(`Ежедневное отслеживание включено для бренда "${p}" и гео "${y}"`):alert("Ошибка включения отслеживания: "+(F.error||"Неизвестная ошибка"))}catch(K){alert("Ошибка включения отслеживания: "+K.message)}finally{z(!1)}};return u?n.jsx("div",{className:"flex items-center justify-center min-h-screen",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-600",children:"Загрузка данных..."})]})}):f?n.jsx("div",{className:"flex items-center justify-center min-h-screen",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-red-500 text-6xl mb-4",children:"⚠️"}),n.jsx("h2",{className:"text-xl font-semibold text-gray-800 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-600 mb-4",children:f}),n.jsx("button",{onClick:$,className:"bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700",children:"Попробовать снова"})]})}):n.jsx("div",{className:"min-h-screen bg-gray-50",children:n.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[n.jsxs("div",{className:"mb-8",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("div",{className:"flex items-center",children:[n.jsx(Tt,{className:"h-8 w-8 text-blue-600 mr-3"}),n.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Rank Tracker"})]}),n.jsxs("a",{href:"/rank-tracker/setup",className:"bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 flex items-center",children:[n.jsx(Dr,{className:"h-4 w-4 mr-2"}),"Настроить отслеживание"]})]}),n.jsx("p",{className:"text-gray-600",children:"Отслеживание позиций сайтов по ключевым словам"})]}),c&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-6 mb-8",children:[n.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-blue-100 rounded-lg",children:n.jsx(Xe,{className:"h-6 w-6 text-blue-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Всего сайтов"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:c.total_sites})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-green-100 rounded-lg",children:n.jsx(Je,{className:"h-6 w-6 text-green-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Активных"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:c.active_sites})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-purple-100 rounded-lg",children:n.jsx(Tt,{className:"h-6 w-6 text-purple-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Брендов"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:c.total_brands})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-yellow-100 rounded-lg",children:n.jsx(vt,{className:"h-6 w-6 text-yellow-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Гео"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:c.total_geo})]})]})}),n.jsx("div",{className:"bg-white rounded-lg shadow p-6",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx("div",{className:"p-2 bg-red-100 rounded-lg",children:n.jsx(yn,{className:"h-6 w-6 text-red-600"})}),n.jsxs("div",{className:"ml-4",children:[n.jsx("p",{className:"text-sm font-medium text-gray-600",children:"Ответственных"}),n.jsx("p",{className:"text-2xl font-bold text-gray-900",children:c.total_responsible})]})]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow p-6 mb-8",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Настройки отслеживания"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Бренд *"}),n.jsxs("select",{value:p,onChange:K=>{v(K.target.value),K.target.value&&g("")},className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[n.jsx("option",{value:"",children:"Выберите бренд"}),(y?L(y):r).map(K=>n.jsxs("option",{value:K.brand,children:[K.brand," (",K.active_count," активных)"]},K.brand))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Гео *"}),n.jsxs("select",{value:y,onChange:K=>{g(K.target.value),K.target.value&&v("")},className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[n.jsx("option",{value:"",children:"Выберите гео"}),(p?H(p):a).map(K=>n.jsxs("option",{value:K.geo,children:[K.geo," (",K.active_count," активных)"]},K.geo))]})]})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Язык браузера (можно выбрать несколько)"}),n.jsx("div",{className:"border border-gray-300 rounded-lg p-2 max-h-32 overflow-y-auto",children:O.map(K=>n.jsxs("label",{className:"flex items-center mb-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:b.includes(K.code),onChange:F=>{F.target.checked?j([...b,K.code]):j(b.filter(Y=>Y!==K.code))},className:"mr-2 w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500"}),n.jsxs("span",{className:"text-sm text-gray-700",children:[K.name," (",K.code,")"]})]},K.code))}),b.length===0&&n.jsx("p",{className:"text-xs text-red-500 mt-1",children:"Выберите хотя бы один язык"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Устройство (можно выбрать несколько)"}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("label",{className:"flex items-center cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:w.includes("mobile"),onChange:K=>{K.target.checked?C([...w,"mobile"]):C(w.filter(F=>F!=="mobile"))},className:"mr-2 w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Mobile (по умолчанию)"})]}),n.jsxs("label",{className:"flex items-center cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:w.includes("desktop"),onChange:K=>{K.target.checked?C([...w,"desktop"]):C(w.filter(F=>F!=="desktop"))},className:"mr-2 w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Desktop"})]})]}),w.length===0&&n.jsx("p",{className:"text-xs text-red-500 mt-1",children:"Выберите хотя бы одно устройство"})]})]})]}),p&&y&&n.jsxs("div",{className:"bg-white rounded-lg shadow p-4 mb-4 flex items-center justify-between",children:[n.jsx("div",{className:"flex items-center gap-4",children:n.jsxs("span",{className:"text-sm text-gray-600",children:["Найдено сайтов: ",n.jsx("strong",{children:N.length})," для бренда ",n.jsx("strong",{children:p})," и гео ",n.jsx("strong",{children:y})]})}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:M,disabled:N.length===0||_,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 disabled:bg-gray-300 disabled:cursor-not-allowed",children:_?n.jsxs(n.Fragment,{children:[n.jsx(Te,{className:"h-4 w-4 animate-spin"}),"Получение позиций..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Mt,{className:"h-4 w-4"}),"Получить позиции"]})}),n.jsx("button",{onClick:U,disabled:N.length===0||B,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-green-600 rounded-lg hover:bg-green-700 disabled:bg-gray-300 disabled:cursor-not-allowed",children:B?n.jsxs(n.Fragment,{children:[n.jsx(Te,{className:"h-4 w-4 animate-spin"}),"Включение..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Ut,{className:"h-4 w-4"}),"Включить ежедневное отслеживание"]})})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow",children:[n.jsx("div",{className:"px-6 py-4 border-b border-gray-200",children:n.jsxs("h3",{className:"text-lg font-semibold text-gray-900",children:["Проекты (",N.length,")"]})}),n.jsx("div",{className:"divide-y divide-gray-200",children:N.map(K=>{const F=k[K.id];return n.jsxs("div",{className:"px-6 py-4 hover:bg-gray-50",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"flex items-center mb-2",children:[n.jsx("h4",{className:"text-lg font-medium text-gray-900 mr-4",children:K.url}),n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-green-100 text-green-800 rounded-full",children:K.status})]}),n.jsxs("div",{className:"flex items-center space-x-6 text-sm text-gray-600 mb-2",children:[n.jsxs("div",{className:"flex items-center",children:[n.jsx(Tt,{className:"h-4 w-4 mr-1"}),n.jsx("span",{className:"font-medium",children:"Бренд:"}),n.jsx("span",{className:"ml-1",children:K.brand})]}),n.jsxs("div",{className:"flex items-center",children:[n.jsx(vt,{className:"h-4 w-4 mr-1"}),n.jsx("span",{className:"font-medium",children:"Гео:"}),n.jsx("span",{className:"ml-1",children:K.geo})]}),n.jsxs("div",{className:"flex items-center",children:[n.jsx(yn,{className:"h-4 w-4 mr-1"}),n.jsx("span",{className:"font-medium",children:"Ответственный:"}),n.jsx("span",{className:"ml-1",children:K.responsible})]})]}),F&&n.jsxs("div",{className:"flex items-center space-x-6 text-sm mt-2",children:[n.jsxs("div",{className:"flex items-center",children:[n.jsx("span",{className:"font-medium text-gray-700",children:"Текущая позиция:"}),n.jsx("span",{className:`ml-2 font-semibold ${F.currentPosition?F.currentPosition<=10?"text-green-600":F.currentPosition<=30?"text-yellow-600":"text-gray-600":"text-red-600"}`,children:F.currentPosition?F.currentPosition:"Не в топ-100"})]}),F.bestPosition&&n.jsxs("div",{className:"flex items-center",children:[n.jsx("span",{className:"font-medium text-gray-700",children:"Лучшая позиция:"}),n.jsx("span",{className:"ml-2 font-semibold text-green-600",children:F.bestPosition}),F.bestPositionDate&&n.jsxs("span",{className:"ml-2 text-gray-500",children:["(",new Date(F.bestPositionDate).toLocaleDateString("ru-RU"),")"]})]})]})]}),n.jsx("div",{className:"flex items-center space-x-2",children:n.jsx("button",{onClick:()=>R(K.id),className:"px-3 py-1 text-sm bg-blue-100 text-blue-700 rounded-lg hover:bg-blue-200",children:T===K.id?"Скрыть историю":"История позиций"})})]}),T===K.id&&E[K.id]&&n.jsxs("div",{className:"mt-4 pl-12 border-t pt-4",children:[n.jsx("h5",{className:"text-sm font-semibold text-gray-700 mb-3",children:"История позиций по дням:"}),E[K.id].length>0?n.jsx("div",{className:"space-y-2",children:E[K.id].map((Y,V)=>n.jsxs("div",{className:"flex items-center justify-between text-sm",children:[n.jsx("span",{className:"text-gray-600",children:new Date(Y.date).toLocaleDateString("ru-RU")}),n.jsx("span",{className:`font-medium ${Y.position?Y.position<=10?"text-green-600":Y.position<=30?"text-yellow-600":"text-gray-600":"text-red-600"}`,children:Y.position?`Позиция ${Y.position}`:"Не в топ-100"})]},V))}):n.jsx("p",{className:"text-sm text-gray-500",children:"Нет данных о позициях"})]})]},K.id)})})]}),p&&y&&N.length===0&&n.jsxs("div",{className:"text-center py-12",children:[n.jsx(Tt,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Нет проектов"}),n.jsxs("p",{className:"text-gray-600 mb-4",children:["Нет сайтов для бренда ",n.jsx("strong",{children:p})," и гео ",n.jsx("strong",{children:y})]})]}),!p||!y?n.jsxs("div",{className:"text-center py-12",children:[n.jsx(Tt,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Выберите бренд и гео"}),n.jsx("p",{className:"text-gray-600 mb-4",children:"Выберите бренд и гео выше, чтобы увидеть список сайтов и начать отслеживание позиций"})]}):null]})})},Lee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState([]),[a,i]=x.useState(!0),[l,o]=x.useState(null),[c,d]=x.useState({brand:"",geo:"",keywords:[""],searchEngine:"google",device:"desktop",language:"en"}),[u,m]=x.useState(""),[f,h]=x.useState(!1);x.useEffect(()=>{p()},[]);const p=async()=>{try{i(!0),o(null);const[j,w]=await Promise.all([fetch("/api/rank-tracker/brands"),fetch("/api/rank-tracker/geo")]);if(!j.ok)throw new Error("Failed to load brands");if(!w.ok)throw new Error("Failed to load geo");const[C,N]=await Promise.all([j.json(),w.json()]);t(C.data||[]),s(N.data||[])}catch(j){console.error("Error loading data:",j),o(j.message||"Failed to load data")}finally{i(!1)}},v=()=>{u.trim()&&(d(j=>({...j,keywords:[...j.keywords,u.trim()]})),m(""))},y=j=>{d(w=>({...w,keywords:w.keywords.filter((C,N)=>N!==j)}))},g=async()=>{if(!c.brand||!c.geo)return[];try{const w=await(await fetch(`/api/rank-tracker/projects/brand/${c.brand}`)).json();return w.success?w.data.filter(C=>C.geo===c.geo):[]}catch(j){return console.error("Error fetching sites:",j),[]}},b=async()=>{if(!c.brand||!c.geo||c.keywords.length===0){alert("Пожалуйста, выберите бренд, гео и добавьте ключевые слова");return}h(!0);try{const j=await g();if(j.length===0){alert("Нет сайтов для выбранного бренда и гео");return}console.log("Starting tracking for:",{brand:c.brand,geo:c.geo,keywords:c.keywords,sites:j.length,searchEngine:c.searchEngine,device:c.device,language:c.language}),alert(`Отслеживание запущено для ${j.length} сайтов по ${c.keywords.length} ключевым словам`)}catch(j){console.error("Error starting tracking:",j),alert("Ошибка при запуске отслеживания")}finally{h(!1)}};return a?n.jsx("div",{className:"flex items-center justify-center min-h-screen",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-600",children:"Загрузка данных..."})]})}):l?n.jsx("div",{className:"flex items-center justify-center min-h-screen",children:n.jsxs("div",{className:"text-center",children:[n.jsx("div",{className:"text-red-500 text-6xl mb-4",children:"⚠️"}),n.jsx("h2",{className:"text-xl font-semibold text-gray-800 mb-2",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-gray-600 mb-4",children:l}),n.jsx("button",{onClick:p,className:"bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700",children:"Попробовать снова"})]})}):n.jsx("div",{className:"min-h-screen bg-gray-50",children:n.jsxs("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[n.jsxs("div",{className:"mb-8",children:[n.jsxs("div",{className:"flex items-center mb-4",children:[n.jsx(Dr,{className:"h-8 w-8 text-blue-600 mr-3"}),n.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Настройка Rank Tracker"})]}),n.jsx("p",{className:"text-gray-600",children:"Выберите бренд, гео и ключевые слова для отслеживания позиций"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-6",children:"Параметры отслеживания"}),n.jsxs("div",{className:"mb-6",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:[n.jsx(Tt,{className:"h-4 w-4 inline mr-2"}),"Бренд"]}),n.jsxs("select",{value:c.brand,onChange:j=>d(w=>({...w,brand:j.target.value})),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[n.jsx("option",{value:"",children:"Выберите бренд"}),e.map(j=>n.jsxs("option",{value:j.brand,children:[j.brand," (",j.site_count," сайтов)"]},j.brand))]})]}),n.jsxs("div",{className:"mb-6",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:[n.jsx(vt,{className:"h-4 w-4 inline mr-2"}),"Гео"]}),n.jsxs("select",{value:c.geo,onChange:j=>d(w=>({...w,geo:j.target.value})),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[n.jsx("option",{value:"",children:"Выберите гео"}),r.map(j=>n.jsxs("option",{value:j.geo,children:[j.geo.toUpperCase()," (",j.site_count," сайтов)"]},j.geo))]})]}),n.jsxs("div",{className:"mb-6",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:[n.jsx(_e,{className:"h-4 w-4 inline mr-2"}),"Ключевые слова"]}),n.jsx("div",{className:"space-y-2 mb-3",children:c.keywords.map((j,w)=>n.jsxs("div",{className:"flex items-center justify-between bg-gray-50 p-2 rounded-lg",children:[n.jsx("span",{className:"text-sm text-gray-700",children:j}),n.jsx("button",{onClick:()=>y(w),className:"text-red-500 hover:text-red-700 text-sm",children:"✕"})]},w))}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("input",{type:"text",value:u,onChange:j=>m(j.target.value),placeholder:"Введите ключевое слово",className:"flex-1 px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",onKeyPress:j=>j.key==="Enter"&&v()}),n.jsx("button",{onClick:v,className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 flex items-center",children:n.jsx(jr,{className:"h-4 w-4"})})]})]}),n.jsxs("div",{className:"grid grid-cols-2 gap-4 mb-6",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Поисковая система"}),n.jsxs("select",{value:c.searchEngine,onChange:j=>d(w=>({...w,searchEngine:j.target.value})),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[n.jsx("option",{value:"google",children:"Google"}),n.jsx("option",{value:"bing",children:"Bing"}),n.jsx("option",{value:"yahoo",children:"Yahoo"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Устройство"}),n.jsxs("select",{value:c.device,onChange:j=>d(w=>({...w,device:j.target.value})),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[n.jsx("option",{value:"desktop",children:"Desktop"}),n.jsx("option",{value:"mobile",children:"Mobile"})]})]})]}),n.jsx("button",{onClick:b,disabled:f||!c.brand||!c.geo||c.keywords.length===0,className:"w-full bg-green-600 text-white py-3 px-4 rounded-lg hover:bg-green-700 disabled:bg-gray-400 disabled:cursor-not-allowed flex items-center justify-center",children:f?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2"}),"Запуск отслеживания..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Ot,{className:"h-4 w-4 mr-2"}),"Запустить отслеживание"]})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-6",children:"Предварительный просмотр"}),c.brand&&c.geo?n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"bg-blue-50 p-4 rounded-lg",children:[n.jsx("h3",{className:"font-semibold text-blue-900 mb-2",children:"Выбранные параметры:"}),n.jsxs("div",{className:"text-sm text-blue-800",children:[n.jsxs("p",{children:[n.jsx("strong",{children:"Бренд:"})," ",c.brand]}),n.jsxs("p",{children:[n.jsx("strong",{children:"Гео:"})," ",c.geo.toUpperCase()]}),n.jsxs("p",{children:[n.jsx("strong",{children:"Ключевых слов:"})," ",c.keywords.length]}),n.jsxs("p",{children:[n.jsx("strong",{children:"Поисковая система:"})," ",c.searchEngine]}),n.jsxs("p",{children:[n.jsx("strong",{children:"Устройство:"})," ",c.device]})]})]}),c.keywords.length>0&&n.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg",children:[n.jsx("h3",{className:"font-semibold text-gray-900 mb-2",children:"Ключевые слова:"}),n.jsx("div",{className:"flex flex-wrap gap-2",children:c.keywords.map((j,w)=>n.jsx("span",{className:"bg-blue-100 text-blue-800 px-2 py-1 rounded text-sm",children:j},w))})]}),n.jsxs("div",{className:"bg-yellow-50 p-4 rounded-lg",children:[n.jsx("h3",{className:"font-semibold text-yellow-900 mb-2",children:"Что произойдет:"}),n.jsxs("ul",{className:"text-sm text-yellow-800 space-y-1",children:[n.jsxs("li",{children:['• Система найдет все сайты бренда "',c.brand,'" в гео "',c.geo,'"']}),n.jsxs("li",{children:["• Для каждого сайта будет отслеживаться позиция по ",c.keywords.length," ключевым словам"]}),n.jsx("li",{children:"• Результаты будут сохраняться в базе данных"}),n.jsx("li",{children:"• Можно будет просматривать историю изменений позиций"})]})]})]}):n.jsxs("div",{className:"text-center text-gray-500 py-8",children:[n.jsx(Xe,{className:"h-12 w-12 mx-auto mb-4 text-gray-400"}),n.jsx("p",{children:"Выберите бренд и гео для предварительного просмотра"})]})]})]})]})})},Iee=()=>{const e=Sr(),[t,r]=x.useState([]),[s,a]=x.useState(!0),[i,l]=x.useState(null),[o,c]=x.useState(""),[d,u]=x.useState(""),[m,f]=x.useState([]),[h,p]=x.useState([]);x.useEffect(()=>{v()},[o,d]);const v=async()=>{try{a(!0);const b=new URLSearchParams;o&&b.append("brand",o),d&&b.append("geo",d);const w=(await ye.get(`/api/rank-tracking/keywords?${b}`)).data.data||[];r(w);const C=[...new Set(w.map(A=>A.brand))],N=[...new Set(w.map(A=>A.geo))];f(C),p(N)}catch(b){console.error("Error loading keywords:",b)}finally{a(!1)}},y=async b=>{var j,w;try{l(b),await ye.post(`/api/rank-tracking/keywords/${b}/track`),alert("✅ Проверка завершена!")}catch(C){alert("❌ Ошибка: "+(((w=(j=C.response)==null?void 0:j.data)==null?void 0:w.error)||C.message))}finally{l(null)}},g=t.reduce((b,j)=>{const w=`${j.brand}-${j.geo}`;return b[w]||(b[w]={brand:j.brand,geo:j.geo,keywords:[]}),b[w].keywords.push(j),b},{});return s?n.jsx("div",{className:"flex items-center justify-center min-h-screen",children:n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600"})}):n.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[n.jsxs("div",{className:"mb-6",children:[n.jsxs("div",{className:"flex justify-between items-center mb-4",children:[n.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"📊 Отслеживаемые ключевые слова"}),n.jsxs("button",{onClick:()=>e("/rank-tracker/setup"),className:"flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700",children:[n.jsx(jr,{className:"w-4 h-4"}),"Добавить отслеживание"]})]}),n.jsxs("div",{className:"flex gap-4 mb-6",children:[n.jsxs("div",{className:"flex-1",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Бренд"}),n.jsxs("select",{value:o,onChange:b=>c(b.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500",children:[n.jsx("option",{value:"",children:"Все бренды"}),m.map(b=>n.jsx("option",{value:b,children:b},b))]})]}),n.jsxs("div",{className:"flex-1",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"ГЕО"}),n.jsxs("select",{value:d,onChange:b=>u(b.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500",children:[n.jsx("option",{value:"",children:"Все гео"}),h.map(b=>n.jsx("option",{value:b,children:b.toUpperCase()},b))]})]}),n.jsx("div",{className:"flex-1 flex items-end",children:n.jsxs("button",{onClick:v,className:"w-full px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 flex items-center justify-center gap-2",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить"]})})]})]}),Object.values(g).map(b=>n.jsxs("div",{className:"mb-6",children:[n.jsxs("div",{className:"bg-gradient-to-r from-blue-50 to-purple-50 rounded-lg p-4 mb-4",children:[n.jsxs("h2",{className:"text-xl font-bold text-gray-900",children:["🏷️ ",b.brand," • 🌍 ",b.geo.toUpperCase()]}),n.jsxs("div",{className:"text-sm text-gray-600 mt-1",children:[b.keywords.length," отслеживаний"]})]}),n.jsx("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-gray-50 border-b border-gray-200",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"ID"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Ключ"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Google"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Устройство"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Язык"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Статус"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Действия"})]})}),n.jsx("tbody",{className:"divide-y divide-gray-200",children:b.keywords.map(j=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsxs("td",{className:"px-4 py-3 text-sm font-mono text-gray-500",children:["#",j.id]}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"text-sm font-semibold text-gray-900",children:j.keyword})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"text-sm text-gray-700",children:j.se_domain||"google.com"})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("div",{className:"flex items-center gap-1",children:[n.jsxs("span",{className:"text-sm",children:[j.device==="desktop"?"🖥️":"📱"," ",j.device]}),j.os&&n.jsxs("span",{className:"text-xs text-gray-500",children:["(",j.os,")"]})]})}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-700",children:j.language}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:`px-2 py-1 text-xs rounded-full ${j.status==="active"?"bg-green-100 text-green-800":"bg-gray-100 text-gray-800"}`,children:j.status})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("div",{className:"flex gap-2",children:[n.jsx("button",{onClick:()=>e(`/rank-tracker/results/${j.id}`),className:"p-2 text-blue-600 hover:bg-blue-50 rounded",title:"Посмотреть результаты",children:n.jsx(Ht,{className:"w-4 h-4"})}),n.jsx("button",{onClick:()=>y(j.id),disabled:i===j.id,className:"p-2 text-green-600 hover:bg-green-50 rounded disabled:opacity-50",title:"Запустить проверку",children:i===j.id?n.jsx(Te,{className:"w-4 h-4 animate-spin"}):n.jsx(Ot,{className:"w-4 h-4"})})]})})]},j.id))})]})})]},`${b.brand}-${b.geo}`)),t.length===0&&n.jsxs("div",{className:"text-center py-12",children:[n.jsx(_e,{className:"w-16 h-16 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Нет отслеживаемых ключевых слов"}),n.jsx("p",{className:"text-gray-600 mb-4",children:"Создайте первое отслеживание для начала работы"}),n.jsxs("button",{onClick:()=>e("/rank-tracker/setup"),className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700",children:[n.jsx(jr,{className:"w-4 h-4 inline mr-2"}),"Создать отслеживание"]})]})]})},Ree=()=>{const{id:e}=Tl(),t=Sr(),[r,s]=x.useState(null),[a,i]=x.useState(null),[l,o]=x.useState([]),[c,d]=x.useState(!1),[u,m]=x.useState(!1),[f,h]=x.useState(!1);x.useEffect(()=>{p()},[e]);const p=async()=>{try{d(!0);const N=(await ye.get("/api/rank-tracking/keywords")).data.data.find(I=>I.id===parseInt(e||"0"));s(N);const A=await ye.get(`/api/rank-tracking/keywords/${e}/positions-timeline`);i(A.data.data);const _=await ye.get(`/api/rank-tracking/keywords/${e}/serp`);o(_.data.data||[])}catch(w){console.error("Error loading data:",w)}finally{d(!1)}},v=async()=>{var w,C;try{m(!0),await ye.post(`/api/rank-tracking/keywords/${e}/track`),await p(),alert("✅ Проверка завершена!")}catch(N){alert("❌ Ошибка: "+(((C=(w=N.response)==null?void 0:w.data)==null?void 0:C.error)||N.message))}finally{m(!1)}},y=(w,C)=>{if(C>=w.length-1)return{change:0,icon:Ga};const N=w[C].position,A=w[C+1].position;if(N===null||A===null)return{change:0,icon:Ga};const _=A-N;return _>0?{change:_,icon:_l}:_<0?{change:_,icon:Zm}:{change:0,icon:Ga}},g=w=>new Date(w).toLocaleDateString("ru-RU",{day:"2-digit",month:"2-digit"});if(c)return n.jsx("div",{className:"flex items-center justify-center min-h-screen",children:n.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600"})});if(!r)return n.jsx("div",{className:"p-8 text-center",children:"Ключевое слово не найдено"});const b=l.filter(w=>w.is_our_site),j=b.length>0?Math.min(...b.map(w=>w.position)):null;return n.jsxs("div",{className:"p-6 max-w-[1600px] mx-auto",children:[n.jsxs("div",{className:"mb-6",children:[n.jsx("button",{onClick:()=>t("/rank-tracker/keywords"),className:"text-blue-600 hover:text-blue-800 mb-4",children:"← Назад к списку"}),n.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6",children:[n.jsxs("div",{className:"flex justify-between items-start mb-4",children:[n.jsxs("div",{children:[n.jsxs("h1",{className:"text-3xl font-bold text-gray-900 mb-2",children:['"',r.keyword,'"']}),n.jsxs("div",{className:"flex gap-4 text-sm text-gray-600",children:[n.jsxs("span",{children:["🌐 ",r.se_domain]}),n.jsxs("span",{children:["📱 ",r.device]}),r.os&&n.jsxs("span",{children:["💻 ",r.os]}),n.jsxs("span",{children:["🗣️ ",r.language]}),n.jsxs("span",{children:["🌍 ",r.geo.toUpperCase()]}),n.jsxs("span",{children:["🏷️ ",r.brand]})]})]}),n.jsx("button",{onClick:v,disabled:u,className:"flex items-center gap-2 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:u?n.jsxs(n.Fragment,{children:[n.jsx(Te,{className:"w-5 h-5 animate-spin"}),"Проверка..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Ot,{className:"w-5 h-5"}),"Запустить проверку"]})})]}),l.length>0&&n.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[n.jsxs("div",{className:"bg-green-50 rounded-lg p-4",children:[n.jsx("div",{className:"text-sm text-gray-600",children:"Наших сайтов в топ-100"}),n.jsx("div",{className:"text-3xl font-bold text-green-600",children:b.length})]}),n.jsxs("div",{className:"bg-blue-50 rounded-lg p-4",children:[n.jsx("div",{className:"text-sm text-gray-600",children:"Лучшая позиция"}),n.jsx("div",{className:"text-3xl font-bold text-blue-600",children:j?`#${j}`:"—"})]}),n.jsxs("div",{className:"bg-purple-50 rounded-lg p-4",children:[n.jsx("div",{className:"text-sm text-gray-600",children:"Всего проверок"}),n.jsx("div",{className:"text-3xl font-bold text-purple-600",children:(a==null?void 0:a.dates.length)||0})]})]})]})]}),a&&a.sites.length>0&&n.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 mb-6",children:[n.jsxs("div",{className:"px-6 py-4 border-b border-gray-200 flex justify-between items-center",children:[n.jsx("h2",{className:"text-xl font-bold text-gray-900",children:"📊 История позиций наших сайтов"}),n.jsxs("div",{className:"text-sm text-gray-500",children:[n.jsx(Ut,{className:"w-4 h-4 inline mr-1"}),a.dates.length," проверок"]})]}),n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase sticky left-0 bg-gray-50",children:"Сайт"}),a.dates.map((w,C)=>n.jsxs("th",{className:"px-4 py-3 text-center text-xs font-medium text-gray-500 uppercase min-w-[100px]",children:[g(w),C===0&&n.jsx("div",{className:"text-green-600 font-bold mt-1",children:"Сегодня"})]},C))]})}),n.jsx("tbody",{className:"divide-y divide-gray-200",children:a.sites.map((w,C)=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsxs("td",{className:"px-4 py-3 sticky left-0 bg-white",children:[n.jsx("div",{className:"font-medium text-gray-900 text-sm",children:w.domain}),n.jsx("div",{className:"text-xs text-gray-500 truncate max-w-[200px]",children:w.url})]}),w.positions.map((N,A)=>{const{change:_,icon:I}=y(w.positions,A),B=N.position;return n.jsx("td",{className:"px-4 py-3 text-center",children:B!==null?n.jsxs("div",{className:"inline-flex flex-col items-center",children:[n.jsx("div",{className:`text-lg font-bold ${B<=3?"text-green-600":B<=10?"text-blue-600":B<=20?"text-orange-600":"text-gray-600"}`,children:B}),_!==0&&n.jsxs("div",{className:`flex items-center text-xs ${_>0?"text-green-600":_<0?"text-red-600":"text-gray-400"}`,children:[n.jsx(I,{className:"w-3 h-3"}),Math.abs(_)]})]}):n.jsx("span",{className:"text-gray-300",children:"—"})},A)})]},C))})]})})]}),l.length>0&&n.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200",children:[n.jsxs("button",{onClick:()=>h(!f),className:"w-full px-6 py-4 flex justify-between items-center hover:bg-gray-50",children:[n.jsxs("h2",{className:"text-xl font-bold text-gray-900",children:["🔍 Текущая выдача Google (",l.length," результатов)"]}),f?n.jsx(mM,{}):n.jsx(Ol,{})]}),f&&n.jsx("div",{className:"border-t border-gray-200",children:n.jsx("div",{className:"overflow-x-auto max-h-[600px] overflow-y-auto",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-gray-50 sticky top-0",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase w-16",children:"Поз"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Домен"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Заголовок"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"URL"})]})}),n.jsx("tbody",{className:"divide-y divide-gray-200",children:l.map(w=>n.jsxs("tr",{className:w.is_our_site?"bg-green-50 font-semibold":"hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3",children:n.jsxs("span",{className:`font-bold ${w.position<=3?"text-green-600":w.position<=10?"text-blue-600":"text-gray-600"}`,children:["#",w.position]})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("div",{className:"flex items-center gap-2",children:[w.is_our_site&&n.jsx("span",{className:"px-2 py-1 bg-green-100 text-green-800 text-xs rounded",children:"НАШ"}),n.jsx("span",{className:"text-sm",children:w.domain})]})}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:w.title}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("a",{href:w.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-800 text-sm flex items-center gap-1",children:[n.jsx(Ht,{className:"w-3 h-3"}),"Открыть"]})})]},w.position))})]})})})]}),!c&&(!a||a.sites.length===0)&&l.length===0&&n.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-12 text-center",children:[n.jsx("div",{className:"text-6xl mb-4",children:"📊"}),n.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Нет данных для отображения"}),n.jsx("p",{className:"text-gray-600 mb-6",children:"Запустите первую проверку чтобы увидеть позиции"}),n.jsx("button",{onClick:v,disabled:u,className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:u?"Проверка...":"Запустить проверку"})]})]})},Fee=()=>{const e=Sr(),[t,r]=x.useState(null),[s,a]=x.useState(!0),[i,l]=x.useState(null);x.useEffect(()=>{o()},[]);const o=async()=>{try{a(!0);const c=await ye.get("http://localhost:3001/api/rank-tracking-dashboard/brands-overview");r(c.data.data)}catch(c){l(c.message)}finally{a(!1)}};return s?n.jsxs("div",{className:"flex items-center justify-center h-64",children:[n.jsx(Te,{className:"w-8 h-8 animate-spin text-blue-600"}),n.jsx("span",{className:"ml-2 text-slate-400",children:"Загрузка данных..."})]}):i?n.jsxs("div",{className:"bg-red-900 border border-red-700 rounded-lg p-4",children:[n.jsx("h3",{className:"text-red-400 font-semibold",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-red-300",children:i})]}):t?n.jsxs("div",{className:"min-h-screen bg-slate-900 text-slate-100",children:[n.jsx("div",{className:"bg-slate-800 border-b border-slate-700 px-6 py-4",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-blue-400",children:"PRO Rank Tracker"}),n.jsx("p",{className:"text-slate-400",children:"Сводная таблица по всем брендам"})]}),n.jsxs("div",{className:"flex gap-3",children:[n.jsxs("button",{onClick:o,className:"bg-gradient-to-r from-blue-600 to-purple-600 text-white px-4 py-2 rounded-lg hover:from-blue-700 hover:to-purple-700 flex items-center gap-2 transition-all",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить все"]}),n.jsxs("button",{className:"bg-slate-700 text-slate-200 px-4 py-2 rounded-lg hover:bg-slate-600 flex items-center gap-2 transition-all",children:[n.jsx(Mt,{className:"w-4 h-4"}),"Экспорт"]})]})]})}),n.jsxs("div",{className:"p-6",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-5 gap-4 mb-6",children:[n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ut,{className:"w-8 h-8 text-blue-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"Всего брендов"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:t.brands.length})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Je,{className:"w-8 h-8 text-green-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"Всего сайтов"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:t.brands.reduce((c,d)=>c+d.totalSites,0)})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(ef,{className:"w-8 h-8 text-yellow-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В ТОП-3"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:t.brands.reduce((c,d)=>c+d.top3,0)})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ht,{className:"w-8 h-8 text-purple-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В ТОП-10"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:t.brands.reduce((c,d)=>c+d.top10,0)})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(_l,{className:"w-8 h-8 text-green-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В индексе (ТОП-100)"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:t.brands.reduce((c,d)=>c+d.inIndex,0)})]})]})})]}),n.jsx("div",{className:"bg-slate-800 rounded-lg overflow-hidden",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full",children:[n.jsx("thead",{className:"bg-slate-700",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:n.jsx("input",{type:"checkbox",className:"rounded"})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Бренд"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"ГЕО (кл-во гео)"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Сайтов (кл-во сайтов)"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"В ТОП-1"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"В ТОП-3"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"В ТОП-10"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"ВСЕГО в индексе"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Действие"})]})}),n.jsx("tbody",{className:"bg-slate-800 divide-y divide-slate-700",children:t.brands.map((c,d)=>n.jsxs("tr",{className:"hover:bg-slate-700",children:[n.jsx("td",{className:"px-4 py-3",children:n.jsx("input",{type:"checkbox",className:"rounded"})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"text-sm font-medium text-white",children:c.brand})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"text-sm text-slate-300",children:c.geos.length})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-slate-300",children:c.totalSites})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-green-400 font-bold",children:c.top1})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-green-400 font-bold",children:c.top3})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-green-400 font-bold",children:c.top10})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-slate-300",children:c.inIndex})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("button",{onClick:()=>e(`/rank-tracker/brand/${encodeURIComponent(c.brand)}`),className:"text-blue-400 hover:text-blue-300 flex items-center gap-1",children:[n.jsx(Ht,{className:"w-4 h-4"}),"Детали"]})})]},d))})]})})})]})]}):n.jsxs("div",{className:"bg-yellow-900 border border-yellow-700 rounded-lg p-4",children:[n.jsx("h3",{className:"text-yellow-400 font-semibold",children:"Нет данных"}),n.jsx("p",{className:"text-yellow-300",children:"Данные для отображения не найдены"})]})},zee=()=>{const e=Sr(),{brand:t,geo:r}=Tl(),[s,a]=x.useState(null),[i,l]=x.useState(!0),[o,c]=x.useState(null),[d,u]=x.useState(null),[m,f]=x.useState(""),[h,p]=x.useState(""),[v,y]=x.useState(""),[g,b]=x.useState(!1),[j,w]=x.useState(""),[C,N]=x.useState(0),[A,_]=x.useState([]),[I,B]=x.useState(!1),[z,T]=x.useState([]),[D,E]=x.useState({language:"",device:"desktop",os:"android"});x.useEffect(()=>{t&&r&&(k(),S())},[t,r]);const S=async()=>{try{const R=await ye.get(`http://localhost:3001/api/locations/languages/${r}`);R.data.success&&(T(R.data.data.languages||["en"]),E(U=>({...U,language:R.data.data.defaultLanguage||"en"})))}catch(R){console.error("Error loading languages:",R),T(["en"]),E(U=>({...U,language:"en"}))}},k=async()=>{try{l(!0);const R=await ye.get(`http://localhost:3001/api/rank-tracking-dashboard/geo-detail?brand=${encodeURIComponent(t)}&geo=${encodeURIComponent(r)}`);a(R.data.data)}catch(R){c(R.message)}finally{l(!1)}},P=()=>{B(!0)},O=async()=>{var R,U;if(!(!t||!r)){B(!1),b(!0),w(`Запуск проверки (${D.device}, ${D.language})...`),N(0),_([]);try{const K=setInterval(()=>{N(Y=>Y>=90?(clearInterval(K),Y):Y+Math.random()*15)},200),F=await ye.post("http://localhost:3001/api/rank-tracking/run-check",{brand:t,geo:r,language:D.language,device:D.device,os:D.device==="mobile"?D.os:void 0});clearInterval(K),N(100),F.data.success?(w("Проверка завершена успешно!"),_(F.data.results||[]),setTimeout(()=>{k(),w(""),N(0),_([])},3e3)):(w("Ошибка: "+F.data.error),N(0))}catch(K){w("Ошибка: "+(((U=(R=K.response)==null?void 0:R.data)==null?void 0:U.error)||K.message)),N(0)}finally{b(!1)}}},$=R=>R>=1e6?`${(R/1e6).toFixed(1)}M`:R>=1e3?`${(R/1e3).toFixed(1)}K`:R.toString(),H=R=>R>0?n.jsx(_l,{className:"w-3 h-3 text-green-400"}):R<0?n.jsx(Zm,{className:"w-3 h-3 text-red-400"}):n.jsx(Ga,{className:"w-3 h-3 text-slate-400"}),L=R=>R>0?"text-green-400":R<0?"text-red-400":"text-slate-400",W=R=>R===null?"N/A":R>100?"100+":R.toString(),M=(s==null?void 0:s.sites.filter(R=>!(m&&R.keyword!==m||h&&R.device!==h||v&&R.language!==v)))||[];return i?n.jsxs("div",{className:"flex items-center justify-center h-64",children:[n.jsx(Te,{className:"w-8 h-8 animate-spin text-blue-600"}),n.jsx("span",{className:"ml-2 text-slate-400",children:"Загрузка данных..."})]}):o?n.jsxs("div",{className:"bg-red-900 border border-red-700 rounded-lg p-4",children:[n.jsx("h3",{className:"text-red-400 font-semibold",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-red-300",children:o})]}):s?n.jsxs("div",{className:"min-h-screen bg-slate-900 text-slate-100",children:[n.jsx("div",{className:"bg-slate-800 border-b border-slate-700 px-6 py-4",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsxs("button",{onClick:()=>e("/rank-tracker"),className:"text-slate-400 hover:text-white flex items-center gap-2",children:[n.jsx(ca,{className:"w-4 h-4"}),"Назад к бренду"]}),n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-blue-400",children:s.brand}),n.jsxs("p",{className:"text-slate-400",children:["Детальная таблица по гео: ",s.geoName]})]})]}),n.jsxs("div",{className:"flex gap-3",children:[n.jsxs("button",{onClick:k,className:"bg-gradient-to-r from-blue-600 to-purple-600 text-white px-4 py-2 rounded-lg hover:from-blue-700 hover:to-purple-700 flex items-center gap-2 transition-all",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить"]}),n.jsxs("button",{className:"bg-slate-700 text-slate-200 px-4 py-2 rounded-lg hover:bg-slate-600 flex items-center gap-2 transition-all",children:[n.jsx(Mt,{className:"w-4 h-4"}),"Экспорт"]})]})]})}),n.jsxs("div",{className:"p-6",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4 mb-6",children:[n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ut,{className:"w-8 h-8 text-blue-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"Сайтов в гео"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:s.totalSites})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Je,{className:"w-8 h-8 text-green-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"Средняя позиция"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:s.avgPosition})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(ef,{className:"w-8 h-8 text-yellow-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"ТОП-10"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:s.topPositions})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ht,{className:"w-8 h-8 text-purple-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"Общий трафик"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:$(s.sites.reduce((R,U)=>R+U.traffic,0))})]})]})})]}),n.jsxs("div",{className:"bg-slate-800 border-b border-slate-700 p-4 mb-6",children:[n.jsxs("div",{className:"flex gap-4 items-center flex-wrap",children:[n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"text-sm text-slate-400",children:"КЛЮЧЕВОЕ СЛОВО:"}),n.jsxs("select",{value:m,onChange:R=>f(R.target.value),className:"px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-slate-100 focus:border-blue-500 focus:outline-none",children:[n.jsx("option",{value:"",children:"Все ключи"}),s==null?void 0:s.sites.map((R,U)=>n.jsx("option",{value:R.keyword,children:R.keyword},U))]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"text-sm text-slate-400",children:"УСТРОЙСТВО:"}),n.jsxs("select",{value:h,onChange:R=>p(R.target.value),className:"px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-slate-100 focus:border-blue-500 focus:outline-none",children:[n.jsx("option",{value:"",children:"Все устройства"}),n.jsx("option",{value:"desktop",children:"Desktop"}),n.jsx("option",{value:"mobile",children:"Mobile"})]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"text-sm text-slate-400",children:"ЯЗЫК БРАУЗЕРА:"}),n.jsxs("select",{value:v,onChange:R=>y(R.target.value),className:"px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-slate-100 focus:border-blue-500 focus:outline-none",children:[n.jsx("option",{value:"",children:"Все языки"}),n.jsx("option",{value:"en",children:"English"}),n.jsx("option",{value:"es-419",children:"Spanish (Latin America)"}),n.jsx("option",{value:"ru",children:"Русский"})]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:()=>{f(""),p(""),y("")},className:"px-3 py-2 bg-slate-600 text-slate-200 rounded-lg hover:bg-slate-500 transition-all",children:"Сбросить фильтры"}),n.jsxs("button",{onClick:P,disabled:g,className:`px-4 py-2 text-white rounded-lg transition-all flex items-center gap-2 ${g?"bg-blue-700 animate-pulse cursor-not-allowed":"bg-blue-600 hover:bg-blue-500 hover:scale-105"} disabled:opacity-50 disabled:cursor-not-allowed`,children:[n.jsx(Te,{className:`w-4 h-4 ${g?"animate-spin":""}`}),g?"Проверка...":"Запустить проверку"]})]})]}),j&&n.jsxs("div",{className:"mt-4 p-4 bg-blue-900/20 border border-blue-500/30 rounded-lg",children:[n.jsxs("div",{className:"flex items-center gap-3 text-blue-300 mb-3",children:[n.jsx(Te,{className:"w-5 h-5 animate-spin"}),n.jsx("span",{className:"font-medium",children:j}),n.jsxs("span",{className:"text-blue-400 text-sm",children:[Math.round(C),"%"]})]}),n.jsx("div",{className:"w-full bg-slate-700 rounded-full h-2 mb-3",children:n.jsx("div",{className:"bg-gradient-to-r from-blue-500 to-green-500 h-2 rounded-full transition-all duration-300 ease-out",style:{width:`${C}%`}})}),A.length>0&&n.jsxs("div",{className:"space-y-2",children:[n.jsx("div",{className:"text-sm text-blue-300 font-medium",children:"Результаты проверки:"}),n.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2 max-h-32 overflow-y-auto",children:A.slice(0,6).map((R,U)=>n.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[n.jsx("div",{className:`w-2 h-2 rounded-full ${R.success?"bg-green-400":"bg-red-400"}`}),n.jsx("span",{className:"text-slate-300",children:R.keyword}),n.jsxs("span",{className:"text-slate-400",children:["(",R.device,")"]}),R.success&&R.position&&n.jsxs("span",{className:"text-green-400",children:["#",R.position]})]},U))})]})]})]}),n.jsx("div",{className:"bg-slate-800 rounded-lg overflow-hidden",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full",children:[n.jsx("thead",{className:"bg-slate-700",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:n.jsx("input",{type:"checkbox",className:"rounded"})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Сайт"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Ключевое слово"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Позиция"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Изм. 24ч"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Изм. 7д"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Search Vol"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Трафик"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"СТV"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"История позиций"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Действия"})]})}),n.jsx("tbody",{className:"bg-slate-800 divide-y divide-slate-700",children:M.map((R,U)=>n.jsxs("tr",{className:"hover:bg-slate-700",children:[n.jsx("td",{className:"px-4 py-3",children:n.jsx("input",{type:"checkbox",className:"rounded"})}),n.jsxs("td",{className:"px-4 py-3",children:[n.jsx("div",{className:"text-sm font-medium text-white",children:R.site}),n.jsx("div",{className:"text-xs text-slate-400",children:R.device})]}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"text-sm text-slate-100",children:R.keyword})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:`text-sm font-bold ${R.position<=10?"text-green-400":R.position<=50?"text-yellow-400":"text-slate-400"}`,children:W(R.position)})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("div",{className:`flex items-center gap-1 ${L(R.change24h)}`,children:[H(R.change24h),n.jsx("span",{className:"text-sm",children:Math.abs(R.change24h)})]})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("div",{className:`flex items-center gap-1 ${L(R.change7d)}`,children:[H(R.change7d),n.jsx("span",{className:"text-sm",children:Math.abs(R.change7d)})]})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-slate-300",children:$(R.searchVolume)})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-slate-300",children:$(R.traffic)})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("span",{className:"text-sm text-slate-300",children:["$",R.ctv.toLocaleString()]})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"flex gap-1",children:R.positionsHistory.slice(-7).map((K,F)=>n.jsx("div",{className:`text-xs px-1 py-1 rounded ${K.position<=10?"bg-green-900 text-green-300":K.position<=50?"bg-yellow-900 text-yellow-300":"bg-slate-700 text-slate-400"}`,children:W(K.position)},F))})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("div",{className:"flex gap-2",children:[n.jsxs("button",{onClick:()=>u(R.site),className:"text-blue-400 hover:text-blue-300 flex items-center gap-1",children:[n.jsx(Xe,{className:"w-4 h-4"}),"График"]}),n.jsxs("button",{className:"text-blue-400 hover:text-blue-300 flex items-center gap-1",children:[n.jsx(Ht,{className:"w-4 h-4"}),"SERP"]})]})})]},U))})]})})})]}),I&&n.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:n.jsxs("div",{className:"bg-white rounded-lg p-6 max-w-md w-full mx-4",children:[n.jsx("h3",{className:"text-xl font-bold text-gray-900 mb-4",children:"Настройки проверки позиций"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Язык поиска"}),n.jsx("select",{value:D.language,onChange:R=>E({...D,language:R.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:z.map(R=>n.jsx("option",{value:R,children:R==="en"?"English":R==="es"?"Español":R==="es-419"?"Español (Latinoamérica)":R==="pt"?"Português":R==="pt-BR"?"Português (Brasil)":R==="ru"?"Русский":R==="ro"?"Română":R==="ko"?"한국어":R==="ja"?"日本語":R==="zh-CN"?"中文(简体)":R==="uk"?"Українська":R==="de"?"Deutsch":R==="fr"?"Français":R==="it"?"Italiano":R==="tr"?"Türkçe":R.toUpperCase()},R))}),n.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"Выберите язык интерфейса Google для поиска"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Устройство"}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("button",{onClick:()=>E({...D,device:"desktop"}),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-all ${D.device==="desktop"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"Desktop"}),n.jsx("button",{onClick:()=>E({...D,device:"mobile"}),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-all ${D.device==="mobile"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"Mobile"})]})]}),D.device==="mobile"&&n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Операционная система"}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("button",{onClick:()=>E({...D,os:"android"}),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-all ${D.os==="android"?"bg-green-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"Android"}),n.jsx("button",{onClick:()=>E({...D,os:"ios"}),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-all ${D.os==="ios"?"bg-gray-800 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"iOS"})]})]})]}),n.jsxs("div",{className:"flex gap-3 mt-6",children:[n.jsx("button",{onClick:()=>B(!1),className:"flex-1 px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200 transition-all",children:"Отмена"}),n.jsxs("button",{onClick:O,className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-all flex items-center justify-center gap-2",children:[n.jsx(Ot,{className:"w-4 h-4"}),"Запустить"]})]})]})})]}):n.jsxs("div",{className:"bg-yellow-900 border border-yellow-700 rounded-lg p-4",children:[n.jsx("h3",{className:"text-yellow-400 font-semibold",children:"Нет данных"}),n.jsx("p",{className:"text-yellow-300",children:"Данные для отображения не найдены"})]})},Bee=()=>{const e=Sr(),{brand:t}=Tl(),[r,s]=x.useState(null),[a,i]=x.useState(!0),[l,o]=x.useState(null);x.useEffect(()=>{t&&c()},[t]);const c=async()=>{try{i(!0);const d=await ye.get(`http://localhost:3001/api/rank-tracking-dashboard/brand-detail?brand=${encodeURIComponent(t)}`);s(d.data.data)}catch(d){o(d.message)}finally{i(!1)}};return a?n.jsxs("div",{className:"flex items-center justify-center h-64",children:[n.jsx(Te,{className:"w-8 h-8 animate-spin text-blue-600"}),n.jsx("span",{className:"ml-2 text-slate-400",children:"Загрузка данных..."})]}):l?n.jsxs("div",{className:"bg-red-900 border border-red-700 rounded-lg p-4",children:[n.jsx("h3",{className:"text-red-400 font-semibold",children:"Ошибка загрузки"}),n.jsx("p",{className:"text-red-300",children:l})]}):r?n.jsxs("div",{className:"min-h-screen bg-slate-900 text-slate-100",children:[n.jsx("div",{className:"bg-slate-800 border-b border-slate-700 px-6 py-4",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{className:"flex items-center gap-4",children:[n.jsxs("button",{onClick:()=>e("/rank-tracker"),className:"text-slate-400 hover:text-white flex items-center gap-2",children:[n.jsx(ca,{className:"w-4 h-4"}),"Назад к брендам"]}),n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-blue-400",children:r.brand}),n.jsx("p",{className:"text-slate-400",children:"Детальная таблица по гео"})]})]}),n.jsxs("div",{className:"flex gap-3",children:[n.jsxs("button",{onClick:c,className:"bg-gradient-to-r from-blue-600 to-purple-600 text-white px-4 py-2 rounded-lg hover:from-blue-700 hover:to-purple-700 flex items-center gap-2 transition-all",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить"]}),n.jsxs("button",{className:"bg-slate-700 text-slate-200 px-4 py-2 rounded-lg hover:bg-slate-600 flex items-center gap-2 transition-all",children:[n.jsx(Mt,{className:"w-4 h-4"}),"Экспорт"]})]})]})}),n.jsxs("div",{className:"p-6",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-5 gap-4 mb-6",children:[n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ut,{className:"w-8 h-8 text-blue-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"Всего сайтов"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:r.totalSites})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Je,{className:"w-8 h-8 text-green-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В ТОП-1"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:r.totalTop1})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(ef,{className:"w-8 h-8 text-yellow-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В ТОП-3"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:r.totalTop3})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(Ht,{className:"w-8 h-8 text-purple-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В ТОП-10"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:r.totalTop10})]})]})}),n.jsx("div",{className:"bg-slate-800 p-4 rounded-lg border border-slate-700",children:n.jsxs("div",{className:"flex items-center",children:[n.jsx(_l,{className:"w-8 h-8 text-green-400"}),n.jsxs("div",{className:"ml-3",children:[n.jsx("p",{className:"text-sm text-slate-400",children:"В индексе"}),n.jsx("p",{className:"text-2xl font-semibold text-white",children:r.totalInIndex})]})]})})]}),n.jsx("div",{className:"bg-slate-800 rounded-lg overflow-hidden",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full",children:[n.jsx("thead",{className:"bg-slate-700",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:n.jsx("input",{type:"checkbox",className:"rounded"})}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"ГЕО"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Сайтов"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"В ТОП-1"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"В ТОП-3"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"В ТОП-10"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"ВСЕГО в индексе"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-slate-300 uppercase tracking-wider",children:"Действие"})]})}),n.jsx("tbody",{className:"bg-slate-800 divide-y divide-slate-700",children:r.geos.map((d,u)=>n.jsxs("tr",{className:"hover:bg-slate-700",children:[n.jsx("td",{className:"px-4 py-3",children:n.jsx("input",{type:"checkbox",className:"rounded"})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("div",{className:"text-sm font-medium text-white",children:d.geoName})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-slate-300",children:d.totalSites})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-green-400 font-bold",children:d.top1})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-green-400 font-bold",children:d.top3})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-green-400 font-bold",children:d.top10})}),n.jsx("td",{className:"px-4 py-3",children:n.jsx("span",{className:"text-sm text-slate-300",children:d.inIndex})}),n.jsx("td",{className:"px-4 py-3",children:n.jsxs("button",{onClick:()=>e(`/rank-tracker/geo/${encodeURIComponent(r.brand)}/${encodeURIComponent(d.geo)}`),className:"text-blue-400 hover:text-blue-300 flex items-center gap-1",children:[n.jsx(Ht,{className:"w-4 h-4"}),"Детали"]})})]},u))})]})})})]})]}):n.jsxs("div",{className:"bg-yellow-900 border border-yellow-700 rounded-lg p-4",children:[n.jsx("h3",{className:"text-yellow-400 font-semibold",children:"Нет данных"}),n.jsx("p",{className:"text-yellow-300",children:"Данные для отображения не найдены"})]})},Uee=()=>{const[e,t]=x.useState(""),[r,s]=x.useState("AR"),[a,i]=x.useState("es"),[l,o]=x.useState("desktop"),[c,d]=x.useState("android"),[u,m]=x.useState([]),[f,h]=x.useState(""),[p,v]=x.useState(!1),[y,g]=x.useState([]),[b,j]=x.useState(""),[w,C]=x.useState(""),[N,A]=x.useState(new Set),[_,I]=x.useState([]),[B,z]=x.useState(!1),[T,D]=x.useState([]),[E,S]=x.useState("all");x.useEffect(()=>{k()},[r]);const k=async()=>{try{const F=await ye.get(`/api/locations/languages/${r}`);F.data.success&&(I(F.data.data.languages||["en"]),i(F.data.data.defaultLanguage||"en"))}catch{I(["en"]),i("en")}},P=async()=>{try{const F=await ye.get("/api/notion/projects/cached");F.data.success&&g(F.data.data||[])}catch(F){console.error("Error loading Notion sites:",F)}},O=()=>{v(!0),P()},$=()=>{f.trim()&&(m([...u,f.trim()]),h(""))},H=()=>{const F=Array.from(N).filter(Y=>!u.includes(Y));m([...u,...F]),v(!1),A(new Set)},L=F=>{m(u.filter((Y,V)=>V!==F))},W=F=>{const Y=new Set(N);Y.has(F)?Y.delete(F):Y.add(F),A(Y)},M=async()=>{var F,Y;if(!e.trim()){alert("Введите ключевое слово!");return}z(!0),D([]);try{const V=l==="both"?["desktop","mobile"]:[l],q=[];for(const J of V){const G=await ye.post("/api/rank-tracking/single-check",{keyword:e,country:r,language:a,device:J,os:J==="mobile"?c:void 0,ourSites:u});if(G.data.success){const le=G.data.results.map(ce=>({...ce,device:J}));q.push(...le)}}D(q),S("all")}catch(V){alert("Ошибка проверки: "+(((Y=(F=V.response)==null?void 0:F.data)==null?void 0:Y.error)||V.message))}finally{z(!1)}},R=y.filter(F=>{const Y=!b||F.brand.toLowerCase().includes(b.toLowerCase()),V=!w||F.geo.toLowerCase().includes(w.toLowerCase());return Y&&V}),U=T.filter(F=>F.isOurSite),K=E==="our"?U:T;return n.jsxs("div",{className:"min-h-screen bg-gray-50 p-6",children:[n.jsxs("div",{className:"max-w-7xl mx-auto",children:[n.jsxs("div",{className:"mb-6",children:[n.jsxs("h1",{className:"text-3xl font-bold text-gray-900 flex items-center gap-3",children:[n.jsx(Tt,{className:"w-8 h-8 text-blue-600"}),"Проверка позиций (Simple)"]}),n.jsx("p",{className:"text-gray-600 mt-2",children:"Одиночная проверка позиций сайтов в SERP"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[n.jsxs("div",{className:"lg:col-span-1 space-y-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Ключевое слово"}),n.jsx("input",{type:"text",value:e,onChange:F=>t(F.target.value),placeholder:"Например: ace game",className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Параметры поиска"}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:[n.jsx(vt,{className:"w-4 h-4 inline mr-1"}),"Страна"]}),n.jsxs("select",{value:r,onChange:F=>s(F.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-lg",children:[n.jsx("option",{value:"AR",children:"🇦🇷 Argentina"}),n.jsx("option",{value:"US",children:"🇺🇸 United States"}),n.jsx("option",{value:"BR",children:"🇧🇷 Brazil"}),n.jsx("option",{value:"KR",children:"🇰🇷 South Korea"}),n.jsx("option",{value:"TR",children:"🇹🇷 Turkey"}),n.jsx("option",{value:"RU",children:"🇷🇺 Russia"}),n.jsx("option",{value:"MD",children:"🇲🇩 Moldova"}),n.jsx("option",{value:"KZ",children:"🇰🇿 Kazakhstan"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Язык интерфейса Google"}),n.jsx("select",{value:a,onChange:F=>i(F.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-lg",children:_.map(F=>n.jsx("option",{value:F,children:F==="en"?"🇬🇧 English":F==="es"?"🇪🇸 Español":F==="ru"?"🇷🇺 Русский":F==="ro"?"🇷🇴 Română":F==="ko"?"🇰🇷 한국어":F==="pt-BR"?"🇧🇷 Português (BR)":F.toUpperCase()},F))})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Устройство"}),n.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[n.jsxs("button",{onClick:()=>o("desktop"),className:`px-3 py-2 rounded-lg font-medium transition-all flex items-center justify-center gap-1 ${l==="desktop"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:[n.jsx(R0,{className:"w-4 h-4"}),"Desktop"]}),n.jsxs("button",{onClick:()=>o("mobile"),className:`px-3 py-2 rounded-lg font-medium transition-all flex items-center justify-center gap-1 ${l==="mobile"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:[n.jsx(nC,{className:"w-4 h-4"}),"Mobile"]}),n.jsx("button",{onClick:()=>o("both"),className:`px-3 py-2 rounded-lg font-medium transition-all ${l==="both"?"bg-blue-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"Оба"})]})]}),(l==="mobile"||l==="both")&&n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"ОС (для Mobile)"}),n.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[n.jsx("button",{onClick:()=>d("android"),className:`px-3 py-2 rounded-lg font-medium ${c==="android"?"bg-green-600 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"Android"}),n.jsx("button",{onClick:()=>d("ios"),className:`px-3 py-2 rounded-lg font-medium ${c==="ios"?"bg-gray-800 text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:"iOS"})]})]})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsxs("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:["Наши сайты (",u.length,")"]}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{className:"flex gap-2",children:[n.jsx("input",{type:"text",value:f,onChange:F=>h(F.target.value),onKeyPress:F=>F.key==="Enter"&&$(),placeholder:"https://site.com",className:"flex-1 px-3 py-2 border border-gray-300 rounded-lg text-sm"}),n.jsx("button",{onClick:$,className:"px-3 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700",children:"+ Добавить"})]}),n.jsxs("button",{onClick:O,className:"w-full px-3 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700 flex items-center justify-center gap-2",children:[n.jsx(Qm,{className:"w-4 h-4"}),"Выбрать из базы Notion"]}),n.jsx("div",{className:"max-h-64 overflow-y-auto space-y-2",children:u.map((F,Y)=>n.jsxs("div",{className:"flex items-center justify-between bg-gray-50 px-3 py-2 rounded",children:[n.jsx("span",{className:"text-sm text-gray-700 truncate",children:F}),n.jsx("button",{onClick:()=>L(Y),className:"text-red-600 hover:text-red-800",children:"✕"})]},Y))})]})]}),n.jsx("button",{onClick:M,disabled:B||!e.trim(),className:`w-full py-4 rounded-lg font-semibold text-white flex items-center justify-center gap-3 ${B?"bg-blue-400 cursor-not-allowed":"bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700"}`,children:B?n.jsxs(n.Fragment,{children:[n.jsx(Te,{className:"w-5 h-5 animate-spin"}),"Проверка..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Ot,{className:"w-5 h-5"}),"Запустить проверку"]})})]}),n.jsx("div",{className:"lg:col-span-2",children:n.jsxs("div",{className:"bg-white rounded-lg shadow",children:[n.jsx("div",{className:"border-b border-gray-200",children:n.jsxs("div",{className:"flex",children:[n.jsxs("button",{onClick:()=>S("all"),className:`flex-1 px-6 py-4 font-medium transition-all ${E==="all"?"border-b-2 border-blue-600 text-blue-600":"text-gray-600 hover:text-gray-900"}`,children:[n.jsx(_e,{className:"w-4 h-4 inline mr-2"}),"Вся выдача (",T.length,")"]}),n.jsxs("button",{onClick:()=>S("our"),className:`flex-1 px-6 py-4 font-medium transition-all ${E==="our"?"border-b-2 border-green-600 text-green-600":"text-gray-600 hover:text-gray-900"}`,children:[n.jsx(Tt,{className:"w-4 h-4 inline mr-2"}),"Наши сайты (",U.length,")"]})]})}),n.jsx("div",{className:"p-6",children:T.length===0?n.jsxs("div",{className:"text-center py-12",children:[n.jsx(_e,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-500",children:B?"Получаем данные из Google...":"Запустите проверку чтобы увидеть результаты"})]}):n.jsx("div",{className:"space-y-3",children:K.map((F,Y)=>n.jsx("div",{className:`border rounded-lg p-4 transition-all ${F.isOurSite?"border-green-500 bg-green-50":"border-gray-200 hover:border-gray-300"}`,children:n.jsxs("div",{className:"flex items-start gap-4",children:[n.jsx("div",{className:`flex-shrink-0 w-12 h-12 rounded-lg flex items-center justify-center font-bold text-lg ${F.position<=3?"bg-green-100 text-green-700":F.position<=10?"bg-blue-100 text-blue-700":F.position<=20?"bg-yellow-100 text-yellow-700":"bg-gray-100 text-gray-700"}`,children:F.position}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[n.jsx("h4",{className:"font-semibold text-gray-900 truncate",children:F.title}),F.isOurSite&&n.jsx("span",{className:"px-2 py-1 bg-green-600 text-white text-xs font-semibold rounded",children:"НАШ САЙТ"})]}),n.jsx("a",{href:F.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline truncate block",children:F.url}),n.jsx("p",{className:"text-sm text-gray-600 mt-2 line-clamp-2",children:F.description}),n.jsxs("div",{className:"flex items-center gap-3 mt-2 text-xs text-gray-500",children:[n.jsxs("span",{children:["Домен: ",F.domain]}),F.device&&n.jsx("span",{className:"px-2 py-1 bg-gray-100 rounded",children:F.device==="desktop"?"💻 Desktop":"📱 Mobile"})]})]})]})},Y))})})]})})]})]}),p&&n.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:n.jsxs("div",{className:"bg-white rounded-lg max-w-4xl w-full max-h-[80vh] flex flex-col",children:[n.jsxs("div",{className:"p-6 border-b",children:[n.jsx("h3",{className:"text-xl font-bold text-gray-900",children:"Выбрать сайты из базы Notion"}),n.jsxs("div",{className:"grid grid-cols-2 gap-4 mt-4",children:[n.jsx("input",{type:"text",value:b,onChange:F=>j(F.target.value),placeholder:"Фильтр по бренду...",className:"px-3 py-2 border border-gray-300 rounded-lg"}),n.jsx("input",{type:"text",value:w,onChange:F=>C(F.target.value),placeholder:"Фильтр по гео...",className:"px-3 py-2 border border-gray-300 rounded-lg"})]})]}),n.jsx("div",{className:"flex-1 overflow-y-auto p-6",children:n.jsx("div",{className:"space-y-2",children:R.map((F,Y)=>n.jsx("div",{onClick:()=>W(F.url),className:`p-3 border rounded-lg cursor-pointer transition-all ${N.has(F.url)?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"}`,children:n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx("input",{type:"checkbox",checked:N.has(F.url),onChange:()=>{},className:"rounded"}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsx("div",{className:"font-medium text-gray-900 truncate",children:F.url}),n.jsxs("div",{className:"text-sm text-gray-500",children:[F.brand," • ",F.geo.toUpperCase()," • ",F.status]})]})]})},Y))})}),n.jsxs("div",{className:"p-6 border-t flex gap-3",children:[n.jsx("button",{onClick:()=>{v(!1),A(new Set)},className:"flex-1 px-4 py-2 bg-gray-100 text-gray-700 rounded-lg hover:bg-gray-200",children:"Отмена"}),n.jsxs("button",{onClick:H,disabled:N.size===0,className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:["Добавить выбранные (",N.size,")"]})]})]})})]})},Hee=()=>{var C;const[e,t]=x.useState([]),[r,s]=x.useState(null),[a,i]=x.useState(""),[l,o]=x.useState([]),[c,d]=x.useState(!1),[u,m]=x.useState(""),[f,h]=x.useState(""),[p,v]=x.useState("");x.useEffect(()=>{y()},[u,f,p]);const y=async()=>{try{d(!0);const N=new URLSearchParams;u&&N.append("brand",u),f&&N.append("geo",f),p&&N.append("device",p);const A=await ye.get(`/api/rank-tracking/domains-overview?${N}`);A.data.success&&t(A.data.data||[])}catch(N){console.error("Error loading domains:",N)}finally{d(!1)}},g=async(N,A)=>{try{const _=await ye.get(`/api/rank-tracking/domain-serp?domain=${N}&keyword=${A}`);_.data.success&&o(_.data.results||[])}catch(_){console.error("Error loading SERP:",_)}},b=(N,A)=>{s(N),i(A),g(N,A)},j=N=>{const A=new Date(N);return`${A.getDate()} ${A.toLocaleDateString("ru",{month:"short"})}`},w=N=>!N||N>100?"text-gray-400":N<=3?"text-green-600 font-bold":N<=10?"text-blue-600 font-semibold":N<=20?"text-yellow-600":"text-gray-600";return n.jsxs("div",{className:"min-h-screen bg-slate-900 text-white",children:[n.jsx("div",{className:"bg-slate-800 border-b border-slate-700 px-6 py-4",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-blue-400",children:"Rank Tracker V1: Домены + SERP"}),n.jsx("p",{className:"text-slate-400",children:"Все домены с позициями и детальная выдача"})]}),n.jsxs("button",{onClick:y,className:"bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 flex items-center gap-2",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить"]})]})}),n.jsxs("div",{className:"flex h-[calc(100vh-80px)]",children:[n.jsx("div",{className:"w-1/2 bg-slate-800 border-r border-slate-700 overflow-y-auto",children:n.jsxs("div",{className:"p-4",children:[n.jsxs("div",{className:"mb-4 space-y-2",children:[n.jsx("input",{type:"text",value:u,onChange:N=>m(N.target.value),placeholder:"Фильтр по бренду...",className:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded text-white placeholder-slate-400"}),n.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[n.jsx("input",{type:"text",value:f,onChange:N=>h(N.target.value),placeholder:"Гео...",className:"px-3 py-2 bg-slate-700 border border-slate-600 rounded text-white placeholder-slate-400"}),n.jsxs("select",{value:p,onChange:N=>v(N.target.value),className:"px-3 py-2 bg-slate-700 border border-slate-600 rounded text-white",children:[n.jsx("option",{value:"",children:"Все устройства"}),n.jsx("option",{value:"desktop",children:"Desktop"}),n.jsx("option",{value:"mobile",children:"Mobile"})]})]})]}),n.jsx("div",{className:"bg-slate-700 rounded-lg overflow-hidden",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-slate-600",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-3 py-2 text-left text-xs text-slate-300",children:"Домен"}),n.jsx("th",{className:"px-3 py-2 text-left text-xs text-slate-300",children:"Keyword"}),n.jsx("th",{className:"px-3 py-2 text-center text-xs text-slate-300",children:"Поз."}),n.jsx("th",{className:"px-3 py-2 text-center text-xs text-slate-300",children:"Изм."})]})}),n.jsx("tbody",{className:"divide-y divide-slate-600",children:e.map((N,A)=>n.jsxs("tr",{onClick:()=>b(N.domain,N.keyword),className:`cursor-pointer transition-all ${r===N.domain&&a===N.keyword?"bg-blue-900":"hover:bg-slate-650"}`,children:[n.jsxs("td",{className:"px-3 py-3",children:[n.jsx("div",{className:"text-sm font-medium truncate",children:N.domain}),n.jsx("div",{className:"text-xs text-slate-400",children:N.searchVolume.toLocaleString()})]}),n.jsx("td",{className:"px-3 py-3",children:n.jsx("div",{className:"text-sm truncate",children:N.keyword})}),n.jsx("td",{className:"px-3 py-3 text-center",children:n.jsx("span",{className:`text-lg font-bold ${w(N.currentPosition)}`,children:N.currentPosition&&N.currentPosition<=100?N.currentPosition:"100+"})}),n.jsx("td",{className:"px-3 py-3 text-center",children:N.history.length>=2&&N.history[0].position&&N.history[1].position?n.jsxs("span",{className:`text-sm ${N.history[1].position-N.history[0].position>0?"text-green-400":N.history[1].position-N.history[0].position<0?"text-red-400":"text-slate-400"}`,children:[N.history[1].position-N.history[0].position>0?"↑":N.history[1].position-N.history[0].position<0?"↓":"−",Math.abs(N.history[1].position-N.history[0].position)]}):"-"})]},A))})]})})]})}),n.jsx("div",{className:"w-1/2 bg-slate-900 overflow-y-auto",children:r?n.jsxs("div",{className:"p-6 space-y-6",children:[n.jsxs("div",{className:"bg-slate-800 rounded-lg p-6",children:[n.jsxs("h3",{className:"text-lg font-semibold mb-4",children:["Позиция домена: ",r]}),n.jsx("div",{className:"h-64 flex items-end gap-2",children:(C=e.find(N=>N.domain===r&&N.keyword===a))==null?void 0:C.history.map((N,A)=>{const I=N.position&&N.position<=100?(100-N.position)/100*100:0;return n.jsxs("div",{className:"flex-1 flex flex-col items-center",children:[n.jsx("div",{className:"w-full bg-slate-700 rounded-t relative",style:{height:"200px"},children:N.position&&N.position<=100&&n.jsx("div",{className:"absolute bottom-0 w-full bg-blue-500 rounded-t flex items-center justify-center",style:{height:`${I}%`},children:n.jsx("span",{className:"text-white font-bold text-xs",children:N.position})})}),n.jsx("span",{className:"text-xs text-slate-400 mt-2",children:j(N.date)})]},A)})})]}),n.jsxs("div",{className:"bg-slate-800 rounded-lg p-6",children:[n.jsxs("h3",{className:"text-lg font-semibold mb-4",children:['SERP для "',a,'"']}),n.jsx("div",{className:"space-y-3",children:l.map((N,A)=>n.jsx("div",{className:`p-4 rounded-lg ${N.domain===r?"bg-green-900 border-2 border-green-500":"bg-slate-700"}`,children:n.jsxs("div",{className:"flex items-start gap-3",children:[n.jsx("div",{className:`w-10 h-10 rounded-lg flex items-center justify-center font-bold ${N.position<=3?"bg-green-600":N.position<=10?"bg-blue-600":"bg-slate-600"}`,children:N.position}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsx("h4",{className:"font-medium text-white truncate",children:N.title}),n.jsx("a",{href:N.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-400 hover:underline truncate block",children:N.url}),n.jsx("p",{className:"text-sm text-slate-400 mt-1 line-clamp-2",children:N.description})]})]})},A))})]})]}):n.jsx("div",{className:"flex items-center justify-center h-full",children:n.jsxs("div",{className:"text-center",children:[n.jsx(Ht,{className:"w-16 h-16 text-slate-600 mx-auto mb-4"}),n.jsx("p",{className:"text-slate-400",children:"Выберите домен для просмотра деталей"})]})})})]})]})},Vee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(null),[a,i]=x.useState([]),[l,o]=x.useState(!1),[c,d]=x.useState(""),[u,m]=x.useState("");x.useEffect(()=>{f()},[]);const f=async()=>{try{o(!0);const y=await ye.get("/api/rank-tracking/keywords-overview");y.data.success&&t(y.data.data||[])}catch(y){console.error("Error loading keywords:",y)}finally{o(!1)}},h=async y=>{try{const g=await ye.get(`/api/rank-tracking/keyword-serp?keyword=${y.keyword}&geo=${y.geo}&device=${y.device}`);g.data.success&&i(g.data.results||[])}catch(g){console.error("Error loading SERP:",g)}},p=y=>{s(y),h(y)},v=e.filter(y=>{const g=!c||y.keyword.toLowerCase().includes(c.toLowerCase())||y.brand.toLowerCase().includes(c.toLowerCase()),b=!u||y.geo.toLowerCase()===u.toLowerCase();return g&&b});return n.jsxs("div",{className:"min-h-screen bg-gray-50",children:[n.jsx("div",{className:"bg-white border-b shadow-sm px-6 py-4",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Rank Tracker V2: Keywords View"}),n.jsx("p",{className:"text-gray-600",children:"Выберите keyword и увидьте все ваши сайты в выдаче"})]}),n.jsxs("button",{onClick:f,className:"bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 flex items-center gap-2",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить"]})]})}),n.jsxs("div",{className:"flex h-[calc(100vh-80px)]",children:[n.jsx("div",{className:"w-96 bg-white border-r overflow-y-auto",children:n.jsxs("div",{className:"p-4 space-y-4",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsxs("div",{className:"relative",children:[n.jsx(_e,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-gray-400"}),n.jsx("input",{type:"text",value:c,onChange:y=>d(y.target.value),placeholder:"Поиск по keyword или бренду...",className:"w-full pl-10 pr-3 py-2 border border-gray-300 rounded-lg"})]}),n.jsx("input",{type:"text",value:u,onChange:y=>m(y.target.value),placeholder:"Фильтр по гео (AR, US...)...",className:"w-full px-3 py-2 border border-gray-300 rounded-lg"})]}),n.jsx("div",{className:"space-y-2",children:v.map((y,g)=>n.jsxs("div",{onClick:()=>p(y),className:`p-4 border-2 rounded-lg cursor-pointer transition-all ${(r==null?void 0:r.keyword)===y.keyword&&(r==null?void 0:r.geo)===y.geo?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300 hover:bg-gray-50"}`,children:[n.jsxs("div",{className:"flex items-start justify-between",children:[n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsx("h4",{className:"font-semibold text-gray-900 truncate",children:y.keyword}),n.jsxs("p",{className:"text-sm text-gray-500",children:[y.brand," • ",y.geo.toUpperCase()]}),n.jsxs("p",{className:"text-xs text-gray-400 mt-1",children:[y.device," • ",y.language]})]}),n.jsxs("div",{className:"flex-shrink-0 ml-3 text-right",children:[n.jsx("div",{className:`text-2xl font-bold ${y.bestPosition&&y.bestPosition<=3?"text-green-600":y.bestPosition&&y.bestPosition<=10?"text-blue-600":y.bestPosition&&y.bestPosition<=20?"text-yellow-600":"text-gray-400"}`,children:y.bestPosition||"−"}),n.jsxs("div",{className:"text-xs text-gray-500",children:[y.ourSitesCount," ",y.ourSitesCount===1?"сайт":"сайтов"]})]})]}),n.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs",children:[n.jsxs("span",{className:"px-2 py-1 bg-purple-100 text-purple-700 rounded",children:["Vol: ",y.searchVolume.toLocaleString()]}),y.avgPosition&&n.jsxs("span",{className:"px-2 py-1 bg-gray-100 text-gray-700 rounded",children:["Avg: ",y.avgPosition.toFixed(1)]})]})]},g))})]})}),n.jsx("div",{className:"flex-1 bg-gray-50 overflow-y-auto p-6",children:r?n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsxs("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:["Выдача для: ",r.keyword]}),n.jsxs("div",{className:"flex items-center gap-4 text-sm text-gray-600",children:[n.jsxs("span",{children:["🌍 ",r.geo.toUpperCase()]}),n.jsxs("span",{children:["💻 ",r.device]}),n.jsxs("span",{children:["🗣 ",r.language]}),n.jsxs("span",{className:"text-blue-600 font-medium",children:[r.ourSitesCount," наших сайтов в выдаче"]})]})]}),n.jsx("div",{className:"space-y-3",children:a.map((y,g)=>n.jsx("div",{className:`rounded-lg shadow transition-all ${y.isOurSite?"bg-green-50 border-2 border-green-500":"bg-white border border-gray-200"}`,children:n.jsxs("div",{className:"p-4 flex items-start gap-4",children:[n.jsx("div",{className:`flex-shrink-0 w-12 h-12 rounded-lg flex items-center justify-center font-bold text-lg ${y.position<=3?"bg-green-100 text-green-700":y.position<=10?"bg-blue-100 text-blue-700":y.position<=20?"bg-yellow-100 text-yellow-700":"bg-gray-100 text-gray-700"}`,children:y.position}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[n.jsx("h4",{className:"font-semibold text-gray-900",children:y.title}),y.isOurSite&&n.jsx("span",{className:"px-2 py-1 bg-green-600 text-white text-xs font-bold rounded",children:"НАШ САЙТ ⭐"})]}),n.jsx("a",{href:y.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline block truncate",children:y.url}),n.jsx("p",{className:"text-sm text-gray-600 mt-2 line-clamp-3",children:y.description}),n.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:["Домен: ",n.jsx("span",{className:"font-medium",children:y.domain})]})]})]})},g))})]}):n.jsx("div",{className:"flex items-center justify-center h-full",children:n.jsxs("div",{className:"text-center",children:[n.jsx(Tt,{className:"w-20 h-20 text-gray-300 mx-auto mb-4"}),n.jsx("h3",{className:"text-xl font-semibold text-gray-700 mb-2",children:"Выберите keyword"}),n.jsx("p",{className:"text-gray-500",children:"Кликните на keyword слева чтобы увидеть SERP"})]})})})]})]})},Kee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(""),[a,i]=x.useState(null),[l,o]=x.useState(!1),[c,d]=x.useState(null),[u,m]=x.useState([]);x.useEffect(()=>{f()},[]),x.useEffect(()=>{r&&h(r)},[r]);const f=async()=>{try{const g=await ye.get("/api/rank-tracking/all-sites");if(g.data.success){const b=g.data.data||[];t(b),b.length>0&&!r&&s(b[0])}}catch(g){console.error("Error loading sites:",g)}},h=async g=>{try{o(!0);const b=await ye.get(`/api/rank-tracking/site-overview?site=${encodeURIComponent(g)}`);b.data.success&&i(b.data.data)}catch(b){console.error("Error loading site data:",b)}finally{o(!1)}},p=async(g,b)=>{try{d({keyword:g,geo:b});const j=await ye.get(`/api/rank-tracking/keyword-serp?keyword=${g}&geo=${b}&site=${r}`);j.data.success&&m(j.data.results||[])}catch(j){console.error("Error loading SERP:",j)}},v=g=>g>0?n.jsx(_l,{className:"w-3 h-3 text-green-600"}):g<0?n.jsx(Zm,{className:"w-3 h-3 text-red-600"}):n.jsx(Ga,{className:"w-3 h-3 text-gray-400"}),y=g=>!g||g>100?n.jsx("span",{className:"px-2 py-1 bg-gray-100 text-gray-500 rounded text-sm",children:"100+"}):g<=3?n.jsxs("span",{className:"px-3 py-1 bg-green-100 text-green-700 rounded font-bold text-lg",children:["#",g]}):g<=10?n.jsxs("span",{className:"px-3 py-1 bg-blue-100 text-blue-700 rounded font-semibold text-lg",children:["#",g]}):g<=20?n.jsxs("span",{className:"px-3 py-1 bg-yellow-100 text-yellow-700 rounded",children:["#",g]}):n.jsxs("span",{className:"px-2 py-1 bg-gray-100 text-gray-600 rounded",children:["#",g]});return n.jsxs("div",{className:"min-h-screen bg-gradient-to-br from-blue-50 to-purple-50",children:[n.jsx("div",{className:"bg-white shadow-md px-6 py-4",children:n.jsxs("div",{className:"flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Rank Tracker V3: Site-Centric View"}),n.jsx("p",{className:"text-gray-600",children:"Выберите сайт и увидьте все его позиции"})]}),n.jsxs("button",{onClick:()=>h(r),className:"bg-gradient-to-r from-blue-600 to-purple-600 text-white px-4 py-2 rounded-lg hover:from-blue-700 hover:to-purple-700 flex items-center gap-2",children:[n.jsx(Te,{className:"w-4 h-4"}),"Обновить"]})]})}),n.jsxs("div",{className:"p-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md p-6 mb-6",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:[n.jsx(vt,{className:"w-4 h-4 inline mr-1"}),"Выберите сайт"]}),n.jsxs("select",{value:r,onChange:g=>s(g.target.value),className:"w-full px-4 py-3 border-2 border-gray-300 rounded-lg text-lg font-medium focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[n.jsx("option",{value:"",children:"-- Выберите сайт --"}),e.map((g,b)=>n.jsx("option",{value:g,children:g},b))]})]}),a&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4 mb-6",children:[n.jsx("div",{className:"bg-gradient-to-br from-blue-500 to-blue-600 text-white rounded-lg shadow-lg p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-blue-100 text-sm mb-1",children:"Всего keywords"}),n.jsx("p",{className:"text-3xl font-bold",children:a.totalKeywords})]}),n.jsx(Xe,{className:"w-12 h-12 opacity-50"})]})}),n.jsx("div",{className:"bg-gradient-to-br from-green-500 to-green-600 text-white rounded-lg shadow-lg p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-green-100 text-sm mb-1",children:"Топ-3 позиций"}),n.jsx("p",{className:"text-3xl font-bold",children:a.top3Count})]}),n.jsx(Je,{className:"w-12 h-12 opacity-50"})]})}),n.jsx("div",{className:"bg-gradient-to-br from-purple-500 to-purple-600 text-white rounded-lg shadow-lg p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-purple-100 text-sm mb-1",children:"Топ-10 позиций"}),n.jsx("p",{className:"text-3xl font-bold",children:a.top10Count})]}),n.jsx(Je,{className:"w-12 h-12 opacity-50"})]})}),n.jsx("div",{className:"bg-gradient-to-br from-yellow-500 to-orange-500 text-white rounded-lg shadow-lg p-6",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsx("p",{className:"text-yellow-100 text-sm mb-1",children:"Средняя позиция"}),n.jsx("p",{className:"text-3xl font-bold",children:a.avgPosition.toFixed(1)})]}),n.jsx(Xe,{className:"w-12 h-12 opacity-50"})]})})]}),n.jsx("div",{className:"bg-white rounded-lg shadow-md overflow-hidden",children:n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"w-full",children:[n.jsx("thead",{className:"bg-gray-50 border-b-2 border-gray-200",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-4 text-left text-xs font-semibold text-gray-700 uppercase",children:"Keyword"}),n.jsx("th",{className:"px-6 py-4 text-left text-xs font-semibold text-gray-700 uppercase",children:"Гео"}),n.jsx("th",{className:"px-6 py-4 text-left text-xs font-semibold text-gray-700 uppercase",children:"Устройство"}),n.jsx("th",{className:"px-6 py-4 text-center text-xs font-semibold text-gray-700 uppercase",children:"Позиция"}),n.jsx("th",{className:"px-6 py-4 text-center text-xs font-semibold text-gray-700 uppercase",children:"24ч"}),n.jsx("th",{className:"px-6 py-4 text-center text-xs font-semibold text-gray-700 uppercase",children:"7д"}),n.jsx("th",{className:"px-6 py-4 text-center text-xs font-semibold text-gray-700 uppercase",children:"Лучшая"}),n.jsx("th",{className:"px-6 py-4 text-right text-xs font-semibold text-gray-700 uppercase",children:"Search Vol"}),n.jsx("th",{className:"px-6 py-4 text-center text-xs font-semibold text-gray-700 uppercase",children:"SERP"})]})}),n.jsx("tbody",{className:"divide-y divide-gray-200",children:a.positions.map((g,b)=>n.jsxs("tr",{className:"hover:bg-gray-50 transition-colors",children:[n.jsxs("td",{className:"px-6 py-4",children:[n.jsx("div",{className:"font-medium text-gray-900",children:g.keyword}),n.jsx("div",{className:"text-xs text-gray-500",children:g.language})]}),n.jsx("td",{className:"px-6 py-4",children:n.jsx("span",{className:"px-2 py-1 bg-blue-100 text-blue-700 rounded text-sm font-medium",children:g.geo.toUpperCase()})}),n.jsx("td",{className:"px-6 py-4 text-sm text-gray-600",children:g.device==="desktop"?"💻 Desktop":"📱 Mobile"}),n.jsx("td",{className:"px-6 py-4 text-center",children:y(g.currentPosition)}),n.jsx("td",{className:"px-6 py-4 text-center",children:n.jsxs("div",{className:"flex items-center justify-center gap-1",children:[v(g.change24h),n.jsx("span",{className:`text-sm font-medium ${g.change24h>0?"text-green-600":g.change24h<0?"text-red-600":"text-gray-400"}`,children:g.change24h!==0?Math.abs(g.change24h):"−"})]})}),n.jsx("td",{className:"px-6 py-4 text-center",children:n.jsxs("div",{className:"flex items-center justify-center gap-1",children:[v(g.change7d),n.jsx("span",{className:`text-sm font-medium ${g.change7d>0?"text-green-600":g.change7d<0?"text-red-600":"text-gray-400"}`,children:g.change7d!==0?Math.abs(g.change7d):"−"})]})}),n.jsx("td",{className:"px-6 py-4 text-center",children:n.jsx("span",{className:"text-green-600 font-bold",children:g.bestPosition&&g.bestPosition<=100?`#${g.bestPosition}`:"−"})}),n.jsx("td",{className:"px-6 py-4 text-right",children:n.jsx("span",{className:"text-sm text-gray-600",children:g.searchVolume>=1e3?`${(g.searchVolume/1e3).toFixed(1)}K`:g.searchVolume})}),n.jsx("td",{className:"px-6 py-4 text-center",children:n.jsx("button",{onClick:()=>p(g.keyword,g.geo),className:"text-blue-600 hover:text-blue-800",title:"Посмотреть SERP",children:n.jsx(Ht,{className:"w-5 h-5"})})})]},b))})]})})}),n.jsx("div",{className:"mt-6 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:a.positions.slice(0,6).map((g,b)=>n.jsxs("div",{className:"bg-white rounded-lg shadow p-4",children:[n.jsxs("h4",{className:"text-sm font-semibold text-gray-900 mb-2 truncate",children:[g.keyword," (",g.geo.toUpperCase(),")"]}),n.jsx("div",{className:"h-20 flex items-end gap-1",children:g.history.map((j,w)=>{const C=j.position&&j.position<=100?(100-j.position)/100*100:0;return n.jsx("div",{className:"flex-1 flex flex-col items-center",children:n.jsx("div",{className:"w-full bg-gray-200 rounded relative",style:{height:"60px"},children:j.position&&j.position<=100&&n.jsx("div",{className:"absolute bottom-0 w-full bg-blue-500 rounded flex items-end justify-center pb-1",style:{height:`${C}%`},title:`${j.position} - ${new Date(j.date).toLocaleDateString("ru")}`,children:n.jsx("span",{className:"text-white text-[8px] font-bold",children:j.position})})})},w)})}),n.jsxs("div",{className:"mt-2 flex items-center justify-between text-xs text-gray-500",children:[n.jsx("span",{children:"7 дней"}),n.jsxs("span",{className:`font-medium ${g.change7d>0?"text-green-600":g.change7d<0?"text-red-600":"text-gray-500"}`,children:[g.change7d>0?"↑":g.change7d<0?"↓":"−"," ",Math.abs(g.change7d)]})]})]},b))})]})]}),c&&n.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:n.jsxs("div",{className:"bg-white rounded-lg max-w-4xl w-full max-h-[80vh] overflow-y-auto",children:[n.jsxs("div",{className:"sticky top-0 bg-white border-b p-6 flex justify-between items-center",children:[n.jsxs("div",{children:[n.jsxs("h3",{className:"text-xl font-bold text-gray-900",children:["SERP: ",c.keyword]}),n.jsxs("p",{className:"text-sm text-gray-600",children:[c.geo.toUpperCase()," • Ваш сайт: ",r]})]}),n.jsx("button",{onClick:()=>d(null),className:"text-gray-500 hover:text-gray-700",children:"✕"})]}),n.jsx("div",{className:"p-6 space-y-3",children:u.map((g,b)=>n.jsx("div",{className:`p-4 rounded-lg border-2 ${g.url.includes(r)?"bg-green-50 border-green-500":"bg-white border-gray-200"}`,children:n.jsxs("div",{className:"flex items-start gap-3",children:[n.jsx("div",{className:`w-10 h-10 rounded-lg flex items-center justify-center font-bold ${g.position<=3?"bg-green-600 text-white":g.position<=10?"bg-blue-600 text-white":"bg-gray-300 text-gray-700"}`,children:g.position}),n.jsxs("div",{className:"flex-1 min-w-0",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[n.jsx("h4",{className:"font-semibold text-gray-900",children:g.title}),g.url.includes(r)&&n.jsx("span",{className:"px-2 py-1 bg-green-600 text-white text-xs font-bold rounded",children:"⭐ ВАШ САЙТ"})]}),n.jsx("a",{href:g.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline block truncate",children:g.url}),n.jsx("p",{className:"text-sm text-gray-600 mt-2",children:g.description})]})]})},b))})]})})]})},Wee=()=>(x.useEffect(()=>{const e=document.querySelector('meta[name="robots"]');if(e)e.setAttribute("content","noindex, nofollow");else{const t=document.createElement("meta");t.name="robots",t.content="noindex, nofollow",document.head.appendChild(t)}},[]),n.jsx("div",{className:"min-h-screen bg-gradient-to-br from-gray-50 via-white to-gray-100 flex items-center justify-center px-4",children:n.jsxs("div",{className:"text-center max-w-2xl mx-auto",children:[n.jsx("div",{className:"mb-8",children:n.jsx(AM,{className:"w-24 h-24 text-gray-400 mx-auto mb-6 animate-pulse"})}),n.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Ведутся технические работы"}),n.jsxs("p",{className:"text-xl text-gray-600 mb-8",children:["Мы работаем над улучшением сервиса.",n.jsx("br",{}),"Скоро мы вернемся!"]}),n.jsx("div",{className:"bg-gray-100 rounded-lg p-4 text-sm text-gray-500",children:"Пожалуйста, зайдите позже."})]})})),qee=()=>{const[e,t]=x.useState(""),[r,s]=x.useState(""),[a,i]=x.useState(""),[l,o]=x.useState(!0),[c,d]=x.useState("—"),[u,m]=x.useState(!1),[f,h]=x.useState(null),p=x.useRef(null),v=x.useRef(null),y=D=>{D.querySelectorAll('script, style, link[rel="stylesheet"]').forEach(S=>S.remove());const E=D.createTreeWalker(D,NodeFilter.SHOW_ELEMENT,null);for(;E.nextNode();){const S=E.currentNode;Array.from(S.attributes).forEach(k=>{const P=k.name.toLowerCase();P.startsWith("on")&&S.removeAttribute(k.name),(P==="href"||P==="src")&&/javascript:/i.test(k.value)&&S.removeAttribute(k.name)})}return D},g=D=>{try{const E=new DOMParser().parseFromString(D,"text/html");y(E);const S=E.querySelector("main");return S?S.innerHTML:E.body?E.body.innerHTML:D}catch{return D}},b=D=>{const S=new DOMParser().parseFromString(`
${D}
`,"text/html").getElementById("r");if(!S)return D;const k=" ",P=L=>/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i.test(L.tagName),O=L=>L.replace(/&/g,"&").replace(//g,">"),$=(L,W)=>{var F;if(L.nodeType===Node.TEXT_NODE){const Y=((F=L.nodeValue)==null?void 0:F.replace(/\s+/g," ").trim())||"";return Y?k.repeat(W)+O(Y)+` `:""}if(L.nodeType!==Node.ELEMENT_NODE)return"";const M=L,R=M.tagName.toLowerCase();let U="";if(Array.from(M.attributes).forEach(Y=>{U+=" "+Y.name+(Y.value?`="${Y.value.replace(/"/g,""")}"`:"")}),P(M))return k.repeat(W)+`<${R}${U}> `;let K="";if(M.childNodes.forEach(Y=>K+=$(Y,W+1)),K&&!/\n.*\n/.test(K)&&K.length<120&&M.childElementCount===0){const Y=(M.textContent||"").trim();return k.repeat(W)+`<${R}${U}>`+O(Y)+` `}return k.repeat(W)+`<${R}${U}> `+K+k.repeat(W)+` `};let H="";return S.childNodes.forEach(L=>H+=$(L,0)),H.trim()},j=D=>{if(!D)return D;let E="";for(const S of D){const k=S.codePointAt(0);k&&k>=127744&&k<=128511||k&&k>=128512&&k<=128591||k&&k>=128640&&k<=128767||k&&k>=128768&&k<=128895||k&&k>=128896&&k<=129023||k&&k>=129024&&k<=129279||k&&k>=129280&&k<=129535||k&&k>=129536&&k<=129791||k&&k>=9728&&k<=9983||k&&k>=9984&&k<=10175||k===65039||k===8205||(E+=S)}return E},w=()=>{if(!p.current)return;const D=new DOMParser().parseFromString(`
${p.current.innerHTML}
`,"text/html"),E=D.getElementById("r");if(!E)return;y(D),E.querySelectorAll("header, footer, nav, aside, form, iframe, video, audio, canvas, object, embed, svg, picture, source, img, button, input, select, textarea, ins, del, noscript, template").forEach(L=>L.remove()),E.querySelectorAll("a").forEach(L=>{L.replaceWith(D.createTextNode(L.textContent||""))});const S=new Set(["h1","h2","h3","h4","h5","h6","p","ul","ol","li","table","thead","tbody","tfoot","tr","th","td","dl","dt","dd","blockquote","br","strong","em","b","i","u","code","pre"]);Array.from(E.querySelectorAll("*")).forEach(L=>{const W=L.tagName.toLowerCase();if(S.has(W))return;const M=D.createDocumentFragment();for(;L.firstChild;)M.appendChild(L.firstChild);L.replaceWith(M)}),E.querySelectorAll("*").forEach(L=>{Array.from(L.getAttributeNames()).forEach(W=>L.removeAttribute(W))});const P=L=>{var W;return!((W=L.textContent)!=null&&W.trim())&&!L.querySelector("br, img, table")};E.querySelectorAll("p, li, dt, dd").forEach(L=>{P(L)&&L.remove()}),E.innerHTML=E.innerHTML.replace(/ /g," ");const O=new DOMParser().parseFromString('
'+E.innerHTML+"
","text/html"),$=O.getElementById("_r");if($){const L=O.createTreeWalker($,NodeFilter.SHOW_TEXT,null);for(;L.nextNode();)L.currentNode.nodeValue&&(L.currentNode.nodeValue=j(L.currentNode.nodeValue));E.innerHTML=$.innerHTML}const H=E.innerHTML.trim();s(H),l&&i(b(H)),C(H)},C=D=>{var P;const E=D||((P=p.current)==null?void 0:P.innerHTML)||"",S=document.createElement("div");S.innerHTML=E;const k=Array.from(S.querySelectorAll("h1, h2, h3, h4, h5, h6")).map(O=>{var L;const $=parseInt(O.tagName.substring(1)),H=O.tagName.toLowerCase();return" ".repeat(($-1)*2)+`[${H.toUpperCase()}] `+((L=O.textContent)==null?void 0:L.trim())}).join(` `);d(k||"—")},N=D=>{var M;const E=((M=p.current)==null?void 0:M.innerHTML)||"";if(!E){h(null);return}const S=document.createElement("div");S.innerHTML=E;const k=S.textContent||S.innerText||"",O=k.trim().split(/\s+/).filter(R=>R.length>0).length,$={h1:S.querySelectorAll("h1").length,h2:S.querySelectorAll("h2").length,h3:S.querySelectorAll("h3").length,h4:S.querySelectorAll("h4").length,h5:S.querySelectorAll("h5").length,h6:S.querySelectorAll("h6").length,p:S.querySelectorAll("p").length,ul:S.querySelectorAll("ul").length,ol:S.querySelectorAll("ol").length,li:S.querySelectorAll("li").length},H=[];Array.from(S.querySelectorAll("h1, h2, h3, h4, h5, h6")).forEach(R=>{var K;const U=((K=R.textContent)==null?void 0:K.trim())||"";if(U){const F=parseInt(R.tagName.substring(1));H.push({level:F,text:U})}});let L=0,W=0;if(keyword.trim()){const R=keyword.toLowerCase().trim(),U=k.toLowerCase(),K=new RegExp(`\\b${R.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\b`,"gi"),F=U.match(K);L=F?F.length:0,W=O>0?L/O*100:0}h({extractedText:k.trim(),wordCount:O,structure:$,headings:H,keyword:keyword.trim()||void 0,keywordCount:keyword.trim()?L:void 0,keywordDensity:keyword.trim()?W:void 0})},A=D=>{const E=g(D);s(E),l&&i(b(E)),setTimeout(()=>C(E),100)},_=()=>{A(e)},I=()=>{A(e),setTimeout(()=>w(),100)},B=async D=>{var k;const E=(k=D.target.files)==null?void 0:k[0];if(!E)return;const S=await E.text();t(S)},z=async()=>{const D=a||b(r);await navigator.clipboard.writeText(D),m(!0),setTimeout(()=>m(!1),2e3)},T=()=>{const D=b(r),E=new Blob([D],{type:"text/html;charset=utf-8"}),S=URL.createObjectURL(E),k=document.createElement("a");k.href=S,k.download="content.html",k.click(),URL.revokeObjectURL(S)};return x.useEffect(()=>{l&&p.current&&i(b(p.current.innerHTML))},[r,l]),x.useEffect(()=>{l&&p.current&&(p.current.innerHTML=a,C())},[a]),x.useEffect(()=>{C(),N()},[r]),n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsxs("div",{className:"max-w-7xl mx-auto",children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-2",children:"HTML редактор → SEO-очистка"}),n.jsxs("p",{className:"text-gray-600 mb-6",children:["Шаги: ",n.jsx("strong",{children:"1) Вставьте/загрузите исходный HTML слева"})," → ",n.jsx("strong",{children:"2) Нажмите «Загрузить в редактор»"})," → ",n.jsx("strong",{children:"3) «SEO-очистка»"})," → (опционально) «Скачать» или «Копировать HTML»."]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 mb-4",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow-md border border-gray-200",children:[n.jsx("div",{className:"bg-gray-50 px-4 py-3 border-b border-gray-200 font-semibold text-gray-900",children:"1) Исходный HTML (вставка/загрузка)"}),n.jsxs("div",{className:"p-4",children:[n.jsx("textarea",{value:e,onChange:D=>t(D.target.value),placeholder:"Вставьте сюда полный HTML...",className:"w-full h-80 bg-gray-900 text-green-400 p-4 rounded-lg font-mono text-sm resize-none border border-gray-700"}),n.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-2",children:[n.jsx("div",{children:n.jsxs("label",{className:"btn-secondary cursor-pointer inline-block",children:[n.jsx("input",{ref:v,type:"file",accept:".html,.htm,.txt",onChange:B,className:"hidden"}),"Открыть файл…"]})}),n.jsxs("div",{className:"flex gap-2 justify-end",children:[n.jsx("button",{onClick:_,className:"btn-secondary text-sm",children:"Загрузить в редактор"}),n.jsx("button",{onClick:I,className:"btn-primary text-sm",children:"Загрузить + SEO-очистка"})]})]}),n.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:["При загрузке: берём содержимое ",n.jsx("strong",{children:"
"})," (если есть), иначе — ",n.jsx("strong",{children:""})]})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md border border-gray-200",children:[n.jsx("div",{className:"bg-gray-50 px-4 py-3 border-b border-gray-200 font-semibold text-gray-900",children:"2) Редактор (WYSIWYG ↔ исходник)"}),n.jsxs("div",{className:"p-4",children:[n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[n.jsx("div",{children:n.jsx("div",{ref:p,contentEditable:!0,dangerouslySetInnerHTML:{__html:r},className:"w-full h-96 bg-gray-50 border border-gray-300 rounded-lg p-4 overflow-auto text-sm",style:{minHeight:"400px"},onInput:()=>{p.current&&(s(p.current.innerHTML),C())}})}),n.jsx("div",{children:n.jsx("textarea",{value:a,onChange:D=>i(D.target.value),placeholder:"Исходный HTML фрагмента",className:"w-full h-96 bg-gray-900 text-green-400 p-4 rounded-lg font-mono text-sm resize-none border border-gray-700"})})]}),n.jsxs("div",{className:"flex flex-wrap items-center gap-2 mt-4",children:[n.jsx("button",{onClick:w,className:"btn-primary text-sm",children:"SEO-очистка"}),n.jsx("button",{onClick:()=>i(b(r)),className:"btn-secondary text-sm",children:"Форматировать"}),n.jsxs("button",{onClick:z,className:"btn-secondary text-sm flex items-center gap-1",children:[u?n.jsx(Nt,{className:"h-4 w-4"}):n.jsx(Cr,{className:"h-4 w-4"}),"Копировать HTML"]}),n.jsxs("button",{onClick:T,className:"btn-secondary text-sm flex items-center gap-1",children:[n.jsx(Mt,{className:"h-4 w-4"}),"Скачать HTML"]}),n.jsxs("label",{className:"text-xs text-gray-600 flex items-center gap-1",children:[n.jsx("input",{type:"checkbox",checked:l,onChange:D=>o(D.target.checked)}),"Синхронить редакторы"]})]})]})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md border border-gray-200 mb-4",children:[n.jsx("div",{className:"bg-gray-50 px-4 py-3 border-b border-gray-200 font-semibold text-gray-900",children:"3) Outline (проверка заголовков)"}),n.jsx("div",{className:"p-4",children:n.jsx("pre",{className:"text-xs font-mono bg-gray-50 border border-gray-300 rounded-lg p-4 max-h-40 overflow-auto whitespace-pre-wrap",children:c})})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow-md border border-gray-200",children:[n.jsxs("div",{className:"bg-gray-50 px-4 py-3 border-b border-gray-200 font-semibold text-gray-900 flex items-center justify-between",children:[n.jsx("span",{children:"4) Анализ текста (извлеченный текст, структура, статистика)"}),n.jsx("button",{onClick:()=>N(),className:"btn-secondary text-sm",children:"Обновить анализ"})]}),n.jsx("div",{className:"p-4",children:f?n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:"Извлеченный текст (без HTML):"}),n.jsx("div",{className:"bg-gray-50 border border-gray-300 rounded-lg p-4 max-h-96 overflow-auto",children:n.jsx("pre",{className:"text-xs whitespace-pre-wrap font-sans text-gray-800",children:f.extractedText||"(текст не найден)"})})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:"Статистика:"}),n.jsxs("div",{className:"bg-gray-50 border border-gray-300 rounded-lg p-4",children:[n.jsxs("div",{className:"grid grid-cols-2 gap-3 mb-4",children:[n.jsxs("div",{children:[n.jsx("div",{className:"text-xs text-gray-500",children:"Количество слов"}),n.jsx("div",{className:"text-2xl font-bold text-gray-900",children:f.wordCount.toLocaleString()})]}),n.jsxs("div",{children:[n.jsx("div",{className:"text-xs text-gray-500",children:"Символов"}),n.jsx("div",{className:"text-2xl font-bold text-gray-900",children:f.extractedText.length.toLocaleString()})]})]}),n.jsxs("div",{className:"border-t border-gray-300 pt-3 mt-3",children:[n.jsx("div",{className:"text-xs font-semibold text-gray-700 mb-2",children:"Структура документа:"}),n.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[n.jsxs("div",{children:["H1: ",n.jsx("span",{className:"font-semibold",children:f.structure.h1})]}),n.jsxs("div",{children:["H2: ",n.jsx("span",{className:"font-semibold",children:f.structure.h2})]}),n.jsxs("div",{children:["H3: ",n.jsx("span",{className:"font-semibold",children:f.structure.h3})]}),n.jsxs("div",{children:["H4: ",n.jsx("span",{className:"font-semibold",children:f.structure.h4})]}),n.jsxs("div",{children:["H5: ",n.jsx("span",{className:"font-semibold",children:f.structure.h5})]}),n.jsxs("div",{children:["H6: ",n.jsx("span",{className:"font-semibold",children:f.structure.h6})]}),n.jsxs("div",{children:["Параграфы: ",n.jsx("span",{className:"font-semibold",children:f.structure.p})]}),n.jsxs("div",{children:["Списки (ul): ",n.jsx("span",{className:"font-semibold",children:f.structure.ul})]}),n.jsxs("div",{children:["Списки (ol): ",n.jsx("span",{className:"font-semibold",children:f.structure.ol})]}),n.jsxs("div",{children:["Элементы списка: ",n.jsx("span",{className:"font-semibold",children:f.structure.li})]})]})]}),f.headings.length>0&&n.jsxs("div",{className:"border-t border-gray-300 pt-3 mt-3",children:[n.jsx("div",{className:"text-xs font-semibold text-gray-700 mb-2",children:"Заголовки:"}),n.jsx("div",{className:"max-h-40 overflow-auto",children:f.headings.map((D,E)=>n.jsxs("div",{className:"text-xs mb-1",style:{paddingLeft:`${(D.level-1)*12}px`},children:[n.jsxs("span",{className:"text-gray-500",children:["H",D.level,":"]})," ",n.jsx("span",{className:"text-gray-800",children:D.text})]},E))})]})]})]})]}):n.jsx("div",{className:"text-gray-500 text-sm",children:'Вставьте HTML и нажмите "Загрузить в редактор" для анализа'})})]})]})})},Gee=()=>{const[e,t]=x.useState(""),[r,s]=x.useState(!1),[a,i]=x.useState(!1),[l,o]=x.useState(null),[c,d]=x.useState(null),[u,m]=x.useState(null),[f,h]=x.useState(null),[p,v]=x.useState(!1),[y,g]=x.useState(null),[b,j]=x.useState({newTitle:"",newDescription:"",newH1:"",newCanonical:"",removeHreflang:!1,removeAnalytics:!0,removeScripts:!1,removeMetrics:!0,removeComments:!1,minifyHTML:!1}),[w,C]=x.useState(!0),N=async()=>{if(!e){alert("Введите URL");return}i(!0);try{const T=await(await fetch("/api/site-uniquifier/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})})).json();T.success?(o(T.data),j(D=>({...D,newTitle:T.data.title,newDescription:T.data.description,newH1:T.data.h1,newCanonical:T.data.canonical}))):alert("Ошибка: "+(T.error||"Неизвестная ошибка"))}catch(z){alert("Ошибка: "+z.message)}finally{i(!1)}},A=async()=>{if(!e){alert("Введите URL");return}s(!0);try{const T=await(await fetch("/api/site-uniquifier/uniquify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e,options:b,downloadResources:w})})).json();T.success?(d(T.data.modifiedHtml),m(T.data.changes),h(T.data.stats),T.data.zipPath&&g(T.data.zipPath)):alert("Ошибка: "+(T.error||"Неизвестная ошибка"))}catch(z){alert("Ошибка: "+z.message)}finally{s(!1)}},_=async()=>{if(c)try{await navigator.clipboard.writeText(c),v(!0),setTimeout(()=>v(!1),2e3)}catch{alert("Не удалось скопировать")}},I=()=>{if(!c)return;const z=new Blob([c],{type:"text/html"}),T=URL.createObjectURL(z),D=document.createElement("a");D.href=T,D.download=`uniquified-${new Date().getTime()}.html`,document.body.appendChild(D),D.click(),document.body.removeChild(D),URL.revokeObjectURL(T)},B=()=>{y&&window.open(`/api/site-uniquifier/download-zip?path=${encodeURIComponent(y)}`,"_blank")};return n.jsx("div",{className:"container mx-auto px-4 py-8",children:n.jsxs("div",{className:"max-w-6xl mx-auto",children:[n.jsxs("h1",{className:"text-3xl font-bold text-gray-900 mb-6 flex items-center gap-2",children:[n.jsx(Dr,{className:"h-8 w-8"}),"Уникализация сайта"]}),n.jsxs("div",{className:"card mb-6",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"URL сайта"}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("input",{type:"text",value:e,onChange:z=>t(z.target.value),placeholder:"https://example.com",className:"flex-1 px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"}),n.jsxs("button",{onClick:N,disabled:a||!e,className:"btn-primary flex items-center gap-2",children:[n.jsx(Mt,{className:"h-4 w-4"}),a?"Загрузка...":"Извлечь данные"]})]})]}),l&&n.jsxs("div",{className:"card mb-6",children:[n.jsxs("h2",{className:"text-xl font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[n.jsx(da,{className:"h-5 w-5"}),"Текущие метаданные"]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Title"}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded",children:l.title||"Не найден"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Description"}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded",children:l.description||"Не найден"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"H1"}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded",children:l.h1||"Не найден"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Canonical"}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded",children:l.canonical||"Не найден"})]}),n.jsxs("div",{className:"md:col-span-2",children:[n.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:["Hreflang (",l.hreflang.length,")"]}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded max-h-32 overflow-y-auto",children:l.hreflang.length>0?l.hreflang.map((z,T)=>n.jsxs("div",{children:[z.lang,": ",z.url]},T)):"Не найден"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Скриптов"}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded",children:l.scriptsCount})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Аналитика"}),n.jsx("div",{className:"text-sm text-gray-600 bg-gray-50 p-2 rounded",children:l.analyticsCount})]})]})]}),l&&n.jsxs("div",{className:"card mb-6",children:[n.jsxs("h2",{className:"text-xl font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[n.jsx(NM,{className:"h-5 w-5"}),"Настройки уникализации"]}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-800 mb-3",children:"Метатеги"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Новый Title"}),n.jsx("input",{type:"text",value:b.newTitle,onChange:z=>j(T=>({...T,newTitle:z.target.value})),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500",placeholder:"Введите новый title"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Новый Description"}),n.jsx("textarea",{value:b.newDescription,onChange:z=>j(T=>({...T,newDescription:z.target.value})),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500",rows:2,placeholder:"Введите новый description"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Новый H1"}),n.jsx("input",{type:"text",value:b.newH1,onChange:z=>j(T=>({...T,newH1:z.target.value})),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500",placeholder:"Введите новый H1"})]})]})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-800 mb-3",children:"Canonical и Hreflang"}),n.jsxs("div",{className:"space-y-3",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Новый Canonical URL"}),n.jsx("input",{type:"text",value:b.newCanonical,onChange:z=>j(T=>({...T,newCanonical:z.target.value})),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500",placeholder:"https://example.com/canonical"})]}),n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:b.removeHreflang,onChange:z=>j(T=>({...T,removeHreflang:z.target.checked})),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Удалить все Hreflang теги"})]})]})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-800 mb-3",children:"Скачивание ресурсов"}),n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:w,onChange:z=>C(z.target.checked),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Скачать все ресурсы (изображения, CSS, JS) и создать полную копию"})]})]}),n.jsxs("div",{children:[n.jsx("h3",{className:"text-lg font-medium text-gray-800 mb-3",children:"Очистка"}),n.jsxs("div",{className:"space-y-2",children:[n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:b.removeAnalytics,onChange:z=>j(T=>({...T,removeAnalytics:z.target.checked})),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Удалить аналитику (GA, Yandex Metrika, Facebook Pixel)"})]}),n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:b.removeMetrics,onChange:z=>j(T=>({...T,removeMetrics:z.target.checked})),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Удалить все метрики и трекинг"})]}),n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:b.removeScripts,onChange:z=>j(T=>({...T,removeScripts:z.target.checked})),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Удалить все скрипты"})]}),n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:b.removeComments,onChange:z=>j(T=>({...T,removeComments:z.target.checked})),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Удалить HTML комментарии"})]}),n.jsxs("label",{className:"flex items-center gap-2",children:[n.jsx("input",{type:"checkbox",checked:b.minifyHTML,onChange:z=>j(T=>({...T,minifyHTML:z.target.checked})),className:"rounded"}),n.jsx("span",{className:"text-sm text-gray-700",children:"Минифицировать HTML"})]})]})]})]}),n.jsx("div",{className:"mt-6",children:n.jsxs("button",{onClick:A,disabled:r,className:"btn-primary flex items-center gap-2",children:[n.jsx(Te,{className:`h-4 w-4 ${r?"animate-spin":""}`}),r?"Обработка...":"Уникализировать"]})})]}),c&&u&&f&&n.jsxs("div",{className:"card mb-6",children:[n.jsxs("h2",{className:"text-xl font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[n.jsx(L0,{className:"h-5 w-5"}),"Результаты уникализации"]}),n.jsxs("div",{className:"mb-4 p-4 bg-blue-50 rounded-lg",children:[n.jsx("h3",{className:"font-medium text-gray-900 mb-2",children:"Статистика:"}),n.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm",children:[n.jsxs("div",{children:[n.jsx("div",{className:"text-gray-600",children:"Исходный размер"}),n.jsxs("div",{className:"font-medium",children:[(f.originalSize/1024).toFixed(2)," KB"]})]}),n.jsxs("div",{children:[n.jsx("div",{className:"text-gray-600",children:"Новый размер"}),n.jsxs("div",{className:"font-medium",children:[(f.modifiedSize/1024).toFixed(2)," KB"]})]}),n.jsxs("div",{children:[n.jsx("div",{className:"text-gray-600",children:"Уменьшение"}),n.jsxs("div",{className:"font-medium text-green-600",children:[f.reductionPercent,"%"]})]}),n.jsxs("div",{children:[n.jsx("div",{className:"text-gray-600",children:"Удалено скриптов"}),n.jsx("div",{className:"font-medium",children:u.scriptsRemoved})]}),f.totalResources!==void 0&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{children:[n.jsx("div",{className:"text-gray-600",children:"Всего ресурсов"}),n.jsx("div",{className:"font-medium",children:f.totalResources})]}),n.jsxs("div",{children:[n.jsx("div",{className:"text-gray-600",children:"Скачано ресурсов"}),n.jsx("div",{className:"font-medium text-green-600",children:f.downloadedResources})]})]})]})]}),n.jsxs("div",{className:"mb-4",children:[n.jsx("h3",{className:"font-medium text-gray-900 mb-2",children:"Выполненные изменения:"}),n.jsxs("div",{className:"space-y-1 text-sm",children:[u.titleChanged&&n.jsx("div",{className:"text-green-600",children:"✓ Title изменен"}),u.descriptionChanged&&n.jsx("div",{className:"text-green-600",children:"✓ Description изменен"}),u.h1Changed&&n.jsx("div",{className:"text-green-600",children:"✓ H1 изменен"}),u.canonicalChanged&&n.jsx("div",{className:"text-green-600",children:"✓ Canonical изменен"}),u.hreflangRemoved&&n.jsx("div",{className:"text-green-600",children:"✓ Hreflang удален"}),u.hreflangChanged&&n.jsx("div",{className:"text-green-600",children:"✓ Hreflang изменен"}),u.analyticsRemoved>0&&n.jsxs("div",{className:"text-green-600",children:["✓ Удалено аналитики: ",u.analyticsRemoved]}),u.scriptsRemoved>0&&n.jsxs("div",{className:"text-green-600",children:["✓ Удалено скриптов: ",u.scriptsRemoved]}),u.commentsRemoved>0&&n.jsxs("div",{className:"text-green-600",children:["✓ Удалено комментариев: ",u.commentsRemoved]})]})]}),n.jsxs("div",{className:"flex gap-2 flex-wrap",children:[n.jsxs("button",{onClick:_,className:"btn-secondary flex items-center gap-2",children:[p?n.jsx(Nt,{className:"h-4 w-4"}):n.jsx(Cr,{className:"h-4 w-4"}),p?"Скопировано":"Копировать HTML"]}),n.jsxs("button",{onClick:I,className:"btn-secondary flex items-center gap-2",children:[n.jsx(Mt,{className:"h-4 w-4"}),"Скачать HTML"]}),y&&n.jsxs("button",{onClick:B,className:"btn-primary flex items-center gap-2",children:[n.jsx(Mt,{className:"h-4 w-4"}),"Скачать ZIP архив (полная копия)"]}),u.resourcesDownloaded>0&&n.jsxs("div",{className:"text-sm text-gray-600 flex items-center gap-2",children:[n.jsx(Nt,{className:"h-4 w-4 text-green-600"}),"Скачано ресурсов: ",u.resourcesDownloaded]})]}),n.jsx("div",{className:"mt-4",children:n.jsxs("details",{children:[n.jsx("summary",{className:"cursor-pointer text-sm font-medium text-gray-700 hover:text-gray-900",children:"Показать модифицированный HTML"}),n.jsxs("pre",{className:"mt-2 p-4 bg-gray-900 text-gray-100 rounded-lg overflow-auto max-h-96 text-xs",children:[c.substring(0,5e3),c.length>5e3&&` ... (HTML обрезан для предпросмотра) ...`]})]})})]})]})})},Yee=()=>{const[e,t]=x.useState([]),[r,s]=x.useState(!0),[a,i]=x.useState(null),[l,o]=x.useState(!1),[c,d]=x.useState(null),[u,m]=x.useState(null),[f,h]=x.useState("changes"),[p,v]=x.useState([]),[y,g]=x.useState([]),[b,j]=x.useState([]),[w,C]=x.useState({}),[N,A]=x.useState({keyword:"",geo:"",language:"en",device:"mobile",topN:3,scanFrequency:"daily",enabled:!0,notifyPositionChanges:!0,notifyCodeChanges:!0,notifyMetaChanges:!0,notifyOurSiteTop:!0,notifyOurSiteTop100:!1,notifyOurSiteTop10:!0,notifyOurSiteTop3:!0,notifyOurSiteTop1:!0}),_=[{code:"en",name:"English"},{code:"es",name:"Spanish"},{code:"ru",name:"Russian"},{code:"de",name:"German"},{code:"fr",name:"French"},{code:"it",name:"Italian"},{code:"pt",name:"Portuguese"},{code:"pl",name:"Polish"},{code:"tr",name:"Turkish"}],I=["AR","AZ","BD","BO","BR","CL","CO","CR","EC","ES","GT","IN","ID","IT","JP","KE","KG","KR","KZ","MD","MX","MY","MZ","NG","NZ","PA","PE","PH","PK","PL","PT","TR","UG","US","UZ","VE","VN","ZA","ZM"];x.useEffect(()=>{B()},[]),x.useEffect(()=>{u&&z(u)},[u,f]);const B=async()=>{try{s(!0),i(null);const O=await(await fetch("/api/competitor-monitor/configs")).json();O.success?t(O.data):i(O.error||"Ошибка загрузки конфигураций")}catch(P){i("Ошибка подключения к серверу"),console.error("Error loading configs:",P)}finally{s(!1)}},z=async P=>{try{if(f==="changes"){const $=await(await fetch(`/api/competitor-monitor/changes/${P}?limit=100`)).json();$.success&&v($.data)}else if(f==="links"){const $=await(await fetch(`/api/competitor-monitor/links/${P}`)).json();$.success&&g($.data)}else if(f==="history"){const $=await(await fetch(`/api/competitor-monitor/history/${P}`)).json();$.success&&j($.data)}}catch(O){console.error("Error loading config data:",O)}},T=async P=>{P.preventDefault();try{s(!0);const $=await(await fetch("/api/competitor-monitor/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(N)})).json();$.success?(await B(),o(!1),d(null),S(),alert("Конфигурация сохранена успешно!")):i($.error||"Ошибка сохранения конфигурации")}catch(O){i("Ошибка подключения к серверу"),console.error("Error saving config:",O)}finally{s(!1)}},D=P=>{d(P),A({keyword:P.keyword,geo:P.geo,language:P.language,device:P.device,topN:P.topN,scanFrequency:P.scanFrequency,enabled:P.enabled,notifyPositionChanges:P.notifyPositionChanges,notifyCodeChanges:P.notifyCodeChanges,notifyMetaChanges:P.notifyMetaChanges,notifyOurSiteTop:P.notifyOurSiteTop,notifyOurSiteTop100:P.notifyOurSiteTop100,notifyOurSiteTop10:P.notifyOurSiteTop10,notifyOurSiteTop3:P.notifyOurSiteTop3,notifyOurSiteTop1:P.notifyOurSiteTop1}),o(!0)},E=async P=>{if(confirm("Запустить сканирование? Это может занять несколько минут."))try{C(H=>({...H,[P]:!0}));const $=await(await fetch(`/api/competitor-monitor/scan/${P}`,{method:"POST"})).json();$.success?(alert(`Сканирование завершено! Позиций: ${$.data.positions.length} Изменений: ${$.data.changes.length}`),u===P&&z(P)):alert("Ошибка сканирования: "+($.error||"Неизвестная ошибка"))}catch(O){alert("Ошибка подключения к серверу"),console.error("Error scanning:",O)}finally{C(O=>({...O,[P]:!1}))}},S=()=>{A({keyword:"",geo:"",language:"en",device:"mobile",topN:3,scanFrequency:"daily",enabled:!0,notifyPositionChanges:!0,notifyCodeChanges:!0,notifyMetaChanges:!0,notifyOurSiteTop:!0,notifyOurSiteTop100:!1,notifyOurSiteTop10:!0,notifyOurSiteTop3:!0,notifyOurSiteTop1:!0})},k=P=>({position:"Позиция",code:"Код",title:"Title",description:"Description",canonical:"Canonical",hreflang:"Hreflang",our_site_top:"Наш сайт в топе"})[P]||P;return r&&e.length===0?n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsx("div",{className:"max-w-7xl mx-auto",children:n.jsxs("div",{className:"text-center py-12",children:[n.jsx("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"}),n.jsx("p",{className:"mt-4 text-gray-600",children:"Загрузка..."})]})})}):n.jsx("div",{className:"min-h-screen bg-gray-50 p-6",children:n.jsxs("div",{className:"max-w-7xl mx-auto",children:[n.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[n.jsxs("div",{children:[n.jsxs("h1",{className:"text-3xl font-bold text-gray-900 flex items-center gap-2",children:[n.jsx(_e,{className:"h-8 w-8"}),"Мониторинг конкурентов"]}),n.jsx("p",{className:"mt-2 text-gray-600",children:"Отслеживание изменений позиций, кода, метатегов и связей конкурентов"})]}),n.jsxs("button",{onClick:()=>{S(),d(null),o(!0)},className:"btn-primary flex items-center gap-2",children:[n.jsx(jr,{className:"h-5 w-5"}),"Создать конфигурацию"]})]}),a&&n.jsx("div",{className:"mb-4 p-4 bg-red-50 border border-red-200 rounded-lg text-red-800",children:a}),l&&n.jsxs("div",{className:"mb-6 bg-white rounded-lg shadow p-6",children:[n.jsx("h2",{className:"text-xl font-semibold mb-4",children:c?"Редактировать конфигурацию":"Создать конфигурацию"}),n.jsxs("form",{onSubmit:T,className:"space-y-4",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Ключевое слово *"}),n.jsx("input",{type:"text",value:N.keyword,onChange:P=>A({...N,keyword:P.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",required:!0})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"ГЕО *"}),n.jsxs("select",{value:N.geo,onChange:P=>A({...N,geo:P.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",required:!0,children:[n.jsx("option",{value:"",children:"Выберите ГЕО"}),I.map(P=>n.jsx("option",{value:P,children:P},P))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Язык браузера *"}),n.jsx("select",{value:N.language,onChange:P=>A({...N,language:P.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",required:!0,children:_.map(P=>n.jsx("option",{value:P.code,children:P.name},P.code))})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Устройство *"}),n.jsxs("select",{value:N.device,onChange:P=>A({...N,device:P.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",required:!0,children:[n.jsx("option",{value:"mobile",children:"Mobile"}),n.jsx("option",{value:"desktop",children:"Desktop"})]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Топ-N сайтов для отслеживания"}),n.jsx("input",{type:"number",min:"1",max:"10",value:N.topN,onChange:P=>A({...N,topN:parseInt(P.target.value)}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Частота сканирования"}),n.jsxs("select",{value:N.scanFrequency,onChange:P=>A({...N,scanFrequency:P.target.value}),className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[n.jsx("option",{value:"hourly",children:"Каждый час"}),n.jsx("option",{value:"daily",children:"Ежедневно"}),n.jsx("option",{value:"weekly",children:"Еженедельно"})]})]})]}),n.jsxs("div",{className:"border-t pt-4",children:[n.jsx("h3",{className:"text-lg font-semibold mb-3",children:"Уведомления"}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.enabled,onChange:P=>A({...N,enabled:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Включено"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyPositionChanges,onChange:P=>A({...N,notifyPositionChanges:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Изменения позиций"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyCodeChanges,onChange:P=>A({...N,notifyCodeChanges:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Изменения кода"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyMetaChanges,onChange:P=>A({...N,notifyMetaChanges:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Изменения метатегов"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyOurSiteTop,onChange:P=>A({...N,notifyOurSiteTop:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Наш сайт в топе"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyOurSiteTop100,onChange:P=>A({...N,notifyOurSiteTop100:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Наш сайт в топ-100"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyOurSiteTop10,onChange:P=>A({...N,notifyOurSiteTop10:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Наш сайт в топ-10"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyOurSiteTop3,onChange:P=>A({...N,notifyOurSiteTop3:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Наш сайт в топ-3"})]}),n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:N.notifyOurSiteTop1,onChange:P=>A({...N,notifyOurSiteTop1:P.target.checked}),className:"w-4 h-4"}),n.jsx("span",{children:"Наш сайт в топ-1"})]})]})]}),n.jsxs("div",{className:"flex gap-3 pt-4",children:[n.jsx("button",{type:"submit",className:"btn-primary",children:c?"Сохранить":"Создать"}),n.jsx("button",{type:"button",onClick:()=>{o(!1),d(null),S()},className:"btn-secondary",children:"Отмена"})]})]})]}),n.jsxs("div",{className:"bg-white rounded-lg shadow overflow-hidden",children:[n.jsx("div",{className:"px-6 py-4 border-b border-gray-200",children:n.jsx("h2",{className:"text-xl font-semibold",children:"Конфигурации мониторинга"})}),e.length===0?n.jsxs("div",{className:"p-12 text-center text-gray-500",children:[n.jsx(_e,{className:"h-12 w-12 mx-auto mb-4 text-gray-400"}),n.jsx("p",{children:"Нет конфигураций. Создайте первую конфигурацию для начала мониторинга."})]}):n.jsx("div",{className:"divide-y divide-gray-200",children:e.map(P=>n.jsx("div",{className:`p-6 hover:bg-gray-50 cursor-pointer transition-colors ${u===P.id?"bg-blue-50":""}`,onClick:()=>m(P.id===u?null:P.id),children:n.jsxs("div",{className:"flex items-start justify-between",children:[n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[n.jsxs("h3",{className:"text-lg font-semibold text-gray-900",children:[P.keyword," / ",P.geo]}),P.enabled?n.jsxs("span",{className:"px-2 py-1 text-xs font-semibold rounded bg-green-100 text-green-800 flex items-center gap-1",children:[n.jsx(Mr,{className:"h-3 w-3"}),"Активна"]}):n.jsxs("span",{className:"px-2 py-1 text-xs font-semibold rounded bg-gray-100 text-gray-800 flex items-center gap-1",children:[n.jsx(dr,{className:"h-3 w-3"}),"Отключена"]})]}),n.jsxs("div",{className:"flex flex-wrap gap-4 text-sm text-gray-600",children:[n.jsxs("span",{className:"flex items-center gap-1",children:[n.jsx(vt,{className:"h-4 w-4"}),P.language]}),n.jsxs("span",{className:"flex items-center gap-1",children:[P.device==="mobile"?n.jsx(nC,{className:"h-4 w-4"}):n.jsx(R0,{className:"h-4 w-4"}),P.device]}),n.jsxs("span",{children:["Топ-",P.topN]}),n.jsxs("span",{className:"flex items-center gap-1",children:[n.jsx(Ut,{className:"h-4 w-4"}),P.scanFrequency==="hourly"?"Каждый час":P.scanFrequency==="daily"?"Ежедневно":"Еженедельно"]})]})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("button",{onClick:O=>{O.stopPropagation(),E(P.id)},disabled:w[P.id],className:"btn-secondary flex items-center gap-2",title:"Запустить сканирование",children:w[P.id]?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-b-2 border-gray-600"}),"Сканирование..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Ot,{className:"h-4 w-4"}),"Сканировать"]})}),n.jsx("button",{onClick:O=>{O.stopPropagation(),D(P)},className:"btn-secondary",title:"Редактировать",children:n.jsx(Dr,{className:"h-5 w-5"})})]})]})},P.id))})]}),u&&n.jsxs("div",{className:"mt-6 bg-white rounded-lg shadow",children:[n.jsx("div",{className:"px-6 py-4 border-b border-gray-200",children:n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx("h2",{className:"text-xl font-semibold",children:"Детали мониторинга"}),n.jsx("button",{onClick:()=>m(null),className:"text-gray-500 hover:text-gray-700",children:n.jsx(dr,{className:"h-5 w-5"})})]})}),n.jsx("div",{className:"border-b border-gray-200",children:n.jsxs("div",{className:"flex",children:[n.jsxs("button",{onClick:()=>h("changes"),className:`px-6 py-3 font-medium text-sm border-b-2 transition-colors ${f==="changes"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:[n.jsx(bs,{className:"h-4 w-4 inline mr-2"}),"Изменения"]}),n.jsxs("button",{onClick:()=>h("links"),className:`px-6 py-3 font-medium text-sm border-b-2 transition-colors ${f==="links"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:[n.jsx(ii,{className:"h-4 w-4 inline mr-2"}),"Связи"]}),n.jsxs("button",{onClick:()=>h("history"),className:`px-6 py-3 font-medium text-sm border-b-2 transition-colors ${f==="history"?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:[n.jsx(hM,{className:"h-4 w-4 inline mr-2"}),"История"]})]})}),n.jsxs("div",{className:"p-6",children:[f==="changes"&&n.jsx("div",{className:"space-y-4",children:p.length===0?n.jsx("p",{className:"text-gray-500 text-center py-8",children:"Нет изменений"}):p.map(P=>{var O,$,H;return n.jsxs("div",{className:"border border-gray-200 rounded-lg p-4",children:[n.jsxs("div",{className:"flex items-start justify-between mb-2",children:[n.jsxs("div",{children:[n.jsx("div",{className:"font-semibold text-gray-900",children:k(P.changeType)}),n.jsx("div",{className:"text-sm text-gray-600 mt-1",children:n.jsx("a",{href:P.url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:P.domain})})]}),n.jsx("div",{className:"text-xs text-gray-500",children:new Date(P.detectedAt).toLocaleString("ru-RU")})]}),P.changeType==="position"&&n.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[n.jsx("span",{className:"text-sm text-gray-600",children:"Позиция:"}),n.jsx("span",{className:"text-sm font-semibold",children:P.oldValue||"?"}),n.jsx("span",{children:"→"}),n.jsx("span",{className:`text-sm font-semibold ${((O=P.details)==null?void 0:O.direction)==="up"?"text-green-600":"text-red-600"}`,children:P.newValue}),(($=P.details)==null?void 0:$.direction)==="up"?n.jsx(Je,{className:"h-4 w-4 text-green-600"}):n.jsx(ef,{className:"h-4 w-4 text-red-600"})]}),P.changeType==="title"&&n.jsxs("div",{className:"mt-2 text-sm",children:[n.jsxs("div",{className:"text-gray-600",children:["Было: ",P.oldValue||"—"]}),n.jsxs("div",{className:"text-gray-900 font-medium",children:["Стало: ",P.newValue||"—"]})]}),P.changeType==="our_site_top"&&n.jsxs("div",{className:"mt-2 text-sm text-green-600 font-semibold",children:["🎉 Наш сайт попал в ",((H=P.details)==null?void 0:H.milestone)||"топ","! Позиция: ",P.newValue]})]},P.id)})}),f==="links"&&n.jsx("div",{className:"space-y-4",children:y.length===0?n.jsx("p",{className:"text-gray-500 text-center py-8",children:"Нет связей"}):y.map(P=>n.jsx("div",{className:"border border-gray-200 rounded-lg p-4",children:n.jsx("div",{className:"flex items-start justify-between",children:n.jsxs("div",{className:"flex-1",children:[n.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[n.jsx("span",{className:`px-2 py-1 text-xs font-semibold rounded ${P.linkType==="canonical"?"bg-blue-100 text-blue-800":"bg-purple-100 text-purple-800"}`,children:P.linkType==="canonical"?"Canonical":"Hreflang"}),P.lang&&n.jsxs("span",{className:"text-xs text-gray-600",children:["Lang: ",P.lang]})]}),n.jsxs("div",{className:"text-sm",children:[n.jsxs("div",{className:"text-gray-600 mb-1",children:[n.jsx("span",{className:"font-medium",children:"Источник:"})," ",P.sourceDomain]}),n.jsxs("div",{className:"text-gray-900",children:[n.jsx("span",{className:"font-medium",children:"Цель:"})," ",P.targetDomain]})]}),n.jsxs("div",{className:"text-xs text-gray-500 mt-2",children:["Первый раз: ",new Date(P.firstSeenAt).toLocaleString("ru-RU")]})]})})},P.id))}),f==="history"&&n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Домен"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Текущая позиция"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Лучшая"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Худшая"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Появлений"}),n.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase",children:"Статус"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:b.length===0?n.jsx("tr",{children:n.jsx("td",{colSpan:6,className:"px-4 py-8 text-center text-gray-500",children:"Нет истории"})}):b.map(P=>n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-900",children:P.domain}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-600",children:P.lastSeenPosition||"—"}),n.jsx("td",{className:"px-4 py-3 text-sm text-green-600",children:P.bestPosition||"—"}),n.jsx("td",{className:"px-4 py-3 text-sm text-red-600",children:P.worstPosition||"—"}),n.jsx("td",{className:"px-4 py-3 text-sm text-gray-600",children:P.totalAppearances}),n.jsx("td",{className:"px-4 py-3 text-sm",children:P.isCurrentlyInTop?n.jsx("span",{className:"px-2 py-1 text-xs font-semibold rounded bg-green-100 text-green-800",children:"В топе"}):n.jsx("span",{className:"px-2 py-1 text-xs font-semibold rounded bg-red-100 text-red-800",children:"Вылетел"})})]},P.id))})]})})]})]})]})})},Xee=()=>{const[e,t]=x.useState(""),[r,s]=x.useState(""),[a,i]=x.useState(""),[l,o]=x.useState(!0),[c,d]=x.useState([]),[u,m]=x.useState([]),[f,h]=x.useState({}),[p,v]=x.useState(!0),[y,g]=x.useState(""),[b,j]=x.useState([]),[w,C]=x.useState(!1),[N,A]=x.useState([]),[_,I]=x.useState(!1),[B,z]=x.useState(""),[T,D]=x.useState(""),[E,S]=x.useState(!1),[k,P]=x.useState(null);x.useEffect(()=>{(async()=>{try{v(!0),P(null);const K=`/api/notion/available-filters${a?`?databaseId=${a}`:""}`;console.log("Fetching filters from:",K);const F=await fetch(K);if(console.log("Filters response status:",F.status),F.ok){const Y=await F.json();console.log("Filters data:",Y),Y.success?(d(Y.brands||[]),m(Y.geos||[]),h(Y.brandGeos||{}),(Y.brands||[]).length===0&&(Y.geos||[]).length===0&&P("В базе данных нет данных о брендах и странах. Проверьте подключение к базе данных или синхронизацию с Notion.")):P(Y.error||"Ошибка при загрузке фильтров")}else{const Y=await F.json().catch(()=>({error:"Неизвестная ошибка"}));console.error("Error response:",Y),P(Y.error||`Ошибка ${F.status}: ${F.statusText}`)}}catch(K){console.error("Error fetching filters:",K),P("Не удалось подключиться к серверу. Проверьте подключение.")}finally{v(!1)}})()},[a]),x.useEffect(()=>{!e&&!r?(async()=>{var K;try{I(!0);const F=`/api/notion/all-sites-best-positions${a?`?databaseId=${a}`:""}`;console.log("Fetching all sites from:",F);const Y=await fetch(F);if(console.log("All sites response status:",Y.status),Y.ok){const V=await Y.json();console.log("All sites data:",{count:V.count,sitesCount:(K=V.sitesWithPositions)==null?void 0:K.length}),A(V.sitesWithPositions||[])}else{const V=await Y.json().catch(()=>({}));console.error("Error response:",V),A([])}}catch(F){console.error("Error fetching all sites:",F),A([])}finally{I(!1)}})():A([])},[e,r,a]),x.useEffect(()=>{const U=localStorage.getItem("results_keyword"),K=localStorage.getItem("results_country"),F=localStorage.getItem("results_databaseId"),Y=localStorage.getItem("results_language");U&&t(U),K&&(s(K),(async()=>{try{C(!0);const q=await fetch(`/api/locations/languages/${K.toUpperCase()}`);if(q.ok){const J=await q.json();if(J.success&&J.data.languages){const G={en:"English",es:"Español",pt:"Português",ru:"Русский",pl:"Polski",it:"Italiano",de:"Deutsch",fr:"Français",tr:"Türkçe",ar:"العربية",ja:"日本語",ko:"한국어",zh:"中文",id:"Bahasa Indonesia",vi:"Tiếng Việt",th:"ไทย",ms:"Bahasa Melayu",az:"Azərbaycan",kk:"Қазақ",uz:"Oʻzbek",ky:"Кыргыз",ro:"Română",bn:"বাংলা",ur:"اردو",nl:"Nederlands",uk:"Українська",cs:"Čeština",sk:"Slovenčina",hu:"Magyar",bg:"Български",hr:"Hrvatski",sr:"Српски",el:"Ελληνικά",he:"עברית",fa:"فارسی",hi:"हिन्दी",ta:"தமிழ்",te:"తెలుగు",mr:"मराठी",gu:"ગુજરાતી",kn:"ಕನ್ನಡ",ml:"മലയാളം",or:"ଓଡ଼ିଆ",pa:"ਪੰਜਾਬੀ",as:"অসমীয়া",ne:"नेपाली",si:"සිංහල",my:"မြန်မာ",km:"ខ្មែរ",lo:"ລາວ",ka:"ქართული",hy:"Հայերեն",be:"Беларуская",mk:"Македонски",sq:"Shqip",et:"Eesti",lv:"Latviešu",lt:"Lietuvių",fi:"Suomi",sv:"Svenska",no:"Norsk",da:"Dansk",is:"Íslenska",ga:"Gaeilge",cy:"Cymraeg",mt:"Malti",eu:"Euskara",ca:"Català",gl:"Galego",sl:"Slovenščina",bs:"Bosanski",me:"Crnogorski",af:"Afrikaans",sw:"Kiswahili",am:"አማርኛ",yo:"Yorùbá",ig:"Igbo",ha:"Hausa",zu:"isiZulu",xh:"isiXhosa",st:"Sesotho",tn:"Setswana",ve:"Tshivenḓa",ts:"Xitsonga",ss:"siSwati",nr:"isiNdebele",nso:"Sesotho sa Leboa"},le=J.data.languages.map(ce=>({code:ce,name:G[ce]||ce.toUpperCase()}));j(le),Y&&J.data.languages.includes(Y)?g(Y):J.data.defaultLanguage?g(J.data.defaultLanguage):le.length>0&&g(le[0].code)}}}catch(q){console.error("Error loading languages:",q)}finally{C(!1)}})()),F&&i(F)},[]);const O=U=>{i(U),localStorage.setItem("results_databaseId",U)},$=U=>{t(U),localStorage.setItem("results_keyword",U),U&&f[U]&&!f[U].includes(r)&&(s(""),localStorage.removeItem("results_country"))},H=async U=>{if(s(U),localStorage.setItem("results_country",U),g(""),U)try{C(!0);const K=await fetch(`/api/locations/languages/${U.toUpperCase()}`);if(K.ok){const F=await K.json();if(F.success&&F.data.languages){const Y={en:"English",es:"Español",pt:"Português",ru:"Русский",pl:"Polski",it:"Italiano",de:"Deutsch",fr:"Français",tr:"Türkçe",ar:"العربية",ja:"日本語",ko:"한국어",zh:"中文",id:"Bahasa Indonesia",vi:"Tiếng Việt",th:"ไทย",ms:"Bahasa Melayu",az:"Azərbaycan",kk:"Қазақ",uz:"Oʻzbek",ky:"Кыргыз",ro:"Română",bn:"বাংলা",ur:"اردو",nl:"Nederlands",uk:"Українська",cs:"Čeština",sk:"Slovenčina",hu:"Magyar",bg:"Български",hr:"Hrvatski",sr:"Српски",el:"Ελληνικά",he:"עברית",fa:"فارسی",hi:"हिन्दी",ta:"தமிழ்",te:"తెలుగు",mr:"मराठी",gu:"ગુજરાતી",kn:"ಕನ್ನಡ",ml:"മലയാളം",or:"ଓଡ଼ିଆ",pa:"ਪੰਜਾਬੀ",as:"অসমীয়া",ne:"नेपाली",si:"සිංහල",my:"မြန်မာ",km:"ខ្មែរ",lo:"ລາວ",ka:"ქართული",hy:"Հայերեն",be:"Беларуская",mk:"Македонски",sq:"Shqip",et:"Eesti",lv:"Latviešu",lt:"Lietuvių",fi:"Suomi",sv:"Svenska",no:"Norsk",da:"Dansk",is:"Íslenska",ga:"Gaeilge",cy:"Cymraeg",mt:"Malti",eu:"Euskara",ca:"Català",gl:"Galego",sl:"Slovenščina",bs:"Bosanski",me:"Crnogorski",af:"Afrikaans",sw:"Kiswahili",am:"አማርኛ",yo:"Yorùbá",ig:"Igbo",ha:"Hausa",zu:"isiZulu",xh:"isiXhosa",st:"Sesotho",tn:"Setswana",ve:"Tshivenḓa",ts:"Xitsonga",ss:"siSwati",nr:"isiNdebele",nso:"Sesotho sa Leboa",zu:"isiZulu",xh:"isiXhosa"},V=F.data.languages.map(q=>({code:q,name:Y[q]||q.toUpperCase()}));j(V),F.data.defaultLanguage?g(F.data.defaultLanguage):V.length>0&&g(V[0].code)}}}catch(K){console.error("Error fetching languages:",K),j([])}finally{C(!1)}else j([])},L=()=>e?f[e]||[]:u,W=async()=>{if(!e||!r){alert("Выберите бренд и страну");return}if(!y){alert("Выберите язык браузера");return}try{S(!0);const U=await fetch("/api/notion/check-positions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keyword:e,country:r,language:y})});if(U.ok){const K=await U.json();K.success?(alert(`Проверка позиций запущена! Найдено результатов: ${K.totalResults||0}`),setTimeout(()=>{window.location.reload()},2e3)):alert(`Ошибка: ${K.error||"Не удалось запустить проверку"}`)}else{const K=await U.text();let F;try{F=JSON.parse(K)}catch{F={error:K||`HTTP ${U.status}: ${U.statusText}`}}console.error("Error response:",F),alert(`Ошибка: ${F.error||"Не удалось запустить проверку"}`)}}catch(U){console.error("Error checking positions:",U),alert(`Ошибка при запуске проверки позиций: ${U.message||"Неизвестная ошибка"}`)}finally{S(!1)}},M=U=>{try{return new URL(U.startsWith("http")?U:`https://${U}`).hostname.replace("www.","")}catch{return U}},R=N.filter(U=>{var Y;const K=!B||U.brand===B,F=!T||((Y=U.geo)==null?void 0:Y.toLowerCase())===T.toLowerCase();return K&&F});return n.jsxs("div",{className:"space-y-6",children:[n.jsxs("div",{className:"bg-white rounded-lg shadow p-6",children:[n.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-4",children:"Позиции сайтов"}),n.jsx("p",{className:"text-gray-600 mb-6",children:"Просмотр текущих, предыдущих и лучших позиций для всех сайтов. Используйте фильтры ниже для поиска или просмотрите все сайты в списке."}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsxs("h2",{className:"text-lg font-semibold text-gray-900 flex items-center gap-2",children:[n.jsx(Qm,{className:"h-5 w-5"}),"Параметры поиска"]}),n.jsxs("button",{onClick:()=>o(!l),className:"text-sm text-blue-600 hover:text-blue-800",children:[l?"Скрыть":"Показать"," фильтры"]})]}),l&&n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Бренд / Ключевое слово"}),n.jsxs("select",{value:e,onChange:U=>$(U.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",disabled:p,children:[n.jsx("option",{value:"",children:p?"Загрузка...":c.length===0?"Нет брендов":"Выберите бренд..."}),c.map(U=>n.jsx("option",{value:U,children:U},U))]}),k&&n.jsx("p",{className:"text-xs text-red-500 mt-1",children:k}),!p&&!k&&c.length===0&&n.jsx("p",{className:"text-xs text-yellow-600 mt-1",children:"В базе данных нет брендов. Убедитесь, что данные синхронизированы с Notion."})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Страна (код)"}),n.jsxs("select",{value:r,onChange:U=>H(U.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent uppercase",disabled:p||!e,children:[n.jsx("option",{value:"",children:p?"Загрузка...":e?L().length===0?"Нет стран":"Выберите страну...":"Сначала выберите бренд"}),L().map(U=>n.jsx("option",{value:U,children:U.toUpperCase()},U))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Язык браузера"}),n.jsxs("select",{value:y,onChange:U=>{g(U.target.value),localStorage.setItem("results_language",U.target.value)},className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",disabled:w||!r,children:[n.jsx("option",{value:"",children:w?"Загрузка...":r?b.length===0?"Нет языков":"Выберите язык...":"Сначала выберите страну"}),b.map(U=>n.jsxs("option",{value:U.code,children:[U.name," (",U.code,")"]},U.code))]})]})]}),l&&n.jsx("div",{className:"mt-4",children:n.jsxs("div",{className:"flex gap-2",children:[n.jsx("button",{onClick:W,disabled:!e||!r||!y||E,className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:E?n.jsxs(n.Fragment,{children:[n.jsx(Te,{className:"h-4 w-4 animate-spin"}),"Проверка..."]}):n.jsxs(n.Fragment,{children:[n.jsx(Ot,{className:"h-4 w-4"}),"Запустить проверку"]})}),(e||r)&&n.jsx("button",{onClick:()=>{t(""),s(""),g(""),localStorage.removeItem("results_keyword"),localStorage.removeItem("results_country"),localStorage.removeItem("results_language")},className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-md hover:bg-gray-300 flex items-center justify-center gap-2",title:"Очистить фильтры и показать все сайты",children:n.jsx(dr,{className:"h-4 w-4"})})]})}),l&&n.jsxs("div",{className:"mt-4",children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Database ID (опционально)"}),n.jsx("input",{type:"text",value:a,onChange:U=>O(U.target.value),placeholder:"ID базы данных Notion",className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]})]}),e&&r?n.jsx(lE,{keyword:e,country:r,databaseId:a||void 0}):n.jsx("div",{className:"space-y-4",children:n.jsxs("div",{className:"bg-white rounded-lg shadow",children:[n.jsxs("div",{className:"px-6 py-4 border-b border-gray-200",children:[n.jsxs("div",{className:"flex items-center justify-between mb-4",children:[n.jsxs("div",{children:[n.jsxs("h2",{className:"text-xl font-semibold text-gray-900 flex items-center gap-2",children:[n.jsx(Je,{className:"h-5 w-5"}),"Все сайты с позициями"]}),n.jsx("p",{className:"text-sm text-gray-500 mt-1",children:R.length>0?`Показано ${R.length} из ${N.length} сайтов. Отсортировано от лучшей позиции к худшей`:`Всего сайтов: ${N.length}`})]}),n.jsx("div",{className:"flex items-center gap-2",children:n.jsxs("button",{onClick:async()=>{I(!0);try{const U=await fetch(`/api/notion/all-sites-best-positions${a?`?databaseId=${a}`:""}`);if(U.ok){const K=await U.json();A(K.sitesWithPositions||[])}}catch(U){console.error("Error refreshing all sites:",U)}finally{I(!1)}},disabled:_,className:"flex items-center gap-2 px-4 py-2 text-sm text-gray-600 hover:text-gray-800 hover:bg-gray-100 rounded-md disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[n.jsx(Te,{className:`h-4 w-4 ${_?"animate-spin":""}`}),"Обновить"]})})]}),n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Фильтр по бренду"}),n.jsxs("select",{value:B,onChange:U=>z(U.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[n.jsx("option",{value:"",children:"Все бренды"}),c.map(U=>n.jsx("option",{value:U,children:U},U))]})]}),n.jsxs("div",{children:[n.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Фильтр по стране"}),n.jsxs("select",{value:T,onChange:U=>D(U.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent uppercase",children:[n.jsx("option",{value:"",children:"Все страны"}),u.map(U=>n.jsx("option",{value:U,children:U.toUpperCase()},U))]})]}),n.jsx("div",{className:"flex items-end",children:n.jsx("button",{onClick:()=>{z(""),D("")},disabled:!B&&!T,className:"w-full px-4 py-2 text-sm text-gray-600 hover:text-gray-800 hover:bg-gray-100 rounded-md disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:"Сбросить фильтры"})})]})]}),_?n.jsxs("div",{className:"p-12 text-center",children:[n.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-4"}),n.jsx("p",{className:"text-gray-500",children:"Загрузка данных..."})]}):N.length===0?n.jsxs("div",{className:"p-12 text-center",children:[n.jsx(_e,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Нет данных о позициях"}),n.jsx("p",{className:"text-gray-500 mb-4",children:p?"Загрузка фильтров...":"В базе данных нет сайтов с позициями. Проверьте подключение к базе данных или запустите проверку позиций."}),c.length>0&&n.jsxs("p",{className:"text-sm text-gray-400 mt-2",children:["Найдено брендов: ",c.length,", стран: ",u.length]})]}):R.length===0?n.jsxs("div",{className:"p-12 text-center",children:[n.jsx(_e,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),n.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"Нет сайтов, соответствующих фильтрам"}),n.jsx("p",{className:"text-gray-500 mb-4",children:"Попробуйте изменить фильтры"}),n.jsx("button",{onClick:()=>{z(""),D("")},className:"px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700",children:"Сбросить фильтры"})]}):n.jsx("div",{className:"overflow-x-auto",children:n.jsxs("table",{className:"min-w-full divide-y divide-gray-200",children:[n.jsx("thead",{className:"bg-gray-50",children:n.jsxs("tr",{children:[n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Сайт"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Бренд"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Страна"}),n.jsx("th",{className:"px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Текущая позиция"}),n.jsx("th",{className:"px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Лучшая позиция"}),n.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:"Последняя проверка"})]})}),n.jsx("tbody",{className:"bg-white divide-y divide-gray-200",children:R.map(U=>{var K;return n.jsxs("tr",{className:"hover:bg-gray-50",children:[n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("a",{href:U.url||U.main_site,target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-blue-600 hover:text-blue-800",children:M(U.url||U.main_site||"")})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("button",{onClick:()=>{t(U.brand),s(U.geo),$(U.brand),H(U.geo)},className:"text-sm text-blue-600 hover:text-blue-800 hover:underline",children:U.brand})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:"px-2 py-1 text-xs font-medium bg-gray-100 text-gray-800 rounded-full",children:((K=U.geo)==null?void 0:K.toUpperCase())||"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-center",children:U.currentPosition!==null?n.jsx("span",{className:"text-sm font-semibold text-gray-900",children:U.currentPosition}):n.jsx("span",{className:"text-sm text-gray-400",children:"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-center",children:U.bestPosition!==null?n.jsxs("div",{className:"flex items-center justify-center gap-1 text-green-600",children:[n.jsx(Je,{className:"h-4 w-4"}),n.jsx("span",{className:"text-sm font-semibold",children:U.bestPosition})]}):n.jsx("span",{className:"text-sm text-gray-400",children:"—"})}),n.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:n.jsx("span",{className:"text-sm text-gray-500",children:U.lastChecked?new Date(U.lastChecked).toLocaleDateString("ru-RU",{day:"2-digit",month:"2-digit",year:"numeric"}):"—"})})]},U.id||U.notion_id)})})]})})]})})]})};function Zee(){return n.jsx(oM,{children:n.jsx(sM,{children:n.jsxs(X5,{children:[n.jsx(Ne,{path:"/",element:n.jsx(Wee,{})}),n.jsx(Ne,{path:"/access-portal-2024",element:n.jsx(_M,{})}),n.jsx(Ne,{path:"/dashboard",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(OM,{})})})}),n.jsx(Ne,{path:"/analysis",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(DM,{})})})}),n.jsx(Ne,{path:"/analysis-history",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx($M,{})})})}),n.jsx(Ne,{path:"/analysis-results",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(LM,{})})})}),n.jsx(Ne,{path:"/results",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Xee,{})})})}),n.jsx(Ne,{path:"/keyword/:keyword",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(IM,{})})})}),n.jsx(Ne,{path:"/keyword/:keyword/country/:country",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(kF,{})})})}),n.jsx(Ne,{path:"/geo-analysis",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(CF,{})})})}),n.jsx(Ne,{path:"/geo-calculator",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(EF,{})})})}),n.jsx(Ne,{path:"/competitor-analysis",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(PF,{})})})}),n.jsx(Ne,{path:"/competitor-monitor",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Yee,{})})})}),n.jsx(Ne,{path:"/competitor-network",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(AF,{})})})}),n.jsx(Ne,{path:"/competitor/:url",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(TF,{})})})}),n.jsx(Ne,{path:"/ai-assistant",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(OF,{})})})}),n.jsx(Ne,{path:"/tz-generation",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(_F,{})})})}),n.jsx(Ne,{path:"/domain-search",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(MF,{})})})}),n.jsx(Ne,{path:"/drop-search",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(DF,{})})})}),n.jsx(Ne,{path:"/planning",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx($F,{})})})}),n.jsx(Ne,{path:"/notion-data",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(LF,{})})})}),n.jsx(Ne,{path:"/notion-analytics",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Aee,{})})})}),n.jsx(Ne,{path:"/notion-configs",element:n.jsx(Ce,{requiredRole:"admin",children:n.jsx(Ee,{children:n.jsx(Tee,{})})})}),n.jsx(Ne,{path:"/notion-unified",element:n.jsx(Ce,{requiredRole:"admin",children:n.jsx(Ee,{children:n.jsx(_ee,{})})})}),n.jsx(Ne,{path:"/keitaro",element:n.jsx(Ce,{requiredRole:"admin",children:n.jsx(Ee,{children:n.jsx(Oee,{})})})}),n.jsx(Ne,{path:"/balance",element:n.jsx(Ce,{requiredRole:"admin",children:n.jsx(Ee,{children:n.jsx(Mee,{})})})}),n.jsx(Ne,{path:"/cloaking-check",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Dee,{})})})}),n.jsx(Ne,{path:"/html-editor",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(qee,{})})})}),n.jsx(Ne,{path:"/site-uniquifier",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Gee,{})})})}),n.jsx(Ne,{path:"/rank-tracker",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx($ee,{})})})}),n.jsx(Ne,{path:"/rank-tracker/brands-overview",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Fee,{})})})}),n.jsx(Ne,{path:"/rank-checker",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Uee,{})})})}),n.jsx(Ne,{path:"/rank-dashboard-v1",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Hee,{})})})}),n.jsx(Ne,{path:"/rank-dashboard-v2",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Vee,{})})})}),n.jsx(Ne,{path:"/rank-dashboard-v3",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Kee,{})})})}),n.jsx(Ne,{path:"/rank-tracker/brand/:brand",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Bee,{})})})}),n.jsx(Ne,{path:"/rank-tracker/geo/:brand/:geo",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(zee,{})})})}),n.jsx(Ne,{path:"/rank-tracker/setup",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Lee,{})})})}),n.jsx(Ne,{path:"/rank-tracker/keywords",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Iee,{})})})}),n.jsx(Ne,{path:"/rank-tracker/results/:id",element:n.jsx(Ce,{children:n.jsx(Ee,{children:n.jsx(Ree,{})})})}),n.jsx(Ne,{path:"/settings",element:n.jsx(Ce,{requiredRole:"admin",children:n.jsx(Ee,{children:n.jsx(MM,{})})})})]})})})}wx.createRoot(document.getElementById("root")).render(n.jsx(te.StrictMode,{children:n.jsx(Zee,{})}));