diff --git a/ipk-source/sdxpinn-quecmanager-beta/CONTROL/control b/ipk-source/sdxpinn-quecmanager-beta/CONTROL/control index 6dd5e5f..5809dd0 100755 --- a/ipk-source/sdxpinn-quecmanager-beta/CONTROL/control +++ b/ipk-source/sdxpinn-quecmanager-beta/CONTROL/control @@ -1,5 +1,5 @@ Package: sdxpinn-quecmanager-beta -Version: 1.1.1-4 +Version: 2.0.0 Architecture: aarch64_cortex-a53 Maintainer: Russel Yasol dr-dolomite@github.com Cameron Thompson iamromulan@github.com Source: github.com/iamromulan diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/ntp.init b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/ntp.init new file mode 100644 index 0000000..cecce74 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/ntp.init @@ -0,0 +1,22 @@ +#! /bin/sh /etc/rc.common + +START=90 + +USE_PROCD=1 + +start_service() { + if [ ! -f /etc/config/system ]; then + touch /etc/config/system + + sh /etc/init.d/ntp.config.h + procd_open_instance + procd_set_param command user ntp + procd_set_param command group ntp + procd_close_instance + fi + echo "Starting ntp config service..." +} + +stop_service(){ + echo "Stoping ntp config service..." +} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager_cell_locking b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager_cell_locking new file mode 100644 index 0000000..464a02a --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager_cell_locking @@ -0,0 +1,49 @@ +#!/bin/sh /etc/rc.common + +START=95 +STOP=10 +USE_PROCD=1 + +DAEMON="/www/cgi-bin/services/scheduled_cell_locking.sh" +UCI_CONFIG="quecmanager" +PID_FILE="/var/run/cell_lock_scheduler.pid" +LOG_DIR="/tmp/log/cell_lock" + +start_service() { + # Check if the daemon script exists + if [ ! -x "$DAEMON" ]; then + logger -t cell_lock -p daemon.error "Daemon script not found or not executable: $DAEMON" + return 1 + fi + + # Check if service is enabled in UCI + local enabled + config_load "$UCI_CONFIG" + config_get_bool enabled cell_lock enabled 0 + + if [ "$enabled" -ne 1 ]; then + logger -t cell_lock -p daemon.info "Cell lock scheduler is disabled in config" + return 0 + fi + + # Create log directory + mkdir -p "$LOG_DIR" + + # Start the service via procd + logger -t cell_lock -p daemon.info "Starting cell lock scheduler daemon" + procd_open_instance "cell_lock_scheduler" + procd_set_param command "$DAEMON" + procd_set_param respawn 3600 5 5 # Retry every hour, 5 times max + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param pidfile "$PID_FILE" + procd_close_instance +} + +service_triggers() { + procd_add_reload_trigger "$UCI_CONFIG" +} + +reload_service() { + restart +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager-services b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager_services old mode 100755 new mode 100644 similarity index 57% rename from ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager-services rename to ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager_services index a02e3d8..e5eac95 --- a/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager-services +++ b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecmanager_services @@ -3,25 +3,27 @@ START=49 STOP=10 USE_PROCD=1 -start_service() { - # Run clear_logs.sh once without procd management, with a timeout - echo "Clearing QuecManager Logs" - timeout 5 /www/cgi-bin/services/clear_logs.sh - if [ $? -eq 124 ]; then - echo "clear_logs.sh timed out after 5 seconds" - else - echo "Log Cleaner complete" - fi +# Configuration paths +QUEUE_DIR="/tmp/at_queue" +RESULTS_DIR="$QUEUE_DIR/results" +LOG_DIR="/www/signal_graphs" - # Start the continuously running services - echo "Starting AT Command Queue Processor..." +start_service() { + # Ensure required directories exist + mkdir -p "$QUEUE_DIR" "$RESULTS_DIR" "$LOG_DIR" + chmod 755 "$QUEUE_DIR" "$RESULTS_DIR" "$LOG_DIR" + + # Start the AT Command Queue Manager + echo "Starting AT Command Queue Manager..." procd_open_instance - procd_set_param command /www/cgi-bin/services/at_queue_processor.sh + procd_set_param command /www/cgi-bin/services/at_queue_manager.sh procd_set_param respawn procd_set_param stdout 1 procd_set_param stderr 1 procd_close_instance - echo "AT Queue Processor Started" + echo "AT Queue Manager Started" + + # Start the Signal Metrics Logger echo "Starting Signal Metrics Logger..." procd_open_instance procd_set_param command /www/cgi-bin/services/log_signal_metrics.sh @@ -37,4 +39,4 @@ start_service() { stop_service() { # procd will handle stopping all instances automatically echo "Stopping QuecManager services." -} +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecprofiles b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecprofiles new file mode 100644 index 0000000..94245c0 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecprofiles @@ -0,0 +1,84 @@ +#!/bin/sh /etc/rc.common +START=99 +STOP=10 +USE_PROCD=1 + +# Configuration paths +PROG="/www/cgi-bin/services/quecprofile.sh" +CONF="/etc/config/quecprofiles" +TRACK_FILE="/tmp/quecprofiles_active" +CHECK_TRIGGER="/tmp/quecprofiles_check" +STATUS_FILE="/tmp/quecprofiles_status.json" +DEBUG_LOG="/tmp/quecprofiles_debug.log" + +start_service() { + # Ensure configuration exists + if [ ! -f "$CONF" ]; then + # Create default configuration + cat > "$CONF" <<-EOF +config quecprofiles 'settings' + option check_interval '60' + option enable_autoswitch '1' + option apply_priority '20' +EOF + fi + + # Ensure script is executable + if [ -f "$PROG" ]; then + chmod 755 "$PROG" + else + logger -t quecprofiles -p daemon.error "Profile daemon script not found at $PROG" + return 1 + fi + + # Clear any existing logs + echo "$(date) - Init script starting service" > "$DEBUG_LOG" + + # Check if service is enabled + local enabled + config_load quecprofiles + config_get_bool enabled settings enable_autoswitch 1 + + if [ "$enabled" -eq 0 ]; then + logger -t quecprofiles -p daemon.info "QuecProfiles service is disabled in config" + echo "$(date) - Service is disabled in config" >> "$DEBUG_LOG" + return 0 + fi + + # Log before starting daemon + logger -t quecprofiles -p daemon.info "Starting QuecProfiles Daemon with script: $PROG" + echo "$(date) - Starting daemon using script: $PROG" >> "$DEBUG_LOG" + + # Start the profile daemon + echo "Starting QuecProfiles Daemon..." + procd_open_instance "quecprofiles" + procd_set_param command "$PROG" + procd_set_param respawn + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_close_instance + echo "QuecProfiles Daemon Started" + echo "$(date) - Daemon started via procd" >> "$DEBUG_LOG" +} + +stop_service() { + # Clean up state files + rm -f "$TRACK_FILE" + rm -f "$CHECK_TRIGGER" + + # Log stop action + logger -t quecprofiles -p daemon.info "Stopping QuecProfiles service" + echo "$(date) - Stopping service" >> "$DEBUG_LOG" + + # procd will handle stopping the instance automatically + echo "Stopping QuecProfiles service." +} + +service_triggers() { + procd_add_reload_trigger "quecprofiles" +} + +reload_service() { + touch "$CHECK_TRIGGER" + restart +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecwatch b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecwatch new file mode 100644 index 0000000..9499d8e --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/etc/init.d/quecwatch @@ -0,0 +1,49 @@ +#!/bin/sh /etc/rc.common + +START=99 +STOP=10 +USE_PROCD=1 + +DAEMON="/www/cgi-bin/services/quecwatch.sh" +UCI_CONFIG="quecmanager" +PID_FILE="/var/run/quecwatch.pid" +LOG_DIR="/tmp/log/quecwatch" + +start_service() { + # Check if the daemon script exists + if [ ! -x "$DAEMON" ]; then + logger -t quecwatch -p daemon.error "Daemon script not found or not executable: $DAEMON" + return 1 + fi + + # Check if service is enabled in UCI + local enabled + config_load "$UCI_CONFIG" + config_get_bool enabled quecwatch enabled 0 + + if [ "$enabled" -ne 1 ]; then + logger -t quecwatch -p daemon.info "QuecWatch service is disabled in config" + return 0 + fi + + # Create log directory + mkdir -p "$LOG_DIR" + + # Start the service via procd + logger -t quecwatch -p daemon.info "Starting QuecWatch daemon" + procd_open_instance "quecwatch" + procd_set_param command "$DAEMON" + procd_set_param respawn 3600 5 5 # Retry every hour, 5 times max + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param pidfile "$PID_FILE" + procd_close_instance +} + +service_triggers() { + procd_add_reload_trigger "$UCI_CONFIG" +} + +reload_service() { + restart +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/404.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/404.html index 05bf6cd..7ab5b1c 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/404.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/404.html @@ -1 +1 @@ -404: This page could not be found.QuecManager

404

This page could not be found.

    \ No newline at end of file +404: This page could not be found.QuecManager

    404

    This page could not be found.

      \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/404/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/404/index.html index 05bf6cd..7ab5b1c 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/404/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/404/index.html @@ -1 +1 @@ -404: This page could not be found.QuecManager

      404

      This page could not be found.

        \ No newline at end of file +404: This page could not be found.QuecManager

        404

        This page could not be found.

          \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/ECtAeRdoEqstSdffrWqHu/_buildManifest.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/ECtAeRdoEqstSdffrWqHu/_buildManifest.js new file mode 100644 index 0000000..e9b0d6e --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/ECtAeRdoEqstSdffrWqHu/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST=function(r,e,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:21,errorRate:1e-4,numBits:403,numHashes:14,bitArray:[0,1,1,0,1,e,0,r,r,e,e,e,e,e,e,r,e,e,r,e,r,r,e,e,r,r,e,r,r,r,e,e,r,r,e,e,e,r,r,r,r,e,r,r,r,e,e,e,e,e,r,r,r,e,e,r,r,r,e,r,r,e,e,e,e,r,r,r,e,r,r,r,e,e,e,e,r,e,r,e,r,e,r,e,e,e,e,r,r,r,e,r,e,e,r,r,e,r,e,e,e,r,r,r,r,e,e,e,r,r,e,r,e,e,e,r,r,e,e,r,r,r,r,e,r,e,e,e,e,e,e,r,r,e,r,r,e,r,r,r,r,r,e,r,e,e,r,e,e,r,r,r,r,e,r,r,r,e,e,e,e,r,e,e,e,r,e,e,e,e,r,r,e,e,e,e,r,e,r,r,e,r,r,e,r,e,r,r,e,e,r,e,e,e,r,r,e,r,r,e,e,e,e,r,r,e,r,e,e,e,r,e,r,r,e,r,e,r,r,r,e,e,r,r,r,e,e,e,r,r,e,r,r,r,e,r,e,e,r,e,e,r,r,e,e,r,r,r,e,r,e,r,r,r,e,e,e,e,e,r,r,e,e,e,e,r,e,r,r,r,e,e,r,e,r,e,e,r,r,r,r,r,e,e,r,e,e,e,r,r,r,r,r,e,e,e,e,r,e,r,r,r,e,r,e,e,e,e,r,r,r,e,r,e,e,r,e,r,r,r,e,r,r,e,r,e,r,r,e,r,r,r,r,e,r,r,e,e,r,e,e,r,r,r,r,e,r,r,e,r,r,e,r,r,e,r,r,e,r,e,r,r,e,e,r,e,r,e,e,r,e,e,e,e,r,r,e,r,r,r,r,e,r,e,e,r,r,r,e,e,e,e,e,r,e,e,e,r,e,r,r,r,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-f347b70a71a8047b.js"],sortedPages:["/_app","/_error"]}}(0,1,0),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/ECtAeRdoEqstSdffrWqHu/_ssgManifest.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/ECtAeRdoEqstSdffrWqHu/_ssgManifest.js new file mode 100644 index 0000000..5b3ff59 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/ECtAeRdoEqstSdffrWqHu/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1074-a3cc46aa8592f7b2.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1074-a3cc46aa8592f7b2.js new file mode 100644 index 0000000..f75d8ad --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1074-a3cc46aa8592f7b2.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1074],{4e3:function(t,e,r){var n;!function(o){"use strict";var i,a={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},u=!0,c="[DecimalError] ",l=c+"Invalid argument: ",s=c+"Exponent out of range: ",f=Math.floor,p=Math.pow,h=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d=f(1286742750677284.5),y={};function v(t,e){var r,n,o,i,a,c,l,s,f=t.constructor,p=f.precision;if(!t.s||!e.s)return e.s||(e=new f(t)),u?E(e,p):e;if(l=t.d,s=e.d,a=t.e,o=e.e,l=l.slice(),i=a-o){for(i<0?(n=l,i=-i,c=s.length):(n=s,o=a,c=l.length),i>(c=(a=Math.ceil(p/7))>c?a+1:c+1)&&(i=c,n.length=1),n.reverse();i--;)n.push(0);n.reverse()}for((c=l.length)-(i=s.length)<0&&(i=c,n=s,s=l,l=n),r=0;i;)r=(l[--i]=l[i]+s[i]+r)/1e7|0,l[i]%=1e7;for(r&&(l.unshift(r),++o),c=l.length;0==l[--c];)l.pop();return e.d=l,e.e=o,u?E(e,p):e}function b(t,e,r){if(t!==~~t||tr)throw Error(l+t)}function m(t){var e,r,n,o=t.length-1,i="",a=t[0];if(o>0){for(i+=a,e=1;et.e^this.s<0?1:-1;for(e=0,r=(n=this.d.length)<(o=t.d.length)?n:o;et.d[e]^this.s<0?1:-1;return n===o?0:n>o^this.s<0?1:-1},y.decimalPlaces=y.dp=function(){var t=this.d.length-1,e=(t-this.e)*7;if(t=this.d[t])for(;t%10==0;t/=10)e--;return e<0?0:e},y.dividedBy=y.div=function(t){return g(this,new this.constructor(t))},y.dividedToIntegerBy=y.idiv=function(t){var e=this.constructor;return E(g(this,new e(t),0,1),e.precision)},y.equals=y.eq=function(t){return!this.cmp(t)},y.exponent=function(){return O(this)},y.greaterThan=y.gt=function(t){return this.cmp(t)>0},y.greaterThanOrEqualTo=y.gte=function(t){return this.cmp(t)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return 0===this.s},y.lessThan=y.lt=function(t){return 0>this.cmp(t)},y.lessThanOrEqualTo=y.lte=function(t){return 1>this.cmp(t)},y.logarithm=y.log=function(t){var e,r=this.constructor,n=r.precision,o=n+5;if(void 0===t)t=new r(10);else if((t=new r(t)).s<1||t.eq(i))throw Error(c+"NaN");if(this.s<1)throw Error(c+(this.s?"NaN":"-Infinity"));return this.eq(i)?new r(0):(u=!1,e=g(S(this,o),S(t,o),o),u=!0,E(e,n))},y.minus=y.sub=function(t){return t=new this.constructor(t),this.s==t.s?A(this,t):v(this,(t.s=-t.s,t))},y.modulo=y.mod=function(t){var e,r=this.constructor,n=r.precision;if(!(t=new r(t)).s)throw Error(c+"NaN");return this.s?(u=!1,e=g(this,t,0,1).times(t),u=!0,this.minus(e)):E(new r(this),n)},y.naturalExponential=y.exp=function(){return x(this)},y.naturalLogarithm=y.ln=function(){return S(this)},y.negated=y.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t},y.plus=y.add=function(t){return t=new this.constructor(t),this.s==t.s?v(this,t):A(this,(t.s=-t.s,t))},y.precision=y.sd=function(t){var e,r,n;if(void 0!==t&&!!t!==t&&1!==t&&0!==t)throw Error(l+t);if(e=O(this)+1,r=7*(n=this.d.length-1)+1,n=this.d[n]){for(;n%10==0;n/=10)r--;for(n=this.d[0];n>=10;n/=10)r++}return t&&e>r?e:r},y.squareRoot=y.sqrt=function(){var t,e,r,n,o,i,a,l=this.constructor;if(this.s<1){if(!this.s)return new l(0);throw Error(c+"NaN")}for(t=O(this),u=!1,0==(o=Math.sqrt(+this))||o==1/0?(((e=m(this.d)).length+t)%2==0&&(e+="0"),o=Math.sqrt(e),t=f((t+1)/2)-(t<0||t%2),n=new l(e=o==1/0?"5e"+t:(e=o.toExponential()).slice(0,e.indexOf("e")+1)+t)):n=new l(o.toString()),o=a=(r=l.precision)+3;;)if(n=(i=n).plus(g(this,i,a+2)).times(.5),m(i.d).slice(0,a)===(e=m(n.d)).slice(0,a)){if(e=e.slice(a-3,a+1),o==a&&"4999"==e){if(E(i,r+1,0),i.times(i).eq(this)){n=i;break}}else if("9999"!=e)break;a+=4}return u=!0,E(n,r)},y.times=y.mul=function(t){var e,r,n,o,i,a,c,l,s,f=this.constructor,p=this.d,h=(t=new f(t)).d;if(!this.s||!t.s)return new f(0);for(t.s*=this.s,r=this.e+t.e,(l=p.length)<(s=h.length)&&(i=p,p=h,h=i,a=l,l=s,s=a),i=[],n=a=l+s;n--;)i.push(0);for(n=s;--n>=0;){for(e=0,o=l+n;o>n;)c=i[o]+h[n]*p[o-n-1]+e,i[o--]=c%1e7|0,e=c/1e7|0;i[o]=(i[o]+e)%1e7|0}for(;!i[--a];)i.pop();return e?++r:i.shift(),t.d=i,t.e=r,u?E(t,f.precision):t},y.toDecimalPlaces=y.todp=function(t,e){var r=this,n=r.constructor;return(r=new n(r),void 0===t)?r:(b(t,0,1e9),void 0===e?e=n.rounding:b(e,0,8),E(r,t+O(r)+1,e))},y.toExponential=function(t,e){var r,n=this,o=n.constructor;return void 0===t?r=k(n,!0):(b(t,0,1e9),void 0===e?e=o.rounding:b(e,0,8),r=k(n=E(new o(n),t+1,e),!0,t+1)),r},y.toFixed=function(t,e){var r,n,o=this.constructor;return void 0===t?k(this):(b(t,0,1e9),void 0===e?e=o.rounding:b(e,0,8),r=k((n=E(new o(this),t+O(this)+1,e)).abs(),!1,t+O(n)+1),this.isneg()&&!this.isZero()?"-"+r:r)},y.toInteger=y.toint=function(){var t=this.constructor;return E(new t(this),O(this)+1,t.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(t){var e,r,n,o,a,l,s=this,p=s.constructor,h=+(t=new p(t));if(!t.s)return new p(i);if(!(s=new p(s)).s){if(t.s<1)throw Error(c+"Infinity");return s}if(s.eq(i))return s;if(n=p.precision,t.eq(i))return E(s,n);if(l=(e=t.e)>=(r=t.d.length-1),a=s.s,l){if((r=h<0?-h:h)<=0x1fffffffffffff){for(o=new p(i),e=Math.ceil(n/7+4),u=!1;r%2&&M((o=o.times(s)).d,e),0!==(r=f(r/2));)M((s=s.times(s)).d,e);return u=!0,t.s<0?new p(i).div(o):E(o,n)}}else if(a<0)throw Error(c+"NaN");return a=a<0&&1&t.d[Math.max(e,r)]?-1:1,s.s=1,u=!1,o=t.times(S(s,n+12)),u=!0,(o=x(o)).s=a,o},y.toPrecision=function(t,e){var r,n,o=this,i=o.constructor;return void 0===t?(r=O(o),n=k(o,r<=i.toExpNeg||r>=i.toExpPos)):(b(t,1,1e9),void 0===e?e=i.rounding:b(e,0,8),r=O(o=E(new i(o),t,e)),n=k(o,t<=r||r<=i.toExpNeg,t)),n},y.toSignificantDigits=y.tosd=function(t,e){var r=this.constructor;return void 0===t?(t=r.precision,e=r.rounding):(b(t,1,1e9),void 0===e?e=r.rounding:b(e,0,8)),E(new r(this),t,e)},y.toString=y.valueOf=y.val=y.toJSON=function(){var t=O(this),e=this.constructor;return k(this,t<=e.toExpNeg||t>=e.toExpPos)};var g=function(){function t(t,e){var r,n=0,o=t.length;for(t=t.slice();o--;)r=t[o]*e+n,t[o]=r%1e7|0,n=r/1e7|0;return n&&t.unshift(n),t}function e(t,e,r,n){var o,i;if(r!=n)i=r>n?1:-1;else for(o=i=0;oe[o]?1:-1;break}return i}function r(t,e,r){for(var n=0;r--;)t[r]-=n,n=t[r]1;)t.shift()}return function(n,o,i,a){var u,l,s,f,p,h,d,y,v,b,m,g,x,w,j,S,P,A,k=n.constructor,M=n.s==o.s?1:-1,_=n.d,T=o.d;if(!n.s)return new k(n);if(!o.s)throw Error(c+"Division by zero");for(s=0,l=n.e-o.e,P=T.length,j=_.length,y=(d=new k(M)).d=[];T[s]==(_[s]||0);)++s;if(T[s]>(_[s]||0)&&--l,(g=null==i?i=k.precision:a?i+(O(n)-O(o))+1:i)<0)return new k(0);if(g=g/7+2|0,s=0,1==P)for(f=0,T=T[0],g++;(s1&&(T=t(T,f),_=t(_,f),P=T.length,j=_.length),w=P,b=(v=_.slice(0,P)).length;b=1e7/2&&++S;do f=0,(u=e(T,v,P,b))<0?(m=v[0],P!=b&&(m=1e7*m+(v[1]||0)),(f=m/S|0)>1?(f>=1e7&&(f=1e7-1),h=(p=t(T,f)).length,b=v.length,1==(u=e(p,v,h,b))&&(f--,r(p,P16)throw Error(s+O(t));if(!t.s)return new h(i);for(null==e?(u=!1,c=d):c=e,a=new h(.03125);t.abs().gte(.1);)t=t.times(a),f+=5;for(c+=Math.log(p(2,f))/Math.LN10*2+5|0,r=n=o=new h(i),h.precision=c;;){if(n=E(n.times(t),c),r=r.times(++l),m((a=o.plus(g(n,r,c))).d).slice(0,c)===m(o.d).slice(0,c)){for(;f--;)o=E(o.times(o),c);return h.precision=d,null==e?(u=!0,E(o,d)):o}o=a}}function O(t){for(var e=7*t.e,r=t.d[0];r>=10;r/=10)e++;return e}function w(t,e,r){if(e>t.LN10.sd())throw u=!0,r&&(t.precision=r),Error(c+"LN10 precision limit exceeded");return E(new t(t.LN10),e)}function j(t){for(var e="";t--;)e+="0";return e}function S(t,e){var r,n,o,a,l,s,f,p,h,d=1,y=t,v=y.d,b=y.constructor,x=b.precision;if(y.s<1)throw Error(c+(y.s?"NaN":"-Infinity"));if(y.eq(i))return new b(0);if(null==e?(u=!1,p=x):p=e,y.eq(10))return null==e&&(u=!0),w(b,p);if(p+=10,b.precision=p,n=(r=m(v)).charAt(0),!(15e14>Math.abs(a=O(y))))return f=w(b,p+2,x).times(a+""),y=S(new b(n+"."+r.slice(1)),p-10).plus(f),b.precision=x,null==e?(u=!0,E(y,x)):y;for(;n<7&&1!=n||1==n&&r.charAt(1)>3;)n=(r=m((y=y.times(t)).d)).charAt(0),d++;for(a=O(y),n>1?(y=new b("0."+r),a++):y=new b(n+"."+r.slice(1)),s=l=y=g(y.minus(i),y.plus(i),p),h=E(y.times(y),p),o=3;;){if(l=E(l.times(h),p),m((f=s.plus(g(l,new b(o),p))).d).slice(0,p)===m(s.d).slice(0,p))return s=s.times(2),0!==a&&(s=s.plus(w(b,p+2,x).times(a+""))),s=g(s,new b(d),p),b.precision=x,null==e?(u=!0,E(s,x)):s;s=f,o+=2}}function P(t,e){var r,n,o;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),n=0;48===e.charCodeAt(n);)++n;for(o=e.length;48===e.charCodeAt(o-1);)--o;if(e=e.slice(n,o)){if(o-=n,r=r-n-1,t.e=f(r/7),t.d=[],n=(r+1)%7,r<0&&(n+=7),nd||t.e<-d))throw Error(s+r)}else t.s=0,t.e=0,t.d=[0];return t}function E(t,e,r){var n,o,i,a,c,l,h,y,v=t.d;for(a=1,i=v[0];i>=10;i/=10)a++;if((n=e-a)<0)n+=7,o=e,h=v[y=0];else{if((y=Math.ceil((n+1)/7))>=(i=v.length))return t;for(a=1,h=i=v[y];i>=10;i/=10)a++;n%=7,o=n-7+a}if(void 0!==r&&(c=h/(i=p(10,a-o-1))%10|0,l=e<0||void 0!==v[y+1]||h%i,l=r<4?(c||l)&&(0==r||r==(t.s<0?3:2)):c>5||5==c&&(4==r||l||6==r&&(n>0?o>0?h/p(10,a-o):0:v[y-1])%10&1||r==(t.s<0?8:7))),e<1||!v[0])return l?(i=O(t),v.length=1,e=e-i-1,v[0]=p(10,(7-e%7)%7),t.e=f(-e/7)||0):(v.length=1,v[0]=t.e=t.s=0),t;if(0==n?(v.length=y,i=1,y--):(v.length=y+1,i=p(10,7-n),v[y]=o>0?(h/p(10,a-o)%p(10,o)|0)*i:0),l)for(;;){if(0==y){1e7==(v[0]+=i)&&(v[0]=1,++t.e);break}if(v[y]+=i,1e7!=v[y])break;v[y--]=0,i=1}for(n=v.length;0===v[--n];)v.pop();if(u&&(t.e>d||t.e<-d))throw Error(s+O(t));return t}function A(t,e){var r,n,o,i,a,c,l,s,f,p,h=t.constructor,d=h.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new h(t),u?E(e,d):e;if(l=t.d,p=e.d,n=e.e,s=t.e,l=l.slice(),a=s-n){for((f=a<0)?(r=l,a=-a,c=p.length):(r=p,n=s,c=l.length),a>(o=Math.max(Math.ceil(d/7),c)+2)&&(a=o,r.length=1),r.reverse(),o=a;o--;)r.push(0);r.reverse()}else{for((f=(o=l.length)<(c=p.length))&&(c=o),o=0;o0;--o)l[c++]=0;for(o=p.length;o>a;){if(l[--o]0?i=i.charAt(0)+"."+i.slice(1)+j(n):a>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(o<0?"e":"e+")+o):o<0?(i="0."+j(-o-1)+i,r&&(n=r-a)>0&&(i+=j(n))):o>=a?(i+=j(o+1-a),r&&(n=r-o-1)>0&&(i=i+"."+j(n))):((n=o+1)0&&(o+1===a&&(i+="."),i+=j(n))),t.s<0?"-"+i:i}function M(t,e){if(t.length>e)return t.length=e,!0}function _(t){if(!t||"object"!=typeof t)throw Error(c+"Object expected");var e,r,n,o=["precision",1,1e9,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(e=0;e=o[e+1]&&n<=o[e+2])this[r]=n;else throw Error(l+r+": "+n)}if(void 0!==(n=t[r="LN10"])){if(n==Math.LN10)this[r]=new this(n);else throw Error(l+r+": "+n)}return this}(a=function t(e){var r,n,o;function i(t){if(!(this instanceof i))return new i(t);if(this.constructor=i,t instanceof i){this.s=t.s,this.e=t.e,this.d=(t=t.d)?t.slice():t;return}if("number"==typeof t){if(0*t!=0)throw Error(l+t);if(t>0)this.s=1;else if(t<0)t=-t,this.s=-1;else{this.s=0,this.e=0,this.d=[0];return}if(t===~~t&&t<1e7){this.e=0,this.d=[t];return}return P(this,t.toString())}if("string"!=typeof t)throw Error(l+t);if(45===t.charCodeAt(0)?(t=t.slice(1),this.s=-1):this.s=1,h.test(t))P(this,t);else throw Error(l+t)}if(i.prototype=y,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=t,i.config=i.set=_,void 0===e&&(e={}),e)for(r=0,o=["precision","rounding","toExpNeg","toExpPos","LN10"];r{"use strict";var e=Object.prototype.hasOwnProperty,r="~";function n(){}function o(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function i(t,e,n,i,a){if("function"!=typeof n)throw TypeError("The listener must be a function");var u=new o(n,i||t,a),c=r?r+e:e;return t._events[c]?t._events[c].fn?t._events[c]=[t._events[c],u]:t._events[c].push(u):(t._events[c]=u,t._eventsCount++),t}function a(t,e){0==--t._eventsCount?t._events=new n:delete t._events[e]}function u(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1)),u.prototype.eventNames=function(){var t,n,o=[];if(0===this._eventsCount)return o;for(n in t=this._events)e.call(t,n)&&o.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(t)):o},u.prototype.listeners=function(t){var e=r?r+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,i=n.length,a=Array(i);o{var n=r(2748)(r(74421),"DataView");t.exports=n},10801:(t,e,r)=>{var n=r(15066),o=r(15638),i=r(8183),a=r(59659),u=r(71619);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(64598),o=r(44602),i=r(54299),a=r(49911),u=r(17039);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(2748)(r(74421),"Map");t.exports=n},15933:(t,e,r)=>{var n=r(21470),o=r(9330),i=r(58963),a=r(735),u=r(20135);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(2748)(r(74421),"Promise");t.exports=n},46083:(t,e,r)=>{var n=r(2748)(r(74421),"Set");t.exports=n},93395:(t,e,r)=>{var n=r(15933),o=r(50350),i=r(81773);function a(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new n;++e{var n=r(6965),o=r(85868),i=r(40036),a=r(88365),u=r(18913),c=r(40305);function l(t){var e=this.__data__=new n(t);this.size=e.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=u,l.prototype.set=c,t.exports=l},35329:(t,e,r)=>{var n=r(74421).Symbol;t.exports=n},252:(t,e,r)=>{var n=r(74421).Uint8Array;t.exports=n},32901:(t,e,r)=>{var n=r(2748)(r(74421),"WeakMap");t.exports=n},46879:t=>{t.exports=function(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}},41129:t=>{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length;++r{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,i=[];++r{var n=r(26513);t.exports=function(t,e){return!!(null==t?0:t.length)&&n(t,e,0)>-1}},58515:t=>{t.exports=function(t,e,r){for(var n=-1,o=null==t?0:t.length;++n{var n=r(76346),o=r(3108),i=r(55649),a=r(91050),u=r(86887),c=r(20897),l=Object.prototype.hasOwnProperty;t.exports=function(t,e){var r=i(t),s=!r&&o(t),f=!r&&!s&&a(t),p=!r&&!s&&!f&&c(t),h=r||s||f||p,d=h?n(t.length,String):[],y=d.length;for(var v in t)(e||l.call(t,v))&&!(h&&("length"==v||f&&("offset"==v||"parent"==v)||p&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||u(v,y)))&&d.push(v);return d}},3184:t=>{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r{t.exports=function(t,e){for(var r=-1,n=e.length,o=t.length;++r{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length;++r{t.exports=function(t){return t.split("")}},42489:(t,e,r)=>{var n=r(93126);t.exports=function(t,e){for(var r=t.length;r--;)if(n(t[r][0],e))return r;return -1}},79514:(t,e,r)=>{var n=r(3779);t.exports=function(t,e,r){"__proto__"==e&&n?n(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}},30865:(t,e,r)=>{var n=r(16101),o=r(30433)(n);t.exports=o},41111:(t,e,r)=>{var n=r(30865);t.exports=function(t,e){var r=!0;return n(t,function(t,n,o){return r=!!e(t,n,o)}),r}},89691:(t,e,r)=>{var n=r(8700);t.exports=function(t,e,r){for(var o=-1,i=t.length;++o{t.exports=function(t,e,r,n){for(var o=t.length,i=r+(n?1:-1);n?i--:++i{var n=r(82794),o=r(70713);t.exports=function t(e,r,i,a,u){var c=-1,l=e.length;for(i||(i=o),u||(u=[]);++c0&&i(s)?r>1?t(s,r-1,i,a,u):n(u,s):a||(u[u.length]=s)}return u}},82783:(t,e,r)=>{var n=r(72463)();t.exports=n},16101:(t,e,r)=>{var n=r(82783),o=r(74092);t.exports=function(t,e){return t&&n(t,e,o)}},58180:(t,e,r)=>{var n=r(81881),o=r(26767);t.exports=function(t,e){e=n(e,t);for(var r=0,i=e.length;null!=t&&r{var n=r(82794),o=r(55649);t.exports=function(t,e,r){var i=e(t);return o(t)?i:n(i,r(t))}},89212:(t,e,r)=>{var n=r(35329),o=r(71957),i=r(19914),a=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):i(t)}},57991:t=>{t.exports=function(t,e){return t>e}},11971:t=>{t.exports=function(t,e){return null!=t&&e in Object(t)}},26513:(t,e,r)=>{var n=r(73461),o=r(57201),i=r(38225);t.exports=function(t,e,r){return e==e?i(t,e,r):n(t,o,r)}},71940:(t,e,r)=>{var n=r(89212),o=r(22964);t.exports=function(t){return o(t)&&"[object Arguments]"==n(t)}},86696:(t,e,r)=>{var n=r(59578),o=r(22964);t.exports=function t(e,r,i,a,u){return e===r||(null!=e&&null!=r&&(o(e)||o(r))?n(e,r,i,a,t,u):e!=e&&r!=r)}},59578:(t,e,r)=>{var n=r(62863),o=r(9617),i=r(24366),a=r(89589),u=r(30393),c=r(55649),l=r(91050),s=r(20897),f="[object Arguments]",p="[object Array]",h="[object Object]",d=Object.prototype.hasOwnProperty;t.exports=function(t,e,r,y,v,b){var m=c(t),g=c(e),x=m?p:u(t),O=g?p:u(e);x=x==f?h:x,O=O==f?h:O;var w=x==h,j=O==h,S=x==O;if(S&&l(t)){if(!l(e))return!1;m=!0,w=!1}if(S&&!w)return b||(b=new n),m||s(t)?o(t,e,r,y,v,b):i(t,e,x,r,y,v,b);if(!(1&r)){var P=w&&d.call(t,"__wrapped__"),E=j&&d.call(e,"__wrapped__");if(P||E){var A=P?t.value():t,k=E?e.value():e;return b||(b=new n),v(A,k,r,y,b)}}return!!S&&(b||(b=new n),a(t,e,r,y,v,b))}},12657:(t,e,r)=>{var n=r(62863),o=r(86696);t.exports=function(t,e,r,i){var a=r.length,u=a,c=!i;if(null==t)return!u;for(t=Object(t);a--;){var l=r[a];if(c&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++a{t.exports=function(t){return t!=t}},75895:(t,e,r)=>{var n=r(14632),o=r(51164),i=r(50683),a=r(81745),u=/^\[object .+?Constructor\]$/,c=Object.prototype,l=Function.prototype.toString,s=c.hasOwnProperty,f=RegExp("^"+l.call(s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(n(t)?f:u).test(a(t))}},80193:(t,e,r)=>{var n=r(89212),o=r(40312),i=r(22964),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(t){return i(t)&&o(t.length)&&!!a[n(t)]}},15717:(t,e,r)=>{var n=r(30197),o=r(23536),i=r(2586),a=r(55649),u=r(84169);t.exports=function(t){return"function"==typeof t?t:null==t?i:"object"==typeof t?a(t)?o(t[0],t[1]):n(t):u(t)}},70636:(t,e,r)=>{var n=r(44329),o=r(55410),i=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return o(t);var e=[];for(var r in Object(t))i.call(t,r)&&"constructor"!=r&&e.push(r);return e}},49064:t=>{t.exports=function(t,e){return t{var n=r(30865),o=r(74934);t.exports=function(t,e){var r=-1,i=o(t)?Array(t.length):[];return n(t,function(t,n,o){i[++r]=e(t,n,o)}),i}},30197:(t,e,r)=>{var n=r(12657),o=r(24304),i=r(48939);t.exports=function(t){var e=o(t);return 1==e.length&&e[0][2]?i(e[0][0],e[0][1]):function(r){return r===t||n(r,t,e)}}},23536:(t,e,r)=>{var n=r(86696),o=r(32292),i=r(60419),a=r(26192),u=r(29604),c=r(48939),l=r(26767);t.exports=function(t,e){return a(t)&&u(e)?c(l(t),e):function(r){var a=o(r,t);return void 0===a&&a===e?i(r,t):n(e,a,3)}}},20789:(t,e,r)=>{var n=r(3184),o=r(58180),i=r(15717),a=r(13134),u=r(69197),c=r(82451),l=r(38688),s=r(2586),f=r(55649);t.exports=function(t,e,r){e=e.length?n(e,function(t){return f(t)?function(e){return o(e,1===t.length?t[0]:t)}:t}):[s];var p=-1;return e=n(e,c(i)),u(a(t,function(t,r,o){return{criteria:n(e,function(e){return e(t)}),index:++p,value:t}}),function(t,e){return l(t,e,r)})}},61097:t=>{t.exports=function(t){return function(e){return null==e?void 0:e[t]}}},37487:(t,e,r)=>{var n=r(58180);t.exports=function(t){return function(e){return n(e,t)}}},87817:t=>{var e=Math.ceil,r=Math.max;t.exports=function(t,n,o,i){for(var a=-1,u=r(e((n-t)/(o||1)),0),c=Array(u);u--;)c[i?u:++a]=t,t+=o;return c}},4090:(t,e,r)=>{var n=r(2586),o=r(58353),i=r(69595);t.exports=function(t,e){return i(o(t,e,n),t+"")}},15344:(t,e,r)=>{var n=r(73928),o=r(3779),i=r(2586),a=o?function(t,e){return o(t,"toString",{configurable:!0,enumerable:!1,value:n(e),writable:!0})}:i;t.exports=a},13850:t=>{t.exports=function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n{var n=r(30865);t.exports=function(t,e){var r;return n(t,function(t,n,o){return!(r=e(t,n,o))}),!!r}},69197:t=>{t.exports=function(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}},76346:t=>{t.exports=function(t,e){for(var r=-1,n=Array(t);++r{var n=r(35329),o=r(3184),i=r(55649),a=r(8700),u=1/0,c=n?n.prototype:void 0,l=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(i(e))return o(e,t)+"";if(a(e))return l?l.call(e):"";var r=e+"";return"0"==r&&1/e==-u?"-0":r}},95680:(t,e,r)=>{var n=r(53434),o=/^\s+/;t.exports=function(t){return t?t.slice(0,n(t)+1).replace(o,""):t}},82451:t=>{t.exports=function(t){return function(e){return t(e)}}},26349:(t,e,r)=>{var n=r(93395),o=r(24919),i=r(58515),a=r(25327),u=r(82483),c=r(11671);t.exports=function(t,e,r){var l=-1,s=o,f=t.length,p=!0,h=[],d=h;if(r)p=!1,s=i;else if(f>=200){var y=e?null:u(t);if(y)return c(y);p=!1,s=a,d=new n}else d=e?[]:h;t:for(;++l{t.exports=function(t,e){return t.has(e)}},81881:(t,e,r)=>{var n=r(55649),o=r(26192),i=r(80314),a=r(55656);t.exports=function(t,e){return n(t)?t:o(t,e)?[t]:i(a(t))}},35e3:(t,e,r)=>{var n=r(13850);t.exports=function(t,e,r){var o=t.length;return r=void 0===r?o:r,!e&&r>=o?t:n(t,e,r)}},13410:(t,e,r)=>{var n=r(8700);t.exports=function(t,e){if(t!==e){var r=void 0!==t,o=null===t,i=t==t,a=n(t),u=void 0!==e,c=null===e,l=e==e,s=n(e);if(!c&&!s&&!a&&t>e||a&&u&&l&&!c&&!s||o&&u&&l||!r&&l||!i)return 1;if(!o&&!a&&!s&&t{var n=r(13410);t.exports=function(t,e,r){for(var o=-1,i=t.criteria,a=e.criteria,u=i.length,c=r.length;++o=c)return l;return l*("desc"==r[o]?-1:1)}}return t.index-e.index}},13325:(t,e,r)=>{var n=r(74421)["__core-js_shared__"];t.exports=n},30433:(t,e,r)=>{var n=r(74934);t.exports=function(t,e){return function(r,o){if(null==r)return r;if(!n(r))return t(r,o);for(var i=r.length,a=e?i:-1,u=Object(r);(e?a--:++a{t.exports=function(t){return function(e,r,n){for(var o=-1,i=Object(e),a=n(e),u=a.length;u--;){var c=a[t?u:++o];if(!1===r(i[c],c,i))break}return e}}},78265:(t,e,r)=>{var n=r(35e3),o=r(68018),i=r(74662),a=r(55656);t.exports=function(t){return function(e){var r=o(e=a(e))?i(e):void 0,u=r?r[0]:e.charAt(0),c=r?n(r,1).join(""):e.slice(1);return u[t]()+c}}},4598:(t,e,r)=>{var n=r(15717),o=r(74934),i=r(74092);t.exports=function(t){return function(e,r,a){var u=Object(e);if(!o(e)){var c=n(r,3);e=i(e),r=function(t){return c(u[t],t,u)}}var l=t(e,r,a);return l>-1?u[c?e[l]:l]:void 0}}},61102:(t,e,r)=>{var n=r(87817),o=r(91276),i=r(54962);t.exports=function(t){return function(e,r,a){return a&&"number"!=typeof a&&o(e,r,a)&&(r=a=void 0),e=i(e),void 0===r?(r=e,e=0):r=i(r),a=void 0===a?e{var n=r(46083),o=r(27964),i=r(11671),a=n&&1/i(new n([,-0]))[1]==1/0?function(t){return new n(t)}:o;t.exports=a},3779:(t,e,r)=>{var n=r(2748),o=function(){try{var t=n(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},9617:(t,e,r)=>{var n=r(93395),o=r(89686),i=r(25327);t.exports=function(t,e,r,a,u,c){var l=1&r,s=t.length,f=e.length;if(s!=f&&!(l&&f>s))return!1;var p=c.get(t),h=c.get(e);if(p&&h)return p==e&&h==t;var d=-1,y=!0,v=2&r?new n:void 0;for(c.set(t,e),c.set(e,t);++d{var n=r(35329),o=r(252),i=r(93126),a=r(9617),u=r(49773),c=r(11671),l=n?n.prototype:void 0,s=l?l.valueOf:void 0;t.exports=function(t,e,r,n,l,f,p){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)break;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":if(t.byteLength!=e.byteLength||!f(new o(t),new o(e)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var h=u;case"[object Set]":var d=1&n;if(h||(h=c),t.size!=e.size&&!d)break;var y=p.get(t);if(y)return y==e;n|=2,p.set(t,e);var v=a(h(t),h(e),n,l,f,p);return p.delete(t),v;case"[object Symbol]":if(s)return s.call(t)==s.call(e)}return!1}},89589:(t,e,r)=>{var n=r(97038),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,r,i,a,u){var c=1&r,l=n(t),s=l.length;if(s!=n(e).length&&!c)return!1;for(var f=s;f--;){var p=l[f];if(!(c?p in e:o.call(e,p)))return!1}var h=u.get(t),d=u.get(e);if(h&&d)return h==e&&d==t;var y=!0;u.set(t,e),u.set(e,t);for(var v=c;++f{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;t.exports=n},97038:(t,e,r)=>{var n=r(50963),o=r(20768),i=r(74092);t.exports=function(t){return n(t,i,o)}},7819:(t,e,r)=>{var n=r(11884);t.exports=function(t,e){var r=t.__data__;return n(e)?r["string"==typeof e?"string":"hash"]:r.map}},24304:(t,e,r)=>{var n=r(29604),o=r(74092);t.exports=function(t){for(var e=o(t),r=e.length;r--;){var i=e[r],a=t[i];e[r]=[i,a,n(a)]}return e}},2748:(t,e,r)=>{var n=r(75895),o=r(13372);t.exports=function(t,e){var r=o(t,e);return n(r)?r:void 0}},95459:(t,e,r)=>{var n=r(76945)(Object.getPrototypeOf,Object);t.exports=n},71957:(t,e,r)=>{var n=r(35329),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,u=n?n.toStringTag:void 0;t.exports=function(t){var e=i.call(t,u),r=t[u];try{t[u]=void 0;var n=!0}catch(t){}var o=a.call(t);return n&&(e?t[u]=r:delete t[u]),o}},20768:(t,e,r)=>{var n=r(11588),o=r(25297),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,u=a?function(t){return null==t?[]:n(a(t=Object(t)),function(e){return i.call(t,e)})}:o;t.exports=u},30393:(t,e,r)=>{var n=r(19120),o=r(46817),i=r(14006),a=r(46083),u=r(32901),c=r(89212),l=r(81745),s="[object Map]",f="[object Promise]",p="[object Set]",h="[object WeakMap]",d="[object DataView]",y=l(n),v=l(o),b=l(i),m=l(a),g=l(u),x=c;(n&&x(new n(new ArrayBuffer(1)))!=d||o&&x(new o)!=s||i&&x(i.resolve())!=f||a&&x(new a)!=p||u&&x(new u)!=h)&&(x=function(t){var e=c(t),r="[object Object]"==e?t.constructor:void 0,n=r?l(r):"";if(n)switch(n){case y:return d;case v:return s;case b:return f;case m:return p;case g:return h}return e}),t.exports=x},13372:t=>{t.exports=function(t,e){return null==t?void 0:t[e]}},4012:(t,e,r)=>{var n=r(81881),o=r(3108),i=r(55649),a=r(86887),u=r(40312),c=r(26767);t.exports=function(t,e,r){e=n(e,t);for(var l=-1,s=e.length,f=!1;++l{var e=RegExp("[\\u200d\ud800-\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");t.exports=function(t){return e.test(t)}},15066:(t,e,r)=>{var n=r(3474);t.exports=function(){this.__data__=n?n(null):{},this.size=0}},15638:t=>{t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},8183:(t,e,r)=>{var n=r(3474),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(n){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(e,t)?e[t]:void 0}},59659:(t,e,r)=>{var n=r(3474),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return n?void 0!==e[t]:o.call(e,t)}},71619:(t,e,r)=>{var n=r(3474);t.exports=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?"__lodash_hash_undefined__":e,this}},70713:(t,e,r)=>{var n=r(35329),o=r(3108),i=r(55649),a=n?n.isConcatSpreadable:void 0;t.exports=function(t){return i(t)||o(t)||!!(a&&t&&t[a])}},86887:t=>{var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,r){var n=typeof t;return!!(r=null==r?0x1fffffffffffff:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t{var n=r(93126),o=r(74934),i=r(86887),a=r(50683);t.exports=function(t,e,r){if(!a(r))return!1;var u=typeof e;return("number"==u?!!(o(r)&&i(e,r.length)):"string"==u&&e in r)&&n(r[e],t)}},26192:(t,e,r)=>{var n=r(55649),o=r(8700),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(n(t))return!1;var r=typeof t;return!!("number"==r||"symbol"==r||"boolean"==r||null==t||o(t))||a.test(t)||!i.test(t)||null!=e&&t in Object(e)}},11884:t=>{t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},51164:(t,e,r)=>{var n=r(13325),o=function(){var t=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();t.exports=function(t){return!!o&&o in t}},44329:t=>{var e=Object.prototype;t.exports=function(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}},29604:(t,e,r)=>{var n=r(50683);t.exports=function(t){return t==t&&!n(t)}},64598:t=>{t.exports=function(){this.__data__=[],this.size=0}},44602:(t,e,r)=>{var n=r(42489),o=Array.prototype.splice;t.exports=function(t){var e=this.__data__,r=n(e,t);return!(r<0)&&(r==e.length-1?e.pop():o.call(e,r,1),--this.size,!0)}},54299:(t,e,r)=>{var n=r(42489);t.exports=function(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]}},49911:(t,e,r)=>{var n=r(42489);t.exports=function(t){return n(this.__data__,t)>-1}},17039:(t,e,r)=>{var n=r(42489);t.exports=function(t,e){var r=this.__data__,o=n(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}},21470:(t,e,r)=>{var n=r(10801),o=r(6965),i=r(46817);t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(i||o),string:new n}}},9330:(t,e,r)=>{var n=r(7819);t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},58963:(t,e,r)=>{var n=r(7819);t.exports=function(t){return n(this,t).get(t)}},735:(t,e,r)=>{var n=r(7819);t.exports=function(t){return n(this,t).has(t)}},20135:(t,e,r)=>{var n=r(7819);t.exports=function(t,e){var r=n(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}},49773:t=>{t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}},48939:t=>{t.exports=function(t,e){return function(r){return null!=r&&r[t]===e&&(void 0!==e||t in Object(r))}}},73646:(t,e,r)=>{var n=r(80480);t.exports=function(t){var e=n(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}},3474:(t,e,r)=>{var n=r(2748)(Object,"create");t.exports=n},55410:(t,e,r)=>{var n=r(76945)(Object.keys,Object);t.exports=n},3469:(t,e,r)=>{t=r.nmd(t);var n=r(54956),o=e&&!e.nodeType&&e,i=o&&t&&!t.nodeType&&t,a=i&&i.exports===o&&n.process,u=function(){try{var t=i&&i.require&&i.require("util").types;if(t)return t;return a&&a.binding&&a.binding("util")}catch(t){}}();t.exports=u},19914:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},76945:t=>{t.exports=function(t,e){return function(r){return t(e(r))}}},58353:(t,e,r)=>{var n=r(46879),o=Math.max;t.exports=function(t,e,r){return e=o(void 0===e?t.length-1:e,0),function(){for(var i=arguments,a=-1,u=o(i.length-e,0),c=Array(u);++a{var n=r(54956),o="object"==typeof self&&self&&self.Object===Object&&self,i=n||o||Function("return this")();t.exports=i},50350:t=>{t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},81773:t=>{t.exports=function(t){return this.__data__.has(t)}},11671:t=>{t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}},69595:(t,e,r)=>{var n=r(15344),o=r(64559)(n);t.exports=o},64559:t=>{var e=Date.now;t.exports=function(t){var r=0,n=0;return function(){var o=e(),i=16-(o-n);if(n=o,i>0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}},85868:(t,e,r)=>{var n=r(6965);t.exports=function(){this.__data__=new n,this.size=0}},40036:t=>{t.exports=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},88365:t=>{t.exports=function(t){return this.__data__.get(t)}},18913:t=>{t.exports=function(t){return this.__data__.has(t)}},40305:(t,e,r)=>{var n=r(6965),o=r(46817),i=r(15933);t.exports=function(t,e){var r=this.__data__;if(r instanceof n){var a=r.__data__;if(!o||a.length<199)return a.push([t,e]),this.size=++r.size,this;r=this.__data__=new i(a)}return r.set(t,e),this.size=r.size,this}},38225:t=>{t.exports=function(t,e,r){for(var n=r-1,o=t.length;++n{var n=r(13706),o=r(68018),i=r(60342);t.exports=function(t){return o(t)?i(t):n(t)}},80314:(t,e,r)=>{var n=r(73646),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=n(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(o,function(t,r,n,o){e.push(n?o.replace(i,"$1"):r||t)}),e});t.exports=a},26767:(t,e,r)=>{var n=r(8700),o=1/0;t.exports=function(t){if("string"==typeof t||n(t))return t;var e=t+"";return"0"==e&&1/t==-o?"-0":e}},81745:t=>{var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},53434:t=>{var e=/\s/;t.exports=function(t){for(var r=t.length;r--&&e.test(t.charAt(r)););return r}},60342:t=>{var e="\ud800-\udfff",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\ud83c[\udffb-\udfff]",o="[^"+e+"]",i="(?:\ud83c[\udde6-\uddff]){2}",a="[\ud800-\udbff][\udc00-\udfff]",u="(?:"+r+"|"+n+")?",c="[\\ufe0e\\ufe0f]?",l="(?:\\u200d(?:"+[o,i,a].join("|")+")"+c+u+")*",s=RegExp(n+"(?="+n+")|(?:"+[o+r+"?",r,i,a,"["+e+"]"].join("|")+")"+(c+u+l),"g");t.exports=function(t){return t.match(s)||[]}},73928:t=>{t.exports=function(t){return function(){return t}}},59243:(t,e,r)=>{var n=r(50683),o=r(92816),i=r(82524),a=Math.max,u=Math.min;t.exports=function(t,e,r){var c,l,s,f,p,h,d=0,y=!1,v=!1,b=!0;if("function"!=typeof t)throw TypeError("Expected a function");function m(e){var r=c,n=l;return c=l=void 0,d=e,f=t.apply(n,r)}function g(t){var r=t-h,n=t-d;return void 0===h||r>=e||r<0||v&&n>=s}function x(){var t,r,n,i=o();if(g(i))return O(i);p=setTimeout(x,(t=i-h,r=i-d,n=e-t,v?u(n,s-r):n))}function O(t){return(p=void 0,b&&c)?m(t):(c=l=void 0,f)}function w(){var t,r=o(),n=g(r);if(c=arguments,l=this,h=r,n){if(void 0===p)return d=t=h,p=setTimeout(x,e),y?m(t):f;if(v)return clearTimeout(p),p=setTimeout(x,e),m(h)}return void 0===p&&(p=setTimeout(x,e)),f}return e=i(e)||0,n(r)&&(y=!!r.leading,s=(v="maxWait"in r)?a(i(r.maxWait)||0,e):s,b="trailing"in r?!!r.trailing:b),w.cancel=function(){void 0!==p&&clearTimeout(p),d=0,c=h=l=p=void 0},w.flush=function(){return void 0===p?f:O(o())},w}},93126:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},83191:(t,e,r)=>{var n=r(41129),o=r(41111),i=r(15717),a=r(55649),u=r(91276);t.exports=function(t,e,r){var c=a(t)?n:o;return r&&u(t,e,r)&&(e=void 0),c(t,i(e,3))}},1339:(t,e,r)=>{var n=r(4598)(r(17621));t.exports=n},17621:(t,e,r)=>{var n=r(73461),o=r(15717),i=r(41265),a=Math.max;t.exports=function(t,e,r){var u=null==t?0:t.length;if(!u)return -1;var c=null==r?0:i(r);return c<0&&(c=a(u+c,0)),n(t,o(e,3),c)}},14607:(t,e,r)=>{var n=r(85646),o=r(18190);t.exports=function(t,e){return n(o(t,e),1)}},32292:(t,e,r)=>{var n=r(58180);t.exports=function(t,e,r){var o=null==t?void 0:n(t,e);return void 0===o?r:o}},60419:(t,e,r)=>{var n=r(11971),o=r(4012);t.exports=function(t,e){return null!=t&&o(t,e,n)}},2586:t=>{t.exports=function(t){return t}},3108:(t,e,r)=>{var n=r(71940),o=r(22964),i=Object.prototype,a=i.hasOwnProperty,u=i.propertyIsEnumerable,c=n(function(){return arguments}())?n:function(t){return o(t)&&a.call(t,"callee")&&!u.call(t,"callee")};t.exports=c},55649:t=>{var e=Array.isArray;t.exports=e},74934:(t,e,r)=>{var n=r(14632),o=r(40312);t.exports=function(t){return null!=t&&o(t.length)&&!n(t)}},46420:(t,e,r)=>{var n=r(89212),o=r(22964);t.exports=function(t){return!0===t||!1===t||o(t)&&"[object Boolean]"==n(t)}},91050:(t,e,r)=>{t=r.nmd(t);var n=r(74421),o=r(44731),i=e&&!e.nodeType&&e,a=i&&t&&!t.nodeType&&t,u=a&&a.exports===i?n.Buffer:void 0,c=u?u.isBuffer:void 0;t.exports=c||o},6440:(t,e,r)=>{var n=r(86696);t.exports=function(t,e){return n(t,e)}},14632:(t,e,r)=>{var n=r(89212),o=r(50683);t.exports=function(t){if(!o(t))return!1;var e=n(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},40312:t=>{t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=0x1fffffffffffff}},50801:(t,e,r)=>{var n=r(45493);t.exports=function(t){return n(t)&&t!=+t}},87107:t=>{t.exports=function(t){return null==t}},45493:(t,e,r)=>{var n=r(89212),o=r(22964);t.exports=function(t){return"number"==typeof t||o(t)&&"[object Number]"==n(t)}},50683:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},22964:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},55519:(t,e,r)=>{var n=r(89212),o=r(95459),i=r(22964),a=Object.prototype,u=Function.prototype.toString,c=a.hasOwnProperty,l=u.call(Object);t.exports=function(t){if(!i(t)||"[object Object]"!=n(t))return!1;var e=o(t);if(null===e)return!0;var r=c.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&u.call(r)==l}},24665:(t,e,r)=>{var n=r(89212),o=r(55649),i=r(22964);t.exports=function(t){return"string"==typeof t||!o(t)&&i(t)&&"[object String]"==n(t)}},8700:(t,e,r)=>{var n=r(89212),o=r(22964);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==n(t)}},20897:(t,e,r)=>{var n=r(80193),o=r(82451),i=r(3469),a=i&&i.isTypedArray,u=a?o(a):n;t.exports=u},74092:(t,e,r)=>{var n=r(4241),o=r(70636),i=r(74934);t.exports=function(t){return i(t)?n(t):o(t)}},21836:t=>{t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},18190:(t,e,r)=>{var n=r(3184),o=r(15717),i=r(13134),a=r(55649);t.exports=function(t,e){return(a(t)?n:i)(t,o(e,3))}},86992:(t,e,r)=>{var n=r(79514),o=r(16101),i=r(15717);t.exports=function(t,e){var r={};return e=i(e,3),o(t,function(t,o,i){n(r,o,e(t,o,i))}),r}},12838:(t,e,r)=>{var n=r(89691),o=r(57991),i=r(2586);t.exports=function(t){return t&&t.length?n(t,i,o):void 0}},80480:(t,e,r)=>{var n=r(15933);function o(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(o.Cache||n),r}o.Cache=n,t.exports=o},45652:(t,e,r)=>{var n=r(89691),o=r(49064),i=r(2586);t.exports=function(t){return t&&t.length?n(t,i,o):void 0}},27964:t=>{t.exports=function(){}},92816:(t,e,r)=>{var n=r(74421);t.exports=function(){return n.Date.now()}},84169:(t,e,r)=>{var n=r(61097),o=r(37487),i=r(26192),a=r(26767);t.exports=function(t){return i(t)?n(a(t)):o(t)}},4009:(t,e,r)=>{var n=r(61102)();t.exports=n},88448:(t,e,r)=>{var n=r(89686),o=r(15717),i=r(63872),a=r(55649),u=r(91276);t.exports=function(t,e,r){var c=a(t)?n:i;return r&&u(t,e,r)&&(e=void 0),c(t,o(e,3))}},67501:(t,e,r)=>{var n=r(85646),o=r(20789),i=r(4090),a=r(91276),u=i(function(t,e){if(null==t)return[];var r=e.length;return r>1&&a(t,e[0],e[1])?e=[]:r>2&&a(e[0],e[1],e[2])&&(e=[e[0]]),o(t,n(e,1),[])});t.exports=u},25297:t=>{t.exports=function(){return[]}},44731:t=>{t.exports=function(){return!1}},54636:(t,e,r)=>{var n=r(59243),o=r(50683);t.exports=function(t,e,r){var i=!0,a=!0;if("function"!=typeof t)throw TypeError("Expected a function");return o(r)&&(i="leading"in r?!!r.leading:i,a="trailing"in r?!!r.trailing:a),n(t,e,{leading:i,maxWait:e,trailing:a})}},54962:(t,e,r)=>{var n=r(82524),o=1/0;t.exports=function(t){return t?(t=n(t))===o||t===-o?(t<0?-1:1)*17976931348623157e292:t==t?t:0:0===t?t:0}},41265:(t,e,r)=>{var n=r(54962);t.exports=function(t){var e=n(t),r=e%1;return e==e?r?e-r:e:0}},82524:(t,e,r)=>{var n=r(95680),o=r(50683),i=r(8700),a=0/0,u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,s=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return a;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=n(t);var r=c.test(t);return r||l.test(t)?s(t.slice(2),r?2:8):u.test(t)?a:+t}},55656:(t,e,r)=>{var n=r(51688);t.exports=function(t){return null==t?"":n(t)}},79948:(t,e,r)=>{var n=r(15717),o=r(26349);t.exports=function(t,e){return t&&t.length?o(t,n(e,2)):[]}},76158:(t,e,r)=>{var n=r(78265)("toUpperCase");t.exports=n},546:(t,e,r)=>{"use strict";var n=r(57213);function o(){}function i(){}i.resetWarningCache=o,t.exports=function(){function t(t,e,r,o,i,a){if(a!==n){var u=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function e(){return t}t.isRequired=t;var r={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:i,resetWarningCache:o};return r.PropTypes=r,r}},83318:(t,e,r)=>{t.exports=r(546)()},57213:t=>{"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},55473:(t,e)=>{"use strict";var r=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler");Symbol.for("react.provider");var u=Symbol.for("react.consumer"),c=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),s=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy");Symbol.for("react.offscreen"),Symbol.for("react.client.reference"),e.vq=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===r},e.zv=function(t){return function(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case r:switch(t=t.type){case o:case a:case i:case s:case f:return t;default:switch(t=t&&t.$$typeof){case c:case l:case h:case p:case u:return t;default:return e}}case n:return e}}}(t)===o}},61075:(t,e,r)=>{"use strict";r.d(e,{Ay:()=>tZ});var n=r(20107),o=r(83318),i=r.n(o),a=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty;function l(t,e){return function(r,n,o){return t(r,n,o)&&e(r,n,o)}}function s(t){return function(e,r,n){if(!e||!r||"object"!=typeof e||"object"!=typeof r)return t(e,r,n);var o=n.cache,i=o.get(e),a=o.get(r);if(i&&a)return i===r&&a===e;o.set(e,r),o.set(r,e);var u=t(e,r,n);return o.delete(e),o.delete(r),u}}function f(t){return a(t).concat(u(t))}var p=Object.hasOwn||function(t,e){return c.call(t,e)};function h(t,e){return t||e?t===e:t===e||t!=t&&e!=e}var d="_owner",y=Object.getOwnPropertyDescriptor,v=Object.keys;function b(t,e,r){var n=t.length;if(e.length!==n)return!1;for(;n-- >0;)if(!r.equals(t[n],e[n],n,n,t,e,r))return!1;return!0}function m(t,e){return h(t.getTime(),e.getTime())}function g(t,e,r){if(t.size!==e.size)return!1;for(var n,o,i={},a=t.entries(),u=0;(n=a.next())&&!n.done;){for(var c=e.entries(),l=!1,s=0;(o=c.next())&&!o.done;){var f=n.value,p=f[0],h=f[1],d=o.value,y=d[0],v=d[1];!l&&!i[s]&&(l=r.equals(p,y,u,s,t,e,r)&&r.equals(h,v,p,y,t,e,r))&&(i[s]=!0),s++}if(!l)return!1;u++}return!0}function x(t,e,r){var n,o=v(t),i=o.length;if(v(e).length!==i)return!1;for(;i-- >0;)if((n=o[i])===d&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!p(e,n)||!r.equals(t[n],e[n],n,n,t,e,r))return!1;return!0}function O(t,e,r){var n,o,i,a=f(t),u=a.length;if(f(e).length!==u)return!1;for(;u-- >0;)if((n=a[u])===d&&(t.$$typeof||e.$$typeof)&&t.$$typeof!==e.$$typeof||!p(e,n)||!r.equals(t[n],e[n],n,n,t,e,r)||(o=y(t,n),i=y(e,n),(o||i)&&(!o||!i||o.configurable!==i.configurable||o.enumerable!==i.enumerable||o.writable!==i.writable)))return!1;return!0}function w(t,e){return h(t.valueOf(),e.valueOf())}function j(t,e){return t.source===e.source&&t.flags===e.flags}function S(t,e,r){if(t.size!==e.size)return!1;for(var n,o,i={},a=t.values();(n=a.next())&&!n.done;){for(var u=e.values(),c=!1,l=0;(o=u.next())&&!o.done;)!c&&!i[l]&&(c=r.equals(n.value,o.value,n.value,o.value,t,e,r))&&(i[l]=!0),l++;if(!c)return!1}return!0}function P(t,e){var r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(t[r]!==e[r])return!1;return!0}var E=Array.isArray,A="function"==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView:null,k=Object.assign,M=Object.prototype.toString.call.bind(Object.prototype.toString),_=T();function T(t){void 0===t&&(t={});var e,r,n,o,i,a,u,c,f,p=t.circular,h=t.createInternalComparator,d=t.createState,y=t.strict,v=(r=(e=function(t){var e=t.circular,r=t.createCustomConfig,n=t.strict,o={areArraysEqual:n?O:b,areDatesEqual:m,areMapsEqual:n?l(g,O):g,areObjectsEqual:n?O:x,arePrimitiveWrappersEqual:w,areRegExpsEqual:j,areSetsEqual:n?l(S,O):S,areTypedArraysEqual:n?O:P};if(r&&(o=k({},o,r(o))),e){var i=s(o.areArraysEqual),a=s(o.areMapsEqual),u=s(o.areObjectsEqual),c=s(o.areSetsEqual);o=k({},o,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:u,areSetsEqual:c})}return o}(t)).areArraysEqual,n=e.areDatesEqual,o=e.areMapsEqual,i=e.areObjectsEqual,a=e.arePrimitiveWrappersEqual,u=e.areRegExpsEqual,c=e.areSetsEqual,f=e.areTypedArraysEqual,function(t,e,l){if(t===e)return!0;if(null==t||null==e||"object"!=typeof t||"object"!=typeof e)return t!=t&&e!=e;var s=t.constructor;if(s!==e.constructor)return!1;if(s===Object)return i(t,e,l);if(E(t))return r(t,e,l);if(null!=A&&A(t))return f(t,e,l);if(s===Date)return n(t,e,l);if(s===RegExp)return u(t,e,l);if(s===Map)return o(t,e,l);if(s===Set)return c(t,e,l);var p=M(t);return"[object Date]"===p?n(t,e,l):"[object RegExp]"===p?u(t,e,l):"[object Map]"===p?o(t,e,l):"[object Set]"===p?c(t,e,l):"[object Object]"===p?"function"!=typeof t.then&&"function"!=typeof e.then&&i(t,e,l):"[object Arguments]"===p?i(t,e,l):("[object Boolean]"===p||"[object Number]"===p||"[object String]"===p)&&a(t,e,l)}),_=h?h(v):function(t,e,r,n,o,i,a){return v(t,e,a)};return function(t){var e=t.circular,r=t.comparator,n=t.createState,o=t.equals,i=t.strict;if(n)return function(t,a){var u=n(),c=u.cache;return r(t,a,{cache:void 0===c?e?new WeakMap:void 0:c,equals:o,meta:u.meta,strict:i})};if(e)return function(t,e){return r(t,e,{cache:new WeakMap,equals:o,meta:void 0,strict:i})};var a={cache:void 0,equals:o,meta:void 0,strict:i};return function(t,e){return r(t,e,a)}}({circular:void 0!==p&&p,comparator:v,createState:d,equals:_,strict:void 0!==y&&y})}function C(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=-1;requestAnimationFrame(function n(o){if(r<0&&(r=o),o-r>e)t(o),r=-1;else{var i;i=n,"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame(i)}})}function I(t){return(I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function D(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rt.length)&&(e=t.length);for(var r=0,n=Array(e);r=0&&t<=1}),"[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s",n);var p=V(i,u),h=V(a,c),d=(t=i,e=u,function(r){var n;return H([].concat(function(t){if(Array.isArray(t))return q(t)}(n=X(t,e).map(function(t,e){return t*e}).slice(1))||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||W(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[0]),r)}),y=function(t){for(var e=t>1?1:t,r=e,n=0;n<8;++n){var o,i=p(r)-e,a=d(r);if(1e-4>Math.abs(i-e)||a<1e-4)break;r=(o=r-i/a)>1?1:o<0?0:o}return h(r)};return y.isStepper=!1,y},Y=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.stiff,r=void 0===e?100:e,n=t.damping,o=void 0===n?8:n,i=t.dt,a=void 0===i?17:i,u=function(t,e,n){var i=n+(-(t-e)*r-n*o)*a/1e3,u=n*a/1e3+t;return 1e-4>Math.abs(u-e)&&1e-4>Math.abs(i)?[e,0]:[u,i]};return u.isStepper=!0,u.dt=a,u},K=function(){for(var t=arguments.length,e=Array(t),r=0;rt.length)&&(e=t.length);for(var r=0,n=Array(e);rt.length)&&(e=t.length);for(var r=0,n=Array(e);r0?r[o-1]:n,p=l||Object.keys(c);if("function"==typeof u||"spring"===u)return[].concat(ts(t),[e.runJSAnimation.bind(e,{from:f.style,to:c,duration:i,easing:u}),i]);var h=$(p,i,u),d=th(th(th({},f.style),c),{},{transition:h});return[].concat(ts(t),[d,i,s]).filter(z)},[a,Math.max(void 0===u?0:u,n)])),[t.onAnimationEnd]))}},{key:"runAnimation",value:function(t){if(!this.manager){var e,r,n;this.manager=(e=function(){return null},r=!1,n=function t(n){if(!r){if(Array.isArray(n)){if(!n.length)return;var o=function(t){if(Array.isArray(t))return t}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return D(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return D(t,void 0)}}(n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),i=o[0],a=o.slice(1);if("number"==typeof i){C(t.bind(null,a),i);return}t(i),C(t.bind(null,a));return}"object"===I(n)&&e(n),"function"==typeof n&&n()}},{stop:function(){r=!0},start:function(t){r=!1,n(t)},subscribe:function(t){return e=t,function(){e=function(){return null}}}})}var o=t.begin,i=t.duration,a=t.attributeName,u=t.to,c=t.easing,l=t.onAnimationStart,s=t.onAnimationEnd,f=t.steps,p=t.children,h=this.manager;if(this.unSubscribe=h.subscribe(this.handleStyleChange),"function"==typeof c||"function"==typeof p||"spring"===c){this.runJSAnimation(t);return}if(f.length>1){this.runStepAnimation(t);return}var d=a?td({},a,u):u,y=$(Object.keys(d),i,c);h.start([l,o,th(th({},d),{},{transition:y}),i,s])}},{key:"render",value:function(){var t=this.props,e=t.children,r=(t.begin,t.duration),o=(t.attributeName,t.easing,t.isActive),i=(t.steps,t.from,t.to,t.canBegin,t.onAnimationEnd,t.shouldReAnimate,t.onAnimationReStart,function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,tl)),a=n.Children.count(e),u=this.state.style;if("function"==typeof e)return e(u);if(!o||0===a||r<=0)return e;var c=function(t){var e=t.props,r=e.style,o=e.className;return(0,n.cloneElement)(t,th(th({},i),{},{style:th(th({},void 0===r?{}:r),u),className:o}))};return 1===a?c(n.Children.only(e)):n.createElement("div",null,n.Children.map(e,function(t){return c(t)}))}}],function(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=t.steps,r=t.duration;return e&&e.length?e.reduce(function(t,e){return t+(Number.isFinite(e.duration)&&e.duration>0?e.duration:0)},0):Number.isFinite(r)?r:0},tK=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&tq(t,e)}(i,t);var e,r,o=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}(),function(){var t,r=tH(i);return t=e?Reflect.construct(r,arguments,tH(this).constructor):r.apply(this,arguments),function(t,e){if(e&&("object"===tU(e)||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");return tX(t)}(this,t)});function i(){var t;return!function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}(this,i),tV(tX(t=o.call(this)),"handleEnter",function(e,r){var n=t.props,o=n.appearOptions,i=n.enterOptions;t.handleStyleActive(r?o:i)}),tV(tX(t),"handleExit",function(){var e=t.props.leaveOptions;t.handleStyleActive(e)}),t.state={isActive:!1},t}return r=[{key:"handleStyleActive",value:function(t){if(t){var e=t.onAnimationEnd?function(){t.onAnimationEnd()}:null;this.setState(tW(tW({},t),{},{onAnimationEnd:e,isActive:!0}))}}},{key:"parseTimeout",value:function(){var t=this.props,e=t.appearOptions,r=t.enterOptions,n=t.leaveOptions;return tY(e)+tY(r)+tY(n)}},{key:"render",value:function(){var t=this,e=this.props,r=e.children,o=(e.appearOptions,e.enterOptions,e.leaveOptions,function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(e,tz));return n.createElement(tR,t$({},o,{onEnter:this.handleEnter,onExit:this.handleExit,timeout:this.parseTimeout()}),function(){return n.createElement(tx,t.state,n.Children.only(r))})}}],function(t,e){for(var r=0;r{"use strict";r.d(e,{y:()=>U});var n=r(20107),o=r(64901),i=r(61075),a=r(6440),u=r.n(a),c=r(87107),l=r.n(c),s=r(37819),f=r(73678),p=function(t){return null};p.displayName="Cell";var h=r(58864),d=r(89952),y=r(61211),v=r(95392),b=r(95492),m=r(35956),g=r(45082),x=r(82372),O=["x","y"];function w(t){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function j(){return(j=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,O),i=parseInt("".concat(r),10),a=parseInt("".concat(n),10),u=parseInt("".concat(e.height||o.height),10),c=parseInt("".concat(e.width||o.width),10);return P(P(P(P(P({},e),o),i?{x:i}:{}),a?{y:a}:{}),{},{height:u,width:c,name:e.name,radius:e.radius})}function A(t){return n.createElement(x.yp,j({shapeType:"rectangle",propTransformer:E,activeClassName:"recharts-active-bar"},t))}var k=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return function(r,n){if("number"==typeof t)return t;var o="number"==typeof r;return o?t(r,n):(o||(0,g.A)(!1),e)}},M=["value","background"];function _(t){return(_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function T(){return(T=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(e,M);if(!u)return null;var l=I(I(I(I(I({},c),{},{fill:"#eee"},u),a),(0,m.XC)(t.props,e,r)),{},{onAnimationStart:t.handleAnimationStart,onAnimationEnd:t.handleAnimationEnd,dataKey:o,index:r,className:"recharts-bar-background-rectangle"});return n.createElement(A,T({key:"background-bar-".concat(r),option:t.props.background,isActive:r===i},l))})}},{key:"renderErrorBar",value:function(t,e){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var r=this.props,o=r.data,i=r.xAxis,a=r.yAxis,u=r.layout,c=r.children,l=(0,y.aS)(c,f.u);if(!l)return null;var p="vertical"===u?o[0].height/2:o[0].width/2,h=function(t,e){var r=Array.isArray(t.value)?t.value[1]:t.value;return{x:t.x,y:t.y,value:r,errorVal:(0,b.kr)(t,e)}};return n.createElement(s.W,{clipPath:t?"url(#clipPath-".concat(e,")"):null},l.map(function(t){return n.cloneElement(t,{key:"error-bar-".concat(e,"-").concat(t.props.dataKey),data:o,xAxis:i,yAxis:a,layout:u,offset:p,dataPointFormatter:h})}))}},{key:"render",value:function(){var t=this.props,e=t.hide,r=t.data,i=t.className,a=t.xAxis,u=t.yAxis,c=t.left,f=t.top,p=t.width,d=t.height,y=t.isAnimationActive,v=t.background,b=t.id;if(e||!r||!r.length)return null;var m=this.state.isAnimationFinished,g=(0,o.A)("recharts-bar",i),x=a&&a.allowDataOverflow,O=u&&u.allowDataOverflow,w=x||O,j=l()(b)?this.id:b;return n.createElement(s.W,{className:g},x||O?n.createElement("defs",null,n.createElement("clipPath",{id:"clipPath-".concat(j)},n.createElement("rect",{x:x?c:c-p/2,y:O?f:f-d/2,width:x?p:2*p,height:O?d:2*d}))):null,n.createElement(s.W,{className:"recharts-bar-rectangles",clipPath:w?"url(#clipPath-".concat(j,")"):null},v?this.renderBackground():null,this.renderRectangles()),this.renderErrorBar(w,j),(!y||m)&&h.Z.renderCallByParent(this.props,r))}}],r=[{key:"getDerivedStateFromProps",value:function(t,e){return t.animationId!==e.prevAnimationId?{prevAnimationId:t.animationId,curData:t.data,prevData:e.curData}:t.data!==e.curData?{curData:t.data}:null}}],e&&D(a.prototype,e),r&&D(a,r),Object.defineProperty(a,"prototype",{writable:!1}),a}(n.PureComponent);L(U,"displayName","Bar"),L(U,"defaultProps",{xAxisId:0,yAxisId:0,legendType:"rect",minPointSize:0,hide:!1,data:[],layout:"vertical",activeBar:!1,isAnimationActive:!v.m.isSsr,animationBegin:0,animationDuration:400,animationEasing:"ease"}),L(U,"getComposedData",function(t){var e=t.props,r=t.item,n=t.barPosition,o=t.bandSize,i=t.xAxis,a=t.yAxis,u=t.xAxisTicks,c=t.yAxisTicks,l=t.stackedData,s=t.dataStartIndex,f=t.displayedData,h=t.offset,v=(0,b.xi)(n,r);if(!v)return null;var m=e.layout,g=r.type.defaultProps,x=void 0!==g?I(I({},g),r.props):r.props,O=x.dataKey,w=x.children,j=x.minPointSize,S="horizontal"===m?a:i,P=l?S.scale.domain():null,E=(0,b.DW)({numericAxis:S}),A=(0,y.aS)(w,p),M=f.map(function(t,e){l?f=(0,b._f)(l[s+e],P):Array.isArray(f=(0,b.kr)(t,O))||(f=[E,f]);var n=k(j,U.defaultProps.minPointSize)(f[1],e);if("horizontal"===m){var f,p,h,y,g,x,w,S=[a.scale(f[0]),a.scale(f[1])],M=S[0],_=S[1];p=(0,b.y2)({axis:i,ticks:u,bandSize:o,offset:v.offset,entry:t,index:e}),h=null!==(w=null!=_?_:M)&&void 0!==w?w:void 0,y=v.size;var T=M-_;if(g=Number.isNaN(T)?0:T,x={x:p,y:a.y,width:y,height:a.height},Math.abs(n)>0&&Math.abs(g)0&&Math.abs(y){"use strict";r.d(e,{u:()=>T});var n=r(20107),o=r(14632),i=r.n(o),a=r(32292),u=r.n(a),c=r(64901),l=r(45707),s=r(37819),f=r(77431),p=r(94348),h=r(89952),d=r(35956),y=r(61211),v=r(62882),b=["viewBox"],m=["viewBox"],g=["ticks"];function x(t){return(x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function O(){return(O=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function P(t,e){for(var r=0;r0?this.props:d)),o<=0||a<=0||!y||!y.length)?null:n.createElement(s.W,{className:(0,c.A)("recharts-cartesian-axis",l),ref:function(e){t.layerReference=e}},r&&this.renderAxisLine(),this.renderTicks(y,this.state.fontSize,this.state.letterSpacing),p.J.renderCallByParent(this.props))}}],r=[{key:"renderTickItem",value:function(t,e,r){return n.isValidElement(t)?n.cloneElement(t,e):i()(t)?t(e):n.createElement(f.E,O({},e,{className:"recharts-cartesian-axis-tick-value"}),r)}}],e&&P(o.prototype,e),r&&P(o,r),Object.defineProperty(o,"prototype",{writable:!1}),o}(n.Component);M(T,"displayName","CartesianAxis"),M(T,"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"})},73678:(t,e,r)=>{"use strict";r.d(e,{u:()=>v});var n=r(20107),o=r(45082),i=r(37819),a=r(61211),u=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){return(l=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=Array(e);r=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,u),b=(0,a.J9)(v,!1);"x"===this.props.direction&&"number"!==d.type&&(0,o.A)(!1);var m=p.map(function(t){var o,a,u=h(t,f),p=u.x,v=u.y,m=u.value,g=u.errorVal;if(!g)return null;var x=[];if(Array.isArray(g)){var O=function(t){if(Array.isArray(t))return t}(g)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{for(i=(r=r.call(t)).next;!(c=(n=i.call(r)).done)&&(u.push(n.value),2!==u.length);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(g,2)||function(t,e){if(t){if("string"==typeof t)return s(t,2);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(t,2)}}(g,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();o=O[0],a=O[1]}else o=a=g;if("vertical"===r){var w=d.scale,j=v+e,S=j+c,P=j-c,E=w(m-o),A=w(m+a);x.push({x1:A,y1:S,x2:A,y2:P}),x.push({x1:E,y1:j,x2:A,y2:j}),x.push({x1:E,y1:S,x2:E,y2:P})}else if("horizontal"===r){var k=y.scale,M=p+e,_=M-c,T=M+c,C=k(m-o),I=k(m+a);x.push({x1:_,y1:I,x2:T,y2:I}),x.push({x1:M,y1:C,x2:M,y2:I}),x.push({x1:_,y1:C,x2:T,y2:C})}return n.createElement(i.W,l({className:"recharts-errorBar",key:"bar-".concat(x.map(function(t){return"".concat(t.x1,"-").concat(t.x2,"-").concat(t.y1,"-").concat(t.y2)}))},b),x.map(function(t){return n.createElement("line",l({},t,{key:"line-".concat(t.x1,"-").concat(t.x2,"-").concat(t.y1,"-").concat(t.y2)}))}))});return n.createElement(i.W,{className:"recharts-errorBars"},m)}}],function(t,e){for(var r=0;r{"use strict";r.d(e,{W:()=>v});var n=r(20107),o=r(64901),i=r(25161),a=r(67064),u=r(95492);function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(l=function(){return!!t})()}function s(t){return(s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function f(t,e){return(f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function p(t,e,r){return(e=h(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function h(t){var e=function(t,e){if("object"!=c(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=c(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==c(e)?e:e+""}function d(){return(d=Object.assign?Object.assign.bind():function(t){for(var e=1;e{"use strict";r.d(e,{h:()=>v});var n=r(20107),o=r(64901),i=r(25161),a=r(67064),u=r(95492);function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(l=function(){return!!t})()}function s(t){return(s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function f(t,e){return(f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function p(t,e,r){return(e=h(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function h(t){var e=function(t,e){if("object"!=c(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=c(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==c(e)?e:e+""}function d(){return(d=Object.assign?Object.assign.bind():function(t){for(var e=1;e{"use strict";r.d(e,{f:()=>d});var n=r(14632),o=r.n(n),i=r(89952),a=r(56594),u=r(95392),c=r(98456);function l(t,e,r){if(e<1)return[];if(1===e&&void 0===r)return t;for(var n=[],o=0;ot*o)return!1;var i=r();return t*(e-t*i/2-n)>=0&&t*(e+t*i/2-o)<=0}function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function h(t){for(var e=1;e=2?(0,i.sA)(b[1].coordinate-b[0].coordinate):1,M=(n="width"===P,f=m.x,p=m.y,d=m.width,y=m.height,1===k?{start:n?f:p,end:n?f+d:p+y}:{start:n?f+d:p+y,end:n?f:p});return"equidistantPreserveStart"===O?function(t,e,r,n,o){for(var i,a=(n||[]).slice(),u=e.start,c=e.end,f=0,p=1,h=u;p<=a.length;)if(i=function(){var e,i=null==n?void 0:n[f];if(void 0===i)return{v:l(n,p)};var a=f,d=function(){return void 0===e&&(e=r(i,a)),e},y=i.coordinate,v=0===f||s(t,y,d,h,c);v||(f=0,h=u,p+=1),v&&(h=y+t*(d()/2+o),f+=p)}())return i.v;return[]}(k,M,A,b,g):("preserveStart"===O||"preserveStartEnd"===O?function(t,e,r,n,o,i){var a=(n||[]).slice(),u=a.length,c=e.start,l=e.end;if(i){var f=n[u-1],p=r(f,u-1),d=t*(f.coordinate+t*p/2-l);a[u-1]=f=h(h({},f),{},{tickCoord:d>0?f.coordinate-d*t:f.coordinate}),s(t,f.tickCoord,function(){return p},c,l)&&(l=f.tickCoord-t*(p/2+o),a[u-1]=h(h({},f),{},{isShow:!0}))}for(var y=i?u-1:u,v=function(e){var n,i=a[e],u=function(){return void 0===n&&(n=r(i,e)),n};if(0===e){var f=t*(i.coordinate-t*u()/2-c);a[e]=i=h(h({},i),{},{tickCoord:f<0?i.coordinate-f*t:i.coordinate})}else a[e]=i=h(h({},i),{},{tickCoord:i.coordinate});s(t,i.tickCoord,u,c,l)&&(c=i.tickCoord+t*(u()/2+o),a[e]=h(h({},i),{},{isShow:!0}))},b=0;b0?l.coordinate-p*t:l.coordinate})}else i[e]=l=h(h({},l),{},{tickCoord:l.coordinate});s(t,l.tickCoord,f,u,c)&&(c=l.tickCoord-t*(f()/2+o),i[e]=h(h({},l),{},{isShow:!0}))},f=a-1;f>=0;f--)l(f);return i}(k,M,A,b,g)).filter(function(t){return t.isShow})}},90805:(t,e,r)=>{"use strict";r.d(e,{gu:()=>eC});var n=r(20107),o=r(87107),i=r.n(o),a=r(14632),u=r.n(a),c=r(4009),l=r.n(c),s=r(32292),f=r.n(s),p=r(67501),h=r.n(p),d=r(54636),y=r.n(d),v=r(64901),b=r(45082),m=r(6701),g=r(37819),x=r(58601),O=r(58736),w=r(42555),j=r(2721),S=r(61211),P=r(63949),E=r(77431),A=r(95492),k=r(89952);function M(t){return(M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function T(t){for(var e=1;e0&&e.handleDrag(t.changedTouches[0])}),W(e,"handleDragEnd",function(){e.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var t=e.props,r=t.endIndex,n=t.onDragEnd,o=t.startIndex;null==n||n({endIndex:r,startIndex:o})}),e.detachDragEndListener()}),W(e,"handleLeaveWrapper",function(){(e.state.isTravellerMoving||e.state.isSlideMoving)&&(e.leaveTimer=window.setTimeout(e.handleDragEnd,e.props.leaveTimeOut))}),W(e,"handleEnterSlideOrTraveller",function(){e.setState({isTextActive:!0})}),W(e,"handleLeaveSlideOrTraveller",function(){e.setState({isTextActive:!1})}),W(e,"handleSlideDragStart",function(t){var r=H(t)?t.changedTouches[0]:t;e.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:r.pageX}),e.attachDragEndListener()}),e.travellerDragStartHandlers={startX:e.handleTravellerDragStart.bind(e,"startX"),endX:e.handleTravellerDragStart.bind(e,"endX")},e.state={},e}return!function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&F(t,e)}(o,t),e=[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(t){var e=t.startX,r=t.endX,n=this.state.scaleValues,i=this.props,a=i.gap,u=i.data.length-1,c=Math.min(e,r),l=Math.max(e,r),s=o.getIndexInRange(n,c),f=o.getIndexInRange(n,l);return{startIndex:s-s%a,endIndex:f===u?u:f-f%a}}},{key:"getTextOfTick",value:function(t){var e=this.props,r=e.data,n=e.tickFormatter,o=e.dataKey,i=(0,A.kr)(r[t],o,t);return u()(n)?n(i,t):i}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(t){var e=this.state,r=e.slideMoveStartX,n=e.startX,o=e.endX,i=this.props,a=i.x,u=i.width,c=i.travellerWidth,l=i.startIndex,s=i.endIndex,f=i.onChange,p=t.pageX-r;p>0?p=Math.min(p,a+u-c-o,a+u-c-n):p<0&&(p=Math.max(p,a-n,a-o));var h=this.getIndex({startX:n+p,endX:o+p});(h.startIndex!==l||h.endIndex!==s)&&f&&f(h),this.setState({startX:n+p,endX:o+p,slideMoveStartX:t.pageX})}},{key:"handleTravellerDragStart",value:function(t,e){var r=H(e)?e.changedTouches[0]:e;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:t,brushMoveStartX:r.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(t){var e=this.state,r=e.brushMoveStartX,n=e.movingTravellerId,o=e.endX,i=e.startX,a=this.state[n],u=this.props,c=u.x,l=u.width,s=u.travellerWidth,f=u.onChange,p=u.gap,h=u.data,d={startX:this.state.startX,endX:this.state.endX},y=t.pageX-r;y>0?y=Math.min(y,c+l-s-a):y<0&&(y=Math.max(y,c-a)),d[n]=a+y;var v=this.getIndex(d),b=v.startIndex,m=v.endIndex,g=function(){var t=h.length-1;return"startX"===n&&(o>i?b%p==0:m%p==0)||oi?m%p==0:b%p==0)||o>i&&m===t};this.setState(W(W({},n,a+y),"brushMoveStartX",t.pageX),function(){f&&g()&&f(v)})}},{key:"handleTravellerMoveKeyboard",value:function(t,e){var r=this,n=this.state,o=n.scaleValues,i=n.startX,a=n.endX,u=this.state[e],c=o.indexOf(u);if(-1!==c){var l=c+t;if(-1!==l&&!(l>=o.length)){var s=o[l];"startX"===e&&s>=a||"endX"===e&&s<=i||this.setState(W({},e,s),function(){r.props.onChange(r.getIndex({startX:r.state.startX,endX:r.state.endX}))})}}}},{key:"renderBackground",value:function(){var t=this.props,e=t.x,r=t.y,o=t.width,i=t.height,a=t.fill,u=t.stroke;return n.createElement("rect",{stroke:u,fill:a,x:e,y:r,width:o,height:i})}},{key:"renderPanorama",value:function(){var t=this.props,e=t.x,r=t.y,o=t.width,i=t.height,a=t.data,u=t.children,c=t.padding,l=n.Children.only(u);return l?n.cloneElement(l,{x:e,y:r,width:o,height:i,margin:c,compact:!0,data:a}):null}},{key:"renderTravellerLayer",value:function(t,e){var r,i,a=this,u=this.props,c=u.y,l=u.travellerWidth,s=u.height,f=u.traveller,p=u.ariaLabel,h=u.data,d=u.startIndex,y=u.endIndex,v=Math.max(t,this.props.x),b=L(L({},(0,S.J9)(this.props,!1)),{},{x:v,y:c,width:l,height:s}),m=p||"Min value: ".concat(null===(r=h[d])||void 0===r?void 0:r.name,", Max value: ").concat(null===(i=h[y])||void 0===i?void 0:i.name);return n.createElement(g.W,{tabIndex:0,role:"slider","aria-label":m,"aria-valuenow":t,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[e],onTouchStart:this.travellerDragStartHandlers[e],onKeyDown:function(t){["ArrowLeft","ArrowRight"].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),a.handleTravellerMoveKeyboard("ArrowRight"===t.key?1:-1,e))},onFocus:function(){a.setState({isTravellerFocused:!0})},onBlur:function(){a.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},o.renderTraveller(f,b))}},{key:"renderSlide",value:function(t,e){var r=this.props,o=r.y,i=r.height,a=r.stroke,u=r.travellerWidth,c=Math.min(t,e)+u,l=Math.max(Math.abs(e-t)-u,0);return n.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:a,fillOpacity:.2,x:c,y:o,width:l,height:i})}},{key:"renderText",value:function(){var t=this.props,e=t.startIndex,r=t.endIndex,o=t.y,i=t.height,a=t.travellerWidth,u=t.stroke,c=this.state,l=c.startX,s=c.endX,f={pointerEvents:"none",fill:u};return n.createElement(g.W,{className:"recharts-brush-texts"},n.createElement(E.E,B({textAnchor:"end",verticalAnchor:"middle",x:Math.min(l,s)-5,y:o+i/2},f),this.getTextOfTick(e)),n.createElement(E.E,B({textAnchor:"start",verticalAnchor:"middle",x:Math.max(l,s)+a+5,y:o+i/2},f),this.getTextOfTick(r)))}},{key:"render",value:function(){var t=this.props,e=t.data,r=t.className,o=t.children,i=t.x,a=t.y,u=t.width,c=t.height,l=t.alwaysShowText,s=this.state,f=s.startX,p=s.endX,h=s.isTextActive,d=s.isSlideMoving,y=s.isTravellerMoving,b=s.isTravellerFocused;if(!e||!e.length||!(0,k.Et)(i)||!(0,k.Et)(a)||!(0,k.Et)(u)||!(0,k.Et)(c)||u<=0||c<=0)return null;var m=(0,v.A)("recharts-brush",r),x=1===n.Children.count(o),O=D("userSelect","none");return n.createElement(g.W,{className:m,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:O},this.renderBackground(),x&&this.renderPanorama(),this.renderSlide(f,p),this.renderTravellerLayer(f,"startX"),this.renderTravellerLayer(p,"endX"),(h||d||y||b||l)&&this.renderText())}}],r=[{key:"renderDefaultTraveller",value:function(t){var e=t.x,r=t.y,o=t.width,i=t.height,a=t.stroke,u=Math.floor(r+i/2)-1;return n.createElement(n.Fragment,null,n.createElement("rect",{x:e,y:r,width:o,height:i,fill:a,stroke:"none"}),n.createElement("line",{x1:e+1,y1:u,x2:e+o-1,y2:u,fill:"none",stroke:"#fff"}),n.createElement("line",{x1:e+1,y1:u+2,x2:e+o-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(t,e){return n.isValidElement(t)?n.cloneElement(t,e):u()(t)?t(e):o.renderDefaultTraveller(e)}},{key:"getDerivedStateFromProps",value:function(t,e){var r=t.data,n=t.width,o=t.x,i=t.travellerWidth,a=t.updateId,u=t.startIndex,c=t.endIndex;if(r!==e.prevData||a!==e.prevUpdateId)return L({prevData:r,prevTravellerWidth:i,prevUpdateId:a,prevX:o,prevWidth:n},r&&r.length?X({data:r,width:n,x:o,travellerWidth:i,startIndex:u,endIndex:c}):{scale:null,scaleValues:null});if(e.scale&&(n!==e.prevWidth||o!==e.prevX||i!==e.prevTravellerWidth)){e.scale.range([o,o+n-i]);var l=e.scale.domain().map(function(t){return e.scale(t)});return{prevData:r,prevTravellerWidth:i,prevUpdateId:a,prevX:o,prevWidth:n,startX:e.scale(t.startIndex),endX:e.scale(t.endIndex),scaleValues:l}}return null}},{key:"getIndexInRange",value:function(t,e){for(var r=t.length,n=0,o=r-1;o-n>1;){var i=Math.floor((n+o)/2);t[i]>e?o=i:n=i}return e>=t[o]?o:n}}],e&&z(o.prototype,e),r&&z(o,r),Object.defineProperty(o,"prototype",{writable:!1}),o}(n.PureComponent);W(V,"displayName","Brush"),W(V,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var G=r(56594),Y=r(20618),K=r(94348),J=function(t,e){var r=t.alwaysShow,n=t.ifOverflow;return r&&(n="extendDomain"),n===e},Z=r(98456),Q=r(42228);function tt(){return(tt=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=Array(e);rt.length)&&(e=t.length);for(var r=0,n=Array(e);r=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,t0));return(0,k.Et)(r)&&(0,k.Et)(i)&&(0,k.Et)(f)&&(0,k.Et)(h)&&(0,k.Et)(u)&&(0,k.Et)(l)?n.createElement("path",t1({},(0,S.J9)(y,!0),{className:(0,v.A)("recharts-cross",d),d:"M".concat(r,",").concat(u,"v").concat(h,"M").concat(l,",").concat(i,"h").concat(f)})):null};function t3(t){var e=t.cx,r=t.cy,n=t.radius,o=t.startAngle,i=t.endAngle;return{points:[(0,t$.IZ)(e,r,n,o),(0,t$.IZ)(e,r,n,i)],cx:e,cy:r,radius:n,startAngle:o,endAngle:i}}var t6=r(3730);function t4(t){return(t4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function t8(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function t9(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function ea(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(ea=function(){return!!t})()}function eu(t){return(eu=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function ec(t,e){return(ec=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t})(t,e)}function el(t){return function(t){if(Array.isArray(t))return ef(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||es(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function es(t,e){if(t){if("string"==typeof t)return ef(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ef(t,e)}}function ef(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0?i:t&&t.length&&(0,k.Et)(n)&&(0,k.Et)(o)?t.slice(n,o+1):[]};function ew(t){return"number"===t?[0,"auto"]:void 0}var ej=function(t,e,r,n){var o=t.graphicalItems,i=t.tooltipAxis,a=eO(e,t);return r<0||!o||!o.length||r>=a.length?null:o.reduce(function(o,u){var c,l,s=null!==(c=u.props.data)&&void 0!==c?c:e;if(s&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(s=s.slice(t.dataStartIndex,t.dataEndIndex+1)),i.dataKey&&!i.allowDuplicatedCategory){var f=void 0===s?a:s;l=(0,k.eP)(f,i.dataKey,n)}else l=s&&s[r]||a[r];return l?[].concat(el(o),[(0,A.zb)(u,l)]):o},[])},eS=function(t,e,r,n){var o=n||{x:t.chartX,y:t.chartY},i="horizontal"===r?o.x:"vertical"===r?o.y:"centric"===r?o.angle:o.radius,a=t.orderedTooltipTicks,u=t.tooltipAxis,c=t.tooltipTicks,l=(0,A.gH)(i,a,c,u);if(l>=0&&c){var s=c[l]&&c[l].value,f=ej(t,e,l,s),p=ex(r,a,l,o);return{activeTooltipIndex:l,activeLabel:s,activePayload:f,activeCoordinate:p}}return null},eP=function(t,e){var r=e.axes,n=e.graphicalItems,o=e.axisType,a=e.axisIdKey,u=e.stackGroups,c=e.dataStartIndex,s=e.dataEndIndex,f=t.layout,p=t.children,h=t.stackOffset,d=(0,A._L)(f,o);return r.reduce(function(e,r){var y=void 0!==r.type.defaultProps?eh(eh({},r.type.defaultProps),r.props):r.props,v=y.type,b=y.dataKey,m=y.allowDataOverflow,g=y.allowDuplicatedCategory,x=y.scale,O=y.ticks,w=y.includeHidden,j=y[a];if(e[j])return e;var S=eO(t.data,{graphicalItems:n.filter(function(t){var e;return(a in t.props?t.props[a]:null===(e=t.type.defaultProps)||void 0===e?void 0:e[a])===j}),dataStartIndex:c,dataEndIndex:s}),P=S.length;(function(t,e,r){if("number"===r&&!0===e&&Array.isArray(t)){var n=null==t?void 0:t[0],o=null==t?void 0:t[1];if(n&&o&&(0,k.Et)(n)&&(0,k.Et)(o))return!0}return!1})(y.domain,m,v)&&(_=(0,A.AQ)(y.domain,null,m),d&&("number"===v||"auto"!==x)&&(C=(0,A.Ay)(S,b,"category")));var E=ew(v);if(!_||0===_.length){var M,_,T,C,I,D=null!==(I=y.domain)&&void 0!==I?I:E;if(b){if(_=(0,A.Ay)(S,b,v),"category"===v&&d){var N=(0,k.CG)(_);g&&N?(T=_,_=l()(0,P)):g||(_=(0,A.KC)(D,_,r).reduce(function(t,e){return t.indexOf(e)>=0?t:[].concat(el(t),[e])},[]))}else if("category"===v)_=g?_.filter(function(t){return""!==t&&!i()(t)}):(0,A.KC)(D,_,r).reduce(function(t,e){return t.indexOf(e)>=0||""===e||i()(e)?t:[].concat(el(t),[e])},[]);else if("number"===v){var B=(0,A.A1)(S,n.filter(function(t){var e,r,n=a in t.props?t.props[a]:null===(e=t.type.defaultProps)||void 0===e?void 0:e[a],o="hide"in t.props?t.props.hide:null===(r=t.type.defaultProps)||void 0===r?void 0:r.hide;return n===j&&(w||!o)}),b,o,f);B&&(_=B)}d&&("number"===v||"auto"!==x)&&(C=(0,A.Ay)(S,b,"category"))}else _=d?l()(0,P):u&&u[j]&&u[j].hasStack&&"number"===v?"expand"===h?[0,1]:(0,A.Mk)(u[j].stackGroups,c,s):(0,A.vf)(S,n.filter(function(t){var e=a in t.props?t.props[a]:t.type.defaultProps[a],r="hide"in t.props?t.props.hide:t.type.defaultProps.hide;return e===j&&(w||!r)}),v,f,!0);"number"===v?(_=tU(p,_,j,o,O),D&&(_=(0,A.AQ)(D,_,m))):"category"===v&&D&&_.every(function(t){return D.indexOf(t)>=0})&&(_=D)}return eh(eh({},e),{},ed({},j,eh(eh({},y),{},{axisType:o,domain:_,categoricalDomain:C,duplicateDomain:T,originalDomain:null!==(M=y.domain)&&void 0!==M?M:E,isCategorical:d,layout:f})))},{})},eE=function(t,e){var r=e.graphicalItems,n=e.Axis,o=e.axisType,i=e.axisIdKey,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,s=t.layout,p=t.children,h=eO(t.data,{graphicalItems:r,dataStartIndex:u,dataEndIndex:c}),d=h.length,y=(0,A._L)(s,o),v=-1;return r.reduce(function(t,e){var b,m=(void 0!==e.type.defaultProps?eh(eh({},e.type.defaultProps),e.props):e.props)[i],g=ew("number");return t[m]?t:(v++,b=y?l()(0,d):a&&a[m]&&a[m].hasStack?tU(p,b=(0,A.Mk)(a[m].stackGroups,u,c),m,o):tU(p,b=(0,A.AQ)(g,(0,A.vf)(h,r.filter(function(t){var e,r,n=i in t.props?t.props[i]:null===(e=t.type.defaultProps)||void 0===e?void 0:e[i],o="hide"in t.props?t.props.hide:null===(r=t.type.defaultProps)||void 0===r?void 0:r.hide;return n===m&&!o}),"number",s),n.defaultProps.allowDataOverflow),m,o),eh(eh({},t),{},ed({},m,eh(eh({axisType:o},n.defaultProps),{},{hide:!0,orientation:f()(ev,"".concat(o,".").concat(v%2),null),domain:b,originalDomain:g,isCategorical:y,layout:s}))))},{})},eA=function(t,e){var r=e.axisType,n=void 0===r?"xAxis":r,o=e.AxisComp,i=e.graphicalItems,a=e.stackGroups,u=e.dataStartIndex,c=e.dataEndIndex,l=t.children,s="".concat(n,"Id"),f=(0,S.aS)(l,o),p={};return f&&f.length?p=eP(t,{axes:f,graphicalItems:i,axisType:n,axisIdKey:s,stackGroups:a,dataStartIndex:u,dataEndIndex:c}):i&&i.length&&(p=eE(t,{Axis:o,graphicalItems:i,axisType:n,axisIdKey:s,stackGroups:a,dataStartIndex:u,dataEndIndex:c})),p},ek=function(t){var e=(0,k.lX)(t),r=(0,A.Rh)(e,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:h()(r,function(t){return t.coordinate}),tooltipAxis:e,tooltipAxisBandSize:(0,A.Hj)(e,r)}},eM=function(t){var e=t.children,r=t.defaultShowTooltip,n=(0,S.BU)(e,V),o=0,i=0;return t.data&&0!==t.data.length&&(i=t.data.length-1),n&&n.props&&(n.props.startIndex>=0&&(o=n.props.startIndex),n.props.endIndex>=0&&(i=n.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:o,dataEndIndex:i,activeTooltipIndex:-1,isTooltipActive:!!r}},e_=function(t){return"horizontal"===t?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:"vertical"===t?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:"centric"===t?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},eT=function(t,e){var r=t.props,n=t.graphicalItems,o=t.xAxisMap,i=void 0===o?{}:o,a=t.yAxisMap,u=void 0===a?{}:a,c=r.width,l=r.height,s=r.children,p=r.margin||{},h=(0,S.BU)(s,V),d=(0,S.BU)(s,O.s),y=Object.keys(u).reduce(function(t,e){var r=u[e],n=r.orientation;return r.mirror||r.hide?t:eh(eh({},t),{},ed({},n,t[n]+r.width))},{left:p.left||0,right:p.right||0}),v=Object.keys(i).reduce(function(t,e){var r=i[e],n=r.orientation;return r.mirror||r.hide?t:eh(eh({},t),{},ed({},n,f()(t,"".concat(n))+r.height))},{top:p.top||0,bottom:p.bottom||0}),b=eh(eh({},v),y),m=b.bottom;h&&(b.bottom+=h.props.height||V.defaultProps.height),d&&e&&(b=(0,A.s0)(b,n,r,e));var g=c-b.left-b.right,x=l-b.top-b.bottom;return eh(eh({brushBottom:m},b),{},{width:Math.max(g,0),height:Math.max(x,0)})},eC=function(t){var e=t.chartName,r=t.GraphicalChild,o=t.defaultTooltipEventType,a=void 0===o?"axis":o,c=t.validateTooltipEventTypes,l=void 0===c?["axis"]:c,s=t.axisComponents,p=t.legendContent,h=t.formatAxisMap,d=t.defaultProps,O=function(t,e){var r=e.graphicalItems,n=e.stackGroups,o=e.offset,a=e.updateId,u=e.dataStartIndex,c=e.dataEndIndex,l=t.barSize,f=t.layout,p=t.barGap,h=t.barCategoryGap,d=t.maxBarSize,y=e_(f),v=y.numericAxisName,m=y.cateAxisName,g=!!r&&!!r.length&&r.some(function(t){var e=(0,S.Mn)(t&&t.type);return e&&e.indexOf("Bar")>=0}),x=[];return r.forEach(function(r,y){var O=eO(t.data,{graphicalItems:[r],dataStartIndex:u,dataEndIndex:c}),w=void 0!==r.type.defaultProps?eh(eh({},r.type.defaultProps),r.props):r.props,j=w.dataKey,P=w.maxBarSize,E=w["".concat(v,"Id")],k=w["".concat(m,"Id")],M=s.reduce(function(t,r){var n=e["".concat(r.axisType,"Map")],o=w["".concat(r.axisType,"Id")];n&&n[o]||"zAxis"===r.axisType||(0,b.A)(!1);var i=n[o];return eh(eh({},t),{},ed(ed({},r.axisType,i),"".concat(r.axisType,"Ticks"),(0,A.Rh)(i)))},{}),_=M[m],T=M["".concat(m,"Ticks")],C=n&&n[E]&&n[E].hasStack&&(0,A.kA)(r,n[E].stackGroups),I=(0,S.Mn)(r.type).indexOf("Bar")>=0,D=(0,A.Hj)(_,T),N=[],B=g&&(0,A.tA)({barSize:l,stackGroups:n,totalSize:"xAxis"===m?M[m].width:"yAxis"===m?M[m].height:void 0});if(I){var R,L,z=i()(P)?d:P,U=null!==(R=null!==(L=(0,A.Hj)(_,T,!0))&&void 0!==L?L:z)&&void 0!==R?R:0;N=(0,A.BX)({barGap:p,barCategoryGap:h,bandSize:U!==D?U:D,sizeList:B[k],maxBarSize:z}),U!==D&&(N=N.map(function(t){return eh(eh({},t),{},{position:eh(eh({},t.position),{},{offset:t.position.offset-U/2})})}))}var $=r&&r.type&&r.type.getComposedData;$&&x.push({props:eh(eh({},$(eh(eh({},M),{},{displayedData:O,props:t,dataKey:j,item:r,bandSize:D,barPosition:N,offset:o,stackedData:C,layout:f,dataStartIndex:u,dataEndIndex:c}))),{},ed(ed(ed({key:r.key||"item-".concat(y)},v,M[v]),m,M[m]),"animationId",a)),childIndex:(0,S.AW)(r,t.children),item:r})}),x},P=function(t,n){var o=t.props,i=t.dataStartIndex,a=t.dataEndIndex,u=t.updateId;if(!(0,S.Me)({props:o}))return null;var c=o.children,l=o.layout,f=o.stackOffset,p=o.data,d=o.reverseStackOrder,y=e_(l),v=y.numericAxisName,b=y.cateAxisName,m=(0,S.aS)(c,r),g=(0,A.Mn)(p,m,"".concat(v,"Id"),"".concat(b,"Id"),f,d),x=s.reduce(function(t,e){var r="".concat(e.axisType,"Map");return eh(eh({},t),{},ed({},r,eA(o,eh(eh({},e),{},{graphicalItems:m,stackGroups:e.axisType===v&&g,dataStartIndex:i,dataEndIndex:a}))))},{}),w=eT(eh(eh({},x),{},{props:o,graphicalItems:m}),null==n?void 0:n.legendBBox);Object.keys(x).forEach(function(t){x[t]=h(o,x[t],w,t.replace("Map",""),e)});var j=ek(x["".concat(b,"Map")]),P=O(o,eh(eh({},x),{},{dataStartIndex:i,dataEndIndex:a,updateId:u,graphicalItems:m,stackGroups:g,offset:w}));return eh(eh({formattedGraphicalItems:P,graphicalItems:m,offset:w,stackGroups:g},j),x)},E=function(t){var r;function o(t){var r,a,c,l,s;return!function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}(this,o),l=o,s=[t],l=eu(l),ed(c=function(t,e){if(e&&("object"===er(e)||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(this,ea()?Reflect.construct(l,s||[],eu(this).constructor):l.apply(this,s)),"eventEmitterSymbol",Symbol("rechartsEventEmitter")),ed(c,"accessibilityManager",new tK),ed(c,"handleLegendBBoxUpdate",function(t){if(t){var e=c.state,r=e.dataStartIndex,n=e.dataEndIndex,o=e.updateId;c.setState(eh({legendBBox:t},P({props:c.props,dataStartIndex:r,dataEndIndex:n,updateId:o},eh(eh({},c.state),{},{legendBBox:t}))))}}),ed(c,"handleReceiveSyncEvent",function(t,e,r){c.props.syncId===t&&(r!==c.eventEmitterSymbol||"function"==typeof c.props.syncMethod)&&c.applySyncEvent(e)}),ed(c,"handleBrushChange",function(t){var e=t.startIndex,r=t.endIndex;if(e!==c.state.dataStartIndex||r!==c.state.dataEndIndex){var n=c.state.updateId;c.setState(function(){return eh({dataStartIndex:e,dataEndIndex:r},P({props:c.props,dataStartIndex:e,dataEndIndex:r,updateId:n},c.state))}),c.triggerSyncEvent({dataStartIndex:e,dataEndIndex:r})}}),ed(c,"handleMouseEnter",function(t){var e=c.getMouseInfo(t);if(e){var r=eh(eh({},e),{},{isTooltipActive:!0});c.setState(r),c.triggerSyncEvent(r);var n=c.props.onMouseEnter;u()(n)&&n(r,t)}}),ed(c,"triggeredAfterMouseMove",function(t){var e=c.getMouseInfo(t),r=e?eh(eh({},e),{},{isTooltipActive:!0}):{isTooltipActive:!1};c.setState(r),c.triggerSyncEvent(r);var n=c.props.onMouseMove;u()(n)&&n(r,t)}),ed(c,"handleItemMouseEnter",function(t){c.setState(function(){return{isTooltipActive:!0,activeItem:t,activePayload:t.tooltipPayload,activeCoordinate:t.tooltipPosition||{x:t.cx,y:t.cy}}})}),ed(c,"handleItemMouseLeave",function(){c.setState(function(){return{isTooltipActive:!1}})}),ed(c,"handleMouseMove",function(t){t.persist(),c.throttleTriggeredAfterMouseMove(t)}),ed(c,"handleMouseLeave",function(t){c.throttleTriggeredAfterMouseMove.cancel();var e={isTooltipActive:!1};c.setState(e),c.triggerSyncEvent(e);var r=c.props.onMouseLeave;u()(r)&&r(e,t)}),ed(c,"handleOuterEvent",function(t){var e,r=(0,S.X_)(t),n=f()(c.props,"".concat(r));r&&u()(n)&&n(null!==(e=/.*touch.*/i.test(r)?c.getMouseInfo(t.changedTouches[0]):c.getMouseInfo(t))&&void 0!==e?e:{},t)}),ed(c,"handleClick",function(t){var e=c.getMouseInfo(t);if(e){var r=eh(eh({},e),{},{isTooltipActive:!0});c.setState(r),c.triggerSyncEvent(r);var n=c.props.onClick;u()(n)&&n(r,t)}}),ed(c,"handleMouseDown",function(t){var e=c.props.onMouseDown;u()(e)&&e(c.getMouseInfo(t),t)}),ed(c,"handleMouseUp",function(t){var e=c.props.onMouseUp;u()(e)&&e(c.getMouseInfo(t),t)}),ed(c,"handleTouchMove",function(t){null!=t.changedTouches&&t.changedTouches.length>0&&c.throttleTriggeredAfterMouseMove(t.changedTouches[0])}),ed(c,"handleTouchStart",function(t){null!=t.changedTouches&&t.changedTouches.length>0&&c.handleMouseDown(t.changedTouches[0])}),ed(c,"handleTouchEnd",function(t){null!=t.changedTouches&&t.changedTouches.length>0&&c.handleMouseUp(t.changedTouches[0])}),ed(c,"triggerSyncEvent",function(t){void 0!==c.props.syncId&&tq.emit(tX,c.props.syncId,t,c.eventEmitterSymbol)}),ed(c,"applySyncEvent",function(t){var e=c.props,r=e.layout,n=e.syncMethod,o=c.state.updateId,i=t.dataStartIndex,a=t.dataEndIndex;if(void 0!==t.dataStartIndex||void 0!==t.dataEndIndex)c.setState(eh({dataStartIndex:i,dataEndIndex:a},P({props:c.props,dataStartIndex:i,dataEndIndex:a,updateId:o},c.state)));else if(void 0!==t.activeTooltipIndex){var u=t.chartX,l=t.chartY,s=t.activeTooltipIndex,f=c.state,p=f.offset,h=f.tooltipTicks;if(!p)return;if("function"==typeof n)s=n(h,t);else if("value"===n){s=-1;for(var d=0;d=0){if(s.dataKey&&!s.allowDuplicatedCategory){var T="function"==typeof s.dataKey?function(t){return"function"==typeof s.dataKey?s.dataKey(t.payload):null}:"payload.".concat(s.dataKey.toString());I=(0,k.eP)(v,T,p),D=b&&m&&(0,k.eP)(m,T,p)}else I=null==v?void 0:v[f],D=b&&m&&m[f];if(P||j){var C=void 0!==t.props.activeIndex?t.props.activeIndex:f;return[(0,n.cloneElement)(t,eh(eh(eh({},o.props),M),{},{activeIndex:C})),null,null]}if(!i()(I))return[_].concat(el(c.renderActivePoints({item:o,activePoint:I,basePoint:D,childIndex:f,isRange:b})))}else{var I,D,N,B=(null!==(N=c.getItemByXY(c.state.activeCoordinate))&&void 0!==N?N:{graphicalItem:_}).graphicalItem,R=B.item,L=void 0===R?t:R,z=B.childIndex,U=eh(eh(eh({},o.props),M),{},{activeIndex:z});return[(0,n.cloneElement)(L,U),null,null]}}return b?[_,null,null]:[_,null]}),ed(c,"renderCustomized",function(t,e,r){return(0,n.cloneElement)(t,eh(eh({key:"recharts-customized-".concat(r)},c.props),c.state))}),ed(c,"renderMap",{CartesianGrid:{handler:eg,once:!0},ReferenceArea:{handler:c.renderReferenceElement},ReferenceLine:{handler:eg},ReferenceDot:{handler:c.renderReferenceElement},XAxis:{handler:eg},YAxis:{handler:eg},Brush:{handler:c.renderBrush,once:!0},Bar:{handler:c.renderGraphicChild},Line:{handler:c.renderGraphicChild},Area:{handler:c.renderGraphicChild},Radar:{handler:c.renderGraphicChild},RadialBar:{handler:c.renderGraphicChild},Scatter:{handler:c.renderGraphicChild},Pie:{handler:c.renderGraphicChild},Funnel:{handler:c.renderGraphicChild},Tooltip:{handler:c.renderCursor,once:!0},PolarGrid:{handler:c.renderPolarGrid,once:!0},PolarAngleAxis:{handler:c.renderPolarAxis},PolarRadiusAxis:{handler:c.renderPolarAxis},Customized:{handler:c.renderCustomized}}),c.clipPathId="".concat(null!==(r=t.id)&&void 0!==r?r:(0,k.NF)("recharts"),"-clip"),c.throttleTriggeredAfterMouseMove=y()(c.triggeredAfterMouseMove,null!==(a=t.throttleDelay)&&void 0!==a?a:1e3/60),c.state={},c}return!function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ec(t,e)}(o,t),r=[{key:"componentDidMount",value:function(){var t,e;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:null!==(t=this.props.margin.left)&&void 0!==t?t:0,top:null!==(e=this.props.margin.top)&&void 0!==e?e:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var t=this.props,e=t.children,r=t.data,n=t.height,o=t.layout,i=(0,S.BU)(e,x.m);if(i){var a=i.props.defaultIndex;if("number"==typeof a&&!(a<0)&&!(a>this.state.tooltipTicks.length-1)){var u=this.state.tooltipTicks[a]&&this.state.tooltipTicks[a].value,c=ej(this.state,r,a,u),l=this.state.tooltipTicks[a].coordinate,s=(this.state.offset.top+n)/2,f="horizontal"===o?{x:l,y:s}:{y:l,x:s},p=this.state.formattedGraphicalItems.find(function(t){return"Scatter"===t.item.type.name});p&&(f=eh(eh({},f),p.props.points[a].tooltipPosition),c=p.props.points[a].tooltipPayload);var h={activeTooltipIndex:a,isTooltipActive:!0,activeLabel:u,activePayload:c,activeCoordinate:f};this.setState(h),this.renderCursor(i),this.accessibilityManager.setIndex(a)}}}},{key:"getSnapshotBeforeUpdate",value:function(t,e){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==e.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==t.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==t.margin){var r,n;this.accessibilityManager.setDetails({offset:{left:null!==(r=this.props.margin.left)&&void 0!==r?r:0,top:null!==(n=this.props.margin.top)&&void 0!==n?n:0}})}return null}},{key:"componentDidUpdate",value:function(t){(0,S.OV)([(0,S.BU)(t.children,x.m)],[(0,S.BU)(this.props.children,x.m)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var t=(0,S.BU)(this.props.children,x.m);if(t&&"boolean"==typeof t.props.shared){var e=t.props.shared?"axis":"item";return l.indexOf(e)>=0?e:a}return a}},{key:"getMouseInfo",value:function(t){if(!this.container)return null;var e=this.container,r=e.getBoundingClientRect(),n=(0,G.A3)(r),o={chartX:Math.round(t.pageX-n.left),chartY:Math.round(t.pageY-n.top)},i=r.width/e.offsetWidth||1,a=this.inRange(o.chartX,o.chartY,i);if(!a)return null;var u=this.state,c=u.xAxisMap,l=u.yAxisMap;if("axis"!==this.getTooltipEventType()&&c&&l){var s=(0,k.lX)(c).scale,f=(0,k.lX)(l).scale,p=s&&s.invert?s.invert(o.chartX):null,h=f&&f.invert?f.invert(o.chartY):null;return eh(eh({},o),{},{xValue:p,yValue:h})}var d=eS(this.state,this.props.data,this.props.layout,a);return d?eh(eh({},o),d):null}},{key:"inRange",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.props.layout,o=t/r,i=e/r;if("horizontal"===n||"vertical"===n){var a=this.state.offset;return o>=a.left&&o<=a.left+a.width&&i>=a.top&&i<=a.top+a.height?{x:o,y:i}:null}var u=this.state,c=u.angleAxisMap,l=u.radiusAxisMap;if(c&&l){var s=(0,k.lX)(c);return(0,t$.yy)({x:o,y:i},s)}return null}},{key:"parseEventsOfWrapper",value:function(){var t=this.props.children,e=this.getTooltipEventType(),r=(0,S.BU)(t,x.m),n={};return r&&"axis"===e&&(n="click"===r.props.trigger?{onClick:this.handleClick}:{onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd}),eh(eh({},(0,tH._U)(this.props,this.handleOuterEvent)),n)}},{key:"addListener",value:function(){tq.on(tX,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){tq.removeListener(tX,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(t,e,r){for(var n=this.state.formattedGraphicalItems,o=0,i=n.length;o{"use strict";r.d(e,{J:()=>P});var n=r(20107),o=r(87107),i=r.n(o),a=r(14632),u=r.n(a),c=r(50683),l=r.n(c),s=r(64901),f=r(77431),p=r(61211),h=r(89952),d=r(92742);function y(t){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var v=["offset"];function b(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0?1:-1;"insideStart"===u?(o=m+S*l,a=O):"insideEnd"===u?(o=g-S*l,a=!O):"end"===u&&(o=g+S*l,a=O),a=j<=0?a:!a;var P=(0,d.IZ)(p,y,w,o),E=(0,d.IZ)(p,y,w,o+(a?1:-1)*359),A="M".concat(P.x,",").concat(P.y,"\n A").concat(w,",").concat(w,",0,1,").concat(a?0:1,",\n ").concat(E.x,",").concat(E.y),k=i()(t.id)?(0,h.NF)("recharts-radial-line-"):t.id;return n.createElement("text",x({},r,{dominantBaseline:"central",className:(0,s.A)("recharts-radial-bar-label",f)}),n.createElement("defs",null,n.createElement("path",{id:k,d:A})),n.createElement("textPath",{xlinkHref:"#".concat(k)},e))},j=function(t){var e=t.viewBox,r=t.offset,n=t.position,o=e.cx,i=e.cy,a=e.innerRadius,u=e.outerRadius,c=(e.startAngle+e.endAngle)/2;if("outside"===n){var l=(0,d.IZ)(o,i,u+r,c),s=l.x;return{x:s,y:l.y,textAnchor:s>=o?"start":"end",verticalAnchor:"middle"}}if("center"===n)return{x:o,y:i,textAnchor:"middle",verticalAnchor:"middle"};if("centerTop"===n)return{x:o,y:i,textAnchor:"middle",verticalAnchor:"start"};if("centerBottom"===n)return{x:o,y:i,textAnchor:"middle",verticalAnchor:"end"};var f=(0,d.IZ)(o,i,(a+u)/2,c);return{x:f.x,y:f.y,textAnchor:"middle",verticalAnchor:"middle"}},S=function(t){var e=t.viewBox,r=t.parentViewBox,n=t.offset,o=t.position,i=e.x,a=e.y,u=e.width,c=e.height,s=c>=0?1:-1,f=s*n,p=s>0?"end":"start",d=s>0?"start":"end",y=u>=0?1:-1,v=y*n,b=y>0?"end":"start",m=y>0?"start":"end";if("top"===o)return g(g({},{x:i+u/2,y:a-s*n,textAnchor:"middle",verticalAnchor:p}),r?{height:Math.max(a-r.y,0),width:u}:{});if("bottom"===o)return g(g({},{x:i+u/2,y:a+c+f,textAnchor:"middle",verticalAnchor:d}),r?{height:Math.max(r.y+r.height-(a+c),0),width:u}:{});if("left"===o){var x={x:i-v,y:a+c/2,textAnchor:b,verticalAnchor:"middle"};return g(g({},x),r?{width:Math.max(x.x-r.x,0),height:c}:{})}if("right"===o){var O={x:i+u+v,y:a+c/2,textAnchor:m,verticalAnchor:"middle"};return g(g({},O),r?{width:Math.max(r.x+r.width-O.x,0),height:c}:{})}var w=r?{width:u,height:c}:{};return"insideLeft"===o?g({x:i+v,y:a+c/2,textAnchor:m,verticalAnchor:"middle"},w):"insideRight"===o?g({x:i+u-v,y:a+c/2,textAnchor:b,verticalAnchor:"middle"},w):"insideTop"===o?g({x:i+u/2,y:a+f,textAnchor:"middle",verticalAnchor:d},w):"insideBottom"===o?g({x:i+u/2,y:a+c-f,textAnchor:"middle",verticalAnchor:p},w):"insideTopLeft"===o?g({x:i+v,y:a+f,textAnchor:m,verticalAnchor:d},w):"insideTopRight"===o?g({x:i+u-v,y:a+f,textAnchor:b,verticalAnchor:d},w):"insideBottomLeft"===o?g({x:i+v,y:a+c-f,textAnchor:m,verticalAnchor:p},w):"insideBottomRight"===o?g({x:i+u-v,y:a+c-f,textAnchor:b,verticalAnchor:p},w):l()(o)&&((0,h.Et)(o.x)||(0,h._3)(o.x))&&((0,h.Et)(o.y)||(0,h._3)(o.y))?g({x:i+(0,h.F4)(o.x,u),y:a+(0,h.F4)(o.y,c),textAnchor:"end",verticalAnchor:"end"},w):g({x:i+u/2,y:a+c/2,textAnchor:"middle",verticalAnchor:"middle"},w)};function P(t){var e,r=t.offset,o=g({offset:void 0===r?5:r},function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,v)),a=o.viewBox,c=o.position,l=o.value,d=o.children,y=o.content,b=o.className,m=o.textBreakAll;if(!a||i()(l)&&i()(d)&&!(0,n.isValidElement)(y)&&!u()(y))return null;if((0,n.isValidElement)(y))return(0,n.cloneElement)(y,o);if(u()(y)){if(e=(0,n.createElement)(y,o),(0,n.isValidElement)(e))return e}else e=O(o);var P="cx"in a&&(0,h.Et)(a.cx),E=(0,p.J9)(o,!0);if(P&&("insideStart"===c||"insideEnd"===c||"end"===c))return w(o,e,E);var A=P?j(o):S(o);return n.createElement(f.E,x({className:(0,s.A)("recharts-label",void 0===b?"":b)},E,A,{breakAll:m}),e)}P.displayName="Label";var E=function(t){var e=t.cx,r=t.cy,n=t.angle,o=t.startAngle,i=t.endAngle,a=t.r,u=t.radius,c=t.innerRadius,l=t.outerRadius,s=t.x,f=t.y,p=t.top,d=t.left,y=t.width,v=t.height,b=t.clockWise,m=t.labelViewBox;if(m)return m;if((0,h.Et)(y)&&(0,h.Et)(v)){if((0,h.Et)(s)&&(0,h.Et)(f))return{x:s,y:f,width:y,height:v};if((0,h.Et)(p)&&(0,h.Et)(d))return{x:p,y:d,width:y,height:v}}return(0,h.Et)(s)&&(0,h.Et)(f)?{x:s,y:f,width:0,height:0}:(0,h.Et)(e)&&(0,h.Et)(r)?{cx:e,cy:r,startAngle:o||n||0,endAngle:i||n||0,innerRadius:c||0,outerRadius:l||u||a||0,clockWise:b}:t.viewBox?t.viewBox:{}};P.parseViewBox=E,P.renderCallByParent=function(t,e){var r,o,i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(!t||!t.children&&i&&!t.label)return null;var a=t.children,c=E(t),s=(0,p.aS)(a,P).map(function(t,r){return(0,n.cloneElement)(t,{viewBox:e||c,key:"label-".concat(r)})});return i?[(r=t.label,o=e||c,r?!0===r?n.createElement(P,{key:"label-implicit",viewBox:o}):(0,h.vh)(r)?n.createElement(P,{key:"label-implicit",viewBox:o,value:r}):(0,n.isValidElement)(r)?r.type===P?(0,n.cloneElement)(r,{key:"label-implicit",viewBox:o}):n.createElement(P,{key:"label-implicit",content:r,viewBox:o}):u()(r)?n.createElement(P,{key:"label-implicit",content:r,viewBox:o}):l()(r)?n.createElement(P,x({viewBox:o},r,{key:"label-implicit"})):null:null)].concat(function(t){if(Array.isArray(t))return b(t)}(s)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(s)||function(t,e){if(t){if("string"==typeof t)return b(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return b(t,void 0)}}(s)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):s}},58864:(t,e,r)=>{"use strict";r.d(e,{Z:()=>P});var n=r(20107),o=r(87107),i=r.n(o),a=r(50683),u=r.n(a),c=r(14632),l=r.n(c),s=r(21836),f=r.n(s),p=r(94348),h=r(37819),d=r(61211),y=r(95492);function v(t){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var b=["valueAccessor"],m=["data","dataKey","clockWise","id","textBreakAll"];function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var S=function(t){return Array.isArray(t.value)?f()(t.value):t.value};function P(t){var e=t.valueAccessor,r=void 0===e?S:e,o=j(t,b),a=o.data,u=o.dataKey,c=o.clockWise,l=o.id,s=o.textBreakAll,f=j(o,m);return a&&a.length?n.createElement(h.W,{className:"recharts-label-list"},a.map(function(t,e){var o=i()(u)?r(t,e):(0,y.kr)(t&&t.payload,u),a=i()(l)?{}:{id:"".concat(l,"-").concat(e)};return n.createElement(p.J,x({},(0,d.J9)(t,!0),f,a,{parentViewBox:t.parentViewBox,value:o,textBreakAll:s,viewBox:p.J.parseViewBox(i()(c)?t:w(w({},t),{},{clockWise:c})),key:"label-".concat(e),index:e}))})):null}P.displayName="LabelList",P.renderCallByParent=function(t,e){var r,o=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(!t||!t.children&&o&&!t.label)return null;var i=t.children,a=(0,d.aS)(i,P).map(function(t,r){return(0,n.cloneElement)(t,{data:e,key:"labelList-".concat(r)})});return o?[(r=t.label)?!0===r?n.createElement(P,{key:"labelList-implicit",data:e}):n.isValidElement(r)||l()(r)?n.createElement(P,{key:"labelList-implicit",data:e,content:r}):u()(r)?n.createElement(P,x({data:e},r,{key:"labelList-implicit"})):null:null].concat(function(t){if(Array.isArray(t))return g(t)}(a)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(a)||function(t,e){if(t){if("string"==typeof t)return g(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return g(t,void 0)}}(a)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):a}},58736:(t,e,r)=>{"use strict";r.d(e,{s:()=>I});var n=r(20107),o=r(14632),i=r.n(o),a=r(64901),u=r(42228),c=r(6701),l=r(92824),s=r(35956);function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(){return(p=Object.assign?Object.assign.bind():function(t){for(var e=1;e');var x=e.inactive?h:e.color;return n.createElement("li",p({className:m,style:y,key:"legend-item-".concat(r)},(0,s.XC)(t.props,e,r)),n.createElement(c.u,{width:o,height:o,viewBox:d,style:v},t.renderIcon(e)),n.createElement("span",{className:"recharts-legend-item-text",style:{color:x}},l?l(g,e,r):g))})}},{key:"render",value:function(){var t=this.props,e=t.payload,r=t.layout,o=t.align;return e&&e.length?n.createElement("ul",{className:"recharts-default-legend",style:{padding:0,margin:0,textAlign:"horizontal"===r?o:"left"}},this.renderItems()):null}}],function(t,e){for(var r=0;r1||Math.abs(e.height-this.lastBoundingBox.height)>1)&&(this.lastBoundingBox.width=e.width,this.lastBoundingBox.height=e.height,t&&t(e)):(-1!==this.lastBoundingBox.width||-1!==this.lastBoundingBox.height)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,t&&t(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?P({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(t){var e,r,n=this.props,o=n.layout,i=n.align,a=n.verticalAlign,u=n.margin,c=n.chartWidth,l=n.chartHeight;return t&&(void 0!==t.left&&null!==t.left||void 0!==t.right&&null!==t.right)||(e="center"===i&&"vertical"===o?{left:((c||0)-this.getBBoxSnapshot().width)/2}:"right"===i?{right:u&&u.right||0}:{left:u&&u.left||0}),t&&(void 0!==t.top&&null!==t.top||void 0!==t.bottom&&null!==t.bottom)||(r="middle"===a?{top:((l||0)-this.getBBoxSnapshot().height)/2}:"bottom"===a?{bottom:u&&u.bottom||0}:{top:u&&u.top||0}),P(P({},e),r)}},{key:"render",value:function(){var t=this,e=this.props,r=e.content,o=e.width,i=e.height,a=e.wrapperStyle,u=e.payloadUniqBy,c=e.payload,l=P(P({position:"absolute",width:o||"auto",height:i||"auto"},this.getDefaultPosition(a)),a);return n.createElement("div",{className:"recharts-legend-wrapper",style:l,ref:function(e){t.wrapperNode=e}},function(t,e){if(n.isValidElement(t))return n.cloneElement(t,e);if("function"==typeof t)return n.createElement(t,e);e.ref;var r=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(e,j);return n.createElement(g,r)}(r,P(P({},this.props),{},{payload:(0,O.s)(c,u,C)})))}}],r=[{key:"getWithHeight",value:function(t,e){var r=P(P({},this.defaultProps),t.props).layout;return"vertical"===r&&(0,x.Et)(t.props.height)?{height:t.props.height}:"horizontal"===r?{width:t.props.width||e}:null}}],e&&E(o.prototype,e),r&&E(o,r),Object.defineProperty(o,"prototype",{writable:!1}),o}(n.PureComponent);_(I,"displayName","Legend"),_(I,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"})},81155:(t,e,r)=>{"use strict";r.d(e,{u:()=>y});var n=r(64901),o=r(20107),i=r(54636),a=r.n(i),u=r(55473),c=r(89952),l=r(42228),s=r(61211);function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function h(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&(t=a()(t,P,{trailing:!0,leading:!1}));var e=new ResizeObserver(t),r=_.current.getBoundingClientRect();return N(r.width,r.height),e.observe(_.current),function(){e.disconnect()}},[N,P]);var B=(0,o.useMemo)(function(){var t=I.containerWidth,e=I.containerHeight;if(t<0||e<0)return null;(0,l.R)((0,c._3)(v)||(0,c._3)(m),"The width(%s) and height(%s) are both fixed numbers,\n maybe you don't need to use a ResponsiveContainer.",v,m),(0,l.R)(!i||i>0,"The aspect(%s) must be greater than zero.",i);var r=(0,c._3)(v)?t:v,n=(0,c._3)(m)?e:m;i&&i>0&&(r?n=r/i:n&&(r=n*i),w&&n>w&&(n=w)),(0,l.R)(r>0||n>0,"The width(%s) and height(%s) of chart should be greater than 0,\n please check the style of container, or the props width(%s) and height(%s),\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n height and width.",r,n,v,m,x,O,i);var a=!Array.isArray(j)&&(0,s.Mn)(j.type).endsWith("Chart");return o.Children.map(j,function(t){return(0,u.vq)(t)?(0,o.cloneElement)(t,h({width:r,height:n},a?{style:h({height:"100%",width:"100%",maxHeight:n,maxWidth:r},t.props.style)}:{})):t})},[i,j,m,w,O,x,I,v]);return o.createElement("div",{id:E?"".concat(E):void 0,className:(0,n.A)("recharts-responsive-container",A),style:h(h({},void 0===M?{}:M),{},{width:v,height:m,minWidth:x,minHeight:O,maxHeight:w}),ref:_},B)})},77431:(t,e,r)=>{"use strict";r.d(e,{E:()=>R});var n=r(20107),o=r(87107),i=r.n(o),a=r(64901),u=r(89952),c=r(95392),l=r(61211),s=r(56594);function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return h(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h(t,e)}}(t,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function M(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return _(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _(t,e)}}(t,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r0&&void 0!==arguments[0]?arguments[0]:[];return t.reduce(function(t,e){var i=e.word,a=e.width,u=t[t.length-1];return u&&(null==n||o||u.width+a+ra||e.reduce(function(t,e){return t.width>e.width?t:e}).width>Number(n),e]},y=0,v=c.length-1,b=0;y<=v&&b<=c.length-1;){var m=Math.floor((y+v)/2),g=M(d(m-1),2),x=g[0],O=g[1],w=M(d(m),1)[0];if(x||w||(y=m+1),x&&w&&(v=m-1),!x&&w){i=O;break}b++}return i||h},D=function(t){return[{words:i()(t)?[]:t.toString().split(T)}]},N=function(t){var e=t.width,r=t.scaleToFit,n=t.children,o=t.style,i=t.breakAll,a=t.maxLines;if((e||r)&&!c.m.isSsr){var u=C({breakAll:i,children:n,style:o});return u?I({breakAll:i,children:n,maxLines:a,style:o},u.wordsWithComputedWidth,u.spaceWidth,e,r):D(n)}return D(n)},B="#808080",R=function(t){var e,r=t.x,o=void 0===r?0:r,i=t.y,c=void 0===i?0:i,s=t.lineHeight,f=void 0===s?"1em":s,p=t.capHeight,h=void 0===p?"0.71em":p,d=t.scaleToFit,y=void 0!==d&&d,v=t.textAnchor,b=t.verticalAnchor,m=t.fill,g=void 0===m?B:m,x=k(t,P),O=(0,n.useMemo)(function(){return N({breakAll:x.breakAll,children:x.children,maxLines:x.maxLines,scaleToFit:y,style:x.style,width:x.width})},[x.breakAll,x.children,x.maxLines,y,x.style,x.width]),w=x.dx,j=x.dy,M=x.angle,_=x.className,T=x.breakAll,C=k(x,E);if(!(0,u.vh)(o)||!(0,u.vh)(c))return null;var I=o+((0,u.Et)(w)?w:0),D=c+((0,u.Et)(j)?j:0);switch(void 0===b?"end":b){case"start":e=S("calc(".concat(h,")"));break;case"middle":e=S("calc(".concat((O.length-1)/2," * -").concat(f," + (").concat(h," / 2))"));break;default:e=S("calc(".concat(O.length-1," * -").concat(f,")"))}var R=[];if(y){var L=O[0].width,z=x.width;R.push("scale(".concat(((0,u.Et)(z)?z/L:1)/L,")"))}return M&&R.push("rotate(".concat(M,", ").concat(I,", ").concat(D,")")),R.length&&(C.transform=R.join(" ")),n.createElement("text",A({},(0,l.J9)(C,!0),{x:I,y:D,className:(0,a.A)("recharts-text",_),textAnchor:void 0===v?"start":v,fill:g.includes("url")?B:g}),O.map(function(t,r){var o=t.words.join(T?"":" ");return n.createElement("tspan",{x:I,dy:0===r?e:f,key:"".concat(o,"-").concat(r)},o)}))}},58601:(t,e,r)=>{"use strict";r.d(e,{m:()=>F});var n=r(20107),o=r(67501),i=r.n(o),a=r(87107),u=r.n(a),c=r(64901),l=r(89952);function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(){return(f=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=Array(e);rc[n]+s?Math.max(f,c[n]):Math.max(p,c[n])}function w(t){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function j(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function S(t){for(var e=1;e1||Math.abs(t.height-this.state.lastBoundingBox.height)>1)&&this.setState({lastBoundingBox:{width:t.width,height:t.height}})}else(-1!==this.state.lastBoundingBox.width||-1!==this.state.lastBoundingBox.height)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var t,e;this.props.active&&this.updateBBox(),this.state.dismissed&&((null===(t=this.props.coordinate)||void 0===t?void 0:t.x)!==this.state.dismissedAtCoordinate.x||(null===(e=this.props.coordinate)||void 0===e?void 0:e.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var t,e,r,o,i,a,u,s,f,p,h,d,y,v,b,w,j,P,E,A=this,k=this.props,M=k.active,_=k.allowEscapeViewBox,T=k.animationDuration,C=k.animationEasing,I=k.children,D=k.coordinate,N=k.hasPayload,B=k.isAnimationActive,R=k.offset,L=k.position,z=k.reverseDirection,U=k.useTranslate3d,$=k.viewBox,F=k.wrapperStyle,W=(d=(t={allowEscapeViewBox:_,coordinate:D,offsetTopLeft:R,position:L,reverseDirection:z,tooltipBox:this.state.lastBoundingBox,useTranslate3d:U,viewBox:$}).allowEscapeViewBox,y=t.coordinate,v=t.offsetTopLeft,b=t.position,w=t.reverseDirection,j=t.tooltipBox,P=t.useTranslate3d,E=t.viewBox,j.height>0&&j.width>0&&y?(r=(e={translateX:p=O({allowEscapeViewBox:d,coordinate:y,key:"x",offsetTopLeft:v,position:b,reverseDirection:w,tooltipDimension:j.width,viewBox:E,viewBoxDimension:E.width}),translateY:h=O({allowEscapeViewBox:d,coordinate:y,key:"y",offsetTopLeft:v,position:b,reverseDirection:w,tooltipDimension:j.height,viewBox:E,viewBoxDimension:E.height}),useTranslate3d:P}).translateX,o=e.translateY,f={transform:e.useTranslate3d?"translate3d(".concat(r,"px, ").concat(o,"px, 0)"):"translate(".concat(r,"px, ").concat(o,"px)")}):f=x,{cssProperties:f,cssClasses:(a=(i={translateX:p,translateY:h,coordinate:y}).coordinate,u=i.translateX,s=i.translateY,(0,c.A)(g,m(m(m(m({},"".concat(g,"-right"),(0,l.Et)(u)&&a&&(0,l.Et)(a.x)&&u>=a.x),"".concat(g,"-left"),(0,l.Et)(u)&&a&&(0,l.Et)(a.x)&&u=a.y),"".concat(g,"-top"),(0,l.Et)(s)&&a&&(0,l.Et)(a.y)&&s0;return n.createElement(_,{allowEscapeViewBox:i,animationDuration:a,animationEasing:u,isAnimationActive:f,active:o,coordinate:l,hasPayload:w,offset:p,position:y,reverseDirection:b,useTranslate3d:m,viewBox:g,wrapperStyle:x},(t=N(N({},this.props),{},{payload:O}),n.isValidElement(c)?n.cloneElement(c,t):"function"==typeof c?n.createElement(c,t):n.createElement(v,t)))}}],function(t,e){for(var r=0;r{"use strict";r.d(e,{W:()=>c});var n=r(20107),o=r(64901),i=r(61211),a=["children","className"];function u(){return(u=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,a),s=(0,o.A)("recharts-layer",c);return n.createElement("g",u({className:s},(0,i.J9)(l,!0),{ref:e}),r)})},6701:(t,e,r)=>{"use strict";r.d(e,{u:()=>c});var n=r(20107),o=r(64901),i=r(61211),a=["children","width","height","viewBox","className","style","title","desc"];function u(){return(u=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,a),y=l||{width:r,height:c,x:0,y:0},v=(0,o.A)("recharts-surface",s);return n.createElement("svg",u({},(0,i.J9)(d,!0,"svg"),{className:v,width:r,height:c,style:f,viewBox:"".concat(y.x," ").concat(y.y," ").concat(y.width," ").concat(y.height)}),n.createElement("title",null,p),n.createElement("desc",null,h),e)}},25161:(t,e,r)=>{"use strict";r.d(e,{DR:()=>g,pj:()=>w,rY:()=>k,yi:()=>A,Yp:()=>x,hj:()=>E,sk:()=>P,AF:()=>O,Nk:()=>S,$G:()=>j});var n=r(20107),o=r(45082),i=r(1339),a=r.n(i),u=r(83191),c=r.n(u),l=r(80480),s=r.n(l)()(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),f=r(89952),p=(0,n.createContext)(void 0),h=(0,n.createContext)(void 0),d=(0,n.createContext)(void 0),y=(0,n.createContext)({}),v=(0,n.createContext)(void 0),b=(0,n.createContext)(0),m=(0,n.createContext)(0),g=function(t){var e=t.state,r=e.xAxisMap,o=e.yAxisMap,i=e.offset,a=t.clipPathId,u=t.children,c=t.width,l=t.height,f=s(i);return n.createElement(p.Provider,{value:r},n.createElement(h.Provider,{value:o},n.createElement(y.Provider,{value:i},n.createElement(d.Provider,{value:f},n.createElement(v.Provider,{value:a},n.createElement(b.Provider,{value:l},n.createElement(m.Provider,{value:c},u)))))))},x=function(){return(0,n.useContext)(v)},O=function(t){var e=(0,n.useContext)(p);null!=e||(0,o.A)(!1);var r=e[t];return null!=r||(0,o.A)(!1),r},w=function(){var t=(0,n.useContext)(p);return(0,f.lX)(t)},j=function(){var t=(0,n.useContext)(h);return a()(t,function(t){return c()(t.domain,Number.isFinite)})||(0,f.lX)(t)},S=function(t){var e=(0,n.useContext)(h);null!=e||(0,o.A)(!1);var r=e[t];return null!=r||(0,o.A)(!1),r},P=function(){return(0,n.useContext)(d)},E=function(){return(0,n.useContext)(y)},A=function(){return(0,n.useContext)(m)},k=function(){return(0,n.useContext)(b)}},60992:(t,e,r)=>{"use strict";r.d(e,{I:()=>V});var n=r(20107);function o(){}function i(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function a(t){this._context=t}function u(t){this._context=t}function c(t){this._context=t}a.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:i(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);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:i(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},u.prototype={areaStart:o,areaEnd:o,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)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:i(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},c.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||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,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+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:i(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class l{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function s(t){this._context=t}function f(t){this._context=t}function p(t){return new f(t)}function h(t,e,r){var n=t._x1-t._x0,o=e-t._x1,i=(t._y1-t._y0)/(n||o<0&&-0),a=(r-t._y1)/(o||n<0&&-0);return((i<0?-1:1)+(a<0?-1:1))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs((i*o+a*n)/(n+o)))||0}function d(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function y(t,e,r){var n=t._x0,o=t._y0,i=t._x1,a=t._y1,u=(i-n)/3;t._context.bezierCurveTo(n+u,o+u*e,i-u,a-u*r,i,a)}function v(t){this._context=t}function b(t){this._context=new m(t)}function m(t){this._context=t}function g(t){this._context=t}function x(t){var e,r,n=t.length-1,o=Array(n),i=Array(n),a=Array(n);for(o[0]=0,i[0]=2,a[0]=t[0]+2*t[1],e=1;e=0;--e)o[e]=(a[e]-o[e+1])/i[e];for(e=0,i[n-1]=(t[n]+o[n-1])/2;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}};var w=r(58492),j=r(51139),S=r(95327);function P(t){return t[0]}function E(t){return t[1]}function A(t,e){var r=(0,j.A)(!0),n=null,o=p,i=null,a=(0,S.i)(u);function u(u){var c,l,s,f=(u=(0,w.A)(u)).length,p=!1;for(null==n&&(i=o(s=a())),c=0;c<=f;++c)!(c=f;--p)u.point(b[p],m[p]);u.lineEnd(),u.areaEnd()}}v&&(b[s]=+t(h,s,l),m[s]=+e(h,s,l),u.point(n?+n(h,s,l):b[s],r?+r(h,s,l):m[s]))}if(d)return u=null,d+""||null}function s(){return A().defined(o).curve(a).context(i)}return t="function"==typeof t?t:void 0===t?P:(0,j.A)(+t),e="function"==typeof e?e:void 0===e?(0,j.A)(0):(0,j.A)(+e),r="function"==typeof r?r:void 0===r?E:(0,j.A)(+r),l.x=function(e){return arguments.length?(t="function"==typeof e?e:(0,j.A)(+e),n=null,l):t},l.x0=function(e){return arguments.length?(t="function"==typeof e?e:(0,j.A)(+e),l):t},l.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:(0,j.A)(+t),l):n},l.y=function(t){return arguments.length?(e="function"==typeof t?t:(0,j.A)(+t),r=null,l):e},l.y0=function(t){return arguments.length?(e="function"==typeof t?t:(0,j.A)(+t),l):e},l.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:(0,j.A)(+t),l):r},l.lineX0=l.lineY0=function(){return s().x(t).y(e)},l.lineY1=function(){return s().x(t).y(r)},l.lineX1=function(){return s().x(n).y(e)},l.defined=function(t){return arguments.length?(o="function"==typeof t?t:(0,j.A)(!!t),l):o},l.curve=function(t){return arguments.length?(a=t,null!=i&&(u=a(i)),l):a},l.context=function(t){return arguments.length?(null==t?i=u=null:u=a(i=t),l):i},l}var M=r(76158),_=r.n(M),T=r(14632),C=r.n(T),I=r(64901),D=r(35956),N=r(61211),B=r(89952);function R(t){return(R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function L(){return(L=Object.assign?Object.assign.bind():function(t){for(var e=1;e{"use strict";r.d(e,{c:()=>c});var n=r(20107),o=r(64901),i=r(35956),a=r(61211);function u(){return(u=Object.assign?Object.assign.bind():function(t){for(var e=1;e{"use strict";r.d(e,{J:()=>h,M:()=>y});var n=r(20107),o=r(64901),i=r(61075),a=r(61211);function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(){return(c=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=Array(e);r=0?1:-1,c=r>=0?1:-1,l=n>=0&&r>=0||n<0&&r<0?1:0;if(a>0&&o instanceof Array){for(var s=[0,0,0,0],f=0;f<4;f++)s[f]=o[f]>a?a:o[f];i="M".concat(t,",").concat(e+u*s[0]),s[0]>0&&(i+="A ".concat(s[0],",").concat(s[0],",0,0,").concat(l,",").concat(t+c*s[0],",").concat(e)),i+="L ".concat(t+r-c*s[1],",").concat(e),s[1]>0&&(i+="A ".concat(s[1],",").concat(s[1],",0,0,").concat(l,",\n ").concat(t+r,",").concat(e+u*s[1])),i+="L ".concat(t+r,",").concat(e+n-u*s[2]),s[2]>0&&(i+="A ".concat(s[2],",").concat(s[2],",0,0,").concat(l,",\n ").concat(t+r-c*s[2],",").concat(e+n)),i+="L ".concat(t+c*s[3],",").concat(e+n),s[3]>0&&(i+="A ".concat(s[3],",").concat(s[3],",0,0,").concat(l,",\n ").concat(t,",").concat(e+n-u*s[3])),i+="Z"}else if(a>0&&o===+o&&o>0){var p=Math.min(a,o);i="M ".concat(t,",").concat(e+u*p,"\n A ").concat(p,",").concat(p,",0,0,").concat(l,",").concat(t+c*p,",").concat(e,"\n L ").concat(t+r-c*p,",").concat(e,"\n A ").concat(p,",").concat(p,",0,0,").concat(l,",").concat(t+r,",").concat(e+u*p,"\n L ").concat(t+r,",").concat(e+n-u*p,"\n A ").concat(p,",").concat(p,",0,0,").concat(l,",").concat(t+r-c*p,",").concat(e+n,"\n L ").concat(t+c*p,",").concat(e+n,"\n A ").concat(p,",").concat(p,",0,0,").concat(l,",").concat(t,",").concat(e+n-u*p," Z")}else i="M ".concat(t,",").concat(e," h ").concat(r," v ").concat(n," h ").concat(-r," Z");return i},h=function(t,e){if(!t||!e)return!1;var r=t.x,n=t.y,o=e.x,i=e.y,a=e.width,u=e.height;if(Math.abs(a)>0&&Math.abs(u)>0){var c=Math.min(o,o+a),l=Math.max(o,o+a),s=Math.min(i,i+u),f=Math.max(i,i+u);return r>=c&&r<=l&&n>=s&&n<=f}return!1},d={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},y=function(t){var e,r=f(f({},d),t),u=(0,n.useRef)(),s=function(t){if(Array.isArray(t))return t}(e=(0,n.useState)(-1))||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,l=!1;try{for(i=(r=r.call(t)).next;!(c=(n=i.call(r)).done)&&(u.push(n.value),2!==u.length);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(e,2)||function(t,e){if(t){if("string"==typeof t)return l(t,2);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return l(t,2)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),h=s[0],y=s[1];(0,n.useEffect)(function(){if(u.current&&u.current.getTotalLength)try{var t=u.current.getTotalLength();t&&y(t)}catch(t){}},[]);var v=r.x,b=r.y,m=r.width,g=r.height,x=r.radius,O=r.className,w=r.animationEasing,j=r.animationDuration,S=r.animationBegin,P=r.isAnimationActive,E=r.isUpdateAnimationActive;if(v!==+v||b!==+b||m!==+m||g!==+g||0===m||0===g)return null;var A=(0,o.A)("recharts-rectangle",O);return E?n.createElement(i.Ay,{canBegin:h>0,from:{width:m,height:g,x:v,y:b},to:{width:m,height:g,x:v,y:b},duration:j,animationEasing:w,isActive:E},function(t){var e=t.width,o=t.height,l=t.x,s=t.y;return n.createElement(i.Ay,{canBegin:h>0,from:"0px ".concat(-1===h?1:h,"px"),to:"".concat(h,"px 0px"),attributeName:"strokeDasharray",begin:S,duration:j,isActive:P,easing:w},n.createElement("path",c({},(0,a.J9)(r,!0),{className:A,d:p(l,s,e,o,x),ref:u})))}):n.createElement("path",c({},(0,a.J9)(r,!0),{className:A,d:p(v,b,m,g,x)}))}},3730:(t,e,r)=>{"use strict";r.d(e,{h:()=>v});var n=r(20107),o=r(64901),i=r(61211),a=r(92742),u=r(89952);function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(){return(l=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(i>s),",\n ").concat(p.x,",").concat(p.y,"\n ");if(n>0){var d=(0,a.IZ)(e,r,n,i),y=(0,a.IZ)(e,r,n,s);h+="L ".concat(y.x,",").concat(y.y,"\n A ").concat(n,",").concat(n,",0,\n ").concat(+(Math.abs(l)>180),",").concat(+(i<=s),",\n ").concat(d.x,",").concat(d.y," Z")}else h+="L ".concat(e,",").concat(r," Z");return h},d=function(t){var e=t.cx,r=t.cy,n=t.innerRadius,o=t.outerRadius,i=t.cornerRadius,a=t.forceCornerRadius,c=t.cornerIsExternal,l=t.startAngle,s=t.endAngle,f=(0,u.sA)(s-l),d=p({cx:e,cy:r,radius:o,angle:l,sign:f,cornerRadius:i,cornerIsExternal:c}),y=d.circleTangency,v=d.lineTangency,b=d.theta,m=p({cx:e,cy:r,radius:o,angle:s,sign:-f,cornerRadius:i,cornerIsExternal:c}),g=m.circleTangency,x=m.lineTangency,O=m.theta,w=c?Math.abs(l-s):Math.abs(l-s)-b-O;if(w<0)return a?"M ".concat(v.x,",").concat(v.y,"\n a").concat(i,",").concat(i,",0,0,1,").concat(2*i,",0\n a").concat(i,",").concat(i,",0,0,1,").concat(-(2*i),",0\n "):h({cx:e,cy:r,innerRadius:n,outerRadius:o,startAngle:l,endAngle:s});var j="M ".concat(v.x,",").concat(v.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(y.x,",").concat(y.y,"\n A").concat(o,",").concat(o,",0,").concat(+(w>180),",").concat(+(f<0),",").concat(g.x,",").concat(g.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(x.x,",").concat(x.y,"\n ");if(n>0){var S=p({cx:e,cy:r,radius:n,angle:l,sign:f,isExternal:!0,cornerRadius:i,cornerIsExternal:c}),P=S.circleTangency,E=S.lineTangency,A=S.theta,k=p({cx:e,cy:r,radius:n,angle:s,sign:-f,isExternal:!0,cornerRadius:i,cornerIsExternal:c}),M=k.circleTangency,_=k.lineTangency,T=k.theta,C=c?Math.abs(l-s):Math.abs(l-s)-A-T;if(C<0&&0===i)return"".concat(j,"L").concat(e,",").concat(r,"Z");j+="L".concat(_.x,",").concat(_.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(M.x,",").concat(M.y,"\n A").concat(n,",").concat(n,",0,").concat(+(C>180),",").concat(+(f>0),",").concat(P.x,",").concat(P.y,"\n A").concat(i,",").concat(i,",0,0,").concat(+(f<0),",").concat(E.x,",").concat(E.y,"Z")}else j+="L".concat(e,",").concat(r,"Z");return j},y={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},v=function(t){var e,r=f(f({},y),t),a=r.cx,c=r.cy,s=r.innerRadius,p=r.outerRadius,v=r.cornerRadius,b=r.forceCornerRadius,m=r.cornerIsExternal,g=r.startAngle,x=r.endAngle,O=r.className;if(p0&&360>Math.abs(g-x)?d({cx:a,cy:c,innerRadius:s,outerRadius:p,cornerRadius:Math.min(S,j/2),forceCornerRadius:b,cornerIsExternal:m,startAngle:g,endAngle:x}):h({cx:a,cy:c,innerRadius:s,outerRadius:p,startAngle:g,endAngle:x}),n.createElement("path",l({},(0,i.J9)(r,!0),{className:w,d:e,role:"img"}))}},92824:(t,e,r)=>{"use strict";r.d(e,{i:()=>I});var n=r(20107),o=r(76158),i=r.n(o);let a=Math.cos,u=Math.sin,c=Math.sqrt,l=Math.PI,s=2*l,f={draw(t,e){let r=c(e/l);t.moveTo(r,0),t.arc(0,0,r,0,s)}},p=c(1/3),h=2*p,d=u(l/10)/u(7*l/10),y=u(s/10)*d,v=-a(s/10)*d,b=c(3),m=c(3)/2,g=1/c(12),x=(g/2+1)*3;var O=r(51139),w=r(95327);c(3),c(3);var j=r(64901),S=r(61211);function P(t){return(P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var E=["type","size","sizeType"];function A(){return(A=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,E)),{},{type:o,size:u,sizeType:l}),p=s.className,h=s.cx,d=s.cy,y=(0,S.J9)(s,!0);return h===+h&&d===+d&&u===+u?n.createElement("path",A({},y,{className:(0,j.A)("recharts-symbols",p),transform:"translate(".concat(h,", ").concat(d,")"),d:(e=_["symbol".concat(i()(o))]||f,(function(t,e){let r=null,n=(0,w.i)(o);function o(){let o;if(r||(r=o=n()),t.apply(this,arguments).draw(r,+e.apply(this,arguments)),o)return r=null,o+""||null}return t="function"==typeof t?t:(0,O.A)(t||f),e="function"==typeof e?e:(0,O.A)(void 0===e?64:+e),o.type=function(e){return arguments.length?(t="function"==typeof e?e:(0,O.A)(e),o):t},o.size=function(t){return arguments.length?(e="function"==typeof t?t:(0,O.A)(+t),o):e},o.context=function(t){return arguments.length?(r=null==t?null:t,o):r},o})().type(e).size(C(u,l,o))())})):null};I.registerSymbol=function(t,e){_["symbol".concat(i()(t))]=e}},82372:(t,e,r)=>{"use strict";r.d(e,{yp:()=>C,GG:()=>z,NE:()=>I,nZ:()=>D,xQ:()=>N});var n=r(20107),o=r(14632),i=r.n(o),a=r(55519),u=r.n(a),c=r(46420),l=r.n(c),s=r(6440),f=r.n(s),p=r(2721),h=r(64901),d=r(61075),y=r(61211);function v(t){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function b(){return(b=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=Array(e);r0,from:{upperWidth:0,lowerWidth:0,height:p,x:c,y:l},to:{upperWidth:s,lowerWidth:f,height:p,x:c,y:l},duration:j,animationEasing:g,isActive:P},function(t){var e=t.upperWidth,i=t.lowerWidth,u=t.height,c=t.x,l=t.y;return n.createElement(d.Ay,{canBegin:a>0,from:"0px ".concat(-1===a?1:a,"px"),to:"".concat(a,"px 0px"),attributeName:"strokeDasharray",begin:S,duration:j,easing:g},n.createElement("path",b({},(0,y.J9)(r,!0),{className:E,d:O(c,l,e,i,u),ref:o})))}):n.createElement("g",null,n.createElement("path",b({},(0,y.J9)(r,!0),{className:E,d:O(c,l,s,f,p)})))},S=r(3730),P=r(37819),E=r(92824),A=["option","shapeType","propTransformer","activeClassName","isActive"];function k(t){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function M(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function _(t){for(var e=1;e=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,A);if((0,n.isValidElement)(r))e=(0,n.cloneElement)(r,_(_({},f),(0,n.isValidElement)(r)?r.props:r));else if(i()(r))e=r(f);else if(u()(r)&&!l()(r)){var p=(void 0===a?function(t,e){return _(_({},e),t)}:a)(r,f);e=n.createElement(T,{shapeType:o,elementProps:p})}else e=n.createElement(T,{shapeType:o,elementProps:f});return s?n.createElement(P.W,{className:void 0===c?"recharts-active-shape":c},e):e}function I(t,e){return null!=e&&"trapezoids"in t.props}function D(t,e){return null!=e&&"sectors"in t.props}function N(t,e){return null!=e&&"points"in t.props}function B(t,e){var r,n,o=t.x===(null==e||null===(r=e.labelViewBox)||void 0===r?void 0:r.x)||t.x===e.x,i=t.y===(null==e||null===(n=e.labelViewBox)||void 0===n?void 0:n.y)||t.y===e.y;return o&&i}function R(t,e){var r=t.endAngle===e.endAngle,n=t.startAngle===e.startAngle;return r&&n}function L(t,e){var r=t.x===e.x,n=t.y===e.y,o=t.z===e.z;return r&&n&&o}function z(t){var e,r,n,o=t.activeTooltipItem,i=t.graphicalItem,a=t.itemData,u=(I(i,o)?e="trapezoids":D(i,o)?e="sectors":N(i,o)&&(e="points"),e),c=I(i,o)?null===(r=o.tooltipPayload)||void 0===r||null===(r=r[0])||void 0===r||null===(r=r.payload)||void 0===r?void 0:r.payload:D(i,o)?null===(n=o.tooltipPayload)||void 0===n||null===(n=n[0])||void 0===n||null===(n=n.payload)||void 0===n?void 0:n.payload:N(i,o)?o.payload:{},l=a.filter(function(t,e){var r=f()(c,t),n=i.props[u].filter(function(t){var e;return(I(i,o)?e=B:D(i,o)?e=R:N(i,o)&&(e=L),e)(t,o)}),a=i.props[u].indexOf(n[n.length-1]);return r&&e===a});return a.indexOf(l[l.length-1])}},98456:(t,e,r)=>{"use strict";r.d(e,{P2:()=>O,bx:()=>w,pr:()=>b,sl:()=>m,vh:()=>g});var n=r(86992),o=r.n(n),i=r(83191),a=r.n(i),u=r(95492),c=r(61211),l=r(89952),s=r(17255);function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){for(var r=0;r0&&(k=Math.min((t||0)-(M[e-1]||0),k))}),Number.isFinite(k)){var _=k/A,T="vertical"===g.layout?r.height:r.width;if("gap"===g.padding&&(c=_*T/2),"no-gap"===g.padding){var C=(0,l.F4)(t.barCategoryGap,_*T),I=_*T/2;c=I-C-(I-C)/T*C}}}s="xAxis"===n?[r.left+(j.left||0)+(c||0),r.left+r.width-(j.right||0)-(c||0)]:"yAxis"===n?"horizontal"===f?[r.top+r.height-(j.bottom||0),r.top+(j.top||0)]:[r.top+(j.top||0)+(c||0),r.top+r.height-(j.bottom||0)-(c||0)]:g.range,P&&(s=[s[1],s[0]]);var D=(0,u.W7)(g,o,b),N=D.scale,B=D.realScaleType;N.domain(O).range(s),(0,u.YB)(N);var R=(0,u.w7)(N,d(d({},g),{},{realScaleType:B}));"xAxis"===n?(m="top"===x&&!S||"bottom"===x&&S,p=r.left,h=v[E]-m*g.height):"yAxis"===n&&(m="left"===x&&!S||"right"===x&&S,p=v[E]-m*g.width,h=r.top);var L=d(d(d({},g),R),{},{realScaleType:B,x:p,y:h,scale:N,width:"xAxis"===n?r.width:g.width,height:"yAxis"===n?r.height:g.height});return L.bandSize=(0,u.Hj)(L,R),g.hide||"xAxis"!==n?g.hide||(v[E]+=(m?-1:1)*L.width):v[E]+=(m?-1:1)*L.height,d(d({},i),{},y({},a,L))},{})},m=function(t,e){var r=t.x,n=t.y,o=e.x,i=e.y;return{x:Math.min(r,o),y:Math.min(n,i),width:Math.abs(o-r),height:Math.abs(i-n)}},g=function(t){return m({x:t.x1,y:t.y1},{x:t.x2,y:t.y2})},x=function(){var t,e;function r(t){!function(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}(this,r),this.scale=t}return t=[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.bandAware,n=e.position;if(void 0!==t){if(n)switch(n){case"start":default:return this.scale(t);case"middle":var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+o;case"end":var i=this.bandwidth?this.bandwidth():0;return this.scale(t)+i}if(r){var a=this.bandwidth?this.bandwidth()/2:0;return this.scale(t)+a}return this.scale(t)}}},{key:"isInRange",value:function(t){var e=this.range(),r=e[0],n=e[e.length-1];return r<=n?t>=r&&t<=n:t>=n&&t<=r}}],e=[{key:"create",value:function(t){return new r(t)}}],t&&p(r.prototype,t),e&&p(r,e),Object.defineProperty(r,"prototype",{writable:!1}),r}();y(x,"EPS",1e-4);var O=function(t){var e=Object.keys(t).reduce(function(e,r){return d(d({},e),{},y({},r,x.create(t[r])))},{});return d(d({},e),{},{apply:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.bandAware,i=r.position;return o()(t,function(t,r){return e[r].apply(t,{bandAware:n,position:i})})},isInRange:function(t){return a()(t,function(t,r){return e[r].isInRange(t)})}})},w=function(t){var e=t.width,r=t.height,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=(n%180+180)%180*Math.PI/180,i=Math.atan(r/e);return Math.abs(o>i&&o{"use strict";r.d(e,{s0:()=>n3,gH:()=>n0,YB:()=>oo,HQ:()=>or,xi:()=>oi,Hj:()=>og,BX:()=>n5,tA:()=>n2,DW:()=>oh,y2:()=>op,nb:()=>of,PW:()=>n7,Ay:()=>nQ,vf:()=>n8,Mk:()=>oy,Ps:()=>n1,Mn:()=>ol,kA:()=>od,Rh:()=>ot,w7:()=>os,zb:()=>oO,kr:()=>nZ,_L:()=>n9,KC:()=>ox,A1:()=>n4,W7:()=>on,AQ:()=>om,_f:()=>oa});var n,o,i,a,u,c,l,s={};r.r(s),r.d(s,{scaleBand:()=>f.A,scaleDiverging:()=>function t(){var e=tN(rZ()(tv));return e.copy=function(){return rY(e,t())},tj.K.apply(e,arguments)},scaleDivergingLog:()=>function t(){var e=tq(rZ()).domain([.1,1,10]);return e.copy=function(){return rY(e,t()).base(e.base())},tj.K.apply(e,arguments)},scaleDivergingPow:()=>rQ,scaleDivergingSqrt:()=>r0,scaleDivergingSymlog:()=>function t(){var e=tV(rZ());return e.copy=function(){return rY(e,t()).constant(e.constant())},tj.K.apply(e,arguments)},scaleIdentity:()=>function t(e){var r;function n(t){return null==t||isNaN(t=+t)?r:t}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,td),n):e.slice()},n.unknown=function(t){return arguments.length?(r=t,n):r},n.copy=function(){return t(e).unknown(r)},e=arguments.length?Array.from(e,td):[0,1],tN(n)},scaleImplicit:()=>tG.h,scaleLinear:()=>tB,scaleLog:()=>function t(){let e=tq(tO()).domain([1,10]);return e.copy=()=>tx(e,t()).base(e.base()),tj.C.apply(e,arguments),e},scaleOrdinal:()=>tG.A,scalePoint:()=>f.z,scalePow:()=>tQ,scaleQuantile:()=>function t(){var e,r=[],n=[],o=[];function i(){var t=0,e=Math.max(1,n.length);for(o=Array(e-1);++t=1)return+r(t[n-1],n-1,t);var n,o=(n-1)*e,i=Math.floor(o),a=+r(t[i],i,t);return a+(+r(t[i+1],i+1,t)-a)*(o-i)}}(r,t/e);return a}function a(t){return null==t||isNaN(t=+t)?e:n[P(o,t)]}return a.invertExtent=function(t){var e=n.indexOf(t);return e<0?[NaN,NaN]:[e>0?o[e-1]:r[0],efunction t(){var e,r=0,n=1,o=1,i=[.5],a=[0,1];function u(t){return null!=t&&t<=t?a[P(i,t,0,o)]:e}function c(){var t=-1;for(i=Array(o);++t=o?[i[o-1],n]:[i[e-1],i[e]]},u.unknown=function(t){return arguments.length&&(e=t),u},u.thresholds=function(){return i.slice()},u.copy=function(){return t().domain([r,n]).range(a).unknown(e)},tj.C.apply(tN(u),arguments)},scaleRadial:()=>function t(){var e,r=tw(),n=[0,1],o=!1;function i(t){var n,i=Math.sign(n=r(t))*Math.sqrt(Math.abs(n));return isNaN(i)?e:o?Math.round(i):i}return i.invert=function(t){return r.invert(t1(t))},i.domain=function(t){return arguments.length?(r.domain(t),i):r.domain()},i.range=function(t){return arguments.length?(r.range((n=Array.from(t,td)).map(t1)),i):n.slice()},i.rangeRound=function(t){return i.range(t).round(!0)},i.round=function(t){return arguments.length?(o=!!t,i):o},i.clamp=function(t){return arguments.length?(r.clamp(t),i):r.clamp()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return t(r.domain(),n).round(o).clamp(r.clamp()).unknown(e)},tj.C.apply(i,arguments),tN(i)},scaleSequential:()=>function t(){var e=tN(rG()(tv));return e.copy=function(){return rY(e,t())},tj.K.apply(e,arguments)},scaleSequentialLog:()=>function t(){var e=tq(rG()).domain([1,10]);return e.copy=function(){return rY(e,t()).base(e.base())},tj.K.apply(e,arguments)},scaleSequentialPow:()=>rK,scaleSequentialQuantile:()=>function t(){var e=[],r=tv;function n(t){if(null!=t&&!isNaN(t=+t))return r((P(e,t,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();for(let r of(e=[],t))null==r||isNaN(r=+r)||e.push(r);return e.sort(g),n},n.interpolator=function(t){return arguments.length?(r=t,n):r},n.range=function(){return e.map((t,n)=>r(n/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(r,n)=>(function(t,e,r){if(!(!(n=(t=Float64Array.from(function*(t,e){if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(yield e);else{let r=-1;for(let n of t)null!=(n=e(n,++r,t))&&(n=+n)>=n&&(yield n)}}(t,void 0))).length)||isNaN(e=+e))){if(e<=0||n<2)return t5(t);if(e>=1)return t2(t);var n,o=(n-1)*e,i=Math.floor(o),a=t2((function t(e,r,n=0,o=1/0,i){if(r=Math.floor(r),n=Math.floor(Math.max(0,n)),o=Math.floor(Math.min(e.length-1,o)),!(n<=r&&r<=o))return e;for(i=void 0===i?t3:function(t=g){if(t===g)return t3;if("function"!=typeof t)throw TypeError("compare is not a function");return(e,r)=>{let n=t(e,r);return n||0===n?n:(0===t(r,r))-(0===t(e,e))}}(i);o>n;){if(o-n>600){let a=o-n+1,u=r-n+1,c=Math.log(a),l=.5*Math.exp(2*c/3),s=.5*Math.sqrt(c*l*(a-l)/a)*(u-a/2<0?-1:1),f=Math.max(n,Math.floor(r-u*l/a+s)),p=Math.min(o,Math.floor(r+(a-u)*l/a+s));t(e,r,f,p,i)}let a=e[r],u=n,c=o;for(t6(e,n,r),i(e[o],a)>0&&t6(e,n,o);ui(e[u],a);)++u;for(;i(e[c],a)>0;)--c}0===i(e[n],a)?t6(e,n,c):t6(e,++c,o),c<=r&&(n=c+1),r<=c&&(o=c-1)}return e})(t,i).subarray(0,i+1));return a+(t5(t.subarray(i+1))-a)*(o-i)}})(e,n/t))},n.copy=function(){return t(r).domain(e)},tj.K.apply(n,arguments)},scaleSequentialSqrt:()=>rJ,scaleSequentialSymlog:()=>function t(){var e=tV(rG());return e.copy=function(){return rY(e,t()).constant(e.constant())},tj.K.apply(e,arguments)},scaleSqrt:()=>t0,scaleSymlog:()=>function t(){var e=tV(tO());return e.copy=function(){return tx(e,t()).constant(e.constant())},tj.C.apply(e,arguments)},scaleThreshold:()=>function t(){var e,r=[.5],n=[0,1],o=1;function i(t){return null!=t&&t<=t?n[P(r,t,0,o)]:e}return i.domain=function(t){return arguments.length?(o=Math.min((r=Array.from(t)).length,n.length-1),i):r.slice()},i.range=function(t){return arguments.length?(n=Array.from(t),o=Math.min(r.length,n.length-1),i):n.slice()},i.invertExtent=function(t){var e=n.indexOf(t);return[r[e-1],r[e]]},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return t().domain(r).range(n).unknown(e)},tj.C.apply(i,arguments)},scaleTime:()=>rH,scaleUtc:()=>rV,tickFormat:()=>tD});var f=r(63949);let p=Math.sqrt(50),h=Math.sqrt(10),d=Math.sqrt(2);function y(t,e,r){let n,o,i;let a=(e-t)/Math.max(0,r),u=Math.floor(Math.log10(a)),c=a/Math.pow(10,u),l=c>=p?10:c>=h?5:c>=d?2:1;return(u<0?(n=Math.round(t*(i=Math.pow(10,-u)/l)),o=Math.round(e*i),n/ie&&--o,i=-i):(n=Math.round(t/(i=Math.pow(10,u)*l)),o=Math.round(e/i),n*ie&&--o),o0))return[];if(t===e)return[t];let n=e=o))return[];let u=i-o+1,c=Array(u);if(n){if(a<0)for(let t=0;te?1:t>=e?0:NaN}function x(t,e){return null==t||null==e?NaN:et?1:e>=t?0:NaN}function O(t){let e,r,n;function o(t,n,i=0,a=t.length){if(i>>1;0>r(t[e],n)?i=e+1:a=e}while(ig(t(e),r),n=(e,r)=>t(e)-r):(e=t===g||t===x?t:w,r=t,n=t),{left:o,center:function(t,e,r=0,i=t.length){let a=o(t,e,r,i-1);return a>r&&n(t[a-1],e)>-n(t[a],e)?a-1:a},right:function(t,n,o=0,i=t.length){if(o>>1;0>=r(t[e],n)?o=e+1:i=e}while(o>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?q(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?q(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=I.exec(t))?new H(e[1],e[2],e[3],1):(e=D.exec(t))?new H(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=N.exec(t))?q(e[1],e[2],e[3],e[4]):(e=B.exec(t))?q(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=R.exec(t))?Z(e[1],e[2]/100,e[3]/100,1):(e=L.exec(t))?Z(e[1],e[2]/100,e[3]/100,e[4]):z.hasOwnProperty(t)?W(z[t]):"transparent"===t?new H(NaN,NaN,NaN,0):null}function W(t){return new H(t>>16&255,t>>8&255,255&t,1)}function q(t,e,r,n){return n<=0&&(t=e=r=NaN),new H(t,e,r,n)}function X(t,e,r,n){var o;return 1==arguments.length?((o=t)instanceof k||(o=F(o)),o)?new H((o=o.rgb()).r,o.g,o.b,o.opacity):new H:new H(t,e,r,null==n?1:n)}function H(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function V(){return`#${J(this.r)}${J(this.g)}${J(this.b)}`}function G(){let t=Y(this.opacity);return`${1===t?"rgb(":"rgba("}${K(this.r)}, ${K(this.g)}, ${K(this.b)}${1===t?")":`, ${t})`}`}function Y(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function K(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function J(t){return((t=K(t))<16?"0":"")+t.toString(16)}function Z(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new tt(t,e,r,n)}function Q(t){if(t instanceof tt)return new tt(t.h,t.s,t.l,t.opacity);if(t instanceof k||(t=F(t)),!t)return new tt;if(t instanceof tt)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,o=Math.min(e,r,n),i=Math.max(e,r,n),a=NaN,u=i-o,c=(i+o)/2;return u?(a=e===i?(r-n)/u+(r0&&c<1?0:a,new tt(a,u,c,t.opacity)}function tt(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function te(t){return(t=(t||0)%360)<0?t+360:t}function tr(t){return Math.max(0,Math.min(1,t||0))}function tn(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}function to(t,e,r,n,o){var i=t*t,a=i*t;return((1-3*t+3*i-a)*e+(4-6*i+3*a)*r+(1+3*t+3*i-3*a)*n+a*o)/6}E(k,F,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:U,formatHex:U,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Q(this).formatHsl()},formatRgb:$,toString:$}),E(H,X,A(k,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new H(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new H(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new H(K(this.r),K(this.g),K(this.b),Y(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:V,formatHex:V,formatHex8:function(){return`#${J(this.r)}${J(this.g)}${J(this.b)}${J((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:G,toString:G})),E(tt,function(t,e,r,n){return 1==arguments.length?Q(t):new tt(t,e,r,null==n?1:n)},A(k,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new tt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new tt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,o=2*r-n;return new H(tn(t>=240?t-240:t+120,o,n),tn(t,o,n),tn(t<120?t+240:t-120,o,n),this.opacity)},clamp(){return new tt(te(this.h),tr(this.s),tr(this.l),Y(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(){let t=Y(this.opacity);return`${1===t?"hsl(":"hsla("}${te(this.h)}, ${100*tr(this.s)}%, ${100*tr(this.l)}%${1===t?")":`, ${t})`}`}}));let ti=t=>()=>t;function ta(t,e){var r=e-t;return r?function(e){return t+e*r}:ti(isNaN(t)?e:t)}let tu=function t(e){var r,n=1==(r=+(r=e))?ta:function(t,e){var n,o,i;return e-t?(n=t,o=e,n=Math.pow(n,i=r),o=Math.pow(o,i)-n,i=1/i,function(t){return Math.pow(n+t*o,i)}):ti(isNaN(t)?e:t)};function o(t,e){var r=n((t=X(t)).r,(e=X(e)).r),o=n(t.g,e.g),i=n(t.b,e.b),a=ta(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=o(e),t.b=i(e),t.opacity=a(e),t+""}}return o.gamma=t,o}(1);function tc(t){return function(e){var r,n,o=e.length,i=Array(o),a=Array(o),u=Array(o);for(r=0;r=1?(r=1,e-1):Math.floor(r*e),o=t[n],i=t[n+1],a=n>0?t[n-1]:2*o-i,u=nu&&(a=e.slice(u,a),l[c]?l[c]+=a:l[++c]=a),(o=o[0])===(i=i[0])?l[c]?l[c]+=i:l[++c]=i:(l[++c]=null,s.push({i:c,x:tl(o,i)})),u=tf.lastIndex;return ue&&(r=t,t=e,e=r),l=function(r){return Math.max(t,Math.min(e,r))}),n=c>2?tg:tm,o=i=null,f}function f(e){return null==e||isNaN(e=+e)?r:(o||(o=n(a.map(t),u,c)))(t(l(e)))}return f.invert=function(r){return l(e((i||(i=n(u,a.map(t),tl)))(r)))},f.domain=function(t){return arguments.length?(a=Array.from(t,td),s()):a.slice()},f.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},f.rangeRound=function(t){return u=Array.from(t),c=th,s()},f.clamp=function(t){return arguments.length?(l=!!t||tv,s()):l!==tv},f.interpolate=function(t){return arguments.length?(c=t,s()):c},f.unknown=function(t){return arguments.length?(r=t,f):r},function(r,n){return t=r,e=n,s()}}function tw(){return tO()(tv,tv)}var tj=r(87982),tS=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tP(t){var e;if(!(e=tS.exec(t)))throw Error("invalid format: "+t);return new tE({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function tE(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function tA(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function tk(t){return(t=tA(Math.abs(t)))?t[1]:NaN}function tM(t,e){var r=tA(t,e);if(!r)return t+"";var n=r[0],o=r[1];return o<0?"0."+Array(-o).join("0")+n:n.length>o+1?n.slice(0,o+1)+"."+n.slice(o+1):n+Array(o-n.length+2).join("0")}tP.prototype=tE.prototype,tE.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};let t_={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>tM(100*t,e),r:tM,s:function(t,e){var r=tA(t,e);if(!r)return t+"";var o=r[0],i=r[1],a=i-(n=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=o.length;return a===u?o:a>u?o+Array(a-u+1).join("0"):a>0?o.slice(0,a)+"."+o.slice(a):"0."+Array(1-a).join("0")+tA(t,Math.max(0,e+a-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function tT(t){return t}var tC=Array.prototype.map,tI=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function tD(t,e,r,n){var o,u,c=m(t,e,r);switch((n=tP(null==n?",f":n)).type){case"s":var l=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(u=Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(tk(l)/3)))-tk(Math.abs(c))))||(n.precision=u),a(n,l);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(u=Math.max(0,tk(Math.abs(Math.max(Math.abs(t),Math.abs(e)))-(o=Math.abs(o=c)))-tk(o))+1)||(n.precision=u-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(u=Math.max(0,-tk(Math.abs(c))))||(n.precision=u-("%"===n.type)*2)}return i(n)}function tN(t){var e=t.domain;return t.ticks=function(t){var r=e();return v(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var n=e();return tD(n[0],n[n.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var n,o,i=e(),a=0,u=i.length-1,c=i[a],l=i[u],s=10;for(l0;){if((o=b(c,l,r))===n)return i[a]=c,i[u]=l,e(i);if(o>0)c=Math.floor(c/o)*o,l=Math.ceil(l/o)*o;else if(o<0)c=Math.ceil(c*o)/o,l=Math.floor(l*o)/o;else break;n=o}return t},t}function tB(){var t=tw();return t.copy=function(){return tx(t,tB())},tj.C.apply(t,arguments),tN(t)}function tR(t,e){t=t.slice();var r,n=0,o=t.length-1,i=t[n],a=t[o];return a-t(-e,r)}function tq(t){let e,r;let n=t(tL,tz),o=n.domain,a=10;function u(){var i,u;return e=(i=a)===Math.E?Math.log:10===i&&Math.log10||2===i&&Math.log2||(i=Math.log(i),t=>Math.log(t)/i),r=10===(u=a)?tF:u===Math.E?Math.exp:t=>Math.pow(u,t),o()[0]<0?(e=tW(e),r=tW(r),t(tU,t$)):t(tL,tz),n}return n.base=function(t){return arguments.length?(a=+t,u()):a},n.domain=function(t){return arguments.length?(o(t),u()):o()},n.ticks=t=>{let n,i;let u=o(),c=u[0],l=u[u.length-1],s=l0){for(;f<=p;++f)for(n=1;nl)break;d.push(i)}}else for(;f<=p;++f)for(n=a-1;n>=1;--n)if(!((i=f>0?n/r(-f):n*r(f))l)break;d.push(i)}2*d.length{if(null==t&&(t=10),null==o&&(o=10===a?"s":","),"function"!=typeof o&&(a%1||null!=(o=tP(o)).precision||(o.trim=!0),o=i(o)),t===1/0)return o;let u=Math.max(1,a*t/n.ticks().length);return t=>{let n=t/r(Math.round(e(t)));return n*ao(tR(o(),{floor:t=>r(Math.floor(e(t))),ceil:t=>r(Math.ceil(e(t)))})),n}function tX(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function tH(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function tV(t){var e=1,r=t(tX(1),tH(e));return r.constant=function(r){return arguments.length?t(tX(e=+r),tH(e)):e},tN(r)}i=(o=function(t){var e,r,o,i=void 0===t.grouping||void 0===t.thousands?tT:(e=tC.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var o=t.length,i=[],a=0,u=e[0],c=0;o>0&&u>0&&(c+u+1>n&&(u=Math.max(1,n-c)),i.push(t.substring(o-=u,o+u)),!((c+=u+1)>n));)u=e[a=(a+1)%e.length];return i.reverse().join(r)}),a=void 0===t.currency?"":t.currency[0]+"",u=void 0===t.currency?"":t.currency[1]+"",c=void 0===t.decimal?".":t.decimal+"",l=void 0===t.numerals?tT:(o=tC.call(t.numerals,String),function(t){return t.replace(/[0-9]/g,function(t){return o[+t]})}),s=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",p=void 0===t.nan?"NaN":t.nan+"";function h(t){var e=(t=tP(t)).fill,r=t.align,o=t.sign,h=t.symbol,d=t.zero,y=t.width,v=t.comma,b=t.precision,m=t.trim,g=t.type;"n"===g?(v=!0,g="g"):t_[g]||(void 0===b&&(b=12),m=!0,g="g"),(d||"0"===e&&"="===r)&&(d=!0,e="0",r="=");var x="$"===h?a:"#"===h&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",O="$"===h?u:/[%p]/.test(g)?s:"",w=t_[g],j=/[defgprs%]/.test(g);function S(t){var a,u,s,h=x,S=O;if("c"===g)S=w(t)+S,t="";else{var P=(t=+t)<0||1/t<0;if(t=isNaN(t)?p:w(Math.abs(t),b),m&&(t=function(t){e:for(var e,r=t.length,n=1,o=-1;n0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t}(t)),P&&0==+t&&"+"!==o&&(P=!1),h=(P?"("===o?o:f:"-"===o||"("===o?"":o)+h,S=("s"===g?tI[8+n/3]:"")+S+(P&&"("===o?")":""),j){for(a=-1,u=t.length;++a(s=t.charCodeAt(a))||s>57){S=(46===s?c+t.slice(a+1):t.slice(a))+S,t=t.slice(0,a);break}}}v&&!d&&(t=i(t,1/0));var E=h.length+t.length+S.length,A=E>1)+h+t+S+A.slice(E);break;default:t=A+h+t+S}return l(t)}return b=void 0===b?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),S.toString=function(){return t+""},S}return{format:h,formatPrefix:function(t,e){var r=h(((t=tP(t)).type="f",t)),n=3*Math.max(-8,Math.min(8,Math.floor(tk(e)/3))),o=Math.pow(10,-n),i=tI[8+n/3];return function(t){return r(o*t)+i}}}}({thousands:",",grouping:[3],currency:["$",""]})).format,a=o.formatPrefix;var tG=r(68399);function tY(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function tK(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function tJ(t){return t<0?-t*t:t*t}function tZ(t){var e=t(tv,tv),r=1;return e.exponent=function(e){return arguments.length?1==(r=+e)?t(tv,tv):.5===r?t(tK,tJ):t(tY(r),tY(1/r)):r},tN(e)}function tQ(){var t=tZ(tO());return t.copy=function(){return tx(t,tQ()).exponent(t.exponent())},tj.C.apply(t,arguments),t}function t0(){return tQ.apply(null,arguments).exponent(.5)}function t1(t){return Math.sign(t)*t*t}function t2(t,e){let r;if(void 0===e)for(let e of t)null!=e&&(r=e)&&(r=e);else{let n=-1;for(let o of t)null!=(o=e(o,++n,t))&&(r=o)&&(r=o)}return r}function t5(t,e){let r;if(void 0===e)for(let e of t)null!=e&&(r>e||void 0===r&&e>=e)&&(r=e);else{let n=-1;for(let o of t)null!=(o=e(o,++n,t))&&(r>o||void 0===r&&o>=o)&&(r=o)}return r}function t3(t,e){return(null==t||!(t>=t))-(null==e||!(e>=e))||(te?1:0)}function t6(t,e,r){let n=t[e];t[e]=t[r],t[r]=n}let t4=new Date,t8=new Date;function t9(t,e,r,n){function o(e){return t(e=0==arguments.length?new Date:new Date(+e)),e}return o.floor=e=>(t(e=new Date(+e)),e),o.ceil=r=>(t(r=new Date(r-1)),e(r,1),t(r),r),o.round=t=>{let e=o(t),r=o.ceil(t);return t-e(e(t=new Date(+t),null==r?1:Math.floor(r)),t),o.range=(r,n,i)=>{let a;let u=[];if(r=o.ceil(r),i=null==i?1:Math.floor(i),!(r0))return u;do u.push(a=new Date(+r)),e(r,i),t(r);while(at9(e=>{if(e>=e)for(;t(e),!r(e);)e.setTime(e-1)},(t,n)=>{if(t>=t){if(n<0)for(;++n<=0;)for(;e(t,-1),!r(t););else for(;--n>=0;)for(;e(t,1),!r(t););}}),r&&(o.count=(e,n)=>(t4.setTime(+e),t8.setTime(+n),t(t4),t(t8),Math.floor(r(t4,t8))),o.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?o.filter(n?e=>n(e)%t==0:e=>o.count(0,e)%t==0):o:null),o}let t7=t9(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);t7.every=t=>isFinite(t=Math.floor(t))&&t>0?t>1?t9(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):t7:null,t7.range;let et=t9(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+1e3*e)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds());et.range;let ee=t9(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getMinutes());ee.range;let er=t9(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes());er.range;let en=t9(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getHours());en.range;let eo=t9(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours());eo.range;let ei=t9(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1);ei.range;let ea=t9(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1);ea.range;let eu=t9(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5));function ec(t){return t9(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(t,e)=>{t.setDate(t.getDate()+7*e)},(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/6048e5)}eu.range;let el=ec(0),es=ec(1),ef=ec(2),ep=ec(3),eh=ec(4),ed=ec(5),ey=ec(6);function ev(t){return t9(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)},(t,e)=>(e-t)/6048e5)}el.range,es.range,ef.range,ep.range,eh.range,ed.range,ey.range;let eb=ev(0),em=ev(1),eg=ev(2),ex=ev(3),eO=ev(4),ew=ev(5),ej=ev(6);eb.range,em.range,eg.range,ex.range,eO.range,ew.range,ej.range;let eS=t9(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());eS.range;let eP=t9(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());eP.range;let eE=t9(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());eE.every=t=>isFinite(t=Math.floor(t))&&t>0?t9(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)}):null,eE.range;let eA=t9(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());function ek(t,e,r,n,o,i){let a=[[et,1,1e3],[et,5,5e3],[et,15,15e3],[et,30,3e4],[i,1,6e4],[i,5,3e5],[i,15,9e5],[i,30,18e5],[o,1,36e5],[o,3,108e5],[o,6,216e5],[o,12,432e5],[n,1,864e5],[n,2,1728e5],[r,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function u(e,r,n){let o=Math.abs(r-e)/n,i=O(([,,t])=>t).right(a,o);if(i===a.length)return t.every(m(e/31536e6,r/31536e6,n));if(0===i)return t7.every(Math.max(m(e,r,n),1));let[u,c]=a[o/a[i-1][2]isFinite(t=Math.floor(t))&&t>0?t9(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)}):null,eA.range;let[eM,e_]=ek(eA,eP,eb,eu,eo,er),[eT,eC]=ek(eE,eS,el,ei,en,ee);function eI(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function eD(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function eN(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}var eB={"-":"",_:" ",0:"0"},eR=/^\s*\d+/,eL=/^%/,ez=/[\\^$*+?|[\]().{}]/g;function eU(t,e,r){var n=t<0?"-":"",o=(n?-t:t)+"",i=o.length;return n+(i[t.toLowerCase(),e]))}function eq(t,e,r){var n=eR.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function eX(t,e,r){var n=eR.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function eH(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function eV(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function eG(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function eY(t,e,r){var n=eR.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function eK(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function eJ(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function eZ(t,e,r){var n=eR.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function eQ(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function e0(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function e1(t,e,r){var n=eR.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function e2(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function e5(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function e3(t,e,r){var n=eR.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function e6(t,e,r){var n=eR.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function e4(t,e,r){var n=eR.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function e8(t,e,r){var n=eL.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function e9(t,e,r){var n=eR.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function e7(t,e,r){var n=eR.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function rt(t,e){return eU(t.getDate(),e,2)}function re(t,e){return eU(t.getHours(),e,2)}function rr(t,e){return eU(t.getHours()%12||12,e,2)}function rn(t,e){return eU(1+ei.count(eE(t),t),e,3)}function ro(t,e){return eU(t.getMilliseconds(),e,3)}function ri(t,e){return ro(t,e)+"000"}function ra(t,e){return eU(t.getMonth()+1,e,2)}function ru(t,e){return eU(t.getMinutes(),e,2)}function rc(t,e){return eU(t.getSeconds(),e,2)}function rl(t){var e=t.getDay();return 0===e?7:e}function rs(t,e){return eU(el.count(eE(t)-1,t),e,2)}function rf(t){var e=t.getDay();return e>=4||0===e?eh(t):eh.ceil(t)}function rp(t,e){return t=rf(t),eU(eh.count(eE(t),t)+(4===eE(t).getDay()),e,2)}function rh(t){return t.getDay()}function rd(t,e){return eU(es.count(eE(t)-1,t),e,2)}function ry(t,e){return eU(t.getFullYear()%100,e,2)}function rv(t,e){return eU((t=rf(t)).getFullYear()%100,e,2)}function rb(t,e){return eU(t.getFullYear()%1e4,e,4)}function rm(t,e){var r=t.getDay();return eU((t=r>=4||0===r?eh(t):eh.ceil(t)).getFullYear()%1e4,e,4)}function rg(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+eU(e/60|0,"0",2)+eU(e%60,"0",2)}function rx(t,e){return eU(t.getUTCDate(),e,2)}function rO(t,e){return eU(t.getUTCHours(),e,2)}function rw(t,e){return eU(t.getUTCHours()%12||12,e,2)}function rj(t,e){return eU(1+ea.count(eA(t),t),e,3)}function rS(t,e){return eU(t.getUTCMilliseconds(),e,3)}function rP(t,e){return rS(t,e)+"000"}function rE(t,e){return eU(t.getUTCMonth()+1,e,2)}function rA(t,e){return eU(t.getUTCMinutes(),e,2)}function rk(t,e){return eU(t.getUTCSeconds(),e,2)}function rM(t){var e=t.getUTCDay();return 0===e?7:e}function r_(t,e){return eU(eb.count(eA(t)-1,t),e,2)}function rT(t){var e=t.getUTCDay();return e>=4||0===e?eO(t):eO.ceil(t)}function rC(t,e){return t=rT(t),eU(eO.count(eA(t),t)+(4===eA(t).getUTCDay()),e,2)}function rI(t){return t.getUTCDay()}function rD(t,e){return eU(em.count(eA(t)-1,t),e,2)}function rN(t,e){return eU(t.getUTCFullYear()%100,e,2)}function rB(t,e){return eU((t=rT(t)).getUTCFullYear()%100,e,2)}function rR(t,e){return eU(t.getUTCFullYear()%1e4,e,4)}function rL(t,e){var r=t.getUTCDay();return eU((t=r>=4||0===r?eO(t):eO.ceil(t)).getUTCFullYear()%1e4,e,4)}function rz(){return"+0000"}function rU(){return"%"}function r$(t){return+t}function rF(t){return Math.floor(+t/1e3)}function rW(t){return new Date(t)}function rq(t){return t instanceof Date?+t:+new Date(+t)}function rX(t,e,r,n,o,i,a,u,c,l){var s=tw(),f=s.invert,p=s.domain,h=l(".%L"),d=l(":%S"),y=l("%I:%M"),v=l("%I %p"),b=l("%a %d"),m=l("%b %d"),g=l("%B"),x=l("%Y");function O(t){return(c(t)1)for(var r,n,o,i=1,a=t[e[0]],u=a.length;i=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:r$,s:rF,S:rc,u:rl,U:rs,V:rp,w:rh,W:rd,x:null,X:null,y:ry,Y:rb,Z:rg,"%":rU},x={a:function(t){return a[t.getUTCDay()]},A:function(t){return i[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:rx,e:rx,f:rP,g:rB,G:rL,H:rO,I:rw,j:rj,L:rS,m:rE,M:rA,p:function(t){return o[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:r$,s:rF,S:rk,u:rM,U:r_,V:rC,w:rI,W:rD,x:null,X:null,y:rN,Y:rR,Z:rz,"%":rU},O={a:function(t,e,r){var n=h.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){var n=f.exec(e.slice(r));return n?(t.w=p.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){var n=b.exec(e.slice(r));return n?(t.m=m.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){var n=y.exec(e.slice(r));return n?(t.m=v.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,r,n){return S(t,e,r,n)},d:e0,e:e0,f:e4,g:eK,G:eY,H:e2,I:e2,j:e1,L:e6,m:eQ,M:e5,p:function(t,e,r){var n=l.exec(e.slice(r));return n?(t.p=s.get(n[0].toLowerCase()),r+n[0].length):-1},q:eZ,Q:e9,s:e7,S:e3,u:eX,U:eH,V:eV,w:eq,W:eG,x:function(t,e,n){return S(t,r,e,n)},X:function(t,e,r){return S(t,n,e,r)},y:eK,Y:eY,Z:eJ,"%":e8};function w(t,e){return function(r){var n,o,i,a=[],u=-1,c=0,l=t.length;for(r instanceof Date||(r=new Date(+r));++u53)return null;"w"in i||(i.w=1),"Z"in i?(n=(o=(n=eD(eN(i.y,0,1))).getUTCDay())>4||0===o?em.ceil(n):em(n),n=ea.offset(n,(i.V-1)*7),i.y=n.getUTCFullYear(),i.m=n.getUTCMonth(),i.d=n.getUTCDate()+(i.w+6)%7):(n=(o=(n=eI(eN(i.y,0,1))).getDay())>4||0===o?es.ceil(n):es(n),n=ei.offset(n,(i.V-1)*7),i.y=n.getFullYear(),i.m=n.getMonth(),i.d=n.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),o="Z"in i?eD(eN(i.y,0,1)).getUTCDay():eI(eN(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,eD(i)):eI(i)}}function S(t,e,r,n){for(var o,i,a=0,u=e.length,c=r.length;a=c)return -1;if(37===(o=e.charCodeAt(a++))){if(!(i=O[(o=e.charAt(a++))in eB?e.charAt(a++):o])||(n=i(t,r,n))<0)return -1}else if(o!=r.charCodeAt(n++))return -1}return n}return g.x=w(r,g),g.X=w(n,g),g.c=w(e,g),x.x=w(r,x),x.X=w(n,x),x.c=w(e,x),{format:function(t){var e=w(t+="",g);return e.toString=function(){return t},e},parse:function(t){var e=j(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=j(t+="",!0);return e.toString=function(){return t},e}}}({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"]})).format,u.parse,l=u.utcFormat,u.utcParse;var r2=r(58492),r5=r(51139);function r3(t){for(var e=t.length,r=Array(e);--e>=0;)r[e]=e;return r}function r6(t,e){return t[e]}function r4(t){let e=[];return e.key=t,e}var r8=r(12838),r9=r.n(r8),r7=r(45652),nt=r.n(r7),ne=r(87107),nr=r.n(ne),nn=r(14632),no=r.n(nn),ni=r(24665),na=r.n(ni),nu=r(32292),nc=r.n(nu),nl=r(14607),ns=r.n(nl),nf=r(50801),np=r.n(nf),nh=r(76158),nd=r.n(nh),ny=r(6440),nv=r.n(ny),nb=r(67501),nm=r.n(nb),ng=r(4e3),nx=r.n(ng);function nO(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=e?r.apply(void 0,o):t(e-a,nP(function(){for(var t=arguments.length,e=Array(t),n=0;nt.length)&&(e=t.length);for(var r=0,n=Array(e);rn&&(o=n,i=r),[o,i]}function nL(t,e,r){if(t.lte(0))return new(nx())(0);var n=nC.getDigitCount(t.toNumber()),o=new(nx())(10).pow(n),i=t.div(o),a=1!==n?.05:.1,u=new(nx())(Math.ceil(i.div(a).toNumber())).add(r).mul(a).mul(o);return e?u:new(nx())(Math.ceil(u))}function nz(t,e,r){var n=1,o=new(nx())(t);if(!o.isint()&&r){var i=Math.abs(t);i<1?(n=new(nx())(10).pow(nC.getDigitCount(t)-1),o=new(nx())(Math.floor(o.div(n).toNumber())).mul(n)):i>1&&(o=new(nx())(Math.floor(t)))}else 0===t?o=new(nx())(Math.floor((e-1)/2)):r||(o=new(nx())(Math.floor(t)));var a=Math.floor((e-1)/2);return nM(nk(function(t){return o.add(new(nx())(t-a).mul(n)).toNumber()}),nA)(0,e)}var nU=nT(function(t){var e=nD(t,2),r=e[0],n=e[1],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],a=Math.max(o,2),u=nD(nR([r,n]),2),c=u[0],l=u[1];if(c===-1/0||l===1/0){var s=l===1/0?[c].concat(nI(nA(0,o-1).map(function(){return 1/0}))):[].concat(nI(nA(0,o-1).map(function(){return-1/0})),[l]);return r>n?n_(s):s}if(c===l)return nz(c,o,i);var f=function t(e,r,n,o){var i,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(!Number.isFinite((r-e)/(n-1)))return{step:new(nx())(0),tickMin:new(nx())(0),tickMax:new(nx())(0)};var u=nL(new(nx())(r).sub(e).div(n-1),o,a),c=Math.ceil((i=e<=0&&r>=0?new(nx())(0):(i=new(nx())(e).add(r).div(2)).sub(new(nx())(i).mod(u))).sub(e).div(u).toNumber()),l=Math.ceil(new(nx())(r).sub(i).div(u).toNumber()),s=c+l+1;return s>n?t(e,r,n,o,a+1):(s0?l+(n-s):l,c=r>0?c:c+(n-s)),{step:u,tickMin:i.sub(new(nx())(c).mul(u)),tickMax:i.add(new(nx())(l).mul(u))})}(c,l,a,i),p=f.step,h=f.tickMin,d=f.tickMax,y=nC.rangeStep(h,d.add(new(nx())(.1).mul(p)),p);return r>n?n_(y):y});nT(function(t){var e=nD(t,2),r=e[0],n=e[1],o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],a=Math.max(o,2),u=nD(nR([r,n]),2),c=u[0],l=u[1];if(c===-1/0||l===1/0)return[r,n];if(c===l)return nz(c,o,i);var s=nL(new(nx())(l).sub(c).div(a-1),i,0),f=nM(nk(function(t){return new(nx())(c).add(new(nx())(t).mul(s)).toNumber()}),nA)(0,a).filter(function(t){return t>=c&&t<=l});return r>n?n_(f):f});var n$=nT(function(t,e){var r=nD(t,2),n=r[0],o=r[1],i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],a=nD(nR([n,o]),2),u=a[0],c=a[1];if(u===-1/0||c===1/0)return[n,o];if(u===c)return[u];var l=Math.max(e,2),s=nL(new(nx())(c).sub(u).div(l-1),i,0),f=[].concat(nI(nC.rangeStep(new(nx())(u),new(nx())(c).sub(new(nx())(.99).mul(s)),s)),[c]);return n>o?n_(f):f}),nF=r(73678),nW=r(89952),nq=r(61211),nX=r(20618);function nH(t){return(nH="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function nV(t){return function(t){if(Array.isArray(t))return nG(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return nG(t,void 0);var r=Object.prototype.toString.call(t).slice(8,-1);if("Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return nG(t,void 0)}}(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function nG(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=-1,a=null!==(e=null==r?void 0:r.length)&&void 0!==e?e:0;if(a<=1)return 0;if(o&&"angleAxis"===o.axisType&&1e-6>=Math.abs(Math.abs(o.range[1]-o.range[0])-360))for(var u=o.range,c=0;c0?n[c-1].coordinate:n[a-1].coordinate,s=n[c].coordinate,f=c>=a-1?n[0].coordinate:n[c+1].coordinate,p=void 0;if((0,nW.sA)(s-l)!==(0,nW.sA)(f-s)){var h=[];if((0,nW.sA)(f-s)===(0,nW.sA)(u[1]-u[0])){p=f;var d=s+u[1]-u[0];h[0]=Math.min(d,(d+l)/2),h[1]=Math.max(d,(d+l)/2)}else{p=l;var y=f+u[1]-u[0];h[0]=Math.min(s,(y+s)/2),h[1]=Math.max(s,(y+s)/2)}var v=[Math.min(s,(p+s)/2),Math.max(s,(p+s)/2)];if(t>v[0]&&t<=v[1]||t>=h[0]&&t<=h[1]){i=n[c].index;break}}else{var b=Math.min(l,f),m=Math.max(l,f);if(t>(b+s)/2&&t<=(m+s)/2){i=n[c].index;break}}}else for(var g=0;g0&&g(r[g].coordinate+r[g-1].coordinate)/2&&t<=(r[g].coordinate+r[g+1].coordinate)/2||g===a-1&&t>(r[g].coordinate+r[g-1].coordinate)/2){i=r[g].index;break}return i},n1=function(t){var e,r,n=t.type.displayName,o=null!==(e=t.type)&&void 0!==e&&e.defaultProps?nK(nK({},t.type.defaultProps),t.props):t.props,i=o.stroke,a=o.fill;switch(n){case"Line":r=i;break;case"Area":case"Radar":r=i&&"none"!==i?i:a;break;default:r=a}return r},n2=function(t){var e=t.barSize,r=t.totalSize,n=t.stackGroups,o=void 0===n?{}:n;if(!o)return{};for(var i={},a=Object.keys(o),u=0,c=a.length;u=0});if(v&&v.length){var b=v[0].type.defaultProps,m=void 0!==b?nK(nK({},b),v[0].props):v[0].props,g=m.barSize,x=m[y];i[x]||(i[x]=[]);var O=nr()(g)?e:g;i[x].push({item:v[0],stackList:v.slice(1),barSize:nr()(O)?void 0:(0,nW.F4)(O,r,0)})}}return i},n5=function(t){var e,r=t.barGap,n=t.barCategoryGap,o=t.bandSize,i=t.sizeList,a=void 0===i?[]:i,u=t.maxBarSize,c=a.length;if(c<1)return null;var l=(0,nW.F4)(r,o,0,!0),s=[];if(a[0].barSize===+a[0].barSize){var f=!1,p=o/c,h=a.reduce(function(t,e){return t+e.barSize||0},0);(h+=(c-1)*l)>=o&&(h-=(c-1)*l,l=0),h>=o&&p>0&&(f=!0,p*=.9,h=c*p);var d={offset:((o-h)/2>>0)-l,size:0};e=a.reduce(function(t,e){var r={item:e.item,position:{offset:d.offset+d.size+l,size:f?p:e.barSize}},n=[].concat(nV(t),[r]);return d=n[n.length-1].position,e.stackList&&e.stackList.length&&e.stackList.forEach(function(t){n.push({item:t,position:d})}),n},s)}else{var y=(0,nW.F4)(n,o,0,!0);o-2*y-(c-1)*l<=0&&(l=0);var v=(o-2*y-(c-1)*l)/c;v>1&&(v>>=0);var b=u===+u?Math.min(v,u):v;e=a.reduce(function(t,e,r){var n=[].concat(nV(t),[{item:e.item,position:{offset:y+(v+l)*r+(v-b)/2,size:b}}]);return e.stackList&&e.stackList.length&&e.stackList.forEach(function(t){n.push({item:t,position:n[n.length-1].position})}),n},s)}return e},n3=function(t,e,r,n){var o=r.children,i=r.width,a=r.margin,u=i-(a.left||0)-(a.right||0),c=(0,nX.g)({children:o,legendWidth:u});if(c){var l=n||{},s=l.width,f=l.height,p=c.align,h=c.verticalAlign,d=c.layout;if(("vertical"===d||"horizontal"===d&&"middle"===h)&&"center"!==p&&(0,nW.Et)(t[p]))return nK(nK({},t),{},nJ({},p,t[p]+(s||0)));if(("horizontal"===d||"vertical"===d&&"center"===p)&&"middle"!==h&&(0,nW.Et)(t[h]))return nK(nK({},t),{},nJ({},h,t[h]+(f||0)))}return t},n6=function(t,e,r,n,o){var i=e.props.children,a=(0,nq.aS)(i,nF.u).filter(function(t){var e;return e=t.props.direction,!!nr()(o)||("horizontal"===n?"yAxis"===o:"vertical"===n||"x"===e?"xAxis"===o:"y"!==e||"yAxis"===o)});if(a&&a.length){var u=a.map(function(t){return t.props.dataKey});return t.reduce(function(t,e){var n=nZ(e,r);if(nr()(n))return t;var o=Array.isArray(n)?[nt()(n),r9()(n)]:[n,n],i=u.reduce(function(t,r){var n=nZ(e,r,0),i=o[0]-Math.abs(Array.isArray(n)?n[0]:n),a=o[1]+Math.abs(Array.isArray(n)?n[1]:n);return[Math.min(i,t[0]),Math.max(a,t[1])]},[1/0,-1/0]);return[Math.min(i[0],t[0]),Math.max(i[1],t[1])]},[1/0,-1/0])}return null},n4=function(t,e,r,n,o){var i=e.map(function(e){return n6(t,e,r,o,n)}).filter(function(t){return!nr()(t)});return i&&i.length?i.reduce(function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]},[1/0,-1/0]):null},n8=function(t,e,r,n,o){var i=e.map(function(e){var i=e.props.dataKey;return"number"===r&&i&&n6(t,e,i,n)||nQ(t,i,r,o)});if("number"===r)return i.reduce(function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]},[1/0,-1/0]);var a={};return i.reduce(function(t,e){for(var r=0,n=e.length;r=2?2*(0,nW.sA)(a[0]-a[1])*c:c,e&&(t.ticks||t.niceTicks))?(t.ticks||t.niceTicks).map(function(t){return{coordinate:n(o?o.indexOf(t):t)+c,value:t,offset:c}}).filter(function(t){return!np()(t.coordinate)}):t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(t,e){return{coordinate:n(t)+c,value:t,index:e,offset:c}}):n.ticks&&!r?n.ticks(t.tickCount).map(function(t){return{coordinate:n(t)+c,value:t,offset:c}}):n.domain().map(function(t,e){return{coordinate:n(t)+c,value:o?o[t]:t,index:e,offset:c}})},oe=new WeakMap,or=function(t,e){if("function"!=typeof e)return t;oe.has(t)||oe.set(t,new WeakMap);var r=oe.get(t);if(r.has(e))return r.get(e);var n=function(){t.apply(void 0,arguments),e.apply(void 0,arguments)};return r.set(e,n),n},on=function(t,e,r){var n=t.scale,o=t.type,i=t.layout,a=t.axisType;if("auto"===n)return"radial"===i&&"radiusAxis"===a?{scale:f.A(),realScaleType:"band"}:"radial"===i&&"angleAxis"===a?{scale:tB(),realScaleType:"linear"}:"category"===o&&e&&(e.indexOf("LineChart")>=0||e.indexOf("AreaChart")>=0||e.indexOf("ComposedChart")>=0&&!r)?{scale:f.z(),realScaleType:"point"}:"category"===o?{scale:f.A(),realScaleType:"band"}:{scale:tB(),realScaleType:"linear"};if(na()(n)){var u="scale".concat(nd()(n));return{scale:(s[u]||f.z)(),realScaleType:s[u]?u:"point"}}return no()(n)?{scale:n}:{scale:f.z(),realScaleType:"point"}},oo=function(t){var e=t.domain();if(e&&!(e.length<=2)){var r=e.length,n=t.range(),o=Math.min(n[0],n[1])-1e-4,i=Math.max(n[0],n[1])+1e-4,a=t(e[0]),u=t(e[r-1]);(ai||ui)&&t.domain([e[0],e[r-1]])}},oi=function(t,e){if(!t)return null;for(var r=0,n=t.length;rn)&&(o[1]=n),o[0]>n&&(o[0]=n),o[1]=0?(t[a][r][0]=o,t[a][r][1]=o+u,o=t[a][r][1]):(t[a][r][0]=i,t[a][r][1]=i+u,i=t[a][r][1])}},expand:function(t,e){if((n=t.length)>0){for(var r,n,o,i=0,a=t[0].length;i0){for(var r,n=0,o=t[e[0]],i=o.length;n0&&(n=(r=t[e[0]]).length)>0){for(var r,n,o,i=0,a=1;a=0?(t[i][r][0]=o,t[i][r][1]=o+a,o=t[i][r][1]):(t[i][r][0]=0,t[i][r][1]=0)}}},oc=function(t,e,r){var n=e.map(function(t){return t.props.dataKey}),o=ou[r];return(function(){var t=(0,r5.A)([]),e=r3,r=r1,n=r6;function o(o){var i,a,u=Array.from(t.apply(this,arguments),r4),c=u.length,l=-1;for(let t of o)for(i=0,++l;i=0?0:o<0?o:n}return r[0]},od=function(t,e){var r,n=(null!==(r=t.type)&&void 0!==r&&r.defaultProps?nK(nK({},t.type.defaultProps),t.props):t.props).stackId;if((0,nW.vh)(n)){var o=e[n];if(o){var i=o.items.indexOf(t);return i>=0?o.stackedData[i]:null}}return null},oy=function(t,e,r){return Object.keys(t).reduce(function(n,o){var i=t[o].stackedData.reduce(function(t,n){var o=n.slice(e,r+1).reduce(function(t,e){return[nt()(e.concat([t[0]]).filter(nW.Et)),r9()(e.concat([t[1]]).filter(nW.Et))]},[1/0,-1/0]);return[Math.min(t[0],o[0]),Math.max(t[1],o[1])]},[1/0,-1/0]);return[Math.min(i[0],n[0]),Math.max(i[1],n[1])]},[1/0,-1/0]).map(function(t){return t===1/0||t===-1/0?0:t})},ov=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,ob=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,om=function(t,e,r){if(no()(t))return t(e,r);if(!Array.isArray(t))return e;var n=[];if((0,nW.Et)(t[0]))n[0]=r?t[0]:Math.min(t[0],e[0]);else if(ov.test(t[0])){var o=+ov.exec(t[0])[1];n[0]=e[0]-o}else no()(t[0])?n[0]=t[0](e[0]):n[0]=e[0];if((0,nW.Et)(t[1]))n[1]=r?t[1]:Math.max(t[1],e[1]);else if(ob.test(t[1])){var i=+ob.exec(t[1])[1];n[1]=e[1]+i}else no()(t[1])?n[1]=t[1](e[1]):n[1]=e[1];return n},og=function(t,e,r){if(t&&t.scale&&t.scale.bandwidth){var n=t.scale.bandwidth();if(!r||n>0)return n}if(t&&e&&e.length>=2){for(var o=nm()(e,function(t){return t.coordinate}),i=1/0,a=1,u=o.length;a{"use strict";r.d(e,{A3:()=>f,Pu:()=>s});var n=r(95392);function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function a(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};if(null==t||n.m.isSsr)return{width:0,height:0};var o=(Object.keys(e=a({},r)).forEach(function(t){e[t]||delete e[t]}),e),i=JSON.stringify({text:t,copyStyle:o});if(u.widthCache[i])return u.widthCache[i];try{var s=document.getElementById(l);s||((s=document.createElement("span")).setAttribute("id",l),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var f=a(a({},c),o);Object.assign(s.style,f),s.textContent="".concat(t);var p=s.getBoundingClientRect(),h={width:p.width,height:p.height};return u.widthCache[i]=h,++u.cacheCount>2e3&&(u.cacheCount=0,u.widthCache={}),h}catch(t){return{width:0,height:0}}},f=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}}},89952:(t,e,r)=>{"use strict";r.d(e,{CG:()=>g,Dj:()=>x,Et:()=>h,F4:()=>b,NF:()=>v,_3:()=>p,eP:()=>O,lX:()=>m,sA:()=>f,vh:()=>d});var n=r(24665),o=r.n(n),i=r(50801),a=r.n(i),u=r(32292),c=r.n(u),l=r(45493),s=r.n(l),f=function(t){return 0===t?0:t>0?1:-1},p=function(t){return o()(t)&&t.indexOf("%")===t.length-1},h=function(t){return s()(t)&&!a()(t)},d=function(t){return h(t)||o()(t)},y=0,v=function(t){var e=++y;return"".concat(t||"").concat(e)},b=function(t,e){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!h(t)&&!o()(t))return n;if(p(t)){var u=t.indexOf("%");r=e*parseFloat(t.slice(0,u))/100}else r=+t;return a()(r)&&(r=n),i&&r>e&&(r=e),r},m=function(t){if(!t)return null;var e=Object.keys(t);return e&&e.length?t[e[0]]:null},g=function(t){if(!Array.isArray(t))return!1;for(var e=t.length,r={},n=0;n{"use strict";r.d(e,{m:()=>n});var n={isSsr:!("undefined"!=typeof window&&window.document&&window.document.createElement&&window.setTimeout),get:function(t){return n[t]},set:function(t,e){if("string"==typeof t)n[t]=e;else{var r=Object.keys(t);r&&r.length&&r.forEach(function(e){n[e]=t[e]})}}}},42228:(t,e,r)=>{"use strict";r.d(e,{R:()=>n});var n=function(t,e){for(var r=arguments.length,n=Array(r>2?r-2:0),o=2;o{"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function i(t){for(var e=1;eu,Kg:()=>a,yy:()=>f}),r(87107),r(20107),r(14632);var a=Math.PI/180,u=function(t,e,r,n){return{x:t+Math.cos(-a*n)*r,y:e+Math.sin(-a*n)*r}},c=function(t,e){var r=t.x,n=t.y;return Math.sqrt(Math.pow(r-e.x,2)+Math.pow(n-e.y,2))},l=function(t,e){var r=t.x,n=t.y,o=e.cx,i=e.cy,a=c({x:r,y:n},{x:o,y:i});if(a<=0)return{radius:a};var u=Math.acos((r-o)/a);return n>i&&(u=2*Math.PI-u),{radius:a,angle:180*u/Math.PI,angleInRadian:u}},s=function(t){var e=t.startAngle,r=t.endAngle,n=Math.min(Math.floor(e/360),Math.floor(r/360));return{startAngle:e-360*n,endAngle:r-360*n}},f=function(t,e){var r,n=l({x:t.x,y:t.y},e),o=n.radius,a=n.angle,u=e.innerRadius,c=e.outerRadius;if(oc)return!1;if(0===o)return!0;var f=s(e),p=f.startAngle,h=f.endAngle,d=a;if(p<=h){for(;d>h;)d-=360;for(;d=p&&d<=h}else{for(;d>p;)d-=360;for(;d=h&&d<=p}return r?i(i({},e),{},{radius:o,angle:d+360*Math.min(Math.floor(e.startAngle/360),Math.floor(e.endAngle/360))}):null}},61211:(t,e,r)=>{"use strict";r.d(e,{AW:()=>L,BU:()=>k,J9:()=>I,Me:()=>M,Mn:()=>j,OV:()=>D,X_:()=>R,aS:()=>A,ee:()=>B,sT:()=>T});var n=r(32292),o=r.n(n),i=r(87107),a=r.n(i),u=r(24665),c=r.n(u),l=r(14632),s=r.n(l),f=r(50683),p=r.n(f),h=r(20107),d=r(55473),y=r(89952),v=r(45707),b=r(35956),m=["children"],g=["children"];function x(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;r[n]=t[n]}return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function O(t){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var w={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"},j=function(t){return"string"==typeof t?t:t?t.displayName||t.name||"Component":""},S=null,P=null,E=function t(e){if(e===S&&Array.isArray(P))return P;var r=[];return h.Children.forEach(e,function(e){a()(e)||((0,d.zv)(e)?r=r.concat(t(e.props.children)):r.push(e))}),P=r,S=e,r};function A(t,e){var r=[],n=[];return n=Array.isArray(e)?e.map(function(t){return j(t)}):[j(e)],E(t).forEach(function(t){var e=o()(t,"type.displayName")||o()(t,"type.name");-1!==n.indexOf(e)&&r.push(t)}),r}function k(t,e){var r=A(t,e);return r&&r[0]}var M=function(t){if(!t||!t.props)return!1;var e=t.props,r=e.width,n=e.height;return!!(0,y.Et)(r)&&!(r<=0)&&!!(0,y.Et)(n)&&!(n<=0)},_=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],T=function(t){return t&&"object"===O(t)&&"clipDot"in t},C=function(t,e,r,n){var o,i=null!==(o=null===b.VU||void 0===b.VU?void 0:b.VU[n])&&void 0!==o?o:[];return!s()(t)&&(n&&i.includes(e)||b.QQ.includes(e))||r&&b.j2.includes(e)},I=function(t,e,r){if(!t||"function"==typeof t||"boolean"==typeof t)return null;var n=t;if((0,h.isValidElement)(t)&&(n=t.props),!p()(n))return null;var o={};return Object.keys(n).forEach(function(t){var i;C(null===(i=n)||void 0===i?void 0:i[t],t,e,r)&&(o[t]=n[t])}),o},D=function t(e,r){if(e===r)return!0;var n=h.Children.count(e);if(n!==h.Children.count(r))return!1;if(0===n)return!0;if(1===n)return N(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r);for(var o=0;o=0)r.push(t);else if(t){var i=j(t.type),a=e[i]||{},u=a.handler,l=a.once;if(u&&(!l||!n[i])){var s=u(t,i,o);r.push(s),n[i]=!0}}}),r},R=function(t){var e=t&&t.type;return e&&w[e]?w[e]:null},L=function(t,e){return E(e).indexOf(t)}},45707:(t,e,r)=>{"use strict";function n(t,e){for(var r in t)if(({}).hasOwnProperty.call(t,r)&&(!({}).hasOwnProperty.call(e,r)||t[r]!==e[r]))return!1;for(var n in e)if(({}).hasOwnProperty.call(e,n)&&!({}).hasOwnProperty.call(t,n))return!1;return!0}r.d(e,{b:()=>n})},20618:(t,e,r)=>{"use strict";r.d(e,{g:()=>l});var n=r(58736),o=r(95492),i=r(61211);function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function c(t){for(var e=1;e{"use strict";r.d(e,{s:()=>u});var n=r(79948),o=r.n(n),i=r(14632),a=r.n(i);function u(t,e,r){return!0===e?o()(t,r):a()(e)?o()(t,e):t}},35956:(t,e,r)=>{"use strict";r.d(e,{QQ:()=>u,VU:()=>l,XC:()=>p,_U:()=>f,j2:()=>s});var n=r(20107),o=r(50683),i=r.n(o);function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var u=["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"],c=["points","pathLength"],l={svg:["viewBox","children"],polygon:c,polyline:c},s=["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"],f=function(t,e){if(!t||"function"==typeof t||"boolean"==typeof t)return null;var r=t;if((0,n.isValidElement)(t)&&(r=t.props),!i()(r))return null;var o={};return Object.keys(r).forEach(function(t){s.includes(t)&&(o[t]=e||function(e){return r[t](r,e)})}),o},p=function(t,e,r){if(!i()(t)||"object"!==a(t))return null;var n=null;return Object.keys(t).forEach(function(o){var i=t[o];s.includes(o)&&"function"==typeof i&&(n||(n={}),n[o]=function(t){return i(e,r,t),null})}),n}},63949:(t,e,r)=>{"use strict";r.d(e,{A:()=>i,z:()=>a});var n=r(87982),o=r(68399);function i(){var t,e,r=(0,o.A)().unknown(void 0),a=r.domain,u=r.range,c=0,l=1,s=!1,f=0,p=0,h=.5;function d(){var r=a().length,n=l{"use strict";function n(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function o(t,e){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof e?this.interpolator(e):this.range(e)}return this}r.d(e,{C:()=>n,K:()=>o})},68399:(t,e,r)=>{"use strict";r.d(e,{A:()=>function t(){var e=new n,r=[],o=[],i=u;function c(t){let n=e.get(t);if(void 0===n){if(i!==u)return i;e.set(t,n=r.push(t)-1)}return o[n%o.length]}return c.domain=function(t){if(!arguments.length)return r.slice();for(let o of(r=[],e=new n,t))e.has(o)||e.set(o,r.push(o)-1);return c},c.range=function(t){return arguments.length?(o=Array.from(t),c):o.slice()},c.unknown=function(t){return arguments.length?(i=t,c):i},c.copy=function(){return t(r,o).unknown(i)},a.C.apply(c,arguments),c},h:()=>u});class n extends Map{constructor(t,e=i){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(let[e,r]of t)this.set(e,r)}get(t){return super.get(o(this,t))}has(t){return super.has(o(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}(this,t))}}function o({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function i(t){return null!==t&&"object"==typeof t?t.valueOf():t}var a=r(87982);let u=Symbol("implicit")},58492:(t,e,r)=>{"use strict";function n(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}r.d(e,{A:()=>n}),Array.prototype.slice},51139:(t,e,r)=>{"use strict";function n(t){return function(){return t}}r.d(e,{A:()=>n})},95327:(t,e,r)=>{"use strict";r.d(e,{i:()=>c});let n=Math.PI,o=2*n,i=o-1e-6;function a(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw Error(`invalid digits: ${t}`);if(e>15)return a;let r=10**e;return function(t){this._+=t[0];for(let e=1,n=t.length;e1e-6){if(Math.abs(f*c-l*s)>1e-6&&i){let h=r-a,d=o-u,y=c*c+l*l,v=Math.sqrt(y),b=Math.sqrt(p),m=i*Math.tan((n-Math.acos((y+p-(h*h+d*d))/(2*v*b)))/2),g=m/b,x=m/v;Math.abs(g-1)>1e-6&&this._append`L${t+g*s},${e+g*f}`,this._append`A${i},${i},0,0,${+(f*h>s*d)},${this._x1=t+x*c},${this._y1=e+x*l}`}else this._append`L${this._x1=t},${this._y1=e}`}}arc(t,e,r,a,u,c){if(t=+t,e=+e,c=!!c,(r=+r)<0)throw Error(`negative radius: ${r}`);let l=r*Math.cos(a),s=r*Math.sin(a),f=t+l,p=e+s,h=1^c,d=c?a-u:u-a;null===this._x1?this._append`M${f},${p}`:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-p)>1e-6)&&this._append`L${f},${p}`,r&&(d<0&&(d=d%o+o),d>i?this._append`A${r},${r},0,1,${h},${t-l},${e-s}A${r},${r},0,1,${h},${this._x1=f},${this._y1=p}`:d>1e-6&&this._append`A${r},${r},0,${+(d>=n)},${h},${this._x1=t+r*Math.cos(u)},${this._y1=e+r*Math.sin(u)}`)}rect(t,e,r,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${r=+r}v${+n}h${-r}Z`}toString(){return this._}}function c(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(null==r)e=null;else{let t=Math.floor(r);if(!(t>=0))throw RangeError(`invalid digits: ${r}`);e=t}return t},()=>new u(e)}u.prototype},45082:(t,e,r)=>{"use strict";function n(t,e){if(!t)throw Error("Invariant failed")}r.d(e,{A:()=>n})}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1630-e6b1d1dfaecf3c1f.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1630-e6b1d1dfaecf3c1f.js new file mode 100644 index 0000000..3cba205 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1630-e6b1d1dfaecf3c1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1630],{39997:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(20107);let o=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),u=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&r.indexOf(e)===t).join(" ")};var i={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"};let l=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:o=24,strokeWidth:l=2,absoluteStrokeWidth:a,className:s="",children:c,iconNode:d,...f}=e;return(0,n.createElement)("svg",{ref:t,...i,width:o,height:o,stroke:r,strokeWidth:a?24*Number(l)/Number(o):l,className:u("lucide",s),...f},[...d.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),a=(e,t)=>{let r=(0,n.forwardRef)((r,i)=>{let{className:a,...s}=r;return(0,n.createElement)(l,{ref:i,iconNode:t,className:u("lucide-".concat(o(e)),a),...s})});return r.displayName="".concat(e),r}},29475:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(39997).A)("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"}]])},94521:(e,t,r)=>{r.d(t,{m:()=>n});function n(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}},45170:(e,t,r)=>{r.d(t,{A:()=>i,q:()=>u});var n=r(20107),o=r(20475);function u(e,t){let r=n.createContext(t),u=e=>{let{children:t,...u}=e,i=n.useMemo(()=>u,Object.values(u));return(0,o.jsx)(r.Provider,{value:i,children:t})};return u.displayName=e+"Provider",[u,function(o){let u=n.useContext(r);if(u)return u;if(void 0!==t)return t;throw Error(`\`${o}\` must be used within \`${e}\``)}]}function i(e,t=[]){let r=[],u=()=>{let t=r.map(e=>n.createContext(e));return function(r){let o=r?.[e]||t;return n.useMemo(()=>({[`__scope${e}`]:{...r,[e]:o}}),[r,o])}};return u.scopeName=e,[function(t,u){let i=n.createContext(u),l=r.length;r=[...r,u];let a=t=>{let{scope:r,children:u,...a}=t,s=r?.[e]?.[l]||i,c=n.useMemo(()=>a,Object.values(a));return(0,o.jsx)(s.Provider,{value:c,children:u})};return a.displayName=t+"Provider",[a,function(r,o){let a=o?.[e]?.[l]||i,s=n.useContext(a);if(s)return s;if(void 0!==u)return u;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return n.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}(u,...t)]}},34544:(e,t,r)=>{r.d(t,{hO:()=>a,sG:()=>l});var n=r(20107),o=r(25642),u=r(61837),i=r(20475),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=n.forwardRef((e,r)=>{let{asChild:n,...o}=e,l=n?u.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.jsx)(l,{...o,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function a(e,t){e&&o.flushSync(()=>e.dispatchEvent(t))}},80982:(e,t,r)=>{r.d(t,{bL:()=>x,zi:()=>N});var n=r(20107),o=r(94521),u=r(64236),i=r(45170),l=r(13061),a=r(65163),s=r(63620),c=r(34544),d=r(20475),f="Switch",[v,p]=(0,i.A)(f),[h,m]=v(f),b=n.forwardRef((e,t)=>{let{__scopeSwitch:r,name:i,checked:a,defaultChecked:s,required:f,disabled:v,value:p="on",onCheckedChange:m,form:b,...y}=e,[w,x]=n.useState(null),N=(0,u.s)(t,e=>x(e)),j=n.useRef(!1),A=!w||b||!!w.closest("form"),[E=!1,C]=(0,l.i)({prop:a,defaultProp:s,onChange:m});return(0,d.jsxs)(h,{scope:r,checked:E,disabled:v,children:[(0,d.jsx)(c.sG.button,{type:"button",role:"switch","aria-checked":E,"aria-required":f,"data-state":g(E),"data-disabled":v?"":void 0,disabled:v,value:p,...y,ref:N,onClick:(0,o.m)(e.onClick,e=>{C(e=>!e),A&&(j.current=e.isPropagationStopped(),j.current||e.stopPropagation())})}),A&&(0,d.jsx)(k,{control:w,bubbles:!j.current,name:i,value:p,checked:E,required:f,disabled:v,form:b,style:{transform:"translateX(-100%)"}})]})});b.displayName=f;var y="SwitchThumb",w=n.forwardRef((e,t)=>{let{__scopeSwitch:r,...n}=e,o=m(y,r);return(0,d.jsx)(c.sG.span,{"data-state":g(o.checked),"data-disabled":o.disabled?"":void 0,...n,ref:t})});w.displayName=y;var k=e=>{let{control:t,checked:r,bubbles:o=!0,...u}=e,i=n.useRef(null),l=(0,a.Z)(r),c=(0,s.X)(t);return n.useEffect(()=>{let e=i.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(l!==r&&t){let n=new Event("click",{bubbles:o});t.call(e,r),e.dispatchEvent(n)}},[l,r,o]),(0,d.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...u,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function g(e){return e?"checked":"unchecked"}var x=b,N=w},46774:(e,t,r)=>{r.d(t,{c:()=>o});var n=r(20107);function o(e){let t=n.useRef(e);return n.useEffect(()=>{t.current=e}),n.useMemo(()=>(...e)=>t.current?.(...e),[])}},13061:(e,t,r)=>{r.d(t,{i:()=>u});var n=r(20107),o=r(46774);function u({prop:e,defaultProp:t,onChange:r=()=>{}}){let[u,i]=function({defaultProp:e,onChange:t}){let r=n.useState(e),[u]=r,i=n.useRef(u),l=(0,o.c)(t);return n.useEffect(()=>{i.current!==u&&(l(u),i.current=u)},[u,i,l]),r}({defaultProp:t,onChange:r}),l=void 0!==e,a=l?e:u,s=(0,o.c)(r);return[a,n.useCallback(t=>{if(l){let r="function"==typeof t?t(e):t;r!==e&&s(r)}else i(t)},[l,e,i,s])]}},54122:(e,t,r)=>{r.d(t,{N:()=>o});var n=r(20107),o=globalThis?.document?n.useLayoutEffect:()=>{}},65163:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(20107);function o(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},63620:(e,t,r)=>{r.d(t,{X:()=>u});var n=r(20107),o=r(54122);function u(e){let[t,r]=n.useState(void 0);return(0,o.N)(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,o;if(!Array.isArray(t)||!t.length)return;let u=t[0];if("borderBoxSize"in u){let e=u.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,o=t.blockSize}else n=e.offsetWidth,o=e.offsetHeight;r({width:n,height:o})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}},29395:(e,t,r)=>{r.d(t,{F:()=>u});let n=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,o=function(){for(var e,t,r=0,n="";rr=>{var u;if((null==t?void 0:t.variants)==null)return o(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:i,defaultVariants:l}=t,a=Object.keys(i).map(e=>{let t=null==r?void 0:r[e],o=null==l?void 0:l[e];if(null===t)return null;let u=n(t)||n(o);return i[e][u]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return o(e,a,null==t?void 0:null===(u=t.compoundVariants)||void 0===u?void 0:u.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...s}[t]):({...l,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1976-1b4abe798e14d132.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1976-1b4abe798e14d132.js new file mode 100644 index 0000000..b644cab --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/1976-1b4abe798e14d132.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1976],{32474:(e,t,n)=>{n.d(t,{N:()=>u});var r=n(20107),o=n(54379),a=n(64236),l=n(61837),i=n(20475);function u(e){let t=e+"CollectionProvider",[n,u]=(0,o.A)(t),[c,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:t,children:n}=e,o=r.useRef(null),a=r.useRef(new Map).current;return(0,i.jsx)(c,{scope:t,itemMap:a,collectionRef:o,children:n})};d.displayName=t;let f=e+"CollectionSlot",p=r.forwardRef((e,t)=>{let{scope:n,children:r}=e,o=s(f,n),u=(0,a.s)(t,o.collectionRef);return(0,i.jsx)(l.DX,{ref:u,children:r})});p.displayName=f;let m=e+"CollectionItemSlot",v="data-radix-collection-item",h=r.forwardRef((e,t)=>{let{scope:n,children:o,...u}=e,c=r.useRef(null),d=(0,a.s)(t,c),f=s(m,n);return r.useEffect(()=>(f.itemMap.set(c,{ref:c,...u}),()=>void f.itemMap.delete(c))),(0,i.jsx)(l.DX,{[v]:"",ref:d,children:o})});return h.displayName=m,[{Provider:d,Slot:p,ItemSlot:h},function(t){let n=s(e+"CollectionConsumer",t);return r.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(v,"]")));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},u]}},76056:(e,t,n)=>{n.d(t,{jH:()=>a});var r=n(20107);n(20475);var o=r.createContext(void 0);function a(e){let t=r.useContext(o);return e||t||"ltr"}},70690:(e,t,n)=>{n.d(t,{H_:()=>tf,UC:()=>tu,YJ:()=>tc,q7:()=>td,VF:()=>tv,JU:()=>ts,ZL:()=>ti,z6:()=>tp,hN:()=>tm,bL:()=>ta,wv:()=>th,Pb:()=>tg,G5:()=>ty,ZP:()=>tw,l9:()=>tl});var r=n(20107),o=n(94521),a=n(64236),l=n(45170),i=n(13061),u=n(34544),c=n(32474),s=n(76056),d=n(55302),f=n(10201),p=n(38573),m=n(72763),v=n(57563),h=n(41913),g=n(54245),w=n(54379),y=n(46774),x=n(20475),b="rovingFocusGroup.onEntryFocus",C={bubbles:!1,cancelable:!0},M="RovingFocusGroup",[R,j,D]=(0,c.N)(M),[k,S]=(0,w.A)(M,[D]),[_,E]=k(M),I=r.forwardRef((e,t)=>(0,x.jsx)(R.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,x.jsx)(R.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,x.jsx)(T,{...e,ref:t})})}));I.displayName=M;var T=r.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:l,loop:c=!1,dir:d,currentTabStopId:f,defaultCurrentTabStopId:p,onCurrentTabStopIdChange:m,onEntryFocus:v,preventScrollOnEntryFocus:h=!1,...g}=e,w=r.useRef(null),M=(0,a.s)(t,w),R=(0,s.jH)(d),[D=null,k]=(0,i.i)({prop:f,defaultProp:p,onChange:m}),[S,E]=r.useState(!1),I=(0,y.c)(v),T=j(n),P=r.useRef(!1),[N,A]=r.useState(0);return r.useEffect(()=>{let e=w.current;if(e)return e.addEventListener(b,I),()=>e.removeEventListener(b,I)},[I]),(0,x.jsx)(_,{scope:n,orientation:l,dir:R,loop:c,currentTabStopId:D,onItemFocus:r.useCallback(e=>k(e),[k]),onItemShiftTab:r.useCallback(()=>E(!0),[]),onFocusableItemAdd:r.useCallback(()=>A(e=>e+1),[]),onFocusableItemRemove:r.useCallback(()=>A(e=>e-1),[]),children:(0,x.jsx)(u.sG.div,{tabIndex:S||0===N?-1:0,"data-orientation":l,...g,ref:M,style:{outline:"none",...e.style},onMouseDown:(0,o.m)(e.onMouseDown,()=>{P.current=!0}),onFocus:(0,o.m)(e.onFocus,e=>{let t=!P.current;if(e.target===e.currentTarget&&t&&!S){let t=new CustomEvent(b,C);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=T().filter(e=>e.focusable);O([e.find(e=>e.active),e.find(e=>e.id===D),...e].filter(Boolean).map(e=>e.ref.current),h)}}P.current=!1}),onBlur:(0,o.m)(e.onBlur,()=>E(!1))})})}),P="RovingFocusGroupItem",N=r.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:a=!0,active:l=!1,tabStopId:i,...c}=e,s=(0,m.B)(),d=i||s,f=E(P,n),p=f.currentTabStopId===d,v=j(n),{onFocusableItemAdd:h,onFocusableItemRemove:g}=f;return r.useEffect(()=>{if(a)return h(),()=>g()},[a,h,g]),(0,x.jsx)(R.ItemSlot,{scope:n,id:d,focusable:a,active:l,children:(0,x.jsx)(u.sG.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...c,ref:t,onMouseDown:(0,o.m)(e.onMouseDown,e=>{a?f.onItemFocus(d):e.preventDefault()}),onFocus:(0,o.m)(e.onFocus,()=>f.onItemFocus(d)),onKeyDown:(0,o.m)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey){f.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=function(e,t,n){var r;let o=(r=e.key,"rtl"!==n?r:"ArrowLeft"===r?"ArrowRight":"ArrowRight"===r?"ArrowLeft":r);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return A[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)n.reverse();else if("prev"===t||"next"===t){"prev"===t&&n.reverse();let r=n.indexOf(e.currentTarget);n=f.loop?function(e,t){return e.map((n,r)=>e[(t+r)%e.length])}(n,r+1):n.slice(r+1)}setTimeout(()=>O(n))}})})})});N.displayName=P;var A={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function O(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}var L=n(61837),F=n(58020),K=n(9543),G=["Enter"," "],B=["ArrowUp","PageDown","End"],U=["ArrowDown","PageUp","Home",...B],V={ltr:[...G,"ArrowRight"],rtl:[...G,"ArrowLeft"]},X={ltr:["ArrowLeft"],rtl:["ArrowRight"]},H="Menu",[z,q,J]=(0,c.N)(H),[Z,Y]=(0,l.A)(H,[J,v.Bk,S]),W=(0,v.Bk)(),Q=S(),[$,ee]=Z(H),[et,en]=Z(H),er=e=>{let{__scopeMenu:t,open:n=!1,children:o,dir:a,onOpenChange:l,modal:i=!0}=e,u=W(t),[c,d]=r.useState(null),f=r.useRef(!1),p=(0,y.c)(l),m=(0,s.jH)(a);return r.useEffect(()=>{let e=()=>{f.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>f.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,x.jsx)(v.bL,{...u,children:(0,x.jsx)($,{scope:t,open:n,onOpenChange:p,content:c,onContentChange:d,children:(0,x.jsx)(et,{scope:t,onClose:r.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:f,dir:m,modal:i,children:o})})})};er.displayName=H;var eo=r.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,o=W(n);return(0,x.jsx)(v.Mz,{...o,...r,ref:t})});eo.displayName="MenuAnchor";var ea="MenuPortal",[el,ei]=Z(ea,{forceMount:void 0}),eu=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:o}=e,a=ee(ea,t);return(0,x.jsx)(el,{scope:t,forceMount:n,children:(0,x.jsx)(g.C,{present:n||a.open,children:(0,x.jsx)(h.Z,{asChild:!0,container:o,children:r})})})};eu.displayName=ea;var ec="MenuContent",[es,ed]=Z(ec),ef=r.forwardRef((e,t)=>{let n=ei(ec,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,a=ee(ec,e.__scopeMenu),l=en(ec,e.__scopeMenu);return(0,x.jsx)(z.Provider,{scope:e.__scopeMenu,children:(0,x.jsx)(g.C,{present:r||a.open,children:(0,x.jsx)(z.Slot,{scope:e.__scopeMenu,children:l.modal?(0,x.jsx)(ep,{...o,ref:t}):(0,x.jsx)(em,{...o,ref:t})})})})}),ep=r.forwardRef((e,t)=>{let n=ee(ec,e.__scopeMenu),l=r.useRef(null),i=(0,a.s)(t,l);return r.useEffect(()=>{let e=l.current;if(e)return(0,F.Eq)(e)},[]),(0,x.jsx)(ev,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),em=r.forwardRef((e,t)=>{let n=ee(ec,e.__scopeMenu);return(0,x.jsx)(ev,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),ev=r.forwardRef((e,t)=>{let{__scopeMenu:n,loop:l=!1,trapFocus:i,onOpenAutoFocus:u,onCloseAutoFocus:c,disableOutsidePointerEvents:s,onEntryFocus:m,onEscapeKeyDown:h,onPointerDownOutside:g,onFocusOutside:w,onInteractOutside:y,onDismiss:b,disableOutsideScroll:C,...M}=e,R=ee(ec,n),j=en(ec,n),D=W(n),k=Q(n),S=q(n),[_,E]=r.useState(null),T=r.useRef(null),P=(0,a.s)(t,T,R.onContentChange),N=r.useRef(0),A=r.useRef(""),O=r.useRef(0),F=r.useRef(null),G=r.useRef("right"),V=r.useRef(0),X=C?K.A:r.Fragment,H=C?{as:L.DX,allowPinchZoom:!0}:void 0,z=e=>{var t,n;let r=A.current+e,o=S().filter(e=>!e.disabled),a=document.activeElement,l=null===(t=o.find(e=>e.ref.current===a))||void 0===t?void 0:t.textValue,i=function(e,t,n){var r;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=(r=Math.max(n?e.indexOf(n):-1,0),e.map((t,n)=>e[(r+n)%e.length]));1===o.length&&(a=a.filter(e=>e!==n));let l=a.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return l!==n?l:void 0}(o.map(e=>e.textValue),r,l),u=null===(n=o.find(e=>e.textValue===i))||void 0===n?void 0:n.ref.current;!function e(t){A.current=t,window.clearTimeout(N.current),""!==t&&(N.current=window.setTimeout(()=>e(""),1e3))}(r),u&&setTimeout(()=>u.focus())};r.useEffect(()=>()=>window.clearTimeout(N.current),[]),(0,f.Oh)();let J=r.useCallback(e=>{var t,n;return G.current===(null===(t=F.current)||void 0===t?void 0:t.side)&&function(e,t){return!!t&&function(e,t){let{x:n,y:r}=e,o=!1;for(let e=0,a=t.length-1;er!=c>r&&n<(u-l)*(r-i)/(c-i)+l&&(o=!o)}return o}({x:e.clientX,y:e.clientY},t)}(e,null===(n=F.current)||void 0===n?void 0:n.area)},[]);return(0,x.jsx)(es,{scope:n,searchRef:A,onItemEnter:r.useCallback(e=>{J(e)&&e.preventDefault()},[J]),onItemLeave:r.useCallback(e=>{var t;J(e)||(null===(t=T.current)||void 0===t||t.focus(),E(null))},[J]),onTriggerLeave:r.useCallback(e=>{J(e)&&e.preventDefault()},[J]),pointerGraceTimerRef:O,onPointerGraceIntentChange:r.useCallback(e=>{F.current=e},[]),children:(0,x.jsx)(X,{...H,children:(0,x.jsx)(p.n,{asChild:!0,trapped:i,onMountAutoFocus:(0,o.m)(u,e=>{var t;e.preventDefault(),null===(t=T.current)||void 0===t||t.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:(0,x.jsx)(d.qW,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:h,onPointerDownOutside:g,onFocusOutside:w,onInteractOutside:y,onDismiss:b,children:(0,x.jsx)(I,{asChild:!0,...k,dir:j.dir,orientation:"vertical",loop:l,currentTabStopId:_,onCurrentTabStopIdChange:E,onEntryFocus:(0,o.m)(m,e=>{j.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,x.jsx)(v.UC,{role:"menu","aria-orientation":"vertical","data-state":eV(R.open),"data-radix-menu-content":"",dir:j.dir,...D,...M,ref:P,style:{outline:"none",...M.style},onKeyDown:(0,o.m)(M.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!n&&r&&z(e.key));let o=T.current;if(e.target!==o||!U.includes(e.key))return;e.preventDefault();let a=S().filter(e=>!e.disabled).map(e=>e.ref.current);B.includes(e.key)&&a.reverse(),function(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}(a)}),onBlur:(0,o.m)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(N.current),A.current="")}),onPointerMove:(0,o.m)(e.onPointerMove,ez(e=>{let t=e.target,n=V.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>V.current?"right":"left";G.current=t,V.current=e.clientX}}))})})})})})})});ef.displayName=ec;var eh=r.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,x.jsx)(u.sG.div,{role:"group",...r,ref:t})});eh.displayName="MenuGroup";var eg=r.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,x.jsx)(u.sG.div,{...r,ref:t})});eg.displayName="MenuLabel";var ew="MenuItem",ey="menu.itemSelect",ex=r.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:l,...i}=e,c=r.useRef(null),s=en(ew,e.__scopeMenu),d=ed(ew,e.__scopeMenu),f=(0,a.s)(t,c),p=r.useRef(!1);return(0,x.jsx)(eb,{...i,ref:f,disabled:n,onClick:(0,o.m)(e.onClick,()=>{let e=c.current;if(!n&&e){let t=new CustomEvent(ey,{bubbles:!0,cancelable:!0});e.addEventListener(ey,e=>null==l?void 0:l(e),{once:!0}),(0,u.hO)(e,t),t.defaultPrevented?p.current=!1:s.onClose()}}),onPointerDown:t=>{var n;null===(n=e.onPointerDown)||void 0===n||n.call(e,t),p.current=!0},onPointerUp:(0,o.m)(e.onPointerUp,e=>{var t;p.current||null===(t=e.currentTarget)||void 0===t||t.click()}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{let t=""!==d.searchRef.current;!n&&(!t||" "!==e.key)&&G.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});ex.displayName=ew;var eb=r.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:l=!1,textValue:i,...c}=e,s=ed(ew,n),d=Q(n),f=r.useRef(null),p=(0,a.s)(t,f),[m,v]=r.useState(!1),[h,g]=r.useState("");return r.useEffect(()=>{let e=f.current;if(e){var t;g((null!==(t=e.textContent)&&void 0!==t?t:"").trim())}},[c.children]),(0,x.jsx)(z.ItemSlot,{scope:n,disabled:l,textValue:null!=i?i:h,children:(0,x.jsx)(N,{asChild:!0,...d,focusable:!l,children:(0,x.jsx)(u.sG.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":l||void 0,"data-disabled":l?"":void 0,...c,ref:p,onPointerMove:(0,o.m)(e.onPointerMove,ez(e=>{l?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,o.m)(e.onPointerLeave,ez(e=>s.onItemLeave(e))),onFocus:(0,o.m)(e.onFocus,()=>v(!0)),onBlur:(0,o.m)(e.onBlur,()=>v(!1))})})})}),eC=r.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...a}=e;return(0,x.jsx)(eE,{scope:e.__scopeMenu,checked:n,children:(0,x.jsx)(ex,{role:"menuitemcheckbox","aria-checked":eX(n)?"mixed":n,...a,ref:t,"data-state":eH(n),onSelect:(0,o.m)(a.onSelect,()=>null==r?void 0:r(!!eX(n)||!n),{checkForDefaultPrevented:!1})})})});eC.displayName="MenuCheckboxItem";var eM="MenuRadioGroup",[eR,ej]=Z(eM,{value:void 0,onValueChange:()=>{}}),eD=r.forwardRef((e,t)=>{let{value:n,onValueChange:r,...o}=e,a=(0,y.c)(r);return(0,x.jsx)(eR,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,x.jsx)(eh,{...o,ref:t})})});eD.displayName=eM;var ek="MenuRadioItem",eS=r.forwardRef((e,t)=>{let{value:n,...r}=e,a=ej(ek,e.__scopeMenu),l=n===a.value;return(0,x.jsx)(eE,{scope:e.__scopeMenu,checked:l,children:(0,x.jsx)(ex,{role:"menuitemradio","aria-checked":l,...r,ref:t,"data-state":eH(l),onSelect:(0,o.m)(r.onSelect,()=>{var e;return null===(e=a.onValueChange)||void 0===e?void 0:e.call(a,n)},{checkForDefaultPrevented:!1})})})});eS.displayName=ek;var e_="MenuItemIndicator",[eE,eI]=Z(e_,{checked:!1}),eT=r.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...o}=e,a=eI(e_,n);return(0,x.jsx)(g.C,{present:r||eX(a.checked)||!0===a.checked,children:(0,x.jsx)(u.sG.span,{...o,ref:t,"data-state":eH(a.checked)})})});eT.displayName=e_;var eP=r.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,x.jsx)(u.sG.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});eP.displayName="MenuSeparator";var eN=r.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,o=W(n);return(0,x.jsx)(v.i3,{...o,...r,ref:t})});eN.displayName="MenuArrow";var eA="MenuSub",[eO,eL]=Z(eA),eF=e=>{let{__scopeMenu:t,children:n,open:o=!1,onOpenChange:a}=e,l=ee(eA,t),i=W(t),[u,c]=r.useState(null),[s,d]=r.useState(null),f=(0,y.c)(a);return r.useEffect(()=>(!1===l.open&&f(!1),()=>f(!1)),[l.open,f]),(0,x.jsx)(v.bL,{...i,children:(0,x.jsx)($,{scope:t,open:o,onOpenChange:f,content:s,onContentChange:d,children:(0,x.jsx)(eO,{scope:t,contentId:(0,m.B)(),triggerId:(0,m.B)(),trigger:u,onTriggerChange:c,children:n})})})};eF.displayName=eA;var eK="MenuSubTrigger",eG=r.forwardRef((e,t)=>{let n=ee(eK,e.__scopeMenu),l=en(eK,e.__scopeMenu),i=eL(eK,e.__scopeMenu),u=ed(eK,e.__scopeMenu),c=r.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:d}=u,f={__scopeMenu:e.__scopeMenu},p=r.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return r.useEffect(()=>p,[p]),r.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),d(null)}},[s,d]),(0,x.jsx)(eo,{asChild:!0,...f,children:(0,x.jsx)(eb,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":eV(n.open),...e,ref:(0,a.t)(t,i.onTriggerChange),onClick:t=>{var r;null===(r=e.onClick)||void 0===r||r.call(e,t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:(0,o.m)(e.onPointerMove,ez(t=>{u.onItemEnter(t),t.defaultPrevented||e.disabled||n.open||c.current||(u.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{n.onOpenChange(!0),p()},100))})),onPointerLeave:(0,o.m)(e.onPointerLeave,ez(e=>{var t,r;p();let o=null===(t=n.content)||void 0===t?void 0:t.getBoundingClientRect();if(o){let t=null===(r=n.content)||void 0===r?void 0:r.dataset.side,a="right"===t,l=o[a?"left":"right"],i=o[a?"right":"left"];u.onPointerGraceIntentChange({area:[{x:e.clientX+(a?-5:5),y:e.clientY},{x:l,y:o.top},{x:i,y:o.top},{x:i,y:o.bottom},{x:l,y:o.bottom}],side:t}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>u.onPointerGraceIntentChange(null),300)}else{if(u.onTriggerLeave(e),e.defaultPrevented)return;u.onPointerGraceIntentChange(null)}})),onKeyDown:(0,o.m)(e.onKeyDown,t=>{let r=""!==u.searchRef.current;if(!e.disabled&&(!r||" "!==t.key)&&V[l.dir].includes(t.key)){var o;n.onOpenChange(!0),null===(o=n.content)||void 0===o||o.focus(),t.preventDefault()}})})})});eG.displayName=eK;var eB="MenuSubContent",eU=r.forwardRef((e,t)=>{let n=ei(ec,e.__scopeMenu),{forceMount:l=n.forceMount,...i}=e,u=ee(ec,e.__scopeMenu),c=en(ec,e.__scopeMenu),s=eL(eB,e.__scopeMenu),d=r.useRef(null),f=(0,a.s)(t,d);return(0,x.jsx)(z.Provider,{scope:e.__scopeMenu,children:(0,x.jsx)(g.C,{present:l||u.open,children:(0,x.jsx)(z.Slot,{scope:e.__scopeMenu,children:(0,x.jsx)(ev,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:f,align:"start",side:"rtl"===c.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var t;c.isUsingKeyboardRef.current&&(null===(t=d.current)||void 0===t||t.focus()),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>{e.target!==s.trigger&&u.onOpenChange(!1)}),onEscapeKeyDown:(0,o.m)(e.onEscapeKeyDown,e=>{c.onClose(),e.preventDefault()}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=X[c.dir].includes(e.key);if(t&&n){var r;u.onOpenChange(!1),null===(r=s.trigger)||void 0===r||r.focus(),e.preventDefault()}})})})})})});function eV(e){return e?"open":"closed"}function eX(e){return"indeterminate"===e}function eH(e){return eX(e)?"indeterminate":e?"checked":"unchecked"}function ez(e){return t=>"mouse"===t.pointerType?e(t):void 0}eU.displayName=eB;var eq="DropdownMenu",[eJ,eZ]=(0,l.A)(eq,[Y]),eY=Y(),[eW,eQ]=eJ(eq),e$=e=>{let{__scopeDropdownMenu:t,children:n,dir:o,open:a,defaultOpen:l,onOpenChange:u,modal:c=!0}=e,s=eY(t),d=r.useRef(null),[f=!1,p]=(0,i.i)({prop:a,defaultProp:l,onChange:u});return(0,x.jsx)(eW,{scope:t,triggerId:(0,m.B)(),triggerRef:d,contentId:(0,m.B)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:c,children:(0,x.jsx)(er,{...s,open:f,onOpenChange:p,dir:o,modal:c,children:n})})};e$.displayName=eq;var e0="DropdownMenuTrigger",e1=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...l}=e,i=eQ(e0,n),c=eY(n);return(0,x.jsx)(eo,{asChild:!0,...c,children:(0,x.jsx)(u.sG.button,{type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...l,ref:(0,a.t)(t,i.triggerRef),onPointerDown:(0,o.m)(e.onPointerDown,e=>{r||0!==e.button||!1!==e.ctrlKey||(i.onOpenToggle(),i.open||e.preventDefault())}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{!r&&(["Enter"," "].includes(e.key)&&i.onOpenToggle(),"ArrowDown"===e.key&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});e1.displayName=e0;var e7=e=>{let{__scopeDropdownMenu:t,...n}=e,r=eY(t);return(0,x.jsx)(eu,{...r,...n})};e7.displayName="DropdownMenuPortal";var e5="DropdownMenuContent",e2=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...a}=e,l=eQ(e5,n),i=eY(n),u=r.useRef(!1);return(0,x.jsx)(ef,{id:l.contentId,"aria-labelledby":l.triggerId,...i,...a,ref:t,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var t;u.current||null===(t=l.triggerRef.current)||void 0===t||t.focus(),u.current=!1,e.preventDefault()}),onInteractOutside:(0,o.m)(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;(!l.modal||r)&&(u.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});e2.displayName=e5;var e4=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eh,{...o,...r,ref:t})});e4.displayName="DropdownMenuGroup";var e3=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eg,{...o,...r,ref:t})});e3.displayName="DropdownMenuLabel";var e6=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(ex,{...o,...r,ref:t})});e6.displayName="DropdownMenuItem";var e9=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eC,{...o,...r,ref:t})});e9.displayName="DropdownMenuCheckboxItem";var e8=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eD,{...o,...r,ref:t})});e8.displayName="DropdownMenuRadioGroup";var te=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eS,{...o,...r,ref:t})});te.displayName="DropdownMenuRadioItem";var tt=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eT,{...o,...r,ref:t})});tt.displayName="DropdownMenuItemIndicator";var tn=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eP,{...o,...r,ref:t})});tn.displayName="DropdownMenuSeparator",r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eN,{...o,...r,ref:t})}).displayName="DropdownMenuArrow";var tr=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eG,{...o,...r,ref:t})});tr.displayName="DropdownMenuSubTrigger";var to=r.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,o=eY(n);return(0,x.jsx)(eU,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});to.displayName="DropdownMenuSubContent";var ta=e$,tl=e1,ti=e7,tu=e2,tc=e4,ts=e3,td=e6,tf=e9,tp=e8,tm=te,tv=tt,th=tn,tg=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:o,defaultOpen:a}=e,l=eY(t),[u=!1,c]=(0,i.i)({prop:r,defaultProp:a,onChange:o});return(0,x.jsx)(eF,{...l,open:u,onOpenChange:c,children:n})},tw=tr,ty=to},92159:(e,t,n)=>{n.d(t,{D:()=>c,N:()=>s});var r=n(20107),o=["light","dark"],a="(prefers-color-scheme: dark)",l="undefined"==typeof window,i=r.createContext(void 0),u={setTheme:e=>{},themes:[]},c=()=>{var e;return null!=(e=r.useContext(i))?e:u},s=e=>r.useContext(i)?e.children:r.createElement(f,{...e}),d=["light","dark"],f=e=>{let{forcedTheme:t,disableTransitionOnChange:n=!1,enableSystem:l=!0,enableColorScheme:u=!0,storageKey:c="theme",themes:s=d,defaultTheme:f=l?"system":"light",attribute:g="data-theme",value:w,children:y,nonce:x}=e,[b,C]=r.useState(()=>m(c,f)),[M,R]=r.useState(()=>m(c)),j=w?Object.values(w):s,D=r.useCallback(e=>{let t=e;if(!t)return;"system"===e&&l&&(t=h());let r=w?w[t]:t,a=n?v():null,i=document.documentElement;if("class"===g?(i.classList.remove(...j),r&&i.classList.add(r)):r?i.setAttribute(g,r):i.removeAttribute(g),u){let e=o.includes(f)?f:null,n=o.includes(t)?t:e;i.style.colorScheme=n}null==a||a()},[]),k=r.useCallback(e=>{let t="function"==typeof e?e(e):e;C(t);try{localStorage.setItem(c,t)}catch(e){}},[t]),S=r.useCallback(e=>{R(h(e)),"system"===b&&l&&!t&&D("system")},[b,t]);r.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(S),S(e),()=>e.removeListener(S)},[S]),r.useEffect(()=>{let e=e=>{e.key===c&&k(e.newValue||f)};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[k]),r.useEffect(()=>{D(null!=t?t:b)},[t,b]);let _=r.useMemo(()=>({theme:b,setTheme:k,forcedTheme:t,resolvedTheme:"system"===b?M:b,themes:l?[...s,"system"]:s,systemTheme:l?M:void 0}),[b,k,t,M,l,s]);return r.createElement(i.Provider,{value:_},r.createElement(p,{forcedTheme:t,disableTransitionOnChange:n,enableSystem:l,enableColorScheme:u,storageKey:c,themes:s,defaultTheme:f,attribute:g,value:w,children:y,attrs:j,nonce:x}),y)},p=r.memo(e=>{let{forcedTheme:t,storageKey:n,attribute:l,enableSystem:i,enableColorScheme:u,defaultTheme:c,value:s,attrs:d,nonce:f}=e,p="system"===c,m="class"===l?"var d=document.documentElement,c=d.classList;".concat("c.remove(".concat(d.map(e=>"'".concat(e,"'")).join(","),")"),";"):"var d=document.documentElement,n='".concat(l,"',s='setAttribute';"),v=u?(o.includes(c)?c:null)?"if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'".concat(c,"'"):"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=s?s[e]:e,a=t?e+"|| ''":"'".concat(r,"'"),i="";return u&&n&&!t&&o.includes(e)&&(i+="d.style.colorScheme = '".concat(e,"';")),"class"===l?t||r?i+="c.add(".concat(a,")"):i+="null":r&&(i+="d[s](n,".concat(a,")")),i},g=t?"!function(){".concat(m).concat(h(t),"}()"):i?"!function(){try{".concat(m,"var e=localStorage.getItem('").concat(n,"');if('system'===e||(!e&&").concat(p,")){var t='").concat(a,"',m=window.matchMedia(t);if(m.media!==t||m.matches){").concat(h("dark"),"}else{").concat(h("light"),"}}else if(e){").concat(s?"var x=".concat(JSON.stringify(s),";"):"").concat(h(s?"x[e]":"e",!0),"}").concat(p?"":"else{"+h(c,!1,!1)+"}").concat(v,"}catch(e){}}()"):"!function(){try{".concat(m,"var e=localStorage.getItem('").concat(n,"');if(e){").concat(s?"var x=".concat(JSON.stringify(s),";"):"").concat(h(s?"x[e]":"e",!0),"}else{").concat(h(c,!1,!1),";}").concat(v,"}catch(t){}}();");return r.createElement("script",{nonce:f,dangerouslySetInnerHTML:{__html:g}})}),m=(e,t)=>{let n;if(!l){try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t}},v=()=>{let e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},h=e=>(e||(e=window.matchMedia(a)),e.matches?"dark":"light")}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/2494-8e5cba9549592786.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/2494-8e5cba9549592786.js new file mode 100644 index 0000000..330bd06 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/2494-8e5cba9549592786.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2494],{39997:(e,t,r)=>{r.d(t,{A:()=>a});var n=r(20107);let o=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),i=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&r.indexOf(e)===t).join(" ")};var u={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"};let l=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:o=24,strokeWidth:l=2,absoluteStrokeWidth:a,className:s="",children:c,iconNode:d,...f}=e;return(0,n.createElement)("svg",{ref:t,...u,width:o,height:o,stroke:r,strokeWidth:a?24*Number(l)/Number(o):l,className:i("lucide",s),...f},[...d.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),a=(e,t)=>{let r=(0,n.forwardRef)((r,u)=>{let{className:a,...s}=r;return(0,n.createElement)(l,{ref:u,iconNode:t,className:i("lucide-".concat(o(e)),a),...s})});return r.displayName="".concat(e),r}},29475:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(39997).A)("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"}]])},91994:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(39997).A)("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"}]])},94521:(e,t,r)=>{r.d(t,{m:()=>n});function n(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}},32713:(e,t,r)=>{r.d(t,{C1:()=>A,bL:()=>x});var n=r(20107),o=r(64236),i=r(45170),u=r(94521),l=r(13061),a=r(65163),s=r(63620),c=r(54245),d=r(34544),f=r(20475),v="Checkbox",[m,p]=(0,i.A)(v),[h,y]=m(v),N=n.forwardRef((e,t)=>{let{__scopeCheckbox:r,name:i,checked:a,defaultChecked:s,required:c,disabled:v,value:m="on",onCheckedChange:p,form:y,...N}=e,[b,w]=n.useState(null),x=(0,o.s)(t,e=>w(e)),A=n.useRef(!1),M=!b||y||!!b.closest("form"),[O=!1,C]=(0,l.i)({prop:a,defaultProp:s,onChange:p}),R=n.useRef(O);return n.useEffect(()=>{let e=null==b?void 0:b.form;if(e){let t=()=>C(R.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[b,C]),(0,f.jsxs)(h,{scope:r,state:O,disabled:v,children:[(0,f.jsx)(d.sG.button,{type:"button",role:"checkbox","aria-checked":k(O)?"mixed":O,"aria-required":c,"data-state":E(O),"data-disabled":v?"":void 0,disabled:v,value:m,...N,ref:x,onKeyDown:(0,u.m)(e.onKeyDown,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,u.m)(e.onClick,e=>{C(e=>!!k(e)||!e),M&&(A.current=e.isPropagationStopped(),A.current||e.stopPropagation())})}),M&&(0,f.jsx)(g,{control:b,bubbles:!A.current,name:i,value:m,checked:O,required:c,disabled:v,form:y,style:{transform:"translateX(-100%)"},defaultChecked:!k(s)&&s})]})});N.displayName=v;var b="CheckboxIndicator",w=n.forwardRef((e,t)=>{let{__scopeCheckbox:r,forceMount:n,...o}=e,i=y(b,r);return(0,f.jsx)(c.C,{present:n||k(i.state)||!0===i.state,children:(0,f.jsx)(d.sG.span,{"data-state":E(i.state),"data-disabled":i.disabled?"":void 0,...o,ref:t,style:{pointerEvents:"none",...e.style}})})});w.displayName=b;var g=e=>{let{control:t,checked:r,bubbles:o=!0,defaultChecked:i,...u}=e,l=n.useRef(null),c=(0,a.Z)(r),d=(0,s.X)(t);n.useEffect(()=>{let e=l.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(c!==r&&t){let n=new Event("click",{bubbles:o});e.indeterminate=k(r),t.call(e,!k(r)&&r),e.dispatchEvent(n)}},[c,r,o]);let v=n.useRef(!k(r)&&r);return(0,f.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:null!=i?i:v.current,...u,tabIndex:-1,ref:l,style:{...e.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function k(e){return"indeterminate"===e}function E(e){return k(e)?"indeterminate":e?"checked":"unchecked"}var x=N,A=w},45170:(e,t,r)=>{r.d(t,{A:()=>u,q:()=>i});var n=r(20107),o=r(20475);function i(e,t){let r=n.createContext(t),i=e=>{let{children:t,...i}=e,u=n.useMemo(()=>i,Object.values(i));return(0,o.jsx)(r.Provider,{value:u,children:t})};return i.displayName=e+"Provider",[i,function(o){let i=n.useContext(r);if(i)return i;if(void 0!==t)return t;throw Error(`\`${o}\` must be used within \`${e}\``)}]}function u(e,t=[]){let r=[],i=()=>{let t=r.map(e=>n.createContext(e));return function(r){let o=r?.[e]||t;return n.useMemo(()=>({[`__scope${e}`]:{...r,[e]:o}}),[r,o])}};return i.scopeName=e,[function(t,i){let u=n.createContext(i),l=r.length;r=[...r,i];let a=t=>{let{scope:r,children:i,...a}=t,s=r?.[e]?.[l]||u,c=n.useMemo(()=>a,Object.values(a));return(0,o.jsx)(s.Provider,{value:c,children:i})};return a.displayName=t+"Provider",[a,function(r,o){let a=o?.[e]?.[l]||u,s=n.useContext(a);if(s)return s;if(void 0!==i)return i;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let o=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return n.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return r.scopeName=t.scopeName,r}(i,...t)]}},54245:(e,t,r)=>{r.d(t,{C:()=>u});var n=r(20107),o=r(64236),i=r(54122),u=e=>{let{present:t,children:r}=e,u=function(e){var t,r;let[o,u]=n.useState(),a=n.useRef({}),s=n.useRef(e),c=n.useRef("none"),[d,f]=(t=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},n.useReducer((e,t)=>{let n=r[e][t];return null!=n?n:e},t));return n.useEffect(()=>{let e=l(a.current);c.current="mounted"===d?e:"none"},[d]),(0,i.N)(()=>{let t=a.current,r=s.current;if(r!==e){let n=c.current,o=l(t);e?f("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?f("UNMOUNT"):r&&n!==o?f("ANIMATION_OUT"):f("UNMOUNT"),s.current=e}},[e,f]),(0,i.N)(()=>{if(o){var e;let t;let r=null!==(e=o.ownerDocument.defaultView)&&void 0!==e?e:window,n=e=>{let n=l(a.current).includes(e.animationName);if(e.target===o&&n&&(f("ANIMATION_END"),!s.current)){let e=o.style.animationFillMode;o.style.animationFillMode="forwards",t=r.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=e)})}},i=e=>{e.target===o&&(c.current=l(a.current))};return o.addEventListener("animationstart",i),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{r.clearTimeout(t),o.removeEventListener("animationstart",i),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}f("ANIMATION_END")},[o,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:n.useCallback(e=>{e&&(a.current=getComputedStyle(e)),u(e)},[])}}(t),a="function"==typeof r?r({present:u.isPresent}):n.Children.only(r),s=(0,o.s)(u.ref,function(e){var t,r;let n=null===(t=Object.getOwnPropertyDescriptor(e.props,"ref"))||void 0===t?void 0:t.get,o=n&&"isReactWarning"in n&&n.isReactWarning;return o?e.ref:(o=(n=null===(r=Object.getOwnPropertyDescriptor(e,"ref"))||void 0===r?void 0:r.get)&&"isReactWarning"in n&&n.isReactWarning)?e.props.ref:e.props.ref||e.ref}(a));return"function"==typeof r||u.isPresent?n.cloneElement(a,{ref:s}):null};function l(e){return(null==e?void 0:e.animationName)||"none"}u.displayName="Presence"},34544:(e,t,r)=>{r.d(t,{hO:()=>a,sG:()=>l});var n=r(20107),o=r(25642),i=r(61837),u=r(20475),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=n.forwardRef((e,r)=>{let{asChild:n,...o}=e,l=n?i.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,u.jsx)(l,{...o,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function a(e,t){e&&o.flushSync(()=>e.dispatchEvent(t))}},46774:(e,t,r)=>{r.d(t,{c:()=>o});var n=r(20107);function o(e){let t=n.useRef(e);return n.useEffect(()=>{t.current=e}),n.useMemo(()=>(...e)=>t.current?.(...e),[])}},13061:(e,t,r)=>{r.d(t,{i:()=>i});var n=r(20107),o=r(46774);function i({prop:e,defaultProp:t,onChange:r=()=>{}}){let[i,u]=function({defaultProp:e,onChange:t}){let r=n.useState(e),[i]=r,u=n.useRef(i),l=(0,o.c)(t);return n.useEffect(()=>{u.current!==i&&(l(i),u.current=i)},[i,u,l]),r}({defaultProp:t,onChange:r}),l=void 0!==e,a=l?e:i,s=(0,o.c)(r);return[a,n.useCallback(t=>{if(l){let r="function"==typeof t?t(e):t;r!==e&&s(r)}else u(t)},[l,e,u,s])]}},54122:(e,t,r)=>{r.d(t,{N:()=>o});var n=r(20107),o=globalThis?.document?n.useLayoutEffect:()=>{}},65163:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(20107);function o(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},63620:(e,t,r)=>{r.d(t,{X:()=>i});var n=r(20107),o=r(54122);function i(e){let[t,r]=n.useState(void 0);return(0,o.N)(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,o;if(!Array.isArray(t)||!t.length)return;let i=t[0];if("borderBoxSize"in i){let e=i.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,o=t.blockSize}else n=e.offsetWidth,o=e.offsetHeight;r({width:n,height:o})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}},29395:(e,t,r)=>{r.d(t,{F:()=>i});let n=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,o=function(){for(var e,t,r=0,n="";rr=>{var i;if((null==t?void 0:t.variants)==null)return o(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:u,defaultVariants:l}=t,a=Object.keys(u).map(e=>{let t=null==r?void 0:r[e],o=null==l?void 0:l[e];if(null===t)return null;let i=n(t)||n(o);return u[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return o(e,a,null==t?void 0:null===(i=t.compoundVariants)||void 0===i?void 0:i.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...s}[t]):({...l,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/3048-a6b509fac24a1f29.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/3048-a6b509fac24a1f29.js new file mode 100644 index 0000000..3fa30be --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/3048-a6b509fac24a1f29.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3048],{54245:(e,t,n)=>{n.d(t,{C:()=>l});var r=n(20107),o=n(64236),i=n(54122),l=e=>{let{present:t,children:n}=e,l=function(e){var t,n;let[o,l]=r.useState(),u=r.useRef({}),s=r.useRef(e),c=r.useRef("none"),[d,p]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return r.useEffect(()=>{let e=a(u.current);c.current="mounted"===d?e:"none"},[d]),(0,i.N)(()=>{let t=u.current,n=s.current;if(n!==e){let r=c.current,o=a(t);e?p("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?p("UNMOUNT"):n&&r!==o?p("ANIMATION_OUT"):p("UNMOUNT"),s.current=e}},[e,p]),(0,i.N)(()=>{if(o){var e;let t;let n=null!==(e=o.ownerDocument.defaultView)&&void 0!==e?e:window,r=e=>{let r=a(u.current).includes(e.animationName);if(e.target===o&&r&&(p("ANIMATION_END"),!s.current)){let e=o.style.animationFillMode;o.style.animationFillMode="forwards",t=n.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=e)})}},i=e=>{e.target===o&&(c.current=a(u.current))};return o.addEventListener("animationstart",i),o.addEventListener("animationcancel",r),o.addEventListener("animationend",r),()=>{n.clearTimeout(t),o.removeEventListener("animationstart",i),o.removeEventListener("animationcancel",r),o.removeEventListener("animationend",r)}}p("ANIMATION_END")},[o,p]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:r.useCallback(e=>{e&&(u.current=getComputedStyle(e)),l(e)},[])}}(t),u="function"==typeof n?n({present:l.isPresent}):r.Children.only(n),s=(0,o.s)(l.ref,function(e){var t,n;let r=null===(t=Object.getOwnPropertyDescriptor(e.props,"ref"))||void 0===t?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?e.ref:(o=(r=null===(n=Object.getOwnPropertyDescriptor(e,"ref"))||void 0===n?void 0:n.get)&&"isReactWarning"in r&&r.isReactWarning)?e.props.ref:e.props.ref||e.ref}(u));return"function"==typeof n||l.isPresent?r.cloneElement(u,{ref:s}):null};function a(e){return(null==e?void 0:e.animationName)||"none"}l.displayName="Presence"},43048:(e,t,n)=>{n.d(t,{Kq:()=>B,UC:()=>H,bL:()=>F,l9:()=>W});var r=n(20107),o=n(94521),i=n(64236),l=n(45170),a=n(55302),u=n(72763),s=n(57563),c=(n(41913),n(54245)),d=n(34544),p=n(61837),f=n(13061),m=n(91475),v=n(20475),[g,x]=(0,l.A)("Tooltip",[s.Bk]),y=(0,s.Bk)(),h="TooltipProvider",w="tooltip.open",[b,T]=g(h),C=e=>{let{__scopeTooltip:t,delayDuration:n=700,skipDelayDuration:o=300,disableHoverableContent:i=!1,children:l}=e,[a,u]=r.useState(!0),s=r.useRef(!1),c=r.useRef(0);return r.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,v.jsx)(b,{scope:t,isOpenDelayed:a,delayDuration:n,onOpen:r.useCallback(()=>{window.clearTimeout(c.current),u(!1)},[]),onClose:r.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>u(!0),o)},[o]),isPointerInTransitRef:s,onPointerInTransitChange:r.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:l})};C.displayName=h;var E="Tooltip",[N,M]=g(E),k=e=>{let{__scopeTooltip:t,children:n,open:o,defaultOpen:i=!1,onOpenChange:l,disableHoverableContent:a,delayDuration:c}=e,d=T(E,e.__scopeTooltip),p=y(t),[m,g]=r.useState(null),x=(0,u.B)(),h=r.useRef(0),b=null!=a?a:d.disableHoverableContent,C=null!=c?c:d.delayDuration,M=r.useRef(!1),[k=!1,O]=(0,f.i)({prop:o,defaultProp:i,onChange:e=>{e?(d.onOpen(),document.dispatchEvent(new CustomEvent(w))):d.onClose(),null==l||l(e)}}),L=r.useMemo(()=>k?M.current?"delayed-open":"instant-open":"closed",[k]),R=r.useCallback(()=>{window.clearTimeout(h.current),M.current=!1,O(!0)},[O]),_=r.useCallback(()=>{window.clearTimeout(h.current),O(!1)},[O]),P=r.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{M.current=!0,O(!0)},C)},[C,O]);return r.useEffect(()=>()=>window.clearTimeout(h.current),[]),(0,v.jsx)(s.bL,{...p,children:(0,v.jsx)(N,{scope:t,contentId:x,open:k,stateAttribute:L,trigger:m,onTriggerChange:g,onTriggerEnter:r.useCallback(()=>{d.isOpenDelayed?P():R()},[d.isOpenDelayed,P,R]),onTriggerLeave:r.useCallback(()=>{b?_():window.clearTimeout(h.current)},[_,b]),onOpen:R,onClose:_,disableHoverableContent:b,children:n})})};k.displayName=E;var O="TooltipTrigger",L=r.forwardRef((e,t)=>{let{__scopeTooltip:n,...l}=e,a=M(O,n),u=T(O,n),c=y(n),p=r.useRef(null),f=(0,i.s)(t,p,a.onTriggerChange),m=r.useRef(!1),g=r.useRef(!1),x=r.useCallback(()=>m.current=!1,[]);return r.useEffect(()=>()=>document.removeEventListener("pointerup",x),[x]),(0,v.jsx)(s.Mz,{asChild:!0,...c,children:(0,v.jsx)(d.sG.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...l,ref:f,onPointerMove:(0,o.m)(e.onPointerMove,e=>{"touch"===e.pointerType||g.current||u.isPointerInTransitRef.current||(a.onTriggerEnter(),g.current=!0)}),onPointerLeave:(0,o.m)(e.onPointerLeave,()=>{a.onTriggerLeave(),g.current=!1}),onPointerDown:(0,o.m)(e.onPointerDown,()=>{m.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:(0,o.m)(e.onFocus,()=>{m.current||a.onOpen()}),onBlur:(0,o.m)(e.onBlur,a.onClose),onClick:(0,o.m)(e.onClick,a.onClose)})})});L.displayName=O;var[R,_]=g("TooltipPortal",{forceMount:void 0}),P="TooltipContent",j=r.forwardRef((e,t)=>{let n=_(P,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,l=M(P,e.__scopeTooltip);return(0,v.jsx)(c.C,{present:r||l.open,children:l.disableHoverableContent?(0,v.jsx)(U,{side:o,...i,ref:t}):(0,v.jsx)(I,{side:o,...i,ref:t})})}),I=r.forwardRef((e,t)=>{let n=M(P,e.__scopeTooltip),o=T(P,e.__scopeTooltip),l=r.useRef(null),a=(0,i.s)(t,l),[u,s]=r.useState(null),{trigger:c,onClose:d}=n,p=l.current,{onPointerInTransitChange:f}=o,m=r.useCallback(()=>{s(null),f(!1)},[f]),g=r.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},o=function(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,r,o,i)){case i:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw Error("unreachable")}}(r,n.getBoundingClientRect());s(function(e){let t=e.slice();return t.sort((e,t)=>e.xt.x?1:e.yt.y?1:0),function(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return(n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y)?t:t.concat(n)}(t)}([...function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}(r,o),...function(e){let{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}(t.getBoundingClientRect())])),f(!0)},[f]);return r.useEffect(()=>()=>m(),[m]),r.useEffect(()=>{if(c&&p){let e=e=>g(e,p),t=e=>g(e,c);return c.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[c,p,g,m]),r.useEffect(()=>{if(u){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=(null==c?void 0:c.contains(t))||(null==p?void 0:p.contains(t)),o=!function(e,t){let{x:n,y:r}=e,o=!1;for(let e=0,i=t.length-1;er!=s>r&&n<(u-l)*(r-a)/(s-a)+l&&(o=!o)}return o}(n,u);r?m():o&&(m(),d())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[c,p,u,d,m]),(0,v.jsx)(U,{...e,ref:a})}),[A,D]=g(E,{isInside:!1}),U=r.forwardRef((e,t)=>{let{__scopeTooltip:n,children:o,"aria-label":i,onEscapeKeyDown:l,onPointerDownOutside:u,...c}=e,d=M(P,n),f=y(n),{onClose:g}=d;return r.useEffect(()=>(document.addEventListener(w,g),()=>document.removeEventListener(w,g)),[g]),r.useEffect(()=>{if(d.trigger){let e=e=>{let t=e.target;(null==t?void 0:t.contains(d.trigger))&&g()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[d.trigger,g]),(0,v.jsx)(a.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:g,children:(0,v.jsxs)(s.UC,{"data-state":d.stateAttribute,...f,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,v.jsx)(p.xV,{children:o}),(0,v.jsx)(A,{scope:n,isInside:!0,children:(0,v.jsx)(m.b,{id:d.contentId,role:"tooltip",children:i||o})})]})})});j.displayName=P;var S="TooltipArrow";r.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,o=y(n);return D(S,n).isInside?null:(0,v.jsx)(s.i3,{...o,...r,ref:t})}).displayName=S;var B=C,F=k,W=L,H=j}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/3662-239bb8b0fc7d6649.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/3662-239bb8b0fc7d6649.js new file mode 100644 index 0000000..4be2faa --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/3662-239bb8b0fc7d6649.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3662],{17799:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("CircleAlert",[["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"}]])},98969:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},32024:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]])},46361:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("Grid2x2",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M12 3v18",key:"108xh3"}]])},26780:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]])},59166:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},1870:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("PencilLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}],["path",{d:"m15 5 3 3",key:"1w25hb"}]])},97801:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("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"}]])},52161:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},51873:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("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"}]])},10528:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(39997).A)("UserRoundPen",[["path",{d:"M2 21a8 8 0 0 1 10.821-7.487",key:"1c8h7z"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}]])},48547:(e,t,n)=>{n.d(t,{Mz:()=>td,UC:()=>tp,ZL:()=>tf,bL:()=>tc,l9:()=>ts});var r,o,a=n(20107);function i(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function l(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function u(...e){return t=>{let n=!1,r=e.map(e=>{let r=l(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t{let{children:n,...r}=e,o=a.Children.toArray(n),i=o.find(m);if(i){let e=i.props.children,n=o.map(t=>t!==i?t:a.Children.count(e)>1?a.Children.only(null):a.isValidElement(e)?e.props.children:null);return(0,f.jsx)(v,{...r,ref:t,children:a.isValidElement(e)?a.cloneElement(e,void 0,n):null})}return(0,f.jsx)(v,{...r,ref:t,children:n})});p.displayName="Slot";var v=a.forwardRef((e,t)=>{let{children:n,...r}=e;if(a.isValidElement(n)){let e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(n=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(n),o=function(e,t){let n={...t};for(let r in t){let o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==a.Fragment&&(o.ref=t?u(t,e):e),a.cloneElement(n,o)}return a.Children.count(n)>1?a.Children.only(null):null});v.displayName="SlotClone";var h=({children:e})=>(0,f.jsx)(f.Fragment,{children:e});function m(e){return a.isValidElement(e)&&e.type===h}var y=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let n=a.forwardRef((e,n)=>{let{asChild:r,...o}=e,a=r?p:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,f.jsx)(a,{...o,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),g=n(46774),w=n(91624),b="dismissableLayer.update",E=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),x=a.forwardRef((e,t)=>{var n,r;let{disableOutsidePointerEvents:l=!1,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:s,onInteractOutside:p,onDismiss:v,...h}=e,m=a.useContext(E),[x,A]=a.useState(null),P=null!==(r=null==x?void 0:x.ownerDocument)&&void 0!==r?r:null===(n=globalThis)||void 0===n?void 0:n.document,[,N]=a.useState({}),R=c(t,e=>A(e)),O=Array.from(m.layers),[M]=[...m.layersWithOutsidePointerEventsDisabled].slice(-1),S=O.indexOf(M),L=x?O.indexOf(x):-1,j=m.layersWithOutsidePointerEventsDisabled.size>0,T=L>=S,D=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null===(t=globalThis)||void 0===t?void 0:t.document,r=(0,g.c)(e),o=a.useRef(!1),i=a.useRef(()=>{});return a.useEffect(()=>{let e=e=>{if(e.target&&!o.current){let t=function(){k("dismissableLayer.pointerDownOutside",r,o,{discrete:!0})},o={originalEvent:e};"touch"===e.pointerType?(n.removeEventListener("click",i.current),i.current=t,n.addEventListener("click",i.current,{once:!0})):t()}else n.removeEventListener("click",i.current);o.current=!1},t=window.setTimeout(()=>{n.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(t),n.removeEventListener("pointerdown",e),n.removeEventListener("click",i.current)}},[n,r]),{onPointerDownCapture:()=>o.current=!0}}(e=>{let t=e.target,n=[...m.branches].some(e=>e.contains(t));!T||n||(null==d||d(e),null==p||p(e),e.defaultPrevented||null==v||v())},P),F=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null===(t=globalThis)||void 0===t?void 0:t.document,r=(0,g.c)(e),o=a.useRef(!1);return a.useEffect(()=>{let e=e=>{e.target&&!o.current&&k("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return n.addEventListener("focusin",e),()=>n.removeEventListener("focusin",e)},[n,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}(e=>{let t=e.target;[...m.branches].some(e=>e.contains(t))||(null==s||s(e),null==p||p(e),e.defaultPrevented||null==v||v())},P);return(0,w.U)(e=>{L!==m.layers.size-1||(null==u||u(e),!e.defaultPrevented&&v&&(e.preventDefault(),v()))},P),a.useEffect(()=>{if(x)return l&&(0===m.layersWithOutsidePointerEventsDisabled.size&&(o=P.body.style.pointerEvents,P.body.style.pointerEvents="none"),m.layersWithOutsidePointerEventsDisabled.add(x)),m.layers.add(x),C(),()=>{l&&1===m.layersWithOutsidePointerEventsDisabled.size&&(P.body.style.pointerEvents=o)}},[x,P,l,m]),a.useEffect(()=>()=>{x&&(m.layers.delete(x),m.layersWithOutsidePointerEventsDisabled.delete(x),C())},[x,m]),a.useEffect(()=>{let e=()=>N({});return document.addEventListener(b,e),()=>document.removeEventListener(b,e)},[]),(0,f.jsx)(y.div,{...h,ref:R,style:{pointerEvents:j?T?"auto":"none":void 0,...e.style},onFocusCapture:i(e.onFocusCapture,F.onFocusCapture),onBlurCapture:i(e.onBlurCapture,F.onBlurCapture),onPointerDownCapture:i(e.onPointerDownCapture,D.onPointerDownCapture)})});function C(){let e=new CustomEvent(b);document.dispatchEvent(e)}function k(e,t,n,r){let{discrete:o}=r,a=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});(t&&a.addEventListener(e,t,{once:!0}),o)?a&&s.flushSync(()=>a.dispatchEvent(i)):a.dispatchEvent(i)}x.displayName="DismissableLayer",a.forwardRef((e,t)=>{let n=a.useContext(E),r=a.useRef(null),o=c(t,r);return a.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,f.jsx)(y.div,{...e,ref:o})}).displayName="DismissableLayerBranch";var A=n(10201),P="focusScope.autoFocusOnMount",N="focusScope.autoFocusOnUnmount",R={bubbles:!1,cancelable:!0},O=a.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...l}=e,[u,d]=a.useState(null),s=(0,g.c)(o),p=(0,g.c)(i),v=a.useRef(null),h=c(t,e=>d(e)),m=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect(()=>{if(r){let e=function(e){if(m.paused||!u)return;let t=e.target;u.contains(t)?v.current=t:L(v.current,{select:!0})},t=function(e){if(m.paused||!u)return;let t=e.relatedTarget;null===t||u.contains(t)||L(v.current,{select:!0})};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&L(u)});return u&&n.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[r,u,m.paused]),a.useEffect(()=>{if(u){j.add(m);let e=document.activeElement;if(!u.contains(e)){let t=new CustomEvent(P,R);u.addEventListener(P,s),u.dispatchEvent(t),t.defaultPrevented||(function(e){let{select:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=document.activeElement;for(let r of e)if(L(r,{select:t}),document.activeElement!==n)return}(M(u).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&L(u))}return()=>{u.removeEventListener(P,s),setTimeout(()=>{let t=new CustomEvent(N,R);u.addEventListener(N,p),u.dispatchEvent(t),t.defaultPrevented||L(null!=e?e:document.body,{select:!0}),u.removeEventListener(N,p),j.remove(m)},0)}}},[u,s,p,m]);let w=a.useCallback(e=>{if(!n&&!r||m.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){let t=e.currentTarget,[r,a]=function(e){let t=M(e);return[S(t,e),S(t.reverse(),e)]}(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&L(a,{select:!0})):(e.preventDefault(),n&&L(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,m.paused]);return(0,f.jsx)(y.div,{tabIndex:-1,...l,ref:h,onKeyDown:w})});function M(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function S(e,t){for(let n of e)if(!function(e,t){let{upTo:n}=t;if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===n||e!==n);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function L(e){let{select:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}O.displayName="FocusScope";var j=function(){let e=[];return{add(t){let n=e[0];t!==n&&(null==n||n.pause()),(e=T(e,t)).unshift(t)},remove(t){var n;null===(n=(e=T(e,t))[0])||void 0===n||n.resume()}}}();function T(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}var D=n(72763),F=n(9895),I=n(84069),W=a.forwardRef((e,t)=>{let{children:n,width:r=10,height:o=5,...a}=e;return(0,f.jsx)(y.svg,{...a,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:(0,f.jsx)("polygon",{points:"0,0 30,0 15,10"})})});W.displayName="Arrow";var U=n(54122),_=n(63620),z="Popper",[B,H]=(0,d.A)(z),[Y,X]=B(z),K=e=>{let{__scopePopper:t,children:n}=e,[r,o]=a.useState(null);return(0,f.jsx)(Y,{scope:t,anchor:r,onAnchorChange:o,children:n})};K.displayName=z;var V="PopperAnchor",Z=a.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...o}=e,i=X(V,n),l=a.useRef(null),u=c(t,l);return a.useEffect(()=>{i.onAnchorChange((null==r?void 0:r.current)||l.current)}),r?null:(0,f.jsx)(y.div,{...o,ref:u})});Z.displayName=V;var q="PopperContent",[G,$]=B(q),J=a.forwardRef((e,t)=>{var n,r,o,i,l,u,d,s;let{__scopePopper:p,side:v="bottom",sideOffset:h=0,align:m="center",alignOffset:w=0,arrowPadding:b=0,avoidCollisions:E=!0,collisionBoundary:x=[],collisionPadding:C=0,sticky:k="partial",hideWhenDetached:A=!1,updatePositionStrategy:P="optimized",onPlaced:N,...R}=e,O=X(q,p),[M,S]=a.useState(null),L=c(t,e=>S(e)),[j,T]=a.useState(null),D=(0,_.X)(j),W=null!==(d=null==D?void 0:D.width)&&void 0!==d?d:0,z=null!==(s=null==D?void 0:D.height)&&void 0!==s?s:0,B="number"==typeof C?C:{top:0,right:0,bottom:0,left:0,...C},H=Array.isArray(x)?x:[x],Y=H.length>0,K={padding:B,boundary:H.filter(en),altBoundary:Y},{refs:V,floatingStyles:Z,placement:$,isPositioned:J,middlewareData:Q}=(0,F.we)({strategy:"fixed",placement:v+("center"!==m?"-"+m:""),whileElementsMounted:function(){for(var e=arguments.length,t=Array(e),n=0;n{let{elements:t,rects:n,availableWidth:r,availableHeight:o}=e,{width:a,height:i}=n.reference,l=t.floating.style;l.setProperty("--radix-popper-available-width","".concat(r,"px")),l.setProperty("--radix-popper-available-height","".concat(o,"px")),l.setProperty("--radix-popper-anchor-width","".concat(a,"px")),l.setProperty("--radix-popper-anchor-height","".concat(i,"px"))}}),j&&(0,F.UE)({element:j,padding:b}),er({arrowWidth:W,arrowHeight:z}),A&&(0,F.jD)({strategy:"referenceHidden",...K})]}),[ee,et]=eo($),ea=(0,g.c)(N);(0,U.N)(()=>{J&&(null==ea||ea())},[J,ea]);let ei=null===(n=Q.arrow)||void 0===n?void 0:n.x,el=null===(r=Q.arrow)||void 0===r?void 0:r.y,eu=(null===(o=Q.arrow)||void 0===o?void 0:o.centerOffset)!==0,[ec,ed]=a.useState();return(0,U.N)(()=>{M&&ed(window.getComputedStyle(M).zIndex)},[M]),(0,f.jsx)("div",{ref:V.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:J?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ec,"--radix-popper-transform-origin":[null===(i=Q.transformOrigin)||void 0===i?void 0:i.x,null===(l=Q.transformOrigin)||void 0===l?void 0:l.y].join(" "),...(null===(u=Q.hide)||void 0===u?void 0:u.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,f.jsx)(G,{scope:p,placedSide:ee,onArrowChange:T,arrowX:ei,arrowY:el,shouldHideArrow:eu,children:(0,f.jsx)(y.div,{"data-side":ee,"data-align":et,...R,ref:L,style:{...R.style,animation:J?void 0:"none"}})})})});J.displayName=q;var Q="PopperArrow",ee={top:"bottom",right:"left",bottom:"top",left:"right"},et=a.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,o=$(Q,n),a=ee[o.placedSide];return(0,f.jsx)("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:(0,f.jsx)(W,{...r,ref:t,style:{...r.style,display:"block"}})})});function en(e){return null!==e}et.displayName=Q;var er=e=>({name:"transformOrigin",options:e,fn(t){var n,r,o,a,i;let{placement:l,rects:u,middlewareData:c}=t,d=(null===(n=c.arrow)||void 0===n?void 0:n.centerOffset)!==0,s=d?0:e.arrowWidth,f=d?0:e.arrowHeight,[p,v]=eo(l),h={start:"0%",center:"50%",end:"100%"}[v],m=(null!==(a=null===(r=c.arrow)||void 0===r?void 0:r.x)&&void 0!==a?a:0)+s/2,y=(null!==(i=null===(o=c.arrow)||void 0===o?void 0:o.y)&&void 0!==i?i:0)+f/2,g="",w="";return"bottom"===p?(g=d?h:"".concat(m,"px"),w="".concat(-f,"px")):"top"===p?(g=d?h:"".concat(m,"px"),w="".concat(u.floating.height+f,"px")):"right"===p?(g="".concat(-f,"px"),w=d?h:"".concat(y,"px")):"left"===p&&(g="".concat(u.floating.width+f,"px"),w=d?h:"".concat(y,"px")),{data:{x:g,y:w}}}});function eo(e){let[t,n="center"]=e.split("-");return[t,n]}var ea=a.forwardRef((e,t)=>{var n,r;let{container:o,...i}=e,[l,u]=a.useState(!1);(0,U.N)(()=>u(!0),[]);let c=o||l&&(null===(r=globalThis)||void 0===r?void 0:null===(n=r.document)||void 0===n?void 0:n.body);return c?s.createPortal((0,f.jsx)(y.div,{...i,ref:t}),c):null});ea.displayName="Portal";var ei=e=>{let{present:t,children:n}=e,r=function(e){var t,n;let[r,o]=a.useState(),i=a.useRef({}),l=a.useRef(e),u=a.useRef("none"),[c,d]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},a.useReducer((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return a.useEffect(()=>{let e=el(i.current);u.current="mounted"===c?e:"none"},[c]),(0,U.N)(()=>{let t=i.current,n=l.current;if(n!==e){let r=u.current,o=el(t);e?d("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?d("UNMOUNT"):n&&r!==o?d("ANIMATION_OUT"):d("UNMOUNT"),l.current=e}},[e,d]),(0,U.N)(()=>{if(r){var e;let t;let n=null!==(e=r.ownerDocument.defaultView)&&void 0!==e?e:window,o=e=>{let o=el(i.current).includes(e.animationName);if(e.target===r&&o&&(d("ANIMATION_END"),!l.current)){let e=r.style.animationFillMode;r.style.animationFillMode="forwards",t=n.setTimeout(()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=e)})}},a=e=>{e.target===r&&(u.current=el(i.current))};return r.addEventListener("animationstart",a),r.addEventListener("animationcancel",o),r.addEventListener("animationend",o),()=>{n.clearTimeout(t),r.removeEventListener("animationstart",a),r.removeEventListener("animationcancel",o),r.removeEventListener("animationend",o)}}d("ANIMATION_END")},[r,d]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:a.useCallback(e=>{e&&(i.current=getComputedStyle(e)),o(e)},[])}}(t),o="function"==typeof n?n({present:r.isPresent}):a.Children.only(n),i=c(r.ref,function(e){var t,n;let r=null===(t=Object.getOwnPropertyDescriptor(e.props,"ref"))||void 0===t?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?e.ref:(o=(r=null===(n=Object.getOwnPropertyDescriptor(e,"ref"))||void 0===n?void 0:n.get)&&"isReactWarning"in r&&r.isReactWarning)?e.props.ref:e.props.ref||e.ref}(o));return"function"==typeof n||r.isPresent?a.cloneElement(o,{ref:i}):null};function el(e){return(null==e?void 0:e.animationName)||"none"}ei.displayName="Presence";var eu=n(13061),ec=n(58020),ed=function(){return(ed=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);ot.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}Object.create,Object.create;var ef=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),ep="width-before-scroll-bar";function ev(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var eh="undefined"!=typeof window?a.useLayoutEffect:a.useEffect,em=new WeakMap;function ey(e){return e}var eg=function(e){void 0===e&&(e={});var t,n,r,o=(void 0===t&&(t=ey),n=[],r=!1,{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:null},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter(function(e){return e!==o})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}});return o.options=ed({async:!0,ssr:!1},e),o}(),ew=function(){},eb=a.forwardRef(function(e,t){var n,r,o,i,l=a.useRef(null),u=a.useState({onScrollCapture:ew,onWheelCapture:ew,onTouchMoveCapture:ew}),c=u[0],d=u[1],s=e.forwardProps,f=e.children,p=e.className,v=e.removeScrollBar,h=e.enabled,m=e.shards,y=e.sideCar,g=e.noIsolation,w=e.inert,b=e.allowPinchZoom,E=e.as,x=e.gapMode,C=es(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),k=(n=[l,t],r=function(e){return n.forEach(function(t){return ev(t,e)})},(o=(0,a.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,i=o.facade,eh(function(){var e=em.get(i);if(e){var t=new Set(e),r=new Set(n),o=i.current;t.forEach(function(e){r.has(e)||ev(e,null)}),r.forEach(function(e){t.has(e)||ev(e,o)})}em.set(i,n)},[n]),i),A=ed(ed({},C),c);return a.createElement(a.Fragment,null,h&&a.createElement(y,{sideCar:eg,removeScrollBar:v,shards:m,noIsolation:g,inert:w,setCallbacks:d,allowPinchZoom:!!b,lockRef:l,gapMode:x}),s?a.cloneElement(a.Children.only(f),ed(ed({},A),{ref:k})):a.createElement(void 0===E?"div":E,ed({},A,{className:p,ref:k}),f))});eb.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},eb.classNames={fullWidth:ep,zeroRight:ef};var eE=function(e){var t=e.sideCar,n=es(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return a.createElement(r,ed({},n))};eE.isSideCarExport=!0;var ex=n(91059),eC=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=(0,ex.m)();return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ek=function(){var e=eC();return function(t,n){a.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},eA=function(){var e=ek();return function(t){return e(t.styles,t.dynamic),null}},eP={left:0,top:0,right:0,gap:0},eN=function(e){return parseInt(e||"",10)||0},eR=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[eN(n),eN(r),eN(o)]},eO=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return eP;var t=eR(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},eM=eA(),eS="data-scroll-locked",eL=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(l,"px ").concat(r,";\n }\n body[").concat(eS,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(l,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(ef," {\n right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(ep," {\n margin-right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(ef," .").concat(ef," {\n right: 0 ").concat(r,";\n }\n \n .").concat(ep," .").concat(ep," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(eS,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n }\n")},ej=function(){var e=parseInt(document.body.getAttribute(eS)||"0",10);return isFinite(e)?e:0},eT=function(){a.useEffect(function(){return document.body.setAttribute(eS,(ej()+1).toString()),function(){var e=ej()-1;e<=0?document.body.removeAttribute(eS):document.body.setAttribute(eS,e.toString())}},[])},eD=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;eT();var i=a.useMemo(function(){return eO(o)},[o]);return a.createElement(eM,{styles:eL(i,!t,o,n?"":"!important")})},eF=!1;if("undefined"!=typeof window)try{var eI=Object.defineProperty({},"passive",{get:function(){return eF=!0,!0}});window.addEventListener("test",eI,eI),window.removeEventListener("test",eI,eI)}catch(e){eF=!1}var eW=!!eF&&{passive:!1},eU=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&"TEXTAREA"!==e.tagName&&"visible"===n[t])},e_=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),ez(e,r)){var o=eB(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},ez=function(e,t){return"v"===e?eU(t,"overflowY"):eU(t,"overflowX")},eB=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},eH=function(e,t,n,r,o){var a,i=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),l=i*r,u=n.target,c=t.contains(u),d=!1,s=l>0,f=0,p=0;do{var v=eB(e,u),h=v[0],m=v[1]-v[2]-i*h;(h||m)&&ez(e,u)&&(f+=m,p+=h),u instanceof ShadowRoot?u=u.host:u=u.parentNode}while(!c&&u!==document.body||c&&(t.contains(u)||t===u));return s&&(o&&1>Math.abs(f)||!o&&l>f)?d=!0:!s&&(o&&1>Math.abs(p)||!o&&-l>p)&&(d=!0),d},eY=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},eX=function(e){return[e.deltaX,e.deltaY]},eK=function(e){return e&&"current"in e?e.current:e},eV=0,eZ=[];let eq=(r=function(e){var t=a.useRef([]),n=a.useRef([0,0]),r=a.useRef(),o=a.useState(eV++)[0],i=a.useState(eA)[0],l=a.useRef(e);a.useEffect(function(){l.current=e},[e]),a.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;oMath.abs(c)?"h":"v";if("touches"in e&&"h"===s&&"range"===d.type)return!1;var f=e_(s,d);if(!f)return!0;if(f?o=s:(o="v"===s?"h":"v",f=e_(s,d)),!f)return!1;if(!r.current&&"changedTouches"in e&&(u||c)&&(r.current=o),!o)return!0;var p=r.current||o;return eH(p,t,e,"h"===p?u:c,!0)},[]),c=a.useCallback(function(e){if(eZ.length&&eZ[eZ.length-1]===i){var n="deltaY"in e?eX(e):eY(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta)[0]===n[0]&&r[1]===n[1]})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(l.current.shards||[]).map(eK).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?u(e,o[0]):!l.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),d=a.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),s=a.useCallback(function(e){n.current=eY(e),r.current=void 0},[]),f=a.useCallback(function(t){d(t.type,eX(t),t.target,u(t,e.lockRef.current))},[]),p=a.useCallback(function(t){d(t.type,eY(t),t.target,u(t,e.lockRef.current))},[]);a.useEffect(function(){return eZ.push(i),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",c,eW),document.addEventListener("touchmove",c,eW),document.addEventListener("touchstart",s,eW),function(){eZ=eZ.filter(function(e){return e!==i}),document.removeEventListener("wheel",c,eW),document.removeEventListener("touchmove",c,eW),document.removeEventListener("touchstart",s,eW)}},[]);var v=e.removeScrollBar,h=e.inert;return a.createElement(a.Fragment,null,h?a.createElement(i,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,v?a.createElement(eD,{gapMode:e.gapMode}):null)},eg.useMedium(r),eE);var eG=a.forwardRef(function(e,t){return a.createElement(eb,ed({},e,{ref:t,sideCar:eq}))});eG.classNames=eb.classNames;var e$="Popover",[eJ,eQ]=(0,d.A)(e$,[H]),e0=H(),[e1,e2]=eJ(e$),e9=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:l=!1}=e,u=e0(t),c=a.useRef(null),[d,s]=a.useState(!1),[p=!1,v]=(0,eu.i)({prop:r,defaultProp:o,onChange:i});return(0,f.jsx)(K,{...u,children:(0,f.jsx)(e1,{scope:t,contentId:(0,D.B)(),triggerRef:c,open:p,onOpenChange:v,onOpenToggle:a.useCallback(()=>v(e=>!e),[v]),hasCustomAnchor:d,onCustomAnchorAdd:a.useCallback(()=>s(!0),[]),onCustomAnchorRemove:a.useCallback(()=>s(!1),[]),modal:l,children:n})})};e9.displayName=e$;var e3="PopoverAnchor",e7=a.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,o=e2(e3,n),i=e0(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=o;return a.useEffect(()=>(l(),()=>u()),[l,u]),(0,f.jsx)(Z,{...i,...r,ref:t})});e7.displayName=e3;var e8="PopoverTrigger",e5=a.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,o=e2(e8,n),a=e0(n),l=c(t,o.triggerRef),u=(0,f.jsx)(y.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":tu(o.open),...r,ref:l,onClick:i(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?u:(0,f.jsx)(Z,{asChild:!0,...a,children:u})});e5.displayName=e8;var e6="PopoverPortal",[e4,te]=eJ(e6,{forceMount:void 0}),tt=e=>{let{__scopePopover:t,forceMount:n,children:r,container:o}=e,a=e2(e6,t);return(0,f.jsx)(e4,{scope:t,forceMount:n,children:(0,f.jsx)(ei,{present:n||a.open,children:(0,f.jsx)(ea,{asChild:!0,container:o,children:r})})})};tt.displayName=e6;var tn="PopoverContent",tr=a.forwardRef((e,t)=>{let n=te(tn,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,a=e2(tn,e.__scopePopover);return(0,f.jsx)(ei,{present:r||a.open,children:a.modal?(0,f.jsx)(to,{...o,ref:t}):(0,f.jsx)(ta,{...o,ref:t})})});tr.displayName=tn;var to=a.forwardRef((e,t)=>{let n=e2(tn,e.__scopePopover),r=a.useRef(null),o=c(t,r),l=a.useRef(!1);return a.useEffect(()=>{let e=r.current;if(e)return(0,ec.Eq)(e)},[]),(0,f.jsx)(eG,{as:p,allowPinchZoom:!0,children:(0,f.jsx)(ti,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:i(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),l.current||null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:i(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,r=2===t.button||n;l.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:i(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),ta=a.forwardRef((e,t)=>{let n=e2(tn,e.__scopePopover),r=a.useRef(!1),o=a.useRef(!1);return(0,f.jsx)(ti,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var a,i;null===(a=e.onCloseAutoFocus)||void 0===a||a.call(e,t),t.defaultPrevented||(r.current||null===(i=n.triggerRef.current)||void 0===i||i.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{var a,i;null===(a=e.onInteractOutside)||void 0===a||a.call(e,t),t.defaultPrevented||(r.current=!0,"pointerdown"!==t.detail.originalEvent.type||(o.current=!0));let l=t.target;(null===(i=n.triggerRef.current)||void 0===i?void 0:i.contains(l))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),ti=a.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:c,onInteractOutside:d,...s}=e,p=e2(tn,n),v=e0(n);return(0,A.Oh)(),(0,f.jsx)(O,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:(0,f.jsx)(x,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:d,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:c,onDismiss:()=>p.onOpenChange(!1),children:(0,f.jsx)(J,{"data-state":tu(p.open),role:"dialog",id:p.contentId,...v,...s,ref:t,style:{...s.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),tl="PopoverClose";function tu(e){return e?"open":"closed"}a.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,o=e2(tl,n);return(0,f.jsx)(y.button,{type:"button",...r,ref:t,onClick:i(e.onClick,()=>o.onOpenChange(!1))})}).displayName=tl,a.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,o=e0(n);return(0,f.jsx)(et,{...o,...r,ref:t})}).displayName="PopoverArrow";var tc=e9,td=e7,ts=e5,tf=tt,tp=tr}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/4767-88886265e4e59e78.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/4767-88886265e4e59e78.js new file mode 100644 index 0000000..ed37376 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/4767-88886265e4e59e78.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4767],{83086:(e,t,a)=>{a.d(t,{Lt:()=>I,Rx:()=>V,Zr:()=>q,EO:()=>M,$v:()=>U,ck:()=>F,wd:()=>z,r7:()=>P,tv:()=>k});var r=a(20475),o=a(20107),s=a(45170),n=a(64236),i=a(60241),l=a(94521),d=a(61837),c="AlertDialog",[u,f]=(0,s.A)(c,[i.Hs]),m=(0,i.Hs)(),p=e=>{let{__scopeAlertDialog:t,...a}=e,o=m(t);return(0,r.jsx)(i.bL,{...o,...a,modal:!0})};p.displayName=c;var g=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,...o}=e,s=m(a);return(0,r.jsx)(i.l9,{...s,...o,ref:t})});g.displayName="AlertDialogTrigger";var v=e=>{let{__scopeAlertDialog:t,...a}=e,o=m(t);return(0,r.jsx)(i.ZL,{...o,...a})};v.displayName="AlertDialogPortal";var h=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,...o}=e,s=m(a);return(0,r.jsx)(i.hJ,{...s,...o,ref:t})});h.displayName="AlertDialogOverlay";var y="AlertDialogContent",[x,b]=u(y),w=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,children:s,...c}=e,u=m(a),f=o.useRef(null),p=(0,n.s)(t,f),g=o.useRef(null);return(0,r.jsx)(i.G$,{contentName:y,titleName:A,docsSlug:"alert-dialog",children:(0,r.jsx)(x,{scope:a,cancelRef:g,children:(0,r.jsxs)(i.UC,{role:"alertdialog",...u,...c,ref:p,onOpenAutoFocus:(0,l.m)(c.onOpenAutoFocus,e=>{var t;e.preventDefault(),null===(t=g.current)||void 0===t||t.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,r.jsx)(d.xV,{children:s}),(0,r.jsx)(R,{contentRef:f})]})})})});w.displayName=y;var A="AlertDialogTitle",N=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,...o}=e,s=m(a);return(0,r.jsx)(i.hE,{...s,...o,ref:t})});N.displayName=A;var T="AlertDialogDescription",j=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,...o}=e,s=m(a);return(0,r.jsx)(i.VY,{...s,...o,ref:t})});j.displayName=T;var D=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,...o}=e,s=m(a);return(0,r.jsx)(i.bm,{...s,...o,ref:t})});D.displayName="AlertDialogAction";var S="AlertDialogCancel",E=o.forwardRef((e,t)=>{let{__scopeAlertDialog:a,...o}=e,{cancelRef:s}=b(S,a),l=m(a),d=(0,n.s)(t,s);return(0,r.jsx)(i.bm,{...l,...o,ref:d})});E.displayName=S;var R=e=>{let{contentRef:t}=e,a="`".concat(y,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(y,"` by passing a `").concat(T,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(y,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return o.useEffect(()=>{var e;document.getElementById(null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby"))||console.warn(a)},[a,t]),null},_=a(22250),O=a(42541);let I=p,k=g,C=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,r.jsx)(h,{className:(0,_.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...o,ref:t})});C.displayName=h.displayName;let M=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,r.jsxs)(v,{children:[(0,r.jsx)(C,{}),(0,r.jsx)(w,{ref:t,className:(0,_.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...o})]})});M.displayName=w.displayName;let z=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,_.cn)("flex flex-col space-y-2 text-center sm:text-left",t),...a})};z.displayName="AlertDialogHeader";let F=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,_.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};F.displayName="AlertDialogFooter";let P=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,r.jsx)(N,{ref:t,className:(0,_.cn)("text-lg font-semibold",a),...o})});P.displayName=N.displayName;let U=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,r.jsx)(j,{ref:t,className:(0,_.cn)("text-sm text-muted-foreground",a),...o})});U.displayName=j.displayName;let V=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,r.jsx)(D,{ref:t,className:(0,_.cn)((0,O.r)(),a),...o})});V.displayName=D.displayName;let q=o.forwardRef((e,t)=>{let{className:a,...o}=e;return(0,r.jsx)(E,{ref:t,className:(0,_.cn)((0,O.r)({variant:"outline"}),"mt-2 sm:mt-0",a),...o})});q.displayName=E.displayName},42541:(e,t,a)=>{a.d(t,{$:()=>d,r:()=>l});var r=a(20475),o=a(20107),s=a(61837),n=a(29395),i=a(22250);let l=(0,n.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=o.forwardRef((e,t)=>{let{className:a,variant:o,size:n,asChild:d=!1,...c}=e,u=d?s.DX:"button";return(0,r.jsx)(u,{className:(0,i.cn)(l({variant:o,size:n,className:a})),ref:t,...c})});d.displayName="Button"},32857:(e,t,a)=>{a.d(t,{dj:()=>f,oR:()=>u});var r=a(20107);let o=0,s=new Map,n=e=>{if(s.has(e))return;let t=setTimeout(()=>{s.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);s.set(e,t)},i=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:a}=t;return a?n(a):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===a||void 0===a?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],d={toasts:[]};function c(e){d=i(d,e),l.forEach(e=>{e(d)})}function u(e){let{...t}=e,a=(o=(o+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>c({type:"DISMISS_TOAST",toastId:a});return c({type:"ADD_TOAST",toast:{...t,id:a,open:!0,onOpenChange:e=>{e||r()}}}),{id:a,dismiss:r,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:a}})}}function f(){let[e,t]=r.useState(d);return r.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,a)=>{a.d(t,{cn:()=>s});var r=a(64901),o=a(868);function s(){for(var e=arguments.length,t=Array(e),a=0;a{a.d(t,{A:()=>r});let r=(0,a(39997).A)("Power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]])},88926:(e,t,a)=>{a.d(t,{a:()=>r});let r=async function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;try{var r;let o=e.trim().toUpperCase().startsWith("AT")?e.trim():"AT".concat(e.trim()),s=encodeURIComponent(o),n="/cgi-bin/quecmanager/at_cmd/at_queue_client.sh?command=".concat(s);t&&(n+="&wait=1&timeout=".concat(a));let i=await fetch(n,{method:"GET",headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e3*a+5e3)});if(!i.ok)throw Error("AT command failed with status: ".concat(i.status));let l=await i.json();if(l.error)throw Error("AT queue error: ".concat(l.error));if(t&&(null===(r=l.response)||void 0===r?void 0:r.status)==="timeout")throw Error("AT command timed out after ".concat(a," seconds"));return l}catch(e){throw console.error("AT Command error:",e),e}}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/4873-5583842edaf5c6c5.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/4873-5583842edaf5c6c5.js new file mode 100644 index 0000000..00e8338 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/4873-5583842edaf5c6c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4873],{17799:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("CircleAlert",[["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"}]])},89463:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("CircleArrowDown",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]])},622:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]])},98969:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},14389:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("CirclePlay",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]])},8782:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},10964:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]])},99312:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("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"}]])},7778:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("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"}]])},25262:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},97801:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("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"}]])},90304:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("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"}]])},20633:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("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"}]])},12607:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("TriangleAlert",[["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-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},92823:(t,e,n)=>{n.d(e,{A:()=>r});let r=(0,n(39997).A)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},92776:function(t,e,n){var r=this&&this.__assign||function(){return(r=Object.assign||function(t){for(var e,n=1,r=arguments.length;ne.indexOf(r)&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(t);ae.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(n[r[a]]=t[r[a]]);return n};Object.defineProperty(e,"__esModule",{value:!0});var c=o(n(20107)),u=n(22184),s=n(30120),d=[(0,s.createAnimation)("PropagateLoader","25% {transform: translateX(-".concat(1,"rem) scale(0.75)}\n 50% {transform: translateX(-").concat(3,"rem) scale(0.6)}\n 75% {transform: translateX(-").concat(5,"rem) scale(0.5)}\n 95% {transform: translateX(0rem) scale(1)}"),"propogate-0"),(0,s.createAnimation)("PropagateLoader","25% {transform: translateX(-".concat(1,"rem) scale(0.75)}\n 50% {transform: translateX(-").concat(3,"rem) scale(0.6)}\n 75% {transform: translateX(-").concat(3,"rem) scale(0.6)}\n 95% {transform: translateX(0rem) scale(1)}"),"propogate-1"),(0,s.createAnimation)("PropagateLoader","25% {transform: translateX(-".concat(1,"rem) scale(0.75)}\n 75% {transform: translateX(-").concat(1,"rem) scale(0.75)}\n 95% {transform: translateX(0rem) scale(1)}"),"propogate-2"),(0,s.createAnimation)("PropagateLoader","25% {transform: translateX(".concat(1,"rem) scale(0.75)}\n 75% {transform: translateX(").concat(1,"rem) scale(0.75)}\n 95% {transform: translateX(0rem) scale(1)}"),"propogate-3"),(0,s.createAnimation)("PropagateLoader","25% {transform: translateX(".concat(1,"rem) scale(0.75)}\n 50% {transform: translateX(").concat(3,"rem) scale(0.6)}\n 75% {transform: translateX(").concat(3,"rem) scale(0.6)}\n 95% {transform: translateX(0rem) scale(1)}"),"propogate-4"),(0,s.createAnimation)("PropagateLoader","25% {transform: translateX(".concat(1,"rem) scale(0.75)}\n 50% {transform: translateX(").concat(3,"rem) scale(0.6)}\n 75% {transform: translateX(").concat(5,"rem) scale(0.5)}\n 95% {transform: translateX(0rem) scale(1)}"),"propogate-5")];e.default=function(t){var e=t.loading,n=t.color,a=void 0===n?"#000000":n,i=t.speedMultiplier,o=void 0===i?1:i,s=t.cssOverride,f=t.size,p=l(t,["loading","color","speedMultiplier","cssOverride","size"]),m=(0,u.parseLengthAndUnit)(void 0===f?15:f),h=m.value,y=m.unit,v=r({display:"inherit",position:"relative"},void 0===s?{}:s),g=function(t){return{position:"absolute",fontSize:"".concat(h/3).concat(y),width:"".concat(h).concat(y),height:"".concat(h).concat(y),background:a,borderRadius:"50%",animation:"".concat(d[t]," ").concat(1.5/o,"s infinite"),animationFillMode:"forwards"}};return void 0===e||e?c.createElement("span",r({style:v},p),c.createElement("span",{style:g(0)}),c.createElement("span",{style:g(1)}),c.createElement("span",{style:g(2)}),c.createElement("span",{style:g(3)}),c.createElement("span",{style:g(4)}),c.createElement("span",{style:g(5)})):null}},71834:(t,e,n)=>{n.d(e,{A:()=>s});var r=n(20107),a={cm:!0,mm:!0,in:!0,px:!0,pt:!0,pc:!0,em:!0,ex:!0,ch:!0,rem:!0,vw:!0,vh:!0,vmin:!0,vmax:!0,"%":!0};function i(t){var e=function(t){if("number"==typeof t)return{value:t,unit:"px"};var e,n=(t.match(/^[0-9.]*/)||"").toString();e=n.includes(".")?parseFloat(n):parseInt(n,10);var r=(t.match(/[^0-9]*$/)||"").toString();return a[r]?{value:e,unit:r}:(console.warn("React Spinners: ".concat(t," is not a valid css value. Defaulting to ").concat(e,"px.")),{value:e,unit:"px"})}(t);return"".concat(e.value).concat(e.unit)}var o=function(t,e,n){var r="react-spinners-".concat(t,"-").concat(n);if("undefined"==typeof window||!window.document)return r;var a=document.createElement("style");document.head.appendChild(a);var i=a.sheet,o="\n @keyframes ".concat(r," {\n ").concat(e,"\n }\n ");return i&&i.insertRule(o,0),r},l=function(){return(l=Object.assign||function(t){for(var e,n=1,r=arguments.length;ne.indexOf(r)&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,r=Object.getOwnPropertySymbols(t);ae.indexOf(r[a])&&Object.prototype.propertyIsEnumerable.call(t,r[a])&&(n[r[a]]=t[r[a]]);return n},u=[o("PuffLoader","0% {transform: scale(0)} 100% {transform: scale(1.0)}","puff-1"),o("PuffLoader","0% {opacity: 1} 100% {opacity: 0}","puff-2")];let s=function(t){var e=t.loading,n=t.color,a=void 0===n?"#000000":n,o=t.speedMultiplier,s=void 0===o?1:o,d=t.cssOverride,f=t.size,p=void 0===f?60:f,m=c(t,["loading","color","speedMultiplier","cssOverride","size"]),h=l({display:"inherit",position:"relative",width:i(p),height:i(p)},void 0===d?{}:d),y=function(t){return{position:"absolute",height:i(p),width:i(p),border:"thick solid ".concat(a),borderRadius:"50%",opacity:"1",top:"0",left:"0",animationFillMode:"both",animation:"".concat(u[0],", ").concat(u[1]),animationDuration:"".concat(2/s,"s"),animationIterationCount:"infinite",animationTimingFunction:"cubic-bezier(0.165, 0.84, 0.44, 1), cubic-bezier(0.3, 0.61, 0.355, 1)",animationDelay:1===t?"-1s":"0s"}};return void 0===e||e?r.createElement("span",l({style:h},m),r.createElement("span",{style:y(1)}),r.createElement("span",{style:y(2)})):null}},30120:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.createAnimation=void 0,e.createAnimation=function(t,e,n){var r="react-spinners-".concat(t,"-").concat(n);if("undefined"==typeof window||!window.document)return r;var a=document.createElement("style");document.head.appendChild(a);var i=a.sheet,o="\n @keyframes ".concat(r," {\n ").concat(e,"\n }\n ");return i&&i.insertRule(o,0),r}},22184:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.cssValue=e.parseLengthAndUnit=void 0;var n={cm:!0,mm:!0,in:!0,px:!0,pt:!0,pc:!0,em:!0,ex:!0,ch:!0,rem:!0,vw:!0,vh:!0,vmin:!0,vmax:!0,"%":!0};function r(t){if("number"==typeof t)return{value:t,unit:"px"};var e,r=(t.match(/^[0-9.]*/)||"").toString();e=r.includes(".")?parseFloat(r):parseInt(r,10);var a=(t.match(/[^0-9]*$/)||"").toString();return n[a]?{value:e,unit:a}:(console.warn("React Spinners: ".concat(t," is not a valid css value. Defaulting to ").concat(e,"px.")),{value:e,unit:"px"})}e.parseLengthAndUnit=r,e.cssValue=function(t){var e=r(t);return"".concat(e.value).concat(e.unit)}},94005:(t,e,n)=>{n.d(e,{d:()=>D});var r=n(20107),a=n(14632),i=n.n(a),o=n(42228),l=n(89952),c=n(61211),u=n(95492),s=n(62882),d=n(67064),f=n(25161),p=["x1","y1","x2","y2","key"],m=["offset"];function h(t){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function v(t){for(var e=1;e=0)continue;n[r]=t[r]}return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var b=function(t){var e=t.fill;if(!e||"none"===e)return null;var n=t.fillOpacity,a=t.x,i=t.y,o=t.width,l=t.height,c=t.ry;return r.createElement("rect",{x:a,y:i,ry:c,width:o,height:l,stroke:"none",fill:e,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function x(t,e){var n;if(r.isValidElement(t))n=r.cloneElement(t,e);else if(i()(t))n=t(e);else{var a=e.x1,o=e.y1,l=e.x2,u=e.y2,s=e.key,d=w(e,p),f=(0,c.J9)(d,!1),h=(f.offset,w(f,m));n=r.createElement("line",g({},h,{x1:a,y1:o,x2:l,y2:u,fill:"none",key:s}))}return n}function O(t){var e=t.x,n=t.width,a=t.horizontal,i=void 0===a||a,o=t.horizontalPoints;if(!i||!o||!o.length)return null;var l=o.map(function(r,a){return x(i,v(v({},t),{},{x1:e,y1:r,x2:e+n,y2:r,key:"line-".concat(a),index:a}))});return r.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function E(t){var e=t.y,n=t.height,a=t.vertical,i=void 0===a||a,o=t.verticalPoints;if(!i||!o||!o.length)return null;var l=o.map(function(r,a){return x(i,v(v({},t),{},{x1:r,y1:e,x2:r,y2:e+n,key:"line-".concat(a),index:a}))});return r.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function A(t){var e=t.horizontalFill,n=t.fillOpacity,a=t.x,i=t.y,o=t.width,l=t.height,c=t.horizontalPoints,u=t.horizontal;if(!(void 0===u||u)||!e||!e.length)return null;var s=c.map(function(t){return Math.round(t+i-i)}).sort(function(t,e){return t-e});i!==s[0]&&s.unshift(0);var d=s.map(function(t,c){var u=s[c+1]?s[c+1]-t:i+l-t;if(u<=0)return null;var d=c%e.length;return r.createElement("rect",{key:"react-".concat(c),y:t,x:a,height:u,width:o,stroke:"none",fill:e[d],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return r.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function k(t){var e=t.vertical,n=t.verticalFill,a=t.fillOpacity,i=t.x,o=t.y,l=t.width,c=t.height,u=t.verticalPoints;if(!(void 0===e||e)||!n||!n.length)return null;var s=u.map(function(t){return Math.round(t+i-i)}).sort(function(t,e){return t-e});i!==s[0]&&s.unshift(0);var d=s.map(function(t,e){var u=s[e+1]?s[e+1]-t:i+l-t;if(u<=0)return null;var d=e%n.length;return r.createElement("rect",{key:"react-".concat(e),x:t,y:o,width:u,height:c,stroke:"none",fill:n[d],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return r.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var P=function(t,e){var n=t.xAxis,r=t.width,a=t.height,i=t.offset;return(0,u.PW)((0,s.f)(v(v(v({},d.u.defaultProps),n),{},{ticks:(0,u.Rh)(n,!0),viewBox:{x:0,y:0,width:r,height:a}})),i.left,i.left+i.width,e)},S=function(t,e){var n=t.yAxis,r=t.width,a=t.height,i=t.offset;return(0,u.PW)((0,s.f)(v(v(v({},d.u.defaultProps),n),{},{ticks:(0,u.Rh)(n,!0),viewBox:{x:0,y:0,width:r,height:a}})),i.top,i.top+i.height,e)},j={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function D(t){var e,n,a,c,u,s,d=(0,f.yi)(),p=(0,f.rY)(),m=(0,f.hj)(),y=v(v({},t),{},{stroke:null!==(e=t.stroke)&&void 0!==e?e:j.stroke,fill:null!==(n=t.fill)&&void 0!==n?n:j.fill,horizontal:null!==(a=t.horizontal)&&void 0!==a?a:j.horizontal,horizontalFill:null!==(c=t.horizontalFill)&&void 0!==c?c:j.horizontalFill,vertical:null!==(u=t.vertical)&&void 0!==u?u:j.vertical,verticalFill:null!==(s=t.verticalFill)&&void 0!==s?s:j.verticalFill,x:(0,l.Et)(t.x)?t.x:m.left,y:(0,l.Et)(t.y)?t.y:m.top,width:(0,l.Et)(t.width)?t.width:m.width,height:(0,l.Et)(t.height)?t.height:m.height}),w=y.x,x=y.y,D=y.width,T=y.height,R=y.syncWithTicks,C=y.horizontalValues,M=y.verticalValues,N=(0,f.pj)(),L=(0,f.$G)();if(!(0,l.Et)(D)||D<=0||!(0,l.Et)(T)||T<=0||!(0,l.Et)(w)||w!==+w||!(0,l.Et)(x)||x!==+x)return null;var z=y.verticalCoordinatesGenerator||P,F=y.horizontalCoordinatesGenerator||S,I=y.horizontalPoints,B=y.verticalPoints;if((!I||!I.length)&&i()(F)){var W=C&&C.length,_=F({yAxis:L?v(v({},L),{},{ticks:W?C:L.ticks}):void 0,width:d,height:p,offset:m},!!W||R);(0,o.R)(Array.isArray(_),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(h(_),"]")),Array.isArray(_)&&(I=_)}if((!B||!B.length)&&i()(z)){var H=M&&M.length,X=z({xAxis:N?v(v({},N),{},{ticks:H?M:N.ticks}):void 0,width:d,height:p,offset:m},!!H||R);(0,o.R)(Array.isArray(X),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(h(X),"]")),Array.isArray(X)&&(B=X)}return r.createElement("g",{className:"recharts-cartesian-grid"},r.createElement(b,{fill:y.fill,fillOpacity:y.fillOpacity,x:y.x,y:y.y,width:y.width,height:y.height,ry:y.ry}),r.createElement(O,g({},y,{offset:m,horizontalPoints:I,xAxis:N,yAxis:L})),r.createElement(E,g({},y,{offset:m,verticalPoints:B,xAxis:N,yAxis:L})),r.createElement(A,g({},y,{horizontalPoints:I})),r.createElement(k,g({},y,{verticalPoints:B})))}D.displayName="CartesianGrid"},96399:(t,e,n)=>{n.d(e,{N:()=>z});var r=n(20107),a=n(61075),i=n(14632),o=n.n(i),l=n(87107),c=n.n(l),u=n(6440),s=n.n(u),d=n(64901),f=n(60992),p=n(42555),m=n(37819),h=n(58864),y=n(73678),v=n(89952),g=n(61211),w=n(95392),b=n(95492),x=["type","layout","connectNulls","ref"],O=["key"];function E(t){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function A(t,e){if(null==t)return{};var n,r,a=function(t,e){if(null==t)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}function k(){return(k=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=Array(e);nl){u=[].concat(j(r.slice(0,s)),[l-d]);break}var f=u.length%2==0?[0,c]:[c];return[].concat(j(i.repeat(r,o)),j(u),f).map(function(t){return"".concat(t,"px")}).join(", ")}),N(t,"id",(0,v.NF)("recharts-line-")),N(t,"pathRef",function(e){t.mainCurve=e}),N(t,"handleAnimationEnd",function(){t.setState({isAnimationFinished:!0}),t.props.onAnimationEnd&&t.props.onAnimationEnd()}),N(t,"handleAnimationStart",function(){t.setState({isAnimationFinished:!1}),t.props.onAnimationStart&&t.props.onAnimationStart()}),t}return!function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&M(t,e)}(i,t),e=[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var t=this.getTotalLength();this.setState({totalLength:t})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var t=this.getTotalLength();t!==this.state.totalLength&&this.setState({totalLength:t})}}},{key:"getTotalLength",value:function(){var t=this.mainCurve;try{return t&&t.getTotalLength&&t.getTotalLength()||0}catch(t){return 0}}},{key:"renderErrorBar",value:function(t,e){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var n=this.props,a=n.points,i=n.xAxis,o=n.yAxis,l=n.layout,c=n.children,u=(0,g.aS)(c,y.u);if(!u)return null;var s=function(t,e){return{x:t.x,y:t.y,value:t.value,errorVal:(0,b.kr)(t.payload,e)}};return r.createElement(m.W,{clipPath:t?"url(#clipPath-".concat(e,")"):null},u.map(function(t){return r.cloneElement(t,{key:"bar-".concat(t.props.dataKey),data:a,xAxis:i,yAxis:o,layout:l,dataPointFormatter:s})}))}},{key:"renderDots",value:function(t,e,n){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.dot,l=a.points,c=a.dataKey,u=(0,g.J9)(this.props,!1),s=(0,g.J9)(o,!0),d=l.map(function(t,e){var n=S(S(S({key:"dot-".concat(e),r:3},u),s),{},{value:t.value,dataKey:c,cx:t.x,cy:t.y,index:e,payload:t.payload});return i.renderDotItem(o,n)}),f={clipPath:t?"url(#clipPath-".concat(e?"":"dots-").concat(n,")"):null};return r.createElement(m.W,k({className:"recharts-line-dots",key:"dots"},f),d)}},{key:"renderCurveStatically",value:function(t,e,n,a){var i=this.props,o=i.type,l=i.layout,c=i.connectNulls,u=(i.ref,A(i,x)),s=S(S(S({},(0,g.J9)(u,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:e?"url(#clipPath-".concat(n,")"):null,points:t},a),{},{type:o,layout:l,connectNulls:c});return r.createElement(f.I,k({},s,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(t,e){var n=this,i=this.props,o=i.points,l=i.strokeDasharray,c=i.isAnimationActive,u=i.animationBegin,s=i.animationDuration,d=i.animationEasing,f=i.animationId,p=i.animateNewValues,m=i.width,h=i.height,y=this.state,g=y.prevPoints,w=y.totalLength;return r.createElement(a.Ay,{begin:u,duration:s,isActive:c,easing:d,from:{t:0},to:{t:1},key:"line-".concat(f),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(r){var a,i=r.t;if(g){var c=g.length/o.length,u=o.map(function(t,e){var n=Math.floor(e*c);if(g[n]){var r=g[n],a=(0,v.Dj)(r.x,t.x),o=(0,v.Dj)(r.y,t.y);return S(S({},t),{},{x:a(i),y:o(i)})}if(p){var l=(0,v.Dj)(2*m,t.x),u=(0,v.Dj)(h/2,t.y);return S(S({},t),{},{x:l(i),y:u(i)})}return S(S({},t),{},{x:t.x,y:t.y})});return n.renderCurveStatically(u,t,e)}var s=(0,v.Dj)(0,w)(i);if(l){var d="".concat(l).split(/[,\s]+/gim).map(function(t){return parseFloat(t)});a=n.getStrokeDasharray(s,w,d)}else a=n.generateSimpleStrokeDasharray(w,s);return n.renderCurveStatically(o,t,e,{strokeDasharray:a})})}},{key:"renderCurve",value:function(t,e){var n=this.props,r=n.points,a=n.isAnimationActive,i=this.state,o=i.prevPoints,l=i.totalLength;return a&&r&&r.length&&(!o&&l>0||!s()(o,r))?this.renderCurveWithAnimation(t,e):this.renderCurveStatically(r,t,e)}},{key:"render",value:function(){var t,e=this.props,n=e.hide,a=e.dot,i=e.points,o=e.className,l=e.xAxis,u=e.yAxis,s=e.top,f=e.left,p=e.width,y=e.height,v=e.isAnimationActive,w=e.id;if(n||!i||!i.length)return null;var b=this.state.isAnimationFinished,x=1===i.length,O=(0,d.A)("recharts-line",o),E=l&&l.allowDataOverflow,A=u&&u.allowDataOverflow,k=E||A,P=c()(w)?this.id:w,S=null!==(t=(0,g.J9)(a,!1))&&void 0!==t?t:{r:3,strokeWidth:2},j=S.r,D=S.strokeWidth,T=((0,g.sT)(a)?a:{}).clipDot,R=void 0===T||T,C=2*(void 0===j?3:j)+(void 0===D?2:D);return r.createElement(m.W,{className:O},E||A?r.createElement("defs",null,r.createElement("clipPath",{id:"clipPath-".concat(P)},r.createElement("rect",{x:E?f:f-p/2,y:A?s:s-y/2,width:E?p:2*p,height:A?y:2*y})),!R&&r.createElement("clipPath",{id:"clipPath-dots-".concat(P)},r.createElement("rect",{x:f-C/2,y:s-C/2,width:p+C,height:y+C}))):null,!x&&this.renderCurve(k,P),this.renderErrorBar(k,P),(x||a)&&this.renderDots(k,R,P),(!v||b)&&h.Z.renderCallByParent(this.props,i))}}],n=[{key:"getDerivedStateFromProps",value:function(t,e){return t.animationId!==e.prevAnimationId?{prevAnimationId:t.animationId,curPoints:t.points,prevPoints:e.curPoints}:t.points!==e.curPoints?{curPoints:t.points}:null}},{key:"repeat",value:function(t,e){for(var n=t.length%2!=0?[].concat(j(t),[0]):t,r=[],a=0;a{n.d(e,{b:()=>c});var r=n(90805),a=n(96399),i=n(4538),o=n(41797),l=n(98456),c=(0,r.gu)({chartName:"LineChart",GraphicalChild:a.N,axisComponents:[{axisType:"xAxis",AxisComp:i.W},{axisType:"yAxis",AxisComp:o.h}],formatAxisMap:l.pr})},74043:(t,e,n)=>{n.d(e,{A:()=>k});var r=n(20107);function a(t){return"[object Object]"===Object.prototype.toString.call(t)||Array.isArray(t)}function i(t,e){let n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&JSON.stringify(Object.keys(t.breakpoints||{}))===JSON.stringify(Object.keys(e.breakpoints||{}))&&n.every(n=>{let r=t[n],o=e[n];return"function"==typeof r?`${r}`==`${o}`:a(r)&&a(o)?i(r,o):r===o})}function o(t){return t.concat().sort((t,e)=>t.name>e.name?1:-1).map(t=>t.options)}function l(t){return"number"==typeof t}function c(t){return"string"==typeof t}function u(t){return"boolean"==typeof t}function s(t){return"[object Object]"===Object.prototype.toString.call(t)}function d(t){return Math.abs(t)}function f(t){return Math.sign(t)}function p(t){return v(t).map(Number)}function m(t){return t[h(t)]}function h(t){return Math.max(0,t.length-1)}function y(t,e=0){return Array.from(Array(t),(t,n)=>e+n)}function v(t){return Object.keys(t)}function g(t,e){return void 0!==e.MouseEvent&&t instanceof e.MouseEvent}function w(){let t=[],e={add:function(n,r,a,i={passive:!0}){let o;return"addEventListener"in n?(n.addEventListener(r,a,i),o=()=>n.removeEventListener(r,a,i)):(n.addListener(a),o=()=>n.removeListener(a)),t.push(o),e},clear:function(){t=t.filter(t=>t())}};return e}function b(t=0,e=0){let n=d(t-e);function r(n){return ne}return{length:n,max:e,min:t,constrain:function(n){return r(n)?ne},reachedMin:function(e){return e(v(n).forEach(r=>{let a=e[r],i=n[r],o=s(a)&&s(i);e[r]=o?t(a,i):i}),e),{})}(t,e||{})}return{mergeOptions:e,optionsAtMedia:function(n){let r=n.breakpoints||{},a=v(r).filter(e=>t.matchMedia(e).matches).map(t=>r[t]).reduce((t,n)=>e(t,n),{});return e(n,a)},optionsMediaQueries:function(e){return e.map(t=>v(t.breakpoints||{})).reduce((t,e)=>t.concat(e),[]).map(t.matchMedia)}}}(S),D=(k=[],{init:function(t,e){return(k=e.filter(({options:t})=>!1!==j.optionsAtMedia(t).active)).forEach(e=>e.init(t,j)),e.reduce((t,e)=>Object.assign(t,{[e.name]:e}),{})},destroy:function(){k=k.filter(t=>t.destroy())}}),T=w(),R=function(){let t,e={},n={init:function(e){t=e},emit:function(r){return(e[r]||[]).forEach(e=>e(t,r)),n},off:function(t,r){return e[t]=(e[t]||[]).filter(t=>t!==r),n},on:function(t,r){return e[t]=(e[t]||[]).concat([r]),n},clear:function(){e={}}};return n}(),{mergeOptions:C,optionsAtMedia:M,optionsMediaQueries:N}=j,{on:L,off:z,emit:F}=R,I=!1,B=C(E,A.globalOptions),W=C(B),_=[];function H(e,n){!I&&(W=M(B=C(B,e)),_=n||_,function(){let{container:e,slides:n}=W;i=(c(e)?t.querySelector(e):e)||t.children[0];let r=c(n)?i.querySelectorAll(n):n;o=[].slice.call(r||i.children)}(),r=function e(n){let r=function(t,e,n,r,a,i,o){let s,E;let{align:A,axis:k,direction:P,startIndex:S,loop:j,duration:D,dragFree:T,dragThreshold:R,inViewThreshold:C,slidesToScroll:M,skipSnaps:N,containScroll:L,watchResize:z,watchSlides:F,watchDrag:I,watchFocus:B}=i,W={measure:function(t){let{offsetTop:e,offsetLeft:n,offsetWidth:r,offsetHeight:a}=t;return{top:e,right:n+r,bottom:e+a,left:n,width:r,height:a}}},_=W.measure(e),H=n.map(W.measure),X=function(t,e){let n="rtl"===e,r="y"===t,a=!r&&n?-1:1;return{scroll:r?"y":"x",cross:r?"x":"y",startEdge:r?"top":n?"right":"left",endEdge:r?"bottom":n?"left":"right",measureSize:function(t){let{height:e,width:n}=t;return r?e:n},direction:function(t){return t*a}}}(k,P),U=X.measureSize(_),q={measure:function(t){return t/100*U}},V=function(t,e){let n={start:function(){return 0},center:function(t){return(e-t)/2},end:function(t){return e-t}};return{measure:function(r,a){return c(t)?n[t](r):t(e,r,a)}}}(A,U),Y=!j&&!!L,{slideSizes:$,slideSizesWithGaps:G,startGap:J,endGap:K}=function(t,e,n,r,a,i){let{measureSize:o,startEdge:l,endEdge:c}=t,u=n[0]&&a,s=function(){if(!u)return 0;let t=n[0];return d(e[l]-t[l])}(),f=u?parseFloat(i.getComputedStyle(m(r)).getPropertyValue(`margin-${c}`)):0,p=n.map(o),y=n.map((t,e,n)=>{let r=e===h(n);return e?r?p[e]+f:n[e+1][l]-t[l]:p[e]+s}).map(d);return{slideSizes:p,slideSizesWithGaps:y,startGap:s,endGap:f}}(X,_,H,n,j||!!L,a),Z=function(t,e,n,r,a,i,o,c,u){let{startEdge:s,endEdge:f,direction:y}=t,v=l(n);return{groupSlides:function(t){return v?p(t).filter(t=>t%n==0).map(e=>t.slice(e,e+n)):t.length?p(t).reduce((n,l,u)=>{let p=m(n)||0,v=l===h(t),g=a[s]-i[p][s],w=a[s]-i[l][f],b=r||0!==p?0:y(o),x=d(w-(!r&&v?y(c):0)-(g+b));return u&&x>e+2&&n.push(l),v&&n.push(t.length),n},[]).map((e,n,r)=>{let a=Math.max(r[n-1]||0);return t.slice(a,e)}):[]}}}(X,U,M,j,_,H,J,K,0),{snaps:Q,snapsAligned:tt}=function(t,e,n,r,a){let{startEdge:i,endEdge:o}=t,{groupSlides:l}=a,c=l(r).map(t=>m(t)[o]-t[0][i]).map(d).map(e.measure),u=r.map(t=>n[i]-t[i]).map(t=>-d(t)),s=l(u).map(t=>t[0]).map((t,e)=>t+c[e]);return{snaps:u,snapsAligned:s}}(X,V,_,H,Z),te=-m(Q)+m(G),{snapsContained:tn,scrollContainLimit:tr}=function(t,e,n,r,a){let i=b(-e+t,0),o=n.map((t,e)=>{let{min:r,max:a}=i,o=i.constrain(t),l=e===h(n);return e?l||1>d(r-o)?r:1>d(a-o)?a:o:a}).map(t=>parseFloat(t.toFixed(3))),l=function(){let t=o[0],e=m(o);return b(o.lastIndexOf(t),o.indexOf(e)+1)}();return{snapsContained:function(){if(e<=t+2)return[i.max];if("keepSnaps"===r)return o;let{min:n,max:a}=l;return o.slice(n,a)}(),scrollContainLimit:l}}(U,te,tt,L,0),ta=Y?tn:tt,{limit:ti}=function(t,e,n){let r=e[0];return{limit:b(n?r-t:m(e),r)}}(te,ta,j),to=function t(e,n,r){let{constrain:a}=b(0,e),i=e+1,o=l(n);function l(t){return r?d((i+t)%i):a(t)}function c(){return t(e,o,r)}let u={get:function(){return o},set:function(t){return o=l(t),u},add:function(t){return c().set(o+t)},clone:c};return u}(h(ta),S,j),tl=to.clone(),tc=p(n),tu=({dragHandler:t,scrollBody:e,scrollBounds:n,options:{loop:r}},a)=>{r||n.constrain(t.pointerDown()),e.seek(a)},ts=({scrollBody:t,translate:e,location:n,offsetLocation:r,scrollLooper:a,slideLooper:i,dragHandler:o,animation:l,eventHandler:c,scrollBounds:u,options:{loop:s}},d)=>{let f=t.settled(),p=!u.shouldConstrain(),m=s?f:f&&p;m&&!o.pointerDown()&&(l.stop(),c.emit("settle")),m||c.emit("scroll");let h=n.get()*d+tm.get()*(1-d);r.set(h),s&&(a.loop(t.direction()),i.loop()),e.to(r.get())},td=function(t,e,n,r){let a=w(),i=1e3/60,o=null,l=0,c=0;function u(t){if(!c)return;o||(o=t);let a=t-o;for(o=t,l+=a;l>=i;)n(i),l-=i;r(l/i),c&&e.requestAnimationFrame(u)}function s(){e.cancelAnimationFrame(c),o=null,l=0,c=0}return{init:function(){a.add(t,"visibilitychange",()=>{t.hidden&&(o=null,l=0)})},destroy:function(){s(),a.clear()},start:function(){c||(c=e.requestAnimationFrame(u))},stop:s,update:()=>n(i),render:r}}(r,a,t=>tu(tk,t),t=>ts(tk,t)),tf=ta[to.get()],tp=x(tf),tm=x(tf),th=x(tf),ty=x(tf),tv=function(t,e,n,r,a,i){let o=0,l=0,c=a,u=.68,s=t.get(),p=0;function m(t){return c=t,y}function h(t){return u=t,y}let y={direction:function(){return l},duration:function(){return c},velocity:function(){return o},seek:function(e){let a=e/1e3,i=c*a,d=r.get()-t.get(),m=0;return c?(n.set(t),o+=d/i,o*=u,s+=o,t.add(o*a),m=s-p):(o=0,n.set(r),t.set(r),m=d),l=f(m),p=s,y},settled:function(){return .001>d(r.get()-e.get())},useBaseFriction:function(){return h(.68)},useBaseDuration:function(){return m(a)},useFriction:h,useDuration:m};return y}(tp,th,tm,ty,D,0),tg=function(t,e,n,r,a){let{reachedAny:i,removeOffset:o,constrain:l}=r;function c(t){return t.concat().sort((t,e)=>d(t)-d(e))[0]}function u(e,r){let a=[e,e+n,e-n];if(!t)return e;if(!r)return c(a);let i=a.filter(t=>f(t)===r);return i.length?c(i):m(a)-n}return{byDistance:function(n,r){let c=a.get()+n,{index:s,distance:f}=function(n){let r=t?o(n):l(n),{index:a}=e.map((t,e)=>({diff:u(t-r,0),index:e})).sort((t,e)=>d(t.diff)-d(e.diff))[0];return{index:a,distance:r}}(c),p=!t&&i(c);if(!r||p)return{index:s,distance:n};let m=n+u(e[s]-f,0);return{index:s,distance:m}},byIndex:function(t,n){let r=u(e[t]-a.get(),n);return{index:t,distance:r}},shortcut:u}}(j,ta,te,ti,ty),tw=function(t,e,n,r,a,i,o){function l(a){let l=a.distance,c=a.index!==e.get();i.add(l),l&&(r.duration()?t.start():(t.update(),t.render(1),t.update())),c&&(n.set(e.get()),e.set(a.index),o.emit("select"))}return{distance:function(t,e){l(a.byDistance(t,e))},index:function(t,n){let r=e.clone().set(t);l(a.byIndex(r.get(),n))}}}(td,to,tl,tv,tg,ty,o),tb=function(t){let{max:e,length:n}=t;return{get:function(t){return n?-((t-e)/n):0}}}(ti),tx=w(),tO=function(t,e,n,r){let a;let i={},o=null,l=null,c=!1;return{init:function(){a=new IntersectionObserver(t=>{c||(t.forEach(t=>{i[e.indexOf(t.target)]=t}),o=null,l=null,n.emit("slidesInView"))},{root:t.parentElement,threshold:r}),e.forEach(t=>a.observe(t))},destroy:function(){a&&a.disconnect(),c=!0},get:function(t=!0){if(t&&o)return o;if(!t&&l)return l;let e=v(i).reduce((e,n)=>{let r=parseInt(n),{isIntersecting:a}=i[r];return(t&&a||!t&&!a)&&e.push(r),e},[]);return t&&(o=e),t||(l=e),e}}}(e,n,o,C),{slideRegistry:tE}=function(t,e,n,r,a,i){let{groupSlides:o}=a,{min:l,max:c}=r;return{slideRegistry:function(){let r=o(i);return 1===n.length?[i]:t&&"keepSnaps"!==e?r.slice(l,c).map((t,e,n)=>{let r=e===h(n);return e?r?y(h(i)-m(n)[0]+1,m(n)[0]):t:y(m(n[0])+1)}):r}()}}(Y,L,ta,tr,Z,tc),tA=function(t,e,n,r,a,i,o,c){let s={passive:!0,capture:!0},d=0;function f(t){"Tab"===t.code&&(d=new Date().getTime())}return{init:function(p){c&&(i.add(document,"keydown",f,!1),e.forEach((e,f)=>{i.add(e,"focus",e=>{(u(c)||c(p,e))&&function(e){if(new Date().getTime()-d>10)return;o.emit("slideFocusStart"),t.scrollLeft=0;let i=n.findIndex(t=>t.includes(e));l(i)&&(a.useDuration(0),r.index(i,0),o.emit("slideFocus"))}(f)},s)}))}}}(t,n,tE,tw,tv,tx,o,B),tk={ownerDocument:r,ownerWindow:a,eventHandler:o,containerRect:_,slideRects:H,animation:td,axis:X,dragHandler:function(t,e,n,r,a,i,o,l,c,s,p,m,h,y,v,x,O,E,A){let{cross:k,direction:P}=t,S=["INPUT","SELECT","TEXTAREA"],j={passive:!1},D=w(),T=w(),R=b(50,225).constrain(y.measure(20)),C={mouse:300,touch:400},M={mouse:500,touch:600},N=v?43:25,L=!1,z=0,F=0,I=!1,B=!1,W=!1,_=!1;function H(t){if(!g(t,r)&&t.touches.length>=2)return X(t);let e=i.readPoint(t),n=i.readPoint(t,k),o=d(e-z),c=d(n-F);if(!B&&!_&&(!t.cancelable||!(B=o>c)))return X(t);let u=i.pointerMove(t);o>x&&(W=!0),s.useFriction(.3).useDuration(.75),l.start(),a.add(P(u)),t.preventDefault()}function X(t){let e=p.byDistance(0,!1).index!==m.get(),n=i.pointerUp(t)*(v?M:C)[_?"mouse":"touch"],r=function(t,e){let n=m.add(-1*f(t)),r=p.byDistance(t,!v).distance;return v||d(t)t.preventDefault(),j).add(e,"touchmove",()=>void 0,j).add(e,"touchend",()=>void 0).add(e,"touchstart",l).add(e,"mousedown",l).add(e,"touchcancel",X).add(e,"contextmenu",X).add(e,"click",U,!0);function l(l){(u(A)||A(t,l))&&function(t){let l=g(t,r);_=l,W=v&&l&&!t.buttons&&L,L=d(a.get()-o.get())>=2,l&&0!==t.button||function(t){let e=t.nodeName||"";return S.includes(e)}(t.target)||(I=!0,i.pointerDown(t),s.useFriction(0).useDuration(0),a.set(o),function(){let t=_?n:e;T.add(t,"touchmove",H,j).add(t,"touchend",X).add(t,"mousemove",H,j).add(t,"mouseup",X)}(),z=i.readPoint(t),F=i.readPoint(t,k),h.emit("pointerDown"))}(l)}},destroy:function(){D.clear(),T.clear()},pointerDown:function(){return I}}}(X,t,r,a,ty,function(t,e){let n,r;function a(t){return t.timeStamp}function i(n,r){let a=r||t.scroll,i=`client${"x"===a?"X":"Y"}`;return(g(n,e)?n:n.touches[0])[i]}return{pointerDown:function(t){return n=t,r=t,i(t)},pointerMove:function(t){let e=i(t)-i(r),o=a(t)-a(n)>170;return r=t,o&&(n=t),e},pointerUp:function(t){if(!n||!r)return 0;let e=i(r)-i(n),o=a(t)-a(n),l=a(t)-a(r)>170,c=e/o;return o&&!l&&d(c)>.1?c:0},readPoint:i}}(X,a),tp,td,tw,tv,tg,to,o,q,T,R,N,0,I),eventStore:tx,percentOfView:q,index:to,indexPrevious:tl,limit:ti,location:tp,offsetLocation:th,previousLocation:tm,options:i,resizeHandler:function(t,e,n,r,a,i,o){let l,c;let s=[t].concat(r),f=[],p=!1;function m(t){return a.measureSize(o.measure(t))}return{init:function(a){i&&(c=m(t),f=r.map(m),l=new ResizeObserver(n=>{(u(i)||i(a,n))&&function(n){for(let i of n){if(p)return;let n=i.target===t,o=r.indexOf(i.target),l=n?c:f[o];if(d(m(n?t:r[o])-l)>=.5){a.reInit(),e.emit("resize");break}}}(n)}),n.requestAnimationFrame(()=>{s.forEach(t=>l.observe(t))}))},destroy:function(){p=!0,l&&l.disconnect()}}}(e,o,a,n,X,z,W),scrollBody:tv,scrollBounds:function(t,e,n,r,a){let i=a.measure(10),o=a.measure(50),l=b(.1,.99),c=!1;function u(){return!!(!c&&t.reachedAny(n.get())&&t.reachedAny(e.get()))}return{shouldConstrain:u,constrain:function(a){if(!u())return;let c=t.reachedMin(e.get())?"min":"max",s=d(t[c]-e.get()),f=n.get()-e.get(),p=l.constrain(s/o);n.subtract(f*p),!a&&d(f)t.add(o))}}}(te,ti,th,[tp,th,tm,ty]),scrollProgress:tb,scrollSnapList:ta.map(tb.get),scrollSnaps:ta,scrollTarget:tg,scrollTo:tw,slideLooper:function(t,e,n,r,a,i,o,l,c){let u=p(a),s=m(f(p(a).reverse(),o[0]),n,!1).concat(m(f(u,e-o[0]-1),-n,!0));function d(t,e){return t.reduce((t,e)=>t-a[e],e)}function f(t,e){return t.reduce((t,n)=>d(t,e)>0?t.concat([n]):t,[])}function m(a,o,u){let s=i.map((t,n)=>({start:t-r[n]+.5+o,end:t+e-.5+o}));return a.map(e=>{let r=u?0:-n,a=u?n:0,i=s[e][u?"end":"start"];return{index:e,loopPoint:i,slideLocation:x(-1),translate:O(t,c[e]),target:()=>l.get()>i?r:a}})}return{canLoop:function(){return s.every(({index:t})=>.1>=d(u.filter(e=>e!==t),e))},clear:function(){s.forEach(t=>t.translate.clear())},loop:function(){s.forEach(t=>{let{target:e,translate:n,slideLocation:r}=t,a=e();a!==r.get()&&(n.to(a),r.set(a))})},loopPoints:s}}(X,U,te,$,G,Q,ta,th,n),slideFocus:tA,slidesHandler:(E=!1,{init:function(t){F&&(s=new MutationObserver(e=>{!E&&(u(F)||F(t,e))&&function(e){for(let n of e)if("childList"===n.type){t.reInit(),o.emit("slidesChanged");break}}(e)})).observe(e,{childList:!0})},destroy:function(){s&&s.disconnect(),E=!0}}),slidesInView:tO,slideIndexes:tc,slideRegistry:tE,slidesToScroll:Z,target:ty,translate:O(X,e)};return tk}(t,i,o,P,S,n,R);return n.loop&&!r.slideLooper.canLoop()?e(Object.assign({},n,{loop:!1})):r}(W),N([B,..._.map(({options:t})=>t)]).forEach(t=>T.add(t,"change",X)),W.active&&(r.translate.to(r.location.get()),r.animation.init(),r.slidesInView.init(),r.slideFocus.init(Y),r.eventHandler.init(Y),r.resizeHandler.init(Y),r.slidesHandler.init(Y),r.options.loop&&r.slideLooper.loop(),i.offsetParent&&o.length&&r.dragHandler.init(Y),a=D.init(Y,_)))}function X(t,e){let n=V();U(),H(C({startIndex:n},t),e),R.emit("reInit")}function U(){r.dragHandler.destroy(),r.eventStore.clear(),r.translate.clear(),r.slideLooper.clear(),r.resizeHandler.destroy(),r.slidesHandler.destroy(),r.slidesInView.destroy(),r.animation.destroy(),D.destroy(),T.clear()}function q(t,e,n){W.active&&!I&&(r.scrollBody.useBaseFriction().useDuration(!0===e?0:W.duration),r.scrollTo.index(t,n||0))}function V(){return r.index.get()}let Y={canScrollNext:function(){return r.index.add(1).get()!==V()},canScrollPrev:function(){return r.index.add(-1).get()!==V()},containerNode:function(){return i},internalEngine:function(){return r},destroy:function(){I||(I=!0,T.clear(),U(),R.emit("destroy"),R.clear())},off:z,on:L,emit:F,plugins:function(){return a},previousScrollSnap:function(){return r.indexPrevious.get()},reInit:X,rootNode:function(){return t},scrollNext:function(t){q(r.index.add(1).get(),t,-1)},scrollPrev:function(t){q(r.index.add(-1).get(),t,1)},scrollProgress:function(){return r.scrollProgress.get(r.location.get())},scrollSnapList:function(){return r.scrollSnapList},scrollTo:q,selectedScrollSnap:V,slideNodes:function(){return o},slidesInView:function(){return r.slidesInView.get()},slidesNotInView:function(){return r.slidesInView.get(!1)}};return H(e,n),setTimeout(()=>R.emit("init"),0),Y}function k(t={},e=[]){let n=(0,r.useRef)(t),a=(0,r.useRef)(e),[l,c]=(0,r.useState)(),[u,s]=(0,r.useState)(),d=(0,r.useCallback)(()=>{l&&l.reInit(n.current,a.current)},[l]);return(0,r.useEffect)(()=>{i(n.current,t)||(n.current=t,d())},[t,d]),(0,r.useEffect)(()=>{!function(t,e){if(t.length!==e.length)return!1;let n=o(t),r=o(e);return n.every((t,e)=>i(t,r[e]))}(a.current,e)&&(a.current=e,d())},[e,d]),(0,r.useEffect)(()=>{if("undefined"!=typeof window&&window.document&&window.document.createElement&&u){A.globalOptions=k.globalOptions;let t=A(u,n.current,a.current);return c(t),()=>t.destroy()}c(void 0)},[u,c]),[s,l]}A.globalOptions=void 0,k.globalOptions=void 0},45930:(t,e,n)=>{n.d(e,{k5:()=>s});var r=n(20107),a={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},i=r.createContext&&r.createContext(a),o=["attr","size","title"];function l(){return(l=Object.assign?Object.assign.bind():function(t){for(var e=1;er.createElement(d,l({attr:u({},t.attr)},e),function t(e){return e&&e.map((e,n)=>r.createElement(e.tag,u({key:n},e.attr),t(e.child)))}(t.child))}function d(t){var e=e=>{var n,{attr:a,size:i,title:c}=t,s=function(t,e){if(null==t)return{};var n,r,a=function(t,e){if(null==t)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}(t,o),d=i||e.size||"1em";return e.className&&(n=e.className),t.className&&(n=(n?n+" ":"")+t.className),r.createElement("svg",l({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},e.attr,a,s,{className:n,style:u(u({color:t.color||e.color},e.style),t.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),c&&r.createElement("title",null,c),t.children)};return void 0!==i?r.createElement(i.Consumer,null,t=>e(t)):e(a)}},71602:(t,e,n)=>{let r;n.d(e,{_s:()=>F});var a=n(60241),i=n(20107);let o=i.createContext({drawerRef:{current:null},overlayRef:{current:null},onPress:()=>{},onRelease:()=>{},onDrag:()=>{},onNestedDrag:()=>{},onNestedOpenChange:()=>{},onNestedRelease:()=>{},openProp:void 0,dismissible:!1,isOpen:!1,isDragging:!1,keyboardIsOpen:{current:!1},snapPointsOffset:null,snapPoints:null,handleOnly:!1,modal:!1,shouldFade:!1,activeSnapPoint:null,onOpenChange:()=>{},setActiveSnapPoint:()=>{},closeDrawer:()=>{},direction:"bottom",shouldAnimate:{current:!0},shouldScaleBackground:!1,setBackgroundColorOnScale:!0,noBodyStyles:!1,container:null,autoFocus:!1}),l=()=>{let t=i.useContext(o);if(!t)throw Error("useDrawerContext must be used within a Drawer.Root");return t};function c(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function u(){return s(/^iPhone/)||s(/^iPad/)||s(/^Mac/)&&navigator.maxTouchPoints>1}function s(t){return"undefined"!=typeof window&&null!=window.navigator?t.test(window.navigator.platform):void 0}!function(t){if(!t||"undefined"==typeof document)return;let e=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",e.appendChild(n),n.styleSheet?n.styleSheet.cssText=t:n.appendChild(document.createTextNode(t))}("[data-vaul-drawer]{touch-action:none;will-change:transform;transition:transform .5s cubic-bezier(.32, .72, 0, 1);animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=open]{animation-name:slideFromBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=bottom][data-state=closed]{animation-name:slideToBottom}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=open]{animation-name:slideFromTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=top][data-state=closed]{animation-name:slideToTop}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=open]{animation-name:slideFromLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=left][data-state=closed]{animation-name:slideToLeft}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=open]{animation-name:slideFromRight}[data-vaul-drawer][data-vaul-snap-points=false][data-vaul-drawer-direction=right][data-state=closed]{animation-name:slideToRight}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--initial-transform,100%),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}[data-vaul-drawer][data-vaul-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--initial-transform,100%),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=top]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=bottom]{transform:translate3d(0,var(--snap-point-height,0),0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=left]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-drawer][data-vaul-delayed-snap-points=true][data-vaul-drawer-direction=right]{transform:translate3d(var(--snap-point-height,0),0,0)}[data-vaul-overlay][data-vaul-snap-points=false]{animation-duration:.5s;animation-timing-function:cubic-bezier(0.32,0.72,0,1)}[data-vaul-overlay][data-vaul-snap-points=false][data-state=open]{animation-name:fadeIn}[data-vaul-overlay][data-state=closed]{animation-name:fadeOut}[data-vaul-animate=false]{animation:none!important}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:0;transition:opacity .5s cubic-bezier(.32, .72, 0, 1)}[data-vaul-overlay][data-vaul-snap-points=true]{opacity:1}[data-vaul-drawer]:not([data-vaul-custom-container=true])::after{content:'';position:absolute;background:inherit;background-color:inherit}[data-vaul-drawer][data-vaul-drawer-direction=top]::after{top:initial;bottom:100%;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=bottom]::after{top:100%;bottom:initial;left:0;right:0;height:200%}[data-vaul-drawer][data-vaul-drawer-direction=left]::after{left:initial;right:100%;top:0;bottom:0;width:200%}[data-vaul-drawer][data-vaul-drawer-direction=right]::after{left:100%;right:initial;top:0;bottom:0;width:200%}[data-vaul-overlay][data-vaul-snap-points=true]:not([data-vaul-snap-points-overlay=true]):not(\n[data-state=closed]\n){opacity:0}[data-vaul-overlay][data-vaul-snap-points-overlay=true]{opacity:1}[data-vaul-handle]{display:block;position:relative;opacity:.7;background:#e2e2e4;margin-left:auto;margin-right:auto;height:5px;width:32px;border-radius:1rem;touch-action:pan-y}[data-vaul-handle]:active,[data-vaul-handle]:hover{opacity:1}[data-vaul-handle-hitarea]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100%,2.75rem);height:max(100%,2.75rem);touch-action:inherit}@media (hover:hover) and (pointer:fine){[data-vaul-drawer]{user-select:none}}@media (pointer:fine){[data-vaul-handle-hitarea]:{width:100%;height:100%}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{to{opacity:0}}@keyframes slideFromBottom{from{transform:translate3d(0,var(--initial-transform,100%),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToBottom{to{transform:translate3d(0,var(--initial-transform,100%),0)}}@keyframes slideFromTop{from{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}to{transform:translate3d(0,0,0)}}@keyframes slideToTop{to{transform:translate3d(0,calc(var(--initial-transform,100%) * -1),0)}}@keyframes slideFromLeft{from{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToLeft{to{transform:translate3d(calc(var(--initial-transform,100%) * -1),0,0)}}@keyframes slideFromRight{from{transform:translate3d(var(--initial-transform,100%),0,0)}to{transform:translate3d(0,0,0)}}@keyframes slideToRight{to{transform:translate3d(var(--initial-transform,100%),0,0)}}");let d="undefined"!=typeof window?i.useLayoutEffect:i.useEffect;function f(){for(var t=arguments.length,e=Array(t),n=0;n{t.removeEventListener(e,n,r)}}function w(t){let e=document.scrollingElement||document.documentElement;for(;t&&t!==e;){let e=h(t);if(e!==document.documentElement&&e!==document.body&&e!==t){let n=e.getBoundingClientRect().top,r=t.getBoundingClientRect().top;t.getBoundingClientRect().bottom>e.getBoundingClientRect().bottom+24&&(e.scrollTop+=r-n)}t=e.parentElement}}function b(t){return t instanceof HTMLInputElement&&!y.has(t.type)||t instanceof HTMLTextAreaElement||t instanceof HTMLElement&&t.isContentEditable}function x(){for(var t=arguments.length,e=Array(t),n=0;ne.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}(...e),e)}let O=new WeakMap;function E(t,e){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!t||!(t instanceof HTMLElement))return;let r={};Object.entries(e).forEach(e=>{let[n,a]=e;if(n.startsWith("--")){t.style.setProperty(n,a);return}r[n]=t.style[n],t.style[n]=a}),n||O.set(t,r)}let A=t=>{switch(t){case"top":case"bottom":return!0;case"left":case"right":return!1;default:return t}};function k(t,e){if(!t)return null;let n=window.getComputedStyle(t),r=n.transform||n.webkitTransform||n.mozTransform,a=r.match(/^matrix3d\((.+)\)$/);return a?parseFloat(a[1].split(", ")[A(e)?13:12]):(a=r.match(/^matrix\((.+)\)$/))?parseFloat(a[1].split(", ")[A(e)?5:4]):null}function P(t,e){if(!t)return()=>{};let n=t.style.cssText;return Object.assign(t.style,e),()=>{t.style.cssText=n}}let S={DURATION:.5,EASE:[.32,.72,0,1]},j="vaul-dragging";function D(t){let e=i.useRef(t);return i.useEffect(()=>{e.current=t}),i.useMemo(()=>function(){for(var t=arguments.length,n=Array(t),r=0;r{}}=t,[a,o]=function(t){let{defaultProp:e,onChange:n}=t,r=i.useState(e),[a]=r,o=i.useRef(a),l=D(n);return i.useEffect(()=>{o.current!==a&&(l(a),o.current=a)},[a,o,l]),r}({defaultProp:n,onChange:r}),l=void 0!==e,c=l?e:a,u=D(r);return[c,i.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&u(n)}else o(t)},[l,e,o,u])]}let R=()=>()=>{},C=null;function M(t){var e,n;let{open:l,onOpenChange:s,children:m,onDrag:y,onRelease:x,snapPoints:P,shouldScaleBackground:D=!1,setBackgroundColorOnScale:R=!0,closeThreshold:M=.25,scrollLockTimeout:N=100,dismissible:L=!0,handleOnly:z=!1,fadeFromIndex:F=P&&P.length-1,activeSnapPoint:I,setActiveSnapPoint:B,fixed:W,modal:_=!0,onClose:H,nested:X,noBodyStyles:U=!1,direction:q="bottom",defaultOpen:V=!1,disablePreventScroll:Y=!0,snapToSequentialPoint:$=!1,preventScrollRestoration:G=!1,repositionInputs:J=!0,onAnimationEnd:K,container:Z,autoFocus:Q=!1}=t,[tt=!1,te]=T({defaultProp:V,prop:l,onChange:t=>{null==s||s(t),t||X||tC(),setTimeout(()=>{null==K||K(t)},1e3*S.DURATION),t&&!_&&"undefined"!=typeof window&&window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"}),t||(document.body.style.pointerEvents="auto")}}),[tn,tr]=i.useState(!1),[ta,ti]=i.useState(!1),[to,tl]=i.useState(!1),tc=i.useRef(null),tu=i.useRef(null),ts=i.useRef(null),td=i.useRef(null),tf=i.useRef(null),tp=i.useRef(!1),tm=i.useRef(null),th=i.useRef(0),ty=i.useRef(!1),tv=i.useRef(!V),tg=i.useRef(0),tw=i.useRef(null),tb=i.useRef((null==(e=tw.current)?void 0:e.getBoundingClientRect().height)||0),tx=i.useRef((null==(n=tw.current)?void 0:n.getBoundingClientRect().width)||0),tO=i.useRef(0),tE=i.useCallback(t=>{P&&t===tj.length-1&&(tu.current=new Date)},[]),{activeSnapPoint:tA,activeSnapPointIndex:tk,setActiveSnapPoint:tP,onRelease:tS,snapPointsOffset:tj,onDrag:tD,shouldFade:tT,getPercentageDragged:tR}=function(t){let{activeSnapPointProp:e,setActiveSnapPointProp:n,snapPoints:r,drawerRef:a,overlayRef:o,fadeFromIndex:l,onSnapPointChange:c,direction:u="bottom",container:s,snapToSequentialPoint:d}=t,[f,p]=T({prop:e,defaultProp:null==r?void 0:r[0],onChange:n}),[m,h]=i.useState("undefined"!=typeof window?{innerWidth:window.innerWidth,innerHeight:window.innerHeight}:void 0);i.useEffect(()=>{function t(){h({innerWidth:window.innerWidth,innerHeight:window.innerHeight})}return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)},[]);let y=i.useMemo(()=>f===(null==r?void 0:r[r.length-1])||null,[r,f]),v=i.useMemo(()=>{var t;return null!=(t=null==r?void 0:r.findIndex(t=>t===f))?t:null},[r,f]),g=r&&r.length>0&&(l||0===l)&&!Number.isNaN(l)&&r[l]===f||!r,w=i.useMemo(()=>{var t;let e=s?{width:s.getBoundingClientRect().width,height:s.getBoundingClientRect().height}:"undefined"!=typeof window?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0};return null!=(t=null==r?void 0:r.map(t=>{let n="string"==typeof t,r=0;if(n&&(r=parseInt(t,10)),A(u)){let a=n?r:m?t*e.height:0;return m?"bottom"===u?e.height-a:-e.height+a:a}let a=n?r:m?t*e.width:0;return m?"right"===u?e.width-a:-e.width+a:a}))?t:[]},[r,m,s]),b=i.useMemo(()=>null!==v?null==w?void 0:w[v]:null,[w,v]),x=i.useCallback(t=>{var e;let n=null!=(e=null==w?void 0:w.findIndex(e=>e===t))?e:null;c(n),E(a.current,{transition:"transform ".concat(S.DURATION,"s cubic-bezier(").concat(S.EASE.join(","),")"),transform:A(u)?"translate3d(0, ".concat(t,"px, 0)"):"translate3d(".concat(t,"px, 0, 0)")}),w&&n!==w.length-1&&void 0!==l&&n!==l&&n{if(f||e){var t;let n=null!=(t=null==r?void 0:r.findIndex(t=>t===e||t===f))?t:-1;w&&-1!==n&&"number"==typeof w[n]&&x(w[n])}},[f,e,r,w,x]),{isLastSnapPoint:y,activeSnapPoint:f,shouldFade:g,getPercentageDragged:function(t,e){if(!r||"number"!=typeof v||!w||void 0===l)return null;let n=v===l-1;if(v>=l&&e)return 0;if(n&&!e)return 1;if(!g&&!n)return null;let a=n?v+1:v-1,i=t/Math.abs(n?w[a]-w[a-1]:w[a+1]-w[a]);return n?1-i:i},setActiveSnapPoint:p,activeSnapPointIndex:v,onRelease:function(t){let{draggedDistance:e,closeDrawer:n,velocity:a,dismissible:i}=t;if(void 0===l)return;let c="bottom"===u||"right"===u?(null!=b?b:0)-e:(null!=b?b:0)+e,s=v===l-1,f=0===v,p=e>0;if(s&&E(o.current,{transition:"opacity ".concat(S.DURATION,"s cubic-bezier(").concat(S.EASE.join(","),")")}),!d&&a>2&&!p){i?n():x(w[0]);return}if(!d&&a>2&&p&&w&&r){x(w[r.length-1]);return}let m=null==w?void 0:w.reduce((t,e)=>"number"!=typeof t||"number"!=typeof e?t:Math.abs(e-c).4&&Math.abs(e)<.4*h){let t=p?1:-1;if(t>0&&y&&r){x(w[r.length-1]);return}if(f&&t<0&&i&&n(),null===v)return;x(w[v+t]);return}x(m)},onDrag:function(t){let{draggedDistance:e}=t;if(null===b)return;let n="bottom"===u||"right"===u?b-e:b+e;("bottom"===u||"right"===u)&&nw[w.length-1]||E(a.current,{transform:A(u)?"translate3d(0, ".concat(n,"px, 0)"):"translate3d(".concat(n,"px, 0, 0)")})},snapPointsOffset:w}}({snapPoints:P,activeSnapPointProp:I,setActiveSnapPointProp:B,drawerRef:tw,fadeFromIndex:F,overlayRef:tc,onSnapPointChange:tE,direction:q,container:Z,snapToSequentialPoint:$});!function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{isDisabled:e}=t;d(()=>{if(!e){var t,n,a;let e,i,o,l,c,s,d;return 1==++v&&u()&&(o=0,l=window.pageXOffset,c=window.pageYOffset,s=f((t=document.documentElement,n="paddingRight",a="".concat(window.innerWidth-document.documentElement.clientWidth,"px"),i=t.style[n],t.style[n]=a,()=>{t.style[n]=i})),window.scrollTo(0,0),d=f(g(document,"touchstart",t=>{((e=h(t.target))!==document.documentElement||e!==document.body)&&(o=t.changedTouches[0].pageY)},{passive:!1,capture:!0}),g(document,"touchmove",t=>{if(!e||e===document.documentElement||e===document.body){t.preventDefault();return}let n=t.changedTouches[0].pageY,r=e.scrollTop,a=e.scrollHeight-e.clientHeight;0!==a&&((r<=0&&n>o||r>=a&&n{let e=t.target;b(e)&&e!==document.activeElement&&(t.preventDefault(),e.style.transform="translateY(-2000px)",e.focus(),requestAnimationFrame(()=>{e.style.transform=""}))},{passive:!1,capture:!0}),g(document,"focus",t=>{let e=t.target;b(e)&&(e.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{e.style.transform="",p&&(p.height{w(e)}):p.addEventListener("resize",()=>w(e),{once:!0}))}))},!0),g(window,"scroll",()=>{window.scrollTo(0,0)})),r=()=>{s(),d(),window.scrollTo(l,c)}),()=>{0==--v&&(null==r||r())}}},[e])}({isDisabled:!tt||ta||!_||to||!tn||!J||!Y});let{restorePositionSetting:tC}=function(t){let{isOpen:e,modal:n,nested:r,hasBeenOpened:a,preventScrollRestoration:o,noBodyStyles:l}=t,[u,s]=i.useState(()=>"undefined"!=typeof window?window.location.href:""),d=i.useRef(0),f=i.useCallback(()=>{if(c()&&null===C&&e&&!l){C={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left,height:document.body.style.height,right:"unset"};let{scrollX:t,innerHeight:e}=window;document.body.style.setProperty("position","fixed","important"),Object.assign(document.body.style,{top:"".concat(-d.current,"px"),left:"".concat(-t,"px"),right:"0px",height:"auto"}),window.setTimeout(()=>window.requestAnimationFrame(()=>{let t=e-window.innerHeight;t&&d.current>=e&&(document.body.style.top="".concat(-(d.current+t),"px"))}),300)}},[e]),p=i.useCallback(()=>{if(c()&&null!==C&&!l){let t=-parseInt(document.body.style.top,10),e=-parseInt(document.body.style.left,10);Object.assign(document.body.style,C),window.requestAnimationFrame(()=>{if(o&&u!==window.location.href){s(window.location.href);return}window.scrollTo(e,t)}),C=null}},[u]);return i.useEffect(()=>{function t(){d.current=window.scrollY}return t(),window.addEventListener("scroll",t),()=>{window.removeEventListener("scroll",t)}},[]),i.useEffect(()=>{if(n)return()=>{"undefined"!=typeof document&&(document.querySelector("[data-vaul-drawer]")||p())}},[n,p]),i.useEffect(()=>{r||!a||(e?(window.matchMedia("(display-mode: standalone)").matches||f(),n||window.setTimeout(()=>{p()},500)):p())},[e,a,u,n,r,f,p]),{restorePositionSetting:p}}({isOpen:tt,modal:_,nested:null!=X&&X,hasBeenOpened:tn,preventScrollRestoration:G,noBodyStyles:U});function tM(){return(window.innerWidth-26)/window.innerWidth}function tN(t,e){var n;let r=t,a=null==(n=window.getSelection())?void 0:n.toString(),i=tw.current?k(tw.current,q):null,o=new Date;if("SELECT"===r.tagName||r.hasAttribute("data-vaul-no-drag")||r.closest("[data-vaul-no-drag]"))return!1;if("right"===q||"left"===q)return!0;if(tu.current&&o.getTime()-tu.current.getTime()<500)return!1;if(null!==i&&("bottom"===q?i>0:i<0))return!0;if(a&&a.length>0)return!1;if(tf.current&&o.getTime()-tf.current.getTime()r.clientHeight){if(0!==r.scrollTop)return tf.current=new Date,!1;if("dialog"===r.getAttribute("role"))break}r=r.parentNode}return!0}function tL(t){ta&&tw.current&&(tw.current.classList.remove(j),tp.current=!1,ti(!1),td.current=new Date),null==H||H(),t||te(!1),setTimeout(()=>{P&&tP(P[0])},1e3*S.DURATION)}function tz(){if(!tw.current)return;let t=document.querySelector("[data-vaul-drawer-wrapper]"),e=k(tw.current,q);E(tw.current,{transform:"translate3d(0, 0, 0)",transition:"transform ".concat(S.DURATION,"s cubic-bezier(").concat(S.EASE.join(","),")")}),E(tc.current,{transition:"opacity ".concat(S.DURATION,"s cubic-bezier(").concat(S.EASE.join(","),")"),opacity:"1"}),D&&e&&e>0&&tt&&E(t,{borderRadius:"".concat(8,"px"),overflow:"hidden",...A(q)?{transform:"scale(".concat(tM(),") translate3d(0, calc(env(safe-area-inset-top) + 14px), 0)"),transformOrigin:"top"}:{transform:"scale(".concat(tM(),") translate3d(calc(env(safe-area-inset-top) + 14px), 0, 0)"),transformOrigin:"left"},transitionProperty:"transform, border-radius",transitionDuration:"".concat(S.DURATION,"s"),transitionTimingFunction:"cubic-bezier(".concat(S.EASE.join(","),")")},!0)}return i.useEffect(()=>{window.requestAnimationFrame(()=>{tv.current=!0})},[]),i.useEffect(()=>{var t;function e(){if(tw.current&&J&&(b(document.activeElement)||ty.current)){var t;let e=(null==(t=window.visualViewport)?void 0:t.height)||0,n=window.innerHeight,r=n-e,a=tw.current.getBoundingClientRect().height||0;tO.current||(tO.current=a);let i=tw.current.getBoundingClientRect().top;if(Math.abs(tg.current-r)>60&&(ty.current=!ty.current),P&&P.length>0&&tj&&tk&&(r+=tj[tk]||0),tg.current=r,a>e||ty.current){let t=tw.current.getBoundingClientRect().height,o=t;t>e&&(o=e-(a>.8*n?i:26)),W?tw.current.style.height="".concat(t-Math.max(r,0),"px"):tw.current.style.height="".concat(Math.max(o,e-i),"px")}else!function(){let t=navigator.userAgent;return"undefined"!=typeof window&&(/Firefox/.test(t)&&/Mobile/.test(t)||/FxiOS/.test(t))}()&&(tw.current.style.height="".concat(tO.current,"px"));P&&P.length>0&&!ty.current?tw.current.style.bottom="0px":tw.current.style.bottom="".concat(Math.max(r,0),"px")}}return null==(t=window.visualViewport)||t.addEventListener("resize",e),()=>{var t;return null==(t=window.visualViewport)?void 0:t.removeEventListener("resize",e)}},[tk,P,tj]),i.useEffect(()=>(tt&&(E(document.documentElement,{scrollBehavior:"auto"}),tu.current=new Date),()=>{!function(t,e){if(!t||!(t instanceof HTMLElement))return;let n=O.get(t);n&&(t.style[e]=n[e])}(document.documentElement,"scrollBehavior")}),[tt]),i.useEffect(()=>{_||window.requestAnimationFrame(()=>{document.body.style.pointerEvents="auto"})},[_]),i.createElement(a.bL,{defaultOpen:V,onOpenChange:t=>{(L||t)&&(t?tr(!0):tL(!0),te(t))},open:tt},i.createElement(o.Provider,{value:{activeSnapPoint:tA,snapPoints:P,setActiveSnapPoint:tP,drawerRef:tw,overlayRef:tc,onOpenChange:s,onPress:function(t){var e,n;(L||P)&&(!tw.current||tw.current.contains(t.target))&&(tb.current=(null==(e=tw.current)?void 0:e.getBoundingClientRect().height)||0,tx.current=(null==(n=tw.current)?void 0:n.getBoundingClientRect().width)||0,ti(!0),ts.current=new Date,u()&&window.addEventListener("touchend",()=>tp.current=!1,{once:!0}),t.target.setPointerCapture(t.pointerId),th.current=A(q)?t.pageY:t.pageX)},onRelease:function(t){var e,n;if(!ta||!tw.current)return;tw.current.classList.remove(j),tp.current=!1,ti(!1),td.current=new Date;let r=k(tw.current,q);if(!t||!tN(t.target,!1)||!r||Number.isNaN(r)||null===ts.current)return;let a=td.current.getTime()-ts.current.getTime(),i=th.current-(A(q)?t.pageY:t.pageX),o=Math.abs(i)/a;if(o>.05&&(tl(!0),setTimeout(()=>{tl(!1)},200)),P){tS({draggedDistance:i*("bottom"===q||"right"===q?1:-1),closeDrawer:tL,velocity:o,dismissible:L}),null==x||x(t,!0);return}if("bottom"===q||"right"===q?i>0:i<0){tz(),null==x||x(t,!0);return}if(o>.4){tL(),null==x||x(t,!1);return}let l=Math.min(null!=(e=tw.current.getBoundingClientRect().height)?e:0,window.innerHeight),c=Math.min(null!=(n=tw.current.getBoundingClientRect().width)?n:0,window.innerWidth);if(Math.abs(r)>=("left"===q||"right"===q?c:l)*M){tL(),null==x||x(t,!1);return}null==x||x(t,!0),tz()},onDrag:function(t){if(tw.current&&ta){let e="bottom"===q||"right"===q?1:-1,n=(th.current-(A(q)?t.pageY:t.pageX))*e,r=n>0,a=P&&!L&&!r;if(a&&0===tk)return;let i=Math.abs(n),o=document.querySelector("[data-vaul-drawer-wrapper]"),l=i/("bottom"===q||"top"===q?tb.current:tx.current),c=tR(i,r);if(null!==c&&(l=c),a&&l>=1||!tp.current&&!tN(t.target,r))return;if(tw.current.classList.add(j),tp.current=!0,E(tw.current,{transition:"none"}),E(tc.current,{transition:"none"}),P&&tD({draggedDistance:n}),r&&!P){let t=Math.min(-(8*(Math.log(n+1)-2)*1),0)*e;E(tw.current,{transform:A(q)?"translate3d(0, ".concat(t,"px, 0)"):"translate3d(".concat(t,"px, 0, 0)")});return}let u=1-l;if((tT||F&&tk===F-1)&&(null==y||y(t,l),E(tc.current,{opacity:"".concat(u),transition:"none"},!0)),o&&tc.current&&D){let t=Math.min(tM()+l*(1-tM()),1),e=8-8*l,n=Math.max(0,14-14*l);E(o,{borderRadius:"".concat(e,"px"),transform:A(q)?"scale(".concat(t,") translate3d(0, ").concat(n,"px, 0)"):"scale(".concat(t,") translate3d(").concat(n,"px, 0, 0)"),transition:"none"},!0)}if(!P){let t=i*e;E(tw.current,{transform:A(q)?"translate3d(0, ".concat(t,"px, 0)"):"translate3d(".concat(t,"px, 0, 0)")})}}},dismissible:L,shouldAnimate:tv,handleOnly:z,isOpen:tt,isDragging:ta,shouldFade:tT,closeDrawer:tL,onNestedDrag:function(t,e){if(e<0)return;let n=(window.innerWidth-16)/window.innerWidth,r=n+e*(1-n),a=-16+16*e;E(tw.current,{transform:A(q)?"scale(".concat(r,") translate3d(0, ").concat(a,"px, 0)"):"scale(".concat(r,") translate3d(").concat(a,"px, 0, 0)"),transition:"none"})},onNestedOpenChange:function(t){let e=t?(window.innerWidth-16)/window.innerWidth:1,n=t?-16:0;tm.current&&window.clearTimeout(tm.current),E(tw.current,{transition:"transform ".concat(S.DURATION,"s cubic-bezier(").concat(S.EASE.join(","),")"),transform:A(q)?"scale(".concat(e,") translate3d(0, ").concat(n,"px, 0)"):"scale(".concat(e,") translate3d(").concat(n,", 0, 0)")}),!t&&tw.current&&(tm.current=setTimeout(()=>{let t=k(tw.current,q);E(tw.current,{transition:"none",transform:A(q)?"translate3d(0, ".concat(t,"px, 0)"):"translate3d(".concat(t,"px, 0, 0)")})},500))},onNestedRelease:function(t,e){let n=A(q)?window.innerHeight:window.innerWidth,r=e?(n-16)/n:1,a=e?-16:0;e&&E(tw.current,{transition:"transform ".concat(S.DURATION,"s cubic-bezier(").concat(S.EASE.join(","),")"),transform:A(q)?"scale(".concat(r,") translate3d(0, ").concat(a,"px, 0)"):"scale(".concat(r,") translate3d(").concat(a,"px, 0, 0)")})},keyboardIsOpen:ty,modal:_,snapPointsOffset:tj,activeSnapPointIndex:tk,direction:q,shouldScaleBackground:D,setBackgroundColorOnScale:R,noBodyStyles:U,container:Z,autoFocus:Q}},m))}let N=i.forwardRef(function(t,e){let{...n}=t,{overlayRef:r,snapPoints:o,onRelease:c,shouldFade:u,isOpen:s,modal:d,shouldAnimate:f}=l(),p=x(e,r),m=o&&o.length>0;if(!d)return null;let h=i.useCallback(t=>c(t),[c]);return i.createElement(a.hJ,{onMouseUp:h,ref:p,"data-vaul-overlay":"","data-vaul-snap-points":s&&m?"true":"false","data-vaul-snap-points-overlay":s&&u?"true":"false","data-vaul-animate":(null==f?void 0:f.current)?"true":"false",...n})});N.displayName="Drawer.Overlay";let L=i.forwardRef(function(t,e){let{onPointerDownOutside:n,style:r,onOpenAutoFocus:o,...c}=t,{drawerRef:u,onPress:s,onRelease:d,onDrag:f,keyboardIsOpen:p,snapPointsOffset:m,activeSnapPointIndex:h,modal:y,isOpen:v,direction:g,snapPoints:w,container:b,handleOnly:O,shouldAnimate:E,autoFocus:k}=l(),[j,D]=i.useState(!1),T=x(e,u),C=i.useRef(null),M=i.useRef(null),N=i.useRef(!1),L=w&&w.length>0;!function(){let{direction:t,isOpen:e,shouldScaleBackground:n,setBackgroundColorOnScale:r,noBodyStyles:a}=l(),o=i.useRef(null),c=(0,i.useMemo)(()=>document.body.style.backgroundColor,[]);function u(){return(window.innerWidth-26)/window.innerWidth}i.useEffect(()=>{if(e&&n){o.current&&clearTimeout(o.current);let e=document.querySelector("[data-vaul-drawer-wrapper]")||document.querySelector("[vaul-drawer-wrapper]");if(!e)return;!function(){for(var t=arguments.length,e=Array(t),n=0;n{n(),o.current=window.setTimeout(()=>{c?document.body.style.background=c:document.body.style.removeProperty("background")},1e3*S.DURATION)}}},[e,n,c])}();let z=function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(N.current)return!0;let r=Math.abs(t.y),a=Math.abs(t.x),i=a>r,o=["bottom","right"].includes(e)?1:-1;if("left"===e||"right"===e){if(!(t.x*o<0)&&a>=0&&a<=n)return i}else if(!(t.y*o<0)&&r>=0&&r<=n)return!i;return N.current=!0,!0};function F(t){C.current=null,N.current=!1,d(t)}return i.useEffect(()=>{L&&window.requestAnimationFrame(()=>{D(!0)})},[]),i.createElement(a.UC,{"data-vaul-drawer-direction":g,"data-vaul-drawer":"","data-vaul-delayed-snap-points":j?"true":"false","data-vaul-snap-points":v&&L?"true":"false","data-vaul-custom-container":b?"true":"false","data-vaul-animate":(null==E?void 0:E.current)?"true":"false",...c,ref:T,style:m&&m.length>0?{"--snap-point-height":"".concat(m[null!=h?h:0],"px"),...r}:r,onPointerDown:t=>{O||(null==c.onPointerDown||c.onPointerDown.call(c,t),C.current={x:t.pageX,y:t.pageY},s(t))},onOpenAutoFocus:t=>{null==o||o(t),k||t.preventDefault()},onPointerDownOutside:t=>{if(null==n||n(t),!y||t.defaultPrevented){t.preventDefault();return}p.current&&(p.current=!1)},onFocusOutside:t=>{if(!y){t.preventDefault();return}},onPointerMove:t=>{if(M.current=t,O||(null==c.onPointerMove||c.onPointerMove.call(c,t),!C.current))return;let e=t.pageY-C.current.y,n=t.pageX-C.current.x,r="touch"===t.pointerType?10:2;z({x:n,y:e},g,r)?f(t):(Math.abs(n)>r||Math.abs(e)>r)&&(C.current=null)},onPointerUp:t=>{null==c.onPointerUp||c.onPointerUp.call(c,t),C.current=null,N.current=!1,d(t)},onPointerOut:t=>{null==c.onPointerOut||c.onPointerOut.call(c,t),F(M.current)},onContextMenu:t=>{null==c.onContextMenu||c.onContextMenu.call(c,t),M.current&&F(M.current)}})});L.displayName="Drawer.Content";let z=i.forwardRef(function(t,e){let{preventCycle:n=!1,children:r,...a}=t,{closeDrawer:o,isDragging:c,snapPoints:u,activeSnapPoint:s,setActiveSnapPoint:d,dismissible:f,handleOnly:p,isOpen:m,onPress:h,onDrag:y}=l(),v=i.useRef(null),g=i.useRef(!1);function w(){v.current&&window.clearTimeout(v.current),g.current=!1}return i.createElement("div",{onClick:function(){if(g.current){w();return}window.setTimeout(()=>{!function(){if(c||n||g.current){w();return}if(w(),!u||0===u.length){f||o();return}if(s===u[u.length-1]&&f){o();return}let t=u.findIndex(t=>t===s);-1!==t&&d(u[t+1])}()},120)},onPointerCancel:w,onPointerDown:t=>{p&&h(t),v.current=window.setTimeout(()=>{g.current=!0},250)},onPointerMove:t=>{p&&y(t)},ref:e,"data-vaul-drawer-visible":m?"true":"false","data-vaul-handle":"","aria-hidden":"true",...a},i.createElement("span",{"data-vaul-handle-hitarea":"","aria-hidden":"true"},r))});z.displayName="Drawer.Handle";let F={Root:M,NestedRoot:function(t){let{onDrag:e,onOpenChange:n,...r}=t,{onNestedDrag:a,onNestedOpenChange:o,onNestedRelease:c}=l();if(!a)throw Error("Drawer.NestedRoot must be placed in another drawer");return i.createElement(M,{nested:!0,onClose:()=>{o(!1)},onDrag:(t,n)=>{a(t,n),null==e||e(t,n)},onOpenChange:t=>{t&&o(t)},onRelease:c,...r})},Content:L,Overlay:N,Trigger:a.l9,Portal:function(t){let e=l(),{container:n=e.container,...r}=t;return i.createElement(a.ZL,{container:n,...r})},Handle:z,Close:a.bm,Title:a.hE,Description:a.VY}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6035-940015763a1a8b5a.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6035-940015763a1a8b5a.js new file mode 100644 index 0000000..1b40268 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6035-940015763a1a8b5a.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6035],{45139:(e,t)=>{"use strict";function r(){return""}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDeploymentIdQueryOrEmptyString",{enumerable:!0,get:function(){return r}})},15129:()=>{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})},86170:(e,t,r)=>{"use strict";var n,o;e.exports=(null==(n=r.g.process)?void 0:n.env)&&"object"==typeof(null==(o=r.g.process)?void 0:o.env)?r.g.process:r(18259)},95376:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addBasePath",{enumerable:!0,get:function(){return a}});let n=r(76905),o=r(53317);function a(e,t){return(0,o.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9545:(e,t)=>{"use strict";function r(e){var t,r;t=self.__next_s,r=()=>{e()},t&&t.length?t.reduce((e,t)=>{let[r,n]=t;return e.then(()=>new Promise((e,t)=>{let o=document.createElement("script");if(n)for(let e in n)"children"!==e&&o.setAttribute(e,n[e]);r?(o.src=r,o.onload=()=>e(),o.onerror=t):n&&(o.innerHTML=n.children,setTimeout(e)),document.head.appendChild(o)}))},Promise.resolve()).catch(e=>{console.error(e)}).then(()=>{r()}):r()}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"appBootstrap",{enumerable:!0,get:function(){return r}}),window.next={version:"15.1.2",appDir:!0},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},28567:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getAppBuildId:function(){return o},setAppBuildId:function(){return n}});let r="";function n(e){r=e}function o(){return r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53051:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{callServer:function(){return l},useServerActionDispatcher:function(){return u}});let n=r(20107),o=r(23093),a=null;function u(e){a=(0,n.useCallback)(t=>{(0,n.startTransition)(()=>{e({...t,type:o.ACTION_SERVER_ACTION})})},[e])}async function l(e,t){let r=a;if(!r)throw Error("Invariant: missing action dispatcher.");return new Promise((n,o)=>{r({actionId:e,actionArgs:t,resolve:n,reject:o})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},98387:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findSourceMapURL",{enumerable:!0,get:function(){return r}});let r=void 0;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},88583:(e,t,r)=>{"use strict";let n,o;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hydrate",{enumerable:!0,get:function(){return N}});let a=r(67342),u=r(62599),l=r(20475);r(15129),r(165),r(80099);let i=a._(r(52661)),s=u._(r(20107)),c=r(18971),f=r(17315),d=r(43477),p=r(42347),h=r(53051),y=r(98387),g=r(52345),b=a._(r(78311)),_=r(85010);r(32618);let v=r(28567),m=document,P=new TextEncoder,E=!1,O=!1,R=null;function S(e){if(0===e[0])n=[];else if(1===e[0]){if(!n)throw Error("Unexpected server data: missing bootstrap script.");o?o.enqueue(P.encode(e[1])):n.push(e[1])}else if(2===e[0])R=e[1];else if(3===e[0]){if(!n)throw Error("Unexpected server data: missing bootstrap script.");let r=atob(e[1]),a=new Uint8Array(r.length);for(var t=0;t{t.enqueue("string"==typeof e?P.encode(e):e)}),E&&!O)&&(null===t.desiredSize||t.desiredSize<0?t.error(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection.")):t.close(),O=!0,n=void 0),o=t}}),M=(0,c.createFromReadableStream)(T,{callServer:h.callServer,findSourceMapURL:y.findSourceMapURL}),x=new Promise((e,t)=>{M.then(t=>{(0,v.setAppBuildId)(t.b),e((0,g.createMutableActionQueue)((0,_.createInitialRouterState)({initialFlightData:t.f,initialCanonicalUrlParts:t.c,initialParallelRoutes:new Map,location:window.location,couldBeIntercepted:t.i,postponed:t.s,prerendered:t.S})))},e=>t(e))});function A(){let e=(0,s.use)(M),t=(0,s.use)(x);return(0,l.jsx)(b.default,{actionQueue:t,globalErrorComponentAndStyles:e.G,assetPrefix:e.p})}let C=s.default.StrictMode;function k(e){let{children:t}=e;return t}let D={onRecoverableError:d.onRecoverableError,onCaughtError:p.onCaughtError,onUncaughtError:p.onUncaughtError};function N(){let e=(0,l.jsx)(C,{children:(0,l.jsx)(f.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,l.jsx)(k,{children:(0,l.jsx)(A,{})})})}),t=window.__next_root_layout_missing_tags,r=!!(null==t?void 0:t.length);"__next_error__"===document.documentElement.id||r?i.default.createRoot(m,D).render(e):s.default.startTransition(()=>i.default.hydrateRoot(m,e,{...D,formState:R}))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},31336:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(79100),(0,r(9545).appBootstrap)(()=>{let{hydrate:e}=r(88583);r(78311),r(24900),e()}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},79100:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(45139);let n=r(80724);{let e=r.u;r.u=function(){for(var t=arguments.length,r=Array(t),o=0;o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"assignLocation",{enumerable:!0,get:function(){return o}});let n=r(95376);function o(e,t){if(e.startsWith(".")){let r=t.origin+t.pathname;return new URL((r.endsWith("/")?r:r+"/")+e)}return new URL((0,n.addBasePath)(e),t.href)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95249:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let n=r(20107),o=r(25642),a="next-route-announcer";function u(e){let{tree:t}=e,[r,u]=(0,n.useState)(null);(0,n.useEffect)(()=>(u(function(){var e;let t=document.getElementsByName(a)[0];if(null==t?void 0:null==(e=t.shadowRoot)?void 0:e.childNodes[0])return t.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];(null==e?void 0:e.isConnected)&&document.body.removeChild(e)}),[]);let[l,i]=(0,n.useState)(""),s=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==s.current&&s.current!==e&&i(e),s.current=e},[t]),r?(0,o.createPortal)(l,r):null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90604:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HEADER:function(){return n},FLIGHT_HEADERS:function(){return c},NEXT_DID_POSTPONE_HEADER:function(){return p},NEXT_HMR_REFRESH_HEADER:function(){return l},NEXT_IS_PRERENDER_HEADER:function(){return h},NEXT_ROUTER_PREFETCH_HEADER:function(){return a},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return u},NEXT_ROUTER_STALE_TIME_HEADER:function(){return d},NEXT_ROUTER_STATE_TREE_HEADER:function(){return o},NEXT_RSC_UNION_QUERY:function(){return f},NEXT_URL:function(){return i},RSC_CONTENT_TYPE_HEADER:function(){return s},RSC_HEADER:function(){return r}});let r="RSC",n="Next-Action",o="Next-Router-State-Tree",a="Next-Router-Prefetch",u="Next-Router-Segment-Prefetch",l="Next-HMR-Refresh",i="Next-Url",s="text/x-component",c=[r,o,a,l,u],f="_rsc",d="x-nextjs-stale-time",p="x-nextjs-postponed",h="x-nextjs-prerender";("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},78311:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createEmptyCacheNode:function(){return M},createPrefetchURL:function(){return w},default:function(){return k}});let n=r(62599),o=r(20475),a=n._(r(20107)),u=r(32618),l=r(23093),i=r(94084),s=r(14839),c=r(59702),f=r(25339),d=r(80691),p=r(95376),h=r(95249),y=r(50157),g=r(27642),b=r(99153),_=r(52721),v=r(33099),m=r(4709),P=r(51079),E=r(53051);r(728);let O=r(2372),R=r(93475),S={};function j(e){return e.origin!==window.location.origin}function w(e){let t;if((0,d.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,p.addBasePath)(e),window.location.href)}catch(t){throw Error("Cannot prefetch '"+e+"' because it cannot be converted to a URL.")}return j(t)?null:t}function T(e){let{appRouterState:t}=e;return(0,a.useInsertionEffect)(()=>{let{tree:e,pushRef:r,canonicalUrl:n}=t,o={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:e};r.pendingPush&&(0,i.createHrefFromUrl)(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(o,"",n)):window.history.replaceState(o,"",n)},[t]),null}function M(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null}}function x(e){null==e&&(e={});let t=window.history.state,r=null==t?void 0:t.__NA;r&&(e.__NA=r);let n=null==t?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function A(e){let{headCacheNode:t}=e,r=null!==t?t.head:null,n=null!==t?t.prefetchHead:null,o=null!==n?n:r;return(0,a.useDeferredValue)(r,o)}function C(e){let t,{actionQueue:r,assetPrefix:n}=e,[i,f]=(0,c.useReducer)(r),{canonicalUrl:d}=(0,c.useUnwrapState)(i),{searchParams:P,pathname:M}=(0,a.useMemo)(()=>{let e=new URL(d,"undefined"==typeof window?"http://n":window.location.href);return{searchParams:e.searchParams,pathname:(0,v.hasBasePath)(e.pathname)?(0,_.removeBasePath)(e.pathname):e.pathname}},[d]),C=(0,a.useCallback)(e=>{let{previousTree:t,serverResponse:r}=e;(0,a.startTransition)(()=>{f({type:l.ACTION_SERVER_PATCH,previousTree:t,serverResponse:r})})},[f]),k=(0,a.useCallback)((e,t,r)=>{let n=new URL((0,p.addBasePath)(e),location.href);return f({type:l.ACTION_NAVIGATE,url:n,isExternalUrl:j(n),locationSearch:location.search,shouldScroll:null==r||r,navigateType:t,allowAliasing:!0})},[f]);(0,E.useServerActionDispatcher)(f);let D=(0,a.useMemo)(()=>({back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r=w(e);null!==r&&(0,a.startTransition)(()=>{var e;f({type:l.ACTION_PREFETCH,url:r,kind:null!=(e=null==t?void 0:t.kind)?e:l.PrefetchKind.FULL})})},replace:(e,t)=>{void 0===t&&(t={}),(0,a.startTransition)(()=>{var r;k(e,"replace",null==(r=t.scroll)||r)})},push:(e,t)=>{void 0===t&&(t={}),(0,a.startTransition)(()=>{var r;k(e,"push",null==(r=t.scroll)||r)})},refresh:()=>{(0,a.startTransition)(()=>{f({type:l.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Error("hmrRefresh can only be used in development mode. Please use refresh instead.")}}),[r,f,k]);(0,a.useEffect)(()=>{window.next&&(window.next.router=D)},[D]),(0,a.useEffect)(()=>{function e(e){var t;e.persisted&&(null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE)&&(S.pendingMpaPath=void 0,f({type:l.ACTION_RESTORE,url:new URL(window.location.href),tree:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[f]),(0,a.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,R.isRedirectError)(t)){e.preventDefault();let r=(0,O.getURLFromRedirectError)(t);(0,O.getRedirectTypeFromError)(t)===R.RedirectType.push?D.push(r,{}):D.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[D]);let{pushRef:N}=(0,c.useUnwrapState)(i);if(N.mpaNavigation){if(S.pendingMpaPath!==d){let e=window.location;N.pendingPush?e.assign(d):e.replace(d),S.pendingMpaPath=d}(0,a.use)(b.unresolvedThenable)}(0,a.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{var t;let r=window.location.href,n=null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,a.startTransition)(()=>{f({type:l.ACTION_RESTORE,url:new URL(null!=e?e:r,r),tree:n})})};window.history.pushState=function(t,n,o){return(null==t?void 0:t.__NA)||(null==t?void 0:t._N)||(t=x(t),o&&r(o)),e(t,n,o)},window.history.replaceState=function(e,n,o){return(null==e?void 0:e.__NA)||(null==e?void 0:e._N)||(e=x(e),o&&r(o)),t(e,n,o)};let n=e=>{if(e.state){if(!e.state.__NA){window.location.reload();return}(0,a.startTransition)(()=>{f({type:l.ACTION_RESTORE,url:new URL(window.location.href),tree:e.state.__PRIVATE_NEXTJS_INTERNALS_TREE})})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[f]);let{cache:I,tree:L,nextUrl:H,focusAndScrollRef:F}=(0,c.useUnwrapState)(i),$=(0,a.useMemo)(()=>(0,g.findHeadInCache)(I,L[1]),[I,L]),B=(0,a.useMemo)(()=>(0,m.getSelectedParams)(L),[L]),W=(0,a.useMemo)(()=>({childNodes:I.parallelRoutes,tree:L,url:d,loading:I.loading}),[I.parallelRoutes,L,d,I.loading]),G=(0,a.useMemo)(()=>({changeByServerResponse:C,tree:L,focusAndScrollRef:F,nextUrl:H}),[C,L,F,H]);if(null!==$){let[e,r]=$;t=(0,o.jsx)(A,{headCacheNode:e},r)}else t=null;let K=(0,o.jsxs)(y.RedirectBoundary,{children:[t,I.rsc,(0,o.jsx)(h.AppRouterAnnouncer,{tree:L})]});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(T,{appRouterState:(0,c.useUnwrapState)(i)}),(0,o.jsx)(U,{}),(0,o.jsx)(s.PathParamsContext.Provider,{value:B,children:(0,o.jsx)(s.PathnameContext.Provider,{value:M,children:(0,o.jsx)(s.SearchParamsContext.Provider,{value:P,children:(0,o.jsx)(u.GlobalLayoutRouterContext.Provider,{value:G,children:(0,o.jsx)(u.AppRouterContext.Provider,{value:D,children:(0,o.jsx)(u.LayoutRouterContext.Provider,{value:W,children:K})})})})})})]})}function k(e){let{actionQueue:t,globalErrorComponentAndStyles:[r,n],assetPrefix:a}=e;return(0,P.useNavFailureHandler)(),(0,o.jsx)(f.ErrorBoundary,{errorComponent:r,errorStyles:n,children:(0,o.jsx)(C,{actionQueue:t,assetPrefix:a})})}let D=new Set,N=new Set;function U(){let[,e]=a.default.useState(0),t=D.size;return(0,a.useEffect)(()=>{let r=()=>e(e=>e+1);return N.add(r),t!==D.size&&r(),()=>{N.delete(r)}},[t,e]),[...D].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:""+e,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=D.size;return D.add(e),D.size!==t&&N.forEach(e=>e()),Promise.resolve()},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},15407:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"bailoutToClientRendering",{enumerable:!0,get:function(){return a}});let n=r(13007),o=r(32381);function a(e){let t=o.workAsyncStorage.getStore();if((null==t||!t.forceStatic)&&(null==t?void 0:t.isStaticGeneration))throw new n.BailoutToCSRError(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5329:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return a}});let n=r(20475),o=r(83156);function a(e){let{Component:t,searchParams:a,params:u,promises:l}=e;if("undefined"==typeof window){let e,l;let{workAsyncStorage:i}=r(32381),s=i.getStore();if(!s)throw new o.InvariantError("Expected workStore to exist when handling searchParams in a client Page.");let{createSearchParamsFromClient:c}=r(78394);e=c(a,s);let{createParamsFromClient:f}=r(90215);return l=f(u,s),(0,n.jsx)(t,{params:l,searchParams:e})}{let{createRenderSearchParamsFromClient:e}=r(36756),o=e(a),{createRenderParamsFromClient:l}=r(98369),i=l(u);return(0,n.jsx)(t,{params:i,searchParams:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},92907:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return a}});let n=r(20475),o=r(83156);function a(e){let{Component:t,slots:a,params:u,promise:l}=e;if("undefined"==typeof window){let e;let{workAsyncStorage:l}=r(32381),i=l.getStore();if(!i)throw new o.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template.");let{createParamsFromClient:s}=r(90215);return e=s(u,i),(0,n.jsx)(t,{...a,params:e})}{let{createRenderParamsFromClient:e}=r(98369),o=e(u);return(0,n.jsx)(t,{...a,params:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25339:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return f},GlobalError:function(){return d},default:function(){return p}});let n=r(67342),o=r(20475),a=n._(r(20107)),u=r(40228),l=r(69211);r(51079);let i=r(32381),s={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},text:{fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"}};function c(e){let{error:t}=e,r=i.workAsyncStorage.getStore();if((null==r?void 0:r.isRevalidate)||(null==r?void 0:r.isStaticGeneration))throw console.error(t),t;return null}class f extends a.default.Component{static getDerivedStateFromError(e){if((0,l.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,o.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}}function d(e){let{error:t}=e,r=null==t?void 0:t.digest;return(0,o.jsxs)("html",{id:"__next_error__",children:[(0,o.jsx)("head",{}),(0,o.jsxs)("body",{children:[(0,o.jsx)(c,{error:t}),(0,o.jsx)("div",{style:s.error,children:(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{style:s.text,children:"Application error: a "+(r?"server":"client")+"-side exception has occurred (see the "+(r?"server logs":"browser console")+" for more information)."}),r?(0,o.jsx)("p",{style:s.text,children:"Digest: "+r}):null]})})]})]})}let p=d;function h(e){let{errorComponent:t,errorStyles:r,errorScripts:n,children:a}=e,l=(0,u.useUntrackedPathname)();return t?(0,o.jsx)(f,{pathname:l,errorComponent:t,errorStyles:r,errorScripts:n,children:a}):(0,o.jsx)(o.Fragment,{children:a})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},82029:(e,t,r)=>{"use strict";function n(){throw Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled.")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"forbidden",{enumerable:!0,get:function(){return n}}),r(20797).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},80099:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,r(75880).handleGlobalErrors)(),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},75394:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{originConsoleError:function(){return o},patchConsoleError:function(){return a}}),r(91194);let n=r(69211);r(75880);let o=window.console.error;function a(){"undefined"!=typeof window&&(window.console.error=function(){let e;for(var t=arguments.length,r=Array(t),a=0;a{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),(0,r(75394).patchConsoleError)(),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},75566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DynamicServerError:function(){return n},isDynamicServerError:function(){return o}});let r="DYNAMIC_SERVER_USAGE";class n extends Error{constructor(e){super("Dynamic server usage: "+e),this.description=e,this.digest=r}}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},30896:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return c}});let n=r(62599),o=r(20475),a=n._(r(20107)),u=r(40228),l=r(20797);r(20339);let i=r(32618);class s extends a.default.Component{componentDidCatch(){}static getDerivedStateFromError(e){if((0,l.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,l.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:a}=this.state,u={[l.HTTPAccessErrorStatus.NOT_FOUND]:e,[l.HTTPAccessErrorStatus.FORBIDDEN]:t,[l.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(a){let i=a===l.HTTPAccessErrorStatus.NOT_FOUND&&e,s=a===l.HTTPAccessErrorStatus.FORBIDDEN&&t,c=a===l.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||s||c?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("meta",{name:"robots",content:"noindex"}),!1,u[a]]}):n}return n}constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}}function c(e){let{notFound:t,forbidden:r,unauthorized:n,children:l}=e,c=(0,u.useUntrackedPathname)(),f=(0,a.useContext)(i.MissingSlotContext);return t||r||n?(0,o.jsx)(s,{pathname:c,notFound:t,forbidden:r,unauthorized:n,missingSlots:f,children:l}):(0,o.jsx)(o.Fragment,{children:l})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},20797:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTTPAccessErrorStatus:function(){return r},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return o},getAccessFallbackErrorTypeByStatus:function(){return l},getAccessFallbackHTTPStatus:function(){return u},isHTTPAccessFallbackError:function(){return a}});let r={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},n=new Set(Object.values(r)),o="NEXT_HTTP_ERROR_FALLBACK";function a(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===o&&n.has(Number(r))}function u(e){return Number(e.digest.split(";")[1])}function l(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},43008:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getDefaultHydrationErrorMessage:function(){return i},getHydrationErrorStackInfo:function(){return f},isHydrationError:function(){return s},isReactHydrationErrorMessage:function(){return c}});let n=r(67342)._(r(91194)),o=/hydration failed|while hydrating|content does not match|did not match|HTML didn't match/i,a="Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used",u=[a,"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:"],l="https://react.dev/link/hydration-mismatch",i=()=>a;function s(e){return(0,n.default)(e)&&o.test(e.message)}function c(e){return u.some(t=>e.startsWith(t))}function f(e){if(!c(e=e.replace(/^Error: /,"")))return{message:null};let t=e.indexOf("\n"),[r,n]=(e=e.slice(t+1).trim()).split(""+l),o=r.trim();if(!n||!(n.length>1))return{message:o,link:l,stack:n};{let e=[],t=[];return n.split("\n").forEach(r=>{""!==r.trim()&&(r.trim().startsWith("at ")?e.push(r):t.push(r))}),{message:o,link:l,diff:t.join("\n"),stack:e.join("\n")}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},69211:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNextRouterError",{enumerable:!0,get:function(){return a}});let n=r(20797),o=r(93475);function a(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},24900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return j}});let n=r(67342),o=r(62599),a=r(20475),u=o._(r(20107)),l=n._(r(25642)),i=r(32618),s=r(90883),c=r(99153),f=r(25339),d=r(82210),p=r(65200),h=r(50157),y=r(30896),g=r(25967),b=r(62228),_=r(51653),v=l.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,m=["bottom","height","left","right","top","width","x","y"];function P(e,t){let r=e.getBoundingClientRect();return r.top>=0&&r.top<=t}class E extends u.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:t}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>t.every((t,r)=>(0,d.matchSegment)(t,e[r]))))return;let r=null,n=e.hashFragment;if(n&&(r=function(e){var t;return"top"===e?document.body:null!=(t=document.getElementById(e))?t:document.getElementsByName(e)[0]}(n)),!r&&(r="undefined"==typeof window?null:(0,v.findDOMNode)(this)),!(r instanceof Element))return;for(;!(r instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let t=e.getBoundingClientRect();return m.every(e=>0===t[e])}(r);){if(null===r.nextElementSibling)return;r=r.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,p.handleSmoothScroll)(()=>{if(n){r.scrollIntoView();return}let e=document.documentElement,t=e.clientHeight;!P(r,t)&&(e.scrollTop=0,P(r,t)||r.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,r.focus()}}}}function O(e){let{segmentPath:t,children:r}=e,n=(0,u.useContext)(i.GlobalLayoutRouterContext);if(!n)throw Error("invariant global layout router not mounted");return(0,a.jsx)(E,{segmentPath:t,focusAndScrollRef:n.focusAndScrollRef,children:r})}function R(e){let{parallelRouterKey:t,url:r,childNodes:n,segmentPath:o,tree:l,cacheKey:f}=e,p=(0,u.useContext)(i.GlobalLayoutRouterContext);if(!p)throw Error("invariant global layout router not mounted");let{changeByServerResponse:h,tree:y}=p,g=n.get(f);if(void 0===g){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null};g=e,n.set(f,e)}let b=null!==g.prefetchRsc?g.prefetchRsc:g.rsc,v=(0,u.useDeferredValue)(g.rsc,b),m="object"==typeof v&&null!==v&&"function"==typeof v.then?(0,u.use)(v):v;if(!m){let e=g.lazyData;if(null===e){let t=function e(t,r){if(t){let[n,o]=t,a=2===t.length;if((0,d.matchSegment)(r[0],n)&&r[1].hasOwnProperty(o)){if(a){let t=e(void 0,r[1][o]);return[r[0],{...r[1],[o]:[t[0],t[1],t[2],"refetch"]}]}return[r[0],{...r[1],[o]:e(t.slice(2),r[1][o])}]}}return r}(["",...o],y),n=(0,_.hasInterceptionRouteInCurrentTree)(y);g.lazyData=e=(0,s.fetchServerResponse)(new URL(r,location.origin),{flightRouterState:t,nextUrl:n?p.nextUrl:null}).then(e=>((0,u.startTransition)(()=>{h({previousTree:y,serverResponse:e})}),e))}(0,u.use)(c.unresolvedThenable)}return(0,a.jsx)(i.LayoutRouterContext.Provider,{value:{tree:l[1][t],childNodes:g.parallelRoutes,url:r,loading:g.loading},children:m})}function S(e){let t,{loading:r,children:n}=e;if(t="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,u.use)(r):r){let e=t[0],r=t[1],o=t[2];return(0,a.jsx)(u.Suspense,{fallback:(0,a.jsxs)(a.Fragment,{children:[r,o,e]}),children:n})}return(0,a.jsx)(a.Fragment,{children:n})}function j(e){let{parallelRouterKey:t,segmentPath:r,error:n,errorStyles:o,errorScripts:l,templateStyles:s,templateScripts:c,template:d,notFound:p,forbidden:_,unauthorized:v}=e,m=(0,u.useContext)(i.LayoutRouterContext);if(!m)throw Error("invariant expected layout router to be mounted");let{childNodes:P,tree:E,url:j,loading:w}=m,T=P.get(t);T||(T=new Map,P.set(t,T));let M=E[1][t][0],x=(0,g.getSegmentValue)(M),A=[M];return(0,a.jsx)(a.Fragment,{children:A.map(e=>{let u=(0,g.getSegmentValue)(e),m=(0,b.createRouterCacheKey)(e);return(0,a.jsxs)(i.TemplateContext.Provider,{value:(0,a.jsx)(O,{segmentPath:r,children:(0,a.jsx)(f.ErrorBoundary,{errorComponent:n,errorStyles:o,errorScripts:l,children:(0,a.jsx)(S,{loading:w,children:(0,a.jsx)(y.HTTPAccessFallbackBoundary,{notFound:p,forbidden:_,unauthorized:v,children:(0,a.jsx)(h.RedirectBoundary,{children:(0,a.jsx)(R,{parallelRouterKey:t,url:j,tree:E,childNodes:T,segmentPath:r,cacheKey:m,isActive:x===u})})})})})}),children:[s,c,d]},(0,b.createRouterCacheKey)(e,!0))})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},82210:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{canSegmentBeOverridden:function(){return a},matchSegment:function(){return o}});let n=r(88870),o=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1],a=(e,t)=>{var r;return!Array.isArray(e)&&!!Array.isArray(t)&&(null==(r=(0,n.getSegmentParam)(e))?void 0:r.param)===t[0]};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},51079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleHardNavError:function(){return o},useNavFailureHandler:function(){return a}}),r(20107);let n=r(94084);function o(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,n.createHrefFromUrl)(new URL(window.location.href))!==(0,n.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function a(){}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40228:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useUntrackedPathname",{enumerable:!0,get:function(){return a}});let n=r(20107),o=r(14839);function a(){return!function(){if("undefined"==typeof window){let{workAsyncStorage:e}=r(32381),t=e.getStore();if(!t)return!1;let{fallbackRouteParams:n}=t;return!!n&&0!==n.size}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},65834:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return i.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return i.unauthorized},unstable_rethrow:function(){return i.unstable_rethrow},useParams:function(){return h},usePathname:function(){return d},useRouter:function(){return p},useSearchParams:function(){return f},useSelectedLayoutSegment:function(){return g},useSelectedLayoutSegments:function(){return y},useServerInsertedHTML:function(){return c.useServerInsertedHTML}});let n=r(20107),o=r(32618),a=r(14839),u=r(25967),l=r(63234),i=r(10901),s=r(48002),c=r(58741);function f(){let e=(0,n.useContext)(a.SearchParamsContext),t=(0,n.useMemo)(()=>e?new i.ReadonlyURLSearchParams(e):null,[e]);if("undefined"==typeof window){let{bailoutToClientRendering:e}=r(15407);e("useSearchParams()")}return t}function d(){return(0,s.useDynamicRouteParams)("usePathname()"),(0,n.useContext)(a.PathnameContext)}function p(){let e=(0,n.useContext)(o.AppRouterContext);if(null===e)throw Error("invariant expected app router to be mounted");return e}function h(){return(0,s.useDynamicRouteParams)("useParams()"),(0,n.useContext)(a.PathParamsContext)}function y(e){void 0===e&&(e="children"),(0,s.useDynamicRouteParams)("useSelectedLayoutSegments()");let t=(0,n.useContext)(o.LayoutRouterContext);return t?function e(t,r,n,o){let a;if(void 0===n&&(n=!0),void 0===o&&(o=[]),n)a=t[1][r];else{var i;let e=t[1];a=null!=(i=e.children)?i:Object.values(e)[0]}if(!a)return o;let s=a[0],c=(0,u.getSegmentValue)(s);return!c||c.startsWith(l.PAGE_SEGMENT_KEY)?o:(o.push(c),e(a,r,!1,o))}(t.tree,e):null}function g(e){void 0===e&&(e="children"),(0,s.useDynamicRouteParams)("useSelectedLayoutSegment()");let t=y(e);if(!t||0===t.length)return null;let r="children"===e?t[0]:t[t.length-1];return r===l.DEFAULT_SEGMENT_KEY?null:r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},10901:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return c},RedirectType:function(){return o.RedirectType},forbidden:function(){return u.forbidden},notFound:function(){return a.notFound},permanentRedirect:function(){return n.permanentRedirect},redirect:function(){return n.redirect},unauthorized:function(){return l.unauthorized},unstable_rethrow:function(){return i.unstable_rethrow}});let n=r(2372),o=r(93475),a=r(64216),u=r(82029),l=r(45050),i=r(91946);class s extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class c extends URLSearchParams{append(){throw new s}delete(){throw new s}set(){throw new s}sort(){throw new s}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},64216:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"notFound",{enumerable:!0,get:function(){return o}});let n=""+r(20797).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function o(){let e=Error(n);throw e.digest=n,e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},21339:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PromiseQueue",{enumerable:!0,get:function(){return s}});let n=r(32465),o=r(44911);var a=o._("_maxConcurrency"),u=o._("_runningCount"),l=o._("_queue"),i=o._("_processNext");class s{enqueue(e){let t,r;let o=new Promise((e,n)=>{t=e,r=n}),a=async()=>{try{n._(this,u)[u]++;let r=await e();t(r)}catch(e){r(e)}finally{n._(this,u)[u]--,n._(this,i)[i]()}};return n._(this,l)[l].push({promiseFn:o,task:a}),n._(this,i)[i](),o}bump(e){let t=n._(this,l)[l].findIndex(t=>t.promiseFn===e);if(t>-1){let e=n._(this,l)[l].splice(t,1)[0];n._(this,l)[l].unshift(e),n._(this,i)[i](!0)}}constructor(e=5){Object.defineProperty(this,i,{value:c}),Object.defineProperty(this,a,{writable:!0,value:void 0}),Object.defineProperty(this,u,{writable:!0,value:void 0}),Object.defineProperty(this,l,{writable:!0,value:void 0}),n._(this,a)[a]=e,n._(this,u)[u]=0,n._(this,l)[l]=[]}}function c(e){if(void 0===e&&(e=!1),(n._(this,u)[u]0){var t;null==(t=n._(this,l)[l].shift())||t.task()}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},98846:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"attachHydrationErrorState",{enumerable:!0,get:function(){return a}});let n=r(43008),o=r(71823);function a(e){if((0,n.isHydrationError)(e)&&!e.message.includes("https://nextjs.org/docs/messages/react-hydration-error")){let t=(0,o.getReactHydrationDiffSegments)(e.message),r={};t?r={...e.details,...o.hydrationErrorState,warning:o.hydrationErrorState.warning||[(0,n.getDefaultHydrationErrorMessage)()],notes:t[0],reactOutputComponentDiff:t[1]}:o.hydrationErrorState.warning&&(r={...e.details,...o.hydrationErrorState}),e.details=r}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},10559:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createUnhandledError:function(){return o},getUnhandledErrorType:function(){return u},isUnhandledConsoleOrRejection:function(){return a}});let r=Symbol.for("next.console.error.digest"),n=Symbol.for("next.console.error.type");function o(e){let t="string"==typeof e?Error(e):e;return t[r]="NEXT_UNHANDLED_ERROR",t[n]="string"==typeof e?"string":"error",t}let a=e=>e&&"NEXT_UNHANDLED_ERROR"===e[r],u=e=>e[n];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35002:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"enqueueConsecutiveDedupedError",{enumerable:!0,get:function(){return o}});let n=r(43008);function o(e,t){let r=(0,n.isHydrationError)(t),o=r?e[0]:e[e.length-1];o&&o.stack===t.stack||(r?e.unshift(t):e.push(t))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},71823:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getHydrationWarningType:function(){return l},getReactHydrationDiffSegments:function(){return d},hydrationErrorState:function(){return o},storeHydrationErrorStateFromConsoleArgs:function(){return p}});let n=r(43008),o={},a=new Set(["Warning: In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s","Warning: In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s","Warning: In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.","Warning: In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.","Warning: Expected server HTML to contain a matching <%s> in <%s>.%s","Warning: Did not expect server HTML to contain a <%s> in <%s>.%s"]),u=new Set(['Warning: Expected server HTML to contain a matching text node for "%s" in <%s>.%s','Warning: Did not expect server HTML to contain the text node "%s" in <%s>.%s']),l=e=>{if("string"!=typeof e)return"text";let t=e.startsWith("Warning: ")?e:"Warning: "+e;return i(t)?"tag":c(t)?"text-in-tag":"text"},i=e=>a.has(e),s=e=>'Warning: Text content did not match. Server: "%s" Client: "%s"%s'===e,c=e=>u.has(e),f=e=>{if("string"!=typeof e)return!1;let t=e.startsWith("Warning: ")?e:"Warning: "+e;return i(t)||c(t)||s(t)},d=e=>{if(e){let{message:t,diff:r}=(0,n.getHydrationErrorStackInfo)(e);if(t)return[t,r]}};function p(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getReactStitchedError",{enumerable:!0,get:function(){return s}});let n=r(67342),o=n._(r(20107)),a=n._(r(91194)),u="react-stack-bottom-frame",l=RegExp("(at "+u+" )|("+u+"\\@)"),i=o.default.captureOwnerStack?o.default.captureOwnerStack:()=>"";function s(e){if("function"!=typeof o.default.captureOwnerStack)return e;let t=(0,a.default)(e),r=t&&e.stack||"",n=t?e.message:"",u=r.split("\n"),s=u.findIndex(e=>l.test(e)),c=s>=0?u.slice(0,s).join("\n"):r,f=Error(n);return Object.assign(f,e),f.stack=c,function(e){let t=e.stack||"",r=i();r&&!1===t.endsWith(r)&&(t+=r,e.stack=t)}(f),f}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},75880:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleClientError:function(){return _},handleGlobalErrors:function(){return E},useErrorHandler:function(){return v}});let n=r(67342),o=r(20107),a=r(98846),u=r(69211),l=r(71823),i=r(13828),s=n._(r(91194)),c=r(10559),f=r(35002),d=r(3132),p=globalThis.queueMicrotask||(e=>Promise.resolve().then(e)),h=[],y=[],g=[],b=[];function _(e,t,r){let n;if(void 0===r&&(r=!1),e&&(0,s.default)(e))n=r?(0,c.createUnhandledError)(e):e;else{let e=(0,i.formatConsoleArgs)(t);n=(0,c.createUnhandledError)(e)}for(let e of(n=(0,d.getReactStitchedError)(n),(0,l.storeHydrationErrorStateFromConsoleArgs)(...t),(0,a.attachHydrationErrorState)(n),(0,f.enqueueConsecutiveDedupedError)(h,n),y))p(()=>{e(n)})}function v(e,t){(0,o.useEffect)(()=>(h.forEach(e),g.forEach(t),y.push(e),b.push(t),()=>{y.splice(y.indexOf(e),1),b.splice(b.indexOf(t),1)}),[e,t])}function m(e){if((0,u.isNextRouterError)(e.error))return e.preventDefault(),!1;_(e.error,[])}function P(e){let t=null==e?void 0:e.reason;if((0,u.isNextRouterError)(t)){e.preventDefault();return}let r=t;for(let e of(r&&!(0,s.default)(r)&&(r=(0,c.createUnhandledError)(r+"")),g.push(r),b))e(r)}function E(){if("undefined"!=typeof window){try{Error.stackTraceLimit=50}catch(e){}window.addEventListener("error",m),window.addEventListener("unhandledrejection",P)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},50157:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RedirectBoundary:function(){return f},RedirectErrorBoundary:function(){return c}});let n=r(62599),o=r(20475),a=n._(r(20107)),u=r(65834),l=r(2372),i=r(93475);function s(e){let{redirect:t,reset:r,redirectType:n}=e,o=(0,u.useRouter)();return(0,a.useEffect)(()=>{a.default.startTransition(()=>{n===i.RedirectType.push?o.push(t,{}):o.replace(t,{}),r()})},[t,n,r,o]),null}class c extends a.default.Component{static getDerivedStateFromError(e){if((0,i.isRedirectError)(e))return{redirect:(0,l.getURLFromRedirectError)(e),redirectType:(0,l.getRedirectTypeFromError)(e)};throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,o.jsx)(s,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}constructor(e){super(e),this.state={redirect:null,redirectType:null}}}function f(e){let{children:t}=e,r=(0,u.useRouter)();return(0,o.jsx)(c,{router:r,children:t})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},93475:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{REDIRECT_ERROR_CODE:function(){return o},RedirectType:function(){return a},isRedirectError:function(){return u}});let n=r(63865),o="NEXT_REDIRECT";var a=function(e){return e.push="push",e.replace="replace",e}({});function u(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,a]=t,u=t.slice(2,-2).join(";"),l=Number(t.at(-2));return r===o&&("replace"===a||"push"===a)&&"string"==typeof u&&!isNaN(l)&&l in n.RedirectStatusCode}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63865:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return r}});var r=function(e){return e[e.SeeOther=303]="SeeOther",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2372:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getRedirectError:function(){return u},getRedirectStatusCodeFromError:function(){return f},getRedirectTypeFromError:function(){return c},getURLFromRedirectError:function(){return s},permanentRedirect:function(){return i},redirect:function(){return l}});let n=r(55006),o=r(63865),a=r(93475);function u(e,t,r){void 0===r&&(r=o.RedirectStatusCode.TemporaryRedirect);let n=Error(a.REDIRECT_ERROR_CODE);return n.digest=a.REDIRECT_ERROR_CODE+";"+t+";"+e+";"+r+";",n}function l(e,t){let r=n.actionAsyncStorage.getStore();throw u(e,t||((null==r?void 0:r.isAction)?a.RedirectType.push:a.RedirectType.replace),o.RedirectStatusCode.TemporaryRedirect)}function i(e,t){throw void 0===t&&(t=a.RedirectType.replace),u(e,t,o.RedirectStatusCode.PermanentRedirect)}function s(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function c(e){if(!(0,a.isRedirectError)(e))throw Error("Not a redirect error");return e.digest.split(";",2)[1]}function f(e){if(!(0,a.isRedirectError)(e))throw Error("Not a redirect error");return Number(e.digest.split(";").at(-2))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},81570:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});let n=r(62599),o=r(20475),a=n._(r(20107)),u=r(32618);function l(){let e=(0,a.useContext)(u.TemplateContext);return(0,o.jsx)(o.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97296:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addSearchParamsToPageSegments:function(){return f},handleAliasedPrefetchEntry:function(){return c}});let n=r(63234),o=r(78311),a=r(66645),u=r(94084),l=r(62228),i=r(74077),s=r(53080);function c(e,t,r,c){let d,p=e.tree,h=e.cache,y=(0,u.createHrefFromUrl)(r);for(let e of t){if(!function e(t){if(!t)return!1;let r=t[2];if(t[3])return!0;for(let t in r)if(e(r[t]))return!0;return!1}(e.seedData))continue;let t=e.tree;t=f(t,Object.fromEntries(r.searchParams));let{seedData:u,isRootRender:s,pathToSegment:c}=e,g=["",...c];t=f(t,Object.fromEntries(r.searchParams));let b=(0,a.applyRouterStatePatchToTree)(g,p,t,y),_=(0,o.createEmptyCacheNode)();if(s&&u){let e=u[1],r=u[3];_.loading=r,_.rsc=e,function e(t,r,o,a){if(0!==Object.keys(o[1]).length)for(let u in o[1]){let i;let s=o[1][u],c=s[0],f=(0,l.createRouterCacheKey)(c),d=null!==a&&void 0!==a[2][u]?a[2][u]:null;if(null!==d){let e=d[1],t=d[3];i={lazyData:null,rsc:c.includes(n.PAGE_SEGMENT_KEY)?null:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:t}}else i={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null};let p=t.parallelRoutes.get(u);p?p.set(f,i):t.parallelRoutes.set(u,new Map([[f,i]])),e(i,r,s,d)}}(_,h,t,u)}else _.rsc=h.rsc,_.prefetchRsc=h.prefetchRsc,_.loading=h.loading,_.parallelRoutes=new Map(h.parallelRoutes),(0,i.fillCacheWithNewSubTreeDataButOnlyLoading)(_,h,e);b&&(p=b,h=_,d=!0)}return!!d&&(c.patchedTree=p,c.cache=h,c.canonicalUrl=y,c.hashFragment=r.hash,(0,s.handleMutable)(e,c))}function f(e,t){let[r,o,...a]=e;if(r.includes(n.PAGE_SEGMENT_KEY))return[(0,n.addSearchParamsIfPageSegment)(r,t),o,...a];let u={};for(let[e,r]of Object.entries(o))u[e]=f(r,t);return[r,u,...a]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99687:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyFlightData",{enumerable:!0,get:function(){return a}});let n=r(14375),o=r(74077);function a(e,t,r,a){let{tree:u,seedData:l,head:i,isRootRender:s}=r;if(null===l)return!1;if(s){let r=l[1],o=l[3];t.loading=o,t.rsc=r,t.prefetchRsc=null,(0,n.fillLazyItemsTillLeafWithHead)(t,e,u,l,i,a)}else t.rsc=e.rsc,t.prefetchRsc=e.prefetchRsc,t.parallelRoutes=new Map(e.parallelRoutes),t.loading=e.loading,(0,o.fillCacheWithNewSubTreeData)(t,e,r,a);return!0}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},66645:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,r,n,i){let s;let[c,f,d,p,h]=r;if(1===t.length){let e=l(r,n);return(0,u.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[y,g]=t;if(!(0,a.matchSegment)(y,c))return null;if(2===t.length)s=l(f[g],n);else if(null===(s=e((0,o.getNextFlightSegmentPath)(t),f[g],n,i)))return null;let b=[t[0],{...f,[g]:s},d,p];return h&&(b[4]=!0),(0,u.addRefreshMarkerToActiveParallelSegments)(b,i),b}}});let n=r(63234),o=r(76504),a=r(82210),u=r(9747);function l(e,t){let[r,o]=e,[u,i]=t;if(u===n.DEFAULT_SEGMENT_KEY&&r!==n.DEFAULT_SEGMENT_KEY)return e;if((0,a.matchSegment)(r,u)){let t={};for(let e in o)void 0!==i[e]?t[e]=l(o[e],i[e]):t[e]=o[e];for(let e in i)t[e]||(t[e]=i[e]);let n=[r,t];return e[2]&&(n[2]=e[2]),e[3]&&(n[3]=e[3]),e[4]&&(n[4]=e[4]),n}return t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},51851:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"clearCacheNodeDataForSegmentPath",{enumerable:!0,get:function(){return function e(t,r,a){let u=a.length<=2,[l,i]=a,s=(0,o.createRouterCacheKey)(i),c=r.parallelRoutes.get(l),f=t.parallelRoutes.get(l);f&&f!==c||(f=new Map(c),t.parallelRoutes.set(l,f));let d=null==c?void 0:c.get(s),p=f.get(s);if(u){p&&p.lazyData&&p!==d||f.set(s,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null});return}if(!p||!d){p||f.set(s,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null});return}return p===d&&(p={lazyData:p.lazyData,rsc:p.rsc,prefetchRsc:p.prefetchRsc,head:p.head,prefetchHead:p.prefetchHead,parallelRoutes:new Map(p.parallelRoutes),loading:p.loading},f.set(s,p)),e(p,d,(0,n.getNextFlightSegmentPath)(a))}}});let n=r(76504),o=r(62228);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4709:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{computeChangedPath:function(){return c},extractPathFromFlightRouterState:function(){return s},getSelectedParams:function(){return function e(t,r){for(let n of(void 0===r&&(r={}),Object.values(t[1]))){let t=n[0],a=Array.isArray(t),u=a?t[1]:t;!u||u.startsWith(o.PAGE_SEGMENT_KEY)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r}}});let n=r(92688),o=r(63234),a=r(82210),u=e=>"/"===e[0]?e.slice(1):e,l=e=>"string"==typeof e?"children"===e?"":e:e[1];function i(e){return e.reduce((e,t)=>""===(t=u(t))||(0,o.isGroupSegment)(t)?e:e+"/"+t,"")||"/"}function s(e){var t;let r=Array.isArray(e[0])?e[0][1]:e[0];if(r===o.DEFAULT_SEGMENT_KEY||n.INTERCEPTION_ROUTE_MARKERS.some(e=>r.startsWith(e)))return;if(r.startsWith(o.PAGE_SEGMENT_KEY))return"";let a=[l(r)],u=null!=(t=e[1])?t:{},c=u.children?s(u.children):void 0;if(void 0!==c)a.push(c);else for(let[e,t]of Object.entries(u)){if("children"===e)continue;let r=s(t);void 0!==r&&a.push(r)}return i(a)}function c(e,t){let r=function e(t,r){let[o,u]=t,[i,c]=r,f=l(o),d=l(i);if(n.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,a.matchSegment)(o,i)){var p;return null!=(p=s(r))?p:""}for(let t in u)if(c[t]){let r=e(u[t],c[t]);if(null!==r)return l(i)+"/"+r}return null}(e,t);return null==r||"/"===r?r:i(r.split("/"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},94084:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=!0),e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createHrefFromUrl",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},85010:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createInitialRouterState",{enumerable:!0,get:function(){return c}});let n=r(94084),o=r(14375),a=r(4709),u=r(26461),l=r(23093),i=r(9747),s=r(76504);function c(e){var t,r;let{initialFlightData:c,initialCanonicalUrlParts:f,initialParallelRoutes:d,location:p,couldBeIntercepted:h,postponed:y,prerendered:g}=e,b=f.join("/"),_=(0,s.getFlightDataPartsFromPath)(c[0]),{tree:v,seedData:m,head:P}=_,E=!p,O=null==m?void 0:m[1],R=null!=(t=null==m?void 0:m[3])?t:null,S={lazyData:null,rsc:O,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:E?new Map:d,loading:R},j=p?(0,n.createHrefFromUrl)(p):b;(0,i.addRefreshMarkerToActiveParallelSegments)(v,j);let w=new Map;(null===d||0===d.size)&&(0,o.fillLazyItemsTillLeafWithHead)(S,void 0,v,m,P);let T={tree:v,cache:S,prefetchCache:w,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:j,nextUrl:null!=(r=(0,a.extractPathFromFlightRouterState)(v)||(null==p?void 0:p.pathname))?r:null};if(p){let e=new URL(""+p.pathname+p.search,p.origin);(0,u.createSeededPrefetchCacheEntry)({url:e,data:{flightData:[_],canonicalUrl:void 0,couldBeIntercepted:!!h,prerendered:g,postponed:y,staleTime:-1},tree:T.tree,prefetchCache:T.prefetchCache,nextUrl:T.nextUrl,kind:g?l.PrefetchKind.FULL:l.PrefetchKind.AUTO})}return T}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},62228:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=r(63234);function o(e,t){return(void 0===t&&(t=!1),Array.isArray(e))?e[0]+"|"+e[1]+"|"+e[2]:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90883:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createFetch:function(){return h},createFromNextReadableStream:function(){return y},fetchServerResponse:function(){return p},urlToUrlWithoutFlightMarker:function(){return f}});let n=r(90604),o=r(53051),a=r(98387),u=r(23093),l=r(76249),i=r(76504),s=r(28567),{createFromReadableStream:c}=r(18971);function f(e){let t=new URL(e,location.origin);if(t.searchParams.delete(n.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function d(e){return{flightData:f(e).toString(),canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1}}async function p(e,t){let{flightRouterState:r,nextUrl:o,prefetchKind:a}=t,l={[n.RSC_HEADER]:"1",[n.NEXT_ROUTER_STATE_TREE_HEADER]:encodeURIComponent(JSON.stringify(r))};a===u.PrefetchKind.AUTO&&(l[n.NEXT_ROUTER_PREFETCH_HEADER]="1"),o&&(l[n.NEXT_URL]=o);try{var c;let t=a?a===u.PrefetchKind.TEMPORARY?"high":"low":"auto",r=await h(e,l,t),o=f(r.url),p=r.redirected?o:void 0,g=r.headers.get("content-type")||"",b=!!(null==(c=r.headers.get("vary"))?void 0:c.includes(n.NEXT_URL)),_=!!r.headers.get(n.NEXT_DID_POSTPONE_HEADER),v=r.headers.get(n.NEXT_ROUTER_STALE_TIME_HEADER),m=null!==v?parseInt(v,10):-1,P=g.startsWith(n.RSC_CONTENT_TYPE_HEADER);if(P||(P=g.startsWith("text/plain")),!P||!r.ok||!r.body)return e.hash&&(o.hash=e.hash),d(o.toString());let E=_?function(e){let t=e.getReader();return new ReadableStream({async pull(e){for(;;){let{done:r,value:n}=await t.read();if(!r){e.enqueue(n);continue}return}}})}(r.body):r.body,O=await y(E);if((0,s.getAppBuildId)()!==O.b)return d(r.url);return{flightData:(0,i.normalizeFlightData)(O.f),canonicalUrl:p,couldBeIntercepted:b,prerendered:O.S,postponed:_,staleTime:m}}catch(t){return console.error("Failed to fetch RSC payload for "+e+". Falling back to browser navigation.",t),{flightData:e.toString(),canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1}}}function h(e,t,r){let o=new URL(e);o.pathname.endsWith("/")?o.pathname+="index.txt":o.pathname+=".txt";let a=(0,l.hexHash)([t[n.NEXT_ROUTER_PREFETCH_HEADER]||"0",t[n.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]||"0",t[n.NEXT_ROUTER_STATE_TREE_HEADER],t[n.NEXT_URL]].join(","));return o.searchParams.set(n.NEXT_RSC_UNION_QUERY,a),fetch(o,{credentials:"same-origin",headers:t,priority:r||void 0})}function y(e){return c(e,{callServer:o.callServer,findSourceMapURL:a.findSourceMapURL})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},74077:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{fillCacheWithNewSubTreeData:function(){return i},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return s}});let n=r(69431),o=r(14375),a=r(62228),u=r(63234);function l(e,t,r,l,i){let{segmentPath:s,seedData:c,tree:f,head:d}=r,p=e,h=t;for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,r,a,u,l,i){if(0===Object.keys(a[1]).length){t.head=l;return}for(let s in a[1]){let c;let f=a[1][s],d=f[0],p=(0,n.createRouterCacheKey)(d),h=null!==u&&void 0!==u[2][s]?u[2][s]:null;if(r){let n=r.parallelRoutes.get(s);if(n){let r;let a=(null==i?void 0:i.kind)==="auto"&&i.status===o.PrefetchCacheEntryStatus.reusable,u=new Map(n),c=u.get(p);r=null!==h?{lazyData:null,rsc:h[1],prefetchRsc:null,head:null,prefetchHead:null,loading:h[3],parallelRoutes:new Map(null==c?void 0:c.parallelRoutes)}:a&&c?{lazyData:c.lazyData,rsc:c.rsc,prefetchRsc:c.prefetchRsc,head:c.head,prefetchHead:c.prefetchHead,parallelRoutes:new Map(c.parallelRoutes),loading:c.loading}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(null==c?void 0:c.parallelRoutes),loading:null},u.set(p,r),e(r,c,f,h||null,l,i),t.parallelRoutes.set(s,u);continue}}if(null!==h){let e=h[1],t=h[3];c={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:t}}else c={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null};let y=t.parallelRoutes.get(s);y?y.set(p,c):t.parallelRoutes.set(s,new Map([[p,c]])),e(c,void 0,f,h,l,i)}}}});let n=r(62228),o=r(23093);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleMutable",{enumerable:!0,get:function(){return a}});let n=r(4709);function o(e){return void 0!==e}function a(e,t){var r,a;let u=null==(r=t.shouldScroll)||r,l=e.nextUrl;if(o(t.patchedTree)){let r=(0,n.computeChangedPath)(e.tree,t.patchedTree);r?l=r:l||(l=e.canonicalUrl)}return{canonicalUrl:o(t.canonicalUrl)?t.canonicalUrl===e.canonicalUrl?e.canonicalUrl:t.canonicalUrl:e.canonicalUrl,pushRef:{pendingPush:o(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:o(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:o(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!u&&(!!o(null==t?void 0:t.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:u?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:u?null!=(a=null==t?void 0:t.scrollableSegments)?a:e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,prefetchCache:t.prefetchCache?t.prefetchCache:e.prefetchCache,tree:o(t.patchedTree)?t.patchedTree:e.tree,nextUrl:l}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},14610:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleSegmentMismatch",{enumerable:!0,get:function(){return o}});let n=r(48323);function o(e,t,r){return(0,n.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},70971:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheBelowFlightSegmentPath",{enumerable:!0,get:function(){return function e(t,r,a){let u=a.length<=2,[l,i]=a,s=(0,n.createRouterCacheKey)(i),c=r.parallelRoutes.get(l);if(!c)return;let f=t.parallelRoutes.get(l);if(f&&f!==c||(f=new Map(c),t.parallelRoutes.set(l,f)),u){f.delete(s);return}let d=c.get(s),p=f.get(s);p&&d&&(p===d&&(p={lazyData:p.lazyData,rsc:p.rsc,prefetchRsc:p.prefetchRsc,head:p.head,prefetchHead:p.prefetchHead,parallelRoutes:new Map(p.parallelRoutes)},f.set(s,p)),e(p,d,(0,o.getNextFlightSegmentPath)(a)))}}});let n=r(62228),o=r(76504);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},69431:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return o}});let n=r(62228);function o(e,t,r){for(let o in r[1]){let a=r[1][o][0],u=(0,n.createRouterCacheKey)(a),l=t.parallelRoutes.get(o);if(l){let t=new Map(l);t.delete(u),e.parallelRoutes.set(o,t)}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68425:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let n=t[0],o=r[0];if(Array.isArray(n)&&Array.isArray(o)){if(n[0]!==o[0]||n[2]!==o[2])return!0}else if(n!==o)return!0;if(t[4])return!r[4];if(r[4])return!0;let a=Object.values(t[1])[0],u=Object.values(r[1])[0];return!a||!u||e(a,u)}}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{abortTask:function(){return s},listenForDynamicRequest:function(){return i},updateCacheNodeOnNavigation:function(){return function e(t,r,l,i,s,c){let f=r[1],d=l[1],p=null!==i?i[2]:null,h=t.parallelRoutes,y=new Map(h),g={},b=null,_=!1;for(let t in d){let r;let l=d[t],i=f[t],v=h.get(t),m=null!==p?p[t]:null,P=l[0],E=(0,a.createRouterCacheKey)(P),O=void 0!==i?i[0]:void 0,R=void 0!==v?v.get(E):void 0;if(null!==(r=P===n.DEFAULT_SEGMENT_KEY?void 0!==i?{route:i,node:null,needsDynamicRequest:!1,children:null}:u(l,void 0!==m?m:null,s,c):void 0!==O&&(0,o.matchSegment)(P,O)&&void 0!==R&&void 0!==i?e(R,i,l,m,s,c):u(l,void 0!==m?m:null,s,c))){null===b&&(b=new Map),b.set(t,r);let e=r.node;if(null!==e){let r=new Map(v);r.set(E,e),y.set(t,r)}r.needsDynamicRequest&&(_=!0),g[t]=r.route}else g[t]=l}if(null===b)return null;let v={lazyData:null,rsc:t.rsc,prefetchRsc:t.prefetchRsc,head:t.head,prefetchHead:t.prefetchHead,loading:t.loading,parallelRoutes:y};return{route:function(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}(l,g),node:v,needsDynamicRequest:_,children:b}}},updateCacheNodeOnPopstateRestoration:function(){return function e(t,r){let n=r[1],o=t.parallelRoutes,u=new Map(o);for(let t in n){let r=n[t],l=r[0],i=(0,a.createRouterCacheKey)(l),s=o.get(t);if(void 0!==s){let n=s.get(i);if(void 0!==n){let o=e(n,r),a=new Map(s);a.set(i,o),u.set(t,a)}}}let l=t.rsc,i=d(l)&&"pending"===l.status;return{lazyData:null,rsc:l,head:t.head,prefetchHead:i?t.prefetchHead:null,prefetchRsc:i?t.prefetchRsc:null,loading:t.loading,parallelRoutes:u}}}});let n=r(63234),o=r(82210),a=r(62228);function u(e,t,r,n){if(null===t)return l(e,null,r,n);let o=e[1],i=t[4],s=0===Object.keys(o).length;if(i||n&&s)return l(e,t,r,n);let c=t[2],f=new Map,d=new Map,p=!1;for(let e in o){let t=o[e],l=null!==c?c[e]:null,i=t[0],s=(0,a.createRouterCacheKey)(i),h=u(t,l,r,n);f.set(e,h),h.needsDynamicRequest&&(p=!0);let y=h.node;if(null!==y){let t=new Map;t.set(s,y),d.set(e,t)}}return{route:e,node:{lazyData:null,rsc:t[1],prefetchRsc:null,head:s?r:null,prefetchHead:null,loading:t[3],parallelRoutes:d},needsDynamicRequest:p,children:f}}function l(e,t,r,n){return{route:e,node:function e(t,r,n,o){let u=t[1],l=null!==r?r[2]:null,i=new Map;for(let t in u){let r=u[t],s=null!==l?l[t]:null,c=r[0],f=(0,a.createRouterCacheKey)(c),d=e(r,void 0===s?null:s,n,o),p=new Map;p.set(f,d),i.set(t,p)}let s=0===i.size,c=null!==r?r[1]:null,f=null!==r?r[3]:null;return{lazyData:null,parallelRoutes:i,prefetchRsc:void 0!==c?c:null,prefetchHead:s?n:null,loading:void 0!==f?f:null,rsc:p(),head:s?p():null}}(e,t,r,n),needsDynamicRequest:!0,children:null}}function i(e,t){t.then(t=>{let{flightData:r}=t;if("string"!=typeof r){for(let t of r){let{segmentPath:r,tree:n,seedData:u,head:l}=t;u&&function(e,t,r,n,u){let l=e;for(let e=0;e{s(e,t)})}function s(e,t){let r=e.node;if(null===r)return;let n=e.children;if(null===n)c(e.route,r,t);else for(let e of n.values())s(e,t);e.needsDynamicRequest=!1}function c(e,t,r){let n=e[1],o=t.parallelRoutes;for(let e in n){let t=n[e],u=o.get(e);if(void 0===u)continue;let l=t[0],i=(0,a.createRouterCacheKey)(l),s=u.get(i);void 0!==s&&c(t,s,r)}let u=t.rsc;d(u)&&(null===r?u.resolve(null):u.reject(r));let l=t.head;d(l)&&l.resolve(null)}let f=Symbol();function d(e){return e&&e.tag===f}function p(){let e,t;let r=new Promise((r,n)=>{e=r,t=n});return r.status="pending",r.resolve=t=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,e(t))},r.reject=e=>{"pending"===r.status&&(r.status="rejected",r.reason=e,t(e))},r.tag=f,r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},26461:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createSeededPrefetchCacheEntry:function(){return s},getOrCreatePrefetchCacheEntry:function(){return i},prunePrefetchCache:function(){return f}});let n=r(90883),o=r(23093),a=r(50239);function u(e,t,r){let n=e.pathname;return(t&&(n+=e.search),r)?""+r+"%"+n:n}function l(e,t,r){return u(e,t===o.PrefetchKind.FULL,r)}function i(e){let{url:t,nextUrl:r,tree:n,prefetchCache:a,kind:l,allowAliasing:i=!0}=e,s=function(e,t,r,n,a){for(let l of(void 0===t&&(t=o.PrefetchKind.TEMPORARY),[r,null])){let r=u(e,!0,l),i=u(e,!1,l),s=e.search?r:i,c=n.get(s);if(c&&a){if(c.url.pathname===e.pathname&&c.url.search!==e.search)return{...c,aliased:!0};return c}let f=n.get(i);if(a&&e.search&&t!==o.PrefetchKind.FULL&&f&&!f.key.includes("%"))return{...f,aliased:!0}}if(t!==o.PrefetchKind.FULL&&a){for(let t of n.values())if(t.url.pathname===e.pathname&&!t.key.includes("%"))return{...t,aliased:!0}}}(t,l,r,a,i);return s?(s.status=h(s),s.kind!==o.PrefetchKind.FULL&&l===o.PrefetchKind.FULL&&s.data.then(e=>{if(!(Array.isArray(e.flightData)&&e.flightData.some(e=>e.isRootRender&&null!==e.seedData)))return c({tree:n,url:t,nextUrl:r,prefetchCache:a,kind:null!=l?l:o.PrefetchKind.TEMPORARY})}),l&&s.kind===o.PrefetchKind.TEMPORARY&&(s.kind=l),s):c({tree:n,url:t,nextUrl:r,prefetchCache:a,kind:l||o.PrefetchKind.TEMPORARY})}function s(e){let{nextUrl:t,tree:r,prefetchCache:n,url:a,data:u,kind:i}=e,s=u.couldBeIntercepted?l(a,i,t):l(a,i),c={treeAtTimeOfPrefetch:r,data:Promise.resolve(u),kind:i,prefetchTime:Date.now(),lastUsedTime:Date.now(),staleTime:-1,key:s,status:o.PrefetchCacheEntryStatus.fresh,url:a};return n.set(s,c),c}function c(e){let{url:t,kind:r,tree:u,nextUrl:i,prefetchCache:s}=e,c=l(t,r),f=a.prefetchQueue.enqueue(()=>(0,n.fetchServerResponse)(t,{flightRouterState:u,nextUrl:i,prefetchKind:r}).then(e=>{let r;if(e.couldBeIntercepted&&(r=function(e){let{url:t,nextUrl:r,prefetchCache:n,existingCacheKey:o}=e,a=n.get(o);if(!a)return;let u=l(t,a.kind,r);return n.set(u,{...a,key:u}),n.delete(o),u}({url:t,existingCacheKey:c,nextUrl:i,prefetchCache:s})),e.prerendered){let t=s.get(null!=r?r:c);t&&(t.kind=o.PrefetchKind.FULL,-1!==e.staleTime&&(t.staleTime=e.staleTime))}return e})),d={treeAtTimeOfPrefetch:u,data:f,kind:r,prefetchTime:Date.now(),lastUsedTime:null,staleTime:-1,key:c,status:o.PrefetchCacheEntryStatus.fresh,url:t};return s.set(c,d),d}function f(e){for(let[t,r]of e)h(r)===o.PrefetchCacheEntryStatus.expired&&e.delete(t)}let d=1e3*Number("0"),p=1e3*Number("300");function h(e){let{kind:t,prefetchTime:r,lastUsedTime:n,staleTime:a}=e;return -1!==a?Date.now(){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findHeadInCache",{enumerable:!0,get:function(){return o}});let n=r(62228);function o(e,t){return function e(t,r,o){if(0===Object.keys(r).length)return[t,o];for(let a in r){let[u,l]=r[a],i=t.parallelRoutes.get(a);if(!i)continue;let s=(0,n.createRouterCacheKey)(u),c=i.get(s);if(!c)continue;let f=e(c,l,o+"/"+s);if(f)return f}return null}(e,t,"")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25967:(e,t)=>{"use strict";function r(e){return Array.isArray(e)?e[1]:e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentValue",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},51653:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e(t){let[r,o]=t;if(Array.isArray(r)&&("di"===r[2]||"ci"===r[2])||"string"==typeof r&&(0,n.isInterceptionRouteAppPath)(r))return!0;if(o){for(let t in o)if(e(o[t]))return!0}return!1}}});let n=r(92688);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1383:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hmrRefreshReducer",{enumerable:!0,get:function(){return n}}),r(90883),r(94084),r(66645),r(68425),r(48323),r(53080),r(99687),r(78311),r(14610),r(51653);let n=function(e,t){return e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleExternalUrl:function(){return v},navigateReducer:function(){return function e(t,r){let{url:P,isExternalUrl:E,navigateType:O,shouldScroll:R,allowAliasing:S}=r,j={},{hash:w}=P,T=(0,o.createHrefFromUrl)(P),M="push"===O;if((0,g.prunePrefetchCache)(t.prefetchCache),j.preserveCustomHistoryState=!1,j.pendingPush=M,E)return v(t,j,P.toString(),M);if(document.getElementById("__next-page-redirect"))return v(t,j,T,M);let x=(0,g.getOrCreatePrefetchCacheEntry)({url:P,nextUrl:t.nextUrl,tree:t.tree,prefetchCache:t.prefetchCache,allowAliasing:S}),{treeAtTimeOfPrefetch:A,data:C}=x;return d.prefetchQueue.bump(C),C.then(d=>{let{flightData:g,canonicalUrl:E,postponed:O}=d,S=!1;if(x.lastUsedTime||(x.lastUsedTime=Date.now(),S=!0),"string"==typeof g)return v(t,j,g,M);let C=E?(0,o.createHrefFromUrl)(E):T;if(w&&t.canonicalUrl.split("#",1)[0]===C.split("#",1)[0])return j.onlyHashChange=!0,j.canonicalUrl=C,j.shouldScroll=R,j.hashFragment=w,j.scrollableSegments=[],(0,c.handleMutable)(t,j);if(x.aliased){let n=(0,_.handleAliasedPrefetchEntry)(t,g,P,j);return!1===n?e(t,{...r,allowAliasing:!1}):n}let k=t.tree,D=t.cache,N=[];for(let e of g){let{pathToSegment:r,seedData:o,head:c,isHeadPartial:d,isRootRender:g}=e,_=e.tree,E=["",...r],R=(0,u.applyRouterStatePatchToTree)(E,k,_,T);if(null===R&&(R=(0,u.applyRouterStatePatchToTree)(E,A,_,T)),null!==R){if((0,i.isNavigatingToNewRootLayout)(k,R))return v(t,j,T,M);if(o&&g&&O){let e=(0,y.updateCacheNodeOnNavigation)(D,k,_,o,c,d);if(null!==e){R=e.route;let r=e.node;if(null!==r&&(j.cache=r),e.needsDynamicRequest){let r=(0,n.fetchServerResponse)(P,{flightRouterState:k,nextUrl:t.nextUrl});(0,y.listenForDynamicRequest)(e,r)}}else R=_}else{let t=(0,p.createEmptyCacheNode)(),n=!1;x.status!==s.PrefetchCacheEntryStatus.stale||S?n=(0,f.applyFlightData)(D,t,e,x):(n=function(e,t,r,n){let o=!1;for(let a of(e.rsc=t.rsc,e.prefetchRsc=t.prefetchRsc,e.loading=t.loading,e.parallelRoutes=new Map(t.parallelRoutes),m(n).map(e=>[...r,...e])))(0,b.clearCacheNodeDataForSegmentPath)(e,t,a),o=!0;return o}(t,D,r,_),x.lastUsedTime=Date.now()),(0,l.shouldHardNavigate)(E,k)?(t.rsc=D.rsc,t.prefetchRsc=D.prefetchRsc,(0,a.invalidateCacheBelowFlightSegmentPath)(t,D,r),j.cache=t):n&&(j.cache=t,D=t)}for(let e of(k=R,m(_))){let t=[...r,...e];t[t.length-1]!==h.DEFAULT_SEGMENT_KEY&&N.push(t)}}}return j.patchedTree=k,j.canonicalUrl=C,j.scrollableSegments=N,j.hashFragment=w,j.shouldScroll=R,(0,c.handleMutable)(t,j)},()=>t)}}});let n=r(90883),o=r(94084),a=r(70971),u=r(66645),l=r(60636),i=r(68425),s=r(23093),c=r(53080),f=r(99687),d=r(50239),p=r(78311),h=r(63234),y=r(68079),g=r(26461),b=r(51851),_=r(97296);function v(e,t,r,n){return t.mpaNavigation=!0,t.canonicalUrl=r,t.pendingPush=n,t.scrollableSegments=void 0,(0,c.handleMutable)(e,t)}function m(e){let t=[],[r,n]=e;if(0===Object.keys(n).length)return[[r]];for(let[e,o]of Object.entries(n))for(let n of m(o))""===r?t.push([e,...n]):t.push([r,e,...n]);return t}r(36053),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},50239:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{prefetchQueue:function(){return a},prefetchReducer:function(){return u}});let n=r(21339),o=r(26461),a=new n.PromiseQueue(5),u=function(e,t){(0,o.prunePrefetchCache)(e.prefetchCache);let{url:r}=t;return(0,o.getOrCreatePrefetchCacheEntry)({url:r,nextUrl:e.nextUrl,prefetchCache:e.prefetchCache,kind:t.kind,tree:e.tree,allowAliasing:!0}),e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},36745:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"refreshReducer",{enumerable:!0,get:function(){return h}});let n=r(90883),o=r(94084),a=r(66645),u=r(68425),l=r(48323),i=r(53080),s=r(14375),c=r(78311),f=r(14610),d=r(51653),p=r(9747);function h(e,t){let{origin:r}=t,h={},y=e.canonicalUrl,g=e.tree;h.preserveCustomHistoryState=!1;let b=(0,c.createEmptyCacheNode)(),_=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);return b.lazyData=(0,n.fetchServerResponse)(new URL(y,r),{flightRouterState:[g[0],g[1],g[2],"refetch"],nextUrl:_?e.nextUrl:null}),b.lazyData.then(async r=>{let{flightData:n,canonicalUrl:c}=r;if("string"==typeof n)return(0,l.handleExternalUrl)(e,h,n,e.pushRef.pendingPush);for(let r of(b.lazyData=null,n)){let{tree:n,seedData:i,head:d,isRootRender:v}=r;if(!v)return console.log("REFRESH FAILED"),e;let m=(0,a.applyRouterStatePatchToTree)([""],g,n,e.canonicalUrl);if(null===m)return(0,f.handleSegmentMismatch)(e,t,n);if((0,u.isNavigatingToNewRootLayout)(g,m))return(0,l.handleExternalUrl)(e,h,y,e.pushRef.pendingPush);let P=c?(0,o.createHrefFromUrl)(c):void 0;if(c&&(h.canonicalUrl=P),null!==i){let e=i[1],t=i[3];b.rsc=e,b.prefetchRsc=null,b.loading=t,(0,s.fillLazyItemsTillLeafWithHead)(b,void 0,n,i,d),h.prefetchCache=new Map}await (0,p.refreshInactiveParallelSegments)({state:e,updatedTree:m,updatedCache:b,includeNextUrl:_,canonicalUrl:h.canonicalUrl||e.canonicalUrl}),h.cache=b,h.patchedTree=m,g=m}return(0,i.handleMutable)(e,h)},()=>e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},80336:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"restoreReducer",{enumerable:!0,get:function(){return a}});let n=r(94084),o=r(4709);function a(e,t){var r;let{url:a,tree:u}=t,l=(0,n.createHrefFromUrl)(a),i=u||e.tree,s=e.cache;return{canonicalUrl:l,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:s,prefetchCache:e.prefetchCache,tree:i,nextUrl:null!=(r=(0,o.extractPathFromFlightRouterState)(i))?r:a.pathname}}r(68079),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},24474:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverActionReducer",{enumerable:!0,get:function(){return M}});let n=r(53051),o=r(98387),a=r(90604),u=r(23093),l=r(45982),i=r(94084),s=r(48323),c=r(66645),f=r(68425),d=r(53080),p=r(14375),h=r(78311),y=r(51653),g=r(14610),b=r(9747),_=r(76504),v=r(2372),m=r(93475),P=r(26461),E=r(52721),O=r(33099),R=r(56797),{createFromFetch:S,createTemporaryReferenceSet:j,encodeReply:w}=r(18971);async function T(e,t,r){let u,i,{actionId:s,actionArgs:c}=r,f=j(),d=(0,R.extractInfoFromServerReferenceId)(s),p="use-cache"===d.type?(0,R.omitUnusedArgs)(c,d):c,h=await w(p,{temporaryReferences:f}),y=await fetch("",{method:"POST",headers:{Accept:a.RSC_CONTENT_TYPE_HEADER,[a.ACTION_HEADER]:s,[a.NEXT_ROUTER_STATE_TREE_HEADER]:encodeURIComponent(JSON.stringify(e.tree)),...t?{[a.NEXT_URL]:t}:{}},body:h}),g=y.headers.get("x-action-redirect"),[b,v]=(null==g?void 0:g.split(";"))||[];switch(v){case"push":u=m.RedirectType.push;break;case"replace":u=m.RedirectType.replace;break;default:u=void 0}let P=!!y.headers.get(a.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(y.headers.get("x-action-revalidated")||"[[],0,0]");i={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){i={paths:[],tag:!1,cookie:!1}}let E=b?(0,l.assignLocation)(b,new URL(e.canonicalUrl,window.location.href)):void 0,O=y.headers.get("content-type");if(null==O?void 0:O.startsWith(a.RSC_CONTENT_TYPE_HEADER)){let e=await S(Promise.resolve(y),{callServer:n.callServer,findSourceMapURL:o.findSourceMapURL,temporaryReferences:f});return b?{actionFlightData:(0,_.normalizeFlightData)(e.f),redirectLocation:E,redirectType:u,revalidatedParts:i,isPrerender:P}:{actionResult:e.a,actionFlightData:(0,_.normalizeFlightData)(e.f),redirectLocation:E,redirectType:u,revalidatedParts:i,isPrerender:P}}if(y.status>=400)throw Error("text/plain"===O?await y.text():"An unexpected response was received from the server.");return{redirectLocation:E,redirectType:u,revalidatedParts:i,isPrerender:P}}function M(e,t){let{resolve:r,reject:n}=t,o={},a=e.tree;o.preserveCustomHistoryState=!1;let l=e.nextUrl&&(0,y.hasInterceptionRouteInCurrentTree)(e.tree)?e.nextUrl:null;return T(e,l,t).then(async y=>{let _,{actionResult:R,actionFlightData:S,redirectLocation:j,redirectType:w,isPrerender:T,revalidatedParts:M}=y;if(j&&(w===m.RedirectType.replace?(e.pushRef.pendingPush=!1,o.pendingPush=!1):(e.pushRef.pendingPush=!0,o.pendingPush=!0),_=(0,i.createHrefFromUrl)(j,!1),o.canonicalUrl=_),!S)return(r(R),j)?(0,s.handleExternalUrl)(e,o,j.href,e.pushRef.pendingPush):e;if("string"==typeof S)return r(R),(0,s.handleExternalUrl)(e,o,S,e.pushRef.pendingPush);let x=M.paths.length>0||M.tag||M.cookie;for(let n of S){let{tree:u,seedData:i,head:d,isRootRender:y}=n;if(!y)return console.log("SERVER ACTION APPLY FAILED"),r(R),e;let v=(0,c.applyRouterStatePatchToTree)([""],a,u,_||e.canonicalUrl);if(null===v)return r(R),(0,g.handleSegmentMismatch)(e,t,u);if((0,f.isNavigatingToNewRootLayout)(a,v))return r(R),(0,s.handleExternalUrl)(e,o,_||e.canonicalUrl,e.pushRef.pendingPush);if(null!==i){let t=i[1],r=(0,h.createEmptyCacheNode)();r.rsc=t,r.prefetchRsc=null,r.loading=i[3],(0,p.fillLazyItemsTillLeafWithHead)(r,void 0,u,i,d),o.cache=r,o.prefetchCache=new Map,x&&await (0,b.refreshInactiveParallelSegments)({state:e,updatedTree:v,updatedCache:r,includeNextUrl:!!l,canonicalUrl:o.canonicalUrl||e.canonicalUrl})}o.patchedTree=v,a=v}return j&&_?(x||((0,P.createSeededPrefetchCacheEntry)({url:j,data:{flightData:S,canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1},tree:e.tree,prefetchCache:e.prefetchCache,nextUrl:e.nextUrl,kind:T?u.PrefetchKind.FULL:u.PrefetchKind.AUTO}),o.prefetchCache=e.prefetchCache),n((0,v.getRedirectError)((0,O.hasBasePath)(_)?(0,E.removeBasePath)(_):_,w||m.RedirectType.push))):r(R),(0,d.handleMutable)(e,o)},t=>(n(t),e))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},77064:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let n=r(94084),o=r(66645),a=r(68425),u=r(48323),l=r(99687),i=r(53080),s=r(78311);function c(e,t){let{serverResponse:{flightData:r,canonicalUrl:c}}=t,f={};if(f.preserveCustomHistoryState=!1,"string"==typeof r)return(0,u.handleExternalUrl)(e,f,r,e.pushRef.pendingPush);let d=e.tree,p=e.cache;for(let t of r){let{segmentPath:r,tree:i}=t,h=(0,o.applyRouterStatePatchToTree)(["",...r],d,i,e.canonicalUrl);if(null===h)return e;if((0,a.isNavigatingToNewRootLayout)(d,h))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);let y=c?(0,n.createHrefFromUrl)(c):void 0;y&&(f.canonicalUrl=y);let g=(0,s.createEmptyCacheNode)();(0,l.applyFlightData)(p,g,t),f.patchedTree=h,f.cache=g,p=g,d=h}return(0,i.handleMutable)(e,f)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},56797:(e,t)=>{"use strict";function r(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function n(e,t){let r=Array(e.length);for(let n=0;n=6&&t.hasRestArgs)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{extractInfoFromServerReferenceId:function(){return r},omitUnusedArgs:function(){return n}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9747:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addRefreshMarkerToActiveParallelSegments:function(){return function e(t,r){let[n,o,,u]=t;for(let l in n.includes(a.PAGE_SEGMENT_KEY)&&"refresh"!==u&&(t[2]=r,t[3]="refresh"),o)e(o[l],r)}},refreshInactiveParallelSegments:function(){return u}});let n=r(99687),o=r(90883),a=r(63234);async function u(e){let t=new Set;await l({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function l(e){let{state:t,updatedTree:r,updatedCache:a,includeNextUrl:u,fetchedSegments:i,rootTree:s=r,canonicalUrl:c}=e,[,f,d,p]=r,h=[];if(d&&d!==c&&"refresh"===p&&!i.has(d)){i.add(d);let e=(0,o.fetchServerResponse)(new URL(d,location.origin),{flightRouterState:[s[0],s[1],s[2],"refetch"],nextUrl:u?t.nextUrl:null}).then(e=>{let{flightData:t}=e;if("string"!=typeof t)for(let e of t)(0,n.applyFlightData)(a,a,e)});h.push(e)}for(let e in f){let r=l({state:t,updatedTree:f[e],updatedCache:a,includeNextUrl:u,fetchedSegments:i,rootTree:s,canonicalUrl:c});h.push(r)}await Promise.all(h)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},23093:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return n},ACTION_PREFETCH:function(){return u},ACTION_REFRESH:function(){return r},ACTION_RESTORE:function(){return o},ACTION_SERVER_ACTION:function(){return i},ACTION_SERVER_PATCH:function(){return a},PrefetchCacheEntryStatus:function(){return c},PrefetchKind:function(){return s}});let r="refresh",n="navigate",o="restore",a="server-patch",u="prefetch",l="hmr-refresh",i="server-action";var s=function(e){return e.AUTO="auto",e.FULL="full",e.TEMPORARY="temporary",e}({}),c=function(e){return e.fresh="fresh",e.reusable="reusable",e.expired="expired",e.stale="stale",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},27749:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reducer",{enumerable:!0,get:function(){return f}});let n=r(23093),o=r(48323),a=r(77064),u=r(80336),l=r(36745),i=r(50239),s=r(1383),c=r(24474),f="undefined"==typeof window?function(e,t){return e}:function(e,t){switch(t.type){case n.ACTION_NAVIGATE:return(0,o.navigateReducer)(e,t);case n.ACTION_SERVER_PATCH:return(0,a.serverPatchReducer)(e,t);case n.ACTION_RESTORE:return(0,u.restoreReducer)(e,t);case n.ACTION_REFRESH:return(0,l.refreshReducer)(e,t);case n.ACTION_HMR_REFRESH:return(0,s.hmrRefreshReducer)(e,t);case n.ACTION_PREFETCH:return(0,i.prefetchReducer)(e,t);case n.ACTION_SERVER_ACTION:return(0,c.serverActionReducer)(e,t);default:throw Error("Unknown action")}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60636:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"shouldHardNavigate",{enumerable:!0,get:function(){return function e(t,r){let[a,u]=r,[l,i]=t;return(0,o.matchSegment)(l,a)?!(t.length<=2)&&e((0,n.getNextFlightSegmentPath)(t),u[i]):!!Array.isArray(l)}}});let n=r(76504),o=r(82210);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60769:(e,t)=>{"use strict";function r(e,t){let r=new URL(e);return r.search="",{href:r.href,nextUrl:t}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35763:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{EntryStatus:function(){return c},readExactRouteCacheEntry:function(){return y},readRouteCacheEntry:function(){return g},readSegmentCacheEntry:function(){return b},requestRouteCacheEntryFromCache:function(){return v},requestSegmentEntryFromCache:function(){return m},waitForSegmentCacheEntry:function(){return _}});let n=r(90604),o=r(90883),a=r(73096),u=r(28567),l=r(94084),i=r(60928),s=r(63952);var c=function(e){return e[e.Pending=0]="Pending",e[e.Rejected=1]="Rejected",e[e.Fulfilled=2]="Fulfilled",e}({});let f=(0,i.createTupleMap)(),d=(0,s.createLRU)(0xa00000,function(e){let t=e.keypath;null!==t&&(e.keypath=null,E(e),f.delete(t))}),p=new Map,h=(0,s.createLRU)(0x3200000,function(e){let t=e.key;null!==t&&(e.key=null,P(e),p.delete(t))});function y(e,t,r){let n=null===r?[t]:[t,r],o=f.get(n);if(null!==o){if(o.staleAt>e)return d.put(o),o;E(o),f.delete(n),d.delete(o)}return null}function g(e,t){let r=y(e,t.href,null);return null===r||r.couldBeIntercepted?y(e,t.href,t.nextUrl):r}function b(e,t){let r=p.get(t);if(void 0!==r){if(r.staleAt>e)return h.put(r),r;P(r),p.delete(t),h.delete(r)}return null}function _(e){let t=e.promise;return null===t&&(t=e.promise=function(){let e,t;let r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}()),t.promise}function v(e,t){let r=t.key,n=y(e,r.href,null);if(null!==n&&!n.couldBeIntercepted)return n;let o=y(e,r.href,r.nextUrl);if(null!==o)return o;let u={canonicalUrl:null,status:0,blockedTasks:null,tree:null,head:null,isHeadPartial:!0,staleAt:e+6e4,couldBeIntercepted:!0,keypath:null,next:null,prev:null,size:0};(0,a.spawnPrefetchSubtask)(S(u,t));let l=null===r.nextUrl?[r.href]:[r.href,r.nextUrl];return f.set(l,u),u.keypath=l,d.put(u),u}function m(e,t,r,n,o){let u=b(e,n);if(null!==u)return u;let l={status:0,rsc:null,loading:null,staleAt:r.staleAt,isPartial:!0,promise:null,key:null,next:null,prev:null,size:0};return(0,a.spawnPrefetchSubtask)(j(r,l,t.key,n,o)),p.set(n,l),l.key=n,h.put(l),l}function P(e){0===e.status&&null!==e.promise&&(e.promise.resolve(null),e.promise=null)}function E(e){let t=e.blockedTasks;if(null!==t){for(let e of t)(0,a.pingPrefetchTask)(e);e.blockedTasks=null}}function O(e,t){e.status=1,e.staleAt=t,E(e)}function R(e,t){e.status=1,e.staleAt=t,null!==e.promise&&(e.promise.resolve(null),e.promise=null)}async function S(e,t){let r=t.key,a=r.href,i=r.nextUrl;try{var s,c,p,h;let t=await w(a,"/_tree",i);if(!t||!t.ok||204===t.status||!t.body){O(e,Date.now()+1e4);return}let r=T(t.body,d,e),y=await (0,o.createFromNextReadableStream)(r);if(y.buildId!==(0,u.getAppBuildId)()){O(e,Date.now()+1e4);return}let g=t.redirected?(0,l.createHrefFromUrl)((0,o.urlToUrlWithoutFlightMarker)(t.url)):a,b=t.headers.get("vary"),_=null!==b&&b.includes(n.NEXT_URL);if(s=y.tree,c=y.head,p=y.isHeadPartial,h=Date.now()+y.staleTime,e.status=2,e.tree=s,e.head=c,e.isHeadPartial=p,e.staleAt=h,e.couldBeIntercepted=_,e.canonicalUrl=g,E(e),!_&&null!==i){let t=[a,i];if(f.get(t)===e){f.delete(t);let r=[a];f.set(r,e),e.keypath=r}}}catch(t){O(e,Date.now()+1e4)}}async function j(e,t,r,n,a){let l=r.href;try{var i,s,c,f;let d=await w(l,""===a?n:n+"."+a,r.nextUrl);if(!d||!d.ok||204===d.status||!d.body){R(t,Date.now()+1e4);return}let p=T(d.body,h,t),y=await (0,o.createFromNextReadableStream)(p);if(y.buildId!==(0,u.getAppBuildId)()){R(t,Date.now()+1e4);return}i=y.rsc,s=y.loading,c=e.staleAt,f=y.isPartial,t.status=2,t.rsc=i,t.loading=s,t.staleAt=c,t.isPartial=f,null!==t.promise&&(t.promise.resolve(t),t.promise=null)}catch(e){R(t,Date.now()+1e4)}}async function w(e,t,r){let u={[n.RSC_HEADER]:"1",[n.NEXT_ROUTER_PREFETCH_HEADER]:"1",[n.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:t};null!==r&&(u[n.NEXT_URL]=r);let l=(0,o.createFetch)(new URL(e),u,"low");(0,a.trackPrefetchRequestBandwidth)(l);let i=await l,s=i.headers.get("content-type"),c=s&&s.startsWith(n.RSC_CONTENT_TYPE_HEADER);return i.ok&&c?i:null}function T(e,t,r){let n=0,o=e.getReader();return new ReadableStream({async pull(e){for(;;){let{done:a,value:u}=await o.read();if(!a){e.enqueue(u),n+=u.byteLength,t.updateSize(r,n);continue}return}}})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63952:(e,t)=>{"use strict";function r(e,t){let r=null,o=!1,a=0;function u(e){let t=e.next,n=e.prev;null!==t&&null!==n&&(a-=e.size,e.next=null,e.prev=null,r===e?r=t===r?null:t:(n.next=t,t.prev=n))}function l(){o||a<=e||(o=!0,n(i))}function i(){o=!1;let n=.9*e;for(;a>n&&null!==r;){let e=r.prev;u(e),t(e)}}return{put:function(e){if(r===e)return;let t=e.prev,n=e.next;if(null===n||null===t?(a+=e.size,l()):(t.next=n,n.prev=t),null===r)e.prev=e,e.next=e;else{let t=r.prev;e.prev=t,t.next=e,e.next=r,r.prev=e}r=e},delete:u,updateSize:function(e,t){if(null===e.next)return;let r=e.size;e.size=t,a=a-r+t,l()}}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createLRU",{enumerable:!0,get:function(){return r}});let n="function"==typeof requestIdleCallback?requestIdleCallback:e=>setTimeout(e,0);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},36053:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{NavigationResultTag:function(){return i},navigate:function(){return c}});let n=r(90883),o=r(68079),a=r(94084),u=r(35763),l=r(60769);var i=function(e){return e[e.MPA=0]="MPA",e[e.Success=1]="Success",e[e.NoOp=2]="NoOp",e[e.Async=3]="Async",e}({});let s={tag:2,data:null};function c(e,t,r,a){let i=Date.now(),c=(0,l.createCacheKey)(e.href,a),p=(0,u.readRouteCacheEntry)(i,c);if(null!==p&&p.status===u.EntryStatus.Fulfilled){let l=function e(t,r){let n={},o={},a=r.slots;if(null!==a)for(let r in a){let u=e(t,a[r]);n[r]=u.flightRouterState,o[r]=u.seedData}let l=null,i=null,s=!0,c=(0,u.readSegmentCacheEntry)(t,r.path);if(null!==c)switch(c.status){case u.EntryStatus.Fulfilled:l=c.rsc,i=c.loading,s=c.isPartial;break;case u.EntryStatus.Pending:{let e=(0,u.waitForSegmentCacheEntry)(c);l=e.then(e=>null!==e?e.rsc:null),i=e.then(e=>null!==e?e.loading:null),s=!0}case u.EntryStatus.Rejected:}let f=r.extra,d=f[0];return{flightRouterState:[d,n,null,null,f[1]],seedData:[d,l,o,i,s]}}(i,p.tree),c=l.flightRouterState,d=l.seedData;return function(e,t,r,a,u,l,i,c,d){let p=(0,o.updateCacheNodeOnNavigation)(r,a,u,l,i,c);if(null!==p){if(p.needsDynamicRequest){let r=(0,n.fetchServerResponse)(e,{flightRouterState:a,nextUrl:t});(0,o.listenForDynamicRequest)(p,r)}return f(p,r,d)}return s}(e,a,t,r,c,d,p.head,p.isHeadPartial,p.canonicalUrl)}return{tag:3,data:d(e,a,t,r)}}function f(e,t,r){let n=e.node;return{tag:1,data:{flightRouterState:e.route,cacheNode:null!==n?n:t,canonicalUrl:r}}}async function d(e,t,r,u){let l=(0,n.fetchServerResponse)(e,{flightRouterState:u,nextUrl:t}),{flightData:i,canonicalUrl:c}=await l;if("string"==typeof i)return{tag:0,data:i};let d=function(e,t){let r=e;for(let{segmentPath:n,tree:o}of t){let t=r!==e;r=function e(t,r,n,o,a){if(a===n.length)return r;let u=n[a],l=t[1],i={};for(let t in l)if(t===u){let u=l[t];i[t]=e(u,r,n,o,a+2)}else i[t]=l[t];if(o)return t[1]=i,t;let s=[t[0],i];return 2 in t&&(s[2]=t[2]),3 in t&&(s[3]=t[3]),4 in t&&(s[4]=t[4]),s}(r,o,n,t,0)}return r}(u,i),p=(0,a.createHrefFromUrl)(c||e),h=(0,o.updateCacheNodeOnNavigation)(r,u,d,null,null,!0);return null!==h?(h.needsDynamicRequest&&(0,o.listenForDynamicRequest)(h,l),f(h,r,p)):s}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},728:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"prefetch",{enumerable:!0,get:function(){return u}});let n=r(78311),o=r(60769),a=r(73096);function u(e,t){let r=(0,n.createPrefetchURL)(e);if(null===r)return;let u=(0,o.createCacheKey)(r.href,t);(0,a.schedulePrefetchTask)(u)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},73096:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{pingPrefetchTask:function(){return y},schedulePrefetchTask:function(){return s},spawnPrefetchSubtask:function(){return p},trackPrefetchRequestBandwidth:function(){return f}});let n=r(35763),o="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),a=[],u=0,l=0,i=!1;function s(e){_(a,{key:e,sortId:l++,isBlocked:!1,_heapIndex:-1}),c()}function c(){!i&&u<3&&(i=!0,o(g))}function f(e){u++,e.then(h,h)}let d=()=>{};function p(e){e.then(d,d)}function h(){u--,c()}function y(e){e.isBlocked&&(e.isBlocked=!1,_(a,e),c())}function g(){i=!1;let e=Date.now(),t=v(a);for(;null!==t&&u<3;){let r=(0,n.requestRouteCacheEntryFromCache)(e,t);switch(function(e,t,r){switch(r.status){case n.EntryStatus.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case n.EntryStatus.Rejected:return 2;case n.EntryStatus.Fulfilled:{if(!(u<3))return 0;let o=r.tree;return(0,n.requestSegmentEntryFromCache)(e,t,r,o.path,""),function e(t,r,o,a){if(null!==a.slots)for(let l in a.slots){let i=a.slots[l];if(!(u<3))return 0;{let e=i.path,a=i.token;(0,n.requestSegmentEntryFromCache)(t,r,o,e,a)}if(0===e(t,r,o,i))return 0}return 2}(e,t,r,o)}default:return 2}}(e,t,r)){case 0:default:return;case 1:t.isBlocked=!0,m(a),t=v(a);continue;case 2:m(a),t=v(a);continue}}}function b(e,t){return t.sortId-e.sortId}function _(e,t){let r=e.length;e.push(t),t._heapIndex=r,function(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,o=e[r];if(!(b(o,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=o,o._heapIndex=n,n=r}}(e,t,r)}function v(e){return 0===e.length?null:e[0]}function m(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let r=e.pop();return r!==t&&(e[0]=r,r._heapIndex=0,function(e,t,r){let n=0,o=e.length,a=o>>>1;for(;nb(a,t))ub(l,a)?(e[n]=l,l._heapIndex=n,e[u]=t,t._heapIndex=u,n=u):(e[n]=a,a._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(ub(l,t)))return;e[n]=l,l._heapIndex=n,e[u]=t,t._heapIndex=u,n=u}}}(e,r,0)),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60928:(e,t)=>{"use strict";function r(){let e={parent:null,key:null,hasValue:!1,value:null,map:null},t=null,r=null;function n(n){if(r===n)return t;let o=e;for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{StaticGenBailoutError:function(){return n},isStaticGenBailoutError:function(){return o}});let r="NEXT_STATIC_GEN_BAILOUT";class n extends Error{constructor(...e){super(...e),this.code=r}}function o(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},45050:(e,t,r)=>{"use strict";function n(){throw Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled.")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unauthorized",{enumerable:!0,get:function(){return n}}),r(20797).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99153:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unresolvedThenable",{enumerable:!0,get:function(){return r}});let r={then:()=>{}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},91946:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,u.isNextRouterError)(t)||(0,a.isBailoutToCSRError)(t)||(0,n.isDynamicUsageError)(t)||(0,o.isPostpone)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(8195),o=r(76568),a=r(13007),u=r(69211);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},59702:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{useReducer:function(){return u},useUnwrapState:function(){return a}});let n=r(62599)._(r(20107)),o=r(75803);function a(e){return(0,o.isThenable)(e)?(0,n.use)(e):e}function u(e){let[t,r]=n.default.useState(e.state);return[t,(0,n.useCallback)(t=>{e.dispatch(t,r)},[e])]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},76504:(e,t)=>{"use strict";function r(e){var t;let[r,n,o,a]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:null!=(t=u[u.length-1])?t:"",tree:r,seedData:n,head:o,isHeadPartial:a,isRootRender:4===e.length}}function n(e){return e.slice(2)}function o(e){return"string"==typeof e?e:e.map(r)}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getFlightDataPartsFromPath:function(){return r},getNextFlightSegmentPath:function(){return n},normalizeFlightData:function(){return o}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},33099:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasBasePath",{enumerable:!0,get:function(){return o}});let n=r(50344);function o(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13828:(e,t)=>{"use strict";function r(e,t){switch(typeof e){case"object":if(null===e)return"null";if(Array.isArray(e)){let n="[";if(t<1)for(let o=0;o0?"...":"";return n+"]"}{if(e instanceof Error)return e+"";let n=Object.keys(e),o="{";if(t<1)for(let a=0;a0?"...":"";return o+"}"}case"string":return JSON.stringify(e);default:return String(e)}}function n(e){let t,n;"string"==typeof e[0]?(t=e[0],n=1):(t="",n=0);let o="",a=!1;for(let u=0;u=e.length){o+=l;continue}let i=t[++u];switch(i){case"c":o=a?""+o+"]":"["+o,a=!a,n++;break;case"O":case"o":o+=r(e[n++],0);break;case"d":case"i":o+=parseInt(e[n++],10);break;case"f":o+=parseFloat(e[n++]);break;case"s":o+=String(e[n++]);break;default:o+="%"+i}}for(;n0?" ":"")+r(e[n],0);return o}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"formatConsoleArgs",{enumerable:!0,get:function(){return n}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53317:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return a}});let n=r(22150),o=r(19974),a=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:a}=(0,o.parsePath)(e);return/\.[^/]+\/?$/.test(t)?""+(0,n.removeTrailingSlash)(t)+r+a:t.endsWith("/")?""+t+r+a:t+"/"+r+a};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},42347:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{onCaughtError:function(){return l},onUncaughtError:function(){return i}}),r(3132),r(75880);let n=r(69211),o=r(13007),a=r(24617),u=r(75394),l=(e,t)=>{(0,o.isBailoutToCSRError)(e)||(0,n.isNextRouterError)(e)||(0,u.originConsoleError)(e)},i=(e,t)=>{(0,o.isBailoutToCSRError)(e)||(0,n.isNextRouterError)(e)||(0,a.reportGlobalError)(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},24617:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reportGlobalError",{enumerable:!0,get:function(){return r}});let r="function"==typeof reportError?reportError:e=>{window.console.error(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},43477:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"onRecoverableError",{enumerable:!0,get:function(){return i}});let n=r(67342),o=r(13007),a=r(24617),u=r(3132),l=n._(r(91194)),i=(e,t)=>{let r=(0,l.default)(e)&&"cause"in e?e.cause:e,n=(0,u.getReactStitchedError)(r);(0,o.isBailoutToCSRError)(r)||(0,a.reportGlobalError)(n)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},52721:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(33099),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},18259:e=>{!function(){var t={229:function(e){var t,r,n,o=e.exports={};function a(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}function l(e){if(t===setTimeout)return setTimeout(e,0);if((t===a||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:a}catch(e){t=a}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}}();var i=[],s=!1,c=-1;function f(){s&&n&&(s=!1,n.length?i=n.concat(i):c=-1,i.length&&d())}function d(){if(!s){var e=l(f);s=!0;for(var t=i.length;t;){for(n=i,i=[];++c1)for(var r=1;r{"use strict";function r(e,t){var r=e.length;for(e.push(t);0>>1,o=e[n];if(0>>1;na(i,r))sa(c,i)?(e[n]=c,e[s]=r,n=s):(e[n]=i,e[l]=r,n=l);else if(sa(c,r))e[n]=c,e[s]=r,n=s;else break}}return t}function a(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var u,l=performance;t.unstable_now=function(){return l.now()}}else{var i=Date,s=i.now();t.unstable_now=function(){return i.now()-s}}var c=[],f=[],d=1,p=null,h=3,y=!1,g=!1,b=!1,_="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,m="undefined"!=typeof setImmediate?setImmediate:null;function P(e){for(var t=n(f);null!==t;){if(null===t.callback)o(f);else if(t.startTime<=e)o(f),t.sortIndex=t.expirationTime,r(c,t);else break;t=n(f)}}function E(e){if(b=!1,P(e),!g){if(null!==n(c))g=!0,A();else{var t=n(f);null!==t&&C(E,t.startTime-e)}}}var O=!1,R=-1,S=5,j=-1;function w(){return!(t.unstable_now()-je&&w());){var l=p.callback;if("function"==typeof l){p.callback=null,h=p.priorityLevel;var i=l(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof i){p.callback=i,P(e),r=!0;break t}p===n(c)&&o(c),P(e)}else o(c);p=n(c)}if(null!==p)r=!0;else{var s=n(f);null!==s&&C(E,s.startTime-e),r=!1}}break e}finally{p=null,h=a,y=!1}r=void 0}}finally{r?u():O=!1}}}if("function"==typeof m)u=function(){m(T)};else if("undefined"!=typeof MessageChannel){var M=new MessageChannel,x=M.port2;M.port1.onmessage=T,u=function(){x.postMessage(null)}}else u=function(){_(T,0)};function A(){O||(O=!0,u())}function C(e,r){R=_(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||y||(g=!0,A())},t.unstable_forceFrameRate=function(e){0>e||125u?(e.sortIndex=a,r(f,e),null===n(c)&&e===n(f)&&(b?(v(R),R=-1):b=!0,C(E,a-u))):(e.sortIndex=l,r(c,e),g||y||(g=!0,A())),e},t.unstable_shouldYield=w,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},87803:(e,t,r)=>{"use strict";e.exports=r(10600)},8195:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isDynamicUsageError",{enumerable:!0,get:function(){return l}});let n=r(75566),o=r(13007),a=r(69211),u=r(48002),l=e=>(0,n.isDynamicServerError)(e)||(0,o.isBailoutToCSRError)(e)||(0,a.isNextRouterError)(e)||(0,u.isDynamicPostpone)(e)},91194:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return o},getProperError:function(){return a}});let n=r(27052);function o(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function a(e){return o(e)?e:Error((0,n.isPlainObject)(e)?function(e){let t=new WeakSet;return JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r})}(e):e+"")}},99165:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{MetadataBoundary:function(){return a},OutletBoundary:function(){return l},ViewportBoundary:function(){return u}});let n=r(91980),o={[n.METADATA_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.VIEWPORT_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.OUTLET_BOUNDARY_NAME]:function(e){let{children:t}=e;return t}},a=o[n.METADATA_BOUNDARY_NAME.slice(0)],u=o[n.VIEWPORT_BOUNDARY_NAME.slice(0)],l=o[n.OUTLET_BOUNDARY_NAME.slice(0)]},91980:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{METADATA_BOUNDARY_NAME:function(){return r},OUTLET_BOUNDARY_NAME:function(){return o},VIEWPORT_BOUNDARY_NAME:function(){return n}});let r="__next_metadata_boundary__",n="__next_viewport_boundary__",o="__next_outlet_boundary__"},47314:(e,t,r)=>{"use strict";var n=r(86170);Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{atLeastOneTask:function(){return u},scheduleImmediate:function(){return a},scheduleOnNextTick:function(){return o},waitAtLeastOneReactRenderTask:function(){return l}});let o=e=>{Promise.resolve().then(()=>{n.nextTick(e)})},a=e=>{setImmediate(e)};function u(){return new Promise(e=>a(e))}function l(){return new Promise(e=>setImmediate(e))}},55006:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=r(81939)},21773:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(42904).createAsyncLocalStorage)()},98372:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=r(21773)},42904:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return l}});let r=Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available");class n{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let o="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return o?new o:new n}function u(e){return o?o.bind(e):n.bind(e)}function l(){return o?o.snapshot():function(e,...t){return e(...t)}}},48002:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{Postpone:function(){return O},abortAndThrowOnSynchronousRequestDataAccess:function(){return P},abortOnSynchronousPlatformIOAccess:function(){return v},accessedDynamicData:function(){return A},annotateDynamicAccess:function(){return U},consumeDynamicAccess:function(){return C},createDynamicTrackingState:function(){return f},createDynamicValidationState:function(){return d},createPostponedAbortSignal:function(){return N},formatDynamicAPIAccesses:function(){return k},getFirstDynamicReason:function(){return p},isDynamicPostpone:function(){return j},isPrerenderInterruptedError:function(){return x},markCurrentScopeAsDynamic:function(){return h},postponeWithTracking:function(){return R},throwIfDisallowedDynamic:function(){return W},throwToInterruptStaticGeneration:function(){return g},trackAllowedDynamicAccess:function(){return B},trackDynamicDataInDynamicRender:function(){return b},trackFallbackParamAccessed:function(){return y},trackSynchronousPlatformIOAccessInDev:function(){return m},trackSynchronousRequestDataAccessInDev:function(){return E},useDynamicRouteParams:function(){return I}});let n=function(e){return e&&e.__esModule?e:{default:e}}(r(20107)),o=r(75566),a=r(91558),u=r(31322),l=r(32381),i=r(6745),s=r(91980),c="function"==typeof n.default.unstable_postpone;function f(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicExpression:void 0,syncDynamicErrorWithStack:null}}function d(){return{hasSuspendedDynamic:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasSyncDynamicErrors:!1,dynamicErrors:[]}}function p(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function h(e,t,r){if((!t||"cache"!==t.type&&"unstable-cache"!==t.type)&&!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw new a.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);if(t){if("prerender-ppr"===t.type)R(e.route,r,t.dynamicTracking);else if("prerender-legacy"===t.type){t.revalidate=0;let n=new o.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}}function y(e,t){let r=u.workUnitAsyncStorage.getStore();r&&"prerender-ppr"===r.type&&R(e.route,t,r.dynamicTracking)}function g(e,t,r){let n=new o.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function b(e,t){t&&"cache"!==t.type&&"unstable-cache"!==t.type&&("prerender"===t.type||"prerender-legacy"===t.type)&&(t.revalidate=0)}function _(e,t,r){let n=M(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function v(e,t,r,n){let o=n.dynamicTracking;return o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicExpression=t,o.syncDynamicErrorWithStack=r),_(e,t,n)}function m(e){e.prerenderPhase=!1}function P(e,t,r,n){let o=n.dynamicTracking;throw o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicExpression=t,o.syncDynamicErrorWithStack=r,!0===n.validating&&(o.syncDynamicLogged=!0)),_(e,t,n),M(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}let E=m;function O({reason:e,route:t}){let r=u.workUnitAsyncStorage.getStore();R(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function R(e,t,r){D(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),n.default.unstable_postpone(S(e,t))}function S(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function j(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&w(e.message)}function w(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===w(S("%%%","^^^")))throw Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js");let T="NEXT_PRERENDER_INTERRUPTED";function M(e){let t=Error(e);return t.digest=T,t}function x(e){return"object"==typeof e&&null!==e&&e.digest===T&&"name"in e&&"message"in e&&e instanceof Error}function A(e){return e.length>0}function C(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function k(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: +${t}`))}function D(){if(!c)throw Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js")}function N(e){D();let t=new AbortController;try{n.default.unstable_postpone(e)}catch(e){t.abort(e)}return t.signal}function U(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function I(e){if("undefined"==typeof window){let t=l.workAsyncStorage.getStore();if(t&&t.isStaticGeneration&&t.fallbackRouteParams&&t.fallbackRouteParams.size>0){let r=u.workUnitAsyncStorage.getStore();r&&("prerender"===r.type?n.default.use((0,i.makeHangingPromise)(r.renderSignal,e)):"prerender-ppr"===r.type?R(t.route,e,r.dynamicTracking):"prerender-legacy"===r.type&&g(e,t,r))}}}let L=/\n\s+at Suspense \(\)/,H=RegExp(`\\n\\s+at ${s.METADATA_BOUNDARY_NAME}[\\n\\s]`),F=RegExp(`\\n\\s+at ${s.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),$=RegExp(`\\n\\s+at ${s.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function B(e,t,r,n,o){if(!$.test(t)){if(H.test(t)){r.hasDynamicMetadata=!0;return}if(F.test(t)){r.hasDynamicViewport=!0;return}if(L.test(t)){r.hasSuspendedDynamic=!0;return}if(n.syncDynamicErrorWithStack||o.syncDynamicErrorWithStack){r.hasSyncDynamicErrors=!0;return}else{let n=function(e,t){let r=Error(e);return r.stack="Error: "+e+t,r}(`Route "${e}": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a "use cache" above it. We don't have the exact line number added to error messages yet but you can see which component in the stack below. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`,t);r.dynamicErrors.push(n);return}}}function W(e,t,r,n){let o,u,l;if(r.syncDynamicErrorWithStack?(o=r.syncDynamicErrorWithStack,u=r.syncDynamicExpression,l=!0===r.syncDynamicLogged):n.syncDynamicErrorWithStack?(o=n.syncDynamicErrorWithStack,u=n.syncDynamicExpression,l=!0===n.syncDynamicLogged):(o=null,u=void 0,l=!1),t.hasSyncDynamicErrors&&o)throw l||console.error(o),new a.StaticGenBailoutError;let i=t.dynamicErrors;if(i.length){for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentParam",{enumerable:!0,get:function(){return o}});let n=r(92688);function o(e){let t=n.INTERCEPTION_ROUTE_MARKERS.find(t=>e.startsWith(t));return(t&&(e=e.slice(t.length)),e.startsWith("[[...")&&e.endsWith("]]"))?{type:"optional-catchall",param:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{type:t?"catchall-intercepted":"catchall",param:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{type:t?"dynamic-intercepted":"dynamic",param:e.slice(1,-1)}:null}},32381:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=r(70876)},31322:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getExpectedRequestStore:function(){return o},getPrerenderResumeDataCache:function(){return a},getRenderResumeDataCache:function(){return u},workUnitAsyncStorage:function(){return n.workUnitAsyncStorageInstance}});let n=r(17707);function o(e){let t=n.workUnitAsyncStorageInstance.getStore();if(t){if("request"===t.type)return t;if("prerender"===t.type||"prerender-ppr"===t.type||"prerender-legacy"===t.type)throw Error(`\`${e}\` cannot be called inside a prerender. This is a bug in Next.js.`);if("cache"===t.type)throw Error(`\`${e}\` cannot be called inside "use cache". Call it outside and pass an argument instead. Read more: https://nextjs.org/docs/messages/next-request-in-use-cache`);if("unstable-cache"===t.type)throw Error(`\`${e}\` cannot be called inside unstable_cache. Call it outside and pass an argument instead. Read more: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`)}throw Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`)}function a(e){return"prerender"===e.type||"prerender-ppr"===e.type?e.prerenderResumeDataCache:null}function u(e){return"prerender-legacy"!==e.type&&"cache"!==e.type&&"unstable-cache"!==e.type?"request"===e.type?e.renderResumeDataCache:e.prerenderResumeDataCache:null}},80775:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let n=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=o(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=a?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(n,u,l):n[u]=e[u]}return n.default=e,r&&r.set(e,n),n}(r(20107));function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}let a={current:null},u="function"==typeof n.cache?n.cache:e=>e,l=console.warn;function i(e){return function(...t){l(e(...t))}}u(e=>{try{l(a.current)}finally{a.current=null}})},6745:(e,t)=>{"use strict";function r(e,t){let r=new Promise((r,n)=>{e.addEventListener("abort",()=>{n(Error(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context.`))},{once:!0})});return r.catch(n),r}function n(){}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"makeHangingPromise",{enumerable:!0,get:function(){return r}})},92688:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{INTERCEPTION_ROUTE_MARKERS:function(){return o},extractInterceptionRouteInformation:function(){return u},isInterceptionRouteAppPath:function(){return a}});let n=r(40483),o=["(..)(..)","(.)","(..)","(...)"];function a(e){return void 0!==e.split("/").find(e=>o.find(t=>e.startsWith(t)))}function u(e){let t,r,a;for(let n of e.split("/"))if(r=o.find(e=>n.startsWith(e))){[t,a]=e.split(r,2);break}if(!t||!r||!a)throw Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`);switch(t=(0,n.normalizeAppPath)(t),r){case"(.)":a="/"===t?`/${a}`:t+"/"+a;break;case"(..)":if("/"===t)throw Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`);a=t.split("/").slice(0,-1).concat(a).join("/");break;case"(...)":a="/"+a;break;case"(..)(..)":let u=t.split("/");if(u.length<=2)throw Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`);a=u.slice(0,-2).concat(a).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:t,interceptedRoute:a}}},76568:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isPostpone",{enumerable:!0,get:function(){return n}});let r=Symbol.for("react.postpone");function n(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}},98369:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return o}}),r(38906),r(83156);let n=r(38558);function o(e){return function(e){let t=a.get(e);if(t)return t;let r=Promise.resolve(e);return a.set(e,r),Object.keys(e).forEach(t=>{n.wellKnownProperties.has(t)||(r[t]=e[t])}),r}(e)}let a=new WeakMap},90215:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createParamsFromClient:function(){return s},createPrerenderParamsForClientSegment:function(){return p},createServerParamsForMetadata:function(){return c},createServerParamsForRoute:function(){return f},createServerParamsForServerSegment:function(){return d}}),r(38906);let n=r(48002),o=r(31322),a=r(83156),u=r(38558),l=r(6745),i=r(80775);function s(e,t){let r=o.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return h(e,t,r)}return g(e)}r(47314);let c=d;function f(e,t){let r=o.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return h(e,t,r)}return g(e)}function d(e,t){let r=o.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return h(e,t,r)}return g(e)}function p(e,t){let r=o.workUnitAsyncStorage.getStore();if(r&&"prerender"===r.type){let n=t.fallbackRouteParams;if(n){for(let t in e)if(n.has(t))return(0,l.makeHangingPromise)(r.renderSignal,"`params`")}}return Promise.resolve(e)}function h(e,t,r){let o=t.fallbackRouteParams;if(o){let a=!1;for(let t in e)if(o.has(t)){a=!0;break}if(a)return"prerender"===r.type?function(e,t,r){let o=y.get(e);if(o)return o;let a=(0,l.makeHangingPromise)(r.renderSignal,"`params`");return y.set(e,a),Object.keys(e).forEach(e=>{u.wellKnownProperties.has(e)||Object.defineProperty(a,e,{get(){let o=(0,u.describeStringPropertyAccess)("params",e),a=b(t,o);(0,n.abortAndThrowOnSynchronousRequestDataAccess)(t,o,a,r)},set(t){Object.defineProperty(a,e,{value:t,writable:!0,enumerable:!0})},enumerable:!0,configurable:!0})}),a}(e,t.route,r):function(e,t,r,o){let a=y.get(e);if(a)return a;let l={...e},i=Promise.resolve(l);return y.set(e,i),Object.keys(e).forEach(a=>{u.wellKnownProperties.has(a)||(t.has(a)?(Object.defineProperty(l,a,{get(){let e=(0,u.describeStringPropertyAccess)("params",a);"prerender-ppr"===o.type?(0,n.postponeWithTracking)(r.route,e,o.dynamicTracking):(0,n.throwToInterruptStaticGeneration)(e,r,o)},enumerable:!0}),Object.defineProperty(i,a,{get(){let e=(0,u.describeStringPropertyAccess)("params",a);"prerender-ppr"===o.type?(0,n.postponeWithTracking)(r.route,e,o.dynamicTracking):(0,n.throwToInterruptStaticGeneration)(e,r,o)},set(e){Object.defineProperty(i,a,{value:e,writable:!0,enumerable:!0})},enumerable:!0,configurable:!0})):i[a]=e[a])}),i}(e,o,t,r)}return g(e)}let y=new WeakMap;function g(e){let t=y.get(e);if(t)return t;let r=Promise.resolve(e);return y.set(e,r),Object.keys(e).forEach(t=>{u.wellKnownProperties.has(t)||(r[t]=e[t])}),r}function b(e,t){let r=e?`Route "${e}" `:"This route ";return Error(`${r}used ${t}. \`params\` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`)}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(b),(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t,r){let n=e?`Route "${e}" `:"This route ";return Error(`${n}used ${t}. \`params\` should be awaited before using its properties. The following properties were not available through enumeration because they conflict with builtin property names: ${function(e){switch(e.length){case 0:throw new a.InvariantError("Expected describeListOfPropertyNames to be called with a non-empty list of strings.");case 1:return`\`${e[0]}\``;case 2:return`\`${e[0]}\` and \`${e[1]}\``;default:{let t="";for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return o}}),r(38906);let n=r(38558);function o(e){return function(e){let t=a.get(e);if(t)return t;let r=Promise.resolve(e);return a.set(e,r),Object.keys(e).forEach(t=>{n.wellKnownProperties.has(t)||(r[t]=e[t])}),r}(e)}let a=new WeakMap},78394:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createPrerenderSearchParamsForClientPage:function(){return p},createSearchParamsFromClient:function(){return c},createServerSearchParamsForMetadata:function(){return f},createServerSearchParamsForServerPage:function(){return d}});let n=r(38906),o=r(48002),a=r(31322),u=r(83156),l=r(6745),i=r(80775),s=r(38558);function c(e,t){let r=a.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return h(t,r)}return y(e,t)}r(47314);let f=d;function d(e,t){let r=a.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-ppr":case"prerender-legacy":return h(t,r)}return y(e,t)}function p(e){if(e.forceStatic)return Promise.resolve({});let t=a.workUnitAsyncStorage.getStore();return t&&"prerender"===t.type?(0,l.makeHangingPromise)(t.renderSignal,"`searchParams`"):Promise.resolve({})}function h(e,t){return e.forceStatic?Promise.resolve({}):"prerender"===t.type?function(e,t){let r=g.get(t);if(r)return r;let a=(0,l.makeHangingPromise)(t.renderSignal,"`searchParams`"),u=new Proxy(a,{get(r,u,l){if(Object.hasOwn(a,u))return n.ReflectAdapter.get(r,u,l);switch(u){case"then":return(0,o.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",t),n.ReflectAdapter.get(r,u,l);case"status":return(0,o.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",t),n.ReflectAdapter.get(r,u,l);case"hasOwnProperty":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"valueOf":case"toLocaleString":case"catch":case"finally":case"toJSON":case"$$typeof":case"__esModule":return n.ReflectAdapter.get(r,u,l);default:if("string"==typeof u){let r=(0,s.describeStringPropertyAccess)("searchParams",u),n=b(e,r);(0,o.abortAndThrowOnSynchronousRequestDataAccess)(e,r,n,t)}return n.ReflectAdapter.get(r,u,l)}},has(r,a){if("string"==typeof a){let r=(0,s.describeHasCheckingStringProperty)("searchParams",a),n=b(e,r);(0,o.abortAndThrowOnSynchronousRequestDataAccess)(e,r,n,t)}return n.ReflectAdapter.has(r,a)},ownKeys(){let r="`{...searchParams}`, `Object.keys(searchParams)`, or similar",n=b(e,r);(0,o.abortAndThrowOnSynchronousRequestDataAccess)(e,r,n,t)}});return g.set(t,u),u}(e.route,t):function(e,t){let r=g.get(e);if(r)return r;let a=Promise.resolve({}),u=new Proxy(a,{get(r,u,l){if(Object.hasOwn(a,u))return n.ReflectAdapter.get(r,u,l);switch(u){case"hasOwnProperty":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"valueOf":case"toLocaleString":case"catch":case"finally":case"toJSON":case"$$typeof":case"__esModule":return n.ReflectAdapter.get(r,u,l);case"then":{let r="`await searchParams`, `searchParams.then`, or similar";e.dynamicShouldError?(0,s.throwWithStaticGenerationBailoutErrorWithDynamicError)(e.route,r):"prerender-ppr"===t.type?(0,o.postponeWithTracking)(e.route,r,t.dynamicTracking):(0,o.throwToInterruptStaticGeneration)(r,e,t);return}case"status":{let r="`use(searchParams)`, `searchParams.status`, or similar";e.dynamicShouldError?(0,s.throwWithStaticGenerationBailoutErrorWithDynamicError)(e.route,r):"prerender-ppr"===t.type?(0,o.postponeWithTracking)(e.route,r,t.dynamicTracking):(0,o.throwToInterruptStaticGeneration)(r,e,t);return}default:if("string"==typeof u){let r=(0,s.describeStringPropertyAccess)("searchParams",u);e.dynamicShouldError?(0,s.throwWithStaticGenerationBailoutErrorWithDynamicError)(e.route,r):"prerender-ppr"===t.type?(0,o.postponeWithTracking)(e.route,r,t.dynamicTracking):(0,o.throwToInterruptStaticGeneration)(r,e,t)}return n.ReflectAdapter.get(r,u,l)}},has(r,a){if("string"==typeof a){let r=(0,s.describeHasCheckingStringProperty)("searchParams",a);return e.dynamicShouldError?(0,s.throwWithStaticGenerationBailoutErrorWithDynamicError)(e.route,r):"prerender-ppr"===t.type?(0,o.postponeWithTracking)(e.route,r,t.dynamicTracking):(0,o.throwToInterruptStaticGeneration)(r,e,t),!1}return n.ReflectAdapter.has(r,a)},ownKeys(){let r="`{...searchParams}`, `Object.keys(searchParams)`, or similar";e.dynamicShouldError?(0,s.throwWithStaticGenerationBailoutErrorWithDynamicError)(e.route,r):"prerender-ppr"===t.type?(0,o.postponeWithTracking)(e.route,r,t.dynamicTracking):(0,o.throwToInterruptStaticGeneration)(r,e,t)}});return g.set(e,u),u}(e,t)}function y(e,t){return t.forceStatic?Promise.resolve({}):function(e,t){let r=g.get(e);if(r)return r;let n=Promise.resolve(e);return g.set(e,n),Object.keys(e).forEach(r=>{switch(r){case"hasOwnProperty":case"isPrototypeOf":case"propertyIsEnumerable":case"toString":case"valueOf":case"toLocaleString":case"then":case"catch":case"finally":case"status":case"toJSON":case"$$typeof":case"__esModule":break;default:Object.defineProperty(n,r,{get(){let n=a.workUnitAsyncStorage.getStore();return(0,o.trackDynamicDataInDynamicRender)(t,n),e[r]},set(e){Object.defineProperty(n,r,{value:e,writable:!0,enumerable:!0})},enumerable:!0,configurable:!0})}}),n}(e,t)}let g=new WeakMap;function b(e,t){let r=e?`Route "${e}" `:"This route ";return Error(`${r}used ${t}. \`searchParams\` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`)}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(b),(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,t,r){let n=e?`Route "${e}" `:"This route ";return Error(`${n}used ${t}. \`searchParams\` should be awaited before using its properties. The following properties were not available through enumeration because they conflict with builtin or well-known property names: ${function(e){switch(e.length){case 0:throw new u.InvariantError("Expected describeListOfPropertyNames to be called with a non-empty list of strings.");case 1:return`\`${e[0]}\``;case 2:return`\`${e[0]}\` and \`${e[1]}\``;default:{let t="";for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{describeHasCheckingStringProperty:function(){return l},describeStringPropertyAccess:function(){return u},isRequestAPICallableInsideAfter:function(){return c},throwWithStaticGenerationBailoutError:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s},wellKnownProperties:function(){return f}});let n=r(91558),o=r(98372),a=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function u(e,t){return a.test(t)?`\`${e}.${t}\``:`\`${e}[${JSON.stringify(t)}]\``}function l(e,t){let r=JSON.stringify(t);return`\`Reflect.has(${e}, ${r})\`, \`${r} in ${e}\`, or similar`}function i(e,t){throw new n.StaticGenBailoutError(`Route ${e} couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`)}function s(e,t){throw new n.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`)}function c(){let e=o.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}let f=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","toJSON","$$typeof","__esModule"])},38906:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return r}});class r{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},32618:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{AppRouterContext:function(){return o},GlobalLayoutRouterContext:function(){return u},LayoutRouterContext:function(){return a},MissingSlotContext:function(){return i},TemplateContext:function(){return l}});let n=r(67342)._(r(20107)),o=n.default.createContext(null),a=n.default.createContext(null),u=n.default.createContext(null),l=n.default.createContext(null),i=n.default.createContext(new Set)},80724:(e,t)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return r}})},76249:(e,t)=>{"use strict";function r(e){let t=5381;for(let r=0;r>>0}function n(e){return r(e).toString(36).slice(0,5)}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{djb2Hash:function(){return r},hexHash:function(){return n}})},17315:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=r(67342)._(r(20107)).default.createContext({})},14839:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathParamsContext:function(){return u},PathnameContext:function(){return a},SearchParamsContext:function(){return o}});let n=r(20107),o=(0,n.createContext)(null),a=(0,n.createContext)(null),u=(0,n.createContext)(null)},83156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"InvariantError",{enumerable:!0,get:function(){return r}});class r extends Error{constructor(e,t){super("Invariant: "+(e.endsWith(".")?e:e+".")+" This is a bug in Next.js.",t),this.name="InvariantError"}}},27052:(e,t)=>{"use strict";function r(e){return Object.prototype.toString.call(e)}function n(e){if("[object Object]"!==r(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getObjectClassLabel:function(){return r},isPlainObject:function(){return n}})},75803:(e,t)=>{"use strict";function r(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isThenable",{enumerable:!0,get:function(){return r}})},13007:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{BailoutToCSRError:function(){return n},isBailoutToCSRError:function(){return o}});let r="BAILOUT_TO_CLIENT_SIDE_RENDERING";class n extends Error{constructor(e){super("Bail out to client-side rendering: "+e),this.reason=e,this.digest=r}}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===r}},88018:(e,t)=>{"use strict";function r(e){return e.startsWith("/")?e:"/"+e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureLeadingSlash",{enumerable:!0,get:function(){return r}})},52345:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createMutableActionQueue",{enumerable:!0,get:function(){return s}});let n=r(23093),o=r(27749),a=r(20107),u=r(75803);function l(e,t){null!==e.pending&&(e.pending=e.pending.next,null!==e.pending?i({actionQueue:e,action:e.pending,setState:t}):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:n.ACTION_REFRESH,origin:window.location.origin},t)))}async function i(e){let{actionQueue:t,action:r,setState:n}=e,o=t.state;t.pending=r;let a=r.payload,i=t.action(o,a);function s(e){r.discarded||(t.state=e,l(t,n),r.resolve(e))}(0,u.isThenable)(i)?i.then(s,e=>{l(t,n),r.reject(e)}):s(i)}function s(e){let t={state:e,dispatch:(e,r)=>(function(e,t,r){let o={resolve:r,reject:()=>{}};if(t.type!==n.ACTION_RESTORE){let e=new Promise((e,t)=>{o={resolve:e,reject:t}});(0,a.startTransition)(()=>{r(e)})}let u={payload:t,next:null,resolve:o.resolve,reject:o.reject};null===e.pending?(e.last=u,i({actionQueue:e,action:u,setState:r})):t.type===n.ACTION_NAVIGATE||t.type===n.ACTION_RESTORE?(e.pending.discarded=!0,e.last=u,e.pending.payload.type===n.ACTION_SERVER_ACTION&&(e.needsRefresh=!0),i({actionQueue:e,action:u,setState:r})):(null!==e.last&&(e.last.next=u),e.last=u)})(t,e,r),action:async(e,t)=>(0,o.reducer)(e,t),pending:null,last:null};return t}},76905:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathPrefix",{enumerable:!0,get:function(){return o}});let n=r(19974);function o(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:o,hash:a}=(0,n.parsePath)(e);return""+t+r+o+a}},40483:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{normalizeAppPath:function(){return a},normalizeRscURL:function(){return u}});let n=r(88018),o=r(63234);function a(e){return(0,n.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,o.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t,""))}function u(e){return e.replace(/\.rsc($|\?)/,"$1")}},65200:(e,t)=>{"use strict";function r(e,t){if(void 0===t&&(t={}),t.onlyHashChange){e();return}let r=document.documentElement,n=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleSmoothScroll",{enumerable:!0,get:function(){return r}})},80691:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isBot",{enumerable:!0,get:function(){return n}});let r=/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i;function n(e){return r.test(e)}},19974:(e,t)=>{"use strict";function r(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parsePath",{enumerable:!0,get:function(){return r}})},50344:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return o}});let n=r(19974);function o(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},22150:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},63234:(e,t)=>{"use strict";function r(e){return"("===e[0]&&e.endsWith(")")}function n(e){return e.startsWith("@")&&"@children"!==e}function o(e,t){if(e.includes(a)){let e=JSON.stringify(t);return"{}"!==e?a+"?"+e:a}return e}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DEFAULT_SEGMENT_KEY:function(){return u},PAGE_SEGMENT_KEY:function(){return a},addSearchParamsIfPageSegment:function(){return o},isGroupSegment:function(){return r},isParallelRouteSegment:function(){return n}});let a="__PAGE__",u="__DEFAULT__"},58741:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ServerInsertedHTMLContext:function(){return o},useServerInsertedHTML:function(){return a}});let n=r(62599)._(r(20107)),o=n.default.createContext(null);function a(e){let t=(0,n.useContext)(o);t&&t(e)}},20339:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},31858:(e,t,r)=>{"use strict";var n=r(20107);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(71272)},25642:(e,t,r)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(31858)},70446:(e,t,r)=>{"use strict";var n=r(25642),o={stream:!0},a=new Map;function u(e){var t=r(e);return"function"!=typeof t.then||"fulfilled"===t.status?null:(t.then(function(e){t.status="fulfilled",t.value=e},function(e){t.status="rejected",t.reason=e}),t)}function l(){}function i(e){for(var t=e[1],n=[],o=0;os||35===s||114===s||120===s?(c=s,s=3,l++):(c=0,s=3);continue;case 2:44===(y=u[l++])?s=4:f=f<<4|(96u.length&&(y=-1)}var g=u.byteOffset+l;if(-1{"use strict";e.exports=r(70446)},18971:(e,t,r)=>{"use strict";e.exports=r(17925)},32905:(e,t)=>{"use strict";var r=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function o(e,t,n){var o=null;if(void 0!==n&&(o=""+n),void 0!==t.key&&(o=""+t.key),"key"in t)for(var a in n={},t)"key"!==a&&(n[a]=t[a]);else n=t;return{$$typeof:r,type:e,key:o,ref:void 0!==(t=n.ref)?t:null,props:n}}t.Fragment=n,t.jsx=o,t.jsxs=o},29914:(e,t,r)=>{"use strict";var n=r(86170),o=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),y=Symbol.iterator,g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,_={};function v(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||g}function m(){}function P(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||g}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("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")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=v.prototype;var E=P.prototype=new m;E.constructor=P,b(E,v.prototype),E.isPureReactComponent=!0;var O=Array.isArray,R={H:null,A:null,T:null,S:null},S=Object.prototype.hasOwnProperty;function j(e,t,r,n,a,u){return{$$typeof:o,type:e,key:t,ref:void 0!==(r=u.ref)?r:null,props:u}}function w(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var T=/\/+/g;function M(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function x(){}function A(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,l){var i,s,c,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case a:d=!0;break;case h:return e((d=t._init)(t._payload),r,n,u,l)}}if(d)return l=l(t),d=""===u?"."+M(t,0):u,O(l)?(n="",null!=d&&(n=d.replace(T,"$&/")+"/"),e(l,r,n,"",function(e){return e})):null!=l&&(w(l)&&(i=l,s=n+(null==l.key||t&&t.key===l.key?"":(""+l.key).replace(T,"$&/")+"/")+d,l=j(i.type,s,void 0,void 0,void 0,i.props)),r.push(l)),1;d=0;var p=""===u?".":u+":";if(O(t))for(var g=0;g{"use strict";e.exports=r(29914)},20475:(e,t,r)=>{"use strict";e.exports=r(32905)},81939:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(35838).createAsyncLocalStorage)()},35838:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return l}});let r=Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available");class n{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let o="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return o?new o:new n}function u(e){return o?o.bind(e):n.bind(e)}function l(){return o?o.snapshot():function(e,...t){return e(...t)}}},70876:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(35838).createAsyncLocalStorage)()},17707:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(35838).createAsyncLocalStorage)()},32465:(e,t,r)=>{"use strict";function n(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}r.r(t),r.d(t,{_:()=>n})},44911:(e,t,r)=>{"use strict";r.r(t),r.d(t,{_:()=>o});var n=0;function o(e){return"__private_"+n+++"_"+e}},67342:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n})},62599:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=a?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(o,u,l):o[u]=e[u]}return o.default=e,r&&r.set(e,o),o}r.r(t),r.d(t,{_:()=>o})}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6357-9bebe3918fcef1e5.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6357-9bebe3918fcef1e5.js new file mode 100644 index 0000000..ba97043 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6357-9bebe3918fcef1e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6357],{39997:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(20107);let o=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),i=function(){for(var e=arguments.length,t=Array(e),n=0;n!!e&&n.indexOf(e)===t).join(" ")};var a={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"};let l=(0,r.forwardRef)((e,t)=>{let{color:n="currentColor",size:o=24,strokeWidth:l=2,absoluteStrokeWidth:s,className:u="",children:d,iconNode:c,...f}=e;return(0,r.createElement)("svg",{ref:t,...a,width:o,height:o,stroke:n,strokeWidth:s?24*Number(l)/Number(o):l,className:i("lucide",u),...f},[...c.map(e=>{let[t,n]=e;return(0,r.createElement)(t,n)}),...Array.isArray(d)?d:[d]])}),s=(e,t)=>{let n=(0,r.forwardRef)((n,a)=>{let{className:s,...u}=n;return(0,r.createElement)(l,{ref:a,iconNode:t,className:i("lucide-".concat(o(e)),s),...u})});return n.displayName="".concat(e),n}},60241:(e,t,n)=>{n.d(t,{G$:()=>H,Hs:()=>D,UC:()=>et,VY:()=>er,ZL:()=>Q,bL:()=>X,bm:()=>eo,hE:()=>en,hJ:()=>ee,l9:()=>Y});var r=n(20107),o=n(94521),i=n(64236),a=n(45170),l=n(72763),s=n(13061),u=n(55302),d=n(38573),c=n(41913),f=n(54245),p=n(34544),m=n(10201),g=n(9543),v=n(58020),N=n(61837),h=n(20475),y="Dialog",[w,D]=(0,a.A)(y),[O,R]=w(y),C=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:i,onOpenChange:a,modal:u=!0}=e,d=r.useRef(null),c=r.useRef(null),[f=!1,p]=(0,s.i)({prop:o,defaultProp:i,onChange:a});return(0,h.jsx)(O,{scope:t,triggerRef:d,contentRef:c,contentId:(0,l.B)(),titleId:(0,l.B)(),descriptionId:(0,l.B)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:u,children:n})};C.displayName=y;var b="DialogTrigger",E=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=R(b,n),l=(0,i.s)(t,a.triggerRef);return(0,h.jsx)(p.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":V(a.open),...r,ref:l,onClick:(0,o.m)(e.onClick,a.onOpenToggle)})});E.displayName=b;var x="DialogPortal",[I,j]=w(x,{forceMount:void 0}),A=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:i}=e,a=R(x,t);return(0,h.jsx)(I,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,h.jsx)(f.C,{present:n||a.open,children:(0,h.jsx)(c.Z,{asChild:!0,container:i,children:e})}))})};A.displayName=x;var _="DialogOverlay",M=r.forwardRef((e,t)=>{let n=j(_,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=R(_,e.__scopeDialog);return i.modal?(0,h.jsx)(f.C,{present:r||i.open,children:(0,h.jsx)(T,{...o,ref:t})}):null});M.displayName=_;var T=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=R(_,n);return(0,h.jsx)(g.A,{as:N.DX,allowPinchZoom:!0,shards:[o.contentRef],children:(0,h.jsx)(p.sG.div,{"data-state":V(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),F="DialogContent",k=r.forwardRef((e,t)=>{let n=j(F,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=R(F,e.__scopeDialog);return(0,h.jsx)(f.C,{present:r||i.open,children:i.modal?(0,h.jsx)(P,{...o,ref:t}):(0,h.jsx)(U,{...o,ref:t})})});k.displayName=F;var P=r.forwardRef((e,t)=>{let n=R(F,e.__scopeDialog),a=r.useRef(null),l=(0,i.s)(t,n.contentRef,a);return r.useEffect(()=>{let e=a.current;if(e)return(0,v.Eq)(e)},[]),(0,h.jsx)(L,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:(0,o.m)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault())})}),U=r.forwardRef((e,t)=>{let n=R(F,e.__scopeDialog),o=r.useRef(!1),i=r.useRef(!1);return(0,h.jsx)(L,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var r,a;null===(r=e.onCloseAutoFocus)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current||null===(a=n.triggerRef.current)||void 0===a||a.focus(),t.preventDefault()),o.current=!1,i.current=!1},onInteractOutside:t=>{var r,a;null===(r=e.onInteractOutside)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let l=t.target;(null===(a=n.triggerRef.current)||void 0===a?void 0:a.contains(l))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),L=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:l,...s}=e,c=R(F,n),f=r.useRef(null),p=(0,i.s)(t,f);return(0,m.Oh)(),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(d.n,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:l,children:(0,h.jsx)(u.qW,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":V(c.open),...s,ref:p,onDismiss:()=>c.onOpenChange(!1)})}),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(J,{titleId:c.titleId}),(0,h.jsx)(K,{contentRef:f,descriptionId:c.descriptionId})]})]})}),W="DialogTitle",S=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=R(W,n);return(0,h.jsx)(p.sG.h2,{id:o.titleId,...r,ref:t})});S.displayName=W;var B="DialogDescription",G=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=R(B,n);return(0,h.jsx)(p.sG.p,{id:o.descriptionId,...r,ref:t})});G.displayName=B;var q="DialogClose",Z=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=R(q,n);return(0,h.jsx)(p.sG.button,{type:"button",...r,ref:t,onClick:(0,o.m)(e.onClick,()=>i.onOpenChange(!1))})});function V(e){return e?"open":"closed"}Z.displayName=q;var $="DialogTitleWarning",[H,z]=(0,a.q)($,{contentName:F,titleName:W,docsSlug:"dialog"}),J=e=>{let{titleId:t}=e,n=z($),o="`".concat(n.contentName,"` requires a `").concat(n.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(n.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(n.docsSlug);return r.useEffect(()=>{t&&!document.getElementById(t)&&console.error(o)},[o,t]),null},K=e=>{let{contentRef:t,descriptionId:n}=e,o=z("DialogDescriptionWarning"),i="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(o.contentName,"}.");return r.useEffect(()=>{var e;let r=null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby");n&&r&&!document.getElementById(n)&&console.warn(i)},[i,t,n]),null},X=C,Y=E,Q=A,ee=M,et=k,en=S,er=G,eo=Z},54245:(e,t,n)=>{n.d(t,{C:()=>a});var r=n(20107),o=n(64236),i=n(54122),a=e=>{let{present:t,children:n}=e,a=function(e){var t,n;let[o,a]=r.useState(),s=r.useRef({}),u=r.useRef(e),d=r.useRef("none"),[c,f]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return r.useEffect(()=>{let e=l(s.current);d.current="mounted"===c?e:"none"},[c]),(0,i.N)(()=>{let t=s.current,n=u.current;if(n!==e){let r=d.current,o=l(t);e?f("MOUNT"):"none"===o||(null==t?void 0:t.display)==="none"?f("UNMOUNT"):n&&r!==o?f("ANIMATION_OUT"):f("UNMOUNT"),u.current=e}},[e,f]),(0,i.N)(()=>{if(o){var e;let t;let n=null!==(e=o.ownerDocument.defaultView)&&void 0!==e?e:window,r=e=>{let r=l(s.current).includes(e.animationName);if(e.target===o&&r&&(f("ANIMATION_END"),!u.current)){let e=o.style.animationFillMode;o.style.animationFillMode="forwards",t=n.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=e)})}},i=e=>{e.target===o&&(d.current=l(s.current))};return o.addEventListener("animationstart",i),o.addEventListener("animationcancel",r),o.addEventListener("animationend",r),()=>{n.clearTimeout(t),o.removeEventListener("animationstart",i),o.removeEventListener("animationcancel",r),o.removeEventListener("animationend",r)}}f("ANIMATION_END")},[o,f]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:r.useCallback(e=>{e&&(s.current=getComputedStyle(e)),a(e)},[])}}(t),s="function"==typeof n?n({present:a.isPresent}):r.Children.only(n),u=(0,o.s)(a.ref,function(e){var t,n;let r=null===(t=Object.getOwnPropertyDescriptor(e.props,"ref"))||void 0===t?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?e.ref:(o=(r=null===(n=Object.getOwnPropertyDescriptor(e,"ref"))||void 0===n?void 0:n.get)&&"isReactWarning"in r&&r.isReactWarning)?e.props.ref:e.props.ref||e.ref}(s));return"function"==typeof n||a.isPresent?r.cloneElement(s,{ref:u}):null};function l(e){return(null==e?void 0:e.animationName)||"none"}a.displayName="Presence"}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6765-04896569da698cf7.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6765-04896569da698cf7.js new file mode 100644 index 0000000..e10832a --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6765-04896569da698cf7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6765],{14629:(e,t,r)=>{r.d(t,{default:()=>i.a});var n=r(46954),i=r.n(n)},16118:(e,t,r)=>{var n=r(65834);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}})},15354:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return _}});let n=r(67342),i=r(62599),o=r(20475),l=i._(r(20107)),a=n._(r(25642)),u=n._(r(80627)),s=r(59090),d=r(92863),f=r(30957);r(20339);let c=r(59280),p=n._(r(94354)),m=r(91297),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,i,o,l){let a=null==e?void 0:e.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function v(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,l.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:i,height:a,width:u,decoding:s,className:d,style:f,fetchPriority:c,placeholder:p,loading:g,unoptimized:y,fill:b,onLoadRef:_,onLoadingCompleteRef:w,setBlurComplete:j,setShowAltText:x,sizesInput:P,onLoad:S,onError:O,...C}=e,M=(0,l.useCallback)(e=>{e&&(O&&(e.src=e.src),e.complete&&h(e,p,_,w,j,y,P))},[r,p,_,w,j,O,y,P]),E=(0,m.useMergedRef)(t,M);return(0,o.jsx)("img",{...C,...v(c),loading:g,width:u,height:a,decoding:s,"data-nimg":b?"fill":"1",className:d,style:f,sizes:i,srcSet:n,src:r,ref:E,onLoad:e=>{h(e.currentTarget,p,_,w,j,y,P)},onError:e=>{x(!0),"empty"!==p&&j(!0),O&&O(e)}})});function b(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...v(r.fetchPriority)};return t&&a.default.preload?(a.default.preload(r.src,n),null):(0,o.jsx)(u.default,{children:(0,o.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let _=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(c.RouterContext),n=(0,l.useContext)(f.ImageConfigContext),i=(0,l.useMemo)(()=>{let e=g||n||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r}},[n]),{onLoad:a,onLoadingComplete:u}=e,m=(0,l.useRef)(a);(0,l.useEffect)(()=>{m.current=a},[a]);let h=(0,l.useRef)(u);(0,l.useEffect)(()=>{h.current=u},[u]);let[v,_]=(0,l.useState)(!1),[w,j]=(0,l.useState)(!1),{props:x,meta:P}=(0,s.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:v,showAltText:w});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y,{...x,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:_,setShowAltText:j,sizesInput:e.sizes,ref:t}),P.priority?(0,o.jsx)(b,{isAppRouter:!r,imgAttributes:x}):null]})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},91297:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=r(20107);function i(e,t){let r=(0,n.useRef)(()=>{}),i=(0,n.useRef)(()=>{});return(0,n.useMemo)(()=>e&&t?n=>{null===n?(r.current(),i.current()):(r.current=o(e,n),i.current=o(t,n))}:e||t,[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},76947:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=r(67342)._(r(20107)).default.createContext({})},47451:(e,t)=>{function r(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return r}})},59090:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImgProps",{enumerable:!0,get:function(){return a}}),r(20339);let n=r(78971),i=r(92863);function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function a(e,t){var r;let a,u,s,{src:d,sizes:f,unoptimized:c=!1,priority:p=!1,loading:m,className:g,quality:h,width:v,height:y,fill:b=!1,style:_,overrideSrc:w,onLoad:j,onLoadingComplete:x,placeholder:P="empty",blurDataURL:S,fetchPriority:O,decoding:C="async",layout:M,objectFit:E,objectPosition:z,lazyBoundary:I,lazyRoot:R,...A}=e,{imgConf:k,showAltText:D,blurComplete:N,defaultLoader:T}=t,L=k||i.imageConfigDefault;if("allSizes"in L)a=L;else{let e=[...L.deviceSizes,...L.imageSizes].sort((e,t)=>e-t),t=L.deviceSizes.sort((e,t)=>e-t);a={...L,allSizes:e,deviceSizes:t}}if(void 0===T)throw Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config");let F=A.loader||T;delete A.loader,delete A.srcSet;let G="__next_img_default"in F;if(G){if("custom"===a.loader)throw Error('Image with src "'+d+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader')}else{let e=F;F=t=>{let{config:r,...n}=t;return e(n)}}if(M){"fill"===M&&(b=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[M];e&&(_={..._,...e});let t={responsive:"100vw",fill:"100vw"}[M];t&&!f&&(f=t)}let U="",B=l(v),W=l(y);if((r=d)&&"object"==typeof r&&(o(r)||void 0!==r.src)){let e=o(d)?d.default:d;if(!e.src)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e));if(!e.height||!e.width)throw Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e));if(u=e.blurWidth,s=e.blurHeight,S=S||e.blurDataURL,U=e.src,!b){if(B||W){if(B&&!W){let t=B/e.width;W=Math.round(e.height*t)}else if(!B&&W){let t=W/e.height;B=Math.round(e.width*t)}}else B=e.width,W=e.height}}let V=!p&&("lazy"===m||void 0===m);(!(d="string"==typeof d?d:U)||d.startsWith("data:")||d.startsWith("blob:"))&&(c=!0,V=!1),a.unoptimized&&(c=!0),G&&!a.dangerouslyAllowSVG&&d.split("?",1)[0].endsWith(".svg")&&(c=!0);let H=l(h),$=Object.assign(b?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:E,objectPosition:z}:{},D?{}:{color:"transparent"},_),q=N||"empty"===P?null:"blur"===P?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:B,heightInt:W,blurWidth:u,blurHeight:s,blurDataURL:S||"",objectFit:$.objectFit})+'")':'url("'+P+'")',X=q?{backgroundSize:$.objectFit||"cover",backgroundPosition:$.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:q}:{},J=function(e){let{config:t,src:r,unoptimized:n,width:i,quality:o,sizes:l,loader:a}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:u,kind:s}=function(e,t,r){let{deviceSizes:n,allSizes:i}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);n)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:i.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:i,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>i.find(t=>t>=e)||i[i.length-1]))],kind:"x"}}(t,i,l),d=u.length-1;return{sizes:l||"w"!==s?l:"100vw",srcSet:u.map((e,n)=>a({config:t,src:r,quality:o,width:e})+" "+("w"===s?e:n+1)+s).join(", "),src:a({config:t,src:r,quality:o,width:u[d]})}}({config:a,src:d,unoptimized:c,width:B,quality:H,sizes:f,loader:F});return{props:{...A,loading:V?"lazy":m,fetchPriority:O,width:B,height:W,decoding:C,className:g,style:{...$,...X},sizes:J.sizes,srcSet:J.srcSet,src:w||J.src},meta:{unoptimized:c,priority:p,placeholder:P,fill:b}}}},80627:(e,t,r)=>{var n=r(86170);Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return h},defaultHead:function(){return c}});let i=r(67342),o=r(62599),l=r(20475),a=o._(r(20107)),u=i._(r(41868)),s=r(76947),d=r(17315),f=r(47451);function c(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}r(20339);let m=["name","httpEquiv","charSet","itemProp"];function g(e,t){let{inAmpMode:r}=t;return e.reduce(p,[]).reverse().concat(c(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return i=>{let o=!0,l=!1;if(i.key&&"number"!=typeof i.key&&i.key.indexOf("$")>0){l=!0;let t=i.key.slice(i.key.indexOf("$")+1);e.has(t)?o=!1:e.add(t)}switch(i.type){case"title":case"base":t.has(i.type)?o=!1:t.add(i.type);break;case"meta":for(let e=0,t=m.length;e{let i=e.key||t;if(n.env.__NEXT_OPTIMIZE_FONTS&&!r&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){let t={...e.props||{}};return t["data-href"]=t.href,t.href=void 0,t["data-optimized-fonts"]=!0,a.default.cloneElement(e,t)}return a.default.cloneElement(e,{key:i})})}let h=function(e){let{children:t}=e,r=(0,a.useContext)(s.AmpStateContext),n=(0,a.useContext)(d.HeadManagerContext);return(0,l.jsx)(u.default,{reduceComponentsToState:g,headManager:n,inAmpMode:(0,f.isInAmpMode)(r),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},78971:(e,t)=>{function r(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:i,blurDataURL:o,objectFit:l}=e,a=n?40*n:t,u=i?40*i:r,s=a&&u?"viewBox='0 0 "+a+" "+u+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+s+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(s?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+o+"'/%3E%3C/svg%3E"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},30957:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=r(67342)._(r(20107)),i=r(92863),o=n.default.createContext(i.imageConfigDefault)},92863:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{VALID_LOADERS:function(){return r},imageConfigDefault:function(){return n}});let r=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],unoptimized:!1}},46954:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return u},getImageProps:function(){return a}});let n=r(67342),i=r(59090),o=r(15354),l=n._(r(94354));function a(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let u=o.Image},94354:(e,t)=>{function r(e){let{config:t,src:r,width:n,quality:i}=e;return t.path+"?url="+encodeURIComponent(r)+"&w="+n+"&q="+(i||75)+(r.startsWith("/_next/static/media/"),"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}}),r.__next_img_default=!0;let n=r},59280:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return n}});let n=r(67342)._(r(20107)).default.createContext(null)},41868:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let n=r(20107),i="undefined"==typeof window,o=i?()=>{}:n.useLayoutEffect,l=i?()=>{}:n.useEffect;function a(e){let{headManager:t,reduceComponentsToState:r}=e;function a(){if(t&&t.mountedInstances){let i=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(i,e))}}if(i){var u;null==t||null==(u=t.mountedInstances)||u.add(e.children),a()}return o(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},21840:(e,t,r)=>{r.d(t,{b:()=>a});var n=r(20107),i=r(34544),o=r(20475),l=n.forwardRef((e,t)=>(0,o.jsx)(i.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null===(r=e.onMouseDown)||void 0===r||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));l.displayName="Label";var a=l},34544:(e,t,r)=>{r.d(t,{hO:()=>u,sG:()=>a});var n=r(20107),i=r(25642),o=r(61837),l=r(20475),a=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=n.forwardRef((e,r)=>{let{asChild:n,...i}=e,a=n?o.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,l.jsx)(a,{...i,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function u(e,t){e&&i.flushSync(()=>e.dispatchEvent(t))}},29395:(e,t,r)=>{r.d(t,{F:()=>o});let n=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,i=function(){for(var e,t,r=0,n="";rr=>{var o;if((null==t?void 0:t.variants)==null)return i(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:l,defaultVariants:a}=t,u=Object.keys(l).map(e=>{let t=null==r?void 0:r[e],i=null==a?void 0:a[e];if(null===t)return null;let o=n(t)||n(i);return l[e][o]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return i(e,u,null==t?void 0:null===(o=t.compoundVariants)||void 0===o?void 0:o.reduce((e,t)=>{let{class:r,className:n,...i}=t;return Object.entries(i).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...a,...s}[t]):({...a,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6810-8c083ebb04e3d5c9.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6810-8c083ebb04e3d5c9.js new file mode 100644 index 0000000..db0c07d --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/6810-8c083ebb04e3d5c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6810],{56703:(e,t,r)=>{r.d(t,{q:()=>n});function n(e,[t,r]){return Math.min(r,Math.max(t,e))}},32474:(e,t,r)=>{r.d(t,{N:()=>s});var n=r(20107),l=r(54379),o=r(64236),a=r(61837),i=r(20475);function s(e){let t=e+"CollectionProvider",[r,s]=(0,l.A)(t),[u,d]=r(t,{collectionRef:{current:null},itemMap:new Map}),c=e=>{let{scope:t,children:r}=e,l=n.useRef(null),o=n.useRef(new Map).current;return(0,i.jsx)(u,{scope:t,itemMap:o,collectionRef:l,children:r})};c.displayName=t;let p=e+"CollectionSlot",f=n.forwardRef((e,t)=>{let{scope:r,children:n}=e,l=d(p,r),s=(0,o.s)(t,l.collectionRef);return(0,i.jsx)(a.DX,{ref:s,children:n})});f.displayName=p;let v=e+"CollectionItemSlot",h="data-radix-collection-item",m=n.forwardRef((e,t)=>{let{scope:r,children:l,...s}=e,u=n.useRef(null),c=(0,o.s)(t,u),p=d(v,r);return n.useEffect(()=>(p.itemMap.set(u,{ref:u,...s}),()=>void p.itemMap.delete(u))),(0,i.jsx)(a.DX,{[h]:"",ref:c,children:l})});return m.displayName=v,[{Provider:c,Slot:f,ItemSlot:m},function(t){let r=d(e+"CollectionConsumer",t);return n.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(h,"]")));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},s]}},76056:(e,t,r)=>{r.d(t,{jH:()=>o});var n=r(20107);r(20475);var l=n.createContext(void 0);function o(e){let t=n.useContext(l);return e||t||"ltr"}},21840:(e,t,r)=>{r.d(t,{b:()=>i});var n=r(20107),l=r(34544),o=r(20475),a=n.forwardRef((e,t)=>(0,o.jsx)(l.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null===(r=e.onMouseDown)||void 0===r||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));a.displayName="Label";var i=a},95257:(e,t,r)=>{r.d(t,{In:()=>eE,JU:()=>e_,LM:()=>eA,PP:()=>eO,UC:()=>eL,VF:()=>eG,WT:()=>eI,YJ:()=>eH,ZL:()=>eD,bL:()=>eP,l9:()=>eM,p4:()=>eV,q7:()=>eB,wn:()=>eF,wv:()=>eK});var n=r(20107),l=r(25642),o=r(56703),a=r(94521),i=r(32474),s=r(64236),u=r(45170),d=r(76056),c=r(55302),p=r(10201),f=r(38573),v=r(72763),h=r(57563),m=r(41913),w=r(34544),g=r(61837),x=r(46774),y=r(13061),b=r(54122),S=r(65163),C=r(91475),j=r(58020),R=r(9543),N=r(20475),k=[" ","Enter","ArrowUp","ArrowDown"],T=[" ","Enter"],P="Select",[M,I,E]=(0,i.N)(P),[D,L]=(0,u.A)(P,[E,h.Bk]),A=(0,h.Bk)(),[H,_]=D(P),[B,V]=D(P),G=e=>{let{__scopeSelect:t,children:r,open:l,defaultOpen:o,onOpenChange:a,value:i,defaultValue:s,onValueChange:u,dir:c,name:p,autoComplete:f,disabled:m,required:w,form:g}=e,x=A(t),[b,S]=n.useState(null),[C,j]=n.useState(null),[R,k]=n.useState(!1),T=(0,d.jH)(c),[P=!1,I]=(0,y.i)({prop:l,defaultProp:o,onChange:a}),[E,D]=(0,y.i)({prop:i,defaultProp:s,onChange:u}),L=n.useRef(null),_=!b||g||!!b.closest("form"),[V,G]=n.useState(new Set),O=Array.from(V).map(e=>e.props.value).join(";");return(0,N.jsx)(h.bL,{...x,children:(0,N.jsxs)(H,{required:w,scope:t,trigger:b,onTriggerChange:S,valueNode:C,onValueNodeChange:j,valueNodeHasChildren:R,onValueNodeHasChildrenChange:k,contentId:(0,v.B)(),value:E,onValueChange:D,open:P,onOpenChange:I,dir:T,triggerPointerDownPosRef:L,disabled:m,children:[(0,N.jsx)(M.Provider,{scope:t,children:(0,N.jsx)(B,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{G(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{G(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),_?(0,N.jsxs)(eN,{"aria-hidden":!0,required:w,tabIndex:-1,name:p,autoComplete:f,value:E,onChange:e=>D(e.target.value),disabled:m,form:g,children:[void 0===E?(0,N.jsx)("option",{value:""}):null,Array.from(V)]},O):null]})})};G.displayName=P;var O="SelectTrigger",F=n.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:l=!1,...o}=e,i=A(r),u=_(O,r),d=u.disabled||l,c=(0,s.s)(t,u.onTriggerChange),p=I(r),f=n.useRef("touch"),[v,m,g]=ek(e=>{let t=p().filter(e=>!e.disabled),r=t.find(e=>e.value===u.value),n=eT(t,e,r);void 0!==n&&u.onValueChange(n.value)}),x=e=>{d||(u.onOpenChange(!0),g()),e&&(u.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,N.jsx)(h.Mz,{asChild:!0,...i,children:(0,N.jsx)(w.sG.button,{type:"button",role:"combobox","aria-controls":u.contentId,"aria-expanded":u.open,"aria-required":u.required,"aria-autocomplete":"none",dir:u.dir,"data-state":u.open?"open":"closed",disabled:d,"data-disabled":d?"":void 0,"data-placeholder":eR(u.value)?"":void 0,...o,ref:c,onClick:(0,a.m)(o.onClick,e=>{e.currentTarget.focus(),"mouse"!==f.current&&x(e)}),onPointerDown:(0,a.m)(o.onPointerDown,e=>{f.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(x(e),e.preventDefault())}),onKeyDown:(0,a.m)(o.onKeyDown,e=>{let t=""!==v.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||m(e.key),(!t||" "!==e.key)&&k.includes(e.key)&&(x(),e.preventDefault())})})})});F.displayName=O;var K="SelectValue",W=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:l,children:o,placeholder:a="",...i}=e,u=_(K,r),{onValueNodeHasChildrenChange:d}=u,c=void 0!==o,p=(0,s.s)(t,u.onValueNodeChange);return(0,b.N)(()=>{d(c)},[d,c]),(0,N.jsx)(w.sG.span,{...i,ref:p,style:{pointerEvents:"none"},children:eR(u.value)?(0,N.jsx)(N.Fragment,{children:a}):o})});W.displayName=K;var U=n.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...l}=e;return(0,N.jsx)(w.sG.span,{"aria-hidden":!0,...l,ref:t,children:n||"▼"})});U.displayName="SelectIcon";var q=e=>(0,N.jsx)(m.Z,{asChild:!0,...e});q.displayName="SelectPortal";var z="SelectContent",X=n.forwardRef((e,t)=>{let r=_(z,e.__scopeSelect),[o,a]=n.useState();return((0,b.N)(()=>{a(new DocumentFragment)},[]),r.open)?(0,N.jsx)(J,{...e,ref:t}):o?l.createPortal((0,N.jsx)(Z,{scope:e.__scopeSelect,children:(0,N.jsx)(M.Slot,{scope:e.__scopeSelect,children:(0,N.jsx)("div",{children:e.children})})}),o):null});X.displayName=z;var[Z,Y]=D(z),J=n.forwardRef((e,t)=>{let{__scopeSelect:r,position:l="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:i,onPointerDownOutside:u,side:d,sideOffset:v,align:h,alignOffset:m,arrowPadding:w,collisionBoundary:x,collisionPadding:y,sticky:b,hideWhenDetached:S,avoidCollisions:C,...k}=e,T=_(z,r),[P,M]=n.useState(null),[E,D]=n.useState(null),L=(0,s.s)(t,e=>M(e)),[A,H]=n.useState(null),[B,V]=n.useState(null),G=I(r),[O,F]=n.useState(!1),K=n.useRef(!1);n.useEffect(()=>{if(P)return(0,j.Eq)(P)},[P]),(0,p.Oh)();let W=n.useCallback(e=>{let[t,...r]=G().map(e=>e.ref.current),[n]=r.slice(-1),l=document.activeElement;for(let r of e)if(r===l||(null==r||r.scrollIntoView({block:"nearest"}),r===t&&E&&(E.scrollTop=0),r===n&&E&&(E.scrollTop=E.scrollHeight),null==r||r.focus(),document.activeElement!==l))return},[G,E]),U=n.useCallback(()=>W([A,P]),[W,A,P]);n.useEffect(()=>{O&&U()},[O,U]);let{onOpenChange:q,triggerPointerDownPosRef:X}=T;n.useEffect(()=>{if(P){let e={x:0,y:0},t=t=>{var r,n,l,o;e={x:Math.abs(Math.round(t.pageX)-(null!==(l=null===(r=X.current)||void 0===r?void 0:r.x)&&void 0!==l?l:0)),y:Math.abs(Math.round(t.pageY)-(null!==(o=null===(n=X.current)||void 0===n?void 0:n.y)&&void 0!==o?o:0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():P.contains(r.target)||q(!1),document.removeEventListener("pointermove",t),X.current=null};return null!==X.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[P,q,X]),n.useEffect(()=>{let e=()=>q(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[q]);let[Y,J]=ek(e=>{let t=G().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=eT(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),ee=n.useCallback((e,t,r)=>{let n=!K.current&&!r;(void 0!==T.value&&T.value===t||n)&&(H(e),n&&(K.current=!0))},[T.value]),et=n.useCallback(()=>null==P?void 0:P.focus(),[P]),er=n.useCallback((e,t,r)=>{let n=!K.current&&!r;(void 0!==T.value&&T.value===t||n)&&V(e)},[T.value]),en="popper"===l?$:Q,el=en===$?{side:d,sideOffset:v,align:h,alignOffset:m,arrowPadding:w,collisionBoundary:x,collisionPadding:y,sticky:b,hideWhenDetached:S,avoidCollisions:C}:{};return(0,N.jsx)(Z,{scope:r,content:P,viewport:E,onViewportChange:D,itemRefCallback:ee,selectedItem:A,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:U,selectedItemText:B,position:l,isPositioned:O,searchRef:Y,children:(0,N.jsx)(R.A,{as:g.DX,allowPinchZoom:!0,children:(0,N.jsx)(f.n,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,a.m)(o,e=>{var t;null===(t=T.trigger)||void 0===t||t.focus({preventScroll:!0}),e.preventDefault()}),children:(0,N.jsx)(c.qW,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,N.jsx)(en,{role:"listbox",id:T.contentId,"data-state":T.open?"open":"closed",dir:T.dir,onContextMenu:e=>e.preventDefault(),...k,...el,onPlaced:()=>F(!0),ref:L,style:{display:"flex",flexDirection:"column",outline:"none",...k.style},onKeyDown:(0,a.m)(k.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||J(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=G().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>W(t)),e.preventDefault()}})})})})})})});J.displayName="SelectContentImpl";var Q=n.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:l,...a}=e,i=_(z,r),u=Y(z,r),[d,c]=n.useState(null),[p,f]=n.useState(null),v=(0,s.s)(t,e=>f(e)),h=I(r),m=n.useRef(!1),g=n.useRef(!0),{viewport:x,selectedItem:y,selectedItemText:S,focusSelectedItem:C}=u,j=n.useCallback(()=>{if(i.trigger&&i.valueNode&&d&&p&&x&&y&&S){let e=i.trigger.getBoundingClientRect(),t=p.getBoundingClientRect(),r=i.valueNode.getBoundingClientRect(),n=S.getBoundingClientRect();if("rtl"!==i.dir){let l=n.left-t.left,a=r.left-l,i=e.left-a,s=e.width+i,u=Math.max(s,t.width),c=window.innerWidth-10,p=(0,o.q)(a,[10,Math.max(10,c-u)]);d.style.minWidth=s+"px",d.style.left=p+"px"}else{let l=t.right-n.right,a=window.innerWidth-r.right-l,i=window.innerWidth-e.right-a,s=e.width+i,u=Math.max(s,t.width),c=window.innerWidth-10,p=(0,o.q)(a,[10,Math.max(10,c-u)]);d.style.minWidth=s+"px",d.style.right=p+"px"}let a=h(),s=window.innerHeight-20,u=x.scrollHeight,c=window.getComputedStyle(p),f=parseInt(c.borderTopWidth,10),v=parseInt(c.paddingTop,10),w=parseInt(c.borderBottomWidth,10),g=f+v+u+parseInt(c.paddingBottom,10)+w,b=Math.min(5*y.offsetHeight,g),C=window.getComputedStyle(x),j=parseInt(C.paddingTop,10),R=parseInt(C.paddingBottom,10),N=e.top+e.height/2-10,k=y.offsetHeight/2,T=f+v+(y.offsetTop+k);if(T<=N){let e=a.length>0&&y===a[a.length-1].ref.current;d.style.bottom="0px";let t=Math.max(s-N,k+(e?R:0)+(p.clientHeight-x.offsetTop-x.offsetHeight)+w);d.style.height=T+t+"px"}else{let e=a.length>0&&y===a[0].ref.current;d.style.top="0px";let t=Math.max(N,f+x.offsetTop+(e?j:0)+k);d.style.height=t+(g-T)+"px",x.scrollTop=T-N+x.offsetTop}d.style.margin="".concat(10,"px 0"),d.style.minHeight=b+"px",d.style.maxHeight=s+"px",null==l||l(),requestAnimationFrame(()=>m.current=!0)}},[h,i.trigger,i.valueNode,d,p,x,y,S,i.dir,l]);(0,b.N)(()=>j(),[j]);let[R,k]=n.useState();(0,b.N)(()=>{p&&k(window.getComputedStyle(p).zIndex)},[p]);let T=n.useCallback(e=>{e&&!0===g.current&&(j(),null==C||C(),g.current=!1)},[j,C]);return(0,N.jsx)(ee,{scope:r,contentWrapper:d,shouldExpandOnScrollRef:m,onScrollButtonChange:T,children:(0,N.jsx)("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:(0,N.jsx)(w.sG.div,{...a,ref:v,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});Q.displayName="SelectItemAlignedPosition";var $=n.forwardRef((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:l=10,...o}=e,a=A(r);return(0,N.jsx)(h.UC,{...a,...o,ref:t,align:n,collisionPadding:l,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});$.displayName="SelectPopperPosition";var[ee,et]=D(z,{}),er="SelectViewport",en=n.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:l,...o}=e,i=Y(er,r),u=et(er,r),d=(0,s.s)(t,i.onViewportChange),c=n.useRef(0);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,N.jsx)(M.Slot,{scope:r,children:(0,N.jsx)(w.sG.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:d,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:(0,a.m)(o.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=u;if((null==n?void 0:n.current)&&r){let e=Math.abs(c.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,l=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(l0?i:0,r.style.justifyContent="flex-end")}}}c.current=t.scrollTop})})})]})});en.displayName=er;var el="SelectGroup",[eo,ea]=D(el),ei=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=(0,v.B)();return(0,N.jsx)(eo,{scope:r,id:l,children:(0,N.jsx)(w.sG.div,{role:"group","aria-labelledby":l,...n,ref:t})})});ei.displayName=el;var es="SelectLabel",eu=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=ea(es,r);return(0,N.jsx)(w.sG.div,{id:l.id,...n,ref:t})});eu.displayName=es;var ed="SelectItem",[ec,ep]=D(ed),ef=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:l,disabled:o=!1,textValue:i,...u}=e,d=_(ed,r),c=Y(ed,r),p=d.value===l,[f,h]=n.useState(null!=i?i:""),[m,g]=n.useState(!1),x=(0,s.s)(t,e=>{var t;return null===(t=c.itemRefCallback)||void 0===t?void 0:t.call(c,e,l,o)}),y=(0,v.B)(),b=n.useRef("touch"),S=()=>{o||(d.onValueChange(l),d.onOpenChange(!1))};if(""===l)throw Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,N.jsx)(ec,{scope:r,value:l,disabled:o,textId:y,isSelected:p,onItemTextChange:n.useCallback(e=>{h(t=>{var r;return t||(null!==(r=null==e?void 0:e.textContent)&&void 0!==r?r:"").trim()})},[]),children:(0,N.jsx)(M.ItemSlot,{scope:r,value:l,disabled:o,textValue:f,children:(0,N.jsx)(w.sG.div,{role:"option","aria-labelledby":y,"data-highlighted":m?"":void 0,"aria-selected":p&&m,"data-state":p?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...u,ref:x,onFocus:(0,a.m)(u.onFocus,()=>g(!0)),onBlur:(0,a.m)(u.onBlur,()=>g(!1)),onClick:(0,a.m)(u.onClick,()=>{"mouse"!==b.current&&S()}),onPointerUp:(0,a.m)(u.onPointerUp,()=>{"mouse"===b.current&&S()}),onPointerDown:(0,a.m)(u.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:(0,a.m)(u.onPointerMove,e=>{if(b.current=e.pointerType,o){var t;null===(t=c.onItemLeave)||void 0===t||t.call(c)}else"mouse"===b.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,a.m)(u.onPointerLeave,e=>{if(e.currentTarget===document.activeElement){var t;null===(t=c.onItemLeave)||void 0===t||t.call(c)}}),onKeyDown:(0,a.m)(u.onKeyDown,e=>{var t;(null===(t=c.searchRef)||void 0===t?void 0:t.current)!==""&&" "===e.key||(T.includes(e.key)&&S()," "===e.key&&e.preventDefault())})})})})});ef.displayName=ed;var ev="SelectItemText",eh=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:o,style:a,...i}=e,u=_(ev,r),d=Y(ev,r),c=ep(ev,r),p=V(ev,r),[f,v]=n.useState(null),h=(0,s.s)(t,e=>v(e),c.onItemTextChange,e=>{var t;return null===(t=d.itemTextRefCallback)||void 0===t?void 0:t.call(d,e,c.value,c.disabled)}),m=null==f?void 0:f.textContent,g=n.useMemo(()=>(0,N.jsx)("option",{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:x,onNativeOptionRemove:y}=p;return(0,b.N)(()=>(x(g),()=>y(g)),[x,y,g]),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(w.sG.span,{id:c.textId,...i,ref:h}),c.isSelected&&u.valueNode&&!u.valueNodeHasChildren?l.createPortal(i.children,u.valueNode):null]})});eh.displayName=ev;var em="SelectItemIndicator",ew=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return ep(em,r).isSelected?(0,N.jsx)(w.sG.span,{"aria-hidden":!0,...n,ref:t}):null});ew.displayName=em;var eg="SelectScrollUpButton",ex=n.forwardRef((e,t)=>{let r=Y(eg,e.__scopeSelect),l=et(eg,e.__scopeSelect),[o,a]=n.useState(!1),i=(0,s.s)(t,l.onScrollButtonChange);return(0,b.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){a(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,N.jsx)(eS,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ex.displayName=eg;var ey="SelectScrollDownButton",eb=n.forwardRef((e,t)=>{let r=Y(ey,e.__scopeSelect),l=et(ey,e.__scopeSelect),[o,a]=n.useState(!1),i=(0,s.s)(t,l.onScrollButtonChange);return(0,b.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,N.jsx)(eS,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eb.displayName=ey;var eS=n.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:l,...o}=e,i=Y("SelectScrollButton",r),s=n.useRef(null),u=I(r),d=n.useCallback(()=>{null!==s.current&&(window.clearInterval(s.current),s.current=null)},[]);return n.useEffect(()=>()=>d(),[d]),(0,b.N)(()=>{var e;let t=u().find(e=>e.ref.current===document.activeElement);null==t||null===(e=t.ref.current)||void 0===e||e.scrollIntoView({block:"nearest"})},[u]),(0,N.jsx)(w.sG.div,{"aria-hidden":!0,...o,ref:t,style:{flexShrink:0,...o.style},onPointerDown:(0,a.m)(o.onPointerDown,()=>{null===s.current&&(s.current=window.setInterval(l,50))}),onPointerMove:(0,a.m)(o.onPointerMove,()=>{var e;null===(e=i.onItemLeave)||void 0===e||e.call(i),null===s.current&&(s.current=window.setInterval(l,50))}),onPointerLeave:(0,a.m)(o.onPointerLeave,()=>{d()})})}),eC=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,N.jsx)(w.sG.div,{"aria-hidden":!0,...n,ref:t})});eC.displayName="SelectSeparator";var ej="SelectArrow";function eR(e){return""===e||void 0===e}n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=A(r),o=_(ej,r),a=Y(ej,r);return o.open&&"popper"===a.position?(0,N.jsx)(h.i3,{...l,...n,ref:t}):null}).displayName=ej;var eN=n.forwardRef((e,t)=>{let{value:r,...l}=e,o=n.useRef(null),a=(0,s.s)(t,o),i=(0,S.Z)(r);return n.useEffect(()=>{let e=o.current,t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(i!==r&&t){let n=new Event("change",{bubbles:!0});t.call(e,r),e.dispatchEvent(n)}},[i,r]),(0,N.jsx)(C.s,{asChild:!0,children:(0,N.jsx)("select",{...l,ref:a,defaultValue:r})})});function ek(e){let t=(0,x.c)(e),r=n.useRef(""),l=n.useRef(0),o=n.useCallback(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(l.current),""!==t&&(l.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),a=n.useCallback(()=>{r.current="",window.clearTimeout(l.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(l.current),[]),[r,o,a]}function eT(e,t,r){var n;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,o=(n=Math.max(r?e.indexOf(r):-1,0),e.map((t,r)=>e[(n+r)%e.length]));1===l.length&&(o=o.filter(e=>e!==r));let a=o.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return a!==r?a:void 0}eN.displayName="BubbleSelect";var eP=G,eM=F,eI=W,eE=U,eD=q,eL=X,eA=en,eH=ei,e_=eu,eB=ef,eV=eh,eG=ew,eO=ex,eF=eb,eK=eC},65163:(e,t,r)=>{r.d(t,{Z:()=>l});var n=r(20107);function l(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},91475:(e,t,r)=>{r.d(t,{b:()=>i,s:()=>a});var n=r(20107),l=r(34544),o=r(20475),a=n.forwardRef((e,t)=>(0,o.jsx)(l.sG.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));a.displayName="VisuallyHidden";var i=a}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7231-9bf29e950cdd6225.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7231-9bf29e950cdd6225.js new file mode 100644 index 0000000..1094d91 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7231-9bf29e950cdd6225.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7231],{39997:(e,r,t)=>{t.d(r,{A:()=>c});var a=t(20107);let n=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),o=function(){for(var e=arguments.length,r=Array(e),t=0;t!!e&&t.indexOf(e)===r).join(" ")};var l={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"};let i=(0,a.forwardRef)((e,r)=>{let{color:t="currentColor",size:n=24,strokeWidth:i=2,absoluteStrokeWidth:c,className:s="",children:u,iconNode:d,...p}=e;return(0,a.createElement)("svg",{ref:r,...l,width:n,height:n,stroke:t,strokeWidth:c?24*Number(i)/Number(n):i,className:o("lucide",s),...p},[...d.map(e=>{let[r,t]=e;return(0,a.createElement)(r,t)}),...Array.isArray(u)?u:[u]])}),c=(e,r)=>{let t=(0,a.forwardRef)((t,l)=>{let{className:c,...s}=t;return(0,a.createElement)(i,{ref:l,iconNode:r,className:o("lucide-".concat(n(e)),c),...s})});return t.displayName="".concat(e),t}},76076:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]])},59166:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},91994:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("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"}]])},27720:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},51873:(e,r,t)=>{t.d(r,{A:()=>a});let a=(0,t(39997).A)("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"}]])},33466:(e,r,t)=>{t.d(r,{C1:()=>O,bL:()=>w});var a=t(20107),n=t(54379),o=t(34544),l=t(20475),i="Progress",[c,s]=(0,n.A)(i),[u,d]=c(i),p=a.forwardRef((e,r)=>{var t,a,n,i;let{__scopeProgress:c,value:s=null,max:d,getValueLabel:p=y,...v}=e;(d||0===d)&&!b(d)&&console.error((t="".concat(d),a="Progress","Invalid prop `max` of value `".concat(t,"` supplied to `").concat(a,"`. Only numbers greater than 0 are valid max values. Defaulting to `").concat(100,"`.")));let f=b(d)?d:100;null===s||g(s,f)||console.error((n="".concat(s),i="Progress","Invalid prop `value` of value `".concat(n,"` supplied to `").concat(i,"`. The `value` prop must be:\n - a positive number\n - less than the value passed to `max` (or ").concat(100," if no `max` prop is set)\n - `null` or `undefined` if the progress is indeterminate.\n\nDefaulting to `null`.")));let w=g(s,f)?s:null,O=m(w)?p(w,f):void 0;return(0,l.jsx)(u,{scope:c,value:w,max:f,children:(0,l.jsx)(o.sG.div,{"aria-valuemax":f,"aria-valuemin":0,"aria-valuenow":m(w)?w:void 0,"aria-valuetext":O,role:"progressbar","data-state":h(w,f),"data-value":null!=w?w:void 0,"data-max":f,...v,ref:r})})});p.displayName=i;var v="ProgressIndicator",f=a.forwardRef((e,r)=>{var t;let{__scopeProgress:a,...n}=e,i=d(v,a);return(0,l.jsx)(o.sG.div,{"data-state":h(i.value,i.max),"data-value":null!==(t=i.value)&&void 0!==t?t:void 0,"data-max":i.max,...n,ref:r})});function y(e,r){return"".concat(Math.round(e/r*100),"%")}function h(e,r){return null==e?"indeterminate":e===r?"complete":"loading"}function m(e){return"number"==typeof e}function b(e){return m(e)&&!isNaN(e)&&e>0}function g(e,r){return m(e)&&!isNaN(e)&&e<=r&&e>=0}f.displayName=v;var w=p,O=f},91475:(e,r,t)=>{t.d(r,{b:()=>i,s:()=>l});var a=t(20107),n=t(34544),o=t(20475),l=a.forwardRef((e,r)=>(0,o.jsx)(n.sG.span,{...e,ref:r,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));l.displayName="VisuallyHidden";var i=l},45930:(e,r,t)=>{t.d(r,{k5:()=>u});var a=t(20107),n={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},o=a.createContext&&a.createContext(n),l=["attr","size","title"];function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var r=1;ra.createElement(d,i({attr:s({},e.attr)},r),function e(r){return r&&r.map((r,t)=>a.createElement(r.tag,s({key:t},r.attr),e(r.child)))}(e.child))}function d(e){var r=r=>{var t,{attr:n,size:o,title:c}=e,u=function(e,r){if(null==e)return{};var t,a,n=function(e,r){if(null==e)return{};var t={};for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){if(r.indexOf(a)>=0)continue;t[a]=e[a]}return t}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}(e,l),d=o||r.size||"1em";return r.className&&(t=r.className),e.className&&(t=(t?t+" ":"")+e.className),a.createElement("svg",i({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},r.attr,n,u,{className:t,style:s(s({color:e.color||r.color},r.style),e.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),c&&a.createElement("title",null,c),e.children)};return void 0!==o?a.createElement(o.Consumer,null,e=>r(e)):r(n)}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7563-33b7de2a93dcbe27.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7563-33b7de2a93dcbe27.js new file mode 100644 index 0000000..490c5e2 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7563-33b7de2a93dcbe27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7563],{84069:(e,t,n)=>{n.d(t,{UE:()=>ec,ll:()=>ei,rD:()=>ed,UU:()=>ea,jD:()=>eu,ER:()=>es,cY:()=>eo,BN:()=>el,Ej:()=>ef});let r=["top","right","bottom","left"],i=Math.min,o=Math.max,l=Math.round,a=Math.floor,f=e=>({x:e,y:e}),u={left:"right",right:"left",bottom:"top",top:"bottom"},c={start:"end",end:"start"};function s(e,t){return"function"==typeof e?e(t):e}function d(e){return e.split("-")[0]}function p(e){return e.split("-")[1]}function h(e){return"x"===e?"y":"x"}function m(e){return"y"===e?"height":"width"}function g(e){return["top","bottom"].includes(d(e))?"y":"x"}function y(e){return e.replace(/start|end/g,e=>c[e])}function w(e){return e.replace(/left|right|bottom|top/g,e=>u[e])}function v(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function x(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function b(e,t,n){let r,{reference:i,floating:o}=e,l=g(t),a=h(g(t)),f=m(a),u=d(t),c="y"===l,s=i.x+i.width/2-o.width/2,y=i.y+i.height/2-o.height/2,w=i[f]/2-o[f]/2;switch(u){case"top":r={x:s,y:i.y-o.height};break;case"bottom":r={x:s,y:i.y+i.height};break;case"right":r={x:i.x+i.width,y:y};break;case"left":r={x:i.x-o.width,y:y};break;default:r={x:i.x,y:i.y}}switch(p(t)){case"start":r[a]-=w*(n&&c?-1:1);break;case"end":r[a]+=w*(n&&c?-1:1)}return r}let A=async(e,t,n)=>{let{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:l}=n,a=o.filter(Boolean),f=await (null==l.isRTL?void 0:l.isRTL(t)),u=await l.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:s}=b(u,r,f),d=r,p={},h=0;for(let n=0;ne[t]>=0)}async function S(e,t){let{placement:n,platform:r,elements:i}=e,o=await (null==r.isRTL?void 0:r.isRTL(i.floating)),l=d(n),a=p(n),f="y"===g(n),u=["left","top"].includes(l)?-1:1,c=o&&f?-1:1,h=s(t,e),{mainAxis:m,crossAxis:y,alignmentAxis:w}="number"==typeof h?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return a&&"number"==typeof w&&(y="end"===a?-1*w:w),f?{x:y*c,y:m*u}:{x:m*u,y:y*c}}function T(){return"undefined"!=typeof window}function C(e){return N(e)?(e.nodeName||"").toLowerCase():"#document"}function O(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function P(e){var t;return null==(t=(N(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function N(e){return!!T()&&(e instanceof Node||e instanceof O(e).Node)}function D(e){return!!T()&&(e instanceof Element||e instanceof O(e).Element)}function j(e){return!!T()&&(e instanceof HTMLElement||e instanceof O(e).HTMLElement)}function k(e){return!!T()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof O(e).ShadowRoot)}function H(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=z(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(i)}function M(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch(e){return!1}})}function B(e){let t=F(),n=D(e)?z(e):e;return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some(e=>(n.willChange||"").includes(e))||["paint","layout","strict","content"].some(e=>(n.contain||"").includes(e))}function F(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}function W(e){return["html","body","#document"].includes(C(e))}function z(e){return O(e).getComputedStyle(e)}function U(e){return D(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function _(e){if("html"===C(e))return e;let t=e.assignedSlot||e.parentNode||k(e)&&e.host||P(e);return k(t)?t.host:t}function V(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let i=function e(t){let n=_(t);return W(n)?t.ownerDocument?t.ownerDocument.body:t.body:j(n)&&H(n)?n:e(n)}(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),l=O(i);if(o){let e=Y(l);return t.concat(l,l.visualViewport||[],H(i)?i:[],e&&n?V(e):[])}return t.concat(i,V(i,[],n))}function Y(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function $(e){let t=z(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=j(e),o=i?e.offsetWidth:n,a=i?e.offsetHeight:r,f=l(n)!==o||l(r)!==a;return f&&(n=o,r=a),{width:n,height:r,$:f}}function X(e){return D(e)?e:e.contextElement}function I(e){let t=X(e);if(!j(t))return f(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:o}=$(t),a=(o?l(n.width):n.width)/r,u=(o?l(n.height):n.height)/i;return a&&Number.isFinite(a)||(a=1),u&&Number.isFinite(u)||(u=1),{x:a,y:u}}let G=f(0);function q(e){let t=O(e);return F()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:G}function J(e,t,n,r){var i;void 0===t&&(t=!1),void 0===n&&(n=!1);let o=e.getBoundingClientRect(),l=X(e),a=f(1);t&&(r?D(r)&&(a=I(r)):a=I(e));let u=(void 0===(i=n)&&(i=!1),r&&(!i||r===O(l))&&i)?q(l):f(0),c=(o.left+u.x)/a.x,s=(o.top+u.y)/a.y,d=o.width/a.x,p=o.height/a.y;if(l){let e=O(l),t=r&&D(r)?O(r):r,n=e,i=Y(n);for(;i&&r&&t!==n;){let e=I(i),t=i.getBoundingClientRect(),r=z(i),o=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,l=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,s*=e.y,d*=e.x,p*=e.y,c+=o,s+=l,i=Y(n=O(i))}}return x({width:d,height:p,x:c,y:s})}function K(e,t){let n=U(e).scrollLeft;return t?t.left+n:J(P(e)).left+n}function Q(e,t,n){let r;if("viewport"===t)r=function(e,t){let n=O(e),r=P(e),i=n.visualViewport,o=r.clientWidth,l=r.clientHeight,a=0,f=0;if(i){o=i.width,l=i.height;let e=F();(!e||e&&"fixed"===t)&&(a=i.offsetLeft,f=i.offsetTop)}return{width:o,height:l,x:a,y:f}}(e,n);else if("document"===t)r=function(e){let t=P(e),n=U(e),r=e.ownerDocument.body,i=o(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),l=o(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),a=-n.scrollLeft+K(e),f=-n.scrollTop;return"rtl"===z(r).direction&&(a+=o(t.clientWidth,r.clientWidth)-i),{width:i,height:l,x:a,y:f}}(P(e));else if(D(t))r=function(e,t){let n=J(e,!0,"fixed"===t),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=j(e)?I(e):f(1),l=e.clientWidth*o.x;return{width:l,height:e.clientHeight*o.y,x:i*o.x,y:r*o.y}}(t,n);else{let n=q(e);r={...t,x:t.x-n.x,y:t.y-n.y}}return x(r)}function Z(e){return"static"===z(e).position}function ee(e,t){if(!j(e)||"fixed"===z(e).position)return null;if(t)return t(e);let n=e.offsetParent;return P(e)===n&&(n=n.ownerDocument.body),n}function et(e,t){let n=O(e);if(M(e))return n;if(!j(e)){let t=_(e);for(;t&&!W(t);){if(D(t)&&!Z(t))return t;t=_(t)}return n}let r=ee(e,t);for(;r&&["table","td","th"].includes(C(r))&&Z(r);)r=ee(r,t);return r&&W(r)&&Z(r)&&!B(r)?n:r||function(e){let t=_(e);for(;j(t)&&!W(t);){if(B(t))return t;if(M(t))break;t=_(t)}return null}(e)||n}let en=async function(e){let t=this.getOffsetParent||et,n=this.getDimensions,r=await n(e.floating);return{reference:function(e,t,n){let r=j(t),i=P(t),o="fixed"===n,l=J(e,!0,o,t),a={scrollLeft:0,scrollTop:0},u=f(0);if(r||!r&&!o){if(("body"!==C(t)||H(i))&&(a=U(t)),r){let e=J(t,!0,o,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}else i&&(u.x=K(i))}let c=0,s=0;if(i&&!r&&!o){let e=i.getBoundingClientRect();s=e.top+a.scrollTop,c=e.left+a.scrollLeft-K(i,e)}return{x:l.left+a.scrollLeft-u.x-c,y:l.top+a.scrollTop-u.y-s,width:l.width,height:l.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},er={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,o="fixed"===i,l=P(r),a=!!t&&M(t.floating);if(r===l||a&&o)return n;let u={scrollLeft:0,scrollTop:0},c=f(1),s=f(0),d=j(r);if((d||!d&&!o)&&(("body"!==C(r)||H(l))&&(u=U(r)),j(r))){let e=J(r);c=I(r),s.x=e.x+r.clientLeft,s.y=e.y+r.clientTop}return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-u.scrollLeft*c.x+s.x,y:n.y*c.y-u.scrollTop*c.y+s.y}},getDocumentElement:P,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:l}=e,a=[..."clippingAncestors"===n?M(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let r=V(e,[],!1).filter(e=>D(e)&&"body"!==C(e)),i=null,o="fixed"===z(e).position,l=o?_(e):e;for(;D(l)&&!W(l);){let t=z(l),n=B(l);n||"fixed"!==t.position||(i=null),(o?!n&&!i:!n&&"static"===t.position&&!!i&&["absolute","fixed"].includes(i.position)||H(l)&&!n&&function e(t,n){let r=_(t);return!(r===n||!D(r)||W(r))&&("fixed"===z(r).position||e(r,n))}(e,l))?r=r.filter(e=>e!==l):i=t,l=_(l)}return t.set(e,r),r}(t,this._c):[].concat(n),r],f=a[0],u=a.reduce((e,n)=>{let r=Q(t,n,l);return e.top=o(r.top,e.top),e.right=i(r.right,e.right),e.bottom=i(r.bottom,e.bottom),e.left=o(r.left,e.left),e},Q(t,f,l));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:et,getElementRects:en,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=$(e);return{width:t,height:n}},getScale:I,isElement:D,isRTL:function(e){return"rtl"===z(e).direction}};function ei(e,t,n,r){let l;void 0===r&&(r={});let{ancestorScroll:f=!0,ancestorResize:u=!0,elementResize:c="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:d=!1}=r,p=X(e),h=f||u?[...p?V(p):[],...V(t)]:[];h.forEach(e=>{f&&e.addEventListener("scroll",n,{passive:!0}),u&&e.addEventListener("resize",n)});let m=p&&s?function(e,t){let n,r=null,l=P(e);function f(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function u(c,s){void 0===c&&(c=!1),void 0===s&&(s=1),f();let{left:d,top:p,width:h,height:m}=e.getBoundingClientRect();if(c||t(),!h||!m)return;let g=a(p),y=a(l.clientWidth-(d+h)),w={rootMargin:-g+"px "+-y+"px "+-a(l.clientHeight-(p+m))+"px "+-a(d)+"px",threshold:o(0,i(1,s))||1},v=!0;function x(e){let t=e[0].intersectionRatio;if(t!==s){if(!v)return u();t?u(!1,t):n=setTimeout(()=>{u(!1,1e-7)},1e3)}v=!1}try{r=new IntersectionObserver(x,{...w,root:l.ownerDocument})}catch(e){r=new IntersectionObserver(x,w)}r.observe(e)}(!0),f}(p,n):null,g=-1,y=null;c&&(y=new ResizeObserver(e=>{let[r]=e;r&&r.target===p&&y&&(y.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var e;null==(e=y)||e.observe(t)})),n()}),p&&!d&&y.observe(p),y.observe(t));let w=d?J(e):null;return d&&function t(){let r=J(e);w&&(r.x!==w.x||r.y!==w.y||r.width!==w.width||r.height!==w.height)&&n(),w=r,l=requestAnimationFrame(t)}(),n(),()=>{var e;h.forEach(e=>{f&&e.removeEventListener("scroll",n),u&&e.removeEventListener("resize",n)}),null==m||m(),null==(e=y)||e.disconnect(),y=null,d&&cancelAnimationFrame(l)}}let eo=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;let{x:i,y:o,placement:l,middlewareData:a}=t,f=await S(t,e);return l===(null==(n=a.offset)?void 0:n.placement)&&null!=(r=a.arrow)&&r.alignmentOffset?{}:{x:i+f.x,y:o+f.y,data:{...f,placement:l}}}}},el=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:l}=t,{mainAxis:a=!0,crossAxis:f=!1,limiter:u={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=s(e,t),p={x:n,y:r},m=await R(t,c),y=g(d(l)),w=h(y),v=p[w],x=p[y];if(a){let e="y"===w?"top":"left",t="y"===w?"bottom":"right",n=v+m[e],r=v-m[t];v=o(n,i(v,r))}if(f){let e="y"===y?"top":"left",t="y"===y?"bottom":"right",n=x+m[e],r=x-m[t];x=o(n,i(x,r))}let b=u.fn({...t,[w]:v,[y]:x});return{...b,data:{x:b.x-n,y:b.y-r,enabled:{[w]:a,[y]:f}}}}}},ea=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r,i,o,l;let{placement:a,middlewareData:f,rects:u,initialPlacement:c,platform:v,elements:x}=t,{mainAxis:b=!0,crossAxis:A=!0,fallbackPlacements:E,fallbackStrategy:L="bestFit",fallbackAxisSideDirection:S="none",flipAlignment:T=!0,...C}=s(e,t);if(null!=(n=f.arrow)&&n.alignmentOffset)return{};let O=d(a),P=g(c),N=d(c)===c,D=await (null==v.isRTL?void 0:v.isRTL(x.floating)),j=E||(N||!T?[w(c)]:function(e){let t=w(e);return[y(e),t,y(t)]}(c)),k="none"!==S;!E&&k&&j.push(...function(e,t,n,r){let i=p(e),o=function(e,t,n){let r=["left","right"],i=["right","left"];switch(e){case"top":case"bottom":if(n)return t?i:r;return t?r:i;case"left":case"right":return t?["top","bottom"]:["bottom","top"];default:return[]}}(d(e),"start"===n,r);return i&&(o=o.map(e=>e+"-"+i),t&&(o=o.concat(o.map(y)))),o}(c,T,S,D));let H=[c,...j],M=await R(t,C),B=[],F=(null==(r=f.flip)?void 0:r.overflows)||[];if(b&&B.push(M[O]),A){let e=function(e,t,n){void 0===n&&(n=!1);let r=p(e),i=h(g(e)),o=m(i),l="x"===i?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[o]>t.floating[o]&&(l=w(l)),[l,w(l)]}(a,u,D);B.push(M[e[0]],M[e[1]])}if(F=[...F,{placement:a,overflows:B}],!B.every(e=>e<=0)){let e=((null==(i=f.flip)?void 0:i.index)||0)+1,t=H[e];if(t)return{data:{index:e,overflows:F},reset:{placement:t}};let n=null==(o=F.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:o.placement;if(!n)switch(L){case"bestFit":{let e=null==(l=F.filter(e=>{if(k){let t=g(e.placement);return t===P||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:l[0];e&&(n=e);break}case"initialPlacement":n=c}if(a!==n)return{reset:{placement:n}}}return{}}}},ef=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;let l,a;let{placement:f,rects:u,platform:c,elements:h}=t,{apply:m=()=>{},...y}=s(e,t),w=await R(t,y),v=d(f),x=p(f),b="y"===g(f),{width:A,height:E}=u.floating;"top"===v||"bottom"===v?(l=v,a=x===(await (null==c.isRTL?void 0:c.isRTL(h.floating))?"start":"end")?"left":"right"):(a=v,l="end"===x?"top":"bottom");let L=E-w.top-w.bottom,S=A-w.left-w.right,T=i(E-w[l],L),C=i(A-w[a],S),O=!t.middlewareData.shift,P=T,N=C;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(N=S),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(P=L),O&&!x){let e=o(w.left,0),t=o(w.right,0),n=o(w.top,0),r=o(w.bottom,0);b?N=A-2*(0!==e||0!==t?e+t:o(w.left,w.right)):P=E-2*(0!==n||0!==r?n+r:o(w.top,w.bottom))}await m({...t,availableWidth:N,availableHeight:P});let D=await c.getDimensions(h.floating);return A!==D.width||E!==D.height?{reset:{rects:!0}}:{}}}},eu=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){let{rects:n}=t,{strategy:r="referenceHidden",...i}=s(e,t);switch(r){case"referenceHidden":{let e=E(await R(t,{...i,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:L(e)}}}case"escaped":{let e=E(await R(t,{...i,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:L(e)}}}default:return{}}}}},ec=e=>({name:"arrow",options:e,async fn(t){let{x:n,y:r,placement:l,rects:a,platform:f,elements:u,middlewareData:c}=t,{element:d,padding:y=0}=s(e,t)||{};if(null==d)return{};let w=v(y),x={x:n,y:r},b=h(g(l)),A=m(b),R=await f.getDimensions(d),E="y"===b,L=E?"clientHeight":"clientWidth",S=a.reference[A]+a.reference[b]-x[b]-a.floating[A],T=x[b]-a.reference[b],C=await (null==f.getOffsetParent?void 0:f.getOffsetParent(d)),O=C?C[L]:0;O&&await (null==f.isElement?void 0:f.isElement(C))||(O=u.floating[L]||a.floating[A]);let P=O/2-R[A]/2-1,N=i(w[E?"top":"left"],P),D=i(w[E?"bottom":"right"],P),j=O-R[A]-D,k=O/2-R[A]/2+(S/2-T/2),H=o(N,i(k,j)),M=!c.arrow&&null!=p(l)&&k!==H&&a.reference[A]/2-(kn&&(y=n)}if(u){var b,A;let e="y"===m?"width":"height",t=["top","left"].includes(d(i)),n=o.reference[p]-o.floating[e]+(t&&(null==(b=l.offset)?void 0:b[p])||0)+(t?0:x.crossAxis),r=o.reference[p]+o.reference[e]+(t?0:(null==(A=l.offset)?void 0:A[p])||0)-(t?x.crossAxis:0);wr&&(w=r)}return{[m]:y,[p]:w}}}},ed=(e,t,n)=>{let r=new Map,i={platform:er,...n},o={...i.platform,_c:r};return A(e,t,{...i,platform:o})}},9895:(e,t,n)=>{n.d(t,{BN:()=>h,ER:()=>m,Ej:()=>y,UE:()=>v,UU:()=>g,cY:()=>p,jD:()=>w,we:()=>s});var r=n(84069),i=n(20107),o=n(25642),l="undefined"!=typeof document?i.useLayoutEffect:i.useEffect;function a(e,t){let n,r,i;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((n=e.length)!==t.length)return!1;for(r=n;0!=r--;)if(!a(e[r],t[r]))return!1;return!0}if((n=(i=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!({}).hasOwnProperty.call(t,i[r]))return!1;for(r=n;0!=r--;){let n=i[r];if(("_owner"!==n||!e.$$typeof)&&!a(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function f(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function u(e,t){let n=f(e);return Math.round(t*n)/n}function c(e){let t=i.useRef(e);return l(()=>{t.current=e}),t}function s(e){void 0===e&&(e={});let{placement:t="bottom",strategy:n="absolute",middleware:s=[],platform:d,elements:{reference:p,floating:h}={},transform:m=!0,whileElementsMounted:g,open:y}=e,[w,v]=i.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[x,b]=i.useState(s);a(x,s)||b(s);let[A,R]=i.useState(null),[E,L]=i.useState(null),S=i.useCallback(e=>{e!==P.current&&(P.current=e,R(e))},[]),T=i.useCallback(e=>{e!==N.current&&(N.current=e,L(e))},[]),C=p||A,O=h||E,P=i.useRef(null),N=i.useRef(null),D=i.useRef(w),j=null!=g,k=c(g),H=c(d),M=c(y),B=i.useCallback(()=>{if(!P.current||!N.current)return;let e={placement:t,strategy:n,middleware:x};H.current&&(e.platform=H.current),(0,r.rD)(P.current,N.current,e).then(e=>{let t={...e,isPositioned:!1!==M.current};F.current&&!a(D.current,t)&&(D.current=t,o.flushSync(()=>{v(t)}))})},[x,t,n,H,M]);l(()=>{!1===y&&D.current.isPositioned&&(D.current.isPositioned=!1,v(e=>({...e,isPositioned:!1})))},[y]);let F=i.useRef(!1);l(()=>(F.current=!0,()=>{F.current=!1}),[]),l(()=>{if(C&&(P.current=C),O&&(N.current=O),C&&O){if(k.current)return k.current(C,O,B);B()}},[C,O,B,k,j]);let W=i.useMemo(()=>({reference:P,floating:N,setReference:S,setFloating:T}),[S,T]),z=i.useMemo(()=>({reference:C,floating:O}),[C,O]),U=i.useMemo(()=>{let e={position:n,left:0,top:0};if(!z.floating)return e;let t=u(z.floating,w.x),r=u(z.floating,w.y);return m?{...e,transform:"translate("+t+"px, "+r+"px)",...f(z.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,m,z.floating,w.x,w.y]);return i.useMemo(()=>({...w,update:B,refs:W,elements:z,floatingStyles:U}),[w,B,W,z,U])}let d=e=>({name:"arrow",options:e,fn(t){let{element:n,padding:i}="function"==typeof e?e(t):e;return n&&({}).hasOwnProperty.call(n,"current")?null!=n.current?(0,r.UE)({element:n.current,padding:i}).fn(t):{}:n?(0,r.UE)({element:n,padding:i}).fn(t):{}}}),p=(e,t)=>({...(0,r.cY)(e),options:[e,t]}),h=(e,t)=>({...(0,r.BN)(e),options:[e,t]}),m=(e,t)=>({...(0,r.ER)(e),options:[e,t]}),g=(e,t)=>({...(0,r.UU)(e),options:[e,t]}),y=(e,t)=>({...(0,r.Ej)(e),options:[e,t]}),w=(e,t)=>({...(0,r.jD)(e),options:[e,t]}),v=(e,t)=>({...d(e),options:[e,t]})},54379:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(20107),i=n(20475);function o(e,t=[]){let n=[],l=()=>{let t=n.map(e=>r.createContext(e));return function(n){let i=n?.[e]||t;return r.useMemo(()=>({[`__scope${e}`]:{...n,[e]:i}}),[n,i])}};return l.scopeName=e,[function(t,o){let l=r.createContext(o),a=n.length;function f(t){let{scope:n,children:o,...f}=t,u=n?.[e][a]||l,c=r.useMemo(()=>f,Object.values(f));return(0,i.jsx)(u.Provider,{value:c,children:o})}return n=[...n,o],f.displayName=t+"Provider",[f,function(n,i){let f=i?.[e][a]||l,u=r.useContext(f);if(u)return u;if(void 0!==o)return o;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let i=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return r.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}(l,...t)]}},57563:(e,t,n)=>{n.d(t,{Mz:()=>j,i3:()=>H,UC:()=>k,bL:()=>D,Bk:()=>g});var r=n(20107),i=n(9895),o=n(84069),l=n(34544),a=n(20475),f=r.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...o}=e;return(0,a.jsx)(l.sG.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:(0,a.jsx)("polygon",{points:"0,0 30,0 15,10"})})});f.displayName="Arrow";var u=n(64236),c=n(54379),s=n(46774),d=n(54122),p=n(63620),h="Popper",[m,g]=(0,c.A)(h),[y,w]=m(h),v=e=>{let{__scopePopper:t,children:n}=e,[i,o]=r.useState(null);return(0,a.jsx)(y,{scope:t,anchor:i,onAnchorChange:o,children:n})};v.displayName=h;var x="PopperAnchor",b=r.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:i,...o}=e,f=w(x,n),c=r.useRef(null),s=(0,u.s)(t,c);return r.useEffect(()=>{f.onAnchorChange((null==i?void 0:i.current)||c.current)}),i?null:(0,a.jsx)(l.sG.div,{...o,ref:s})});b.displayName=x;var A="PopperContent",[R,E]=m(A),L=r.forwardRef((e,t)=>{var n,f,c,h,m,g,y,v;let{__scopePopper:x,side:b="bottom",sideOffset:E=0,align:L="center",alignOffset:S=0,arrowPadding:T=0,avoidCollisions:C=!0,collisionBoundary:D=[],collisionPadding:j=0,sticky:k="partial",hideWhenDetached:H=!1,updatePositionStrategy:M="optimized",onPlaced:B,...F}=e,W=w(A,x),[z,U]=r.useState(null),_=(0,u.s)(t,e=>U(e)),[V,Y]=r.useState(null),$=(0,p.X)(V),X=null!==(y=null==$?void 0:$.width)&&void 0!==y?y:0,I=null!==(v=null==$?void 0:$.height)&&void 0!==v?v:0,G="number"==typeof j?j:{top:0,right:0,bottom:0,left:0,...j},q=Array.isArray(D)?D:[D],J=q.length>0,K={padding:G,boundary:q.filter(O),altBoundary:J},{refs:Q,floatingStyles:Z,placement:ee,isPositioned:et,middlewareData:en}=(0,i.we)({strategy:"fixed",placement:b+("center"!==L?"-"+L:""),whileElementsMounted:function(){for(var e=arguments.length,t=Array(e),n=0;n{let{elements:t,rects:n,availableWidth:r,availableHeight:i}=e,{width:o,height:l}=n.reference,a=t.floating.style;a.setProperty("--radix-popper-available-width","".concat(r,"px")),a.setProperty("--radix-popper-available-height","".concat(i,"px")),a.setProperty("--radix-popper-anchor-width","".concat(o,"px")),a.setProperty("--radix-popper-anchor-height","".concat(l,"px"))}}),V&&(0,i.UE)({element:V,padding:T}),P({arrowWidth:X,arrowHeight:I}),H&&(0,i.jD)({strategy:"referenceHidden",...K})]}),[er,ei]=N(ee),eo=(0,s.c)(B);(0,d.N)(()=>{et&&(null==eo||eo())},[et,eo]);let el=null===(n=en.arrow)||void 0===n?void 0:n.x,ea=null===(f=en.arrow)||void 0===f?void 0:f.y,ef=(null===(c=en.arrow)||void 0===c?void 0:c.centerOffset)!==0,[eu,ec]=r.useState();return(0,d.N)(()=>{z&&ec(window.getComputedStyle(z).zIndex)},[z]),(0,a.jsx)("div",{ref:Q.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:et?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:eu,"--radix-popper-transform-origin":[null===(h=en.transformOrigin)||void 0===h?void 0:h.x,null===(m=en.transformOrigin)||void 0===m?void 0:m.y].join(" "),...(null===(g=en.hide)||void 0===g?void 0:g.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,a.jsx)(R,{scope:x,placedSide:er,onArrowChange:Y,arrowX:el,arrowY:ea,shouldHideArrow:ef,children:(0,a.jsx)(l.sG.div,{"data-side":er,"data-align":ei,...F,ref:_,style:{...F.style,animation:et?void 0:"none"}})})})});L.displayName=A;var S="PopperArrow",T={top:"bottom",right:"left",bottom:"top",left:"right"},C=r.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=E(S,n),o=T[i.placedSide];return(0,a.jsx)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:(0,a.jsx)(f,{...r,ref:t,style:{...r.style,display:"block"}})})});function O(e){return null!==e}C.displayName=S;var P=e=>({name:"transformOrigin",options:e,fn(t){var n,r,i,o,l;let{placement:a,rects:f,middlewareData:u}=t,c=(null===(n=u.arrow)||void 0===n?void 0:n.centerOffset)!==0,s=c?0:e.arrowWidth,d=c?0:e.arrowHeight,[p,h]=N(a),m={start:"0%",center:"50%",end:"100%"}[h],g=(null!==(o=null===(r=u.arrow)||void 0===r?void 0:r.x)&&void 0!==o?o:0)+s/2,y=(null!==(l=null===(i=u.arrow)||void 0===i?void 0:i.y)&&void 0!==l?l:0)+d/2,w="",v="";return"bottom"===p?(w=c?m:"".concat(g,"px"),v="".concat(-d,"px")):"top"===p?(w=c?m:"".concat(g,"px"),v="".concat(f.floating.height+d,"px")):"right"===p?(w="".concat(-d,"px"),v=c?m:"".concat(y,"px")):"left"===p&&(w="".concat(f.floating.width+d,"px"),v=c?m:"".concat(y,"px")),{data:{x:w,y:v}}}});function N(e){let[t,n="center"]=e.split("-");return[t,n]}var D=v,j=b,k=L,H=C},63620:(e,t,n)=>{n.d(t,{X:()=>o});var r=n(20107),i=n(54122);function o(e){let[t,n]=r.useState(void 0);return(0,i.N)(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,i;if(!Array.isArray(t)||!t.length)return;let o=t[0];if("borderBoxSize"in o){let e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,i=t.blockSize}else r=e.offsetWidth,i=e.offsetHeight;n({width:r,height:i})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7780-d44d1f6d676771d4.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7780-d44d1f6d676771d4.js new file mode 100644 index 0000000..b34df0b --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/7780-d44d1f6d676771d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7780],{64236:(e,r,o)=>{o.d(r,{s:()=>l,t:()=>n});var t=o(20107);function n(...e){return r=>e.forEach(e=>{"function"==typeof e?e(r):null!=e&&(e.current=r)})}function l(...e){return t.useCallback(n(...e),e)}},61837:(e,r,o)=>{o.d(r,{DX:()=>s,xV:()=>i});var t=o(20107),n=o(64236),l=o(20475),s=t.forwardRef((e,r)=>{let{children:o,...n}=e,s=t.Children.toArray(o),i=s.find(d);if(i){let e=i.props.children,o=s.map(r=>r!==i?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,l.jsx)(a,{...n,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,o):null})}return(0,l.jsx)(a,{...n,ref:r,children:o})});s.displayName="Slot";var a=t.forwardRef((e,r)=>{let{children:o,...l}=e;if(t.isValidElement(o)){let e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?e.ref:(o=(r=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in r&&r.isReactWarning)?e.props.ref:e.props.ref||e.ref}(o);return t.cloneElement(o,{...function(e,r){let o={...r};for(let t in r){let n=e[t],l=r[t];/^on[A-Z]/.test(t)?n&&l?o[t]=(...e)=>{l(...e),n(...e)}:n&&(o[t]=n):"style"===t?o[t]={...n,...l}:"className"===t&&(o[t]=[n,l].filter(Boolean).join(" "))}return{...e,...o}}(l,o.props),ref:r?(0,n.t)(r,e):e})}return t.Children.count(o)>1?t.Children.only(null):null});a.displayName="SlotClone";var i=({children:e})=>(0,l.jsx)(l.Fragment,{children:e});function d(e){return t.isValidElement(e)&&e.type===i}},64901:(e,r,o)=>{function t(){for(var e,r,o=0,t="",n=arguments.length;ot,A:()=>n});let n=t},868:(e,r,o)=>{o.d(r,{QP:()=>J});let t=e=>{let r=a(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:e=>{let o=e.split("-");return""===o[0]&&1!==o.length&&o.shift(),n(o,r)||s(e)},getConflictingClassGroupIds:(e,r)=>{let n=o[e]||[];return r&&t[e]?[...n,...t[e]]:n}}},n=(e,r)=>{if(0===e.length)return r.classGroupId;let o=e[0],t=r.nextPart.get(o),l=t?n(e.slice(1),t):void 0;if(l)return l;if(0===r.validators.length)return;let s=e.join("-");return r.validators.find(({validator:e})=>e(s))?.classGroupId},l=/^\[(.+)\]$/,s=e=>{if(l.test(e)){let r=l.exec(e)[1],o=r?.substring(0,r.indexOf(":"));if(o)return"arbitrary.."+o}},a=e=>{let{theme:r,prefix:o}=e,t={nextPart:new Map,validators:[]};return p(Object.entries(e.classGroups),o).forEach(([e,o])=>{i(o,t,e,r)}),t},i=(e,r,o,t)=>{e.forEach(e=>{if("string"==typeof e){(""===e?r:d(r,e)).classGroupId=o;return}if("function"==typeof e){if(c(e)){i(e(t),r,o,t);return}r.validators.push({validator:e,classGroupId:o});return}Object.entries(e).forEach(([e,n])=>{i(n,d(r,e),o,t)})})},d=(e,r)=>{let o=e;return r.split("-").forEach(e=>{o.nextPart.has(e)||o.nextPart.set(e,{nextPart:new Map,validators:[]}),o=o.nextPart.get(e)}),o},c=e=>e.isThemeGetter,p=(e,r)=>r?e.map(([e,o])=>[e,o.map(e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,o])=>[r+e,o])):e)]):e,u=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=new Map,t=new Map,n=(n,l)=>{o.set(n,l),++r>e&&(r=0,t=o,o=new Map)};return{get(e){let r=o.get(e);return void 0!==r?r:void 0!==(r=t.get(e))?(n(e,r),r):void 0},set(e,r){o.has(e)?o.set(e,r):n(e,r)}}},b=e=>{let{separator:r,experimentalParseClassName:o}=e,t=1===r.length,n=r[0],l=r.length,s=e=>{let o;let s=[],a=0,i=0;for(let d=0;di?o-i:void 0}};return o?e=>o({className:e,parseClassName:s}):s},f=e=>{if(e.length<=1)return e;let r=[],o=[];return e.forEach(e=>{"["===e[0]?(r.push(...o.sort(),e),o=[]):o.push(e)}),r.push(...o.sort()),r},m=e=>({cache:u(e.cacheSize),parseClassName:b(e),...t(e)}),g=/\s+/,h=(e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:n}=r,l=[],s=e.trim().split(g),a="";for(let e=s.length-1;e>=0;e-=1){let r=s[e],{modifiers:i,hasImportantModifier:d,baseClassName:c,maybePostfixModifierPosition:p}=o(r),u=!!p,b=t(u?c.substring(0,p):c);if(!b){if(!u||!(b=t(c))){a=r+(a.length>0?" "+a:a);continue}u=!1}let m=f(i).join(":"),g=d?m+"!":m,h=g+b;if(l.includes(h))continue;l.push(h);let y=n(b,u);for(let e=0;e0?" "+a:a)}return a};function y(){let e,r,o=0,t="";for(;o{let r;if("string"==typeof e)return e;let o="";for(let t=0;t{let r=r=>r[e]||[];return r.isThemeGetter=!0,r},w=/^\[(?:([a-z-]+):)?(.+)\]$/i,k=/^\d+\/\d+$/,z=new Set(["px","full","screen"]),j=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,C=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,E=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,S=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,P=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,N=e=>R(e)||z.has(e)||k.test(e),G=e=>F(e,"length",Q),R=e=>!!e&&!Number.isNaN(Number(e)),O=e=>F(e,"number",R),W=e=>!!e&&Number.isInteger(Number(e)),$=e=>e.endsWith("%")&&R(e.slice(0,-1)),M=e=>w.test(e),I=e=>j.test(e),_=new Set(["length","size","percentage"]),A=e=>F(e,_,X),V=e=>F(e,"position",X),D=new Set(["image","url"]),T=e=>F(e,D,H),q=e=>F(e,"",Z),B=()=>!0,F=(e,r,o)=>{let t=w.exec(e);return!!t&&(t[1]?"string"==typeof r?t[1]===r:r.has(t[1]):o(t[2]))},Q=e=>C.test(e)&&!E.test(e),X=()=>!1,Z=e=>S.test(e),H=e=>P.test(e);Symbol.toStringTag;let J=function(e,...r){let o,t,n;let l=function(a){return t=(o=m(r.reduce((e,r)=>r(e),e()))).cache.get,n=o.cache.set,l=s,s(a)};function s(e){let r=t(e);if(r)return r;let l=h(e,o);return n(e,l),l}return function(){return l(y.apply(null,arguments))}}(()=>{let e=v("colors"),r=v("spacing"),o=v("blur"),t=v("brightness"),n=v("borderColor"),l=v("borderRadius"),s=v("borderSpacing"),a=v("borderWidth"),i=v("contrast"),d=v("grayscale"),c=v("hueRotate"),p=v("invert"),u=v("gap"),b=v("gradientColorStops"),f=v("gradientColorStopPositions"),m=v("inset"),g=v("margin"),h=v("opacity"),y=v("padding"),x=v("saturate"),w=v("scale"),k=v("sepia"),z=v("skew"),j=v("space"),C=v("translate"),E=()=>["auto","contain","none"],S=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto",M,r],_=()=>[M,r],D=()=>["",N,G],F=()=>["auto",R,M],Q=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],X=()=>["solid","dashed","dotted","double","none"],Z=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>["start","end","center","between","around","evenly","stretch"],J=()=>["","0",M],K=()=>["auto","avoid","all","avoid-page","page","left","right","column"],L=()=>[R,M];return{cacheSize:500,separator:":",theme:{colors:[B],spacing:[N,G],blur:["none","",I,M],brightness:L(),borderColor:[e],borderRadius:["none","","full",I,M],borderSpacing:_(),borderWidth:D(),contrast:L(),grayscale:J(),hueRotate:L(),invert:J(),gap:_(),gradientColorStops:[e],gradientColorStopPositions:[$,G],inset:P(),margin:P(),opacity:L(),padding:_(),saturate:L(),scale:L(),sepia:J(),skew:L(),space:_(),translate:_()},classGroups:{aspect:[{aspect:["auto","square","video",M]}],container:["container"],columns:[{columns:[I]}],"break-after":[{"break-after":K()}],"break-before":[{"break-before":K()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...Q(),M]}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[m]}],"inset-x":[{"inset-x":[m]}],"inset-y":[{"inset-y":[m]}],start:[{start:[m]}],end:[{end:[m]}],top:[{top:[m]}],right:[{right:[m]}],bottom:[{bottom:[m]}],left:[{left:[m]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",W,M]}],basis:[{basis:P()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",M]}],grow:[{grow:J()}],shrink:[{shrink:J()}],order:[{order:["first","last","none",W,M]}],"grid-cols":[{"grid-cols":[B]}],"col-start-end":[{col:["auto",{span:["full",W,M]},M]}],"col-start":[{"col-start":F()}],"col-end":[{"col-end":F()}],"grid-rows":[{"grid-rows":[B]}],"row-start-end":[{row:["auto",{span:[W,M]},M]}],"row-start":[{"row-start":F()}],"row-end":[{"row-end":F()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",M]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",M]}],gap:[{gap:[u]}],"gap-x":[{"gap-x":[u]}],"gap-y":[{"gap-y":[u]}],"justify-content":[{justify:["normal",...H()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...H(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...H(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[y]}],px:[{px:[y]}],py:[{py:[y]}],ps:[{ps:[y]}],pe:[{pe:[y]}],pt:[{pt:[y]}],pr:[{pr:[y]}],pb:[{pb:[y]}],pl:[{pl:[y]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[j]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[j]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",M,r]}],"min-w":[{"min-w":[M,r,"min","max","fit"]}],"max-w":[{"max-w":[M,r,"none","full","min","max","fit","prose",{screen:[I]},I]}],h:[{h:[M,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[M,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[M,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[M,r,"auto","min","max","fit"]}],"font-size":[{text:["base",I,G]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",O]}],"font-family":[{font:[B]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",M]}],"line-clamp":[{"line-clamp":["none",R,O]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",N,M]}],"list-image":[{"list-image":["none",M]}],"list-style-type":[{list:["none","disc","decimal",M]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[h]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[h]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...X(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",N,G]}],"underline-offset":[{"underline-offset":["auto",N,M]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",M]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",M]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[h]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...Q(),V]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",A]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},T]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[f]}],"gradient-via-pos":[{via:[f]}],"gradient-to-pos":[{to:[f]}],"gradient-from":[{from:[b]}],"gradient-via":[{via:[b]}],"gradient-to":[{to:[b]}],rounded:[{rounded:[l]}],"rounded-s":[{"rounded-s":[l]}],"rounded-e":[{"rounded-e":[l]}],"rounded-t":[{"rounded-t":[l]}],"rounded-r":[{"rounded-r":[l]}],"rounded-b":[{"rounded-b":[l]}],"rounded-l":[{"rounded-l":[l]}],"rounded-ss":[{"rounded-ss":[l]}],"rounded-se":[{"rounded-se":[l]}],"rounded-ee":[{"rounded-ee":[l]}],"rounded-es":[{"rounded-es":[l]}],"rounded-tl":[{"rounded-tl":[l]}],"rounded-tr":[{"rounded-tr":[l]}],"rounded-br":[{"rounded-br":[l]}],"rounded-bl":[{"rounded-bl":[l]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[h]}],"border-style":[{border:[...X(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[h]}],"divide-style":[{divide:X()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...X()]}],"outline-offset":[{"outline-offset":[N,M]}],"outline-w":[{outline:[N,G]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:D()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[h]}],"ring-offset-w":[{"ring-offset":[N,G]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",I,q]}],"shadow-color":[{shadow:[B]}],opacity:[{opacity:[h]}],"mix-blend":[{"mix-blend":[...Z(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Z()}],filter:[{filter:["","none"]}],blur:[{blur:[o]}],brightness:[{brightness:[t]}],contrast:[{contrast:[i]}],"drop-shadow":[{"drop-shadow":["","none",I,M]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[p]}],saturate:[{saturate:[x]}],sepia:[{sepia:[k]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[o]}],"backdrop-brightness":[{"backdrop-brightness":[t]}],"backdrop-contrast":[{"backdrop-contrast":[i]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[h]}],"backdrop-saturate":[{"backdrop-saturate":[x]}],"backdrop-sepia":[{"backdrop-sepia":[k]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",M]}],duration:[{duration:L()}],ease:[{ease:["linear","in","out","in-out",M]}],delay:[{delay:L()}],animate:[{animate:["none","spin","ping","pulse","bounce",M]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[w]}],"scale-x":[{"scale-x":[w]}],"scale-y":[{"scale-y":[w]}],rotate:[{rotate:[W,M]}],"translate-x":[{"translate-x":[C]}],"translate-y":[{"translate-y":[C]}],"skew-x":[{"skew-x":[z]}],"skew-y":[{"skew-y":[z]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",M]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",M]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",M]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[N,G,O]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}})}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/8885-1b9ab3cbb10cf437.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/8885-1b9ab3cbb10cf437.js new file mode 100644 index 0000000..11282a7 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/8885-1b9ab3cbb10cf437.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8885],{94521:(e,t,n)=>{n.d(t,{m:()=>r});function r(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}},45170:(e,t,n)=>{n.d(t,{A:()=>o,q:()=>i});var r=n(20107),u=n(20475);function i(e,t){let n=r.createContext(t),i=e=>{let{children:t,...i}=e,o=r.useMemo(()=>i,Object.values(i));return(0,u.jsx)(n.Provider,{value:o,children:t})};return i.displayName=e+"Provider",[i,function(u){let i=r.useContext(n);if(i)return i;if(void 0!==t)return t;throw Error(`\`${u}\` must be used within \`${e}\``)}]}function o(e,t=[]){let n=[],i=()=>{let t=n.map(e=>r.createContext(e));return function(n){let u=n?.[e]||t;return r.useMemo(()=>({[`__scope${e}`]:{...n,[e]:u}}),[n,u])}};return i.scopeName=e,[function(t,i){let o=r.createContext(i),l=n.length;n=[...n,i];let s=t=>{let{scope:n,children:i,...s}=t,a=n?.[e]?.[l]||o,d=r.useMemo(()=>s,Object.values(s));return(0,u.jsx)(a.Provider,{value:d,children:i})};return s.displayName=t+"Provider",[s,function(n,u){let s=u?.[e]?.[l]||o,a=r.useContext(s);if(a)return a;if(void 0!==i)return i;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let u=n.reduce((t,{useScope:n,scopeName:r})=>{let u=n(e)[`__scope${r}`];return{...t,...u}},{});return r.useMemo(()=>({[`__scope${t.scopeName}`]:u}),[u])}};return n.scopeName=t.scopeName,n}(i,...t)]}},55302:(e,t,n)=>{n.d(t,{bL:()=>b,lg:()=>E,qW:()=>f});var r,u=n(20107),i=n(94521),o=n(34544),l=n(64236),s=n(46774),a=n(91624),d=n(20475),c="dismissableLayer.update",v=u.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),f=u.forwardRef((e,t)=>{var n,f;let{disableOutsidePointerEvents:m=!1,onEscapeKeyDown:b,onPointerDownOutside:E,onFocusOutside:h,onInteractOutside:w,onDismiss:g,...C}=e,P=u.useContext(v),[L,N]=u.useState(null),x=null!==(f=null==L?void 0:L.ownerDocument)&&void 0!==f?f:null===(n=globalThis)||void 0===n?void 0:n.document,[,O]=u.useState({}),D=(0,l.s)(t,e=>N(e)),k=Array.from(P.layers),[S]=[...P.layersWithOutsidePointerEventsDisabled].slice(-1),j=k.indexOf(S),R=L?k.indexOf(L):-1,_=P.layersWithOutsidePointerEventsDisabled.size>0,T=R>=j,$=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null===(t=globalThis)||void 0===t?void 0:t.document,r=(0,s.c)(e),i=u.useRef(!1),o=u.useRef(()=>{});return u.useEffect(()=>{let e=e=>{if(e.target&&!i.current){let t=function(){y("dismissableLayer.pointerDownOutside",r,u,{discrete:!0})},u={originalEvent:e};"touch"===e.pointerType?(n.removeEventListener("click",o.current),o.current=t,n.addEventListener("click",o.current,{once:!0})):t()}else n.removeEventListener("click",o.current);i.current=!1},t=window.setTimeout(()=>{n.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(t),n.removeEventListener("pointerdown",e),n.removeEventListener("click",o.current)}},[n,r]),{onPointerDownCapture:()=>i.current=!0}}(e=>{let t=e.target,n=[...P.branches].some(e=>e.contains(t));!T||n||(null==E||E(e),null==w||w(e),e.defaultPrevented||null==g||g())},x),W=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null===(t=globalThis)||void 0===t?void 0:t.document,r=(0,s.c)(e),i=u.useRef(!1);return u.useEffect(()=>{let e=e=>{e.target&&!i.current&&y("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return n.addEventListener("focusin",e),()=>n.removeEventListener("focusin",e)},[n,r]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}(e=>{let t=e.target;[...P.branches].some(e=>e.contains(t))||(null==h||h(e),null==w||w(e),e.defaultPrevented||null==g||g())},x);return(0,a.U)(e=>{R!==P.layers.size-1||(null==b||b(e),!e.defaultPrevented&&g&&(e.preventDefault(),g()))},x),u.useEffect(()=>{if(L)return m&&(0===P.layersWithOutsidePointerEventsDisabled.size&&(r=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),P.layersWithOutsidePointerEventsDisabled.add(L)),P.layers.add(L),p(),()=>{m&&1===P.layersWithOutsidePointerEventsDisabled.size&&(x.body.style.pointerEvents=r)}},[L,x,m,P]),u.useEffect(()=>()=>{L&&(P.layers.delete(L),P.layersWithOutsidePointerEventsDisabled.delete(L),p())},[L,P]),u.useEffect(()=>{let e=()=>O({});return document.addEventListener(c,e),()=>document.removeEventListener(c,e)},[]),(0,d.jsx)(o.sG.div,{...C,ref:D,style:{pointerEvents:_?T?"auto":"none":void 0,...e.style},onFocusCapture:(0,i.m)(e.onFocusCapture,W.onFocusCapture),onBlurCapture:(0,i.m)(e.onBlurCapture,W.onBlurCapture),onPointerDownCapture:(0,i.m)(e.onPointerDownCapture,$.onPointerDownCapture)})});f.displayName="DismissableLayer";var m=u.forwardRef((e,t)=>{let n=u.useContext(v),r=u.useRef(null),i=(0,l.s)(t,r);return u.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,d.jsx)(o.sG.div,{...e,ref:i})});function p(){let e=new CustomEvent(c);document.dispatchEvent(e)}function y(e,t,n,r){let{discrete:u}=r,i=n.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),u?(0,o.hO)(i,l):i.dispatchEvent(l)}m.displayName="DismissableLayerBranch";var b=f,E=m},72763:(e,t,n)=>{n.d(t,{B:()=>s});var r,u=n(20107),i=n(54122),o=(r||(r=n.t(u,2)))["useId".toString()]||(()=>void 0),l=0;function s(e){let[t,n]=u.useState(o());return(0,i.N)(()=>{e||n(e=>e??String(l++))},[e]),e||(t?`radix-${t}`:"")}},41913:(e,t,n)=>{n.d(t,{Z:()=>s});var r=n(20107),u=n(25642),i=n(34544),o=n(54122),l=n(20475),s=r.forwardRef((e,t)=>{var n,s;let{container:a,...d}=e,[c,v]=r.useState(!1);(0,o.N)(()=>v(!0),[]);let f=a||c&&(null===(s=globalThis)||void 0===s?void 0:null===(n=s.document)||void 0===n?void 0:n.body);return f?u.createPortal((0,l.jsx)(i.sG.div,{...d,ref:t}),f):null});s.displayName="Portal"},34544:(e,t,n)=>{n.d(t,{hO:()=>s,sG:()=>l});var r=n(20107),u=n(25642),i=n(61837),o=n(20475),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let n=r.forwardRef((e,n)=>{let{asChild:r,...u}=e,l=r?i.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(l,{...u,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function s(e,t){e&&u.flushSync(()=>e.dispatchEvent(t))}},46774:(e,t,n)=>{n.d(t,{c:()=>u});var r=n(20107);function u(e){let t=r.useRef(e);return r.useEffect(()=>{t.current=e}),r.useMemo(()=>(...e)=>t.current?.(...e),[])}},13061:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(20107),u=n(46774);function i({prop:e,defaultProp:t,onChange:n=()=>{}}){let[i,o]=function({defaultProp:e,onChange:t}){let n=r.useState(e),[i]=n,o=r.useRef(i),l=(0,u.c)(t);return r.useEffect(()=>{o.current!==i&&(l(i),o.current=i)},[i,o,l]),n}({defaultProp:t,onChange:n}),l=void 0!==e,s=l?e:i,a=(0,u.c)(n);return[s,r.useCallback(t=>{if(l){let n="function"==typeof t?t(e):t;n!==e&&a(n)}else o(t)},[l,e,o,a])]}},91624:(e,t,n)=>{n.d(t,{U:()=>i});var r=n(20107),u=n(46774);function i(e,t=globalThis?.document){let n=(0,u.c)(e);r.useEffect(()=>{let e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}},54122:(e,t,n)=>{n.d(t,{N:()=>u});var r=n(20107),u=globalThis?.document?r.useLayoutEffect:()=>{}},29395:(e,t,n)=>{n.d(t,{F:()=>i});let r=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,u=function(){for(var e,t,n=0,r="";nn=>{var i;if((null==t?void 0:t.variants)==null)return u(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==n?void 0:n[e],u=null==l?void 0:l[e];if(null===t)return null;let i=r(t)||r(u);return o[e][i]}),a=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return u(e,s,null==t?void 0:null===(i=t.compoundVariants)||void 0===i?void 0:i.reduce((e,t)=>{let{class:n,className:r,...u}=t;return Object.entries(u).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...l,...a}[t]):({...l,...a})[t]===n})?[...e,n,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/9464-f5c3c85ad60907ac.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/9464-f5c3c85ad60907ac.js new file mode 100644 index 0000000..15a5ffc --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/9464-f5c3c85ad60907ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9464],{58020:(e,t,n)=>{n.d(t,{Eq:()=>l});var r=new WeakMap,o=new WeakMap,a={},c=0,i=function(e){return e&&(e.host||i(e.parentNode))},u=function(e,t,n,u){var l=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var n=i(e);return n&&t.contains(n)?n:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});a[n]||(a[n]=new WeakMap);var d=a[n],s=[],f=new Set,v=new Set(l),p=function(e){!e||f.has(e)||(f.add(e),p(e.parentNode))};l.forEach(p);var h=function(e){!e||v.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))h(e);else try{var t=e.getAttribute(u),a=null!==t&&"false"!==t,c=(r.get(e)||0)+1,i=(d.get(e)||0)+1;r.set(e,c),d.set(e,i),s.push(e),1===c&&a&&o.set(e,!0),1===i&&e.setAttribute(n,"true"),a||e.setAttribute(u,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return h(t),f.clear(),c++,function(){s.forEach(function(e){var t=r.get(e)-1,a=d.get(e)-1;r.set(e,t),d.set(e,a),t||(o.has(e)||e.removeAttribute(u),o.delete(e)),a||e.removeAttribute(n)}),--c||(r=new WeakMap,r=new WeakMap,o=new WeakMap,a={})}},l=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r,o=Array.from(Array.isArray(e)?e:[e]),a=t||(r=e,"undefined"==typeof document?null:(Array.isArray(r)?r[0]:r).ownerDocument.body);return a?(o.push.apply(o,Array.from(a.querySelectorAll("[aria-live]"))),u(o,a,n,"aria-hidden")):function(){return null}}},91059:(e,t,n)=>{n.d(t,{m:()=>o});var r,o=function(){return r||n.nc}},9543:(e,t,n)=>{n.d(t,{A:()=>Z});var r,o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;nt.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);ot.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var c=n(20107),i="right-scroll-bar-position",u="width-before-scroll-bar";function l(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var d="undefined"!=typeof window?c.useLayoutEffect:c.useEffect,s=new WeakMap;function f(e){return e}var v=function(e){void 0===e&&(e={});var t,n,r,a=(void 0===t&&(t=f),n=[],r=!1,{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:null},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter(function(e){return e!==o})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},c=function(){return Promise.resolve().then(a)};c(),n={push:function(e){t.push(e),c()},filter:function(e){return t=t.filter(e),n}}}});return a.options=o({async:!0,ssr:!1},e),a}(),p=function(){},h=c.forwardRef(function(e,t){var n,r,i,u,f=c.useRef(null),h=c.useState({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:p}),m=h[0],g=h[1],y=e.forwardProps,b=e.children,E=e.className,w=e.removeScrollBar,S=e.enabled,C=e.shards,k=e.sideCar,A=e.noIsolation,M=e.inert,N=e.allowPinchZoom,L=e.as,T=e.gapMode,R=a(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),x=(n=[f,t],r=function(e){return n.forEach(function(t){return l(t,e)})},(i=(0,c.useState)(function(){return{value:null,callback:r,facade:{get current(){return i.value},set current(value){var e=i.value;e!==value&&(i.value=value,i.callback(value,e))}}}})[0]).callback=r,u=i.facade,d(function(){var e=s.get(u);if(e){var t=new Set(e),r=new Set(n),o=u.current;t.forEach(function(e){r.has(e)||l(e,null)}),r.forEach(function(e){t.has(e)||l(e,o)})}s.set(u,n)},[n]),u),O=o(o({},R),m);return c.createElement(c.Fragment,null,S&&c.createElement(k,{sideCar:v,removeScrollBar:w,shards:C,noIsolation:A,inert:M,setCallbacks:g,allowPinchZoom:!!N,lockRef:f,gapMode:T}),y?c.cloneElement(c.Children.only(b),o(o({},O),{ref:x})):c.createElement(void 0===L?"div":L,o({},O,{className:E,ref:x}),b))});h.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},h.classNames={fullWidth:u,zeroRight:i};var m=function(e){var t=e.sideCar,n=a(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return c.createElement(r,o({},n))};m.isSideCarExport=!0;var g=n(91059),y=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=(0,g.m)();return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},b=function(){var e=y();return function(t,n){c.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},E=function(){var e=b();return function(t){return e(t.styles,t.dynamic),null}},w={left:0,top:0,right:0,gap:0},S=function(e){return parseInt(e||"",10)||0},C=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[S(n),S(r),S(o)]},k=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return w;var t=C(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},A=E(),M="data-scroll-locked",N=function(e,t,n,r){var o=e.left,a=e.top,c=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(l,"px ").concat(r,";\n }\n body[").concat(M,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(c,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(l,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(i," {\n right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(u," {\n margin-right: ").concat(l,"px ").concat(r,";\n }\n \n .").concat(i," .").concat(i," {\n right: 0 ").concat(r,";\n }\n \n .").concat(u," .").concat(u," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(M,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n }\n")},L=function(){var e=parseInt(document.body.getAttribute(M)||"0",10);return isFinite(e)?e:0},T=function(){c.useEffect(function(){return document.body.setAttribute(M,(L()+1).toString()),function(){var e=L()-1;e<=0?document.body.removeAttribute(M):document.body.setAttribute(M,e.toString())}},[])},R=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;T();var a=c.useMemo(function(){return k(o)},[o]);return c.createElement(A,{styles:N(a,!t,o,n?"":"!important")})},x=!1;if("undefined"!=typeof window)try{var O=Object.defineProperty({},"passive",{get:function(){return x=!0,!0}});window.addEventListener("test",O,O),window.removeEventListener("test",O,O)}catch(e){x=!1}var P=!!x&&{passive:!1},I=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&"TEXTAREA"!==e.tagName&&"visible"===n[t])},W=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),F(e,r)){var o=j(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},F=function(e,t){return"v"===e?I(t,"overflowY"):I(t,"overflowX")},j=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},B=function(e,t,n,r,o){var a,c=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),i=c*r,u=n.target,l=t.contains(u),d=!1,s=i>0,f=0,v=0;do{var p=j(e,u),h=p[0],m=p[1]-p[2]-c*h;(h||m)&&F(e,u)&&(f+=m,v+=h),u instanceof ShadowRoot?u=u.host:u=u.parentNode}while(!l&&u!==document.body||l&&(t.contains(u)||t===u));return s&&(o&&1>Math.abs(f)||!o&&i>f)?d=!0:!s&&(o&&1>Math.abs(v)||!o&&-i>v)&&(d=!0),d},D=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},K=function(e){return[e.deltaX,e.deltaY]},_=function(e){return e&&"current"in e?e.current:e},X=0,Y=[];let q=(r=function(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(X++)[0],a=c.useState(E)[0],i=c.useRef(e);c.useEffect(function(){i.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;oMath.abs(l)?"h":"v";if("touches"in e&&"h"===s&&"range"===d.type)return!1;var f=W(s,d);if(!f)return!0;if(f?o=s:(o="v"===s?"h":"v",f=W(s,d)),!f)return!1;if(!r.current&&"changedTouches"in e&&(u||l)&&(r.current=o),!o)return!0;var v=r.current||o;return B(v,t,e,"h"===v?u:l,!0)},[]),l=c.useCallback(function(e){if(Y.length&&Y[Y.length-1]===a){var n="deltaY"in e?K(e):D(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta)[0]===n[0]&&r[1]===n[1]})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(i.current.shards||[]).map(_).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?u(e,o[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),d=c.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),s=c.useCallback(function(e){n.current=D(e),r.current=void 0},[]),f=c.useCallback(function(t){d(t.type,K(t),t.target,u(t,e.lockRef.current))},[]),v=c.useCallback(function(t){d(t.type,D(t),t.target,u(t,e.lockRef.current))},[]);c.useEffect(function(){return Y.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:v}),document.addEventListener("wheel",l,P),document.addEventListener("touchmove",l,P),document.addEventListener("touchstart",s,P),function(){Y=Y.filter(function(e){return e!==a}),document.removeEventListener("wheel",l,P),document.removeEventListener("touchmove",l,P),document.removeEventListener("touchstart",s,P)}},[]);var p=e.removeScrollBar,h=e.inert;return c.createElement(c.Fragment,null,h?c.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?c.createElement(R,{gapMode:e.gapMode}):null)},v.useMedium(r),m);var H=c.forwardRef(function(e,t){return c.createElement(h,o({},e,{ref:t,sideCar:q}))});H.classNames=h.classNames;let Z=H},10201:(e,t,n)=>{n.d(t,{Oh:()=>a});var r=n(20107),o=0;function a(){r.useEffect(()=>{var e,t;let n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",null!==(e=n[0])&&void 0!==e?e:c()),document.body.insertAdjacentElement("beforeend",null!==(t=n[1])&&void 0!==t?t:c()),o++,()=>{1===o&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),o--}},[])}function c(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}},38573:(e,t,n)=>{n.d(t,{n:()=>s});var r=n(20107),o=n(64236),a=n(34544),c=n(46774),i=n(20475),u="focusScope.autoFocusOnMount",l="focusScope.autoFocusOnUnmount",d={bubbles:!1,cancelable:!0},s=r.forwardRef((e,t)=>{let{loop:n=!1,trapped:s=!1,onMountAutoFocus:m,onUnmountAutoFocus:g,...y}=e,[b,E]=r.useState(null),w=(0,c.c)(m),S=(0,c.c)(g),C=r.useRef(null),k=(0,o.s)(t,e=>E(e)),A=r.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;r.useEffect(()=>{if(s){let e=function(e){if(A.paused||!b)return;let t=e.target;b.contains(t)?C.current=t:p(C.current,{select:!0})},t=function(e){if(A.paused||!b)return;let t=e.relatedTarget;null===t||b.contains(t)||p(C.current,{select:!0})};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&p(b)});return b&&n.observe(b,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[s,b,A.paused]),r.useEffect(()=>{if(b){h.add(A);let e=document.activeElement;if(!b.contains(e)){let t=new CustomEvent(u,d);b.addEventListener(u,w),b.dispatchEvent(t),t.defaultPrevented||(function(e){let{select:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=document.activeElement;for(let r of e)if(p(r,{select:t}),document.activeElement!==n)return}(f(b).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&p(b))}return()=>{b.removeEventListener(u,w),setTimeout(()=>{let t=new CustomEvent(l,d);b.addEventListener(l,S),b.dispatchEvent(t),t.defaultPrevented||p(null!=e?e:document.body,{select:!0}),b.removeEventListener(l,S),h.remove(A)},0)}}},[b,w,S,A]);let M=r.useCallback(e=>{if(!n&&!s||A.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,r=document.activeElement;if(t&&r){let t=e.currentTarget,[o,a]=function(e){let t=f(e);return[v(t,e),v(t.reverse(),e)]}(t);o&&a?e.shiftKey||r!==a?e.shiftKey&&r===o&&(e.preventDefault(),n&&p(a,{select:!0})):(e.preventDefault(),n&&p(o,{select:!0})):r===t&&e.preventDefault()}},[n,s,A.paused]);return(0,i.jsx)(a.sG.div,{tabIndex:-1,...y,ref:k,onKeyDown:M})});function f(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function v(e,t){for(let n of e)if(!function(e,t){let{upTo:n}=t;if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===n||e!==n);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function p(e){let{select:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}s.displayName="FocusScope";var h=function(){let e=[];return{add(t){let n=e[0];t!==n&&(null==n||n.pause()),(e=m(e,t)).unshift(t)},remove(t){var n;null===(n=(e=m(e,t))[0])||void 0===n||n.resume()}}}();function m(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/9679-e42f7aaecc29c6da.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/9679-e42f7aaecc29c6da.js new file mode 100644 index 0000000..76ddb60 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/9679-e42f7aaecc29c6da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9679],{56703:(e,r,t)=>{t.d(r,{q:()=>n});function n(e,[r,t]){return Math.min(t,Math.max(r,e))}},76056:(e,r,t)=>{t.d(r,{jH:()=>l});var n=t(20107);t(20475);var o=n.createContext(void 0);function l(e){let r=n.useContext(o);return e||r||"ltr"}},89679:(e,r,t)=>{t.d(r,{LM:()=>q,OK:()=>K,VM:()=>C,bL:()=>G,lr:()=>H});var n=t(20107),o=t(34544),l=t(54245),i=t(45170),a=t(64236),s=t(46774),c=t(76056),d=t(54122),u=t(56703),f=t(94521),p=t(20475),h="ScrollArea",[v,w]=(0,i.A)(h),[g,b]=v(h),m=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,type:l="hover",dir:i,scrollHideDelay:s=600,...d}=e,[u,f]=n.useState(null),[h,v]=n.useState(null),[w,b]=n.useState(null),[m,S]=n.useState(null),[x,E]=n.useState(null),[C,y]=n.useState(0),[T,R]=n.useState(0),[L,P]=n.useState(!1),[_,j]=n.useState(!1),D=(0,a.s)(r,e=>f(e)),A=(0,c.jH)(i);return(0,p.jsx)(g,{scope:t,type:l,dir:A,scrollHideDelay:s,scrollArea:u,viewport:h,onViewportChange:v,content:w,onContentChange:b,scrollbarX:m,onScrollbarXChange:S,scrollbarXEnabled:L,onScrollbarXEnabledChange:P,scrollbarY:x,onScrollbarYChange:E,scrollbarYEnabled:_,onScrollbarYEnabledChange:j,onCornerWidthChange:y,onCornerHeightChange:R,children:(0,p.jsx)(o.sG.div,{dir:A,...d,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":C+"px","--radix-scroll-area-corner-height":T+"px",...e.style}})})});m.displayName=h;var S="ScrollAreaViewport",x=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,children:l,asChild:i,nonce:s,...c}=e,d=b(S,t),u=n.useRef(null),f=(0,a.s)(r,u,d.onViewportChange);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n[data-radix-scroll-area-viewport] {\n scrollbar-width: none;\n -ms-overflow-style: none;\n -webkit-overflow-scrolling: touch;\n}\n[data-radix-scroll-area-viewport]::-webkit-scrollbar {\n display: none;\n}\n:where([data-radix-scroll-area-viewport]) {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n:where([data-radix-scroll-area-content]) {\n flex-grow: 1;\n}\n"},nonce:s}),(0,p.jsx)(o.sG.div,{"data-radix-scroll-area-viewport":"",...c,asChild:i,ref:f,style:{overflowX:d.scrollbarXEnabled?"scroll":"hidden",overflowY:d.scrollbarYEnabled?"scroll":"hidden",...e.style},children:function(e,r){let{asChild:t,children:o}=e;if(!t)return"function"==typeof r?r(o):r;let l=n.Children.only(o);return n.cloneElement(l,{children:"function"==typeof r?r(l.props.children):r})}({asChild:i,children:l},e=>(0,p.jsx)("div",{"data-radix-scroll-area-content":"",ref:d.onContentChange,style:{minWidth:d.scrollbarXEnabled?"fit-content":void 0},children:e}))})]})});x.displayName=S;var E="ScrollAreaScrollbar",C=n.forwardRef((e,r)=>{let{forceMount:t,...o}=e,l=b(E,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:a}=l,s="horizontal"===e.orientation;return n.useEffect(()=>(s?i(!0):a(!0),()=>{s?i(!1):a(!1)}),[s,i,a]),"hover"===l.type?(0,p.jsx)(y,{...o,ref:r,forceMount:t}):"scroll"===l.type?(0,p.jsx)(T,{...o,ref:r,forceMount:t}):"auto"===l.type?(0,p.jsx)(R,{...o,ref:r,forceMount:t}):"always"===l.type?(0,p.jsx)(L,{...o,ref:r}):null});C.displayName=E;var y=n.forwardRef((e,r)=>{let{forceMount:t,...o}=e,i=b(E,e.__scopeScrollArea),[a,s]=n.useState(!1);return n.useEffect(()=>{let e=i.scrollArea,r=0;if(e){let t=()=>{window.clearTimeout(r),s(!0)},n=()=>{r=window.setTimeout(()=>s(!1),i.scrollHideDelay)};return e.addEventListener("pointerenter",t),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(r),e.removeEventListener("pointerenter",t),e.removeEventListener("pointerleave",n)}}},[i.scrollArea,i.scrollHideDelay]),(0,p.jsx)(l.C,{present:t||a,children:(0,p.jsx)(R,{"data-state":a?"visible":"hidden",...o,ref:r})})}),T=n.forwardRef((e,r)=>{var t,o;let{forceMount:i,...a}=e,s=b(E,e.__scopeScrollArea),c="horizontal"===e.orientation,d=V(()=>h("SCROLL_END"),100),[u,h]=(t="hidden",o={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},n.useReducer((e,r)=>{let t=o[e][r];return null!=t?t:e},t));return n.useEffect(()=>{if("idle"===u){let e=window.setTimeout(()=>h("HIDE"),s.scrollHideDelay);return()=>window.clearTimeout(e)}},[u,s.scrollHideDelay,h]),n.useEffect(()=>{let e=s.viewport,r=c?"scrollLeft":"scrollTop";if(e){let t=e[r],n=()=>{let n=e[r];t!==n&&(h("SCROLL"),d()),t=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[s.viewport,c,h,d]),(0,p.jsx)(l.C,{present:i||"hidden"!==u,children:(0,p.jsx)(L,{"data-state":"hidden"===u?"hidden":"visible",...a,ref:r,onPointerEnter:(0,f.m)(e.onPointerEnter,()=>h("POINTER_ENTER")),onPointerLeave:(0,f.m)(e.onPointerLeave,()=>h("POINTER_LEAVE"))})})}),R=n.forwardRef((e,r)=>{let t=b(E,e.__scopeScrollArea),{forceMount:o,...i}=e,[a,s]=n.useState(!1),c="horizontal"===e.orientation,d=V(()=>{if(t.viewport){let e=t.viewport.offsetWidth{let{orientation:t="vertical",...o}=e,l=b(E,e.__scopeScrollArea),i=n.useRef(null),a=n.useRef(0),[s,c]=n.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=Y(s.viewport,s.content),u={...o,sizes:s,onSizesChange:c,hasThumb:!!(d>0&&d<1),onThumbChange:e=>i.current=e,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:e=>a.current=e};function f(e,r){return function(e,r,t){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ltr",o=k(t),l=r||o/2,i=t.scrollbar.paddingStart+l,a=t.scrollbar.size-t.scrollbar.paddingEnd-(o-l),s=t.content-t.viewport;return M([i,a],"ltr"===n?[0,s]:[-1*s,0])(e)}(e,a.current,s,r)}return"horizontal"===t?(0,p.jsx)(P,{...u,ref:r,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=U(l.viewport.scrollLeft,s,l.dir);i.current.style.transform="translate3d(".concat(e,"px, 0, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollLeft=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollLeft=f(e,l.dir))}}):"vertical"===t?(0,p.jsx)(_,{...u,ref:r,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=U(l.viewport.scrollTop,s);i.current.style.transform="translate3d(0, ".concat(e,"px, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollTop=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollTop=f(e))}}):null}),P=n.forwardRef((e,r)=>{let{sizes:t,onSizesChange:o,...l}=e,i=b(E,e.__scopeScrollArea),[s,c]=n.useState(),d=n.useRef(null),u=(0,a.s)(r,d,i.onScrollbarXChange);return n.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),(0,p.jsx)(A,{"data-orientation":"horizontal",...l,ref:u,sizes:t,style:{bottom:0,left:"rtl"===i.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===i.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":k(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.x),onDragScroll:r=>e.onDragScroll(r.x),onWheelScroll:(r,t)=>{if(i.viewport){let n=i.viewport.scrollLeft+r.deltaX;e.onWheelScroll(n),function(e,r){return e>0&&e{d.current&&i.viewport&&s&&o({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:X(s.paddingLeft),paddingEnd:X(s.paddingRight)}})}})}),_=n.forwardRef((e,r)=>{let{sizes:t,onSizesChange:o,...l}=e,i=b(E,e.__scopeScrollArea),[s,c]=n.useState(),d=n.useRef(null),u=(0,a.s)(r,d,i.onScrollbarYChange);return n.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),(0,p.jsx)(A,{"data-orientation":"vertical",...l,ref:u,sizes:t,style:{top:0,right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":k(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.y),onDragScroll:r=>e.onDragScroll(r.y),onWheelScroll:(r,t)=>{if(i.viewport){let n=i.viewport.scrollTop+r.deltaY;e.onWheelScroll(n),function(e,r){return e>0&&e{d.current&&i.viewport&&s&&o({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:X(s.paddingTop),paddingEnd:X(s.paddingBottom)}})}})}),[j,D]=v(E),A=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,sizes:l,hasThumb:i,onThumbChange:c,onThumbPointerUp:d,onThumbPointerDown:u,onThumbPositionChange:h,onDragScroll:v,onWheelScroll:w,onResize:g,...m}=e,S=b(E,t),[x,C]=n.useState(null),y=(0,a.s)(r,e=>C(e)),T=n.useRef(null),R=n.useRef(""),L=S.viewport,P=l.content-l.viewport,_=(0,s.c)(w),D=(0,s.c)(h),A=V(g,10);function N(e){T.current&&v({x:e.clientX-T.current.left,y:e.clientY-T.current.top})}return n.useEffect(()=>{let e=e=>{let r=e.target;(null==x?void 0:x.contains(r))&&_(e,P)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[L,x,P,_]),n.useEffect(D,[l,D]),B(x,A),B(S.content,A),(0,p.jsx)(j,{scope:t,scrollbar:x,hasThumb:i,onThumbChange:(0,s.c)(c),onThumbPointerUp:(0,s.c)(d),onThumbPositionChange:D,onThumbPointerDown:(0,s.c)(u),children:(0,p.jsx)(o.sG.div,{...m,ref:y,style:{position:"absolute",...m.style},onPointerDown:(0,f.m)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),T.current=x.getBoundingClientRect(),R.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),N(e))}),onPointerMove:(0,f.m)(e.onPointerMove,N),onPointerUp:(0,f.m)(e.onPointerUp,e=>{let r=e.target;r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=R.current,S.viewport&&(S.viewport.style.scrollBehavior=""),T.current=null})})})}),N="ScrollAreaThumb",H=n.forwardRef((e,r)=>{let{forceMount:t,...n}=e,o=D(N,e.__scopeScrollArea);return(0,p.jsx)(l.C,{present:t||o.hasThumb,children:(0,p.jsx)(z,{ref:r,...n})})}),z=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,style:l,...i}=e,s=b(N,t),c=D(N,t),{onThumbPositionChange:d}=c,u=(0,a.s)(r,e=>c.onThumbChange(e)),h=n.useRef(),v=V(()=>{h.current&&(h.current(),h.current=void 0)},100);return n.useEffect(()=>{let e=s.viewport;if(e){let r=()=>{if(v(),!h.current){let r=F(e,d);h.current=r,d()}};return d(),e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[s.viewport,v,d]),(0,p.jsx)(o.sG.div,{"data-state":c.hasThumb?"visible":"hidden",...i,ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...l},onPointerDownCapture:(0,f.m)(e.onPointerDownCapture,e=>{let r=e.target.getBoundingClientRect(),t=e.clientX-r.left,n=e.clientY-r.top;c.onThumbPointerDown({x:t,y:n})}),onPointerUp:(0,f.m)(e.onPointerUp,c.onThumbPointerUp)})});H.displayName=N;var W="ScrollAreaCorner",O=n.forwardRef((e,r)=>{let t=b(W,e.__scopeScrollArea),n=!!(t.scrollbarX&&t.scrollbarY);return"scroll"!==t.type&&n?(0,p.jsx)(I,{...e,ref:r}):null});O.displayName=W;var I=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,...l}=e,i=b(W,t),[a,s]=n.useState(0),[c,d]=n.useState(0),u=!!(a&&c);return B(i.scrollbarX,()=>{var e;let r=(null===(e=i.scrollbarX)||void 0===e?void 0:e.offsetHeight)||0;i.onCornerHeightChange(r),d(r)}),B(i.scrollbarY,()=>{var e;let r=(null===(e=i.scrollbarY)||void 0===e?void 0:e.offsetWidth)||0;i.onCornerWidthChange(r),s(r)}),u?(0,p.jsx)(o.sG.div,{...l,ref:r,style:{width:a,height:c,position:"absolute",right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:0,...e.style}}):null});function X(e){return e?parseInt(e,10):0}function Y(e,r){let t=e/r;return isNaN(t)?0:t}function k(e){let r=Y(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-t)*r,18)}function U(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",n=k(r),o=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,l=r.scrollbar.size-o,i=r.content-r.viewport,a=(0,u.q)(e,"ltr"===t?[0,i]:[-1*i,0]);return M([0,i],[0,l-n])(a)}function M(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];let n=(r[1]-r[0])/(e[1]-e[0]);return r[0]+n*(t-e[0])}}var F=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{},t={left:e.scrollLeft,top:e.scrollTop},n=0;return!function o(){let l={left:e.scrollLeft,top:e.scrollTop},i=t.left!==l.left,a=t.top!==l.top;(i||a)&&r(),t=l,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function V(e,r){let t=(0,s.c)(e),o=n.useRef(0);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),n.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(t,r)},[t,r])}function B(e,r){let t=(0,s.c)(r);(0,d.N)(()=>{let r=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(t)});return n.observe(e),()=>{window.cancelAnimationFrame(r),n.unobserve(e)}}},[e,t])}var G=m,q=x,K=O}}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/about/page-1f3a1d3da213686b.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/about/page-1f3a1d3da213686b.js new file mode 100644 index 0000000..20bcbe9 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/about/page-1f3a1d3da213686b.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6655],{39884:(e,t,s)=>{Promise.resolve().then(s.bind(s,51228))},51228:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d});var n=s(20475),r=s(20107),a=s(72167);let l=()=>{let[e,t]=(0,r.useState)(null),[s,n]=(0,r.useState)(!0),a=(0,r.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/settings/device-uptime.sh"),s=await e.json();t(e=>e?{...e,deviceUptime:s.uptime.formatted||"N/A"}:e)}catch(e){console.error("Error fetching uptime:",e)}},[]),l=(0,r.useCallback)(async()=>{try{n(!0);let[e,s]=await Promise.all([fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=3"),fetch("/cgi-bin/quecmanager/settings/device-uptime.sh")]),[r,a]=await Promise.all([e.json(),s.json()]);console.log("Fetched about data:",r),console.log("Fetched uptime data:",a);let l={manufacturer:r[0].response.split("\n")[1].trim(),model:r[1].response.split("\n")[1].trim(),firmwareVersion:r[2].response.split("\n")[1].trim(),phoneNum:r[3].response.split("\n")[1].split(":")[1].split(",")[1].replace(/"/g,"").trim(),imsi:r[4].response.split("\n")[1].trim(),iccid:r[5].response.split("\n")[1].split(":")[1].trim(),imei:r[6].response.split("\n")[1].trim(),currentDeviceIP:r[7].response.split("\n")[1].split(",")[1].replace(/"/g,"").trim(),lanGateway:r[7].response.split("\n")[1].split(":")[1].split(",")[3].replace(/"/g,"").trim(),wwanIPv4:r[8].response.split("\n")[1].split(":")[1].split(",")[4].replace(/"/g,"").trim(),wwanIPv6:r[8].response.split("\n")[2].split(",")[4].replace(/"/g,"").trim(),lteCategory:r[9].response.split("\n")[5].split(":")[2].trim(),deviceUptime:a.uptime.formatted||"N/A"};t(l),console.log("Processed data:",l)}catch(e){console.error("Error fetching data:",e)}n(!1)},[]);return(0,r.useEffect)(()=>{l();let e=setInterval(a,1e3);return()=>{clearInterval(e)}},[l,a]),{data:e,isLoading:s,fetchAboutData:l}};var i=s(36824),c=s(36760);let d=()=>{let{data:e,isLoading:t}=l();return(0,n.jsxs)(a.Zp,{children:[(0,n.jsxs)(a.aR,{children:[(0,n.jsx)(a.ZB,{children:"QuecManager"}),(0,n.jsx)(a.BT,{children:"What is QuecManager and how it can help you."})]}),(0,n.jsxs)(a.Wu,{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-8",children:[(0,n.jsxs)(a.Zp,{children:[(0,n.jsxs)(a.aR,{children:[(0,n.jsx)(a.ZB,{children:"Device Technical Details"}),(0,n.jsx)(a.BT,{children:"View technical details of your device."})]}),(0,n.jsx)(a.Wu,{children:(0,n.jsxs)(i.F,{className:"w-full",children:[(0,n.jsxs)("div",{className:"grid gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Modem Manufacturer"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.manufacturer)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Modem Model"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.model)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Firmware Revision"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.firmwareVersion)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"LTE Category"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsxs)(n.Fragment,{children:["CAT-",(null==e?void 0:e.lteCategory)||"N/A"]})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Active Phone Number"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.phoneNum)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Active IMSI"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.imsi)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Active ICCID"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.iccid)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"IMEI"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.imei)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Current Device IP"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.currentDeviceIP)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"LAN Gateway"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.lanGateway)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"WWAN IPv4"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.wwanIPv4)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"WWAN IPv6"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.wwanIPv6)||"N/A"})})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{children:"Device Uptime"}),(0,n.jsx)("span",{className:"font-semibold max-w-32 md:max-w-full truncate",children:t?(0,n.jsx)(c.E,{className:"h-4 w-32"}):(0,n.jsx)(n.Fragment,{children:(null==e?void 0:e.deviceUptime)||"N/A"})})]})]}),(0,n.jsx)(i.$,{orientation:"horizontal"})]})})]}),(0,n.jsxs)(a.Zp,{children:[(0,n.jsxs)(a.aR,{children:[(0,n.jsx)(a.ZB,{children:"About Us"}),(0,n.jsx)(a.BT,{children:"Who we are and what we do."})]}),(0,n.jsxs)(a.Wu,{className:"space-y-6",children:[(0,n.jsxs)("div",{className:"grid gap-2",children:[(0,n.jsx)("h1",{className:"text-xl font-bold antialiased",children:"QuecManager"}),(0,n.jsx)("p",{className:"text-md font-medium antialiased",children:"QuecManager began as 'Simple Admin,' a straightforward GUI in the RGMII toolkit. Over time, it’s evolved into a comprehensive dashboard with powerful features for managing cellular modems. While we’ve moved beyond the 'Simple' name, our goal remains the same: providing a clean, easy-to-use interface that makes advanced modem management feel straightforward and accessible."})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-xl font-bold antialiased",children:"Thanks to"}),(0,n.jsxs)("ul",{className:"list-disc list-inside text-md font-medium antialiased",children:[(0,n.jsxs)("li",{children:["RGMII Toolkit, Documentation, and Backend",(0,n.jsx)("a",{href:"https://github.com/iamromulan",target:"_blank",className:"text-primary font-semibold ml-2",children:"iamromulan"})]}),(0,n.jsxs)("li",{children:["Simple Admin 2.0 and QuecManager GUI",(0,n.jsx)("a",{href:"https://github.com/dr-dolomite",target:"_blank",className:"text-primary font-semibold ml-2",children:"dr-dolomite"})]}),(0,n.jsxs)("li",{children:["Original Simple Admin",(0,n.jsx)("a",{href:"https://github.com/aesthernr",target:"_blank",className:"text-primary font-semibold ml-2",children:"aesthernr"})]}),(0,n.jsxs)("li",{children:["Original Socat Bridge",(0,n.jsx)("a",{href:"https://github.com/natecarlson",target:"_blank",className:"text-primary font-semibold ml-2",children:"natecarlson"})]}),(0,n.jsx)("li",{children:"Wutang Clan"})]})]})]})]})]}),(0,n.jsx)(a.wL,{className:"flex justify-center",children:(0,n.jsx)("p",{children:"QuecManager \xa9 2024 - For Personal Use Only. All rights reserved."})})]})}},72167:(e,t,s)=>{"use strict";s.d(t,{BT:()=>d,Wu:()=>o,ZB:()=>c,Zp:()=>l,aR:()=>i,wL:()=>m});var n=s(20475),r=s(20107),a=s(22250);let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,n.jsx)("div",{ref:t,className:(0,a.cn)("rounded-xl border bg-card text-card-foreground shadow",s),...r})});l.displayName="Card";let i=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,n.jsx)("div",{ref:t,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",s),...r})});i.displayName="CardHeader";let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,n.jsx)("h3",{ref:t,className:(0,a.cn)("font-semibold leading-none tracking-tight",s),...r})});c.displayName="CardTitle";let d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,n.jsx)("p",{ref:t,className:(0,a.cn)("text-sm text-muted-foreground",s),...r})});d.displayName="CardDescription";let o=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,n.jsx)("div",{ref:t,className:(0,a.cn)("p-6 pt-0",s),...r})});o.displayName="CardContent";let m=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,n.jsx)("div",{ref:t,className:(0,a.cn)("flex items-center p-6 pt-0",s),...r})});m.displayName="CardFooter"},36824:(e,t,s)=>{"use strict";s.d(t,{$:()=>c,F:()=>i});var n=s(20475),r=s(20107),a=s(89679),l=s(22250);let i=r.forwardRef((e,t)=>{let{className:s,children:r,...i}=e;return(0,n.jsxs)(a.bL,{ref:t,className:(0,l.cn)("relative overflow-hidden",s),...i,children:[(0,n.jsx)(a.LM,{className:"h-full w-full rounded-[inherit]",children:r}),(0,n.jsx)(c,{}),(0,n.jsx)(a.OK,{})]})});i.displayName=a.bL.displayName;let c=r.forwardRef((e,t)=>{let{className:s,orientation:r="vertical",...i}=e;return(0,n.jsx)(a.VM,{ref:t,orientation:r,className:(0,l.cn)("flex touch-none select-none transition-colors","vertical"===r&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",s),...i,children:(0,n.jsx)(a.lr,{className:"relative flex-1 rounded-full bg-border"})})});c.displayName=a.VM.displayName},36760:(e,t,s)=>{"use strict";s.d(t,{E:()=>a});var n=s(20475),r=s(22250);function a(e){let{className:t,...s}=e;return(0,n.jsx)("div",{className:(0,r.cn)("animate-pulse rounded-md bg-primary/10",t),...s})}},22250:(e,t,s)=>{"use strict";s.d(t,{cn:()=>a});var n=s(64901),r=s(868);function a(){for(var e=arguments.length,t=Array(e),s=0;s{"use strict";function n(e,t,{checkForDefaultPrevented:s=!0}={}){return function(n){if(e?.(n),!1===s||!n.defaultPrevented)return t?.(n)}}s.d(t,{m:()=>n})},45170:(e,t,s)=>{"use strict";s.d(t,{A:()=>l,q:()=>a});var n=s(20107),r=s(20475);function a(e,t){let s=n.createContext(t),a=e=>{let{children:t,...a}=e,l=n.useMemo(()=>a,Object.values(a));return(0,r.jsx)(s.Provider,{value:l,children:t})};return a.displayName=e+"Provider",[a,function(r){let a=n.useContext(s);if(a)return a;if(void 0!==t)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}]}function l(e,t=[]){let s=[],a=()=>{let t=s.map(e=>n.createContext(e));return function(s){let r=s?.[e]||t;return n.useMemo(()=>({[`__scope${e}`]:{...s,[e]:r}}),[s,r])}};return a.scopeName=e,[function(t,a){let l=n.createContext(a),i=s.length;s=[...s,a];let c=t=>{let{scope:s,children:a,...c}=t,d=s?.[e]?.[i]||l,o=n.useMemo(()=>c,Object.values(c));return(0,r.jsx)(d.Provider,{value:o,children:a})};return c.displayName=t+"Provider",[c,function(s,r){let c=r?.[e]?.[i]||l,d=n.useContext(c);if(d)return d;if(void 0!==a)return a;throw Error(`\`${s}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let s=()=>{let s=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=s.reduce((t,{useScope:s,scopeName:n})=>{let r=s(e)[`__scope${n}`];return{...t,...r}},{});return n.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return s.scopeName=t.scopeName,s}(a,...t)]}},54245:(e,t,s)=>{"use strict";s.d(t,{C:()=>l});var n=s(20107),r=s(64236),a=s(54122),l=e=>{let{present:t,children:s}=e,l=function(e){var t,s;let[r,l]=n.useState(),c=n.useRef({}),d=n.useRef(e),o=n.useRef("none"),[m,u]=(t=e?"mounted":"unmounted",s={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},n.useReducer((e,t)=>{let n=s[e][t];return null!=n?n:e},t));return n.useEffect(()=>{let e=i(c.current);o.current="mounted"===m?e:"none"},[m]),(0,a.N)(()=>{let t=c.current,s=d.current;if(s!==e){let n=o.current,r=i(t);e?u("MOUNT"):"none"===r||(null==t?void 0:t.display)==="none"?u("UNMOUNT"):s&&n!==r?u("ANIMATION_OUT"):u("UNMOUNT"),d.current=e}},[e,u]),(0,a.N)(()=>{if(r){var e;let t;let s=null!==(e=r.ownerDocument.defaultView)&&void 0!==e?e:window,n=e=>{let n=i(c.current).includes(e.animationName);if(e.target===r&&n&&(u("ANIMATION_END"),!d.current)){let e=r.style.animationFillMode;r.style.animationFillMode="forwards",t=s.setTimeout(()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=e)})}},a=e=>{e.target===r&&(o.current=i(c.current))};return r.addEventListener("animationstart",a),r.addEventListener("animationcancel",n),r.addEventListener("animationend",n),()=>{s.clearTimeout(t),r.removeEventListener("animationstart",a),r.removeEventListener("animationcancel",n),r.removeEventListener("animationend",n)}}u("ANIMATION_END")},[r,u]),{isPresent:["mounted","unmountSuspended"].includes(m),ref:n.useCallback(e=>{e&&(c.current=getComputedStyle(e)),l(e)},[])}}(t),c="function"==typeof s?s({present:l.isPresent}):n.Children.only(s),d=(0,r.s)(l.ref,function(e){var t,s;let n=null===(t=Object.getOwnPropertyDescriptor(e.props,"ref"))||void 0===t?void 0:t.get,r=n&&"isReactWarning"in n&&n.isReactWarning;return r?e.ref:(r=(n=null===(s=Object.getOwnPropertyDescriptor(e,"ref"))||void 0===s?void 0:s.get)&&"isReactWarning"in n&&n.isReactWarning)?e.props.ref:e.props.ref||e.ref}(c));return"function"==typeof s||l.isPresent?n.cloneElement(c,{ref:d}):null};function i(e){return(null==e?void 0:e.animationName)||"none"}l.displayName="Presence"},34544:(e,t,s)=>{"use strict";s.d(t,{hO:()=>c,sG:()=>i});var n=s(20107),r=s(25642),a=s(61837),l=s(20475),i=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let s=n.forwardRef((e,s)=>{let{asChild:n,...r}=e,i=n?a.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,l.jsx)(i,{...r,ref:s})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{});function c(e,t){e&&r.flushSync(()=>e.dispatchEvent(t))}},46774:(e,t,s)=>{"use strict";s.d(t,{c:()=>r});var n=s(20107);function r(e){let t=n.useRef(e);return n.useEffect(()=>{t.current=e}),n.useMemo(()=>(...e)=>t.current?.(...e),[])}},54122:(e,t,s)=>{"use strict";s.d(t,{N:()=>r});var n=s(20107),r=globalThis?.document?n.useLayoutEffect:()=>{}}},e=>{var t=t=>e(e.s=t);e.O(0,[7780,9679,191,6035,7358],()=>t(39884)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/at-terminal/page-1bb7b7081b0d04a2.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/at-terminal/page-1bb7b7081b0d04a2.js new file mode 100644 index 0000000..f94b435 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/at-terminal/page-1bb7b7081b0d04a2.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8757],{80631:(e,t,r)=>{Promise.resolve().then(r.bind(r,92040))},92040:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>w});var a=r(20475),s=r(20107),o=r(72167),n=r(36824),l=r(42541),i=r(49153),d=r(31739),c=r(64219),m=r(51873),u=r(39997);let p=(0,u.A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var f=r(66698);let x=(0,u.A)("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"}]]);var h=r(50049),g=r(32857),v=r(83086),y=r(51303),b=r(45934);let w=()=>{let{toast:e}=(0,g.dj)(),[t,r]=(0,s.useState)(""),[u,w]=(0,s.useState)(""),[j,N]=(0,s.useState)([]),[A,T]=(0,s.useState)([]),[C,S]=(0,s.useState)([]),[R,E]=(0,s.useState)(!1),[k,O]=(0,s.useState)([]),[D,_]=(0,s.useState)(!0),[I,F]=(0,s.useState)(-1),H=(0,s.useRef)(null),z=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{z.current&&!z.current.contains(e.target)&&(T([]),F(-1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,s.useEffect)(()=>{(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/advance/fetch_commands.sh"),t=await e.json(),r=Object.entries(t).filter(e=>{let[t]=e;return"error"!==t}).map(e=>{let[t,r]=e;return{description:t,command:r}});if(0===r.length&&t.error)throw Error(t.error);O(r)}catch(t){console.error("Failed to fetch AT commands:",t),e({title:"Error",description:t instanceof Error?t.message:"Failed to load common AT commands",variant:"destructive"})}finally{_(!1)}})()},[]),(0,s.useEffect)(()=>{let e=window.localStorage.getItem("atCommandHistory"),t=window.localStorage.getItem("atCommands");if(e)try{N(JSON.parse(e))}catch(e){console.error("Failed to parse command history:",e),N([])}if(t)try{S(JSON.parse(t))}catch(e){console.error("Failed to parse previous commands:",e),S([])}},[]),(0,s.useEffect)(()=>{j.length>0&&window.localStorage.setItem("atCommandHistory",JSON.stringify(j))},[j]),(0,s.useEffect)(()=>{C.length>0&&window.localStorage.setItem("atCommands",JSON.stringify(C))},[C]);let L=async()=>{let t=u.trim();if("tetris"===t.toLowerCase()){window.open("/settings/games/tetris","_blank"),w("");return}if(!t.toUpperCase().startsWith("AT")){e({title:"Invalid Command",description:"Command must start with 'AT'",variant:"destructive"});return}E(!0),w(""),r("> ".concat(t,"\nExecuting command, please wait..."));try{let a=encodeURIComponent(t),s=await fetch("/cgi-bin/quecmanager/at_cmd/at_queue_client?command=".concat(a,"&wait=1")),o=await s.json(),n="> ".concat(t,"\n");o.response.raw_output&&(n+=o.response.raw_output),r(n);let l={command:t,response:o.response.raw_output||"No output",timestamp:o.command.timestamp,status:o.response.status,duration:o.response.duration_ms,commandId:o.command.id};N(e=>[l,...e]),"success"!==o.response.status||C.includes(t)||S(e=>[...e,t]),("error"===o.response.status||"timeout"===o.response.status)&&e({title:"Command ".concat("timeout"===o.response.status?"Timeout":"Error"),description:o.response.raw_output||"Command execution ".concat(o.response.status),variant:"destructive"})}catch(s){let a=s instanceof Error?s.message:"An unknown error occurred";r("> ".concat(t,"\nError: ").concat(a)),e({title:"Error",description:a,variant:"destructive"})}finally{E(!1)}},M=e=>{N(t=>{let r=[...t];return r.splice(e,1),0===r.length&&window.localStorage.removeItem("atCommandHistory"),r})},B=e=>{S(t=>{let r=t.filter(t=>t!==e);return window.localStorage.setItem("atCommands",JSON.stringify(r)),r}),T(t=>t.filter(t=>t!==e))},V=async t=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(t);else{let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.left="-999999px",e.style.top="-999999px",document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")}catch(e){throw console.error("Fallback: Oops, unable to copy",e),Error("Copy failed")}finally{e.remove()}}e({title:"Copied!",description:'Command "'.concat(t,'" copied to clipboard'),duration:2e3})}catch(t){console.error("Failed to copy command:",t),e({title:"Error",description:"Failed to copy command to clipboard",variant:"destructive",duration:3e3})}};return(0,a.jsxs)("div",{className:"grid gap-6",children:[(0,a.jsxs)(o.Zp,{children:[(0,a.jsxs)(o.aR,{children:[(0,a.jsx)(o.ZB,{children:"AT Terminal"}),(0,a.jsx)(o.BT,{children:"Send AT commands to your device using the queue system"})]}),(0,a.jsx)(o.Wu,{children:(0,a.jsxs)("div",{className:"grid gap-8 w-full max-w-screen p-4",children:[(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(i.J,{htmlFor:"ATOutput",children:"AT Command Output"}),(0,a.jsx)(d.T,{value:t,placeholder:"AT command output will appear here...",readOnly:!0,className:"h-64 font-mono",id:"ATOutput"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)(h.w,{className:"mb-2"}),0===j.length?(0,a.jsx)("p",{className:"italic text-sm text-muted-foreground font-medium text-center",children:"Command History is Empty"}):(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-2",children:[(0,a.jsx)(i.J,{children:"Command History"}),(0,a.jsxs)(v.Lt,{children:[(0,a.jsx)(v.tv,{asChild:!0,children:(0,a.jsxs)(l.$,{variant:"outline",size:"sm",children:[(0,a.jsx)(m.A,{className:"h-4 w-4 text-rose-500"}),"Clear All"]})}),(0,a.jsxs)(v.EO,{children:[(0,a.jsxs)(v.wd,{children:[(0,a.jsx)(v.r7,{children:"Clear Command History"}),(0,a.jsx)(v.$v,{children:"This action cannot be undone. This will permanently delete your command history."})]}),(0,a.jsxs)(v.ck,{children:[(0,a.jsx)(v.Zr,{children:"Cancel"}),(0,a.jsx)(v.Rx,{onClick:()=>{N([]),window.localStorage.removeItem("atCommandHistory")},children:"Continue"})]})]})]})]}),(0,a.jsx)(n.F,{className:"h-44 p-4",children:(0,a.jsx)("div",{className:"grid gap-y-2",children:j.map((e,t)=>(0,a.jsx)(o.Zp,{children:(0,a.jsx)(o.Wu,{className:"p-3 relative",children:(0,a.jsxs)(n.F,{className:"max-w-xs md:max-w-full",children:[(0,a.jsx)(l.$,{variant:"ghost",size:"icon",className:"absolute right-2 top-2 h-4 w-4",onClick:()=>M(t),children:(0,a.jsx)(p,{className:"h-4 w-4"})}),(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.command}),(0,a.jsxs)(b.E,{className:"".concat("success"===e.status?"bg-primary text-foreground":"timeout"===e.status?"bg-yellow-500 text-foreground":"bg-red-500 text-red-foreground"),children:[e.status," -"," ",void 0!==e.duration&&"".concat(e.duration,"ms")]})]}),e.response&&"No output"!==e.response&&(0,a.jsx)("p",{className:"whitespace-pre-wrap font-mono text-sm",children:e.response})]}),(0,a.jsx)(n.$,{orientation:"horizontal"})]})})},"".concat(e.timestamp,"-").concat(t)))})})]}),(0,a.jsx)(h.w,{className:"mt-2"})]}),(0,a.jsxs)("div",{className:"grid gap-1.5 relative",children:[(0,a.jsx)(i.J,{htmlFor:"ATInput",children:"AT Command Input"}),(0,a.jsx)(c.p,{ref:H,value:u,onChange:e=>{let t=e.target.value;w(t),F(-1),requestAnimationFrame(()=>{t.trim()?T(C.filter(e=>e.toLowerCase().includes(t.toLowerCase())).slice(0,5)):T([])})},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),L())},placeholder:"ATI",id:"ATInput",disabled:R,autoComplete:"off"}),A.length>0&&(0,a.jsx)("div",{ref:z,className:"absolute top-full mt-1 bg-background border rounded-md shadow-lg z-10 w-full",children:(0,a.jsx)(n.F,{className:"max-h-[200px]",children:A.map((e,t)=>(0,a.jsxs)("div",{className:"p-2 cursor-pointer flex items-center justify-between group transition-colors ".concat(t===I?"bg-accent":"hover:bg-accent/50"),onClick:()=>{var t;w(e),T([]),F(-1),null===(t=H.current)||void 0===t||t.focus()},children:[(0,a.jsx)("p",{className:"text-sm font-medium text-muted-foreground flex-grow",children:e}),(0,a.jsx)(l.$,{variant:"ghost",size:"icon",className:"h-4 w-4 opacity-0 group-hover:opacity-100 transition-opacity",onClick:t=>{t.stopPropagation(),B(e)},children:(0,a.jsx)(p,{className:"h-4 w-4"})})]},t))})}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Your successful commands will be saved for autocomplete."})]})]})}),(0,a.jsx)(o.wL,{className:"grid border-t py-4",children:(0,a.jsxs)(l.$,{onClick:L,disabled:R,children:[(0,a.jsx)(f.A,{className:"mr-2"}),R?"Sending...":"Send Command"]})})]}),(0,a.jsxs)(o.Zp,{children:[(0,a.jsxs)(o.aR,{children:[(0,a.jsx)(o.ZB,{children:"Common AT Commands List"}),(0,a.jsx)(o.BT,{children:"Here are some common AT commands you can try:"})]}),(0,a.jsx)(o.Wu,{children:(0,a.jsxs)(y.XI,{children:[(0,a.jsx)(y.r6,{children:"AT Command List"}),(0,a.jsx)(y.A0,{children:(0,a.jsxs)(y.Hj,{children:[(0,a.jsx)(y.nd,{children:"AT Command"}),(0,a.jsx)(y.nd,{className:"text-right",children:"Description"})]})}),(0,a.jsx)(y.BF,{children:D?(0,a.jsx)(y.Hj,{children:(0,a.jsx)(y.nA,{colSpan:3,className:"text-center",children:"Loading commands..."})}):0===k.length?(0,a.jsx)(y.Hj,{children:(0,a.jsx)(y.nA,{colSpan:3,className:"text-center",children:"No commands available"})}):k.map((e,t)=>(0,a.jsxs)(y.Hj,{children:[(0,a.jsxs)(y.nA,{className:"flex items-center gap-x-2",children:[(0,a.jsx)("p",{className:"font-mono truncate max-w-6 md:max-w-md",children:e.command}),(0,a.jsx)(x,{className:"w-3 h-3 hover:text-purple-300 cursor-pointer",onClick:()=>V(e.command)})]}),(0,a.jsx)(y.nA,{className:"text-right max-w-10 md:max-w-lg",children:e.description})]},t))})]})})]})]})}},83086:(e,t,r)=>{"use strict";r.d(t,{Lt:()=>D,Rx:()=>B,Zr:()=>V,EO:()=>F,$v:()=>M,ck:()=>z,wd:()=>H,r7:()=>L,tv:()=>_});var a=r(20475),s=r(20107),o=r(45170),n=r(64236),l=r(60241),i=r(94521),d=r(61837),c="AlertDialog",[m,u]=(0,o.A)(c,[l.Hs]),p=(0,l.Hs)(),f=e=>{let{__scopeAlertDialog:t,...r}=e,s=p(t);return(0,a.jsx)(l.bL,{...s,...r,modal:!0})};f.displayName=c;var x=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...s}=e,o=p(r);return(0,a.jsx)(l.l9,{...o,...s,ref:t})});x.displayName="AlertDialogTrigger";var h=e=>{let{__scopeAlertDialog:t,...r}=e,s=p(t);return(0,a.jsx)(l.ZL,{...s,...r})};h.displayName="AlertDialogPortal";var g=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...s}=e,o=p(r);return(0,a.jsx)(l.hJ,{...o,...s,ref:t})});g.displayName="AlertDialogOverlay";var v="AlertDialogContent",[y,b]=m(v),w=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,children:o,...c}=e,m=p(r),u=s.useRef(null),f=(0,n.s)(t,u),x=s.useRef(null);return(0,a.jsx)(l.G$,{contentName:v,titleName:j,docsSlug:"alert-dialog",children:(0,a.jsx)(y,{scope:r,cancelRef:x,children:(0,a.jsxs)(l.UC,{role:"alertdialog",...m,...c,ref:f,onOpenAutoFocus:(0,i.m)(c.onOpenAutoFocus,e=>{var t;e.preventDefault(),null===(t=x.current)||void 0===t||t.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,a.jsx)(d.xV,{children:o}),(0,a.jsx)(E,{contentRef:u})]})})})});w.displayName=v;var j="AlertDialogTitle",N=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...s}=e,o=p(r);return(0,a.jsx)(l.hE,{...o,...s,ref:t})});N.displayName=j;var A="AlertDialogDescription",T=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...s}=e,o=p(r);return(0,a.jsx)(l.VY,{...o,...s,ref:t})});T.displayName=A;var C=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...s}=e,o=p(r);return(0,a.jsx)(l.bm,{...o,...s,ref:t})});C.displayName="AlertDialogAction";var S="AlertDialogCancel",R=s.forwardRef((e,t)=>{let{__scopeAlertDialog:r,...s}=e,{cancelRef:o}=b(S,r),i=p(r),d=(0,n.s)(t,o);return(0,a.jsx)(l.bm,{...i,...s,ref:d})});R.displayName=S;var E=e=>{let{contentRef:t}=e,r="`".concat(v,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(v,"` by passing a `").concat(A,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(v,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return s.useEffect(()=>{var e;document.getElementById(null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby"))||console.warn(r)},[r,t]),null},k=r(22250),O=r(42541);let D=f,_=x,I=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(g,{className:(0,k.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...s,ref:t})});I.displayName=g.displayName;let F=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsxs)(h,{children:[(0,a.jsx)(I,{}),(0,a.jsx)(w,{ref:t,className:(0,k.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...s})]})});F.displayName=w.displayName;let H=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,k.cn)("flex flex-col space-y-2 text-center sm:text-left",t),...r})};H.displayName="AlertDialogHeader";let z=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,k.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...r})};z.displayName="AlertDialogFooter";let L=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(N,{ref:t,className:(0,k.cn)("text-lg font-semibold",r),...s})});L.displayName=N.displayName;let M=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(T,{ref:t,className:(0,k.cn)("text-sm text-muted-foreground",r),...s})});M.displayName=T.displayName;let B=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(C,{ref:t,className:(0,k.cn)((0,O.r)(),r),...s})});B.displayName=C.displayName;let V=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(R,{ref:t,className:(0,k.cn)((0,O.r)({variant:"outline"}),"mt-2 sm:mt-0",r),...s})});V.displayName=R.displayName},45934:(e,t,r)=>{"use strict";r.d(t,{E:()=>l});var a=r(20475);r(20107);var s=r(29395),o=r(22250);let n=(0,s.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:r,...s}=e;return(0,a.jsx)("div",{className:(0,o.cn)(n({variant:r}),t),...s})}},42541:(e,t,r)=>{"use strict";r.d(t,{$:()=>d,r:()=>i});var a=r(20475),s=r(20107),o=r(61837),n=r(29395),l=r(22250);let i=(0,n.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=s.forwardRef((e,t)=>{let{className:r,variant:s,size:n,asChild:d=!1,...c}=e,m=d?o.DX:"button";return(0,a.jsx)(m,{className:(0,l.cn)(i({variant:s,size:n,className:r})),ref:t,...c})});d.displayName="Button"},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>i,Zp:()=>n,aR:()=>l,wL:()=>m});var a=r(20475),s=r(20107),o=r(22250);let n=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...s})});n.displayName="Card";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("flex flex-col space-y-1.5 p-6",r),...s})});l.displayName="CardHeader";let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,o.cn)("font-semibold leading-none tracking-tight",r),...s})});i.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",r),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let m=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("flex items-center p-6 pt-0",r),...s})});m.displayName="CardFooter"},64219:(e,t,r)=>{"use strict";r.d(t,{p:()=>n});var a=r(20475),s=r(20107),o=r(22250);let n=s.forwardRef((e,t)=>{let{className:r,type:s,...n}=e;return(0,a.jsx)("input",{type:s,className:(0,o.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...n})});n.displayName="Input"},49153:(e,t,r)=>{"use strict";r.d(t,{J:()=>d});var a=r(20475),s=r(20107),o=r(21840),n=r(29395),l=r(22250);let i=(0,n.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(o.b,{ref:t,className:(0,l.cn)(i(),r),...s})});d.displayName=o.b.displayName},36824:(e,t,r)=>{"use strict";r.d(t,{$:()=>i,F:()=>l});var a=r(20475),s=r(20107),o=r(89679),n=r(22250);let l=s.forwardRef((e,t)=>{let{className:r,children:s,...l}=e;return(0,a.jsxs)(o.bL,{ref:t,className:(0,n.cn)("relative overflow-hidden",r),...l,children:[(0,a.jsx)(o.LM,{className:"h-full w-full rounded-[inherit]",children:s}),(0,a.jsx)(i,{}),(0,a.jsx)(o.OK,{})]})});l.displayName=o.bL.displayName;let i=s.forwardRef((e,t)=>{let{className:r,orientation:s="vertical",...l}=e;return(0,a.jsx)(o.VM,{ref:t,orientation:s,className:(0,n.cn)("flex touch-none select-none transition-colors","vertical"===s&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===s&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",r),...l,children:(0,a.jsx)(o.lr,{className:"relative flex-1 rounded-full bg-border"})})});i.displayName=o.VM.displayName},50049:(e,t,r)=>{"use strict";r.d(t,{w:()=>c});var a=r(20475),s=r(20107),o=r(34544),n="horizontal",l=["horizontal","vertical"],i=s.forwardRef((e,t)=>{let{decorative:r,orientation:s=n,...i}=e,d=l.includes(s)?s:n;return(0,a.jsx)(o.sG.div,{"data-orientation":d,...r?{role:"none"}:{"aria-orientation":"vertical"===d?d:void 0,role:"separator"},...i,ref:t})});i.displayName="Separator";var d=r(22250);let c=s.forwardRef((e,t)=>{let{className:r,orientation:s="horizontal",decorative:o=!0,...n}=e;return(0,a.jsx)(i,{ref:t,decorative:o,orientation:s,className:(0,d.cn)("shrink-0 bg-border","horizontal"===s?"h-[1px] w-full":"h-full w-[1px]",r),...n})});c.displayName=i.displayName},51303:(e,t,r)=>{"use strict";r.d(t,{A0:()=>l,BF:()=>i,Hj:()=>d,XI:()=>n,nA:()=>m,nd:()=>c,r6:()=>u});var a=r(20475),s=r(20107),o=r(22250);let n=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",{ref:t,className:(0,o.cn)("w-full caption-bottom text-sm",r),...s})})});n.displayName="Table";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("thead",{ref:t,className:(0,o.cn)("[&_tr]:border-b",r),...s})});l.displayName="TableHeader";let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("tbody",{ref:t,className:(0,o.cn)("[&_tr:last-child]:border-0",r),...s})});i.displayName="TableBody",s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("tfoot",{ref:t,className:(0,o.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",r),...s})}).displayName="TableFooter";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("tr",{ref:t,className:(0,o.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",r),...s})});d.displayName="TableRow";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("th",{ref:t,className:(0,o.cn)("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",r),...s})});c.displayName="TableHead";let m=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("td",{ref:t,className:(0,o.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",r),...s})});m.displayName="TableCell";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("caption",{ref:t,className:(0,o.cn)("mt-4 text-sm text-muted-foreground",r),...s})});u.displayName="TableCaption"},31739:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});var a=r(20475),s=r(20107),o=r(22250);let n=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("textarea",{className:(0,o.cn)("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:t,...s})});n.displayName="Textarea"},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>u,oR:()=>m});var a=r(20107);let s=0,o=new Map,n=e=>{if(o.has(e))return;let t=setTimeout(()=>{o.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);o.set(e,t)},l=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?n(r):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},i=[],d={toasts:[]};function c(e){d=l(d,e),i.forEach(e=>{e(d)})}function m(e){let{...t}=e,r=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||a()}}}),{id:r,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function u(){let[e,t]=a.useState(d);return a.useEffect(()=>(i.push(t),()=>{let e=i.indexOf(t);e>-1&&i.splice(e,1)}),[e]),{...e,toast:m,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>o});var a=r(64901),s=r(868);function o(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},51873:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("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"}]])},21840:(e,t,r)=>{"use strict";r.d(t,{b:()=>l});var a=r(20107),s=r(34544),o=r(20475),n=a.forwardRef((e,t)=>(0,o.jsx)(s.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null===(r=e.onMouseDown)||void 0===r||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));n.displayName="Label";var l=n}},e=>{var t=t=>e(e.s=t);e.O(0,[7780,8885,9464,6357,9679,191,6035,7358],()=>t(80631)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/connectivity/page-f494320c9da1be00.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/connectivity/page-f494320c9da1be00.js new file mode 100644 index 0000000..458f51d --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/connectivity/page-f494320c9da1be00.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9548],{15348:(e,s,t)=>{Promise.resolve().then(t.bind(t,39966))},39966:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>f});var r=t(20475),a=t(20107),l=t(72167),d=t(35601),o=t(83086),n=t(32857),i=t(42541),c=t(49153),u=t(36760),h=t(50049),m=t(114),x=t(88926),p=t(44381);let f=()=>{let{toast:e}=(0,n.dj)(),[s,t]=(0,a.useState)(!0),[f,j]=(0,a.useState)([]),[g,b]=(0,a.useState)(!1),[v,y]=(0,a.useState)(""),[N,w]=(0,a.useState)({passthrough:null,selectedMac:null,modemProtocol:null,dnsProxy:null}),[P,C]=(0,a.useState)({passthrough:null,selectedMac:null,modemProtocol:null,dnsProxy:null}),M={passthrough:{disabled:'+QMAP="MPDN_rule",0;+QMAPWAC=1;+QPOWD=1',ETH:e=>'+QMAP="MPDN_rule",0,1,0,1,1,"'.concat(e,'";+QPOWD=1'),USB:e=>'+QMAP="MPDN_rule",0,1,0,3,1,"'.concat(e,'";+QPOWD=1')},modemProtocol:{rmnet:'+QCFG="usbnet",0;+QPOWD=1',ecm:'+QCFG="usbnet",1;+QPOWD=1',mbim:'+QCFG="usbnet",2;+QPOWD=1',rndis:'+QCFG="usbnet",3;+QPOWD=1'},dnsProxy:{enabled:'+QMAP="DHCPV4DNS","enable"',disabled:'+QMAP="DHCPV4DNS","disable"'}},D=e=>{let s={passthrough:null,selectedMac:null,modemProtocol:null,dnsProxy:null};return e.forEach(e=>{let{response:t}=e;if(t.includes("MPDN_rule")){let e=t.split("\n")[1];e.includes('MPDN_rule",0,1,0,1,1')?s.passthrough="ETH":e.includes('MPDN_rule",0,1,0,3,1')?s.passthrough="USB":e.includes('MPDN_rule",0,0,0,0,0')&&(s.passthrough="disabled")}if(t.includes("usbnet")){let e=t.match(/usbnet",(\d)/);e&&(s.modemProtocol=({0:"rmnet",1:"ecm",2:"mbim",3:"rndis"})[e[1]])}t.includes("DHCPV4DNS")&&(t.includes('"enable"')?s.dnsProxy="enabled":t.includes('"disable"')&&(s.dnsProxy="disabled"))}),s},S=()=>{let e=[],s=Object.entries(P).reduce((e,s)=>{let[t,r]=s;return r!==N[t]&&(e[t]=r),e},{});if("passthrough"in s){if("disabled"===s.passthrough)e.push(M.passthrough.disabled.replace(";+QPOWD=1",""));else if(s.passthrough){let e=M.passthrough[s.passthrough](P.selectedMac);return"AT".concat(e.replace(";+QPOWD=1",""))}}if("modemProtocol"in s&&s.modemProtocol){let t=M.modemProtocol[s.modemProtocol];if(1===Object.keys(s).length)return"AT".concat(t.replace(";+QPOWD=1",""));e.push(t.replace(";+QPOWD=1",""))}if("dnsProxy"in s&&s.dnsProxy){let t=M.dnsProxy[s.dnsProxy];if(1===Object.keys(s).length)return"AT".concat(t);e.push(t)}return e.length>0?"AT".concat(e.join(";")):""},R=async()=>{try{var s,t;let r=await (0,x.a)("AT+QPOWD=1",!0);if((null===(s=r.response)||void 0===s?void 0:s.status)==="success")e({title:"Success",description:"Settings saved and device is rebooting..."}),setTimeout(()=>{window.location.reload()},9e4);else throw Error((null===(t=r.response)||void 0===t?void 0:t.raw_output)||"Failed to reboot device")}catch(s){e({variant:"destructive",title:"Error",description:"Failed to reboot device",action:(0,r.jsx)(m.A,{})})}},E=async()=>{try{let e=S();y(e),b(!0)}catch(s){e({variant:"destructive",title:"Error",description:"Failed to prepare settings",action:(0,r.jsx)(m.A,{})})}},A=async()=>{try{var s,t;let e=await (0,x.a)(v,!0);if((null===(s=e.response)||void 0===s?void 0:s.status)!=="success")throw Error((null===(t=e.response)||void 0===t?void 0:t.raw_output)||"Command execution failed");w({...P}),await R()}catch(s){e({variant:"destructive",title:"Error",description:"Failed to save settings",action:(0,r.jsx)(m.A,{})})}};return(0,a.useEffect)(()=>{(async()=>{try{let[e,s]=await Promise.all([fetch("/cgi-bin/quecmanager/advance/fetch_macs.sh"),fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=4")]),[r,a]=await Promise.all([e.json(),s.json()]);j(r);let l=D(a);w(l),C(l),t(!1)}catch(s){t(!1),e({variant:"destructive",title:"Uh oh! Something went wrong.",description:"Failed to fetch connectivity settings",action:(0,r.jsx)(m.A,{})})}})()},[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(l.Zp,{children:[(0,r.jsxs)(l.aR,{children:[(0,r.jsx)(l.ZB,{children:"Connectivity Settings"}),(0,r.jsx)(l.BT,{children:"Configure your device's connectivity settings."})]}),(0,r.jsx)(l.Wu,{children:(0,r.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 grid-flow-row gap-6",children:[(0,r.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,r.jsx)(c.J,{htmlFor:"passthrough",children:"IP Passthrough Mode"}),s?(0,r.jsx)(u.E,{className:"w-full h-8"}):(0,r.jsxs)(d.l6,{onValueChange:e=>C(s=>({...s,passthrough:e})),value:P.passthrough||void 0,children:[(0,r.jsx)(d.bq,{children:(0,r.jsx)(d.yv,{placeholder:"Select IP Passthrough Mode"})}),(0,r.jsx)(d.gC,{children:(0,r.jsxs)(d.s3,{children:[(0,r.jsx)(d.TR,{children:"Passthrough Mode"}),(0,r.jsx)(d.eb,{value:"disabled",children:"Disabled"}),(0,r.jsx)(d.eb,{value:"ETH",children:"ETH Passthrough Enabled"}),(0,r.jsx)(d.eb,{value:"USB",children:"USB Passthrough Enabled"})]})})]})]}),(0,r.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,r.jsx)(c.J,{htmlFor:"mac",children:"Connected MAC"}),s?(0,r.jsx)(u.E,{className:"w-full h-8"}):(0,r.jsxs)(d.l6,{onValueChange:e=>C(s=>({...s,selectedMac:e})),value:P.selectedMac||void 0,disabled:!P.passthrough||"disabled"===P.passthrough,children:[(0,r.jsx)(d.bq,{children:(0,r.jsx)(d.yv,{placeholder:"Select Active MAC"})}),(0,r.jsx)(d.gC,{children:(0,r.jsxs)(d.s3,{children:[(0,r.jsx)(d.TR,{children:"Active MAC"}),f.map(e=>(0,r.jsx)(d.eb,{value:e.mac,children:"".concat(e.hostname," - ").concat(e.mac)},e.mac))]})})]})]}),(0,r.jsx)(h.w,{className:"lg:col-span-2 col-span-1 my-2"}),(0,r.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,r.jsx)(c.J,{htmlFor:"modemProtocol",children:"USB Modem Protocol"}),s?(0,r.jsx)(u.E,{className:"w-full h-8"}):(0,r.jsxs)(d.l6,{onValueChange:e=>C(s=>({...s,modemProtocol:e})),value:P.modemProtocol||void 0,children:[(0,r.jsx)(d.bq,{children:(0,r.jsx)(d.yv,{placeholder:"Select USB Modem Protocol"})}),(0,r.jsx)(d.gC,{children:(0,r.jsxs)(d.s3,{children:[(0,r.jsx)(d.TR,{children:"USB Modem Protocol"}),(0,r.jsx)(d.eb,{value:"rmnet",children:"RMNET"}),(0,r.jsx)(d.eb,{value:"ecm",children:"ECM (Recommended)"}),(0,r.jsx)(d.eb,{value:"mbim",children:"MBIM"}),(0,r.jsx)(d.eb,{value:"rndis",children:"RNDIS"})]})})]})]}),(0,r.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,r.jsx)(c.J,{htmlFor:"dnsProxy",children:"Onboard DNS Proxy Mode"}),s?(0,r.jsx)(u.E,{className:"w-full h-8"}):(0,r.jsxs)(d.l6,{onValueChange:e=>C(s=>({...s,dnsProxy:e})),value:P.dnsProxy||void 0,children:[(0,r.jsx)(d.bq,{children:(0,r.jsx)(d.yv,{placeholder:"Select DNS Proxy Mode"})}),(0,r.jsx)(d.gC,{children:(0,r.jsxs)(d.s3,{children:[(0,r.jsx)(d.TR,{children:"DNS Proxy Mode"}),(0,r.jsx)(d.eb,{value:"enabled",children:"Enabled"}),(0,r.jsx)(d.eb,{value:"disabled",children:"Disabled (Recommended for Passthrough)"})]})})]})]})]})}),(0,r.jsx)(l.wL,{className:"grid border-t py-4",children:(0,r.jsx)(i.$,{onClick:E,disabled:!Object.entries(P).some(e=>{let[s,t]=e;return t!==N[s]})||!(!P.passthrough||"disabled"===P.passthrough||P.selectedMac),children:"Save"})})]}),(0,r.jsx)(o.Lt,{open:g,onOpenChange:b,children:(0,r.jsxs)(o.EO,{children:[(0,r.jsxs)(o.wd,{children:[(0,r.jsx)(o.r7,{children:"Reboot Required"}),(0,r.jsx)(o.$v,{children:"The changes you made require a device reboot to take effect. Would you like to reboot now?"})]}),(0,r.jsxs)(o.ck,{children:[(0,r.jsx)(o.Zr,{children:"Later"}),(0,r.jsxs)(o.Rx,{onClick:A,children:[(0,r.jsx)(p.A,{className:"w-4 h-4"}),"Save & Reboot Now"]})]})]})})]})}},114:(e,s,t)=>{"use strict";t.d(s,{A:()=>d});var r=t(20475),a=t(42541),l=t(7197);let d=()=>(0,r.jsx)(a.$,{asChild:!0,variant:"outline",className:"ml-2",children:(0,r.jsxs)("a",{href:"https://github.com/iamromulan/quectel-rgmii-toolkit/tree/development-SDXPINN",children:[(0,r.jsx)(l.ERf,{className:"w-4 h-4 mr-2"}),"Get there!"]})})},72167:(e,s,t)=>{"use strict";t.d(s,{BT:()=>i,Wu:()=>c,ZB:()=>n,Zp:()=>d,aR:()=>o,wL:()=>u});var r=t(20475),a=t(20107),l=t(22250);let d=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)("div",{ref:s,className:(0,l.cn)("rounded-xl border bg-card text-card-foreground shadow",t),...a})});d.displayName="Card";let o=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)("div",{ref:s,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",t),...a})});o.displayName="CardHeader";let n=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)("h3",{ref:s,className:(0,l.cn)("font-semibold leading-none tracking-tight",t),...a})});n.displayName="CardTitle";let i=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)("p",{ref:s,className:(0,l.cn)("text-sm text-muted-foreground",t),...a})});i.displayName="CardDescription";let c=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)("div",{ref:s,className:(0,l.cn)("p-6 pt-0",t),...a})});c.displayName="CardContent";let u=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)("div",{ref:s,className:(0,l.cn)("flex items-center p-6 pt-0",t),...a})});u.displayName="CardFooter"},49153:(e,s,t)=>{"use strict";t.d(s,{J:()=>i});var r=t(20475),a=t(20107),l=t(21840),d=t(29395),o=t(22250);let n=(0,d.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),i=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)(l.b,{ref:s,className:(0,o.cn)(n(),t),...a})});i.displayName=l.b.displayName},35601:(e,s,t)=>{"use strict";t.d(s,{TR:()=>p,bq:()=>u,eb:()=>f,gC:()=>x,l6:()=>n,s3:()=>i,yv:()=>c});var r=t(20475),a=t(20107),l=t(7197),d=t(95257),o=t(22250);let n=d.bL,i=d.YJ,c=d.WT,u=a.forwardRef((e,s)=>{let{className:t,children:a,...n}=e;return(0,r.jsxs)(d.l9,{ref:s,className:(0,o.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...n,children:[a,(0,r.jsx)(d.In,{asChild:!0,children:(0,r.jsx)(l.TBE,{className:"h-4 w-4 opacity-50"})})]})});u.displayName=d.l9.displayName;let h=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)(d.PP,{ref:s,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(l.Mtm,{})})});h.displayName=d.PP.displayName;let m=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)(d.wn,{ref:s,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",t),...a,children:(0,r.jsx)(l.D3D,{})})});m.displayName=d.wn.displayName;let x=a.forwardRef((e,s)=>{let{className:t,children:a,position:l="popper",...n}=e;return(0,r.jsx)(d.ZL,{children:(0,r.jsxs)(d.UC,{ref:s,className:(0,o.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===l&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:l,...n,children:[(0,r.jsx)(h,{}),(0,r.jsx)(d.LM,{className:(0,o.cn)("p-1","popper"===l&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),(0,r.jsx)(m,{})]})})});x.displayName=d.UC.displayName;let p=a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)(d.JU,{ref:s,className:(0,o.cn)("px-2 py-1.5 text-sm font-semibold",t),...a})});p.displayName=d.JU.displayName;let f=a.forwardRef((e,s)=>{let{className:t,children:a,...n}=e;return(0,r.jsxs)(d.q7,{ref:s,className:(0,o.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...n,children:[(0,r.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(d.VF,{children:(0,r.jsx)(l.Srz,{className:"h-4 w-4"})})}),(0,r.jsx)(d.p4,{children:a})]})});f.displayName=d.q7.displayName,a.forwardRef((e,s)=>{let{className:t,...a}=e;return(0,r.jsx)(d.wv,{ref:s,className:(0,o.cn)("-mx-1 my-1 h-px bg-muted",t),...a})}).displayName=d.wv.displayName},50049:(e,s,t)=>{"use strict";t.d(s,{w:()=>c});var r=t(20475),a=t(20107),l=t(34544),d="horizontal",o=["horizontal","vertical"],n=a.forwardRef((e,s)=>{let{decorative:t,orientation:a=d,...n}=e,i=o.includes(a)?a:d;return(0,r.jsx)(l.sG.div,{"data-orientation":i,...t?{role:"none"}:{"aria-orientation":"vertical"===i?i:void 0,role:"separator"},...n,ref:s})});n.displayName="Separator";var i=t(22250);let c=a.forwardRef((e,s)=>{let{className:t,orientation:a="horizontal",decorative:l=!0,...d}=e;return(0,r.jsx)(n,{ref:s,decorative:l,orientation:a,className:(0,i.cn)("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",t),...d})});c.displayName=n.displayName},36760:(e,s,t)=>{"use strict";t.d(s,{E:()=>l});var r=t(20475),a=t(22250);function l(e){let{className:s,...t}=e;return(0,r.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-md bg-primary/10",s),...t})}}},e=>{var s=s=>e(e.s=s);e.O(0,[9980,7780,8885,7563,9464,6357,6810,4767,191,6035,7358],()=>s(15348)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/mtu/page-5e0e4fc07a70c0c6.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/mtu/page-5e0e4fc07a70c0c6.js new file mode 100644 index 0000000..509a2e5 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/mtu/page-5e0e4fc07a70c0c6.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3669],{27651:(e,t,r)=>{Promise.resolve().then(r.bind(r,34819))},34819:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var s=r(20475),n=r(20107),a=r(72167),i=r(64219),o=r(18861),l=r(42541),u=r(32857),c=r(114);let d=()=>{let[e,t]=(0,n.useState)("1500"),[r,d]=(0,n.useState)(!1),[f,p]=(0,n.useState)(!0),[m,h]=(0,n.useState)(""),v=(0,u.dj)();(0,n.useEffect)(()=>{(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/advance/mtu.sh"),r=await e.json();d(r.isEnabled),t(r.currentValue.toString()),p(!1)}catch(e){h("Failed to fetch MTU settings"),p(!1),v.toast({variant:"destructive",title:"Uh oh! Something went wrong.",description:"Failed to fetch MTU settings",action:(0,s.jsx)(c.A,{})})}})()},[]);let b=async t=>{t.preventDefault(),h("");let n=r?e:"disable";try{let e=await fetch("/cgi-bin/quecmanager/advance/mtu.sh",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"mtu=".concat(n)}),t=await e.json();!0===t.success?v.toast({title:"Success",description:t.message||"MTU settings saved successfully"}):v.toast({variant:"destructive",title:"Uh oh! Something went wrong.",description:t.error||"Failed to save MTU settings",action:(0,s.jsx)(c.A,{})})}catch(e){h("Failed to save MTU settings"),v.toast({variant:"destructive",title:"Uh oh! Something went wrong.",description:"Network error while saving MTU settings",action:(0,s.jsx)(c.A,{})})}};return(0,s.jsxs)(a.Zp,{children:[(0,s.jsxs)(a.aR,{children:[(0,s.jsx)(a.ZB,{children:"MTU Settings"}),(0,s.jsx)(a.BT,{children:"Configure MTU for rmnet_data0 interface."})]}),(0,s.jsx)(a.Wu,{children:(0,s.jsxs)("form",{onSubmit:b,className:"space-y-8",children:[(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-sm font-medium",children:"MTU Value"}),(0,s.jsx)(i.p,{type:"number",value:e,onChange:e=>t(e.target.value),disabled:!r,className:"mt-1",min:"68",max:"9000"}),(0,s.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Set the MTU value for your connection (default: 1500)."})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-base font-medium",children:"MTU State"}),(0,s.jsx)("p",{className:"text-sm text-gray-500",children:"Toggle to enable or disable custom MTU value."})]}),(0,s.jsx)(o.d,{checked:r,onCheckedChange:e=>{d(e),e||t("1500")}})]})]}),(0,s.jsx)(l.$,{type:"submit",className:"w-full",disabled:f,children:"Save Configuration"})]})})]})}},114:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var s=r(20475),n=r(42541),a=r(7197);let i=()=>(0,s.jsx)(n.$,{asChild:!0,variant:"outline",className:"ml-2",children:(0,s.jsxs)("a",{href:"https://github.com/iamromulan/quectel-rgmii-toolkit/tree/development-SDXPINN",children:[(0,s.jsx)(a.ERf,{className:"w-4 h-4 mr-2"}),"Get there!"]})})},42541:(e,t,r)=>{"use strict";r.d(t,{$:()=>u,r:()=>l});var s=r(20475),n=r(20107),a=r(61837),i=r(29395),o=r(22250);let l=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),u=n.forwardRef((e,t)=>{let{className:r,variant:n,size:i,asChild:u=!1,...c}=e,d=u?a.DX:"button";return(0,s.jsx)(d,{className:(0,o.cn)(l({variant:n,size:i,className:r})),ref:t,...c})});u.displayName="Button"},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>u,Wu:()=>c,ZB:()=>l,Zp:()=>i,aR:()=>o,wL:()=>d});var s=r(20475),n=r(20107),a=r(22250);let i=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)("div",{ref:t,className:(0,a.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...n})});i.displayName="Card";let o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",r),...n})});o.displayName="CardHeader";let l=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)("h3",{ref:t,className:(0,a.cn)("font-semibold leading-none tracking-tight",r),...n})});l.displayName="CardTitle";let u=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)("p",{ref:t,className:(0,a.cn)("text-sm text-muted-foreground",r),...n})});u.displayName="CardDescription";let c=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)("div",{ref:t,className:(0,a.cn)("p-6 pt-0",r),...n})});c.displayName="CardContent";let d=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex items-center p-6 pt-0",r),...n})});d.displayName="CardFooter"},64219:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var s=r(20475),n=r(20107),a=r(22250);let i=n.forwardRef((e,t)=>{let{className:r,type:n,...i}=e;return(0,s.jsx)("input",{type:n,className:(0,a.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...i})});i.displayName="Input"},18861:(e,t,r)=>{"use strict";r.d(t,{d:()=>o});var s=r(20475),n=r(20107),a=r(80982),i=r(22250);let o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,s.jsx)(a.bL,{className:(0,i.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",r),...n,ref:t,children:(0,s.jsx)(a.zi,{className:(0,i.cn)("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})});o.displayName=a.bL.displayName},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>f,oR:()=>d});var s=r(20107);let n=0,a=new Map,i=e=>{if(a.has(e))return;let t=setTimeout(()=>{a.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);a.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?i(r):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],u={toasts:[]};function c(e){u=o(u,e),l.forEach(e=>{e(u)})}function d(e){let{...t}=e,r=(n=(n+1)%Number.MAX_SAFE_INTEGER).toString(),s=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||s()}}}),{id:r,dismiss:s,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function f(){let[e,t]=s.useState(u);return s.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:d,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>a});var s=r(64901),n=r(868);function a(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";function s(e,t,{checkForDefaultPrevented:r=!0}={}){return function(s){if(e?.(s),!1===r||!s.defaultPrevented)return t?.(s)}}r.d(t,{m:()=>s})},45170:(e,t,r)=>{"use strict";r.d(t,{A:()=>i,q:()=>a});var s=r(20107),n=r(20475);function a(e,t){let r=s.createContext(t),a=e=>{let{children:t,...a}=e,i=s.useMemo(()=>a,Object.values(a));return(0,n.jsx)(r.Provider,{value:i,children:t})};return a.displayName=e+"Provider",[a,function(n){let a=s.useContext(r);if(a)return a;if(void 0!==t)return t;throw Error(`\`${n}\` must be used within \`${e}\``)}]}function i(e,t=[]){let r=[],a=()=>{let t=r.map(e=>s.createContext(e));return function(r){let n=r?.[e]||t;return s.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return a.scopeName=e,[function(t,a){let i=s.createContext(a),o=r.length;r=[...r,a];let l=t=>{let{scope:r,children:a,...l}=t,u=r?.[e]?.[o]||i,c=s.useMemo(()=>l,Object.values(l));return(0,n.jsx)(u.Provider,{value:c,children:a})};return l.displayName=t+"Provider",[l,function(r,n){let l=n?.[e]?.[o]||i,u=s.useContext(l);if(u)return u;if(void 0!==a)return a;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:s})=>{let n=r(e)[`__scope${s}`];return{...t,...n}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(a,...t)]}},34544:(e,t,r)=>{"use strict";r.d(t,{hO:()=>l,sG:()=>o});var s=r(20107),n=r(25642),a=r(61837),i=r(20475),o=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=s.forwardRef((e,r)=>{let{asChild:s,...n}=e,o=s?a.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.jsx)(o,{...n,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function l(e,t){e&&n.flushSync(()=>e.dispatchEvent(t))}},80982:(e,t,r)=>{"use strict";r.d(t,{bL:()=>N,zi:()=>j});var s=r(20107),n=r(94521),a=r(64236),i=r(45170),o=r(13061),l=r(65163),u=r(63620),c=r(34544),d=r(20475),f="Switch",[p,m]=(0,i.A)(f),[h,v]=p(f),b=s.forwardRef((e,t)=>{let{__scopeSwitch:r,name:i,checked:l,defaultChecked:u,required:f,disabled:p,value:m="on",onCheckedChange:v,form:b,...g}=e,[x,N]=s.useState(null),j=(0,a.s)(t,e=>N(e)),S=s.useRef(!1),T=!x||b||!!x.closest("form"),[k=!1,A]=(0,o.i)({prop:l,defaultProp:u,onChange:v});return(0,d.jsxs)(h,{scope:r,checked:k,disabled:p,children:[(0,d.jsx)(c.sG.button,{type:"button",role:"switch","aria-checked":k,"aria-required":f,"data-state":w(k),"data-disabled":p?"":void 0,disabled:p,value:m,...g,ref:j,onClick:(0,n.m)(e.onClick,e=>{A(e=>!e),T&&(S.current=e.isPropagationStopped(),S.current||e.stopPropagation())})}),T&&(0,d.jsx)(y,{control:x,bubbles:!S.current,name:i,value:m,checked:k,required:f,disabled:p,form:b,style:{transform:"translateX(-100%)"}})]})});b.displayName=f;var g="SwitchThumb",x=s.forwardRef((e,t)=>{let{__scopeSwitch:r,...s}=e,n=v(g,r);return(0,d.jsx)(c.sG.span,{"data-state":w(n.checked),"data-disabled":n.disabled?"":void 0,...s,ref:t})});x.displayName=g;var y=e=>{let{control:t,checked:r,bubbles:n=!0,...a}=e,i=s.useRef(null),o=(0,l.Z)(r),c=(0,u.X)(t);return s.useEffect(()=>{let e=i.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(o!==r&&t){let s=new Event("click",{bubbles:n});t.call(e,r),e.dispatchEvent(s)}},[o,r,n]),(0,d.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function w(e){return e?"checked":"unchecked"}var N=b,j=x},46774:(e,t,r)=>{"use strict";r.d(t,{c:()=>n});var s=r(20107);function n(e){let t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>(...e)=>t.current?.(...e),[])}},13061:(e,t,r)=>{"use strict";r.d(t,{i:()=>a});var s=r(20107),n=r(46774);function a({prop:e,defaultProp:t,onChange:r=()=>{}}){let[a,i]=function({defaultProp:e,onChange:t}){let r=s.useState(e),[a]=r,i=s.useRef(a),o=(0,n.c)(t);return s.useEffect(()=>{i.current!==a&&(o(a),i.current=a)},[a,i,o]),r}({defaultProp:t,onChange:r}),o=void 0!==e,l=o?e:a,u=(0,n.c)(r);return[l,s.useCallback(t=>{if(o){let r="function"==typeof t?t(e):t;r!==e&&u(r)}else i(t)},[o,e,i,u])]}},54122:(e,t,r)=>{"use strict";r.d(t,{N:()=>n});var s=r(20107),n=globalThis?.document?s.useLayoutEffect:()=>{}},65163:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});var s=r(20107);function n(e){let t=s.useRef({value:e,previous:e});return s.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},63620:(e,t,r)=>{"use strict";r.d(t,{X:()=>a});var s=r(20107),n=r(54122);function a(e){let[t,r]=s.useState(void 0);return(0,n.N)(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let s,n;if(!Array.isArray(t)||!t.length)return;let a=t[0];if("borderBoxSize"in a){let e=a.borderBoxSize,t=Array.isArray(e)?e[0]:e;s=t.inlineSize,n=t.blockSize}else s=e.offsetWidth,n=e.offsetHeight;r({width:s,height:n})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}},29395:(e,t,r)=>{"use strict";r.d(t,{F:()=>a});let s=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,n=function(){for(var e,t,r=0,s="";rr=>{var a;if((null==t?void 0:t.variants)==null)return n(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:i,defaultVariants:o}=t,l=Object.keys(i).map(e=>{let t=null==r?void 0:r[e],n=null==o?void 0:o[e];if(null===t)return null;let a=s(t)||s(n);return i[e][a]}),u=r&&Object.entries(r).reduce((e,t)=>{let[r,s]=t;return void 0===s||(e[r]=s),e},{});return n(e,l,null==t?void 0:null===(a=t.compoundVariants)||void 0===a?void 0:a.reduce((e,t)=>{let{class:r,className:s,...n}=t;return Object.entries(n).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...o,...u}[t]):({...o,...u})[t]===r})?[...e,r,s]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,191,6035,7358],()=>t(27651)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/ttl-settings/page-ab307137ee0a2790.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/ttl-settings/page-ab307137ee0a2790.js new file mode 100644 index 0000000..bd21eb5 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/advanced-settings/ttl-settings/page-ab307137ee0a2790.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4481],{70465:(e,t,s)=>{Promise.resolve().then(s.bind(s,83143))},83143:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>f});var r=s(20475),a=s(20107),n=s(72167),i=s(64219),o=s(18861),l=s(42541),d=s(32857),c=s(49573),u=s(29475);let f=()=>{let[e,t]=(0,a.useState)("0"),[s,f]=(0,a.useState)(!1),[g,m]=(0,a.useState)(!0),[p,h]=(0,a.useState)(""),[v,x]=(0,a.useState)(""),[b,T]=(0,a.useState)(null),[y,w]=(0,a.useState)(!1),{toast:j}=(0,d.dj)();(0,a.useEffect)(()=>{(async()=>{m(!0);try{let e=await fetch("/cgi-bin/quecmanager/advance/ttl.sh");if(!e.ok)throw Error("Failed to fetch TTL settings: ".concat(e.statusText));let s=await e.json(),r=await fetch("/cgi-bin/quecmanager/profiles/check_status.sh");if(!r.ok)throw Error("Failed to fetch profile status: ".concat(r.statusText));let a=await r.json();console.log("TTL Data:",s),console.log("Profile Status:",a);let n=!1,i=s.currentValue.toString(),o=s.isEnabled;if("success"===a.status&&a.profile&&"unknown"!==a.profile&&"none"!==a.profile){let e=await fetch("/cgi-bin/quecmanager/profiles/list_profiles.sh");if(e.ok){let t=await e.json();if("success"===t.status&&Array.isArray(t.profiles)){let e=t.profiles.find(e=>e.name===a.profile);e&&e.ttl&&parseInt(e.ttl)>0&&(T(e),n=!0,i=e.ttl,o=!0)}}}t(i),f(o),w(n)}catch(e){console.error("Error fetching data:",e),h(e instanceof Error?e.message:"Failed to fetch TTL settings"),j({variant:"destructive",title:"Error fetching settings",description:e instanceof Error?e.message:"Failed to fetch TTL settings"})}finally{m(!1)}})()},[]);let N=async t=>{t.preventDefault(),h(""),x("");let r=s?e:"0";try{let e=await fetch("/cgi-bin/quecmanager/advance/ttl.sh",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"ttl=".concat(r)});if(!e.ok)throw Error("HTTP error! Status: ".concat(e.status));let t=await e.json();if(!0===t.success)x("Settings saved successfully"),j({title:"Success",description:"TTL settings saved successfully"});else throw Error(t.error||"Failed to save settings")}catch(e){h(e instanceof Error?e.message:"Failed to save settings"),j({variant:"destructive",title:"Error saving settings",description:e instanceof Error?e.message:"Failed to save TTL settings"})}};return(0,r.jsxs)(n.Zp,{children:[(0,r.jsxs)(n.aR,{children:[(0,r.jsx)(n.ZB,{children:"TTL Settings"}),(0,r.jsx)(n.BT,{children:"Configure TTL mangling for your connection."})]}),(0,r.jsxs)(n.Wu,{children:[y&&b&&(0,r.jsxs)(c.Fc,{className:"mb-6",children:[(0,r.jsx)(u.A,{className:"h-4 w-4",color:"orange"}),(0,r.jsx)(c.XL,{children:"Profile Controlled"}),(0,r.jsxs)(c.TN,{children:['TTL is currently being managed by profile "',b.name,'".']})]}),p&&(0,r.jsxs)(c.Fc,{variant:"destructive",className:"mb-6",children:[(0,r.jsx)(c.XL,{children:"Error"}),(0,r.jsx)(c.TN,{children:p})]}),v&&(0,r.jsxs)(c.Fc,{className:"mb-6",children:[(0,r.jsx)(c.XL,{children:"Success"}),(0,r.jsx)(c.TN,{children:v})]}),(0,r.jsxs)("form",{onSubmit:N,className:"space-y-8",children:[(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-sm font-medium",children:"TTL Value"}),(0,r.jsx)(i.p,{type:"number",min:"0",max:"255",value:e,onChange:e=>t(e.target.value),disabled:!s||y||g,className:"mt-1"}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Set the TTL value for your connection (0-255)."})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-base font-medium",children:"TTL State"}),(0,r.jsx)("p",{className:"text-sm text-gray-500",children:"Toggle to enable or disable TTL mangling"})]}),(0,r.jsx)(o.d,{checked:s,onCheckedChange:f,disabled:y||g})]})]}),(0,r.jsx)(l.$,{type:"submit",className:"w-full",disabled:g||y,children:"Save Configuration"})]})]})]})}},49573:(e,t,s)=>{"use strict";s.d(t,{Fc:()=>l,TN:()=>c,XL:()=>d});var r=s(20475),a=s(20107),n=s(29395),i=s(22250);let o=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),l=a.forwardRef((e,t)=>{let{className:s,variant:a,...n}=e;return(0,r.jsx)("div",{ref:t,role:"alert",className:(0,i.cn)(o({variant:a}),s),...n})});l.displayName="Alert";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h5",{ref:t,className:(0,i.cn)("mb-1 font-medium leading-none tracking-tight",s),...a})});d.displayName="AlertTitle";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,i.cn)("text-sm [&_p]:leading-relaxed",s),...a})});c.displayName="AlertDescription"},42541:(e,t,s)=>{"use strict";s.d(t,{$:()=>d,r:()=>l});var r=s(20475),a=s(20107),n=s(61837),i=s(29395),o=s(22250);let l=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=a.forwardRef((e,t)=>{let{className:s,variant:a,size:i,asChild:d=!1,...c}=e,u=d?n.DX:"button";return(0,r.jsx)(u,{className:(0,o.cn)(l({variant:a,size:i,className:s})),ref:t,...c})});d.displayName="Button"},72167:(e,t,s)=>{"use strict";s.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>l,Zp:()=>i,aR:()=>o,wL:()=>u});var r=s(20475),a=s(20107),n=s(22250);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",s),...a})});i.displayName="Card";let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",s),...a})});o.displayName="CardHeader";let l=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,n.cn)("font-semibold leading-none tracking-tight",s),...a})});l.displayName="CardTitle";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",s),...a})});d.displayName="CardDescription";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",s),...a})});c.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",s),...a})});u.displayName="CardFooter"},64219:(e,t,s)=>{"use strict";s.d(t,{p:()=>i});var r=s(20475),a=s(20107),n=s(22250);let i=a.forwardRef((e,t)=>{let{className:s,type:a,...i}=e;return(0,r.jsx)("input",{type:a,className:(0,n.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...i})});i.displayName="Input"},18861:(e,t,s)=>{"use strict";s.d(t,{d:()=>o});var r=s(20475),a=s(20107),n=s(80982),i=s(22250);let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.bL,{className:(0,i.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",s),...a,ref:t,children:(0,r.jsx)(n.zi,{className:(0,i.cn)("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})});o.displayName=n.bL.displayName},32857:(e,t,s)=>{"use strict";s.d(t,{dj:()=>f,oR:()=>u});var r=s(20107);let a=0,n=new Map,i=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?i(s):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],d={toasts:[]};function c(e){d=o(d,e),l.forEach(e=>{e(d)})}function u(e){let{...t}=e,s=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>c({type:"DISMISS_TOAST",toastId:s});return c({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||r()}}}),{id:s,dismiss:r,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function f(){let[e,t]=r.useState(d);return r.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,s)=>{"use strict";s.d(t,{cn:()=>n});var r=s(64901),a=s(868);function n(){for(var e=arguments.length,t=Array(e),s=0;s{var t=t=>e(e.s=t);e.O(0,[7780,1630,191,6035,7358],()=>t(70465)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/band-locking/page-4ac8549e8d2ef493.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/band-locking/page-4ac8549e8d2ef493.js new file mode 100644 index 0000000..224ab30 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/band-locking/page-4ac8549e8d2ef493.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1942],{42554:(e,t,s)=>{Promise.resolve().then(s.bind(s,75808))},75808:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m});var a=s(20475),r=s(20107),o=s(72167),n=s(574),i=s(42541),l=s(32857),c=s(29475),d=s(91994),u=s(88926);let f={lte:"lte_band",nsa:"nsa_nr5g_band",sa:"nrdc_nr5g_band"},p={lte:"lte_band",nsa:"nsa_nr5g_band",sa:"nr5g_band"},m=()=>{let{toast:e}=(0,l.dj)(),[t,s]=(0,r.useState)({lte:[],nsa:[],sa:[]}),[m,h]=(0,r.useState)({lte:[],nsa:[],sa:[]}),[v,g]=(0,r.useState)(!0),[b,w]=(0,r.useState)(null),[x,N]=(0,r.useState)({lte:!1,nsa:!1,sa:!1}),y=(e,t,s)=>{let a=e.split("\n"),r=s?f[t]:p[t];for(let e of a){let t='"'.concat(r,'"');if(e.includes(t)){let t=e.match(/\"[^\"]+\",(.+)/);if(t&&t[1])return t[1].trim().split(":").map(Number).filter(e=>!isNaN(e))}}return[]};(0,r.useEffect)(()=>{(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/profiles/check_status.sh");if(!e.ok)throw Error("Failed to fetch profile status: ".concat(e.statusText));let t=await e.json();if(console.log("Profile Status:",t),"success"===t.status&&t.profile&&"unknown"!==t.profile&&"none"!==t.profile){let e=await fetch("/cgi-bin/quecmanager/profiles/list_profiles.sh");if(e.ok){let s=await e.json();if("success"===s.status&&Array.isArray(s.profiles)){let e=s.profiles.find(e=>e.name===t.profile);if(e){w(e);let t={lte:!!e.lte_bands,nsa:!!e.nsa_nr5g_bands,sa:!!e.sa_nr5g_bands};N(t),console.log("Active Profile:",e),console.log("Controlled Bands:",t)}}}}else w(null),N({lte:!1,nsa:!1,sa:!1})}catch(e){console.error("Error fetching profile data:",e)}})()},[]);let _=async()=>{try{let e=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=7");if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));let t=await e.json(),a=t[0].response,r={lte:y(a,"lte",!0),nsa:y(a,"nsa",!0),sa:y(a,"sa",!0)};s(r);let o=t[1].response,n={lte:y(o,"lte",!1),nsa:y(o,"nsa",!1),sa:y(o,"sa",!1)};h(n),g(!1)}catch(t){console.error("Error fetching bands:",t),e({title:"Error",description:"Failed to fetch bands data.",variant:"destructive"}),g(!1)}};(0,r.useEffect)(()=>{_()},[]),(0,r.useEffect)(()=>{if(b){let e={...m},t=!1;if(x.lte&&b.lte_bands){let s=b.lte_bands.split(",").map(Number).filter(e=>!isNaN(e));e.lte=s,t=!0}if(x.nsa&&b.nsa_nr5g_bands){let s=b.nsa_nr5g_bands.split(",").map(Number).filter(e=>!isNaN(e));e.nsa=s,t=!0}if(x.sa&&b.sa_nr5g_bands){let s=b.sa_nr5g_bands.split(",").map(Number).filter(e=>!isNaN(e));e.sa=s,t=!0}t&&h(e)}},[b,x]);let j=(e,t)=>{x[e]||h(s=>({...s,[e]:s[e].includes(t)?s[e].filter(e=>e!==t):[...s[e],t].sort((e,t)=>e-t)}))},E=async s=>{if(x[s]){e({title:"Profile Controlled",description:"".concat(s.toUpperCase(),' bands are currently managed by profile "').concat(null==b?void 0:b.name,'"'),variant:"destructive"});return}try{var a,r,o,n,i,l,c,d;let f=m[s].join(":");if("nsa"===s){let e=m.sa.join(":"),s=await (0,u.a)('AT+QNWPREFCFG="'.concat(p.nsa,'",').concat(f),!0);if((null===(a=s.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(r=s.response)||void 0===r?void 0:r.raw_output)||"Failed to lock NSA bands");if(e){let t=await (0,u.a)('AT+QNWPREFCFG="'.concat(p.sa,'",').concat(e),!0);if((null===(o=t.response)||void 0===o?void 0:o.status)!=="success")throw Error((null===(n=t.response)||void 0===n?void 0:n.raw_output)||"Failed to restore SA bands")}else{let e=t.sa.join(":"),s=await (0,u.a)('AT+QNWPREFCFG="'.concat(p.sa,'",').concat(e),!0);if((null===(i=s.response)||void 0===i?void 0:i.status)!=="success")throw Error((null===(l=s.response)||void 0===l?void 0:l.raw_output)||"Failed to set default SA bands")}h(s=>({...s,nsa:m.nsa,sa:e?m.sa:t.sa}))}else{let e=await (0,u.a)('AT+QNWPREFCFG="'.concat(p[s],'",').concat(f),!0);if((null===(c=e.response)||void 0===c?void 0:c.status)!=="success")throw Error((null===(d=e.response)||void 0===d?void 0:d.raw_output)||"Failed to lock ".concat(s.toUpperCase()," bands"));h(e=>({...e,[s]:m[s]}))}e({title:"Band Locking",description:"Bands locked successfully."}),setTimeout(_,1e3)}catch(a){let t=a instanceof Error?a.message:"Unknown error";console.error("Error locking ".concat(s," bands:"),a),e({title:"Error",description:"Failed to lock ".concat(s.toUpperCase()," bands: ").concat(t),variant:"destructive"})}},T=e=>{x[e]||h(t=>({...t,[e]:[]}))},A=async s=>{if(x[s]){e({title:"Profile Controlled",description:"".concat(s.toUpperCase(),' bands are currently managed by profile "').concat(null==b?void 0:b.name,'"'),variant:"destructive"});return}try{var a,r,o,n,i,l;let c=t[s].join(":");if("nsa"===s){let e=await (0,u.a)('AT+QNWPREFCFG="'.concat(p.nsa,'",').concat(c),!0);if((null===(a=e.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(r=e.response)||void 0===r?void 0:r.raw_output)||"Failed to reset NSA bands");let t=m.sa.join(":");if(t){let e=await (0,u.a)('AT+QNWPREFCFG="'.concat(p.sa,'",').concat(t),!0);if((null===(o=e.response)||void 0===o?void 0:o.status)!=="success")throw Error((null===(n=e.response)||void 0===n?void 0:n.raw_output)||"Failed to preserve SA bands")}}else{let e=await (0,u.a)('AT+QNWPREFCFG="'.concat(p[s],'",').concat(c),!0);if((null===(i=e.response)||void 0===i?void 0:i.status)!=="success")throw Error((null===(l=e.response)||void 0===l?void 0:l.raw_output)||"Failed to reset ".concat(s.toUpperCase()," bands"))}e({title:"Reset Successful",description:"".concat(s.toUpperCase()," bands reset to default.")}),await _()}catch(a){let t=a instanceof Error?a.message:"Unknown error";console.error("Error resetting ".concat(s," bands:"),a),e({title:"Error",description:"Failed to reset ".concat(s.toUpperCase()," bands: ").concat(t),variant:"destructive"})}},S=e=>{let{title:s,description:r,bandType:l,prefix:u,isProfileControlled:f,profileName:p}=e;return(0,a.jsxs)(o.Zp,{children:[(0,a.jsx)(o.aR,{children:(0,a.jsxs)("div",{className:"flex justify-between items-start",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(o.ZB,{children:s}),(0,a.jsx)(o.BT,{children:r})]}),f&&(0,a.jsxs)("div",{className:"flex items-center gap-1 text-xs font-medium px-2 py-1 rounded-md bg-slate-100 dark:bg-slate-800",children:[(0,a.jsx)(c.A,{className:"h-3 w-3",color:"orange"}),(0,a.jsxs)("span",{children:["Profile Controlled by ",p]})]})]})}),(0,a.jsx)(o.Wu,{className:"grid lg:grid-cols-8 md:grid-cols-6 sm:grid-cols-4 grid-cols-3 grid-flow-row gap-4",children:v?(0,a.jsx)("div",{className:"col-span-8",children:"Fetching bands..."}):t[l].map(e=>(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(n.S,{id:"".concat(l,"-").concat(e),checked:m[l].includes(e),onCheckedChange:()=>j(l,e),disabled:f,className:f?"cursor-not-allowed opacity-60":""}),(0,a.jsxs)("label",{htmlFor:"".concat(l,"-").concat(e),className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 ".concat(f?"cursor-not-allowed opacity-60":""),children:[u,e]})]},e))}),(0,a.jsxs)(o.wL,{className:"border-t py-4 grid grid-flow-row md:grid-cols-3 grid-cols-1 gap-3",children:[(0,a.jsxs)(i.$,{onClick:()=>E(l),disabled:f,children:[(0,a.jsx)(c.A,{className:"h-4 w-4"}),"Lock Selected Bands"]}),(0,a.jsx)(i.$,{variant:"secondary",onClick:()=>T(l),disabled:f,children:"Uncheck All"}),(0,a.jsxs)(i.$,{variant:"secondary",onClick:()=>A(l),disabled:f,children:[(0,a.jsx)(d.A,{className:"h-4 w-4"}),"Reset to Default"]})]})]})};return(0,a.jsxs)("div",{className:"grid gap-6",children:[(0,a.jsx)(S,{title:"4G LTE Band Locking",description:"Lock the device to specific LTE bands.",bandType:"lte",prefix:"B",isProfileControlled:x.lte,profileName:(null==b?void 0:b.name)||""}),(0,a.jsx)(S,{title:"NR5G-NSA Band Locking",description:"Lock the device to specific NR5G-NSA bands.",bandType:"nsa",prefix:"N",isProfileControlled:x.nsa,profileName:(null==b?void 0:b.name)||""}),(0,a.jsx)(S,{title:"NR5G-SA Band Locking",description:"Lock the device to specific NR5G-SA bands.",bandType:"sa",prefix:"N",isProfileControlled:x.sa,profileName:(null==b?void 0:b.name)||""})]})}},42541:(e,t,s)=>{"use strict";s.d(t,{$:()=>c,r:()=>l});var a=s(20475),r=s(20107),o=s(61837),n=s(29395),i=s(22250);let l=(0,n.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),c=r.forwardRef((e,t)=>{let{className:s,variant:r,size:n,asChild:c=!1,...d}=e,u=c?o.DX:"button";return(0,a.jsx)(u,{className:(0,i.cn)(l({variant:r,size:n,className:s})),ref:t,...d})});c.displayName="Button"},72167:(e,t,s)=>{"use strict";s.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>l,Zp:()=>n,aR:()=>i,wL:()=>u});var a=s(20475),r=s(20107),o=s(22250);let n=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("rounded-xl border bg-card text-card-foreground shadow",s),...r})});n.displayName="Card";let i=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("flex flex-col space-y-1.5 p-6",s),...r})});i.displayName="CardHeader";let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("h3",{ref:t,className:(0,o.cn)("font-semibold leading-none tracking-tight",s),...r})});l.displayName="CardTitle";let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("p",{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",s),...r})});c.displayName="CardDescription";let d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("p-6 pt-0",s),...r})});d.displayName="CardContent";let u=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("flex items-center p-6 pt-0",s),...r})});u.displayName="CardFooter"},574:(e,t,s)=>{"use strict";s.d(t,{S:()=>l});var a=s(20475),r=s(20107),o=s(32713),n=s(7197),i=s(22250);let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(o.bL,{ref:t,className:(0,i.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",s),...r,children:(0,a.jsx)(o.C1,{className:(0,i.cn)("flex items-center justify-center text-current"),children:(0,a.jsx)(n.Srz,{className:"h-4 w-4"})})})});l.displayName=o.bL.displayName},32857:(e,t,s)=>{"use strict";s.d(t,{dj:()=>f,oR:()=>u});var a=s(20107);let r=0,o=new Map,n=e=>{if(o.has(e))return;let t=setTimeout(()=>{o.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);o.set(e,t)},i=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?n(s):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],c={toasts:[]};function d(e){c=i(c,e),l.forEach(e=>{e(c)})}function u(e){let{...t}=e,s=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>d({type:"DISMISS_TOAST",toastId:s});return d({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||a()}}}),{id:s,dismiss:a,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function f(){let[e,t]=a.useState(c);return a.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,s)=>{"use strict";s.d(t,{cn:()=>o});var a=s(64901),r=s(868);function o(){for(var e=arguments.length,t=Array(e),s=0;s{"use strict";s.d(t,{a:()=>a});let a=async function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;try{var a;let r=e.trim().toUpperCase().startsWith("AT")?e.trim():"AT".concat(e.trim()),o=encodeURIComponent(r),n="/cgi-bin/quecmanager/at_cmd/at_queue_client.sh?command=".concat(o);t&&(n+="&wait=1&timeout=".concat(s));let i=await fetch(n,{method:"GET",headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e3*s+5e3)});if(!i.ok)throw Error("AT command failed with status: ".concat(i.status));let l=await i.json();if(l.error)throw Error("AT queue error: ".concat(l.error));if(t&&(null===(a=l.response)||void 0===a?void 0:a.status)==="timeout")throw Error("AT command timed out after ".concat(s," seconds"));return l}catch(e){throw console.error("AT Command error:",e),e}}}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,2494,191,6035,7358],()=>t(42554)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/basic-settings/page-d418fac46daf507e.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/basic-settings/page-d418fac46daf507e.js new file mode 100644 index 0000000..97fdf7c --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/basic-settings/page-d418fac46daf507e.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2545],{58669:(e,t,r)=>{Promise.resolve().then(r.bind(r,46142))},46142:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>v});var s=r(20475),a=r(20107),n=r(72167),l=r(35601),i=r(42541),o=r(64219),d=r(49153),c=r(36760),u=r(32857),p=r(49573),f=r(29475);let m=()=>{let[e,t]=(0,a.useState)(null),[r,s]=(0,a.useState)(!0),n=(0,a.useCallback)(async()=>{try{s(!0),t(null);let e=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=2"),r=await e.json();console.log("Fetched cell settings data:",r);let a={currentAPN:h(r[0].response,r[1].response),apnPDPType:g(r[0].response),preferredNetworkType:x(r[2].response),nr5gMode:y(r[3].response),simSlot:N(r[4].response),cfunState:r[5].response.split(",")[1].replace(/"/g,"")};t(a),console.log("Processed cell settings data:",a)}catch(e){console.error("Error fetching cell settings data:",e)}s(!1)},[]);return(0,a.useEffect)(()=>{n()},[n]),{data:e,isLoading:r,fetchCellSettingsData:n}},h=(e,t)=>{var r,s;let a=null===(r=e.split("\n").find(e=>e.includes("+CGDCONT: 1")))||void 0===r?void 0:r.split(",")[2].replace(/"/g,"");if(void 0===a||""===a){let e=null===(s=t.split("\n").find(e=>e.includes("+CGCONTRDP:")))||void 0===s?void 0:s.split(",")[2].replace(/"/g,"");return void 0===e||""===e?"No APN found":e}return a},g=e=>{var t;let r=null===(t=e.split("\n").find(e=>e.includes("+CGDCONT: 1")))||void 0===t?void 0:t.split(",")[1].replace(/"/g,"");return void 0===r||""===r?"Error fetching PDP Type":r},x=e=>{var t;let r=null===(t=e.split("\n").find(e=>e.includes('+QNWPREFCFG: "mode_pref"')))||void 0===t?void 0:t.split(",")[1].replace(/"/g,"");return void 0===r||""===r?"Error fetching network type":r},y=e=>{var t;let r=null===(t=e.split("\n").find(e=>e.includes('+QNWPREFCFG: "nr5g_disable_mode"')))||void 0===t?void 0:t.split(",")[1].replace(/"/g,"");return void 0===r||""===r?"Error fetching NR5G mode":r},N=e=>{var t;let r=null===(t=e.split("\n").find(e=>e.includes("+QUIMSLOT:")))||void 0===t?void 0:t.split(":")[1].trim();return void 0===r||""===r?"Error fetching SIM slot":r},v=()=>{let{toast:e}=(0,u.dj)(),{data:t,isLoading:r,fetchCellSettingsData:h}=m(),[g,x]=(0,a.useState)(!1),[y,N]=(0,a.useState)(!1),[v,w]=(0,a.useState)(null),[j,P]=(0,a.useState)(null),[b,T]=(0,a.useState)({currentAPN:!1,apnPDPType:!1,preferredNetworkType:!1,nr5gMode:!1}),[S,A]=(0,a.useState)({currentAPN:"",apnPDPType:"",preferredNetworkType:"",nr5gMode:"",simSlot:"",cfunState:""});(0,a.useEffect)(()=>{t&&!y&&(A({currentAPN:String(t.currentAPN||""),apnPDPType:String(t.apnPDPType||""),preferredNetworkType:String(t.preferredNetworkType||""),nr5gMode:String(t.nr5gMode||""),simSlot:String(t.simSlot||""),cfunState:String(t.cfunState||"")}),N(!0))},[t,y]),(0,a.useEffect)(()=>{(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/profiles/check_status.sh");if(!e.ok)throw Error("Failed to fetch profile status: ".concat(e.statusText));let t=await e.json();if(P(t),console.log("Profile Status:",t),"success"===t.status&&t.profile&&"unknown"!==t.profile&&"none"!==t.profile){let e=await fetch("/cgi-bin/quecmanager/profiles/list_profiles.sh");if(e.ok){let r=await e.json();if("success"===r.status&&Array.isArray(r.profiles)){let e=r.profiles.find(e=>e.name===t.profile);if(e){w(e);let t={currentAPN:!!e.apn,apnPDPType:!!e.pdp_type,preferredNetworkType:!!e.network_type,nr5gMode:!!(e.sa_nr5g_bands||e.nsa_nr5g_bands)};T(t),console.log("Active Profile:",e),console.log("Controlled Fields:",t)}}}}else w(null),T({currentAPN:!1,apnPDPType:!1,preferredNetworkType:!1,nr5gMode:!1})}catch(e){console.error("Error fetching profile data:",e)}})()},[]),(0,a.useEffect)(()=>{t||N(!1)},[t]);let k=e=>{let t=[];if((e.currentAPN||e.apnPDPType)&&!b.currentAPN&&!b.apnPDPType){let r=e.apnPDPType||S.apnPDPType,s=e.currentAPN||S.currentAPN;t.push('AT+CGDCONT=1,"'.concat(r,'","').concat(s,'"'))}if(e.preferredNetworkType&&!b.preferredNetworkType){let r='+QNWPREFCFG="mode_pref",'.concat(e.preferredNetworkType);t.push(0===t.length?"AT".concat(r):r)}if(e.nr5gMode&&!b.nr5gMode){let r='+QNWPREFCFG="nr5g_disable_mode",'.concat(e.nr5gMode);t.push(0===t.length?"AT".concat(r):r)}if(e.simSlot){let r="+QUIMSLOT=".concat(e.simSlot,";+COPS=2;+COPS=0");t.push(0===t.length?"AT".concat(r):r)}if(e.cfunState){let r="+CFUN=".concat(e.cfunState);t.push(0===t.length?"AT".concat(r):r)}return t.join(";")},R=(e,t)=>{b[e]||A(r=>({...r,[e]:t}))},C=async()=>{try{let t=await fetch("/cgi-bin/quecmanager/settings/force-rerun.sh"),r=await t.json();if("success"===r.status)e({title:"Scripts Restarted",description:"Scripts have been restarted successfully"});else if("info"===r.status)e({title:"Info",description:"No scripts were found to restart"});else throw Error("Failed to restart scripts")}catch(t){console.error("Error rerunning scripts:",t),e({variant:"destructive",title:"Script Restart Failed",description:"Failed to restart the required scripts"})}},E=async e=>{let t=encodeURIComponent(e),r=await fetch("/cgi-bin/quecmanager/at_cmd/at_queue_client?command=".concat(t,"&wait=1"));if(!r.ok)throw Error("HTTP error! status: ".concat(r.status));let s=await r.json();if("error"===s.response.status||"timeout"===s.response.status)throw Error(s.response.raw_output||"Command execution ".concat(s.response.status));return"success"===s.response.status},_=async r=>{r.preventDefault(),x(!0);try{let r={};if(Object.keys(S).forEach(e=>{S[e]===(null==t?void 0:t[e])||b[e]||(r[e]=S[e])}),0===Object.keys(r).length){e({title:"No changes detected",description:"Try changing some settings before saving"}),x(!1);return}let s=k(r);s&&await E(s),await new Promise(e=>setTimeout(e,1500)),await h(),N(!1),e({title:"Settings saved!",description:"The settings have been saved successfully",duration:3e3}),r.simSlot&&setTimeout(()=>{C()},3100)}catch(t){console.error("Error saving settings:",t),e({variant:"destructive",title:"Failed to save settings!",description:t instanceof Error?t.message:"An error occurred while saving the settings"})}finally{x(!1)}};return(0,s.jsx)("div",{className:"grid grid-cols-1 grid-flow-row gap-8",children:(0,s.jsx)(n.Zp,{children:(0,s.jsxs)("form",{onSubmit:_,children:[(0,s.jsxs)(n.aR,{children:[(0,s.jsx)(n.ZB,{children:"Network Settings"}),(0,s.jsx)(n.BT,{children:"Change the network settings of the device."})]}),(0,s.jsxs)(n.Wu,{children:[v&&Object.values(b).some(e=>e)&&(0,s.jsxs)(p.Fc,{className:"mb-6",children:[(0,s.jsx)(f.A,{className:"h-4 w-4",color:"orange"}),(0,s.jsx)(p.XL,{children:"Profile Controlled Settings"}),(0,s.jsxs)(p.TN,{children:['Some settings are currently being managed by profile "',v.name,'".']})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 grid-flow-row gap-6",children:[(0,s.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,s.jsxs)(d.J,{htmlFor:"APN",children:["Current APN",b.currentAPN&&(0,s.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:"(Profile Controlled)"})]}),r?(0,s.jsx)(c.E,{className:"h-8"}):(0,s.jsx)(o.p,{type:"text",id:"APN",placeholder:"Current APN",value:b.currentAPN&&v?v.apn:S.currentAPN,onChange:e=>R("currentAPN",e.target.value),disabled:b.currentAPN||r,className:b.currentAPN?"bg-muted cursor-not-allowed":""})]}),(0,s.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,s.jsxs)(d.J,{htmlFor:"APN",children:["APN PDP Type",b.apnPDPType&&(0,s.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:"(Profile Controlled)"})]}),r?(0,s.jsx)(c.E,{className:"h-8"}):(0,s.jsxs)(l.l6,{value:b.apnPDPType&&v?v.pdp_type:S.apnPDPType,onValueChange:e=>R("apnPDPType",e),disabled:b.apnPDPType||r,children:[(0,s.jsx)(l.bq,{className:b.apnPDPType?"bg-muted cursor-not-allowed":"",children:(0,s.jsx)(l.yv,{children:(b.apnPDPType&&v?v.pdp_type:S.apnPDPType)?(e=>({IP:"IPv4 Only",IPV6:"IPv6 Only",IPV4V6:"IPv4 and IPv6",P2P:"P2P Protocol"})[e]||e)(b.apnPDPType&&v?v.pdp_type:S.apnPDPType):"Select PDP Type"})}),(0,s.jsx)(l.gC,{children:(0,s.jsxs)(l.s3,{children:[(0,s.jsx)(l.TR,{children:"PDP Type"}),(0,s.jsx)(l.eb,{value:"IP",children:"IPv4 Only"}),(0,s.jsx)(l.eb,{value:"IPV6",children:"IPv6 Only"}),(0,s.jsx)(l.eb,{value:"IPV4V6",children:"IPv4 and IPv6"}),(0,s.jsx)(l.eb,{value:"P2P",children:"P2P Protocol"})]})})]},"pdp-type-".concat(b.apnPDPType&&v?v.pdp_type:S.apnPDPType))]}),(0,s.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,s.jsxs)(d.J,{children:["Preferred Network Type",b.preferredNetworkType&&(0,s.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:"(Profile Controlled)"})]}),r?(0,s.jsx)(c.E,{className:"h-8"}):(0,s.jsxs)(l.l6,{value:b.preferredNetworkType&&v?v.network_type:S.preferredNetworkType,onValueChange:e=>R("preferredNetworkType",e),disabled:b.preferredNetworkType||r,children:[(0,s.jsx)(l.bq,{className:b.preferredNetworkType?"bg-muted cursor-not-allowed":"",children:(0,s.jsx)(l.yv,{children:(b.preferredNetworkType&&v?v.network_type:S.preferredNetworkType)?(e=>({AUTO:"Automatic",LTE:"LTE Only","LTE:NR5G":"NR5G-NSA",NR5G:"NR5G-SA"})[e]||e)(b.preferredNetworkType&&v?v.network_type:S.preferredNetworkType):"Select Network Type"})}),(0,s.jsx)(l.gC,{children:(0,s.jsxs)(l.s3,{children:[(0,s.jsx)(l.TR,{children:"Preferred Network Type"}),(0,s.jsx)(l.eb,{value:"AUTO",children:"Automatic"}),(0,s.jsx)(l.eb,{value:"LTE",children:"LTE Only"}),(0,s.jsx)(l.eb,{value:"LTE:NR5G",children:"NR5G-NSA"}),(0,s.jsx)(l.eb,{value:"NR5G",children:"NR5G-SA"})]})})]},"network-type-".concat(b.preferredNetworkType&&v?v.network_type:S.preferredNetworkType))]}),(0,s.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,s.jsxs)(d.J,{children:["NR5G Mode Control",b.nr5gMode&&(0,s.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:"(Profile Controlled)"})]}),r?(0,s.jsx)(c.E,{className:"h-8"}):(0,s.jsxs)(l.l6,{value:S.nr5gMode,onValueChange:e=>R("nr5gMode",e),disabled:b.nr5gMode||r,children:[(0,s.jsx)(l.bq,{className:b.nr5gMode?"bg-muted cursor-not-allowed":"",children:(0,s.jsx)(l.yv,{children:S.nr5gMode?(e=>({0:"NR5G-SA and NSA Enabled",1:"NR5G-NSA Only",2:"NR5G-SA Only"})[e]||e)(S.nr5gMode):"Select NR5G Mode"})}),(0,s.jsx)(l.gC,{children:(0,s.jsxs)(l.s3,{children:[(0,s.jsx)(l.TR,{children:"NR5G Mode"}),(0,s.jsx)(l.eb,{value:"0",children:"NR5G-SA and NSA Enabled"}),(0,s.jsx)(l.eb,{value:"1",children:"NR5G-NSA Only"}),(0,s.jsx)(l.eb,{value:"2",children:"NR5G-SA Only"})]})})]},"nr5g-mode-".concat(S.nr5gMode))]}),(0,s.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,s.jsx)(d.J,{children:"U-SIM Slot Configuration"}),r?(0,s.jsx)(c.E,{className:"h-8"}):(0,s.jsxs)(l.l6,{value:S.simSlot,onValueChange:e=>R("simSlot",e),children:[(0,s.jsx)(l.bq,{children:(0,s.jsx)(l.yv,{children:S.simSlot?"U-SIM Slot ".concat(S.simSlot):"Select U-SIM Slot"})}),(0,s.jsx)(l.gC,{children:(0,s.jsxs)(l.s3,{children:[(0,s.jsx)(l.TR,{children:"U-SIM Slot"}),(0,s.jsx)(l.eb,{value:"1",children:"U-SIM Slot 1"}),(0,s.jsx)(l.eb,{value:"2",children:"U-SIM Slot 2"})]})})]},"sim-slot-".concat(S.simSlot))]}),(0,s.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,s.jsx)(d.J,{children:"Cellular Functionality"}),r?(0,s.jsx)(c.E,{className:"h-8"}):(0,s.jsxs)(l.l6,{value:S.cfunState,onValueChange:e=>R("cfunState",e),children:[(0,s.jsx)(l.bq,{children:(0,s.jsx)(l.yv,{children:S.cfunState?(e=>({0:"Minimum Functionality",1:"Full Functionality",4:"Disabled RX/TX"})[e]||e)(S.cfunState):"Select CFUN State"})}),(0,s.jsx)(l.gC,{children:(0,s.jsxs)(l.s3,{children:[(0,s.jsx)(l.TR,{children:"U-SIM Slot"}),(0,s.jsx)(l.eb,{value:"0",children:"Minimum Functionality"}),(0,s.jsx)(l.eb,{value:"1",children:"Full Functionality"}),(0,s.jsx)(l.eb,{value:"4",children:"Disabled RX/TX"})]})})]},"sim-slot-".concat(S.cfunState))]})]})]}),(0,s.jsx)(n.wL,{className:"grid border-t py-4",children:(0,s.jsx)(i.$,{type:"submit",disabled:g,children:g?"Saving...":"Save"})})]})})})}},49573:(e,t,r)=>{"use strict";r.d(t,{Fc:()=>o,TN:()=>c,XL:()=>d});var s=r(20475),a=r(20107),n=r(29395),l=r(22250);let i=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),o=a.forwardRef((e,t)=>{let{className:r,variant:a,...n}=e;return(0,s.jsx)("div",{ref:t,role:"alert",className:(0,l.cn)(i({variant:a}),r),...n})});o.displayName="Alert";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("h5",{ref:t,className:(0,l.cn)("mb-1 font-medium leading-none tracking-tight",r),...a})});d.displayName="AlertTitle";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("text-sm [&_p]:leading-relaxed",r),...a})});c.displayName="AlertDescription"},42541:(e,t,r)=>{"use strict";r.d(t,{$:()=>d,r:()=>o});var s=r(20475),a=r(20107),n=r(61837),l=r(29395),i=r(22250);let o=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=a.forwardRef((e,t)=>{let{className:r,variant:a,size:l,asChild:d=!1,...c}=e,u=d?n.DX:"button";return(0,s.jsx)(u,{className:(0,i.cn)(o({variant:a,size:l,className:r})),ref:t,...c})});d.displayName="Button"},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>o,Zp:()=>l,aR:()=>i,wL:()=>u});var s=r(20475),a=r(20107),n=r(22250);let l=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...a})});l.displayName="Card";let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...a})});i.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("h3",{ref:t,className:(0,n.cn)("font-semibold leading-none tracking-tight",r),...a})});o.displayName="CardTitle";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",r),...a})});d.displayName="CardDescription";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",r),...a})});c.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",r),...a})});u.displayName="CardFooter"},64219:(e,t,r)=>{"use strict";r.d(t,{p:()=>l});var s=r(20475),a=r(20107),n=r(22250);let l=a.forwardRef((e,t)=>{let{className:r,type:a,...l}=e;return(0,s.jsx)("input",{type:a,className:(0,n.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...l})});l.displayName="Input"},49153:(e,t,r)=>{"use strict";r.d(t,{J:()=>d});var s=r(20475),a=r(20107),n=r(21840),l=r(29395),i=r(22250);let o=(0,l.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(n.b,{ref:t,className:(0,i.cn)(o(),r),...a})});d.displayName=n.b.displayName},35601:(e,t,r)=>{"use strict";r.d(t,{TR:()=>h,bq:()=>u,eb:()=>g,gC:()=>m,l6:()=>o,s3:()=>d,yv:()=>c});var s=r(20475),a=r(20107),n=r(7197),l=r(95257),i=r(22250);let o=l.bL,d=l.YJ,c=l.WT,u=a.forwardRef((e,t)=>{let{className:r,children:a,...o}=e;return(0,s.jsxs)(l.l9,{ref:t,className:(0,i.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",r),...o,children:[a,(0,s.jsx)(l.In,{asChild:!0,children:(0,s.jsx)(n.TBE,{className:"h-4 w-4 opacity-50"})})]})});u.displayName=l.l9.displayName;let p=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.PP,{ref:t,className:(0,i.cn)("flex cursor-default items-center justify-center py-1",r),...a,children:(0,s.jsx)(n.Mtm,{})})});p.displayName=l.PP.displayName;let f=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.wn,{ref:t,className:(0,i.cn)("flex cursor-default items-center justify-center py-1",r),...a,children:(0,s.jsx)(n.D3D,{})})});f.displayName=l.wn.displayName;let m=a.forwardRef((e,t)=>{let{className:r,children:a,position:n="popper",...o}=e;return(0,s.jsx)(l.ZL,{children:(0,s.jsxs)(l.UC,{ref:t,className:(0,i.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",r),position:n,...o,children:[(0,s.jsx)(p,{}),(0,s.jsx)(l.LM,{className:(0,i.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),(0,s.jsx)(f,{})]})})});m.displayName=l.UC.displayName;let h=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.JU,{ref:t,className:(0,i.cn)("px-2 py-1.5 text-sm font-semibold",r),...a})});h.displayName=l.JU.displayName;let g=a.forwardRef((e,t)=>{let{className:r,children:a,...o}=e;return(0,s.jsxs)(l.q7,{ref:t,className:(0,i.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),...o,children:[(0,s.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(l.VF,{children:(0,s.jsx)(n.Srz,{className:"h-4 w-4"})})}),(0,s.jsx)(l.p4,{children:a})]})});g.displayName=l.q7.displayName,a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.wv,{ref:t,className:(0,i.cn)("-mx-1 my-1 h-px bg-muted",r),...a})}).displayName=l.wv.displayName},36760:(e,t,r)=>{"use strict";r.d(t,{E:()=>n});var s=r(20475),a=r(22250);function n(e){let{className:t,...r}=e;return(0,s.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-md bg-primary/10",t),...r})}},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>p,oR:()=>u});var s=r(20107);let a=0,n=new Map,l=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},i=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?l(r):e.toasts.forEach(e=>{l(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},o=[],d={toasts:[]};function c(e){d=i(d,e),o.forEach(e=>{e(d)})}function u(e){let{...t}=e,r=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),s=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||s()}}}),{id:r,dismiss:s,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function p(){let[e,t]=s.useState(d);return s.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>n});var s=r(64901),a=r(868);function n(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{A:()=>o});var s=r(20107);let a=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),n=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&r.indexOf(e)===t).join(" ")};var l={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"};let i=(0,s.forwardRef)((e,t)=>{let{color:r="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:o,className:d="",children:c,iconNode:u,...p}=e;return(0,s.createElement)("svg",{ref:t,...l,width:a,height:a,stroke:r,strokeWidth:o?24*Number(i)/Number(a):i,className:n("lucide",d),...p},[...u.map(e=>{let[t,r]=e;return(0,s.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),o=(e,t)=>{let r=(0,s.forwardRef)((r,l)=>{let{className:o,...d}=r;return(0,s.createElement)(i,{ref:l,iconNode:t,className:n("lucide-".concat(a(e)),o),...d})});return r.displayName="".concat(e),r}},29475:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});let s=(0,r(39997).A)("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"}]])}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,8885,7563,9464,6810,191,6035,7358],()=>t(58669)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/cell-locking/page-c36099a3656d9687.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/cell-locking/page-c36099a3656d9687.js new file mode 100644 index 0000000..a7994f0 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/cell-locking/page-c36099a3656d9687.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5665],{5853:(e,t,s)=>{Promise.resolve().then(s.bind(s,19496))},19496:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>j});var a=s(20475),r=s(20107),l=s(72167),i=s(35601),o=s(42541),n=s(50049),d=s(64219),c=s(49153),u=s(21906),m=s(29475),p=s(52161),h=s(97801),f=s(32857),v=s(49573),g=s(39997);let x=(0,g.A)("CircleX",[["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"}]]);var w=s(98969);let N=(0,g.A)("Clock1",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 14.5 8",key:"12zbmj"}]]),b=(0,g.A)("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),y=e=>{let{loading:t,scheduleData:s,onStartTimeChange:i,onEndTimeChange:n,onSchedulingToggle:u}=e,[p,h]=(0,r.useState)({text:"Disabled",color:"text-red-600",icon:x}),f=()=>{if(!s.enabled){h({text:"Disabled",color:"text-red-600",icon:x});return}let e=new Date,t=60*e.getHours()+e.getMinutes(),[a,r]=s.startTime.split(":").map(Number),[l,i]=s.endTime.split(":").map(Number),o=60*a+r,n=60*l+i;o<=n?t>=o&&t<=n?h({text:"Active",color:"text-green-600",icon:w.A}):h({text:"Inactive",color:"text-yellow-500",icon:N}):t>=o||t<=n?h({text:"Active",color:"text-green-600",icon:w.A}):h({text:"Inactive",color:"text-yellow-500",icon:N})},g=()=>{s.active?h({text:"Active",color:"text-green-600",icon:w.A}):s.enabled&&!s.active?h({text:"Inactive",color:"text-yellow-500",icon:N}):h({text:"Disabled",color:"text-red-600",icon:x})};(0,r.useEffect)(()=>{g();let e=setInterval(f,6e4);return()=>{clearInterval(e)}},[s]);let y=p.icon;return(0,a.jsxs)(l.Zp,{children:[(0,a.jsxs)(l.aR,{children:[(0,a.jsxs)(l.ZB,{className:"flex items-center justify-between",children:[(0,a.jsx)("div",{children:(0,a.jsx)("span",{children:"Cell Locking Scheduler"})}),(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(y,{className:"h-4 w-4 mr-1 ".concat(p.color)}),(0,a.jsx)("div",{className:"text-sm text-gray-500",children:p.text})]})]}),(0,a.jsx)(l.BT,{children:"Schedule the device to lock to specific cells at certain times."})]}),(0,a.jsxs)(l.Wu,{children:[s.enabled&&(0,a.jsxs)(v.Fc,{className:"mb-6",children:[(0,a.jsx)(m.A,{className:"h-4 w-4",color:"orange"}),(0,a.jsx)(v.XL,{children:"Scheduled Cell Locking Active"}),(0,a.jsx)(v.TN,{children:"Cell locking is currently being managed by the scheduler. Manual changes to cell locks may be overridden during scheduled hours."})]}),(0,a.jsxs)("div",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-4",children:[(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"start-time",children:"Start Time"}),(0,a.jsx)(d.p,{type:"time",id:"start-time",value:s.startTime,onChange:e=>i(e.target.value),disabled:t||s.enabled,placeholder:"START TIME"})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"end-time",children:"End Time"}),(0,a.jsx)(d.p,{type:"time",id:"end-time",value:s.endTime,onChange:e=>n(e.target.value),disabled:t||s.enabled,placeholder:"END TIME"})]}),(0,a.jsx)("div",{className:"lg:col-span-2 col-span-1",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:"Make sure to properly set the timezone using Luci for this to properly work. The scheduler will lock the device to the selected cells during the specified time range. The scheduler will not lock the device if the time range is not valid (e.g. start time is after end time)."})})]})]}),(0,a.jsx)(l.wL,{className:"border-t py-4",children:(0,a.jsxs)(o.$,{onClick:()=>u(!s.enabled),disabled:t||!s.locked&&!s.enabled,children:[(0,a.jsx)(b,{className:"h-4 w-4"}),s.enabled?"Disable Scheduler":"Enable Scheduler"]})})]})};var C=s(88926);let j=()=>{let{toast:e}=(0,f.dj)(),[t,s]=(0,r.useState)(!1),[v,g]=(0,r.useState)(!1),[x,w]=(0,r.useState)(!1),[N,b]=(0,r.useState)(!1),[j,R]=(0,r.useState)({enabled:!1,startTime:"",endTime:"",active:!1,status:"",message:"",locked:!1}),[A,E]=(0,r.useState)({EARFCN1:"",PCI1:"",EARFCN2:"",PCI2:"",EARFCN3:"",PCI3:""}),[T,k]=(0,r.useState)({NRARFCN:"",NRPCI:"",SCS:"",NRBAND:""}),F=e=>{let t=e.match(/\+QNWLOCK:\s*(.+?)\n/);return t?t[1].replace(/"/g,"").split(",").map(e=>e.trim()):null},S=async()=>{try{s(!0);let e=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=8"),t=await e.json();if(!e.ok)throw Error("Failed to fetch current status");console.log("Current cell locking status:",t);let a=F(t[2].response);console.log("Persist status:",a),a&&a.length>=2&&(w("1"===a[1]),b("1"===a[2]));let r=F(t[0].response);if(console.log("Current LTE lock status:",r),r){let e={EARFCN1:r[2],PCI1:r[3],EARFCN2:r[4],PCI2:r[5],EARFCN3:r[6],PCI3:r[7]};E(e),console.log("New LTE state:",e),parseInt(r[1])>0&&g(!0)}let l=F(t[1].response);if(console.log("Current NR5G lock status:",l),l&&l.length>=5){let e={NRPCI:l[1],NRARFCN:l[2],SCS:l[3],NRBAND:l[4]};k(e),console.log("New NR5G state:",e),parseInt(l[1])>0&&g(!0)}}catch(t){console.error("Error fetching current status:",t),e({title:"Error",description:"Failed to fetch current cell locking status",variant:"destructive"})}finally{s(!1)}},P=async t=>{try{let a;if(s(!0),t&&(!j.startTime||!j.endTime))throw Error("Please set both start and end times");let r=t?{enabled:!0,startTime:j.startTime,endTime:j.endTime}:{enabled:!1},l=await fetch("/cgi-bin/quecmanager/cell-locking/scheduled_cell_locking.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),i=await l.text();if(!l.ok)throw Error("Server responded with status: ".concat(l.status));try{a=JSON.parse(i)}catch(e){throw Error("Failed to parse response: ".concat(i))}if("success"===a.status)R(e=>({...e,enabled:t})),e({title:"Success",description:t?"Cell locking schedule enabled":"Cell locking schedule disabled"});else throw Error(a.message||"Failed to update scheduling")}catch(e){}finally{s(!1)}},I=async()=>{try{var t,a,r,l;s(!0);let i=[];if(A.EARFCN1&&A.PCI1&&i.push([A.EARFCN1,A.PCI1]),A.EARFCN2&&A.PCI2&&i.push([A.EARFCN2,A.PCI2]),A.EARFCN3&&A.PCI3&&i.push([A.EARFCN3,A.PCI3]),0===i.length)throw Error("Please fill at least one EARFCN and PCI pair");let o='AT+QNWLOCK="common/4g",'.concat(i.length);i.forEach(e=>{let[t,s]=e;o+=",".concat(t,",").concat(s)});let n=await (0,C.a)(o,!0);if((null===(t=n.response)||void 0===t?void 0:t.status)!=="success")throw Error((null===(r=n.response)||void 0===r?void 0:r.raw_output)||"Failed to lock LTE cells");await new Promise(e=>setTimeout(e,1e3));let d=await (0,C.a)('AT+QNWLOCK="save_ctrl",1,0',!0);if((null===(a=d.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(l=d.response)||void 0===l?void 0:l.raw_output)||"Failed to save LTE lock configuration");await S(),e({title:"Success",description:"LTE cells locked successfully with ".concat(i.length," pair").concat(i.length>1?"s":"")})}catch(t){s(!1),e({title:"Error",description:t instanceof Error?t.message:"Failed to lock LTE cells",variant:"destructive"})}},_=async()=>{try{var t,a,r,l;if(s(!0),!T.NRPCI||!T.NRARFCN||!T.SCS||!T.NRBAND)throw Error("Please fill all NR5G fields");let i='AT+QNWLOCK="common/5g",'.concat(T.NRPCI,",").concat(T.NRARFCN,",").concat(T.SCS,",").concat(T.NRBAND),o=await (0,C.a)(i,!0);if((null===(t=o.response)||void 0===t?void 0:t.status)!=="success")throw Error((null===(r=o.response)||void 0===r?void 0:r.raw_output)||"Failed to lock NR5G cell");await new Promise(e=>setTimeout(e,1e3));let n=await (0,C.a)('AT+QNWLOCK="save_ctrl",0,1',!0);if((null===(a=n.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(l=n.response)||void 0===l?void 0:l.raw_output)||"Failed to save NR5G lock configuration");await S(),e({title:"Success",description:"NR5G cell locked successfully"})}catch(t){s(!1),e({title:"Error",description:t instanceof Error?t.message:"Failed to lock NR5G cell",variant:"destructive"})}},L=async()=>{try{var t,a,r,l,i,o,n,d;s(!0);let c=await (0,C.a)('AT+QNWLOCK="common/4g",0',!0);if((null===(t=c.response)||void 0===t?void 0:t.status)!=="success")throw Error((null===(i=c.response)||void 0===i?void 0:i.raw_output)||"Failed to reset LTE lock");await new Promise(e=>setTimeout(e,1e3));let u=await (0,C.a)('AT+QNWLOCK="save_ctrl",0,0',!0);if((null===(a=u.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(o=u.response)||void 0===o?void 0:o.raw_output)||"Failed to save LTE reset configuration");let m=await (0,C.a)("AT+COPS=2",!0);if((null===(r=m.response)||void 0===r?void 0:r.status)!=="success")throw Error((null===(n=m.response)||void 0===n?void 0:n.raw_output)||"Failed to disconnect from network");await new Promise(e=>setTimeout(e,2e3));let p=await (0,C.a)("AT+COPS=0",!0);if((null===(l=p.response)||void 0===l?void 0:l.status)!=="success")throw Error((null===(d=p.response)||void 0===d?void 0:d.raw_output)||"Failed to reconnect to network");await S(),e({title:"Success",description:"LTE cell locking reset to default"})}catch(t){s(!1),e({title:"Error",description:"Failed to reset LTE cell locking",variant:"destructive"})}},D=async()=>{try{var t,a,r,l,i,o,n,d;s(!0);let c=await (0,C.a)('AT+QNWLOCK="common/5g",0',!0);if((null===(t=c.response)||void 0===t?void 0:t.status)!=="success")throw Error((null===(i=c.response)||void 0===i?void 0:i.raw_output)||"Failed to reset NR5G lock");let u=await (0,C.a)('AT+QNWLOCK="save_ctrl",0,0',!0);if((null===(a=u.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(o=u.response)||void 0===o?void 0:o.raw_output)||"Failed to save NR5G reset configuration");let m=await (0,C.a)("AT+COPS=2",!0);if((null===(r=m.response)||void 0===r?void 0:r.status)!=="success")throw Error((null===(n=m.response)||void 0===n?void 0:n.raw_output)||"Failed to disconnect from network");await new Promise(e=>setTimeout(e,2e3));let p=await (0,C.a)("AT+COPS=0",!0);if((null===(l=p.response)||void 0===l?void 0:l.status)!=="success")throw Error((null===(d=p.response)||void 0===d?void 0:d.raw_output)||"Failed to reconnect to network");await S(),e({title:"Success",description:"NR5G cell locking reset to default"})}catch(t){s(!1),e({title:"Error",description:"Failed to reset NR5G cell locking",variant:"destructive"})}},O=async t=>{try{var a,r;s(!0);let l=await (0,C.a)('AT+QNWLOCK="save_ctrl",'.concat(t?"1":"0",",").concat(N?"1":"0"),!0);if((null===(a=l.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(r=l.response)||void 0===r?void 0:r.raw_output)||"Failed to update LTE persist setting");await S(),e({title:"Success",description:"LTE persist on boot ".concat(t?"enabled":"disabled")}),await new Promise(e=>setTimeout(e,2e3)),window.location.reload()}catch(t){e({title:"Error",description:"Failed to update LTE persist setting",variant:"destructive"})}finally{s(!1)}},z=async t=>{try{var a,r;s(!0);let l=await (0,C.a)('AT+QNWLOCK="save_ctrl",'.concat(x?"1":"0",",").concat(t?"1":"0"),!0);if((null===(a=l.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(r=l.response)||void 0===r?void 0:r.raw_output)||"Failed to update NR5G persist setting");await S(),e({title:"Success",description:"NR5G persist on boot ".concat(t?"enabled":"disabled")}),await new Promise(e=>setTimeout(e,2e3)),window.location.reload()}catch(t){e({title:"Error",description:"Failed to update NR5G persist setting",variant:"destructive"})}finally{s(!1)}};return(0,r.useEffect)(()=>{(async()=>{let e=await fetch("/cgi-bin/quecmanager/cell-locking/get_cell_lock.sh"),t=await e.json();R({enabled:t.enabled,startTime:t.start_time||"",endTime:t.end_time||"",active:t.active,status:t.status,message:t.message,locked:t.locked}),g(t.locked),w("1"===t.ltePersist),b("1"===t.nr5gPersist),await S()})()},[]),(0,r.useEffect)(()=>{R(e=>({...e,locked:v}))},[v]),(0,a.jsxs)("div",{className:"grid gap-6",children:[(0,a.jsxs)(l.Zp,{children:[(0,a.jsxs)(l.aR,{children:[(0,a.jsx)(l.ZB,{children:"4G LTE Cellular Locking"}),(0,a.jsx)(l.BT,{children:"Lock the device to specific LTE Physical Cell IDs."})]}),(0,a.jsx)(l.Wu,{children:(0,a.jsxs)("form",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-6",children:[(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"EARFCN1",children:"EARFCN 1"}),(0,a.jsx)(d.p,{type:"text",id:"EARFCN1",placeholder:"EARFCN 1",value:A.EARFCN1,onChange:e=>E(t=>({...t,EARFCN1:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"PCI1",children:"PCI 1"}),(0,a.jsx)(d.p,{type:"text",id:"PCI1",placeholder:"PCI 1",value:A.PCI1,onChange:e=>E(t=>({...t,PCI1:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsx)(n.w,{className:"my-1 col-span-2 w-full"}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"EARFCN2",children:"EARFCN 2"}),(0,a.jsx)(d.p,{type:"text",id:"EARFCN2",placeholder:"EARFCN 2",value:A.EARFCN2,onChange:e=>E(t=>({...t,EARFCN2:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"PCI2",children:"PCI 2"}),(0,a.jsx)(d.p,{type:"text",id:"PCI2",placeholder:"PCI 2",value:A.PCI2,onChange:e=>E(t=>({...t,PCI2:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsx)(n.w,{className:"my-1 col-span-2 w-full"}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"EARFCN3",children:"EARFCN 3"}),(0,a.jsx)(d.p,{type:"text",id:"EARFCN3",placeholder:"EARFCN 3",value:A.EARFCN3,onChange:e=>E(t=>({...t,EARFCN3:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"PCI3",children:"PCI 3"}),(0,a.jsx)(d.p,{type:"text",id:"PCI3",placeholder:"PCI 3",value:A.PCI3,onChange:e=>E(t=>({...t,PCI3:e.target.value})),disabled:t||j.enabled&&v})]})]})}),(0,a.jsxs)(l.wL,{className:"border-t py-4 grid grid-flow-row md:grid-cols-3 grid-cols-1 gap-4",children:[(0,a.jsxs)(o.$,{onClick:I,disabled:t||j.enabled&&v,children:[(0,a.jsx)(m.A,{className:"h-4 w-4"}),"Lock LTE Cells"]}),(0,a.jsxs)(u.l,{pressed:x,onPressedChange:O,disabled:t||j.enabled&&v,children:[(0,a.jsx)(p.A,{className:"h-4 w-4 mr-2"}),"Persist on Reboot"]}),(0,a.jsxs)(o.$,{variant:"secondary",onClick:L,disabled:t||j.enabled&&v,children:[(0,a.jsx)(h.A,{className:"h-4 w-4"}),"Reset to Default"]})]})]}),(0,a.jsxs)(l.Zp,{children:[(0,a.jsxs)(l.aR,{children:[(0,a.jsx)(l.ZB,{children:"NR5G-SA Cellular Locking"}),(0,a.jsx)(l.BT,{children:"Lock the device to a specific NR5G-SA Physical Cell ID."})]}),(0,a.jsx)(l.Wu,{children:(0,a.jsxs)("form",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-6",children:[(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"NR-ARFCN",children:"NR ARFCN"}),(0,a.jsx)(d.p,{type:"text",id:"NR-ARFCN",placeholder:"NR ARFCN",value:T.NRARFCN,onChange:e=>k(t=>({...t,NRARFCN:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"NR-PCI",children:"NR PCI"}),(0,a.jsx)(d.p,{type:"text",id:"NR-PCI",placeholder:"NR PCI",value:T.NRPCI,onChange:e=>k(t=>({...t,NRPCI:e.target.value})),disabled:t||j.enabled&&v})]}),(0,a.jsx)(n.w,{className:"my-0.5 col-span-2 w-full"}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"SCS",children:"SCS"}),(0,a.jsxs)(i.l6,{value:T.SCS,onValueChange:e=>k(t=>({...t,SCS:e})),disabled:t||j.enabled&&v,children:[(0,a.jsx)(i.bq,{id:"SCS",children:(0,a.jsx)(i.yv,{placeholder:"SCS"})}),(0,a.jsx)(i.gC,{children:(0,a.jsxs)(i.s3,{children:[(0,a.jsx)(i.TR,{children:"SCS"}),(0,a.jsx)(i.eb,{value:"15",children:"15 kHz"}),(0,a.jsx)(i.eb,{value:"30",children:"30 kHz"}),(0,a.jsx)(i.eb,{value:"60",children:"60 kHz"}),(0,a.jsx)(i.eb,{value:"120",children:"120 kHz"}),(0,a.jsx)(i.eb,{value:"240",children:"240 kHz"})]})})]})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(c.J,{htmlFor:"NRBAND",children:"NR Band"}),(0,a.jsx)(d.p,{type:"text",id:"NRBAND",placeholder:"NR BAND",value:T.NRBAND,onChange:e=>k(t=>({...t,NRBAND:e.target.value})),disabled:t||j.enabled&&v})]})]})}),(0,a.jsxs)(l.wL,{className:"border-t py-4 grid grid-flow-row md:grid-cols-3 grid-cols-1 gap-4",children:[(0,a.jsxs)(o.$,{onClick:_,disabled:t||j.enabled&&v,children:[(0,a.jsx)(m.A,{className:"h-4 w-4"}),"Lock NR5G-SA Cell"]}),(0,a.jsxs)(u.l,{pressed:N,onPressedChange:z,disabled:t||j.enabled&&v,children:[(0,a.jsx)(p.A,{className:"h-4 w-4 mr-2"}),"Persist on Reboot"]}),(0,a.jsxs)(o.$,{variant:"secondary",onClick:D,disabled:t||j.enabled&&v,children:[(0,a.jsx)(h.A,{className:"h-4 w-4"}),"Reset to Default"]})]})]}),(0,a.jsx)(y,{loading:t,scheduleData:j,onStartTimeChange:e=>{R(t=>({...t,startTime:e}))},onEndTimeChange:e=>{R(t=>({...t,endTime:e}))},onSchedulingToggle:P})]})}},49573:(e,t,s)=>{"use strict";s.d(t,{Fc:()=>n,TN:()=>c,XL:()=>d});var a=s(20475),r=s(20107),l=s(29395),i=s(22250);let o=(0,l.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),n=r.forwardRef((e,t)=>{let{className:s,variant:r,...l}=e;return(0,a.jsx)("div",{ref:t,role:"alert",className:(0,i.cn)(o({variant:r}),s),...l})});n.displayName="Alert";let d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("h5",{ref:t,className:(0,i.cn)("mb-1 font-medium leading-none tracking-tight",s),...r})});d.displayName="AlertTitle";let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("text-sm [&_p]:leading-relaxed",s),...r})});c.displayName="AlertDescription"},42541:(e,t,s)=>{"use strict";s.d(t,{$:()=>d,r:()=>n});var a=s(20475),r=s(20107),l=s(61837),i=s(29395),o=s(22250);let n=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=r.forwardRef((e,t)=>{let{className:s,variant:r,size:i,asChild:d=!1,...c}=e,u=d?l.DX:"button";return(0,a.jsx)(u,{className:(0,o.cn)(n({variant:r,size:i,className:s})),ref:t,...c})});d.displayName="Button"},72167:(e,t,s)=>{"use strict";s.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>n,Zp:()=>i,aR:()=>o,wL:()=>u});var a=s(20475),r=s(20107),l=s(22250);let i=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("rounded-xl border bg-card text-card-foreground shadow",s),...r})});i.displayName="Card";let o=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",s),...r})});o.displayName="CardHeader";let n=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("h3",{ref:t,className:(0,l.cn)("font-semibold leading-none tracking-tight",s),...r})});n.displayName="CardTitle";let d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",s),...r})});d.displayName="CardDescription";let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",s),...r})});c.displayName="CardContent";let u=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",s),...r})});u.displayName="CardFooter"},64219:(e,t,s)=>{"use strict";s.d(t,{p:()=>i});var a=s(20475),r=s(20107),l=s(22250);let i=r.forwardRef((e,t)=>{let{className:s,type:r,...i}=e;return(0,a.jsx)("input",{type:r,className:(0,l.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...i})});i.displayName="Input"},49153:(e,t,s)=>{"use strict";s.d(t,{J:()=>d});var a=s(20475),r=s(20107),l=s(21840),i=s(29395),o=s(22250);let n=(0,i.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(l.b,{ref:t,className:(0,o.cn)(n(),s),...r})});d.displayName=l.b.displayName},35601:(e,t,s)=>{"use strict";s.d(t,{TR:()=>f,bq:()=>u,eb:()=>v,gC:()=>h,l6:()=>n,s3:()=>d,yv:()=>c});var a=s(20475),r=s(20107),l=s(7197),i=s(95257),o=s(22250);let n=i.bL,d=i.YJ,c=i.WT,u=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsxs)(i.l9,{ref:t,className:(0,o.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...n,children:[r,(0,a.jsx)(i.In,{asChild:!0,children:(0,a.jsx)(l.TBE,{className:"h-4 w-4 opacity-50"})})]})});u.displayName=i.l9.displayName;let m=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(i.PP,{ref:t,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",s),...r,children:(0,a.jsx)(l.Mtm,{})})});m.displayName=i.PP.displayName;let p=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(i.wn,{ref:t,className:(0,o.cn)("flex cursor-default items-center justify-center py-1",s),...r,children:(0,a.jsx)(l.D3D,{})})});p.displayName=i.wn.displayName;let h=r.forwardRef((e,t)=>{let{className:s,children:r,position:l="popper",...n}=e;return(0,a.jsx)(i.ZL,{children:(0,a.jsxs)(i.UC,{ref:t,className:(0,o.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===l&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",s),position:l,...n,children:[(0,a.jsx)(m,{}),(0,a.jsx)(i.LM,{className:(0,o.cn)("p-1","popper"===l&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,a.jsx)(p,{})]})})});h.displayName=i.UC.displayName;let f=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(i.JU,{ref:t,className:(0,o.cn)("px-2 py-1.5 text-sm font-semibold",s),...r})});f.displayName=i.JU.displayName;let v=r.forwardRef((e,t)=>{let{className:s,children:r,...n}=e;return(0,a.jsxs)(i.q7,{ref:t,className:(0,o.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...n,children:[(0,a.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(i.VF,{children:(0,a.jsx)(l.Srz,{className:"h-4 w-4"})})}),(0,a.jsx)(i.p4,{children:r})]})});v.displayName=i.q7.displayName,r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,a.jsx)(i.wv,{ref:t,className:(0,o.cn)("-mx-1 my-1 h-px bg-muted",s),...r})}).displayName=i.wv.displayName},50049:(e,t,s)=>{"use strict";s.d(t,{w:()=>c});var a=s(20475),r=s(20107),l=s(34544),i="horizontal",o=["horizontal","vertical"],n=r.forwardRef((e,t)=>{let{decorative:s,orientation:r=i,...n}=e,d=o.includes(r)?r:i;return(0,a.jsx)(l.sG.div,{"data-orientation":d,...s?{role:"none"}:{"aria-orientation":"vertical"===d?d:void 0,role:"separator"},...n,ref:t})});n.displayName="Separator";var d=s(22250);let c=r.forwardRef((e,t)=>{let{className:s,orientation:r="horizontal",decorative:l=!0,...i}=e;return(0,a.jsx)(n,{ref:t,decorative:l,orientation:r,className:(0,d.cn)("shrink-0 bg-border","horizontal"===r?"h-[1px] w-full":"h-full w-[1px]",s),...i})});c.displayName=n.displayName},21906:(e,t,s)=>{"use strict";s.d(t,{l:()=>m});var a=s(20475),r=s(20107),l=s(94521),i=s(13061),o=s(34544),n=r.forwardRef((e,t)=>{let{pressed:s,defaultPressed:r=!1,onPressedChange:n,...d}=e,[c=!1,u]=(0,i.i)({prop:s,onChange:n,defaultProp:r});return(0,a.jsx)(o.sG.button,{type:"button","aria-pressed":c,"data-state":c?"on":"off","data-disabled":e.disabled?"":void 0,...d,ref:t,onClick:(0,l.m)(e.onClick,()=>{e.disabled||u(!c)})})});n.displayName="Toggle";var d=s(29395),c=s(22250);let u=(0,d.F)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-3",sm:"h-8 px-2",lg:"h-10 px-3"}},defaultVariants:{variant:"default",size:"default"}}),m=r.forwardRef((e,t)=>{let{className:s,variant:r,size:l,...i}=e;return(0,a.jsx)(n,{ref:t,className:(0,c.cn)(u({variant:r,size:l,className:s})),...i})});m.displayName=n.displayName},32857:(e,t,s)=>{"use strict";s.d(t,{dj:()=>m,oR:()=>u});var a=s(20107);let r=0,l=new Map,i=e=>{if(l.has(e))return;let t=setTimeout(()=>{l.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);l.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?i(s):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},n=[],d={toasts:[]};function c(e){d=o(d,e),n.forEach(e=>{e(d)})}function u(e){let{...t}=e,s=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:s});return c({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||a()}}}),{id:s,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function m(){let[e,t]=a.useState(d);return a.useEffect(()=>(n.push(t),()=>{let e=n.indexOf(t);e>-1&&n.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,s)=>{"use strict";s.d(t,{cn:()=>l});var a=s(64901),r=s(868);function l(){for(var e=arguments.length,t=Array(e),s=0;s{"use strict";s.d(t,{A:()=>n});var a=s(20107);let r=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l=function(){for(var e=arguments.length,t=Array(e),s=0;s!!e&&s.indexOf(e)===t).join(" ")};var i={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"};let o=(0,a.forwardRef)((e,t)=>{let{color:s="currentColor",size:r=24,strokeWidth:o=2,absoluteStrokeWidth:n,className:d="",children:c,iconNode:u,...m}=e;return(0,a.createElement)("svg",{ref:t,...i,width:r,height:r,stroke:s,strokeWidth:n?24*Number(o)/Number(r):o,className:l("lucide",d),...m},[...u.map(e=>{let[t,s]=e;return(0,a.createElement)(t,s)}),...Array.isArray(c)?c:[c]])}),n=(e,t)=>{let s=(0,a.forwardRef)((s,i)=>{let{className:n,...d}=s;return(0,a.createElement)(o,{ref:i,iconNode:t,className:l("lucide-".concat(r(e)),n),...d})});return s.displayName="".concat(e),s}},98969:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(39997).A)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},29475:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(39997).A)("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"}]])},97801:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(39997).A)("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"}]])},52161:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(39997).A)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},88926:(e,t,s)=>{"use strict";s.d(t,{a:()=>a});let a=async function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;try{var a;let r=e.trim().toUpperCase().startsWith("AT")?e.trim():"AT".concat(e.trim()),l=encodeURIComponent(r),i="/cgi-bin/quecmanager/at_cmd/at_queue_client.sh?command=".concat(l);t&&(i+="&wait=1&timeout=".concat(s));let o=await fetch(i,{method:"GET",headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e3*s+5e3)});if(!o.ok)throw Error("AT command failed with status: ".concat(o.status));let n=await o.json();if(n.error)throw Error("AT queue error: ".concat(n.error));if(t&&(null===(a=n.response)||void 0===a?void 0:a.status)==="timeout")throw Error("AT command timed out after ".concat(s," seconds"));return n}catch(e){throw console.error("AT Command error:",e),e}}}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,8885,7563,9464,6810,191,6035,7358],()=>t(5853)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/imei-mangling/page-5a5627d4caa9c7b7.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/imei-mangling/page-5a5627d4caa9c7b7.js new file mode 100644 index 0000000..d7da16a --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/imei-mangling/page-5a5627d4caa9c7b7.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9065],{6507:(e,t,r)=>{Promise.resolve().then(r.bind(r,70231))},70231:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>v});var a=r(20475),s=r(20107),o=r(72167),i=r(85014),n=r(12607),l=r(29475),d=r(42541),c=r(64219),u=r(49153),f=r(36760),m=r(32857),p=r(49573),h=r(88926);let v=()=>{let[e,t]=(0,s.useState)(!0),[r,v]=(0,s.useState)(""),[g,x]=(0,s.useState)(""),[w,b]=(0,s.useState)(null),[y,N]=(0,s.useState)(!1),{toast:j}=(0,m.dj)(),I=(0,s.useCallback)(async()=>{try{t(!0);let e=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=3"),r=await e.json();console.log(r);let a=r[6].response.split("\n")[1];console.log(a);let s=a.match(/\d{15}/),o=s?s[0]:null;if(o)v(o),x(o);else throw Error("IMEI not found in response")}catch(e){j({title:"Failed to fetch IMEI",description:"Failed to fetch IMEI from the device",variant:"destructive"}),console.error(e)}finally{t(!1)}},[]),E=(0,s.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/profiles/check_status.sh");if(!e.ok)throw Error("Failed to fetch profile status: ".concat(e.statusText));let t=await e.json();if(console.log("Profile Status:",t),"success"===t.status&&t.profile&&"unknown"!==t.profile&&"none"!==t.profile){let e=await fetch("/cgi-bin/quecmanager/profiles/list_profiles.sh");if(e.ok){let r=await e.json();if("success"===r.status&&Array.isArray(r.profiles)){let e=r.profiles.find(e=>e.name===t.profile);e&&e.imei?(b(e),N(!0),x(e.imei),console.log("Active Profile with IMEI:",e)):(b(null),N(!1))}}}else b(null),N(!1)}catch(e){console.error("Error checking active profile:",e),b(null),N(!1)}},[]);(0,s.useEffect)(()=>{(async()=>{await I(),await E()})()},[I,E]);let A=async e=>{if(e.preventDefault(),y){j({title:"Profile Controlled",description:'IMEI is currently managed by profile "'.concat(null==w?void 0:w.name,'". Edit the profile to change IMEI.'),variant:"destructive"});return}if(t(!0),15!==g.length||isNaN(Number(g))){j({title:"Invalid IMEI",description:"IMEI must be 15 digits and numbers only",variant:"destructive"}),t(!1);return}try{var r,a,s,o;let e='AT+EGMR=1,7,"'.concat(g,'"'),t=await (0,h.a)(e,!0);if((null===(r=t.response)||void 0===r?void 0:r.status)!=="success")throw Error((null===(s=t.response)||void 0===s?void 0:s.raw_output)||"Failed to update IMEI");let i=await (0,h.a)("AT+QPOWD=1",!0);if((null===(a=i.response)||void 0===a?void 0:a.status)!=="success")throw Error((null===(o=i.response)||void 0===o?void 0:o.raw_output)||"Failed to reboot device");j({title:"Success",description:"IMEI has been updated successfully. Rebooting...",duration:9e4}),setTimeout(()=>{window.location.reload()},9e4)}catch(e){j({title:"Failed to update IMEI",description:"Failed to update IMEI on the device",variant:"destructive"}),console.error(e)}finally{t(!1)}};return(0,a.jsx)("div",{className:"grid gap-8",children:(0,a.jsx)(o.Zp,{children:(0,a.jsxs)("form",{onSubmit:A,children:[(0,a.jsxs)(o.aR,{children:[(0,a.jsx)(o.ZB,{children:"IMEI Mangling"}),(0,a.jsxs)(o.BT,{className:"flex items-center justify-between",children:["Change the IMEI of the device.",(0,a.jsx)(i.TooltipProvider,{children:(0,a.jsxs)(i.m_,{children:[(0,a.jsx)(i.k$,{children:(0,a.jsxs)("span",{className:"flex items-center text-orange-500",children:[(0,a.jsx)(n.A,{className:"size-4 mr-1"}),"Do at your own risk!"]})}),(0,a.jsx)(i.ZI,{children:(0,a.jsx)("p",{children:"Add to library"})})]})})]})]}),(0,a.jsxs)(o.Wu,{children:[y&&w&&(0,a.jsxs)(p.Fc,{className:"mb-6",children:[(0,a.jsx)(l.A,{className:"h-4 w-4",color:"orange"}),(0,a.jsx)(p.XL,{children:"Profile Controlled"}),(0,a.jsxs)(p.TN,{children:['IMEI is currently being managed by profile "',w.name,'".']})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsxs)(u.J,{htmlFor:"IMEI",children:["Change Current IMEI",y&&(0,a.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:"(Profile Controlled)"})]}),e?(0,a.jsx)(f.E,{className:"h-8"}):(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(c.p,{type:"text",id:"IMEI",value:g,onChange:e=>!y&&x(e.target.value),placeholder:r,disabled:y,className:y?"bg-muted cursor-not-allowed":""}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground font-medium",children:"This will reboot the device."})]})]})]}),(0,a.jsx)(o.wL,{className:"grid border-t py-4",children:(0,a.jsx)(d.$,{type:"submit",className:"w-full",disabled:e||g===r||y,children:e?"Processing...":"Change IMEI"})})]})})})}},49573:(e,t,r)=>{"use strict";r.d(t,{Fc:()=>l,TN:()=>c,XL:()=>d});var a=r(20475),s=r(20107),o=r(29395),i=r(22250);let n=(0,o.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),l=s.forwardRef((e,t)=>{let{className:r,variant:s,...o}=e;return(0,a.jsx)("div",{ref:t,role:"alert",className:(0,i.cn)(n({variant:s}),r),...o})});l.displayName="Alert";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h5",{ref:t,className:(0,i.cn)("mb-1 font-medium leading-none tracking-tight",r),...s})});d.displayName="AlertTitle";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("text-sm [&_p]:leading-relaxed",r),...s})});c.displayName="AlertDescription"},42541:(e,t,r)=>{"use strict";r.d(t,{$:()=>d,r:()=>l});var a=r(20475),s=r(20107),o=r(61837),i=r(29395),n=r(22250);let l=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=s.forwardRef((e,t)=>{let{className:r,variant:s,size:i,asChild:d=!1,...c}=e,u=d?o.DX:"button";return(0,a.jsx)(u,{className:(0,n.cn)(l({variant:s,size:i,className:r})),ref:t,...c})});d.displayName="Button"},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>l,Zp:()=>i,aR:()=>n,wL:()=>u});var a=r(20475),s=r(20107),o=r(22250);let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...s})});i.displayName="Card";let n=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("flex flex-col space-y-1.5 p-6",r),...s})});n.displayName="CardHeader";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,o.cn)("font-semibold leading-none tracking-tight",r),...s})});l.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",r),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,o.cn)("flex items-center p-6 pt-0",r),...s})});u.displayName="CardFooter"},64219:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var a=r(20475),s=r(20107),o=r(22250);let i=s.forwardRef((e,t)=>{let{className:r,type:s,...i}=e;return(0,a.jsx)("input",{type:s,className:(0,o.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...i})});i.displayName="Input"},49153:(e,t,r)=>{"use strict";r.d(t,{J:()=>d});var a=r(20475),s=r(20107),o=r(21840),i=r(29395),n=r(22250);let l=(0,i.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(o.b,{ref:t,className:(0,n.cn)(l(),r),...s})});d.displayName=o.b.displayName},36760:(e,t,r)=>{"use strict";r.d(t,{E:()=>o});var a=r(20475),s=r(22250);function o(e){let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,s.cn)("animate-pulse rounded-md bg-primary/10",t),...r})}},85014:(e,t,r)=>{"use strict";r.d(t,{TooltipProvider:()=>n,ZI:()=>c,k$:()=>d,m_:()=>l});var a=r(20475),s=r(20107),o=r(43048),i=r(22250);let n=o.Kq,l=o.bL,d=o.l9,c=s.forwardRef((e,t)=>{let{className:r,sideOffset:s=4,...n}=e;return(0,a.jsx)(o.UC,{ref:t,sideOffset:s,className:(0,i.cn)("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...n})});c.displayName=o.UC.displayName},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>f,oR:()=>u});var a=r(20107);let s=0,o=new Map,i=e=>{if(o.has(e))return;let t=setTimeout(()=>{o.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);o.set(e,t)},n=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?i(r):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],d={toasts:[]};function c(e){d=n(d,e),l.forEach(e=>{e(d)})}function u(e){let{...t}=e,r=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||a()}}}),{id:r,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function f(){let[e,t]=a.useState(d);return a.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>o});var a=r(64901),s=r(868);function o(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{A:()=>l});var a=r(20107);let s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),o=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&r.indexOf(e)===t).join(" ")};var i={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"};let n=(0,a.forwardRef)((e,t)=>{let{color:r="currentColor",size:s=24,strokeWidth:n=2,absoluteStrokeWidth:l,className:d="",children:c,iconNode:u,...f}=e;return(0,a.createElement)("svg",{ref:t,...i,width:s,height:s,stroke:r,strokeWidth:l?24*Number(n)/Number(s):n,className:o("lucide",d),...f},[...u.map(e=>{let[t,r]=e;return(0,a.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),l=(e,t)=>{let r=(0,a.forwardRef)((r,i)=>{let{className:l,...d}=r;return(0,a.createElement)(n,{ref:i,iconNode:t,className:o("lucide-".concat(s(e)),l),...d})});return r.displayName="".concat(e),r}},29475:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("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"}]])},12607:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("TriangleAlert",[["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-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},88926:(e,t,r)=>{"use strict";r.d(t,{a:()=>a});let a=async function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;try{var a;let s=e.trim().toUpperCase().startsWith("AT")?e.trim():"AT".concat(e.trim()),o=encodeURIComponent(s),i="/cgi-bin/quecmanager/at_cmd/at_queue_client.sh?command=".concat(o);t&&(i+="&wait=1&timeout=".concat(r));let n=await fetch(i,{method:"GET",headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e3*r+5e3)});if(!n.ok)throw Error("AT command failed with status: ".concat(n.status));let l=await n.json();if(l.error)throw Error("AT queue error: ".concat(l.error));if(t&&(null===(a=l.response)||void 0===a?void 0:a.status)==="timeout")throw Error("AT command timed out after ".concat(r," seconds"));return l}catch(e){throw console.error("AT Command error:",e),e}}},21840:(e,t,r)=>{"use strict";r.d(t,{b:()=>n});var a=r(20107),s=r(34544),o=r(20475),i=a.forwardRef((e,t)=>(0,o.jsx)(s.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null===(r=e.onMouseDown)||void 0===r||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var n=i},91475:(e,t,r)=>{"use strict";r.d(t,{b:()=>n,s:()=>i});var a=r(20107),s=r(34544),o=r(20475),i=a.forwardRef((e,t)=>(0,o.jsx)(s.sG.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));i.displayName="VisuallyHidden";var n=i}},e=>{var t=t=>e(e.s=t);e.O(0,[7780,8885,7563,3048,191,6035,7358],()=>t(6507)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/sms/page-851b9d4ba8e76ef1.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/sms/page-851b9d4ba8e76ef1.js new file mode 100644 index 0000000..b9ccaf3 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/cell-settings/sms/page-851b9d4ba8e76ef1.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3358],{54016:(e,t,s)=>{Promise.resolve().then(s.bind(s,33776))},33776:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>v});var r=s(20475),a=s(20107),n=s(59166),i=s(66698);let l=(0,s(39997).A)("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var o=s(51873),d=s(72167),c=s(93557),u=s(36824),m=s(574),f=s(42541),p=s(50049),h=s(31739),x=s(64219),g=s(32857);let v=()=>{let[e,t]=(0,a.useState)([]),[s,v]=(0,a.useState)(!1),[y,b]=(0,a.useState)([]),[w,j]=(0,a.useState)(!1),[N,S]=(0,a.useState)(""),[R,k]=(0,a.useState)(""),[C,E]=(0,a.useState)(!1),[A,T]=(0,a.useState)(""),M=(e,t)=>e.trim()&&t.trim()?!!/^\d+$/.test(e.trim())||((0,g.oR)({title:"Validation Error",description:"Phone number should contain only numbers",variant:"destructive"}),!1):((0,g.oR)({title:"Validation Error",description:"Phone number and message are required",variant:"destructive"}),!1),I=async()=>{if(M(N,R)){E(!0);try{let e={phone:N.trim(),message:R.trim()},t=await fetch("/cgi-bin/quecmanager/cell-settings/sms/sms_send.sh",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","Cache-Control":"no-cache"},body:new URLSearchParams(e).toString()}),s=await t.json();if(console.log("Response data:",s),s.success)(0,g.oR)({title:"Success",description:"Message sent successfully"}),S(""),k(""),z();else throw Error(s.error||"Failed to send message")}catch(e){console.error("Send operation failed:",e),(0,g.oR)({title:"Error",description:e instanceof Error?e.message:"Something went wrong",variant:"destructive"})}finally{E(!1)}}},D=async(e,t)=>{if(M(e,t)){E(!0);try{let s={phone:e.trim(),message:t.trim()},r=await fetch("/cgi-bin/quecmanager/cell-settings/sms/sms_send.sh",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","Cache-Control":"no-cache"},body:new URLSearchParams(s).toString()}),a=await r.json();if(console.log("Response data:",a),a.success)(0,g.oR)({title:"Success",description:"Reply sent successfully"}),T(""),z();else throw Error(a.error||"Failed to send reply")}catch(e){console.error("Reply operation failed:",e),(0,g.oR)({title:"Error",description:e instanceof Error?e.message:"Something went wrong",variant:"destructive"})}finally{E(!1)}}},_=e=>{let t={},s=[];return e.msg.forEach(e=>{if(void 0!==e.reference&&void 0!==e.part){var r;let a="".concat(e.sender,"-").concat(e.reference);t[a]||(t[a]={index:e.index,status:"received",sender:e.sender,timestamp:e.timestamp,message:"",originalIndices:[]}),t[a].message+=e.content,null===(r=t[a].originalIndices)||void 0===r||r.push(e.index),e.part===e.total&&(s.push(t[a]),delete t[a])}else s.push({index:e.index,status:"received",sender:e.sender,timestamp:e.timestamp,message:e.content,originalIndices:[e.index]})}),Object.values(t).forEach(e=>{s.push(e)}),s.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime())},z=async()=>{v(!0);try{let e=await fetch("/cgi-bin/quecmanager/cell-settings/sms/sms_inbox.sh"),s=await e.json();if(!(null==s?void 0:s.msg)||!Array.isArray(s.msg))throw Error("Invalid response format");let r=_(s);t(r),b([])}catch(e){console.error("Failed to refresh SMS:",e),t([])}finally{v(!1)}},O=async e=>{v(!0);try{if(!e.length)throw Error("No messages selected");let t=[...new Set(e)].sort((e,t)=>e-t).join(",");console.log("Deleting messages with indices:",t);let s=await fetch("/cgi-bin/quecmanager/cell-settings/cell-settings/sms/sms_delete.sh?indexes=".concat(t),{method:"GET",headers:{Accept:"application/json","Cache-Control":"no-cache"}}),r=await s.text();if(console.log("Raw response:",r),/Deleted message \d+/.test(r))(0,g.oR)({title:"Success!",description:"Selected messages deleted."}),await z();else throw Error("Something went wrong")}catch(e){console.error("Delete operation failed:",e),(0,g.oR)({title:"Error!",description:"Something went wrong",variant:"destructive"})}finally{v(!1)}},L=e=>{b(t=>{let s=new Set(t);return e.every(e=>s.has(e))?e.forEach(e=>s.delete(e)):e.forEach(e=>s.add(e)),Array.from(s)})},P=e=>{try{let[t,s]=e.split(" "),[r,a,n]=t.split("/");return{date:"20".concat(n,"-").concat(r,"-").concat(a),time:s}}catch(e){return console.error("Error parsing timestamp:",e),{date:"Invalid date",time:"Invalid time"}}};return(0,a.useEffect)(()=>{z()},[]),(0,r.jsxs)("div",{className:"grid gap-6",children:[(0,r.jsxs)(d.Zp,{className:"w-full max-w-screen",children:[(0,r.jsxs)(d.aR,{children:[(0,r.jsx)(d.ZB,{children:"SMS Inbox"}),(0,r.jsx)(d.BT,{children:(0,r.jsxs)("div",{className:"flex justify-between items-center",children:[(0,r.jsx)("span",{children:"View and manage SMS messages"}),(0,r.jsxs)("div",{className:"flex items-center space-x-1.5",children:[(0,r.jsx)(m.S,{checked:e.length>0&&y.length===e.flatMap(e=>e.originalIndices||[e.index]).length,onCheckedChange:t=>{t?b(e.flatMap(e=>e.originalIndices||[e.index])):b([])}}),(0,r.jsx)("span",{className:"text-sm",children:"Select All"})]})]})})]}),(0,r.jsx)(d.Wu,{children:(0,r.jsx)(u.F,{className:"h-[400px] w-full xs:max-w-xs p-4 grid",children:s?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-8",children:[(0,r.jsx)(n.A,{className:"h-8 w-8 animate-spin"}),(0,r.jsx)("p",{className:"mt-2",children:"Loading messages..."})]}):0===e.length?(0,r.jsx)("p",{className:"text-center py-8 text-muted-foreground",children:"No messages found"}):e.map(e=>{let{date:t,time:s}=P(e.timestamp),a=e.originalIndices||[e.index];return(0,r.jsxs)(c.lG,{children:[(0,r.jsx)(c.zM,{className:"w-full",children:(0,r.jsxs)(d.Zp,{className:"my-2 dark:hover:bg-slate-900 hover:bg-slate-100",children:[(0,r.jsxs)(d.aR,{children:[(0,r.jsxs)("div",{className:"flex justify-between items-center",children:[(0,r.jsx)(d.ZB,{children:e.sender}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("p",{className:"text-muted-foreground font-medium text-xs",children:a.join(", ")}),(0,r.jsx)(m.S,{checked:a.every(e=>y.includes(e)),onCheckedChange:()=>L(a)})]})]}),(0,r.jsxs)(d.BT,{className:"text-left",children:[t," at ",s]})]}),(0,r.jsx)(d.Wu,{children:(0,r.jsx)("p",{className:"line-clamp-3",children:e.message})})]})}),(0,r.jsxs)(c.Cf,{children:[(0,r.jsxs)(c.c7,{children:[(0,r.jsx)(c.L3,{children:e.sender}),(0,r.jsxs)(c.rr,{children:[t," at ",s]})]}),(0,r.jsx)("p",{className:"whitespace-pre-line",children:e.message}),(0,r.jsx)(p.w,{className:"my-2"}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(h.T,{placeholder:"Reply to ".concat(e.sender,"..."),className:"h-24",value:A,onChange:e=>T(e.target.value)}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsxs)(f.$,{onClick:()=>D(e.sender,A),disabled:C||!A.trim(),children:[C?(0,r.jsx)(n.A,{className:"h-4 w-4 mr-2 animate-spin"}):(0,r.jsx)(i.A,{className:"h-4 w-4 mr-2"}),C?"Sending...":"Reply"]})})]})]})]},a.join("-"))})})}),(0,r.jsx)(d.wL,{className:"border-t py-4",children:(0,r.jsxs)("div",{className:"flex w-full justify-between items-center",children:[(0,r.jsxs)(f.$,{variant:"outline",onClick:z,disabled:s,children:[(0,r.jsx)(l,{className:"h-4 w-4 mr-2"}),"Refresh"]}),(0,r.jsxs)(f.$,{variant:"destructive",disabled:0===y.length||s,onClick:()=>{if(0===y.length){(0,g.oR)({title:"Delete Messages",description:"No messages selected"});return}O(y)},children:[(0,r.jsx)(o.A,{className:"h-4 w-4"}),"Delete Selected"]})]})})]}),(0,r.jsxs)(d.Zp,{children:[(0,r.jsxs)(d.aR,{children:[(0,r.jsx)(d.ZB,{children:"Send SMS"}),(0,r.jsx)(d.BT,{children:"Send a new SMS message"})]}),(0,r.jsx)(d.Wu,{children:(0,r.jsxs)("div",{className:"grid gap-6",children:[(0,r.jsx)(x.p,{placeholder:'Recipient number with country code not including "+" symbol.',value:N,onChange:e=>S(e.target.value),required:!0}),(0,r.jsx)(h.T,{placeholder:"Type your SMS here...",className:"h-32",value:R,onChange:e=>k(e.target.value),required:!0}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsxs)(f.$,{onClick:I,disabled:C||!N.trim()||!R.trim(),children:[C?(0,r.jsx)(n.A,{className:"h-4 w-4 animate-spin"}):(0,r.jsx)(i.A,{className:"h-4 w-4"}),C?"Sending SMS...":"Send SMS"]})})]})})]})]})}},42541:(e,t,s)=>{"use strict";s.d(t,{$:()=>d,r:()=>o});var r=s(20475),a=s(20107),n=s(61837),i=s(29395),l=s(22250);let o=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=a.forwardRef((e,t)=>{let{className:s,variant:a,size:i,asChild:d=!1,...c}=e,u=d?n.DX:"button";return(0,r.jsx)(u,{className:(0,l.cn)(o({variant:a,size:i,className:s})),ref:t,...c})});d.displayName="Button"},72167:(e,t,s)=>{"use strict";s.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>o,Zp:()=>i,aR:()=>l,wL:()=>u});var r=s(20475),a=s(20107),n=s(22250);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",s),...a})});i.displayName="Card";let l=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",s),...a})});l.displayName="CardHeader";let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,n.cn)("font-semibold leading-none tracking-tight",s),...a})});o.displayName="CardTitle";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",s),...a})});d.displayName="CardDescription";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",s),...a})});c.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",s),...a})});u.displayName="CardFooter"},574:(e,t,s)=>{"use strict";s.d(t,{S:()=>o});var r=s(20475),a=s(20107),n=s(32713),i=s(7197),l=s(22250);let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.bL,{ref:t,className:(0,l.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",s),...a,children:(0,r.jsx)(n.C1,{className:(0,l.cn)("flex items-center justify-center text-current"),children:(0,r.jsx)(i.Srz,{className:"h-4 w-4"})})})});o.displayName=n.bL.displayName},93557:(e,t,s)=>{"use strict";s.d(t,{Cf:()=>f,Es:()=>h,HM:()=>u,L3:()=>x,c7:()=>p,lG:()=>o,rr:()=>g,zM:()=>d});var r=s(20475),a=s(20107),n=s(60241),i=s(7197),l=s(22250);let o=n.bL,d=n.l9,c=n.ZL,u=n.bm,m=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.hJ,{ref:t,className:(0,l.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a})});m.displayName=n.hJ.displayName;let f=a.forwardRef((e,t)=>{let{className:s,children:a,...o}=e;return(0,r.jsxs)(c,{children:[(0,r.jsx)(m,{}),(0,r.jsxs)(n.UC,{ref:t,className:(0,l.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...o,children:[a,(0,r.jsxs)(n.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,r.jsx)(i.MKb,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=n.UC.displayName;let p=e=>{let{className:t,...s}=e;return(0,r.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...s})};p.displayName="DialogHeader";let h=e=>{let{className:t,...s}=e;return(0,r.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s})};h.displayName="DialogFooter";let x=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.hE,{ref:t,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",s),...a})});x.displayName=n.hE.displayName;let g=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.VY,{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",s),...a})});g.displayName=n.VY.displayName},64219:(e,t,s)=>{"use strict";s.d(t,{p:()=>i});var r=s(20475),a=s(20107),n=s(22250);let i=a.forwardRef((e,t)=>{let{className:s,type:a,...i}=e;return(0,r.jsx)("input",{type:a,className:(0,n.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...i})});i.displayName="Input"},36824:(e,t,s)=>{"use strict";s.d(t,{$:()=>o,F:()=>l});var r=s(20475),a=s(20107),n=s(89679),i=s(22250);let l=a.forwardRef((e,t)=>{let{className:s,children:a,...l}=e;return(0,r.jsxs)(n.bL,{ref:t,className:(0,i.cn)("relative overflow-hidden",s),...l,children:[(0,r.jsx)(n.LM,{className:"h-full w-full rounded-[inherit]",children:a}),(0,r.jsx)(o,{}),(0,r.jsx)(n.OK,{})]})});l.displayName=n.bL.displayName;let o=a.forwardRef((e,t)=>{let{className:s,orientation:a="vertical",...l}=e;return(0,r.jsx)(n.VM,{ref:t,orientation:a,className:(0,i.cn)("flex touch-none select-none transition-colors","vertical"===a&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",s),...l,children:(0,r.jsx)(n.lr,{className:"relative flex-1 rounded-full bg-border"})})});o.displayName=n.VM.displayName},50049:(e,t,s)=>{"use strict";s.d(t,{w:()=>c});var r=s(20475),a=s(20107),n=s(34544),i="horizontal",l=["horizontal","vertical"],o=a.forwardRef((e,t)=>{let{decorative:s,orientation:a=i,...o}=e,d=l.includes(a)?a:i;return(0,r.jsx)(n.sG.div,{"data-orientation":d,...s?{role:"none"}:{"aria-orientation":"vertical"===d?d:void 0,role:"separator"},...o,ref:t})});o.displayName="Separator";var d=s(22250);let c=a.forwardRef((e,t)=>{let{className:s,orientation:a="horizontal",decorative:n=!0,...i}=e;return(0,r.jsx)(o,{ref:t,decorative:n,orientation:a,className:(0,d.cn)("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",s),...i})});c.displayName=o.displayName},31739:(e,t,s)=>{"use strict";s.d(t,{T:()=>i});var r=s(20475),a=s(20107),n=s(22250);let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("textarea",{className:(0,n.cn)("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),ref:t,...a})});i.displayName="Textarea"},32857:(e,t,s)=>{"use strict";s.d(t,{dj:()=>m,oR:()=>u});var r=s(20107);let a=0,n=new Map,i=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},l=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?i(s):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},o=[],d={toasts:[]};function c(e){d=l(d,e),o.forEach(e=>{e(d)})}function u(e){let{...t}=e,s=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>c({type:"DISMISS_TOAST",toastId:s});return c({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||r()}}}),{id:s,dismiss:r,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function m(){let[e,t]=r.useState(d);return r.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,s)=>{"use strict";s.d(t,{cn:()=>n});var r=s(64901),a=s(868);function n(){for(var e=arguments.length,t=Array(e),s=0;s{"use strict";s.d(t,{A:()=>r});let r=(0,s(39997).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},66698:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(39997).A)("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])},51873:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(39997).A)("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"}]])},32713:(e,t,s)=>{"use strict";s.d(t,{C1:()=>R,bL:()=>S});var r=s(20107),a=s(64236),n=s(45170),i=s(94521),l=s(13061),o=s(65163),d=s(63620),c=s(54245),u=s(34544),m=s(20475),f="Checkbox",[p,h]=(0,n.A)(f),[x,g]=p(f),v=r.forwardRef((e,t)=>{let{__scopeCheckbox:s,name:n,checked:o,defaultChecked:d,required:c,disabled:f,value:p="on",onCheckedChange:h,form:g,...v}=e,[y,b]=r.useState(null),S=(0,a.s)(t,e=>b(e)),R=r.useRef(!1),k=!y||g||!!y.closest("form"),[C=!1,E]=(0,l.i)({prop:o,defaultProp:d,onChange:h}),A=r.useRef(C);return r.useEffect(()=>{let e=null==y?void 0:y.form;if(e){let t=()=>E(A.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[y,E]),(0,m.jsxs)(x,{scope:s,state:C,disabled:f,children:[(0,m.jsx)(u.sG.button,{type:"button",role:"checkbox","aria-checked":j(C)?"mixed":C,"aria-required":c,"data-state":N(C),"data-disabled":f?"":void 0,disabled:f,value:p,...v,ref:S,onKeyDown:(0,i.m)(e.onKeyDown,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.m)(e.onClick,e=>{E(e=>!!j(e)||!e),k&&(R.current=e.isPropagationStopped(),R.current||e.stopPropagation())})}),k&&(0,m.jsx)(w,{control:y,bubbles:!R.current,name:n,value:p,checked:C,required:c,disabled:f,form:g,style:{transform:"translateX(-100%)"},defaultChecked:!j(d)&&d})]})});v.displayName=f;var y="CheckboxIndicator",b=r.forwardRef((e,t)=>{let{__scopeCheckbox:s,forceMount:r,...a}=e,n=g(y,s);return(0,m.jsx)(c.C,{present:r||j(n.state)||!0===n.state,children:(0,m.jsx)(u.sG.span,{"data-state":N(n.state),"data-disabled":n.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});b.displayName=y;var w=e=>{let{control:t,checked:s,bubbles:a=!0,defaultChecked:n,...i}=e,l=r.useRef(null),c=(0,o.Z)(s),u=(0,d.X)(t);r.useEffect(()=>{let e=l.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(c!==s&&t){let r=new Event("click",{bubbles:a});e.indeterminate=j(s),t.call(e,!j(s)&&s),e.dispatchEvent(r)}},[c,s,a]);let f=r.useRef(!j(s)&&s);return(0,m.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:null!=n?n:f.current,...i,tabIndex:-1,ref:l,style:{...e.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function j(e){return"indeterminate"===e}function N(e){return j(e)?"indeterminate":e?"checked":"unchecked"}var S=v,R=b},65163:(e,t,s)=>{"use strict";s.d(t,{Z:()=>a});var r=s(20107);function a(e){let t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},63620:(e,t,s)=>{"use strict";s.d(t,{X:()=>n});var r=s(20107),a=s(54122);function n(e){let[t,s]=r.useState(void 0);return(0,a.N)(()=>{if(e){s({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,a;if(!Array.isArray(t)||!t.length)return;let n=t[0];if("borderBoxSize"in n){let e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,a=t.blockSize}else r=e.offsetWidth,a=e.offsetHeight;s({width:r,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}s(void 0)},[e]),t}}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,8885,9464,6357,9679,191,6035,7358],()=>t(54016)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/cell-scanner/page-a4709c7977b627a1.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/cell-scanner/page-a4709c7977b627a1.js new file mode 100644 index 0000000..0a1b367 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/cell-scanner/page-a4709c7977b627a1.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5014],{41126:(e,s,t)=>{Promise.resolve().then(t.bind(t,37277))},37277:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>C});var a=t(20475),r=t(20107),n=t(72167),l=t(51303),c=t(85014),i=t(42541),d=t(33466),o=t(22250);let u=r.forwardRef((e,s)=>{let{className:t,value:r,...n}=e;return(0,a.jsx)(d.bL,{ref:s,className:(0,o.cn)("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",t),...n,children:(0,a.jsx)(d.C1,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:"translateX(-".concat(100-(r||0),"%)")}})})});u.displayName=d.bL.displayName;var m=t(59166),h=t(27720),x=t(91994),p=t(76076),f=t(51873),g=t(45934),j=t(38741),b=t(36824),v=t(32857);let N=e=>{let{neighborCells:s}=e;(0,r.useEffect)(()=>{s&&console.log("Neighbor cells data:",s)},[s]);let t=e=>e?Array.from(e.matchAll(/\+QENG: "neighbourcell (intra|inter)","LTE",(\d+),(\d+),(-?\d+),(-?\d+)/g)).map(e=>({type:"LTE",cellType:e[1],frequency:parseInt(e[2]),pci:parseInt(e[3]),rsrq:parseInt(e[4]),rsrp:parseInt(e[5])})):[],n=e=>e?Array.from(e.matchAll(/\+QNWCFG: "nr5g_meas_info",(\d+),(\d+),(\d+),(-?\d+),(-?\d+)/g)).map(e=>({type:"NR5G-NSA",cellType:"nr5g",frequency:parseInt(e[2]),pci:parseInt(e[3]),rsrp:parseInt(e[4]),rsrq:parseInt(e[5])})):[],i=e=>e>=-65?(0,a.jsx)(j.z_q,{className:"text-xl text-green-500"}):e>=-75?(0,a.jsx)(j.sRp,{className:"text-xl text-green-400"}):e>=-85?(0,a.jsx)(j.ztD,{className:"text-xl text-yellow-500"}):e>=-95?(0,a.jsx)(j.G7Q,{className:"text-xl text-yellow-600"}):(0,a.jsx)(j.NJ4,{className:"text-xl text-red-500"}),d=[];if((null==s?void 0:s.status)==="success"){var o,u,m,h;(null===(o=s.data)||void 0===o?void 0:o.neighborCells)?d=[...d,...t(s.data.neighborCells)]:(null===(u=s.raw_data)||void 0===u?void 0:u.neighborCells)&&(d=[...d,...t(s.raw_data.neighborCells)]),(null===(m=s.data)||void 0===m?void 0:m.meas)?d=[...d,...n(s.data.meas)]:(null===(h=s.raw_data)||void 0===h?void 0:h.meas)&&(d=[...d,...n(s.raw_data.meas)])}return(d.sort((e,s)=>e.type.startsWith("NR5G")&&!s.type.startsWith("NR5G")?-1:!e.type.startsWith("NR5G")&&s.type.startsWith("NR5G")?1:s.rsrp-e.rsrp),s&&0!==d.length)?(0,a.jsx)("div",{className:"space-y-4",children:(0,a.jsxs)(l.XI,{children:[(0,a.jsx)(l.A0,{children:(0,a.jsxs)(l.Hj,{children:[(0,a.jsx)(l.nd,{children:"Type"}),(0,a.jsx)(l.nd,{children:"Cell Type"}),(0,a.jsx)(l.nd,{children:"Frequency"}),(0,a.jsx)(l.nd,{children:"PCI"}),(0,a.jsx)(l.nd,{children:"Signal"})]})}),(0,a.jsx)(l.BF,{children:d.map((e,s)=>(0,a.jsxs)(l.Hj,{children:[(0,a.jsx)(l.nA,{className:"font-medium",children:e.type}),(0,a.jsx)(l.nA,{children:e.cellType}),(0,a.jsx)(l.nA,{children:e.frequency}),(0,a.jsx)(l.nA,{children:e.pci}),(0,a.jsx)(l.nA,{children:(0,a.jsx)(c.TooltipProvider,{children:(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{children:i(e.rsrp)}),(0,a.jsx)(c.ZI,{children:(0,a.jsxs)("div",{className:"grid gap-1",children:[(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-1",children:["RSRP ",(0,a.jsxs)("span",{className:"font-medium",children:[e.rsrp," dBm"]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-1",children:["RSRQ ",(0,a.jsxs)("span",{className:"font-medium",children:[e.rsrq," dB"]})]})]})})]})})})]},"".concat(e.type,"-").concat(e.frequency,"-").concat(e.pci,"-").concat(s)))})]})}):(0,a.jsx)("div",{className:"text-center py-4 text-gray-500",children:"No neighbor cells data available"})};var y=t(7197);let w={6:"1.4 MHz",15:"3 MHz",25:"5 MHz",50:"10 MHz",75:"15 MHz",100:"20 MHz","-":"-"},C=()=>{let{toast:e}=(0,v.dj)(),[s,t]=(0,r.useState)(null),[d,o]=(0,r.useState)(null),[C,T]=(0,r.useState)(0),[S,k]=(0,r.useState)(!1),[A,R]=(0,r.useState)(null),[I,_]=(0,r.useState)([]),[E,q]=(0,r.useState)(null),[F,M]=(0,r.useState)({status:"idle",progress:0,message:""}),[D,O]=(0,r.useState)(0);(0,r.useEffect)(()=>{if(!d){T(0);return}let e=()=>{let s=new Date(d).getTime(),t=Math.max(0,6e4-(new Date().getTime()-s));T(t),t>0&&requestAnimationFrame(e)};e()},[d]);let P=(0,r.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/experimental/cell_scanner/fetch_mccmnc.sh"),s=await e.json();_(s)}catch(s){console.error("Failed to fetch MCC-MNC list:",s),e({title:"Warning",description:"Failed to load operator information",variant:"destructive"})}},[]);(0,r.useEffect)(()=>{P()},[P]);let B=(0,r.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/experimental/quecwatch/fetch-quecwatch.sh"),s=await e.json();R(s)}catch(s){console.error("Failed to fetch Quecwatch status:",s),e({title:"Error",description:"Failed to check Quecwatch status",variant:"destructive"})}},[]),z=(0,r.useCallback)((e,s)=>I.find(t=>t.mcc===e&&t.mnc===s)||null,[I]),H=(0,r.useCallback)(e=>e?e.split("\n").filter(e=>e.trim().startsWith("+QSCAN:")).map(e=>{let[s,t,a,r,n,l,c,i,...d]=e.substring(e.indexOf(":")+1).trim().split(",").map(e=>e.trim().replace(/\\"/g,"").replace(/"/g,"").replace(/\r/g,"")),o={type:s=s.replace(/\\\\/g,"").replace(/\\/g,"").replace(/"/g,"").trim(),mcc:t,mnc:a,freq:parseInt(r),pci:parseInt(n),rsrp:parseInt(l),rsrq:parseInt(c),srxlev:"-"===i?0:parseInt(i),cellId:"",tac:""};if("LTE"===s){let[e,s,t,a,r]=d,n=parseInt(a),l=w[n.toString()]||"".concat(n," RB");return{...o,type:"LTE",squal:"-"===e?0:parseInt(e),cellId:s,tac:t,bandwidth:n,bandwidthMHz:l,band:parseInt(r)}}if("NR5G"===s){let[e,s,t,a,r,n,l,c]=d;return{...o,type:"NR5G",cellId:e,tac:s,scs:parseInt(t),carrierBandwidth:parseInt(a),band:parseInt(r),offsetToPointA:parseInt(n),ssbSubcarrierOffset:parseInt(l),ssbScs:parseInt(c)}}return null}).filter(e=>null!==e):[],[]),L=(0,r.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/experimental/cell_scanner/check_scan.sh",{headers:{"Cache-Control":"no-cache, no-store"}});if(!e.ok)return;let s=await e.json();"success"===s.status&&s.output?(t(s),o(s.timestamp||null)):"running"===s.status&&(M({status:"scanning",progress:50,message:"Scan in progress...",startTime:Date.now()-6e4}),G(),setTimeout($,2e3))}catch(e){console.error("Failed to check initial scan results",e)}},[]),$=(0,r.useCallback)(async()=>{if(D>60){console.log("Reached maximum polling attempts, waiting for results to appear");return}try{let e=await fetch("/cgi-bin/quecmanager/experimental/cell_scanner/check_scan.sh",{headers:{"Cache-Control":"no-cache, no-store"}});if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));let s=await e.json();if("success"===s.status&&s.output){t(s),o(s.timestamp||null),M({status:"idle",progress:100,message:""}),O(0);return}if("running"===s.status){O(e=>e+1),setTimeout($,2e3);return}D<30&&(O(e=>e+1),setTimeout($,2e3))}catch(e){console.error("Failed to check scan status",e),D<60&&(O(e=>e+1),setTimeout($,3e3))}},[D]),G=(0,r.useCallback)(()=>{let e;e=setInterval(()=>{M(s=>{if("scanning"!==s.status)return clearInterval(e),s;let t=10+88*Math.min((Date.now()-(s.startTime||Date.now()))/12e4,1),a="Scanning available networks... This may take a minute";return t>85?a="Finalizing scan results...":t>50&&(a="Collecting operator data..."),{...s,progress:Math.min(t,98),message:a}})},1e3),setTimeout(()=>{clearInterval(e),M(e=>"scanning"===e.status?{...e,progress:98,message:"Waiting for results..."}:e)},15e4)},[]),Q=(0,r.useCallback)(async()=>{if("scanning"!==F.status&&!S){k(!0),t(null),o(null),O(0),M({status:"scanning",progress:0,message:"Initiating scan...",startTime:Date.now()});try{let e=await fetch("/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan.sh",{headers:{"Cache-Control":"no-cache, no-store"}});if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));let s=await e.json();if("running"===s.status||"success"===s.status)M(e=>({...e,progress:10,message:"Scan in progress..."})),G(),setTimeout($,2e3);else throw Error(s.message||"Failed to start scan")}catch(s){console.error("Scan error:",s),e({title:"Error",description:s instanceof Error?s.message:"Failed to start cell scan",variant:"destructive"}),M({status:"idle",progress:0,message:""})}finally{k(!1)}}},[F.status,S,$,G]),Z=(0,r.useCallback)(e=>e.reduce((e,s)=>{let t="".concat(s.mcc).concat(s.mnc);if(!e[t]){let a=z(s.mcc,s.mnc);e[t]={cells:[],operatorInfo:a}}return e[t].cells.push(s),e},{}),[z]),W=(0,r.useCallback)(e=>[...e].sort((e,s)=>e.type!==s.type?"LTE"===e.type?-1:1:s.rsrp-e.rsrp),[]),V=(0,r.useCallback)(e=>e>=-65?(0,a.jsx)(j.z_q,{className:"text-xl text-green-500"}):e>=-75?(0,a.jsx)(j.sRp,{className:"text-xl text-green-400"}):e>=-85?(0,a.jsx)(j.ztD,{className:"text-xl text-yellow-500"}):e>=-95?(0,a.jsx)(j.G7Q,{className:"text-xl text-yellow-600"}):(0,a.jsx)(j.NJ4,{className:"text-xl text-red-500"}),[]);(0,r.useEffect)(()=>{L(),B()},[L,B]);let U=(0,r.useCallback)(()=>{t(null),o(null),M({status:"idle",progress:0,message:""})},[]),X=(0,r.useCallback)(()=>{if(!(null==s?void 0:s.output))return;let e=new Blob([["Type,MCC,MNC,Frequency,PCI,RSRP,RSRQ,Band,Cell ID,TAC",...H(s.output).map(e=>"".concat(e.type,",").concat(e.mcc,",").concat(e.mnc,",").concat(e.freq,",").concat(e.pci,",").concat(e.rsrp,",").concat(e.rsrq,",").concat(e.band,",").concat(e.cellId,",").concat(e.tac))].join("\n")],{type:"text/csv;charset=utf-8;"}),t=document.createElement("a");t.href=URL.createObjectURL(e),t.setAttribute("download","cell_scan_".concat(new Date().toISOString(),".csv")),document.body.appendChild(t),t.click(),document.body.removeChild(t)},[s,H]),J=(0,r.useCallback)((e,s,t)=>t?"".concat(e).concat(s," - ").concat(t.brand," by ").concat(t.operator):"".concat(e).concat(s),[]),K=(null==s?void 0:s.status)==="success"&&s.output?Z(H(s.output)):{},Y=(0,r.useCallback)(async()=>{if(!S){k(!0),q(null);try{let e=await fetch("/cgi-bin/quecmanager/experimental/cell_scanner/network_info.sh");if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));let a=await e.json();if(console.log("Neighbor cell data:",a),"success"===a.status&&a.mode){var s,t;(null===(s=a.data)||void 0===s?void 0:s.neighborCells)||(null===(t=a.data)||void 0===t?void 0:t.meas)?q(a):a.raw_data&&q({status:a.status,timestamp:a.timestamp,mode:a.mode,data:{neighborCells:a.raw_data.neighborCells,meas:a.raw_data.meas}})}else q(a)}catch(s){console.error("Failed to fetch neighbor cells",s),e({title:"Error",description:"Failed to scan neighbor cells. Please try again.",variant:"destructive"})}finally{k(!1)}}},[S]),ee=(0,r.useCallback)(()=>{q(null)},[]);return(0,a.jsxs)("div",{className:"grid gap-5",children:[(0,a.jsxs)(n.Zp,{children:[(0,a.jsxs)(n.aR,{children:[(0,a.jsx)(n.ZB,{children:"Full Network Cell Scan"}),(0,a.jsxs)(n.BT,{children:["Scan all available network cells, including those from other network providers. Current network mode will affect the results and you may be disconnected during the scan.",d&&(0,a.jsxs)("div",{className:"mt-1 text-sm text-muted-foreground",children:["Last scan: ",d]})]})]}),(0,a.jsx)(n.Wu,{children:(0,a.jsxs)(b.F,{className:"h-96",children:[!s&&"idle"===F.status&&(0,a.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,a.jsx)("p",{className:"text-gray-500 text-center",children:"Click the button below to start scanning the network..."})}),"scanning"===F.status&&(0,a.jsxs)("div",{className:"flex flex-col space-y-2 items-center justify-center h-full w-full",children:[(0,a.jsx)(u,{value:F.progress,className:"w-full"}),(0,a.jsx)("div",{className:"flex items-center justify-center",children:(0,a.jsx)("p",{className:"text-sm text-gray-500 text-center",children:F.message})})]}),(0,a.jsx)("div",{className:"grid gap-4",children:Object.entries(K).map(e=>{let[s,{cells:t,operatorInfo:r}]=e;return(0,a.jsxs)(n.Zp,{className:"p-4 grid gap-2",children:[(0,a.jsx)("div",{children:(0,a.jsx)(g.E,{children:J(t[0].mcc,t[0].mnc,r)})}),(0,a.jsxs)(l.XI,{children:[(0,a.jsx)(l.A0,{children:(0,a.jsxs)(l.Hj,{children:[(0,a.jsx)(l.nd,{children:"Type"}),(0,a.jsx)(l.nd,{children:"E/ARFCN"}),(0,a.jsx)(l.nd,{children:"PCI"}),(0,a.jsx)(l.nd,{children:"Band"}),(0,a.jsx)(l.nd,{children:"Bandwidth"}),(0,a.jsx)(l.nd,{children:"Cell ID"}),(0,a.jsx)(l.nd,{children:"TAC"}),(0,a.jsx)(l.nd,{children:"Signal"})]})}),(0,a.jsx)(l.BF,{children:W(t).map((e,s)=>(0,a.jsxs)(l.Hj,{children:[(0,a.jsx)(l.nA,{children:e.type}),(0,a.jsx)(l.nA,{children:e.freq}),(0,a.jsx)(l.nA,{children:e.pci}),(0,a.jsx)(l.nA,{children:e.band}),(0,a.jsx)(l.nA,{children:"LTE"===e.type?e.bandwidthMHz:"-"}),(0,a.jsx)(l.nA,{children:e.cellId}),(0,a.jsx)(l.nA,{children:e.tac}),(0,a.jsx)(l.nA,{children:(0,a.jsx)(c.TooltipProvider,{children:(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{children:V(e.rsrp)}),(0,a.jsx)(c.ZI,{children:(0,a.jsxs)("div",{className:"grid gap-1",children:[(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-1",children:["RSRP"," ",(0,a.jsxs)("span",{className:"font-medium",children:[e.rsrp," dBm"]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-1",children:["RSRQ"," ",(0,a.jsxs)("span",{className:"font-medium",children:[e.rsrq," dB"]})]})]})})]})})})]},"".concat(e.cellId,"-").concat(s)))})]})]},s)})})]})}),(0,a.jsx)(n.wL,{className:"border-t py-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(null==A?void 0:A.status)==="active"?(0,a.jsx)(c.TooltipProvider,{children:(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{children:(0,a.jsx)(i.$,{disabled:!0,children:"scanning"===F.status?(0,a.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,a.jsx)(m.A,{className:"animate-spin w-4 h-4"}),(0,a.jsx)("span",{children:"Scanning Network..."})]}):s?(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(x.A,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Run Cell Scan Again"})]}):(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(h.A,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Start Cell Scan"})]})})}),(0,a.jsx)(c.ZI,{children:"Please disable Quecwatch first before proceeding."})]})}):(0,a.jsx)(c.TooltipProvider,{children:(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{children:(0,a.jsx)(i.$,{onClick:Q,disabled:"scanning"===F.status||S||C>0,children:"scanning"===F.status?(0,a.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,a.jsx)(m.A,{className:"animate-spin w-4 h-4"}),(0,a.jsx)("span",{children:"Scanning Network..."})]}):s?(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(x.A,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Run Cell Scan Again"})]}):(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(h.A,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Start Cell Scan"})]})})}),(0,a.jsx)(c.ZI,{children:C>0?(0,a.jsxs)("span",{children:["Please wait ",Math.ceil(C/1e3)," ","seconds before scanning again"]}):(0,a.jsx)("span",{children:"Start a new network scan"})})]})}),(null==s?void 0:s.status)==="success"&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.$,{variant:"secondary",onClick:X,disabled:"scanning"===F.status,children:[(0,a.jsx)(p.A,{className:"w-4 h-4 mr-2"}),"Export to CSV"]}),(0,a.jsxs)(i.$,{variant:"destructive",onClick:U,disabled:"scanning"===F.status,children:[(0,a.jsx)(f.A,{className:"w-4 h-4 mr-2"}),"Clear Results"]})]})]})})]}),(0,a.jsxs)(n.Zp,{children:[(0,a.jsxs)(n.aR,{children:[(0,a.jsx)(n.ZB,{children:"Neighbor Cell Scan"}),(0,a.jsxs)(n.BT,{children:["Scan neighbor cells of the current network provider. This provides detailed information about cells in your immediate vicinity that your device can connect to.",(null==E?void 0:E.timestamp)&&(0,a.jsxs)("div",{className:"mt-1 text-sm text-muted-foreground",children:["Last scan: ",E.timestamp]})]})]}),(0,a.jsx)(n.Wu,{children:(0,a.jsx)(N,{neighborCells:E})}),(0,a.jsx)(n.wL,{className:"border-t py-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(i.$,{onClick:Y,disabled:S||(null==A?void 0:A.status)==="active",children:S?(0,a.jsxs)("div",{className:"flex items-center gap-x-2",children:[(0,a.jsx)(m.A,{className:"animate-spin w-4 h-4"}),(0,a.jsx)("span",{children:"Scanning..."})]}):(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(y.$p$,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Start Neighbor Scan"})]})}),(null==E?void 0:E.status)==="success"&&(0,a.jsxs)(i.$,{variant:"destructive",onClick:ee,disabled:S,children:[(0,a.jsx)(f.A,{className:"w-4 h-4 mr-2"}),"Clear Results"]})]})})]})]})}},45934:(e,s,t)=>{"use strict";t.d(s,{E:()=>c});var a=t(20475);t(20107);var r=t(29395),n=t(22250);let l=(0,r.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function c(e){let{className:s,variant:t,...r}=e;return(0,a.jsx)("div",{className:(0,n.cn)(l({variant:t}),s),...r})}},42541:(e,s,t)=>{"use strict";t.d(s,{$:()=>d,r:()=>i});var a=t(20475),r=t(20107),n=t(61837),l=t(29395),c=t(22250);let i=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=r.forwardRef((e,s)=>{let{className:t,variant:r,size:l,asChild:d=!1,...o}=e,u=d?n.DX:"button";return(0,a.jsx)(u,{className:(0,c.cn)(i({variant:r,size:l,className:t})),ref:s,...o})});d.displayName="Button"},72167:(e,s,t)=>{"use strict";t.d(s,{BT:()=>d,Wu:()=>o,ZB:()=>i,Zp:()=>l,aR:()=>c,wL:()=>u});var a=t(20475),r=t(20107),n=t(22250);let l=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",t),...r})});l.displayName="Card";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",t),...r})});c.displayName="CardHeader";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("h3",{ref:s,className:(0,n.cn)("font-semibold leading-none tracking-tight",t),...r})});i.displayName="CardTitle";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("p",{ref:s,className:(0,n.cn)("text-sm text-muted-foreground",t),...r})});d.displayName="CardDescription";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("p-6 pt-0",t),...r})});o.displayName="CardContent";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("flex items-center p-6 pt-0",t),...r})});u.displayName="CardFooter"},36824:(e,s,t)=>{"use strict";t.d(s,{$:()=>i,F:()=>c});var a=t(20475),r=t(20107),n=t(89679),l=t(22250);let c=r.forwardRef((e,s)=>{let{className:t,children:r,...c}=e;return(0,a.jsxs)(n.bL,{ref:s,className:(0,l.cn)("relative overflow-hidden",t),...c,children:[(0,a.jsx)(n.LM,{className:"h-full w-full rounded-[inherit]",children:r}),(0,a.jsx)(i,{}),(0,a.jsx)(n.OK,{})]})});c.displayName=n.bL.displayName;let i=r.forwardRef((e,s)=>{let{className:t,orientation:r="vertical",...c}=e;return(0,a.jsx)(n.VM,{ref:s,orientation:r,className:(0,l.cn)("flex touch-none select-none transition-colors","vertical"===r&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...c,children:(0,a.jsx)(n.lr,{className:"relative flex-1 rounded-full bg-border"})})});i.displayName=n.VM.displayName},51303:(e,s,t)=>{"use strict";t.d(s,{A0:()=>c,BF:()=>i,Hj:()=>d,XI:()=>l,nA:()=>u,nd:()=>o,r6:()=>m});var a=t(20475),r=t(20107),n=t(22250);let l=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",{ref:s,className:(0,n.cn)("w-full caption-bottom text-sm",t),...r})})});l.displayName="Table";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("thead",{ref:s,className:(0,n.cn)("[&_tr]:border-b",t),...r})});c.displayName="TableHeader";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tbody",{ref:s,className:(0,n.cn)("[&_tr:last-child]:border-0",t),...r})});i.displayName="TableBody",r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tfoot",{ref:s,className:(0,n.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...r})}).displayName="TableFooter";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tr",{ref:s,className:(0,n.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...r})});d.displayName="TableRow";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("th",{ref:s,className:(0,n.cn)("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...r})});o.displayName="TableHead";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("td",{ref:s,className:(0,n.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...r})});u.displayName="TableCell";let m=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("caption",{ref:s,className:(0,n.cn)("mt-4 text-sm text-muted-foreground",t),...r})});m.displayName="TableCaption"},85014:(e,s,t)=>{"use strict";t.d(s,{TooltipProvider:()=>c,ZI:()=>o,k$:()=>d,m_:()=>i});var a=t(20475),r=t(20107),n=t(43048),l=t(22250);let c=n.Kq,i=n.bL,d=n.l9,o=r.forwardRef((e,s)=>{let{className:t,sideOffset:r=4,...c}=e;return(0,a.jsx)(n.UC,{ref:s,sideOffset:r,className:(0,l.cn)("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...c})});o.displayName=n.UC.displayName},32857:(e,s,t)=>{"use strict";t.d(s,{dj:()=>m,oR:()=>u});var a=t(20107);let r=0,n=new Map,l=e=>{if(n.has(e))return;let s=setTimeout(()=>{n.delete(e),o({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,s)},c=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case"DISMISS_TOAST":{let{toastId:t}=s;return t?l(t):e.toasts.forEach(e=>{l(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===t||void 0===t?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===s.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==s.toastId)}}},i=[],d={toasts:[]};function o(e){d=c(d,e),i.forEach(e=>{e(d)})}function u(e){let{...s}=e,t=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>o({type:"DISMISS_TOAST",toastId:t});return o({type:"ADD_TOAST",toast:{...s,id:t,open:!0,onOpenChange:e=>{e||a()}}}),{id:t,dismiss:a,update:e=>o({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function m(){let[e,s]=a.useState(d);return a.useEffect(()=>(i.push(s),()=>{let e=i.indexOf(s);e>-1&&i.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>o({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,s,t)=>{"use strict";t.d(s,{cn:()=>n});var a=t(64901),r=t(868);function n(){for(var e=arguments.length,s=Array(e),t=0;t{var s=s=>e(e.s=s);e.O(0,[9980,2101,7780,8885,7563,9679,3048,7231,191,6035,7358],()=>s(41126)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/keep-alive/page-dba158bf59af2a41.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/keep-alive/page-dba158bf59af2a41.js new file mode 100644 index 0000000..0a614c4 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/keep-alive/page-dba158bf59af2a41.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3376],{82064:(e,t,r)=>{Promise.resolve().then(r.bind(r,53302))},53302:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>p});var a=r(20475),s=r(20107),n=r(72167),i=r(64219),l=r(49153),o=r(12607);let d=(0,r(39997).A)("Disc",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);var c=r(21906),u=r(32857);let p=()=>{let[e,t]=(0,s.useState)(""),[r,p]=(0,s.useState)(""),[f,m]=(0,s.useState)(""),[v,h]=(0,s.useState)(!1),{toast:g}=(0,u.dj)();(0,s.useEffect)(()=>{b()},[]);let b=async()=>{try{let e=await fetch("/cgi-bin/quecmanager/experimental/keep_alive.sh?status=true"),r=await e.json();t(r.start_time),p(r.end_time),m(r.interval.toString()),h(1===r.enabled)}catch(e){g({title:"Error",description:"Failed to fetch current status",variant:"destructive"})}},x=async t=>{try{if(t){if(!e||!r||!f){g({title:"Error",description:"Please fill in all fields",variant:"destructive"});return}let t=parseInt(f,10);if(isNaN(t)||t<=0){g({title:"Error",description:"Interval must be a positive number",variant:"destructive"});return}let a=await fetch("/cgi-bin/quecmanager/experimental/keep_alive.sh",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"start_time=".concat(encodeURIComponent(e),"&end_time=").concat(encodeURIComponent(r),"&interval=").concat(encodeURIComponent(f))}),s=await a.json();if(s.error){g({title:"Error",description:s.error,variant:"destructive"});return}g({title:"Success",description:"Keep-alive scheduling enabled"})}else{let e=await fetch("/cgi-bin/quecmanager/experimental/keep_alive.sh",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"disable=true"});await e.json(),g({title:"Success",description:"Keep-alive scheduling disabled"})}h(t)}catch(e){g({title:"Error",description:"Failed to update keep-alive settings",variant:"destructive"})}};return(0,a.jsxs)(n.Zp,{children:[(0,a.jsxs)(n.aR,{children:[(0,a.jsx)(n.ZB,{children:"Keep Alive"}),(0,a.jsx)(n.BT,{children:"Ensure uninterrupted connectivity by preventing modem idle times with scheduled speed tests to keep your connection alive."})]}),(0,a.jsx)(n.Wu,{children:(0,a.jsxs)("div",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-4",children:[(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(l.J,{htmlFor:"start-time",children:"Start Time"}),(0,a.jsx)(i.p,{type:"time",id:"start-time",value:e,onChange:e=>t(e.target.value),disabled:v})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(l.J,{htmlFor:"end-time",children:"End Time"}),(0,a.jsx)(i.p,{type:"time",id:"end-time",value:r,onChange:e=>p(e.target.value),disabled:v})]}),(0,a.jsxs)("div",{className:"grid w-full max-w-sm items-center gap-2",children:[(0,a.jsx)(l.J,{htmlFor:"interval",children:"Interval (minutes)"}),(0,a.jsx)(i.p,{type:"number",id:"interval",min:1,value:f,onChange:e=>{m(e.target.value.replace(/[^0-9]/g,"").replace(/^0+/,""))},placeholder:"Enter minutes",disabled:v,className:"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"})]}),(0,a.jsxs)("div",{className:"lg:col-span-2 col-span-1 flex items-center gap-2",children:[(0,a.jsx)(o.A,{className:"h-4 w-4 text-red-600"}),(0,a.jsx)("p",{className:"text-sm text-gray-500",children:"Please consider your data usage limits when setting the interval."})]})]})}),(0,a.jsx)(n.wL,{className:"border-t py-4",children:(0,a.jsxs)(c.l,{pressed:v,onPressedChange:x,disabled:!0,children:[(0,a.jsx)(d,{className:"h-4 w-4 mr-2"}),"Keep Alive is Under Consideration"]})})]})}},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>o,Zp:()=>i,aR:()=>l,wL:()=>u});var a=r(20475),s=r(20107),n=r(22250);let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...s})});i.displayName="Card";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...s})});l.displayName="CardHeader";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,n.cn)("font-semibold leading-none tracking-tight",r),...s})});o.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",r),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",r),...s})});u.displayName="CardFooter"},64219:(e,t,r)=>{"use strict";r.d(t,{p:()=>i});var a=r(20475),s=r(20107),n=r(22250);let i=s.forwardRef((e,t)=>{let{className:r,type:s,...i}=e;return(0,a.jsx)("input",{type:s,className:(0,n.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...i})});i.displayName="Input"},49153:(e,t,r)=>{"use strict";r.d(t,{J:()=>d});var a=r(20475),s=r(20107),n=r(21840),i=r(29395),l=r(22250);let o=(0,i.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(n.b,{ref:t,className:(0,l.cn)(o(),r),...s})});d.displayName=n.b.displayName},21906:(e,t,r)=>{"use strict";r.d(t,{l:()=>p});var a=r(20475),s=r(20107),n=r(94521),i=r(13061),l=r(34544),o=s.forwardRef((e,t)=>{let{pressed:r,defaultPressed:s=!1,onPressedChange:o,...d}=e,[c=!1,u]=(0,i.i)({prop:r,onChange:o,defaultProp:s});return(0,a.jsx)(l.sG.button,{type:"button","aria-pressed":c,"data-state":c?"on":"off","data-disabled":e.disabled?"":void 0,...d,ref:t,onClick:(0,n.m)(e.onClick,()=>{e.disabled||u(!c)})})});o.displayName="Toggle";var d=r(29395),c=r(22250);let u=(0,d.F)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-3",sm:"h-8 px-2",lg:"h-10 px-3"}},defaultVariants:{variant:"default",size:"default"}}),p=s.forwardRef((e,t)=>{let{className:r,variant:s,size:n,...i}=e;return(0,a.jsx)(o,{ref:t,className:(0,c.cn)(u({variant:s,size:n,className:r})),...i})});p.displayName=o.displayName},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>p,oR:()=>u});var a=r(20107);let s=0,n=new Map,i=e=>{if(n.has(e))return;let t=setTimeout(()=>{n.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,t)},l=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?i(r):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},o=[],d={toasts:[]};function c(e){d=l(d,e),o.forEach(e=>{e(d)})}function u(e){let{...t}=e,r=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||a()}}}),{id:r,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function p(){let[e,t]=a.useState(d);return a.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>n});var a=r(64901),s=r(868);function n(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{A:()=>o});var a=r(20107);let s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),n=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&r.indexOf(e)===t).join(" ")};var i={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"};let l=(0,a.forwardRef)((e,t)=>{let{color:r="currentColor",size:s=24,strokeWidth:l=2,absoluteStrokeWidth:o,className:d="",children:c,iconNode:u,...p}=e;return(0,a.createElement)("svg",{ref:t,...i,width:s,height:s,stroke:r,strokeWidth:o?24*Number(l)/Number(s):l,className:n("lucide",d),...p},[...u.map(e=>{let[t,r]=e;return(0,a.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),o=(e,t)=>{let r=(0,a.forwardRef)((r,i)=>{let{className:o,...d}=r;return(0,a.createElement)(l,{ref:i,iconNode:t,className:n("lucide-".concat(s(e)),o),...d})});return r.displayName="".concat(e),r}},12607:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("TriangleAlert",[["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-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},94521:(e,t,r)=>{"use strict";function a(e,t,{checkForDefaultPrevented:r=!0}={}){return function(a){if(e?.(a),!1===r||!a.defaultPrevented)return t?.(a)}}r.d(t,{m:()=>a})},21840:(e,t,r)=>{"use strict";r.d(t,{b:()=>l});var a=r(20107),s=r(34544),n=r(20475),i=a.forwardRef((e,t)=>(0,n.jsx)(s.sG.label,{...e,ref:t,onMouseDown:t=>{var r;t.target.closest("button, input, select, textarea")||(null===(r=e.onMouseDown)||void 0===r||r.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var l=i},34544:(e,t,r)=>{"use strict";r.d(t,{hO:()=>o,sG:()=>l});var a=r(20107),s=r(25642),n=r(61837),i=r(20475),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=a.forwardRef((e,r)=>{let{asChild:a,...s}=e,l=a?n.DX:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.jsx)(l,{...s,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function o(e,t){e&&s.flushSync(()=>e.dispatchEvent(t))}},46774:(e,t,r)=>{"use strict";r.d(t,{c:()=>s});var a=r(20107);function s(e){let t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>(...e)=>t.current?.(...e),[])}},13061:(e,t,r)=>{"use strict";r.d(t,{i:()=>n});var a=r(20107),s=r(46774);function n({prop:e,defaultProp:t,onChange:r=()=>{}}){let[n,i]=function({defaultProp:e,onChange:t}){let r=a.useState(e),[n]=r,i=a.useRef(n),l=(0,s.c)(t);return a.useEffect(()=>{i.current!==n&&(l(n),i.current=n)},[n,i,l]),r}({defaultProp:t,onChange:r}),l=void 0!==e,o=l?e:n,d=(0,s.c)(r);return[o,a.useCallback(t=>{if(l){let r="function"==typeof t?t(e):t;r!==e&&d(r)}else i(t)},[l,e,i,d])]}},29395:(e,t,r)=>{"use strict";r.d(t,{F:()=>n});let a=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,s=function(){for(var e,t,r=0,a="";rr=>{var n;if((null==t?void 0:t.variants)==null)return s(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:i,defaultVariants:l}=t,o=Object.keys(i).map(e=>{let t=null==r?void 0:r[e],s=null==l?void 0:l[e];if(null===t)return null;let n=a(t)||a(s);return i[e][n]}),d=r&&Object.entries(r).reduce((e,t)=>{let[r,a]=t;return void 0===a||(e[r]=a),e},{});return s(e,o,null==t?void 0:null===(n=t.compoundVariants)||void 0===n?void 0:n.reduce((e,t)=>{let{class:r,className:a,...s}=t;return Object.entries(s).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...d}[t]):({...l,...d})[t]===r})?[...e,r,a]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}},e=>{var t=t=>e(e.s=t);e.O(0,[7780,191,6035,7358],()=>t(82064)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js new file mode 100644 index 0000000..e913b45 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3075],{43946:(e,a,r)=>{Promise.resolve().then(r.bind(r,31753))},31753:(e,a,r)=>{"use strict";r.r(a),r.d(a,{default:()=>c});var s=r(20475);r(20107);var t=r(16118),l=r(9477),n=r.n(l);let c=e=>{let{children:a}=e,r=(0,t.usePathname)();return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"mx-auto grid w-full max-w-6xl gap-2",children:(0,s.jsx)("h1",{className:"text-3xl font-semibold",children:"Experimental"})}),(0,s.jsxs)("div",{className:"mx-auto grid w-full max-w-6xl items-start gap-6 md:grid-cols-[180px_1fr] lg:grid-cols-[250px_1fr]",children:[(0,s.jsxs)("nav",{className:"grid gap-4 text-sm text-muted-foreground","x-chunk":"dashboard-04-chunk-0",children:[(0,s.jsx)(n(),{href:"/dashboard/experimental/quecwatch",className:"".concat("/dashboard/experimental/quecwatch/"===r?"font-semibold text-primary":"text-sm"),children:"QuecWatch"}),(0,s.jsx)(n(),{href:"/dashboard/experimental/quecprofiles",className:"".concat("/dashboard/experimental/quecprofiles/"===r?"font-semibold text-primary":"text-sm"),children:"QuecProfiles"}),(0,s.jsx)(n(),{href:"/dashboard/experimental/keep-alive",className:"".concat("/dashboard/experimental/keep-alive/"===r?"font-semibold text-primary":"text-sm"),children:"Keep Alive"}),(0,s.jsx)(n(),{href:"/dashboard/experimental/cell-scanner",className:"".concat("/dashboard/experimental/cell-scanner/"===r?"font-semibold text-primary":"text-sm"),children:"Cell Scanner"})]}),a]})]})}},16118:(e,a,r)=>{"use strict";var s=r(65834);r.o(s,"usePathname")&&r.d(a,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(a,{useRouter:function(){return s.useRouter}})}},e=>{var a=a=>e(e.s=a);e.O(0,[9477,191,6035,7358],()=>a(43946)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/quecprofiles/page-4a6c191a1f38b382.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/quecprofiles/page-4a6c191a1f38b382.js new file mode 100644 index 0000000..f274436 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/quecprofiles/page-4a6c191a1f38b382.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9473],{61437:(e,s,t)=>{Promise.resolve().then(t.bind(t,22256))},22256:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>S});var a=t(20475),r=t(20107),n=t(32857),d=t(72167),i=t(48547),l=t(22250);let c=i.bL,o=i.l9;i.Mz;let m=r.forwardRef((e,s)=>{let{className:t,align:r="center",sideOffset:n=4,...d}=e;return(0,a.jsx)(i.ZL,{children:(0,a.jsx)(i.UC,{ref:s,align:r,sideOffset:n,className:(0,l.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...d})})});m.displayName=i.UC.displayName;var p=t(93557),u=t(35601),f=t(42541),x=t(17799),h=t(59166),g=t(97801),N=t(98969),j=t(10528),y=t(52161),b=t(46361),v=t(26780),w=t(32024),_=t(1870),P=t(51873),T=t(49153),C=t(64219),E=t(36760),A=t(45934),I=t(49573);let S=()=>{let{toast:e}=(0,n.dj)(),[s,t]=(0,r.useState)([]),[i,l]=(0,r.useState)(!0),[S,k]=(0,r.useState)(!1),[R,F]=(0,r.useState)("grid"),[L,D]=(0,r.useState)(!1),[M,J]=(0,r.useState)("create"),[O,V]=(0,r.useState)(null),[z,q]=(0,r.useState)(null),[B,G]=(0,r.useState)(""),[U,Z]=(0,r.useState)({name:"",iccid:"",imei:"",apn:"",pdp_type:"IPV4V6",lte_bands:"",sa_nr5g_bands:"",nsa_nr5g_bands:"",network_type:"LTE",ttl:"0"}),[$,X]=(0,r.useState)(null);(0,r.useEffect)(()=>{H(),W();let e=setInterval(W,5e3);return()=>clearInterval(e)},[]);let H=async()=>{l(!0);try{let e=await fetch("/cgi-bin/quecmanager/profiles/list_profiles.sh");if(e.ok){let s=await e.json();"success"===s.status&&Array.isArray(s.profiles)?(console.log("Fetched profiles:",s.profiles),t(s.profiles)):(console.error("Invalid profile data structure:",s),t([]))}else console.error("Failed to fetch profiles:",e.statusText),t([])}catch(s){console.error("Error fetching profiles:",s),t([]),e({title:"Error",description:"Failed to load profiles. Please try again.",variant:"destructive"})}finally{l(!1)}},W=async()=>{try{let s=await fetch("/cgi-bin/quecmanager/profiles/check_status.sh");if(s.ok){let t=await s.json();q(t),"idle"===t.status||t.status===B||t.message.includes("already applied")||t.message.includes("Profile already correctly applied")||"applying"!==t.status||(e({title:"Profile: ".concat(t.profile),description:t.message,variant:"error"===t.status?"destructive":"default"}),G(t.status))}}catch(e){}},Y=e=>{let{id:s,value:t}=e.target;if("ttl"===s){let e=parseInt(t);if(""===t||isNaN(e)||e<0){Z({...U,ttl:"0"});return}if(e>255){Z({...U,ttl:"255"});return}}Z({...U,[s]:t})},Q=(e,s)=>{Z({...U,[e]:s})},K=e=>{let s=e.trim(),t=s.indexOf("{");t>0&&(s=s.substring(t));let a=0,r=s.length;for(let e=0;e{k(!0),X(null);try{let s;if(!U.name||!U.iccid||!U.apn){X("Profile name, ICCID, and APN are required"),k(!1);return}if(U.ttl&&(0>parseInt(U.ttl)||parseInt(U.ttl)>255)){X("TTL must be between 0 and 255"),k(!1);return}let t={name:U.name,iccid:U.iccid,imei:U.imei||"",apn:U.apn,pdp_type:U.pdp_type,lte_bands:U.lte_bands,sa_nr5g_bands:U.sa_nr5g_bands||"",nsa_nr5g_bands:U.nsa_nr5g_bands||"",network_type:U.network_type,ttl:U.ttl||"0"},a=await fetch("/cgi-bin/quecmanager/profiles/quec_profile_create.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await a.text();try{s=K(r)}catch(e){X("Invalid response format from server"),k(!1);return}"success"===s.status?(D(!1),Z({name:"",iccid:"",imei:"",apn:"",pdp_type:"IPV4V6",lte_bands:"",sa_nr5g_bands:"",nsa_nr5g_bands:"",network_type:"LTE",ttl:"0"}),e({title:"Success",description:"Profile created successfully",variant:"default"}),await H(),await W()):X(s.message||"Failed to create profile")}catch(e){X("An unexpected error occurred")}finally{k(!1)}},es=async()=>{k(!0),X(null);try{let s;if(!U.name||!U.iccid||!U.apn){X("Profile name, ICCID, and APN are required"),k(!1);return}if(U.ttl&&(0>parseInt(U.ttl)||parseInt(U.ttl)>255)){X("TTL must be between 0 and 255"),k(!1);return}let t={name:U.name,iccid:U.iccid,imei:U.imei||"",apn:U.apn,pdp_type:U.pdp_type,lte_bands:U.lte_bands,sa_nr5g_bands:U.sa_nr5g_bands||"",nsa_nr5g_bands:U.nsa_nr5g_bands||"",network_type:U.network_type,ttl:U.ttl||"0"};console.log("Sending update request with data:",t);let a=await fetch("/cgi-bin/quecmanager/profiles/quec_profile_edit.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),r=await a.text();try{s=K(r)}catch(e){X("Invalid response format from server"),k(!1);return}"success"===s.status?(D(!1),Z({name:"",iccid:"",imei:"",apn:"",pdp_type:"IPV4V6",lte_bands:"",sa_nr5g_bands:"",nsa_nr5g_bands:"",network_type:"LTE",ttl:"0"}),e({title:"Success",description:"Profile updated successfully",variant:"default"}),await H()):X(s.message||"Failed to update profile")}catch(e){X("An unexpected error occurred")}finally{k(!1)}},et=async(s,t)=>{try{let a;if(!window.confirm('Are you sure you want to delete profile "'.concat(t,'"?')))return;let r=await fetch("/cgi-bin/quecmanager/profiles/quec_profile_delete.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({iccid:s})}),n=await r.text();try{a=K(n)}catch(s){e({title:"Error",description:"Failed to parse server response",variant:"destructive"});return}"success"===a.status?(e({title:"Profile Deleted",description:'Profile "'.concat(t,'" has been deleted successfully'),variant:"default"}),await H(),await W()):e({title:"Error",description:a.message||"Failed to delete profile",variant:"destructive"})}catch(s){e({title:"Error",description:"An unexpected error occurred while deleting the profile",variant:"destructive"})}},ea=e=>{J("edit"),Z({name:e.name,iccid:e.iccid,imei:e.imei||"",apn:e.apn,pdp_type:e.pdp_type,lte_bands:e.lte_bands,sa_nr5g_bands:e.sa_nr5g_bands||"",nsa_nr5g_bands:e.nsa_nr5g_bands||"",network_type:e.network_type,ttl:e.ttl||"0"}),V(e),X(null),D(!0)},er=e=>{switch(e){case"LTE":return"4G LTE";case"NR5G":return"5G SA";case"LTE:NR5G":return"NR5G-NSA w/ LTE";default:return e}};return(0,a.jsx)("div",{children:(0,a.jsxs)(d.Zp,{children:[(0,a.jsxs)(d.aR,{children:[(0,a.jsx)(d.ZB,{children:"QuecProfiles"}),(0,a.jsx)(d.BT,{children:"Configure personalized profiles for your SIM cards to manage connectivity settings and network preferences."})]}),(0,a.jsxs)(d.Wu,{className:"grid gap-y-8",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)(p.lG,{open:L,onOpenChange:D,children:[(0,a.jsx)(p.zM,{asChild:!0,children:(0,a.jsxs)(f.$,{onClick:()=>{J("create"),X(null),Z({name:"",iccid:"",imei:"",apn:"",pdp_type:"IPV4V6",lte_bands:"",sa_nr5g_bands:"",nsa_nr5g_bands:"",network_type:"LTE",ttl:"0"})},children:[(0,a.jsx)(j.A,{className:"w-4 h-4"}),"Add New Profile"]})}),(0,a.jsxs)(p.Cf,{children:[(0,a.jsxs)(p.c7,{children:[(0,a.jsx)(p.L3,{children:"create"===M?"Add New Profile":"Edit Profile"}),(0,a.jsx)(p.rr,{children:"create"===M?"Create a new profile for your SIM card to manage connectivity settings and network preferences.":"Update the settings for this profile."})]}),$&&(0,a.jsxs)(I.Fc,{variant:"destructive",className:"my-2",children:[(0,a.jsx)(x.A,{className:"h-4 w-4"}),(0,a.jsx)(I.XL,{children:"Error"}),(0,a.jsx)(I.TN,{children:$})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-y-5 gap-x-4 py-4",children:[(0,a.jsxs)("div",{className:"col-span-2 grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"name",children:"Profile Name"}),(0,a.jsx)(C.p,{id:"name",placeholder:"My Network Profile",value:U.name,onChange:Y,required:!0})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"iccid",children:"ICCID"}),(0,a.jsx)(C.p,{id:"iccid",placeholder:"SIM ICCID",value:U.iccid,onChange:Y,disabled:"edit"===M,required:!0})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"imei",children:"IMEI"}),(0,a.jsx)(C.p,{id:"imei",placeholder:"Preferred IMEI",value:U.imei,onChange:Y})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"apn",children:"APN"}),(0,a.jsx)(C.p,{id:"apn",placeholder:"internet",value:U.apn,onChange:Y,required:!0})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"pdp_type",children:"APN PDP Type"}),(0,a.jsxs)(u.l6,{value:U.pdp_type,onValueChange:e=>Q("pdp_type",e),children:[(0,a.jsx)(u.bq,{children:(0,a.jsx)(u.yv,{placeholder:"PDP Type"})}),(0,a.jsxs)(u.gC,{children:[(0,a.jsx)(u.eb,{value:"IP",children:"IPV4"}),(0,a.jsx)(u.eb,{value:"IPV6",children:"IPV6"}),(0,a.jsx)(u.eb,{value:"IPV4V6",children:"IPV4 & IPV6"})]})]})]}),(0,a.jsxs)("div",{className:"col-span-2 grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"lte_bands",children:"LTE Bands"}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(C.p,{id:"lte_bands",placeholder:"1,3,7,20",value:U.lte_bands,onChange:Y}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"Comma-separated list of LTE bands."})]})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"nsa_nr5g_bands",children:"NR5G-NSA Bands"}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(C.p,{id:"nsa_nr5g_bands",placeholder:"41,78",value:U.nsa_nr5g_bands,onChange:Y}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"Comma-separated list of NSA bands."})]})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"sa_nr5g_bands",children:"NR5G-SA Bands"}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(C.p,{id:"sa_nr5g_bands",placeholder:"41,78",value:U.sa_nr5g_bands,onChange:Y}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground italic",children:"Comma-separated list of SA bands."})]})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"network_type",children:"Network Type"}),(0,a.jsxs)(u.l6,{value:U.network_type,onValueChange:e=>Q("network_type",e),children:[(0,a.jsx)(u.bq,{children:(0,a.jsx)(u.yv,{placeholder:"Network Type"})}),(0,a.jsxs)(u.gC,{children:[(0,a.jsx)(u.eb,{value:"LTE",children:"LTE Only"}),(0,a.jsx)(u.eb,{value:"NR5G",children:"NR5G Only"}),(0,a.jsx)(u.eb,{value:"LTE:NR5G",children:"NR5G-NSA w/ LTE"})]})]})]}),(0,a.jsxs)("div",{className:"grid gap-1.5",children:[(0,a.jsx)(T.J,{htmlFor:"ttl",children:"TTL Value"}),(0,a.jsx)("div",{className:"grid gap-0.5",children:(0,a.jsx)(C.p,{id:"ttl",type:"number",min:"0",max:"255",placeholder:"0 (disabled)",value:U.ttl,onChange:Y})})]})]}),(0,a.jsx)(p.Es,{children:(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)(f.$,{variant:"secondary",onClick:()=>D(!1),disabled:S,children:"Cancel"}),(0,a.jsx)(f.$,{onClick:"create"===M?ee:es,disabled:S,children:S?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.A,{className:"h-4 w-4 animate-spin"}),"create"===M?"Creating...":"Updating..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(y.A,{className:"h-4 w-4"}),"create"===M?"Save Profile":"Update Profile"]})})]})})]})]}),(0,a.jsxs)("div",{className:"flex bg-gray-100 dark:bg-gray-800 rounded-md p-1",children:[(0,a.jsx)("button",{className:"p-1 rounded ".concat("grid"===R?"bg-white dark:bg-gray-700 shadow-sm":""),onClick:()=>F("grid"),children:(0,a.jsx)(b.A,{size:18})}),(0,a.jsx)("button",{className:"p-1 rounded ".concat("list"===R?"bg-white dark:bg-gray-700 shadow-sm":""),onClick:()=>F("list"),children:(0,a.jsx)(v.A,{size:18})})]})]}),"grid"===R&&(0,a.jsx)("div",{className:"grid gap-4",children:i?(0,a.jsx)(a.Fragment,{children:(0,a.jsx)("div",{className:"border rounded-lg p-4",children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)(E.E,{className:"h-5 w-40"}),(0,a.jsx)(E.E,{className:"h-4 w-20"}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4 pt-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(E.E,{className:"h-3 w-20"}),(0,a.jsx)(E.E,{className:"h-4 w-32"})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(E.E,{className:"h-3 w-20"}),(0,a.jsx)(E.E,{className:"h-4 w-32"})]})]})]})})}):s&&s.length>0?s.map((e,s)=>(0,a.jsxs)(d.Zp,{children:[(0,a.jsxs)(d.aR,{children:[(0,a.jsxs)("div",{className:"flex items-start justify-between",children:[(0,a.jsx)(d.ZB,{className:"xl:text-xl font-bold tracking-wide",children:e.name}),(0,a.jsxs)(c,{children:[(0,a.jsx)(o,{children:(0,a.jsx)(w.A,{className:"h-4 w-4"})}),(0,a.jsxs)(m,{className:"grid gap-2 max-w-[180px]",children:[(0,a.jsxs)(f.$,{size:"sm",onClick:()=>ea(e),children:[(0,a.jsx)(_.A,{className:"w-4 h-4"}),"Edit Profile"]}),(0,a.jsxs)(f.$,{size:"sm",variant:"destructive",onClick:()=>et(e.iccid,e.name),children:[(0,a.jsx)(P.A,{className:"w-4 h-4"}),"Delete Profile"]})]})]})]}),(0,a.jsx)(d.BT,{children:(0,a.jsx)(A.E,{variant:"secondary",className:"text-xs",children:er(e.network_type)})})]}),(0,a.jsx)(d.Wu,{children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"ICCID-".concat(s),className:"text-sm text-muted-foreground",children:"SIM ICCID"}),(0,a.jsx)("p",{id:"ICCID-".concat(s),className:"font-semibold",children:e.iccid})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"IMEI-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred IMEI"}),(0,a.jsx)("p",{id:"IMEI-".concat(s),className:"font-semibold",children:e.imei||"-"})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"APN-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred APN"}),(0,a.jsx)("p",{id:"APN-".concat(s),className:"font-semibold",children:e.apn})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"PDP-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred APN PDP Type"}),(0,a.jsx)("p",{id:"PDP-".concat(s),className:"font-semibold",children:e.pdp_type})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"prefTTl-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred TTL"}),(0,a.jsx)("p",{id:"prefTTL-".concat(s),className:"font-semibold",children:e.ttl||"0"})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"prefLTEBands-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred LTE Bands"}),(0,a.jsx)("p",{id:"prefLTEBands-".concat(s),className:"font-semibold",children:e.lte_bands||"-"})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"prefNRNSABands-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred NR5G-NSA Bands"}),(0,a.jsx)("p",{id:"prefNRNSABands-".concat(s),className:"font-semibold",children:e.nsa_nr5g_bands||"-"})]}),(0,a.jsxs)("div",{className:"grid gap-0.5",children:[(0,a.jsx)(T.J,{htmlFor:"prefNRSABands-".concat(s),className:"text-sm text-muted-foreground",children:"Preferred NR5G-NSA Bands"}),(0,a.jsx)("p",{id:"prefNRSABands-".concat(s),className:"font-semibold",children:e.sa_nr5g_bands||"-"})]})]})})]},s)):(0,a.jsxs)("div",{className:"text-center py-8 border rounded-lg",children:[(0,a.jsx)("div",{className:"mx-auto w-12 h-12 rounded-full bg-muted flex items-center justify-center mb-4",children:(0,a.jsx)(j.A,{className:"h-6 w-6 text-muted-foreground"})}),(0,a.jsx)("h3",{className:"font-medium text-lg mb-1",children:"No Profiles Found"}),(0,a.jsx)("p",{className:"text-muted-foreground mb-4",children:"Simplify network management with profiles that automatically apply your preferred settings."})]})}),"list"===R&&(0,a.jsx)("div",{className:"border rounded-md overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"bg-muted/50",children:[(0,a.jsx)("th",{className:"h-10 px-4 text-left align-middle font-medium text-muted-foreground",children:"Profile Name"}),(0,a.jsx)("th",{className:"h-10 px-4 text-left align-middle font-medium text-muted-foreground",children:"ICCID"}),(0,a.jsx)("th",{className:"h-10 px-4 text-left align-middle font-medium text-muted-foreground",children:"APN (PDP Type)"}),(0,a.jsx)("th",{className:"h-10 px-4 text-left align-middle font-medium text-muted-foreground",children:"Network Type"}),(0,a.jsx)("th",{className:"h-10 px-4 text-left align-middle font-medium text-muted-foreground",children:"TTL"}),(0,a.jsx)("th",{className:"h-10 px-4 text-left align-middle font-medium text-muted-foreground",children:"Actions"})]})}),(0,a.jsx)("tbody",{children:i?(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("tr",{className:"border-t",children:[(0,a.jsxs)("td",{className:"p-4",children:[(0,a.jsx)(E.E,{className:"h-5 w-32"}),(0,a.jsx)(E.E,{className:"h-3 w-24 mt-1"})]}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsx)(E.E,{className:"h-5 w-40"})}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsx)(E.E,{className:"h-5 w-28"})}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsx)(E.E,{className:"h-5 w-20"})}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsx)(E.E,{className:"h-5 w-10"})}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(E.E,{className:"h-8 w-8 rounded-md"}),(0,a.jsx)(E.E,{className:"h-8 w-8 rounded-md"})]})})]})}):s&&s.length>0?s.map((e,s)=>(0,a.jsxs)("tr",{className:"border-t hover:bg-muted/50 transition-colors",children:[(0,a.jsxs)("td",{className:"p-4",children:[(0,a.jsx)("div",{className:"font-medium",children:e.name}),(0,a.jsxs)("div",{className:"text-xs text-muted-foreground",children:["IMEI: ",e.imei||"Not specified"]})]}),(0,a.jsx)("td",{className:"p-4 font-mono text-sm",children:e.iccid}),(0,a.jsxs)("td",{className:"p-4",children:[e.apn," ",(0,a.jsxs)("span",{className:"text-muted-foreground text-xs",children:["(",e.pdp_type,")"]})]}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsx)(A.E,{variant:"secondary",className:"text-xs",children:er(e.network_type)})}),(0,a.jsx)("td",{className:"p-4",children:e.ttl&&parseInt(e.ttl)>0?(0,a.jsx)(A.E,{variant:"outline",className:"text-xs",children:e.ttl}):(0,a.jsx)("span",{className:"text-muted-foreground text-sm",children:"Off"})}),(0,a.jsx)("td",{className:"p-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)(f.$,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>ea(e),children:[(0,a.jsx)(_.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Edit"})]}),(0,a.jsxs)(f.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-destructive",onClick:()=>et(e.iccid,e.name),children:[(0,a.jsx)(P.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Delete"})]})]})})]},s)):(0,a.jsx)("tr",{className:"border-t",children:(0,a.jsx)("td",{colSpan:6,className:"p-8 text-center text-muted-foreground",children:"No profiles found. Create one to get started."})})})]})}),(()=>{if(!z||"idle"===z.status)return z&&z.message&&z.message.includes("No profile exists")?(0,a.jsxs)(I.Fc,{className:"mb-1",variant:"default",children:[(0,a.jsx)(x.A,{className:"h-4 w-4",color:"orange"}),(0,a.jsx)(I.XL,{children:"No Profile Found"}),(0,a.jsx)(I.TN,{className:"flex justify-between items-center",children:(0,a.jsx)("span",{children:"No profile exists for the current SIM card. Create a profile to configure your network settings."})})]}):null;let e=z.message,s="";return"error"===z.status?(s="Profile Issue",z.message.includes("missing the required APN setting")?(s="Missing APN Setting",e='Please edit profile "'.concat(z.profile,'" and add an APN to enable network connectivity.')):z.message.includes("Could not detect SIM card")?(s="SIM Card Not Detected",e="Please check that a SIM card is properly inserted in your device."):z.message.includes("Could not communicate with modem")&&(s="Modem Communication Error",e="Having trouble connecting to the cellular modem. Please check your device.")):"success"===z.status&&(z.message.includes("already applied")||z.message.includes("Profile already correctly applied"))?(s="Profile Active",e='Profile "'.concat(z.profile,'" is active and correctly applied')):"applying"===z.status?s="Applying Profile":"rebooting"===z.status?(s="Device Rebooting",e="Your device is restarting to apply configuration changes."):s="Success",(0,a.jsxs)(I.Fc,{className:"mb-1",variant:"error"===z.status?"destructive":"default",children:["applying"===z.status?(0,a.jsx)(h.A,{className:"h-4 w-4 animate-spin"}):"error"===z.status?(0,a.jsx)(x.A,{className:"h-4 w-4",color:"orange"}):"rebooting"===z.status?(0,a.jsx)(g.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(N.A,{className:"h-4 w-4",color:"green"}),(0,a.jsx)(I.XL,{children:s}),(0,a.jsxs)(I.TN,{className:"flex justify-between items-center",children:[(0,a.jsx)("span",{children:e}),"applying"===z.status&&(0,a.jsxs)("span",{className:"font-semibold",children:[z.progress,"%"]})]})]})})()]})]})})}},49573:(e,s,t)=>{"use strict";t.d(s,{Fc:()=>l,TN:()=>o,XL:()=>c});var a=t(20475),r=t(20107),n=t(29395),d=t(22250);let i=(0,n.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),l=r.forwardRef((e,s)=>{let{className:t,variant:r,...n}=e;return(0,a.jsx)("div",{ref:s,role:"alert",className:(0,d.cn)(i({variant:r}),t),...n})});l.displayName="Alert";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("h5",{ref:s,className:(0,d.cn)("mb-1 font-medium leading-none tracking-tight",t),...r})});c.displayName="AlertTitle";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,d.cn)("text-sm [&_p]:leading-relaxed",t),...r})});o.displayName="AlertDescription"},45934:(e,s,t)=>{"use strict";t.d(s,{E:()=>i});var a=t(20475);t(20107);var r=t(29395),n=t(22250);let d=(0,r.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:s,variant:t,...r}=e;return(0,a.jsx)("div",{className:(0,n.cn)(d({variant:t}),s),...r})}},42541:(e,s,t)=>{"use strict";t.d(s,{$:()=>c,r:()=>l});var a=t(20475),r=t(20107),n=t(61837),d=t(29395),i=t(22250);let l=(0,d.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),c=r.forwardRef((e,s)=>{let{className:t,variant:r,size:d,asChild:c=!1,...o}=e,m=c?n.DX:"button";return(0,a.jsx)(m,{className:(0,i.cn)(l({variant:r,size:d,className:t})),ref:s,...o})});c.displayName="Button"},72167:(e,s,t)=>{"use strict";t.d(s,{BT:()=>c,Wu:()=>o,ZB:()=>l,Zp:()=>d,aR:()=>i,wL:()=>m});var a=t(20475),r=t(20107),n=t(22250);let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",t),...r})});d.displayName="Card";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",t),...r})});i.displayName="CardHeader";let l=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("h3",{ref:s,className:(0,n.cn)("font-semibold leading-none tracking-tight",t),...r})});l.displayName="CardTitle";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("p",{ref:s,className:(0,n.cn)("text-sm text-muted-foreground",t),...r})});c.displayName="CardDescription";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("p-6 pt-0",t),...r})});o.displayName="CardContent";let m=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,n.cn)("flex items-center p-6 pt-0",t),...r})});m.displayName="CardFooter"},93557:(e,s,t)=>{"use strict";t.d(s,{Cf:()=>u,Es:()=>x,HM:()=>m,L3:()=>h,c7:()=>f,lG:()=>l,rr:()=>g,zM:()=>c});var a=t(20475),r=t(20107),n=t(60241),d=t(7197),i=t(22250);let l=n.bL,c=n.l9,o=n.ZL,m=n.bm,p=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(n.hJ,{ref:s,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...r})});p.displayName=n.hJ.displayName;let u=r.forwardRef((e,s)=>{let{className:t,children:r,...l}=e;return(0,a.jsxs)(o,{children:[(0,a.jsx)(p,{}),(0,a.jsxs)(n.UC,{ref:s,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...l,children:[r,(0,a.jsxs)(n.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(d.MKb,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=n.UC.displayName;let f=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...t})};f.displayName="DialogHeader";let x=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...t})};x.displayName="DialogFooter";let h=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(n.hE,{ref:s,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",t),...r})});h.displayName=n.hE.displayName;let g=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(n.VY,{ref:s,className:(0,i.cn)("text-sm text-muted-foreground",t),...r})});g.displayName=n.VY.displayName},64219:(e,s,t)=>{"use strict";t.d(s,{p:()=>d});var a=t(20475),r=t(20107),n=t(22250);let d=r.forwardRef((e,s)=>{let{className:t,type:r,...d}=e;return(0,a.jsx)("input",{type:r,className:(0,n.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",t),ref:s,...d})});d.displayName="Input"},49153:(e,s,t)=>{"use strict";t.d(s,{J:()=>c});var a=t(20475),r=t(20107),n=t(21840),d=t(29395),i=t(22250);let l=(0,d.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(n.b,{ref:s,className:(0,i.cn)(l(),t),...r})});c.displayName=n.b.displayName},35601:(e,s,t)=>{"use strict";t.d(s,{TR:()=>x,bq:()=>m,eb:()=>h,gC:()=>f,l6:()=>l,s3:()=>c,yv:()=>o});var a=t(20475),r=t(20107),n=t(7197),d=t(95257),i=t(22250);let l=d.bL,c=d.YJ,o=d.WT,m=r.forwardRef((e,s)=>{let{className:t,children:r,...l}=e;return(0,a.jsxs)(d.l9,{ref:s,className:(0,i.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...l,children:[r,(0,a.jsx)(d.In,{asChild:!0,children:(0,a.jsx)(n.TBE,{className:"h-4 w-4 opacity-50"})})]})});m.displayName=d.l9.displayName;let p=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(d.PP,{ref:s,className:(0,i.cn)("flex cursor-default items-center justify-center py-1",t),...r,children:(0,a.jsx)(n.Mtm,{})})});p.displayName=d.PP.displayName;let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(d.wn,{ref:s,className:(0,i.cn)("flex cursor-default items-center justify-center py-1",t),...r,children:(0,a.jsx)(n.D3D,{})})});u.displayName=d.wn.displayName;let f=r.forwardRef((e,s)=>{let{className:t,children:r,position:n="popper",...l}=e;return(0,a.jsx)(d.ZL,{children:(0,a.jsxs)(d.UC,{ref:s,className:(0,i.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,...l,children:[(0,a.jsx)(p,{}),(0,a.jsx)(d.LM,{className:(0,i.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r}),(0,a.jsx)(u,{})]})})});f.displayName=d.UC.displayName;let x=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(d.JU,{ref:s,className:(0,i.cn)("px-2 py-1.5 text-sm font-semibold",t),...r})});x.displayName=d.JU.displayName;let h=r.forwardRef((e,s)=>{let{className:t,children:r,...l}=e;return(0,a.jsxs)(d.q7,{ref:s,className:(0,i.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...l,children:[(0,a.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(d.VF,{children:(0,a.jsx)(n.Srz,{className:"h-4 w-4"})})}),(0,a.jsx)(d.p4,{children:r})]})});h.displayName=d.q7.displayName,r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(d.wv,{ref:s,className:(0,i.cn)("-mx-1 my-1 h-px bg-muted",t),...r})}).displayName=d.wv.displayName},36760:(e,s,t)=>{"use strict";t.d(s,{E:()=>n});var a=t(20475),r=t(22250);function n(e){let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,r.cn)("animate-pulse rounded-md bg-primary/10",s),...t})}},32857:(e,s,t)=>{"use strict";t.d(s,{dj:()=>p,oR:()=>m});var a=t(20107);let r=0,n=new Map,d=e=>{if(n.has(e))return;let s=setTimeout(()=>{n.delete(e),o({type:"REMOVE_TOAST",toastId:e})},1e6);n.set(e,s)},i=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case"DISMISS_TOAST":{let{toastId:t}=s;return t?d(t):e.toasts.forEach(e=>{d(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===t||void 0===t?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===s.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==s.toastId)}}},l=[],c={toasts:[]};function o(e){c=i(c,e),l.forEach(e=>{e(c)})}function m(e){let{...s}=e,t=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>o({type:"DISMISS_TOAST",toastId:t});return o({type:"ADD_TOAST",toast:{...s,id:t,open:!0,onOpenChange:e=>{e||a()}}}),{id:t,dismiss:a,update:e=>o({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function p(){let[e,s]=a.useState(c);return a.useEffect(()=>(l.push(s),()=>{let e=l.indexOf(s);e>-1&&l.splice(e,1)}),[e]),{...e,toast:m,dismiss:e=>o({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,s,t)=>{"use strict";t.d(s,{cn:()=>n});var a=t(64901),r=t(868);function n(){for(var e=arguments.length,s=Array(e),t=0;t{var s=s=>e(e.s=s);e.O(0,[9980,7780,8885,7563,9464,6357,6810,3662,191,6035,7358],()=>s(61437)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/quecwatch/page-73c728da722206c7.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/quecwatch/page-73c728da722206c7.js new file mode 100644 index 0000000..7b87ad8 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/experimental/quecwatch/page-73c728da722206c7.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6010],{30076:(e,t,r)=>{Promise.resolve().then(r.bind(r,79824))},79824:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>y});var a=r(20475),s=r(20107),i=r(72167),n=r(35601),l=r(85014),o=r(42541),c=r(18861),d=r(49153),u=r(64219),m=r(59166),h=r(39997);let p=(0,h.A)("ShieldX",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),f=(0,h.A)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var x=r(12607);let g=(0,h.A)("RotateCcw",[["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"}]]),v=(0,h.A)("ScanEye",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["path",{d:"M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",key:"11ak4c"}]]),b=(0,h.A)("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);var j=r(32857);let y=()=>{let{toast:e}=(0,j.dj)(),[t,r]=(0,s.useState)({pingTarget:"8.8.8.8",pingInterval:60,pingFailures:3,maxRetries:5,connectionRefresh:!1,autoSimFailover:!1,simFailoverSchedule:30}),[h,y]=(0,s.useState)("loading"),[w,N]=(0,s.useState)(!1),[k,S]=(0,s.useState)(null),[R,C]=(0,s.useState)(null),[F,T]=(0,s.useState)(0),E=async()=>{try{let e=await fetch("/cgi-bin/quecmanager/experimental/quecwatch/fetch-quecwatch.sh");if(!e.ok)throw Error("Network response was not ok");let t=await e.json();if("active"===t.status){if(t.config){let e={pingTarget:t.config.pingTarget||"8.8.8.8",pingInterval:t.config.pingInterval||60,pingFailures:t.config.pingFailures||3,maxRetries:t.config.maxRetries||5,connectionRefresh:!!t.config.connectionRefresh,autoSimFailover:!!t.config.autoSimFailover,simFailoverSchedule:t.config.simFailoverSchedule||30};r(e),void 0!==t.config.currentRetries?(T(t.config.currentRetries),t.config.currentRetries>=e.maxRetries?y("maxRetries"):y("active")):y("active"),C(t.lastActivity||null)}else y("active")}else"inactive"===t.status?y("inactive"):(y("error"),S(t.message||"Unknown error occurred"))}catch(t){y("error"),S(t instanceof Error?t.message:"An unknown error occurred"),e({title:"Error",description:"Failed to fetch QuecWatch configuration",variant:"destructive"})}};(0,s.useEffect)(()=>{E()},[]),(0,s.useEffect)(()=>{if("active"===h||"maxRetries"===h){let e=setInterval(E,5e3);return()=>clearInterval(e)}},[h]);let A=async()=>{N(!0);try{let t=await fetch("/cgi-bin/quecmanager/experimental/quecwatch/reset-quecwatch.sh",{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("Network response was not ok");let r=await t.json();if("success"===r.status)e({title:"QuecWatch Reset",description:"Counter reset and service restarted successfully"}),y("active"),T(0),setTimeout(E,1e3);else throw Error(r.message||"Failed to reset retry counter")}catch(t){e({title:"Error",description:t instanceof Error?t.message:"Failed to reset retry counter",variant:"destructive"})}finally{N(!1)}},I=async()=>{N(!0),S(null);try{let r=await fetch("/cgi-bin/quecmanager/experimental/quecwatch/enable-quecwatch.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pingTarget:t.pingTarget,pingInterval:t.pingInterval,pingFailures:t.pingFailures,maxRetries:t.maxRetries,connectionRefresh:t.connectionRefresh,autoSimFailover:t.autoSimFailover,simFailoverSchedule:t.simFailoverSchedule})});if(!r.ok)throw Error("Network response was not ok");let a=await r.json();if("success"===a.status)y("active"),e({title:"QuecWatch Enabled",description:"QuecWatch enabled successfully"}),await E();else throw Error(a.message||"Failed to enable QuecWatch")}catch(t){y("error"),S(t instanceof Error?t.message:"An unknown error occurred"),e({title:"Error",description:t instanceof Error?t.message:"Failed to enable QuecWatch",variant:"destructive"})}finally{N(!1)}},M=async()=>{N(!0),S(null);try{let t=await fetch("/cgi-bin/quecmanager/experimental/quecwatch/disable-quecwatch.sh",{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("Network response was not ok");let r=await t.json();if("success"===r.status)y("inactive"),e({title:"QuecWatch Disabled",description:"QuecWatch disabled successfully",variant:"default"});else throw Error(r.message||"Failed to disable QuecWatch")}catch(t){y("error"),S(t instanceof Error?t.message:"An unknown error occurred"),e({title:"Error",description:t instanceof Error?t.message:"Failed to disable QuecWatch",variant:"destructive"})}finally{N(!1)}};return(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)(i.aR,{children:[(0,a.jsx)(i.ZB,{children:"QuecWatch"}),(0,a.jsx)(i.BT,{children:"An intelligent watchdog service for Quectel-AP modems that ensures network reliability through automated monitoring, connection management, and SIM failover capabilities."})]}),(0,a.jsx)(i.Wu,{children:(0,a.jsxs)("div",{className:"grid gap-8",children:[(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center gap-x-4 rounded-lg border p-4",children:[(0,a.jsx)(d.J,{children:"QuecWatch Status"}),(0,a.jsx)("div",{className:"flex items-center space-x-1",children:"loading"===h?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{className:"animate-spin text-primary size-4"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Loading..."})]}):"inactive"===h?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(p,{className:"text-rose-500 size-4"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Inactive"})]}):"active"===h?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f,{className:"text-green-500 size-4"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Active"})]}):"maxRetries"===h?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x.A,{className:"text-yellow-500 size-4"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Maximum Retries Exhausted"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(p,{className:"text-amber-500 size-4"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Error"})]})})]}),(0,a.jsxs)("div",{className:"flex justify-between items-center gap-x-4 rounded-lg border p-4",children:[(0,a.jsx)(d.J,{children:"Remaining Retries"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[("active"===h||"maxRetries"===h)&&(0,a.jsx)(l.TooltipProvider,{children:(0,a.jsxs)(l.m_,{children:[(0,a.jsx)(l.k$,{children:(0,a.jsx)(o.$,{variant:"outline",size:"icon",className:"h-6 w-6",onClick:A,disabled:w,children:(0,a.jsx)(g,{className:"h-4 w-4"})})}),(0,a.jsx)(l.ZI,{children:(0,a.jsx)("p",{children:"Reset the retry counter"})})]})}),(0,a.jsxs)("p",{className:"text-muted-foreground text-sm",children:[F," / ",t.maxRetries]})]})]})]}),(0,a.jsxs)("div",{className:"grid grid-flow-row lg:grid-cols-2 grid-cols-1 gap-4",children:[(0,a.jsxs)("div",{className:"grid w-full items-center gap-1.5",children:[(0,a.jsx)(d.J,{htmlFor:"ping",children:"Ping Target"}),(0,a.jsx)(u.p,{id:"ping",placeholder:"8.8.8.8",value:t.pingTarget,disabled:"active"===h||"maxRetries"===h,onChange:e=>r(t=>({...t,pingTarget:e.target.value}))})]}),(0,a.jsxs)("div",{className:"grid w-full items-center gap-1.5",children:[(0,a.jsx)(d.J,{htmlFor:"ping-interval",children:"Ping Interval"}),(0,a.jsxs)(n.l6,{value:t.pingInterval.toString(),disabled:"active"===h||"maxRetries"===h,onValueChange:e=>r(t=>({...t,pingInterval:parseInt(e)})),children:[(0,a.jsx)(n.bq,{id:"ping-interval",children:(0,a.jsx)(n.yv,{placeholder:"Select Ping Interval"})}),(0,a.jsx)(n.gC,{children:[5,10,15,30,60,120,300,600,1800,3600].map(e=>(0,a.jsx)(n.eb,{value:e.toString(),children:e>=3600?"".concat(e/3600," hour").concat(e>3600?"s":""):e>=60?"".concat(e/60," minute").concat(e>=120?"s":""):"".concat(e," second").concat(1!==e?"s":"")},e))})]})]}),(0,a.jsxs)("div",{className:"grid w-full items-center gap-1.5",children:[(0,a.jsx)(d.J,{htmlFor:"ping-failure",children:"Ping Failures"}),(0,a.jsxs)(n.l6,{value:t.pingFailures.toString(),disabled:"active"===h||"maxRetries"===h,onValueChange:e=>r(t=>({...t,pingFailures:parseInt(e)})),children:[(0,a.jsx)(n.bq,{id:"ping-failure",children:(0,a.jsx)(n.yv,{placeholder:"Select Ping Failures"})}),(0,a.jsx)(n.gC,{children:[1,3,5,10].map(e=>(0,a.jsxs)(n.eb,{value:e.toString(),children:[e," failure",1!==e?"s":""]},e))})]})]}),(0,a.jsxs)("div",{className:"grid w-full items-center gap-1.5",children:[(0,a.jsx)(d.J,{htmlFor:"max-retries",children:"Max Retries"}),(0,a.jsxs)(n.l6,{value:t.maxRetries.toString(),disabled:"active"===h||"maxRetries"===h,onValueChange:e=>r(t=>({...t,maxRetries:parseInt(e)})),children:[(0,a.jsx)(n.bq,{id:"max-retries",children:(0,a.jsx)(n.yv,{placeholder:"Select Max Retries"})}),(0,a.jsx)(n.gC,{children:[1,3,5,10,15,20].map(e=>(0,a.jsx)(n.eb,{value:e.toString(),children:e},e))})]})]})]}),(0,a.jsxs)("div",{className:"flex flex-row items-center justify-between rounded-lg border p-4",children:[(0,a.jsxs)("div",{className:"space-y-0.5 grid",children:[(0,a.jsx)(d.J,{className:"text-base",children:"Connection Refresh"}),(0,a.jsx)(d.J,{className:"text-sm font-normal text-muted-foreground",children:"Toggle the connection refresh for the modem to first attempt reconnecting to the network before restarting."})]}),(0,a.jsx)(c.d,{checked:t.connectionRefresh,disabled:"active"===h||"maxRetries"===h,onCheckedChange:e=>r(t=>({...t,connectionRefresh:e}))})]}),(0,a.jsxs)("div",{className:" rounded-lg border p-4 grid gap-y-6",children:[(0,a.jsxs)("div",{className:"flex flex-row items-center justify-between",children:[(0,a.jsxs)("div",{className:"space-y-0.5 grid",children:[(0,a.jsx)(d.J,{className:"text-base",children:"Auto SIM Failover"}),(0,a.jsx)(d.J,{className:"text-sm font-normal text-muted-foreground",children:"Auto SIM Failover will automatically switch to the next available SIM card when the current SIM card fails to connect to the network."})]}),(0,a.jsx)(c.d,{checked:t.autoSimFailover,disabled:"active"===h||"maxRetries"===h,onCheckedChange:e=>r(t=>({...t,autoSimFailover:e}))})]}),(0,a.jsxs)("div",{className:"grid w-full items-center gap-1.5",children:[(0,a.jsx)(d.J,{htmlFor:"sim-failover",children:"Schedule SIM Checking"}),(0,a.jsxs)(n.l6,{value:t.simFailoverSchedule.toString(),disabled:"active"===h||"maxRetries"===h||!t.autoSimFailover,onValueChange:e=>r(t=>({...t,simFailoverSchedule:parseInt(e)})),children:[(0,a.jsx)(n.bq,{id:"sim-failover",className:"max-w-xs",children:(0,a.jsx)(n.yv,{placeholder:"Select SIM Checking Interval"})}),(0,a.jsxs)(n.gC,{children:[(0,a.jsx)(n.eb,{value:"0",children:"Disabled"}),(0,a.jsx)(n.eb,{value:"1",children:"1 Minute"}),(0,a.jsx)(n.eb,{value:"5",children:"5 Minutes"}),(0,a.jsx)(n.eb,{value:"30",children:"30 Minutes"}),(0,a.jsx)(n.eb,{value:"60",children:"1 Hour"}),(0,a.jsx)(n.eb,{value:"360",children:"6 Hours"}),(0,a.jsx)(n.eb,{value:"720",children:"12 Hours"}),(0,a.jsx)(n.eb,{value:"1440",children:"24 Hours"})]})]})]})]}),(0,a.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,a.jsx)(d.J,{className:"text-base",children:"Last Activity"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground mt-2",children:R||"No recent activity"})]}),k&&(0,a.jsx)("div",{className:"text-red-500 text-sm",children:k})]})}),(0,a.jsxs)(i.wL,{className:"flex gap-4 border-t py-4",children:[("inactive"===h||"error"===h)&&(0,a.jsx)(o.$,{onClick:I,disabled:w||!t.pingTarget,children:w?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{className:"h-4 w-4 animate-spin"}),"Enabling..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v,{className:"w-4 h-4"}),"Enable QuecWatch"]})}),("active"===h||"maxRetries"===h)&&(0,a.jsx)(o.$,{variant:"destructive",onClick:M,disabled:w,children:w?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{className:"h-4 w-4 animate-spin"}),"Disabling..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b,{className:"w-4 h-4"}),"Disable QuecWatch"]})})]})]})}},42541:(e,t,r)=>{"use strict";r.d(t,{$:()=>c,r:()=>o});var a=r(20475),s=r(20107),i=r(61837),n=r(29395),l=r(22250);let o=(0,n.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),c=s.forwardRef((e,t)=>{let{className:r,variant:s,size:n,asChild:c=!1,...d}=e,u=c?i.DX:"button";return(0,a.jsx)(u,{className:(0,l.cn)(o({variant:s,size:n,className:r})),ref:t,...d})});c.displayName="Button"},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>o,Zp:()=>n,aR:()=>l,wL:()=>u});var a=r(20475),s=r(20107),i=r(22250);let n=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...s})});n.displayName="Card";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("flex flex-col space-y-1.5 p-6",r),...s})});l.displayName="CardHeader";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,i.cn)("font-semibold leading-none tracking-tight",r),...s})});o.displayName="CardTitle";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,i.cn)("text-sm text-muted-foreground",r),...s})});c.displayName="CardDescription";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("p-6 pt-0",r),...s})});d.displayName="CardContent";let u=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center p-6 pt-0",r),...s})});u.displayName="CardFooter"},64219:(e,t,r)=>{"use strict";r.d(t,{p:()=>n});var a=r(20475),s=r(20107),i=r(22250);let n=s.forwardRef((e,t)=>{let{className:r,type:s,...n}=e;return(0,a.jsx)("input",{type:s,className:(0,i.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...n})});n.displayName="Input"},49153:(e,t,r)=>{"use strict";r.d(t,{J:()=>c});var a=r(20475),s=r(20107),i=r(21840),n=r(29395),l=r(22250);let o=(0,n.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(i.b,{ref:t,className:(0,l.cn)(o(),r),...s})});c.displayName=i.b.displayName},35601:(e,t,r)=>{"use strict";r.d(t,{TR:()=>f,bq:()=>u,eb:()=>x,gC:()=>p,l6:()=>o,s3:()=>c,yv:()=>d});var a=r(20475),s=r(20107),i=r(7197),n=r(95257),l=r(22250);let o=n.bL,c=n.YJ,d=n.WT,u=s.forwardRef((e,t)=>{let{className:r,children:s,...o}=e;return(0,a.jsxs)(n.l9,{ref:t,className:(0,l.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",r),...o,children:[s,(0,a.jsx)(n.In,{asChild:!0,children:(0,a.jsx)(i.TBE,{className:"h-4 w-4 opacity-50"})})]})});u.displayName=n.l9.displayName;let m=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(n.PP,{ref:t,className:(0,l.cn)("flex cursor-default items-center justify-center py-1",r),...s,children:(0,a.jsx)(i.Mtm,{})})});m.displayName=n.PP.displayName;let h=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(n.wn,{ref:t,className:(0,l.cn)("flex cursor-default items-center justify-center py-1",r),...s,children:(0,a.jsx)(i.D3D,{})})});h.displayName=n.wn.displayName;let p=s.forwardRef((e,t)=>{let{className:r,children:s,position:i="popper",...o}=e;return(0,a.jsx)(n.ZL,{children:(0,a.jsxs)(n.UC,{ref:t,className:(0,l.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",r),position:i,...o,children:[(0,a.jsx)(m,{}),(0,a.jsx)(n.LM,{className:(0,l.cn)("p-1","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),(0,a.jsx)(h,{})]})})});p.displayName=n.UC.displayName;let f=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(n.JU,{ref:t,className:(0,l.cn)("px-2 py-1.5 text-sm font-semibold",r),...s})});f.displayName=n.JU.displayName;let x=s.forwardRef((e,t)=>{let{className:r,children:s,...o}=e;return(0,a.jsxs)(n.q7,{ref:t,className:(0,l.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),...o,children:[(0,a.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(n.VF,{children:(0,a.jsx)(i.Srz,{className:"h-4 w-4"})})}),(0,a.jsx)(n.p4,{children:s})]})});x.displayName=n.q7.displayName,s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(n.wv,{ref:t,className:(0,l.cn)("-mx-1 my-1 h-px bg-muted",r),...s})}).displayName=n.wv.displayName},18861:(e,t,r)=>{"use strict";r.d(t,{d:()=>l});var a=r(20475),s=r(20107),i=r(80982),n=r(22250);let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(i.bL,{className:(0,n.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",r),...s,ref:t,children:(0,a.jsx)(i.zi,{className:(0,n.cn)("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})});l.displayName=i.bL.displayName},85014:(e,t,r)=>{"use strict";r.d(t,{TooltipProvider:()=>l,ZI:()=>d,k$:()=>c,m_:()=>o});var a=r(20475),s=r(20107),i=r(43048),n=r(22250);let l=i.Kq,o=i.bL,c=i.l9,d=s.forwardRef((e,t)=>{let{className:r,sideOffset:s=4,...l}=e;return(0,a.jsx)(i.UC,{ref:t,sideOffset:s,className:(0,n.cn)("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...l})});d.displayName=i.UC.displayName},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>m,oR:()=>u});var a=r(20107);let s=0,i=new Map,n=e=>{if(i.has(e))return;let t=setTimeout(()=>{i.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);i.set(e,t)},l=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?n(r):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},o=[],c={toasts:[]};function d(e){c=l(c,e),o.forEach(e=>{e(c)})}function u(e){let{...t}=e,r=(s=(s+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>d({type:"DISMISS_TOAST",toastId:r});return d({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||a()}}}),{id:r,dismiss:a,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function m(){let[e,t]=a.useState(c);return a.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>i});var a=r(64901),s=r(868);function i(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{A:()=>o});var a=r(20107);let s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),i=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&r.indexOf(e)===t).join(" ")};var n={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"};let l=(0,a.forwardRef)((e,t)=>{let{color:r="currentColor",size:s=24,strokeWidth:l=2,absoluteStrokeWidth:o,className:c="",children:d,iconNode:u,...m}=e;return(0,a.createElement)("svg",{ref:t,...n,width:s,height:s,stroke:r,strokeWidth:o?24*Number(l)/Number(s):l,className:i("lucide",c),...m},[...u.map(e=>{let[t,r]=e;return(0,a.createElement)(t,r)}),...Array.isArray(d)?d:[d]])}),o=(e,t)=>{let r=(0,a.forwardRef)((r,n)=>{let{className:o,...c}=r;return(0,a.createElement)(l,{ref:n,iconNode:t,className:i("lucide-".concat(s(e)),o),...c})});return r.displayName="".concat(e),r}},59166:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},12607:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(39997).A)("TriangleAlert",[["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-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},80982:(e,t,r)=>{"use strict";r.d(t,{bL:()=>w,zi:()=>N});var a=r(20107),s=r(94521),i=r(64236),n=r(45170),l=r(13061),o=r(65163),c=r(63620),d=r(34544),u=r(20475),m="Switch",[h,p]=(0,n.A)(m),[f,x]=h(m),g=a.forwardRef((e,t)=>{let{__scopeSwitch:r,name:n,checked:o,defaultChecked:c,required:m,disabled:h,value:p="on",onCheckedChange:x,form:g,...v}=e,[b,w]=a.useState(null),N=(0,i.s)(t,e=>w(e)),k=a.useRef(!1),S=!b||g||!!b.closest("form"),[R=!1,C]=(0,l.i)({prop:o,defaultProp:c,onChange:x});return(0,u.jsxs)(f,{scope:r,checked:R,disabled:h,children:[(0,u.jsx)(d.sG.button,{type:"button",role:"switch","aria-checked":R,"aria-required":m,"data-state":y(R),"data-disabled":h?"":void 0,disabled:h,value:p,...v,ref:N,onClick:(0,s.m)(e.onClick,e=>{C(e=>!e),S&&(k.current=e.isPropagationStopped(),k.current||e.stopPropagation())})}),S&&(0,u.jsx)(j,{control:b,bubbles:!k.current,name:n,value:p,checked:R,required:m,disabled:h,form:g,style:{transform:"translateX(-100%)"}})]})});g.displayName=m;var v="SwitchThumb",b=a.forwardRef((e,t)=>{let{__scopeSwitch:r,...a}=e,s=x(v,r);return(0,u.jsx)(d.sG.span,{"data-state":y(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t})});b.displayName=v;var j=e=>{let{control:t,checked:r,bubbles:s=!0,...i}=e,n=a.useRef(null),l=(0,o.Z)(r),d=(0,c.X)(t);return a.useEffect(()=>{let e=n.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(l!==r&&t){let a=new Event("click",{bubbles:s});t.call(e,r),e.dispatchEvent(a)}},[l,r,s]),(0,u.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...i,tabIndex:-1,ref:n,style:{...e.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function y(e){return e?"checked":"unchecked"}var w=g,N=b}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,8885,7563,9464,6810,3048,191,6035,7358],()=>t(30076)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/home/page-0e5412b23515b7f1.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/home/page-0e5412b23515b7f1.js new file mode 100644 index 0000000..9779a31 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/home/page-0e5412b23515b7f1.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6665],{31710:(e,s,l)=>{Promise.resolve().then(l.bind(l,88954))},88954:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>eK});var t=l(20475),n=l(20107),r=l(32857),i=l(72167),a=l(36760),d=l(45934);let o=e=>{let{data:s,isLoading:l}=e;return(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)(i.aR,{children:[(0,t.jsx)(i.ZB,{children:"Sim Card"}),(0,t.jsx)(i.BT,{children:"Sim card information"})]}),(0,t.jsxs)(i.Wu,{className:"grid gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Sim Card Slot in Use"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[50px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.simCard.slot})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Sim Card State"}),l?(0,t.jsx)(a.E,{className:"h-6 w-[100px]"}):(0,t.jsx)(d.E,{className:"font-bold ".concat((null==s?void 0:s.simCard.state)==="Inserted"?"bg-emerald-500 hover:bg-emerald-800":"bg-rose-500 hover:bg-rose-800"),children:null==s?void 0:s.simCard.state})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Provider"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.simCard.provider})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Phone Number"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[140px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.simCard.phoneNumber})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"IMSI"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[140px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.simCard.imsi})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"ICCID"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[140px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.simCard.iccid})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"IMEI"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[140px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.simCard.imei})]})]})]})},c={6:"1.4 MHz",15:"3 MHz",25:"5 MHz",50:"10 MHz",75:"15 MHz",100:"20 MHz"},u={0:"5 MHz",1:"10 MHz",2:"15 MHz",3:"20 MHz",4:"25 MHz",5:"30 MHz",6:"40 MHz",7:"50 MHz",8:"60 MHz",9:"70 MHz",10:"80 MHz",11:"90 MHz",12:"100 MHz",13:"200 MHz",14:"400 MHz",15:"35 MHz",16:"45 MHz"},m={2:"UTRAN",4:"HSDPA",5:"HSUPA",6:"HSDPA & HSUPA",7:"E-UTRAN",10:"E-UTRAN - 5GCN",11:"NR - 5GCN",12:"NG-RAN",13:"E-UTRAN-NR Dual"},x=e=>m[e]||"Unknown",p=e=>{let{data:s,isLoading:l,dataConnectionState:n,connectionStateLoading:r}=e;return(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)(i.aR,{children:[(0,t.jsx)(i.ZB,{children:"Connection"}),(0,t.jsx)(i.BT,{children:"Connection information"})]}),(0,t.jsxs)(i.Wu,{className:"grid gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"APN"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("div",{className:"font-bold",children:null==s?void 0:s.connection.apn})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"Operator State"}),l?(0,t.jsx)(a.E,{className:"h-6 w-[100px]"}):(0,t.jsx)(d.E,{className:"font-bold ".concat((null==s?void 0:s.connection.operatorState)==="Unknown"||(null==s?void 0:s.connection.operatorState)==="Denied"||(null==s?void 0:s.connection.operatorState)==="Not Registered"?"bg-rose-500 hover:bg-rose-800":"bg-emerald-500 hover:bg-emerald-800"),children:null==s?void 0:s.connection.operatorState})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"Functionality State"}),l?(0,t.jsx)(a.E,{className:"h-6 w-[100px]"}):(0,t.jsx)(d.E,{className:"font-bold ".concat((null==s?void 0:s.connection.functionalityState)==="Enabled"?"bg-emerald-500 hover:bg-emerald-800":"bg-rose-500 hover:bg-rose-800"),children:null==s?void 0:s.connection.functionalityState})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"Data Connection State"}),r?(0,t.jsx)(a.E,{className:"h-6 w-[100px]"}):(0,t.jsx)(d.E,{className:"font-bold ".concat("Connected"===n?"bg-emerald-500 hover:bg-emerald-800":"bg-rose-500 hover:bg-rose-800"),children:n})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"Network Type"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("div",{className:"font-bold",children:null==s?void 0:s.connection.networkType})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"Modem Temperature"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("div",{className:"font-bold",children:null==s?void 0:s.connection.modemTemperature})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("div",{children:"Access Technology"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("div",{className:"font-bold",children:(null==s?void 0:s.connection.accessTechnology)?x(s.connection.accessTechnology):"Unknown"})]})]})]})},h=e=>{let{data:s,isLoading:l,bytesSent:n,bytesReceived:r}=e;return(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)(i.aR,{children:[(0,t.jsx)(i.ZB,{children:"Data Transmission"}),(0,t.jsx)(i.BT,{children:"Data transmission information"})]}),(0,t.jsxs)(i.Wu,{className:"grid gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Carrier Aggregation"}),l?(0,t.jsx)(a.E,{className:"h-6 w-[100px]"}):(0,t.jsx)(d.E,{className:"font-bold ".concat((null==s?void 0:s.dataTransmission.carrierAggregation)==="Multi"?"bg-emerald-500 hover:bg-emerald-800":"bg-rose-500 hover:bg-rose-800"),children:null==s?void 0:s.dataTransmission.carrierAggregation})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Bandwidth"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.dataTransmission.bandwidth})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Connected Bands"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.dataTransmission.connectedBands})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Signal Strength"}),l?(0,t.jsx)(a.E,{className:"h-6 w-[100px]"}):(0,t.jsx)(d.E,{className:"font-bold ".concat((null==s?void 0:s.dataTransmission.signalStrength)&&parseInt(null==s?void 0:s.dataTransmission.signalStrength)>80?"bg-emerald-500 hover:bg-emerald-800":(null==s?void 0:s.dataTransmission.signalStrength)&&parseInt(null==s?void 0:s.dataTransmission.signalStrength)>40?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800"),children:null==s?void 0:s.dataTransmission.signalStrength})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"MIMO Layers"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[100px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.dataTransmission.mimoLayers})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Bytes Sent"}),(0,t.jsx)("p",{className:"font-bold",children:n})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Bytes Received"}),(0,t.jsx)("p",{className:"font-bold",children:r})]})]})]})},f=e=>{let{data:s,isLoading:l}=e;return(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)(i.aR,{children:[(0,t.jsx)(i.ZB,{children:"Cellular Information"}),(0,t.jsx)(i.BT,{children:"Cellular network information"})]}),(0,t.jsxs)(i.Wu,{className:"grid gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Cell ID"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[80px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.cellularInfo.cellId})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"TAC"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[80px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.cellularInfo.trackingAreaCode})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Physical Cell IDs"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[80px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.cellularInfo.physicalCellId})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"E/ARFCN"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[80px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.cellularInfo.earfcn})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Mobile Country Code"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[80px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.cellularInfo.mcc})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Mobile Network Code"}),l?(0,t.jsx)(a.E,{className:"h-4 w-[80px]"}):(0,t.jsx)("p",{className:"font-bold",children:null==s?void 0:s.cellularInfo.mnc})]}),(0,t.jsxs)("div",{className:"flex flex-row justify-between text-md",children:[(0,t.jsx)("p",{children:"Signal Quality"}),l?(0,t.jsx)(a.E,{className:"h-6 w-[80px]"}):(0,t.jsx)(d.E,{className:"\n font-bold ".concat((null==s?void 0:s.cellularInfo.signalQuality)&&parseInt(null==s?void 0:s.cellularInfo.signalQuality)>80?"bg-emerald-500 hover:bg-emerald-800":(null==s?void 0:s.cellularInfo.signalQuality)&&parseInt(null==s?void 0:s.cellularInfo.signalQuality)>40?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800"),children:null==s?void 0:s.cellularInfo.signalQuality})]})]})]})};var v=l(1307),g=l(78327),j=l(94005),N=l(4538),w=l(96399);let b={signal:{label:"LTE/5G Signal Metrics"},rsrp:{label:"RSRP",color:"hsl(var(--chart-1))"},rsrq:{label:"RSRQ",color:"hsl(var(--chart-2))"},sinr:{label:"SINR",color:"hsl(var(--chart-3))"}},y=e=>{let s=e.split("\n").filter(e=>e.trim()),l=[];s.forEach(e=>{let s=e.match(/-?\d+/g);s&&l.push(...s.map(Number))});let t=l.filter(e=>-140!==e&&-32768!==e);return 0===t.length?0:Math.round(t.reduce((e,s)=>e+s,0)/t.length)},S=()=>{let[e,s]=(0,n.useState)([]),[l,r]=(0,n.useState)("rsrp"),[d,o]=(0,n.useState)(!0),[c,u]=(0,n.useState)(null),m=(0,n.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/home/fetch_signal_metrics.sh");if(!e.ok)throw Error("Failed to fetch signal metrics");let l=await e.json(),t=Math.min(l.rsrp.length,l.rsrq.length,l.sinr.length),n=Array.from({length:t},(e,s)=>({time:l.rsrp[s].datetime,rsrp:y(l.rsrp[s].output),rsrq:y(l.rsrq[s].output),sinr:y(l.sinr[s].output)}));s(n),u(null)}catch(e){console.error("Error fetching metrics:",e),u(e instanceof Error?e.message:"An unknown error occurred"),s([])}finally{o(!1)}},[]);(0,n.useEffect)(()=>{m();let e=setInterval(m,15e3);return()=>clearInterval(e)},[m]);let x=e.length>0?e[e.length-1]:{rsrp:0,rsrq:0,sinr:0};return c?(0,t.jsx)(i.Zp,{children:(0,t.jsxs)(i.aR,{children:[(0,t.jsx)(i.ZB,{children:"Error Loading Signal Metrics"}),(0,t.jsx)(i.BT,{children:c})]})}):(0,t.jsxs)(i.Zp,{children:[(0,t.jsxs)(i.aR,{className:"flex flex-col items-stretch space-y-0 border-b p-0 sm:flex-row",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col justify-center gap-1 px-6 py-5 sm:py-6",children:[(0,t.jsx)(i.ZB,{children:"Signal Metrics"}),(0,t.jsx)(i.BT,{children:"Realtime LTE/5G Signal performance"})]}),(0,t.jsx)("div",{className:"flex",children:["rsrp","rsrq","sinr"].map(e=>(0,t.jsxs)("button",{"data-active":l===e,className:"flex flex-1 flex-col justify-center gap-1 border-t px-6 py-4 text-left even:border-l data-[active=true]:bg-muted/50 sm:border-l sm:border-t-0 sm:px-8 sm:py-6",onClick:()=>r(e),children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:b[e].label}),d?(0,t.jsx)(a.E,{className:"lg:h-10 h-6 w-full"}):(0,t.jsx)("span",{className:"text-base font-bold leading-none sm:text-3xl",children:x[e].toFixed(0)})]},e))})]}),(0,t.jsx)(i.Wu,{className:"px-2 sm:p-6",children:(0,t.jsx)(v.at,{config:b,className:"aspect-auto h-[250px] w-full",children:(0,t.jsxs)(g.b,{accessibilityLayer:!0,data:e,margin:{left:12,right:12},children:[(0,t.jsx)(j.d,{vertical:!1}),(0,t.jsx)(N.W,{dataKey:"time",tickLine:!1,axisLine:!1,tickMargin:8,minTickGap:32,tickFormatter:e=>new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0})}),(0,t.jsx)(v.II,{content:(0,t.jsx)(v.Nt,{className:"w-[200px]",nameKey:"metric",labelFormatter:e=>new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0})})}),(0,t.jsx)(w.N,{dataKey:l,type:"monotone",stroke:"var(--color-".concat(l,")"),strokeWidth:2,dot:!1})]})})}),(0,t.jsxs)(i.wL,{className:"flex-col items-start gap-2 text-sm",children:[(0,t.jsx)("div",{className:"flex gap-2 font-medium leading-none",children:"The tabs show the combined average value for LTE and 5G metrics."}),(0,t.jsx)("div",{className:"leading-none text-muted-foreground italic",children:"The higher the value, the better the signal quality."})]})]})},k=e=>{if("Unknown!"===e)return"-";let s=e.match(/(\d+)/);if(!s)return e;let l=parseInt(s[1],10);return l>=1e3?"".concat(l/1e3).concat((e.includes("Gb"),"Gb/s")):"".concat(l).concat((e.includes("Mb"),"Mb/s"))},E=()=>{let[e,s]=(0,n.useState)({link_status:"Loading...",link_speed:"Loading...",auto_negotiation:"Loading..."}),[l,r]=(0,n.useState)(!0),[d,o]=(0,n.useState)(null);return((0,n.useEffect)(()=>{(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/home/fetch_hw_details.sh?type=eth",{method:"GET",cache:"no-store",headers:{"Content-Type":"application/json"}});if(!e.ok)throw Error("Network response was not ok");let l=await e.json();s(l),r(!1)}catch(e){o("Failed to fetch Ethernet information"),r(!1)}})()},[]),d)?(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsx)(i.ZB,{children:"Ethernet"})}),(0,t.jsx)(i.Wu,{className:"flex items-center justify-center",children:(0,t.jsx)("div",{className:"text-red-500",children:d})})]}):(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsx)(i.ZB,{children:"Ethernet"})}),(0,t.jsx)(i.Wu,{children:(0,t.jsxs)("div",{className:"grid lg:grid-cols-3 grid-cols-2 grid-flow-row gap-4 col-span-3",children:[(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Link Status"}),(0,t.jsx)("span",{className:"text-base font-bold",children:l?(0,t.jsx)(a.E,{className:"h-8 w-full"}):"yes"===e.link_status?"Active":"Inactive"})]}),(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Link Speed"}),(0,t.jsx)("span",{className:"text-base font-bold",children:l?(0,t.jsx)(a.E,{className:"h-8 w-full"}):k(e.link_speed)})]}),(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Auto-negotiation"}),(0,t.jsx)("span",{className:"text-base font-bold",children:l?(0,t.jsx)(a.E,{className:"h-8 w-full"}):"on"===e.auto_negotiation?"Active":"Inactive"})]})]})})]})},A=e=>"".concat(Math.round(e/1048576)," MB"),C=()=>{let[e,s]=(0,n.useState)({total:0,used:0,available:0}),[l,r]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{let e=async()=>{try{let e=await fetch("/cgi-bin/quecmanager/home/fetch_hw_details.sh?type=memory",{method:"GET",cache:"no-store",headers:{"Content-Type":"application/json"}});if(!e.ok)throw Error("Network response was not ok");let t=await e.json();s(t),l&&r(!1)}catch(e){console.error("Failed to fetch memory information"),l&&r(!1)}};e();let t=setInterval(e,2e3);return()=>clearInterval(t)},[l]),(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsx)(i.ZB,{children:"Memory"})}),(0,t.jsx)(i.Wu,{children:(0,t.jsxs)("div",{className:"grid lg:grid-cols-3 grid-cols-2 grid-flow-row gap-4 col-span-3",children:[(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Total"}),l?(0,t.jsx)(a.E,{className:"h-6 w-24"}):(0,t.jsx)("span",{className:"text-base font-bold",children:A(e.total)})]}),(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Used"}),l?(0,t.jsx)(a.E,{className:"h-6 w-24"}):(0,t.jsx)("span",{className:"text-base font-bold",children:A(e.used)})]}),(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:"Available"}),l?(0,t.jsx)(a.E,{className:"h-6 w-24"}):(0,t.jsx)("span",{className:"text-base font-bold",children:A(e.available)})]})]})})]})},R={ms:{label:"ms",color:"hsl(var(--chart-4))"}},T=()=>new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}),I=()=>{let[e,s]=(0,n.useState)(()=>{let e=localStorage.getItem("pingData");return e?JSON.parse(e):[]}),[l,r]=(0,n.useState)(!0);return(0,n.useEffect)(()=>{let t=async()=>{try{let t=await fetch("/cgi-bin/quecmanager/home/ping_latency.sh",{method:"GET",cache:"no-store",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("Network response was not ok");let n=await t.json(),i={time:T(),ms:n.latency},a=[...e,i].slice(-5);s(a),localStorage.setItem("pingData",JSON.stringify(a)),l&&r(!1)}catch(e){console.error("Failed to fetch ping latency",e),l&&r(!1)}};t();let n=setInterval(t,6e4);return()=>clearInterval(n)},[l,e]),(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsx)(i.ZB,{children:"Ping Latency"})}),(0,t.jsx)(i.Wu,{children:(0,t.jsx)(v.at,{config:R,children:(0,t.jsxs)(g.b,{accessibilityLayer:!0,data:e,margin:{left:12,right:12},children:[(0,t.jsx)(j.d,{vertical:!1}),(0,t.jsx)(N.W,{dataKey:"time",tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:e=>e}),(0,t.jsx)(v.II,{cursor:!1,content:(0,t.jsx)(v.Nt,{hideLabel:!0})}),(0,t.jsx)(w.N,{dataKey:"ms",type:"natural",stroke:"var(--color-ms)",strokeWidth:2,dot:!1})]})})})]})};var U=l(42541),M=l(93557),B=l(97801),D=l(14389),L=l(98969),z=l(17799),G=l(92776),_=l.n(G),P=l(7197),F=l(74043),H=l(22250);let Z=n.createContext(null);function q(){let e=n.useContext(Z);if(!e)throw Error("useCarousel must be used within a ");return e}let O=n.forwardRef((e,s)=>{let{orientation:l="horizontal",opts:r,setApi:i,plugins:a,className:d,children:o,...c}=e,[u,m]=(0,F.A)({...r,axis:"horizontal"===l?"x":"y"},a),[x,p]=n.useState(!1),[h,f]=n.useState(!1),v=n.useCallback(e=>{e&&(p(e.canScrollPrev()),f(e.canScrollNext()))},[]),g=n.useCallback(()=>{null==m||m.scrollPrev()},[m]),j=n.useCallback(()=>{null==m||m.scrollNext()},[m]),N=n.useCallback(e=>{"ArrowLeft"===e.key?(e.preventDefault(),g()):"ArrowRight"===e.key&&(e.preventDefault(),j())},[g,j]);return n.useEffect(()=>{m&&i&&i(m)},[m,i]),n.useEffect(()=>{if(m)return v(m),m.on("reInit",v),m.on("select",v),()=>{null==m||m.off("select",v)}},[m,v]),(0,t.jsx)(Z.Provider,{value:{carouselRef:u,api:m,opts:r,orientation:l||((null==r?void 0:r.axis)==="y"?"vertical":"horizontal"),scrollPrev:g,scrollNext:j,canScrollPrev:x,canScrollNext:h},children:(0,t.jsx)("div",{ref:s,onKeyDownCapture:N,className:(0,H.cn)("relative",d),role:"region","aria-roledescription":"carousel",...c,children:o})})});O.displayName="Carousel";let W=n.forwardRef((e,s)=>{let{className:l,...n}=e,{carouselRef:r,orientation:i}=q();return(0,t.jsx)("div",{ref:r,className:"overflow-hidden",children:(0,t.jsx)("div",{ref:s,className:(0,H.cn)("flex","horizontal"===i?"-ml-4":"-mt-4 flex-col",l),...n})})});W.displayName="CarouselContent";let Q=n.forwardRef((e,s)=>{let{className:l,...n}=e,{orientation:r}=q();return(0,t.jsx)("div",{ref:s,role:"group","aria-roledescription":"slide",className:(0,H.cn)("min-w-0 shrink-0 grow-0 basis-full","horizontal"===r?"pl-4":"pt-4",l),...n})});Q.displayName="CarouselItem";let K=n.forwardRef((e,s)=>{let{className:l,variant:n="outline",size:r="icon",...i}=e,{orientation:a,scrollPrev:d,canScrollPrev:o}=q();return(0,t.jsxs)(U.$,{ref:s,variant:n,size:r,className:(0,H.cn)("absolute h-8 w-8 rounded-full","horizontal"===a?"-left-12 top-1/2 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",l),disabled:!o,onClick:d,...i,children:[(0,t.jsx)(P.A60,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Previous slide"})]})});K.displayName="CarouselPrevious";let $=n.forwardRef((e,s)=>{let{className:l,variant:n="outline",size:r="icon",...i}=e,{orientation:a,scrollNext:d,canScrollNext:o}=q();return(0,t.jsxs)(U.$,{ref:s,variant:n,size:r,className:(0,H.cn)("absolute h-8 w-8 rounded-full","horizontal"===a?"-right-12 top-1/2 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",l),disabled:!o,onClick:d,...i,children:[(0,t.jsx)(P.flY,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Next slide"})]})});$.displayName="CarouselNext";let V=e=>{let{id:s,bandNumber:l,earfcn:n,bandwidth:r,pci:a,rsrp:o,rsrq:c,sinr:u}=e;return(0,t.jsx)(i.Zp,{className:"p-8",children:(0,t.jsxs)("div",{className:"flex flex-row items-center gap-6 justify-between",children:[(0,t.jsxs)("div",{className:"grid gap-2 w-[180px]",children:[(0,t.jsx)("h2",{className:"text-md font-bold",children:"Band"}),(0,t.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[l.replace("LTE BAND ","B").replace("NR5G BAND ","N"),l.includes("NR5G")&&(0,t.jsx)(d.E,{className:"text-xs bg-blue-600 hover:bg-blue-800",children:"NR 5G"})]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-bold",children:"E/ARFCN"}),(0,t.jsx)("p",{children:n})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-bold",children:"Bandwidth"}),(0,t.jsx)("p",{children:r})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-bold",children:"Physical Cell ID"}),(0,t.jsx)("p",{children:a})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-bold",children:"RSRP"}),(0,t.jsxs)(d.E,{className:parseInt(o)>=-80?"bg-emerald-500 hover:bg-emerald-800":parseInt(o)>=-100?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800",children:[o," dBm"]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-bold",children:"RSRQ"}),(0,t.jsxs)(d.E,{className:10>=parseInt(c)?"bg-emerald-500 hover:bg-emerald-800":20>=parseInt(c)?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800",children:[c," dB"]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("p",{className:"text-sm font-bold",children:"SINR"}),(0,t.jsxs)(d.E,{className:parseInt(u)>=20?"bg-emerald-500 hover:bg-emerald-800":parseInt(u)>=0?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800",children:[u," dB"]})]})]})})},J=e=>{let{bands:s,isLoading:l}=e;return l?(0,t.jsxs)("div",{className:"flex items-center justify-center",children:[(0,t.jsx)("div",{className:"hidden lg:block w-full",children:(0,t.jsxs)(i.Zp,{className:"p-6 grid gap-4",children:[s&&s.map(e=>(0,t.jsx)(V,{...e},e.id)),(0,t.jsx)(i.wL,{className:"w-full p-6 flex items-center justify-center",children:(0,t.jsx)(i.BT,{className:"text-md",children:"Currently bands connected."})})]})}),(0,t.jsx)(O,{className:"lg:hidden w-full max-w-xs",children:(0,t.jsx)(W,{children:(0,t.jsx)(Q,{children:(0,t.jsx)("div",{className:"p-1",children:(0,t.jsx)(i.Zp,{children:(0,t.jsxs)(i.Wu,{className:"aspect-square p-4 gap-4 flex flex-col items-center justify-center flex-grow",children:[(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"Band"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-16 h-4"})})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"E/ARFCN"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-16 h-4"})})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"Bandwidth"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-16 h-4"})})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"PCI"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-16 h-4"})})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"RSRP"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-32 h-4"})})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"RSRQ"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-32 h-4"})})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"SINR"}),(0,t.jsx)("div",{children:(0,t.jsx)(a.E,{className:"w-32 h-4"})})]})]})})})})})})]}):(0,t.jsxs)("div",{className:"flex items-center justify-center",children:[(0,t.jsx)("div",{className:"hidden lg:block w-full",children:(0,t.jsxs)(i.Zp,{className:"p-6 grid gap-4",children:[s&&s.map(e=>(0,t.jsx)(V,{...e},e.id)),(0,t.jsx)(i.wL,{className:"w-full p-6 flex items-center justify-center",children:(0,t.jsx)(i.BT,{className:"text-md",children:"Current bands connected."})})]})}),(0,t.jsxs)(O,{className:"lg:hidden w-full max-w-xs",children:[(0,t.jsx)(W,{children:null==s?void 0:s.map(e=>(0,t.jsx)(Q,{className:"md:basis-1/2 lg:basis-1/3",children:(0,t.jsx)("div",{className:"p-1",children:(0,t.jsx)(i.Zp,{children:(0,t.jsxs)(i.Wu,{className:"aspect-square p-4 gap-4 flex flex-col items-center justify-center flex-grow",children:[(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"Band"}),(0,t.jsx)("p",{children:e.bandNumber})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"E/ARFCN"}),(0,t.jsx)("p",{children:e.earfcn})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"Bandwidth"}),(0,t.jsx)("p",{children:e.bandwidth})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"PCI"}),(0,t.jsx)("p",{children:e.pci})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"RSRP"}),(0,t.jsxs)(d.E,{className:parseInt(e.rsrp)>=-80?"bg-emerald-500 hover:bg-emerald-800":parseInt(e.rsrp)>=-100?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800",children:[e.rsrp," dBm"]})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"RSRQ"}),(0,t.jsxs)(d.E,{className:10>=parseInt(e.rsrq)?"bg-emerald-500 hover:bg-emerald-800":20>=parseInt(e.rsrq)?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800",children:[e.rsrq," dB"]})]}),(0,t.jsxs)("div",{className:"flex justify-between w-full",children:[(0,t.jsx)("p",{children:"SINR"}),(0,t.jsxs)(d.E,{className:parseInt(e.sinr)>=20?"bg-emerald-500 hover:bg-emerald-800":parseInt(e.sinr)>=0?"bg-orange-500 hover:bg-orange-800":"bg-rose-500 hover:bg-rose-800",children:[e.sinr," dB"]})]})]})})})},e.id))}),(0,t.jsx)(K,{}),(0,t.jsx)($,{})]})]})},Y=e=>{try{var s,l;return(null==e?void 0:null===(l=e.split("\n")[1])||void 0===l?void 0:null===(s=l.split(":")[1])||void 0===s?void 0:s.split(",")[2].replace(/"/g,"").trim())||"Unknown"}catch(e){return"-"}},X=e=>{try{var s,l;return(null==e?void 0:null===(l=e.split("\n")[1])||void 0===l?void 0:null===(s=l.split(":")[1])||void 0===s?void 0:s.split(",")[3].trim())||"Unknown"}catch(e){return"-"}},ee=(e,s)=>{var l,t,n,r;switch((null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[1].trim())||(null===(r=s.split("\n")[1])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[1].trim())){case"1":return"Registered";case"2":return"Searching";case"3":return"Denied";case"4":return"Unknown";case"5":return"Roaming";default:return"Not Registered"}},es=e=>{let s=e.match(/"LTE BAND \d+"|"NR5G BAND \d+"/g),l=null==s?void 0:s.some(e=>e.includes("LTE")),t=null==s?void 0:s.some(e=>e.includes("NR5G"));return l&&t?"NR5G-NSA":l?"LTE":t?"NR5G-SA":"No Signal"},el=e=>{let s=["cpuss-0","cpuss-1","cpuss-2","cpuss-3"].map(s=>{var l;let t=e.split("\n").find(e=>e.includes(s));return parseInt(null==t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[1].replace(/"/g,"").trim())}),l=s.reduce((e,s)=>e+s,0)/s.length;return"".concat(Math.round(l),"\xb0C")},et=(e,s)=>{var l;let t=e.split("\n").find(e=>e.includes("PCC"));t=null==t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[2].trim();let n=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("LTE"));n=n.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[2].trim()});let r=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("NR5G"));if(r=r.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[2].trim()}),"LTE"===s)return!n.length&&t?c[t]||"Unknown":[t?c[t]:"",...n.map(e=>c[e])].join(", ");if("NR5G-SA"===s&&t)return r.length?[u[t],...r.map(e=>u[e])].join(", "):u[t]||"Unknown";if("NR5G-NSA"===s&&t)return n.length||r.length?n.length&&!r.length?[c[t],...n.map(e=>c[e])].join(", "):[c[t],...n.map(e=>c[e]),...r.map(e=>u[e])].join(", "):c[t]||"Unknown";return"Unknown"},en=e=>{let s=e.match(/"LTE BAND \d+"|"NR5G BAND \d+"/g);return(null==s?void 0:s.map(e=>e.includes("LTE")?"B".concat(e.match(/\d+/)):e.includes("NR5G")?"N".concat(null==e?void 0:e.split(" ")[2].replace(/"/g,"").trim()):void 0).join(", "))||"Unknown"},er=e=>{var s,l;let t=e.split("\n").find(e=>e.includes("LTE")),n=e.split("\n").find(e=>e.includes("NR5G")),r=[],i=[];if(t&&(r=null==t?void 0:null===(s=t.split(":")[1])||void 0===s?void 0:s.split(",").slice(0,4).map(e=>parseInt(e.trim()))),n&&(i=null==n?void 0:null===(l=n.split(":")[1])||void 0===l?void 0:l.split(",").slice(0,4).map(e=>parseInt(e.trim()))),r=r.filter(e=>-140!==e&&-37625!==e),i=i.filter(e=>-140!==e&&-37625!==e),r.length){if(i.length){let e=r.reduce((e,s)=>e+s,0)/r.length,s=i.reduce((e,s)=>e+s,0)/i.length,l=Math.max(0,Math.min(100,(e+125)/50*100)),t=Math.max(0,Math.min(100,(s+125)/50*100));return"".concat(Math.round((l+t)/2),"%")}{let e=Math.max(0,Math.min(100,(r.reduce((e,s)=>e+s,0)/r.length+125)/50*100));return"".concat(Math.round(e),"%")}}if(!i.length)return"Unknown%";{let e=Math.max(0,Math.min(100,(i.reduce((e,s)=>e+s,0)/i.length+125)/50*100));return"".concat(Math.round(e),"%")}},ei=(e,s)=>{var l,t,n,r;return"NR5G-SA"===s||"LTE"===s?null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[6].trim():"NR5G-NSA"===s?null===(r=e.split("\n")[2])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[4].trim():"Unknown"},ea=(e,s)=>{var l,t,n,r,i,a;return"NR5G-SA"===s?null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[8].trim():"NR5G-NSA"===s?null===(r=e.split("\n")[2])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[10].trim():"LTE"===s?null===(a=e.split("\n")[1])||void 0===a?void 0:null===(i=a.split(":")[1])||void 0===i?void 0:i.split(",")[12].trim():"Unknown"},ed=(e,s)=>{var l,t;if("LTE"===s||"NR5G-NSA"===s){let t=e.split("\n").find(e=>e.includes("PCC"));t=null==t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[5].trim();let n=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("LTE"));n=n.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[5].trim()});let r=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("NR5G"));return(r=r.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[4].trim()}),n.length||r.length)?"LTE"===s?[t,...n].join(", "):[t,...n,...r].join(", "):t}if("NR5G-SA"===s){let s=e.split("\n").find(e=>e.includes("PCC"));s=null==s?void 0:null===(t=s.split(":")[1])||void 0===t?void 0:t.split(",")[4].trim();let l=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("NR5G"));return(l=l.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[5].trim()})).length?[s,...l].join(", "):s}},eo=e=>{var s;let l=e.split("\n").find(e=>e.includes("PCC"));l=null==l?void 0:null===(s=l.split(":")[1])||void 0===s?void 0:s.split(",")[1].trim();let t=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("LTE"));t=t.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[1].trim()});let n=e.split("\n").filter(e=>e.includes("SCC")&&e.includes("NR5G"));return(n=n.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[1].trim()}),!l||t.length||n.length)?l&&t.length&&!n.length?[l,...t].join(", "):l&&!t.length&&n.length?[l,...n].join(", "):l&&t.length&&n.length?[l,...t,...n].join(", "):"Unknown":l},ec=(e,s)=>{var l,t,n,r;return"LTE"===s||"NR5G-SA"===s?null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[4].trim():"NR5G-NSA"===s?null===(r=e.split("\n")[2])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[2].trim():"Unknown"},eu=(e,s)=>{var l,t,n,r;return"LTE"===s||"NR5G-SA"===s?null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[5].trim():"NR5G-NSA"===s?null===(r=e.split("\n")[2])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[3].trim():void 0},em=e=>{let s=e.split("\n"),l=s.find(e=>e.includes("LTE")),t=s.find(e=>e.includes("NR5G")),n=e=>{var s;return e?null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",").slice(0,4).map(e=>parseInt(e.trim())).filter(e=>-140!==e&&-37625!==e):[]},r=e=>e.length?Math.max(0,Math.min(100,(e.reduce((e,s)=>e+s,0)/e.length- -10)/40*100)):0,i=n(l),a=n(t),d=r(i),o=r(a);return i.length&&a.length?"".concat(Math.round((d+o)/2),"%"):i.length?"".concat(Math.round(d),"%"):a.length?"".concat(Math.round(o),"%"):"Unknown%"},ex=e=>{let s=e.split("\n").filter(e=>e.includes("LTE BAND")),l=e.split("\n").filter(e=>e.includes("NR5G BAND"));return s.length&&l.length?[...s,...l].map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[3].replace(/"/g,"")}):s.length?s.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[3].replace(/"/g,"")}):l.length?l.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[3].replace(/"/g,"")}):["Unknown"]},ep=e=>{let s=e.split("\n").filter(e=>e.includes("LTE BAND")),l=e.split("\n").filter(e=>e.includes("NR5G BAND"));return s.length&&l.length?[...s,...l].map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[1]}):s.length?s.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[1]}):l.length?l.map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[1]}):["Unknown"]},eh=e=>{let s=e.split("\n").filter(e=>e.includes("LTE BAND")),l=e.split("\n").filter(e=>e.includes("NR5G BAND")),t=s.map(e=>{var s;return c[null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[2]]}),n=l.map(e=>{var s;return u[null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[2]]});return t.length&&n.length?[...t,...n]:t.length?t:n.length?n:["Unknown"]},ef=(e,s)=>{if("LTE"===s||"NR5G-SA"===s){var l;let s=e.split("\n").find(e=>e.includes("PCC"));s=s?null==s?void 0:null===(l=s.split(":")[1])||void 0===l?void 0:l.split(",")[4].trim():"Unknown";let t=e.split("\n").filter(e=>e.includes("BAND"));return t.length?[s,...t.map(e=>{var s;return(null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[5])||"Unknown"})]:[s]}if("NR5G-NSA"===s){let s=e.split("\n").filter(e=>e.includes("LTE BAND")),l=e.split("\n").filter(e=>e.includes("NR5G BAND"));return[...s.map(e=>{var s;return(null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[5])||"Unknown"}),...l.map(e=>{var s;return(null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[4])||"Unknown"})]}return["Unknown"]},ev=(e,s,l)=>{if("LTE"===s)return e.split("\n").filter(e=>e.includes("LTE BAND")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[6]});if("NR5G-NSA"===s){let s=e.split("\n").filter(e=>e.includes("LTE BAND")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[6]}),t=l.split("\n").filter(e=>e.includes("NR5G-NSA")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[4]});return s.length&&t.length?[...s,...t]:s.length?s:t.length?t:["Unknown"]}if("NR5G-SA"===s){let e=l.split("\n").find(e=>e.includes("NR5G-SA"));if(e){var t;return[null==e?void 0:null===(t=e.split(":")[1])||void 0===t?void 0:t.split(",")[12]]}}return["Unknown"]},eg=(e,s,l)=>{if("LTE"===s)return e.split("\n").filter(e=>e.includes("BAND")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[7]});if("NR5G-SA"===s){var t;let e=l.split("\n").find(e=>e.includes("NR5G-SA"));return e?[null==e?void 0:null===(t=e.split(":")[1])||void 0===t?void 0:t.split(",")[13]]:["Unknown"]}if("NR5G-NSA"===s){let s=e.split("\n").filter(e=>e.includes("LTE BAND")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[7]}),t=l.split("\n").filter(e=>e.includes("NR5G-NSA")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[6]});if(s.length&&t.length)return[...s,...t];if(s.length)return s;if(t.length)return t}return["Unknown"]},ej=(e,s,l)=>{if("LTE"===s)return e.split("\n").filter(e=>e.includes("BAND")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[9]});if("NR5G-SA"===s){var t;let e=l.split("\n").find(e=>e.includes("NR5G-SA"));return e?[null==e?void 0:null===(t=e.split(":")[1])||void 0===t?void 0:t.split(",")[14]]:["Unknown"]}if("NR5G-NSA"===s){let s=e.split("\n").filter(e=>e.includes("LTE BAND")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[9]}),t=l.split("\n").filter(e=>e.includes("NR5G-NSA")).map(e=>{var s;return null==e?void 0:null===(s=e.split(":")[1])||void 0===s?void 0:s.split(",")[5]});if(s.length&&t.length)return[...s,...t];if(s.length)return s;if(t.length)return t}return["Unknown"]},eN=e=>{var s,l;let t=[-32768,-140],n=e.split("\n").find(e=>e.includes("LTE")),r=e.split("\n").find(e=>e.includes("NR5G")),i=[],a=[];return(n&&(i=null==n?void 0:null===(s=n.split(":")[1])||void 0===s?void 0:s.split(",").slice(0,4).map(e=>parseInt(e.trim()))),r&&(a=null==r?void 0:null===(l=r.split(":")[1])||void 0===l?void 0:l.split(",").slice(0,4).map(e=>parseInt(e.trim()))),i=i.filter(e=>!t.includes(e)),a=a.filter(e=>!t.includes(e)),i.length)?a.length?"LTE ".concat(i.length.toString()," / NR ").concat(a.length.toString()):"LTE ".concat(i.length.toString()):a.length?"NR ".concat(a.length.toString()):"Unknown"},ew=()=>{let[e,s]=(0,n.useState)(null),[l,t]=(0,n.useState)(!0),[r,i]=(0,n.useState)(null),a=(0,n.useCallback)(async()=>{try{var e,l,t,n,r,a,d,o,c,u,m,x;let i=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=1"),p=await i.json();console.log(p);let h={simCard:{slot:(null===(e=p[0].response.split("\n")[1])||void 0===e?void 0:e.split(":")[1].trim())||"Unknown",state:p[6].response.match("READY")?"Inserted":"Not Inserted",provider:Y(p[2].response)||"Unknown",phoneNumber:(null===(t=p[1].response.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[1].replace(/"/g,"").trim())||"Unknown",imsi:p[3].response.split("\n")[1].trim()||"Unknown",iccid:(null===(n=p[4].response.split("\n")[1])||void 0===n?void 0:n.split(":")[1].trim())||"Unknown",imei:p[5].response.split("\n")[1].trim()||"Unknown"},connection:{apn:(null===(a=p[7].response.split("\n")[1])||void 0===a?void 0:null===(r=a.split(":")[1])||void 0===r?void 0:r.split(",")[2].replace(/"/g,"").trim())||(null===(o=p[12].response.split("\n")[1])||void 0===o?void 0:null===(d=o.split(":")[1])||void 0===d?void 0:d.split(",")[2].replace(/"/g,"").trim())||"Unknown",operatorState:ee(p[8].response,p[16].response)||"Unknown",functionalityState:(null===(c=p[9].response.split("\n")[1])||void 0===c?void 0:c.split(":")[1].trim())==="1"?"Enabled":"Disabled",networkType:es(p[13].response)||"No Signal",modemTemperature:el(p[11].response)||"Unknown",accessTechnology:X(p[2].response)||"Unknown"},dataTransmission:{carrierAggregation:(null===(u=p[13].response.match(/"LTE BAND \d+"|"NR5G BAND \d+"/g))||void 0===u?void 0:u.length)>1?"Multi":"Inactive",bandwidth:et(p[13].response,es(p[13].response))||"Unknown",connectedBands:en(p[13].response)||"Unknown",signalStrength:er(p[14].response)||"Unknown",mimoLayers:eN(p[14].response)||"Unknown"},cellularInfo:{cellId:ei(p[10].response,es(p[13].response))||"Unknown",trackingAreaCode:ea(p[10].response,es(p[13].response))||"Unknown",physicalCellId:ed(p[13].response,es(p[13].response)),earfcn:eo(p[13].response),mcc:ec(p[10].response,es(p[13].response))||"Unknown",mnc:eu(p[10].response,es(p[13].response))||"Unknown",signalQuality:em(p[19].response)||"Unknown"},currentBands:{id:Array.from({length:null!==(x=null===(m=ex(p[13].response))||void 0===m?void 0:m.length)&&void 0!==x?x:0},(e,s)=>s+1)||[1],bandNumber:ex(p[13].response)||["Unknown"],earfcn:ep(p[13].response),bandwidth:eh(p[13].response)||["Unknown"],pci:ef(p[13].response,es(p[13].response))||["Unknown"],rsrp:ev(p[13].response,es(p[13].response),p[10].response),rsrq:eg(p[13].response,es(p[13].response),p[10].response)||["Unknown"],sinr:ej(p[13].response,es(p[13].response),p[10].response)||["Unknown"]}};s(h)}catch(e){console.error("Error fetching home data:",e),s({simCard:{slot:"Unknown",state:"Not Inserted",provider:"Unknown",phoneNumber:"Unknown",imsi:"Unknown",iccid:"Unknown",imei:"Unknown"},connection:{apn:"Unknown",operatorState:"Unknown",functionalityState:"Disabled",networkType:"No Signal",modemTemperature:"Unknown",accessTechnology:"Unknown"},dataTransmission:{carrierAggregation:"Inactive",connectedBands:"Unknown",signalStrength:"Unknown",mimoLayers:"Unknown"},cellularInfo:{cellId:"Unknown",trackingAreaCode:"Unknown",physicalCellId:"Unknown",earfcn:"Unknown",mnc:"Unknown",signalQuality:"Unknown"},currentBands:{id:[1],bandNumber:["Unknown"],earfcn:["Unknown"],bandwidth:["Unknown"],pci:["Unknown"],rsrp:["Unknown"],rsrq:["Unknown"],sinr:["Unknown"]}}),i(null)}},[]);return(0,n.useEffect)(()=>{let e,s=!0;return(async()=>{if(s)try{await a()}finally{s&&t(!1)}})(),e=setInterval(()=>{a()},15e3),()=>{s=!1,clearInterval(e)}},[a]),{data:e,isLoading:l,error:r,refresh:(0,n.useCallback)(async()=>{t(!0),await a(),t(!1)},[a])}},eb=()=>{let[e,s]=(0,n.useState)("Unknown"),[l,t]=(0,n.useState)(!0),r=(0,n.useCallback)(async()=>{try{t(!0);let e=await fetch("/cgi-bin/quecmanager/home/check_net.sh"),l=await e.json();s("ACTIVE"===l.connection?"Connected":"Disconnected"),t(!1)}catch(e){console.error("Error fetching data connection state:",e),s("Unknown"),t(!1)}},[]);return(0,n.useEffect)(()=>{r();let e=setInterval(r,3e4);return()=>clearInterval(e)},[r]),{dataConnectionState:e,refresh:(0,n.useCallback)(()=>{r()},[r]),isStateLoading:l}},ey=e=>{if(0===e)return"0 Bytes";let s=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,s)).toFixed(2))+" "+["Bytes","KB","MB","GB","TB"][s]},eS=()=>{let[e,s]=(0,n.useState)("0 Bytes"),[l,t]=(0,n.useState)("0 Bytes"),[r,i]=(0,n.useState)(""),a=e=>{var l,n;let r=Array.isArray(e)?e[e.length-1]:e;if(!r)return;i(r.datetime);let a=r.output.replace(/\r\\n/g,"\n").trim().split("\n").filter(e=>e.trim()),d=null===(l=a.find(e=>e.includes("+QGDCNT:")))||void 0===l?void 0:l.trim(),o=null===(n=a.find(e=>e.includes("+QGDNRCNT:")))||void 0===n?void 0:n.trim();if(!d||!o){console.error("Missing required data in response");return}let[c,u]=d.replace("+QGDCNT:","").split(",").map(e=>parseInt(e.trim())),[m,x]=o.replace("+QGDNRCNT:","").split(",").map(e=>parseInt(e.trim()));s(ey((u||0)+(m||0))),t(ey((c||0)+(x||0)))},d=(0,n.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/home/fetch_data_usage.sh"),s=await e.json();a(s)}catch(e){console.error("Error fetching traffic stats:",e)}},[]);return(0,n.useEffect)(()=>{d();let e=setInterval(d,12e3);return()=>clearInterval(e)},[d]),{bytesSent:e,bytesReceived:l,lastUpdateTime:r,refresh:(0,n.useCallback)(()=>{d()},[d])}},ek=()=>{let[e,s]=(0,n.useState)(!1),[l,t]=(0,n.useState)(null),r=(e,s)=>{var l,t,n,r;let i=null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[1].trim(),a=null===(r=s.split("\n")[1])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[1].trim();return"1"===i||"1"===a?"Registered":"Not Registered"},i=(e,s)=>{var l,t,n,r;return(null===(t=e.split("\n")[1])||void 0===t?void 0:null===(l=t.split(":")[1])||void 0===l?void 0:l.split(",")[2].replace(/"/g,"").trim())===(null===(r=s.split("\n")[1])||void 0===r?void 0:null===(n=r.split(":")[1])||void 0===n?void 0:n.split(",")[2].replace(/"/g,"").trim())?"Enabled":"Disabled"},a=e=>{var s,l,t,n;let r=null===(l=e.split("\n")[1])||void 0===l?void 0:null===(s=l.split(":")[1])||void 0===s?void 0:s.split(",")[1].trim(),i=null===(n=e.split("\n")[2])||void 0===n?void 0:null===(t=n.split(":")[1])||void 0===t?void 0:t.split(",")[1].trim();return r&&"1"===r||i&&"1"===i?"Connected":"Disconnected"},d=e=>{try{var s,l,t,n;let r=e.trim().split("\n").map(e=>e.trim()),i=r.find(e=>e.includes("+QRSRP:")&&e.includes("LTE")),a=r.find(e=>e.includes("+QRSRP:")&&e.includes("NR5G")),d=[];i&&(d=null==i?void 0:null===(l=i.split(":")[1])||void 0===l?void 0:null===(s=l.split(","))||void 0===s?void 0:s.slice(0,4).map(e=>e.trim()).filter(e=>!isNaN(parseInt(e))).map(e=>parseInt(e)));let o=[];if(a&&(o=null==a?void 0:null===(n=a.split(":")[1])||void 0===n?void 0:null===(t=n.split(","))||void 0===t?void 0:t.slice(0,4).map(e=>e.trim()).filter(e=>!isNaN(parseInt(e))).map(e=>parseInt(e))),d=d.filter(e=>-32768!==e),o=o.filter(e=>-32768!==e),d=d.filter(e=>-140!==e),o=o.filter(e=>-140!==e),d.length>0){let e=d.reduce((e,s)=>e+s,0)/d.length;if(o.length>0){let s=o.reduce((e,s)=>e+s,0)/o.length;return(e+s)/2<-100?"Poor":"Good"}return e<-100?"Poor":"Good"}if(o.length>0)return o.reduce((e,s)=>e+s,0)/o.length<-100?"Poor":"Good";return"N/A"}catch(e){return console.error("Error processing cell signal:",e),"N/A"}},o=e=>{let s=e.split("\n").filter(e=>e.startsWith("+QTEMP:")).map(e=>parseInt(e.split(":")[1].split(",")[1].replace(/"/g,"").trim())).filter(e=>e>=0&&e<99);return s.reduce((e,s)=>e+s,0)/s.length<50?"Normal":"High"},c=e=>{var s,l,t,n,r,i;let a=null===(l=e.split("\n")[1])||void 0===l?void 0:null===(s=l.split(":")[1])||void 0===s?void 0:s.split(",")[1].trim(),d=null===(n=e.split("\n")[2])||void 0===n?void 0:null===(t=n.split(":")[1])||void 0===t?void 0:t.split(",")[1].trim(),o=null===(i=e.split("\n")[3])||void 0===i?void 0:null===(r=i.split(":")[1])||void 0===r?void 0:r.split(",")[1].trim(),c=["0"!==a?"".concat(a):null,"0"!==d?"".concat(d):null,"0"!==o?"".concat(o):null].filter(Boolean);return c.length>0?c.join(", "):"None"};return{isRunningDiagnostics:e,runDiagnosticsData:l,startDiagnostics:async()=>{s(!0);try{let e=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=6"),s=await e.json();console.log("Diagnostics data:",s);let l={netRegistration:r(s[0].response,s[1].response),simState:s[2].response.split("\n")[1].split(":")[1].trim(),manualAPN:i(s[3].response,s[4].response),wanIP:a(s[5].response),cellSignal:d(s[6].response),modemTemp:o(s[7].response),netReject:c(s[8].response)};return t(l),l}catch(e){throw console.error("Error running diagnostics:",e),e}finally{s(!1)}}}};var eE=l(80159),eA=l(71602);let eC=e=>{let{shouldScaleBackground:s=!0,...l}=e;return(0,t.jsx)(eA._s.Root,{shouldScaleBackground:s,...l})};eC.displayName="Drawer";let eR=eA._s.Trigger,eT=eA._s.Portal;eA._s.Close;let eI=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)(eA._s.Overlay,{ref:s,className:(0,H.cn)("fixed inset-0 z-50 bg-black/80",l),...n})});eI.displayName=eA._s.Overlay.displayName;let eU=n.forwardRef((e,s)=>{let{className:l,children:n,...r}=e;return(0,t.jsxs)(eT,{children:[(0,t.jsx)(eI,{}),(0,t.jsxs)(eA._s.Content,{ref:s,className:(0,H.cn)("fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",l),...r,children:[(0,t.jsx)("div",{className:"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted"}),n]})]})});eU.displayName="DrawerContent",n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)(eA._s.Title,{ref:s,className:(0,H.cn)("text-lg font-semibold leading-none tracking-tight",l),...n})}).displayName=eA._s.Title.displayName,n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)(eA._s.Description,{ref:s,className:(0,H.cn)("text-sm text-muted-foreground",l),...n})}).displayName=eA._s.Description.displayName;var eM=l(12607),eB=l(25262),eD=l(8782),eL=l(10964),ez=l(89463),eG=l(90304),e_=l(622),eP=l(20633),eF=l(7778),eH=l(99312),eZ=l(92823),eq=l(71834);let eO=e=>{if(null==e)return"N/A";let s=["B","KB","MB","GB"],l=e,t=0;for(;l>=1024&&t{if(null==e)return"N/A";let s=["bps","Kbps","Mbps","Gbps"],l=8*e,t=0;for(;l>=1e3&&t{let[e,s]=(0,n.useState)(null),[l,r]=(0,n.useState)(null),[a,d]=(0,n.useState)(!1),[o,c]=(0,n.useState)(null),[u,m]=(0,n.useState)(!1),[x,p]=(0,n.useState)(!1),[h,f]=(0,n.useState)(!1),[v,g]=(0,n.useState)(0),[j,N]=(0,n.useState)(!1),[w,b]=(0,n.useState)(!1),y=(0,n.useRef)(null),S=(0,n.useRef)(null),k=(0,n.useCallback)(()=>{s(null),r(null),c(null),m(!1),p(!1),f(!1),g(0),y.current=null},[]),E=(0,n.useCallback)(async()=>{try{let e=await fetch("/cgi-bin/quecmanager/experimental/keep_alive.sh?status=true"),s=await e.json();if(s.enabled){let e=new Date,l=60*e.getHours()+e.getMinutes(),[t,n]=s.start_time.split(":").map(Number),[r,i]=s.end_time.split(":").map(Number);b(l>=60*t+n&&l<=60*r+i)}else b(!1)}catch(e){console.error("Failed to check keep-alive schedule:",e),b(!1)}},[]);(0,n.useEffect)(()=>{E();let e=setInterval(E,6e4);return()=>clearInterval(e)},[E]),(0,n.useEffect)(()=>{if(u&&!x){N(!0);let e=setTimeout(()=>{N(!1)},1e4);return()=>clearTimeout(e)}},[u,x]),(0,n.useEffect)(()=>()=>{S.current&&S.current.abort()},[]);let A=(0,n.useCallback)(async()=>{if(!j&&!w)try{if(k(),f(!0),S.current&&S.current.abort(),!(await fetch("/cgi-bin/home/speedtest/start_speedtest.sh",{method:"GET"})).ok)throw Error("Failed to start speedtest");C()}catch(e){console.error("Speedtest start error:",e),c(e instanceof Error?"Failed to start speedtest: ".concat(e.message):"Failed to start speedtest"),f(!1)}},[j,w,k]),C=(0,n.useCallback)(()=>{S.current=new AbortController,d(!1),p(!0),f(!1);try{fetch("/cgi-bin/home/speedtest/speedtest_stream.sh",{method:"GET",signal:S.current.signal}).then(async e=>{var t;if(!e.ok)throw Error("Network response was not ok");d(!0);let n=null===(t=e.body)||void 0===t?void 0:t.getReader(),i=new TextDecoder;if(!n)throw Error("Unable to get reader from response body");let a="";for(;;){let{done:e,value:t}=await n.read();if(e)break;let d=i.decode(t,{stream:!0}),o=(a+=d).split("\n\n");for(let e of(a=o.pop()||"",o))if(e.startsWith("data: "))try{let t=JSON.parse(e.replace("data: ","").trim());switch(t.type){case"ping":r("ping"),g(t.ping.progress);break;case"download":case"upload":"ping"!==l&&r(t.type);break;case"result":m(!0),p(!1),n.cancel()}y.current=t,s(t)}catch(e){console.error("Parsing error:",e)}}}).catch(e=>{"AbortError"!==e.name&&(console.error("Fetch error:",e),c("Connection failed: ".concat(e instanceof Error?e.message:String(e))),p(!1))})}catch(e){console.error("Failed to initialize fetch:",e),c("Failed to connect to speedtest stream"),p(!1)}},[l]);return(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsx)(i.ZB,{children:"Network Speedtest"})}),(0,t.jsxs)(i.Wu,{className:"flex flex-col gap-6 p-4 items-center justify-center",children:[(0,t.jsxs)(eC,{children:[(0,t.jsx)(eR,{asChild:!0,children:(0,t.jsxs)("div",{className:"relative flex flex-col items-center justify-center",children:[(0,t.jsx)(eq.A,{color:"#5420ab",size:192,className:"-top-8 -left-8 absolute",style:{zIndex:1}}),(0,t.jsx)(D.A,{className:"size-32 ".concat(w?"text-gray-400 cursor-not-allowed":"text-primary cursor-pointer"," z-10"),onClick:A})]})}),(0,t.jsx)(eU,{children:(0,t.jsx)("div",{className:"lg:max-w-full max-w-sm mx-auto min-w-sm p-6 py-12",children:(()=>{var s,n,r,a,d,c,m,x,p,f,g;if(o)return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-4",children:[(0,t.jsx)(eM.A,{className:"text-rose-600 lg:size-48 size-16 animate-pulse"}),(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Network Speedtest Failed"}),(0,t.jsxs)("p",{className:"text-sm text-gray-500",children:["Something went wrong while running the speedtest.",(0,t.jsx)("p",{className:"underline cursor-pointer ml-2",onClick:A,children:"Please try again."})]})]});if(h)return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-4",children:[(0,t.jsx)(eB.A,{className:"text-primary lg:size-48 size-16 animate-pulse"}),(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Initiating Network Speedtest"}),(0,t.jsx)("p",{className:"text-sm text-gray-500 text-center",children:"Locating and establishing a connection to a server. Please wait..."})]});if("ping"===l)return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center space-y-4",children:[(0,t.jsx)(eD.A,{className:"text-gray-600 size-16 animate-pulse"}),(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Calculating Ping Latency"}),(0,t.jsx)("div",{className:"w-full bg-gray-200 rounded-full h-2.5",children:(0,t.jsx)("div",{className:"bg-blue-600 h-2.5 rounded-full",style:{width:"".concat(100*(v||0),"%")}})}),(0,t.jsx)("p",{className:"text-sm text-gray-500",children:(null==e?void 0:e.ping)?"Latency: ".concat(e.ping.latency.toFixed(2)," ms, \n Jitter: ").concat(e.ping.jitter.toFixed(2)," ms"):"Measuring network responsiveness..."})]});if(u)return(0,t.jsxs)("div",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-4 w-full min-w-sm",children:[(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsxs)(i.ZB,{className:"flex items-center",children:[(0,t.jsx)(eL.A,{className:"mr-4 text-violet-600"})," Speedtest Result"]})}),(0,t.jsx)(i.Wu,{className:"lg:py-12 py-6 min-w-sm w-full",children:(0,t.jsxs)("div",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-4 lg:gap-y-0 gap-y-8 gap-x-8",children:[(0,t.jsxs)("div",{className:"grid gap-1 place-items-center",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(ez.A,{className:"text-green-600 lg:size-6 size-4"}),(0,t.jsx)("p",{className:"font-semibold",children:"Download"})]}),(0,t.jsx)("h1",{className:"text-[3rem] font-semibold text-center antialiased leading-tight",children:eW(null==e?void 0:e.download.bandwidth)}),(0,t.jsxs)("div",{className:"grid gap-0.5 lg:flex lg:items-center lg:space-x-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-x-2",children:[(0,t.jsx)(eG.A,{className:"text-gray-600 lg:size-6 size-4"}),(0,t.jsx)("p",{className:"text-foreground-muted text-sm text-center",children:"Latency"})]}),(0,t.jsxs)("p",{className:"text-foreground-muted text-sm text-center",children:[null!==(m=null==e?void 0:null===(a=e.download.latency)||void 0===a?void 0:null===(r=a.iqm)||void 0===r?void 0:r.toFixed(2))&&void 0!==m?m:"N/A"," ","ms"]})]})]}),(0,t.jsxs)("div",{className:"grid gap-1.5 place-items-center",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(e_.A,{className:"text-violet-600 lg:size-6 size-4"}),(0,t.jsx)("p",{className:"font-semibold",children:"Upload"})]}),(0,t.jsx)("h1",{className:"text-[3rem] font-semibold text-center antialiased leading-tight",children:eW(null==e?void 0:e.upload.bandwidth)}),(0,t.jsxs)("div",{className:"grid gap-0.5 lg:flex lg:items-center lg:space-x-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-x-2",children:[(0,t.jsx)(eG.A,{className:"text-gray-600 lg:size-6 size-4"}),(0,t.jsx)("p",{className:"text-foreground-muted text-sm text-center",children:"Latency"})]}),(0,t.jsxs)("p",{className:"text-foreground-muted text-sm text-center",children:[null!==(x=null==e?void 0:null===(c=e.upload.latency)||void 0===c?void 0:null===(d=c.iqm)||void 0===d?void 0:d.toFixed(2))&&void 0!==x?x:"N/A"," ","ms"]})]})]})]})}),(0,t.jsxs)(i.wL,{className:"mt-4 grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsxs)("div",{className:"grid gap-0.5 lg:flex lg:items-center lg:space-x-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-x-2",children:[(0,t.jsx)(eD.A,{className:"text-gray-600 lg:size-6 size-4"}),(0,t.jsx)("p",{className:"text-foreground-muted text-sm text-center",children:"Ping"})]}),(0,t.jsxs)("p",{className:"text-foreground-muted text-sm text-center",children:[null!==(p=null==e?void 0:e.ping.latency.toFixed(2))&&void 0!==p?p:"N/A"," ms"]})]}),(0,t.jsxs)("div",{className:"grid gap-0.5 lg:flex lg:items-center lg:space-x-1",children:[(0,t.jsxs)("div",{className:"flex items-center justify-center gap-x-2",children:[(0,t.jsx)(eP.A,{className:"text-gray-600 lg:size-6 size-4"}),(0,t.jsx)("p",{className:"text-foreground-muted text-sm text-center",children:"Jitter"})]}),(0,t.jsxs)("p",{className:"text-foreground-muted text-sm text-center",children:[null!==(f=null==e?void 0:e.ping.jitter.toFixed(2))&&void 0!==f?f:"N/A"," ms"]})]})]})]}),(0,t.jsxs)(i.Zp,{children:[(0,t.jsx)(i.aR,{children:(0,t.jsxs)(i.ZB,{className:"flex items-center",children:[(0,t.jsx)(eF.A,{className:"mr-4 text-blue-600"})," Connection & Server Details"]})}),(0,t.jsx)(i.Wu,{children:(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"ISP:"}),(0,t.jsx)("p",{children:null==e?void 0:e.isp})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"Internal IP:"}),(0,t.jsx)("p",{children:null==e?void 0:e.interface.internalIp})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"External IP:"}),(0,t.jsx)("p",{children:null==e?void 0:e.interface.externalIp})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"Server Name:"}),(0,t.jsx)("p",{children:null==e?void 0:e.server.name})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"Location:"}),(0,t.jsx)("p",{children:null==e?void 0:e.server.location})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"Country:"}),(0,t.jsx)("p",{children:null==e?void 0:e.server.country})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 grid-flow-row gap-2 truncate",children:[(0,t.jsx)("p",{className:"font-medium",children:"Server IP:"}),(0,t.jsx)("p",{children:null==e?void 0:e.server.host})]}),(null==e?void 0:e.result.url)&&(0,t.jsxs)("div",{className:"flex items-center gap-x-2 mt-4",children:[(0,t.jsx)(eH.A,{className:"text-blue-600 size-4"}),(0,t.jsx)("a",{href:e.result.url,target:"_blank",rel:"noopener noreferrer",className:"font-medium text-blue-600 hover:underline",children:"View Full Result Online"})]})]})})]})]});if(!l||!e)return null;let j=e[l],N="download"===l;return(0,t.jsxs)(i.Zp,{className:"p-4 w-full",children:[(0,t.jsx)(i.aR,{children:(0,t.jsxs)(i.ZB,{className:"flex items-center",children:[N?(0,t.jsx)(ez.A,{className:"text-green-500 lg:size-6 size-4 mr-1"}):(0,t.jsx)(e_.A,{className:"text-violet-500 lg:size-6 size-4 mr-1"}),(0,t.jsxs)("p",{className:"ml-2",children:["Testing ",N?"Download":"Upload"," Speed"]})]})}),(0,t.jsx)(i.Wu,{children:(0,t.jsx)("div",{className:"grid place-items-center max-w-sm lg:max-w-full mx-auto w-full",children:(0,t.jsx)("h1",{className:"lg:text-[4rem] text-[3rem] font-semibold text-center",children:eW(j.bandwidth)})})}),(0,t.jsx)(i.wL,{children:(0,t.jsxs)("div",{className:"grid lg:grid-cols-3 grid-cols-1 grid-flow-row gap-4",children:[(0,t.jsxs)("div",{className:"grid gap-1 place-items-center",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(eZ.A,{className:"mr-2 text-yellow-600"}),"Bytes Transferred"]}),(0,t.jsx)("p",{className:"lg:text-md text-base text-muted font-semibold",children:eO(j.bytes)})]}),(0,t.jsxs)("div",{className:"grid gap-1 place-items-center",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(eL.A,{className:"mr-2 text-purple-600"}),"Elapsed Time"]}),(0,t.jsxs)("p",{className:"lg:text-md text-base text-muted font-semibold",children:[(j.elapsed/1e3).toFixed(2)," sec"]})]}),(0,t.jsxs)("div",{className:"grid gap-1 place-items-center",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(eD.A,{className:"mr-2 text-gray-600"}),"Latency (IQM)"]}),(0,t.jsxs)("p",{className:"lg:text-md text-base text-muted font-semibold",children:[null!==(g=null===(n=j.latency)||void 0===n?void 0:null===(s=n.iqm)||void 0===s?void 0:s.toFixed(2))&&void 0!==g?g:"N/A"," ms"]})]})]})})]})})()})})]}),(0,t.jsx)(i.BT,{children:w?"Speedtest is disabled during keep-alive schedule.":j?"Please wait 10 seconds before starting another test.":"Run a speed test to check your internet connection."})]})]})},eK=()=>{let{toast:e}=(0,r.dj)(),{data:s,isLoading:l,refresh:i}=ew(),{dataConnectionState:a,isStateLoading:d,refresh:c}=eb(),{isRunningDiagnostics:u,runDiagnosticsData:m,startDiagnostics:x}=ek(),{bytesSent:v,bytesReceived:g,refresh:j}=eS(),N=async()=>{try{let s=await fetch("/cgi-bin/settings/force-rerun.sh"),l=await s.json();if("success"===l.status)e({title:"Data Refreshed",description:"Data and scripts has been refreshed successfully"});else if("info"===l.status)e({title:"Data Refreshed",description:"Data refreshed successfully, but no scripts to restart."});else throw Error("Failed to restart scripts")}catch(s){console.error("Error rerunning scripts:",s),e({variant:"destructive",title:"Script Restart Failed",description:"Failed to restart the required scripts"})}},w=async()=>{try{var l;let t=null==s?void 0:null===(l=s.simCard)||void 0===l?void 0:l.slot,n=encodeURIComponent("Slot 1"===t?"AT+QUIMSLOT=1":"AT+QUIMSLOT=2"),r=await fetch("/cgi-bin/at_command.sh?command=".concat(n));if(!r.ok)throw Error("HTTP error! status: ".concat(r.status));let i=await r.json();if(i.error)throw Error(i.error);e({title:"SIM Slot Changed",description:"The SIM slot has been changed successfully"}),setTimeout(async()=>{let e=encodeURIComponent("AT+COPS=0;+COPS=2"),s=await fetch("/cgi-bin/at_command.sh?command=".concat(e));if(!s.ok)throw Error("HTTP error! status: ".concat(s.status));let l=await s.json();if(l.error)throw Error(l.error)},3e3),setTimeout(b,3e3)}catch(s){console.error("Error changing SIM slot:",s),e({variant:"destructive",title:"SIM Slot Change Failed",description:"Failed to change the SIM slot"})}},b=(0,n.useCallback)(async()=>{try{await Promise.all([i(),c(),j()]),await N()}catch(s){console.error("Error refreshing data:",s),e({variant:"destructive",title:"Refresh Failed",description:"Failed to refresh the data"})}},[i,c,j]),[y,k]=(0,n.useState)([]),A=async()=>{try{await x()}catch(e){console.error("Error running diagnostics:",e)}};return(0,n.useEffect)(()=>{m&&console.log("Diagnostics data updated:",m)},[m]),(0,n.useEffect)(()=>{if(s&&s.currentBands){var e;let l=null===(e=s.currentBands.id)||void 0===e?void 0:e.map((e,l)=>{var t,n,r,i,a,d,o;return{id:e,bandNumber:(null===(t=s.currentBands.bandNumber)||void 0===t?void 0:t[l])||"N/A",earfcn:(null===(n=s.currentBands.earfcn)||void 0===n?void 0:n[l])||"N/A",bandwidth:(null===(r=s.currentBands.bandwidth)||void 0===r?void 0:r[l])||"N/A",pci:(null===(i=s.currentBands.pci)||void 0===i?void 0:i[l])||"N/A",rsrp:(null===(a=s.currentBands.rsrp)||void 0===a?void 0:a[l])||"N/A",rsrq:(null===(d=s.currentBands.rsrq)||void 0===d?void 0:d[l])||"N/A",sinr:(null===(o=s.currentBands.sinr)||void 0===o?void 0:o[l])||"N/A"}});l&&k(l)}},[s]),(0,t.jsxs)("div",{className:"grid xl:gap-y-12 gap-y-8 gap-4",children:[(0,t.jsxs)("div",{className:"grid gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-row justify-between items-center",children:[(0,t.jsxs)("div",{className:"flex flex-row gap-2 items-center",children:[(0,t.jsx)("h1",{className:"xl:text-3xl text-base font-bold",children:"Connection Summary"}),(0,t.jsx)(U.$,{variant:"ghost",size:"icon",className:"text-sm",onClick:b,children:(0,t.jsx)(B.A,{className:"xl:size-6 size-5 text-blue-500",strokeWidth:3})})]}),(0,t.jsxs)("div",{className:"flex flex-row items-center gap-x-2",children:[(null==s?void 0:s.simCard.state)==="Not Inserted"&&(0,t.jsxs)(M.lG,{children:[(0,t.jsx)(M.zM,{children:(0,t.jsxs)(U.$,{variant:"destructive",children:[(0,t.jsx)(eE.fU4,{className:"xl:size-6 size-5"}),(0,t.jsx)("span",{className:"hidden md:block",children:"No SIM"})]})}),(0,t.jsxs)(M.Cf,{className:"max-w-xs md:max-w-lg",children:[(0,t.jsx)(M.c7,{children:(0,t.jsx)(M.L3,{children:"No SIM Detected"})}),(0,t.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,t.jsx)("div",{className:"flex items-center justify-center",children:(0,t.jsx)(eE.fU4,{className:"xl:size-14 md:size-12 size-6 text-red-500"})}),(0,t.jsx)("p",{className:"text-center",children:"There is no SIM card detected in the device. Please insert a SIM card or change the SIM card slot to use the device."})]}),(0,t.jsxs)("div",{className:"flex justify-end mt-4",children:[(0,t.jsx)(U.$,{variant:"secondary",onClick:w,className:"mr-2",children:"Change SIM Slot"}),(0,t.jsx)(M.HM,{asChild:!0,children:(0,t.jsx)(U.$,{children:"Close"})})]})]})]}),(0,t.jsxs)(M.lG,{children:[(0,t.jsx)(M.zM,{children:(0,t.jsxs)(U.$,{variant:"secondary",onClick:A,children:[(0,t.jsx)(D.A,{className:"xl:size-6 size-5"}),(0,t.jsx)("span",{className:"hidden md:block",children:"Run Diagnostics"})]})}),!u&&(0,t.jsxs)(M.Cf,{className:"max-w-xs md:max-w-lg",children:[(0,t.jsx)(M.c7,{children:(0,t.jsx)(M.L3,{children:"Diagnostics Result"})}),(0,t.jsx)(M.rr,{children:"This is the result of the diagnostic test ran on your device."}),(0,t.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Network Registration "}),(null==m?void 0:m.netRegistration)==="Registered"?(0,t.jsx)(L.A,{className:"text-green-500"}):(0,t.jsx)(z.A,{className:"text-red-500"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"U-SIM State"}),(null==m?void 0:m.simState)==="READY"?(0,t.jsx)(L.A,{className:"text-green-500"}):(0,t.jsx)(z.A,{className:"text-red-500"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Manual APN"}),(null==m?void 0:m.manualAPN)==="Enabled"?(0,t.jsx)(L.A,{className:"text-green-500"}):(0,t.jsx)(z.A,{className:"text-red-500"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"WAN IP"}),(null==m?void 0:m.wanIP)==="Connected"?(0,t.jsx)(L.A,{className:"text-green-500"}):(0,t.jsx)(z.A,{className:"text-red-500"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Cellular Signal"}),(null==m?void 0:m.cellSignal)==="Good"?(0,t.jsx)(L.A,{className:"text-green-500"}):(0,t.jsx)(z.A,{className:"text-red-500"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Modem Temperature"}),(null==m?void 0:m.modemTemp)==="Normal"?(0,t.jsx)(L.A,{className:"text-green-500"}):(0,t.jsx)(z.A,{className:"text-red-500"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between mt-6",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Net Reject Cause"}),(null==m?void 0:m.netReject)==="None"?(0,t.jsxs)("div",{className:"flex space-x-2 items-center",children:[(0,t.jsx)(L.A,{className:"text-green-500"}),(0,t.jsx)("span",{children:"None"})]}):(0,t.jsxs)("div",{className:"flex space-x-2 items-center",children:[(0,t.jsx)(z.A,{className:"text-red-500"}),(0,t.jsx)("span",{children:null==m?void 0:m.netReject})]})]})]})]}),u&&(0,t.jsxs)(M.Cf,{className:"max-w-xs md:max-w-lg",children:[(0,t.jsx)(M.c7,{children:(0,t.jsx)(M.L3,{children:"Running Diagnostics"})}),(0,t.jsx)("div",{className:"flex items-center justify-center my-4",children:(0,t.jsx)(_(),{color:"#6D28D9"})}),(0,t.jsx)(M.rr,{className:"text-center",children:"Please wait while we run diagnostics on your device."})]})]})]})]}),(0,t.jsxs)("div",{className:"grid lg:grid-cols-2 grid-cols-1 grid-flow-row gap-4",children:[(0,t.jsx)("div",{children:(0,t.jsx)(S,{})}),(0,t.jsxs)("div",{className:"grid gap-2 lg:grid-cols-2 grid-cols-1 grid-flow-row",children:[(0,t.jsx)(E,{}),(0,t.jsx)(C,{}),(0,t.jsx)(eQ,{}),(0,t.jsx)(I,{})]})]}),(0,t.jsxs)("div",{className:"grid 2xl:grid-cols-4 lg:grid-cols-2 grid-cols-1 gap-4",children:[(0,t.jsx)(o,{data:s,isLoading:l}),(0,t.jsx)(p,{data:s,isLoading:l,dataConnectionState:a,connectionStateLoading:d}),(0,t.jsx)(h,{data:s,isLoading:l,bytesSent:v,bytesReceived:g}),(0,t.jsx)(f,{data:s,isLoading:l})]})]}),(0,t.jsxs)("div",{className:"grid xl:gap-6 gap-4",children:[(0,t.jsx)("h1",{className:"xl:text-3xl text-base font-bold",children:"Current Active Bands"}),(0,t.jsx)(J,{bands:y,isLoading:l})]})]})}},45934:(e,s,l)=>{"use strict";l.d(s,{E:()=>a});var t=l(20475);l(20107);var n=l(29395),r=l(22250);let i=(0,n.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function a(e){let{className:s,variant:l,...n}=e;return(0,t.jsx)("div",{className:(0,r.cn)(i({variant:l}),s),...n})}},42541:(e,s,l)=>{"use strict";l.d(s,{$:()=>o,r:()=>d});var t=l(20475),n=l(20107),r=l(61837),i=l(29395),a=l(22250);let d=(0,i.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),o=n.forwardRef((e,s)=>{let{className:l,variant:n,size:i,asChild:o=!1,...c}=e,u=o?r.DX:"button";return(0,t.jsx)(u,{className:(0,a.cn)(d({variant:n,size:i,className:l})),ref:s,...c})});o.displayName="Button"},72167:(e,s,l)=>{"use strict";l.d(s,{BT:()=>o,Wu:()=>c,ZB:()=>d,Zp:()=>i,aR:()=>a,wL:()=>u});var t=l(20475),n=l(20107),r=l(22250);let i=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,r.cn)("rounded-xl border bg-card text-card-foreground shadow",l),...n})});i.displayName="Card";let a=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex flex-col space-y-1.5 p-6",l),...n})});a.displayName="CardHeader";let d=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)("h3",{ref:s,className:(0,r.cn)("font-semibold leading-none tracking-tight",l),...n})});d.displayName="CardTitle";let o=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)("p",{ref:s,className:(0,r.cn)("text-sm text-muted-foreground",l),...n})});o.displayName="CardDescription";let c=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,r.cn)("p-6 pt-0",l),...n})});c.displayName="CardContent";let u=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex items-center p-6 pt-0",l),...n})});u.displayName="CardFooter"},1307:(e,s,l)=>{"use strict";l.d(s,{II:()=>p,Nt:()=>h,at:()=>m});var t=l(20475),n=l(20107),r=l(81155),i=l(58601),a=l(58736),d=l(22250);let o={light:"",dark:".dark"},c=n.createContext(null);function u(){let e=n.useContext(c);if(!e)throw Error("useChart must be used within a ");return e}let m=n.forwardRef((e,s)=>{let{id:l,className:i,children:a,config:o,...u}=e,m=n.useId(),p="chart-".concat(l||m.replace(/:/g,""));return(0,t.jsx)(c.Provider,{value:{config:o},children:(0,t.jsxs)("div",{"data-chart":p,ref:s,className:(0,d.cn)("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",i),...u,children:[(0,t.jsx)(x,{id:p,config:o}),(0,t.jsx)(r.u,{children:a})]})})});m.displayName="Chart";let x=e=>{let{id:s,config:l}=e,n=Object.entries(l).filter(e=>{let[s,l]=e;return l.theme||l.color});return n.length?(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(o).map(e=>{let[l,t]=e;return"\n".concat(t," [data-chart=").concat(s,"] {\n").concat(n.map(e=>{var s;let[t,n]=e,r=(null===(s=n.theme)||void 0===s?void 0:s[l])||n.color;return r?" --color-".concat(t,": ").concat(r,";"):null}).join("\n"),"\n}\n")}).join("\n")}}):null},p=i.m,h=n.forwardRef((e,s)=>{let{active:l,payload:r,className:i,indicator:a="dot",hideLabel:o=!1,hideIndicator:c=!1,label:m,labelFormatter:x,labelClassName:p,formatter:h,color:v,nameKey:g,labelKey:j}=e,{config:N}=u(),w=n.useMemo(()=>{var e;if(o||!(null==r?void 0:r.length))return null;let[s]=r,l="".concat(j||s.dataKey||s.name||"value"),n=f(N,s,l),i=j||"string"!=typeof m?null==n?void 0:n.label:(null===(e=N[m])||void 0===e?void 0:e.label)||m;return x?(0,t.jsx)("div",{className:(0,d.cn)("font-medium",p),children:x(i,r)}):i?(0,t.jsx)("div",{className:(0,d.cn)("font-medium",p),children:i}):null},[m,x,r,o,p,N,j]);if(!l||!(null==r?void 0:r.length))return null;let b=1===r.length&&"dot"!==a;return(0,t.jsxs)("div",{ref:s,className:(0,d.cn)("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",i),children:[b?null:w,(0,t.jsx)("div",{className:"grid gap-1.5",children:r.map((e,s)=>{let l="".concat(g||e.name||e.dataKey||"value"),n=f(N,e,l),r=v||e.payload.fill||e.color;return(0,t.jsx)("div",{className:(0,d.cn)("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===a&&"items-center"),children:h&&(null==e?void 0:e.value)!==void 0&&e.name?h(e.value,e.name,e,s,e.payload):(0,t.jsxs)(t.Fragment,{children:[(null==n?void 0:n.icon)?(0,t.jsx)(n.icon,{}):!c&&(0,t.jsx)("div",{className:(0,d.cn)("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===a,"w-1":"line"===a,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===a,"my-0.5":b&&"dashed"===a}),style:{"--color-bg":r,"--color-border":r}}),(0,t.jsxs)("div",{className:(0,d.cn)("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[(0,t.jsxs)("div",{className:"grid gap-1.5",children:[b?w:null,(0,t.jsx)("span",{className:"text-muted-foreground",children:(null==n?void 0:n.label)||e.name})]}),e.value&&(0,t.jsx)("span",{className:"font-mono font-medium tabular-nums text-foreground",children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});function f(e,s,l){if("object"!=typeof s||null===s)return;let t="payload"in s&&"object"==typeof s.payload&&null!==s.payload?s.payload:void 0,n=l;return l in s&&"string"==typeof s[l]?n=s[l]:t&&l in t&&"string"==typeof t[l]&&(n=t[l]),n in e?e[n]:e[l]}h.displayName="ChartTooltip",a.s,n.forwardRef((e,s)=>{let{className:l,hideIcon:n=!1,payload:r,verticalAlign:i="bottom",nameKey:a}=e,{config:o}=u();return(null==r?void 0:r.length)?(0,t.jsx)("div",{ref:s,className:(0,d.cn)("flex items-center justify-center gap-4","top"===i?"pb-3":"pt-3",l),children:r.map(e=>{let s="".concat(a||e.dataKey||"value"),l=f(o,e,s);return(0,t.jsxs)("div",{className:(0,d.cn)("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[(null==l?void 0:l.icon)&&!n?(0,t.jsx)(l.icon,{}):(0,t.jsx)("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:e.color}}),null==l?void 0:l.label]},e.value)})}):null}).displayName="ChartLegend"},93557:(e,s,l)=>{"use strict";l.d(s,{Cf:()=>x,Es:()=>h,HM:()=>u,L3:()=>f,c7:()=>p,lG:()=>d,rr:()=>v,zM:()=>o});var t=l(20475),n=l(20107),r=l(60241),i=l(7197),a=l(22250);let d=r.bL,o=r.l9,c=r.ZL,u=r.bm,m=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)(r.hJ,{ref:s,className:(0,a.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",l),...n})});m.displayName=r.hJ.displayName;let x=n.forwardRef((e,s)=>{let{className:l,children:n,...d}=e;return(0,t.jsxs)(c,{children:[(0,t.jsx)(m,{}),(0,t.jsxs)(r.UC,{ref:s,className:(0,a.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",l),...d,children:[n,(0,t.jsxs)(r.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,t.jsx)(i.MKb,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});x.displayName=r.UC.displayName;let p=e=>{let{className:s,...l}=e;return(0,t.jsx)("div",{className:(0,a.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...l})};p.displayName="DialogHeader";let h=e=>{let{className:s,...l}=e;return(0,t.jsx)("div",{className:(0,a.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...l})};h.displayName="DialogFooter";let f=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)(r.hE,{ref:s,className:(0,a.cn)("text-lg font-semibold leading-none tracking-tight",l),...n})});f.displayName=r.hE.displayName;let v=n.forwardRef((e,s)=>{let{className:l,...n}=e;return(0,t.jsx)(r.VY,{ref:s,className:(0,a.cn)("text-sm text-muted-foreground",l),...n})});v.displayName=r.VY.displayName},36760:(e,s,l)=>{"use strict";l.d(s,{E:()=>r});var t=l(20475),n=l(22250);function r(e){let{className:s,...l}=e;return(0,t.jsx)("div",{className:(0,n.cn)("animate-pulse rounded-md bg-primary/10",s),...l})}},32857:(e,s,l)=>{"use strict";l.d(s,{dj:()=>m,oR:()=>u});var t=l(20107);let n=0,r=new Map,i=e=>{if(r.has(e))return;let s=setTimeout(()=>{r.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);r.set(e,s)},a=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case"DISMISS_TOAST":{let{toastId:l}=s;return l?i(l):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===l||void 0===l?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===s.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==s.toastId)}}},d=[],o={toasts:[]};function c(e){o=a(o,e),d.forEach(e=>{e(o)})}function u(e){let{...s}=e,l=(n=(n+1)%Number.MAX_SAFE_INTEGER).toString(),t=()=>c({type:"DISMISS_TOAST",toastId:l});return c({type:"ADD_TOAST",toast:{...s,id:l,open:!0,onOpenChange:e=>{e||t()}}}),{id:l,dismiss:t,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:l}})}}function m(){let[e,s]=t.useState(o);return t.useEffect(()=>(d.push(s),()=>{let e=d.indexOf(s);e>-1&&d.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,s,l)=>{"use strict";l.d(s,{cn:()=>r});var t=l(64901),n=l(868);function r(){for(var e=arguments.length,s=Array(e),l=0;l{var s=s=>e(e.s=s);e.O(0,[9980,9649,7780,8885,9464,6357,1074,4873,191,6035,7358],()=>s(31710)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/layout-f75cf0913690a50a.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/layout-f75cf0913690a50a.js new file mode 100644 index 0000000..4e78d4d --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/dashboard/layout-f75cf0913690a50a.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1954],{99750:(e,t,a)=>{Promise.resolve().then(a.bind(a,96609))},96609:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>E});var s=a(20475),r=a(9477),o=a.n(r),n=a(19546),d=a(20107),i=a(16118);let l=e=>{let{children:t}=e,a=(0,i.useRouter)(),{isAuthenticated:r,checkAuth:o}=(0,n.A)();return((0,d.useEffect)(()=>{o()||a.push("/login")},[]),r)?(0,s.jsx)(s.Fragment,{children:t}):null};var c=a(39997);let h=(0,c.A)("RadioTower",[["path",{d:"M4.9 16.1C1 12.2 1 5.8 4.9 1.9",key:"s0qx1y"}],["path",{d:"M7.8 4.7a6.14 6.14 0 0 0-.8 7.5",key:"1idnkw"}],["circle",{cx:"12",cy:"9",r:"2",key:"1092wv"}],["path",{d:"M16.2 4.8c2 2 2.26 5.11.8 7.47",key:"ojru2q"}],["path",{d:"M19.1 1.9a9.96 9.96 0 0 1 0 14.1",key:"rhi7fg"}],["path",{d:"M9.5 18h5",key:"mfy3pd"}],["path",{d:"m8 22 4-11 4 11",key:"25yftu"}]]),u=(0,c.A)("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"}]]),m=(0,c.A)("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);var f=a(44381),x=a(42541),p=a(88926),g=a(86118),y=a(83086);let b=(0,c.A)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),j=(0,c.A)("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);var N=a(92159),v=a(60241),w=a(7197),k=a(29395),C=a(22250);let R=v.bL,A=v.l9,S=v.bm,_=v.ZL,P=d.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(v.hJ,{className:(0,C.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r,ref:t})});P.displayName=v.hJ.displayName;let T=(0,k.F)("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),z=d.forwardRef((e,t)=>{let{side:a="right",className:r,children:o,...n}=e;return(0,s.jsxs)(_,{children:[(0,s.jsx)(P,{}),(0,s.jsxs)(v.UC,{ref:t,className:(0,C.cn)(T({side:a}),r),...n,children:[(0,s.jsxs)(v.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[(0,s.jsx)(w.MKb,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]}),o]})]})});z.displayName=v.UC.displayName,d.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(v.hE,{ref:t,className:(0,C.cn)("text-lg font-semibold text-foreground",a),...r})}).displayName=v.hE.displayName,d.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(v.VY,{ref:t,className:(0,C.cn)("text-sm text-muted-foreground",a),...r})}).displayName=v.VY.displayName;var M=a(32857);let E=e=>{let{children:t}=e,a=(0,i.usePathname)(),{logout:r}=(0,n.A)(),{setTheme:c}=(0,N.D)(),[v,w]=(0,d.useState)(!1),[k,C]=(0,d.useState)(!1),_=(0,M.dj)(),P=async()=>{try{w(!0),await (0,p.a)("AT+QPOWD=1",!0,60),_.toast({title:"Rebooting device",description:"Please wait for the device to restart. This may take up to ".concat(90," seconds."),duration:9e4}),setTimeout(()=>{_.toast({title:"Device is now active",description:"The device has been rebooted successfully."})},9e4),setTimeout(()=>{window.location.reload()},92e3)}catch(e){console.error("Reboot error:",e),_.toast({title:"Failed to reboot device",description:"Please try again.",variant:"destructive"})}finally{w(!1)}},T=async()=>{try{C(!0),await (0,p.a)("AT+COPS=2",!0,30),_.toast({title:"Disconnected from network",description:"Reconnecting in 2 seconds..."}),await new Promise(e=>setTimeout(e,2e3)),await (0,p.a)("AT+COPS=0",!0,60),_.toast({title:"Reconnected to network",description:"The device has been reconnected successfully."}),await new Promise(e=>setTimeout(e,3e3)),window.location.reload()}catch(e){console.error("Reconnect error:",e),_.toast({title:"Failed to reconnect to network",description:"Please try again.",variant:"destructive"})}finally{C(!1)}};return(0,s.jsxs)("div",{className:"flex min-h-screen w-full flex-col",children:[(0,s.jsxs)("header",{className:"sticky top-0 flex h-16 items-center gap-4 border-b bg-background px-4 md:px-6",children:[(0,s.jsxs)("nav",{className:"hidden flex-col gap-6 text-lg font-medium md:flex md:flex-row md:items-center md:gap-5 md:text-base lg:gap-6",children:[(0,s.jsxs)(o(),{href:"/dashboard/home/",className:"flex items-center gap-2 text-lg font-semibold md:text-xl md:mr-8",children:[(0,s.jsx)(h,{className:"h-6 w-6"}),(0,s.jsx)("h1",{children:"QuecManager"})]}),(0,s.jsx)(o(),{href:"/dashboard/home/",className:"".concat("/dashboard/home/"===a?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Home"}),(0,s.jsx)(o(),{href:"/dashboard/cell-settings/basic-settings/",className:"".concat(a.includes("/dashboard/cell-settings/")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Cellular"}),(0,s.jsx)(o(),{href:"/dashboard/advanced-settings/connectivity",className:"".concat(a.includes("/dashboard/advanced-settings")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Advance"}),(0,s.jsx)(o(),{href:"/dashboard/experimental/quecwatch",className:"".concat(a.includes("/dashboard/experimental/")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Experimental"}),(0,s.jsx)(o(),{href:"/dashboard/about/",className:"".concat(a.includes("/dashboard/about/")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"About"})]}),(0,s.jsxs)(R,{children:[(0,s.jsx)(A,{asChild:!0,children:(0,s.jsxs)(x.$,{variant:"outline",size:"icon",className:"shrink-0 md:hidden",children:[(0,s.jsx)(u,{className:"h-5 w-5"}),(0,s.jsx)("span",{className:"sr-only",children:"Toggle navigation menu"})]})}),(0,s.jsx)(z,{side:"left",children:(0,s.jsxs)("nav",{className:"grid gap-6 text-lg font-medium",children:[(0,s.jsx)(S,{asChild:!0,children:(0,s.jsxs)(o(),{href:"/dashboard/home/",className:"flex items-center gap-2 text-lg font-semibold",children:[(0,s.jsx)(h,{className:"h-6 w-6"}),(0,s.jsx)("span",{children:"QuecManager"})]})}),(0,s.jsx)(S,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/home/",className:"".concat("/dashboard/home/"===a?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Home"})}),(0,s.jsx)(S,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/cell-settings/basic-settings/",className:"".concat(a.includes("/dashboard/cell-settings")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Cellular"})}),(0,s.jsx)(S,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/advanced-settings/connectivity",className:"".concat(a.includes("/dashboard/advanced-settings")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Advance"})}),(0,s.jsx)(S,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/experimental/",className:"".concat("/dashboard/experimental/"===a?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Experimental"})}),(0,s.jsx)(S,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/about/",className:"".concat("/dashboard/about/"===a?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"About"})}),(0,s.jsx)(S,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/settings/security",className:"".concat(a.includes("/dashboard/settings")?"text-foreground":"text-muted-foreground"," transition-colors hover:text-foreground"),children:"Settings"})})]})})]}),(0,s.jsxs)("div",{className:"flex w-full items-center gap-4 md:ml-auto md:gap-2 lg:gap-4",children:[(0,s.jsx)("form",{className:"ml-auto flex-1 sm:flex-initial",children:(0,s.jsxs)(g.rI,{children:[(0,s.jsx)(g.ty,{asChild:!0,children:(0,s.jsxs)(x.$,{variant:"outline",size:"icon",children:[(0,s.jsx)(b,{className:"h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,s.jsx)(j,{className:"absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"}),(0,s.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}),(0,s.jsxs)(g.SQ,{align:"end",children:[(0,s.jsx)(g._2,{onClick:()=>c("light"),children:"Light"}),(0,s.jsx)(g._2,{onClick:()=>c("dark"),children:"Dark"}),(0,s.jsx)(g._2,{onClick:()=>c("system"),children:"System"})]})]})}),(0,s.jsxs)(g.rI,{children:[(0,s.jsx)(g.ty,{asChild:!0,children:(0,s.jsxs)(x.$,{variant:"secondary",size:"icon",className:"rounded-full",children:[(0,s.jsx)(m,{className:"h-5 w-5"}),(0,s.jsx)("span",{className:"sr-only",children:"Toggle user menu"})]})}),(0,s.jsxs)(g.SQ,{align:"end",children:[(0,s.jsx)(g.lp,{children:"Options"}),(0,s.jsx)(g.mB,{}),(0,s.jsx)(g._2,{asChild:!0,children:(0,s.jsx)(o(),{href:"/dashboard/settings/security",children:"Settings"})}),(0,s.jsx)(g._2,{asChild:!0,children:(0,s.jsx)("a",{href:"/cgi-bin/luci",target:"_blank",rel:"noreferrer noopener",children:"Luci"})}),(0,s.jsx)(g._2,{asChild:!0,children:(0,s.jsx)("a",{href:"https://github.com/iamromulan/quectel-rgmii-toolkit/discussions/new/choose",target:"_blank",children:"Support"})}),(0,s.jsx)(g.mB,{}),(0,s.jsx)(g._2,{onClick:T,children:k?"Reconnecting...":"Reconnect"}),(0,s.jsx)(g._2,{asChild:!0,children:(0,s.jsxs)(y.Lt,{children:[(0,s.jsx)(y.tv,{asChild:!0,children:(0,s.jsx)("button",{className:"relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground",children:"Reboot"})}),(0,s.jsxs)(y.EO,{children:[(0,s.jsxs)(y.wd,{children:[(0,s.jsx)(y.r7,{children:"Are you sure?"}),(0,s.jsx)(y.$v,{children:"This will reboot your device. The connection will be lost temporarily. Please wait for the page to reload."})]}),(0,s.jsxs)(y.ck,{children:[(0,s.jsx)(y.Zr,{children:"Cancel"}),(0,s.jsxs)(y.Rx,{onClick:P,disabled:v,children:[(0,s.jsx)(f.A,{className:"size-4"}),"Reboot Now"]})]})]})]})}),(0,s.jsx)(g.mB,{}),(0,s.jsx)(g._2,{onClick:r,children:"Logout"})]})]})]})]}),(0,s.jsx)("main",{className:"flex min-h-[calc(100vh_-_theme(spacing.16))] flex-1 flex-col gap-4 bg-muted/40 p-4 md:gap-8 md:p-10",children:(0,s.jsx)(l,{children:t})})]})}},86118:(e,t,a)=>{"use strict";a.d(t,{SQ:()=>c,_2:()=>h,lp:()=>u,mB:()=>m,rI:()=>i,ty:()=>l});var s=a(20475),r=a(20107),o=a(70690),n=a(7197),d=a(22250);let i=o.bL,l=o.l9;o.YJ,o.ZL,o.Pb,o.z6,r.forwardRef((e,t)=>{let{className:a,inset:r,children:i,...l}=e;return(0,s.jsxs)(o.ZP,{ref:t,className:(0,d.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",r&&"pl-8",a),...l,children:[i,(0,s.jsx)(n.vKP,{className:"ml-auto h-4 w-4"})]})}).displayName=o.ZP.displayName,r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(o.G5,{ref:t,className:(0,d.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...r})}).displayName=o.G5.displayName;let c=r.forwardRef((e,t)=>{let{className:a,sideOffset:r=4,...n}=e;return(0,s.jsx)(o.ZL,{children:(0,s.jsx)(o.UC,{ref:t,sideOffset:r,className:(0,d.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})})});c.displayName=o.UC.displayName;let h=r.forwardRef((e,t)=>{let{className:a,inset:r,...n}=e;return(0,s.jsx)(o.q7,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r&&"pl-8",a),...n})});h.displayName=o.q7.displayName,r.forwardRef((e,t)=>{let{className:a,children:r,checked:i,...l}=e;return(0,s.jsxs)(o.H_,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),checked:i,...l,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(o.VF,{children:(0,s.jsx)(n.Srz,{className:"h-4 w-4"})})}),r]})}).displayName=o.H_.displayName,r.forwardRef((e,t)=>{let{className:a,children:r,...i}=e;return(0,s.jsxs)(o.hN,{ref:t,className:(0,d.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...i,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(o.VF,{children:(0,s.jsx)(n.RiX,{className:"h-4 w-4 fill-current"})})}),r]})}).displayName=o.hN.displayName;let u=r.forwardRef((e,t)=>{let{className:a,inset:r,...n}=e;return(0,s.jsx)(o.JU,{ref:t,className:(0,d.cn)("px-2 py-1.5 text-sm font-semibold",r&&"pl-8",a),...n})});u.displayName=o.JU.displayName;let m=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(o.wv,{ref:t,className:(0,d.cn)("-mx-1 my-1 h-px bg-muted",a),...r})});m.displayName=o.wv.displayName},19546:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var s=a(20107),r=a(16118);function o(){let[e,t]=(0,s.useState)(!1),[a,o]=(0,s.useState)(!0),n=(0,r.useRouter)();async function d(){try{let e=await fetch("/cgi-bin/quecmanager/heartbeat.sh",{method:"GET",headers:{"Cache-Control":"no-cache"}});if(!e.ok){i();return}(await e.json()).alive?o(!0):i()}catch(e){i()}}function i(){o(!1),c()}function l(e){let t={token:e,lastActivity:Date.now(),expiresAt:Date.now()+18e5};localStorage.setItem("session",JSON.stringify(t))}function c(){localStorage.removeItem("session"),t(!1),n.push("/login")}function h(){let e=function(){let e=function(){let e=localStorage.getItem("session");if(!e)return null;try{return JSON.parse(e)}catch(e){return null}}();if(!e)return!1;let t=Date.now();return t>e.expiresAt?(c(),!1):(t-e.lastActivity>3e5&&l(e.token),!0)}();return t(e),e}return(0,s.useEffect)(()=>{h();let e=setInterval(d,5e3);return()=>{clearInterval(e)}},[]),{isAuthenticated:e,isServerAlive:a,login:async function(e){let a=encodeURIComponent(e);try{let e=await fetch("/cgi-bin/quecmanager/auth.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:"password=".concat(a)}),s=await e.json();if(console.log(s),"success"!==s.state)return!1;{let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:32,t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from(crypto.getRandomValues(new Uint8Array(e))).map(e=>t[e%t.length]).join("")}();return l(e),t(!0),n.push("/dashboard/home"),!0}}catch(e){return console.error("Login error:",e),!1}},logout:c,checkAuth:h}}},16118:(e,t,a)=>{"use strict";var s=a(65834);a.o(s,"usePathname")&&a.d(t,{usePathname:function(){return s.usePathname}}),a.o(s,"useRouter")&&a.d(t,{useRouter:function(){return s.useRouter}})}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,8885,7563,9464,9477,6357,1976,4767,191,6035,7358],()=>t(99750)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/layout-a9c4b7ff6cae263b.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/layout-a9c4b7ff6cae263b.js new file mode 100644 index 0000000..397c9a7 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/layout-a9c4b7ff6cae263b.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{5330:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,22670,23)),Promise.resolve().then(r.bind(r,74347)),Promise.resolve().then(r.bind(r,62825)),Promise.resolve().then(r.bind(r,85014)),Promise.resolve().then(r.t.bind(r,25804,23))},74347:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>a});var n=r(20475);r(20107);var o=r(92159);function a(e){let{children:t,...r}=e;return(0,n.jsx)(o.N,{...r,children:t})}},62825:(e,t,r)=>{"use strict";r.d(t,{Toaster:()=>es});var n=r(20475),o=r(32857),a=r(20107),s=r(7197),i=r(25642),l=r(94521),c=r(64236),d=r(32474),u=r(45170),m=r(55302),f=r(41913),p=r(54245),v=r(34544),h=r(46774),w=r(13061),y=r(54122),x=r(91475),g="ToastProvider",[E,T,b]=(0,d.N)("Toast"),[S,C]=(0,u.A)("Toast",[b]),[N,R]=S(g),j=e=>{let{__scopeToast:t,label:r="Notification",duration:o=5e3,swipeDirection:s="right",swipeThreshold:i=50,children:l}=e,[c,d]=a.useState(null),[u,m]=a.useState(0),f=a.useRef(!1),p=a.useRef(!1);return r.trim()||console.error("Invalid prop `label` supplied to `".concat(g,"`. Expected non-empty `string`.")),(0,n.jsx)(E.Provider,{scope:t,children:(0,n.jsx)(N,{scope:t,label:r,duration:o,swipeDirection:s,swipeThreshold:i,toastCount:u,viewport:c,onViewportChange:d,onToastAdd:a.useCallback(()=>m(e=>e+1),[]),onToastRemove:a.useCallback(()=>m(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:f,isClosePausedRef:p,children:l})})};j.displayName=g;var P="ToastViewport",A=["F8"],k="toast.viewportPause",I="toast.viewportResume",L=a.forwardRef((e,t)=>{let{__scopeToast:r,hotkey:o=A,label:s="Notifications ({hotkey})",...i}=e,l=R(P,r),d=T(r),u=a.useRef(null),f=a.useRef(null),p=a.useRef(null),h=a.useRef(null),w=(0,c.s)(t,h,l.onViewportChange),y=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),x=l.toastCount>0;a.useEffect(()=>{let e=e=>{var t;0!==o.length&&o.every(t=>e[t]||e.code===t)&&(null===(t=h.current)||void 0===t||t.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[o]),a.useEffect(()=>{let e=u.current,t=h.current;if(x&&e&&t){let r=()=>{if(!l.isClosePausedRef.current){let e=new CustomEvent(k);t.dispatchEvent(e),l.isClosePausedRef.current=!0}},n=()=>{if(l.isClosePausedRef.current){let e=new CustomEvent(I);t.dispatchEvent(e),l.isClosePausedRef.current=!1}},o=t=>{e.contains(t.relatedTarget)||n()},a=()=>{e.contains(document.activeElement)||n()};return e.addEventListener("focusin",r),e.addEventListener("focusout",o),e.addEventListener("pointermove",r),e.addEventListener("pointerleave",a),window.addEventListener("blur",r),window.addEventListener("focus",n),()=>{e.removeEventListener("focusin",r),e.removeEventListener("focusout",o),e.removeEventListener("pointermove",r),e.removeEventListener("pointerleave",a),window.removeEventListener("blur",r),window.removeEventListener("focus",n)}}},[x,l.isClosePausedRef]);let g=a.useCallback(e=>{let{tabbingDirection:t}=e,r=d().map(e=>{let r=e.ref.current,n=[r,...function(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}(r)];return"forwards"===t?n:n.reverse()});return("forwards"===t?r.reverse():r).flat()},[d]);return a.useEffect(()=>{let e=h.current;if(e){let t=t=>{let r=t.altKey||t.ctrlKey||t.metaKey;if("Tab"===t.key&&!r){var n,o,a;let r=document.activeElement,s=t.shiftKey;if(t.target===e&&s){null===(n=f.current)||void 0===n||n.focus();return}let i=g({tabbingDirection:s?"backwards":"forwards"}),l=i.findIndex(e=>e===r);$(i.slice(l+1))?t.preventDefault():s?null===(o=f.current)||void 0===o||o.focus():null===(a=p.current)||void 0===a||a.focus()}};return e.addEventListener("keydown",t),()=>e.removeEventListener("keydown",t)}},[d,g]),(0,n.jsxs)(m.lg,{ref:u,role:"region","aria-label":s.replace("{hotkey}",y),tabIndex:-1,style:{pointerEvents:x?void 0:"none"},children:[x&&(0,n.jsx)(M,{ref:f,onFocusFromOutsideViewport:()=>{$(g({tabbingDirection:"forwards"}))}}),(0,n.jsx)(E.Slot,{scope:r,children:(0,n.jsx)(v.sG.ol,{tabIndex:-1,...i,ref:w})}),x&&(0,n.jsx)(M,{ref:p,onFocusFromOutsideViewport:()=>{$(g({tabbingDirection:"backwards"}))}})]})});L.displayName=P;var D="ToastFocusProxy",M=a.forwardRef((e,t)=>{let{__scopeToast:r,onFocusFromOutsideViewport:o,...a}=e,s=R(D,r);return(0,n.jsx)(x.s,{"aria-hidden":!0,tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:e=>{var t;let r=e.relatedTarget;(null===(t=s.viewport)||void 0===t?void 0:t.contains(r))||o()}})});M.displayName=D;var O="Toast",_=a.forwardRef((e,t)=>{let{forceMount:r,open:o,defaultOpen:a,onOpenChange:s,...i}=e,[c=!0,d]=(0,w.i)({prop:o,defaultProp:a,onChange:s});return(0,n.jsx)(p.C,{present:r||c,children:(0,n.jsx)(V,{open:c,...i,ref:t,onClose:()=>d(!1),onPause:(0,h.c)(e.onPause),onResume:(0,h.c)(e.onResume),onSwipeStart:(0,l.m)(e.onSwipeStart,e=>{e.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:(0,l.m)(e.onSwipeMove,e=>{let{x:t,y:r}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","move"),e.currentTarget.style.setProperty("--radix-toast-swipe-move-x","".concat(t,"px")),e.currentTarget.style.setProperty("--radix-toast-swipe-move-y","".concat(r,"px"))}),onSwipeCancel:(0,l.m)(e.onSwipeCancel,e=>{e.currentTarget.setAttribute("data-swipe","cancel"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:(0,l.m)(e.onSwipeEnd,e=>{let{x:t,y:r}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","end"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.setProperty("--radix-toast-swipe-end-x","".concat(t,"px")),e.currentTarget.style.setProperty("--radix-toast-swipe-end-y","".concat(r,"px")),d(!1)})})})});_.displayName=O;var[F,K]=S(O,{onClose(){}}),V=a.forwardRef((e,t)=>{let{__scopeToast:r,type:o="foreground",duration:s,open:d,onClose:u,onEscapeKeyDown:f,onPause:p,onResume:w,onSwipeStart:y,onSwipeMove:x,onSwipeCancel:g,onSwipeEnd:T,...b}=e,S=R(O,r),[C,N]=a.useState(null),j=(0,c.s)(t,e=>N(e)),P=a.useRef(null),A=a.useRef(null),L=s||S.duration,D=a.useRef(0),M=a.useRef(L),_=a.useRef(0),{onToastAdd:K,onToastRemove:V}=S,U=(0,h.c)(()=>{var e;(null==C?void 0:C.contains(document.activeElement))&&(null===(e=S.viewport)||void 0===e||e.focus()),u()}),X=a.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(_.current),D.current=new Date().getTime(),_.current=window.setTimeout(U,e))},[U]);a.useEffect(()=>{let e=S.viewport;if(e){let t=()=>{X(M.current),null==w||w()},r=()=>{let e=new Date().getTime()-D.current;M.current=M.current-e,window.clearTimeout(_.current),null==p||p()};return e.addEventListener(k,r),e.addEventListener(I,t),()=>{e.removeEventListener(k,r),e.removeEventListener(I,t)}}},[S.viewport,L,p,w,X]),a.useEffect(()=>{d&&!S.isClosePausedRef.current&&X(L)},[d,L,S.isClosePausedRef,X]),a.useEffect(()=>(K(),()=>V()),[K,V]);let z=a.useMemo(()=>C?function e(t){let r=[];return Array.from(t.childNodes).forEach(t=>{if(t.nodeType===t.TEXT_NODE&&t.textContent&&r.push(t.textContent),t.nodeType===t.ELEMENT_NODE){let n=t.ariaHidden||t.hidden||"none"===t.style.display,o=""===t.dataset.radixToastAnnounceExclude;if(!n){if(o){let e=t.dataset.radixToastAnnounceAlt;e&&r.push(e)}else r.push(...e(t))}}}),r}(C):null,[C]);return S.viewport?(0,n.jsxs)(n.Fragment,{children:[z&&(0,n.jsx)(G,{__scopeToast:r,role:"status","aria-live":"foreground"===o?"assertive":"polite","aria-atomic":!0,children:z}),(0,n.jsx)(F,{scope:r,onClose:U,children:i.createPortal((0,n.jsx)(E.ItemSlot,{scope:r,children:(0,n.jsx)(m.bL,{asChild:!0,onEscapeKeyDown:(0,l.m)(f,()=>{S.isFocusedToastEscapeKeyDownRef.current||U(),S.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,n.jsx)(v.sG.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":d?"open":"closed","data-swipe-direction":S.swipeDirection,...b,ref:j,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:(0,l.m)(e.onKeyDown,e=>{"Escape"!==e.key||(null==f||f(e.nativeEvent),e.nativeEvent.defaultPrevented||(S.isFocusedToastEscapeKeyDownRef.current=!0,U()))}),onPointerDown:(0,l.m)(e.onPointerDown,e=>{0===e.button&&(P.current={x:e.clientX,y:e.clientY})}),onPointerMove:(0,l.m)(e.onPointerMove,e=>{if(!P.current)return;let t=e.clientX-P.current.x,r=e.clientY-P.current.y,n=!!A.current,o=["left","right"].includes(S.swipeDirection),a=["left","up"].includes(S.swipeDirection)?Math.min:Math.max,s=o?a(0,t):0,i=o?0:a(0,r),l="touch"===e.pointerType?10:2,c={x:s,y:i},d={originalEvent:e,delta:c};n?(A.current=c,Y("toast.swipeMove",x,d,{discrete:!1})):Z(c,S.swipeDirection,l)?(A.current=c,Y("toast.swipeStart",y,d,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>l||Math.abs(r)>l)&&(P.current=null)}),onPointerUp:(0,l.m)(e.onPointerUp,e=>{let t=A.current,r=e.target;if(r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),A.current=null,P.current=null,t){let r=e.currentTarget,n={originalEvent:e,delta:t};Z(t,S.swipeDirection,S.swipeThreshold)?Y("toast.swipeEnd",T,n,{discrete:!0}):Y("toast.swipeCancel",g,n,{discrete:!0}),r.addEventListener("click",e=>e.preventDefault(),{once:!0})}})})})}),S.viewport)})]}):null}),G=e=>{let{__scopeToast:t,children:r,...o}=e,s=R(O,t),[i,l]=a.useState(!1),[c,d]=a.useState(!1);return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>{},t=(0,h.c)(e);(0,y.N)(()=>{let e=0,r=0;return e=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(r)}},[t])}(()=>l(!0)),a.useEffect(()=>{let e=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(e)},[]),c?null:(0,n.jsx)(f.Z,{asChild:!0,children:(0,n.jsx)(x.s,{...o,children:i&&(0,n.jsxs)(n.Fragment,{children:[s.label," ",r]})})})},U=a.forwardRef((e,t)=>{let{__scopeToast:r,...o}=e;return(0,n.jsx)(v.sG.div,{...o,ref:t})});U.displayName="ToastTitle";var X=a.forwardRef((e,t)=>{let{__scopeToast:r,...o}=e;return(0,n.jsx)(v.sG.div,{...o,ref:t})});X.displayName="ToastDescription";var z="ToastAction",q=a.forwardRef((e,t)=>{let{altText:r,...o}=e;return r.trim()?(0,n.jsx)(J,{altText:r,asChild:!0,children:(0,n.jsx)(W,{...o,ref:t})}):(console.error("Invalid prop `altText` supplied to `".concat(z,"`. Expected non-empty `string`.")),null)});q.displayName=z;var H="ToastClose",W=a.forwardRef((e,t)=>{let{__scopeToast:r,...o}=e,a=K(H,r);return(0,n.jsx)(J,{asChild:!0,children:(0,n.jsx)(v.sG.button,{type:"button",...o,ref:t,onClick:(0,l.m)(e.onClick,a.onClose)})})});W.displayName=H;var J=a.forwardRef((e,t)=>{let{__scopeToast:r,altText:o,...a}=e;return(0,n.jsx)(v.sG.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":o||void 0,...a,ref:t})});function Y(e,t,r,n){let{discrete:o}=n,a=r.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:r});t&&a.addEventListener(e,t,{once:!0}),o?(0,v.hO)(a,s):a.dispatchEvent(s)}var Z=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=Math.abs(e.x),o=Math.abs(e.y),a=n>o;return"left"===t||"right"===t?a&&n>r:!a&&o>r};function $(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}var Q=r(29395),B=r(22250);let ee=a.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,n.jsx)(L,{ref:t,className:(0,B.cn)("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",r),...o})});ee.displayName=L.displayName;let et=(0,Q.F)("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),er=a.forwardRef((e,t)=>{let{className:r,variant:o,...a}=e;return(0,n.jsx)(_,{ref:t,className:(0,B.cn)(et({variant:o}),r),...a})});er.displayName=_.displayName,a.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,n.jsx)(q,{ref:t,className:(0,B.cn)("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",r),...o})}).displayName=q.displayName;let en=a.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,n.jsx)(W,{ref:t,className:(0,B.cn)("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",r),"toast-close":"",...o,children:(0,n.jsx)(s.MKb,{className:"h-4 w-4"})})});en.displayName=W.displayName;let eo=a.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,n.jsx)(U,{ref:t,className:(0,B.cn)("text-sm font-semibold [&+div]:text-xs",r),...o})});eo.displayName=U.displayName;let ea=a.forwardRef((e,t)=>{let{className:r,...o}=e;return(0,n.jsx)(X,{ref:t,className:(0,B.cn)("text-sm opacity-90",r),...o})});function es(){let{toasts:e}=(0,o.dj)();return(0,n.jsxs)(j,{children:[e.map(function(e){let{id:t,title:r,description:o,action:a,...s}=e;return(0,n.jsxs)(er,{...s,children:[(0,n.jsxs)("div",{className:"grid gap-1",children:[r&&(0,n.jsx)(eo,{children:r}),o&&(0,n.jsx)(ea,{children:o})]}),a,(0,n.jsx)(en,{})]},t)}),(0,n.jsx)(ee,{})]})}ea.displayName=X.displayName},85014:(e,t,r)=>{"use strict";r.d(t,{TooltipProvider:()=>i,ZI:()=>d,k$:()=>c,m_:()=>l});var n=r(20475),o=r(20107),a=r(43048),s=r(22250);let i=a.Kq,l=a.bL,c=a.l9,d=o.forwardRef((e,t)=>{let{className:r,sideOffset:o=4,...i}=e;return(0,n.jsx)(a.UC,{ref:t,sideOffset:o,className:(0,s.cn)("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...i})});d.displayName=a.UC.displayName},32857:(e,t,r)=>{"use strict";r.d(t,{dj:()=>m,oR:()=>u});var n=r(20107);let o=0,a=new Map,s=e=>{if(a.has(e))return;let t=setTimeout(()=>{a.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);a.set(e,t)},i=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?s(r):e.toasts.forEach(e=>{s(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],c={toasts:[]};function d(e){c=i(c,e),l.forEach(e=>{e(c)})}function u(e){let{...t}=e,r=(o=(o+1)%Number.MAX_SAFE_INTEGER).toString(),n=()=>d({type:"DISMISS_TOAST",toastId:r});return d({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||n()}}}),{id:r,dismiss:n,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function m(){let[e,t]=n.useState(c);return n.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>a});var n=r(64901),o=r(868);function a(){for(var e=arguments.length,t=Array(e),r=0;r{},25804:e=>{e.exports={style:{fontFamily:"'euclid', 'euclid Fallback'"},className:"__className_9dae3d"}},32474:(e,t,r)=>{"use strict";r.d(t,{N:()=>l});var n=r(20107),o=r(54379),a=r(64236),s=r(61837),i=r(20475);function l(e){let t=e+"CollectionProvider",[r,l]=(0,o.A)(t),[c,d]=r(t,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:t,children:r}=e,o=n.useRef(null),a=n.useRef(new Map).current;return(0,i.jsx)(c,{scope:t,itemMap:a,collectionRef:o,children:r})};u.displayName=t;let m=e+"CollectionSlot",f=n.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=d(m,r),l=(0,a.s)(t,o.collectionRef);return(0,i.jsx)(s.DX,{ref:l,children:n})});f.displayName=m;let p=e+"CollectionItemSlot",v="data-radix-collection-item",h=n.forwardRef((e,t)=>{let{scope:r,children:o,...l}=e,c=n.useRef(null),u=(0,a.s)(t,c),m=d(p,r);return n.useEffect(()=>(m.itemMap.set(c,{ref:c,...l}),()=>void m.itemMap.delete(c))),(0,i.jsx)(s.DX,{[v]:"",ref:u,children:o})});return h.displayName=p,[{Provider:u,Slot:f,ItemSlot:h},function(t){let r=d(e+"CollectionConsumer",t);return n.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(v,"]")));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},l]}},91475:(e,t,r)=>{"use strict";r.d(t,{b:()=>i,s:()=>s});var n=r(20107),o=r(34544),a=r(20475),s=n.forwardRef((e,t)=>(0,a.jsx)(o.sG.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));s.displayName="VisuallyHidden";var i=s},92159:(e,t,r)=>{"use strict";r.d(t,{D:()=>c,N:()=>d});var n=r(20107),o=["light","dark"],a="(prefers-color-scheme: dark)",s="undefined"==typeof window,i=n.createContext(void 0),l={setTheme:e=>{},themes:[]},c=()=>{var e;return null!=(e=n.useContext(i))?e:l},d=e=>n.useContext(i)?e.children:n.createElement(m,{...e}),u=["light","dark"],m=e=>{let{forcedTheme:t,disableTransitionOnChange:r=!1,enableSystem:s=!0,enableColorScheme:l=!0,storageKey:c="theme",themes:d=u,defaultTheme:m=s?"system":"light",attribute:w="data-theme",value:y,children:x,nonce:g}=e,[E,T]=n.useState(()=>p(c,m)),[b,S]=n.useState(()=>p(c)),C=y?Object.values(y):d,N=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&s&&(t=h());let n=y?y[t]:t,a=r?v():null,i=document.documentElement;if("class"===w?(i.classList.remove(...C),n&&i.classList.add(n)):n?i.setAttribute(w,n):i.removeAttribute(w),l){let e=o.includes(m)?m:null,r=o.includes(t)?t:e;i.style.colorScheme=r}null==a||a()},[]),R=n.useCallback(e=>{let t="function"==typeof e?e(e):e;T(t);try{localStorage.setItem(c,t)}catch(e){}},[t]),j=n.useCallback(e=>{S(h(e)),"system"===E&&s&&!t&&N("system")},[E,t]);n.useEffect(()=>{let e=window.matchMedia(a);return e.addListener(j),j(e),()=>e.removeListener(j)},[j]),n.useEffect(()=>{let e=e=>{e.key===c&&R(e.newValue||m)};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[R]),n.useEffect(()=>{N(null!=t?t:E)},[t,E]);let P=n.useMemo(()=>({theme:E,setTheme:R,forcedTheme:t,resolvedTheme:"system"===E?b:E,themes:s?[...d,"system"]:d,systemTheme:s?b:void 0}),[E,R,t,b,s,d]);return n.createElement(i.Provider,{value:P},n.createElement(f,{forcedTheme:t,disableTransitionOnChange:r,enableSystem:s,enableColorScheme:l,storageKey:c,themes:d,defaultTheme:m,attribute:w,value:y,children:x,attrs:C,nonce:g}),x)},f=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:s,enableSystem:i,enableColorScheme:l,defaultTheme:c,value:d,attrs:u,nonce:m}=e,f="system"===c,p="class"===s?"var d=document.documentElement,c=d.classList;".concat("c.remove(".concat(u.map(e=>"'".concat(e,"'")).join(","),")"),";"):"var d=document.documentElement,n='".concat(s,"',s='setAttribute';"),v=l?(o.includes(c)?c:null)?"if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'".concat(c,"'"):"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=d?d[e]:e,a=t?e+"|| ''":"'".concat(n,"'"),i="";return l&&r&&!t&&o.includes(e)&&(i+="d.style.colorScheme = '".concat(e,"';")),"class"===s?t||n?i+="c.add(".concat(a,")"):i+="null":n&&(i+="d[s](n,".concat(a,")")),i},w=t?"!function(){".concat(p).concat(h(t),"}()"):i?"!function(){try{".concat(p,"var e=localStorage.getItem('").concat(r,"');if('system'===e||(!e&&").concat(f,")){var t='").concat(a,"',m=window.matchMedia(t);if(m.media!==t||m.matches){").concat(h("dark"),"}else{").concat(h("light"),"}}else if(e){").concat(d?"var x=".concat(JSON.stringify(d),";"):"").concat(h(d?"x[e]":"e",!0),"}").concat(f?"":"else{"+h(c,!1,!1)+"}").concat(v,"}catch(e){}}()"):"!function(){try{".concat(p,"var e=localStorage.getItem('").concat(r,"');if(e){").concat(d?"var x=".concat(JSON.stringify(d),";"):"").concat(h(d?"x[e]":"e",!0),"}else{").concat(h(c,!1,!1),";}").concat(v,"}catch(t){}}();");return n.createElement("script",{nonce:m,dangerouslySetInnerHTML:{__html:w}})}),p=(e,t)=>{let r;if(!s){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},v=()=>{let e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},h=e=>(e||(e=window.matchMedia(a)),e.matches?"dark":"light")}},e=>{var t=t=>e(e.s=t);e.O(0,[3752,9980,7780,8885,7563,3048,191,6035,7358],()=>t(5330)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/login/page-d0e3b3ab931e2b84.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/login/page-d0e3b3ab931e2b84.js new file mode 100644 index 0000000..c4694cd --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/login/page-d0e3b3ab931e2b84.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{91662:(e,t,s)=>{Promise.resolve().then(s.bind(s,25274))},25274:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>f});var r=s(20475),n=s(20107),a=s(19546),o=s(14629),i=s(42541),l=s(64219),d=s(49153),c=s(32857),u=s(114);let f=()=>{let{toast:e}=(0,c.dj)(),[t,s]=(0,n.useState)(""),[f,h]=(0,n.useState)(""),{login:m}=(0,a.A)(),p=async e=>{e.preventDefault(),await m(t)||h("Invalid password")};return(0,r.jsxs)("div",{className:"w-full h-screen lg:grid lg:min-h-[600px] lg:grid-cols-2 gap-4 xl:min-h-[800px]",children:[(0,r.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,r.jsxs)("div",{className:"mx-auto grid w-[350px] gap-12",children:[(0,r.jsxs)("div",{className:"grid gap-2 text-center",children:[(0,r.jsx)("h1",{className:"text-3xl font-bold",children:"Login to QuecManager"}),(0,r.jsx)("p",{className:"text-balance text-muted-foreground",children:"Enter your password to login"})]}),(0,r.jsxs)("form",{onSubmit:p,children:[(0,r.jsxs)("div",{className:"grid gap-8",children:[(0,r.jsxs)("div",{className:"grid gap-2",children:[(0,r.jsx)("div",{className:"flex items-center",children:(0,r.jsx)(d.J,{htmlFor:"password",children:"Password"})}),(0,r.jsx)(l.p,{id:"password",type:"password",required:!0,value:t,onChange:e=>s(e.target.value)}),(0,r.jsx)(i.$,{variant:"link",type:"button",className:"ml-auto inline-block text-sm underline text-white",onClick:()=>{e({variant:"destructive",title:"Forgot your password?",description:"Use the toolkit script to create a new password.",action:(0,r.jsx)(u.A,{})})},children:"Forgot your password?"})]}),(0,r.jsx)(i.$,{type:"submit",className:"w-full",children:"Login"})]}),f&&(0,r.jsx)("div",{className:"bg-rose-500 p-1 mt-2 rounded-md flex text-center justify-center items-center",children:(0,r.jsx)("p",{children:f})})]})]})}),(0,r.jsx)("div",{className:"hidden bg-muted lg:block",children:(0,r.jsx)("div",{className:"flex h-full w-full items-center justify-center",children:(0,r.jsx)(o.default,{src:"/login-logo.svg",alt:"Image",width:"1000",height:"1000",className:"h-[50%] w-[40%] object-contain"})})})]})}},114:(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var r=s(20475),n=s(42541),a=s(7197);let o=()=>(0,r.jsx)(n.$,{asChild:!0,variant:"outline",className:"ml-2",children:(0,r.jsxs)("a",{href:"https://github.com/iamromulan/quectel-rgmii-toolkit/tree/development-SDXPINN",children:[(0,r.jsx)(a.ERf,{className:"w-4 h-4 mr-2"}),"Get there!"]})})},42541:(e,t,s)=>{"use strict";s.d(t,{$:()=>d,r:()=>l});var r=s(20475),n=s(20107),a=s(61837),o=s(29395),i=s(22250);let l=(0,o.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=n.forwardRef((e,t)=>{let{className:s,variant:n,size:o,asChild:d=!1,...c}=e,u=d?a.DX:"button";return(0,r.jsx)(u,{className:(0,i.cn)(l({variant:n,size:o,className:s})),ref:t,...c})});d.displayName="Button"},64219:(e,t,s)=>{"use strict";s.d(t,{p:()=>o});var r=s(20475),n=s(20107),a=s(22250);let o=n.forwardRef((e,t)=>{let{className:s,type:n,...o}=e;return(0,r.jsx)("input",{type:n,className:(0,a.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...o})});o.displayName="Input"},49153:(e,t,s)=>{"use strict";s.d(t,{J:()=>d});var r=s(20475),n=s(20107),a=s(21840),o=s(29395),i=s(22250);let l=(0,o.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,r.jsx)(a.b,{ref:t,className:(0,i.cn)(l(),s),...n})});d.displayName=a.b.displayName},19546:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var r=s(20107),n=s(16118);function a(){let[e,t]=(0,r.useState)(!1),[s,a]=(0,r.useState)(!0),o=(0,n.useRouter)();async function i(){try{let e=await fetch("/cgi-bin/quecmanager/heartbeat.sh",{method:"GET",headers:{"Cache-Control":"no-cache"}});if(!e.ok){l();return}(await e.json()).alive?a(!0):l()}catch(e){l()}}function l(){a(!1),c()}function d(e){let t={token:e,lastActivity:Date.now(),expiresAt:Date.now()+18e5};localStorage.setItem("session",JSON.stringify(t))}function c(){localStorage.removeItem("session"),t(!1),o.push("/login")}function u(){let e=function(){let e=function(){let e=localStorage.getItem("session");if(!e)return null;try{return JSON.parse(e)}catch(e){return null}}();if(!e)return!1;let t=Date.now();return t>e.expiresAt?(c(),!1):(t-e.lastActivity>3e5&&d(e.token),!0)}();return t(e),e}return(0,r.useEffect)(()=>{u();let e=setInterval(i,5e3);return()=>{clearInterval(e)}},[]),{isAuthenticated:e,isServerAlive:s,login:async function(e){let s=encodeURIComponent(e);try{let e=await fetch("/cgi-bin/quecmanager/auth.sh",{method:"POST",headers:{"Content-Type":"application/json"},body:"password=".concat(s)}),r=await e.json();if(console.log(r),"success"!==r.state)return!1;{let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:32,t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";return Array.from(crypto.getRandomValues(new Uint8Array(e))).map(e=>t[e%t.length]).join("")}();return d(e),t(!0),o.push("/dashboard/home"),!0}}catch(e){return console.error("Login error:",e),!1}},logout:c,checkAuth:u}}},32857:(e,t,s)=>{"use strict";s.d(t,{dj:()=>f,oR:()=>u});var r=s(20107);let n=0,a=new Map,o=e=>{if(a.has(e))return;let t=setTimeout(()=>{a.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);a.set(e,t)},i=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:s}=t;return s?o(s):e.toasts.forEach(e=>{o(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===s||void 0===s?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],d={toasts:[]};function c(e){d=i(d,e),l.forEach(e=>{e(d)})}function u(e){let{...t}=e,s=(n=(n+1)%Number.MAX_SAFE_INTEGER).toString(),r=()=>c({type:"DISMISS_TOAST",toastId:s});return c({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:e=>{e||r()}}}),{id:s,dismiss:r,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:s}})}}function f(){let[e,t]=r.useState(d);return r.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},22250:(e,t,s)=>{"use strict";s.d(t,{cn:()=>a});var r=s(64901),n=s(868);function a(){for(var e=arguments.length,t=Array(e),s=0;s{var t=t=>e(e.s=t);e.O(0,[9980,7780,6765,191,6035,7358],()=>t(91662)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/page-adabd6d7c25c9c74.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/page-adabd6d7c25c9c74.js new file mode 100644 index 0000000..1e37e9e --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/app/page-adabd6d7c25c9c74.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{47143:(e,t,r)=>{Promise.resolve().then(r.bind(r,69363))},69363:(e,t,r)=>{"use strict";r.d(t,{default:()=>R});var a=r(20475),n=r(20107),s=r(90805),l=r(17255),o=r(4538),i=r(41797),d=r(98456),c=(0,s.gu)({chartName:"BarChart",GraphicalChild:l.y,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:o.W},{axisType:"yAxis",AxisComp:i.h}],formatAxisMap:d.pr}),u=r(72167),m=r(36760),f=r(42541),x=r(9477),p=r.n(x),h=r(1307),v=r(50049),g=r(7197),N=r(92159),y=r(86118);function b(){let{setTheme:e}=(0,N.D)();return(0,a.jsxs)(y.rI,{children:[(0,a.jsx)(y.ty,{asChild:!0,children:(0,a.jsxs)(f.$,{variant:"outline",size:"icon",children:[(0,a.jsx)(g.gLX,{className:"h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,a.jsx)(g.rRK,{className:"absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"}),(0,a.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}),(0,a.jsxs)(y.SQ,{align:"end",children:[(0,a.jsx)(y._2,{onClick:()=>e("light"),children:"Light"}),(0,a.jsx)(y._2,{onClick:()=>e("dark"),children:"Dark"}),(0,a.jsx)(y._2,{onClick:()=>e("system"),children:"System"})]})]})}let j={rsrp:{min:-140,max:-70},rsrq:{min:-20,max:-10},sinr:{min:0,max:20}},w=(e,t)=>{let r=j[e];return Math.min(Math.max(Math.round(10*((Math.max(Math.min(t,r.max),r.min)-r.min)/(r.max-r.min)*100))/10,0),100)},k=e=>{if(!e)return null;let t=e.map(Number).filter(e=>-32768!==e&&5!==e&&-140!==e);return 0===t.length?null:Math.round(t.reduce((e,t)=>e+t,0)/t.length)};function R(){var e,t,r;let[s,d]=(0,n.useState)({rsrp:null,rsrq:null,sinr:null,networkType:"",bands:null,networkName:""}),[x,N]=(0,n.useState)(!0),y=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=async()=>{try{let e=await fetch("/cgi-bin/quecmanager/at_cmd/fetch_data.sh?set=5"),t=await e.json();if(console.log(t),t){let e={rsrp:k(t[0].response.match(/-?\d+/g)),rsrq:k(t[1].response.match(/-?\d+/g)),sinr:k(t[2].response.match(/-?\d+/g)),networkType:"",bands:null,networkName:""};console.log(e);let r=t[3].response.match(/"LTE BAND \d+"|"NR5G BAND \d+"/g),a=null==r?void 0:r.some(e=>e.includes("LTE")),n=null==r?void 0:r.some(e=>e.includes("NR5G"));e.networkType=a&&n?"NR5G-NSA":a?"LTE":n?"NR5G-SA":"No Signal";let s=null==r?void 0:r.map(e=>e.includes("LTE")?"B".concat(e.match(/\d+/)):e.includes("NR5G")?"N".concat(e.split(" ")[2].replace(/"/g,"").trim()):void 0);e.bands=s?s.join(", "):"No Signal",e.networkName=t[4].response.split("\n")[1].split(":")[1].split(",")[1].replace(/"/g,"").trim()||"No Signal",d(e),y.current=e}}catch(e){console.error("Error fetching stats:",e)}finally{x&&N(!1)}};e();let t=setInterval(e,2e3);return()=>clearInterval(t)},[x]);let j=[{activity:"rsrp",value:null!==s.rsrp?w("rsrp",s.rsrp):0,label:null!==s.rsrp?"".concat(s.rsrp.toFixed(1)," dBm"):"No Signal",fill:"hsl(var(--chart-1))"},{activity:"rsrq",value:null!==s.rsrq?w("rsrq",s.rsrq):0,label:null!==s.rsrq?"".concat(s.rsrq.toFixed(1)," dB"):"No Signal",fill:"hsl(var(--chart-2))"},{activity:"sinr",value:null!==s.sinr?w("sinr",s.sinr):0,label:null!==s.sinr?"".concat(s.sinr.toFixed(1)," dB"):"No Signal",fill:"hsl(var(--chart-3))"}];return(0,a.jsxs)(u.Zp,{className:"xl:max-w-xl xl:w-[800px] max-w-sm",children:[(0,a.jsx)(u.aR,{children:(0,a.jsxs)("div",{className:"flex flex-row justify-between items-center",children:[(0,a.jsx)(u.ZB,{children:"QuecManager Quick Stats"}),(0,a.jsx)(b,{})]})}),(0,a.jsxs)(u.Wu,{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-row justify-evenly items-center w-full p-2 border-t border-b",children:[x?(0,a.jsx)(m.E,{className:"h-8 w-24"}):(0,a.jsx)("div",{children:s.networkName}),(0,a.jsx)(v.w,{orientation:"vertical",className:"mx-2 h-10 w-px"}),x?(0,a.jsx)(m.E,{className:"h-8 w-24"}):(0,a.jsx)("div",{children:s.networkType}),(0,a.jsx)(v.w,{orientation:"vertical",className:"mx-2 h-10 w-px"}),x?(0,a.jsx)(m.E,{className:"h-8 w-24"}):(0,a.jsx)("div",{children:s.bands})]}),(0,a.jsx)("div",{className:"flex gap-4 xl:p-4 p-2 pb-2",children:x?(0,a.jsx)(m.E,{className:"h-[140px] w-full"}):(0,a.jsx)(h.at,{config:{sinr:{label:"sinr",color:"hsl(var(--chart-1))"},rsrp:{label:"rsrp",color:"hsl(var(--chart-2))"},rsrq:{label:"rsrq",color:"hsl(var(--chart-3))"}},className:"h-[140px] w-full",children:(0,a.jsxs)(c,{margin:{left:0,right:0,top:0,bottom:10},data:j,layout:"vertical",barSize:32,barGap:2,children:[(0,a.jsx)(o.W,{type:"number",dataKey:"value",hide:!0}),(0,a.jsx)(i.h,{dataKey:"activity",type:"category",tickLine:!1,tickMargin:4,axisLine:!1,className:"uppercase"}),(0,a.jsx)(l.y,{dataKey:"value",radius:5})]})})})]}),(0,a.jsxs)(u.wL,{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"flex flex-row border-t border-b xl:p-4 p-2 w-full",children:(0,a.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,a.jsxs)("div",{className:"grid flex-1 auto-rows-min gap-0.5",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground",children:"RSRP"}),x?(0,a.jsx)(m.E,{className:"h-8 w-24"}):(0,a.jsxs)("div",{className:"flex items-baseline gap-1 xl:text-2xl text-md font-bold tabular-nums leading-none",children:[null===(e=s.rsrp)||void 0===e?void 0:e.toFixed(1),(0,a.jsx)("span",{className:"text-sm font-normal text-muted-foreground",children:"dBm"})]})]}),(0,a.jsx)(v.w,{orientation:"vertical",className:"mx-2 h-10 w-px"}),(0,a.jsxs)("div",{className:"grid flex-1 auto-rows-min gap-0.5",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground",children:"RSRQ"}),x?(0,a.jsx)(m.E,{className:"h-8 w-24"}):(0,a.jsxs)("div",{className:"flex items-baseline gap-1 xl:text-2xl text-md font-bold tabular-nums leading-none",children:[null===(t=s.rsrq)||void 0===t?void 0:t.toFixed(1),(0,a.jsx)("span",{className:"text-sm font-normal text-muted-foreground",children:"dB"})]})]}),(0,a.jsx)(v.w,{orientation:"vertical",className:"mx-2 h-10 w-px"}),(0,a.jsxs)("div",{className:"grid flex-1 auto-rows-min gap-0.5",children:[(0,a.jsx)("div",{className:"text-xs text-muted-foreground",children:"SINR"}),x?(0,a.jsx)(m.E,{className:"h-8 w-24"}):(0,a.jsxs)("div",{className:"flex items-baseline gap-1 xl:text-2xl text-md font-bold tabular-nums leading-none",children:[null===(r=s.sinr)||void 0===r?void 0:r.toFixed(1),(0,a.jsx)("span",{className:"text-sm font-normal text-muted-foreground",children:"dB"})]})]})]})}),(0,a.jsx)(f.$,{asChild:!0,children:(0,a.jsxs)(p(),{href:"/login",children:["Login to QuecManager",(0,a.jsx)(g.flY,{className:"w-4 h-4 ml-2"})]})})]})]})}},42541:(e,t,r)=>{"use strict";r.d(t,{$:()=>d,r:()=>i});var a=r(20475),n=r(20107),s=r(61837),l=r(29395),o=r(22250);let i=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=n.forwardRef((e,t)=>{let{className:r,variant:n,size:l,asChild:d=!1,...c}=e,u=d?s.DX:"button";return(0,a.jsx)(u,{className:(0,o.cn)(i({variant:n,size:l,className:r})),ref:t,...c})});d.displayName="Button"},72167:(e,t,r)=>{"use strict";r.d(t,{BT:()=>d,Wu:()=>c,ZB:()=>i,Zp:()=>l,aR:()=>o,wL:()=>u});var a=r(20475),n=r(20107),s=r(22250);let l=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...n})});l.displayName="Card";let o=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",r),...n})});o.displayName="CardHeader";let i=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("h3",{ref:t,className:(0,s.cn)("font-semibold leading-none tracking-tight",r),...n})});i.displayName="CardTitle";let d=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("p",{ref:t,className:(0,s.cn)("text-sm text-muted-foreground",r),...n})});d.displayName="CardDescription";let c=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("p-6 pt-0",r),...n})});c.displayName="CardContent";let u=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)("div",{ref:t,className:(0,s.cn)("flex items-center p-6 pt-0",r),...n})});u.displayName="CardFooter"},1307:(e,t,r)=>{"use strict";r.d(t,{II:()=>x,Nt:()=>p,at:()=>m});var a=r(20475),n=r(20107),s=r(81155),l=r(58601),o=r(58736),i=r(22250);let d={light:"",dark:".dark"},c=n.createContext(null);function u(){let e=n.useContext(c);if(!e)throw Error("useChart must be used within a ");return e}let m=n.forwardRef((e,t)=>{let{id:r,className:l,children:o,config:d,...u}=e,m=n.useId(),x="chart-".concat(r||m.replace(/:/g,""));return(0,a.jsx)(c.Provider,{value:{config:d},children:(0,a.jsxs)("div",{"data-chart":x,ref:t,className:(0,i.cn)("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",l),...u,children:[(0,a.jsx)(f,{id:x,config:d}),(0,a.jsx)(s.u,{children:o})]})})});m.displayName="Chart";let f=e=>{let{id:t,config:r}=e,n=Object.entries(r).filter(e=>{let[t,r]=e;return r.theme||r.color});return n.length?(0,a.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(d).map(e=>{let[r,a]=e;return"\n".concat(a," [data-chart=").concat(t,"] {\n").concat(n.map(e=>{var t;let[a,n]=e,s=(null===(t=n.theme)||void 0===t?void 0:t[r])||n.color;return s?" --color-".concat(a,": ").concat(s,";"):null}).join("\n"),"\n}\n")}).join("\n")}}):null},x=l.m,p=n.forwardRef((e,t)=>{let{active:r,payload:s,className:l,indicator:o="dot",hideLabel:d=!1,hideIndicator:c=!1,label:m,labelFormatter:f,labelClassName:x,formatter:p,color:v,nameKey:g,labelKey:N}=e,{config:y}=u(),b=n.useMemo(()=>{var e;if(d||!(null==s?void 0:s.length))return null;let[t]=s,r="".concat(N||t.dataKey||t.name||"value"),n=h(y,t,r),l=N||"string"!=typeof m?null==n?void 0:n.label:(null===(e=y[m])||void 0===e?void 0:e.label)||m;return f?(0,a.jsx)("div",{className:(0,i.cn)("font-medium",x),children:f(l,s)}):l?(0,a.jsx)("div",{className:(0,i.cn)("font-medium",x),children:l}):null},[m,f,s,d,x,y,N]);if(!r||!(null==s?void 0:s.length))return null;let j=1===s.length&&"dot"!==o;return(0,a.jsxs)("div",{ref:t,className:(0,i.cn)("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",l),children:[j?null:b,(0,a.jsx)("div",{className:"grid gap-1.5",children:s.map((e,t)=>{let r="".concat(g||e.name||e.dataKey||"value"),n=h(y,e,r),s=v||e.payload.fill||e.color;return(0,a.jsx)("div",{className:(0,i.cn)("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===o&&"items-center"),children:p&&(null==e?void 0:e.value)!==void 0&&e.name?p(e.value,e.name,e,t,e.payload):(0,a.jsxs)(a.Fragment,{children:[(null==n?void 0:n.icon)?(0,a.jsx)(n.icon,{}):!c&&(0,a.jsx)("div",{className:(0,i.cn)("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===o,"w-1":"line"===o,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===o,"my-0.5":j&&"dashed"===o}),style:{"--color-bg":s,"--color-border":s}}),(0,a.jsxs)("div",{className:(0,i.cn)("flex flex-1 justify-between leading-none",j?"items-end":"items-center"),children:[(0,a.jsxs)("div",{className:"grid gap-1.5",children:[j?b:null,(0,a.jsx)("span",{className:"text-muted-foreground",children:(null==n?void 0:n.label)||e.name})]}),e.value&&(0,a.jsx)("span",{className:"font-mono font-medium tabular-nums text-foreground",children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});function h(e,t,r){if("object"!=typeof t||null===t)return;let a="payload"in t&&"object"==typeof t.payload&&null!==t.payload?t.payload:void 0,n=r;return r in t&&"string"==typeof t[r]?n=t[r]:a&&r in a&&"string"==typeof a[r]&&(n=a[r]),n in e?e[n]:e[r]}p.displayName="ChartTooltip",o.s,n.forwardRef((e,t)=>{let{className:r,hideIcon:n=!1,payload:s,verticalAlign:l="bottom",nameKey:o}=e,{config:d}=u();return(null==s?void 0:s.length)?(0,a.jsx)("div",{ref:t,className:(0,i.cn)("flex items-center justify-center gap-4","top"===l?"pb-3":"pt-3",r),children:s.map(e=>{let t="".concat(o||e.dataKey||"value"),r=h(d,e,t);return(0,a.jsxs)("div",{className:(0,i.cn)("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[(null==r?void 0:r.icon)&&!n?(0,a.jsx)(r.icon,{}):(0,a.jsx)("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:e.color}}),null==r?void 0:r.label]},e.value)})}):null}).displayName="ChartLegend"},86118:(e,t,r)=>{"use strict";r.d(t,{SQ:()=>c,_2:()=>u,lp:()=>m,mB:()=>f,rI:()=>i,ty:()=>d});var a=r(20475),n=r(20107),s=r(70690),l=r(7197),o=r(22250);let i=s.bL,d=s.l9;s.YJ,s.ZL,s.Pb,s.z6,n.forwardRef((e,t)=>{let{className:r,inset:n,children:i,...d}=e;return(0,a.jsxs)(s.ZP,{ref:t,className:(0,o.cn)("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",n&&"pl-8",r),...d,children:[i,(0,a.jsx)(l.vKP,{className:"ml-auto h-4 w-4"})]})}).displayName=s.ZP.displayName,n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.G5,{ref:t,className:(0,o.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...n})}).displayName=s.G5.displayName;let c=n.forwardRef((e,t)=>{let{className:r,sideOffset:n=4,...l}=e;return(0,a.jsx)(s.ZL,{children:(0,a.jsx)(s.UC,{ref:t,sideOffset:n,className:(0,o.cn)("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...l})})});c.displayName=s.UC.displayName;let u=n.forwardRef((e,t)=>{let{className:r,inset:n,...l}=e;return(0,a.jsx)(s.q7,{ref:t,className:(0,o.cn)("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",r),...l})});u.displayName=s.q7.displayName,n.forwardRef((e,t)=>{let{className:r,children:n,checked:i,...d}=e;return(0,a.jsxs)(s.H_,{ref:t,className:(0,o.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),checked:i,...d,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(s.VF,{children:(0,a.jsx)(l.Srz,{className:"h-4 w-4"})})}),n]})}).displayName=s.H_.displayName,n.forwardRef((e,t)=>{let{className:r,children:n,...i}=e;return(0,a.jsxs)(s.hN,{ref:t,className:(0,o.cn)("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",r),...i,children:[(0,a.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,a.jsx)(s.VF,{children:(0,a.jsx)(l.RiX,{className:"h-4 w-4 fill-current"})})}),n]})}).displayName=s.hN.displayName;let m=n.forwardRef((e,t)=>{let{className:r,inset:n,...l}=e;return(0,a.jsx)(s.JU,{ref:t,className:(0,o.cn)("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",r),...l})});m.displayName=s.JU.displayName;let f=n.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,a.jsx)(s.wv,{ref:t,className:(0,o.cn)("-mx-1 my-1 h-px bg-muted",r),...n})});f.displayName=s.wv.displayName},50049:(e,t,r)=>{"use strict";r.d(t,{w:()=>c});var a=r(20475),n=r(20107),s=r(34544),l="horizontal",o=["horizontal","vertical"],i=n.forwardRef((e,t)=>{let{decorative:r,orientation:n=l,...i}=e,d=o.includes(n)?n:l;return(0,a.jsx)(s.sG.div,{"data-orientation":d,...r?{role:"none"}:{"aria-orientation":"vertical"===d?d:void 0,role:"separator"},...i,ref:t})});i.displayName="Separator";var d=r(22250);let c=n.forwardRef((e,t)=>{let{className:r,orientation:n="horizontal",decorative:s=!0,...l}=e;return(0,a.jsx)(i,{ref:t,decorative:s,orientation:n,className:(0,d.cn)("shrink-0 bg-border","horizontal"===n?"h-[1px] w-full":"h-full w-[1px]",r),...l})});c.displayName=i.displayName},36760:(e,t,r)=>{"use strict";r.d(t,{E:()=>s});var a=r(20475),n=r(22250);function s(e){let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,n.cn)("animate-pulse rounded-md bg-primary/10",t),...r})}},22250:(e,t,r)=>{"use strict";r.d(t,{cn:()=>s});var a=r(64901),n=r(868);function s(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{C:()=>l});var a=r(20107),n=r(64236),s=r(54122),l=e=>{let{present:t,children:r}=e,l=function(e){var t,r;let[n,l]=a.useState(),i=a.useRef({}),d=a.useRef(e),c=a.useRef("none"),[u,m]=(t=e?"mounted":"unmounted",r={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},a.useReducer((e,t)=>{let a=r[e][t];return null!=a?a:e},t));return a.useEffect(()=>{let e=o(i.current);c.current="mounted"===u?e:"none"},[u]),(0,s.N)(()=>{let t=i.current,r=d.current;if(r!==e){let a=c.current,n=o(t);e?m("MOUNT"):"none"===n||(null==t?void 0:t.display)==="none"?m("UNMOUNT"):r&&a!==n?m("ANIMATION_OUT"):m("UNMOUNT"),d.current=e}},[e,m]),(0,s.N)(()=>{if(n){var e;let t;let r=null!==(e=n.ownerDocument.defaultView)&&void 0!==e?e:window,a=e=>{let a=o(i.current).includes(e.animationName);if(e.target===n&&a&&(m("ANIMATION_END"),!d.current)){let e=n.style.animationFillMode;n.style.animationFillMode="forwards",t=r.setTimeout(()=>{"forwards"===n.style.animationFillMode&&(n.style.animationFillMode=e)})}},s=e=>{e.target===n&&(c.current=o(i.current))};return n.addEventListener("animationstart",s),n.addEventListener("animationcancel",a),n.addEventListener("animationend",a),()=>{r.clearTimeout(t),n.removeEventListener("animationstart",s),n.removeEventListener("animationcancel",a),n.removeEventListener("animationend",a)}}m("ANIMATION_END")},[n,m]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:a.useCallback(e=>{e&&(i.current=getComputedStyle(e)),l(e)},[])}}(t),i="function"==typeof r?r({present:l.isPresent}):a.Children.only(r),d=(0,n.s)(l.ref,function(e){var t,r;let a=null===(t=Object.getOwnPropertyDescriptor(e.props,"ref"))||void 0===t?void 0:t.get,n=a&&"isReactWarning"in a&&a.isReactWarning;return n?e.ref:(n=(a=null===(r=Object.getOwnPropertyDescriptor(e,"ref"))||void 0===r?void 0:r.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref}(i));return"function"==typeof r||l.isPresent?a.cloneElement(i,{ref:d}):null};function o(e){return(null==e?void 0:e.animationName)||"none"}l.displayName="Presence"}},e=>{var t=t=>e(e.s=t);e.O(0,[9980,7780,8885,7563,9464,9477,1074,1976,191,6035,7358],()=>t(47143)),_N_E=e.O()}]); \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/b26ba64e-84bd87b07e65a7eb.js b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/b26ba64e-84bd87b07e65a7eb.js new file mode 100644 index 0000000..d632842 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/chunks/b26ba64e-84bd87b07e65a7eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[191],{71272:(e,n,t)=>{var r,l,a=t(86170),o=t(87803),i=t(20107),u=t(25642);function s(e){var n="https://react.dev/errors/"+e;if(1)":-1l||u[r]!==s[l]){var c="\n"+u[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=r&&0<=l);break}}}finally{M=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?O(t):""}function R(e){try{var n="";do n+=function(e){switch(e.tag){case 26:case 27:case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 15:return e=A(e.type,!1);case 11:return e=A(e.type.render,!1);case 1:return e=A(e.type,!0);default:return""}}(e),e=e.return;while(e);return n}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}function I(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do 0!=(4098&(n=e).flags)&&(t=n.return),e=n.return;while(e)}return 3===n.tag?t:null}function U(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function V(e){if(I(e)!==e)throw Error(s(188))}var j=Array.isArray,B=u.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Q={pending:!1,data:null,method:null,action:null},$=[],W=-1;function H(e){return{current:e}}function q(e){0>W||(e.current=$[W],$[W]=null,W--)}function K(e,n){$[++W]=e.current,e.current=n}var Y=H(null),X=H(null),G=H(null),Z=H(null);function J(e,n){switch(K(G,n),K(X,e),K(Y,null),e=n.nodeType){case 9:case 11:n=(n=n.documentElement)&&(n=n.namespaceURI)?se(n):0;break;default:if(n=(e=8===e?n.parentNode:n).tagName,e=e.namespaceURI)n=sn(e=se(e),n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}q(Y),K(Y,n)}function ee(){q(Y),q(X),q(G)}function en(e){null!==e.memoizedState&&K(Z,e);var n=Y.current,t=sn(n,e.type);n!==t&&(K(X,e),K(Y,t))}function et(e){X.current===e&&(q(Y),q(X)),Z.current===e&&(q(Z),sj._currentValue=Q)}var er=Object.prototype.hasOwnProperty,el=o.unstable_scheduleCallback,ea=o.unstable_cancelCallback,eo=o.unstable_shouldYield,ei=o.unstable_requestPaint,eu=o.unstable_now,es=o.unstable_getCurrentPriorityLevel,ec=o.unstable_ImmediatePriority,ef=o.unstable_UserBlockingPriority,ed=o.unstable_NormalPriority,ep=o.unstable_LowPriority,em=o.unstable_IdlePriority,eh=o.log,eg=o.unstable_setDisableYieldValue,ey=null,ev=null;function eb(e){if("function"==typeof eh&&eg(e),ev&&"function"==typeof ev.setStrictMode)try{ev.setStrictMode(ey,e)}catch(e){}}var ek=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(ew(e)/eS|0)|0},ew=Math.log,eS=Math.LN2,ex=128,eE=4194304;function eC(e){var n=42&e;if(0!==n)return n;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:return 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 4194176&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ez(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,o=e.warmLanes;e=0!==e.finishedLanes;var i=0x7ffffff&t;return 0!==i?0!=(t=i&~l)?r=eC(t):0!=(a&=i)?r=eC(a):e||0!=(o=i&~o)&&(r=eC(o)):0!=(i=t&~l)?r=eC(i):0!==a?r=eC(a):e||0!=(o=t&~o)&&(r=eC(o)),0===r?0:0!==n&&n!==r&&0==(n&l)&&((l=r&-r)>=(o=n&-n)||32===l&&0!=(4194176&o))?n:r}function eP(e,n){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function eN(){var e=ex;return 0==(4194176&(ex<<=1))&&(ex=128),e}function eL(){var e=eE;return 0==(0x3c00000&(eE<<=1))&&(eE=4194304),e}function eT(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function e_(e,n){e.pendingLanes|=n,0x10000000!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eF(e,n,t){e.pendingLanes|=n,e.suspendedLanes&=~n;var r=31-ek(n);e.entangledLanes|=n,e.entanglements[r]=0x40000000|e.entanglements[r]|4194218&t}function eD(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-ek(t),l=1<=te),tr=!1;function tl(e,n){switch(e){case"keyup":return -1!==n9.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ta(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var to=!1,ti={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!ti[e.type]:"textarea"===n}function ts(e,n,t,r){nw?nS?nS.push(r):nS=[r]:nw=r,0<(n=uX(n,"onChange")).length&&(t=new nj("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var tc=null,tf=null;function td(e){uB(e,0)}function tp(e){if(nn(eK(e)))return e}function tm(e,n){if("change"===e)return n}var th=!1;if(e1){if(e1){var tg="oninput"in document;if(!tg){var ty=document.createElement("div");ty.setAttribute("oninput","return;"),tg="function"==typeof ty.oninput}r=tg}else r=!1;th=r&&(!document.documentMode||9=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=tz(r)}}function tN(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var n=nt(e.document);n instanceof e.HTMLIFrameElement;){try{var t="string"==typeof n.contentWindow.location.href}catch(e){t=!1}if(t)e=n.contentWindow;else break;n=nt(e.document)}return n}function tL(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}var tT=e1&&"documentMode"in document&&11>=document.documentMode,t_=null,tF=null,tD=null,tO=!1;function tM(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;tO||null==t_||t_!==nt(r)||(r="selectionStart"in(r=t_)&&tL(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},tD&&tC(tD,r)||(tD=r,0<(r=uX(tF,"onSelect")).length&&(n=new nj("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=t_)))}function tA(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var tR={animationend:tA("Animation","AnimationEnd"),animationiteration:tA("Animation","AnimationIteration"),animationstart:tA("Animation","AnimationStart"),transitionrun:tA("Transition","TransitionRun"),transitionstart:tA("Transition","TransitionStart"),transitioncancel:tA("Transition","TransitionCancel"),transitionend:tA("Transition","TransitionEnd")},tI={},tU={};function tV(e){if(tI[e])return tI[e];if(!tR[e])return e;var n,t=tR[e];for(n in t)if(t.hasOwnProperty(n)&&n in tU)return tI[e]=t[n];return e}e1&&(tU=document.createElement("div").style,"AnimationEvent"in window||(delete tR.animationend.animation,delete tR.animationiteration.animation,delete tR.animationstart.animation),"TransitionEvent"in window||delete tR.transitionend.transition);var tj=tV("animationend"),tB=tV("animationiteration"),tQ=tV("animationstart"),t$=tV("transitionrun"),tW=tV("transitionstart"),tH=tV("transitioncancel"),tq=tV("transitionend"),tK=new Map,tY="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(" ");function tX(e,n){tK.set(e,n),eJ(n,[e])}var tG=[],tZ=0,tJ=0;function t0(){for(var e=tZ,n=tJ=tZ=0;n>=o,l-=o,ro=1<<32-ek(n)+l|t<a?a:8;var o=F.T,i={};F.T=i,al(e,!1,n,t);try{var u=l(),s=F.S;if(null!==s&&s(i,u),null!==u&&"object"==typeof u&&"function"==typeof u.then){var c,f,d=(c=[],f={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},u.then(function(){f.status="fulfilled",f.value=r;for(var e=0;ed?(p=f,f=null):p=f.sibling;var m=g(l,f,i[d],u);if(null===m){null===f&&(f=p);break}e&&f&&null===m.alternate&&n(l,f),o=a(m,o,d),null===c?s=m:c.sibling=m,c=m,f=p}if(d===i.length)return t(l,f),rm&&ru(l,d),s;if(null===f){for(;dp?(m=d,d=null):m=d.sibling;var b=g(l,d,v.value,u);if(null===b){null===d&&(d=m);break}e&&d&&null===b.alternate&&n(l,d),o=a(b,o,p),null===f?c=b:f.sibling=b,f=b,d=m}if(v.done)return t(l,d),rm&&ru(l,p),c;if(null===d){for(;!v.done;p++,v=i.next())null!==(v=h(l,v.value,u))&&(o=a(v,o,p),null===f?c=v:f.sibling=v,f=v);return rm&&ru(l,p),c}for(d=r(d);!v.done;p++,v=i.next())null!==(v=y(d,l,p,v.value,u))&&(e&&null!==v.alternate&&d.delete(null===v.key?p:v.key),o=a(v,o,p),null===f?c=v:f.sibling=v,f=v);return e&&d.forEach(function(e){return n(l,e)}),rm&&ru(l,p),c}(u,c,f=k.call(f),v)}if("function"==typeof f.then)return i(u,c,am(f),v);if(f.$$typeof===b)return i(u,c,og(u,f),v);ag(u,f)}return"string"==typeof f&&""!==f||"number"==typeof f||"bigint"==typeof f?(f=""+f,null!==c&&6===c.tag?(t(u,c.sibling),(v=l(c,f)).return=u):(t(u,c),(v=iy(f,u.mode,v)).return=u),o(u=v)):t(u,c)}(i,u,c,f);return ad=null,v}catch(e){if(e===rE||e===rz)throw e;var k=is(29,e,null,i.mode);return k.lanes=f,k.return=i,k}finally{}}}var ab=av(!0),ak=av(!1),aw=H(null),aS=null;function ax(e){var n=e.alternate;K(aP,1&aP.current),K(aw,e),null===aS&&(null===n||null!==rW.current?aS=e:null!==n.memoizedState&&(aS=e))}function aE(e){if(22===e.tag){if(K(aP,aP.current),K(aw,e),null===aS){var n=e.alternate;null!==n&&null!==n.memoizedState&&(aS=e)}}else aC(e)}function aC(){K(aP,aP.current),K(aw,aw.current)}function az(e){q(aw),aS===e&&(aS=null),q(aP)}var aP=H(0);function aN(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||sf(t)))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!=(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function aL(e,n,t,r){t=null==(t=t(r,n=e.memoizedState))?n:D({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var aT={isMounted:function(e){return!!(e=e._reactInternals)&&I(e)===e},enqueueSetState:function(e,n,t){e=e._reactInternals;var r=i4(),l=ow(r);l.payload=n,null!=t&&(l.callback=t),null!==(n=oS(e,l,r))&&(i6(n,e,r),ox(n,e,r))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=i4(),l=ow(r);l.tag=1,l.payload=n,null!=t&&(l.callback=t),null!==(n=oS(e,l,r))&&(i6(n,e,r),ox(n,e,r))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=i4(),r=ow(t);r.tag=2,null!=n&&(r.callback=n),null!==(n=oS(e,r,t))&&(i6(n,e,t),ox(n,e,t))}};function a_(e,n,t,r,l,a,o){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!n.prototype||!n.prototype.isPureReactComponent||!tC(t,r)||!tC(l,a)}function aF(e,n,t,r){e=n.state,"function"==typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"==typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&aT.enqueueReplaceState(n,n.state,null)}function aD(e,n){var t=n;if("ref"in n)for(var r in t={},n)"ref"!==r&&(t[r]=n[r]);if(e=e.defaultProps)for(var l in t===n&&(t=D({},t)),e)void 0===t[l]&&(t[l]=e[l]);return t}var aO="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if("object"==typeof a&&"function"==typeof a.emit){a.emit("uncaughtException",e);return}console.error(e)};function aM(e){aO(e)}function aA(e){console.error(e)}function aR(e){aO(e)}function aI(e,n){try{(0,e.onUncaughtError)(n.value,{componentStack:n.stack})}catch(e){setTimeout(function(){throw e})}}function aU(e,n,t){try{(0,e.onCaughtError)(t.value,{componentStack:t.stack,errorBoundary:1===n.tag?n.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function aV(e,n,t){return(t=ow(t)).tag=3,t.payload={element:null},t.callback=function(){aI(e,n)},t}function aj(e){return(e=ow(e)).tag=3,e}function aB(e,n,t,r){var l=t.type.getDerivedStateFromError;if("function"==typeof l){var a=r.value;e.payload=function(){return l(a)},e.callback=function(){aU(n,t,r)}}var o=t.stateNode;null!==o&&"function"==typeof o.componentDidCatch&&(e.callback=function(){aU(n,t,r),"function"!=typeof l&&(null===iY?iY=new Set([this]):iY.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var aQ=Error(s(461)),a$=!1;function aW(e,n,t,r){n.child=null===e?ak(n,null,t,r):ab(n,e.child,t,r)}function aH(e,n,t,r,l){t=t.render;var a=n.ref;if("ref"in r){var o={};for(var i in r)"ref"!==i&&(o[i]=r[i])}else o=r;return(om(n),r=ll(e,n,t,o,a,l),i=lu(),null===e||a$)?(rm&&i&&rc(n),n.flags|=1,aW(e,n,r,l),n.child):(ls(e,n,l),ot(e,n,l))}function aq(e,n,t,r,l){if(null===e){var a=t.type;return"function"!=typeof a||ic(a)||void 0!==a.defaultProps||null!==t.compare?((e=im(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,aK(e,n,a,r,l))}if(a=e.child,!or(e,l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:tC)(o,r)&&e.ref===n.ref)return ot(e,n,l)}return n.flags|=1,(e=id(a,r)).ref=n.ref,e.return=n,n.child=e}function aK(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(tC(a,r)&&e.ref===n.ref){if(a$=!1,n.pendingProps=r=a,!or(e,l))return n.lanes=e.lanes,ot(e,n,l);0!=(131072&e.flags)&&(a$=!0)}}return aZ(e,n,t,r,l)}function aY(e,n,t){var r=n.pendingProps,l=r.children,a=0!=(2&n.stateNode._pendingVisibility),o=null!==e?e.memoizedState:null;if(aG(e,n),"hidden"===r.mode||a){if(0!=(128&n.flags)){if(r=null!==o?o.baseLanes|t:t,null!==e){for(a=0,l=n.child=e.child;null!==l;)a=a|l.lanes|l.childLanes,l=l.sibling;n.childLanes=a&~r}else n.childLanes=0,n.child=null;return aX(e,n,r,t)}if(0==(0x20000000&t))return n.lanes=n.childLanes=0x20000000,aX(e,n,null!==o?o.baseLanes|t:t,t);n.memoizedState={baseLanes:0,cachePool:null},null!==e&&rJ(n,null!==o?o.cachePool:null),null!==o?rq(n,o):rK(),aE(n)}else null!==o?(rJ(n,o.cachePool),rq(n,o),aC(n),n.memoizedState=null):(null!==e&&rJ(n,null),rK(),aC(n));return aW(e,n,l,t),n.child}function aX(e,n,t,r){var l=rZ();return l=null===l?null:{parent:rR._currentValue,pool:l},n.memoizedState={baseLanes:t,cachePool:l},null!==e&&rJ(n,null),rK(),aE(n),null!==e&&od(e,n,r,!0),null}function aG(e,n){var t=n.ref;if(null===t)null!==e&&null!==e.ref&&(n.flags|=2097664);else{if("function"!=typeof t&&"object"!=typeof t)throw Error(s(284));(null===e||e.ref!==t)&&(n.flags|=2097664)}}function aZ(e,n,t,r,l){return(om(n),t=ll(e,n,t,r,void 0,l),r=lu(),null===e||a$)?(rm&&r&&rc(n),n.flags|=1,aW(e,n,t,l),n.child):(ls(e,n,l),ot(e,n,l))}function aJ(e,n,t,r,l,a){return(om(n),n.updateQueue=null,t=lo(n,r,t,l),la(e),r=lu(),null===e||a$)?(rm&&r&&rc(n),n.flags|=1,aW(e,n,t,a),n.child):(ls(e,n,a),ot(e,n,a))}function a0(e,n,t,r,l){if(om(n),null===n.stateNode){var a=t8,o=t.contextType;"object"==typeof o&&null!==o&&(a=oh(o)),a=new t(r,a),n.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,a.updater=aT,n.stateNode=a,a._reactInternals=n,(a=n.stateNode).props=r,a.state=n.memoizedState,a.refs={},ob(n),o=t.contextType,a.context="object"==typeof o&&null!==o?oh(o):t8,a.state=n.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(aL(n,t,o,r),a.state=n.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(o=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),o!==a.state&&aT.enqueueReplaceState(a,a.state,null),oP(n,r,a,l),oz(),a.state=n.memoizedState),"function"==typeof a.componentDidMount&&(n.flags|=4194308),r=!0}else if(null===e){a=n.stateNode;var i=n.memoizedProps,u=aD(t,i);a.props=u;var s=a.context,c=t.contextType;o=t8,"object"==typeof c&&null!==c&&(o=oh(c));var f=t.getDerivedStateFromProps;c="function"==typeof f||"function"==typeof a.getSnapshotBeforeUpdate,i=n.pendingProps!==i,c||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(i||s!==o)&&aF(n,a,r,o),ov=!1;var d=n.memoizedState;a.state=d,oP(n,r,a,l),oz(),s=n.memoizedState,i||d!==s||ov?("function"==typeof f&&(aL(n,t,f,r),s=n.memoizedState),(u=ov||a_(n,t,u,r,d,s,o))?(c||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(n.flags|=4194308)):("function"==typeof a.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=s),a.props=r,a.state=s,a.context=o,r=u):("function"==typeof a.componentDidMount&&(n.flags|=4194308),r=!1)}else{a=n.stateNode,ok(e,n),c=aD(t,o=n.memoizedProps),a.props=c,f=n.pendingProps,d=a.context,s=t.contextType,u=t8,"object"==typeof s&&null!==s&&(u=oh(s)),(s="function"==typeof(i=t.getDerivedStateFromProps)||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(o!==f||d!==u)&&aF(n,a,r,u),ov=!1,d=n.memoizedState,a.state=d,oP(n,r,a,l),oz();var p=n.memoizedState;o!==f||d!==p||ov||null!==e&&null!==e.dependencies&&op(e.dependencies)?("function"==typeof i&&(aL(n,t,i,r),p=n.memoizedState),(c=ov||a_(n,t,c,r,d,p,u)||null!==e&&null!==e.dependencies&&op(e.dependencies))?(s||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,u),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,u)),"function"==typeof a.componentDidUpdate&&(n.flags|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!=typeof a.componentDidUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=p),a.props=r,a.state=p,a.context=u,r=c):("function"!=typeof a.componentDidUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return a=r,aG(e,n),r=0!=(128&n.flags),a||r?(a=n.stateNode,t=r&&"function"!=typeof t.getDerivedStateFromError?null:a.render(),n.flags|=1,null!==e&&r?(n.child=ab(n,e.child,null,l),n.child=ab(n,null,t,l)):aW(e,n,t,l),n.memoizedState=a.state,e=n.child):e=ot(e,n,l),e}function a1(e,n,t,r){return rS(),n.flags|=256,aW(e,n,t,r),n.child}var a2={dehydrated:null,treeContext:null,retryLane:0};function a4(e){return{baseLanes:e,cachePool:r0()}}function a3(e,n,t){return e=null!==e?e.childLanes&~t:0,n&&(e|=ij),e}function a6(e,n,t){var r,l=n.pendingProps,a=!1,o=0!=(128&n.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&0!=(2&aP.current)),r&&(a=!0,n.flags&=-129),r=0!=(32&n.flags),n.flags&=-33,null===e){if(rm){if(a?ax(n):aC(n),rm){var i,u=rp;if(i=u){t:{for(i=u,u=rg;8!==i.nodeType;)if(!u||null===(i=sd(i.nextSibling))){u=null;break t}u=i}null!==u?(n.memoizedState={dehydrated:u,treeContext:null!==ra?{id:ro,overflow:ri}:null,retryLane:0x20000000},(i=is(18,null,null,0)).stateNode=u,i.return=n,n.child=i,rd=n,rp=null,i=!0):i=!1}i||rv(n)}if(null!==(u=n.memoizedState)&&null!==(u=u.dehydrated))return sf(u)?n.lanes=16:n.lanes=0x20000000,null;az(n)}return(u=l.children,l=l.fallback,a)?(aC(n),u=a5({mode:"hidden",children:u},a=n.mode),l=ih(l,a,t,null),u.return=n,l.return=n,u.sibling=l,n.child=u,(a=n.child).memoizedState=a4(t),a.childLanes=a3(e,r,t),n.memoizedState=a2,l):(ax(n),a8(n,u))}if(null!==(i=e.memoizedState)&&null!==(u=i.dehydrated)){if(o)256&n.flags?(ax(n),n.flags&=-257,n=a9(e,n,t)):null!==n.memoizedState?(aC(n),n.child=e.child,n.flags|=128,n=null):(aC(n),a=l.fallback,u=n.mode,l=a5({mode:"visible",children:l.children},u),a=ih(a,u,t,null),a.flags|=2,l.return=n,a.return=n,l.sibling=a,n.child=l,ab(n,e.child,null,t),(l=n.child).memoizedState=a4(t),l.childLanes=a3(e,r,t),n.memoizedState=a2,n=a);else if(ax(n),sf(u)){if(r=u.nextSibling&&u.nextSibling.dataset)var c=r.dgst;r=c,(l=Error(s(419))).stack="",l.digest=r,rx({value:l,source:null,stack:null}),n=a9(e,n,t)}else if(a$||od(e,n,t,!1),r=0!=(t&e.childLanes),a$||r){if(null!==(r=iN)){if(0!=(42&(l=t&-t)))l=1;else switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:l=64;break;case 0x10000000:l=0x8000000;break;default:l=0}if(0!==(l=0!=(l&(r.suspendedLanes|t))?0:l)&&l!==i.retryLane)throw i.retryLane=l,t4(e,l),i6(r,e,l),aQ}"$?"===u.data||uo(),n=a9(e,n,t)}else"$?"===u.data?(n.flags|=192,n.child=e.child,n=null):(e=i.treeContext,rp=sd(u.nextSibling),rd=n,rm=!0,rh=null,rg=!1,null!==e&&(rr[rl++]=ro,rr[rl++]=ri,rr[rl++]=ra,ro=e.id,ri=e.overflow,ra=n),n=a8(n,l.children),n.flags|=4096);return n}return a?(aC(n),a=l.fallback,u=n.mode,c=(i=e.child).sibling,(l=id(i,{mode:"hidden",children:l.children})).subtreeFlags=0x1e00000&i.subtreeFlags,null!==c?a=id(c,a):(a=ih(a,u,t,null),a.flags|=2),a.return=n,l.return=n,l.sibling=a,n.child=l,l=a,a=n.child,null===(u=e.child.memoizedState)?u=a4(t):(null!==(i=u.cachePool)?(c=rR._currentValue,i=i.parent!==c?{parent:c,pool:c}:i):i=r0(),u={baseLanes:u.baseLanes|t,cachePool:i}),a.memoizedState=u,a.childLanes=a3(e,r,t),n.memoizedState=a2,l):(ax(n),e=(t=e.child).sibling,(t=id(t,{mode:"visible",children:l.children})).return=n,t.sibling=null,null!==e&&(null===(r=n.deletions)?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t,n.memoizedState=null,t)}function a8(e,n){return(n=a5({mode:"visible",children:n},e.mode)).return=e,e.child=n}function a5(e,n){return ig(e,n,0,null)}function a9(e,n,t){return ab(n,e.child,null,t),e=a8(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function a7(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),oc(e.return,n,t)}function oe(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function on(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(aW(e,n,r.children,t),0!=(2&(r=aP.current)))r=1&r|2,n.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&a7(e,t,n);else if(19===e.tag)a7(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}switch(K(aP,r),l){case"forwards":for(l=null,t=n.child;null!==t;)null!==(e=t.alternate)&&null===aN(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),oe(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===aN(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}oe(n,!0,t,null,a);break;case"together":oe(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ot(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),iI|=n.lanes,0==(t&n.childLanes)&&(null===e||(od(e,n,t,!1),0==(t&n.childLanes))))return null;if(null!==e&&n.child!==e.child)throw Error(s(153));if(null!==n.child){for(t=id(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=id(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function or(e,n){return 0!=(e.lanes&n)||!!(null!==(e=e.dependencies)&&op(e))}function ol(e,n,t){if(null!==e){if(e.memoizedProps!==n.pendingProps)a$=!0;else{if(!or(e,t)&&0==(128&n.flags))return a$=!1,function(e,n,t){switch(n.tag){case 3:J(n,n.stateNode.containerInfo),ou(n,rR,e.memoizedState.cache),rS();break;case 27:case 5:en(n);break;case 4:J(n,n.stateNode.containerInfo);break;case 10:ou(n,n.type,n.memoizedProps.value);break;case 13:var r=n.memoizedState;if(null!==r){if(null!==r.dehydrated)return ax(n),n.flags|=128,null;if(0!=(t&n.child.childLanes))return a6(e,n,t);return ax(n),null!==(e=ot(e,n,t))?e.sibling:null}ax(n);break;case 19:var l=0!=(128&e.flags);if((r=0!=(t&n.childLanes))||(od(e,n,t,!1),r=0!=(t&n.childLanes)),l){if(r)return on(e,n,t);n.flags|=128}if(null!==(l=n.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),K(aP,aP.current),!r)return null;break;case 22:case 23:return n.lanes=0,aY(e,n,t);case 24:ou(n,rR,e.memoizedState.cache)}return ot(e,n,t)}(e,n,t);a$=0!=(131072&e.flags)}}else a$=!1,rm&&0!=(1048576&n.flags)&&rs(n,rt,n.index);switch(n.lanes=0,n.tag){case 16:e:{e=n.pendingProps;var r=n.elementType,l=r._init;if(r=l(r._payload),n.type=r,"function"==typeof r)ic(r)?(e=aD(r,e),n.tag=1,n=a0(null,n,r,e,t)):(n.tag=0,n=aZ(null,n,r,e,t));else{if(null!=r){if((l=r.$$typeof)===k){n.tag=11,n=aH(null,n,r,e,t);break e}if(l===x){n.tag=14,n=aq(null,n,r,e,t);break e}}throw Error(s(306,n=function e(n){if(null==n)return null;if("function"==typeof n)return n.$$typeof===_?null:n.displayName||n.name||null;if("string"==typeof n)return n;switch(n){case m:return"Fragment";case p:return"Portal";case g:return"Profiler";case h:return"StrictMode";case w:return"Suspense";case S:return"SuspenseList"}if("object"==typeof n)switch(n.$$typeof){case b:return(n.displayName||"Context")+".Provider";case v:return(n._context.displayName||"Context")+".Consumer";case k:var t=n.render;return(n=n.displayName)||(n=""!==(n=t.displayName||t.name||"")?"ForwardRef("+n+")":"ForwardRef"),n;case x:return null!==(t=n.displayName||null)?t:e(n.type)||"Memo";case E:t=n._payload,n=n._init;try{return e(n(t))}catch(e){}}return null}(r)||r,""))}}return n;case 0:return aZ(e,n,n.type,n.pendingProps,t);case 1:return l=aD(r=n.type,n.pendingProps),a0(e,n,r,l,t);case 3:e:{if(J(n,n.stateNode.containerInfo),null===e)throw Error(s(387));var a=n.pendingProps;r=(l=n.memoizedState).element,ok(e,n),oP(n,a,null,t);var o=n.memoizedState;if(ou(n,rR,a=o.cache),a!==l.cache&&of(n,[rR],t,!0),oz(),a=o.element,l.isDehydrated){if(l={element:a,isDehydrated:!1,cache:o.cache},n.updateQueue.baseState=l,n.memoizedState=l,256&n.flags){n=a1(e,n,a,t);break e}if(a!==r){rx(r=t9(Error(s(424)),n)),n=a1(e,n,a,t);break e}for(rp=sd(n.stateNode.containerInfo.firstChild),rd=n,rm=!0,rh=null,rg=!0,t=ak(n,null,a,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling}else{if(rS(),a===r){n=ot(e,n,t);break e}aW(e,n,a,t)}n=n.child}return n;case 26:return aG(e,n),null===e?(t=sw(n.type,null,n.pendingProps,null))?n.memoizedState=t:rm||(t=n.type,e=n.pendingProps,(r=u7(G.current).createElement(t))[eR]=n,r[eI]=e,u8(r,t,e),eX(r),n.stateNode=r):n.memoizedState=sw(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return en(n),null===e&&rm&&(r=n.stateNode=sm(n.type,n.pendingProps,G.current),rd=n,rg=!0,rp=sd(r.firstChild)),r=n.pendingProps.children,null!==e||rm?aW(e,n,r,t):n.child=ab(n,null,r,t),aG(e,n),n.child;case 5:return null===e&&rm&&((l=r=rp)&&(null!==(r=function(e,n,t,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[e$])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(l=e.getAttribute("rel"))&&e.hasAttribute("data-precedence")||l!==t.rel||e.getAttribute("href")!==(null==t.href?null:t.href)||e.getAttribute("crossorigin")!==(null==t.crossOrigin?null:t.crossOrigin)||e.getAttribute("title")!==(null==t.title?null:t.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((l=e.getAttribute("src"))!==(null==t.src?null:t.src)||e.getAttribute("type")!==(null==t.type?null:t.type)||e.getAttribute("crossorigin")!==(null==t.crossOrigin?null:t.crossOrigin))&&l&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==n||"hidden"!==e.type)return e;var l=null==t.name?null:""+t.name;if("hidden"===t.type&&e.getAttribute("name")===l)return e}if(null===(e=sd(e.nextSibling)))break}return null}(r,n.type,n.pendingProps,rg))?(n.stateNode=r,rd=n,rp=sd(r.firstChild),rg=!1,l=!0):l=!1),l||rv(n)),en(n),l=n.type,a=n.pendingProps,o=null!==e?e.memoizedProps:null,r=a.children,st(l,a)?r=null:null!==o&&st(l,o)&&(n.flags|=32),null!==n.memoizedState&&(l=ll(e,n,li,null,null,t),sj._currentValue=l),aG(e,n),aW(e,n,r,t),n.child;case 6:return null===e&&rm&&((e=t=rp)&&(null!==(t=function(e,n,t){if(""===n)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t||null===(e=sd(e.nextSibling)))return null;return e}(t,n.pendingProps,rg))?(n.stateNode=t,rd=n,rp=null,e=!0):e=!1),e||rv(n)),null;case 13:return a6(e,n,t);case 4:return J(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=ab(n,null,r,t):aW(e,n,r,t),n.child;case 11:return aH(e,n,n.type,n.pendingProps,t);case 7:return aW(e,n,n.pendingProps,t),n.child;case 8:case 12:return aW(e,n,n.pendingProps.children,t),n.child;case 10:return r=n.pendingProps,ou(n,n.type,r.value),aW(e,n,r.children,t),n.child;case 9:return l=n.type._context,r=n.pendingProps.children,om(n),r=r(l=oh(l)),n.flags|=1,aW(e,n,r,t),n.child;case 14:return aq(e,n,n.type,n.pendingProps,t);case 15:return aK(e,n,n.type,n.pendingProps,t);case 19:return on(e,n,t);case 22:return aY(e,n,t);case 24:return om(n),r=oh(rR),null===e?(null===(l=rZ())&&(l=iN,a=rI(),l.pooledCache=a,a.refCount++,null!==a&&(l.pooledCacheLanes|=t),l=a),n.memoizedState={parent:r,cache:l},ob(n),ou(n,rR,l)):(0!=(e.lanes&t)&&(ok(e,n),oP(n,null,null,t),oz()),l=e.memoizedState,a=n.memoizedState,l.parent!==r?(l={parent:r,cache:r},n.memoizedState=l,0===n.lanes&&(n.memoizedState=n.updateQueue.baseState=l),ou(n,rR,r)):(ou(n,rR,r=a.cache),r!==l.cache&&of(n,[rR],t,!0))),aW(e,n,n.pendingProps.children,t),n.child;case 29:throw n.pendingProps}throw Error(s(156,n.tag))}var oa=H(null),oo=null,oi=null;function ou(e,n,t){K(oa,n._currentValue),n._currentValue=t}function os(e){e._currentValue=oa.current,q(oa)}function oc(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function of(e,n,t,r){var l=e.child;for(null!==l&&(l.return=e);null!==l;){var a=l.dependencies;if(null!==a){var o=l.child;a=a.firstContext;e:for(;null!==a;){var i=a;a=l;for(var u=0;u title"))),u8(a,r,t),a[eR]=e,eX(a),r=a;break e;case"link":var o=sF("link","href",l).get(r+(t.href||""));if(o){for(var i=0;i<\/script>",e=e.removeChild(e.firstChild);break;case"select":e="string"==typeof r.is?l.createElement("select",{is:r.is}):l.createElement("select"),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e="string"==typeof r.is?l.createElement(t,{is:r.is}):l.createElement(t)}}e[eR]=n,e[eI]=r;e:for(l=n.child;null!==l;){if(5===l.tag||6===l.tag)e.appendChild(l.stateNode);else if(4!==l.tag&&27!==l.tag&&null!==l.child){l.child.return=l,l=l.child;continue}if(l===n)break;for(;null===l.sibling;){if(null===l.return||l.return===n)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}switch(n.stateNode=e,u8(e,t,r),t){case"button":case"input":case"select":case"textarea":e=!!r.autoFocus;break;case"img":e=!0;break;default:e=!1}e&&ib(n)}}return ix(n),n.flags&=-0x1000001,null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&ib(n);else{if("string"!=typeof r&&null===n.stateNode)throw Error(s(166));if(e=G.current,rw(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(l=rd))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eR]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||u2(e.nodeValue,t)))||rv(n)}else(e=u7(e).createTextNode(r))[eR]=n,n.stateNode=e}return ix(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rw(n),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(s(318));if(!(l=null!==(l=n.memoizedState)?l.dehydrated:null))throw Error(s(317));l[eR]=n}else rS(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;ix(n),l=!1}else null!==rh&&(i5(rh),rh=null),l=!0;if(!l){if(256&n.flags)return az(n),n;return az(n),null}}if(az(n),0!=(128&n.flags))return n.lanes=t,n;if(t=null!==r,e=null!==e&&null!==e.memoizedState,t){r=n.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool);var a=null;null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)}return t!==e&&t&&(n.child.flags|=8192),iw(n,n.updateQueue),ix(n),null;case 4:return ee(),null===e&&uH(n.stateNode.containerInfo),ix(n),null;case 10:return os(n.type),ix(n),null;case 19:if(q(aP),null===(l=n.memoizedState))return ix(n),null;if(r=0!=(128&n.flags),null===(a=l.rendering)){if(r)iS(l,!1);else{if(0!==iR||null!==e&&0!=(128&e.flags))for(e=n.child;null!==e;){if(null!==(a=aN(e))){for(n.flags|=128,iS(l,!1),e=a.updateQueue,n.updateQueue=e,iw(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)ip(t,e),t=t.sibling;return K(aP,1&aP.current|2),n.child}e=e.sibling}null!==l.tail&&eu()>iq&&(n.flags|=128,r=!0,iS(l,!1),n.lanes=4194304)}}else{if(!r){if(null!==(e=aN(a))){if(n.flags|=128,r=!0,e=e.updateQueue,n.updateQueue=e,iw(n,e),iS(l,!0),null===l.tail&&"hidden"===l.tailMode&&!a.alternate&&!rm)return ix(n),null}else 2*eu()-l.renderingStartTime>iq&&0x20000000!==t&&(n.flags|=128,r=!0,iS(l,!1),n.lanes=4194304)}l.isBackwards?(a.sibling=n.child,n.child=a):(null!==(e=l.last)?e.sibling=a:n.child=a,l.last=a)}if(null!==l.tail)return n=l.tail,l.rendering=n,l.tail=n.sibling,l.renderingStartTime=eu(),n.sibling=null,e=aP.current,K(aP,r?1&e|2:1&e),n;return ix(n),null;case 22:case 23:return az(n),rY(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?0!=(0x20000000&t)&&0==(128&n.flags)&&(ix(n),6&n.subtreeFlags&&(n.flags|=8192)):ix(n),null!==(t=n.updateQueue)&&iw(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&q(rG),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),os(rR),ix(n),null;case 25:return null}throw Error(s(156,n.tag))}(n.alternate,n,iA);if(null!==t){iL=t;return}if(null!==(n=n.sibling)){iL=n;return}iL=n=e}while(null!==n);0===iR&&(iR=5)}function ud(e,n){do{var t=function(e,n){switch(rf(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return os(rR),ee(),0!=(65536&(e=n.flags))&&0==(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return et(n),null;case 13:if(az(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(s(340));rS()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return q(aP),null;case 4:return ee(),null;case 10:return os(n.type),null;case 22:case 23:return az(n),rY(),null!==e&&q(rG),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return os(rR),null;default:return null}}(e.alternate,e);if(null!==t){t.flags&=32767,iL=t;return}if(null!==(t=e.return)&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!n&&null!==(e=e.sibling)){iL=e;return}iL=e=t}while(null!==e);iR=6,iL=null}function up(e,n,t,r,l,a,o,i,u,c,f){var d=F.T,p=B.p;try{B.p=2,F.T=null,function(e,n,t,r,l,a,o,i){do uh();while(null!==iG);if(0!=(6&iP))throw Error(s(327));var u,c=e.finishedWork;if(r=e.finishedLanes,null!==c){if(e.finishedWork=null,e.finishedLanes=0,c===e.current)throw Error(s(177));e.callbackNode=null,e.callbackPriority=0,e.cancelPendingCommit=null;var f=c.lanes|c.childLanes;if(function(e,n,t,r,l,a){var o=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var i=e.entanglements,u=e.expirationTimes,s=e.hiddenUpdates;for(t=o&~t;0r&&(l=r,r=a,a=l),l=tP(n,a);var o=tP(n,r);l&&o&&(1!==t.rangeCount||t.anchorNode!==l.node||t.anchorOffset!==l.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&((e=e.createRange()).setStart(l.node,l.offset),t.removeAllRanges(),a>r?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)1===t.nodeType&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;nt?32:t,F.T=null,null===iG)var a=!1;else{t=i0,i0=null;var o=iG,i=iZ;if(iG=null,iZ=0,0!=(6&iP))throw Error(s(331));var u=iP;if(iP|=4,io(o.current),o9(o,o.current,i,t),iP=u,uT(0,!1),ev&&"function"==typeof ev.onPostCommitFiberRoot)try{ev.onPostCommitFiberRoot(ey,o)}catch(e){}a=!0}return a}finally{B.p=l,F.T=r,um(e,n)}}return!1}function ug(e,n,t){n=t9(t,n),n=aV(e.stateNode,n,2),null!==(e=oS(e,n,2))&&(e_(e,2),uL(e))}function uy(e,n,t){if(3===e.tag)ug(e,e,t);else for(;null!==n;){if(3===n.tag){ug(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===iY||!iY.has(r))){e=t9(t,e),null!==(r=oS(n,t=aj(2),2))&&(aB(t,r,n,e),e_(r,2),uL(r));break}}n=n.return}}function uv(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new iz;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(iM=!0,l.add(t),e=ub.bind(null,e,n,t),n.then(e,e))}function ub(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,iN===e&&(iT&t)===t&&(4===iR||3===iR&&(0x3c00000&iT)===iT&&300>eu()-iH?0==(2&iP)&&ut(e,0):iV|=t,iB===iT&&(iB=0)),uL(e)}function uk(e,n){0===n&&(n=eL()),null!==(e=t4(e,n))&&(e_(e,n),uL(e))}function uw(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),uk(e,t)}function uS(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}null!==r&&r.delete(n),uk(e,t)}var ux=null,uE=null,uC=!1,uz=!1,uP=!1,uN=0;function uL(e){var n;e!==uE&&null===e.next&&(null===uE?ux=uE=e:uE=uE.next=e),uz=!0,uC||(uC=!0,n=u_,si(function(){0!=(6&iP)?el(ec,n):n()}))}function uT(e,n){if(!uP&&uz){uP=!0;do for(var t=!1,r=ux;null!==r;){if(!n){if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,i=r.pingedLanes;a=0xc000055&(a=(1<<31-ek(42|e)+1)-1&(l&~(o&~i)))?0xc000055&a|1:a?2|a:0}0!==a&&(t=!0,uO(r,a))}else a=iT,0==(3&(a=ez(r,r===iN?a:0)))||eP(r,a)||(t=!0,uO(r,a))}r=r.next}while(t);uP=!1}}function u_(){uz=uC=!1;var e,n=0;0!==uN&&(((e=window.event)&&"popstate"===e.type?e===sr||(sr=e,0):(sr=null,1))||(n=uN),uN=0);for(var t=eu(),r=null,l=ux;null!==l;){var a=l.next,o=uF(l,t);0===o?(l.next=null,null===r?ux=a:r.next=a,null===a&&(uE=r)):(r=l,(0!==n||0!=(3&o))&&(uz=!0)),l=a}uT(n,!1)}function uF(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function sO(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var sM=null;function sA(){}function sR(){if(this.count--,0===this.count){if(this.stylesheets)sU(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var sI=null;function sU(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,sI=new Map,n.forEach(sV,e),sI=null,sR.call(e))}function sV(e,n){if(!(4&n.state.loading)){var t=sI.get(e);if(t)var r=t.get(null);else{t=new Map,sI.set(e,t);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={id:o,loaded:!1,exports:{}},i=!0;try{e[o].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.loaded=!0,a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var l=1/0,i=0;i=a)&&Object.keys(r.O).every(e=>r.O[e](o[d]))?o.splice(d--,1):(u=!1,a{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var l=2&n&&o;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/chunks/"+e+"."+({3993:"84dc2c07c5289739",4840:"58ad85f7ae0b4d74"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o]){e[o].push(n);return}if(void 0!==a)for(var l,u,d=document.getElementsByTagName("script"),c=0;c{l.onerror=l.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),u&&document.head.appendChild(l)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={8068:0,3752:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n){if(n)o.push(n[2]);else if(/^(3752|8068)$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),l=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,n[1](l)}},"chunk-"+t,t)}}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,l,u]=o,d=0;if(i.some(t=>0!==e[t])){for(n in l)r.o(l,n)&&(r.m[n]=l[n]);if(u)var c=u(r)}for(t&&t(o);d:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem * var(--tw-space-x-reverse));margin-left:calc(.375rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-border\/50{border-color:hsl(var(--border)/.5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive)/.5)}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/40{background-color:hsl(var(--muted)/.4)}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-primary\/20{background-color:hsl(var(--primary)/.2)}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[3rem\]{font-size:3rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-muted{color:hsl(var(--muted))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity))}.text-violet-600{--tw-text-opacity:1;color:rgb(124 58 237/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.text-balance{text-wrap:balance}.\[appearance\:textfield\]{appearance:textfield}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.even\:border-l:nth-child(2n){border-left-width:1px}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent)/.5)}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-emerald-800:hover{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-orange-800:hover{--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-rose-800:hover{--tw-bg-opacity:1;background-color:rgb(159 18 57/var(--tw-bg-opacity))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-purple-300:hover{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end],.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x)}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[active\=true\]\:bg-muted\/50[data-active=true]{background-color:hsl(var(--muted)/.5)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.dark\:-rotate-90:is(.dark *){--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-0:is(.dark *){--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-0:is(.dark *){--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.dark\:hover\:bg-slate-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:max-w-sm{max-width:24rem}.sm\:flex-initial{flex:0 1 auto}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-start{align-items:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:border-l{border-left-width:1px}.sm\:border-t-0{border-top-width:0}.sm\:p-20{padding:5rem}.sm\:p-6{padding:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:ml-auto{margin-left:auto}.md\:mr-8{margin-right:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:size-12{width:3rem;height:3rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-full{max-width:100%}.md\:max-w-lg{max-width:32rem}.md\:max-w-md{max-width:28rem}.md\:basis-1\/2{flex-basis:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-\[180px_1fr\]{grid-template-columns:180px 1fr}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-2{gap:.5rem}.md\:gap-5{gap:1.25rem}.md\:gap-8{gap:2rem}.md\:p-10{padding:2.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:size-48{width:12rem;height:12rem}.lg\:size-6{width:1.5rem;height:1.5rem}.lg\:h-10{height:2.5rem}.lg\:min-h-\[600px\]{min-height:600px}.lg\:max-w-full{max-width:100%}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-\[250px_1fr\]{grid-template-columns:250px 1fr}.lg\:items-center{align-items:center}.lg\:gap-4{gap:1rem}.lg\:gap-6{gap:1.5rem}.lg\:gap-y-0{row-gap:0}.lg\:space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.lg\:py-12{padding-top:3rem;padding-bottom:3rem}.lg\:text-\[4rem\]{font-size:4rem}}@media (min-width:1280px){.xl\:size-14{width:3.5rem;height:3.5rem}.xl\:size-6{width:1.5rem;height:1.5rem}.xl\:min-h-\[800px\]{min-height:800px}.xl\:w-\[800px\]{width:800px}.xl\:max-w-xl{max-width:36rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-y-12{row-gap:3rem}.xl\:p-4{padding:1rem}.xl\:text-2xl{font-size:1.5rem;line-height:2rem}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1536px){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button,.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border)/.5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}@font-face{font-family:euclid;src:url(/_next/static/media/72399823edb708a6-s.p.woff2) format("woff2");font-display:swap;font-weight:300;font-style:normal}@font-face{font-family:euclid;src:url(/_next/static/media/a41b42e1a9703195-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:euclid;src:url(/_next/static/media/243b6dfb2e48e7ed-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:euclid;src:url(/_next/static/media/70a526c127b6fc39-s.p.woff2) format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:euclid;src:url(/_next/static/media/0aa2ebf4cf06f243-s.p.woff2) format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:euclid;src:url(/_next/static/media/cf37f781bdc22339-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:euclid Fallback;src:local("Arial");ascent-override:93.47%;descent-override:25.05%;line-gap-override:0.00%;size-adjust:106.98%}.__className_9dae3d{font-family:euclid,euclid Fallback} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/0aa2ebf4cf06f243-s.p.woff2 b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/0aa2ebf4cf06f243-s.p.woff2 new file mode 100644 index 0000000..971fa63 Binary files /dev/null and b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/0aa2ebf4cf06f243-s.p.woff2 differ diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/243b6dfb2e48e7ed-s.p.woff2 b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/243b6dfb2e48e7ed-s.p.woff2 new file mode 100644 index 0000000..9476596 Binary files /dev/null and b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/243b6dfb2e48e7ed-s.p.woff2 differ diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/70a526c127b6fc39-s.p.woff2 b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/70a526c127b6fc39-s.p.woff2 new file mode 100644 index 0000000..07864f8 Binary files /dev/null and b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/70a526c127b6fc39-s.p.woff2 differ diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/72399823edb708a6-s.p.woff2 b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/72399823edb708a6-s.p.woff2 new file mode 100644 index 0000000..728c987 Binary files /dev/null and b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/72399823edb708a6-s.p.woff2 differ diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/a41b42e1a9703195-s.p.woff2 b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/a41b42e1a9703195-s.p.woff2 new file mode 100644 index 0000000..82b6413 Binary files /dev/null and b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/a41b42e1a9703195-s.p.woff2 differ diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/cf37f781bdc22339-s.p.woff2 b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/cf37f781bdc22339-s.p.woff2 new file mode 100644 index 0000000..dd02b4a Binary files /dev/null and b/ipk-source/sdxpinn-quecmanager-beta/root/www/_next/static/media/cf37f781bdc22339-s.p.woff2 differ diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/at_command.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/at_command.sh deleted file mode 100755 index c0355a0..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/at_command.sh +++ /dev/null @@ -1,180 +0,0 @@ -#!/bin/sh - -# Set content-type for JSON response -echo "Content-type: application/json" -echo "" - -# Define file paths and configuration -QUEUE_FILE="/tmp/at_pipe.txt" -LOG_FILE="/var/log/at_commands.log" -LOCK_KEYWORD="AT_COMMAND_LOCK" -CELL_SCAN_KEYWORD="CELL_SCAN" -MAX_WAIT=6 # Maximum seconds to wait for lock -COMMAND_TIMEOUT=4 # Timeout for individual AT commands - -# Function to log messages -log_message() { - echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "${LOG_FILE}" - logger -t at_commands "$1" -} - -# Function to output error in JSON format -output_error() { - printf '{"status":"error","message":"%s","timestamp":"%s"}\n' "$1" "$(date '+%H:%M:%S')" - exit 1 -} - -# Function to wait for high-priority operations -wait_for_high_priority() { - while grep -q "\"command\":\"$CELL_SCAN_KEYWORD\"" "$QUEUE_FILE" || \ - grep -q "\"priority\":\"high\"" "$QUEUE_FILE"; do - log_message "Waiting for high-priority operation to complete" - sleep 1 - done -} - -# Function to clean and add lock with simplified timeout logic -add_clean_lock() { - local TIMESTAMP=$(date +%s) - local WAIT_START=$(date +%s) - - # First, wait for any high-priority operations - wait_for_high_priority - - while true; do - local CURRENT_TIME=$(date +%s) - - # After MAX_WAIT seconds, forcibly remove any existing lock - if [ $((CURRENT_TIME - WAIT_START)) -ge $MAX_WAIT ]; then - sed -i "/${LOCK_KEYWORD}/d" "$QUEUE_FILE" - log_message "Removed existing lock after $MAX_WAIT seconds timeout" - fi - - # Add our lock entry with high priority - printf '{"id":"%s","timestamp":"%s","command":"%s","status":"lock","pid":"%s","start_time":"%s","priority":"high"}\n' \ - "${LOCK_KEYWORD}" \ - "$(date '+%H:%M:%S')" \ - "${LOCK_KEYWORD}" \ - "$$" \ - "$TIMESTAMP" >> "$QUEUE_FILE" - - # Verify our lock was written - if grep -q "\"pid\":\"$$\".*\"start_time\":\"$TIMESTAMP\"" "$QUEUE_FILE"; then - log_message "Lock created by PID $$ at $TIMESTAMP" - trap 'remove_lock; exit' INT TERM EXIT - return 0 - fi - - if [ $((CURRENT_TIME - WAIT_START)) -lt $MAX_WAIT ]; then - sleep 1 - else - log_message "Failed to acquire lock after $MAX_WAIT seconds" - return 1 - fi - done -} - -# Function to remove lock -remove_lock() { - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - log_message "Lock removed by PID $$" -} - -# Function to escape JSON -escape_json() { - printf '%s' "$1" | awk ' - BEGIN { RS="\n"; ORS="\\n" } - { - gsub(/\\/, "\\\\") - gsub(/"/, "\\\"") - gsub(/\r/, "") - gsub(/\t/, "\\t") - gsub(/\f/, "\\f") - gsub(/\b/, "\\b") - print - } - ' | sed 's/\\n$//' -} - -# Simplified AT command execution with basic response validation -execute_at_command() { - local CMD="$1" - local RETRY_COUNT=0 - local MAX_RETRIES=3 - local OUTPUT="" - - while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do - # Execute command with -D parameter to include OK/ERROR responses - OUTPUT=$(timeout $COMMAND_TIMEOUT sms_tool at "$CMD" -D 2>&1) - local EXIT_CODE=$? - - if [ $EXIT_CODE -eq 0 ]; then - # Check if response contains "CME" for execution failure - if echo "$OUTPUT" | grep -q "CME"; then - echo "$OUTPUT" - return 2 # Command execution failed - # Check if response contains OK (simple grep) - elif echo "$OUTPUT" | grep -q "OK"; then - echo "$OUTPUT" - return 0 - else - # Any other response is considered unsupported - echo "$OUTPUT" - return 1 - fi - fi - - RETRY_COUNT=$((RETRY_COUNT + 1)) - [ $RETRY_COUNT -lt $MAX_RETRIES ] && sleep 1 - done - - log_message "Command failed after $MAX_RETRIES attempts: $CMD" - return 1 -} - -# Get command from query string -QUERY_STRING="${QUERY_STRING:-}" -RAW_COMMAND=$(echo "${QUERY_STRING}" | sed 's/^command=//') - -if [ -n "${RAW_COMMAND}" ]; then - # Decode URL-encoded command - AT_COMMAND=$(printf '%b' "${RAW_COMMAND}" | sed -e 's/%\([0-9A-Fa-f][0-9A-Fa-f]\)/\\x\1/g' | xargs -0 echo -e) - - # Set timeout for the entire script - ( sleep 60; kill -TERM $$ 2>/dev/null ) & - TIMEOUT_PID=$! - - if ! add_clean_lock; then - kill $TIMEOUT_PID 2>/dev/null - output_error "Failed to acquire lock for command processing" - fi - - # Execute command and capture result - RESULT=$(execute_at_command "${AT_COMMAND}") - EXIT_CODE=$? - - # Clean up - remove_lock - kill $TIMEOUT_PID 2>/dev/null - - # Escape command and result for JSON - ESCAPED_COMMAND=$(escape_json "${AT_COMMAND}") - ESCAPED_RESULT=$(escape_json "${RESULT}") - - # Return response based on simplified exit codes - if [ $EXIT_CODE -eq 0 ]; then - # Command succeeded with OK response - printf '{"status":"success","command":"%s","response":"%s","timestamp":"%s"}\n' \ - "${ESCAPED_COMMAND}" "${ESCAPED_RESULT}" "$(date '+%H:%M:%S')" - elif [ $EXIT_CODE -eq 2 ]; then - # Command contains CME - execution failed - printf '{"status":"error","command":"%s","message":"Command execution failed","response":"%s","timestamp":"%s"}\n' \ - "${ESCAPED_COMMAND}" "${ESCAPED_RESULT}" "$(date '+%H:%M:%S')" - else - # Any other response is considered unsupported - printf '{"status":"error","command":"%s","message":"Unsupported command","response":"%s","timestamp":"%s"}\n' \ - "${ESCAPED_COMMAND}" "${ESCAPED_RESULT}" "$(date '+%H:%M:%S')" - fi -else - output_error "No command provided" -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/delete-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/delete-profile.sh deleted file mode 100755 index abed318..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/delete-profile.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh - -echo "Content-type: application/json" -echo "" - -# Initialize error flag -has_error=false -error_message="" - -# Function to append to error message -append_error() { - if [ -z "$error_message" ]; then - error_message="$1" - else - error_message="$error_message; $1" - fi - has_error=true -} - -# Remove the entire quecmanager directory -if [ -d "/etc/quecmanager/apn_profile/" ]; then - rm -rf /etc/quecmanager/apn_profile/ - if [ $? -ne 0 ]; then - append_error "Failed to remove quecmanager directory" - fi -else - append_error "quecmanager directory not found" -fi - -# Remove the line from rc.local -if [ -f "/etc/rc.local" ]; then - # Create a temporary file - temp_file=$(mktemp) - - # Remove the apnProfiles.sh line and copy to temp file - sed '/\/etc\/quecmanager\/apnProfiles.sh/d' /etc/rc.local > "$temp_file" - - # Check if sed command was successful - if [ $? -eq 0 ]; then - # Replace original file with modified version - mv "$temp_file" /etc/rc.local - if [ $? -ne 0 ]; then - append_error "Failed to update rc.local" - fi - else - append_error "Failed to modify rc.local" - rm -f "$temp_file" - fi -else - append_error "rc.local file not found" -fi - -# Remove temporary files that might have been created -rm -f /tmp/apn_result.txt -rm -f /tmp/debug.log -rm -f /tmp/inputICCID.txt -rm -f /tmp/outputICCID.txt -rm -f /tmp/inputAPN.txt -rm -f /tmp/outputAPN.txt - -# Return appropriate JSON response -if [ "$has_error" = true ]; then - echo "{\"status\": \"error\", \"message\": \"$error_message\"}" -else - echo "{\"status\": \"success\", \"message\": \"APN profiles and configuration successfully removed\"}" -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/fetch-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/fetch-profile.sh deleted file mode 100755 index 0b79f48..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/fetch-profile.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -echo "Content-type: application/json" -echo "" - -CONFIG_FILE="/etc/quecmanager/apn_profile/apn_config.txt" - -if [ ! -f "$CONFIG_FILE" ]; then - echo "{}" - exit 0 -fi - -# Read the configuration file -iccidProfile1=$(grep "^iccidProfile1=" "$CONFIG_FILE" | cut -d'=' -f2) -apnProfile1=$(grep "^apnProfile1=" "$CONFIG_FILE" | cut -d'=' -f2) -pdpType1=$(grep "^pdpType1=" "$CONFIG_FILE" | cut -d'=' -f2) -iccidProfile2=$(grep "^iccidProfile2=" "$CONFIG_FILE" | cut -d'=' -f2) -apnProfile2=$(grep "^apnProfile2=" "$CONFIG_FILE" | cut -d'=' -f2) -pdpType2=$(grep "^pdpType2=" "$CONFIG_FILE" | cut -d'=' -f2) - -# Build the JSON response -echo "{" - -# Add Profile 1 if it exists -if [ -n "$iccidProfile1" ]; then - echo " \"profile1\": {" - echo " \"iccid\": \"$iccidProfile1\"," - echo " \"apn\": \"$apnProfile1\"," - echo " \"pdpType\": \"$pdpType1\"" - echo " }" - - # Add comma if Profile 2 exists - [ -n "$iccidProfile2" ] && echo " ," -fi - -# Add Profile 2 if it exists -if [ -n "$iccidProfile2" ]; then - echo " \"profile2\": {" - echo " \"iccid\": \"$iccidProfile2\"," - echo " \"apn\": \"$apnProfile2\"," - echo " \"pdpType\": \"$pdpType2\"" - echo " }" -fi - -echo "}" \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/save-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/save-profile.sh deleted file mode 100755 index 687d42b..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/apn-profiles/save-profile.sh +++ /dev/null @@ -1,292 +0,0 @@ -#!/bin/sh - -# Parse POST data (using busybox compatible method) -read -r QUERY_STRING - -# Function to urldecode (busybox compatible version) -urldecode() { - local value="$1" - value="${value//+/ }" - value="${value//%/\\x}" - printf '%b' "$value" -} - -# Extract values from POST data -iccidProfile1=$(echo "$QUERY_STRING" | sed -n 's/.*iccidProfile1=\([^&]*\).*/\1/p' | tr -d "'") -apnProfile1=$(echo "$QUERY_STRING" | sed -n 's/.*apnProfile1=\([^&]*\).*/\1/p' | tr -d "'") -pdpType1=$(echo "$QUERY_STRING" | sed -n 's/.*pdpType1=\([^&]*\).*/\1/p' | tr -d "'") -iccidProfile2=$(echo "$QUERY_STRING" | sed -n 's/.*iccidProfile2=\([^&]*\).*/\1/p' | tr -d "'") -apnProfile2=$(echo "$QUERY_STRING" | sed -n 's/.*apnProfile2=\([^&]*\).*/\1/p' | tr -d "'") -pdpType2=$(echo "$QUERY_STRING" | sed -n 's/.*pdpType2=\([^&]*\).*/\1/p' | tr -d "'") - -# URL decode the values -iccidProfile1=$(urldecode "$iccidProfile1") -apnProfile1=$(urldecode "$apnProfile1") -pdpType1=$(urldecode "$pdpType1") -iccidProfile2=$(urldecode "$iccidProfile2") -apnProfile2=$(urldecode "$apnProfile2") -pdpType2=$(urldecode "$pdpType2") - -echo "Content-type: application/json" -echo "" - -# Validate required first profile -if [ -z "$iccidProfile1" ] || [ -z "$apnProfile1" ] || [ -z "$pdpType1" ]; then - echo '{"status": "error", "message": "Profile 1 is required"}' - exit 1 -fi - -# Create directory with proper permissions -mkdir -p /etc/quecmanager/apn_profile -chmod 755 /etc/quecmanager/apn_profile - -# Create a configuration file to store APN profiles (with proper permissions) -cat > /etc/quecmanager/apn_profile/apn_config.txt <> /etc/quecmanager/apn_profile/apn_config.txt < /etc/quecmanager/apn_profile/apnProfiles.sh <<'EOF' -#!/bin/sh - -# Define file paths -QUEUE_FILE="/tmp/at_pipe.txt" -LOG_FILE="/tmp/apn_profiles.log" -[ ! -f "${QUEUE_FILE}" ] && touch "${QUEUE_FILE}" - -# Enhanced logging function with debug level -log_message() { - local level="$1" - local message="$2" - local timestamp=$(date '+%Y-%m-%d %H:%M:%S') - echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" - logger -t apn_profiles "${level}: ${message}" -} - -# Check for stale entries and clean them -check_and_clean_stale() { - local command_type="$1" - local wait_count=0 - - while [ $wait_count -lt 6 ]; do - if grep -q "\"command\":\"${command_type}\"" "$QUEUE_FILE"; then - log_message "DEBUG" "Waiting for ${command_type} to clear (attempt ${wait_count})" - sleep 1 - wait_count=$((wait_count + 1)) - else - return 0 - fi - done - - log_message "WARN" "Removing stale ${command_type} entry after ${wait_count}s" - sed -i "/\"command\":\"${command_type}\"/d" "$QUEUE_FILE" - return 0 -} - -# Simplified lock handling with debug -handle_lock() { - log_message "DEBUG" "Checking queue file status before lock" - if [ -f "$QUEUE_FILE" ]; then - log_message "DEBUG" "Current queue content: $(cat $QUEUE_FILE)" - else - log_message "DEBUG" "Queue file does not exist, creating it" - touch "$QUEUE_FILE" - fi - - check_and_clean_stale "FETCH_LOCK" - - log_message "DEBUG" "Adding AT_COMMAND entry to queue" - printf '{"command":"AT_COMMAND","pid":"%s","timestamp":"%s"}\n' \ - "$$" \ - "$(date '+%H:%M:%S')" >> "$QUEUE_FILE" - - check_and_clean_stale "AT_COMMAND" -} - -# Execute AT command without timeout dependency -execute_at_command() { - local command="$1" - local result="" - - log_message "DEBUG" "Executing AT command: ${command}" - handle_lock - - # Execute command and capture all output - result=$(sms_tool at "$command" -t 4 2>&1) - local status=$? - - log_message "DEBUG" "Removing our entry from queue" - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - - if [ $status -ne 0 ]; then - log_message "ERROR" "Command failed with status $status: $command" - log_message "ERROR" "Command output: $result" - return 1 - fi - - log_message "DEBUG" "Command successful. Output: $result" - echo "$result" - return 0 -} - -# Get current ICCID with enhanced debug -get_current_iccid() { - local result - local retry_count=0 - local max_retries=3 - - log_message "INFO" "Attempting to get current ICCID" - - while [ $retry_count -lt $max_retries ]; do - log_message "DEBUG" "ICCID attempt ${retry_count}" - result=$(execute_at_command "AT+ICCID") - local cmd_status=$? - - log_message "DEBUG" "AT+ICCID command returned status: ${cmd_status}" - log_message "DEBUG" "AT+ICCID raw output: ${result}" - - if [ $cmd_status -eq 0 ] && echo "$result" | grep -q "+ICCID:"; then - local iccid=$(echo "$result" | grep "+ICCID:" | cut -d' ' -f2 | tr -d '[:space:]') - log_message "INFO" "Retrieved current ICCID: ${iccid}" - echo "${iccid}" - return 0 - else - log_message "WARN" "Attempt ${retry_count} failed to get valid ICCID" - log_message "WARN" "Result: ${result}" - fi - - retry_count=$((retry_count + 1)) - if [ $retry_count -lt $max_retries ]; then - log_message "INFO" "Waiting 2 seconds before retry" - sleep 2 - fi - done - - log_message "ERROR" "Failed to get ICCID after $max_retries attempts" - return 1 -} - -# Set APN with modified error handling - removed strict OK check -set_apn() { - local pdp_type="$1" - local apn="$2" - local result - local retry_count=0 - local max_retries=3 - - if [ -z "$pdp_type" ] || [ -z "$apn" ]; then - log_message "ERROR" "Invalid PDP type or APN" - return 1 - fi - - while [ $retry_count -lt $max_retries ]; do - result=$(execute_at_command "AT+CGDCONT=1,\"$pdp_type\",\"$apn\";+COPS=2;+COPS=0") - if [ $? -eq 0 ]; then - log_message "INFO" "Successfully set APN: $apn with PDP type: $pdp_type" - return 0 - fi - retry_count=$((retry_count + 1)) - [ $retry_count -lt $max_retries ] && sleep 2 - done - - log_message "ERROR" "Failed to set APN: $apn after $max_retries attempts" - return 1 -} - -# Load configuration -if [ -f /etc/quecmanager/apn_profile/apn_config.txt ]; then - . /etc/quecmanager/apn_profile/apn_config.txt - log_message "INFO" "Loaded configuration - Profile1 ICCID: ${iccidProfile1}, Profile2 ICCID: ${iccidProfile2:-none}" -else - log_message "ERROR" "Configuration file not found" - echo "Configuration file not found" > /tmp/apn_result.txt - exit 1 -fi - -# Get current ICCID and trim any whitespace -current_iccid=$(get_current_iccid | tr -d '[:space:]') - -if [ $? -ne 0 ]; then - log_message "ERROR" "Failed to get current ICCID" - echo "Failed to get current ICCID" > /tmp/apn_result.txt - exit 1 -fi - -# Trim any whitespace from profile ICCIDs -iccidProfile1=$(echo "${iccidProfile1}" | tr -d '[:space:]') -[ -n "$iccidProfile2" ] && iccidProfile2=$(echo "${iccidProfile2}" | tr -d '[:space:]') - -# Log the comparison values -log_message "INFO" "Comparing ICCIDs:" -log_message "INFO" "Current ICCID: ${current_iccid}" -log_message "INFO" "Profile1 ICCID: ${iccidProfile1}" -[ -n "$iccidProfile2" ] && log_message "INFO" "Profile2 ICCID: ${iccidProfile2}" - -# Match ICCID and apply corresponding profile -if [ "${current_iccid}" = "${iccidProfile1}" ]; then - log_message "INFO" "Matched with Profile1, applying settings..." - if set_apn "$pdpType1" "$apnProfile1"; then - echo "APN set successfully" > /tmp/apn_result.txt - else - echo "Failed to set APN" > /tmp/apn_result.txt - fi -elif [ -n "$iccidProfile2" ] && [ "${current_iccid}" = "${iccidProfile2}" ]; then - log_message "INFO" "Matched with Profile2, applying settings..." - if set_apn "$pdpType2" "$apnProfile2"; then - echo "APN set successfully" > /tmp/apn_result.txt - else - echo "Failed to set APN" > /tmp/apn_result.txt - fi -else - log_message "WARN" "No matching ICCID profile found" - echo "No matching ICCID profile found" > /tmp/apn_result.txt -fi -EOF - -# Make the script executable -chmod 755 /etc/quecmanager/apn_profile/apnProfiles.sh - -# Add to rc.local if not already present -if ! grep -q "^[^#]*\/etc\/quecmanager\/apn_profile\/apnProfiles.sh" /etc/rc.local; then - sed -i '/^exit 0/i /etc/quecmanager/apn_profile/apnProfiles.sh' /etc/rc.local -fi - -# Run the script immediately -/etc/quecmanager/apn_profile/apnProfiles.sh - -# Check the result -if [ -f /tmp/apn_result.txt ]; then - result=$(cat /tmp/apn_result.txt) - rm -f /tmp/apn_result.txt - case "$result" in - "APN set successfully") - echo '{"status": "success", "message": "APN profiles saved and applied successfully"}' - ;; - "No matching ICCID profile found") - echo '{"status": "warning", "message": "APN profiles saved but no matching ICCID found"}' - ;; - "Configuration file not found") - echo '{"status": "error", "message": "Configuration file not found"}' - ;; - "Failed to get current ICCID") - echo '{"status": "error", "message": "Failed to get current ICCID"}' - ;; - *) - echo '{"status": "error", "message": "APN profiles saved but failed to apply"}' - ;; - esac -else - echo '{"status": "error", "message": "Something went wrong while processing APN profiles"}' -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/delete-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/delete-profile.sh deleted file mode 100755 index d097cae..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/delete-profile.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh - -echo "Content-type: application/json" -echo "" - -# Initialize error flag -has_error=false -error_message="" - -# Function to append to error message -append_error() { - if [ -z "$error_message" ]; then - error_message="$1" - else - error_message="$error_message; $1" - fi - has_error=true -} - -# Remove the entire quecmanager directory -if [ -d "/etc/quecmanager/imei_profile/" ]; then - rm -rf /etc/quecmanager/imei_profile/ - if [ $? -ne 0 ]; then - append_error "Failed to remove quecmanager directory" - fi -else - append_error "quecmanager directory not found" -fi - -# Remove the line from rc.local -if [ -f "/etc/rc.local" ]; then - # Create a temporary file - temp_file=$(mktemp) - - # Remove the imeiProfiles.sh line and copy to temp file - sed '/\/etc\/quecmanager\/imeiProfiles.sh/d' /etc/rc.local > "$temp_file" - - # Check if sed command was successful - if [ $? -eq 0 ]; then - # Replace original file with modified version - mv "$temp_file" /etc/rc.local - if [ $? -ne 0 ]; then - append_error "Failed to update rc.local" - fi - else - append_error "Failed to modify rc.local" - rm -f "$temp_file" - fi -else - append_error "rc.local file not found" -fi - -# Remove temporary files that might have been created -rm -f /tmp/imei_result.txt -rm -f /tmp/debug.log -rm -f /tmp/inputICCID.txt -rm -f /tmp/outputICCID.txt -rm -f /tmp/inputIMEI.txt -rm -f /tmp/outputIMEI.txt - -# Return appropriate JSON response -if [ "$has_error" = true ]; then - echo "{\"status\": \"error\", \"message\": \"$error_message\"}" -else - echo "{\"status\": \"success\", \"message\": \"IMEI profiles and configuration successfully removed\"}" -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/fetch-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/fetch-profile.sh deleted file mode 100755 index 82751b5..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/fetch-profile.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -echo "Content-type: application/json" -echo "" - -CONFIG_FILE="/etc/quecmanager/imei_profile/imei_config.txt" - -if [ ! -f "$CONFIG_FILE" ]; then - echo "{}" - exit 0 -fi - -# Read the configuration file -iccidProfile1=$(grep "^iccidProfile1=" "$CONFIG_FILE" | cut -d'=' -f2) -imeiProfile1=$(grep "^imeiProfile1=" "$CONFIG_FILE" | cut -d'=' -f2) -iccidProfile2=$(grep "^iccidProfile2=" "$CONFIG_FILE" | cut -d'=' -f2) -imeiProfile2=$(grep "^imeiProfile2=" "$CONFIG_FILE" | cut -d'=' -f2) - -# Build the JSON response -echo "{" - -# Add Profile 1 if it exists -if [ -n "$iccidProfile1" ]; then - echo " \"profile1\": {" - echo " \"iccid\": \"$iccidProfile1\"," - echo " \"imei\": \"$imeiProfile1\"" - echo " }" - # Add comma if Profile 2 exists - [ -n "$iccidProfile2" ] && echo " ," -fi - -# Add Profile 2 if it exists -if [ -n "$iccidProfile2" ]; then - echo " \"profile2\": {" - echo " \"iccid\": \"$iccidProfile2\"," - echo " \"imei\": \"$imeiProfile2\"" - echo " }" -fi - -echo "}" \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/save-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/save-profile.sh deleted file mode 100755 index 518f74f..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/imei-profiles/save-profile.sh +++ /dev/null @@ -1,333 +0,0 @@ -#!/bin/sh - -# Parse POST data (using busybox compatible method) -read -r QUERY_STRING - -# Function to urldecode (busybox compatible version) -urldecode() { - local value="$1" - value="${value//+/ }" - value="${value//%/\\x}" - printf '%b' "$value" -} - -# Extract values from POST data -iccidProfile1=$(echo "$QUERY_STRING" | sed -n 's/.*iccidProfile1=\([^&]*\).*/\1/p' | tr -d "'") -imeiProfile1=$(echo "$QUERY_STRING" | sed -n 's/.*imeiProfile1=\([^&]*\).*/\1/p' | tr -d "'") -iccidProfile2=$(echo "$QUERY_STRING" | sed -n 's/.*iccidProfile2=\([^&]*\).*/\1/p' | tr -d "'") -imeiProfile2=$(echo "$QUERY_STRING" | sed -n 's/.*imeiProfile2=\([^&]*\).*/\1/p' | tr -d "'") - -# URL decode the values -iccidProfile1=$(urldecode "$iccidProfile1") -imeiProfile1=$(urldecode "$imeiProfile1") -iccidProfile2=$(urldecode "$iccidProfile2") -imeiProfile2=$(urldecode "$imeiProfile2") - -echo "Content-type: application/json" -echo "" - -# Validate required first profile -if [ -z "$iccidProfile1" ] || [ -z "$imeiProfile1" ]; then - echo '{"status": "error", "message": "Profile 1 is required"}' - exit 1 -fi - -# Create directory with proper permissions -mkdir -p /etc/quecmanager/imei_profile -chmod 755 /etc/quecmanager/imei_profile - -# Create a configuration file to store IMEI profiles -cat > /etc/quecmanager/imei_profile/imei_config.txt <> /etc/quecmanager/imei_profile/imei_config.txt < /etc/quecmanager/imei_profile/imeiProfiles.sh <<'EOF' -#!/bin/sh - -# Define file paths -QUEUE_FILE="/tmp/at_pipe.txt" -LOG_FILE="/tmp/imei_profiles.log" -[ ! -f "${QUEUE_FILE}" ] && touch "${QUEUE_FILE}" - -# Enhanced logging function with debug level -log_message() { - local level="$1" - local message="$2" - local timestamp=$(date '+%Y-%m-%d %H:%M:%S') - echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" - logger -t imei_profiles "${level}: ${message}" -} - -# Check for stale entries and clean them -check_and_clean_stale() { - local command_type="$1" - local wait_count=0 - - while [ $wait_count -lt 6 ]; do - if grep -q "\"command\":\"${command_type}\"" "$QUEUE_FILE"; then - log_message "DEBUG" "Waiting for ${command_type} to clear (attempt ${wait_count})" - sleep 1 - wait_count=$((wait_count + 1)) - else - return 0 - fi - done - - log_message "WARN" "Removing stale ${command_type} entry after ${wait_count}s" - sed -i "/\"command\":\"${command_type}\"/d" "$QUEUE_FILE" - return 0 -} - -# Simplified lock handling with debug -handle_lock() { - log_message "DEBUG" "Checking queue file status before lock" - if [ -f "$QUEUE_FILE" ]; then - log_message "DEBUG" "Current queue content: $(cat $QUEUE_FILE)" - else - log_message "DEBUG" "Queue file does not exist, creating it" - touch "$QUEUE_FILE" - fi - - check_and_clean_stale "FETCH_LOCK" - - log_message "DEBUG" "Adding AT_COMMAND entry to queue" - printf '{"command":"AT_COMMAND","pid":"%s","timestamp":"%s"}\n' \ - "$$" \ - "$(date '+%H:%M:%S')" >> "$QUEUE_FILE" - - check_and_clean_stale "AT_COMMAND" -} - -# Execute AT command without timeout dependency -execute_at_command() { - local command="$1" - local result="" - - log_message "DEBUG" "Executing AT command: ${command}" - handle_lock - - # Execute command and capture all output - result=$(sms_tool at "$command" -t 4 2>&1) - local status=$? - - log_message "DEBUG" "Removing our entry from queue" - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - - if [ $status -ne 0 ]; then - log_message "ERROR" "Command failed with status $status: $command" - log_message "ERROR" "Command output: $result" - return 1 - fi - - log_message "DEBUG" "Command successful. Output: $result" - echo "$result" - return 0 -} - -# Get current ICCID with enhanced debug -get_current_iccid() { - local result - local retry_count=0 - local max_retries=3 - - log_message "INFO" "Attempting to get current ICCID" - - while [ $retry_count -lt $max_retries ]; do - log_message "DEBUG" "ICCID attempt ${retry_count}" - result=$(execute_at_command "AT+ICCID") - local cmd_status=$? - - log_message "DEBUG" "AT+ICCID command returned status: ${cmd_status}" - log_message "DEBUG" "AT+ICCID raw output: ${result}" - - if [ $cmd_status -eq 0 ] && echo "$result" | grep -q "+ICCID:"; then - local iccid=$(echo "$result" | grep "+ICCID:" | cut -d' ' -f2 | tr -d '[:space:]') - log_message "INFO" "Retrieved current ICCID: ${iccid}" - echo "${iccid}" - return 0 - else - log_message "WARN" "Attempt ${retry_count} failed to get valid ICCID" - log_message "WARN" "Result: ${result}" - fi - - retry_count=$((retry_count + 1)) - if [ $retry_count -lt $max_retries ]; then - log_message "INFO" "Waiting 2 seconds before retry" - sleep 2 - fi - done - - log_message "ERROR" "Failed to get ICCID after $max_retries attempts" - return 1 -} - -# Get current IMEI with enhanced debug -get_current_imei() { - local result - local retry_count=0 - local max_retries=3 - - log_message "INFO" "Attempting to get current IMEI" - - while [ $retry_count -lt $max_retries ]; do - log_message "DEBUG" "IMEI attempt ${retry_count}" - result=$(execute_at_command "AT+CGSN") - local cmd_status=$? - - log_message "DEBUG" "AT+CGSN command returned status: ${cmd_status}" - log_message "DEBUG" "AT+CGSN raw output: ${result}" - - if [ $cmd_status -eq 0 ]; then - local imei=$(echo "$result" | grep -v "AT+CGSN" | grep -v "OK" | tr -d '\r\n[:space:]') - if [ -n "$imei" ]; then - log_message "INFO" "Retrieved current IMEI: ${imei}" - echo "${imei}" - return 0 - fi - fi - - log_message "WARN" "Attempt ${retry_count} failed to get valid IMEI" - retry_count=$((retry_count + 1)) - [ $retry_count -lt $max_retries ] && sleep 2 - done - - log_message "ERROR" "Failed to get IMEI after $max_retries attempts" - return 1 -} - -# Set IMEI with enhanced debug -set_imei() { - local imei="$1" - local retry_count=0 - local max_retries=3 - - log_message "INFO" "Attempting to set IMEI: ${imei}" - - while [ $retry_count -lt $max_retries ]; do - log_message "DEBUG" "IMEI set attempt ${retry_count}" - result=$(execute_at_command "AT+EGMR=1,7,\"$imei\";+QPOWD=1") - local cmd_status=$? - - log_message "DEBUG" "AT+EGMR command returned status: ${cmd_status}" - log_message "DEBUG" "AT+EGMR raw output: ${result}" - - if [ $cmd_status -eq 0 ] && echo "$result" | grep -q "OK"; then - log_message "INFO" "Successfully set IMEI: ${imei}" - return 0 - fi - - retry_count=$((retry_count + 1)) - [ $retry_count -lt $max_retries ] && sleep 2 - done - - log_message "ERROR" "Failed to set IMEI after $max_retries attempts" - return 1 -} - -# Load configuration -if [ -f /etc/quecmanager/imei_profile/imei_config.txt ]; then - . /etc/quecmanager/imei_profile/imei_config.txt - log_message "INFO" "Loaded configuration - Profile1 ICCID: ${iccidProfile1}, IMEI: ${imeiProfile1}" - [ -n "$iccidProfile2" ] && log_message "INFO" "Profile2 ICCID: ${iccidProfile2}, IMEI: ${imeiProfile2}" -else - log_message "ERROR" "Configuration file not found" - echo "Configuration file not found" > /tmp/imei_result.txt - exit 1 -fi - -# Get current ICCID and IMEI -current_iccid=$(get_current_iccid) -current_imei=$(get_current_imei) - -if [ $? -ne 0 ]; then - log_message "ERROR" "Failed to get current ICCID or IMEI" - echo "Failed to get current ICCID or IMEI" > /tmp/imei_result.txt - exit 1 -fi - -log_message "INFO" "Current ICCID: ${current_iccid}" -log_message "INFO" "Current IMEI: ${current_imei}" - -# Match ICCID and apply corresponding profile -if [ "${current_iccid}" = "${iccidProfile1}" ]; then - log_message "INFO" "Matched with Profile1" - if [ "${current_imei}" != "${imeiProfile1}" ]; then - log_message "INFO" "IMEI needs updating for Profile1" - if set_imei "${imeiProfile1}"; then - echo "IMEI set successfully" > /tmp/imei_result.txt - else - echo "Failed to set IMEI" > /tmp/imei_result.txt - fi - else - log_message "INFO" "IMEI already matches Profile1" - echo "IMEI already correct" > /tmp/imei_result.txt - fi -elif [ -n "${iccidProfile2}" ] && [ "${current_iccid}" = "${iccidProfile2}" ]; then - log_message "INFO" "Matched with Profile2" - if [ "${current_imei}" != "${imeiProfile2}" ]; then - log_message "INFO" "IMEI needs updating for Profile2" - if set_imei "${imeiProfile2}"; then - echo "IMEI set successfully" > /tmp/imei_result.txt - else - echo "Failed to set IMEI" > /tmp/imei_result.txt - fi - else - log_message "INFO" "IMEI already matches Profile2" - echo "IMEI already correct" > /tmp/imei_result.txt - fi -else - log_message "WARN" "No matching ICCID profile found" - echo "No matching ICCID profile found" > /tmp/imei_result.txt -fi -EOF - -# Make the script executable -chmod 755 /etc/quecmanager/imei_profile/imeiProfiles.sh - -# Add to rc.local if not already present -if ! grep -q "^[^#]*\/etc\/quecmanager\/imei_profile\/imeiProfiles.sh" /etc/rc.local; then - sed -i '/^exit 0/i /etc/quecmanager/imei_profile/imeiProfiles.sh' /etc/rc.local -fi - -# Run the script immediately -/etc/quecmanager/imei_profile/imeiProfiles.sh - -# Check the result -if [ -f /tmp/imei_result.txt ]; then - result=$(cat /tmp/imei_result.txt) - rm -f /tmp/imei_result.txt - - case "$result" in - "IMEI set successfully") - echo '{"status": "success", "message": "IMEI profiles saved and applied successfully"}' - ;; - "IMEI already correct") - echo '{"status": "success", "message": "IMEI profiles saved, no changes needed"}' - ;; - "No matching ICCID profile found") - echo '{"status": "warning", "message": "IMEI profiles saved but no matching ICCID found"}' - ;; - "Configuration file not found") - echo '{"status": "error", "message": "Configuration file not found"}' - ;; - "Failed to get current ICCID or IMEI") - echo '{"status": "error", "message": "Failed to get current ICCID or IMEI"}' - ;; - *) - echo '{"status": "error", "message": "IMEI profiles saved but failed to apply"}' - ;; - esac -else - echo '{"status": "error", "message": "Something went wrong while processing IMEI profiles"}' -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/cell_scan.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/cell_scan.sh deleted file mode 100755 index 2aca582..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/cell_scan.sh +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/sh - -# Set content type to JSON -echo "Content-type: application/json" -echo "" - -# Configuration -QUEUE_FILE="/tmp/at_pipe.txt" -RESULT_FILE="/tmp/qscan_result.json" -WORKER_SCRIPT="/www/cgi-bin/experimental/cell_scanner/cell_scan_worker.sh" -PID_FILE="/tmp/cell_scan.pid" -CELL_SCAN_KEYWORD="CELL_SCAN" - -# Function to log messages -log_message() { - logger -t cell_scan "$1" -} - -# Function to output JSON response -output_json() { - local status="$1" - local message="$2" - log_message "Sending response: status=$status, message=$message" - printf '{"status":"%s","message":"%s"}\n' "$status" "$message" - exit 0 -} - -# Function to check if worker is running -check_worker_running() { - if [ -f "$PID_FILE" ]; then - pid=$(cat "$PID_FILE") - if kill -0 "$pid" 2>/dev/null; then - log_message "Worker process $pid is running" - return 0 - fi - log_message "Removing stale PID file for process $pid" - rm -f "$PID_FILE" - fi - return 1 -} - -# Function to wait for queue to be ready -wait_for_queue() { - local retries=0 - while [ ! -f "$QUEUE_FILE" ] && [ $retries -lt 10 ]; do - touch "$QUEUE_FILE" 2>/dev/null || { - log_message "Waiting for queue file to be available (attempt $retries)" - sleep 1 - retries=$((retries + 1)) - continue - } - chmod 666 "$QUEUE_FILE" 2>/dev/null - log_message "Queue file created and permissions set" - break - done -} - -# Function to add scan entry to queue -add_scan_entry() { - # Wait for queue file to exist - wait_for_queue - - local entry - entry=$(printf '{"command":"%s","id":"%s","pid":"%s","timestamp":"%s","priority":"high","status":"queued"}\n' \ - "$CELL_SCAN_KEYWORD" \ - "cell_scan_$$" \ - "$$" \ - "$(date '+%H:%M:%S')") - - echo "$entry" >> "$QUEUE_FILE" - log_message "Added scan entry to queue: $entry" - - # Verify entry was added - if ! grep -q "\"pid\":\"$$\"" "$QUEUE_FILE"; then - log_message "Failed to verify scan entry in queue" - return 1 - fi - - sync - return 0 -} - -# Ensure worker script is executable -chmod +x "$WORKER_SCRIPT" 2>/dev/null -log_message "Ensured worker script is executable" - -# Main execution -{ - # If scan is running, return running status - if check_worker_running; then - output_json "running" "Cell scan is in progress" - fi - - # Start new scan - rm -f "$RESULT_FILE" - log_message "Starting new worker script: $WORKER_SCRIPT" - - # Add scan entry to queue before starting worker - if ! add_scan_entry; then - log_message "Failed to add scan entry to queue" - output_json "error" "Failed to acquire queue lock" - fi - - sh "$WORKER_SCRIPT" >/tmp/cell_scan_worker.log 2>&1 & - log_message "Worker script started with PID $!" - output_json "running" "Started new cell scan" -} || { - # Error handler - log_message "Script failed with error" - output_json "error" "Internal error occurred" -} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/cell_scan_worker.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/cell_scan_worker.sh deleted file mode 100755 index a100540..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/cell_scan_worker.sh +++ /dev/null @@ -1,104 +0,0 @@ -# Modified cell_scan_worker.sh -#!/bin/sh - -# Configuration -QUEUE_FILE="/tmp/at_pipe.txt" -RESULT_FILE="/tmp/qscan_result.json" -PID_FILE="/tmp/cell_scan.pid" -CELL_SCAN_KEYWORD="CELL_SCAN" -SCAN_COMMAND="AT+QSCAN=3,1" -SCAN_TIMEOUT=200 - -# Function to log messages -log_message() { - logger -t cell_scan_worker "$1" -} - -# Function to clean AT command output -clean_output() { - while IFS= read -r line; do - case "$line" in - "OK" | "" | *"ERROR"*) - continue - ;; - *) - printf '%s\n' "$line" - ;; - esac - done | sed 's/\r//g' | tr '\n' '\r' | sed 's/\r$//' | tr '\r' '\n' -} - -# Function to check if scan is already running -check_running() { - if [ -f "$PID_FILE" ]; then - pid=$(cat "$PID_FILE") - if kill -0 "$pid" 2>/dev/null; then - return 0 - fi - rm -f "$PID_FILE" - fi - return 1 -} - -# Function to remove scan entry -remove_scan_entry() { - if [ -f "$QUEUE_FILE" ]; then - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - sync - fi - if [ -f "$PID_FILE" ]; then - rm -f "$PID_FILE" - fi - log_message "Scan entry and PID file removed" -} - -# Main execution -main() { - # Start logging - log_message "Worker script started" - - # Check if already running - if check_running; then - log_message "Cell scan already running" - exit 1 - fi - - # Create PID file - echo "$$" >"$PID_FILE" - chmod 666 "$PID_FILE" 2>/dev/null - log_message "Created PID file: $$" - - # Execute scan with timeout and process output - log_message "Executing scan command: $SCAN_COMMAND" - SCAN_OUTPUT=$(timeout $SCAN_TIMEOUT sms_tool at "$SCAN_COMMAND" -t $SCAN_TIMEOUT 2>&1 | clean_output) - SCAN_STATUS=$? - - # Process and store result - if [ $SCAN_STATUS -eq 0 ] && [ -n "$SCAN_OUTPUT" ]; then - TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') - printf '{"status":"success","timestamp":"%s","output":"%s"}\n' \ - "$TIMESTAMP" \ - "$(printf '%s' "$SCAN_OUTPUT" | jq -R -s '.')" >"$RESULT_FILE" - chmod 666 "$RESULT_FILE" 2>/dev/null - - log_message "Scan completed successfully" - remove_scan_entry - exit 0 - else - log_message "Scan failed with status: $SCAN_STATUS" - printf '{"status":"error","timestamp":"%s","message":"Scan failed"}\n' \ - "$(date '+%Y-%m-%d %H:%M:%S')" >"$RESULT_FILE" - chmod 666 "$RESULT_FILE" 2>/dev/null - remove_scan_entry - exit 1 - fi -} - -# Execute main function with proper error handling -{ - main -} || { - log_message "Script failed with error" - remove_scan_entry - exit 1 -} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/check_scan.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/check_scan.sh deleted file mode 100755 index 448658b..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/check_scan.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -# Set content type to JSON -echo "Content-type: application/json" -echo "" - -# Configuration -RESULT_FILE="/tmp/qscan_result.json" -PID_FILE="/tmp/cell_scan.pid" - -# Function to output JSON response -output_json() { - local status="$1" - local message="$2" - - if [ "$status" = "success" ] && [ -f "$RESULT_FILE" ]; then - # Remove trailing quotes from output field and clean up formatting - sed 's/"output":""/"output":"/; s/""}/"}/' "$RESULT_FILE" - else - printf '{"status":"%s","message":"%s","timestamp":"","output":""}\n' "$status" "$message" - fi -} - -# Check if a scan is already in progress -check_scan_progress() { - if [ -f "$PID_FILE" ]; then - pid=$(cat "$PID_FILE") - if kill -0 "$pid" 2>/dev/null; then - output_json "running" "Scan in progress" - exit 0 - else - rm -f "$PID_FILE" - fi - fi -} - -# Check for existing results -check_results() { - if [ -f "$RESULT_FILE" ]; then - output_json "success" "Scan results available" - exit 0 - fi -} - -# Main execution -{ - # First check if a scan is in progress - check_scan_progress - - # Then check for existing results - check_results - - # If no results and no running scan, indicate idle state - output_json "idle" "No active scan" - exit 0 -} || { - # Error handler - output_json "error" "Failed to check scan status" - exit 1 -} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/network_info.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/network_info.sh deleted file mode 100755 index dd2f9e4..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/network_info.sh +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/sh - -# Set content-type for JSON response -echo "Content-type: application/json" -echo "" - -# Define file paths and configuration -QUEUE_FILE="/tmp/at_pipe.txt" -TEMP_FILE="/tmp/network_info_output.txt" -LOG_FILE="/var/log/network_info.log" -LOCK_KEYWORD="AT_COMMAND_LOCK" -MAX_WAIT=6 -COMMAND_TIMEOUT=4 - -# Function to log messages -log_message() { - echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "${LOG_FILE}" - logger -t network_info "$1" -} - -# Function to output JSON error -output_error() { - printf '{"status":"error","message":"%s","timestamp":"%s"}\n' "$1" "$(date '+%H:%M:%S')" - exit 1 -} - -# Function to clean and add lock -add_clean_lock() { - local TIMESTAMP=$(date +%s) - local WAIT_START=$(date +%s) - - while true; do - local CURRENT_TIME=$(date +%s) - - if [ $((CURRENT_TIME - WAIT_START)) -ge $MAX_WAIT ]; then - sed -i "/${LOCK_KEYWORD}/d" "$QUEUE_FILE" - log_message "Removed existing lock after $MAX_WAIT seconds timeout" - fi - - printf '{"id":"%s","timestamp":"%s","command":"%s","status":"lock","pid":"%s","start_time":"%s","priority":"high"}\n' \ - "${LOCK_KEYWORD}" \ - "$(date '+%H:%M:%S')" \ - "${LOCK_KEYWORD}" \ - "$$" \ - "$TIMESTAMP" >> "$QUEUE_FILE" - - if grep -q "\"pid\":\"$$\".*\"start_time\":\"$TIMESTAMP\"" "$QUEUE_FILE"; then - log_message "Lock created by PID $$ at $TIMESTAMP" - trap 'remove_lock; exit' INT TERM EXIT - return 0 - fi - - if [ $((CURRENT_TIME - WAIT_START)) -lt $MAX_WAIT ]; then - sleep 1 - else - log_message "Failed to acquire lock after $MAX_WAIT seconds" - return 1 - fi - done -} - -# Function to remove lock -remove_lock() { - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - log_message "Lock removed by PID $$" -} - -# Function to execute AT command with retries -execute_at_command() { - local CMD="$1" - local RETRY_COUNT=0 - local MAX_RETRIES=3 - local OUTPUT="" - - while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do - OUTPUT=$(timeout $COMMAND_TIMEOUT sms_tool at "$CMD" -D 2>&1) - local EXIT_CODE=$? - - if [ $EXIT_CODE -eq 0 ]; then - if echo "$OUTPUT" | grep -q "CME ERROR"; then - RETRY_COUNT=$((RETRY_COUNT + 1)) - [ $RETRY_COUNT -lt $MAX_RETRIES ] && sleep 1 - continue - fi - echo "$OUTPUT" - return 0 - fi - - RETRY_COUNT=$((RETRY_COUNT + 1)) - [ $RETRY_COUNT -lt $MAX_RETRIES ] && sleep 1 - done - - log_message "Command failed after $MAX_RETRIES attempts: $CMD" - return 1 -} - -# Function to check network mode -check_network_mode() { - local OUTPUT=$(execute_at_command "AT+QENG=\"servingcell\"") - echo "$OUTPUT" > "$TEMP_FILE" - - # Check for both LTE and NR5G-NSA (NSA mode) - if echo "$OUTPUT" | grep -q "\"LTE\"" && echo "$OUTPUT" | grep -q "\"NR5G-NSA\""; then - echo "NRLTE" - # Check for LTE only - elif echo "$OUTPUT" | grep -q "\"LTE\""; then - echo "LTE" - # Check for NR5G-SA - elif echo "$OUTPUT" | grep -q "\"NR5G-SA\""; then - echo "NR5G" - else - echo "UNKNOWN" - fi -} - -# Function to check NR5G measurement info setting -check_nr5g_meas_info() { - local OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\"") - if echo "$OUTPUT" | grep -q "\"nr5g_meas_info\",1"; then - return 0 - else - return 1 - fi -} - -# Function to escape JSON string -escape_json_string() { - echo "$1" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | tr -d '\n' | sed 's/\r//g' -} - -# Function to parse and format output as JSON -format_output_json() { - local MODE="$1" - local NEIGHBOR_OUTPUT="$2" - local MEAS_OUTPUT="$3" - - # Basic JSON structure - printf '{"status":"success","timestamp":"%s","mode":"%s","data":{' "$(date '+%H:%M:%S')" "$MODE" - - # Add neighbor cell info if available - if [ -n "$NEIGHBOR_OUTPUT" ]; then - printf '"neighborCells":"%s"' "$(escape_json_string "$NEIGHBOR_OUTPUT")" - fi - - # Add measurement info if available - if [ -n "$MEAS_OUTPUT" ]; then - [ -n "$NEIGHBOR_OUTPUT" ] && printf ',' - printf '"meas":"%s"' "$(escape_json_string "$MEAS_OUTPUT")" - fi - - printf '}}\n' -} - -# Main execution -{ - if ! add_clean_lock; then - output_error "Failed to acquire lock for command processing" - fi - - # Check network mode - NETWORK_MODE=$(check_network_mode) - log_message "Detected network mode: $NETWORK_MODE" - - SERVING_OUTPUT="" - MEAS_OUTPUT="" - - case "$NETWORK_MODE" in - "NRLTE") - SERVING_OUTPUT=$(execute_at_command "AT+QENG=\"neighbourcell\"") - if ! check_nr5g_meas_info; then - MEAS_OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\",1;+QNWCFG=\"nr5g_meas_info\"") - else - MEAS_OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\"") - fi - ;; - "LTE") - SERVING_OUTPUT=$(execute_at_command "AT+QENG=\"neighbourcell\"") - ;; - "NR5G") - if ! check_nr5g_meas_info; then - MEAS_OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\",1;+QNWCFG=\"nr5g_meas_info\"") - else - MEAS_OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\"") - fi - ;; - *) - output_error "Unknown or unsupported network mode" - ;; - esac - - format_output_json "$NETWORK_MODE" "$SERVING_OUTPUT" "$MEAS_OUTPUT" - remove_lock - rm -f "$TEMP_FILE" - -} || { - # Error handler - remove_lock - rm -f "$TEMP_FILE" - output_error "Internal error occurred" -} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/disable-quecwatch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/disable-quecwatch.sh deleted file mode 100755 index ef2c0a0..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/disable-quecwatch.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - -# Configuration and log directories -CONFIG_DIR="/etc/quecmanager/quecwatch" -QUECWATCH_SCRIPT="${CONFIG_DIR}/quecwatch.sh" -RCLOCAL="/etc/rc.local" -LOG_DIR="/tmp/log/quecwatch" -DEBUG_LOG_FILE="${LOG_DIR}/debug.log" - -# Log directory for cleaning process -CLEANUP_LOG_FILE="${LOG_DIR}/cleanup.log" - -# Ensure log directory exists -mkdir -p "${LOG_DIR}" - -# Function to log cleanup events -log_cleanup() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "${CLEANUP_LOG_FILE}" -} - -# Default response headers -echo "Content-type: application/json" -echo "" - -# Cleanup function -cleanup_quecwatch() { - # Start logging cleanup process - log_cleanup "Starting QuecWatch cleanup process" - - # Stop any running QuecWatch processes - log_cleanup "Stopping QuecWatch processes" - pkill -f "${QUECWATCH_SCRIPT}" >> "${CLEANUP_LOG_FILE}" 2>&1 - - # Remove QuecWatch script from rc.local - if [ -f "${RCLOCAL}" ]; then - log_cleanup "Removing QuecWatch entries from rc.local" - sed -i '\|/etc/quecmanager/quecwatch/quecwatch.sh|d' "${RCLOCAL}" >> "${CLEANUP_LOG_FILE}" 2>&1 - fi - - # Remove configuration directory - if [ -d "${CONFIG_DIR}" ]; then - log_cleanup "Removing configuration directory: ${CONFIG_DIR}" - rm -rf "${CONFIG_DIR}" >> "${CLEANUP_LOG_FILE}" 2>&1 - fi - - # Remove log directory - if [ -d "${LOG_DIR}" ]; then - log_cleanup "Removing log directory: ${LOG_DIR}" - rm -rf "${LOG_DIR}" >> "${CLEANUP_LOG_FILE}" 2>&1 - fi - - log_cleanup "QuecWatch cleanup completed successfully" - - # Optional: Output JSON response - echo '{"status": "success", "message": "QuecWatch disabled and removed"}' -} - -# Execute cleanup -cleanup_quecwatch - -exit 0 \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/enable-quecwatch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/enable-quecwatch.sh deleted file mode 100755 index b635f9f..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/enable-quecwatch.sh +++ /dev/null @@ -1,439 +0,0 @@ -#!/bin/sh - -# Read POST data -read -r QUERY_STRING - -# Function to urldecode -urldecode() { - echo -e "$(echo "$1" | sed 's/+/ /g;s/%\([0-9A-F][0-9A-F]\)/\\x\1/g')" -} - -# Configuration directory -CONFIG_DIR="/etc/quecmanager/quecwatch" -QUECWATCH_CONFIG="${CONFIG_DIR}/quecwatch.conf" -QUECWATCH_SCRIPT="${CONFIG_DIR}/quecwatch.sh" -RCLOCAL="/etc/rc.local" -LOG_DIR="/tmp/log/quecwatch" -DEBUG_LOG_FILE="${LOG_DIR}/debug.log" - -# Ensure log directory exists -mkdir -p "${LOG_DIR}" - -# Extract values from POST data -action=$(echo "$QUERY_STRING" | grep -o 'action=[^&]*' | cut -d= -f2) -ping_target=$(echo "$QUERY_STRING" | grep -o 'ping_target=[^&]*' | cut -d= -f2) -ping_interval=$(echo "$QUERY_STRING" | grep -o 'ping_interval=[^&]*' | cut -d= -f2) -ping_failures=$(echo "$QUERY_STRING" | grep -o 'ping_failures=[^&]*' | cut -d= -f2) -max_retries=$(echo "$QUERY_STRING" | grep -o 'max_retries=[^&]*' | cut -d= -f2) -connection_refresh=$(echo "$QUERY_STRING" | grep -o 'connection_refresh=[^&]*' | cut -d= -f2) -auto_sim_failover=$(echo "$QUERY_STRING" | grep -o 'auto_sim_failover=[^&]*' | cut -d= -f2) -sim_failover_schedule=$(echo "$QUERY_STRING" | grep -o 'sim_failover_schedule=[^&]*' | cut -d= -f2) - -# URL decode the values -action=$(urldecode "$action") -ping_target=$(urldecode "$ping_target") -ping_interval=$(urldecode "$ping_interval") -ping_failures=$(urldecode "$ping_failures") -max_retries=$(urldecode "$max_retries") -connection_refresh=$(urldecode "$connection_refresh") -auto_sim_failover=$(urldecode "$auto_sim_failover") -sim_failover_schedule=$(urldecode "$sim_failover_schedule") - -# Default response headers -echo "Content-type: application/json" -echo "" - -# Validate inputs -if [ -z "$ping_target" ]; then - echo '{"status": "error", "message": "Ping target is required"}' - exit 1 -fi - -# Initialize configuration function -initialize_config() { - # Create config directory if not exists - mkdir -p "${CONFIG_DIR}" - - # Write configuration with defaults and user-provided values - cat >"${QUECWATCH_CONFIG}" <"${QUECWATCH_SCRIPT}" <<'EOL' -#!/bin/sh - -# Load configuration -. /etc/quecmanager/quecwatch/quecwatch.conf - -# Define file paths -QUEUE_FILE="/tmp/at_pipe.txt" -LOG_FILE="/tmp/log/quecwatch/quecwatch.log" -[ ! -f "${QUEUE_FILE}" ] && touch "${QUEUE_FILE}" - -# Function to persist retry count to a more permanent location -persist_retry_count() { - local count=$1 - echo "$count" > /etc/quecmanager/quecwatch/retry_count -} - -# Function to load persisted retry count -load_retry_count() { - if [ -f /etc/quecmanager/quecwatch/retry_count ]; then - cat /etc/quecmanager/quecwatch/retry_count - else - echo "0" - fi -} - -# Enhanced logging function with debug level -log_message() { - local level="$1" - local message="$2" - local timestamp=$(date '+%Y-%m-%d %H:%M:%S') - echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" - logger -t quecwatch "${level}: ${message}" -} - -# Check for stale entries and clean them -check_and_clean_stale() { - local command_type="$1" - local wait_count=0 - - while [ $wait_count -lt 6 ]; do - if grep -q "\"command\":\"${command_type}\"" "$QUEUE_FILE"; then - log_message "DEBUG" "Waiting for ${command_type} to clear (attempt ${wait_count})" - sleep 1 - wait_count=$((wait_count + 1)) - else - return 0 - fi - done - - log_message "WARN" "Removing stale ${command_type} entry after ${wait_count}s" - sed -i "/\"command\":\"${command_type}\"/d" "$QUEUE_FILE" - return 0 -} - -# Handle lock with debug logging -handle_lock() { - log_message "DEBUG" "Checking queue file status before lock" - if [ -f "$QUEUE_FILE" ]; then - log_message "DEBUG" "Current queue content: $(cat $QUEUE_FILE)" - else - log_message "DEBUG" "Queue file does not exist, creating it" - touch "$QUEUE_FILE" - fi - - check_and_clean_stale "FETCH_LOCK" - - log_message "DEBUG" "Adding AT_COMMAND entry to queue" - printf '{"command":"AT_COMMAND","pid":"%s","timestamp":"%s"}\n' \ - "$$" \ - "$(date '+%H:%M:%S')" >> "$QUEUE_FILE" - - check_and_clean_stale "AT_COMMAND" -} - -# Execute AT command with enhanced error handling -execute_at_command() { - local command="$1" - local result="" - local retry_count=0 - local max_retries=3 - - log_message "DEBUG" "Executing AT command: ${command}" - - while [ $retry_count -lt $max_retries ]; do - handle_lock - - result=$(sms_tool at "$command" -t 4 2>&1) - local status=$? - - log_message "DEBUG" "Removing our entry from queue" - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - - if [ $status -eq 0 ] && [ -n "$result" ]; then - log_message "DEBUG" "Command successful. Output: $result" - echo "$result" - return 0 - fi - - log_message "WARN" "Command failed (attempt $((retry_count + 1))): $result" - retry_count=$((retry_count + 1)) - [ $retry_count -lt $max_retries ] && sleep 2 - done - - log_message "ERROR" "Command failed after $max_retries attempts: $command" - return 1 -} - -# Function to update retry count in config and persistent storage -update_retry_count() { - local new_retry_count=$1 - # Update the persistent count file - persist_retry_count "$new_retry_count" - # Update the config file - sed -i "s/CURRENT_RETRIES=[0-9]*/CURRENT_RETRIES=${new_retry_count}/" /etc/quecmanager/quecwatch/quecwatch.conf - # Reload config to ensure latest values - . /etc/quecmanager/quecwatch/quecwatch.conf -} - -# Function to get current SIM slot with enhanced error handling -get_current_sim() { - local output - local retry_count=0 - local max_retries=3 - - while [ $retry_count -lt $max_retries ]; do - output=$(execute_at_command "AT+QUIMSLOT?") - if [ $? -eq 0 ] && echo "$output" | grep -q "+QUIMSLOT:"; then - echo "$output" | grep "+QUIMSLOT:" | awk '{print $2}' - return 0 - fi - retry_count=$((retry_count + 1)) - [ $retry_count -lt $max_retries ] && sleep 2 - done - - log_message "ERROR" "Failed to get current SIM slot after $max_retries attempts" - return 1 -} - -# Function to switch SIM card with enhanced error handling -switch_sim_card() { - log_message "INFO" "Attempting to switch SIM card" - - # Get current SIM slot - current_sim_slot=$(get_current_sim) - if [ $? -ne 0 ]; then - log_message "ERROR" "Failed to get current SIM slot" - return 1 - fi - - # Toggle between SIM slots - new_sim_slot=$((current_sim_slot % 2 + 1)) - - log_message "INFO" "Switching from SIM slot ${current_sim_slot} to SIM slot ${new_sim_slot}" - if ! execute_at_command "AT+QUIMSLOT=${new_sim_slot}"; then - log_message "ERROR" "Failed to switch to SIM slot ${new_sim_slot}" - return 1 - fi - - sleep 10 # Allow time for SIM switch and network registration - return 0 -} - -# Function to check internet connectivity -check_internet() { - ping -c 3 ${PING_TARGET} > /dev/null 2>&1 - return $? -} - -# Function to perform connection recovery -perform_connection_recovery() { - local recovery_attempted=0 - local recovery_successful=0 - - if [ "${CONNECTION_REFRESH}" = "true" ] && [ "${retry_trigger}" -eq 1 ] && [ "${REFRESH_COUNT}" -gt 0 ]; then - log_message "INFO" "Attempting connection refresh" - - if ! execute_at_command "AT+COPS=2"; then - log_message "ERROR" "Failed to detach from network" - return 1 - fi - - sleep 2 - - if ! execute_at_command "AT+COPS=0"; then - log_message "ERROR" "Failed to reattach to network" - return 1 - fi - - sleep 5 - - if check_internet; then - log_message "INFO" "Connection refresh successful" - recovery_successful=1 - return 0 - fi - - REFRESH_COUNT=$((REFRESH_COUNT - 1)) - sed -i "s/REFRESH_COUNT=.*/REFRESH_COUNT=${REFRESH_COUNT}/" /etc/quecmanager/quecwatch/quecwatch.conf - recovery_attempted=1 - fi - - [ ${recovery_successful} -eq 1 ] && return 0 || return 1 -} - -# Store initial SIM slot -initial_sim_slot="" -if [ "${AUTO_SIM_FAILOVER}" = "true" ]; then - initial_sim_slot=$(get_current_sim) - if [ $? -eq 0 ]; then - log_message "INFO" "Auto SIM failover enabled. Initial SIM slot: ${initial_sim_slot}" - else - log_message "ERROR" "Failed to get initial SIM slot" - fi -fi - -# Main monitoring loop -failure_count=0 -retry_trigger=$(load_retry_count) -sim_failover_interval=0 - -while true; do - if ! check_internet; then - failure_count=$((failure_count + 1)) - log_message "INFO" "Ping failed. Failure count: ${failure_count}" - - if [ ${failure_count} -ge ${PING_FAILURES} ]; then - failure_count=0 - retry_trigger=$((retry_trigger + 1)) - update_retry_count ${retry_trigger} - - log_message "INFO" "Failure threshold reached. Retry trigger: ${retry_trigger}" - - if [ ${retry_trigger} -ge ${MAX_RETRIES} ]; then - if [ "${AUTO_SIM_FAILOVER}" = "true" ]; then - log_message "INFO" "Max retries exhausted. Attempting SIM failover." - if switch_sim_card && check_internet; then - log_message "INFO" "SIM failover successful" - retry_trigger=0 - failure_count=0 - update_retry_count 0 - else - log_message "ERROR" "SIM failover failed. Updating retry count before reboot." - retry_trigger=$((retry_trigger + 1)) - update_retry_count ${retry_trigger} - log_message "INFO" "Updated retry count to ${retry_trigger}. Performing system reboot." - reboot - fi - else - log_message "INFO" "Max retries exhausted. Auto SIM failover disabled. Removing QuecWatch." - # Clean up the retry count file - rm -f /etc/quecmanager/quecwatch/retry_count - # Remove from rc.local and disable - sed -i '\|/etc/quecmanager/quecwatch/quecwatch.sh|d' /etc/rc.local - sed -i 's/ENABLED=true/ENABLED=false/' /etc/quecmanager/quecwatch/quecwatch.conf - reboot - exit 0 - fi - else - if perform_connection_recovery; then - retry_trigger=0 - failure_count=0 - update_retry_count 0 - else - log_message "ERROR" "Recovery failed. Updating retry count before reboot." - retry_trigger=$((retry_trigger + 1)) - update_retry_count ${retry_trigger} - log_message "INFO" "Updated retry count to ${retry_trigger}. Performing system reboot." - reboot - fi - fi - fi - else - failure_count=0 - retry_trigger=0 - update_retry_count 0 - log_message "INFO" "Modem is connected to the internet" - - if [ "${AUTO_SIM_FAILOVER}" = "true" ] && [ "${SIM_FAILOVER_SCHEDULE}" -gt 0 ]; then - current_sim_slot=$(get_current_sim) - - if [ -n "${initial_sim_slot}" ] && [ "${current_sim_slot}" != "${initial_sim_slot}" ]; then - sim_failover_interval=$((sim_failover_interval + 1)) - - if [ $((sim_failover_interval * PING_INTERVAL)) -ge $((SIM_FAILOVER_SCHEDULE * 60)) ]; then - log_message "INFO" "Scheduled check: Attempting to switch back to initial SIM ${initial_sim_slot}" - - if execute_at_command "AT+QUIMSLOT=${initial_sim_slot}"; then - sleep 10 - - if check_internet; then - log_message "INFO" "Initial SIM restored successfully" - retry_trigger=0 - failure_count=0 - update_retry_count 0 - else - log_message "WARN" "Initial SIM still not working. Switching back to backup SIM." - execute_at_command "AT+QUIMSLOT=${current_sim_slot}" - sleep 10 - fi - else - log_message "ERROR" "Failed to switch to initial SIM" - fi - - sim_failover_interval=0 - fi - fi - fi - fi - - sleep ${PING_INTERVAL} -done -EOL - - chmod +x "${QUECWATCH_SCRIPT}" - - # Run the script - "${QUECWATCH_SCRIPT}" & -} - -# Enable QuecWatch -enable_quecwatch() { - initialize_config - generate_monitoring_script - - if ! grep -q "${QUECWATCH_SCRIPT}" "${RCLOCAL}"; then - [ -f "${RCLOCAL}" ] || touch "${RCLOCAL}" - chmod +x "${RCLOCAL}" - sed -i '$i'"${QUECWATCH_SCRIPT} &" "${RCLOCAL}" - fi - - # Output success JSON - echo '{"status": "success", "message": "QuecWatch enabled", "config": "'${QUECWATCH_CONFIG}'"}' -} - -# Log debug information -{ - echo "Timestamp: $(date)" - echo "Script Path: $0" - echo "Ping Target: $ping_target" - echo "Ping Interval: $ping_interval" - echo "Ping Failures: $ping_failures" - echo "Max Retries: $max_retries" - echo "Connection Refresh: $connection_refresh" - echo "Auto SIM Failover: $auto_sim_failover" - echo "SIM Failover Schedule: $sim_failover_schedule" -} >>"$DEBUG_LOG_FILE" 2>&1 - -# Enable QuecWatch -enable_quecwatch - -exit 0 \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/quecwatch-fetch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/quecwatch-fetch.sh deleted file mode 100755 index d84eaae..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/quecwatch/quecwatch-fetch.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh - -# Set headers for JSON response -echo "Content-type: application/json" -echo "" - -# Configuration file path -CONFIG_FILE="/etc/quecmanager/quecwatch/quecwatch.conf" - -# Check if configuration file exists -if [ ! -f "$CONFIG_FILE" ]; then - echo '{"status": "inactive", "message": "QuecWatch is not configured"}' - exit 0 -fi - -# Function to safely get config value -get_config_value() { - grep "^$1=" "$CONFIG_FILE" | cut -d'=' -f2 -} - -# Check if QuecWatch is enabled -enabled=$(get_config_value "ENABLED") -if [ "$enabled" != "true" ]; then - echo '{"status": "inactive", "message": "QuecWatch is disabled"}' - exit 0 -fi - -# Fetch configuration values -ping_target=$(get_config_value "PING_TARGET") -ping_interval=$(get_config_value "PING_INTERVAL") -ping_failures=$(get_config_value "PING_FAILURES") -max_retries=$(get_config_value "MAX_RETRIES") -current_retries=$(get_config_value "CURRENT_RETRIES") -connection_refresh=$(get_config_value "CONNECTION_REFRESH") -refresh_count=$(get_config_value "REFRESH_COUNT") - -# New configuration options -mobile_data_reconnect=$(get_config_value "MOBILE_DATA_RECONNECT") -auto_sim_failover=$(get_config_value "AUTO_SIM_FAILOVER") -sim_failover_schedule=$(get_config_value "SIM_FAILOVER_SCHEDULE") - -# Default values if not set -mobile_data_reconnect=${mobile_data_reconnect:-false} -auto_sim_failover=${auto_sim_failover:-false} -sim_failover_schedule=${sim_failover_schedule:-30} - -# Check monitoring script existence -QUECWATCH_SCRIPT="/etc/quecmanager/quecwatch/quecwatch.sh" -if [ ! -f "$QUECWATCH_SCRIPT" ]; then - echo '{"status": "error", "message": "Monitoring script is missing"}' - exit 0 -fi - -# Check log file for recent activity -LOG_FILE="/tmp/log/quecwatch/quecwatch.log" -last_log="" -if [ -f "$LOG_FILE" ]; then - last_log=$(tail -n 1 "$LOG_FILE") -fi - -# Prepare JSON response -cat <> "$QUEUE_FILE" - - # Verify our lock was written - if grep -q "\"pid\":\"$$\".*\"start_time\":\"$TIMESTAMP\"" "$QUEUE_FILE"; then - logger -t at_commands "High priority lock created by PID $$ at $TIMESTAMP" - trap 'remove_lock; exit' INT TERM EXIT - return 0 - fi - - if [ $((CURRENT_TIME - WAIT_START)) -lt $MAX_WAIT ]; then - sleep 1 - else - logger -t at_commands "Failed to acquire lock after $MAX_WAIT seconds" - return 1 - fi - done -} - -# Simple remove lock function that only removes our entry -remove_lock() { - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" - logger -t at_commands "Lock removed by PID $$" -} - -# Improved JSON string escaping function -escape_json() { - printf '%s' "$1" | awk ' - BEGIN { RS="\n"; ORS="\\n" } - { - gsub(/\\/, "\\\\") - gsub(/"/, "\\\"") - gsub(/\r/, "") - gsub(/\t/, "\\t") - gsub(/\f/, "\\f") - gsub(/\b/, "\\b") - print - } - ' | sed 's/\\n$//' -} - -# Enhanced AT command execution with retries -execute_at_command() { - local CMD="$1" - local RETRY_COUNT=0 - local MAX_RETRIES=3 - local OUTPUT="" - - while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do - OUTPUT=$(sms_tool at "$CMD" -t 4 2>/dev/null) - if [ $? -eq 0 ] && [ -n "$OUTPUT" ]; then - echo "$OUTPUT" - return 0 - fi - RETRY_COUNT=$((RETRY_COUNT + 1)) - [ $RETRY_COUNT -lt $MAX_RETRIES ] && sleep 1 - done - - logger -t at_commands "Command failed after $MAX_RETRIES attempts: $CMD" - return 1 -} - -# Enhanced command processing function -process_commands() { - local commands="$1" - local first=1 - - printf '[' - - for cmd in $commands; do - [ $first -eq 0 ] && printf ',' - first=0 - - OUTPUT=$(execute_at_command "$cmd") - local CMD_STATUS=$? - - ESCAPED_CMD=$(escape_json "$cmd") - ESCAPED_OUTPUT=$(escape_json "$OUTPUT") - - if [ $CMD_STATUS -eq 0 ]; then - printf '{"command":"%s","response":"%s","status":"success"}' \ - "${ESCAPED_CMD}" \ - "${ESCAPED_OUTPUT}" - else - printf '{"command":"%s","response":"Command failed","status":"error"}' \ - "${ESCAPED_CMD}" - fi - done - - printf ']\n' -} - -# Main process wrapper with automatic lock handling -main_with_clean_lock() { - ( sleep 60; kill -TERM $$ 2>/dev/null ) & - TIMEOUT_PID=$! - - if ! add_clean_lock; then - output_error "Failed to acquire lock for command processing" - kill $TIMEOUT_PID 2>/dev/null - exit 1 - fi - - process_commands "$COMMANDS" - - remove_lock - kill $TIMEOUT_PID 2>/dev/null -} - -# Define command sets -define_command_sets() { - COMMAND_SET_1='AT+QUIMSLOT? AT+CNUM AT+COPS? AT+CIMI AT+ICCID AT+CGSN AT+CPIN? AT+CGDCONT? AT+CREG? AT+CFUN? AT+QENG="servingcell" AT+QTEMP AT+CGCONTRDP AT+QCAINFO AT+QRSRP AT+QMAP="WWAN" AT+C5GREG=2;+C5GREG? AT+CGREG=2;+CGREG? AT+QRSRQ AT+QSINR' - COMMAND_SET_2='AT+CGDCONT? AT+CGCONTRDP AT+QNWPREFCFG="mode_pref" AT+QNWPREFCFG="nr5g_disable_mode" AT+QUIMSLOT?' - COMMAND_SET_3='AT+CGMI AT+CGMM AT+QGMR AT+CNUM AT+CIMI AT+ICCID AT+CGSN AT+QMAP="LANIP" AT+QMAP="WWAN" AT+QGETCAPABILITY' - COMMAND_SET_4='AT+QMAP="MPDN_RULE" AT+QMAP="DHCPV4DNS" AT+QCFG="usbnet"' - COMMAND_SET_5='AT+QRSRP AT+QRSRQ AT+QSINR AT+QCAINFO AT+QSPN' - COMMAND_SET_6='AT+CEREG=2;+CEREG? AT+C5GREG=2;+C5GREG? AT+CPIN? AT+CGDCONT? AT+CGCONTRDP AT+QMAP="WWAN" AT+QRSRP AT+QTEMP AT+QNETRC?' - COMMAND_SET_7='AT+QNWPREFCFG="policy_band" AT+QNWPREFCFG="lte_band";+QNWPREFCFG="nsa_nr5g_band";+QNWPREFCFG="nr5g_band"' - COMMAND_SET_8='AT+QNWLOCK="common/4g" AT+QNWLOCK="common/5g" AT+QNWLOCK="save_ctrl"' -} - -# Main execution -define_command_sets - -# Get command set from query string with validation -COMMAND_SET=$(echo "$QUERY_STRING" | grep -o 'set=[1-8]' | cut -d'=' -f2 | tr -cd '0-9') -if [ -z "$COMMAND_SET" ] || [ "$COMMAND_SET" -lt 1 ] || [ "$COMMAND_SET" -gt 8 ]; then - COMMAND_SET=1 -fi - -# Select the appropriate command set -case "$COMMAND_SET" in - 1) COMMANDS="$COMMAND_SET_1";; - 2) COMMANDS="$COMMAND_SET_2";; - 3) COMMANDS="$COMMAND_SET_3";; - 4) COMMANDS="$COMMAND_SET_4";; - 5) COMMANDS="$COMMAND_SET_5";; - 6) COMMANDS="$COMMAND_SET_6";; - 7) COMMANDS="$COMMAND_SET_7";; - 8) COMMANDS="$COMMAND_SET_8";; -esac - -# Execute main process with clean lock handling -main_with_clean_lock \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/ethtool.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/ethtool.sh deleted file mode 100755 index d6de3f0..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/ethtool.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# Set the content type to JSON -echo "Content-Type: application/json" -echo "" - -# Run ethtool on eth0 and capture the output -ethtool_output=$(ethtool eth0) - -# Extract Link Speed -speed=$(echo "$ethtool_output" | grep "Speed:" | awk '{print $2}') - -# Extract Link Status -link_status=$(echo "$ethtool_output" | grep "Link detected:" | awk '{print $3}') - -# Extract Auto-negotiation status -auto_negotiation=$(echo "$ethtool_output" | grep "Auto-negotiation:" | awk '{print $2}') - -# Create JSON output -echo "{\"link_speed\": \"$speed\", \"link_status\": \"$link_status\", \"auto_negotiation\": \"$auto_negotiation\"}" \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/memory.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/memory.sh deleted file mode 100755 index baa6cb2..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/memory.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -# Set the content type to JSON -echo "Content-Type: application/json" -echo "" - -# Run free command and capture the output, using -b for bytes -free_output=$(free -b) - -# Extract memory information using awk -# Skip the header, take the Mem: line, and extract total, used, and available -memory_info=$(echo "$free_output" | awk '/Mem:/ {print "{\"total\": " $2 ", \"used\": " $3 ", \"available\": " $7 "}"}') - -# Output the JSON -echo "$memory_info" \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/speedtest.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/speedtest.sh deleted file mode 100755 index 61a30bb..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/speedtest.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -export HOME=/tmp/home - -# Create named pipe for speedtest output if it doesn't exist -[ ! -p /tmp/realtime_spd.json ] && mkfifo /tmp/realtime_spd.json - -# Run speedtest in background -/usr/bin/speedtest --accept-license -f json -p yes --progress-update-interval=100 > /tmp/realtime_spd.json - -# Remove named pipe -rm /tmp/realtime_spd.json \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/speedtest_stream.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/speedtest_stream.sh deleted file mode 100755 index 1d0823e..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/speedtest_stream.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -echo "Content-Type: text/event-stream" -echo "Cache-Control: no-cache" -echo "Connection: keep-alive" -echo "" - -# Use cat to read from the FIFO -cat /tmp/realtime_spd.json | while read line; do - echo "data: $line" - echo - sleep 0.1 -done \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/start_speedtest.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/start_speedtest.sh deleted file mode 100755 index f6e59bb..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/speedtest/start_speedtest.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# /www/cgi-bin/start_speedtest.sh -echo "Content-Type: application/json" -echo "" - -# Run speedtest in background -/www/cgi-bin/home/speedtest/speedtest.sh - -# Immediately return a success response -echo '{"status":"started"}' \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/fetch_commands.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/fetch_commands.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/fetch_commands.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/fetch_commands.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/fetch_macs.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/fetch_macs.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/fetch_macs.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/fetch_macs.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/mtu.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/mtu.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/mtu.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/mtu.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/ttl.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/ttl.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/advance/ttl.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/advance/ttl.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/at_cmd/at_queue_client.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/at_cmd/at_queue_client.sh new file mode 100644 index 0000000..139190b --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/at_cmd/at_queue_client.sh @@ -0,0 +1,266 @@ +#!/bin/sh +# AT Queue Client for OpenWRT +# Located in /www/cgi-bin/services/at_queue_client + +QUEUE_DIR="/tmp/at_queue" +RESULTS_DIR="$QUEUE_DIR/results" +QUEUE_MANAGER="/www/cgi-bin/services/at_queue_manager.sh" +POLL_INTERVAL=0.01 + +usage() { + echo "Usage: $0 [options] " + echo "Options:" + echo " -w Wait for command completion" + echo " -t Timeout in seconds (default: 240)" + echo " -h Show this help message" + exit 1 +} + +# Output JSON response +output_json() { + local content="$1" + local headers="${2:-1}" # Default to showing headers + echo "$content" +} + +# URL decode function +urldecode() { + local encoded="$1" + logger -t at_queue -p daemon.debug "urldecode: input='$encoded'" + + # Handle %2B -> + and %22 -> " conversions + local decoded="${encoded//%2B/+}" + decoded="${decoded//%22/\"}" + # Then handle other encoded characters + decoded=$(printf '%b' "${decoded//%/\\x}") + + logger -t at_queue -p daemon.debug "urldecode: output='$decoded'" + echo "$decoded" +} + +# Extract command ID from response with improved error handling +get_command_id() { + local response="$1" + echo "DEBUG: Raw response: '$response'" >&2 + + # Strip any headers from response + local json_response=$(echo "$response" | sed -n '/^{/,$p') + echo "DEBUG: JSON portion: '$json_response'" >&2 + + # Try to extract command_id using grep and sed instead of jsonfilter + local cmd_id=$(echo "$json_response" | grep -o '"command_id":"[^"]*"' | sed 's/"command_id":"//;s/"$//') + + if [ -n "$cmd_id" ]; then + echo "$cmd_id" + return 0 + fi + + # Fallback to jsonfilter if available + echo "DEBUG: Trying jsonfilter as fallback" >&2 + local cmd_id_jsonfilter=$(echo "$json_response" | jsonfilter -e '@.command_id' 2>/dev/null) + + if [ -n "$cmd_id_jsonfilter" ]; then + echo "$cmd_id_jsonfilter" + return 0 + fi + + echo "ERROR: Failed to extract command ID from response" >&2 + return 1 +} + +# Normalize AT command +normalize_at_command() { + local cmd="$1" + logger -t at_queue -p daemon.debug "normalize: input='$cmd'" + + # URL decode the command + cmd=$(urldecode "$cmd") + logger -t at_queue -p daemon.debug "normalize: after urldecode='$cmd'" + + # Remove any carriage returns or newlines + cmd=$(echo "$cmd" | tr -d '\r\n') + logger -t at_queue -p daemon.debug "normalize: after cleanup='$cmd'" + + # Trim leading/trailing whitespace while preserving quotes + cmd=$(echo "$cmd" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') + logger -t at_queue -p daemon.debug "normalize: final output='$cmd'" + + echo "$cmd" +} + +# Submit command with priority handling +submit_command() { + local cmd="$1" + local priority=10 + + # Set high priority for QSCAN commands for faster processing + if echo "$cmd" | grep -qi "AT+QSCAN"; then + priority=1 + fi + + # Submit using appropriate method + if [ "${SCRIPT_NAME}" != "" ]; then + # CGI mode - direct execution + local escaped_cmd=$(echo "$cmd" | sed 's/"/\\"/g') + QUERY_STRING="action=enqueue&command=${escaped_cmd}&priority=$priority" "$QUEUE_MANAGER" + else + # CLI mode + "$QUEUE_MANAGER" enqueue "$cmd" "$priority" + fi +} + +# Check if result exists with proper error handling +check_result() { + local cmd_id="$1" + local show_headers="${2:-1}" # Add parameter for header control + + if [ -f "$RESULTS_DIR/$cmd_id.json" ]; then + local result_content=$(cat "$RESULTS_DIR/$cmd_id.json") + if [ -z "$result_content" ]; then + logger -t at_queue -p daemon.error "Empty result file for command ID: $cmd_id" + local error_json="{\"error\":\"Empty result file\",\"command_id\":\"$cmd_id\"}" + output_json "$error_json" "$show_headers" + return 1 + fi + output_json "$result_content" "$show_headers" + return 0 + fi + local error_json="{\"error\":\"Result not found\",\"command_id\":\"$cmd_id\"}" + output_json "$error_json" "$show_headers" + return 1 +} + +# Wait for command completion with optimized polling and better error handling +wait_for_completion() { + local cmd_id="$1" + local timeout="$2" + local show_headers="${3:-1}" + local result_file="$RESULTS_DIR/$cmd_id.json" + + if [ -z "$cmd_id" ]; then + local error_json="{\"error\":\"Invalid command ID\"}" + output_json "$error_json" "$show_headers" + return 1 + fi + + # First quick check + if [ -f "$result_file" ]; then + output_json "$(cat "$result_file")" "$show_headers" + return 0 + fi + + # Wait with shorter polling interval + local start_time=$(date +%s) + local current_time + + while true; do + if [ -f "$result_file" ]; then + output_json "$(cat "$result_file")" "$show_headers" + return 0 + fi + + current_time=$(date +%s) + if [ $((current_time - start_time)) -ge "$timeout" ]; then + break + fi + + sleep $POLL_INTERVAL + done + + local error_json=$(cat << EOF +{ + "error": "Timeout waiting for completion", + "command_id": "$cmd_id", + "timeout": $timeout +} +EOF +) + output_json "$error_json" "$show_headers" + return 1 +} + +# CGI request handling +if [ "${SCRIPT_NAME}" != "" ]; then + # Output headers only once at the beginning + echo "Content-Type: application/json" + echo "" + + # Parse query string + eval $(echo "$QUERY_STRING" | sed 's/&/;/g') + + # Handle different actions + if [ -n "$command_id" ]; then + # Get result for specific command ID + check_result "$command_id" "0" # Don't show headers + elif [ -n "$command" ]; then + # URL decode and normalize the command + command=$(urldecode "$command") + command=$(normalize_at_command "$command") + + # Check if it's a valid AT command + if echo "$command" | grep -qi "^AT"; then + # Submit command and get response + response=$(submit_command "$command") + cmd_id=$(get_command_id "$response") + + if [ "$wait" = "1" ]; then + if [ -n "$cmd_id" ]; then + wait_for_completion "$cmd_id" "${timeout:-180}" "0" # Don't show headers + else + output_json "{\"error\":\"Failed to get command ID from response\",\"response\":\"$response\"}" "0" + fi + else + output_json "$response" "0" # Don't show headers + fi + else + output_json "{\"error\":\"Invalid AT command format\"}" "0" + fi + else + output_json "{\"error\":\"No command or command_id specified\"}" "0" + fi + exit 0 +fi + +# CLI processing +wait_mode=0 +timeout=180 + +while getopts "wt:h" opt; do + case $opt in + w) wait_mode=1 ;; + t) timeout="$OPTARG" ;; + h) usage ;; + ?) usage ;; + esac +done + +shift $((OPTIND-1)) + +if [ $# -eq 0 ]; then + usage +fi + +# Combine remaining arguments into AT command +command="$*" + +# Validate AT command format +if ! echo "$command" | grep -qi "^AT"; then + echo "Error: Command must start with 'AT'" + exit 1 +fi + +# Submit command and get response +response=$(submit_command "$command") +cmd_id=$(get_command_id "$response") + +if [ -z "$cmd_id" ]; then + echo "Error: Failed to get command ID" + echo "Response: $response" + exit 1 +fi + +if [ $wait_mode -eq 1 ]; then + wait_for_completion "$cmd_id" "$timeout" +else + echo "$response" +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/at_cmd/fetch_data.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/at_cmd/fetch_data.sh new file mode 100644 index 0000000..48c6551 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/at_cmd/fetch_data.sh @@ -0,0 +1,195 @@ +#!/bin/sh + +# Set content-type for JSON response +echo "Content-type: application/json" +echo "" + +# Define paths and constants to match queue system +QUEUE_DIR="/tmp/at_queue" +QUEUE_MANAGER="/www/cgi-bin/services/at_queue_manager" +LOCK_ID="FETCH_DATA_$(date +%s)_$$" +TOKEN_FILE="$QUEUE_DIR/token" + +# Logging function (minimized) +log_message() { + # Only log errors and critical info + if [ "$1" = "error" ] || [ "$1" = "crit" ]; then + logger -t at_queue -p "daemon.$1" "$2" + fi +} + +# Enhanced JSON string escaping function +escape_json() { + printf '%s' "$1" | awk ' + BEGIN { RS="\n"; ORS="\\n" } + { + gsub(/\\/, "\\\\") + gsub(/"/, "\\\"") + gsub(/\r/, "") + gsub(/\t/, "\\t") + gsub(/\f/, "\\f") + gsub(/\b/, "\\b") + print + } + ' | sed 's/\\n$//' +} + +# Acquire token directly (avoid CGI overhead) +acquire_token() { + local priority="${1:-10}" + local max_attempts=10 + local attempt=0 + + while [ $attempt -lt $max_attempts ]; do + # Check if token file exists + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Try again + sleep 0.1 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$LOCK_ID\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$LOCK_ID" ]; then + return 0 + fi + + sleep 0.1 + attempt=$((attempt + 1)) + done + + return 1 +} + +# Release token directly +release_token() { + # Only remove if it's our token + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$LOCK_ID" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + fi + fi +} + +# Direct AT command execution with minimal overhead +execute_at_command() { + local CMD="$1" + sms_tool at "$CMD" -t 3 2>/dev/null +} + +# Batch process all commands with a single token +process_all_commands() { + local commands="$1" + local priority="${2:-10}" + local first=1 + + # Acquire a single token for all commands + if ! acquire_token "$priority"; then + log_message "error" "Failed to acquire token for batch processing" + # Return all failed responses + printf '[' + first=1 + for cmd in $commands; do + [ $first -eq 0 ] && printf ',' + first=0 + ESCAPED_CMD=$(escape_json "$cmd") + printf '{"command":"%s","response":"Failed to acquire token","status":"error"}' "${ESCAPED_CMD}" + done + printf ']\n' + return 1 + fi + + # Process all commands with the single token + printf '[' + for cmd in $commands; do + [ $first -eq 0 ] && printf ',' + first=0 + + OUTPUT=$(execute_at_command "$cmd") + local CMD_STATUS=$? + + ESCAPED_CMD=$(escape_json "$cmd") + ESCAPED_OUTPUT=$(escape_json "$OUTPUT") + + if [ $CMD_STATUS -eq 0 ] && [ -n "$OUTPUT" ]; then + printf '{"command":"%s","response":"%s","status":"success"}' \ + "${ESCAPED_CMD}" \ + "${ESCAPED_OUTPUT}" + else + printf '{"command":"%s","response":"Command failed","status":"error"}' \ + "${ESCAPED_CMD}" + fi + done + printf ']\n' + + # Release token after all commands are done + release_token + return 0 +} + +# Main execution with timeout and proper cleanup +trap 'release_token; exit 1' INT TERM + +# Command sets +COMMAND_SET_1='AT+QUIMSLOT? AT+CNUM AT+COPS? AT+CIMI AT+ICCID AT+CGSN AT+CPIN? AT+CGDCONT? AT+CREG? AT+CFUN? AT+QENG="servingcell" AT+QTEMP AT+CGCONTRDP AT+QCAINFO AT+QRSRP AT+QMAP="WWAN" AT+C5GREG=2;+C5GREG? AT+CGREG=2;+CGREG? AT+QRSRQ AT+QSINR' +COMMAND_SET_2='AT+CGDCONT? AT+CGCONTRDP AT+QNWPREFCFG="mode_pref" AT+QNWPREFCFG="nr5g_disable_mode" AT+QUIMSLOT? AT+CFUN=?' +COMMAND_SET_3='AT+CGMI AT+CGMM AT+QGMR AT+CNUM AT+CIMI AT+ICCID AT+CGSN AT+QMAP="LANIP" AT+QMAP="WWAN" AT+QGETCAPABILITY' +COMMAND_SET_4='AT+QMAP="MPDN_RULE" AT+QMAP="DHCPV4DNS" AT+QCFG="usbnet"' +COMMAND_SET_5='AT+QRSRP AT+QRSRQ AT+QSINR AT+QCAINFO AT+QSPN' +COMMAND_SET_6='AT+CEREG=2;+CEREG? AT+C5GREG=2;+C5GREG? AT+CPIN? AT+CGDCONT? AT+CGCONTRDP AT+QMAP="WWAN" AT+QRSRP AT+QTEMP AT+QNETRC?' +COMMAND_SET_7='AT+QNWPREFCFG="policy_band" AT+QNWPREFCFG="lte_band";+QNWPREFCFG="nsa_nr5g_band";+QNWPREFCFG="nr5g_band"' +COMMAND_SET_8='AT+QNWLOCK="common/4g" AT+QNWLOCK="common/5g" AT+QNWLOCK="save_ctrl"' + +# Get command set from query string with validation +COMMAND_SET=$(echo "$QUERY_STRING" | grep -o 'set=[1-8]' | cut -d'=' -f2 | tr -cd '0-9') +if [ -z "$COMMAND_SET" ] || [ "$COMMAND_SET" -lt 1 ] || [ "$COMMAND_SET" -gt 8 ]; then + COMMAND_SET=1 +fi + +# Select the appropriate command set +case "$COMMAND_SET" in + 1) COMMANDS="$COMMAND_SET_1";; + 2) COMMANDS="$COMMAND_SET_2";; + 3) COMMANDS="$COMMAND_SET_3";; + 4) COMMANDS="$COMMAND_SET_4";; + 5) COMMANDS="$COMMAND_SET_5";; + 6) COMMANDS="$COMMAND_SET_6";; + 7) COMMANDS="$COMMAND_SET_7";; + 8) COMMANDS="$COMMAND_SET_8";; +esac + +# Set priority based on content +PRIORITY=10 +if echo "$COMMANDS" | grep -qi "AT+QSCAN"; then + PRIORITY=1 +fi + +# Process commands with timeout protection +( sleep 60; kill -TERM $$ 2>/dev/null ) & +TIMEOUT_PID=$! + +process_all_commands "$COMMANDS" "$PRIORITY" + +# Clean up +kill $TIMEOUT_PID 2>/dev/null +release_token \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/auth.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/auth.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/auth.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/auth.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-locking/get_cell_lock.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-locking/get_cell_lock.sh new file mode 100644 index 0000000..25cb373 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-locking/get_cell_lock.sh @@ -0,0 +1,113 @@ +#!/bin/sh + +# Set headers for JSON response +echo "Content-type: application/json" +echo "" + +# Load UCI functions +. /lib/functions.sh + +# Function to safely get UCI value with default +get_uci_value() { + local value + config_get value cell_lock "$1" "$2" + echo "${value:-$2}" +} + +# Function to check if daemon is running +check_service_status() { + if [ -f "/var/run/cell_lock_scheduler.pid" ]; then + pid=$(cat /var/run/cell_lock_scheduler.pid 2>/dev/null) + if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then + echo "running" + return + fi + fi + echo "stopped" +} + +# Function to get current status with proper JSON handling +get_current_status() { + local STATUS_FILE="/tmp/cell_lock_status.json" + local status="unknown" + local message="Status not available" + local active="0" + local locked="0" + local timestamp=$(date +%s) + + if [ -f "$STATUS_FILE" ]; then + # Try to extract values from status file + if grep -q "status" "$STATUS_FILE"; then + status=$(cat "$STATUS_FILE" | jsonfilter -e '@.status' 2>/dev/null) + # Extract message and remove any surrounding quotes + message=$(cat "$STATUS_FILE" | jsonfilter -e '@.message' 2>/dev/null | sed 's/^"//;s/"$//') + active=$(cat "$STATUS_FILE" | jsonfilter -e '@.active' 2>/dev/null) + locked=$(cat "$STATUS_FILE" | jsonfilter -e '@.locked' 2>/dev/null) + timestamp=$(cat "$STATUS_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + fi + fi + + # Escape quotes and special characters in message + message=$(echo "$message" | sed 's/\\/\\\\/g; s/"/\\"/g') + + # Return the status as a JSON object with properly quoted message + echo "{\"status\":\"$status\",\"message\":\"$message\",\"active\":$active,\"locked\":$locked,\"timestamp\":$timestamp}" +} + +# Load configuration +config_load quecmanager + +# Check if cell lock section exists +if ! uci -q get quecmanager.cell_lock >/dev/null; then + echo '{"status":"inactive","message":"Cell lock is not configured","enabled":false,"startTime":"","endTime":"","active":false,"locked":false}' + exit 0 +fi + +# Get service status +service_status=$(check_service_status) + +# Get current status +current_status=$(get_current_status) + +# Get configuration values +enabled=$(get_uci_value "enabled" "0") +start_time=$(get_uci_value "start_time" "") +end_time=$(get_uci_value "end_time" "") +active=$(get_uci_value "active" "0") +lte_params=$(get_uci_value "lte_params" "") +nr5g_params=$(get_uci_value "nr5g_params" "") +lte_persist=$(get_uci_value "lte_persist" "0") +nr5g_persist=$(get_uci_value "nr5g_persist" "0") + +# Convert numeric values to boolean for JSON +enabled_bool="false" +active_bool="false" +locked_bool="false" + +[ "$enabled" = "1" ] && enabled_bool="true" +[ "$active" = "1" ] && active_bool="true" + +# Get locked status from current_status +locked=$(echo "$current_status" | jsonfilter -e '@.locked' 2>/dev/null) +[ "$locked" = "1" ] && locked_bool="true" + +# Extract the message properly from current status +message_value=$(echo "$current_status" | jsonfilter -e '@.message' 2>/dev/null | sed 's/^"//;s/"$//') + +# Prepare JSON response in format expected by the component +cat <> "$LOG_FILE" + + # Debug logging + echo "[$timestamp] [$level] $message" >> "$DEBUG_FILE" + + # Log to system log + logger -t cell_lock -p "daemon.$level" "$message" +} + +# Log request details for debugging +log_request_info() { + echo "==== NEW REQUEST ====" >> "$DEBUG_FILE" + echo "METHOD: $REQUEST_METHOD" >> "$DEBUG_FILE" + echo "QUERY_STRING: $QUERY_STRING" >> "$DEBUG_FILE" + echo "CONTENT_LENGTH: $CONTENT_LENGTH" >> "$DEBUG_FILE" + echo "CONTENT_TYPE: $CONTENT_TYPE" >> "$DEBUG_FILE" +} + +# Function to validate time format (HH:MM) +validate_time_format() { + local time="$1" + local name="$2" + + if ! echo "$time" | grep -q '^[0-2][0-9]:[0-5][0-9]$'; then + echo "{\"status\":\"error\",\"message\":\"$name must be in format HH:MM (24-hour)\"}" + log_message "$name has invalid format: $time" "error" + return 1 + fi + + # Further validate hour (00-23) + local hour=$(echo "$time" | cut -d':' -f1) + if [ "$hour" -gt 23 ]; then + echo "{\"status\":\"error\",\"message\":\"Hour in $name must be between 00-23\"}" + log_message "$name has invalid hour: $hour" "error" + return 1 + fi + + return 0 +} + +# Log request info for debugging +log_request_info + +# Handle GET requests for status +if [ "$REQUEST_METHOD" = "GET" ]; then + log_message "Handling GET request" "debug" + + # Load UCI configuration + if [ -f "/etc/config/quecmanager" ]; then + ENABLED=$(uci -q get "$UCI_CONFIG.cell_lock.enabled" || echo "0") + START_TIME=$(uci -q get "$UCI_CONFIG.cell_lock.start_time" || echo "") + END_TIME=$(uci -q get "$UCI_CONFIG.cell_lock.end_time" || echo "") + ACTIVE=$(uci -q get "$UCI_CONFIG.cell_lock.active" || echo "0") + + # Convert to JSON boolean format + [ "$ENABLED" = "1" ] && ENABLED="true" || ENABLED="false" + [ "$ACTIVE" = "1" ] && ACTIVE="true" || ACTIVE="false" + + # Get current status from status file + STATUS="disabled" + MESSAGE="\"Scheduler is disabled\"" + + if [ -f "$STATUS_FILE" ]; then + STATUS=$(cat "$STATUS_FILE" | jsonfilter -e '@.status' 2>/dev/null) + MESSAGE=$(cat "$STATUS_FILE" | jsonfilter -e '@.message' 2>/dev/null) + if [ -n "$MESSAGE" ]; then + MESSAGE="\"$MESSAGE\"" + else + MESSAGE="\"Status not available\"" + fi + fi + + # Output JSON response + echo "{\"enabled\":$ENABLED,\"start_time\":\"$START_TIME\",\"end_time\":\"$END_TIME\",\"active\":$ACTIVE,\"status\":\"$STATUS\",\"message\":$MESSAGE}" + log_message "Returned status response" "debug" + else + echo "{\"enabled\":false,\"start_time\":\"\",\"end_time\":\"\",\"active\":false,\"status\":\"unknown\",\"message\":\"Configuration not found\"}" + log_message "No configuration found" "warn" + fi + exit 0 +fi + +# Handle POST requests for enabling/disabling scheduling +if [ "$REQUEST_METHOD" = "POST" ]; then + log_message "Handling POST request" "debug" + + # Read POST data + CONTENT_LENGTH=${CONTENT_LENGTH:-0} + if [ $CONTENT_LENGTH -gt 0 ]; then + POST_DATA=$(dd bs=1 count=$CONTENT_LENGTH 2>/dev/null) + echo "POST_DATA: $POST_DATA" >> "$DEBUG_FILE" + else + POST_DATA="" + echo "No POST_DATA (empty)" >> "$DEBUG_FILE" + fi + + # Try to parse JSON data + if [ -n "$POST_DATA" ] && command -v jsonfilter >/dev/null 2>&1; then + log_message "Attempting to parse JSON data" "debug" + + # Try to extract values from JSON - allow for differently named fields + ENABLED=$(echo "$POST_DATA" | jsonfilter -e '@.enabled' 2>/dev/null) + if [ -z "$ENABLED" ]; then + ENABLED=$(echo "$POST_DATA" | jsonfilter -e '@.enable' 2>/dev/null) + fi + + START_TIME=$(echo "$POST_DATA" | jsonfilter -e '@.startTime' 2>/dev/null) + if [ -z "$START_TIME" ]; then + START_TIME=$(echo "$POST_DATA" | jsonfilter -e '@.start_time' 2>/dev/null) + fi + + END_TIME=$(echo "$POST_DATA" | jsonfilter -e '@.endTime' 2>/dev/null) + if [ -z "$END_TIME" ]; then + END_TIME=$(echo "$POST_DATA" | jsonfilter -e '@.end_time' 2>/dev/null) + fi + + echo "Parsed JSON: enabled=$ENABLED, start=$START_TIME, end=$END_TIME" >> "$DEBUG_FILE" + + # Handle enable/disable logic + if [ "$ENABLED" = "true" ] || [ "$ENABLED" = "1" ]; then + # Validate times for enable request + if [ -z "$START_TIME" ] || [ -z "$END_TIME" ]; then + echo "{\"status\":\"error\",\"message\":\"Start time and end time are required\"}" + log_message "Missing start or end time" "error" + exit 1 + fi + + # Validate time formats + validate_time_format "$START_TIME" "Start time" || exit 1 + validate_time_format "$END_TIME" "End time" || exit 1 + + # Update configuration + log_message "Enabling scheduling with start=$START_TIME, end=$END_TIME" "info" + uci -q set "$UCI_CONFIG.cell_lock=scheduler" + uci set "$UCI_CONFIG.cell_lock.enabled=1" + uci set "$UCI_CONFIG.cell_lock.start_time=$START_TIME" + uci set "$UCI_CONFIG.cell_lock.end_time=$END_TIME" + uci commit "$UCI_CONFIG" + + # Ensure service is running + if [ -x "/etc/init.d/quecmanager_cell_locking" ]; then + /etc/init.d/quecmanager_cell_locking enable + /etc/init.d/quecmanager_cell_locking restart + log_message "Started scheduler service" "info" + else + log_message "Service script not found" "error" + echo "{\"status\":\"error\",\"message\":\"Service script not found\"}" + exit 1 + fi + + echo "{\"status\":\"success\",\"message\":\"Scheduling enabled\",\"startTime\":\"$START_TIME\",\"endTime\":\"$END_TIME\"}" + log_message "Successfully enabled scheduling" "info" + else + # Disable scheduling + log_message "Disabling scheduling" "info" + uci -q set "$UCI_CONFIG.cell_lock=scheduler" + uci set "$UCI_CONFIG.cell_lock.enabled=0" + uci commit "$UCI_CONFIG" + + # Stop service + if [ -x "/etc/init.d/quecmanager_cell_locking" ]; then + /etc/init.d/quecmanager_cell_locking stop + /etc/init.d/quecmanager_cell_locking disable + log_message "Stopped scheduler service" "info" + fi + + echo "{\"status\":\"success\",\"message\":\"Scheduling disabled\"}" + log_message "Successfully disabled scheduling" "info" + fi + else + log_message "Failed to parse JSON data or no JSON data received" "error" + echo "{\"status\":\"error\",\"message\":\"Invalid request or missing JSON data\"}" + fi + exit 0 +fi + +# If no valid method was handled +echo "{\"status\":\"error\",\"message\":\"Invalid request method\"}" +log_message "Invalid request method: $REQUEST_METHOD" "error" +exit 1 \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/apn-profiles/delete-apn-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/apn-profiles/delete-apn-profile.sh new file mode 100644 index 0000000..8385338 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/apn-profiles/delete-apn-profile.sh @@ -0,0 +1,127 @@ +#!/bin/sh + +echo "Content-type: application/json" +echo "" + +# Initialize error tracking +has_error=false +error_message="" + +# Function to append to error message +append_error() { + if [ -z "$error_message" ]; then + error_message="$1" + else + error_message="$error_message; $1" + fi + has_error=true +} + +# Function to log cleanup events +log_message() { + local level="$1" + local message="$2" + local LOG_DIR="/tmp/log/apnprofile" + local LOG_FILE="${LOG_DIR}/apnprofile.log" + + # Ensure log directory exists + mkdir -p "${LOG_DIR}" + + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" + logger -t apnprofile "${level}: ${message}" +} + +log_message "INFO" "Starting APN Profile cleanup process" + +# Stop and disable the service +if [ -f "/etc/init.d/apnprofile-service" ]; then + if /etc/init.d/apnprofile-service stop; then + log_message "INFO" "APN Profile service stopped" + else + append_error "Failed to stop APN Profile service" + log_message "ERROR" "Failed to stop APN Profile service" + fi + + if /etc/init.d/apnprofile-service disable; then + log_message "INFO" "APN Profile service disabled" + else + append_error "Failed to disable APN Profile service" + log_message "ERROR" "Failed to disable APN Profile service" + fi + + # Remove the init.d script + if rm -f "/etc/init.d/apnprofile-service"; then + log_message "INFO" "Removed init.d script" + else + append_error "Failed to remove init.d script" + log_message "ERROR" "Failed to remove init.d script" + fi +fi + +# Remove service script +if [ -f "/www/cgi-bin/services/apnprofile.sh" ]; then + if rm -f "/www/cgi-bin/services/apnprofile.sh"; then + log_message "INFO" "Removed service script" + else + append_error "Failed to remove service script" + log_message "ERROR" "Failed to remove service script" + fi +fi + +# Remove symlinks in rc.d if they exist +for link in /etc/rc.d/S??apnprofile-service /etc/rc.d/K??apnprofile-service; do + if [ -L "$link" ]; then + if rm -f "$link"; then + log_message "INFO" "Removed rc.d symlink: $link" + else + append_error "Failed to remove rc.d symlink: $link" + log_message "ERROR" "Failed to remove rc.d symlink: $link" + fi + fi +done + +# Remove UCI configuration (only removes apn_profile section, leaves other sections intact) +if uci -q get quecmanager.apn_profile >/dev/null; then + if uci delete quecmanager.apn_profile && uci commit quecmanager; then + log_message "INFO" "Removed UCI configuration" + else + append_error "Failed to remove UCI configuration" + log_message "ERROR" "Failed to remove UCI configuration" + fi +fi + +# Kill any remaining processes +if pkill -f "/www/cgi-bin/services/apnprofile.sh"; then + log_message "INFO" "Killed remaining APN Profile processes" +fi + +# Clean up temporary files +for file in \ + "/tmp/at_pipe.txt" \ + "/var/run/apnprofile.pid" \ + "/tmp/apn_result.txt" \ + "/tmp/debug.log" \ + "/tmp/inputICCID.txt" \ + "/tmp/outputICCID.txt" \ + "/tmp/inputAPN.txt" \ + "/tmp/outputAPN.txt" +do + if [ -f "$file" ]; then + if rm -f "$file"; then + log_message "INFO" "Removed temporary file: $file" + else + append_error "Failed to remove temporary file: $file" + log_message "ERROR" "Failed to remove temporary file: $file" + fi + fi +done + +log_message "INFO" "APN Profile cleanup completed" + +# Return appropriate JSON response +if [ "$has_error" = true ]; then + echo "{\"status\": \"error\", \"message\": \"$error_message\"}" +else + echo "{\"status\": \"success\", \"message\": \"APN Profile service successfully removed\"}" +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/apn-profiles/fetch-apn-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/apn-profiles/fetch-apn-profile.sh new file mode 100644 index 0000000..216bd2f --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/apn-profiles/fetch-apn-profile.sh @@ -0,0 +1,144 @@ +#!/bin/sh + +# Set headers for JSON response +echo "Content-type: application/json" +echo "" + +# Load UCI functions +. /lib/functions.sh + +# Function to safely get UCI value with default +get_uci_value() { + local value + config_get value apn_profile "$1" "$2" + echo "${value:-$2}" +} + +# Function to check if service is running +check_service_status() { + if [ -f "/var/run/apnprofile.pid" ]; then + pid=$(cat /var/run/apnprofile.pid) + if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then + echo "running" + return + fi + fi + + # Double check using process search + if pgrep -f "/www/cgi-bin/services/apnprofile.sh" >/dev/null; then + echo "running" + return + fi + + echo "stopped" +} + +# Function to get last log entry +get_last_log() { + local LOG_FILE="/tmp/log/apnprofile/apnprofile.log" + if [ -f "$LOG_FILE" ]; then + tail -n 1 "$LOG_FILE" + else + echo "No log entries found" + fi +} + +# Function to check if init.d service is enabled +check_service_enabled() { + if [ -f "/etc/init.d/apnprofile-service" ]; then + if /etc/init.d/apnprofile-service enabled; then + echo "true" + return + fi + fi + echo "false" +} + +# Load QuecManager configuration +config_load quecmanager + +# Check if APN Profile section exists +if ! uci -q get quecmanager.apn_profile >/dev/null; then + echo '{"status": "inactive", "message": "APN Profile service is not configured"}' + exit 0 +fi + +# Get enabled status from UCI +enabled=$(get_uci_value "enabled" "0") + +if [ "$enabled" != "1" ]; then + echo '{"status": "inactive", "message": "APN Profile service is disabled"}' + exit 0 +fi + +# Check if service script exists +if [ ! -f "/www/cgi-bin/services/apnprofile.sh" ]; then + echo '{"status": "error", "message": "Service script is missing"}' + exit 0 +fi + +# Get service status information +service_status=$(check_service_status) +service_enabled=$(check_service_enabled) +last_log=$(get_last_log) + +# Fetch all configuration values from UCI +iccid_profile1=$(get_uci_value "iccid_profile1" "") +apn_profile1=$(get_uci_value "apn_profile1" "") +pdp_type1=$(get_uci_value "pdp_type1" "") +iccid_profile2=$(get_uci_value "iccid_profile2" "") +apn_profile2=$(get_uci_value "apn_profile2" "") +pdp_type2=$(get_uci_value "pdp_type2" "") + +# Function to check if profile data exists +validate_profile_data() { + local iccid="$1" + local apn="$2" + local pdp="$3" + + [ -n "$iccid" ] && [ -n "$apn" ] && [ -n "$pdp" ] +} + +# Build JSON response +cat <> "$LOG_FILE" + logger -t apnprofile "${level}: ${message}" +} + +# Create required directories +mkdir -p /www/cgi-bin/services +mkdir -p /etc/init.d + +# Function to create service script +create_service_script() { + cat > /www/cgi-bin/services/apnprofile.sh <<'EOL' +#!/bin/sh + +# Load UCI functions +. /lib/functions.sh + +# Define file paths +QUEUE_FILE="/tmp/at_pipe.txt" +LOG_DIR="/tmp/log/apnprofile" +LOG_FILE="${LOG_DIR}/apnprofile.log" +PID_FILE="/var/run/apnprofile.pid" +STATE_FILE="/tmp/apnprofile_state.json" + +mkdir -p "${LOG_DIR}" +[ ! -f "${QUEUE_FILE}" ] && touch "${QUEUE_FILE}" + +# Save PID +echo $$ > "${PID_FILE}" + +# Enhanced logging function +log_message() { + local level="$1" + local message="$2" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" + logger -t apnprofile "${level}: ${message}" +} + +# AT command handling with locking +handle_lock() { + local max_wait=30 + local wait_count=0 + + while [ -f "$QUEUE_FILE" ] && grep -q "AT_COMMAND" "$QUEUE_FILE" && [ $wait_count -lt $max_wait ]; do + sleep 1 + wait_count=$((wait_count + 1)) + done + + printf '{"command":"AT_COMMAND","pid":"%s","timestamp":"%s"}\n' "$$" "$(date '+%H:%M:%S')" >> "$QUEUE_FILE" +} + +# Execute AT command with retries +execute_at_command() { + local command="$1" + local result="" + local retry_count=0 + local max_retries=3 + + while [ $retry_count -lt $max_retries ]; do + handle_lock + result=$(sms_tool at "$command" -t 4 2>&1) + local status=$? + sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" + + if [ $status -eq 0 ] && [ -n "$result" ]; then + echo "$result" + return 0 + fi + + retry_count=$((retry_count + 1)) + [ $retry_count -lt $max_retries ] && sleep 2 + done + + return 1 +} + +# Get current ICCID +get_current_iccid() { + local result=$(execute_at_command "AT+ICCID") + if [ $? -eq 0 ] && echo "$result" | grep -q "+ICCID:"; then + echo "$result" | grep "+ICCID:" | cut -d' ' -f2 | tr -d '[:space:]' + return 0 + fi + return 1 +} + +# Set APN with error handling +set_apn() { + local pdp_type="$1" + local apn="$2" + + if [ -z "$pdp_type" ] || [ -z "$apn" ]; then + return 1 + fi + + if execute_at_command "AT+CGDCONT=1,\"$pdp_type\",\"$apn\";+COPS=2;+COPS=0"; then + return 0 + fi + return 1 +} + +# Function to get current configuration hash +get_config_hash() { + config_load quecmanager + local hash_input="" + + # Get Profile 1 + config_get ICCID_PROFILE1 apn_profile iccid_profile1 + config_get APN_PROFILE1 apn_profile apn_profile1 + config_get PDP_TYPE1 apn_profile pdp_type1 + + # Get Profile 2 + config_get ICCID_PROFILE2 apn_profile iccid_profile2 + config_get APN_PROFILE2 apn_profile apn_profile2 + config_get PDP_TYPE2 apn_profile pdp_type2 + + hash_input="${ICCID_PROFILE1}${APN_PROFILE1}${PDP_TYPE1}${ICCID_PROFILE2}${APN_PROFILE2}${PDP_TYPE2}" + echo "$hash_input" | md5sum | cut -d' ' -f1 +} + +# Function to read state file +read_state() { + if [ -f "$STATE_FILE" ]; then + cat "$STATE_FILE" + else + echo "{}" + fi +} + +# Function to write state file +write_state() { + local current_iccid="$1" + local config_hash="$2" + local status="$3" + + printf '{"iccid":"%s","config_hash":"%s","status":"%s","timestamp":"%s"}' \ + "$current_iccid" "$config_hash" "$status" "$(date '+%Y-%m-%d %H:%M:%S')" > "$STATE_FILE" +} + +# Main service loop +while true; do + # Get current state + current_state=$(read_state) + current_iccid=$(get_current_iccid) + config_hash=$(get_config_hash) + + # Extract values from current state + state_iccid=$(echo "$current_state" | sed -n 's/.*"iccid":"\([^"]*\)".*/\1/p') + state_hash=$(echo "$current_state" | sed -n 's/.*"config_hash":"\([^"]*\)".*/\1/p') + + needs_update=0 + + # Check if update is needed + if [ ! -f "$STATE_FILE" ]; then + log_message "INFO" "No state file found, will apply profile" + needs_update=1 + elif [ "$current_iccid" != "$state_iccid" ]; then + log_message "INFO" "ICCID changed from $state_iccid to $current_iccid" + needs_update=1 + elif [ "$config_hash" != "$state_hash" ]; then + log_message "INFO" "Configuration changed" + needs_update=1 + fi + + if [ $needs_update -eq 1 ] && [ -n "$current_iccid" ]; then + config_load quecmanager + + # Get Profile 1 + config_get ICCID_PROFILE1 apn_profile iccid_profile1 + config_get APN_PROFILE1 apn_profile apn_profile1 + config_get PDP_TYPE1 apn_profile pdp_type1 + + # Get Profile 2 + config_get ICCID_PROFILE2 apn_profile iccid_profile2 + config_get APN_PROFILE2 apn_profile apn_profile2 + config_get PDP_TYPE2 apn_profile pdp_type2 + + if [ "${current_iccid}" = "${ICCID_PROFILE1}" ]; then + if set_apn "$PDP_TYPE1" "$APN_PROFILE1"; then + log_message "INFO" "Successfully applied Profile 1" + write_state "$current_iccid" "$config_hash" "success" + else + log_message "ERROR" "Failed to apply Profile 1" + write_state "$current_iccid" "$config_hash" "error" + fi + elif [ -n "$ICCID_PROFILE2" ] && [ "${current_iccid}" = "${ICCID_PROFILE2}" ]; then + if set_apn "$PDP_TYPE2" "$APN_PROFILE2"; then + log_message "INFO" "Successfully applied Profile 2" + write_state "$current_iccid" "$config_hash" "success" + else + log_message "ERROR" "Failed to apply Profile 2" + write_state "$current_iccid" "$config_hash" "error" + fi + else + log_message "INFO" "No matching ICCID profile found" + write_state "$current_iccid" "$config_hash" "no_match" + fi + fi + + sleep 10 +done +EOL + + chmod 755 /www/cgi-bin/services/apnprofile.sh +} + +# Function to create init.d script +create_init_script() { + cat > /etc/init.d/apnprofile-service <<'EOL' +#!/bin/sh /etc/rc.common + +START=99 +STOP=10 +USE_PROCD=1 + +start_service() { + local enabled + + # Check if service is enabled in UCI + config_load quecmanager + config_get enabled apn_profile enabled '0' + + [ "$enabled" != "1" ] && return 0 + + procd_open_instance + procd_set_param command /www/cgi-bin/services/apnprofile.sh + procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param nice 19 + procd_close_instance +} + +service_triggers() { + procd_add_reload_trigger "quecmanager" +} + +reload_service() { + stop + start +} +EOL + + chmod 755 /etc/init.d/apnprofile-service +} + +# Initialize UCI configuration +touch /etc/config/quecmanager + +# Remove existing APN profile section if it exists +uci -q delete quecmanager.apn_profile + +# Create new APN profile section +uci set quecmanager.apn_profile=service +uci set quecmanager.apn_profile.enabled=1 + +# Set Profile 1 configuration +uci set quecmanager.apn_profile.iccid_profile1="$iccidProfile1" +uci set quecmanager.apn_profile.apn_profile1="$apnProfile1" +uci set quecmanager.apn_profile.pdp_type1="$pdpType1" + +# Set Profile 2 configuration if provided +if [ -n "$iccidProfile2" ]; then + uci set quecmanager.apn_profile.iccid_profile2="$iccidProfile2" + uci set quecmanager.apn_profile.apn_profile2="$apnProfile2" + uci set quecmanager.apn_profile.pdp_type2="$pdpType2" +fi + +# Commit UCI changes +if ! uci commit quecmanager; then + log_message "ERROR" "Failed to save UCI configuration" + echo '{"status": "error", "message": "Failed to save UCI configuration"}' + exit 1 +fi + +log_message "INFO" "UCI configuration saved successfully" + +# Create service script if it doesn't exist +if [ ! -f "/www/cgi-bin/services/apnprofile.sh" ]; then + create_service_script + log_message "INFO" "Created service script" +fi + +# Create init.d script if it doesn't exist +if [ ! -f "/etc/init.d/apnprofile-service" ]; then + create_init_script + log_message "INFO" "Created init.d script" +fi + +# Enable and start the service +/etc/init.d/apnprofile-service enable +if /etc/init.d/apnprofile-service restart; then + log_message "INFO" "Service started successfully" + echo '{"status": "success", "message": "APN profiles saved and service started"}' +else + log_message "ERROR" "Failed to start service" + echo '{"status": "error", "message": "Failed to start service"}' +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/imei-profiles/delete-imei-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/imei-profiles/delete-imei-profile.sh new file mode 100644 index 0000000..b6f4c76 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/imei-profiles/delete-imei-profile.sh @@ -0,0 +1,127 @@ +#!/bin/sh + +echo "Content-type: application/json" +echo "" + +# Initialize error tracking +has_error=false +error_message="" + +# Function to append to error message +append_error() { + if [ -z "$error_message" ]; then + error_message="$1" + else + error_message="$error_message; $1" + fi + has_error=true +} + +# Function to log cleanup events +log_message() { + local level="$1" + local message="$2" + local LOG_DIR="/tmp/log/imeiprofile" + local LOG_FILE="${LOG_DIR}/imeiprofile.log" + + # Ensure log directory exists + mkdir -p "${LOG_DIR}" + + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" + logger -t imeiprofile "${level}: ${message}" +} + +log_message "INFO" "Starting IMEI Profile cleanup process" + +# Stop and disable the service +if [ -f "/etc/init.d/imeiprofile-service" ]; then + if /etc/init.d/imeiprofile-service stop; then + log_message "INFO" "IMEI Profile service stopped" + else + append_error "Failed to stop IMEI Profile service" + log_message "ERROR" "Failed to stop IMEI Profile service" + fi + + if /etc/init.d/imeiprofile-service disable; then + log_message "INFO" "IMEI Profile service disabled" + else + append_error "Failed to disable IMEI Profile service" + log_message "ERROR" "Failed to disable IMEI Profile service" + fi + + # Remove the init.d script + if rm -f "/etc/init.d/imeiprofile-service"; then + log_message "INFO" "Removed init.d script" + else + append_error "Failed to remove init.d script" + log_message "ERROR" "Failed to remove init.d script" + fi +fi + +# Remove service script +if [ -f "/www/cgi-bin/services/imeiprofile.sh" ]; then + if rm -f "/www/cgi-bin/services/imeiprofile.sh"; then + log_message "INFO" "Removed service script" + else + append_error "Failed to remove service script" + log_message "ERROR" "Failed to remove service script" + fi +fi + +# Remove symlinks in rc.d if they exist +for link in /etc/rc.d/S??imeiprofile-service /etc/rc.d/K??imeiprofile-service; do + if [ -L "$link" ]; then + if rm -f "$link"; then + log_message "INFO" "Removed rc.d symlink: $link" + else + append_error "Failed to remove rc.d symlink: $link" + log_message "ERROR" "Failed to remove rc.d symlink: $link" + fi + fi +done + +# Remove UCI configuration +if uci -q get quecmanager.imei_profile >/dev/null; then + if uci delete quecmanager.imei_profile && uci commit quecmanager; then + log_message "INFO" "Removed UCI configuration" + else + append_error "Failed to remove UCI configuration" + log_message "ERROR" "Failed to remove UCI configuration" + fi +fi + +# Kill any remaining processes +if pkill -f "/www/cgi-bin/services/imeiprofile.sh"; then + log_message "INFO" "Killed remaining IMEI Profile processes" +fi + +# Clean up temporary files +for file in \ + "/tmp/at_pipe.txt" \ + "/var/run/imeiprofile.pid" \ + "/tmp/imei_result.txt" \ + "/tmp/debug.log" \ + "/tmp/inputICCID.txt" \ + "/tmp/outputICCID.txt" \ + "/tmp/inputIMEI.txt" \ + "/tmp/outputIMEI.txt" +do + if [ -f "$file" ]; then + if rm -f "$file"; then + log_message "INFO" "Removed temporary file: $file" + else + append_error "Failed to remove temporary file: $file" + log_message "ERROR" "Failed to remove temporary file: $file" + fi + fi +done + +log_message "INFO" "IMEI Profile cleanup completed" + +# Return appropriate JSON response +if [ "$has_error" = true ]; then + echo "{\"status\": \"error\", \"message\": \"$error_message\"}" +else + echo "{\"status\": \"success\", \"message\": \"IMEI Profile service successfully removed\"}" +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/imei-profiles/fetch-imei-profile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/imei-profiles/fetch-imei-profile.sh new file mode 100644 index 0000000..25ebeb8 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/imei-profiles/fetch-imei-profile.sh @@ -0,0 +1,138 @@ +#!/bin/sh + +# Set headers for JSON response +echo "Content-type: application/json" +echo "" + +# Load UCI functions +. /lib/functions.sh + +# Function to safely get UCI value with default +get_uci_value() { + local value + config_get value imei_profile "$1" "$2" + echo "${value:-$2}" +} + +# Function to check if service is running +check_service_status() { + if [ -f "/var/run/imeiprofile.pid" ]; then + pid=$(cat /var/run/imeiprofile.pid) + if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then + echo "running" + return + fi + fi + + # Double check using process search + if pgrep -f "/www/cgi-bin/services/imeiprofile.sh" >/dev/null; then + echo "running" + return + fi + + echo "stopped" +} + +# Function to get last log entry +get_last_log() { + local LOG_FILE="/tmp/log/imeiprofile/imeiprofile.log" + if [ -f "$LOG_FILE" ]; then + tail -n 1 "$LOG_FILE" + else + echo "No log entries found" + fi +} + +# Function to check if init.d service is enabled +check_service_enabled() { + if [ -f "/etc/init.d/imeiprofile-service" ]; then + if /etc/init.d/imeiprofile-service enabled; then + echo "true" + return + fi + fi + echo "false" +} + +# Load QuecManager configuration +config_load quecmanager + +# Check if IMEI Profile section exists +if ! uci -q get quecmanager.imei_profile >/dev/null; then + echo '{"status": "inactive", "message": "IMEI Profile service is not configured"}' + exit 0 +fi + +# Get enabled status from UCI +enabled=$(get_uci_value "enabled" "0") + +if [ "$enabled" != "1" ]; then + echo '{"status": "inactive", "message": "IMEI Profile service is disabled"}' + exit 0 +fi + +# Check if service script exists +if [ ! -f "/www/cgi-bin/services/imeiprofile.sh" ]; then + echo '{"status": "error", "message": "Service script is missing"}' + exit 0 +fi + +# Get service status information +service_status=$(check_service_status) +service_enabled=$(check_service_enabled) +last_log=$(get_last_log) + +# Fetch configuration values from UCI +iccid_profile1=$(get_uci_value "iccid_profile1" "") +imei_profile1=$(get_uci_value "imei_profile1" "") +iccid_profile2=$(get_uci_value "iccid_profile2" "") +imei_profile2=$(get_uci_value "imei_profile2" "") + +# Function to check if profile data exists +validate_profile_data() { + local iccid="$1" + local imei="$2" + [ -n "$iccid" ] && [ -n "$imei" ] +} + +# Build JSON response +cat <> "$LOG_FILE" + logger -t imeiprofile "${level}: ${message}" +} + +# Create required directories +mkdir -p /www/cgi-bin/services + +# Function to create service script +create_service_script() { + cat > /www/cgi-bin/services/imeiprofile.sh <<'EOL' +#!/bin/sh + +# Load UCI functions +. /lib/functions.sh + +# Define file paths +QUEUE_FILE="/tmp/at_pipe.txt" +LOG_DIR="/tmp/log/imeiprofile" +LOG_FILE="${LOG_DIR}/imeiprofile.log" +PID_FILE="/var/run/imeiprofile.pid" + +mkdir -p "${LOG_DIR}" +[ ! -f "${QUEUE_FILE}" ] && touch "${QUEUE_FILE}" + +# Save PID +echo $$ > "${PID_FILE}" + +# Enhanced logging function +log_message() { + local level="$1" + local message="$2" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" + logger -t imeiprofile "${level}: ${message}" +} + +# AT command handling with locking +handle_lock() { + local max_wait=30 + local wait_count=0 + + while [ -f "$QUEUE_FILE" ] && grep -q "AT_COMMAND" "$QUEUE_FILE" && [ $wait_count -lt $max_wait ]; do + sleep 1 + wait_count=$((wait_count + 1)) + done + + printf '{"command":"AT_COMMAND","pid":"%s","timestamp":"%s"}\n' "$$" "$(date '+%H:%M:%S')" >> "$QUEUE_FILE" +} + +# Execute AT command with retries +execute_at_command() { + local command="$1" + local result="" + local retry_count=0 + local max_retries=3 + + while [ $retry_count -lt $max_retries ]; do + handle_lock + result=$(sms_tool at "$command" -t 4 2>&1) + local status=$? + sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" + + if [ $status -eq 0 ] && [ -n "$result" ]; then + echo "$result" + return 0 + fi + + retry_count=$((retry_count + 1)) + [ $retry_count -lt $max_retries ] && sleep 2 + done + + return 1 +} + +# Get current ICCID +get_current_iccid() { + local result=$(execute_at_command "AT+ICCID") + if [ $? -eq 0 ] && echo "$result" | grep -q "+ICCID:"; then + echo "$result" | grep "+ICCID:" | cut -d' ' -f2 | tr -d '[:space:]' + return 0 + fi + return 1 +} + +# Get current IMEI +get_current_imei() { + local result=$(execute_at_command "AT+CGSN") + if [ $? -eq 0 ]; then + echo "$result" | grep -v "AT+CGSN" | grep -v "OK" | tr -d '\r\n[:space:]' + return 0 + fi + return 1 +} + +# Set IMEI +set_imei() { + local imei="$1" + if execute_at_command "AT+EGMR=1,7,\"$imei\";+QPOWD=1"; then + return 0 + fi + return 1 +} + +# Function to safely get UCI value with default +get_uci_value() { + local value + config_get value imei_profile "$1" "$2" + echo "${value:-$2}" +} + +# Main service loop +while true; do + # Load current configuration + config_load quecmanager + + # Get Profile 1 + iccid_profile1=$(get_uci_value "iccid_profile1") + imei_profile1=$(get_uci_value "imei_profile1") + + # Get Profile 2 + iccid_profile2=$(get_uci_value "iccid_profile2") + imei_profile2=$(get_uci_value "imei_profile2") + + # Get current ICCID and IMEI + current_iccid=$(get_current_iccid) + current_imei=$(get_current_imei) + + if [ $? -eq 0 ] && [ -n "$current_iccid" ] && [ -n "$current_imei" ]; then + if [ "${current_iccid}" = "${iccid_profile1}" ]; then + if [ "${current_imei}" != "${imei_profile1}" ]; then + if set_imei "${imei_profile1}"; then + log_message "INFO" "Successfully applied Profile 1 IMEI" + else + log_message "ERROR" "Failed to apply Profile 1 IMEI" + fi + fi + elif [ -n "$iccid_profile2" ] && [ "${current_iccid}" = "${iccid_profile2}" ]; then + if [ "${current_imei}" != "${imei_profile2}" ]; then + if set_imei "${imei_profile2}"; then + log_message "INFO" "Successfully applied Profile 2 IMEI" + else + log_message "ERROR" "Failed to apply Profile 2 IMEI" + fi + fi + else + log_message "INFO" "No matching ICCID profile found" + fi + else + log_message "ERROR" "Failed to get current ICCID or IMEI" + fi + + sleep 30 +done +EOL + + chmod 755 /www/cgi-bin/services/imeiprofile.sh +} + +# Function to create init.d script +create_init_script() { + cat > /etc/init.d/imeiprofile-service <<'EOL' +#!/bin/sh /etc/rc.common + +START=99 +STOP=10 +USE_PROCD=1 + +start_service() { + local enabled + + # Check if service is enabled in UCI + config_load quecmanager + config_get enabled imei_profile enabled '0' + + [ "$enabled" != "1" ] && return 0 + + procd_open_instance + procd_set_param command /www/cgi-bin/services/imeiprofile.sh + procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param nice 19 + procd_close_instance +} + +service_triggers() { + procd_add_reload_trigger "quecmanager" +} + +reload_service() { + stop + start +} +EOL + + chmod 755 /etc/init.d/imeiprofile-service +} + +# Initialize UCI configuration +touch /etc/config/quecmanager + +# Remove existing IMEI profile section if it exists +uci -q delete quecmanager.imei_profile + +# Create new IMEI profile section +uci set quecmanager.imei_profile=service +uci set quecmanager.imei_profile.enabled=1 + +# Set Profile 1 configuration +uci set quecmanager.imei_profile.iccid_profile1="$iccidProfile1" +uci set quecmanager.imei_profile.imei_profile1="$imeiProfile1" + +# Set Profile 2 configuration if provided +if [ -n "$iccidProfile2" ]; then + uci set quecmanager.imei_profile.iccid_profile2="$iccidProfile2" + uci set quecmanager.imei_profile.imei_profile2="$imeiProfile2" +fi + +# Commit UCI changes +if ! uci commit quecmanager; then + log_message "ERROR" "Failed to save UCI configuration" + echo '{"status": "error", "message": "Failed to save UCI configuration"}' + exit 1 +fi + +log_message "INFO" "UCI configuration saved successfully" + +# Create service script if it doesn't exist +if [ ! -f "/www/cgi-bin/services/imeiprofile.sh" ]; then + create_service_script + log_message "INFO" "Created service script" +fi + +# Create init.d script if it doesn't exist +if [ ! -f "/etc/init.d/imeiprofile-service" ]; then + create_init_script + log_message "INFO" "Created init.d script" +fi + +# Enable and start the service +/etc/init.d/imeiprofile-service enable +if /etc/init.d/imeiprofile-service restart; then + log_message "INFO" "Service started successfully" + echo '{"status": "success", "message": "IMEI profiles saved and service started"}' +else + log_message "ERROR" "Failed to start service" + echo '{"status": "error", "message": "Failed to start service"}' +fi diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/scheduled_cell_locking.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/scheduled_cell_locking.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/scheduled_cell_locking.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/scheduled_cell_locking.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/sms/sms_delete.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/sms/sms_delete.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/sms/sms_delete.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/sms/sms_delete.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/sms/sms_inbox.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/sms/sms_inbox.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/sms/sms_inbox.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/sms/sms_inbox.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/sms/sms_send.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/sms/sms_send.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/cell-settings/sms/sms_send.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/cell-settings/sms/sms_send.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan.sh new file mode 100644 index 0000000..7606a9f --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan.sh @@ -0,0 +1,168 @@ +#!/bin/sh + +# Set content type to JSON +echo "Content-type: application/json" +echo "" + +# Configuration +QUEUE_DIR="/tmp/at_queue" +RESULTS_DIR="$QUEUE_DIR/results" +TOKEN_FILE="$QUEUE_DIR/token" +RESULT_FILE="/tmp/qscan_result.json" +WORKER_SCRIPT="/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan_worker.sh" +PID_FILE="/tmp/cell_scan.pid" +SCAN_COMMAND="AT+QSCAN=3,1" +SCAN_TIMEOUT=200 +LOCK_ID="CELL_SCAN_$(date +%s)_$$" + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t at_queue -p "daemon.$level" "cell_scan: $1" +} + +# Function to output JSON response +output_json() { + local status="$1" + local message="$2" + log_message "Sending response: status=$status, message=$message" + printf '{"status":"%s","message":"%s"}\n' "$status" "$message" + exit 0 +} + +# Function to check if worker is running +check_worker_running() { + if [ -f "$PID_FILE" ]; then + pid=$(cat "$PID_FILE") + if kill -0 "$pid" 2>/dev/null; then + log_message "Worker process $pid is running" + return 0 + fi + log_message "Removing stale PID file for process $pid" + rm -f "$PID_FILE" + fi + return 1 +} + +# Enhanced JSON string escaping function +escape_json() { + printf '%s' "$1" | awk ' + BEGIN { RS="\n"; ORS="\\n" } + { + gsub(/\\/, "\\\\") + gsub(/"/, "\\\"") + gsub(/\r/, "") + gsub(/\t/, "\\t") + gsub(/\f/, "\\f") + gsub(/\b/, "\\b") + print + } + ' | sed 's/\\n$//' +} + +# Acquire token directly with high priority +acquire_token() { + local priority=1 # Highest priority for cell scan + local max_attempts=10 + local attempt=0 + + while [ $attempt -lt $max_attempts ]; do + # Check if token file exists + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "info" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Try again - higher priority token exists + log_message "Token held by $current_holder with priority $current_priority, retrying..." "debug" + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$LOCK_ID\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$LOCK_ID" ]; then + log_message "Successfully acquired token with priority $priority" "info" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Main execution +{ + # If scan is running, return running status + if check_worker_running; then + output_json "running" "Cell scan is in progress" + fi + + # Start new scan + rm -f "$RESULT_FILE" + log_message "Starting new cell scan" "info" + + # Ensure worker script is executable + chmod +x "$WORKER_SCRIPT" 2>/dev/null + + # Start worker script with proper parameters + log_message "Attempting to start worker script: $WORKER_SCRIPT" "info" + + # Check if worker script exists + if [ ! -f "$WORKER_SCRIPT" ]; then + log_message "Worker script not found: $WORKER_SCRIPT" "error" + output_json "error" "Worker script not found" + fi + + # Ensure QUEUE_DIR exists + mkdir -p "$QUEUE_DIR" "$RESULTS_DIR" + chmod 755 "$QUEUE_DIR" + chmod 755 "$RESULTS_DIR" + + # Start worker with debug logging + WORKER_PID=$ + (sh "$WORKER_SCRIPT" >/tmp/cell_scan_worker.log 2>&1) & + WORKER_PID=$! + log_message "Worker script started with PID $WORKER_PID" "info" + + # The worker process runs in the background and completes quickly + # We don't need to check if it's still running as it might finish before we check + log_message "Worker process $WORKER_PID started in background" "info" + + # Instead of checking if the process is running, check if it created the result file + sleep 2 + if [ -f "$RESULT_FILE" ]; then + log_message "Worker successfully created result file" "info" + else + log_message "Waiting for worker to create result file..." "info" + # If no result file yet, check for errors + if [ -f "/tmp/cell_scan_worker.log" ]; then + WORKER_LOG=$(cat "/tmp/cell_scan_worker.log" | head -20) + log_message "Worker log: $WORKER_LOG" "info" + fi + fi + output_json "running" "Started new cell scan" +} || { + # Error handler + log_message "Script failed with error" "error" + output_json "error" "Internal error occurred" +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan_worker.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan_worker.sh new file mode 100644 index 0000000..56f803a --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/cell_scan_worker.sh @@ -0,0 +1,323 @@ +#!/bin/sh + +# Configuration +QUEUE_DIR="/tmp/at_queue" +RESULTS_DIR="$QUEUE_DIR/results" +TOKEN_FILE="$QUEUE_DIR/token" +RESULT_FILE="/tmp/qscan_result.json" +PID_FILE="/tmp/cell_scan.pid" +SCAN_COMMAND="AT+QSCAN=3,1" +SCAN_TIMEOUT=200 +LOCK_ID="CELL_SCAN_$(date +%s)_$$" + +# Enable shell debugging for better logging +set -x + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t at_queue -p "daemon.$level" "cell_scan_worker: $1" +} + +# Function to clean up stale temporary files +cleanup_stale_files() { + log_message "Cleaning up stale temporary files" "info" + + # Clean up old start_time files (older than 1 hour) + find "$QUEUE_DIR" -name "start_time.qscan_*" -type f -mmin +60 -delete 2>/dev/null + + # Clean up any start_time files that match our current process just in case + find "$QUEUE_DIR" -name "start_time.qscan_*_$" -type f -delete 2>/dev/null + + log_message "Stale file cleanup completed" "info" +} + +# Function to check directories and permissions +check_environment() { + log_message "Checking environment" "info" + + # Clean up stale files first + cleanup_stale_files + + # Check if directories exist, create if they don't + if [ ! -d "$QUEUE_DIR" ]; then + mkdir -p "$QUEUE_DIR" + log_message "Created queue directory: $QUEUE_DIR" "info" + fi + + if [ ! -d "$RESULTS_DIR" ]; then + mkdir -p "$RESULTS_DIR" + log_message "Created results directory: $RESULTS_DIR" "info" + fi + + # Check permissions + chmod 755 "$QUEUE_DIR" 2>/dev/null + chmod 755 "$RESULTS_DIR" 2>/dev/null + + # Check if sms_tool exists and is executable + if ! which sms_tool >/dev/null 2>&1; then + log_message "sms_tool not found in PATH" "error" + return 1 + fi + + # Test directory write permissions + if ! touch "$QUEUE_DIR/test_$$" 2>/dev/null; then + log_message "Cannot write to $QUEUE_DIR" "error" + return 1 + fi + rm -f "$QUEUE_DIR/test_$$" 2>/dev/null + + if ! touch "$RESULTS_DIR/test_$$" 2>/dev/null; then + log_message "Cannot write to $RESULTS_DIR" "error" + return 1 + fi + rm -f "$RESULTS_DIR/test_$$" 2>/dev/null + + log_message "Environment check passed" "info" + return 0 +} + +# Function to clean AT command output +clean_output() { + while IFS= read -r line; do + case "$line" in + "OK" | "" | *"ERROR"*) + continue + ;; + *) + printf '%s\n' "$line" + ;; + esac + done | sed 's/\r//g' | tr '\n' '\r' | sed 's/\r$//' | tr '\r' '\n' +} + +# Enhanced JSON string escaping function +escape_json() { + printf '%s' "$1" | awk ' + BEGIN { RS="\n"; ORS="\\n" } + { + gsub(/\\/, "\\\\") + gsub(/"/, "\\\"") + gsub(/\r/, "") + gsub(/\t/, "\\t") + gsub(/\f/, "\\f") + gsub(/\b/, "\\b") + print + } + ' | sed 's/\\n$//' +} + +# Function to check if scan is already running +check_running() { + if [ -f "$PID_FILE" ]; then + pid=$(cat "$PID_FILE") + if kill -0 "$pid" 2>/dev/null; then + log_message "Cell scan already running (PID: $pid)" "warn" + return 0 + fi + rm -f "$PID_FILE" + fi + return 1 +} + +# Acquire token directly with high priority +acquire_token() { + local priority=1 # Highest priority for cell scan + local max_attempts=10 + local attempt=0 + + while [ $attempt -lt $max_attempts ]; do + # Check if token file exists + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "info" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Try again + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$LOCK_ID\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$LOCK_ID" ]; then + log_message "Successfully acquired token with priority $priority" "info" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Release token directly +release_token() { + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$LOCK_ID" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + log_message "Released token" "info" + return 0 + fi + log_message "Token held by $current_holder, not by us ($LOCK_ID)" "warn" + fi + return 1 +} + +# Main execution +main() { + # Start logging + log_message "Worker script started" "info" + + # Check if already running + if check_running; then + log_message "Cell scan already running, exiting" "warn" + exit 1 + fi + + # Create PID file + echo "$$" > "$PID_FILE" + chmod 644 "$PID_FILE" 2>/dev/null + log_message "Created PID file: $$" "info" + + # Set up cleanup on exit + trap 'log_message "Cleaning up and exiting" "info"; release_token; rm -f "$PID_FILE"; exit' INT TERM EXIT + + # Acquire token for AT command execution + if ! acquire_token; then + log_message "Failed to acquire token, exiting" "error" + rm -f "$PID_FILE" + exit 1 + fi + + log_message "Token acquired, executing scan command: $SCAN_COMMAND" "info" + + # Execute scan with native timeout option (without relying on timeout command) + # Use the -t option of sms_tool instead of the timeout command + log_message "Executing command with timeout: $SCAN_TIMEOUT seconds" "info" + SCAN_OUTPUT=$(sms_tool at "$SCAN_COMMAND" -t $SCAN_TIMEOUT 2>&1 | clean_output) + SCAN_STATUS=$? + log_message "Command execution completed with status: $SCAN_STATUS" "info" + + # Process and store result + if [ $SCAN_STATUS -eq 0 ]; then + # Check if output contains valid scan data or error + if echo "$SCAN_OUTPUT" | grep -q "+QSCAN"; then + # Set timestamp + TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') + + # Valid scan data found - don't add the "Scan completed but no valid data" prefix + log_message "Scan completed with valid data" "info" + + # Create the result file with proper JSON formatting + printf '{"status":"success","timestamp":"%s","output":%s}\n' \ + "$TIMESTAMP" \ + "$(printf '%s' "$SCAN_OUTPUT" | sed 's/"/\\"/g' | jq -R -s '.')" > "$RESULT_FILE" + chmod 644 "$RESULT_FILE" 2>/dev/null + else + # No valid scan data, but command completed + log_message "Command completed but no valid scan data found: $SCAN_OUTPUT" "warn" + SCAN_OUTPUT="Scan completed but no valid data returned: $SCAN_OUTPUT" + + # Create a result file indicating partial success + printf '{"status":"partial","timestamp":"%s","output":%s}\n' \ + "$(date '+%Y-%m-%d %H:%M:%S')" \ + "$(printf '%s' "$SCAN_OUTPUT" | sed 's/"/\\"/g' | jq -R -s '.')" > "$RESULT_FILE" + chmod 644 "$RESULT_FILE" 2>/dev/null + fi + + # Generate a command ID for the AT queue results format - use actual PID instead of $ + local my_pid="$$" + local cmd_id="qscan_$(date +%s)_${my_pid}" + local end_time=$(date +%s) + local start_time=$end_time + local duration=0 + + # Store start time for future reference + echo "$start_time" > "$QUEUE_DIR/start_time.$cmd_id" + + log_message "Creating AT queue result with ID: $cmd_id" "info" + + # Create JSON response in the AT queue format + local response=$(cat << EOF +{ + "command": { + "id": "$cmd_id", + "text": "$SCAN_COMMAND", + "timestamp": "$(date -Iseconds)" + }, + "response": { + "status": "success", + "raw_output": "$(escape_json "$SCAN_OUTPUT")", + "completion_time": "$end_time", + "duration_ms": $duration + } +} +EOF +) + + # Save the response to the AT queue results directory + printf "%s" "$response" > "$RESULTS_DIR/$cmd_id.json" + chmod 644 "$RESULTS_DIR/$cmd_id.json" + + # Clean up temporary files + rm -f "$QUEUE_DIR/start_time.$cmd_id" + log_message "Cleaned up temporary files" "info" + + # Release the token + release_token + return 0 + else + log_message "Scan failed with status: $SCAN_STATUS" "error" + printf '{"status":"error","timestamp":"%s","message":"Scan failed"}\n' \ + "$(date '+%Y-%m-%d %H:%M:%S')" > "$RESULT_FILE" + chmod 644 "$RESULT_FILE" 2>/dev/null + + # Release the token + release_token + return 1 + fi +} + +# Execute main function with proper error handling +{ + log_message "Worker script started with PID $$" "info" + + # Check environment before proceeding + check_environment || { + log_message "Environment check failed, aborting" "error" + exit 1 + } + + # Execute main function + main || { + log_message "Main function failed with error $?" "error" + release_token + rm -f "$PID_FILE" + exit 1 + } +} 2>/tmp/cell_scan_worker_debug.log || { + log_message "Script failed with error" "error" + release_token + rm -f "$PID_FILE" + exit 1 +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/check_scan.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/check_scan.sh new file mode 100644 index 0000000..c1a5312 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/check_scan.sh @@ -0,0 +1,124 @@ +#!/bin/sh + +# Set content type to JSON +echo "Content-type: application/json" +echo "" + +# Configuration +QUEUE_DIR="/tmp/at_queue" +RESULTS_DIR="$QUEUE_DIR/results" +RESULT_FILE="/tmp/qscan_result.json" +PID_FILE="/tmp/cell_scan.pid" +TOKEN_FILE="$QUEUE_DIR/token" + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t at_queue -p "daemon.$level" "check_scan: $1" +} + +# Function to output JSON response +output_json() { + local status="$1" + local message="$2" + + if [ "$status" = "success" ] && [ -f "$RESULT_FILE" ]; then + # Return the contents of the result file + cat "$RESULT_FILE" + else + printf '{"status":"%s","message":"%s","timestamp":"","output":""}\n' "$status" "$message" + fi +} + +# Check for scan token holder +check_token_holder() { + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ -n "$current_holder" ] && echo "$current_holder" | grep -q "CELL_SCAN"; then + log_message "Cell scan token is active: $current_holder" "debug" + return 0 + fi + fi + return 1 +} + +# Check if a scan is already in progress +check_scan_progress() { + # First check PID file + if [ -f "$PID_FILE" ]; then + pid=$(cat "$PID_FILE") + if kill -0 "$pid" 2>/dev/null; then + log_message "Scan in progress (PID: $pid)" "info" + output_json "running" "Scan in progress" + exit 0 + else + log_message "Removing stale PID file" "warn" + rm -f "$PID_FILE" + fi + fi + + # Also check token holder + if check_token_holder; then + log_message "Scan in progress (Token active)" "info" + output_json "running" "Scan in progress (Token active)" + exit 0 + fi +} + +# Check for existing results +check_results() { + if [ -f "$RESULT_FILE" ]; then + # Check if the result file contains valid JSON data + local result_content=$(cat "$RESULT_FILE" 2>/dev/null) + if [ -n "$result_content" ] && echo "$result_content" | grep -q "status"; then + # Also check the results directory for AT command results + local cmd_id + cmd_id=$(echo "$result_content" | jsonfilter -e '@.command.id' 2>/dev/null) + + # Log the result we found + log_message "Found result file with command ID: $cmd_id" "info" + + # Check how old the result file is + local file_time=$(stat -c %Y "$RESULT_FILE" 2>/dev/null || echo "0") + local current_time=$(date +%s) + local age=$((current_time - file_time)) + + log_message "Result file age: $age seconds" "info" + + # If file_time is valid and result is less than 1 hour old + if [ $age -lt 3600 ]; then + log_message "Recent scan results available" "info" + output_json "success" "Scan results available" + exit 0 + else + log_message "Scan results too old, suggesting new scan" "info" + output_json "idle" "Previous scan results outdated" + exit 0 + fi + else + log_message "Result file exists but contains invalid data" "warn" + rm -f "$RESULT_FILE" # Remove invalid result file + output_json "idle" "Invalid previous scan results" + exit 0 + fi + fi +} + +# Main execution +{ + # First check if a scan is in progress + check_scan_progress + + # Then check for existing results + check_results + + # If no results and no running scan, indicate idle state + log_message "No active scan or recent results" "info" + output_json "idle" "No active scan" + exit 0 +} || { + # Error handler + log_message "Failed to check scan status" "error" + output_json "error" "Failed to check scan status" + exit 1 +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/fetch_mccmnc.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/fetch_mccmnc.sh old mode 100755 new mode 100644 similarity index 94% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/fetch_mccmnc.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/fetch_mccmnc.sh index 5b3f2de..60ccd53 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/cell_scanner/fetch_mccmnc.sh +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/fetch_mccmnc.sh @@ -5,7 +5,7 @@ echo "Content-type: application/json" echo "" # Configuration -JSON_FILE="/www/cgi-bin/mcc-mnc-list.json" +JSON_FILE="/www/cgi-bin/quecmanager/mcc-mnc-list.json" # Function to log messages log_message() { diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/network_info.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/network_info.sh new file mode 100644 index 0000000..21e74b3 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/cell_scanner/network_info.sh @@ -0,0 +1,311 @@ +#!/bin/sh + +# Set content-type for JSON response +echo "Content-type: application/json" +echo "" + +# Define paths and constants to match queue system +QUEUE_DIR="/tmp/at_queue" +RESULTS_DIR="$QUEUE_DIR/results" +TOKEN_FILE="$QUEUE_DIR/token" +TEMP_FILE="/tmp/network_info_output.txt" +LOCK_ID="NETWORK_INFO_$(date +%s)_$$" +COMMAND_TIMEOUT=8 # Increased timeout +MAX_TOKEN_WAIT=10 +PRIORITY=5 # Medium-high priority (between cell scan and normal commands) + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t at_queue -p "daemon.$level" "network_info: $1" +} + +# Function to output JSON error +output_error() { + printf '{"status":"error","message":"%s","timestamp":"%s"}\n' "$1" "$(date '+%H:%M:%S')" + exit 1 +} + +# Enhanced JSON string escaping function +escape_json() { + printf '%s' "$1" | awk ' + BEGIN { RS="\n"; ORS="\\n" } + { + gsub(/\\/, "\\\\") + gsub(/"/, "\\\"") + gsub(/\r/, "") + gsub(/\t/, "\\t") + gsub(/\f/, "\\f") + gsub(/\b/, "\\b") + print + } + ' | sed 's/\\n$//' +} + +# Acquire token directly with medium-high priority +acquire_token() { + local priority="$PRIORITY" # Medium-high priority for network info + local max_attempts=$MAX_TOKEN_WAIT + local attempt=0 + + while [ $attempt -lt $max_attempts ]; do + # Check if token file exists + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "info" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Try again - higher priority token exists + log_message "Token held by $current_holder with priority $current_priority, retrying..." "debug" + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$LOCK_ID\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$LOCK_ID" ]; then + log_message "Successfully acquired token with priority $priority" "info" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Release token directly +release_token() { + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$LOCK_ID" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + log_message "Released token" "info" + return 0 + fi + log_message "Token held by $current_holder, not by us ($LOCK_ID)" "warn" + fi + return 1 +} + +# Function to execute AT command with direct output capture +execute_at_command() { + local CMD="$1" + local OUTPUT_FILE="$TEMP_FILE.cmd.$$" + + log_message "Executing command: $CMD" "debug" + + # Execute command and redirect output to file for reliable capture + sms_tool at "$CMD" -t $COMMAND_TIMEOUT > "$OUTPUT_FILE" 2>&1 + local EXIT_CODE=$? + + # Read the output regardless of exit code + if [ -f "$OUTPUT_FILE" ]; then + local OUTPUT=$(cat "$OUTPUT_FILE") + rm -f "$OUTPUT_FILE" + + if [ -n "$OUTPUT" ]; then + # We have some output + if echo "$OUTPUT" | grep -q "CME ERROR"; then + log_message "Command returned CME ERROR: $OUTPUT" "warn" + return 1 + elif echo "$OUTPUT" | grep -q "ERROR"; then + log_message "Command returned ERROR: $OUTPUT" "warn" + return 1 + else + # Command produced output that doesn't contain ERROR + log_message "Command executed successfully with output" "debug" + echo "$OUTPUT" + return 0 + fi + elif [ $EXIT_CODE -eq 0 ]; then + log_message "Command succeeded but returned empty output" "warn" + echo "Command returned empty output" + return 0 + else + log_message "Command failed with exit code $EXIT_CODE and no output" "error" + return 1 + fi + else + log_message "Failed to create output file" "error" + return 1 + fi +} + +# Function to check network mode from serving cell info +check_network_mode() { + local OUTPUT="$1" + + # Check for both LTE and NR5G-NSA (NSA mode) + if echo "$OUTPUT" | grep -q "\"LTE\"" && echo "$OUTPUT" | grep -q "\"NR5G-NSA\""; then + log_message "Detected network mode: NRLTE (NSA)" "info" + echo "NRLTE" + # Check for LTE only + elif echo "$OUTPUT" | grep -q "\"LTE\""; then + log_message "Detected network mode: LTE" "info" + echo "LTE" + # Check for NR5G-SA + elif echo "$OUTPUT" | grep -q "\"NR5G-SA\""; then + log_message "Detected network mode: NR5G (SA)" "info" + echo "NR5G" + else + log_message "Detected network mode: UNKNOWN from output: $OUTPUT" "warn" + echo "UNKNOWN" + fi +} + +# Function to check NR5G measurement info setting +check_nr5g_meas_info() { + local OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\"") + local EXIT_CODE=$? + + if [ $EXIT_CODE -eq 0 ] && echo "$OUTPUT" | grep -q "\"nr5g_meas_info\",1"; then + log_message "NR5G measurement info is enabled" "debug" + return 0 + else + log_message "NR5G measurement info is disabled or check failed" "debug" + return 1 + fi +} + +# Function to create JSON output safely +format_output_json() { + local MODE="$1" + local SERVING_OUTPUT="$2" + local NEIGHBOR_OUTPUT="$3" + local MEAS_OUTPUT="$4" + + # Basic JSON structure - start + printf '{"status":"success","timestamp":"%s","mode":"%s"' "$(date '+%H:%M:%S')" "$MODE" + + # Add raw data section + printf ',"raw_data":{' + + # Add serving cell output (always present) + printf '"servingCell":%s' "$(printf '%s' "$SERVING_OUTPUT" | jq -R -s '.')" + + # Add neighbor cells output if available + if [ -n "$NEIGHBOR_OUTPUT" ]; then + printf ',"neighborCells":%s' "$(printf '%s' "$NEIGHBOR_OUTPUT" | jq -R -s '.')" + fi + + # Add measurement info output if available + if [ -n "$MEAS_OUTPUT" ]; then + printf ',"meas":%s' "$(printf '%s' "$MEAS_OUTPUT" | jq -R -s '.')" + fi + + # Close raw data section + printf '}' + + # Close the whole JSON object + printf '}\n' +} + +# Set up trap for cleanup +trap 'log_message "Script interrupted, cleaning up" "warn"; release_token; rm -f "$TEMP_FILE" "$TEMP_FILE.cmd."*; exit 1' INT TERM EXIT + +# Main execution +{ + # Ensure directories exist + mkdir -p "$QUEUE_DIR" "$RESULTS_DIR" + + log_message "Starting network info collection" "info" + + # Acquire token for AT command execution before any output + if ! acquire_token; then + output_error "Failed to acquire token for command processing" + fi + + # Get the serving cell information first + log_message "Getting serving cell information" "info" + SERVING_OUTPUT=$(execute_at_command "AT+QENG=\"servingcell\"") + EXIT_CODE=$? + + # Check if we got valid serving cell info + if [ $EXIT_CODE -ne 0 ] || [ -z "$SERVING_OUTPUT" ]; then + log_message "Failed to get serving cell information, output: $SERVING_OUTPUT" "error" + release_token + output_error "Failed to get serving cell information" + fi + + log_message "Successfully got serving cell information" "info" + + # Determine network mode from serving cell output + NETWORK_MODE=$(check_network_mode "$SERVING_OUTPUT") + + NEIGHBOR_OUTPUT="" + MEAS_OUTPUT="" + + case "$NETWORK_MODE" in + "NRLTE") + log_message "Processing NRLTE mode commands" "info" + NEIGHBOR_OUTPUT=$(execute_at_command "AT+QENG=\"neighbourcell\"") + + # Try to get measurement info + if ! check_nr5g_meas_info; then + log_message "Enabling NR5G measurement info" "info" + execute_at_command "AT+QNWCFG=\"nr5g_meas_info\",1" > /dev/null + sleep 1 # Give it time to take effect + fi + + log_message "Fetching NR5G measurement info" "info" + MEAS_OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\"") + ;; + "LTE") + log_message "Processing LTE mode commands" "info" + NEIGHBOR_OUTPUT=$(execute_at_command "AT+QENG=\"neighbourcell\"") + ;; + "NR5G") + log_message "Processing NR5G mode commands" "info" + + # Try to get measurement info + if ! check_nr5g_meas_info; then + log_message "Enabling NR5G measurement info" "info" + execute_at_command "AT+QNWCFG=\"nr5g_meas_info\",1" > /dev/null + sleep 1 # Give it time to take effect + fi + + log_message "Fetching NR5G measurement info" "info" + MEAS_OUTPUT=$(execute_at_command "AT+QNWCFG=\"nr5g_meas_info\"") + ;; + *) + # Even if we don't recognize the mode, we'll still return the serving cell info + log_message "Unknown network mode, only returning serving cell info" "warn" + ;; + esac + + # Format and output JSON response + log_message "Formatting JSON response" "info" + format_output_json "$NETWORK_MODE" "$SERVING_OUTPUT" "$NEIGHBOR_OUTPUT" "$MEAS_OUTPUT" + + # Release token and clean up + release_token + rm -f "$TEMP_FILE" "$TEMP_FILE.cmd."* + + log_message "Network info collection completed" "info" + +} || { + # Error handler + log_message "Script failed with error" "error" + release_token + rm -f "$TEMP_FILE" "$TEMP_FILE.cmd."* + output_error "Internal error occurred" +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/keep_alive.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/keep_alive.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/experimental/keep_alive.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/keep_alive.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/disable-quecwatch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/disable-quecwatch.sh new file mode 100644 index 0000000..4180814 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/disable-quecwatch.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# Set headers for JSON response +echo "Content-type: application/json" +echo "" + +# Disable the service in UCI +uci set quecmanager.quecwatch.enabled='0' + +if ! uci commit quecmanager; then + echo '{"status":"error","message":"Failed to update configuration"}' + exit 1 +fi + +# Function to log cleanup events +log_message() { + local level="$1" + local message="$2" + local LOG_DIR="/tmp/log/quecwatch" + local LOG_FILE="${LOG_DIR}/quecwatch.log" + + # Ensure log directory exists + mkdir -p "${LOG_DIR}" + + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "${timestamp} - [${level}] ${message}" >> "$LOG_FILE" + logger -t quecwatch "${level}: ${message}" +} + +# Stop the service +if [ -x "/etc/init.d/quecwatch" ]; then + if ! /etc/init.d/quecwatch stop; then + log_message "ERROR" "Failed to stop service cleanly" + + # Force kill any remaining processes + if pkill -f "/www/cgi-bin/services/quecwatch.sh"; then + log_message "INFO" "Forced termination of QuecWatch processes" + fi + else + log_message "INFO" "Service stopped successfully" + fi + + # Disable the service + if ! /etc/init.d/quecwatch disable; then + log_message "WARN" "Failed to disable service" + else + log_message "INFO" "Service disabled successfully" + fi +fi + +# Clean up temporary files +for file in "/tmp/quecwatch_status.json" "/tmp/quecwatch_retry_count" "/var/run/quecwatch.pid"; do + if [ -f "$file" ]; then + if rm -f "$file"; then + log_message "INFO" "Removed temporary file: $file" + else + log_message "WARN" "Failed to remove temporary file: $file" + fi + fi +done + +# Return success +echo '{"status":"success","message":"QuecWatch disabled successfully"}' \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/enable-quecwatch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/enable-quecwatch.sh new file mode 100644 index 0000000..13a7a10 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/enable-quecwatch.sh @@ -0,0 +1,137 @@ +#!/bin/sh + +# Set content type to JSON +echo "Content-type: application/json" +echo "" + +# Read POST data +read -r POST_DATA + +# Function to extract value from JSON post data +extract_json_value() { + local key="$1" + local default="$2" + + # Try with jsonfilter + if command -v jsonfilter >/dev/null 2>&1; then + local value=$(echo "$POST_DATA" | jsonfilter -e "@.$key" 2>/dev/null) + [ -n "$value" ] && echo "$value" && return 0 + fi + + # Fallback to grep + local value=$(echo "$POST_DATA" | grep -o "\"$key\"[[:space:]]*:[[:space:]]*\"[^\"]*\"" | cut -d'"' -f4) + [ -n "$value" ] && echo "$value" && return 0 + + # Fallback to grep for numbers and booleans + local value=$(echo "$POST_DATA" | grep -o "\"$key\"[[:space:]]*:[[:space:]]*[0-9a-zA-Z]*" | cut -d':' -f2 | tr -d '[:space:]') + [ -n "$value" ] && echo "$value" && return 0 + + # Return default value + echo "$default" + return 0 +} + +# Extract parameters from POST data +ping_target=$(extract_json_value "pingTarget" "8.8.8.8") +ping_interval=$(extract_json_value "pingInterval" "60") +ping_failures=$(extract_json_value "pingFailures" "3") +max_retries=$(extract_json_value "maxRetries" "5") +connection_refresh=$(extract_json_value "connectionRefresh" "false") +auto_sim_failover=$(extract_json_value "autoSimFailover" "false") +sim_failover_schedule=$(extract_json_value "simFailoverSchedule" "0") + +# Validate numeric values +validate_number() { + local value="$1" + local min="$2" + local max="$3" + local name="$4" + + if ! echo "$value" | grep -q '^[0-9]\+$'; then + echo '{"status":"error","message":"'"$name must be a number"'"}' + exit 1 + fi + + if [ "$value" -lt "$min" ] || [ "$value" -gt "$max" ]; then + echo '{"status":"error","message":"'"$name must be between $min and $max"'"}' + exit 1 + fi +} + +# Validate boolean values +validate_boolean() { + local value="$1" + local name="$2" + + if [ "$value" != "true" ] && [ "$value" != "false" ]; then + echo '{"status":"error","message":"'"$name must be true or false"'"}' + exit 1 + fi +} + +# Validate parameters +validate_number "$ping_interval" 5 3600 "Ping interval" +validate_number "$ping_failures" 1 10 "Ping failures" +validate_number "$max_retries" 1 20 "Max retries" +validate_number "$sim_failover_schedule" 0 1440 "SIM failover schedule" +validate_boolean "$connection_refresh" "Connection refresh" +validate_boolean "$auto_sim_failover" "Auto SIM failover" + +# Function to setup UCI configuration +setup_uci_config() { + # Create section if it doesn't exist + touch /etc/config/quecmanager + + if ! uci -q get quecmanager.quecwatch >/dev/null; then + uci set quecmanager.quecwatch=service + fi + + # Set UCI values + uci set quecmanager.quecwatch.enabled='1' + uci set quecmanager.quecwatch.ping_target="$ping_target" + uci set quecmanager.quecwatch.ping_interval="$ping_interval" + uci set quecmanager.quecwatch.ping_failures="$ping_failures" + uci set quecmanager.quecwatch.max_retries="$max_retries" + uci set quecmanager.quecwatch.current_retries='0' + uci set quecmanager.quecwatch.connection_refresh="$connection_refresh" + uci set quecmanager.quecwatch.refresh_count='3' + uci set quecmanager.quecwatch.auto_sim_failover="$auto_sim_failover" + uci set quecmanager.quecwatch.sim_failover_schedule="$sim_failover_schedule" + + # Commit changes + if ! uci commit quecmanager; then + echo '{"status":"error","message":"Failed to save configuration"}' + exit 1 + fi + + return 0 +} + +# Setup configuration +if ! setup_uci_config; then + exit 1 +fi + +# Enable and start the service +if [ ! -f "/etc/init.d/quecwatch" ]; then + echo '{"status":"error","message":"QuecWatch service script not found"}' + exit 1 +fi + +# Make sure the service script is executable +chmod +x /etc/init.d/quecwatch + +# Enable the service +if ! /etc/init.d/quecwatch enable; then + echo '{"status":"error","message":"Failed to enable QuecWatch service"}' + exit 1 +fi + +# Start the service +if ! /etc/init.d/quecwatch start; then + echo '{"status":"error","message":"Failed to start QuecWatch service"}' + exit 1 +fi + +# Return success response +echo '{"status":"success","message":"QuecWatch enabled successfully"}' \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/fetch-quecwatch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/fetch-quecwatch.sh new file mode 100644 index 0000000..fa3e828 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/experimental/quecwatch/fetch-quecwatch.sh @@ -0,0 +1,139 @@ +#!/bin/sh + +# Set headers for JSON response +echo "Content-type: application/json" +echo "" + +# Load UCI functions +. /lib/functions.sh + +# Function to safely get UCI value with default +get_uci_value() { + local value + config_get value quecwatch "$1" "$2" + echo "${value:-$2}" +} + +# Function to format boolean for JSON +format_boolean() { + if [ "$1" = "1" ] || [ "$1" = "true" ]; then + echo "true" + else + echo "false" + fi +} + +# Function to check if service is running +check_service_status() { + if [ -f "/var/run/quecwatch.pid" ]; then + pid=$(cat /var/run/quecwatch.pid 2>/dev/null) + if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then + echo "running" + return + fi + fi + echo "stopped" +} + +# Function to get last log entry +get_last_log() { + local LOG_FILE="/tmp/log/quecwatch/quecwatch.log" + if [ -f "$LOG_FILE" ]; then + tail -n 1 "$LOG_FILE" | sed 's/"/\\"/g' + else + echo "No log entries found" + fi +} + +# Function to get current status +get_current_status() { + local STATUS_FILE="/tmp/quecwatch_status.json" + local status="unknown" + local message="Status not available" + local retry="0" + local maxRetries="0" + local timestamp=$(date +%s) + + if [ -f "$STATUS_FILE" ]; then + # Try to extract values from status file + if grep -q "status" "$STATUS_FILE"; then + status=$(cat "$STATUS_FILE" | jsonfilter -e '@.status' 2>/dev/null) + message=$(cat "$STATUS_FILE" | jsonfilter -e '@.message' 2>/dev/null) + retry=$(cat "$STATUS_FILE" | jsonfilter -e '@.retry' 2>/dev/null) + maxRetries=$(cat "$STATUS_FILE" | jsonfilter -e '@.maxRetries' 2>/dev/null) + timestamp=$(cat "$STATUS_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + fi + fi + + # Use defaults if extraction failed + [ -z "$status" ] && status="unknown" + [ -z "$message" ] && message="Status not available" + [ -z "$retry" ] && retry="0" + [ -z "$maxRetries" ] && maxRetries="0" + [ -z "$timestamp" ] && timestamp=$(date +%s) + + echo "{\"status\":\"$status\",\"message\":\"$message\",\"retry\":$retry,\"maxRetries\":$maxRetries,\"timestamp\":$timestamp}" +} + +# Load QuecManager configuration +config_load quecmanager + +# Check if QuecWatch section exists +if ! uci -q get quecmanager.quecwatch >/dev/null; then + echo '{"status":"inactive","message":"QuecWatch is not configured"}' + exit 0 +fi + +# Get enabled status +enabled=$(get_uci_value "enabled" "0") + +# Get service status +service_status=$(check_service_status) + +# Get current status +current_status=$(get_current_status) + +# Get last log entry +last_log=$(get_last_log) + +# Fetch all configuration values +ping_target=$(get_uci_value "ping_target" "8.8.8.8") +ping_interval=$(get_uci_value "ping_interval" "60") +ping_failures=$(get_uci_value "ping_failures" "3") +max_retries=$(get_uci_value "max_retries" "5") +current_retries=$(get_uci_value "current_retries" "0") +connection_refresh=$(format_boolean $(get_uci_value "connection_refresh" "false")) +refresh_count=$(get_uci_value "refresh_count" "3") +auto_sim_failover=$(format_boolean $(get_uci_value "auto_sim_failover" "false")) +sim_failover_schedule=$(get_uci_value "sim_failover_schedule" "0") + +# Determine the overall status +status="inactive" +if [ "$enabled" = "1" ]; then + if [ "$service_status" = "running" ]; then + status="active" + else + status="error" + fi +fi + +# Prepare JSON response +cat <> "$LOG_FILE" + logger -t quecwatch "${level}: ${message}" +} + +# Reset retry counter +if uci -q get quecmanager.quecwatch >/dev/null; then + # Reset retry counter in UCI + uci set quecmanager.quecwatch.current_retries='0' + + # Make sure service is enabled + uci set quecmanager.quecwatch.enabled='1' + + # Commit changes + if uci commit quecmanager; then + log_message "INFO" "Retry counter reset to 0 and service enabled" + + # Also update the retry count file for immediate effect + echo "0" > "/tmp/quecwatch_retry_count" + chmod 644 "/tmp/quecwatch_retry_count" + + # Restart the service if it exists + if [ -x "/etc/init.d/quecwatch" ]; then + if /etc/init.d/quecwatch restart; then + log_message "INFO" "Service restarted successfully" + echo '{"status":"success","message":"Retry counter reset and service restarted successfully"}' + else + log_message "ERROR" "Failed to restart service" + echo '{"status":"warning","message":"Retry counter reset but failed to restart service"}' + fi + else + log_message "ERROR" "Service init script not found" + echo '{"status":"warning","message":"Retry counter reset but service init script not found"}' + fi + else + log_message "ERROR" "Failed to update configuration" + echo '{"status":"error","message":"Failed to update configuration"}' + fi +else + echo '{"status":"error","message":"QuecWatch configuration not found"}' +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/heartbeat.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/heartbeat.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/heartbeat.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/heartbeat.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/check_net.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/check_net.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/check_net.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/check_net.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/fetch_data_usage.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/fetch_data_usage.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/fetch_data_usage.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/fetch_data_usage.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/fetch_hw_details.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/fetch_hw_details.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/fetch_hw_details.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/fetch_hw_details.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/fetch_signal_metrics.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/fetch_signal_metrics.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/fetch_signal_metrics.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/fetch_signal_metrics.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/ping_latency.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/ping_latency.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/home/ping_latency.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/home/ping_latency.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/mcc-mnc-list.json b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/mcc-mnc-list.json old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/mcc-mnc-list.json rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/mcc-mnc-list.json diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/check_status.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/check_status.sh new file mode 100644 index 0000000..409b011 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/check_status.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# Location: /www/cgi-bin/quecmanager/profiles/check_status.cgi + +# Set content type to JSON +echo "Content-type: application/json" +echo "" + +# Configuration +STATUS_FILE="/tmp/quecprofiles_status.json" +TRACK_FILE="/tmp/quecprofiles_active" + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t quecprofiles -p "daemon.$level" "status_check: $1" +} + +# Function to output default "idle" JSON +output_idle_json() { + cat <>/tmp/list_profiles_error.log +} + +# Function to output JSON error response +output_error() { + local message="$1" + echo "{\"status\":\"error\",\"message\":\"$message\",\"profiles\":[]}" + log_message "$message" "error" + exit 1 +} + +# Function to sanitize string for JSON +sanitize_for_json() { + echo "$1" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | sed 's/\t/\\t/g' | tr -d '\r\n' +} + +# Check if UCI command exists +if ! which uci >/dev/null 2>&1; then + output_error "UCI command not found" +fi + +# Function to extract profiles from UCI config +get_profiles() { + log_message "Fetching profiles from UCI config" + + # Check if UCI config exists + if [ ! -f /etc/config/quecprofiles ]; then + log_message "No profiles config found" "warn" + echo "{\"status\":\"success\",\"profiles\":[]}" + return 0 + fi + + # Start JSON output + local json_output="" + local first=1 + local count=0 + + # Get all profile indices - make sure this succeeds + local indices=$(uci -q show quecprofiles | grep -o '@profile\[[0-9]*\]' | sort -u) + + # Debug output + echo "Found indices: $indices" >>/tmp/list_profiles_error.log + + if [ -z "$indices" ]; then + log_message "No profile indices found" "warn" + echo "{\"status\":\"success\",\"profiles\":[]}" + return 0 + fi + + # Process each profile + for idx in $indices; do + log_message "Processing profile index: $idx" + + # Try different UCI get approaches + local name + name=$(uci -q get "quecprofiles.$idx.name" 2>/dev/null) + if [ -z "$name" ]; then + log_message "Failed to get name for $idx, trying alternative method" "warn" + local section=${idx#@profile[} + section=${section%]} + name=$(uci -q get "quecprofiles.@profile[$section].name" 2>/dev/null) + fi + + # Get profile details + local iccid=$(uci -q get "quecprofiles.$idx.iccid" 2>/dev/null) + local imei=$(uci -q get "quecprofiles.$idx.imei" 2>/dev/null) + local apn=$(uci -q get "quecprofiles.$idx.apn" 2>/dev/null) + local pdp_type=$(uci -q get "quecprofiles.$idx.pdp_type" 2>/dev/null) + local lte_bands=$(uci -q get "quecprofiles.$idx.lte_bands" 2>/dev/null) + local sa_nr5g_bands=$(uci -q get "quecprofiles.$idx.sa_nr5g_bands" 2>/dev/null) + local nsa_nr5g_bands=$(uci -q get "quecprofiles.$idx.nsa_nr5g_bands" 2>/dev/null) + local network_type=$(uci -q get "quecprofiles.$idx.network_type" 2>/dev/null) + local ttl=$(uci -q get "quecprofiles.$idx.ttl" 2>/dev/null) + + # Debug output + log_message "Retrieved for $idx: name=$name, iccid=$iccid, apn=$apn" + + # Skip if missing required fields + if [ -z "$name" ] || [ -z "$iccid" ] || [ -z "$apn" ]; then + log_message "Skipping invalid profile: $idx (missing required fields)" "warn" + continue + fi + + # Sanitize all values to ensure valid JSON + name=$(sanitize_for_json "$name") + iccid=$(sanitize_for_json "$iccid") + imei=$(sanitize_for_json "${imei:-""}") + apn=$(sanitize_for_json "$apn") + pdp_type=$(sanitize_for_json "${pdp_type:-"IPV4V6"}") + lte_bands=$(sanitize_for_json "${lte_bands:-""}") + sa_nr5g_bands=$(sanitize_for_json "${sa_nr5g_bands:-""}") + nsa_nr5g_bands=$(sanitize_for_json "${nsa_nr5g_bands:-""}") + network_type=$(sanitize_for_json "${network_type:-"LTE"}") + ttl=$(sanitize_for_json "${ttl:-0}") + + # Create profile JSON + local profile_json="{" + profile_json="${profile_json}\"name\":\"${name}\"," + profile_json="${profile_json}\"iccid\":\"${iccid}\"," + profile_json="${profile_json}\"imei\":\"${imei}\"," + profile_json="${profile_json}\"apn\":\"${apn}\"," + profile_json="${profile_json}\"pdp_type\":\"${pdp_type}\"," + profile_json="${profile_json}\"lte_bands\":\"${lte_bands}\"," + profile_json="${profile_json}\"sa_nr5g_bands\":\"${sa_nr5g_bands}\"," + profile_json="${profile_json}\"nsa_nr5g_bands\":\"${nsa_nr5g_bands}\"," + profile_json="${profile_json}\"network_type\":\"${network_type}\"," + profile_json="${profile_json}\"ttl\":\"${ttl}\"" + profile_json="${profile_json}}" + + # Add comma if not first + if [ $first -eq 0 ]; then + json_output="${json_output}," + else + first=0 + fi + + # Add profile to output + json_output="${json_output}${profile_json}" + count=$((count+1)) + done + + # Complete the JSON response + local response="{\"status\":\"success\",\"profiles\":[${json_output}]}" + + # Save the response for debugging + echo "$response" > /tmp/list_profiles_response.json + + echo "$response" + log_message "Found and returned $count profiles" + return 0 +} + +# Start fresh error log +echo "=== List Profiles Run $(date) ===" > /tmp/list_profiles_error.log + +# Main execution +{ + get_profiles +} || { + # Error handler + output_error "Failed to retrieve profiles" +} \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_create.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_create.sh new file mode 100644 index 0000000..ec4aef9 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_create.sh @@ -0,0 +1,355 @@ +#!/bin/sh +# Location: /www/cgi-bin/quecmanager/profiles/quec_profile_create.sh + +# Set content type to JSON +echo -n "" +echo "Content-type: application/json" +echo "" + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t quecprofiles -p "daemon.$level" "create: $1" +} + +# Function to output JSON response +output_json() { + local status="$1" + local message="$2" + local data="${3:-{}}" + + printf '{"status":"%s","message":"%s","data":%s}\n' "$status" "$message" "$data" + exit 0 +} + +# Function to sanitize input +sanitize() { + echo "$1" | tr -d '\r\n' | sed 's/[^a-zA-Z0-9,.:_-]//g' +} + +# Function to validate ICCID (simple check) +validate_iccid() { + local iccid="$1" + if [ -z "$iccid" ] || [ ${#iccid} -lt 10 ] || [ ${#iccid} -gt 20 ]; then + return 1 + fi + # Check that it's only digits + if ! echo "$iccid" | grep -q '^[0-9]\+$'; then + return 1 + fi + return 0 +} + +# Function to validate IMEI (simple check) +validate_imei() { + local imei="$1" + if [ -z "$imei" ]; then + return 0 # IMEI is optional + fi + if [ ${#imei} -ne 15 ] || ! echo "$imei" | grep -q '^[0-9]\+$'; then + return 1 + fi + return 0 +} + +# Function to validate band list +validate_bands() { + local bands="$1" + if [ -z "$bands" ]; then + return 0 # Empty is valid + fi + # Check format (comma-separated numbers) + if ! echo "$bands" | grep -q '^[0-9]\+\(,[0-9]\+\)*$'; then + return 1 + fi + return 0 +} + +# Function to validate network type +validate_network_type() { + local net_type="$1" + case "$net_type" in + "LTE" | "NR5G" | "LTE:NR5G") + return 0 + ;; + *) + return 1 + ;; + esac +} + +# Function to validate PDP type +validate_pdp_type() { + local pdp_type="$1" + case "$pdp_type" in + "IP" | "IPV6" | "IPV4V6") + return 0 + ;; + *) + return 1 + ;; + esac +} + +# Add function to validate TTL +validate_ttl() { + local ttl="$1" + if [ -z "$ttl" ]; then + return 0 # Empty is valid (will be treated as 0/disabled) + fi + # Check that TTL is a number between 0 and 255 + if ! echo "$ttl" | grep -q '^[0-9]\+$' || [ "$ttl" -gt 255 ]; then + return 1 + fi + return 0 +} + +# Function to check if a profile with the same name or ICCID already exists +check_duplicate_profile() { + local name="$1" + local iccid="$2" + + # Check for duplicate name + local existing_name=$(uci -q show quecprofiles | grep ".name='$name'" | head -n 1) + if [ -n "$existing_name" ]; then + return 1 + fi + + # Check for duplicate ICCID + local existing_iccid=$(uci -q show quecprofiles | grep ".iccid='$iccid'" | head -n 1) + if [ -n "$existing_iccid" ]; then + return 2 + fi + + return 0 +} + +# Function to create new profile +create_profile() { + local name="$1" + local iccid="$2" + local imei="$3" + local apn="$4" + local pdp_type="$5" + local lte_bands="$6" + local sa_nr5g_bands="$7" + local nsa_nr5g_bands="$8" + local network_type="$9" + local ttl="${10}" + + # Generate a unique ID for the profile + local profile_id="profile_$(date +%s)_$(head -c 4 /dev/urandom | hexdump -e '"%x"')" + + # Add to UCI config + uci -q batch </etc/config/quecprofiles </dev/null) + + # Debug log + log_message "Received POST data: $POST_DATA" "debug" + + # Parse JSON with jsonfilter if available + if command -v jsonfilter >/dev/null 2>&1; then + name=$(echo "$POST_DATA" | jsonfilter -e '@.name' 2>/dev/null) + iccid=$(echo "$POST_DATA" | jsonfilter -e '@.iccid' 2>/dev/null) + imei=$(echo "$POST_DATA" | jsonfilter -e '@.imei' 2>/dev/null) + apn=$(echo "$POST_DATA" | jsonfilter -e '@.apn' 2>/dev/null) + pdp_type=$(echo "$POST_DATA" | jsonfilter -e '@.pdp_type' 2>/dev/null) + lte_bands=$(echo "$POST_DATA" | jsonfilter -e '@.lte_bands' 2>/dev/null) + sa_nr5g_bands=$(echo "$POST_DATA" | jsonfilter -e '@.sa_nr5g_bands' 2>/dev/null) + nsa_nr5g_bands=$(echo "$POST_DATA" | jsonfilter -e '@.nsa_nr5g_bands' 2>/dev/null) + network_type=$(echo "$POST_DATA" | jsonfilter -e '@.network_type' 2>/dev/null) + ttl=$(echo "$POST_DATA" | jsonfilter -e '@.ttl' 2>/dev/null) + + log_message "Parsed JSON data for profile: $name" "debug" + else + # If jsonfilter is not available, try basic parsing + # This is less reliable but might work for simple cases + name=$(echo "$POST_DATA" | grep -o '"name":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + iccid=$(echo "$POST_DATA" | grep -o '"iccid":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + imei=$(echo "$POST_DATA" | grep -o '"imei":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + apn=$(echo "$POST_DATA" | grep -o '"apn":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + pdp_type=$(echo "$POST_DATA" | grep -o '"pdp_type":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + lte_bands=$(echo "$POST_DATA" | grep -o '"lte_bands":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + sa_nr5g_bands=$(echo "$POST_DATA" | grep -o '"sa_nr5g_bands":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + nsa_nr5g_bands=$(echo "$POST_DATA" | grep -o '"nsa_nr5g_bands":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + network_type=$(echo "$POST_DATA" | grep -o '"network_type":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + ttl=$(echo "$POST_DATA" | grep -o '"ttl":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + + log_message "Basic parsing for profile: $name" "warn" + fi + else + log_message "No content length specified" "error" + output_json "error" "No data received" + fi +else + # URL parameters for GET requests (less secure, but supported for testing) + name=$(echo "$QUERY_STRING" | grep -o 'name=[^&]*' | cut -d'=' -f2) + iccid=$(echo "$QUERY_STRING" | grep -o 'iccid=[^&]*' | cut -d'=' -f2) + imei=$(echo "$QUERY_STRING" | grep -o 'imei=[^&]*' | cut -d'=' -f2) + apn=$(echo "$QUERY_STRING" | grep -o 'apn=[^&]*' | cut -d'=' -f2) + pdp_type=$(echo "$QUERY_STRING" | grep -o 'pdp_type=[^&]*' | cut -d'=' -f2) + lte_bands=$(echo "$QUERY_STRING" | grep -o 'lte_bands=[^&]*' | cut -d'=' -f2) + sa_nr5g_bands=$(echo "$QUERY_STRING" | grep -o 'sa_nr5g_bands=[^&]*' | cut -d'=' -f2) + nsa_nr5g_bands=$(echo "$QUERY_STRING" | grep -o 'nsa_nr5g_bands=[^&]*' | cut -d'=' -f2) + network_type=$(echo "$QUERY_STRING" | grep -o 'network_type=[^&]*' | cut -d'=' -f2) + ttl=$(echo "$QUERY_STRING" | grep -o 'ttl=[^&]*' | cut -d'=' -f2) + + # URL decode values + name=$(echo "$name" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + iccid=$(echo "$iccid" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + imei=$(echo "$imei" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + apn=$(echo "$apn" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + pdp_type=$(echo "$pdp_type" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + lte_bands=$(echo "$lte_bands" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + sa_nr5g_bands=$(echo "$sa_nr5g_bands" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + nsa_nr5g_bands=$(echo "$nsa_nr5g_bands" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + network_type=$(echo "$network_type" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + ttl=$(echo "$ttl" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + + log_message "Using URL parameters" "warn" +fi + +# Sanitize inputs +name=$(sanitize "${name:-}") +iccid=$(sanitize "${iccid:-}") +imei=$(sanitize "${imei:-}") +apn=$(sanitize "${apn:-}") +pdp_type=$(sanitize "${pdp_type:-IP}") +lte_bands=$(sanitize "${lte_bands:-}") +sa_nr5g_bands=$(sanitize "${sa_nr5g_bands:-}") +nsa_nr5g_bands=$(sanitize "${nsa_nr5g_bands:-}") +network_type=$(sanitize "${network_type:-LTE}") +ttl=$(sanitize "${ttl:-0}") # Default to 0 (disabled) + +# Output debug info +log_message "Creating profile: $name, ICCID: $iccid, IMEI: $imei, APN: $apn" "debug" + +# Validate required inputs +if [ -z "$name" ]; then + log_message "Profile name is missing" "error" + output_json "error" "Profile name is required" +fi + +if [ -z "$iccid" ]; then + log_message "ICCID is missing" "error" + output_json "error" "ICCID is required" +fi + +if [ -z "$apn" ]; then + log_message "APN is missing" "error" + output_json "error" "APN is required" +fi + +# Validate input formats +if ! validate_iccid "$iccid"; then + log_message "Invalid ICCID format: $iccid" "error" + output_json "error" "Invalid ICCID format. It should be 10-20 digits." +fi + +if ! validate_imei "$imei"; then + log_message "Invalid IMEI format: $imei" "error" + output_json "error" "Invalid IMEI format. It should be exactly 15 digits." +fi + +if ! validate_bands "$lte_bands"; then + log_message "Invalid LTE bands format: $lte_bands" "error" + output_json "error" "Invalid LTE bands format. Use comma-separated numbers (e.g., 1,3,7)" +fi + +if ! validate_bands "$sa_nr5g_bands"; then + log_message "Invalid SA NR5G bands format: $sa_nr5g_bands" "error" + output_json "error" "Invalid SA NR5G bands format. Use comma-separated numbers (e.g., 41,78)" +fi + +if ! validate_bands "$nsa_nr5g_bands"; then + log_message "Invalid NSA NR5G bands format: $nsa_nr5g_bands" "error" + output_json "error" "Invalid NSA NR5G bands format. Use comma-separated numbers (e.g., 1,79)" +fi + +if ! validate_network_type "$network_type"; then + log_message "Invalid network type: $network_type" "error" + output_json "error" "Invalid network type. Use 'LTE', 'NR5G', or 'LTE:NR5G'" +fi + +if ! validate_pdp_type "$pdp_type"; then + log_message "Invalid PDP type: $pdp_type" "error" + output_json "error" "Invalid PDP type. Use 'IP', 'IPV6', or 'IPV4V6'" +fi + +if ! validate_ttl "$ttl"; then + log_message "Invalid TTL value: $ttl" "error" + output_json "error" "Invalid TTL value. It should be a number between 0 and 255." +fi + +# Check for duplicates +check_duplicate_profile "$name" "$iccid" +dup_status=$? +if [ $dup_status -eq 1 ]; then + log_message "Duplicate profile name: $name" "error" + output_json "error" "A profile with this name already exists" +elif [ $dup_status -eq 2 ]; then + log_message "Duplicate ICCID: $iccid" "error" + output_json "error" "A profile with this ICCID already exists" +fi + +# Create the profile +if create_profile "$name" "$iccid" "$imei" "$apn" "$pdp_type" "$lte_bands" "$sa_nr5g_bands" "$nsa_nr5g_bands" "$network_type" "$ttl"; then + # Trigger immediate profile application + touch "/tmp/quecprofiles_check" + chmod 644 "/tmp/quecprofiles_check" + log_message "Triggered immediate profile check after creation" "info" + + # Create profile data JSON for return - WITHOUT outer curly braces + profile_data="\"name\":\"$name\",\"iccid\":\"$iccid\",\"imei\":\"$imei\",\"apn\":\"$apn\",\"pdp_type\":\"$pdp_type\",\"lte_bands\":\"$lte_bands\",\"sa_nr5g_bands\":\"$sa_nr5g_bands\",\"nsa_nr5g_bands\":\"$nsa_nr5g_bands\",\"network_type\":\"$network_type\",\"ttl\":\"$ttl\"" + + # Wrap the data field in curly braces inside output_json + output_json "success" "Profile created successfully" "{$profile_data}" +else + output_json "error" "Failed to create profile. Please check system logs." +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_delete.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_delete.sh new file mode 100644 index 0000000..95c6e6c --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_delete.sh @@ -0,0 +1,138 @@ +#!/bin/sh +# Location: /www/cgi-bin/quecmanager/profiles/quec_profile_delete.sh + +# Set content type to JSON +echo -n "" +echo "Content-type: application/json" +echo "" + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t quecprofiles -p "daemon.$level" "delete: $1" +} + +# Function to output JSON response +output_json() { + local status="$1" + local message="$2" + local data="${3:-{}}" + + printf '{"status":"%s","message":"%s","data":%s}\n' "$status" "$message" "$data" + exit 0 +} + +# Function to sanitize input +sanitize() { + echo "$1" | tr -d '\r\n' | sed 's/[^a-zA-Z0-9,.:_-]//g' +} + +# Function to find profile by ICCID +find_profile_by_iccid() { + local iccid="$1" + # Get all profile indices + local profile_indices=$(uci show quecprofiles | grep -o '@profile\[[0-9]\+\]' | sort -u) + + for profile_index in $profile_indices; do + local current_iccid=$(uci -q get quecprofiles.$profile_index.iccid) + if [ "$current_iccid" = "$iccid" ]; then + echo "$profile_index" + return 0 + fi + done + + return 1 +} + +# Function to delete a profile +delete_profile() { + local profile_index="$1" + local profile_name=$(uci -q get quecprofiles.$profile_index.name) + + # Delete the profile from UCI config + uci -q batch </dev/null) + + # Debug log + log_message "Received POST data: $POST_DATA" "debug" + + # Parse JSON with jsonfilter if available + if command -v jsonfilter >/dev/null 2>&1; then + iccid=$(echo "$POST_DATA" | jsonfilter -e '@.iccid' 2>/dev/null) + else + # If jsonfilter is not available, try basic parsing + iccid=$(echo "$POST_DATA" | grep -o '"iccid":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + fi + else + log_message "No content length specified" "error" + output_json "error" "No data received" + fi +elif [ -n "$QUERY_STRING" ]; then + # URL parameters for GET or DELETE requests + iccid=$(echo "$QUERY_STRING" | grep -o 'iccid=[^&]*' | cut -d'=' -f2) + + # URL decode value + iccid=$(echo "$iccid" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + + log_message "Using URL parameter: iccid=$iccid" "debug" +fi + +# Sanitize input +iccid=$(sanitize "${iccid:-}") + +# Validate ICCID +if [ -z "$iccid" ]; then + log_message "ICCID is missing" "error" + output_json "error" "ICCID is required to identify the profile" +fi + +# Find profile to delete +profile_index=$(find_profile_by_iccid "$iccid") +if [ $? -ne 0 ]; then + log_message "Profile with ICCID $iccid not found" "error" + output_json "error" "Profile not found" +fi + +# Get profile info for response +profile_name=$(uci -q get quecprofiles.$profile_index.name) + +# Delete the profile +if delete_profile "$profile_index"; then + log_message "Profile deleted successfully: $profile_name" "info" + output_json "success" "Profile deleted successfully" "{\"iccid\":\"$iccid\",\"name\":\"$profile_name\"}" +else + log_message "Failed to delete profile: $profile_name" "error" + output_json "error" "Failed to delete profile. Please check system logs." +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_edit.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_edit.sh new file mode 100644 index 0000000..c56b85f --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/profiles/quec_profile_edit.sh @@ -0,0 +1,392 @@ +#!/bin/sh +# Location: /www/cgi-bin/quecmanager/profiles/quec_profile_edit.sh + +# Set content type to JSON +echo -n "" +echo "Content-type: application/json" +echo "" + +# Configuration +CHECK_TRIGGER="/tmp/quecprofiles_check" +APPLIED_FLAG="/tmp/quecprofiles_applied" + +# Function to log messages +log_message() { + local level="${2:-info}" + logger -t quecprofiles -p "daemon.$level" "edit: $1" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] edit: $1" >>/tmp/quec_profile_edit.log +} + +# Function to output JSON response +output_json() { + local status="$1" + local message="$2" + local data="${3:-{}}" + + # Debug log to file only + echo "Generating JSON response: status=$status, message=$message" >>/tmp/quec_profile_debug.log + echo "Data payload: $data" >>/tmp/quec_profile_debug.log + + # Use printf for consistent output without newlines or extra characters + printf '{"status":"%s","message":"%s","data":%s}' "$status" "$message" "$data" + + # Add debug marker at end of JSON + echo "" >>/tmp/quec_profile_debug.log + echo "JSON response generated at $(date)" >>/tmp/quec_profile_debug.log + + exit 0 +} + +# Function to sanitize input +sanitize() { + echo "$1" | tr -d '\r\n' | sed 's/[^a-zA-Z0-9,.:_-]//g' +} + +# Function to validate ICCID (simple check) +validate_iccid() { + local iccid="$1" + if [ -z "$iccid" ] || [ ${#iccid} -lt 10 ] || [ ${#iccid} -gt 20 ]; then + return 1 + fi + # Check that it's only digits + if ! echo "$iccid" | grep -q '^[0-9]\+$'; then + return 1 + fi + return 0 +} + +# Function to validate IMEI (simple check) +validate_imei() { + local imei="$1" + if [ -z "$imei" ]; then + return 0 # IMEI is optional + fi + if [ ${#imei} -ne 15 ] || ! echo "$imei" | grep -q '^[0-9]\+$'; then + return 1 + fi + return 0 +} + +# Function to validate band list +validate_bands() { + local bands="$1" + if [ -z "$bands" ]; then + return 0 # Empty is valid + fi + # Check format (comma-separated numbers) + if ! echo "$bands" | grep -q '^[0-9]\+\(,[0-9]\+\)*$'; then + return 1 + fi + return 0 +} + +# Function to validate network type +validate_network_type() { + local net_type="$1" + case "$net_type" in + "LTE" | "NR5G" | "LTE:NR5G") + return 0 + ;; + *) + return 1 + ;; + esac +} + +# Function to validate PDP type +validate_pdp_type() { + local pdp_type="$1" + case "$pdp_type" in + "IP" | "IPV6" | "IPV4V6") + return 0 + ;; + *) + return 1 + ;; + esac +} + +validate_ttl() { + local ttl="$1" + if [ -z "$ttl" ]; then + return 0 # Empty is valid (will be treated as 0/disabled) + fi + # Check that TTL is a number between 0 and 255 + if ! echo "$ttl" | grep -q '^[0-9]\+$' || [ "$ttl" -gt 255 ]; then + return 1 + fi + return 0 +} + +# Function to check if a profile with given ICCID exists +find_profile_by_iccid() { + local iccid="$1" + # Get all profile indices + local profile_indices=$(uci show quecprofiles | grep -o '@profile\[[0-9]\+\]' | sort -u) + + for profile_index in $profile_indices; do + local current_iccid=$(uci -q get quecprofiles.$profile_index.iccid) + if [ "$current_iccid" = "$iccid" ]; then + echo "$profile_index" + return 0 + fi + done + + return 1 +} + +# Function to check for duplicate name (excluding current profile) +check_duplicate_name() { + local name="$1" + local current_iccid="$2" + + local profile_indices=$(uci show quecprofiles | grep -o '@profile\[[0-9]\+\]' | sort -u) + + for profile_index in $profile_indices; do + local iccid=$(uci -q get quecprofiles.$profile_index.iccid) + local profile_name=$(uci -q get quecprofiles.$profile_index.name) + + # Skip the current profile we're editing + if [ "$iccid" = "$current_iccid" ]; then + continue + fi + + if [ "$profile_name" = "$name" ]; then + return 0 # Found duplicate + fi + done + + return 1 # No duplicate +} + +# Function to update an existing profile +update_profile() { + local profile_index="$1" + local name="$2" + local imei="$3" + local apn="$4" + local pdp_type="$5" + local lte_bands="$6" + local sa_nr5g_bands="$7" + local nsa_nr5g_bands="$8" + local network_type="$9" + local ttl="${10}" + + # Update the profile in UCI config + uci -q batch </dev/null) + + # Debug log + log_message "Received POST data: $POST_DATA" "debug" + + # Parse JSON with jsonfilter if available + if command -v jsonfilter >/dev/null 2>&1; then + iccid=$(echo "$POST_DATA" | jsonfilter -e '@.iccid' 2>/dev/null) + name=$(echo "$POST_DATA" | jsonfilter -e '@.name' 2>/dev/null) + imei=$(echo "$POST_DATA" | jsonfilter -e '@.imei' 2>/dev/null) + apn=$(echo "$POST_DATA" | jsonfilter -e '@.apn' 2>/dev/null) + pdp_type=$(echo "$POST_DATA" | jsonfilter -e '@.pdp_type' 2>/dev/null) + lte_bands=$(echo "$POST_DATA" | jsonfilter -e '@.lte_bands' 2>/dev/null) + sa_nr5g_bands=$(echo "$POST_DATA" | jsonfilter -e '@.sa_nr5g_bands' 2>/dev/null) + nsa_nr5g_bands=$(echo "$POST_DATA" | jsonfilter -e '@.nsa_nr5g_bands' 2>/dev/null) + network_type=$(echo "$POST_DATA" | jsonfilter -e '@.network_type' 2>/dev/null) + ttl=$(echo "$POST_DATA" | jsonfilter -e '@.ttl' 2>/dev/null) + + log_message "Parsed JSON data for profile: $name" "debug" + else + # If jsonfilter is not available, try basic parsing + # This is less reliable but might work for simple cases + iccid=$(echo "$POST_DATA" | grep -o '"iccid":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + name=$(echo "$POST_DATA" | grep -o '"name":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + imei=$(echo "$POST_DATA" | grep -o '"imei":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + apn=$(echo "$POST_DATA" | grep -o '"apn":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + pdp_type=$(echo "$POST_DATA" | grep -o '"pdp_type":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + lte_bands=$(echo "$POST_DATA" | grep -o '"lte_bands":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + sa_nr5g_bands=$(echo "$POST_DATA" | grep -o '"sa_nr5g_bands":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + nsa_nr5g_bands=$(echo "$POST_DATA" | grep -o '"nsa_nr5g_bands":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + network_type=$(echo "$POST_DATA" | grep -o '"network_type":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + ttl=$(echo "$POST_DATA" | grep -o '"ttl":"[^"]*"' | head -1 | cut -d':' -f2 | tr -d '"') + + log_message "Basic parsing for profile: $name" "warn" + fi + else + log_message "No content length specified" "error" + output_json "error" "No data received" + fi +else + # URL parameters for GET requests (less secure, but supported for testing) + iccid=$(echo "$QUERY_STRING" | grep -o 'iccid=[^&]*' | cut -d'=' -f2) + name=$(echo "$QUERY_STRING" | grep -o 'name=[^&]*' | cut -d'=' -f2) + imei=$(echo "$QUERY_STRING" | grep -o 'imei=[^&]*' | cut -d'=' -f2) + apn=$(echo "$QUERY_STRING" | grep -o 'apn=[^&]*' | cut -d'=' -f2) + pdp_type=$(echo "$QUERY_STRING" | grep -o 'pdp_type=[^&]*' | cut -d'=' -f2) + lte_bands=$(echo "$QUERY_STRING" | grep -o 'lte_bands=[^&]*' | cut -d'=' -f2) + sa_nr5g_bands=$(echo "$QUERY_STRING" | grep -o 'sa_nr5g_bands=[^&]*' | cut -d'=' -f2) + nsa_nr5g_bands=$(echo "$QUERY_STRING" | grep -o 'nsa_nr5g_bands=[^&]*' | cut -d'=' -f2) + network_type=$(echo "$QUERY_STRING" | grep -o 'network_type=[^&]*' | cut -d'=' -f2) + ttl=$(echo "$QUERY_STRING" | grep -o 'ttl=[^&]*' | cut -d'=' -f2) + + # URL decode values + iccid=$(echo "$iccid" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + name=$(echo "$name" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + imei=$(echo "$imei" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + apn=$(echo "$apn" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + pdp_type=$(echo "$pdp_type" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + lte_bands=$(echo "$lte_bands" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + sa_nr5g_bands=$(echo "$sa_nr5g_bands" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + nsa_nr5g_bands=$(echo "$nsa_nr5g_bands" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + network_type=$(echo "$network_type" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + ttl=$(echo "$ttl" | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' | xargs -0 printf "%b") + + log_message "Using URL parameters" "warn" +fi + +# Sanitize inputs +iccid=$(sanitize "${iccid:-}") +name=$(sanitize "${name:-}") +imei=$(sanitize "${imei:-}") +apn=$(sanitize "${apn:-}") +pdp_type=$(sanitize "${pdp_type:-IP}") +lte_bands=$(sanitize "${lte_bands:-}") +sa_nr5g_bands=$(sanitize "${sa_nr5g_bands:-}") +nsa_nr5g_bands=$(sanitize "${nsa_nr5g_bands:-}") +network_type=$(sanitize "${network_type:-LTE}") +ttl=$(sanitize "${ttl:-0}") # Default to 0 (disabled) + +# Output debug info +log_message "Editing profile: $name, ICCID: $iccid, IMEI: $imei, APN: $apn" "debug" + +# Validate required inputs +if [ -z "$iccid" ]; then + log_message "ICCID is missing" "error" + output_json "error" "ICCID is required to identify the profile" +fi + +if [ -z "$name" ]; then + log_message "Profile name is missing" "error" + output_json "error" "Profile name is required" +fi + +if [ -z "$apn" ]; then + log_message "APN is missing" "error" + output_json "error" "APN is required" +fi + +# Validate input formats +if ! validate_iccid "$iccid"; then + log_message "Invalid ICCID format: $iccid" "error" + output_json "error" "Invalid ICCID format. It should be 10-20 digits." +fi + +if ! validate_imei "$imei"; then + log_message "Invalid IMEI format: $imei" "error" + output_json "error" "Invalid IMEI format. It should be exactly 15 digits." +fi + +if ! validate_bands "$lte_bands"; then + log_message "Invalid LTE bands format: $lte_bands" "error" + output_json "error" "Invalid LTE bands format. Use comma-separated numbers (e.g., 1,3,7)" +fi + +if ! validate_bands "$sa_nr5g_bands"; then + log_message "Invalid SA NR5G bands format: $sa_nr5g_bands" "error" + output_json "error" "Invalid SA NR5G bands format. Use comma-separated numbers (e.g., 41,78)" +fi + +if ! validate_bands "$nsa_nr5g_bands"; then + log_message "Invalid NSA NR5G bands format: $nsa_nr5g_bands" "error" + output_json "error" "Invalid NSA NR5G bands format. Use comma-separated numbers (e.g., 1,79)" +fi + +if ! validate_network_type "$network_type"; then + log_message "Invalid network type: $network_type" "error" + output_json "error" "Invalid network type. Use 'LTE', 'NR5G', or 'LTE:NR5G'" +fi + +if ! validate_pdp_type "$pdp_type"; then + log_message "Invalid PDP type: $pdp_type" "error" + output_json "error" "Invalid PDP type. Use 'IP', 'IPV6', or 'IPV4V6'" +fi + +if ! validate_ttl "$ttl"; then + log_message "Invalid TTL value: $ttl" "error" + output_json "error" "Invalid TTL value. It should be a number between 0 and 255." +fi + +# Find profile to edit +profile_index=$(find_profile_by_iccid "$iccid") +if [ $? -ne 0 ]; then + log_message "Profile with ICCID $iccid not found" "error" + output_json "error" "Profile not found" +fi + +# Check for duplicate name +if check_duplicate_name "$name" "$iccid"; then + log_message "Duplicate profile name: $name" "error" + output_json "error" "A profile with this name already exists" +fi + +# Update profile +if update_profile "$profile_index" "$name" "$imei" "$apn" "$pdp_type" "$lte_bands" "$nr5g_bands" "$network_type"; then + # Trigger immediate profile application + touch "/tmp/quecprofiles_check" + chmod 644 "/tmp/quecprofiles_check" + log_message "Triggered immediate profile check after update" "info" + + # Create a clean JSON response with properly escaped quotes + printf '{"status":"success","message":"Profile updated successfully","data":{"name":"%s","iccid":"%s","imei":"%s","apn":"%s","pdp_type":"%s","lte_bands":"%s","nr5g_bands":"%s","network_type":"%s"}}' \ + "$name" "$iccid" "$imei" "$apn" "$pdp_type" "$lte_bands" "$nr5g_bands" "$network_type" + + log_message "Profile updated successfully: $name" "info" + + # Note: The conditional trigger is replaced with the direct trigger above +else + printf '{"status":"error","message":"Failed to update profile. Please check system logs."}' + log_message "Failed to update profile: $name" "error" +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/settings/device-uptime.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/settings/device-uptime.sh new file mode 100644 index 0000000..4150da0 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/settings/device-uptime.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +# Set content type for JSON response +echo "Content-type: application/json" +echo "" + +# Get system uptime in seconds from /proc/uptime +read uptime idle < /proc/uptime +uptime=${uptime%.*} # Remove decimal part + +# Calculate days, hours, minutes, seconds +days=$((uptime/86400)) +hours=$(((uptime%86400)/3600)) +minutes=$(((uptime%3600)/60)) +seconds=$((uptime%60)) + +# Format uptime string +uptime_str="" +[ $days -gt 0 ] && uptime_str="${days}d " +[ $hours -gt 0 ] && uptime_str="${uptime_str}${hours}h " +[ $minutes -gt 0 ] && uptime_str="${uptime_str}${minutes}m " +uptime_str="${uptime_str}${seconds}s" + +# Create and output JSON response +cat << EOF +{ + "status": "success", + "timestamp": "$(date -Iseconds)", + "uptime": { + "total_seconds": $uptime, + "days": $days, + "hours": $hours, + "minutes": $minutes, + "seconds": $seconds, + "formatted": "${uptime_str}" + } +} +EOF \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/force-rerun.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/settings/force-rerun.sh old mode 100755 new mode 100644 similarity index 100% rename from ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/force-rerun.sh rename to ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/quecmanager/settings/force-rerun.sh diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/at_queue_manager.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/at_queue_manager.sh new file mode 100644 index 0000000..aa9aee3 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/at_queue_manager.sh @@ -0,0 +1,672 @@ +#!/bin/sh +# AT Queue Manager for OpenWRT with Preemption Support and Token System +# Located in /www/cgi-bin/services/at_queue_manager + +# Constants +QUEUE_DIR="/tmp/at_queue" +QUEUE_FILE="$QUEUE_DIR/queue" +ACTIVE_FILE="$QUEUE_DIR/active" +RESULTS_DIR="$QUEUE_DIR/results" +LOCK_DIR="$QUEUE_DIR/lock" +TOKEN_FILE="$QUEUE_DIR/token" +MAX_TIMEOUT=240 +CLEANUP_INTERVAL=300 # 5 minutes in seconds +RESULTS_MAX_AGE=3600 # 1 hour in seconds +POLL_INTERVAL=0.01 +PREEMPTION_THRESHOLD=2 # 3 seconds threshold for preemption +TOKEN_TIMEOUT=30 # seconds before token expires + +# Utility function for JSON escaping +escape_json() { + printf '%s' "$1" | awk ' + BEGIN { RS="\n"; ORS="\\n" } + { + gsub(/\\/, "\\\\") + gsub(/"/, "\\\"") + gsub(/\r/, "") + gsub(/\t/, "\\t") + gsub(/\f/, "\\f") + gsub(/\b/, "\\b") + print + } + ' | sed 's/\\n$//' +} + +# Exclusive lock functions +acquire_lock() { + local timeout=10 + local attempt=0 + + while [ $attempt -lt $timeout ]; do + if mkdir "$LOCK_DIR" 2>/dev/null; then + logger -t at_queue -p daemon.debug "Lock acquired" + return 0 + fi + + sleep 0.1 + attempt=$((attempt + 1)) + done + + logger -t at_queue -p daemon.error "Failed to acquire lock after $timeout attempts" + return 1 +} + +release_lock() { + if [ -d "$LOCK_DIR" ]; then + rmdir "$LOCK_DIR" 2>/dev/null + logger -t at_queue -p daemon.debug "Lock released" + return 0 + fi + + logger -t at_queue -p daemon.error "Lock directory doesn't exist" + return 1 +} + +# Ensure required directories exist +init_queue_system() { + mkdir -p "$QUEUE_DIR" "$RESULTS_DIR" + touch "$QUEUE_FILE" + chmod 755 "$QUEUE_DIR" + chmod 644 "$QUEUE_FILE" + chmod 755 "$RESULTS_DIR" + logger -t at_queue -p daemon.info "Queue system initialized" +} + +# Cleanup old results and tracking files +cleanup_old_results() { + local current_time=$(date +%s) + + # Clean up old execution tracking files + find "$QUEUE_DIR" -name "pid.*" -type f -mmin +60 -delete 2>/dev/null + find "$QUEUE_DIR" -name "*.exit" -type f -mmin +60 -delete 2>/dev/null + find "$QUEUE_DIR" -name "start_time.*" -type f -mmin +60 -delete 2>/dev/null + logger -t at_queue -p daemon.debug "Cleaned up old tracking files" + + # Use find with -delete and basic timestamp check for OpenWRT + find "$RESULTS_DIR" -name "*.json" -type f -mmin +60 -delete 2>/dev/null || { + # Fallback method if find fails + for file in "$RESULTS_DIR"/*.json; do + [ -f "$file" ] || continue + local file_time=$(stat -c %Y "$file") + if [ $((current_time - file_time)) -gt $RESULTS_MAX_AGE ]; then + rm -f "$file" + fi + done + } + + # Check for expired token + if [ -f "$TOKEN_FILE" ]; then + local token_time=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp') + if [ $((current_time - token_time)) -gt $TOKEN_TIMEOUT ]; then + local token_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id') + logger -t at_queue -p daemon.warn "Removing expired token from $token_holder" + rm -f "$TOKEN_FILE" + fi + fi + + logger -t at_queue -p daemon.info "Cleanup: Removed files older than 1 hour" +} + +# Generate unique command ID +generate_command_id() { + echo "$(date +%s)_$(head -c 8 /dev/urandom | hexdump -v -e '1/1 "%02x"')" +} + +# Start tracking command execution time +start_execution_tracking() { + local cmd_id="$1" + local pid="$2" + local start_time=$(date +%s) + + echo "$start_time" > "$QUEUE_DIR/start_time.$cmd_id" + echo "$pid" > "$QUEUE_DIR/pid.$cmd_id" + chmod 644 "$QUEUE_DIR/start_time.$cmd_id" + chmod 644 "$QUEUE_DIR/pid.$cmd_id" + logger -t at_queue -p daemon.debug "Started tracking command $cmd_id (PID: $pid)" +} + +# Check if running command should be preempted +should_preempt() { + local current_cmd_id="$1" + local new_priority="$2" + + if [ ! -f "$QUEUE_DIR/start_time.$current_cmd_id" ]; then + logger -t at_queue -p daemon.debug "No start time found for $current_cmd_id" + return 1 + fi + + local start_time=$(cat "$QUEUE_DIR/start_time.$current_cmd_id") + local current_time=$(date +%s) + local execution_time=$((current_time - start_time)) + + # Get current command's priority + local current_priority + if [ -f "$ACTIVE_FILE" ]; then + current_priority=$(cat "$ACTIVE_FILE" | jsonfilter -e '@.priority') + else + logger -t at_queue -p daemon.debug "No active command found" + return 1 + fi + + if [ $execution_time -gt $PREEMPTION_THRESHOLD ] && [ $new_priority -lt $current_priority ]; then + logger -t at_queue -p daemon.info "Command $current_cmd_id (priority $current_priority) running for ${execution_time}s is eligible for preemption by priority $new_priority" + return 0 + fi + + logger -t at_queue -p daemon.debug "Command $current_cmd_id not eligible for preemption (time: ${execution_time}s, current priority: $current_priority, new priority: $new_priority)" + return 1 +} + +# Handle command preemption +preempt_command() { + local cmd_id="$1" + local pid_file="$QUEUE_DIR/pid.$cmd_id" + + if [ -f "$pid_file" ]; then + local pid=$(cat "$pid_file") + logger -t at_queue -p daemon.info "Preempting command $cmd_id (PID: $pid)" + + # Send SIGTERM first + kill -TERM $pid 2>/dev/null + + # Brief wait for graceful termination + sleep 0.1 + + # Force kill if still running + if kill -0 $pid 2>/dev/null; then + kill -KILL $pid 2>/dev/null + logger -t at_queue -p daemon.warn "Forced termination of command $cmd_id" + fi + + # Record preemption result + write_preemption_result "$cmd_id" + + # Cleanup command files + rm -f "$pid_file" "$QUEUE_DIR/start_time.$cmd_id" "$QUEUE_DIR/$cmd_id.exit" + [ -f "$ACTIVE_FILE" ] && rm -f "$ACTIVE_FILE" + + logger -t at_queue -p daemon.info "Command $cmd_id preemption complete" + return 0 + fi + + logger -t at_queue -p daemon.warn "No PID file found for command $cmd_id" + return 1 +} + +# Record result for preempted command +write_preemption_result() { + local cmd_id="$1" + local end_time=$(date +%s%3N) + local start_time + + if [ -f "$QUEUE_DIR/start_time.$cmd_id" ]; then + start_time=$(cat "$QUEUE_DIR/start_time.$cmd_id")000 + else + start_time=$end_time + fi + + local duration=$((end_time - start_time)) + local command_text=$(cat "$ACTIVE_FILE" | jsonfilter -e '@.command') + + local response=$(cat << EOF +{ + "command": { + "id": "$cmd_id", + "text": "$(escape_json "$command_text")", + "timestamp": "$(date -Iseconds)" + }, + "response": { + "status": "preempted", + "raw_output": "Command preempted by higher priority task", + "completion_time": "$end_time", + "duration_ms": $duration + } +} +EOF +) + + printf "%s" "$response" > "$RESULTS_DIR/$cmd_id.json" + chmod 644 "$RESULTS_DIR/$cmd_id.json" + logger -t at_queue -p daemon.info "Recorded preemption result for command $cmd_id (duration: ${duration}ms)" +} + +# Request a token for direct sms_tool execution +request_token() { + local requestor_id="$1" + local priority="${2:-10}" + local timeout="${3:-10}" + + # Acquire lock first + if ! acquire_lock; then + logger -t at_queue -p daemon.error "Failed to acquire lock for token request" + echo "{\"error\":\"Could not acquire lock\",\"status\":\"denied\"}" + return 1 + fi + + # Check if token file exists (someone else has the token) + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id') + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority') + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp') + local current_time=$(date +%s) + + # Check for expired token (> TOKEN_TIMEOUT seconds old) + if [ $((current_time - timestamp)) -gt $TOKEN_TIMEOUT ]; then + logger -t at_queue -p daemon.warn "Found expired token from $current_holder, releasing" + rm -f "$TOKEN_FILE" + # Check for priority preemption + elif [ $priority -lt $current_priority ]; then + logger -t at_queue -p daemon.info "Preempting token from $current_holder (priority: $current_priority) for $requestor_id (priority: $priority)" + rm -f "$TOKEN_FILE" + else + # Token in use and cannot be preempted + release_lock + echo "{\"status\":\"denied\",\"holder\":\"$current_holder\",\"priority\":$current_priority}" + return 1 + fi + fi + + # Also check if there's an active command from the queue + if [ -f "$ACTIVE_FILE" ]; then + local active_id=$(cat "$ACTIVE_FILE" | jsonfilter -e '@.id') + local active_priority=$(cat "$ACTIVE_FILE" | jsonfilter -e '@.priority') + + # Only preempt if priority is higher + if [ $priority -ge $active_priority ]; then + release_lock + echo "{\"status\":\"denied\",\"holder\":\"$active_id\",\"priority\":$active_priority}" + return 1 + fi + + logger -t at_queue -p daemon.info "Direct execution with higher priority than active queue command" + fi + + # Grant token + local token_data="{\"id\":\"$requestor_id\",\"priority\":$priority,\"timestamp\":$(date +%s)}" + echo "$token_data" > "$TOKEN_FILE" + chmod 644 "$TOKEN_FILE" + + release_lock + echo "{\"status\":\"granted\",\"id\":\"$requestor_id\",\"timeout\":$timeout}" + return 0 +} + +# Release a previously acquired token +release_token() { + local requestor_id="$1" + + if ! acquire_lock; then + logger -t at_queue -p daemon.error "Failed to acquire lock for token release" + return 1 + fi + + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id') + + if [ "$current_holder" = "$requestor_id" ]; then + rm -f "$TOKEN_FILE" + logger -t at_queue -p daemon.debug "Token released by $requestor_id" + release_lock + echo "{\"status\":\"released\"}" + return 0 + else + logger -t at_queue -p daemon.warn "Token release attempted by $requestor_id but held by $current_holder" + fi + else + logger -t at_queue -p daemon.warn "Token release attempted but no token exists" + fi + + release_lock + echo "{\"status\":\"not_found\"}" + return 1 +} + +# Add command to queue with preemption support +enqueue_command() { + local cmd="$1" + local priority="${2:-10}" + local cmd_id=$(generate_command_id) + local timestamp=$(date -Iseconds) + + # Ensure queue directory exists + [ ! -d "$QUEUE_DIR" ] && init_queue_system + + logger -t at_queue -p daemon.info "Enqueuing command: $cmd (priority: $priority, id: $cmd_id)" + + # Acquire lock for queue modification + if ! acquire_lock; then + logger -t at_queue -p daemon.error "Failed to acquire lock for enqueuing command" + echo "{\"error\":\"Queue lock acquisition failed\",\"command\":\"$cmd\"}" + return 1 + fi + + # Check for active command that can be preempted + if [ -f "$ACTIVE_FILE" ]; then + local active_cmd_id=$(cat "$ACTIVE_FILE" | jsonfilter -e '@.id') + if should_preempt "$active_cmd_id" "$priority"; then + preempt_command "$active_cmd_id" + fi + fi + + # Create command entry + local entry="{\"id\":\"$cmd_id\",\"command\":\"$(escape_json "$cmd")\",\"priority\":$priority,\"timestamp\":\"$timestamp\"}" + + if [ "$priority" = "1" ]; then + # High priority - prepend to queue + local temp_file=$(mktemp) + echo "$entry" > "$temp_file" + cat "$QUEUE_FILE" >> "$temp_file" + mv "$temp_file" "$QUEUE_FILE" + chmod 644 "$QUEUE_FILE" + logger -t at_queue -p daemon.info "Added high priority command to front of queue" + else + # Normal priority - append to queue + echo "$entry" >> "$QUEUE_FILE" + logger -t at_queue -p daemon.info "Added normal priority command to end of queue" + fi + + # Release lock + release_lock + + echo "{\"command_id\":\"$cmd_id\",\"status\":\"queued\"}" +} + +# Get next command from queue +dequeue_command() { + if [ ! -s "$QUEUE_FILE" ]; then + return 1 + fi + + # Acquire lock + if ! acquire_lock; then + logger -t at_queue -p daemon.error "Failed to acquire lock for dequeuing command" + return 1 + fi + + local cmd_entry=$(head -n 1 "$QUEUE_FILE") + local temp_file=$(mktemp) + tail -n +2 "$QUEUE_FILE" > "$temp_file" + mv "$temp_file" "$QUEUE_FILE" + chmod 644 "$QUEUE_FILE" + + echo "$cmd_entry" > "$ACTIVE_FILE" + chmod 644 "$ACTIVE_FILE" + + # Release lock + release_lock + + logger -t at_queue -p daemon.debug "Dequeued command: $(echo "$cmd_entry" | jsonfilter -e '@.command')" + echo "$cmd_entry" +} + +# Clean and format AT command output +clean_output() { + local output="$1" + + # First format AT command responses for readability + output=$(echo "$output" | sed -E ' + # Add newline after AT commands + s/(AT\+[A-Z0-9]+[^ ]*) +/\1\n/g + # Add newline before +RESPONSE lines + s/ +(\+[A-Z0-9]+:)/\n\1/g + # Add newline before OK/ERROR + s/ +(OK|ERROR)$/\n\1/g + ') + + # Then escape the formatted output for JSON + output=$(escape_json "$output") + + echo "$output" +} + +# Execute AT command with optimized timeout handling +execute_with_timeout() { + local command="$1" + local timeout="$2" + local cmd_id="$3" + local output_file=$(mktemp) + + # Start command in background with immediate output + (sms_tool -D at "$command" > "$output_file" 2>&1; echo $? > "$QUEUE_DIR/$cmd_id.exit") & + local pid=$! + + # Start execution tracking + start_execution_tracking "$cmd_id" "$pid" + + logger -t at_queue -p daemon.debug "Started command execution: $command (PID: $pid)" + + # Wait for completion with shorter polling interval + local start_time=$(date +%s) + local elapsed=0 + + while [ $elapsed -lt "$timeout" ]; do + if [ -f "$QUEUE_DIR/$cmd_id.exit" ]; then + local exit_code=$(cat "$QUEUE_DIR/$cmd_id.exit") + local output=$(cat "$output_file") + + # Cleanup + rm -f "$QUEUE_DIR/pid.$cmd_id" "$QUEUE_DIR/$cmd_id.exit" "$output_file" "$QUEUE_DIR/start_time.$cmd_id" + + logger -t at_queue -p daemon.debug "Command completed with exit code $exit_code" + echo "$output" + return $exit_code + fi + + elapsed=$(($(date +%s) - start_time)) + sleep $POLL_INTERVAL + done + + # Handle timeout + if [ -f "$QUEUE_DIR/pid.$cmd_id" ]; then + local pid=$(cat "$QUEUE_DIR/pid.$cmd_id") + kill $pid 2>/dev/null + sleep 0.1 + # Force kill if still running + if kill -0 $pid 2>/dev/null; then + kill -KILL $pid 2>/dev/null + fi + + local partial_output=$(cat "$output_file" 2>/dev/null || echo "") + + # Cleanup + rm -f "$QUEUE_DIR/pid.$cmd_id" "$QUEUE_DIR/$cmd_id.exit" "$output_file" "$QUEUE_DIR/start_time.$cmd_id" + + logger -t at_queue -p daemon.warn "Command timed out after $timeout seconds" + echo "${partial_output:-Command timed out after $timeout seconds}" + fi + + return 124 +} + +# Execute AT command and handle response +execute_command() { + local cmd_entry="$1" + local cmd_id=$(echo "$cmd_entry" | jsonfilter -e '@.id') + local cmd_text=$(echo "$cmd_entry" | jsonfilter -e '@.command') + local priority=$(echo "$cmd_entry" | jsonfilter -e '@.priority') + + local start_time=$(date +%s%3N) + + logger -t at_queue -p daemon.info "Executing command $cmd_id: $cmd_text (priority: $priority)" + + # Execute command with timeout + local result=$(execute_with_timeout "$cmd_text" $MAX_TIMEOUT "$cmd_id") + local exit_code=$? + local end_time=$(date +%s%3N) + local duration=$((end_time - start_time)) + + # Determine status and log level + local status="error" + local log_level="error" + + if [ $exit_code -eq 124 ]; then + status="timeout" + logger -t at_queue -p daemon.error "Command $cmd_id timed out after ${duration}ms" + elif echo "$result" | grep -q "OK"; then + status="success" + log_level="info" + logger -t at_queue -p daemon.info "Command $cmd_id completed successfully in ${duration}ms" + elif echo "$result" | grep -q "CME ERROR"; then + status="cme_error" + logger -t at_queue -p daemon.error "Command $cmd_id failed with CME ERROR in ${duration}ms" + else + logger -t at_queue -p daemon.error "Command $cmd_id failed with general error in ${duration}ms" + fi + + # Clean and escape the output + local clean_result=$(clean_output "$result") + + # Create JSON response + local response=$(cat << EOF +{ + "command": { + "id": "$cmd_id", + "text": "$(escape_json "$cmd_text")", + "timestamp": "$(date -Iseconds)" + }, + "response": { + "status": "$status", + "raw_output": "$clean_result", + "completion_time": "$end_time", + "duration_ms": $duration + } +} +EOF +) + + # Acquire lock for writing result + if ! acquire_lock; then + logger -t at_queue -p daemon.error "Failed to acquire lock for writing result" + else + # Save response + printf "%s" "$response" > "$RESULTS_DIR/$cmd_id.json" + chmod 644 "$RESULTS_DIR/$cmd_id.json" + + # Clean up active file + rm -f "$ACTIVE_FILE" + + # Release lock + release_lock + fi + + echo "$response" +} + +# Main queue processing function +process_queue() { + init_queue_system + local last_cleanup=$(date +%s) + local last_log=$(date +%s) # Add a timestamp for less frequent logging + + # Make sure the lock directory doesn't exist at startup + [ -d "$LOCK_DIR" ] && rmdir "$LOCK_DIR" 2>/dev/null + + logger -t at_queue -p daemon.info "Started queue processing daemon" + + while true; do + # Quick cleanup check + local current_time=$(date +%s) + if [ $((current_time - last_cleanup)) -ge $CLEANUP_INTERVAL ]; then + cleanup_old_results + last_cleanup=$current_time + fi + + # Skip processing if token is granted to someone + if [ -f "$TOKEN_FILE" ]; then + local token_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id') + local token_time=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp') + local current_time=$(date +%s) + + # Check for expired token + if [ $((current_time - token_time)) -gt $TOKEN_TIMEOUT ]; then + logger -t at_queue -p daemon.warn "Removing expired token from $token_holder" + rm -f "$TOKEN_FILE" + else + # Log pause status only every 5 seconds to reduce log spam + if [ $((current_time - last_log)) -ge 5 ]; then + logger -t at_queue -p daemon.debug "Queue processing paused, token held by $token_holder" + last_log=$current_time + fi + sleep $POLL_INTERVAL + continue + fi + fi + + # Process queue if not empty and no active command + if [ -s "$QUEUE_FILE" ] && [ ! -f "$ACTIVE_FILE" ]; then + local cmd_entry=$(dequeue_command) + if [ -n "$cmd_entry" ]; then + execute_command "$cmd_entry" + fi + fi + + sleep $POLL_INTERVAL + done +} + +# CGI command handling +if [ "${SCRIPT_NAME}" != "" ]; then + # Output headers + if [ "$HTTP_HEADERS" != "0" ]; then + echo "Content-Type: application/json" + echo "" + fi + + # Parse query string for CGI mode + eval $(echo "$QUERY_STRING" | sed 's/&/;/g') + + case "$action" in + "enqueue") + if [ -n "$command" ]; then + logger -t at_queue -p daemon.info "CGI: Received enqueue request for command: $command" + enqueue_command "$command" "$priority" + else + logger -t at_queue -p daemon.error "CGI: Empty command received" + echo "{\"error\":\"No command specified\"}" + fi + ;; + "status") + if [ -f "$ACTIVE_FILE" ]; then + logger -t at_queue -p daemon.debug "CGI: Status request - queue active" + cat "$ACTIVE_FILE" + else + logger -t at_queue -p daemon.debug "CGI: Status request - queue idle" + echo "{\"status\":\"idle\"}" + fi + ;; + "request_token") + if [ -n "$id" ]; then + logger -t at_queue -p daemon.info "Token request from $id (priority: ${priority:-10})" + request_token "$id" "${priority:-10}" "${timeout:-10}" + else + logger -t at_queue -p daemon.error "Token request missing ID" + echo "{\"error\":\"No requestor ID specified\",\"status\":\"denied\"}" + fi + ;; + "release_token") + if [ -n "$id" ]; then + logger -t at_queue -p daemon.info "Token release from $id" + release_token "$id" + else + logger -t at_queue -p daemon.error "Token release missing ID" + echo "{\"error\":\"No requestor ID specified\",\"status\":\"denied\"}" + fi + ;; + *) + logger -t at_queue -p daemon.error "CGI: Invalid action received: $action" + echo "{\"error\":\"Invalid action\"}" + ;; + esac + exit 0 +fi + +# CLI command handling +if [ "$1" = "enqueue" ] && [ -n "$2" ]; then + enqueue_command "$2" "${3:-10}" + exit $? +fi + +# If not run as CGI, start queue processing +if [ "${SCRIPT_NAME}" = "" ] && [ -z "$1" ]; then + process_queue +fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/at_queue_processor.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/at_queue_processor.sh deleted file mode 100755 index 495fe83..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/at_queue_processor.sh +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/sh - -QUEUE_FILE="/tmp/at_pipe.txt" -RESULT_FILE="/tmp/at_results.json" -LOG_FILE="/var/log/at_commands.log" -# Define all lock keywords -FETCH_LOCK_KEYWORD="FETCH_DATA_LOCK" -SIGNAL_LOCK_KEYWORD="SIGNAL_METRICS_LOCK" -# Combine keywords for pattern matching -ALL_LOCK_KEYWORDS="${FETCH_LOCK_KEYWORD}\\|${SIGNAL_LOCK_KEYWORD}" - -# Create or clear necessary files -touch "${QUEUE_FILE}" -[ ! -f "${RESULT_FILE}" ] && echo '[]' > "${RESULT_FILE}" - -# Log messages to the log file -log_message() { - echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "${LOG_FILE}" -} - -# Escape special characters for JSON -escape_json() { - echo "$1" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' -} - -# Function to check if any lock is present -is_system_locked() { - grep -q "\"command\":\"\\(${ALL_LOCK_KEYWORDS}\\)\"" "${QUEUE_FILE}" - return $? -} - -# Process a single command -process_command() { - local command="$1" - local timestamp="$2" - local cmd_id="$3" - - log_message "Processing command: ${command} (ID: ${cmd_id})" - - # Check if sms_tool exists and is executable - if ! which sms_tool >/dev/null 2>&1; then - log_message "Error: sms_tool not found in PATH" - result="sms_tool not found" - exit_code=1 - else - # Execute the AT command using sms_tool - result=$(sms_tool at "${command}" 2>&1) - exit_code=$? - log_message "Command output: ${result}" - log_message "Exit code: ${exit_code}" - fi - - # Escape the command and result for JSON - escaped_command=$(escape_json "${command}") - escaped_result=$(echo "${result}" | sed 's/"/\\"/g' | sed ':a;N;$!ba;s/\n/\\n/g' | tr -d '\r') - - # Generate the result JSON - if [ ${exit_code} -eq 0 ]; then - log_message "Command successful: ${command}" - RESULT_JSON=$(printf '{"id":"%s","status":"success","command":"%s","response":"%s","queued_at":"%s","executed_at":"%s"}' \ - "${cmd_id}" "${escaped_command}" "${escaped_result}" "${timestamp}" "$(date '+%H:%M:%S')") - else - log_message "Command failed: ${command}" - RESULT_JSON=$(printf '{"id":"%s","status":"error","command":"%s","error":"%s","queued_at":"%s","executed_at":"%s"}' \ - "${cmd_id}" "${escaped_command}" "${escaped_result}" "${timestamp}" "$(date '+%H:%M:%S')") - fi - - # Update the results file safely - if ! current_results=$(cat "${RESULT_FILE}" 2>/dev/null); then - log_message "Error reading results file, initializing new one" - echo '[]' > "${RESULT_FILE}" - current_results='[]' - fi - - # Append the result JSON to the results file - if ! echo "${current_results}" | jq --argjson new "${RESULT_JSON}" '. + [$new]' > "${RESULT_FILE}.tmp"; then - log_message "Error updating results file" - return 1 - fi - - mv "${RESULT_FILE}.tmp" "${RESULT_FILE}" - log_message "Successfully updated results file" - return ${exit_code} -} - -# Check if an entry is a lock entry -is_lock_entry() { - local line="$1" - echo "${line}" | grep -q "\"command\":\"\\(${ALL_LOCK_KEYWORDS}\\)\"" - return $? -} - -# Process pending commands in the queue -process_pending_commands() { - while true; do - # Check if any lock is present - if is_system_locked; then - local lock_type=$(grep -o "\"command\":\"[^\"]*\"" "${QUEUE_FILE}" | grep "${ALL_LOCK_KEYWORDS}") - log_message "System is locked: ${lock_type}, waiting..." - sleep 0.5 - continue - fi - - # Read the first line from the queue - line=$(head -n 1 "${QUEUE_FILE}" 2>/dev/null) - - if [ -n "${line}" ]; then - log_message "Processing queue entry: ${line}" - - # Skip processing if it's a lock entry - if is_lock_entry "${line}"; then - log_message "Found lock entry, skipping" - sed -i '1d' "${QUEUE_FILE}" - continue - fi - - # Validate JSON before processing - if ! echo "${line}" | jq empty 2>/dev/null; then - log_message "Invalid JSON in queue, skipping line" - sed -i '1d' "${QUEUE_FILE}" - continue - fi - - # Parse the command, timestamp, and ID from the JSON entry - command=$(echo "${line}" | jq -r '.command // empty') - timestamp=$(echo "${line}" | jq -r '.timestamp // empty') - cmd_id=$(echo "${line}" | jq -r '.id // empty') - - if [ -z "${command}" ] || [ -z "${timestamp}" ] || [ -z "${cmd_id}" ]; then - log_message "Missing required fields in JSON, skipping" - sed -i '1d' "${QUEUE_FILE}" - continue - fi - - # Process the command - process_command "${command}" "${timestamp}" "${cmd_id}" - - # Remove the processed line from the queue - sed -i '1d' "${QUEUE_FILE}" - - # Add a small delay between commands - sleep 0.1 - else - # No commands in queue, wait briefly before checking again - sleep 0.5 - break - fi - done -} - -# Main queue monitoring loop -process_queue() { - log_message "Starting queue processor with multiple lock support" - - while true; do - # Process any pending commands - process_pending_commands - - # Wait for changes to the queue file - inotifywait -q -e modify,create "${QUEUE_FILE}" >/dev/null 2>&1 - - # Small delay to allow file to stabilize - sleep 0.1 - done -} - -# Start processing the queue -log_message "Queue processor started with file monitoring and multiple lock support" -process_queue \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/clear_logs.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/clear_logs.sh deleted file mode 100755 index 22d521c..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/clear_logs.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh - -# Script path -SCRIPT_PATH=$(readlink -f "$0") - -# Check if files exist and are writable -missing_files=0 - -# Check apn_profiles.log -if [ ! -f "/tmp/apn_profiles.log" ]; then - logger -t log_cleanup "File not found: /tmp/apn_profiles.log" - missing_files=1 -elif [ ! -w "/tmp/apn_profiles.log" ]; then - logger -t log_cleanup "No write permission for file: /tmp/apn_profiles.log" - missing_files=1 -fi - -# Check imei_profiles.log -if [ ! -f "/tmp/imei_profiles.log" ]; then - logger -t log_cleanup "File not found: /tmp/imei_profiles.log" - missing_files=1 -elif [ ! -w "/tmp/imei_profiles.log" ]; then - logger -t log_cleanup "No write permission for file: /tmp/imei_profiles.log" - missing_files=1 -fi - -# Check at_commands.log -if [ ! -f "/var/log/at_commands.log" ]; then - logger -t log_cleanup "File not found: /var/log/at_commands.log" - missing_files=1 -elif [ ! -w "/var/log/at_commands.log" ]; then - logger -t log_cleanup "No write permission for file: /var/log/at_commands.log" - missing_files=1 -fi - -# Exit if any files are missing or not writable -if [ $missing_files -eq 1 ]; then - logger -t log_cleanup "Exiting due to missing or unwritable files" - exit 1 -fi - -# Fix the spacing in the cron line to ensure exactly 5 fields -CRON_LINE="0 0 * * * $SCRIPT_PATH" - -# Install crontab while preserving other entries -if ! crontab -l | grep -Fq "$SCRIPT_PATH"; then - # Create temporary file - TEMP_CRON=$(mktemp) - - # Get existing crontab - crontab -l 2>/dev/null > "$TEMP_CRON" || true - - # Remove any old instances of this script - if [ -s "$TEMP_CRON" ]; then - sed -i "\#$SCRIPT_PATH#d" "$TEMP_CRON" - fi - - # Add new cron line - echo "$CRON_LINE" >> "$TEMP_CRON" - - # Install new crontab - if crontab "$TEMP_CRON"; then - logger -t log_cleanup "Successfully installed crontab job" - else - logger -t log_cleanup "Failed to install crontab job" - rm -f "$TEMP_CRON" - exit 1 - fi - - # Clean up - rm -f "$TEMP_CRON" -fi - -# Clean log files -if ! echo "" > "/tmp/apn_profiles.log"; then - logger -t log_cleanup "Failed to clean file: /tmp/apn_profiles.log" - exit 1 -fi - -if ! echo "" > "/tmp/imei_profiles.log"; then - logger -t log_cleanup "Failed to clean file: /tmp/imei_profiles.log" - exit 1 -fi - -if ! echo "" > "/var/log/at_commands.log"; then - logger -t log_cleanup "Failed to clean file: /var/log/at_commands.log" - exit 1 -fi - -logger -t log_cleanup "Successfully cleaned log files" \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/log_signal_metrics.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/log_signal_metrics.sh index 7b8cbd1..6646134 100755 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/log_signal_metrics.sh +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/log_signal_metrics.sh @@ -3,177 +3,193 @@ LOGDIR="/www/signal_graphs" MAX_ENTRIES=10 INTERVAL=60 -QUEUE_FILE="/tmp/at_pipe.txt" -AT_COMMAND_KEYWORD="AT_COMMAND_LOCK" -CELL_SCAN_KEYWORD="CELL_SCAN" # Added to check for cell scan -PAUSE_FILE="/tmp/signal_logging.pause" +QUEUE_DIR="/tmp/at_queue" +TOKEN_FILE="$QUEUE_DIR/token" +LOCK_FILE="/tmp/signal_metrics.lock" +METRICS_PID_FILE="/tmp/signal_metrics.pid" +MAX_TOKEN_WAIT=5 # seconds to wait for token acquisition -# Ensure the directory exists -mkdir -p "$LOGDIR" +# Ensure required directories exist +mkdir -p "$LOGDIR" "$QUEUE_DIR" -# Wait for high-priority operations -wait_for_high_priority() { - while grep -q "\"priority\":\"high\"" "$QUEUE_FILE"; do - logger -t signal_metrics "Waiting for high-priority operation to complete" - sleep 1 - done -} - -# Enhanced lock handling with better priority awareness -handle_lock() { - # Check for any CGI script operations (high priority) - while grep -q "\"priority\":\"high\"" "$QUEUE_FILE" || - grep -q "\"command\":\"$AT_COMMAND_KEYWORD\"" "$QUEUE_FILE"; do - logger -t signal_metrics "Waiting for high-priority CGI operation to complete" - sleep 2 - done - - # Check and clean any stale FETCH_LOCK entries - check_and_clean_stale "FETCH_LOCK" - - # Check for cell scan operations - while grep -q "\"command\":\"$CELL_SCAN_KEYWORD\"" "$QUEUE_FILE"; do - logger -t signal_metrics "Waiting for cell scan to complete" - sleep 1 - done - - # Add our low-priority entry - printf '{"command":"AT_COMMAND","pid":"%s","timestamp":"%s","priority":"low"}\n' \ - "$$" \ - "$(date '+%H:%M:%S')" >>"$QUEUE_FILE" - - # Then check and clean our own entry if it gets stuck - check_and_clean_stale "AT_COMMAND" -} - -# Increase the wait time for stale entry checking -check_and_clean_stale() { - local command_type="$1" - local wait_count=0 - - while [ $wait_count -lt 10 ]; do # Increased from 6 to 10 - # Check if our type of entry exists - if grep -q "\"command\":\"${command_type}\"" "$QUEUE_FILE"; then - sleep 2 # Increased from 1 to 2 - wait_count=$((wait_count + 1)) - else - # Entry is gone, we can proceed +# Check if another instance is running +check_running() { + if [ -f "$METRICS_PID_FILE" ]; then + pid=$(cat "$METRICS_PID_FILE") + if kill -0 "$pid" 2>/dev/null; then return 0 fi - done - - # Only clean low-priority entries - if ! grep -q "\"priority\":\"high\".*\"command\":\"${command_type}\"" "$QUEUE_FILE"; then - logger -t signal_metrics "Removing stale ${command_type} entry after ${wait_count}s" - sed -i "/\"command\":\"${command_type}\"/d" "$QUEUE_FILE" + rm -f "$METRICS_PID_FILE" 2>/dev/null fi + return 1 +} + +# Acquire token directly (minimized version) +acquire_token() { + local metrics_id="METRICS_$(date +%s)_$$" + local priority=20 # Lowest priority for metrics + local max_attempts=20 + local attempt=0 + + while [ $attempt -lt $max_attempts ]; do + # Check if token exists + if [ -f "$TOKEN_FILE" ]; then + # Check current token + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Wait and try again + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token + echo "{\"id\":\"$metrics_id\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got it + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$metrics_id" ]; then + echo "$metrics_id" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + return 1 +} + +# Release token directly +release_token() { + local metrics_id="$1" + + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$metrics_id" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + fi + fi +} + +# Execute AT command directly +execute_at_command() { + local CMD="$1" + sms_tool at "$CMD" -t 3 2>/dev/null +} + +# Process all metrics commands with a single token +process_all_metrics() { + # Try to get token + local metrics_id=$(acquire_token) + if [ -z "$metrics_id" ]; then + logger -t at_queue -p daemon.warn "Could not acquire token for metrics - will try again later" + return 1 + fi + + logger -t at_queue -p daemon.info "Processing all metrics with token $metrics_id" + + # Execute all metrics commands with the single token + local timestamp=$(date "+%Y-%m-%d %H:%M:%S") + + # RSRP + local rsrp_output=$(execute_at_command "AT+QRSRP") + if [ -n "$rsrp_output" ] && echo "$rsrp_output" | grep -q "QRSRP"; then + local logfile="$LOGDIR/rsrp.json" + [ ! -s "$logfile" ] && echo "[]" > "$logfile" + + local temp_file="${logfile}.tmp.$$" + jq --arg dt "$timestamp" \ + --arg out "$rsrp_output" \ + '. + [{"datetime": $dt, "output": $out}] | .[-'"$MAX_ENTRIES"':]' \ + "$logfile" > "$temp_file" 2>/dev/null && mv "$temp_file" "$logfile" + chmod 644 "$logfile" + fi + + sleep 0.5 + + # RSRQ + local rsrq_output=$(execute_at_command "AT+QRSRQ") + if [ -n "$rsrq_output" ] && echo "$rsrq_output" | grep -q "QRSRQ"; then + local logfile="$LOGDIR/rsrq.json" + [ ! -s "$logfile" ] && echo "[]" > "$logfile" + + local temp_file="${logfile}.tmp.$$" + jq --arg dt "$timestamp" \ + --arg out "$rsrq_output" \ + '. + [{"datetime": $dt, "output": $out}] | .[-'"$MAX_ENTRIES"':]' \ + "$logfile" > "$temp_file" 2>/dev/null && mv "$temp_file" "$logfile" + chmod 644 "$logfile" + fi + + sleep 0.5 + + # SINR + local sinr_output=$(execute_at_command "AT+QSINR") + if [ -n "$sinr_output" ] && echo "$sinr_output" | grep -q "QSINR"; then + local logfile="$LOGDIR/sinr.json" + [ ! -s "$logfile" ] && echo "[]" > "$logfile" + + local temp_file="${logfile}.tmp.$$" + jq --arg dt "$timestamp" \ + --arg out "$sinr_output" \ + '. + [{"datetime": $dt, "output": $out}] | .[-'"$MAX_ENTRIES"':]' \ + "$logfile" > "$temp_file" 2>/dev/null && mv "$temp_file" "$logfile" + chmod 644 "$logfile" + fi + + sleep 0.5 + + # Data usage + local usage_output=$(execute_at_command "AT+QGDCNT?;+QGDNRCNT?") + if [ -n "$usage_output" ] && echo "$usage_output" | grep -q "QGDCNT\|QGDNRCNT"; then + local logfile="$LOGDIR/data_usage.json" + [ ! -s "$logfile" ] && echo "[]" > "$logfile" + + local temp_file="${logfile}.tmp.$$" + jq --arg dt "$timestamp" \ + --arg out "$usage_output" \ + '. + [{"datetime": $dt, "output": $out}] | .[-'"$MAX_ENTRIES"':]' \ + "$logfile" > "$temp_file" 2>/dev/null && mv "$temp_file" "$logfile" + chmod 644 "$logfile" + fi + + # Release token + release_token "$metrics_id" + logger -t at_queue -p daemon.info "Metrics processing completed" return 0 } -# Clean output function -clean_output() { - local output="" - read -r line - - while read -r line; do - case "$line" in - "OK" | "") - continue - ;; - *) - if [ -n "$output" ]; then - output="$output\\n$line" - else - output="$line" - fi - ;; - esac - done - - echo "$output" -} - -# Execute AT command -execute_at_command() { - local COMMAND="$1" - handle_lock - local OUTPUT=$(sms_tool at "$COMMAND" -t 4 2>/dev/null | clean_output) - sed -i "/\"pid\":\"$$\"/d" "$QUEUE_FILE" # Remove our entry - echo "$OUTPUT" -} - -# Log signal metric with response validation -log_signal_metric() { - [ -f "$PAUSE_FILE" ] && return - - local COMMAND="$1" - local FILENAME="$2" - local EXPECTED_RESPONSE="$3" # New parameter for expected response content - local LOGFILE="$LOGDIR/$FILENAME" - - mkdir -p "$(dirname "$LOGFILE")" - - local TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") - local SIGNAL_OUTPUT=$(execute_at_command "$COMMAND") - - # Validate response based on command type - case "$COMMAND" in - "AT+QRSRP") - if ! echo "$SIGNAL_OUTPUT" | grep -q "QRSRP"; then - logger -t signal_metrics "Invalid RSRP response: $SIGNAL_OUTPUT" - return 1 - fi - ;; - "AT+QRSRQ") - if ! echo "$SIGNAL_OUTPUT" | grep -q "QRSRQ"; then - logger -t signal_metrics "Invalid RSRQ response: $SIGNAL_OUTPUT" - return 1 - fi - ;; - "AT+QSINR") - if ! echo "$SIGNAL_OUTPUT" | grep -q "QSINR"; then - logger -t signal_metrics "Invalid SINR response: $SIGNAL_OUTPUT" - return 1 - fi - ;; - "AT+QGDCNT?;+QGDNRCNT?") - if ! echo "$SIGNAL_OUTPUT" | grep -q "QGDCNT\|QGDNRCNT"; then - logger -t signal_metrics "Invalid data usage response: $SIGNAL_OUTPUT" - return 1 - fi - ;; - esac - - [ ! -s "$LOGFILE" ] && echo "[]" >"$LOGFILE" - - if [ -n "$SIGNAL_OUTPUT" ]; then - local TEMP_FILE="${LOGFILE}.tmp.$$" - if jq --arg dt "$TIMESTAMP" \ - --arg out "$SIGNAL_OUTPUT" \ - '. + [{"datetime": $dt, "output": $out}] | .[-'"$MAX_ENTRIES"':]' \ - "$LOGFILE" >"$TEMP_FILE"; then - mv "$TEMP_FILE" "$LOGFILE" - else - rm -f "$TEMP_FILE" - return 1 - fi - fi -} - -# Main continuous logging function +# Main continuous logging function with proper locking start_continuous_logging() { - sleep 20 - logger -t signal_metrics "Starting continuous signal metrics logging (PID: $$)" + # Check if already running + if check_running; then + logger -t at_queue -p daemon.error "Signal metrics logging already running" + exit 1 + fi + + # Store PID + echo "$$" > "$METRICS_PID_FILE" + chmod 644 "$METRICS_PID_FILE" + + sleep 20 # Initial delay to allow system startup + logger -t at_queue -p daemon.info "Starting continuous signal metrics logging (PID: $$)" - trap 'logger -t signal_metrics "Stopping signal metrics logging"; exit 0' INT TERM + trap 'logger -t at_queue -p daemon.info "Stopping signal metrics logging"; rm -f "$METRICS_PID_FILE"; exit 0' INT TERM while true; do - if [ ! -f "$PAUSE_FILE" ]; then - log_signal_metric "AT+QRSRP" "rsrp.json" - log_signal_metric "AT+QRSRQ" "rsrq.json" - log_signal_metric "AT+QSINR" "sinr.json" - log_signal_metric "AT+QGDCNT?;+QGDNRCNT?" "data_usage.json" - fi + process_all_metrics sleep "$INTERVAL" done } diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quec_profile_daemon.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quec_profile_daemon.sh new file mode 100644 index 0000000..90bf2e6 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quec_profile_daemon.sh @@ -0,0 +1,1045 @@ +#!/bin/sh +# Updated QuecProfiles daemon with enhanced SA/NSA NR5G band management and TTL support +# Including profile application functions and fixed comparison logic + +# Configuration +QUEUE_DIR="/tmp/at_queue" +TOKEN_FILE="$QUEUE_DIR/token" +TRACK_FILE="/tmp/quecprofiles_active" +CHECK_TRIGGER="/tmp/quecprofiles_check" +STATUS_FILE="/tmp/quecprofiles_status.json" +APPLIED_FLAG="/tmp/quecprofiles_applied" +DEBUG_LOG="/tmp/quecprofiles_debug.log" +DETAILED_LOG="/tmp/quecprofiles_detailed.log" +DEFAULT_CHECK_INTERVAL=60 # Default check interval in seconds +COMMAND_TIMEOUT=10 # Default timeout for AT commands in seconds +QUEUE_PRIORITY=3 # Medium-high priority (1 is highest for cell scan) +MAX_TOKEN_WAIT=15 # Maximum seconds to wait for token acquisition + +# Initialize log file +echo "$(date) - Starting QuecProfiles daemon with SA/NSA NR5G and TTL support (PID: $$)" >"$DEBUG_LOG" +echo "$(date) - Starting QuecProfiles daemon with SA/NSA NR5G and TTL support (PID: $$)" >"$DETAILED_LOG" +chmod 644 "$DEBUG_LOG" "$DETAILED_LOG" + +# Function to log messages +log_message() { + local message="$1" + local level="${2:-info}" + local timestamp=$(date "+%Y-%m-%d %H:%M:%S") + + # Log to system log + logger -t quecprofiles_daemon -p "daemon.$level" "$message" + + # Log to debug file + echo "[$timestamp] [$level] $message" >>"$DEBUG_LOG" + + # For detailed logs or errors + if [ "$level" = "error" ] || [ "$level" = "debug" ]; then + echo "[$timestamp] [$level] $message" >>"$DETAILED_LOG" + fi +} + +# Function to update track file with status - IMPROVED VERSION +update_track() { + local status="$1" + local message="$2" + local profile="${3:-unknown}" + local progress="${4:-0}" + + # Create JSON status + cat >"$STATUS_FILE" <"$TRACK_FILE" + chmod 644 "$TRACK_FILE" + fi + + log_message "Status updated: $status - $message ($progress%)" +} + +# Function to find profile by ICCID in UCI +find_profile_by_iccid() { + local iccid="$1" + local profile_indices + + log_message "Looking for profile with ICCID: $iccid" "info" + + # Get all profile indices + profile_indices=$(uci show quecprofiles | grep -o '@profile\[[0-9]\+\]' | sort -u) + + # Exit early if no profiles found + if [ -z "$profile_indices" ]; then + log_message "No profiles configured in the system" "info" + return 1 + fi + + for profile_index in $profile_indices; do + local current_iccid=$(uci -q get quecprofiles.$profile_index.iccid) + if [ "$current_iccid" = "$iccid" ]; then + log_message "Found matching profile: $profile_index" "info" + echo "$profile_index" + return 0 + fi + done + + log_message "No matching profile found for ICCID: $iccid" "info" + return 1 +} + +# Function to normalize and compare values - handles format differences +compare_values() { + local current="$1" + local desired="$2" + local type="$3" + + # Skip empty values + if [ -z "$desired" ]; then + log_message "Desired value for $type is empty, skipping comparison" "debug" + return 1 # No change needed + fi + + # Normalize values for comparison + local norm_current + local norm_desired + + # Different normalization based on type + case "$type" in + "apn") + # APN comparison is case-insensitive + norm_current=$(echo "$current" | tr '[:upper:]' '[:lower:]') + norm_desired=$(echo "$desired" | tr '[:upper:]' '[:lower:]') + ;; + "mode") + # Network mode - normalize format and sort parts + norm_current=$(echo "$current" | tr '[:upper:]' '[:lower:]' | tr ':' ',' | tr -d ' ' | tr ',' '\n' | sort | tr '\n' ',' | sed 's/,$//') + norm_desired=$(echo "$desired" | tr '[:upper:]' '[:lower:]' | tr ':' ',' | tr -d ' ' | tr ',' '\n' | sort | tr '\n' ',' | sed 's/,$//') + ;; + "bands") + # Bands - sort numbers for consistent comparison + norm_current=$(echo "$current" | tr ',' '\n' | sort -n | tr '\n' ',' | sed 's/,$//') + norm_desired=$(echo "$desired" | tr ',' '\n' | sort -n | tr '\n' ',' | sed 's/,$//') + ;; + *) + # Default comparison + norm_current="$current" + norm_desired="$desired" + ;; + esac + + log_message "Comparing $type - Current: '$norm_current', Desired: '$norm_desired'" "debug" + + # Check if values are equivalent after normalization + if [ "$norm_current" = "$norm_desired" ]; then + log_message "$type values match after normalization" "debug" + return 1 # No change needed + else + log_message "$type values differ after normalization - change needed" "debug" + return 0 # Change needed + fi +} + +# Function to check if profile is already applied +is_profile_applied() { + local iccid="$1" + local profile_name="$2" + + # Check if applied flag exists and matches current profile + if [ -f "$APPLIED_FLAG" ]; then + local applied_data=$(cat "$APPLIED_FLAG" 2>/dev/null) + local applied_iccid=$(echo "$applied_data" | cut -d':' -f1) + local applied_name=$(echo "$applied_data" | cut -d':' -f2) + local applied_time=$(echo "$applied_data" | cut -d':' -f3) + + # Check if the applied profile matches current one + if [ "$applied_iccid" = "$iccid" ] && [ "$applied_name" = "$profile_name" ]; then + log_message "Profile '$profile_name' already applied at $(date -d @$applied_time)" "info" + return 0 # Profile already applied + fi + fi + + # No matching applied profile found + return 1 +} + +# Function to mark profile as applied +mark_profile_applied() { + local iccid="$1" + local profile_name="$2" + + # Save profile application data + echo "$iccid:$profile_name:$(date +%s)" >"$APPLIED_FLAG" + chmod 644 "$APPLIED_FLAG" + log_message "Marked profile '$profile_name' as applied for ICCID $iccid" "info" +} + +# Enhanced JSON string escaping function +escape_json() { + printf '%s' "$1" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | tr -d '\n' | sed 's/\r//g' +} + +# Function to acquire token directly with retries +acquire_token() { + local lock_id="QUECPROFILES_$(date +%s)_$$" + local priority="$QUEUE_PRIORITY" + local max_attempts=$MAX_TOKEN_WAIT + local attempt=0 + + log_message "Attempting to acquire AT queue token with priority $priority" "debug" + + while [ $attempt -lt $max_attempts ]; do + # Check if token file exists + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + log_message "Found expired token from $current_holder, removing" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Try again - higher priority token exists + log_message "Token held by $current_holder with priority $current_priority, retrying..." "debug" + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$lock_id\",\"priority\":$priority,\"timestamp\":$(date +%s)}" >"$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$lock_id" ]; then + log_message "Successfully acquired token with ID $lock_id" "debug" + echo "$lock_id" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Function to release token +release_token() { + local lock_id="$1" + + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$lock_id" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + log_message "Released token $lock_id" "debug" + return 0 + fi + log_message "Token held by $current_holder, not by us ($lock_id)" "warn" + else + log_message "Token file doesn't exist, nothing to release" "debug" + fi + return 1 +} + +# Function to execute AT command with proper error handling +execute_at_command() { + local cmd="$1" + local timeout="${2:-$COMMAND_TIMEOUT}" + local token_id="$3" + + if [ -z "$token_id" ]; then + log_message "No valid token provided for command: $cmd" "error" + return 1 + fi + + log_message "Executing AT command: $cmd (timeout: ${timeout}s)" "debug" + + # Execute the command with proper timeout + local output="" + local status=1 + + # Check if sms_tool exists + if which sms_tool >/dev/null 2>&1; then + output=$(sms_tool at "$cmd" -t "$timeout" 2>&1) + status=$? + log_message "AT command executed, status: $status" "debug" + else + log_message "sms_tool not found, cannot execute AT command" "error" + return 1 + fi + + # Log command output for debugging + echo "Command: $cmd" >>"$DETAILED_LOG" + echo "Output: $output" >>"$DETAILED_LOG" + echo "Status: $status" >>"$DETAILED_LOG" + + if [ $status -ne 0 ]; then + log_message "AT command failed: $cmd (exit code: $status)" "error" + return 1 + fi + + echo "$output" + return 0 +} + +# Function to fetch all modem data at once with a single token +fetch_modem_data() { + local token_id="" + local result=1 + local modem_data="" + + log_message "Fetching all modem data at once" "info" + + # Define commands to execute + local COMMANDS="AT+ICCID AT+CGDCONT? AT+QNWPREFCFG=\"mode_pref\" AT+QNWPREFCFG=\"lte_band\" AT+QNWPREFCFG=\"nsa_nr5g_band\" AT+QNWPREFCFG=\"nr5g_band\" AT+CGSN" + + # Get token + token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for fetching modem data" "error" + return 1 + fi + + # Execute each command and combine outputs + for cmd in $COMMANDS; do + log_message "Executing command: $cmd" "debug" + local output=$(execute_at_command "$cmd" 5 "$token_id") + local status=$? + + if [ $status -eq 0 ]; then + # Append to modem_data + modem_data="${modem_data}====COMMAND_START:${cmd}====\n${output}\n====COMMAND_END====\n\n" + else + log_message "Command failed: $cmd" "warn" + fi + done + + # Release token + release_token "$token_id" + + if [ -n "$modem_data" ]; then + # Save output to DETAILED_LOG for debugging + echo -e "MODEM DATA:\n$modem_data" >>"$DETAILED_LOG" + echo "$modem_data" + return 0 + else + log_message "No modem data fetched" "error" + return 1 + fi +} + +# Function to extract ICCID from modem data +extract_iccid() { + local modem_data="$1" + local iccid="" + + # Extract section containing ICCID command response + local iccid_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+ICCID====/,/====COMMAND_END====/p') + + # Try to extract ICCID (look for 10-20 digit number) + iccid=$(echo "$iccid_section" | grep -o '[0-9]\{10,20\}' | head -n 1) + + if [ -z "$iccid" ]; then + log_message "Failed to extract ICCID from modem data" "error" + return 1 + fi + + log_message "Extracted ICCID: $iccid" "info" + echo "$iccid" + return 0 +} + +# Function to extract APN from modem data +extract_apn() { + local modem_data="$1" + local apn="" + + # Extract section containing CGDCONT command response + local apn_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+CGDCONT?====/,/====COMMAND_END====/p') + + # Try to extract APN from the response - look for context 1 + apn=$(echo "$apn_section" | grep -o '+CGDCONT: 1,[^,]*,"[^"]*"' | cut -d'"' -f2) + + if [ -z "$apn" ]; then + # Try alternative pattern + apn=$(echo "$apn_section" | grep -o '+CGDCONT: 1,[^,]*,[^,]*' | cut -d',' -f3 | tr -d '"') + + if [ -z "$apn" ]; then + log_message "Failed to extract APN from modem data" "error" + return 1 + fi + fi + + log_message "Extracted APN: $apn" "info" + echo "$apn" + return 0 +} + +# Function to extract network mode from modem data +extract_network_mode() { + local modem_data="$1" + local mode="" + + # Extract section containing mode_pref command response + local mode_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+QNWPREFCFG="mode_pref"====/,/====COMMAND_END====/p') + + # Try to extract mode from the response + mode=$(echo "$mode_section" | grep -o '+QNWPREFCFG:.*' | cut -d'"' -f3) + + if [ -z "$mode" ]; then + log_message "Failed to extract network mode from modem data" "error" + return 1 + fi + + # Clean up the value - remove leading comma if present + mode=$(echo "$mode" | sed 's/^,//') + + log_message "Extracted network mode: $mode" "info" + echo "$mode" + return 0 +} + +# Function to extract LTE bands from modem data +extract_lte_bands() { + local modem_data="$1" + local bands="" + + # Extract section containing lte_band command response + local bands_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+QNWPREFCFG="lte_band"====/,/====COMMAND_END====/p') + + # Try to extract bands from the response + bands=$(echo "$bands_section" | grep -o '+QNWPREFCFG:.*' | cut -d'"' -f3) + + if [ -z "$bands" ]; then + log_message "Failed to extract LTE bands from modem data" "error" + return 1 + fi + + # Convert colon-separated to comma-separated and remove leading comma if present + bands=$(echo "$bands" | tr ':' ',' | sed 's/^,//') + + log_message "Extracted LTE bands: $bands" "info" + echo "$bands" + return 0 +} + +# Updated: Function to extract both SA and NSA NR5G bands from modem data +extract_nr5g_bands() { + local modem_data="$1" + local bands_type="$2" # "sa" or "nsa" + + local section_type="" + if [ "$bands_type" = "sa" ]; then + section_type="nr5g_band" + else + section_type="nsa_nr5g_band" + fi + + # Extract sections containing NR5G band command responses + local bands_section=$(echo -e "$modem_data" | sed -n "/====COMMAND_START:AT+QNWPREFCFG=\"$section_type\"====/,/====COMMAND_END====/p") + + # Try to extract bands + local bands=$(echo "$bands_section" | grep -o '+QNWPREFCFG:.*' | cut -d'"' -f3) + + if [ -n "$bands" ]; then + # Clean up the value - convert colon-separated to comma-separated and remove leading comma + bands=$(echo "$bands" | tr ':' ',' | sed 's/^,//') + log_message "Extracted $bands_type NR5G bands: $bands" "info" + echo "$bands" + return 0 + fi + + log_message "Failed to extract $bands_type NR5G bands from modem data" "warn" + return 1 +} + +# Function to extract IMEI from modem data +extract_imei() { + local modem_data="$1" + local imei="" + + # Extract section containing CGSN command response + local imei_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+CGSN====/,/====COMMAND_END====/p') + + # Try to extract IMEI (look for 15 digit number) + imei=$(echo "$imei_section" | grep -o '[0-9]\{15\}' | head -n 1) + + if [ -z "$imei" ]; then + log_message "Failed to extract IMEI from modem data" "error" + return 1 + fi + + log_message "Extracted IMEI: $imei" "info" + echo "$imei" + return 0 +} + +# Function to setup TTL configuration persistence +setup_ttl_persistence() { + if [ ! -f "/etc/data/lanUtils.sh" ]; then + log_message "lanUtils.sh not found, TTL changes might not persist across reboots" "warn" + return 1 + fi + + # Backup the original script if not already done + if [ ! -f "/etc/data/lanUtils.sh.bak" ]; then + cp "/etc/data/lanUtils.sh" "/etc/data/lanUtils.sh.bak" + fi + + # Add the local ttl_firewall_file line if it's not already present + if ! grep -q "local ttl_firewall_file" "/etc/data/lanUtils.sh"; then + sed -i '/local tcpmss_firewall_filev6/a \ local ttl_firewall_file=/etc/firewall.user.ttl' "/etc/data/lanUtils.sh" + fi + + # Add the condition to include the ttl_firewall_file if it's not already present + if ! grep -q "if \[ -f \"\$ttl_firewall_file\" \]; then" "/etc/data/lanUtils.sh"; then + sed -i '/if \[ -f "\$tcpmss_firewall_filev6" \]; then/i \ if [ -f "\$ttl_firewall_file" ]; then\n cat \$ttl_firewall_file >> \$firewall_file\n fi' "/etc/data/lanUtils.sh" + fi + + log_message "TTL persistence setup completed" "info" + return 0 +} + +# Function to apply TTL settings +apply_ttl_settings() { + local ttl="$1" + local current_ttl="$2" + local token_id="$3" + local profile_name="$4" + + # If TTL is not set, default to 0 (disabled) + ttl="${ttl:-0}" + current_ttl="${current_ttl:-0}" + + # Check if change is needed + if [ "$ttl" = "$current_ttl" ]; then + log_message "TTL already set to $ttl, no change needed" "debug" + return 0 + fi + + update_track "applying" "Setting TTL from '$current_ttl' to '$ttl'" "$profile_name" "85" + log_message "Changing TTL from '$current_ttl' to '$ttl'" "info" + + # Create TTL file directory if it doesn't exist + mkdir -p /etc + + if [ "$ttl" = "0" ]; then + # Clear existing rules + iptables -t mangle -D POSTROUTING -o rmnet+ -j TTL --ttl-set "$current_ttl" 2>/dev/null + ip6tables -t mangle -D POSTROUTING -o rmnet+ -j HL --hl-set "$current_ttl" 2>/dev/null + >"/etc/firewall.user.ttl" + log_message "TTL settings cleared" "info" + else + # Clear existing rules + if [ "$current_ttl" != "0" ]; then + iptables -t mangle -D POSTROUTING -o rmnet+ -j TTL --ttl-set "$current_ttl" 2>/dev/null + ip6tables -t mangle -D POSTROUTING -o rmnet+ -j HL --hl-set "$current_ttl" 2>/dev/null + fi + + # Set new rules + echo "iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL --ttl-set $ttl" >"/etc/firewall.user.ttl" + echo "ip6tables -t mangle -A POSTROUTING -o rmnet+ -j HL --hl-set $ttl" >>"/etc/firewall.user.ttl" + + # Apply the rules + iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL --ttl-set "$ttl" + ip6tables -t mangle -A POSTROUTING -o rmnet+ -j HL --hl-set "$ttl" + + log_message "TTL changed successfully to $ttl" "info" + fi + + # Setup persistence + setup_ttl_persistence + + return 0 +} + +# Function to get current TTL value +get_current_ttl() { + local current_ttl=0 + + if [ -f "/etc/firewall.user.ttl" ]; then + current_ttl=$(grep 'iptables -t mangle -A POSTROUTING' "/etc/firewall.user.ttl" | awk '{for(i=1;i<=NF;i++){if($i=="--ttl-set"){print $(i+1)}}}') + if ! [[ "$current_ttl" =~ ^[0-9]+$ ]]; then + current_ttl=0 + fi + fi + + log_message "Current TTL value: $current_ttl" "debug" + echo "$current_ttl" + return 0 +} + +# Updated function to apply profile settings with separate SA/NSA NR5G bands and TTL support +apply_profile_settings() { + local profile_name="$1" + local network_type="$2" + local lte_bands="$3" + local sa_nr5g_bands="$4" + local nsa_nr5g_bands="$5" + local apn="$6" + local pdp_type="$7" + local imei="$8" + local ttl="$9" + local current_apn="${10}" + local current_mode="${11}" + local current_lte_bands="${12}" + local current_sa_nr5g_bands="${13}" + local current_nsa_nr5g_bands="${14}" + local current_imei="${15}" + local iccid="${16}" + + # Set TTL to 0 (disabled) if not specified + ttl="${ttl:-0}" + + log_message "Applying profile '$profile_name' with settings:" "info" + log_message "- Network type: $network_type" "info" + log_message "- LTE bands: $lte_bands" "info" + log_message "- SA NR5G bands: $sa_nr5g_bands" "info" + log_message "- NSA NR5G bands: $nsa_nr5g_bands" "info" + log_message "- APN: $apn ($pdp_type)" "info" + log_message "- IMEI: $imei" "info" + log_message "- TTL: $ttl" "info" + + # Check if any changes are needed using improved comparison + local needs_apn_change=0 + local needs_mode_change=0 + local needs_lte_bands_change=0 + local needs_sa_nr5g_bands_change=0 + local needs_nsa_nr5g_bands_change=0 + local needs_imei_change=0 + local needs_ttl_change=0 + local changes_needed=0 + local requires_reboot=0 + + # Use normalized comparison + compare_values "$current_apn" "$apn" "apn" && needs_apn_change=1 && changes_needed=1 + compare_values "$current_mode" "$network_type" "mode" && needs_mode_change=1 && changes_needed=1 + compare_values "$current_lte_bands" "$lte_bands" "bands" && needs_lte_bands_change=1 && changes_needed=1 + compare_values "$current_sa_nr5g_bands" "$sa_nr5g_bands" "bands" && needs_sa_nr5g_bands_change=1 && changes_needed=1 + compare_values "$current_nsa_nr5g_bands" "$nsa_nr5g_bands" "bands" && needs_nsa_nr5g_bands_change=1 && changes_needed=1 + + # Get current TTL value + local current_ttl=$(get_current_ttl) + + # Compare TTL values + if [ "$current_ttl" != "$ttl" ]; then + needs_ttl_change=1 + changes_needed=1 + fi + + # IMEI is a special case - only change if explicitly specified + if [ -n "$imei" ]; then + compare_values "$current_imei" "$imei" "imei" && needs_imei_change=1 && changes_needed=1 && requires_reboot=1 + fi + + if [ $changes_needed -eq 0 ]; then + log_message "No changes needed for profile '$profile_name', settings already correct" "info" + mark_profile_applied "$iccid" "$profile_name" + update_track "success" "Profile already correctly applied" "$profile_name" "100" + return 0 + fi + + # Get token for applying settings + local token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for applying profile settings" "error" + update_track "error" "Failed to acquire token" "$profile_name" "0" + return 1 + fi + + local apply_success=1 + local changes_made=0 + + # Apply APN change first (most important) + if [ $needs_apn_change -eq 1 ]; then + update_track "applying" "Setting APN from '$current_apn' to '$apn'" "$profile_name" "20" + log_message "Changing APN from '$current_apn' to '$apn' ($pdp_type)" "info" + + # Set APN using AT command + local apn_cmd="AT+CGDCONT=1,\"$pdp_type\",\"$apn\"" + local output=$(execute_at_command "$apn_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "APN changed successfully to $apn ($pdp_type)" "info" + + # Verify APN setting - fetch APN again to confirm + local verify_output=$(execute_at_command "AT+CGDCONT?" 5 "$token_id") + if echo "$verify_output" | grep -q "\"$apn\""; then + log_message "APN change verified successfully" "info" + update_track "applying" "APN set successfully" "$profile_name" "30" + else + log_message "APN change could not be verified, continuing anyway" "warn" + fi + else + log_message "Failed to change APN to $apn" "error" + update_track "error" "Failed to set APN" "$profile_name" "20" + apply_success=0 + fi + fi + + # Apply network mode change + if [ $needs_mode_change -eq 1 ] && [ $apply_success -eq 1 ]; then + update_track "applying" "Setting network mode from '$current_mode' to '$network_type'" "$profile_name" "40" + log_message "Changing network mode from '$current_mode' to '$network_type'" "info" + + # Format network mode for AT command (may already be in correct format) + local mode_cmd="AT+QNWPREFCFG=\"mode_pref\",$network_type" + local output=$(execute_at_command "$mode_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "Network mode changed successfully to $network_type" "info" + update_track "applying" "Network mode set successfully" "$profile_name" "50" + + # If mode includes NR5G, ensure it's enabled + if echo "$network_type" | grep -q "NR5G"; then + log_message "Ensuring NR5G is enabled" "debug" + local nr5g_cmd="AT+QNWPREFCFG=\"nr5g_disable_mode\",0" + execute_at_command "$nr5g_cmd" 5 "$token_id" + fi + else + log_message "Failed to change network mode to $network_type" "error" + update_track "applying" "Failed to set network mode, continuing" "$profile_name" "45" + fi + fi + + # Apply LTE bands change + if [ $needs_lte_bands_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$lte_bands" ]; then + update_track "applying" "Setting LTE bands from '$current_lte_bands' to '$lte_bands'" "$profile_name" "60" + log_message "Changing LTE bands from '$current_lte_bands' to '$lte_bands'" "info" + + # Convert comma-separated to colon-separated for AT command + local bands_formatted=$(echo "$lte_bands" | tr ',' ':') + local bands_cmd="AT+QNWPREFCFG=\"lte_band\",$bands_formatted" + local output=$(execute_at_command "$bands_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "LTE bands changed successfully to $lte_bands" "info" + update_track "applying" "LTE bands set successfully" "$profile_name" "70" + else + log_message "Failed to change LTE bands to $lte_bands" "error" + update_track "applying" "Failed to set LTE bands, continuing" "$profile_name" "65" + fi + fi + + # Apply NSA NR5G bands change + if [ $needs_nsa_nr5g_bands_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$nsa_nr5g_bands" ]; then + update_track "applying" "Setting NSA NR5G bands from '$current_nsa_nr5g_bands' to '$nsa_nr5g_bands'" "$profile_name" "75" + log_message "Changing NSA NR5G bands from '$current_nsa_nr5g_bands' to '$nsa_nr5g_bands'" "info" + + # Convert comma-separated to colon-separated for AT command + local bands_formatted=$(echo "$nsa_nr5g_bands" | tr ',' ':') + local nsa_cmd="AT+QNWPREFCFG=\"nsa_nr5g_band\",$bands_formatted" + local output=$(execute_at_command "$nsa_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "NSA NR5G bands changed successfully to $nsa_nr5g_bands" "info" + update_track "applying" "NSA NR5G bands set successfully" "$profile_name" "80" + else + log_message "Failed to change NSA NR5G bands to $nsa_nr5g_bands" "error" + update_track "applying" "Failed to set NSA NR5G bands, continuing" "$profile_name" "75" + fi + fi + + # Apply SA NR5G bands change + if [ $needs_sa_nr5g_bands_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$sa_nr5g_bands" ]; then + update_track "applying" "Setting SA NR5G bands from '$current_sa_nr5g_bands' to '$sa_nr5g_bands'" "$profile_name" "85" + log_message "Changing SA NR5G bands from '$current_sa_nr5g_bands' to '$sa_nr5g_bands'" "info" + + # Convert comma-separated to colon-separated for AT command + local bands_formatted=$(echo "$sa_nr5g_bands" | tr ',' ':') + local sa_cmd="AT+QNWPREFCFG=\"nr5g_band\",$bands_formatted" + local output=$(execute_at_command "$sa_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "SA NR5G bands changed successfully to $sa_nr5g_bands" "info" + update_track "applying" "SA NR5G bands set successfully" "$profile_name" "90" + else + log_message "Failed to change SA NR5G bands to $sa_nr5g_bands" "error" + update_track "applying" "Failed to set SA NR5G bands, continuing" "$profile_name" "85" + fi + fi + + # Apply TTL change if needed + if [ $needs_ttl_change -eq 1 ] && [ $apply_success -eq 1 ]; then + apply_ttl_settings "$ttl" "$current_ttl" "$token_id" "$profile_name" + if [ $? -eq 0 ]; then + changes_made=1 + log_message "TTL settings applied successfully" "info" + fi + fi + + # Apply IMEI change (requires reboot) + if [ $needs_imei_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$imei" ]; then + update_track "applying" "Setting IMEI from '$current_imei' to '$imei'" "$profile_name" "95" + log_message "Changing IMEI from '$current_imei' to '$imei'" "info" + + local imei_cmd="AT+EGMR=1,7,\"$imei\"" + local output=$(execute_at_command "$imei_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + requires_reboot=1 + log_message "IMEI changed successfully to $imei (device will reboot)" "info" + update_track "rebooting" "IMEI changed, device will reboot" "$profile_name" "95" + else + log_message "Failed to change IMEI to $imei" "error" + update_track "applying" "Failed to set IMEI, continuing" "$profile_name" "90" + requires_reboot=0 + fi + fi + + # Release token + release_token "$token_id" + + # Mark profile as applied if changes were made + if [ $changes_made -eq 1 ]; then + mark_profile_applied "$iccid" "$profile_name" + fi + + # If IMEI was changed, need to reboot + if [ $requires_reboot -eq 1 ]; then + log_message "IMEI change requires reboot, scheduling reboot..." "info" + update_track "rebooting" "Device is rebooting to apply IMEI change" "$profile_name" "100" + sleep 2 + reboot & + return 0 + fi + + # Force network reset if changes were made but no reboot required + if [ $changes_made -eq 1 ] && [ $requires_reboot -eq 0 ]; then + log_message "Changes applied, resetting network connection to apply changes" "info" + update_track "applying" "Resetting network connection" "$profile_name" "95" + + # Get a new token for network reset + token_id=$(acquire_token) + if [ -n "$token_id" ]; then + # Force PDP context reconnection - note: errors here are common and non-fatal + log_message "Forcing network reconnection" "info" + execute_at_command "AT+COPS=2" 5 "$token_id" || true + sleep 2 + execute_at_command "AT+COPS=0" 5 "$token_id" || true + sleep 1 + + # Release token + release_token "$token_id" + fi + fi + + # Check if any changes were made + if [ $changes_made -eq 0 ]; then + log_message "Profile '$profile_name' already applied correctly, no changes needed" "info" + update_track "success" "Profile already correctly applied" "$profile_name" "100" + else + log_message "Successfully applied profile '$profile_name'" "info" + update_track "success" "Profile applied successfully" "$profile_name" "100" + fi + + return 0 +} + +# Check profile function with updated SA/NSA bands and TTL support +check_profile() { + local forced="${1:-0}" + + log_message "Performing profile check (forced=$forced)" "info" + + # Get all modem data at once with a single token + local modem_data="" + modem_data=$(fetch_modem_data) + if [ $? -ne 0 ]; then + log_message "Failed to fetch modem data, will retry later" "error" + update_track "error" "Could not communicate with modem. Will retry later." "unknown" "0" + return 1 + fi + + # Extract ICCID from modem data + local current_iccid="" + current_iccid=$(extract_iccid "$modem_data") + if [ $? -ne 0 ]; then + log_message "Failed to extract ICCID from modem data, will retry later" "error" + update_track "error" "Could not detect SIM card. Please check that a SIM is inserted." "unknown" "0" + return 1 + fi + + log_message "Current ICCID: $current_iccid" "info" + + # Find profile for current ICCID + local profile_index="" + profile_index=$(find_profile_by_iccid "$current_iccid") + local profile_result=$? + + # CRITICAL FIX: Early return if no profile is found + if [ $profile_result -ne 0 ]; then + log_message "No profile found for ICCID $current_iccid, nothing to apply" "info" + update_track "idle" "No profile exists for current SIM card. Create a profile to configure network settings." "$current_iccid" "0" + return 0 + fi + + # Only continue if we found a valid profile + log_message "Found valid profile index: $profile_index" "debug" + + # Get profile details + local profile_name=$(uci -q get quecprofiles.$profile_index.name) + local network_type=$(uci -q get quecprofiles.$profile_index.network_type) + local lte_bands=$(uci -q get quecprofiles.$profile_index.lte_bands) + local sa_nr5g_bands=$(uci -q get quecprofiles.$profile_index.sa_nr5g_bands) + local nsa_nr5g_bands=$(uci -q get quecprofiles.$profile_index.nsa_nr5g_bands) + local apn=$(uci -q get quecprofiles.$profile_index.apn) + local pdp_type=$(uci -q get quecprofiles.$profile_index.pdp_type) + local imei=$(uci -q get quecprofiles.$profile_index.imei) + local ttl=$(uci -q get quecprofiles.$profile_index.ttl) + + # Default pdp_type to "IP" if not specified + pdp_type="${pdp_type:-IP}" + # Default TTL to 0 (disabled) if not specified + ttl="${ttl:-0}" + + # For backward compatibility - check if old nr5g_bands exists but new fields don't + local nr5g_bands=$(uci -q get quecprofiles.$profile_index.nr5g_bands) + if [ -n "$nr5g_bands" ] && [ -z "$sa_nr5g_bands" ] && [ -z "$nsa_nr5g_bands" ]; then + sa_nr5g_bands=$nr5g_bands + nsa_nr5g_bands=$nr5g_bands + log_message "Migrating legacy nr5g_bands for profile $profile_name" "info" + fi + + log_message "Found profile: $profile_name for ICCID: $current_iccid" "info" + log_message "Profile settings: network_type=$network_type, lte_bands=$lte_bands, sa_nr5g_bands=$sa_nr5g_bands, nsa_nr5g_bands=$nsa_nr5g_bands, apn=$apn, pdp_type=$pdp_type, imei=$imei, ttl=$ttl" "info" + + # Check if APN is configured - it's the minimum required setting + if [ -z "$apn" ]; then + log_message "Profile has no APN configured, cannot apply" "error" + update_track "error" "Profile \"$profile_name\" is missing the required APN setting. Please edit the profile and add an APN." "$profile_name" "0" + return 1 + fi + + # Check if profile is already applied (unless forced) + if [ "$forced" != "1" ] && is_profile_applied "$current_iccid" "$profile_name"; then + log_message "Profile '$profile_name' is already applied, skipping" "info" + update_track "success" "Profile already applied (from flag)" "$profile_name" "100" + return 0 + fi + + # Apply profile if forced or if autoswitch is enabled + local enable_autoswitch + enable_autoswitch=$(uci -q get quecprofiles.settings.enable_autoswitch) + enable_autoswitch="${enable_autoswitch:-1}" # Default to enabled + + if [ "$forced" = "1" ] || [ "$enable_autoswitch" = "1" ]; then + log_message "Applying profile settings..." "info" + update_track "applying" "Applying profile settings" "$profile_name" "10" + + # Extract current modem settings for comparison + local current_apn="" + local current_mode="" + local current_lte_bands="" + local current_sa_nr5g_bands="" + local current_nsa_nr5g_bands="" + local current_imei="" + + current_apn=$(extract_apn "$modem_data") + current_mode=$(extract_network_mode "$modem_data") + current_lte_bands=$(extract_lte_bands "$modem_data") + current_sa_nr5g_bands=$(extract_nr5g_bands "$modem_data" "sa") + current_nsa_nr5g_bands=$(extract_nr5g_bands "$modem_data" "nsa") + current_imei=$(extract_imei "$modem_data") + + # Apply profile settings with the new parameters + apply_profile_settings "$profile_name" "$network_type" "$lte_bands" "$sa_nr5g_bands" "$nsa_nr5g_bands" \ + "$apn" "$pdp_type" "$imei" "$ttl" "$current_apn" "$current_mode" "$current_lte_bands" \ + "$current_sa_nr5g_bands" "$current_nsa_nr5g_bands" "$current_imei" "$current_iccid" + return $? + else + log_message "Automatic profile switching is disabled, not applying profile" "info" + update_track "idle" "Automatic profile switching is disabled" "$profile_name" "0" + return 0 + fi +} + +# Main function +main() { + log_message "QuecProfiles daemon starting with SA/NSA NR5G and TTL support (PID: $$)" "info" + + # Clear status files at startup + rm -f "$TRACK_FILE" "$CHECK_TRIGGER" + update_track "idle" "Daemon started" "none" "0" + + # Get check interval from UCI + local check_interval + check_interval=$(uci -q get quecprofiles.settings.check_interval) + check_interval="${check_interval:-$DEFAULT_CHECK_INTERVAL}" + + # Check autoswitch setting + local enable_autoswitch + enable_autoswitch=$(uci -q get quecprofiles.settings.enable_autoswitch) + enable_autoswitch="${enable_autoswitch:-1}" # Default to enabled + + log_message "Daemon configured with check_interval=$check_interval seconds, enable_autoswitch=$enable_autoswitch" "info" + + # Add a startup delay + log_message "Waiting 10 seconds before initial check..." "info" + sleep 10 + + # Main loop + while true; do + # Check if there's a manual check request + if [ -f "$CHECK_TRIGGER" ]; then + log_message "Manual check triggered" "info" + rm -f "$CHECK_TRIGGER" + check_profile 1 # Forced check + elif [ "$enable_autoswitch" -eq 1 ]; then + # Perform regular check + check_profile 0 # Regular check + else + log_message "Automatic profile switching is disabled" "info" + update_track "idle" "Automatic profile switching is disabled" "none" "0" + fi + + # Sleep for the check interval + log_message "Sleeping for $check_interval seconds" "info" + + # Break the sleep into smaller intervals to check for triggers + sleep_counter=0 + while [ $sleep_counter -lt $check_interval ]; do + sleep 5 + sleep_counter=$((sleep_counter + 5)) + + # Check for manual trigger during sleep + if [ -f "$CHECK_TRIGGER" ]; then + log_message "Manual check triggered during sleep" "info" + break + fi + done + done +} + +# Set up trap handlers for clean shutdown +trap 'log_message "Received SIGTERM, exiting"; update_track "idle" "Daemon stopped" "none" "0"; exit 0' TERM +trap 'log_message "Received SIGINT, exiting"; update_track "idle" "Daemon stopped" "none" "0"; exit 0' INT + +# Start the main function +main \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quecprofile.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quecprofile.sh new file mode 100644 index 0000000..90bf2e6 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quecprofile.sh @@ -0,0 +1,1045 @@ +#!/bin/sh +# Updated QuecProfiles daemon with enhanced SA/NSA NR5G band management and TTL support +# Including profile application functions and fixed comparison logic + +# Configuration +QUEUE_DIR="/tmp/at_queue" +TOKEN_FILE="$QUEUE_DIR/token" +TRACK_FILE="/tmp/quecprofiles_active" +CHECK_TRIGGER="/tmp/quecprofiles_check" +STATUS_FILE="/tmp/quecprofiles_status.json" +APPLIED_FLAG="/tmp/quecprofiles_applied" +DEBUG_LOG="/tmp/quecprofiles_debug.log" +DETAILED_LOG="/tmp/quecprofiles_detailed.log" +DEFAULT_CHECK_INTERVAL=60 # Default check interval in seconds +COMMAND_TIMEOUT=10 # Default timeout for AT commands in seconds +QUEUE_PRIORITY=3 # Medium-high priority (1 is highest for cell scan) +MAX_TOKEN_WAIT=15 # Maximum seconds to wait for token acquisition + +# Initialize log file +echo "$(date) - Starting QuecProfiles daemon with SA/NSA NR5G and TTL support (PID: $$)" >"$DEBUG_LOG" +echo "$(date) - Starting QuecProfiles daemon with SA/NSA NR5G and TTL support (PID: $$)" >"$DETAILED_LOG" +chmod 644 "$DEBUG_LOG" "$DETAILED_LOG" + +# Function to log messages +log_message() { + local message="$1" + local level="${2:-info}" + local timestamp=$(date "+%Y-%m-%d %H:%M:%S") + + # Log to system log + logger -t quecprofiles_daemon -p "daemon.$level" "$message" + + # Log to debug file + echo "[$timestamp] [$level] $message" >>"$DEBUG_LOG" + + # For detailed logs or errors + if [ "$level" = "error" ] || [ "$level" = "debug" ]; then + echo "[$timestamp] [$level] $message" >>"$DETAILED_LOG" + fi +} + +# Function to update track file with status - IMPROVED VERSION +update_track() { + local status="$1" + local message="$2" + local profile="${3:-unknown}" + local progress="${4:-0}" + + # Create JSON status + cat >"$STATUS_FILE" <"$TRACK_FILE" + chmod 644 "$TRACK_FILE" + fi + + log_message "Status updated: $status - $message ($progress%)" +} + +# Function to find profile by ICCID in UCI +find_profile_by_iccid() { + local iccid="$1" + local profile_indices + + log_message "Looking for profile with ICCID: $iccid" "info" + + # Get all profile indices + profile_indices=$(uci show quecprofiles | grep -o '@profile\[[0-9]\+\]' | sort -u) + + # Exit early if no profiles found + if [ -z "$profile_indices" ]; then + log_message "No profiles configured in the system" "info" + return 1 + fi + + for profile_index in $profile_indices; do + local current_iccid=$(uci -q get quecprofiles.$profile_index.iccid) + if [ "$current_iccid" = "$iccid" ]; then + log_message "Found matching profile: $profile_index" "info" + echo "$profile_index" + return 0 + fi + done + + log_message "No matching profile found for ICCID: $iccid" "info" + return 1 +} + +# Function to normalize and compare values - handles format differences +compare_values() { + local current="$1" + local desired="$2" + local type="$3" + + # Skip empty values + if [ -z "$desired" ]; then + log_message "Desired value for $type is empty, skipping comparison" "debug" + return 1 # No change needed + fi + + # Normalize values for comparison + local norm_current + local norm_desired + + # Different normalization based on type + case "$type" in + "apn") + # APN comparison is case-insensitive + norm_current=$(echo "$current" | tr '[:upper:]' '[:lower:]') + norm_desired=$(echo "$desired" | tr '[:upper:]' '[:lower:]') + ;; + "mode") + # Network mode - normalize format and sort parts + norm_current=$(echo "$current" | tr '[:upper:]' '[:lower:]' | tr ':' ',' | tr -d ' ' | tr ',' '\n' | sort | tr '\n' ',' | sed 's/,$//') + norm_desired=$(echo "$desired" | tr '[:upper:]' '[:lower:]' | tr ':' ',' | tr -d ' ' | tr ',' '\n' | sort | tr '\n' ',' | sed 's/,$//') + ;; + "bands") + # Bands - sort numbers for consistent comparison + norm_current=$(echo "$current" | tr ',' '\n' | sort -n | tr '\n' ',' | sed 's/,$//') + norm_desired=$(echo "$desired" | tr ',' '\n' | sort -n | tr '\n' ',' | sed 's/,$//') + ;; + *) + # Default comparison + norm_current="$current" + norm_desired="$desired" + ;; + esac + + log_message "Comparing $type - Current: '$norm_current', Desired: '$norm_desired'" "debug" + + # Check if values are equivalent after normalization + if [ "$norm_current" = "$norm_desired" ]; then + log_message "$type values match after normalization" "debug" + return 1 # No change needed + else + log_message "$type values differ after normalization - change needed" "debug" + return 0 # Change needed + fi +} + +# Function to check if profile is already applied +is_profile_applied() { + local iccid="$1" + local profile_name="$2" + + # Check if applied flag exists and matches current profile + if [ -f "$APPLIED_FLAG" ]; then + local applied_data=$(cat "$APPLIED_FLAG" 2>/dev/null) + local applied_iccid=$(echo "$applied_data" | cut -d':' -f1) + local applied_name=$(echo "$applied_data" | cut -d':' -f2) + local applied_time=$(echo "$applied_data" | cut -d':' -f3) + + # Check if the applied profile matches current one + if [ "$applied_iccid" = "$iccid" ] && [ "$applied_name" = "$profile_name" ]; then + log_message "Profile '$profile_name' already applied at $(date -d @$applied_time)" "info" + return 0 # Profile already applied + fi + fi + + # No matching applied profile found + return 1 +} + +# Function to mark profile as applied +mark_profile_applied() { + local iccid="$1" + local profile_name="$2" + + # Save profile application data + echo "$iccid:$profile_name:$(date +%s)" >"$APPLIED_FLAG" + chmod 644 "$APPLIED_FLAG" + log_message "Marked profile '$profile_name' as applied for ICCID $iccid" "info" +} + +# Enhanced JSON string escaping function +escape_json() { + printf '%s' "$1" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | tr -d '\n' | sed 's/\r//g' +} + +# Function to acquire token directly with retries +acquire_token() { + local lock_id="QUECPROFILES_$(date +%s)_$$" + local priority="$QUEUE_PRIORITY" + local max_attempts=$MAX_TOKEN_WAIT + local attempt=0 + + log_message "Attempting to acquire AT queue token with priority $priority" "debug" + + while [ $attempt -lt $max_attempts ]; do + # Check if token file exists + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + log_message "Found expired token from $current_holder, removing" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Try again - higher priority token exists + log_message "Token held by $current_holder with priority $current_priority, retrying..." "debug" + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$lock_id\",\"priority\":$priority,\"timestamp\":$(date +%s)}" >"$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$lock_id" ]; then + log_message "Successfully acquired token with ID $lock_id" "debug" + echo "$lock_id" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Function to release token +release_token() { + local lock_id="$1" + + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$lock_id" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + log_message "Released token $lock_id" "debug" + return 0 + fi + log_message "Token held by $current_holder, not by us ($lock_id)" "warn" + else + log_message "Token file doesn't exist, nothing to release" "debug" + fi + return 1 +} + +# Function to execute AT command with proper error handling +execute_at_command() { + local cmd="$1" + local timeout="${2:-$COMMAND_TIMEOUT}" + local token_id="$3" + + if [ -z "$token_id" ]; then + log_message "No valid token provided for command: $cmd" "error" + return 1 + fi + + log_message "Executing AT command: $cmd (timeout: ${timeout}s)" "debug" + + # Execute the command with proper timeout + local output="" + local status=1 + + # Check if sms_tool exists + if which sms_tool >/dev/null 2>&1; then + output=$(sms_tool at "$cmd" -t "$timeout" 2>&1) + status=$? + log_message "AT command executed, status: $status" "debug" + else + log_message "sms_tool not found, cannot execute AT command" "error" + return 1 + fi + + # Log command output for debugging + echo "Command: $cmd" >>"$DETAILED_LOG" + echo "Output: $output" >>"$DETAILED_LOG" + echo "Status: $status" >>"$DETAILED_LOG" + + if [ $status -ne 0 ]; then + log_message "AT command failed: $cmd (exit code: $status)" "error" + return 1 + fi + + echo "$output" + return 0 +} + +# Function to fetch all modem data at once with a single token +fetch_modem_data() { + local token_id="" + local result=1 + local modem_data="" + + log_message "Fetching all modem data at once" "info" + + # Define commands to execute + local COMMANDS="AT+ICCID AT+CGDCONT? AT+QNWPREFCFG=\"mode_pref\" AT+QNWPREFCFG=\"lte_band\" AT+QNWPREFCFG=\"nsa_nr5g_band\" AT+QNWPREFCFG=\"nr5g_band\" AT+CGSN" + + # Get token + token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for fetching modem data" "error" + return 1 + fi + + # Execute each command and combine outputs + for cmd in $COMMANDS; do + log_message "Executing command: $cmd" "debug" + local output=$(execute_at_command "$cmd" 5 "$token_id") + local status=$? + + if [ $status -eq 0 ]; then + # Append to modem_data + modem_data="${modem_data}====COMMAND_START:${cmd}====\n${output}\n====COMMAND_END====\n\n" + else + log_message "Command failed: $cmd" "warn" + fi + done + + # Release token + release_token "$token_id" + + if [ -n "$modem_data" ]; then + # Save output to DETAILED_LOG for debugging + echo -e "MODEM DATA:\n$modem_data" >>"$DETAILED_LOG" + echo "$modem_data" + return 0 + else + log_message "No modem data fetched" "error" + return 1 + fi +} + +# Function to extract ICCID from modem data +extract_iccid() { + local modem_data="$1" + local iccid="" + + # Extract section containing ICCID command response + local iccid_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+ICCID====/,/====COMMAND_END====/p') + + # Try to extract ICCID (look for 10-20 digit number) + iccid=$(echo "$iccid_section" | grep -o '[0-9]\{10,20\}' | head -n 1) + + if [ -z "$iccid" ]; then + log_message "Failed to extract ICCID from modem data" "error" + return 1 + fi + + log_message "Extracted ICCID: $iccid" "info" + echo "$iccid" + return 0 +} + +# Function to extract APN from modem data +extract_apn() { + local modem_data="$1" + local apn="" + + # Extract section containing CGDCONT command response + local apn_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+CGDCONT?====/,/====COMMAND_END====/p') + + # Try to extract APN from the response - look for context 1 + apn=$(echo "$apn_section" | grep -o '+CGDCONT: 1,[^,]*,"[^"]*"' | cut -d'"' -f2) + + if [ -z "$apn" ]; then + # Try alternative pattern + apn=$(echo "$apn_section" | grep -o '+CGDCONT: 1,[^,]*,[^,]*' | cut -d',' -f3 | tr -d '"') + + if [ -z "$apn" ]; then + log_message "Failed to extract APN from modem data" "error" + return 1 + fi + fi + + log_message "Extracted APN: $apn" "info" + echo "$apn" + return 0 +} + +# Function to extract network mode from modem data +extract_network_mode() { + local modem_data="$1" + local mode="" + + # Extract section containing mode_pref command response + local mode_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+QNWPREFCFG="mode_pref"====/,/====COMMAND_END====/p') + + # Try to extract mode from the response + mode=$(echo "$mode_section" | grep -o '+QNWPREFCFG:.*' | cut -d'"' -f3) + + if [ -z "$mode" ]; then + log_message "Failed to extract network mode from modem data" "error" + return 1 + fi + + # Clean up the value - remove leading comma if present + mode=$(echo "$mode" | sed 's/^,//') + + log_message "Extracted network mode: $mode" "info" + echo "$mode" + return 0 +} + +# Function to extract LTE bands from modem data +extract_lte_bands() { + local modem_data="$1" + local bands="" + + # Extract section containing lte_band command response + local bands_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+QNWPREFCFG="lte_band"====/,/====COMMAND_END====/p') + + # Try to extract bands from the response + bands=$(echo "$bands_section" | grep -o '+QNWPREFCFG:.*' | cut -d'"' -f3) + + if [ -z "$bands" ]; then + log_message "Failed to extract LTE bands from modem data" "error" + return 1 + fi + + # Convert colon-separated to comma-separated and remove leading comma if present + bands=$(echo "$bands" | tr ':' ',' | sed 's/^,//') + + log_message "Extracted LTE bands: $bands" "info" + echo "$bands" + return 0 +} + +# Updated: Function to extract both SA and NSA NR5G bands from modem data +extract_nr5g_bands() { + local modem_data="$1" + local bands_type="$2" # "sa" or "nsa" + + local section_type="" + if [ "$bands_type" = "sa" ]; then + section_type="nr5g_band" + else + section_type="nsa_nr5g_band" + fi + + # Extract sections containing NR5G band command responses + local bands_section=$(echo -e "$modem_data" | sed -n "/====COMMAND_START:AT+QNWPREFCFG=\"$section_type\"====/,/====COMMAND_END====/p") + + # Try to extract bands + local bands=$(echo "$bands_section" | grep -o '+QNWPREFCFG:.*' | cut -d'"' -f3) + + if [ -n "$bands" ]; then + # Clean up the value - convert colon-separated to comma-separated and remove leading comma + bands=$(echo "$bands" | tr ':' ',' | sed 's/^,//') + log_message "Extracted $bands_type NR5G bands: $bands" "info" + echo "$bands" + return 0 + fi + + log_message "Failed to extract $bands_type NR5G bands from modem data" "warn" + return 1 +} + +# Function to extract IMEI from modem data +extract_imei() { + local modem_data="$1" + local imei="" + + # Extract section containing CGSN command response + local imei_section=$(echo -e "$modem_data" | sed -n '/====COMMAND_START:AT+CGSN====/,/====COMMAND_END====/p') + + # Try to extract IMEI (look for 15 digit number) + imei=$(echo "$imei_section" | grep -o '[0-9]\{15\}' | head -n 1) + + if [ -z "$imei" ]; then + log_message "Failed to extract IMEI from modem data" "error" + return 1 + fi + + log_message "Extracted IMEI: $imei" "info" + echo "$imei" + return 0 +} + +# Function to setup TTL configuration persistence +setup_ttl_persistence() { + if [ ! -f "/etc/data/lanUtils.sh" ]; then + log_message "lanUtils.sh not found, TTL changes might not persist across reboots" "warn" + return 1 + fi + + # Backup the original script if not already done + if [ ! -f "/etc/data/lanUtils.sh.bak" ]; then + cp "/etc/data/lanUtils.sh" "/etc/data/lanUtils.sh.bak" + fi + + # Add the local ttl_firewall_file line if it's not already present + if ! grep -q "local ttl_firewall_file" "/etc/data/lanUtils.sh"; then + sed -i '/local tcpmss_firewall_filev6/a \ local ttl_firewall_file=/etc/firewall.user.ttl' "/etc/data/lanUtils.sh" + fi + + # Add the condition to include the ttl_firewall_file if it's not already present + if ! grep -q "if \[ -f \"\$ttl_firewall_file\" \]; then" "/etc/data/lanUtils.sh"; then + sed -i '/if \[ -f "\$tcpmss_firewall_filev6" \]; then/i \ if [ -f "\$ttl_firewall_file" ]; then\n cat \$ttl_firewall_file >> \$firewall_file\n fi' "/etc/data/lanUtils.sh" + fi + + log_message "TTL persistence setup completed" "info" + return 0 +} + +# Function to apply TTL settings +apply_ttl_settings() { + local ttl="$1" + local current_ttl="$2" + local token_id="$3" + local profile_name="$4" + + # If TTL is not set, default to 0 (disabled) + ttl="${ttl:-0}" + current_ttl="${current_ttl:-0}" + + # Check if change is needed + if [ "$ttl" = "$current_ttl" ]; then + log_message "TTL already set to $ttl, no change needed" "debug" + return 0 + fi + + update_track "applying" "Setting TTL from '$current_ttl' to '$ttl'" "$profile_name" "85" + log_message "Changing TTL from '$current_ttl' to '$ttl'" "info" + + # Create TTL file directory if it doesn't exist + mkdir -p /etc + + if [ "$ttl" = "0" ]; then + # Clear existing rules + iptables -t mangle -D POSTROUTING -o rmnet+ -j TTL --ttl-set "$current_ttl" 2>/dev/null + ip6tables -t mangle -D POSTROUTING -o rmnet+ -j HL --hl-set "$current_ttl" 2>/dev/null + >"/etc/firewall.user.ttl" + log_message "TTL settings cleared" "info" + else + # Clear existing rules + if [ "$current_ttl" != "0" ]; then + iptables -t mangle -D POSTROUTING -o rmnet+ -j TTL --ttl-set "$current_ttl" 2>/dev/null + ip6tables -t mangle -D POSTROUTING -o rmnet+ -j HL --hl-set "$current_ttl" 2>/dev/null + fi + + # Set new rules + echo "iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL --ttl-set $ttl" >"/etc/firewall.user.ttl" + echo "ip6tables -t mangle -A POSTROUTING -o rmnet+ -j HL --hl-set $ttl" >>"/etc/firewall.user.ttl" + + # Apply the rules + iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL --ttl-set "$ttl" + ip6tables -t mangle -A POSTROUTING -o rmnet+ -j HL --hl-set "$ttl" + + log_message "TTL changed successfully to $ttl" "info" + fi + + # Setup persistence + setup_ttl_persistence + + return 0 +} + +# Function to get current TTL value +get_current_ttl() { + local current_ttl=0 + + if [ -f "/etc/firewall.user.ttl" ]; then + current_ttl=$(grep 'iptables -t mangle -A POSTROUTING' "/etc/firewall.user.ttl" | awk '{for(i=1;i<=NF;i++){if($i=="--ttl-set"){print $(i+1)}}}') + if ! [[ "$current_ttl" =~ ^[0-9]+$ ]]; then + current_ttl=0 + fi + fi + + log_message "Current TTL value: $current_ttl" "debug" + echo "$current_ttl" + return 0 +} + +# Updated function to apply profile settings with separate SA/NSA NR5G bands and TTL support +apply_profile_settings() { + local profile_name="$1" + local network_type="$2" + local lte_bands="$3" + local sa_nr5g_bands="$4" + local nsa_nr5g_bands="$5" + local apn="$6" + local pdp_type="$7" + local imei="$8" + local ttl="$9" + local current_apn="${10}" + local current_mode="${11}" + local current_lte_bands="${12}" + local current_sa_nr5g_bands="${13}" + local current_nsa_nr5g_bands="${14}" + local current_imei="${15}" + local iccid="${16}" + + # Set TTL to 0 (disabled) if not specified + ttl="${ttl:-0}" + + log_message "Applying profile '$profile_name' with settings:" "info" + log_message "- Network type: $network_type" "info" + log_message "- LTE bands: $lte_bands" "info" + log_message "- SA NR5G bands: $sa_nr5g_bands" "info" + log_message "- NSA NR5G bands: $nsa_nr5g_bands" "info" + log_message "- APN: $apn ($pdp_type)" "info" + log_message "- IMEI: $imei" "info" + log_message "- TTL: $ttl" "info" + + # Check if any changes are needed using improved comparison + local needs_apn_change=0 + local needs_mode_change=0 + local needs_lte_bands_change=0 + local needs_sa_nr5g_bands_change=0 + local needs_nsa_nr5g_bands_change=0 + local needs_imei_change=0 + local needs_ttl_change=0 + local changes_needed=0 + local requires_reboot=0 + + # Use normalized comparison + compare_values "$current_apn" "$apn" "apn" && needs_apn_change=1 && changes_needed=1 + compare_values "$current_mode" "$network_type" "mode" && needs_mode_change=1 && changes_needed=1 + compare_values "$current_lte_bands" "$lte_bands" "bands" && needs_lte_bands_change=1 && changes_needed=1 + compare_values "$current_sa_nr5g_bands" "$sa_nr5g_bands" "bands" && needs_sa_nr5g_bands_change=1 && changes_needed=1 + compare_values "$current_nsa_nr5g_bands" "$nsa_nr5g_bands" "bands" && needs_nsa_nr5g_bands_change=1 && changes_needed=1 + + # Get current TTL value + local current_ttl=$(get_current_ttl) + + # Compare TTL values + if [ "$current_ttl" != "$ttl" ]; then + needs_ttl_change=1 + changes_needed=1 + fi + + # IMEI is a special case - only change if explicitly specified + if [ -n "$imei" ]; then + compare_values "$current_imei" "$imei" "imei" && needs_imei_change=1 && changes_needed=1 && requires_reboot=1 + fi + + if [ $changes_needed -eq 0 ]; then + log_message "No changes needed for profile '$profile_name', settings already correct" "info" + mark_profile_applied "$iccid" "$profile_name" + update_track "success" "Profile already correctly applied" "$profile_name" "100" + return 0 + fi + + # Get token for applying settings + local token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for applying profile settings" "error" + update_track "error" "Failed to acquire token" "$profile_name" "0" + return 1 + fi + + local apply_success=1 + local changes_made=0 + + # Apply APN change first (most important) + if [ $needs_apn_change -eq 1 ]; then + update_track "applying" "Setting APN from '$current_apn' to '$apn'" "$profile_name" "20" + log_message "Changing APN from '$current_apn' to '$apn' ($pdp_type)" "info" + + # Set APN using AT command + local apn_cmd="AT+CGDCONT=1,\"$pdp_type\",\"$apn\"" + local output=$(execute_at_command "$apn_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "APN changed successfully to $apn ($pdp_type)" "info" + + # Verify APN setting - fetch APN again to confirm + local verify_output=$(execute_at_command "AT+CGDCONT?" 5 "$token_id") + if echo "$verify_output" | grep -q "\"$apn\""; then + log_message "APN change verified successfully" "info" + update_track "applying" "APN set successfully" "$profile_name" "30" + else + log_message "APN change could not be verified, continuing anyway" "warn" + fi + else + log_message "Failed to change APN to $apn" "error" + update_track "error" "Failed to set APN" "$profile_name" "20" + apply_success=0 + fi + fi + + # Apply network mode change + if [ $needs_mode_change -eq 1 ] && [ $apply_success -eq 1 ]; then + update_track "applying" "Setting network mode from '$current_mode' to '$network_type'" "$profile_name" "40" + log_message "Changing network mode from '$current_mode' to '$network_type'" "info" + + # Format network mode for AT command (may already be in correct format) + local mode_cmd="AT+QNWPREFCFG=\"mode_pref\",$network_type" + local output=$(execute_at_command "$mode_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "Network mode changed successfully to $network_type" "info" + update_track "applying" "Network mode set successfully" "$profile_name" "50" + + # If mode includes NR5G, ensure it's enabled + if echo "$network_type" | grep -q "NR5G"; then + log_message "Ensuring NR5G is enabled" "debug" + local nr5g_cmd="AT+QNWPREFCFG=\"nr5g_disable_mode\",0" + execute_at_command "$nr5g_cmd" 5 "$token_id" + fi + else + log_message "Failed to change network mode to $network_type" "error" + update_track "applying" "Failed to set network mode, continuing" "$profile_name" "45" + fi + fi + + # Apply LTE bands change + if [ $needs_lte_bands_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$lte_bands" ]; then + update_track "applying" "Setting LTE bands from '$current_lte_bands' to '$lte_bands'" "$profile_name" "60" + log_message "Changing LTE bands from '$current_lte_bands' to '$lte_bands'" "info" + + # Convert comma-separated to colon-separated for AT command + local bands_formatted=$(echo "$lte_bands" | tr ',' ':') + local bands_cmd="AT+QNWPREFCFG=\"lte_band\",$bands_formatted" + local output=$(execute_at_command "$bands_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "LTE bands changed successfully to $lte_bands" "info" + update_track "applying" "LTE bands set successfully" "$profile_name" "70" + else + log_message "Failed to change LTE bands to $lte_bands" "error" + update_track "applying" "Failed to set LTE bands, continuing" "$profile_name" "65" + fi + fi + + # Apply NSA NR5G bands change + if [ $needs_nsa_nr5g_bands_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$nsa_nr5g_bands" ]; then + update_track "applying" "Setting NSA NR5G bands from '$current_nsa_nr5g_bands' to '$nsa_nr5g_bands'" "$profile_name" "75" + log_message "Changing NSA NR5G bands from '$current_nsa_nr5g_bands' to '$nsa_nr5g_bands'" "info" + + # Convert comma-separated to colon-separated for AT command + local bands_formatted=$(echo "$nsa_nr5g_bands" | tr ',' ':') + local nsa_cmd="AT+QNWPREFCFG=\"nsa_nr5g_band\",$bands_formatted" + local output=$(execute_at_command "$nsa_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "NSA NR5G bands changed successfully to $nsa_nr5g_bands" "info" + update_track "applying" "NSA NR5G bands set successfully" "$profile_name" "80" + else + log_message "Failed to change NSA NR5G bands to $nsa_nr5g_bands" "error" + update_track "applying" "Failed to set NSA NR5G bands, continuing" "$profile_name" "75" + fi + fi + + # Apply SA NR5G bands change + if [ $needs_sa_nr5g_bands_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$sa_nr5g_bands" ]; then + update_track "applying" "Setting SA NR5G bands from '$current_sa_nr5g_bands' to '$sa_nr5g_bands'" "$profile_name" "85" + log_message "Changing SA NR5G bands from '$current_sa_nr5g_bands' to '$sa_nr5g_bands'" "info" + + # Convert comma-separated to colon-separated for AT command + local bands_formatted=$(echo "$sa_nr5g_bands" | tr ',' ':') + local sa_cmd="AT+QNWPREFCFG=\"nr5g_band\",$bands_formatted" + local output=$(execute_at_command "$sa_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + log_message "SA NR5G bands changed successfully to $sa_nr5g_bands" "info" + update_track "applying" "SA NR5G bands set successfully" "$profile_name" "90" + else + log_message "Failed to change SA NR5G bands to $sa_nr5g_bands" "error" + update_track "applying" "Failed to set SA NR5G bands, continuing" "$profile_name" "85" + fi + fi + + # Apply TTL change if needed + if [ $needs_ttl_change -eq 1 ] && [ $apply_success -eq 1 ]; then + apply_ttl_settings "$ttl" "$current_ttl" "$token_id" "$profile_name" + if [ $? -eq 0 ]; then + changes_made=1 + log_message "TTL settings applied successfully" "info" + fi + fi + + # Apply IMEI change (requires reboot) + if [ $needs_imei_change -eq 1 ] && [ $apply_success -eq 1 ] && [ -n "$imei" ]; then + update_track "applying" "Setting IMEI from '$current_imei' to '$imei'" "$profile_name" "95" + log_message "Changing IMEI from '$current_imei' to '$imei'" "info" + + local imei_cmd="AT+EGMR=1,7,\"$imei\"" + local output=$(execute_at_command "$imei_cmd" 10 "$token_id") + + if [ $? -eq 0 ]; then + changes_made=1 + requires_reboot=1 + log_message "IMEI changed successfully to $imei (device will reboot)" "info" + update_track "rebooting" "IMEI changed, device will reboot" "$profile_name" "95" + else + log_message "Failed to change IMEI to $imei" "error" + update_track "applying" "Failed to set IMEI, continuing" "$profile_name" "90" + requires_reboot=0 + fi + fi + + # Release token + release_token "$token_id" + + # Mark profile as applied if changes were made + if [ $changes_made -eq 1 ]; then + mark_profile_applied "$iccid" "$profile_name" + fi + + # If IMEI was changed, need to reboot + if [ $requires_reboot -eq 1 ]; then + log_message "IMEI change requires reboot, scheduling reboot..." "info" + update_track "rebooting" "Device is rebooting to apply IMEI change" "$profile_name" "100" + sleep 2 + reboot & + return 0 + fi + + # Force network reset if changes were made but no reboot required + if [ $changes_made -eq 1 ] && [ $requires_reboot -eq 0 ]; then + log_message "Changes applied, resetting network connection to apply changes" "info" + update_track "applying" "Resetting network connection" "$profile_name" "95" + + # Get a new token for network reset + token_id=$(acquire_token) + if [ -n "$token_id" ]; then + # Force PDP context reconnection - note: errors here are common and non-fatal + log_message "Forcing network reconnection" "info" + execute_at_command "AT+COPS=2" 5 "$token_id" || true + sleep 2 + execute_at_command "AT+COPS=0" 5 "$token_id" || true + sleep 1 + + # Release token + release_token "$token_id" + fi + fi + + # Check if any changes were made + if [ $changes_made -eq 0 ]; then + log_message "Profile '$profile_name' already applied correctly, no changes needed" "info" + update_track "success" "Profile already correctly applied" "$profile_name" "100" + else + log_message "Successfully applied profile '$profile_name'" "info" + update_track "success" "Profile applied successfully" "$profile_name" "100" + fi + + return 0 +} + +# Check profile function with updated SA/NSA bands and TTL support +check_profile() { + local forced="${1:-0}" + + log_message "Performing profile check (forced=$forced)" "info" + + # Get all modem data at once with a single token + local modem_data="" + modem_data=$(fetch_modem_data) + if [ $? -ne 0 ]; then + log_message "Failed to fetch modem data, will retry later" "error" + update_track "error" "Could not communicate with modem. Will retry later." "unknown" "0" + return 1 + fi + + # Extract ICCID from modem data + local current_iccid="" + current_iccid=$(extract_iccid "$modem_data") + if [ $? -ne 0 ]; then + log_message "Failed to extract ICCID from modem data, will retry later" "error" + update_track "error" "Could not detect SIM card. Please check that a SIM is inserted." "unknown" "0" + return 1 + fi + + log_message "Current ICCID: $current_iccid" "info" + + # Find profile for current ICCID + local profile_index="" + profile_index=$(find_profile_by_iccid "$current_iccid") + local profile_result=$? + + # CRITICAL FIX: Early return if no profile is found + if [ $profile_result -ne 0 ]; then + log_message "No profile found for ICCID $current_iccid, nothing to apply" "info" + update_track "idle" "No profile exists for current SIM card. Create a profile to configure network settings." "$current_iccid" "0" + return 0 + fi + + # Only continue if we found a valid profile + log_message "Found valid profile index: $profile_index" "debug" + + # Get profile details + local profile_name=$(uci -q get quecprofiles.$profile_index.name) + local network_type=$(uci -q get quecprofiles.$profile_index.network_type) + local lte_bands=$(uci -q get quecprofiles.$profile_index.lte_bands) + local sa_nr5g_bands=$(uci -q get quecprofiles.$profile_index.sa_nr5g_bands) + local nsa_nr5g_bands=$(uci -q get quecprofiles.$profile_index.nsa_nr5g_bands) + local apn=$(uci -q get quecprofiles.$profile_index.apn) + local pdp_type=$(uci -q get quecprofiles.$profile_index.pdp_type) + local imei=$(uci -q get quecprofiles.$profile_index.imei) + local ttl=$(uci -q get quecprofiles.$profile_index.ttl) + + # Default pdp_type to "IP" if not specified + pdp_type="${pdp_type:-IP}" + # Default TTL to 0 (disabled) if not specified + ttl="${ttl:-0}" + + # For backward compatibility - check if old nr5g_bands exists but new fields don't + local nr5g_bands=$(uci -q get quecprofiles.$profile_index.nr5g_bands) + if [ -n "$nr5g_bands" ] && [ -z "$sa_nr5g_bands" ] && [ -z "$nsa_nr5g_bands" ]; then + sa_nr5g_bands=$nr5g_bands + nsa_nr5g_bands=$nr5g_bands + log_message "Migrating legacy nr5g_bands for profile $profile_name" "info" + fi + + log_message "Found profile: $profile_name for ICCID: $current_iccid" "info" + log_message "Profile settings: network_type=$network_type, lte_bands=$lte_bands, sa_nr5g_bands=$sa_nr5g_bands, nsa_nr5g_bands=$nsa_nr5g_bands, apn=$apn, pdp_type=$pdp_type, imei=$imei, ttl=$ttl" "info" + + # Check if APN is configured - it's the minimum required setting + if [ -z "$apn" ]; then + log_message "Profile has no APN configured, cannot apply" "error" + update_track "error" "Profile \"$profile_name\" is missing the required APN setting. Please edit the profile and add an APN." "$profile_name" "0" + return 1 + fi + + # Check if profile is already applied (unless forced) + if [ "$forced" != "1" ] && is_profile_applied "$current_iccid" "$profile_name"; then + log_message "Profile '$profile_name' is already applied, skipping" "info" + update_track "success" "Profile already applied (from flag)" "$profile_name" "100" + return 0 + fi + + # Apply profile if forced or if autoswitch is enabled + local enable_autoswitch + enable_autoswitch=$(uci -q get quecprofiles.settings.enable_autoswitch) + enable_autoswitch="${enable_autoswitch:-1}" # Default to enabled + + if [ "$forced" = "1" ] || [ "$enable_autoswitch" = "1" ]; then + log_message "Applying profile settings..." "info" + update_track "applying" "Applying profile settings" "$profile_name" "10" + + # Extract current modem settings for comparison + local current_apn="" + local current_mode="" + local current_lte_bands="" + local current_sa_nr5g_bands="" + local current_nsa_nr5g_bands="" + local current_imei="" + + current_apn=$(extract_apn "$modem_data") + current_mode=$(extract_network_mode "$modem_data") + current_lte_bands=$(extract_lte_bands "$modem_data") + current_sa_nr5g_bands=$(extract_nr5g_bands "$modem_data" "sa") + current_nsa_nr5g_bands=$(extract_nr5g_bands "$modem_data" "nsa") + current_imei=$(extract_imei "$modem_data") + + # Apply profile settings with the new parameters + apply_profile_settings "$profile_name" "$network_type" "$lte_bands" "$sa_nr5g_bands" "$nsa_nr5g_bands" \ + "$apn" "$pdp_type" "$imei" "$ttl" "$current_apn" "$current_mode" "$current_lte_bands" \ + "$current_sa_nr5g_bands" "$current_nsa_nr5g_bands" "$current_imei" "$current_iccid" + return $? + else + log_message "Automatic profile switching is disabled, not applying profile" "info" + update_track "idle" "Automatic profile switching is disabled" "$profile_name" "0" + return 0 + fi +} + +# Main function +main() { + log_message "QuecProfiles daemon starting with SA/NSA NR5G and TTL support (PID: $$)" "info" + + # Clear status files at startup + rm -f "$TRACK_FILE" "$CHECK_TRIGGER" + update_track "idle" "Daemon started" "none" "0" + + # Get check interval from UCI + local check_interval + check_interval=$(uci -q get quecprofiles.settings.check_interval) + check_interval="${check_interval:-$DEFAULT_CHECK_INTERVAL}" + + # Check autoswitch setting + local enable_autoswitch + enable_autoswitch=$(uci -q get quecprofiles.settings.enable_autoswitch) + enable_autoswitch="${enable_autoswitch:-1}" # Default to enabled + + log_message "Daemon configured with check_interval=$check_interval seconds, enable_autoswitch=$enable_autoswitch" "info" + + # Add a startup delay + log_message "Waiting 10 seconds before initial check..." "info" + sleep 10 + + # Main loop + while true; do + # Check if there's a manual check request + if [ -f "$CHECK_TRIGGER" ]; then + log_message "Manual check triggered" "info" + rm -f "$CHECK_TRIGGER" + check_profile 1 # Forced check + elif [ "$enable_autoswitch" -eq 1 ]; then + # Perform regular check + check_profile 0 # Regular check + else + log_message "Automatic profile switching is disabled" "info" + update_track "idle" "Automatic profile switching is disabled" "none" "0" + fi + + # Sleep for the check interval + log_message "Sleeping for $check_interval seconds" "info" + + # Break the sleep into smaller intervals to check for triggers + sleep_counter=0 + while [ $sleep_counter -lt $check_interval ]; do + sleep 5 + sleep_counter=$((sleep_counter + 5)) + + # Check for manual trigger during sleep + if [ -f "$CHECK_TRIGGER" ]; then + log_message "Manual check triggered during sleep" "info" + break + fi + done + done +} + +# Set up trap handlers for clean shutdown +trap 'log_message "Received SIGTERM, exiting"; update_track "idle" "Daemon stopped" "none" "0"; exit 0' TERM +trap 'log_message "Received SIGINT, exiting"; update_track "idle" "Daemon stopped" "none" "0"; exit 0' INT + +# Start the main function +main \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quecwatch.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quecwatch.sh new file mode 100644 index 0000000..da3c43f --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/quecwatch.sh @@ -0,0 +1,544 @@ +#!/bin/sh + +# QuecWatch Daemon +# Monitors cellular connectivity and performs recovery actions + +# Load UCI configuration functions +. /lib/functions.sh + +# Configuration +QUEUE_DIR="/tmp/at_queue" +TOKEN_FILE="$QUEUE_DIR/token" +LOG_DIR="/tmp/log/quecwatch" +LOG_FILE="$LOG_DIR/quecwatch.log" +PID_FILE="/var/run/quecwatch.pid" +STATUS_FILE="/tmp/quecwatch_status.json" +RETRY_COUNT_FILE="/tmp/quecwatch_retry_count" +UCI_CONFIG="quecmanager" +MAX_TOKEN_WAIT=10 # Maximum seconds to wait for token acquisition +TOKEN_PRIORITY=15 # Medium priority (between profiles and metrics) + +# Ensure directories exist +mkdir -p "$LOG_DIR" "$QUEUE_DIR" + +# Store PID +echo "$$" > "$PID_FILE" +chmod 644 "$PID_FILE" + +# Function to log messages +log_message() { + local level="${2:-info}" + local message="$1" + local timestamp=$(date "+%Y-%m-%d %H:%M:%S") + + # Log to file + echo "[$timestamp] [$level] $message" >> "$LOG_FILE" + + # Log to system log + logger -t quecwatch -p "daemon.$level" "$message" +} + +# Function to update status +update_status() { + local status="$1" + local message="$2" + local retry="${3:-$CURRENT_RETRIES}" + local max="${4:-$MAX_RETRIES}" + + # Create JSON status + cat > "$STATUS_FILE" </dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + log_message "Found expired token from $current_holder, removing" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Check if the token is held by a QuecProfile or cell scan + if echo "$current_holder" | grep -q "CELL_SCAN"; then + log_message "Token held by cell scan (priority: $current_priority), waiting..." "debug" + elif echo "$current_holder" | grep -q "QUECPROFILES"; then + log_message "Token held by profile application (priority: $current_priority), waiting..." "debug" + else + log_message "Token held by $current_holder with priority $current_priority, retrying..." "debug" + fi + + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$requestor_id\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$requestor_id" ]; then + log_message "Successfully acquired token with ID $requestor_id" "debug" + echo "$requestor_id" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Function to release token +release_token() { + local requestor_id="$1" + + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$requestor_id" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + log_message "Released token $requestor_id" "debug" + return 0 + fi + log_message "Token held by $current_holder, not by us ($requestor_id)" "warn" + else + log_message "Token file doesn't exist, nothing to release" "debug" + fi + return 1 +} + +# Function to execute AT command with token +execute_at_command() { + local cmd="$1" + local timeout="${2:-5}" + local token_id="$3" + + if [ -z "$token_id" ]; then + log_message "No valid token provided for command: $cmd" "error" + return 1 + fi + + log_message "Executing AT command: $cmd (timeout: ${timeout}s)" "debug" + + # Execute the command with proper timeout + local output + local status=1 + + output=$(sms_tool at "$cmd" -t "$timeout" 2>&1) + status=$? + + if [ $status -ne 0 ]; then + log_message "AT command failed: $cmd (exit code: $status)" "error" + return 1 + fi + + echo "$output" + return 0 +} + +# Function to check internet connectivity +check_internet() { + local ping_target + local ping_count=3 + + # Get ping target from UCI + config_load "$UCI_CONFIG" + config_get ping_target quecwatch ping_target + + if [ -z "$ping_target" ]; then + log_message "No ping target configured" "error" + return 1 + fi + + log_message "Checking internet connectivity to $ping_target" "debug" + + if ping -c $ping_count "$ping_target" > /dev/null 2>&1; then + log_message "Internet connectivity check successful" "debug" + return 0 + else + log_message "Internet connectivity check failed" "warn" + return 1 + fi +} + +# Function to get current SIM slot +get_current_sim() { + local token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for SIM slot check" "error" + return 1 + fi + + log_message "Checking current SIM slot" "debug" + + local result=$(execute_at_command "AT+QUIMSLOT?" 5 "$token_id") + local status=$? + + # Release token + release_token "$token_id" + + if [ $status -eq 0 ] && [ -n "$result" ]; then + # Extract SIM slot number from response + local current_sim=$(echo "$result" | grep -o '+QUIMSLOT: [0-9]' | cut -d' ' -f2) + + if [ -n "$current_sim" ]; then + log_message "Current SIM slot: $current_sim" "debug" + echo "$current_sim" + return 0 + fi + fi + + log_message "Failed to get current SIM slot" "error" + return 1 +} + +# Function to switch SIM card +switch_sim_card() { + local current_sim + local target_sim + local token_id + + log_message "Starting SIM card switch operation" "info" + + # Get current SIM slot + current_sim=$(get_current_sim) + if [ $? -ne 0 ]; then + log_message "Failed to get current SIM slot, cannot switch" "error" + return 1 + fi + + # Determine target SIM + if [ "$current_sim" = "1" ]; then + target_sim=2 + else + target_sim=1 + fi + + log_message "Attempting to switch from SIM $current_sim to SIM $target_sim" "info" + + # Get token for AT commands + token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for SIM switch" "error" + return 1 + fi + + # Detach from network + log_message "Detaching from network" "debug" + execute_at_command "AT+COPS=2" 10 "$token_id" + sleep 2 + + # Switch SIM slot + log_message "Switching to SIM slot $target_sim" "debug" + local switch_result=$(execute_at_command "AT+QUIMSLOT=$target_sim" 10 "$token_id") + local switch_status=$? + + # If switch failed, return error + if [ $switch_status -ne 0 ]; then + log_message "Failed to switch to SIM $target_sim" "error" + release_token "$token_id" + return 1 + fi + + sleep 5 + + # Reattach to network + log_message "Reattaching to network" "debug" + execute_at_command "AT+COPS=0" 10 "$token_id" + + # Release token + release_token "$token_id" + + # Verify switch + sleep 10 + local new_sim=$(get_current_sim) + if [ "$new_sim" = "$target_sim" ]; then + log_message "Successfully switched to SIM $target_sim" "info" + return 0 + else + log_message "Failed to verify SIM switch, current SIM is $new_sim" "error" + return 1 + fi +} + +# Function to perform connection recovery +perform_connection_recovery() { + local token_id + + log_message "Starting connection recovery" "info" + + # Get token for AT commands + token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for connection recovery" "error" + return 1 + fi + + # Detach from network + log_message "Detaching from network" "debug" + execute_at_command "AT+COPS=2" 10 "$token_id" + sleep 2 + + # Reattach to network + log_message "Reattaching to network" "debug" + execute_at_command "AT+COPS=0" 15 "$token_id" + + # Release token + release_token "$token_id" + + # Verify recovery + sleep 10 + if check_internet; then + log_message "Connection recovery successful" "info" + return 0 + else + log_message "Connection recovery failed" "error" + return 1 + fi +} + +# Load configuration +load_config() { + # Initialize variables + PING_TARGET="" + PING_INTERVAL=60 + PING_FAILURES=3 + MAX_RETRIES=5 + CURRENT_RETRIES=0 + CONNECTION_REFRESH=0 + REFRESH_COUNT=3 + AUTO_SIM_FAILOVER=0 + SIM_FAILOVER_SCHEDULE=0 + + # Load from UCI + config_load "$UCI_CONFIG" + + # Get settings with defaults + config_get PING_TARGET quecwatch ping_target + config_get PING_INTERVAL quecwatch ping_interval 60 + config_get PING_FAILURES quecwatch ping_failures 3 + config_get MAX_RETRIES quecwatch max_retries 5 + config_get CURRENT_RETRIES quecwatch current_retries 0 + config_get_bool CONNECTION_REFRESH quecwatch connection_refresh 0 + config_get REFRESH_COUNT quecwatch refresh_count 3 + config_get_bool AUTO_SIM_FAILOVER quecwatch auto_sim_failover 0 + config_get SIM_FAILOVER_SCHEDULE quecwatch sim_failover_schedule 0 + + # Validate required settings + if [ -z "$PING_TARGET" ]; then + log_message "No ping target configured, using default (8.8.8.8)" "warn" + PING_TARGET="8.8.8.8" + uci set "$UCI_CONFIG.quecwatch.ping_target=$PING_TARGET" + uci commit "$UCI_CONFIG" + fi + + # Load persisted retry count if available + if [ -f "$RETRY_COUNT_FILE" ]; then + CURRENT_RETRIES=$(cat "$RETRY_COUNT_FILE") + fi + + log_message "Configuration loaded: ping_target=$PING_TARGET, interval=$PING_INTERVAL, failures=$PING_FAILURES, max_retries=$MAX_RETRIES, current_retries=$CURRENT_RETRIES" "info" +} + +# Save retry count to both UCI and file +save_retry_count() { + local count=$1 + + # Update UCI + uci set "$UCI_CONFIG.quecwatch.current_retries=$count" + uci commit "$UCI_CONFIG" + + # Update file for crash recovery + echo "$count" > "$RETRY_COUNT_FILE" + chmod 644 "$RETRY_COUNT_FILE" + + log_message "Updated retry count to $count" "debug" +} + +# Main monitoring function +main() { + log_message "QuecWatch daemon starting (PID: $$)" "info" + + # Load configuration + load_config + + # Initial status update + update_status "active" "Monitoring started" + + # Track consecutive failures + local failure_count=0 + + # For scheduled SIM failover + local sim_failover_interval=0 + local initial_sim="" + + # If auto SIM failover is enabled, store initial SIM slot + if [ "$AUTO_SIM_FAILOVER" -eq 1 ]; then + initial_sim=$(get_current_sim) + if [ -n "$initial_sim" ]; then + log_message "Auto SIM failover enabled, initial SIM slot: $initial_sim" "info" + fi + fi + + # Main monitoring loop + while true; do + log_message "Starting monitoring cycle" "debug" + + # Check internet connectivity + if ! check_internet; then + failure_count=$((failure_count + 1)) + log_message "Connectivity check failed ($failure_count/$PING_FAILURES)" "warn" + + # Update status + update_status "warning" "Connection check failed: $failure_count/$PING_FAILURES failures" + + # Check if failure threshold is reached + if [ $failure_count -ge $PING_FAILURES ]; then + # Reset failure counter + failure_count=0 + + # Increment retry counter + CURRENT_RETRIES=$((CURRENT_RETRIES + 1)) + save_retry_count $CURRENT_RETRIES + + log_message "Failure threshold reached. Current retry: $CURRENT_RETRIES/$MAX_RETRIES" "warn" + update_status "error" "Connection lost, attempt $CURRENT_RETRIES/$MAX_RETRIES to recover" + + # Check if max retries reached + if [ $CURRENT_RETRIES -ge $MAX_RETRIES ]; then + log_message "Maximum retries reached" "error" + + # Try SIM failover if enabled + if [ "$AUTO_SIM_FAILOVER" -eq 1 ]; then + log_message "Attempting SIM failover" "info" + update_status "failover" "Maximum retries reached, attempting SIM failover" + + if switch_sim_card && check_internet; then + log_message "SIM failover successful, connection restored" "info" + update_status "recovered" "Connection restored via SIM failover" + + # Reset retry counter + CURRENT_RETRIES=0 + save_retry_count $CURRENT_RETRIES + else + log_message "SIM failover failed, system will reboot" "error" + update_status "rebooting" "SIM failover failed, system will reboot" + + # Wait briefly and reboot + sleep 5 + reboot + fi + else + log_message "Auto SIM failover disabled, system will reboot" "error" + update_status "rebooting" "Maximum retries reached, system will reboot" + + # Wait briefly and reboot + sleep 5 + reboot + fi + else + # Try connection recovery + log_message "Attempting connection recovery" "info" + update_status "recovering" "Attempting to restore connection" + + if perform_connection_recovery; then + log_message "Connection recovery successful" "info" + update_status "recovered" "Connection restored" + + # Reset retry counter + CURRENT_RETRIES=0 + save_retry_count $CURRENT_RETRIES + fi + fi + fi + else + # Connection is good + if [ $failure_count -gt 0 ] || [ $CURRENT_RETRIES -gt 0 ]; then + log_message "Connection restored" "info" + update_status "stable" "Connection restored" + + # Reset counters + failure_count=0 + CURRENT_RETRIES=0 + save_retry_count $CURRENT_RETRIES + fi + + # Scheduled SIM failover check + if [ "$AUTO_SIM_FAILOVER" -eq 1 ] && [ "$SIM_FAILOVER_SCHEDULE" -gt 0 ] && [ -n "$initial_sim" ]; then + # Get current SIM to check if we're on the backup + local current_sim=$(get_current_sim) + + # If we're on backup SIM, check if it's time to try primary again + if [ -n "$current_sim" ] && [ "$current_sim" != "$initial_sim" ]; then + sim_failover_interval=$((sim_failover_interval + 1)) + + # Check if we've reached the scheduled time + if [ $((sim_failover_interval * PING_INTERVAL)) -ge $((SIM_FAILOVER_SCHEDULE * 60)) ]; then + log_message "Scheduled check: attempting to switch back to primary SIM $initial_sim" "info" + update_status "switchback" "Attempting to switch back to primary SIM" + + # Try switching back + if switch_sim_card && check_internet; then + log_message "Successfully switched back to primary SIM" "info" + update_status "stable" "Successfully switched back to primary SIM" + else + log_message "Failed to switch back to primary SIM, staying on backup" "warn" + update_status "stable" "Staying on backup SIM - primary SIM check failed" + + # Switch back to backup SIM + current_sim=$(get_current_sim) + if [ -n "$current_sim" ] && [ "$current_sim" = "$initial_sim" ]; then + switch_sim_card + fi + fi + + # Reset failover interval + sim_failover_interval=0 + fi + fi + fi + fi + + # Sleep for the configured interval + sleep $PING_INTERVAL + done +} + +# Set up trap for clean shutdown +trap 'log_message "Received signal, exiting" "info"; update_status "stopped" "Daemon stopped"; rm -f "$PID_FILE"; exit 0' INT TERM + +# Start the main function +main \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/scheduled_cell_locking.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/scheduled_cell_locking.sh new file mode 100644 index 0000000..d08175c --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/services/scheduled_cell_locking.sh @@ -0,0 +1,429 @@ +#!/bin/sh + +# Cell Lock Scheduler Daemon +# Monitors schedule and applies/restores cell locks as needed + +# Load UCI configuration functions +. /lib/functions.sh + +# Configuration +QUEUE_DIR="/tmp/at_queue" +TOKEN_FILE="$QUEUE_DIR/token" +LOG_DIR="/tmp/log/cell_lock" +LOG_FILE="$LOG_DIR/cell_lock.log" +PID_FILE="/var/run/cell_lock_scheduler.pid" +STATUS_FILE="/tmp/cell_lock_status.json" +UCI_CONFIG="quecmanager" +CHECK_INTERVAL=60 # Check schedule every minute +MAX_TOKEN_WAIT=15 # Maximum seconds to wait for token acquisition +TOKEN_PRIORITY=5 # Higher priority than QuecWatch (which is 15) + +# Ensure directories exist +mkdir -p "$LOG_DIR" "$QUEUE_DIR" + +# Store PID +echo "$$" > "$PID_FILE" +chmod 644 "$PID_FILE" + +# Function to log messages +log_message() { + local level="${2:-info}" + local message="$1" + local timestamp=$(date "+%Y-%m-%d %H:%M:%S") + + # Log to file + echo "[$timestamp] [$level] $message" >> "$LOG_FILE" + + # Log to system log + logger -t cell_lock -p "daemon.$level" "$message" +} + +# Function to update status +update_status() { + local status="$1" + local message="$2" + local active="${3:-0}" + local locked="${4:-0}" + + # Create JSON status + cat > "$STATUS_FILE" </dev/null) + local current_priority=$(cat "$TOKEN_FILE" | jsonfilter -e '@.priority' 2>/dev/null) + local timestamp=$(cat "$TOKEN_FILE" | jsonfilter -e '@.timestamp' 2>/dev/null) + local current_time=$(date +%s) + + # Check for expired token (> 30 seconds old) + if [ $((current_time - timestamp)) -gt 30 ] || [ -z "$current_holder" ]; then + # Remove expired token + log_message "Found expired token from $current_holder, removing" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + elif [ $priority -lt $current_priority ]; then + # Preempt lower priority token + log_message "Preempting token from $current_holder (priority: $current_priority)" "debug" + rm -f "$TOKEN_FILE" 2>/dev/null + else + # Check if the token is held by a cell scan + if echo "$current_holder" | grep -q "CELL_SCAN"; then + log_message "Token held by cell scan (priority: $current_priority), waiting..." "debug" + else + log_message "Token held by $current_holder with priority $current_priority, retrying..." "debug" + fi + + sleep 0.5 + attempt=$((attempt + 1)) + continue + fi + fi + + # Try to create token file + echo "{\"id\":\"$requestor_id\",\"priority\":$priority,\"timestamp\":$(date +%s)}" > "$TOKEN_FILE" 2>/dev/null + chmod 644 "$TOKEN_FILE" 2>/dev/null + + # Verify we got the token + local holder=$(cat "$TOKEN_FILE" 2>/dev/null | jsonfilter -e '@.id' 2>/dev/null) + if [ "$holder" = "$requestor_id" ]; then + log_message "Successfully acquired token with ID $requestor_id" "debug" + echo "$requestor_id" + return 0 + fi + + sleep 0.5 + attempt=$((attempt + 1)) + done + + log_message "Failed to acquire token after $max_attempts attempts" "error" + return 1 +} + +# Function to release token +release_token() { + local requestor_id="$1" + + if [ -f "$TOKEN_FILE" ]; then + local current_holder=$(cat "$TOKEN_FILE" | jsonfilter -e '@.id' 2>/dev/null) + if [ "$current_holder" = "$requestor_id" ]; then + rm -f "$TOKEN_FILE" 2>/dev/null + log_message "Released token $requestor_id" "debug" + return 0 + fi + log_message "Token held by $current_holder, not by us ($requestor_id)" "warn" + else + log_message "Token file doesn't exist, nothing to release" "debug" + fi + return 1 +} + +# Function to execute AT command with token +execute_at_command() { + local cmd="$1" + local timeout="${2:-10}" + local token_id="$3" + + if [ -z "$token_id" ]; then + log_message "No valid token provided for command: $cmd" "error" + return 1 + fi + + log_message "Executing AT command: $cmd (timeout: ${timeout}s)" "debug" + + # Execute the command with proper timeout + local output + local status=1 + + output=$(sms_tool at "$cmd" -t "$timeout" 2>&1) + status=$? + + if [ $status -ne 0 ]; then + log_message "AT command failed: $cmd (exit code: $status)" "error" + return 1 + fi + + echo "$output" + return 0 +} + +# Function to check current lock status +check_lock_status() { + local token_id="$1" + + log_message "Checking current cell lock status" "debug" + + # Check LTE lock status + local lte_status=$(execute_at_command 'AT+QNWLOCK="common/4g"' 5 "$token_id") + local nr5g_status=$(execute_at_command 'AT+QNWLOCK="common/5g"' 5 "$token_id") + + # Check if any lock is active + if echo "$lte_status" | grep -q '"common/4g",0'; then + if echo "$nr5g_status" | grep -q '"common/5g",0'; then + log_message "No active cell locks detected" "debug" + return 1 + fi + fi + + log_message "Active cell locks detected" "debug" + return 0 +} + +# Function to get current lock parameters and save to UCI +store_current_lock_params() { + local token_id="$1" + + log_message "Storing current lock parameters" "debug" + + # Get LTE lock status + local lte_status=$(execute_at_command 'AT+QNWLOCK="common/4g"' 5 "$token_id") + if [ $? -eq 0 ]; then + # Extract parameters + local lte_params=$(echo "$lte_status" | grep -o '"common/4g",[^[:space:]]*' | cut -d',' -f2-) + + # Save to UCI + uci set "$UCI_CONFIG.cell_lock.lte_params='$lte_params'" + log_message "Stored LTE parameters: $lte_params" "debug" + fi + + # Get NR5G lock status + local nr5g_status=$(execute_at_command 'AT+QNWLOCK="common/5g"' 5 "$token_id") + if [ $? -eq 0 ]; then + # Extract parameters + local nr5g_params=$(echo "$nr5g_status" | grep -o '"common/5g",[^[:space:]]*' | cut -d',' -f2-) + + # Save to UCI + uci set "$UCI_CONFIG.cell_lock.nr5g_params='$nr5g_params'" + log_message "Stored NR5G parameters: $nr5g_params" "debug" + fi + + # Get persist settings + local persist_status=$(execute_at_command 'AT+QNWLOCK="save_ctrl"' 5 "$token_id") + if [ $? -eq 0 ]; then + # Extract parameters (LTE persist is at index 1, NR5G persist is at index 2) + local persist_params=$(echo "$persist_status" | grep -o '"save_ctrl",[^[:space:]]*' | cut -d',' -f2-) + local lte_persist=$(echo "$persist_params" | cut -d',' -f1) + local nr5g_persist=$(echo "$persist_params" | cut -d',' -f2) + + # Save to UCI + uci set "$UCI_CONFIG.cell_lock.lte_persist='$lte_persist'" + uci set "$UCI_CONFIG.cell_lock.nr5g_persist='$nr5g_persist'" + log_message "Stored persist settings: LTE=$lte_persist, NR5G=$nr5g_persist" "debug" + fi + + # Commit changes + uci commit "$UCI_CONFIG" + return 0 +} + +# Function to check if time is in range +is_time_in_range() { + local current_time_minutes=$1 + local start_time_minutes=$2 + local end_time_minutes=$3 + + # Handle case where end time is on the next day + if [ $end_time_minutes -lt $start_time_minutes ]; then + if [ $current_time_minutes -ge $start_time_minutes ] || [ $current_time_minutes -lt $end_time_minutes ]; then + return 0 + fi + else + if [ $current_time_minutes -ge $start_time_minutes ] && [ $current_time_minutes -lt $end_time_minutes ]; then + return 0 + fi + fi + + return 1 +} + +# Function to convert HH:MM to minutes +time_to_minutes() { + local time="$1" + local hours=$(echo "$time" | cut -d':' -f1) + local minutes=$(echo "$time" | cut -d':' -f2) + + echo $((hours * 60 + minutes)) +} + +# Function to check schedule and manage cell locks +check_schedule() { + local enabled + local start_time + local end_time + local current_active + + # Get current scheduler state from UCI + config_load "$UCI_CONFIG" + config_get_bool enabled cell_lock enabled 0 + + if [ "$enabled" -ne 1 ]; then + log_message "Cell lock scheduler is disabled" "debug" + update_status "disabled" "Scheduler is disabled" 0 0 + return 0 + fi + + # Get schedule from UCI + config_get start_time cell_lock start_time + config_get end_time cell_lock end_time + config_get current_active cell_lock active 0 + + if [ -z "$start_time" ] || [ -z "$end_time" ]; then + log_message "Missing start or end time in configuration" "error" + update_status "error" "Missing schedule configuration" 0 0 + return 1 + } + + # Get current time + local current_time=$(date "+%H:%M") + + # Convert times to minutes for comparison + local current_minutes=$(time_to_minutes "$current_time") + local start_minutes=$(time_to_minutes "$start_time") + local end_minutes=$(time_to_minutes "$end_time") + + # Get token for AT commands + local token_id=$(acquire_token) + if [ -z "$token_id" ]; then + log_message "Failed to acquire token for checking schedule" "error" + update_status "error" "Failed to acquire token for checking schedule" 0 0 + return 1 + } + + # Check if any cell lock is currently active + local lock_active=0 + check_lock_status "$token_id" && lock_active=1 + + # Check if current time is in the scheduled range + if is_time_in_range "$current_minutes" "$start_minutes" "$end_minutes"; then + # We're in the active window + if [ "$current_active" -ne 1 ]; then + # We just entered the window, need to save current state + log_message "Entering scheduled window" "info" + + # Store current lock parameters if a lock is active + if [ $lock_active -eq 1 ]; then + log_message "Storing current cell lock parameters" "info" + store_current_lock_params "$token_id" + else + log_message "No active cell locks to store" "info" + update_status "inactive" "Schedule active but no cell locks configured" 1 0 + release_token "$token_id" + return 0 + } + + # Update status + uci set "$UCI_CONFIG.cell_lock.active=1" + uci commit "$UCI_CONFIG" + update_status "active" "Cell lock scheduler is active" 1 $lock_active + else + update_status "active" "Cell lock scheduler is active" 1 $lock_active + } + else + # We're outside the active window + if [ "$current_active" -eq 1 ]; then + # We just exited the window + log_message "Exiting scheduled window" "info" + + # Update status + uci set "$UCI_CONFIG.cell_lock.active=0" + uci commit "$UCI_CONFIG" + update_status "inactive" "Outside scheduled hours" 0 $lock_active + } else { + update_status "inactive" "Outside scheduled hours" 0 $lock_active + } + fi + + # Release token + release_token "$token_id" + + return 0 +} + +# Main function +main() { + log_message "Cell lock scheduler daemon starting (PID: $$)" "info" + + # Ensure UCI section exists + if ! uci -q get "$UCI_CONFIG.cell_lock" >/dev/null; then + uci set "$UCI_CONFIG.cell_lock=scheduler" + uci set "$UCI_CONFIG.cell_lock.enabled=0" + uci set "$UCI_CONFIG.cell_lock.active=0" + uci commit "$UCI_CONFIG" + log_message "Created cell lock UCI configuration" "info" + fi + + # Initialize status + update_status "starting" "Cell lock scheduler daemon starting" 0 0 + + # Get token and check if any locks are active + local token_id=$(acquire_token) + if [ -n "$token_id" ]; then + local lock_active=0 + check_lock_status "$token_id" && lock_active=1 + release_token "$token_id" + + # Update status based on current state + local enabled=$(uci -q get "$UCI_CONFIG.cell_lock.enabled") + if [ "$enabled" = "1" ]; then + # Get schedule from UCI + local start_time=$(uci -q get "$UCI_CONFIG.cell_lock.start_time") + local end_time=$(uci -q get "$UCI_CONFIG.cell_lock.end_time") + + if [ -n "$start_time" ] && [ -n "$end_time" ]; then + # Check if we're currently in the schedule window + local current_time=$(date "+%H:%M") + local current_minutes=$(time_to_minutes "$current_time") + local start_minutes=$(time_to_minutes "$start_time") + local end_minutes=$(time_to_minutes "$end_time") + + if is_time_in_range "$current_minutes" "$start_minutes" "$end_minutes"; then + update_status "active" "Cell lock scheduler is active" 1 $lock_active + uci set "$UCI_CONFIG.cell_lock.active=1" + uci commit "$UCI_CONFIG" + } else { + update_status "inactive" "Cell lock scheduler is enabled but outside scheduled hours" 0 $lock_active + uci set "$UCI_CONFIG.cell_lock.active=0" + uci commit "$UCI_CONFIG" + } + } else { + update_status "error" "Missing schedule configuration" 0 $lock_active + } + } else { + update_status "disabled" "Cell lock scheduler is disabled" 0 $lock_active + } + } else { + log_message "Failed to acquire token for initial status check" "error" + } + + # Main monitoring loop + while true; do + check_schedule + sleep $CHECK_INTERVAL + done +} + +# Set up trap for clean shutdown +trap 'log_message "Received signal, exiting" "info"; update_status "stopped" "Daemon stopped" 0 0; rm -f "$PID_FILE"; exit 0' INT TERM + +# Start the main function +main \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/change-password.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/change-password.sh deleted file mode 100755 index 2ca7d8c..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/change-password.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh - -# Set Content-Type for CGI script -echo "Content-type: application/json" -echo "" - -# Read POST data -read -r POST_DATA - -# Debug log for generated hash -DEBUG_LOG="/tmp/password_change.log" - -# Extract the passwords from POST data (URL encoded) -USER="root" -OLD_PASSWORD=$(echo "$POST_DATA" | grep -o 'oldPassword=[^&]*' | cut -d= -f2-) -NEW_PASSWORD=$(echo "$POST_DATA" | grep -o 'newPassword=[^&]*' | cut -d= -f2-) - -# URL-decode the passwords (replace + with space and decode %XX) -urldecode() { - local encoded="${1//+/ }" - printf '%b' "${encoded//%/\\x}" -} - -OLD_PASSWORD=$(urldecode "$OLD_PASSWORD") -NEW_PASSWORD=$(urldecode "$NEW_PASSWORD") - -# Basic validation to reject & and $ characters -if echo "$OLD_PASSWORD$NEW_PASSWORD" | grep -q '[&$]'; then - echo '{"state":"failed","message":"Password contains forbidden characters (& or $)"}' - exit 1 -fi - -# Extract the hashed password from /etc/shadow for the specified user -USER_SHADOW_ENTRY=$(grep "^$USER:" /etc/shadow) - -if [ -z "$USER_SHADOW_ENTRY" ]; then - echo '{"state":"failed","message":"User not found"}' - exit 1 -fi - -# Extract the password hash (second field, colon-separated) -USER_HASH=$(echo "$USER_SHADOW_ENTRY" | cut -d: -f2) - -# Extract the salt (MD5 uses the $1$ prefix followed by the salt) -SALT=$(echo "$USER_HASH" | cut -d'$' -f3) - -# Generate hash from old password using the same salt -OLD_GENERATED_HASH=$(printf '%s' "$OLD_PASSWORD" | openssl passwd -1 -salt "$SALT" -stdin) - -# Verify old password -if [ "$OLD_GENERATED_HASH" != "$USER_HASH" ]; then - echo '{"state":"failed","message":"Current password is incorrect"}' - exit 1 -fi - -# Create a temporary file for the new password -PASS_FILE=$(mktemp) -chmod 600 "$PASS_FILE" - -# Write the new password twice (for confirmation) -printf '%s\n%s\n' "$NEW_PASSWORD" "$NEW_PASSWORD" > "$PASS_FILE" - -# Change password using passwd command -ERROR_OUTPUT=$(passwd "$USER" < "$PASS_FILE" 2>&1) -RESULT=$? - -# Log the operation -echo "Password change attempt. Result: $RESULT. Time: $(date)" >> "$DEBUG_LOG" -if [ $RESULT -ne 0 ]; then - echo "Error output: $ERROR_OUTPUT" >> "$DEBUG_LOG" -fi - -# Clean up -rm -f "$PASS_FILE" - -# Return result -if [ $RESULT -eq 0 ]; then - echo '{"state":"success","message":"Password changed successfully"}' -else - echo '{"state":"failed","message":"Failed to change password"}' -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/get-ip.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/get-ip.sh deleted file mode 100755 index 2e3672d..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/get-ip.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -# Set the content type to JSON -echo "Content-Type: application/json" -echo "" - -# Get the IP address of the br-lan interface -brlan_ip=$(ip route | grep 'dev br-lan proto kernel scope link' | awk '{print $9}') - -# Output the IP in JSON format -echo "{\"br_lan_ip\": \"$brlan_ip\"}" \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/save-config.sh b/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/save-config.sh deleted file mode 100755 index 17d043c..0000000 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/cgi-bin/settings/save-config.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# save-config.sh -echo "Content-Type: application/json" -echo "" - -# Read POST data -read -n $CONTENT_LENGTH POST_DATA - -# Configuration file path -CONFIG_FILE="/etc/quecManager.conf" - -# Parse JSON input and update config file -AT_PORT=$(echo "$POST_DATA" | grep -o '"AT_port":"[^"]*"' | cut -d'"' -f4) -AT_PORT_CUSTOM=$(echo "$POST_DATA" | grep -o '"AT_port_custom":"[^"]*"' | cut -d'"' -f4) -DATA_REFRESH_RATE=$(echo "$POST_DATA" | grep -o '"data_refresh_rate":"[^"]*"' | cut -d'"' -f4) - -# Create new config content -cat > "$CONFIG_FILE" << EOF -AT_port = $AT_PORT -AT_port_custom = $AT_PORT_CUSTOM -data_refresh_rate = $DATA_REFRESH_RATE -EOF - -# Check if write was successful -if [ $? -eq 0 ]; then - echo '{"success": true, "message": "Configuration saved successfully"}' -else - echo '{"success": false, "error": "Failed to save configuration"}' -fi \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.html index 19624e2..3a92e78 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.html @@ -1 +1 @@ -QuecManager
            \ No newline at end of file +QuecManager
              \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.txt index acc19fb..8743ced 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/about/index.txt @@ -1,19 +1,19 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[5329,[],"ClientPageRoot"] -b:I[51228,["7780","static/chunks/7780-304b82dcfd6e5323.js","4568","static/chunks/4568-33274c67a634d54a.js","6655","static/chunks/app/dashboard/about/page-114fb5f8ed454b46.js"],"default"] +b:I[51228,["7780","static/chunks/7780-d44d1f6d676771d4.js","9679","static/chunks/9679-e42f7aaecc29c6da.js","6655","static/chunks/app/dashboard/about/page-1f3a1d3da213686b.js"],"default"] e:I[99165,[],"OutletBoundary"] 10:I[99165,[],"MetadataBoundary"] 12:I[99165,[],"ViewportBoundary"] 14:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","about",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["about",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["about",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","about","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$La",null,{"Component":"$b","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@c","$@d"]}],null,["$","$Le",null,{"children":"$Lf"}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","ke4v3q7rkHzJ5AcexsHIO",{"children":[["$","$L10",null,{"children":"$L11"}],["$","$L12",null,{"children":"$L13"}],null]}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","about",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["about",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["about",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","about","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$La",null,{"Component":"$b","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@c","$@d"]}],null,["$","$Le",null,{"children":"$Lf"}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","m-_o3e5PnDMLoACkl0m7O",{"children":[["$","$L10",null,{"children":"$L11"}],["$","$L12",null,{"children":"$L13"}],null]}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true} 9:{} c:{} d:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.html index 4f430b2..12e62d7 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.html @@ -1 +1 @@ -QuecManager
                \ No newline at end of file +QuecManager
                  \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.txt index a041800..e1a3749 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/at-terminal/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[74627,["9477","static/chunks/9477-215fa25b7251af44.js","4277","static/chunks/app/dashboard/advanced-settings/layout-e0d745ff6aef0894.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[92040,["7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","5011","static/chunks/5011-c111b606b30e72ad.js","1827","static/chunks/1827-82545ba38805ede6.js","4568","static/chunks/4568-33274c67a634d54a.js","8757","static/chunks/app/dashboard/advanced-settings/at-terminal/page-e1c6ee3cda4d5576.js"],"default"] +d:I[92040,["7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","9679","static/chunks/9679-e42f7aaecc29c6da.js","8757","static/chunks/app/dashboard/advanced-settings/at-terminal/page-1bb7b7081b0d04a2.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","advanced-settings","at-terminal",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["at-terminal",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["at-terminal",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","at-terminal","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","Y0nkEyhaF82NaNjeexaII",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","advanced-settings","at-terminal",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["at-terminal",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["at-terminal",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","at-terminal","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","W_2IpmeYkw0A8UHYcirYq",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.html index 8b4d604..908ebe9 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.html @@ -1 +1 @@ -QuecManager
                    \ No newline at end of file +QuecManager
                      \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.txt index 21674eb..ae95dc4 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/connectivity/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[74627,["9477","static/chunks/9477-215fa25b7251af44.js","4277","static/chunks/app/dashboard/advanced-settings/layout-e0d745ff6aef0894.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[39966,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","1827","static/chunks/1827-82545ba38805ede6.js","1457","static/chunks/1457-e5968d4919dfc217.js","9548","static/chunks/app/dashboard/advanced-settings/connectivity/page-ca74cc3bfed7745d.js"],"default"] +d:I[39966,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","6810","static/chunks/6810-8c083ebb04e3d5c9.js","4767","static/chunks/4767-88886265e4e59e78.js","9548","static/chunks/app/dashboard/advanced-settings/connectivity/page-f494320c9da1be00.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","advanced-settings","connectivity",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["connectivity",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["connectivity",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","connectivity","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","FtSkVzTr_RfMH8m4XF2su",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","advanced-settings","connectivity",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["connectivity",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["connectivity",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","connectivity","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","QtzBo-coT87OdgaC_tm9C",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.html index 6871633..3ab4cb3 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.html @@ -1 +1 @@ -QuecManager
                        \ No newline at end of file +QuecManager
                          \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.txt index 1dd1f24..180bf7c 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/mtu/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[74627,["9477","static/chunks/9477-215fa25b7251af44.js","4277","static/chunks/app/dashboard/advanced-settings/layout-e0d745ff6aef0894.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[34819,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","3669","static/chunks/app/dashboard/advanced-settings/mtu/page-3f0163e50a9b265c.js"],"default"] +d:I[34819,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","3669","static/chunks/app/dashboard/advanced-settings/mtu/page-5e0e4fc07a70c0c6.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","advanced-settings","mtu",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["mtu",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["mtu",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","mtu","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","tZZP5C2cT_f-jrgka3UAN",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","advanced-settings","mtu",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["mtu",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["mtu",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","mtu","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","kB6NL3lOaPHFFVC0ef4_c",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.html index def5142..4bb552e 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.html @@ -1 +1 @@ -QuecManager
                            \ No newline at end of file +QuecManager
                              \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.txt index a0bb7eb..dfecd41 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/advanced-settings/ttl-settings/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[74627,["9477","static/chunks/9477-215fa25b7251af44.js","4277","static/chunks/app/dashboard/advanced-settings/layout-e0d745ff6aef0894.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[83143,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","4481","static/chunks/app/dashboard/advanced-settings/ttl-settings/page-ed723dcbbed96c52.js"],"default"] +d:I[83143,["7780","static/chunks/7780-d44d1f6d676771d4.js","1630","static/chunks/1630-e6b1d1dfaecf3c1f.js","4481","static/chunks/app/dashboard/advanced-settings/ttl-settings/page-ab307137ee0a2790.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","advanced-settings","ttl-settings",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["ttl-settings",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["ttl-settings",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","ttl-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","xQd3uauHJHeNyrcZzMQdQ",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","advanced-settings","ttl-settings",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["advanced-settings",{"children":["ttl-settings",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["advanced-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["ttl-settings",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","advanced-settings","children","ttl-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","XWyfrWb4Ak5-fdau1xMuM",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.html index 4243151..ae06816 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.html @@ -1 +1 @@ -QuecManager
                                \ No newline at end of file +QuecManager
                                  \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.txt index ff21f6a..6367125 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/band-locking/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[83593,["9477","static/chunks/9477-215fa25b7251af44.js","347","static/chunks/app/dashboard/cell-settings/layout-81a19da0f530d3d8.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[75808,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","5315","static/chunks/5315-58d2fa3cadcc19a0.js","1942","static/chunks/app/dashboard/cell-settings/band-locking/page-19705544b7dce06b.js"],"default"] +d:I[75808,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","2494","static/chunks/2494-8e5cba9549592786.js","1942","static/chunks/app/dashboard/cell-settings/band-locking/page-4ac8549e8d2ef493.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","cell-settings","band-locking",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["band-locking",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["band-locking",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","band-locking","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","MYvuKFQWFQaxm1sOhnbRe",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","cell-settings","band-locking",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["band-locking",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["band-locking",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","band-locking","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","-knKQNAuMA9cGWfqgwjND",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.html index 036eb9e..5ebb1da 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.html @@ -1 +1 @@ -QuecManager
                                    \ No newline at end of file +QuecManager
                                      \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.txt index cb370f7..00d6093 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/basic-settings/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[83593,["9477","static/chunks/9477-215fa25b7251af44.js","347","static/chunks/app/dashboard/cell-settings/layout-81a19da0f530d3d8.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[8016,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","1457","static/chunks/1457-e5968d4919dfc217.js","6152","static/chunks/6152-326f6ec4a26e144e.js","2545","static/chunks/app/dashboard/cell-settings/basic-settings/page-cf5741b8d8576a31.js"],"default"] +d:I[46142,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6810","static/chunks/6810-8c083ebb04e3d5c9.js","2545","static/chunks/app/dashboard/cell-settings/basic-settings/page-d418fac46daf507e.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","cell-settings","basic-settings",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["basic-settings",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["basic-settings",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","basic-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","FuPHdYaS5KYEe1FF5ZDc_",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","cell-settings","basic-settings",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["basic-settings",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["basic-settings",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","basic-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","P14j90tJamtYieIntGbWZ",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.html index 6614114..6b8f811 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.html @@ -1 +1 @@ -QuecManager
                                        \ No newline at end of file +QuecManager
                                          \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.txt index 4dbbcc9..9e792e9 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/cell-locking/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[83593,["9477","static/chunks/9477-215fa25b7251af44.js","347","static/chunks/app/dashboard/cell-settings/layout-81a19da0f530d3d8.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[43166,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","1457","static/chunks/1457-e5968d4919dfc217.js","6152","static/chunks/6152-326f6ec4a26e144e.js","5665","static/chunks/app/dashboard/cell-settings/cell-locking/page-4ab1165c81cbdb13.js"],"default"] +d:I[19496,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6810","static/chunks/6810-8c083ebb04e3d5c9.js","5665","static/chunks/app/dashboard/cell-settings/cell-locking/page-c36099a3656d9687.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","cell-settings","cell-locking",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["cell-locking",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["cell-locking",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","cell-locking","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","nHlPubdqMfGWNCKAS1gOT",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","cell-settings","cell-locking",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["cell-locking",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["cell-locking",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","cell-locking","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","Gsrzqe8cu_FmLUz4ZnW0O",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.html index a07560b..539c574 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.html @@ -1 +1 @@ -QuecManager
                                            \ No newline at end of file +QuecManager
                                              \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.txt index 84ccd1f..ad98884 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/imei-mangling/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[83593,["9477","static/chunks/9477-215fa25b7251af44.js","347","static/chunks/app/dashboard/cell-settings/layout-81a19da0f530d3d8.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[34268,["7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","3210","static/chunks/3210-0ee79328b7c2a459.js","9065","static/chunks/app/dashboard/cell-settings/imei-mangling/page-98b9e4aee77d66d9.js"],"default"] +d:I[70231,["7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","9065","static/chunks/app/dashboard/cell-settings/imei-mangling/page-5a5627d4caa9c7b7.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","cell-settings","imei-mangling",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["imei-mangling",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["imei-mangling",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","imei-mangling","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","JilUJcqJrdL1K_Vy-SBLC",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","cell-settings","imei-mangling",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["imei-mangling",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["imei-mangling",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","imei-mangling","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","Kb-HXAnUqSRxGRbX6f6vG",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.html index 8e8ff9b..117593d 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.html @@ -1 +1 @@ -QuecManager
                                                \ No newline at end of file +QuecManager
                                                  \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.txt index 4c30807..d15d2b4 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/cell-settings/sms/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[83593,["9477","static/chunks/9477-215fa25b7251af44.js","347","static/chunks/app/dashboard/cell-settings/layout-81a19da0f530d3d8.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[33776,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","5011","static/chunks/5011-c111b606b30e72ad.js","1827","static/chunks/1827-82545ba38805ede6.js","4568","static/chunks/4568-33274c67a634d54a.js","3358","static/chunks/app/dashboard/cell-settings/sms/page-e4bddb9c9369701f.js"],"default"] +d:I[33776,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","9679","static/chunks/9679-e42f7aaecc29c6da.js","3358","static/chunks/app/dashboard/cell-settings/sms/page-851b9d4ba8e76ef1.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","cell-settings","sms",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["sms",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["sms",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","sms","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","vyrXBZ1E7qRpCiCRLGiXf",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","cell-settings","sms",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["cell-settings",{"children":["sms",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["cell-settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["sms",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","cell-settings","children","sms","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","XlGWzxp0TQgBQwYlZRmJx",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.html index 2bdf3cb..0bb4a37 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.html @@ -1 +1 @@ -QuecManager
                                                    \ No newline at end of file +QuecManager
                                                      \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.txt index 86e8001..f27d711 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/cell-scanner/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] -a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-3c6ab898e54410a1.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] +a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[55066,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","2101","static/chunks/b1b46485-5c61721f784038c7.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4568","static/chunks/4568-33274c67a634d54a.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","3742","static/chunks/3742-8a2e24c9cc905cd9.js","5014","static/chunks/app/dashboard/experimental/cell-scanner/page-ea13797318f89296.js"],"default"] +d:I[37277,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","2101","static/chunks/b1b46485-5c61721f784038c7.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9679","static/chunks/9679-e42f7aaecc29c6da.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7231","static/chunks/7231-9bf29e950cdd6225.js","5014","static/chunks/app/dashboard/experimental/cell-scanner/page-a4709c7977b627a1.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","experimental","cell-scanner",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["cell-scanner",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["cell-scanner",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","cell-scanner","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","iKdmv2LKiXjDbYqNGP4sk",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","experimental","cell-scanner",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["cell-scanner",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["cell-scanner",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","cell-scanner","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","LBBZu3daLInU3f4Gk0dmb",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.html index f897de5..f7d001f 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.html @@ -1 +1 @@ -QuecManager
                                                        \ No newline at end of file +QuecManager
                                                          \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.txt index f5159e5..b9726b3 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/keep-alive/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] -a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-3c6ab898e54410a1.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] +a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[4546,["7780","static/chunks/7780-304b82dcfd6e5323.js","3376","static/chunks/app/dashboard/experimental/keep-alive/page-fda1ccb2b4b74c1a.js"],"default"] +d:I[53302,["7780","static/chunks/7780-d44d1f6d676771d4.js","3376","static/chunks/app/dashboard/experimental/keep-alive/page-dba158bf59af2a41.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","experimental","keep-alive",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["keep-alive",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["keep-alive",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","keep-alive","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","izxfQrfF3jUGI2vGO7O5c",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","experimental","keep-alive",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["keep-alive",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["keep-alive",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","keep-alive","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","1-15QJKszC6P6miZRhBAK",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecprofiles/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecprofiles/index.html new file mode 100644 index 0000000..03e35f7 --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecprofiles/index.html @@ -0,0 +1 @@ +QuecManager
                                                            \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecprofiles/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecprofiles/index.txt new file mode 100644 index 0000000..b1fe97b --- /dev/null +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecprofiles/index.txt @@ -0,0 +1,24 @@ +1:"$Sreact.fragment" +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] +4:I[24900,[],""] +5:I[81570,[],""] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] +7:I[92907,[],"ClientSegmentRoot"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] +a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js"],"default"] +c:I[5329,[],"ClientPageRoot"] +d:I[22256,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","6810","static/chunks/6810-8c083ebb04e3d5c9.js","3662","static/chunks/3662-239bb8b0fc7d6649.js","9473","static/chunks/app/dashboard/experimental/quecprofiles/page-4a6c191a1f38b382.js"],"default"] +10:I[99165,[],"OutletBoundary"] +12:I[99165,[],"MetadataBoundary"] +14:I[99165,[],"ViewportBoundary"] +16:I[25339,[],""] +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","experimental","quecprofiles",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["quecprofiles",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["quecprofiles",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","quecprofiles","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","EQtP_ofBSdxGqjHR9tpR8",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +9:{} +b:{} +e:{} +f:{} +15:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +13:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"QuecManager"}],["$","meta","2",{"name":"description","content":"Simpleadmin but better!"}],["$","link","3",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]] +11:null diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.html index f601e65..3cec3ba 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.html @@ -1 +1 @@ -QuecManager
                                                              \ No newline at end of file +QuecManager
                                                                \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.txt index 18aa491..e7580af 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/experimental/quecwatch/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] -a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-3c6ab898e54410a1.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] +a:I[31753,["9477","static/chunks/9477-215fa25b7251af44.js","3075","static/chunks/app/dashboard/experimental/layout-d6b04ab49f439e63.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[84902,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","1457","static/chunks/1457-e5968d4919dfc217.js","6010","static/chunks/app/dashboard/experimental/quecwatch/page-d94c5ce83b8ffc64.js"],"default"] +d:I[79824,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6810","static/chunks/6810-8c083ebb04e3d5c9.js","3048","static/chunks/3048-a6b509fac24a1f29.js","6010","static/chunks/app/dashboard/experimental/quecwatch/page-73c728da722206c7.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","experimental","quecwatch",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["quecwatch",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["quecwatch",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","quecwatch","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","xoPuEese2Ixt_InbawhCz",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","experimental","quecwatch",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["experimental",{"children":["quecwatch",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["experimental",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["quecwatch",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","experimental","children","quecwatch","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","nwsa3xLoksQ91HzCqVMPg",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.html index 74ef91d..a54ddfd 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.html @@ -1 +1 @@ -QuecManager
                                                                  \ No newline at end of file +QuecManager
                                                                    \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.txt index 0a64685..1760619 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/home/index.txt @@ -1,19 +1,19 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[5329,[],"ClientPageRoot"] -b:I[88954,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","9649","static/chunks/47820753-41ce4d8e11c7c32d.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","5011","static/chunks/5011-c111b606b30e72ad.js","1827","static/chunks/1827-82545ba38805ede6.js","1074","static/chunks/1074-17a63cc1d4605bcb.js","9107","static/chunks/9107-369a762e6832fbc4.js","6665","static/chunks/app/dashboard/home/page-276663d2fd50ba09.js"],"default"] +b:I[88954,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","9649","static/chunks/47820753-41ce4d8e11c7c32d.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1074","static/chunks/1074-a3cc46aa8592f7b2.js","4873","static/chunks/4873-5583842edaf5c6c5.js","6665","static/chunks/app/dashboard/home/page-0e5412b23515b7f1.js"],"default"] e:I[99165,[],"OutletBoundary"] 10:I[99165,[],"MetadataBoundary"] 12:I[99165,[],"ViewportBoundary"] 14:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","home",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["home",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["home",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","home","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$La",null,{"Component":"$b","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@c","$@d"]}],null,["$","$Le",null,{"children":"$Lf"}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","fTEnyD2kyL9QPoQKBjm5J",{"children":[["$","$L10",null,{"children":"$L11"}],["$","$L12",null,{"children":"$L13"}],null]}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","home",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["home",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["home",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","home","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$La",null,{"Component":"$b","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@c","$@d"]}],null,["$","$Le",null,{"children":"$Lf"}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","I7dBwHkB8hLIK2-Iqxr9c",{"children":[["$","$L10",null,{"children":"$L11"}],["$","$L12",null,{"children":"$L13"}],null]}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true} 9:{} c:{} d:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.html index 7031609..f552a15 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.html @@ -1 +1 @@ -QuecManager
                                                                      \ No newline at end of file +QuecManager
                                                                        \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.txt index e01b708..d88906a 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/games/tetris/index.txt @@ -1,11 +1,11 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[36994,["9477","static/chunks/9477-215fa25b7251af44.js","5680","static/chunks/app/dashboard/settings/layout-2429ae4d71080a23.js"],"default"] c:I[5329,[],"ClientPageRoot"] d:I[69835,["5293","static/chunks/app/dashboard/settings/games/tetris/page-e289ae715e0fba88.js"],"default"] @@ -13,8 +13,8 @@ d:I[69835,["5293","static/chunks/app/dashboard/settings/games/tetris/page-e289ae 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","settings","games","tetris",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["settings",{"children":["games",{"children":["tetris",{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["games",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children","games","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["tetris",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children","games","children","tetris","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","Tob-oSkaiNcgkRiY9nrkl",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","settings","games","tetris",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["settings",{"children":["games",{"children":["tetris",{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["games",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children","games","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["tetris",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children","games","children","tetris","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","paSn1EEO3HF9gggAB8Lu-",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.html index 8d20878..7641056 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.html @@ -1 +1 @@ -QuecManager
                                                                          \ No newline at end of file +QuecManager
                                                                            \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.txt index 209e4c8..a26cdf8 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/dashboard/settings/security/index.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[92907,[],"ClientSegmentRoot"] -8:I[92646,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1827","static/chunks/1827-82545ba38805ede6.js","9700","static/chunks/9700-86092c9639feaee7.js","1954","static/chunks/app/dashboard/layout-c44a86d95f813876.js"],"default"] +8:I[96609,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","6357","static/chunks/6357-9bebe3918fcef1e5.js","1976","static/chunks/1976-1b4abe798e14d132.js","4767","static/chunks/4767-88886265e4e59e78.js","1954","static/chunks/app/dashboard/layout-f75cf0913690a50a.js"],"default"] a:I[36994,["9477","static/chunks/9477-215fa25b7251af44.js","5680","static/chunks/app/dashboard/settings/layout-2429ae4d71080a23.js"],"default"] c:I[5329,[],"ClientPageRoot"] -d:I[16212,["7780","static/chunks/7780-304b82dcfd6e5323.js","2162","static/chunks/app/dashboard/settings/security/page-722575cb0e664dd2.js"],"default"] +d:I[16212,["7780","static/chunks/7780-d44d1f6d676771d4.js","2162","static/chunks/app/dashboard/settings/security/page-722575cb0e664dd2.js"],"default"] 10:I[99165,[],"OutletBoundary"] 12:I[99165,[],"MetadataBoundary"] 14:I[99165,[],"ViewportBoundary"] 16:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","dashboard","settings","security",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["settings",{"children":["security",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["security",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children","security","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","5q1uDpxxYbXQwfXgSkVqM",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","dashboard","settings","security",""],"i":false,"f":[[["",{"children":["dashboard",{"children":["settings",{"children":["security",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$8","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":{},"promise":"$@9"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L7",null,{"Component":"$a","slots":{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promise":"$@b"}]]}],{"children":["security",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","settings","children","security","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$Lc",null,{"Component":"$d","searchParams":{},"params":"$0:f:0:1:2:children:1:props:children:1:props:params","promises":["$@e","$@f"]}],null,["$","$L10",null,{"children":"$L11"}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","yTUDFH74nYqKTjeyfU-0T",{"children":[["$","$L12",null,{"children":"$L13"}],["$","$L14",null,{"children":"$L15"}],null]}]]}],false]],"m":"$undefined","G":["$16","$undefined"],"s":false,"S":true} 9:{} b:{} e:{} diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/index.txt index d9873ca..5af1581 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/index.txt @@ -1,16 +1,16 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] -7:I[69363,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","5011","static/chunks/5011-c111b606b30e72ad.js","9477","static/chunks/9477-215fa25b7251af44.js","1074","static/chunks/1074-17a63cc1d4605bcb.js","9700","static/chunks/9700-86092c9639feaee7.js","8974","static/chunks/app/page-7dcf49318718ab9d.js"],"default"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] +7:I[69363,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","9464","static/chunks/9464-f5c3c85ad60907ac.js","9477","static/chunks/9477-215fa25b7251af44.js","1074","static/chunks/1074-a3cc46aa8592f7b2.js","1976","static/chunks/1976-1b4abe798e14d132.js","8974","static/chunks/app/page-adabd6d7c25c9c74.js"],"default"] 8:I[99165,[],"OutletBoundary"] a:I[99165,[],"MetadataBoundary"] c:I[99165,[],"ViewportBoundary"] e:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20 font-[family-name:var(--font-geist-sans)]","children":["$","main",null,{"className":"flex flex-col gap-8 row-start-2 items-center sm:items-start","children":["$","$L7",null,{}]}]}],null,["$","$L8",null,{"children":"$L9"}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","vZ0HxZ_2QYKc9cdovBVAb",{"children":[["$","$La",null,{"children":"$Lb"}],["$","$Lc",null,{"children":"$Ld"}],null]}]]}],false]],"m":"$undefined","G":["$e","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20","children":["$","main",null,{"className":"flex flex-col gap-8 row-start-2 items-center sm:items-start","children":["$","$L7",null,{}]}]}],null,["$","$L8",null,{"children":"$L9"}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","kWaUtySTE7Gd5EWSVir0V",{"children":[["$","$La",null,{"children":"$Lb"}],["$","$Lc",null,{"children":"$Ld"}],null]}]]}],false]],"m":"$undefined","G":["$e","$undefined"],"s":false,"S":true} d:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] b:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"QuecManager"}],["$","meta","2",{"name":"description","content":"Simpleadmin but better!"}],["$","link","3",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]] 9:null diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/login.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/login.html index 04ea1e8..ee20463 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/login.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/login.html @@ -1 +1 @@ -QuecManager

                                                                            QuecManager Quick Stats

                                                                              \ No newline at end of file +QuecManager

                                                                              QuecManager Quick Stats

                                                                                \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.html b/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.html index 0335db8..30af2de 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.html +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.html @@ -1 +1 @@ -QuecManager

                                                                                Login to QuecManager

                                                                                Enter your password to login

                                                                                  \ No newline at end of file +QuecManager

                                                                                  Login to QuecManager

                                                                                  Enter your password to login

                                                                                    \ No newline at end of file diff --git a/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.txt b/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.txt index 64f65f3..117c681 100644 --- a/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.txt +++ b/ipk-source/sdxpinn-quecmanager-beta/root/www/login/index.txt @@ -1,17 +1,17 @@ 1:"$Sreact.fragment" -2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"ThemeProvider"] -3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"TooltipProvider"] +2:I[74347,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"ThemeProvider"] +3:I[85014,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"TooltipProvider"] 4:I[24900,[],""] 5:I[81570,[],""] -6:I[75276,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","1617","static/chunks/1617-2875c5bbab102cf8.js","4673","static/chunks/4673-858d1306ab77aa0c.js","4623","static/chunks/4623-3adb8e9629e6d4f2.js","7177","static/chunks/app/layout-c2a293729c29972e.js"],"Toaster"] +6:I[62825,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","8885","static/chunks/8885-1b9ab3cbb10cf437.js","7563","static/chunks/7563-33b7de2a93dcbe27.js","3048","static/chunks/3048-a6b509fac24a1f29.js","7177","static/chunks/app/layout-a9c4b7ff6cae263b.js"],"Toaster"] 7:I[5329,[],"ClientPageRoot"] -8:I[25274,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-304b82dcfd6e5323.js","3320","static/chunks/3320-7d48962f2ebfa876.js","4520","static/chunks/app/login/page-7c06c9d8b0f6cc23.js"],"default"] +8:I[25274,["9980","static/chunks/7b0cf0b7-aa73cc75e53c5793.js","7780","static/chunks/7780-d44d1f6d676771d4.js","6765","static/chunks/6765-04896569da698cf7.js","4520","static/chunks/app/login/page-d0e3b3ab931e2b84.js"],"default"] b:I[99165,[],"OutletBoundary"] d:I[99165,[],"MetadataBoundary"] f:I[99165,[],"ViewportBoundary"] 11:I[25339,[],""] -:HL["/_next/static/css/1f29e3e90e8ebc37.css","style"] -0:{"P":null,"b":"6pIr6VWQMh91espZ7GkRd","p":"","c":["","login",""],"i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f29e3e90e8ebc37.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":" font-euclid antialiased","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["login",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","login","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":"$Lc"}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","Qmrg27V_ZzrnrruzXB43M",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","$Lf",null,{"children":"$L10"}],null]}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true} +:HL["/_next/static/css/66d9da7c42c3caed.css","style"] +0:{"P":null,"b":"ECtAeRdoEqstSdffrWqHu","p":"","c":["","login",""],"i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/66d9da7c42c3caed.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"antialiased __className_9dae3d","children":[["$","$L2",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":true,"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[],[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]}]]}],{"children":["login",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","login","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":"$Lc"}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","iNgPB4hDTfyRiJAZ4BtAE",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","$Lf",null,{"children":"$L10"}],null]}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true} 9:{} a:{} 10:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]