diff --git a/.github/ecs-task-definition-admin.json b/.github/ecs-task-definition-admin.json new file mode 100644 index 00000000..48f96af3 --- /dev/null +++ b/.github/ecs-task-definition-admin.json @@ -0,0 +1,84 @@ +{ + "family": "pythonide-admin-task", + "taskRoleArn": "arn:aws:iam::653306034507:role/ecsTaskExecutionRole", + "executionRoleArn": "arn:aws:iam::653306034507:role/ecsTaskExecutionRole", + "networkMode": "awsvpc", + "requiresCompatibilities": [ + "FARGATE" + ], + "cpu": "512", + "memory": "1024", + "containerDefinitions": [ + { + "name": "pythonide-admin", + "image": "653306034507.dkr.ecr.us-east-2.amazonaws.com/pythonide-admin:latest", + "portMappings": [ + { + "containerPort": 8080, + "protocol": "tcp" + } + ], + "essential": true, + "environment": [ + { + "name": "IDE_DATA_PATH", + "value": "/mnt/efs/pythonide-data" + }, + { + "name": "PORT", + "value": "8080" + }, + { + "name": "IS_ADMIN_MODE", + "value": "true" + } + ], + "secrets": [ + { + "name": "DATABASE_URL", + "valueFrom": "arn:aws:secretsmanager:us-east-2:653306034507:secret:pythonide/database-url" + }, + { + "name": "IDE_SECRET_KEY", + "valueFrom": "arn:aws:secretsmanager:us-east-2:653306034507:secret:pythonide/ide-secret-key" + } + ], + "mountPoints": [ + { + "sourceVolume": "pythonide-efs", + "containerPath": "/mnt/efs" + } + ], + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-group": "/ecs/pythonide-admin", + "awslogs-region": "us-east-2", + "awslogs-stream-prefix": "ecs" + } + }, + "healthCheck": { + "command": [ + "CMD-SHELL", + "curl -f http://localhost:8080/health || exit 1" + ], + "interval": 30, + "timeout": 5, + "retries": 3, + "startPeriod": 180 + } + } + ], + "volumes": [ + { + "name": "pythonide-efs", + "efsVolumeConfiguration": { + "fileSystemId": "fs-0ba3b6fecab24774a", + "transitEncryption": "ENABLED", + "authorizationConfig": { + "iam": "ENABLED" + } + } + } + ] +} diff --git a/.github/workflows/deploy-aws.yml b/.github/workflows/deploy-aws.yml index ab470da3..e66064e5 100644 --- a/.github/workflows/deploy-aws.yml +++ b/.github/workflows/deploy-aws.yml @@ -1,4 +1,4 @@ -name: Deploy to AWS ECS (Main + Exam IDE) +name: Deploy to AWS ECS (Main + Exam + Admin) on: push: @@ -9,16 +9,20 @@ env: AWS_REGION: us-east-2 ECR_REPOSITORY_MAIN: pythonide-backend ECR_REPOSITORY_EXAM: pythonide-exam + ECR_REPOSITORY_ADMIN: pythonide-admin ECS_CLUSTER: pythonide-cluster # Main IDE service ECS_SERVICE_MAIN: pythonide-service # Exam IDE service ECS_SERVICE_EXAM: pythonide-exam-task-service + # Admin Panel service + ECS_SERVICE_ADMIN: pythonide-admin-service ECS_TASK_DEFINITION: .github/ecs-task-definition.json + ECS_TASK_DEFINITION_ADMIN: .github/ecs-task-definition-admin.json jobs: deploy: - name: Deploy to Main + Exam IDE + name: Deploy to Main + Exam + Admin runs-on: ubuntu-latest steps: @@ -36,7 +40,8 @@ jobs: id: login-ecr uses: aws-actions/amazon-ecr-login@v2 - - name: Build, tag, and push image to Amazon ECR + # ==================== MAIN + EXAM IDE BUILD ==================== + - name: Build, tag, and push Main IDE image id: build-image env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} @@ -58,7 +63,31 @@ jobs: echo "image=$ECR_REGISTRY/$ECR_REPOSITORY_MAIN:$IMAGE_TAG" >> $GITHUB_OUTPUT - - name: Fill in the new image ID in the Amazon ECS task definition + # ==================== ADMIN PANEL BUILD ==================== + - name: Ensure Admin ECR Repository Exists + run: | + aws ecr describe-repositories --repository-names $ECR_REPOSITORY_ADMIN --region $AWS_REGION 2>/dev/null || \ + aws ecr create-repository --repository-name $ECR_REPOSITORY_ADMIN --region $AWS_REGION + echo "Admin ECR repository ready" + + - name: Build, tag, and push Admin Panel image + id: build-admin-image + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + IMAGE_TAG: ${{ github.sha }} + run: | + # Build Admin Docker image using Dockerfile.admin + docker build --platform linux/amd64 -f Dockerfile.admin -t $ECR_REGISTRY/$ECR_REPOSITORY_ADMIN:$IMAGE_TAG . + docker tag $ECR_REGISTRY/$ECR_REPOSITORY_ADMIN:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY_ADMIN:latest + + # Push to Admin ECR repository + docker push $ECR_REGISTRY/$ECR_REPOSITORY_ADMIN:$IMAGE_TAG + docker push $ECR_REGISTRY/$ECR_REPOSITORY_ADMIN:latest + + echo "admin_image=$ECR_REGISTRY/$ECR_REPOSITORY_ADMIN:$IMAGE_TAG" >> $GITHUB_OUTPUT + + # ==================== MAIN IDE DEPLOYMENT ==================== + - name: Fill in the new image ID in Main ECS task definition id: task-def uses: aws-actions/amazon-ecs-render-task-definition@v1 with: @@ -66,7 +95,6 @@ jobs: container-name: pythonide-backend image: ${{ steps.build-image.outputs.image }} - # ==================== MAIN IDE DEPLOYMENT ==================== - name: Deploy to Main IDE (pythonide-service) uses: aws-actions/amazon-ecs-deploy-task-definition@v1 with: @@ -77,9 +105,8 @@ jobs: - name: Ensure Auto-Scaling Configuration (Main IDE) run: | - echo "🎯 Verifying auto-scaling for Main IDE..." + echo "Verifying auto-scaling for Main IDE..." - # Check if auto-scaling target exists SCALING_TARGET=$(aws application-autoscaling describe-scalable-targets \ --service-namespace ecs \ --resource-ids "service/${{ env.ECS_CLUSTER }}/${{ env.ECS_SERVICE_MAIN }}" \ @@ -88,9 +115,8 @@ jobs: --output text 2>/dev/null) || SCALING_TARGET="None" if [ "$SCALING_TARGET" = "None" ] || [ "$SCALING_TARGET" = "" ]; then - echo "⚠️ Auto-scaling not configured for Main IDE. Setting up now..." + echo "Setting up auto-scaling for Main IDE..." - # Register scalable target aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id "service/${{ env.ECS_CLUSTER }}/${{ env.ECS_SERVICE_MAIN }}" \ @@ -99,7 +125,6 @@ jobs: --max-capacity 6 \ --region ${{ env.AWS_REGION }} - # Create scaling policy aws application-autoscaling put-scaling-policy \ --policy-name "pythonide-main-cpu-scaling-policy" \ --service-namespace ecs \ @@ -116,34 +141,33 @@ jobs: }' \ --region ${{ env.AWS_REGION }} - echo "✅ Main IDE auto-scaling configured" + echo "Main IDE auto-scaling configured" else - echo "✅ Main IDE auto-scaling already configured" + echo "Main IDE auto-scaling already configured" fi # ==================== EXAM IDE DEPLOYMENT ==================== - name: Deploy to Exam IDE (pythonide-exam-task-service) run: | - echo "🎓 Deploying to Exam IDE..." + echo "Deploying to Exam IDE..." aws ecs update-service \ --cluster ${{ env.ECS_CLUSTER }} \ --service ${{ env.ECS_SERVICE_EXAM }} \ --force-new-deployment \ --region ${{ env.AWS_REGION }} - echo "⏳ Waiting for Exam IDE deployment to stabilize..." + echo "Waiting for Exam IDE deployment to stabilize..." aws ecs wait services-stable \ --cluster ${{ env.ECS_CLUSTER }} \ --services ${{ env.ECS_SERVICE_EXAM }} \ --region ${{ env.AWS_REGION }} - echo "✅ Exam IDE deployment complete" + echo "Exam IDE deployment complete" - name: Ensure Auto-Scaling Configuration (Exam IDE) run: | - echo "🎯 Verifying auto-scaling for Exam IDE..." + echo "Verifying auto-scaling for Exam IDE..." - # Check if auto-scaling target exists for exam IDE SCALING_TARGET=$(aws application-autoscaling describe-scalable-targets \ --service-namespace ecs \ --resource-ids "service/${{ env.ECS_CLUSTER }}/${{ env.ECS_SERVICE_EXAM }}" \ @@ -152,9 +176,8 @@ jobs: --output text 2>/dev/null) || SCALING_TARGET="None" if [ "$SCALING_TARGET" = "None" ] || [ "$SCALING_TARGET" = "" ]; then - echo "⚠️ Auto-scaling not configured for Exam IDE. Setting up now..." + echo "Setting up auto-scaling for Exam IDE..." - # Register scalable target for exam IDE aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id "service/${{ env.ECS_CLUSTER }}/${{ env.ECS_SERVICE_EXAM }}" \ @@ -163,7 +186,6 @@ jobs: --max-capacity 4 \ --region ${{ env.AWS_REGION }} - # Create scaling policy for exam IDE aws application-autoscaling put-scaling-policy \ --policy-name "pythonide-exam-cpu-scaling-policy" \ --service-namespace ecs \ @@ -180,18 +202,243 @@ jobs: }' \ --region ${{ env.AWS_REGION }} - echo "✅ Exam IDE auto-scaling configured" + echo "Exam IDE auto-scaling configured" + else + echo "Exam IDE auto-scaling already configured" + fi + + # ==================== ADMIN PANEL DEPLOYMENT ==================== + - name: Setup Admin Panel Infrastructure + id: admin-infra + run: | + echo "Setting up Admin Panel infrastructure..." + + # Create CloudWatch log group if not exists + aws logs create-log-group --log-group-name /ecs/pythonide-admin --region $AWS_REGION 2>/dev/null || echo "Log group exists" + + # Get VPC and Subnets from existing service + VPC_ID=$(aws ec2 describe-vpcs --filters "Name=isDefault,Values=true" --query 'Vpcs[0].VpcId' --output text --region $AWS_REGION) + SUBNETS=$(aws ec2 describe-subnets --filters "Name=vpc-id,Values=$VPC_ID" --query 'Subnets[*].SubnetId' --output text --region $AWS_REGION | tr '\t' ',') + + # Get security group from main service + SECURITY_GROUP=$(aws ecs describe-services --cluster $ECS_CLUSTER --services $ECS_SERVICE_MAIN \ + --query 'services[0].networkConfiguration.awsvpcConfiguration.securityGroups[0]' --output text --region $AWS_REGION) + + echo "VPC: $VPC_ID" + echo "Subnets: $SUBNETS" + echo "Security Group: $SECURITY_GROUP" + + echo "vpc_id=$VPC_ID" >> $GITHUB_OUTPUT + echo "subnets=$SUBNETS" >> $GITHUB_OUTPUT + echo "security_group=$SECURITY_GROUP" >> $GITHUB_OUTPUT + + # Get ALB ARN + ALB_ARN=$(aws elbv2 describe-load-balancers --names pythonide-alb \ + --query 'LoadBalancers[0].LoadBalancerArn' --output text --region $AWS_REGION 2>/dev/null) || ALB_ARN="" + + if [ -z "$ALB_ARN" ] || [ "$ALB_ARN" = "None" ]; then + # Try to find any ALB with pythonide in the name + ALB_ARN=$(aws elbv2 describe-load-balancers \ + --query 'LoadBalancers[?contains(LoadBalancerName, `pythonide`)].LoadBalancerArn' --output text --region $AWS_REGION | head -1) + fi + + echo "ALB ARN: $ALB_ARN" + echo "alb_arn=$ALB_ARN" >> $GITHUB_OUTPUT + + - name: Create Admin Target Group + id: admin-tg + run: | + # Check if target group exists + TG_ARN=$(aws elbv2 describe-target-groups --names pythonide-admin-tg \ + --query 'TargetGroups[0].TargetGroupArn' --output text --region $AWS_REGION 2>/dev/null) || TG_ARN="" + + if [ -z "$TG_ARN" ] || [ "$TG_ARN" = "None" ]; then + echo "Creating Admin target group..." + TG_ARN=$(aws elbv2 create-target-group \ + --name pythonide-admin-tg \ + --protocol HTTP \ + --port 8080 \ + --vpc-id ${{ steps.admin-infra.outputs.vpc_id }} \ + --target-type ip \ + --health-check-path /health \ + --health-check-interval-seconds 30 \ + --health-check-timeout-seconds 5 \ + --healthy-threshold-count 2 \ + --unhealthy-threshold-count 3 \ + --query 'TargetGroups[0].TargetGroupArn' \ + --output text \ + --region $AWS_REGION) + echo "Created target group: $TG_ARN" + else + echo "Target group exists: $TG_ARN" + fi + + echo "tg_arn=$TG_ARN" >> $GITHUB_OUTPUT + + - name: Create Admin ALB Listener Rule + run: | + # Get HTTPS listener ARN + LISTENER_ARN=$(aws elbv2 describe-listeners \ + --load-balancer-arn ${{ steps.admin-infra.outputs.alb_arn }} \ + --query 'Listeners[?Port==`443`].ListenerArn' --output text --region $AWS_REGION 2>/dev/null) + + if [ -z "$LISTENER_ARN" ] || [ "$LISTENER_ARN" = "None" ]; then + # Try HTTP listener + LISTENER_ARN=$(aws elbv2 describe-listeners \ + --load-balancer-arn ${{ steps.admin-infra.outputs.alb_arn }} \ + --query 'Listeners[?Port==`80`].ListenerArn' --output text --region $AWS_REGION) + fi + + echo "Listener ARN: $LISTENER_ARN" + + # Check if rule already exists for admin subdomain + EXISTING_RULE=$(aws elbv2 describe-rules --listener-arn $LISTENER_ARN \ + --query "Rules[?Conditions[?Values[?contains(@, 'admin.pythonide')]]]" --output text --region $AWS_REGION 2>/dev/null) || EXISTING_RULE="" + + if [ -z "$EXISTING_RULE" ]; then + echo "Creating ALB listener rule for admin.pythonide-classroom.tech..." + + # Get highest priority and add 1 + MAX_PRIORITY=$(aws elbv2 describe-rules --listener-arn $LISTENER_ARN \ + --query 'max(Rules[?Priority!=`default`].Priority)' --output text --region $AWS_REGION) + + if [ "$MAX_PRIORITY" = "None" ] || [ -z "$MAX_PRIORITY" ]; then + NEW_PRIORITY=10 + else + NEW_PRIORITY=$((MAX_PRIORITY + 10)) + fi + + aws elbv2 create-rule \ + --listener-arn $LISTENER_ARN \ + --priority $NEW_PRIORITY \ + --conditions '[{"Field":"host-header","Values":["admin.pythonide-classroom.tech"]}]' \ + --actions '[{"Type":"forward","TargetGroupArn":"${{ steps.admin-tg.outputs.tg_arn }}"}]' \ + --region $AWS_REGION + + echo "Created ALB rule with priority $NEW_PRIORITY" + else + echo "ALB rule for admin subdomain already exists" + fi + + - name: Fill in Admin ECS task definition + id: admin-task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1 + with: + task-definition: ${{ env.ECS_TASK_DEFINITION_ADMIN }} + container-name: pythonide-admin + image: ${{ steps.build-admin-image.outputs.admin_image }} + + - name: Deploy Admin Panel ECS Service + run: | + # Check if service exists + SERVICE_STATUS=$(aws ecs describe-services --cluster $ECS_CLUSTER --services $ECS_SERVICE_ADMIN \ + --query 'services[0].status' --output text --region $AWS_REGION 2>/dev/null) || SERVICE_STATUS="MISSING" + + # Register task definition first + TASK_DEF_ARN=$(aws ecs register-task-definition \ + --cli-input-json file://${{ steps.admin-task-def.outputs.task-definition }} \ + --query 'taskDefinition.taskDefinitionArn' --output text --region $AWS_REGION) + + echo "Registered task definition: $TASK_DEF_ARN" + + if [ "$SERVICE_STATUS" = "ACTIVE" ]; then + echo "Updating existing Admin service..." + aws ecs update-service \ + --cluster $ECS_CLUSTER \ + --service $ECS_SERVICE_ADMIN \ + --task-definition $TASK_DEF_ARN \ + --force-new-deployment \ + --region $AWS_REGION else - echo "✅ Exam IDE auto-scaling already configured" + echo "Creating new Admin ECS service..." + + # Get subnets as JSON array + SUBNETS_JSON=$(echo "${{ steps.admin-infra.outputs.subnets }}" | sed 's/,/","/g' | sed 's/^/"/' | sed 's/$/"/') + + aws ecs create-service \ + --cluster $ECS_CLUSTER \ + --service-name $ECS_SERVICE_ADMIN \ + --task-definition $TASK_DEF_ARN \ + --desired-count 1 \ + --launch-type FARGATE \ + --network-configuration "awsvpcConfiguration={subnets=[$SUBNETS_JSON],securityGroups=[${{ steps.admin-infra.outputs.security_group }}],assignPublicIp=ENABLED}" \ + --load-balancers "targetGroupArn=${{ steps.admin-tg.outputs.tg_arn }},containerName=pythonide-admin,containerPort=8080" \ + --region $AWS_REGION + fi + + echo "Waiting for Admin service to stabilize..." + aws ecs wait services-stable \ + --cluster $ECS_CLUSTER \ + --services $ECS_SERVICE_ADMIN \ + --region $AWS_REGION + + echo "Admin Panel deployment complete" + + - name: Configure Route 53 DNS for Admin + run: | + # Get the ALB DNS name + ALB_DNS=$(aws elbv2 describe-load-balancers \ + --load-balancer-arns ${{ steps.admin-infra.outputs.alb_arn }} \ + --query 'LoadBalancers[0].DNSName' --output text --region $AWS_REGION) + + ALB_ZONE_ID=$(aws elbv2 describe-load-balancers \ + --load-balancer-arns ${{ steps.admin-infra.outputs.alb_arn }} \ + --query 'LoadBalancers[0].CanonicalHostedZoneId' --output text --region $AWS_REGION) + + echo "ALB DNS: $ALB_DNS" + echo "ALB Zone ID: $ALB_ZONE_ID" + + # Get hosted zone for pythonide-classroom.tech + HOSTED_ZONE_ID=$(aws route53 list-hosted-zones-by-name \ + --dns-name "pythonide-classroom.tech" \ + --query 'HostedZones[0].Id' --output text | sed 's/\/hostedzone\///') + + if [ -z "$HOSTED_ZONE_ID" ] || [ "$HOSTED_ZONE_ID" = "None" ]; then + echo "Warning: Could not find hosted zone for pythonide-classroom.tech" + echo "You may need to manually create the DNS record" + exit 0 + fi + + echo "Hosted Zone ID: $HOSTED_ZONE_ID" + + # Check if record already exists + EXISTING_RECORD=$(aws route53 list-resource-record-sets \ + --hosted-zone-id $HOSTED_ZONE_ID \ + --query "ResourceRecordSets[?Name=='admin.pythonide-classroom.tech.']" \ + --output text) || EXISTING_RECORD="" + + if [ -z "$EXISTING_RECORD" ]; then + echo "Creating Route 53 record for admin.pythonide-classroom.tech..." + + aws route53 change-resource-record-sets \ + --hosted-zone-id $HOSTED_ZONE_ID \ + --change-batch '{ + "Changes": [{ + "Action": "UPSERT", + "ResourceRecordSet": { + "Name": "admin.pythonide-classroom.tech", + "Type": "A", + "AliasTarget": { + "HostedZoneId": "'"$ALB_ZONE_ID"'", + "DNSName": "'"$ALB_DNS"'", + "EvaluateTargetHealth": true + } + } + }] + }' + + echo "DNS record created successfully" + else + echo "DNS record for admin.pythonide-classroom.tech already exists" fi # ==================== VERIFICATION ==================== - - name: Verify Both Deployments + - name: Verify All Deployments run: | - echo "🔍 Verifying deployments..." + echo "Verifying deployments..." echo "" - echo "📊 MAIN IDE Status:" + echo "MAIN IDE Status:" aws ecs describe-services \ --cluster ${{ env.ECS_CLUSTER }} \ --services ${{ env.ECS_SERVICE_MAIN }} \ @@ -200,7 +447,7 @@ jobs: --output table echo "" - echo "📊 EXAM IDE Status:" + echo "EXAM IDE Status:" aws ecs describe-services \ --cluster ${{ env.ECS_CLUSTER }} \ --services ${{ env.ECS_SERVICE_EXAM }} \ @@ -208,18 +455,33 @@ jobs: --query 'services[0].{Service:serviceName,Status:status,Running:runningCount,Desired:desiredCount}' \ --output table + echo "" + echo "ADMIN PANEL Status:" + aws ecs describe-services \ + --cluster ${{ env.ECS_CLUSTER }} \ + --services ${{ env.ECS_SERVICE_ADMIN }} \ + --region ${{ env.AWS_REGION }} \ + --query 'services[0].{Service:serviceName,Status:status,Running:runningCount,Desired:desiredCount}' \ + --output table + - name: Post-Deployment Summary run: | echo "" - echo "🎉 DEPLOYMENT SUMMARY" - echo "=====================" - echo "✅ Docker image built and pushed to ECR" - echo "✅ Main IDE (pythonide-service) deployed" - echo "✅ Exam IDE (pythonide-exam-task-service) deployed" - echo "✅ Auto-scaling verified for both services" + echo "DEPLOYMENT SUMMARY" + echo "==================" + echo "Docker images built and pushed to ECR" + echo " - Main IDE (pythonide-backend)" + echo " - Exam IDE (pythonide-exam)" + echo " - Admin Panel (pythonide-admin)" + echo "" + echo "ECS Services deployed:" + echo " - Main IDE (pythonide-service)" + echo " - Exam IDE (pythonide-exam-task-service)" + echo " - Admin Panel (pythonide-admin-service)" echo "" - echo "🔗 Services:" - echo " • Main IDE: http://pythonide-classroom.tech/editor" - echo " • Exam IDE: http://exam.pythonide-classroom.tech/editor" + echo "Services:" + echo " Main IDE: https://pythonide-classroom.tech" + echo " Exam IDE: https://exam.pythonide-classroom.tech" + echo " Admin Panel: https://admin.pythonide-classroom.tech" echo "" - echo "📈 Both services now running the same codebase (commit: ${{ github.sha }})" + echo "All services now running commit: ${{ github.sha }}" diff --git a/Dockerfile.admin b/Dockerfile.admin new file mode 100644 index 00000000..5cc42dca --- /dev/null +++ b/Dockerfile.admin @@ -0,0 +1,69 @@ +# Dockerfile for Admin Panel +# Build: docker build -f Dockerfile.admin -t pythonide-admin . + +# Stage 1: Frontend build (Admin Panel) +FROM node:18-alpine AS frontend-builder + +WORKDIR /app + +# Copy frontend package files +COPY package*.json ./ + +# Install dependencies +RUN npm ci + +# Copy frontend source (including admin) +COPY src/ ./src/ +COPY public/ ./public/ +COPY vue.config.js ./ +COPY babel.config.js ./ + +# Build ADMIN frontend (not main IDE) +ENV BUILD_TARGET=admin +RUN npm run build:admin + +# Stage 2: Python runtime +FROM python:3.11-slim + +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + gcc \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Copy and install Python dependencies +COPY server/requirements.txt ./server/ +RUN pip install --no-cache-dir -r server/requirements.txt + +# Copy server code +COPY server/ ./server/ + +# Copy deployment scripts +COPY deployment/ ./deployment/ + +# Copy built ADMIN frontend from previous stage +COPY --from=frontend-builder /app/dist/ ./dist/ + +# Create mount points +RUN mkdir -p /tmp/pythonide-data/ide /mnt/efs/pythonide-data/ide /app/server/projects/ide + +# Set environment variables +ENV PORT=8080 +ENV PYTHONUNBUFFERED=1 +ENV PYTHONPATH=/app +ENV IDE_DATA_PATH=/app/server/projects +ENV IS_ADMIN_MODE=true +ENV MPLBACKEND=Agg + +EXPOSE 8080 + +# Health check +HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \ + CMD curl -f http://localhost:8080/health || exit 1 + +WORKDIR /app/server + +# Start the server (admin mode) +CMD ["sh", "-c", "echo 'Starting Admin Panel...' && python server.py"] diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 00000000..f542b5c5 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + CS3 IDE + + + +
+ + + diff --git a/dist/static/css/104.9b41b9ec.css b/dist/static/css/104.9b41b9ec.css deleted file mode 100644 index d838d5ad..00000000 --- a/dist/static/css/104.9b41b9ec.css +++ /dev/null @@ -1 +0,0 @@ -.top-menu-container[data-v-65b193b3]{width:100%;height:50px;background:var(--header-bg,#313131);display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border-color,#252525);position:relative}.nav-menu[data-v-65b193b3]{flex:0 0 auto}.nav__items-left[data-v-65b193b3]{display:flex;list-style:none;margin:0;padding:0;gap:4px}.nav__item[data-v-65b193b3]{position:relative}.nav__item-button[data-v-65b193b3]{background:transparent;border:none;color:var(--text-primary,#b5b5b5);padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border-radius:4px;transition:background .2s}.nav__item-button[data-v-65b193b3]:hover{background:hsla(0,0%,100%,.1)}.nav__item-header[data-v-65b193b3]{font-weight:400}.nav__item-triangle[data-v-65b193b3]{opacity:.6;width:9px;height:6px}.nav__dropdown[data-v-65b193b3]{position:absolute;top:calc(100% + 2px);left:0;background:var(--bg-secondary,#252526);border:1px solid var(--border-color,#464647);border-radius:4px;min-width:220px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:1000;padding:4px 0;list-style:none;margin:0}.nav__dropdown-item[data-v-65b193b3]{padding:0;margin:0}.nav__dropdown-item a[data-v-65b193b3],.nav__dropdown-item button[data-v-65b193b3]{width:100%;padding:8px 16px;background:transparent;border:none;color:var(--text-primary,#ccc);font-size:13px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.nav__dropdown-item a[data-v-65b193b3]:hover,.nav__dropdown-item button[data-v-65b193b3]:hover{background:var(--hover-bg,#094771)}.nav__dropdown-item--disabled button[data-v-65b193b3]{color:var(--text-tertiary,#666);cursor:not-allowed;opacity:.5}.nav__dropdown-item--disabled button[data-v-65b193b3]:hover{background:transparent}.nav__dropdown-item button[data-v-65b193b3]:disabled{color:var(--text-tertiary,#666);cursor:not-allowed;opacity:.5}.nav__dropdown-item button[data-v-65b193b3]:disabled:hover{background:transparent}.nav__dropdown-item .delete-option[data-v-65b193b3]{color:#f44747}.nav__dropdown-item .delete-option[data-v-65b193b3]:hover:not(:disabled){background:rgba(244,71,71,.2)}.nav__keyboard-shortcut[data-v-65b193b3]{font-size:11px;opacity:.6;margin-left:24px;font-family:monospace}.header-center-absolute[data-v-65b193b3]{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px}.header-right[data-v-65b193b3]{display:flex;align-items:center;gap:12px;margin-left:auto}.settings-btn[data-v-65b193b3]{margin-right:12px}.run-btn[data-v-65b193b3]{background:var(--accent-color,#28a745);color:#fff}.run-btn[data-v-65b193b3]:hover{background:var(--accent-hover,#218838)}.stop-btn[data-v-65b193b3]{background:var(--danger-color,#dc3545);color:#fff}.stop-btn[data-v-65b193b3]:hover{background:var(--danger-hover,#c82333)}.icon-btn[data-v-65b193b3]{padding:8px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;border-radius:6px;color:var(--text-primary,#ccc)}.icon-btn[data-v-65b193b3]:hover{background:hsla(0,0%,100%,.1);transform:translateY(-1px)}.icon-btn[data-v-65b193b3]:active{transform:translateY(0)}[data-theme=light] .top-menu-container[data-v-65b193b3]{background:#f3f3f3;border-bottom-color:#e0e0e0}[data-theme=light] .icon-btn[data-v-65b193b3],[data-theme=light] .nav__item-button[data-v-65b193b3]{color:#333}[data-theme=light] .icon-btn[data-v-65b193b3]:hover,[data-theme=light] .nav__item-button[data-v-65b193b3]:hover{background:rgba(0,0,0,.08)}[data-theme=light] .nav__dropdown[data-v-65b193b3]{background:#fff;border-color:#e0e0e0;box-shadow:0 4px 12px rgba(0,0,0,.1)}[data-theme=light] .nav__dropdown-item a[data-v-65b193b3],[data-theme=light] .nav__dropdown-item button[data-v-65b193b3]{color:#333}[data-theme=light] .nav__dropdown-item a[data-v-65b193b3]:hover,[data-theme=light] .nav__dropdown-item button[data-v-65b193b3]:hover{background:#e8e8e8}[data-theme=light] .run-btn[data-v-65b193b3]{background:#28a745;color:#fff;border:1px solid #239a3b}[data-theme=light] .run-btn[data-v-65b193b3]:hover{background:#239a3b;box-shadow:0 2px 4px rgba(40,167,69,.2);transform:translateY(-1px)}[data-theme=light] .stop-btn[data-v-65b193b3]{background:#dc3545;color:#fff;border:1px solid #c82333}[data-theme=light] .stop-btn[data-v-65b193b3]:hover{background:#c82333;box-shadow:0 2px 4px rgba(220,53,69,.2);transform:translateY(-1px)}.splitpanes{height:100%;width:100%;position:relative}.splitpanes__pane{overflow-y:auto;overflow-x:hidden;position:relative}.splitpanes.default-theme .splitpanes__splitter{background-color:var(--border-primary,#3c3c3c);position:relative;transition:background-color .15s ease;z-index:50;will-change:background-color;transform:translateZ(0);backface-visibility:hidden}.splitpanes.default-theme .splitpanes__splitter:hover{background-color:var(--accent-color,#007acc)}.splitpanes.default-theme .splitpanes__splitter.splitpanes__splitter__active{background-color:var(--accent-color,#007acc);z-index:100}.splitpanes--horizontal>.splitpanes__splitter{height:5px;cursor:ns-resize;margin:0}.splitpanes--horizontal>.splitpanes__splitter:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:2px;background:var(--text-secondary,#858585);border-radius:1px;opacity:0;transition:opacity .15s ease}.splitpanes--horizontal>.splitpanes__splitter.splitpanes__splitter__active:before,.splitpanes--horizontal>.splitpanes__splitter:hover:before{opacity:1}.splitpanes--vertical>.splitpanes__splitter{width:5px;cursor:col-resize;margin:0}.splitpanes--vertical>.splitpanes__splitter:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2px;height:30px;background:var(--text-secondary,#858585);border-radius:1px;opacity:.6;transition:opacity .15s ease}.splitpanes--vertical>.splitpanes__splitter.splitpanes__splitter__active:before,.splitpanes--vertical>.splitpanes__splitter:hover:before{opacity:1}.splitpanes--dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{transition:none}.splitpanes--dragging .splitpanes__pane{transition:none!important}[data-theme=dark] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--border-primary,#3c3c3c)}[data-theme=dark] .splitpanes.default-theme .splitpanes__splitter:hover{background-color:var(--accent-color,#007acc)}[data-theme=light] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--border-primary,#e1e1e1)}[data-theme=light] .splitpanes.default-theme .splitpanes__splitter:hover{background-color:var(--accent-color,#0078d4)}[data-theme=contrast] .splitpanes.default-theme .splitpanes__splitter{background-color:var(--border-primary,#fff)}[data-theme=contrast] .splitpanes.default-theme .splitpanes__splitter:hover{background-color:var(--accent-color,#ff0)}.splitpanes .splitpanes{overflow:visible}#total-frame .splitpanes{height:calc(100% - 5px);position:relative}.left-sidebar{height:100%;overflow-y:auto;background:var(--bg-primary,#1e1e1e)}.editor-section{background:var(--bg-primary,#1e1e1e)}.console-section,.editor-section{height:100%;display:flex;flex-direction:column}.console-section,.right-sidebar{background:var(--bg-secondary,#252526)}.right-sidebar{height:100%;overflow-y:auto}@media (max-width:768px){.splitpanes--vertical>.splitpanes__splitter{width:10px}.splitpanes--horizontal>.splitpanes__splitter{height:10px}}.splitpanes.default-theme .splitpanes__splitter[data-v-7a42f12e]{background-color:var(--border-primary,#3c3c3c);transition:background-color .15s ease}.splitpanes.default-theme .splitpanes__splitter[data-v-7a42f12e]:hover{background-color:var(--accent-color,#007acc)}.splitpanes--horizontal>.splitpanes__splitter[data-v-7a42f12e]{height:5px;cursor:ns-resize}.splitpanes--vertical>.splitpanes__splitter[data-v-7a42f12e]{width:5px;cursor:col-resize}#total-frame[data-v-7a42f12e]{height:calc(100vh - 40px)}#total-frame .splitpanes[data-v-7a42f12e]{height:100%}.console-section[data-v-7a42f12e],.editor-section[data-v-7a42f12e],.left-sidebar[data-v-7a42f12e],.right-sidebar[data-v-7a42f12e]{height:100%;overflow:auto} \ No newline at end of file diff --git a/dist/static/css/376.d425c56e.css b/dist/static/css/376.d425c56e.css deleted file mode 100644 index e3c68c70..00000000 --- a/dist/static/css/376.d425c56e.css +++ /dev/null @@ -1 +0,0 @@ -.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane,:has(.splitpanes--dragging){-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out;will-change:width}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out;will-change:height}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.default-theme.splitpanes .splitpanes__splitter:after,.default-theme.splitpanes .splitpanes__splitter:before{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.default-theme.splitpanes .splitpanes__splitter:hover:after,.default-theme.splitpanes .splitpanes__splitter:hover:before{background-color:#00000040}.default-theme.splitpanes .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{transform:translateY(-50%);width:1px;height:30px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{transform:translate(-50%);width:30px;height:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}.test-container[data-v-677a756e]{padding:20px}.splitpanes.default-theme .splitpanes__splitter[data-v-677a756e]{background-color:#ccc;position:relative;transition:background-color .2s}.splitpanes.default-theme .splitpanes__splitter[data-v-677a756e]:hover{background-color:#999}.splitpanes.default-theme .splitpanes__splitter.splitpanes__splitter__active[data-v-677a756e]{background-color:#007acc}.splitpanes--horizontal>.splitpanes__splitter[data-v-677a756e]{height:5px;cursor:ns-resize} \ No newline at end of file diff --git a/dist/static/css/400.9fb7b61e.css b/dist/static/css/400.9fb7b61e.css new file mode 100644 index 00000000..71ee0e5d --- /dev/null +++ b/dist/static/css/400.9fb7b61e.css @@ -0,0 +1 @@ +.coming-soon[data-v-7551a645]{text-align:center;padding:80px 24px}.coming-soon .icon[data-v-7551a645]{font-size:64px}.coming-soon h3[data-v-7551a645]{margin:24px 0 12px;color:var(--admin-text-white)}.coming-soon p[data-v-7551a645]{color:var(--admin-text-secondary)} \ No newline at end of file diff --git a/dist/static/css/404.7b84b1b7.css b/dist/static/css/404.7b84b1b7.css new file mode 100644 index 00000000..9fe2403d --- /dev/null +++ b/dist/static/css/404.7b84b1b7.css @@ -0,0 +1 @@ +.user-detail-page[data-v-38b204d5]{max-width:800px}.page-header[data-v-38b204d5]{margin-bottom:24px}.back-link[data-v-38b204d5]{color:var(--admin-text-secondary);text-decoration:none;font-size:14px}.back-link[data-v-38b204d5]:hover{color:var(--admin-primary)}.page-header h2[data-v-38b204d5]{margin:8px 0 0 0;color:var(--admin-text-white)}.loading-state[data-v-38b204d5]{text-align:center;padding:48px}.profile-grid[data-v-38b204d5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.profile-item[data-v-38b204d5]{display:flex;flex-direction:column}.profile-item label[data-v-38b204d5]{font-size:12px;color:var(--admin-text-muted);text-transform:uppercase;margin-bottom:4px}.profile-item span[data-v-38b204d5]{font-size:16px;color:var(--admin-text-primary)}.actions-grid[data-v-38b204d5]{display:flex;flex-wrap:wrap;gap:12px}.badge[data-v-38b204d5]{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-transform:capitalize}.badge-success[data-v-38b204d5]{background-color:rgba(40,167,69,.2);color:var(--admin-success)}.badge-info[data-v-38b204d5]{background-color:rgba(0,120,212,.2);color:var(--admin-primary)}.badge-danger[data-v-38b204d5]{background-color:rgba(220,53,69,.2);color:var(--admin-danger)} \ No newline at end of file diff --git a/dist/static/css/408.496ddb71.css b/dist/static/css/408.496ddb71.css new file mode 100644 index 00000000..82ca0b45 --- /dev/null +++ b/dist/static/css/408.496ddb71.css @@ -0,0 +1 @@ +.coming-soon[data-v-458473c8]{text-align:center;padding:80px 24px}.coming-soon .icon[data-v-458473c8]{font-size:64px}.coming-soon h3[data-v-458473c8]{margin:24px 0 12px;color:var(--admin-text-white)}.coming-soon p[data-v-458473c8]{color:var(--admin-text-secondary)} \ No newline at end of file diff --git a/dist/static/css/45.696f4be4.css b/dist/static/css/45.696f4be4.css deleted file mode 100644 index 099f3830..00000000 --- a/dist/static/css/45.696f4be4.css +++ /dev/null @@ -1 +0,0 @@ -.admin-password-manager[data-v-04c2a148]{max-width:1200px;margin:0 auto;padding:20px;min-height:100vh;overflow-y:auto}.admin-header[data-v-04c2a148]{text-align:center;margin-bottom:30px}.admin-header h1[data-v-04c2a148]{color:#409eff;margin-bottom:5px}.admin-subtitle[data-v-04c2a148]{color:#909399;font-size:14px}.admin-login[data-v-04c2a148]{max-width:400px;margin:0 auto;position:relative;z-index:1}.admin-login .el-card[data-v-04c2a148]{position:relative;z-index:2;pointer-events:auto}.admin-login .el-form-item[data-v-04c2a148],.admin-login .el-input[data-v-04c2a148]{pointer-events:auto}.admin-login .el-button[data-v-04c2a148]{pointer-events:auto;cursor:pointer}.action-buttons[data-v-04c2a148]{margin-bottom:20px;display:flex;gap:10px;flex-wrap:wrap}.users-section[data-v-04c2a148]{margin-bottom:20px}.users-section .el-card[data-v-04c2a148]{overflow:visible}.users-section .el-table[data-v-04c2a148]{border-radius:4px}.users-section .el-table__body-wrapper[data-v-04c2a148]{overflow-y:auto!important}.users-section .el-table__header-wrapper[data-v-04c2a148]{position:sticky;top:0;z-index:10;background:#fff}.pagination-container[data-v-04c2a148]{margin-top:20px;display:flex;justify-content:center}.generated-password[data-v-04c2a148]{margin-bottom:20px}.password-display[data-v-04c2a148]{display:flex;align-items:center;font-family:Courier New,monospace;font-size:16px}.reset-result[data-v-04c2a148]{margin-bottom:20px}.reset-result code[data-v-04c2a148]{background-color:#f5f5f5;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:14px}.success-note[data-v-04c2a148]{color:#67c23a;font-weight:700;margin-top:10px}.never-logged-in[data-v-04c2a148]{color:#909399;font-style:italic}.dialog-footer[data-v-04c2a148]{display:flex;justify-content:flex-end;gap:10px}.admin-panel .el-message-box[data-v-04c2a148],.admin-password-manager .admin-panel[data-v-04c2a148] .el-message-box,body .admin-panel[data-v-04c2a148] .el-message-box{background-color:#fff!important;background:#fff!important;border:1px solid #dcdfe6!important;border-radius:8px!important;box-shadow:0 8px 32px rgba(0,0,0,.4)!important;z-index:3000!important;opacity:1!important;visibility:visible!important;display:block!important;position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;min-width:420px!important;max-width:90vw!important}.admin-password-manager .admin-panel[data-v-04c2a148] .el-message-box{--bg-primary:#fff!important;--border-color:#dcdfe6!important}.admin-password-manager.admin-password-manager .admin-panel[data-v-04c2a148] .el-message-box.el-message-box.el-message-box{background-color:#fff!important;background:#fff!important}.admin-password-manager .admin-panel[data-v-04c2a148] .el-message-box{background:#fff!important;background-color:#fff!important;background-image:none!important}.admin-password-manager[data-v-04c2a148]{--bg-primary:#fff;--border-color:#dcdfe6}.admin-panel[data-v-04c2a148] .el-message-box__header{background-color:#fff!important;border-bottom:1px solid #ebeef5!important;padding:15px 15px 10px!important}.admin-panel[data-v-04c2a148] .el-message-box__title{color:#303133!important;font-size:16px!important;font-weight:500!important}.admin-panel[data-v-04c2a148] .el-message-box__content{background-color:#fff!important;padding:10px 15px!important;color:#606266!important}.admin-panel[data-v-04c2a148] .el-message-box__btns{background-color:#fff!important;padding:5px 15px 15px!important;text-align:right!important}.admin-panel[data-v-04c2a148] .el-message-box__btns .el-button{margin-left:10px!important}.admin-panel[data-v-04c2a148] .el-message-box__btns .el-button--primary{background-color:#409eff!important;border-color:#409eff!important;color:#fff!important}.admin-panel[data-v-04c2a148] .el-message-box__btns .el-button--primary:hover{background-color:#66b1ff!important;border-color:#66b1ff!important}[data-v-04c2a148] .el-overlay.is-message-box{background-color:rgba(0,0,0,.5)!important;z-index:2999!important;position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important}[data-v-04c2a148] .el-overlay-message-box{z-index:2999!important;opacity:1!important;visibility:visible!important}.admin-panel[data-v-04c2a148] .el-message-box-icon--warning{color:#e6a23c!important}.admin-panel[data-v-04c2a148] .el-message-box,.admin-panel[data-v-04c2a148] .el-message-box *{opacity:1!important;visibility:visible!important}.admin-panel[data-v-04c2a148] .el-message-box{background:#fff!important;opacity:1!important}.admin-panel [role=dialog][data-v-04c2a148]{background-color:#fff!important;opacity:1!important;visibility:visible!important}@media (max-width:768px){.admin-password-manager[data-v-04c2a148]{padding:10px}.action-buttons[data-v-04c2a148]{flex-direction:column}.action-buttons .el-button[data-v-04c2a148]{width:100%}[data-v-04c2a148] .el-message-box{width:90%!important;max-width:420px!important}} \ No newline at end of file diff --git a/dist/static/css/456.4fbf6e3d.css b/dist/static/css/456.4fbf6e3d.css deleted file mode 100644 index f913519e..00000000 --- a/dist/static/css/456.4fbf6e3d.css +++ /dev/null @@ -1 +0,0 @@ -.python-repl[data-v-4691abe7]{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#d4d4d4;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px}.repl-output[data-v-4691abe7]{flex:1;overflow-y:auto;padding:10px;background:#1e1e1e}.repl-line[data-v-4691abe7]{margin:2px 0}.welcome-text[data-v-4691abe7]{color:#4ec9b0;font-style:italic;margin:0}.output-text[data-v-4691abe7]{color:#d4d4d4;margin:0;white-space:pre-wrap;word-wrap:break-word}.input-line[data-v-4691abe7]{display:flex;align-items:flex-start}.prompt[data-v-4691abe7]{color:#569cd6;font-weight:700;margin-right:8px}.user-input[data-v-4691abe7]{color:#ce9178;white-space:pre-wrap;word-wrap:break-word}.error-text[data-v-4691abe7]{color:#f48771;margin:0;white-space:pre-wrap}.system-text[data-v-4691abe7]{color:#9cdcfe;font-style:italic;margin:0}.repl-input-area[data-v-4691abe7]{border-top:1px solid #3e3e42;background:#252526;padding:10px}.input-line-container[data-v-4691abe7]{display:flex;align-items:flex-start;gap:8px}.repl-prompt[data-v-4691abe7]{color:#569cd6;font-weight:700;padding-top:5px}.repl-input-field[data-v-4691abe7]{flex:1;background:#1e1e1e;border:1px solid #3e3e42;color:#d4d4d4;padding:5px 8px;border-radius:4px;font-family:inherit;font-size:14px;outline:none;resize:none;min-height:28px}.repl-input-field[data-v-4691abe7]:focus{border-color:#007acc}.repl-hints[data-v-4691abe7]{margin-top:5px;font-size:11px;color:#858585}.hint[data-v-4691abe7]{margin-right:15px}.repl-controls[data-v-4691abe7]{display:flex;gap:10px;padding:10px;background:#2d2d30;border-top:1px solid #3e3e42}.control-btn[data-v-4691abe7]{padding:6px 12px;border:1px solid #3e3e42;background:#383838;color:#d4d4d4;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.control-btn[data-v-4691abe7]:hover{background:#484848;border-color:#007acc}.control-btn.start[data-v-4691abe7]{background:#0e639c;border-color:#007acc}.control-btn.start[data-v-4691abe7]:hover{background:#17b}.control-btn.stop[data-v-4691abe7]{background:#a1260d;border-color:#f48771}.control-btn.stop[data-v-4691abe7]:hover{background:#c42b1c}.repl-output[data-v-4691abe7]::-webkit-scrollbar{width:8px}.repl-output[data-v-4691abe7]::-webkit-scrollbar-track{background:#1e1e1e}.repl-output[data-v-4691abe7]::-webkit-scrollbar-thumb{background:#424242;border-radius:4px}.repl-output[data-v-4691abe7]::-webkit-scrollbar-thumb:hover{background:#4e4e4e}.dialog-cover[data-v-8ec5509e]{background:#000;opacity:.5;position:fixed;z-index:100;top:0;left:0;width:100%;height:100%}.upload-dialog[data-v-8ec5509e]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#2a2a2a);color:var(--text-primary,#fff);border:1px solid var(--border-color,#444);border-radius:8px;width:600px;max-width:90vw;max-height:80vh;z-index:101;display:flex;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.3)}.dialog-header[data-v-8ec5509e]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#444)}.dialog-header h3[data-v-8ec5509e]{margin:0;font-size:18px;font-weight:500}.close-btn[data-v-8ec5509e]{cursor:pointer;padding:4px;border-radius:4px;transition:background .2s}.close-btn[data-v-8ec5509e]:hover{background:hsla(0,0%,100%,.1)}.dialog-body[data-v-8ec5509e]{padding:20px;overflow-y:auto;flex:1}.directory-section[data-v-8ec5509e],.preview-section[data-v-8ec5509e],.upload-section[data-v-8ec5509e]{margin-bottom:20px}label[data-v-8ec5509e]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-secondary,#ccc)}.directory-nav[data-v-8ec5509e]{border:1px solid var(--border-color,#444);border-radius:4px;overflow:hidden}.current-path[data-v-8ec5509e]{display:flex;align-items:center;gap:8px;padding:10px;background:hsla(0,0%,100%,.05);border-bottom:1px solid var(--border-color,#444);font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .2s}.current-path[data-v-8ec5509e]:hover{background:hsla(0,0%,100%,.08)}.current-path .chevron[data-v-8ec5509e]{margin-left:auto}.directory-tree[data-v-8ec5509e]{max-height:200px;overflow-y:auto;overflow-x:hidden;background:rgba(0,0,0,.2)}.directory-tree[data-v-8ec5509e]::-webkit-scrollbar{width:8px}.directory-tree[data-v-8ec5509e]::-webkit-scrollbar-track{background:hsla(0,0%,100%,.05)}.directory-tree[data-v-8ec5509e]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:4px}.directory-tree[data-v-8ec5509e]::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.directory-item[data-v-8ec5509e]{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;font-size:13px;transition:background .2s;white-space:nowrap;min-height:32px}.directory-item[data-v-8ec5509e]:hover{background:hsla(0,0%,100%,.05)}.directory-item.selected[data-v-8ec5509e]{background:rgba(64,158,255,.2);color:#409eff}.directory-item.root-item[data-v-8ec5509e]{font-weight:500;border-bottom:1px solid hsla(0,0%,100%,.1)}.file-input-wrapper[data-v-8ec5509e]{position:relative}.file-input[data-v-8ec5509e]{display:none}.file-input-display[data-v-8ec5509e]{display:flex;align-items:center;gap:10px;padding:12px;border:2px dashed var(--border-color,#444);border-radius:4px;cursor:pointer;transition:all .2s;background:hsla(0,0%,100%,.02)}.file-input-display[data-v-8ec5509e]:hover{border-color:#409eff;background:rgba(64,158,255,.1)}.file-types-hint[data-v-8ec5509e]{margin-top:8px;font-size:12px;color:var(--text-secondary,#999)}.file-preview[data-v-8ec5509e]{border:1px solid var(--border-color,#444);border-radius:4px;padding:12px;background:hsla(0,0%,100%,.02)}.file-info[data-v-8ec5509e]{display:flex;align-items:center;gap:12px}.file-name[data-v-8ec5509e]{font-size:14px;font-weight:500}.file-size[data-v-8ec5509e]{font-size:12px;color:var(--text-secondary,#999);margin-top:4px}.dialog-footer[data-v-8ec5509e]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color,#444)}.btn-cancel[data-v-8ec5509e],.btn-upload[data-v-8ec5509e]{padding:8px 20px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.btn-cancel[data-v-8ec5509e]{background:transparent;color:var(--text-primary,#fff);border:1px solid var(--border-color,#444)}.btn-cancel[data-v-8ec5509e]:hover{background:hsla(0,0%,100%,.1)}.btn-upload[data-v-8ec5509e]{background:#409eff;color:#fff}.btn-upload[data-v-8ec5509e]:hover:not(:disabled){background:#66b1ff}.btn-upload[data-v-8ec5509e]:disabled{opacity:.5;cursor:not-allowed}[data-theme=light] .upload-dialog[data-v-8ec5509e]{background:#fff;color:#333}[data-theme=light] .dialog-footer[data-v-8ec5509e],[data-theme=light] .dialog-header[data-v-8ec5509e],[data-theme=light] .directory-nav[data-v-8ec5509e],[data-theme=light] .file-preview[data-v-8ec5509e]{border-color:#e0e0e0}[data-theme=light] .current-path[data-v-8ec5509e],[data-theme=light] .directory-item[data-v-8ec5509e]:hover,[data-theme=light] .file-input-display[data-v-8ec5509e]{background:#f5f5f5}[data-theme=light] .file-input-display[data-v-8ec5509e]{border-color:#d0d0d0}[data-theme=light] label[data-v-8ec5509e]{color:#666}[data-theme=light] .file-size[data-v-8ec5509e],[data-theme=light] .file-types-hint[data-v-8ec5509e]{color:#888}.top-title[data-v-1141e722]{position:absolute;left:130px;top:70px;text-align:center;font-family:Gotham-Medium;font-size:16px;color:#fff;letter-spacing:-1px}.dialog-content[data-v-1141e722]{width:356px;position:fixed;height:196px;top:20%;left:0;right:0;margin-left:auto;margin-right:auto;z-index:2000;background:#303030;overflow:hidden}.dialog-close[data-v-1141e722]:hover{color:#4fc08d}.dialog-add[data-v-1141e722]{width:100%;height:100px}.btn-cancel[data-v-1141e722]{background:#484848;color:#7b7b7b;cursor:pointer}.btn-cancel[data-v-1141e722],.btn-delete[data-v-1141e722]{width:178px;height:40px;text-align:center;font-family:Gotham-Book;font-size:14px;letter-spacing:-.88px;line-height:40px}.btn-delete[data-v-1141e722]{background:#e24d4a;color:#fff}.dialog-top[data-v-362a7aa0]{width:100%;height:40px;background:#3f4955}.dialog-top-title[data-v-362a7aa0]{position:absolute;left:24px;top:8px;font-family:Gotham-Medium;font-size:16px;color:#fff;letter-spacing:-1px}.dialog-content[data-v-362a7aa0]{width:356px;position:fixed;height:269px;top:20%;left:0;right:0;margin-left:auto;margin-right:auto;z-index:2000;background:#303030;overflow:hidden}.dialog-close[data-v-362a7aa0]:hover{color:#4fc08d}.dialog-input[data-v-362a7aa0]{width:288px;height:34px;top:113px;left:34px;padding-left:15px;color:#fff;background:#303030;border:0;outline:none;background-image:url(../../static/img/frame01.728c7f05.svg);background-position:50%;background-repeat:no-repeat;background-size:288px 34px}.dialog-error[data-v-362a7aa0]{left:35px;top:155px;width:288px;font-size:10px;color:red;font-family:Gotham-Book}.dialog-input-ext[data-v-362a7aa0]{width:252px;background-image:url(../../static/img/frame02.9f2fedc1.svg);background-position:50%;background-repeat:no-repeat;background-size:252px 34px}.dialog-select[data-v-362a7aa0]{top:113px;left:284px;width:46px;height:34px;font-family:Gotham-Book;font-size:12px;color:#fff;letter-spacing:-.75px;padding-left:5px;padding-top:10px;background-image:url(../../static/img/frame03_fileselection.9819a582.svg);background-position:50%;background-repeat:no-repeat}.dialog-select-origin[data-v-362a7aa0]{top:113px;left:284px}.dialog-select-bg[data-v-362a7aa0]{background-image:url(../../static/img/frame03_fileselection.9819a582.svg);background-position:50%;background-repeat:no-repeat;background-size:46px 34px}.dialog-select-size[data-v-362a7aa0]{background-size:46px 34px}.select-option[data-v-362a7aa0]{background:#ff0}.opacity0[data-v-362a7aa0]{opacity:0}.btn-create-opacity[data-v-362a7aa0]{opacity:.5}.dialog-add[data-v-362a7aa0]{width:100%;height:100px}.btn-cancel[data-v-362a7aa0]{background:#484848;color:#7b7b7b;cursor:pointer}.btn-cancel[data-v-362a7aa0],.btn-create[data-v-362a7aa0]{width:178px;height:40px;text-align:center;font-family:Gotham-Book;font-size:14px;letter-spacing:-.88px;line-height:40px}.btn-create[data-v-362a7aa0]{background:#52bf53;color:#fff}.dialog-top-title[data-v-5d059974]{position:absolute;left:24px;top:8px;font-family:Gotham-Medium;font-size:16px;color:#fff;letter-spacing:-1px}.dialog-content[data-v-5d059974]{width:580px;position:fixed;height:340px;top:20%;left:0;right:0;margin-left:auto;margin-right:auto;z-index:1999;background:#303030;overflow:hidden}.dialog-top[data-v-5d059974]{width:100%;height:40px;background:#3f4955}.dialog-table[data-v-5d059974]{width:600px;height:140px;overflow-y:scroll}.dialog-table-head[data-v-5d059974]{width:194px;height:66px;font-size:16px;color:#fff;letter-spacing:-1px;text-align:center;line-height:16px}.dialog-table td[data-v-5d059974]{width:194px;height:40px;font-size:12px;color:#fff;padding-left:50px;letter-spacing:-.38px;line-height:12px}.dialog-table tr[data-v-5d059974]:hover{background:hsla(0,0%,100%,.1)}.dialog-table tr:hover td[data-v-5d059974]{font-size:13px}.dialog-close[data-v-5d059974]{position:absolute;right:10px;top:10px;width:20px;height:20px;text-align:center;cursor:pointer;background-position:50%;background-image:url(../../static/img/icon_close.35f3407f.svg);background-size:10px 11px;background-repeat:no-repeat}.dialog-close[data-v-5d059974]:hover{color:#4fc08d}.dialog-add[data-v-5d059974]{width:100%;height:100px}.dialog-add-content[data-v-5d059974]{position:absolute;bottom:16px;left:0;right:0;margin:auto;width:496px;height:26px;font-family:Gotham-Book;text-align:center;line-height:10px;letter-spacing:-.5px;color:#fff;padding-top:8px;border:1px dashed #5c5c5c;cursor:pointer}.proj-icon-trash[data-v-5d059974]{margin-left:20px;width:30px;height:30px;background-image:url(../../static/img/btn_trash.ede23957.svg);background-size:8px 10px;background-repeat:no-repeat;background-position:50%;cursor:pointer}.proj-open[data-v-5d059974]{font-family:Gotham-Book;font-size:12px;color:#fff;letter-spacing:-.38px;line-height:26px;height:26px;margin-left:10px;cursor:pointer}.proj-selected[data-v-5d059974]{width:30px;height:30px;margin-left:10px;background-image:url(../../static/img/icon_select.c04db1ae.svg);background-size:16px 16px;background-repeat:no-repeat;background-position:50%}.csv-viewer-container[data-v-6a013383]{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-primary,#1e1e1e);color:var(--text-primary,#ccc);position:relative;overflow:hidden}.csv-controls[data-v-6a013383]{display:flex;justify-content:space-between;align-items:center;padding:10px;background:var(--bg-secondary,#252526);border-bottom:1px solid var(--border-color,#3e3e42);flex-shrink:0}.csv-info[data-v-6a013383]{font-size:14px;color:var(--text-secondary,#969696);display:flex;align-items:center;gap:12px}.large-file-warning[data-v-6a013383]{color:#f0ad4e;font-size:12px}.search-input[data-v-6a013383]{padding:6px 12px;background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#3e3e42);color:var(--text-primary,#ccc);border-radius:4px;width:250px}.search-input[data-v-6a013383]:focus{outline:none;border-color:#007acc}.csv-table-wrapper[data-v-6a013383]{flex:1;overflow:auto;position:relative;width:100%;min-height:0}.csv-table-wrapper[data-v-6a013383]::-webkit-scrollbar{width:12px;height:12px}.csv-table-wrapper[data-v-6a013383]::-webkit-scrollbar-track{background:var(--bg-secondary,#252526);border-radius:2px}.csv-table-wrapper[data-v-6a013383]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:2px}.csv-table-wrapper[data-v-6a013383]::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.csv-table-wrapper[data-v-6a013383]::-webkit-scrollbar-corner{background:var(--bg-secondary,#252526)}.csv-table[data-v-6a013383]{width:-moz-max-content;width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px;table-layout:auto;position:absolute;top:0;left:0}.csv-table thead[data-v-6a013383]{position:sticky;top:0;background:var(--bg-secondary,#252526);z-index:10}.csv-table th[data-v-6a013383]{padding:8px 12px;text-align:left;border-bottom:2px solid var(--border-color,#3e3e42);border-right:1px solid var(--border-color,#3e3e42);font-weight:600;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;min-width:150px;position:relative;height:32px;box-sizing:border-box}.csv-table th.sortable[data-v-6a013383]{cursor:pointer}.csv-table th.sortable[data-v-6a013383]:hover{background:hsla(0,0%,100%,.05)}.csv-table th[data-v-6a013383]:not(.sortable):not(.row-number-header){cursor:default}.row-number-header[data-v-6a013383]{width:50px;min-width:50px;text-align:center;background:var(--bg-tertiary,#2d2d30);position:sticky;left:0;z-index:11}.header-content[data-v-6a013383]{display:flex;align-items:center;justify-content:space-between;gap:8px}.sort-icon[data-v-6a013383]{font-size:10px;color:#007acc}.csv-table td[data-v-6a013383]{padding:6px 12px;border-bottom:1px solid hsla(0,0%,100%,.05);border-right:1px solid hsla(0,0%,100%,.05);min-width:150px;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:32px;box-sizing:border-box}.csv-table tbody tr[data-v-6a013383]:hover{background:hsla(0,0%,100%,.03)}.csv-table tbody tr[data-v-6a013383]:nth-child(2n){background:hsla(0,0%,100%,.02)}.row-number[data-v-6a013383]{width:50px;min-width:50px;text-align:center;background:var(--bg-tertiary,#2d2d30);color:var(--text-secondary,#969696);font-weight:500;position:sticky;left:0;z-index:1}.csv-cell[data-v-6a013383]{color:var(--text-primary,#ccc)}.no-data[data-v-6a013383]{padding:40px;text-align:center;color:var(--text-secondary,#969696)}.scroll-info[data-v-6a013383]{display:flex;align-items:center;justify-content:center;padding:8px;background:var(--bg-secondary,#252526);border-top:1px solid var(--border-color,#3e3e42);font-size:12px;color:var(--text-secondary,#969696);flex-shrink:0}[data-theme=light] .csv-viewer-container[data-v-6a013383]{background:#fff;color:#333}[data-theme=light] .csv-controls[data-v-6a013383],[data-theme=light] .csv-table thead[data-v-6a013383],[data-theme=light] .scroll-info[data-v-6a013383]{background:#f3f3f3}[data-theme=light] .search-input[data-v-6a013383]{background:#fff;border-color:#d4d4d4;color:#333}[data-theme=light] .csv-table th[data-v-6a013383]{border-color:#d4d4d4}[data-theme=light] .row-number-header[data-v-6a013383],[data-theme=light] .row-number[data-v-6a013383]{background:#f8f8f8}[data-theme=light] .csv-table tbody tr[data-v-6a013383]:hover{background:rgba(0,0,0,.03)}[data-theme=light] .csv-table tbody tr[data-v-6a013383]:nth-child(2n){background:rgba(0,0,0,.02)}[data-theme=light] .large-file-warning[data-v-6a013383]{color:#856404}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:transparent}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:transparent}.cm-fat-cursor{caret-color:transparent}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror-merge{position:relative;border:1px solid #ddd;white-space:pre}.CodeMirror-merge,.CodeMirror-merge .CodeMirror{height:350px}.CodeMirror-merge-2pane .CodeMirror-merge-pane{width:47%}.CodeMirror-merge-2pane .CodeMirror-merge-gap{width:6%}.CodeMirror-merge-3pane .CodeMirror-merge-pane{width:31%}.CodeMirror-merge-3pane .CodeMirror-merge-gap{width:3.5%}.CodeMirror-merge-pane{display:inline-block;white-space:normal;vertical-align:top}.CodeMirror-merge-pane-rightmost{position:absolute;right:0;z-index:1}.CodeMirror-merge-gap{z-index:2;display:inline-block;height:100%;box-sizing:border-box;overflow:hidden;border-left:1px solid #ddd;border-right:1px solid #ddd;position:relative;background:#f8f8f8}.CodeMirror-merge-scrolllock-wrap{position:absolute;bottom:0;left:50%}.CodeMirror-merge-scrolllock{position:relative;left:-50%;cursor:pointer;color:#555;line-height:1}.CodeMirror-merge-scrolllock:after{content:"\21db\00a0\00a0\21da"}.CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after{content:"\21db\21da"}.CodeMirror-merge-copybuttons-left,.CodeMirror-merge-copybuttons-right{position:absolute;left:0;top:0;right:0;bottom:0;line-height:1}.CodeMirror-merge-copy{z-index:3}.CodeMirror-merge-copy,.CodeMirror-merge-copy-reverse{position:absolute;cursor:pointer;color:#44c}.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy{left:2px}.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy{right:2px}.CodeMirror-merge-l-inserted,.CodeMirror-merge-r-inserted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);background-position:0 100%;background-repeat:repeat-x}.CodeMirror-merge-l-deleted,.CodeMirror-merge-r-deleted{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);background-position:0 100%;background-repeat:repeat-x}.CodeMirror-merge-r-chunk{background:#ffffe0}.CodeMirror-merge-r-chunk-start{border-top:1px solid #ee8}.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #ee8}.CodeMirror-merge-r-connect{fill:#ffffe0;stroke:#ee8;stroke-width:1px}.CodeMirror-merge-l-chunk{background:#eef}.CodeMirror-merge-l-chunk-start{border-top:1px solid #88e}.CodeMirror-merge-l-chunk-end{border-bottom:1px solid #88e}.CodeMirror-merge-l-connect{fill:#eef;stroke:#88e;stroke-width:1px}.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk{background:#dfd}.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start{border-top:1px solid #4e4}.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end{border-bottom:1px solid #4e4}.CodeMirror-merge-collapsed-widget:before{content:"(...)"}.CodeMirror-merge-collapsed-widget{cursor:pointer;color:#88b;background:#eef;border:1px solid #ddf;font-size:90%;padding:0 3px;border-radius:4px}.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt{display:none}.cm-s-darcula{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.cm-s-darcula.CodeMirror{background:#2b2b2b;color:#a9b7c6}.cm-s-darcula span.cm-meta{color:#bbb529}.cm-s-darcula span.cm-number{color:#6897bb}.cm-s-darcula span.cm-keyword{color:#cc7832;line-height:1em;font-weight:700}.cm-s-darcula span.cm-def{color:#a9b7c6;font-style:italic}.cm-s-darcula span.cm-variable,.cm-s-darcula span.cm-variable-2{color:#a9b7c6}.cm-s-darcula span.cm-variable-3{color:#9876aa}.cm-s-darcula span.cm-type{color:#abc;font-weight:700}.cm-s-darcula span.cm-property{color:#ffc66d}.cm-s-darcula span.cm-operator{color:#a9b7c6}.cm-s-darcula span.cm-string,.cm-s-darcula span.cm-string-2{color:#6a8759}.cm-s-darcula span.cm-comment{color:#61a151;font-style:italic}.cm-s-darcula span.cm-atom,.cm-s-darcula span.cm-link{color:#cc7832}.cm-s-darcula span.cm-error{color:#bc3f3c}.cm-s-darcula span.cm-tag{color:#629755;font-weight:700;font-style:italic;text-decoration:underline}.cm-s-darcula span.cm-attribute{color:#6897bb}.cm-s-darcula span.cm-qualifier{color:#6a8759}.cm-s-darcula span.cm-bracket{color:#a9b7c6}.cm-s-darcula span.cm-builtin,.cm-s-darcula span.cm-special{color:#ff9e59}.cm-s-darcula span.cm-matchhighlight{color:#fff;background-color:rgba(50,89,48,.7);font-weight:400}.cm-s-darcula span.cm-searching{color:#fff;background-color:rgba(61,115,59,.7);font-weight:400}.cm-s-darcula .CodeMirror-cursor{border-left:1px solid #a9b7c6}.cm-s-darcula .CodeMirror-activeline-background{background:#323232}.cm-s-darcula .CodeMirror-gutters{background:#313335;border-right:1px solid #313335}.cm-s-darcula .CodeMirror-guttermarker{color:#ffee80}.cm-s-darcula .CodeMirror-guttermarker-subtle{color:#d0d0d0}.cm-s-darcula .CodeMirrir-linenumber{color:#606366}.cm-s-darcula .CodeMirror-matchingbracket{background-color:#3b514d;color:#ffef28!important;font-weight:700}.cm-s-darcula div.CodeMirror-selected{background:#214283}.CodeMirror-hints.darcula{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#9c9e9e;background-color:#3b3e3f!important}.CodeMirror-hints.darcula .CodeMirror-hint-active{background-color:#494d4e!important;color:#9c9e9e!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-comment.cm-attribute{color:#97b757}.cm-s-monokai span.cm-comment.cm-def{color:#bc9262}.cm-s-monokai span.cm-comment.cm-tag{color:#bc6283}.cm-s-monokai span.cm-comment.cm-type{color:#5998a6}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-type,.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-idea span.cm-meta{color:olive}.cm-s-idea span.cm-number{color:#00f}.cm-s-idea span.cm-keyword{line-height:1em;font-weight:700;color:navy}.cm-s-idea span.cm-atom{font-weight:700;color:navy}.cm-s-idea span.cm-def,.cm-s-idea span.cm-operator,.cm-s-idea span.cm-property,.cm-s-idea span.cm-type,.cm-s-idea span.cm-variable,.cm-s-idea span.cm-variable-2,.cm-s-idea span.cm-variable-3{color:#000}.cm-s-idea span.cm-comment{color:grey}.cm-s-idea span.cm-string,.cm-s-idea span.cm-string-2{color:green}.cm-s-idea span.cm-qualifier{color:#555}.cm-s-idea span.cm-error{color:red}.cm-s-idea span.cm-attribute{color:#00f}.cm-s-idea span.cm-tag{color:navy}.cm-s-idea span.cm-link{color:#00f}.cm-s-idea .CodeMirror-activeline-background{background:#fffae3}.cm-s-idea span.cm-builtin{color:#30a}.cm-s-idea span.cm-bracket{color:#cc7}.cm-s-idea{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.cm-s-idea .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.CodeMirror-hints.idea{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#616569;background-color:#ebf3fd!important}.CodeMirror-hints.idea .CodeMirror-hint-active{background-color:#a2b8c9!important;color:#5c6065!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-type,.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.CodeMirror-dialog{position:absolute;left:0;right:0;background:inherit;z-index:15;padding:.1em .8em;overflow:hidden;color:inherit}.CodeMirror-dialog-top{border-bottom:1px solid #eee;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{border:none;outline:none;background:transparent;width:20em;color:inherit;font-family:monospace}.CodeMirror-dialog button{font-size:70%}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;box-shadow:2px 3px 5px rgba(0,0,0,.2);border-radius:3px;border:1px solid silver;background:#fff;font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto;box-sizing:border-box}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}li.CodeMirror-hint-active{background:#08f;color:#fff}.simple-pdf-viewer[data-v-6488c88e]{height:100%;display:flex;flex-direction:column;background:#f5f5f5}.pdf-toolbar[data-v-6488c88e]{padding:10px;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:flex-end}.pdf-content[data-v-6488c88e]{flex:1;position:relative;overflow:hidden}.pdf-iframe[data-v-6488c88e]{width:100%;height:100%;border:none;background:#fff}.pdf-error[data-v-6488c88e]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666}.pdf-error p[data-v-6488c88e]{margin:20px 0;font-size:16px}.CodeMirror-vscrollbar::-webkit-scrollbar{width:5px;height:5px}.CodeMirror-vscrollbar::-webkit-scrollbar-thumb{background:#545a5e}.CodeMirror-vscrollbar::-webkit-scrollbar-track{background:#2f2f2f}.CodeMirror-hscrollbar::-webkit-scrollbar{width:5px;height:5px}.CodeMirror-hscrollbar::-webkit-scrollbar-thumb{background:#545a5e}.CodeMirror-hscrollbar::-webkit-scrollbar-track{background:#2f2f2f}.media-viewer[data-v-3928fc30]{width:100%;height:100%;display:flex;flex-direction:column;background:var(--editor-bg,#1e1e1e);color:var(--editor-text,#d4d4d4);overflow:hidden}.error-container[data-v-3928fc30],.loading-container[data-v-3928fc30]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center}.error-container p[data-v-3928fc30],.loading-container p[data-v-3928fc30]{margin:16px 0;font-size:16px;color:var(--text-secondary,#969696)}.loading-icon[data-v-3928fc30]{animation:spin-3928fc30 1s linear infinite;color:var(--accent-color,#007acc)}.error-icon[data-v-3928fc30]{color:var(--error-color,#ff6b68)}@keyframes spin-3928fc30{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.toolbar[data-v-3928fc30]{padding:10px;background:var(--toolbar-bg,#2d2d30);border-bottom:1px solid var(--border-color,#3e3e42);display:flex;align-items:center;gap:10px;flex-shrink:0;min-height:48px;max-height:48px}.zoom-level[data-v-3928fc30]{margin-left:10px;font-size:14px;color:var(--text-secondary,#969696)}.page-info[data-v-3928fc30]{padding:0 15px;font-size:14px;display:flex;align-items:center}.pdf-toolbar[data-v-3928fc30]{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap}.pdf-title[data-v-3928fc30]{font-size:14px;font-weight:500;color:var(--text-primary,#d4d4d4)}.image-container[data-v-3928fc30]{width:100%;height:100%;display:flex;flex-direction:column}.image-wrapper[data-v-3928fc30]{flex:1;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:20px;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 0),linear-gradient(-45deg,#2a2a2a 25%,transparent 0),linear-gradient(45deg,transparent 75%,#2a2a2a 0),linear-gradient(-45deg,transparent 75%,#2a2a2a 0);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.image-wrapper img[data-v-3928fc30]{max-width:none;height:auto;-o-object-fit:contain;object-fit:contain;transition:transform .2s ease;box-shadow:0 4px 8px rgba(0,0,0,.3);margin:auto}.pdf-container[data-v-3928fc30]{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.pdf-wrapper[data-v-3928fc30]{flex:1;position:relative;overflow:auto;min-height:0;width:100%}.pdf-iframe[data-v-3928fc30]{width:100%;min-height:100%;height:auto;border:none;background:#fff}.unsupported-file[data-v-3928fc30]{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;color:var(--text-secondary,#969696)}.unsupported-file p[data-v-3928fc30]{font-size:16px;margin:0}:root[data-theme=light] .media-viewer[data-v-3928fc30]{background:#fff;color:#333}:root[data-theme=light] .toolbar[data-v-3928fc30]{background:#f5f5f5;border-bottom-color:#e0e0e0}:root[data-theme=light] .image-wrapper[data-v-3928fc30]{background-image:linear-gradient(45deg,#f0f0f0 25%,transparent 0),linear-gradient(-45deg,#f0f0f0 25%,transparent 0),linear-gradient(45deg,transparent 75%,#f0f0f0 0),linear-gradient(-45deg,transparent 75%,#f0f0f0 0)}.code-editor-container[data-v-15899d6c]{height:100%;width:100%;display:flex;flex-direction:column}.code-editor-flex[data-v-15899d6c]{flex:1;width:100%;height:100%}.code-editor-flex[data-v-15899d6c] .CodeMirror{height:100%!important}.code-editor-flex[data-v-15899d6c] .codemirror-container{height:100%}.code-editor-flex[data-v-15899d6c] .CodeMirror-linenumber{font-size:inherit!important}.code-editor-flex[data-v-15899d6c] .CodeMirror[style*="font-size: 26px"]{line-height:1.6!important}.code-editor-flex[data-v-15899d6c] .CodeMirror[style*="font-size: 26px"] .CodeMirror-line{padding-top:2px!important;padding-bottom:2px!important}.code-editor-flex[data-v-15899d6c] .CodeMirror[style*="font-size: 26px"] .CodeMirror-linenumber{line-height:1.6!important;padding-top:2px!important}.file-path[data-v-15899d6c]{color:#add8e6;font-size:12px;background-color:#fffae2;width:100%;background:#2e3032;color:#50e3c2;font-family:Gotham-Book}.CodeMirrorOveride[data-v-15899d6c]{border:1px solid #eee;height:10px}.auto-textarea-wrapper[data-v-33c11741]{height:100%}.markdown-body .hljs-center{text-align:center}.markdown-body .hljs-right{text-align:right}.markdown-body .hljs-left{text-align:left}.markdown-body .hljs{overflow:auto}@font-face{font-family:fontello;src:url(../../static/fonts/fontello.6c502925.eot);src:url(../../static/fonts/fontello.6c502925.eot#iefix) format("embedded-opentype"),url(data:font/woff2;base64,d09GMgABAAAAAB5UAA8AAAAAPCgAAB38AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCGXAggCZZwEQgKynjAFQE2AiQDgQALQgAEIAWFTQeCfAyBBht7NTXs2Eu4HYhi9+5NRBFsHARl4CT7/78eN8bABK26P5bIEKpNrYFp09oOd5ukYPKBVP1ciF+9EBeLFT+oXnEnPd7BVFgarelwt8MSFZej78cnkywFymsoa8HCT2Lj4pbQbBw0me4UOaHjhRp9oUjQ8JuocHZ08hNEc/GiNXg00oHyhhIkBKUz9+5kmaVHxgBTBYAlQZmiAsRSpf2TtPGmrlqE8qqb8XcY/OcKqATqHa+S6NaxfJJ8NA+/zX/6kheQEgkL60nUtTDAS+ZzHMUYrgJZlItoFhG6cr6fq3RRwarlUGfqZCWWHZJshVgBYD0gl/DXTl27TR3GL4CA+Nfnt4Vq9ZrgZ0rk9K1u9TQAWk2/359VOv2XAeF8MtwWtZ1kR3WAOyH8/2tLqSgdnuYpP7yrCZFRSwnbLAUlU1G7KHOmq64mbP9v83Vm7r0PdgWfzCiHqLJ5AwrrOFJA3hDoK6lyUnThqiYoOy7aBODgb70mmyeth3DS+r2aKYGaT/xLNGwO2x9ysvmdPxNBZnJly0xnRl4D8Rk4CAVZ4iC86b1d3cysYFY6l1Zn2hMePIx4znzSM4dmiOhWeqKTnjkycASccRI4SBzEduYg/Cx0OYhSE4h0tdOekBxfwDA2Hc74e80eBhImkeortgUBuCjSQLZ19I1hrJi7YRUxNGJeAdtdxYqli+fi6NagHXOGwFGpH7JSdVjMxQZym/wHOLxWxB+KS4+OTRFLHVrUvoAmi4k3aiTAaNoyxtnL8wE6HVBA3u2JiS+Hxt+hNlneWrgO0zWuARGC6ubpltcK9t32vfJ993v9j/x5/h8TbwKjkYVlMp4em9tbqIIIRcrSaMBNUP53nkShYUPHjgMnLtx48GJgEiRYiFBhwkWIFCVajFhx4iVIhNApnT0AYrdMIizmIQRYEskiUSwSjUViY5HoLBI7i8TBInGySFwsEjeLxMMi8bJIDI6Js3aCcDjBMCf7bktCOE9JQjnPSMI4z0nCOS9IIjgvSSI5r0iiON/dhGj4vZIYTjJJLCeXJI6TRxLP+cEjwTssYr4kCicq4R0I9XNqYgII9B0nSXr7D93n35I+P0UeXFH8z6fqziLS8r+4OrIjO2ycA/0D2riHB3PwAEjFpx4MHYu3TTz81J/3JidHk+3P0ZlruktxuBkdKjViuJkZ/ifVBoFfjjlftHKeaMYuTSr0xjQC7Z8V5lvMJZ5Cc/OB9FG/OqfYbQ1gKRnoLZ6k5NGgiSBajoWDm5GQQJIwdj3B2ENgPLXVcY00CBnpGY46jCdH2M2h6qgu1f9jq81KTqSgrZg3m7KdoiWMp3biBW8EsgZdmMcBdA56FKiFOZ9viQQTSEJB6SnMYEzcPDo0wiwXj/65S9U4wZWc6mvyOFoSRa+3HCfhjlP0dAwo3jE7WB6YgYhr1qQ7lRjB1JKLVpocwfEVSjcdMLUybn9iXKyS0w2mwkqsR1wh9x4ESejbZimKrjGX7jiPBxUHEW+VsccLIJZw882anlMSEsMc/sCe9h4fBFNHUv+Iy4bcZ4yY1T0KrwTzMLzdjdXzcbqGp7AzD8fbrfh2p0I27rLIvq6FinrX96Lj5fJhEhhbAkQa6uCAh0k4NclQvxmr4pK4hs600Kd3c8ZiPzkNDshrpDcsScFmvLMZIoeZ+mK8pVQ4ho0hwb2HMO30PrAxV4Obu5GxBE1oJdAIEAdlmPze6M+jLl5C19etaoXXQXM1eQQqGg08flSAKEAwChINhQhBYeJAEeJEUaKjGKEoToy6BOYgk9tuBE7iLU5BYWmAZQCWBZgEWA5geYAVAFYEGkrQ8hlfQuU2mY1Yo/7FSN8JxlxwqNYKKNvszbl5qpBmUnXCyjNbpvqOpb5yj6em//tySvUGTO4JNk5dIzmqGxrQYx7rmpgzgajlBUPrEVAJNP2FNoH6VXtWG95/x9OSeWY047EVsDzzFrXRXlz2dMh8yCPS5XRRsZteV6sZEJdtfd19+d3SK4rLdYEJSugf8DA5d8fTA2gK0Z1ZH0jl4KS7W6Tlrpux+nU1arOUIBIo6sVjIPdUW/Gn9oupZrmCcDGSQjBBqS5L+QptmnFOkUwWYIt4AGY+NjSW4zpfLM0Tz7NLTnq9mAQJbWo3Zp37U6Qnc4AZZsWOzWMeYYY+Di37nAS0M5BG6Ajo0dmcvx42TCJ5BvJHFXfhCEE7W37mGVb5UAno6BT0BJYSI3XB6C1t6viKrZbNNSX7krb0MHXLpLlxXr+sRozUq9daVqH83eUZD15Js/D8uptTPNuMqQlMrcbWNN2OWk5trXgx8EyrSmyOZ0bZO/7Z56BnLSoL0LeuV3AUymkv0RIgbKmYR3mXrVlwrM6mZbX2rK039tKw0rIGN/xLzDwPxg5Lily2eePhto65xB9fVoQtO1mJOUssGcrFxavOJDDdHlPwTVlqad08ayh9fViR31mi/eRvDOme0KaOphNTq2nHgZW6W0NXlDx+o2wPe+R0Z7xDPNoVUGJ7Oia+fzyuJAdQ+CHAjwB+DJeTE8BPAX4G8HNYSy4AvwT4FcCvYZjcAH4L8DuA38MV5AHwR4A/AS3PQwYPMX/ZIZlsFr3DU/H+tUQLnqEPVcNT8o9M4tMmEJ/BBH05bsS/Tk3iWwXiO4B+HDfmP6cm8asC8Rvo8jr8aZSDX0X9hAG0wE6bZ98lSQ+GQPwLLToWJeEmNKej4wq4Ooh0G3hS/wsxUaADa6zDP1JhO0xoCccwHVOHCtcS5mFILKVsPxvSCASp6QSARlMo/dQ0Ml6EEdKYydwkOp1IF+EYtFxKFi2YUTWBMGug0dKEe+bOyA8dVQ0Adn8Gi8YSZYkyxmBo4TYjFQtiXby1sbcWkQAeAPzHayksf6xqgVo52rtN28LdAwog/MFS219u2wk7LsJPQ1Y63n1o6ftf0XtE3XVHXFCeba6OuK7EnXHHOaJ5EU0Cq11XJyYWKv7v0P/U1tKlrMbF6tt+PBpIOhGDBIwocX6ZJ82LAsFkRtKSiB7K3ckj7+pCKhd8gmcjBuIqWcoi0nQexigst/FVpbKlBVaapiAcuyLNsuiqLBeYqYuK/eiIOJGMPdWrV1EsiEKR/ht09HIFhYd8j9Ss7ZNb1fOX2mF/+5U2fS9r4Wcudq0O40t83PFU3514A3RQYc/dn6UZ5AluirN1mz6pWuwJG98yS5tc+KQ6tX22PvEusCwqWLpc4TnqxPHcVbD8w3Zm6JFN4jiS5sG+juVeVAoN73IKKqMnW+pY61NCByndUApFc/awVHFHWXkK1aaVbIo+XP3nHjOj4ltiwRA2LmWy/CCvPllFFjNxLTvxIt4tigxyF6yzI3NQRW/Bk5TEz3aJpuVYbwiyLrTpfnXgEHHtuWkik1YxH4IoKgHtSMkFrkFYg1QbgmpTJO271pGoIaBG8XGrAXFlxXNMWWkqS4ZGL4lHZawuYO1zz3EiMVNRMi+2tvkpgSm2Llw03/XkDuB4HsRhR3Ldr/1HqkU0p/uUbkP4QwyNB5x/vvpPjqth/////2Wx+0qrt5R0vM9drFjhwPkibTAQZQtivec1oEjv6GZbwGUKO01iXuWOdD3GeKB4jx0W6Xxf8eTDI+7G2H3hMMDYu656JpWSIZSKJZY16Q2SNUWqnfk4XS1bvtwuFL5nBo3YmBqLvSYllVzIB0v8MCqnYECYSgCfqSGzrMwKfuXm5LwxA83ESgXCGYJBMe69KbUVh6DY9BLQmaZ2sGPOqEIZujRogwoFGKL3psQc2QGe/wVC8dWKLLFcIOq4tMCNCQvMCi4VjK2g9uV8OPEslSOARzA5OcDXxqYSj++aBoIVPu5NqlP+BLRx7azoE28DM3gyXZnyPI35TqWBMKbtTG2QfJT5I23R9m3OYWUgjoTs8GpbhFo1BQiWnpRquQ6KOERZU1NBVNNEW7EvMYQ1Aprr6wmGfRIMLN8mH2GIXiv2KdgbOPrujIN6o2tw8VCl7y6P1ZyMzXcBIce8VZPIrZlbHlxNkYT/gG+IrsjuqN9SjbhNTlO2gUIwDI+vjcWE3MgsEgixL307TZfYWEUFdbu/XF9O5hMHEAMw5q4t2TmAKDyzuiAWwt9D/OQtWfAdzUeO0IWY1ShC9z5JRqoJNSCYzF30zfRA9dSxpfxdX/U0/nZ4GB3q7XAxyPhgfnx3w2lSHuH6RNsnUBrspDxh46iZndFMl02fC6X57pHe8ttz98Mx0efg8cTkwsfV+Tnilm6W6jyM5fKzNnEXu5L7KwyNPrJU8TlbF1aGdiH8pRuGQbdZlnjbtoWtpvnwwX3lqoUAr44+pN0HhRyyKLK0ZhAJ+aWTD3tsC5oCtsWwgj0ksedARS2IqraxpjKIxoi2wiCXEqvbsF5xqSc+7mwAw1bw3QmEYk13F/H24f7mNN+peZqDGBfVTLhixtSrtFBFIvEis0ZPBXmUYA24J4bHRdtSaciyqFWbTIfVhKi7uo8VAzypJUkSsNcgLlroGZZZtWlYi6vZzZbPT+k54ZmUmWFzfWn9l7EVqEWTTWSUtvG5x1M8Ly33SxcNuYalQi0KZ0thiu8+mPNj3l03/zgfO4AsEVJSxL8x4xyUwoI6VkjDFIkOMqGr81rRgnoKwYyg8P/mWCiGdF6qJUdAX9lRcS7AiPZDeItygl+CedUkBbcBPVYzAOtwrm5t0zz7mGesTV9ZnM4ET4TvnRerRH/skKm8SJOPNRLrYhRZxEZuWTLogWWz6N5ZEJEwPgRy+uMiOJqORLUjsuNERbnrSeR9OWXoC6F17AUgT/HldbZVplD2sesYxV27j5KuvLid0xmNJqQfAhn/wQo5f9z4y19VgTRpZ1M0Lun0uBNTV7HfNTUlxNub5ekUJ6ISlyLajJVlBPb9esLlBZuVw5bRPkUqqVrvTbnf1LRIUhG+KfG7xU1+6/G8nRxvit6dWsyzrJEmuRtElun+nu29IPpmLfbnVp+9LcEufL5gTTMQAzYB7e5moA3YhI+56ZuyVNpmUQANNyULCkDzj/zsQrSfHDHVbvfYB5b0kthskl6DhFfhrfdfSeXg4okQ4q/NDgsCGstOVy2iajU8IGpaid5ZsXJodAlc7V1SdtJkQraUQfNqq+CVkehq+O/6nR6NGQJhm92PgHYPLoZLekhctrxeyGibu62PZEA4Z5DdThVzflIhys/9LUiT6VCszFu1Eo5GdSvLBQd0+BhetLfg9GYDBTLrOGBLgJhpOf0znRwdjrooh0eHNP5M0aq1e93qV178ogvoUhWcdTFLpaMwoFby7MiumdjubuGsnLCxCTvxscaruJ3Xdn66av6MbzOuWG5oH/iCfZ9TOW/Fvug6bZ7WJVgdfOzV+BY21kePfguwfCD0wgQcyfFxzu6KRyTYWE7V2+UrOgOeHcU/wcDeLW73oTY9TZ0IHAKHDrlc2/gBEHX+hp6Av/w5o6h+UzuWul2HDvlB/zu/vIRe4p8wRsuFe8xbcAE5b04vmDvYRf4J1sj9KZiH+8xmUuKCMRw2kBIRCZIchuWkxJczjHWOsUAsexZereu67PWOMUAsCwmsdDSvN0I9/3J+LOxFbuFRQnN6dW/a4+kgDLKk58uN8/fbXjMRgLMnEYFprsxJQxX2NX+tDYz/tWSJkvvUTERfvaraiJi4g3JWjTGnrOAU/Qgx1vn6+upu9xqVaxlCOLFL31MbrqmQwg0NX9ZVffL00dPDwDbPHq0o81VLFFONQ2aethSocATjVWvRyiRWcLtUo8MwKXZlUiTlP4tuag5e8wyOHDkWfXEi2u8I9uXWI+3Rz23R5iPmywPY72y2TnHn+g1JT4rNlhAn1m8oyPF0ZlwaD4gLy1N5+4JO0/fmgp9Z0P3wOKl4VqCReuyJ2QgYQUDBSG+mGr5Pj1wP+rPLVBnPyZhgBHo6YH9x5tqOWNIewLEhZywyfKdD5qIy2oswnlE+jsECF0w1VZwTeLNL3WVC7c9TH24yPwZFS1TgpveeHhoqtwyx+2xI1boGaZK3GmDelEvqbOmLs7sHAfp5wum9eFybMs8O3ip5dXxk56h8wclgcxyzP1owVUDB+aN4O50grAnyVH5szPs9Vdye8X2Rvj+R/3Pa1i9ODl8+OcS1iSJjaxafuYtrai5YwUEDMbwAYAPQhmBR1OOX4/yEFj4ZdVcgSceeUvWDQ2m0MbTM9fegjtErliAJirFCTeCwQq3dz0V8DJ5WEQX/EgytEoOp/+VWPDhTl5bbnMsP3QyBpgz1xZbBze7Cfp8U74vai0phCQ5AWsLDbUbNQ/WDG1xkOgllDbXLSwx/dLn5D/Hr1MeTm5TdFs6ex9cRCy77awA4gyht8PO891B6rVWryLNYhmRUL6WWjp/9FBKU9zy/TTnt8LQzeu1ZB/vbED2ALyVmo7ljgYk+dQUAc3JFfr4SzpadkIVTrmrltHpqxv8taIasQ4tEJLKkGFH6zu6ViNV5BUo/XZ5EUGgSLyPrV5fPOVQlLgRccppoeebAgRGqLIJdWwnMzQIw/MnuSRlDqVQS1gp0yL7/DH8Jj101TOQJTVBV+siVM6sO95p1WbaeLom9GFIYT4QuJ+z5rUAMOL0N18rvKYXmz8L1BST/PIgBrSqlldPj76OW/PMJYCsANi6ITsG3UDg9wb7mXBABsgJYj+8edR5TW12WTxQX+TAKU2njWdCILjj/hO4RoF1ez4h0m+CrP37nppg8/rJGwaKLdxRfk/wRXxP/IU8reSljmZ4O3qxkanw+TdKC/vybJXc/g2SPF1Tp2/WgH43xgwE02kCD2v00363bt24FQNhx4SL7uje5qRq4+Jqzvz6vobnPwGwkf7sBNNyK6tv6ldseaPKnPT1N+DkQmtFl5nE1G4VCFlpnBabPDZn6re2+xF67zD76hJqFwhiuO0bPqTV0XxjZsHpENBWUEUU3F6mWXE5i8dyCiYP/s/6x/HFJmU1XlLpg7/3r/8kcL2lp8fg1w3QhN/P2AmjRVXp8En/hso+MsOmArODguv3Y8ZINJXtc75miytnh5lK+DZJS532ZlALfImO6soaxuyLuv9omMYQVSPDgg5QeaEUInUy57qWn+i5P5sPgcYMs4HNV3DG6QYxIHR5fvJ68Ds0Gb25SSutCjRNxJKFOBhuw5BZn/qKOdjZ4/U1yGC1rSPIWVCQzGksdCMpy/qRPfDoVPOicXXF652lo7lGzVhSYFxUE7yuR9KQfBf8ftvPWDa9osxGzK97pg/ametuf1o+6wCP0x1U/LOr/Mxb8b1P32kNzX3kyL4tlz5MaEbzEBO8QHmsdYHLrv7GLkoKUMEPcY56ZkKaT2PaH/CujQV9RLA3SNPZPFMQAvHviNoO6A8CbX/sdr5XUbrbZ4Awk5gAxfazXbT4LSeydKKGXBDs73Iu1WPfoO8QWczc4DIc8diYqZQw1XupQ8O1WzNbdzsf1VlLWrad+fz8yWjmyWfV4G8wC30YFckUPR6bn1yEkpVdhVuYoZWBPHFJK8oRFXSWPM1Or5H2w0IKLOScYKwZDkZAw48hEeQUC08YER8NBdeGwH7u8g+CQr5Ayjcl6EBA7zo7wGdxjruNdMN1k9Uo+Gw6yJE/atkVj30SV1IBRCaoDFELYCiaaPkSACPYXu8E1g+RzuHx6rmAXZMcZBydKUwaLM0ewW8PruNGcF1HGC8zDTgIQBoAwvdALZoNy1X9DlQGVyoUTYW4w9e6F6bxrE7FyCTkhf4gRahnVfjxUGTRKLGmJ3LZ5hpzbOZpBtdO3Gxtqq4M+r8tuMekqhBT5jZtl+gp25pezGVKc3ZDecE/oFppML433KLBUrEcCkbgMCbXiBThI1Dkq6vRK2bAXzHe4PeGcuVobQFKWUU02TlKX7+brC9XWELVOhs41gHd2/KNxyBEHJgomSa4hoZ7LZXK73CDDEECBHyJBntSDEQ6L4sAFY7ovIIU/FNDj0ET51VEMfzFJeOE6inruWl6BMiVOnsik8Vdg2tH2mIHbfAizXTjQbPmOOeCYTm2MeliKuK79L2HIg7BKESNDgWIZGfKsHgEwkJyUEkp6YpruSVTsgIZPp3H4NrxMmOkOZRkFrUn5EzEhSJiqJjmkfJ5Pt9nAsgIhq0NGipy6Pt8t/JUaRFMftv5DvXzPkkIOwSs7iW2whb+TrYrnBy2b9zoZInvwRCpqcYZZIXVONxgr5G93djyIjkeeztU3Zn+zpK4fmoZFwmtLavSlE61pH7yESz20jT2sQ4smtc1y1MRut6KoFhIvFXCELztc7uNGbcWwn7P9wYAtbMvtykeo8DoYQO+MP91FjXbWyOHoXuby7j1lrdnq+Nji8hGvtZ5IBcHa3UE2+7axzYPYfaRqWdBsbRrN23Brzd+GWprexo53uDNjMzza5rCMhksU5K2Se2yhYGNrk9t0ipruzA9yNrhZRKtolxiPB4+vNAzxxKGdPbkByqo7WlpxleByUf1RaZmbq2R6qqH9f1S7SqKLWKpWvO9MS/0ZHm3q0yvc4Axl3ppqr8ftslngyrRZ0+90IqMBboXsbCZo/vb1GeA2cKe8o+ECHhDIiLxCLrtd/iEEc1lfSSCIHiWlMkMpaY5U0nSDIW7PHHZteafNWrnMYj4UQCZGZ9vYM9nZY+h2W7hdhoObRNx9F3a8s0Q11bvHgDcPvaiatWWrr4y1i2DbWyVFztKU+jaaZhcBxixJzNYa/HXwpFJQaSpepsONo2pQS00Zpma1VFy2JrfVW62SEc+OZpWAHXUB4IP3utb7PGG73F6nlUoIy5eT4VW+Onin8j4aOu0vluJhS8/ps08sOi53mhbP56WNwkxYh23mVsrbqd/0KI+KZFn9uMoaF2jo2xC3tmAGt5dbc8QWbE1BVi1fvGDWjEkTmkcOjvbr0y0cqg74HLbsjZvJdJmsAuYmBNmBpV8El5YEd8zWg4fP4fApcTgsuKupxYTElMebVHUtrEaFZZogw8oJ7AYpcXbSqHmiqAVbDnp70QEJXp3joZilA3MtAu881C0WgtY7usJZQ6jNI/R6jsVOHuROV/HuqT0xG2mFXg68bQfJFqN6U/ugJ1pxW6JFUVvuDLME6AU4oHCbhPDkIVXU6In0QbtKei60QikRpzczj8lYNum28zmU2mTxMLd4lPtezTeIFYHGHjnJtdo8nKR6nqXlFssJIn2Rxm9Q1TsAhcRAuNba8hJKGZZFRSjIGcY5Wq5t/qJr+Sr0sGbcaYGtsQX9ai3FPoqFkHWFXrMiebxjQjq9b+hBs9MWCXNj+iPp27Z1zerlC+fMnjI+ONDTtiGifo77LcDwZJRQb4+SUjJC5E9BYmW/LDhIw1t/ut8w7nV7x802S/853MoC+Hjr/2K40pjJVD/gQAK1+Yd6D60Qgyy/tTc8qQtFBYOs3aefgbpA2Tq9CiyCNiFEhhWfGgg1jlXOhbcBu9CNtZ/urAFqAtxcleQCrpVICjRYD3xxr2FzT4hfPDvlEplH5shF0pDETn1I4aANa0ZfyIabsZCOg9khF7kWr9pNqJMohOYElnF1FRIENUMSQyQyhTLymQaM+pCNiP1MB8b8kItJIrpZbjI+vS0p3jN2vZrHn5+YuqzemObeUHFHMFhvbNKeWMwH01JQ8J5yR0PU9Td0yVu+tOHi/gMLUjBVXq6zv0MAtgqnjlchN12t2pqWaTDfsD/KRKYrcJr3qvF9UQxV4OgzxXvGrlfzGLGsJ6Yuqzemie4yRKFisB60t0l7JBPAPqxZmyWDQqR6yl06/gHFfkdel7L5W8bkzMf/Q/cCUa/cVHlJgb+LQCUsourEtyc3KaujuLYcCuZofuZbFjcRfd8rcJprRNX4vtj2SbZISFbg6L2sj0CS7JJGZzAxs7CyYcsBhxxxzI3BQ4YOGz5i5KjRf6F9b8WNnzBx0mQz3VLypwWq9eg22qehydS688xjOK8jOk0MGS0YIlidpXCipbKVPqNV6ynG+zO1d0BkEJnCPaz3XiYeW+jxOoEoUsgcsvMwVxxANr3crwuZh1Z3jx0dBAXeZqZjr/PGMtOtZNbrrLEsS4+iWfJw2eT3ooxn0J4pdf16RBKYV9r5EGzjYenIpyHI5jqRwiDrNnN0gq2kCCyOMepaUvPgL3qwrN7xFsXahttssHc44AOM6P138vf0cS+IbxfA/yoTH+9F8c86FxfPmR9NyZKc5EVP1/7AdxA1Q/lkdGWpU258L3/+fNyjflxWbUGX5AMO0+2gX/n8ZbfC48Zis/xWt+Tg4m/jwKTvZke+n3AD) format("woff2"),url(../../static/fonts/fontello.6ec73abf.woff) format("woff"),url(../../static/fonts/fontello.3f1fdcf0.ttf) format("truetype"),url(../../static/img/fontello.a51e6f27.svg#fontello) format("svg");font-weight:400;font-style:normal}[class*=" fa-mavon-"]:before,[class^=fa-mavon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-mavon-bold:before{content:"\e800"}.fa-mavon-italic:before{content:"\e801"}.fa-mavon-thumb-tack:before{content:"\e802"}.fa-mavon-link:before{content:"\e803"}.fa-mavon-picture-o:before{content:"\e804"}.fa-mavon-repeat:before{content:"\e805"}.fa-mavon-undo:before{content:"\e806"}.fa-mavon-trash-o:before{content:"\e807"}.fa-mavon-floppy-o:before{content:"\e808"}.fa-mavon-compress:before{content:"\e809"}.fa-mavon-eye:before{content:"\e80a"}.fa-mavon-eye-slash:before{content:"\e80b"}.fa-mavon-question-circle:before{content:"\e80c"}.fa-mavon-times:before{content:"\e80d"}.fa-mavon-align-left:before{content:"\e80f"}.fa-mavon-align-center:before{content:"\e810"}.fa-mavon-align-right:before{content:"\e811"}.fa-mavon-arrows-alt:before{content:"\f0b2"}.fa-mavon-bars:before{content:"\f0c9"}.fa-mavon-list-ul:before{content:"\f0ca"}.fa-mavon-list-ol:before{content:"\f0cb"}.fa-mavon-strikethrough:before{content:"\f0cc"}.fa-mavon-underline:before{content:"\f0cd"}.fa-mavon-table:before{content:"\f0ce"}.fa-mavon-columns:before{content:"\f0db"}.fa-mavon-quote-left:before{content:"\f10d"}.fa-mavon-code:before{content:"\f121"}.fa-mavon-superscript:before{content:"\f12b"}.fa-mavon-subscript:before{content:"\f12c"}.fa-mavon-header:before{content:"\f1dc"}.fa-mavon-window-maximize:before{content:"\f2d0"}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format("woff")}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2:before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit;font-weight:bolder}.markdown-body h1{margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body code,.markdown-body kbd,.markdown-body pre{font-family:monospace,monospace;font-size:1em}.markdown-body hr{box-sizing:content-box;overflow:visible}.markdown-body input{font:inherit;margin:0;overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border-bottom:1px solid #dfe2e5}.markdown-body hr:after,.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{clear:both}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{font-size:11px;border:1px solid #c6cbd1;border-bottom-color:#959da5;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body code:after,.markdown-body code:before{letter-spacing:-.2em;content:"\00a0"}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:0 0;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:after,.markdown-body pre code:before{content:normal}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.v-note-wrapper{position:relative;min-width:200px;min-height:200px;display:flex;flex-direction:column;background-color:#fff;z-index:1500;text-align:left;border:1px solid #f2f6fc;border-radius:4px}.markdown-editor-container[data-v-6932a3c8]{height:100%;width:100%;display:flex;flex-direction:column}.v-markdown-editor-flex[data-v-6932a3c8]{flex:1;width:100%;height:100%}.v-markdown-editor-flex[data-v-6932a3c8] .v-note-wrapper{height:100%!important}.v-markdown-editor-flex[data-v-6932a3c8] .v-note-op{height:100%}.file-path[data-v-6932a3c8]{color:#add8e6;font-size:12px;background-color:#fffae2;width:100%;background:#2e3032;color:#50e3c2;font-family:Gotham-Book}.ide-editor-container[data-v-263b409e]{position:relative;width:100%;height:100%;overflow:hidden}.ide-editor-container.csv-container[data-v-263b409e]{overflow:hidden;display:flex;flex-direction:column;position:absolute;top:0;left:0;right:0;bottom:40px;z-index:10}.code-tabs-container[data-v-44ea9c53]{height:35px;background:var(--bg-secondary,#2a2a2d);border-bottom:1px solid var(--border-primary,#3c3c3c);display:flex;align-items:center;padding:0 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none;gap:4px}.sidebar__contract[data-v-44ea9c53],.sidebar__expand[data-v-44ea9c53]{background:transparent;border:none;padding:6px 10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:var(--text-secondary,#b5b5b5);flex-shrink:0;border-right:1px solid var(--border-color,#3c3c3c);margin-right:8px;border-radius:4px}.sidebar__contract[data-v-44ea9c53]:hover,.sidebar__expand[data-v-44ea9c53]:hover{background:hsla(0,0%,100%,.1);color:var(--text-primary,#fff)}.code-tab-list[data-v-44ea9c53]{display:flex;flex:1;overflow-x:auto;gap:2px;align-items:center;height:100%}.code-tab-list[data-v-44ea9c53]::-webkit-scrollbar{height:3px}.code-tab-list[data-v-44ea9c53]::-webkit-scrollbar-track{background:transparent}.code-tab-list[data-v-44ea9c53]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:3px}.code-tab-list[data-v-44ea9c53]::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.2)}.code-tab[data-v-44ea9c53]{background:transparent;border:none;color:var(--text-secondary,#969696);padding:6px 8px;padding-right:28px;cursor:grab;display:flex;align-items:center;gap:6px;border-radius:4px;position:relative;min-width:100px;max-width:200px;transition:transform .15s ease,opacity .15s ease,background .2s ease;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;white-space:nowrap;height:28px;border-bottom:2px solid transparent}.code-tab[data-v-44ea9c53]:hover{background:var(--bg-hover,#2f2f31);color:var(--text-primary,#ccc)}.code-tab.active[data-v-44ea9c53]{background:var(--bg-active,#1e1e1e);color:var(--text-primary,#fff);border-bottom-color:var(--accent-color,#007acc)}.code-tab.dragging[data-v-44ea9c53]{opacity:.5;cursor:grabbing}.code-tab.drop-target-left[data-v-44ea9c53]:before{left:-3px}.code-tab.drop-target-left[data-v-44ea9c53]:before,.code-tab.drop-target-right[data-v-44ea9c53]:after{content:"";position:absolute;top:4px;bottom:4px;width:3px;background:var(--accent-color,#007acc);border-radius:2px;animation:pulse-44ea9c53 .5s ease-in-out infinite alternate}.code-tab.drop-target-right[data-v-44ea9c53]:after{right:-3px}@keyframes pulse-44ea9c53{0%{opacity:.6}to{opacity:1}}.tab-file-icon[data-v-44ea9c53]{width:16px;height:16px;flex-shrink:0;pointer-events:none}.tab-file-name[data-v-44ea9c53]{flex:1;overflow:hidden;text-overflow:ellipsis;text-align:left;font-weight:400;letter-spacing:.3px;pointer-events:none}.tab-close-btn[data-v-44ea9c53]{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:18px;line-height:1;color:var(--text-secondary,#969696);opacity:0;transition:all .2s ease;cursor:pointer}.code-tab:hover .tab-close-btn[data-v-44ea9c53]{opacity:1}.tab-close-btn[data-v-44ea9c53]:hover{background:hsla(0,0%,100%,.1);color:var(--text-primary,#fff)}.tab-count-indicator[data-v-44ea9c53]{font-size:11px;color:var(--text-secondary,#969696);padding:2px 8px;background:hsla(0,0%,100%,.05);border-radius:3px;margin-right:8px;font-weight:500;white-space:nowrap}.tab-actions[data-v-44ea9c53]{display:flex;gap:4px;padding:0 4px}[data-theme=light] .code-tabs-container[data-v-44ea9c53]{background:#f3f3f3;border-bottom-color:#e0e0e0}[data-theme=light] .code-tab[data-v-44ea9c53]{color:#616161}[data-theme=light] .code-tab[data-v-44ea9c53]:hover{background:#e8e8e8;color:#333}[data-theme=light] .code-tab.active[data-v-44ea9c53]{background:#fff;color:#333;border-bottom-color:#007acc}[data-theme=light] .tab-close-btn[data-v-44ea9c53]{color:#616161}[data-theme=light] .tab-close-btn[data-v-44ea9c53]:hover{background:rgba(0,0,0,.08);color:#333}.tree{overflow-y:auto;overflow-x:hidden}.el-tree{display:inline-block!important;min-width:max(150px,15vw);width:100%}@media (max-width:1200px){.el-tree{min-width:max(120px,12vw)}}@media (max-width:900px){.el-tree{min-width:100px}}.tree::-webkit-scrollbar{width:5px;height:5px}.tree::-webkit-scrollbar-thumb{background:#545a5e}.tree::-webkit-scrollbar-track{background:#2f2f2f}.ide-project-list .el-tree-node.is-expanded>.el-tree-node__children,.ide-project-list .el-tree-node__content{color:#fff}.ide-project-list .el-tree-node.is-current>.el-tree-node__content{background-color:#094771!important}.ide-project-list .el-tree-node__content:hover{background-color:#2a2d2e!important}.ide-project-list .el-tree-node:focus>.el-tree-node__content{background:#094771!important}.ide-project-list .el-tree-node.is-current>.el-tree-node__content .display-none{display:inline-block}.proj-tree-container[data-v-658c3813]{height:100%;display:flex;flex-direction:column}.tree-header[data-v-658c3813]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:hsla(0,0%,100%,.05);border-bottom:1px solid hsla(0,0%,100%,.1)}.tree-title[data-v-658c3813]{font-size:14px;font-weight:500;color:#ccc}.tree-header-actions[data-v-658c3813]{display:flex;gap:4px;align-items:center}.action-btn[data-v-658c3813]{background:transparent;border:none;color:hsla(0,0%,100%,.6);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.action-btn[data-v-658c3813]:hover{color:hsla(0,0%,100%,.9);background:hsla(0,0%,100%,.1)}.action-btn[data-v-658c3813]:active{transform:scale(.95)}.new-file-btn[data-v-658c3813]:hover{color:#67c23a}.import-btn[data-v-658c3813]:hover{color:#e6a23c}.bulk-upload-btn[data-v-658c3813]{color:hsla(0,0%,100%,.7)!important}.bulk-upload-btn[data-v-658c3813]:hover{color:#9c27b0!important}.refresh-btn[data-v-658c3813]:hover{color:#409eff}.ide-project-list[data-v-658c3813]{background:#282828;color:#ccc;flex:1;overflow-y:auto;overflow-x:hidden}.node-icon[data-v-658c3813]{width:15px;height:15px}.node-label[data-v-658c3813]{color:#a6a6a6;letter-spacing:-.8px;font-family:Gotham-Book;padding-left:2px;flex:1}.node-wrapper[data-v-658c3813]{display:flex;align-items:center;width:100%;position:relative}.node-actions[data-v-658c3813]{display:none;margin-left:auto;padding-right:8px}.el-tree-node__content:hover .node-actions[data-v-658c3813]{display:flex}.dropdown-btn[data-v-658c3813]{background:transparent;border:none;color:#969696;padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:all .2s}.dropdown-btn[data-v-658c3813]:hover{background:hsla(0,0%,100%,.1);color:#ccc}.context-menu[data-v-658c3813],.dropdown-menu[data-v-658c3813]{position:fixed;background:var(--bg-secondary,#252526);border:1px solid var(--border-color,#464647);border-radius:4px;padding:4px 0;min-width:150px;max-width:250px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:99999;overflow:hidden}.menu-item[data-v-658c3813]{padding:8px 16px;cursor:pointer;color:#ccc;font-size:13px;transition:background-color .2s ease;display:flex;align-items:center;gap:8px}.menu-item[data-v-658c3813]:hover{background:#094771}.menu-item.danger[data-v-658c3813]{color:#f44747}.menu-item.danger[data-v-658c3813]:hover{background:rgba(244,71,71,.2)}.menu-divider[data-v-658c3813]{height:1px;background:#464647;margin:4px 0}[data-theme=light] .context-menu[data-v-658c3813]{background:#fff;border-color:#d0d0d0;box-shadow:0 4px 12px rgba(0,0,0,.15)}[data-theme=light] .menu-item[data-v-658c3813]{color:#333}[data-theme=light] .menu-item[data-v-658c3813]:hover{background:#e8e8e8}[data-theme=light] .menu-item.danger[data-v-658c3813]{color:#d63384}[data-theme=light] .menu-item.danger[data-v-658c3813]:hover{background:rgba(214,51,132,.1)}[data-theme=light] .menu-divider[data-v-658c3813]{background:#e0e0e0}[data-theme=high-contrast] .context-menu[data-v-658c3813]{background:#000;border:2px solid #fff;box-shadow:0 4px 12px hsla(0,0%,100%,.3)}[data-theme=high-contrast] .menu-item[data-v-658c3813]{color:#fff}[data-theme=high-contrast] .menu-item[data-v-658c3813]:hover{background:#333;border:1px solid #ff0}[data-theme=high-contrast] .menu-item.danger[data-v-658c3813]{color:#ff6b6b}[data-theme=high-contrast] .menu-item.danger[data-v-658c3813]:hover{background:hsla(0,100%,71%,.2);border-color:#ff6b6b}[data-theme=high-contrast] .menu-divider[data-v-658c3813]{background:#fff}[data-theme=light] .tree-header[data-v-658c3813]{background:rgba(0,0,0,.03);border-bottom-color:#e0e0e0}[data-theme=light] .tree-title[data-v-658c3813]{color:#333}[data-theme=light] .action-btn[data-v-658c3813]{color:rgba(0,0,0,.6)}[data-theme=light] .action-btn[data-v-658c3813]:hover{color:rgba(0,0,0,.9);background:rgba(0,0,0,.08)}[data-theme=light] .new-file-btn[data-v-658c3813]:hover{color:#52c41a}[data-theme=light] .import-btn[data-v-658c3813]:hover{color:#d48806}[data-theme=light] .bulk-upload-btn[data-v-658c3813]{color:rgba(0,0,0,.7)!important}[data-theme=light] .bulk-upload-btn[data-v-658c3813]:hover{color:#7b1fa2!important}:root[data-theme=light] .refresh-btn[data-v-658c3813]:hover{color:#1890ff}:root[data-theme=light] .ide-project-list[data-v-658c3813]{background:#f8f8f8;color:#333}:root[data-theme=light] .ide-project-list .el-tree-node__content[data-v-658c3813],:root[data-theme=light] .node-label[data-v-658c3813]{color:#000!important}:root[data-theme=light] .ide-project-list .el-tree-node.is-current>.el-tree-node__content[data-v-658c3813]{background-color:#f8fbff!important}:root[data-theme=light] .ide-project-list .el-tree-node__content[data-v-658c3813]:hover{background-color:#fafafa!important}:root[data-theme=light] .ide-project-list .el-tree-node:focus>.el-tree-node__content[data-v-658c3813]{background:#f8fbff!important}:root[data-theme=light] .tree[data-v-658c3813]::-webkit-scrollbar-thumb{background:silver}:root[data-theme=light] .tree[data-v-658c3813]::-webkit-scrollbar-track{background:#f0f0f0}[data-theme=high-contrast] .ide-project-list[data-v-658c3813]{background:#000;color:#fff}[data-theme=high-contrast] .ide-project-list .el-tree-node.is-current>.el-tree-node__content[data-v-658c3813]{background-color:#ff0!important;color:#000!important}[data-theme=high-contrast] .ide-project-list .el-tree-node__content[data-v-658c3813]:hover{background-color:#333!important;border:1px solid #ff0!important}[data-theme=high-contrast] .ide-project-list .el-tree-node:focus>.el-tree-node__content[data-v-658c3813]{background:#ff0!important;color:#000!important}[data-theme=high-contrast] .tree[data-v-658c3813]::-webkit-scrollbar-thumb{background:#fff}[data-theme=high-contrast] .tree[data-v-658c3813]::-webkit-scrollbar-track{background:#333}[data-theme=high-contrast] .action-btn[data-v-658c3813]{color:#fff}[data-theme=high-contrast] .action-btn[data-v-658c3813]:hover{background:#333;border:1px solid #ff0}[data-theme=high-contrast] .bulk-upload-btn[data-v-658c3813]:hover{color:#f0f}.menu-item.disabled[data-v-658c3813]{opacity:.5;cursor:not-allowed;color:var(--text-disabled,#6b6b6b)!important}.menu-item.disabled[data-v-658c3813]:hover{background:transparent!important}[data-theme=light] .menu-item.disabled[data-v-658c3813]{color:#ccc!important}[data-theme=high-contrast] .menu-item.disabled[data-v-658c3813]{color:#666!important;opacity:.7}.settings-modal-overlay[data-v-66da283c]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998;display:flex;align-items:center;justify-content:center}.settings-modal[data-v-66da283c]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:450px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.settings-header[data-v-66da283c]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.settings-header h3[data-v-66da283c]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-66da283c]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s;background:transparent;border:none;display:flex;align-items:center;justify-content:center}.close-btn[data-v-66da283c]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.settings-body[data-v-66da283c]{flex:1;padding:20px;overflow-y:auto;max-height:60vh}.setting-item[data-v-66da283c]{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--border-color,#464647)}.setting-item[data-v-66da283c]:last-child{border-bottom:none}.setting-item label[data-v-66da283c]{font-size:14px;font-weight:500;color:var(--text-primary,#ccc);flex:1}.setting-select[data-v-66da283c]{width:150px;padding:8px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;transition:all .2s}.setting-select[data-v-66da283c]:focus{outline:none;border-color:var(--accent-color,#007acc);background:var(--input-focus-bg,#383838)}.switch-container[data-v-66da283c]{cursor:pointer}.switch[data-v-66da283c]{width:44px;height:24px;background:var(--switch-bg-off,#404040);border:1px solid var(--border-color,#464647);border-radius:12px;position:relative;transition:all .3s}.switch-on[data-v-66da283c]{background:var(--accent-color,#007acc);border-color:var(--accent-color,#007acc)}.switch-handle[data-v-66da283c]{width:18px;height:18px;background:var(--switch-handle,#fff);border-radius:50%;position:absolute;top:2px;left:2px;transition:all .3s}.switch-on .switch-handle[data-v-66da283c]{left:22px}.settings-footer[data-v-66da283c]{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-color,#464647);display:flex;justify-content:center}.close-button[data-v-66da283c]{width:100%;padding:10px 20px;background:var(--accent-color,#007acc);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;box-sizing:border-box}.close-button[data-v-66da283c]:hover{background:var(--accent-hover,#005a9e)}[data-theme=light] .settings-modal[data-v-66da283c]{background:#fff;border-color:#d0d0d0;box-shadow:0 8px 32px rgba(0,0,0,.15)}[data-theme=light] .settings-header[data-v-66da283c]{border-bottom-color:#e0e0e0}[data-theme=light] .settings-header h3[data-v-66da283c]{color:#333}[data-theme=light] .close-btn[data-v-66da283c]{color:rgba(0,0,0,.6)}[data-theme=light] .close-btn[data-v-66da283c]:hover{color:rgba(0,0,0,.9);background:rgba(0,0,0,.08)}[data-theme=light] .setting-item[data-v-66da283c]{border-bottom-color:#e0e0e0}[data-theme=light] .setting-item label[data-v-66da283c]{color:#333}[data-theme=light] .setting-select[data-v-66da283c]{background:#f8f8f8;border-color:#d0d0d0;color:#333}[data-theme=light] .setting-select[data-v-66da283c]:focus{background:#fff;border-color:#1890ff}[data-theme=light] .switch[data-v-66da283c]{background:#e0e0e0;border-color:#d0d0d0}[data-theme=light] .switch-on[data-v-66da283c]{background:#1890ff;border-color:#1890ff}[data-theme=light] .switch-handle[data-v-66da283c]{background:#fff}[data-theme=light] .settings-footer[data-v-66da283c]{border-top-color:#e0e0e0}[data-theme=light] .close-button[data-v-66da283c]{background:#1890ff}[data-theme=light] .close-button[data-v-66da283c]:hover{background:#096dd9}[data-theme=high-contrast] .settings-modal[data-v-66da283c]{background:#000;border:2px solid #fff;box-shadow:0 8px 32px hsla(0,0%,100%,.3)}[data-theme=high-contrast] .settings-header[data-v-66da283c]{border-bottom:2px solid #fff}[data-theme=high-contrast] .close-btn[data-v-66da283c],[data-theme=high-contrast] .settings-header h3[data-v-66da283c]{color:#fff}[data-theme=high-contrast] .close-btn[data-v-66da283c]:hover{background:#333;border:1px solid #ff0}[data-theme=high-contrast] .setting-item[data-v-66da283c]{border-bottom:2px solid #fff}[data-theme=high-contrast] .setting-item label[data-v-66da283c]{color:#fff}[data-theme=high-contrast] .setting-select[data-v-66da283c]{background:#000;border:2px solid #fff;color:#fff}[data-theme=high-contrast] .setting-select[data-v-66da283c]:focus{border-color:#ff0}[data-theme=high-contrast] .switch[data-v-66da283c]{background:#333;border:2px solid #fff}[data-theme=high-contrast] .switch-on[data-v-66da283c]{background:#00bfff;border-color:#00bfff}[data-theme=high-contrast] .switch-handle[data-v-66da283c]{background:#fff}[data-theme=high-contrast] .settings-footer[data-v-66da283c]{border-top:2px solid #fff}[data-theme=high-contrast] .close-button[data-v-66da283c]{background:#00bfff;color:#000;border:2px solid #fff}[data-theme=high-contrast] .close-button[data-v-66da283c]:hover{background:#ff0;border-color:#ff0}.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging .splitpanes__pane,:has(.splitpanes--dragging){-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out;will-change:width}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out;will-change:height}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.default-theme.splitpanes .splitpanes__pane{background-color:#f2f2f2}.default-theme.splitpanes .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.default-theme.splitpanes .splitpanes__splitter:after,.default-theme.splitpanes .splitpanes__splitter:before{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.default-theme.splitpanes .splitpanes__splitter:hover:after,.default-theme.splitpanes .splitpanes__splitter:hover:before{background-color:#00000040}.default-theme.splitpanes .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{transform:translateY(-50%);width:1px;height:30px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{transform:translate(-50%);width:30px;height:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px} \ No newline at end of file diff --git a/dist/static/css/541.db3e8857.css b/dist/static/css/541.db3e8857.css new file mode 100644 index 00000000..226e1fb7 --- /dev/null +++ b/dist/static/css/541.db3e8857.css @@ -0,0 +1 @@ +.coming-soon[data-v-d64c568e]{text-align:center;padding:80px 24px}.coming-soon .icon[data-v-d64c568e]{font-size:64px}.coming-soon h3[data-v-d64c568e]{margin:24px 0 12px;color:var(--admin-text-white)}.coming-soon p[data-v-d64c568e]{color:var(--admin-text-secondary)} \ No newline at end of file diff --git a/dist/static/css/568.2d4d7288.css b/dist/static/css/568.2d4d7288.css deleted file mode 100644 index 3fe4c5bb..00000000 --- a/dist/static/css/568.2d4d7288.css +++ /dev/null @@ -1 +0,0 @@ -.login-modal-overlay[data-v-f34a53b2]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998;display:flex;align-items:center;justify-content:center}.login-modal[data-v-f34a53b2]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:450px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.login-header[data-v-f34a53b2]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.login-header h3[data-v-f34a53b2]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-f34a53b2]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s;background:transparent;border:none;display:flex;align-items:center;justify-content:center}.close-btn[data-v-f34a53b2]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.login-body[data-v-f34a53b2]{flex:1;padding:20px;overflow-y:auto;max-height:60vh}.form-group[data-v-f34a53b2]{margin-bottom:20px}.form-group label[data-v-f34a53b2]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.form-group input[data-v-f34a53b2]{width:100%;box-sizing:border-box;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;transition:all .2s}.form-group input[data-v-f34a53b2]:focus{outline:none;border-color:var(--accent-color,#007acc);background:var(--input-focus-bg,#383838)}.form-group input[data-v-f34a53b2]::-moz-placeholder{color:var(--text-disabled,#6b6b6b)}.form-group input[data-v-f34a53b2]::placeholder{color:var(--text-disabled,#6b6b6b)}.form-group input[data-v-f34a53b2]:disabled{background:var(--input-disabled-bg,#1a1a1a);cursor:not-allowed;opacity:.6}.error-message[data-v-f34a53b2]{background:var(--error-bg,rgba(244,71,71,.1));color:var(--error-color,#f44747);padding:10px 12px;border-radius:4px;border:1px solid var(--error-color,#f44747);margin-bottom:15px;font-size:14px}.info-message[data-v-f34a53b2]{background:var(--info-bg,rgba(0,122,204,.1));color:var(--info-color,#007acc);padding:10px 12px;border-radius:4px;border:1px solid var(--info-color,#007acc);margin-bottom:15px;font-size:13px}.info-message code[data-v-f34a53b2]{background:var(--accent-color,#007acc);color:#fff;padding:2px 4px;border-radius:3px;font-size:12px}.login-btn[data-v-f34a53b2]{width:100%;padding:8px 20px;background:var(--accent-color,#007acc);color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;box-sizing:border-box}.login-btn[data-v-f34a53b2]:hover:not(:disabled){background:var(--accent-hover,#005a9e)}.login-btn[data-v-f34a53b2]:disabled{opacity:.5;cursor:not-allowed}[data-theme=light] .login-modal[data-v-f34a53b2]{background:#fff;border-color:#d0d0d0;box-shadow:0 8px 32px rgba(0,0,0,.15)}[data-theme=light] .login-header[data-v-f34a53b2]{border-bottom-color:#e0e0e0}[data-theme=light] .login-header h3[data-v-f34a53b2]{color:#333}[data-theme=light] .close-btn[data-v-f34a53b2]{color:rgba(0,0,0,.6)}[data-theme=light] .close-btn[data-v-f34a53b2]:hover{color:rgba(0,0,0,.9);background:rgba(0,0,0,.08)}[data-theme=light] .form-group label[data-v-f34a53b2]{color:#333}[data-theme=light] .form-group input[data-v-f34a53b2]{background:#f8f8f8;border-color:#d0d0d0;color:#333}[data-theme=light] .form-group input[data-v-f34a53b2]:focus{background:#fff;border-color:#1890ff}[data-theme=light] .form-group input[data-v-f34a53b2]::-moz-placeholder{color:#999}[data-theme=light] .form-group input[data-v-f34a53b2]::placeholder{color:#999}[data-theme=light] .form-group input[data-v-f34a53b2]:disabled{background:#f0f0f0}[data-theme=light] .error-message[data-v-f34a53b2]{background:#fff2f0;color:#d63384;border-color:#d63384}[data-theme=light] .info-message[data-v-f34a53b2]{background:#e6f7ff;color:#1890ff;border-color:#1890ff}[data-theme=light] .info-message code[data-v-f34a53b2],[data-theme=light] .login-btn[data-v-f34a53b2]{background:#1890ff}[data-theme=light] .login-btn[data-v-f34a53b2]:hover:not(:disabled){background:#096dd9}[data-theme=high-contrast] .login-modal[data-v-f34a53b2]{background:#000;border:2px solid #fff;box-shadow:0 8px 32px hsla(0,0%,100%,.3)}[data-theme=high-contrast] .login-header[data-v-f34a53b2]{border-bottom:2px solid #fff}[data-theme=high-contrast] .close-btn[data-v-f34a53b2],[data-theme=high-contrast] .login-header h3[data-v-f34a53b2]{color:#fff}[data-theme=high-contrast] .close-btn[data-v-f34a53b2]:hover{background:#333;border:1px solid #ff0}[data-theme=high-contrast] .form-group label[data-v-f34a53b2]{color:#fff}[data-theme=high-contrast] .form-group input[data-v-f34a53b2]{background:#000;border:2px solid #fff;color:#fff}[data-theme=high-contrast] .form-group input[data-v-f34a53b2]:focus{border-color:#ff0}[data-theme=high-contrast] .form-group input[data-v-f34a53b2]::-moz-placeholder{color:#ccc}[data-theme=high-contrast] .form-group input[data-v-f34a53b2]::placeholder{color:#ccc}[data-theme=high-contrast] .error-message[data-v-f34a53b2]{background:#000;color:#ff6b6b;border:2px solid #ff6b6b}[data-theme=high-contrast] .info-message[data-v-f34a53b2]{background:#000;color:#00bfff;border:2px solid #00bfff}[data-theme=high-contrast] .info-message code[data-v-f34a53b2]{background:#00bfff;color:#000}[data-theme=high-contrast] .login-btn[data-v-f34a53b2]{background:#00bfff;color:#000;border:2px solid #fff}[data-theme=high-contrast] .login-btn[data-v-f34a53b2]:hover:not(:disabled){background:#ff0;border-color:#ff0}.file-browser-dialog{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.custom-dialog .el-dialog{background:var(--bg-primary,#303030)!important;border:1px solid var(--border-color,#464647)!important;box-shadow:0 8px 32px rgba(0,0,0,.4)!important}.custom-dialog{--el-dialog-bg-color:unset!important}.custom-dialog .el-dialog__header{background:var(--bg-secondary,#3f4955)!important;padding:16px 24px!important;border-bottom:1px solid var(--border-color,#464647)!important}.custom-dialog .el-dialog__title{color:var(--text-primary,#fff)!important;font-size:18px!important;font-weight:500!important}.custom-dialog .el-dialog__headerbtn{color:var(--text-primary,#fff)!important;top:16px!important;right:20px!important}.custom-dialog .el-dialog__headerbtn:hover{color:var(--btn-primary-bg,#4fc08d)!important}.custom-dialog .el-dialog__body{background:var(--bg-primary,#303030)!important;color:var(--text-primary,#ccc)!important;padding:20px!important}.custom-dialog .el-dialog__footer{background:var(--bg-primary,#303030)!important;border-top:1px solid var(--border-color,#464647)!important;padding:16px 20px!important}.file-browser-content{display:flex;flex-direction:column;gap:16px}.current-path{padding:10px 12px;background:var(--bg-secondary,#252526);border-radius:4px;display:flex;align-items:center;gap:8px;border:1px solid var(--border-color,#464647)}.path-label,.selected-label{font-weight:500;color:var(--text-secondary,#969696);font-size:14px}.path-value,.selected-value{color:var(--text-primary,#ccc);font-family:Monaco,Consolas,monospace;font-size:13px}.file-tree-container{border:1px solid var(--border-color,#464647);border-radius:4px;padding:8px;max-height:300px;overflow-y:auto;background:var(--bg-primary,#1e1e1e)}.node-item{display:flex;align-items:center;gap:6px;padding:2px 0}.node-icon{width:16px;height:16px}.node-label{font-size:14px;color:var(--text-primary,#ccc)}.selected-file{padding:10px 12px;background:var(--active-bg,#094771);border-radius:4px;display:flex;align-items:center;gap:8px;border:1px solid var(--border-color,#464647)}.dialog-footer{display:flex;justify-content:flex-end;gap:12px}.custom-dialog .el-button{background:var(--btn-secondary-bg,#484848)!important;border:1px solid var(--border-color,#464647)!important;color:var(--text-primary,#ccc)!important;font-size:14px!important;padding:8px 20px!important;height:auto!important;min-height:36px!important;border-radius:4px!important;font-weight:500!important}.custom-dialog .el-button:hover{background:var(--hover-bg,#5a5a5a)!important;border-color:var(--border-color,#464647)!important}.custom-dialog .el-button--primary{background:var(--btn-primary-bg,#007acc)!important;border-color:var(--btn-primary-bg,#007acc)!important;color:#fff!important}.custom-dialog .el-button--primary:hover{background:var(--btn-primary-hover,#005a9e)!important;border-color:var(--btn-primary-hover,#005a9e)!important}.custom-dialog .el-button--primary.is-disabled{background:var(--btn-primary-bg,#007acc)!important;border-color:var(--btn-primary-bg,#007acc)!important;opacity:.5!important;color:#fff!important}.file-browser-dialog .el-tree,.file-browser-dialog .el-tree-node__content{background:transparent!important;color:var(--text-primary,#ccc)!important}.file-browser-dialog .el-tree-node__content{border:none!important;padding:4px 8px!important;border-radius:4px!important;margin:2px 0!important}.file-browser-dialog .el-tree-node__content:hover{background:var(--hover-bg,#2a2d2e)!important;color:var(--text-primary,#fff)!important}.file-browser-dialog .el-tree-node.is-current>.el-tree-node__content{background:var(--active-bg,#094771)!important;color:var(--text-primary,#fff)!important}.file-browser-dialog .el-tree-node__expand-icon{color:var(--text-secondary,#969696)!important}.file-browser-dialog .el-tree-node__expand-icon.is-leaf{color:transparent!important}.file-tree-container::-webkit-scrollbar{width:8px;height:8px}.file-tree-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb,#545a5e);border-radius:4px}.file-tree-container::-webkit-scrollbar-track{background:var(--scrollbar-track,#2f2f2f)}.dialog-cover[data-v-6215f3ba]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998}.bulk-upload-dialog[data-v-6215f3ba]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:800px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dialog-header[data-v-6215f3ba]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.dialog-header h3[data-v-6215f3ba]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-6215f3ba]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s}.close-btn[data-v-6215f3ba]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.dialog-body[data-v-6215f3ba]{flex:1;padding:20px;overflow-y:auto;max-height:70vh}.folder-section[data-v-6215f3ba],.preview-section[data-v-6215f3ba],.students-section[data-v-6215f3ba],.upload-section[data-v-6215f3ba]{margin-bottom:24px}.folder-section label[data-v-6215f3ba],.preview-section label[data-v-6215f3ba],.students-section label[data-v-6215f3ba],.upload-section label[data-v-6215f3ba]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.target-selection[data-v-6215f3ba]{display:flex;gap:12px;margin-bottom:16px}.target-btn[data-v-6215f3ba]{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:1px solid var(--border-color,#464647);border-radius:4px;background:var(--input-bg,#2d2d30);color:var(--text-secondary,#969696);cursor:pointer;font-size:14px;transition:all .2s}.target-btn[data-v-6215f3ba]:hover{background:var(--hover-bg,#383838);border-color:var(--accent-color,#007acc)}.target-btn.active[data-v-6215f3ba]{background:var(--accent-color,#007acc);color:#fff;border-color:var(--accent-color,#007acc)}.specific-students[data-v-6215f3ba]{margin-top:12px}.search-input[data-v-6215f3ba]{width:100%;padding:8px 12px;color:var(--text-primary,#ccc);font-size:14px;margin-bottom:8px}.search-input[data-v-6215f3ba],.student-list[data-v-6215f3ba]{background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px}.student-list[data-v-6215f3ba]{max-height:200px;overflow-y:auto}.student-item[data-v-6215f3ba]{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border-color,#464647)}.student-item[data-v-6215f3ba]:last-child{border-bottom:none}.student-item[data-v-6215f3ba]:hover{background:var(--hover-bg,#094771)}.student-item.selected[data-v-6215f3ba]{background:var(--selected-bg,rgba(0,122,204,.2))}.student-info[data-v-6215f3ba]{display:flex;flex-direction:column}.username[data-v-6215f3ba]{font-size:14px;color:var(--text-primary,#ccc);font-weight:500}.fullname[data-v-6215f3ba]{font-size:12px;color:var(--text-secondary,#969696)}.selection-summary[data-v-6215f3ba]{margin-top:8px;font-size:13px;color:var(--text-secondary,#969696)}.folder-input-group[data-v-6215f3ba]{display:flex;align-items:center;gap:8px}.folder-input[data-v-6215f3ba]{flex:1;padding:8px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px}.path-separator[data-v-6215f3ba]{color:var(--text-secondary,#969696);font-size:18px}.path-preview[data-v-6215f3ba]{margin-top:8px;font-size:13px;color:var(--text-secondary,#969696)}.path-preview code[data-v-6215f3ba]{background:var(--input-bg,#2d2d30);padding:2px 6px;border-radius:3px;font-family:Monaco,Menlo,monospace;font-size:12px}.upload-mode-toggle[data-v-6215f3ba]{display:flex;gap:8px;margin-bottom:12px;border:1px solid var(--border-color,#464647);border-radius:4px;padding:4px;background:var(--input-bg,#2d2d30);width:-moz-fit-content;width:fit-content}.mode-btn[data-v-6215f3ba]{padding:6px 16px;border:none;border-radius:3px;background:transparent;color:var(--text-secondary,#969696);cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.mode-btn[data-v-6215f3ba]:hover{background:var(--hover-bg,hsla(0,0%,100%,.05));color:var(--text-primary,#ccc)}.mode-btn.active[data-v-6215f3ba]{background:var(--accent-color,#007acc);color:#fff}.file-drop-area[data-v-6215f3ba]{border:2px dashed var(--border-color,#464647);border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--input-bg,#2d2d30)}.file-drop-area.drag-over[data-v-6215f3ba],.file-drop-area[data-v-6215f3ba]:hover{border-color:var(--accent-color,#007acc);background:var(--hover-bg,rgba(0,122,204,.1))}.upload-icon[data-v-6215f3ba]{color:var(--text-secondary,#969696);margin-bottom:16px}.upload-text .main-text[data-v-6215f3ba]{font-size:16px;color:var(--text-primary,#ccc);margin-bottom:8px}.upload-text .sub-text[data-v-6215f3ba]{font-size:13px;color:var(--text-secondary,#969696)}.error-hint[data-v-6215f3ba]{margin-top:8px;font-size:12px;color:var(--error-color,#f44747)}.files-preview[data-v-6215f3ba]{border:1px solid var(--border-color,#464647);border-radius:4px;padding:12px;background:var(--input-bg,#2d2d30)}.file-preview-item[data-v-6215f3ba]{display:flex;align-items:center;gap:12px;padding:8px;margin-bottom:8px;background:var(--bg-secondary,#252526);border-radius:4px}.file-preview-item[data-v-6215f3ba]:last-child{margin-bottom:0}.file-icon[data-v-6215f3ba]{width:20px;height:20px}.file-name[data-v-6215f3ba]{flex:1;font-size:14px;color:var(--text-primary,#ccc)}.file-size[data-v-6215f3ba]{font-size:12px;color:var(--text-secondary,#969696)}.more-files[data-v-6215f3ba]{margin-top:8px;text-align:center;font-size:13px;color:var(--text-secondary,#969696)}.dialog-footer[data-v-6215f3ba]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color,#464647)}.btn-cancel[data-v-6215f3ba],.btn-upload[data-v-6215f3ba]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel[data-v-6215f3ba]{background:var(--button-secondary-bg,#2d2d30);color:var(--text-primary,#ccc);border:1px solid var(--border-color,#464647)}.btn-cancel[data-v-6215f3ba]:hover{background:var(--hover-bg,#383838)}.btn-upload[data-v-6215f3ba]{background:var(--accent-color,#007acc);color:#fff}.btn-upload[data-v-6215f3ba]:hover:not(:disabled){background:var(--accent-hover,#005a9e)}.btn-upload[data-v-6215f3ba]:disabled{opacity:.5;cursor:not-allowed}.dialog-cover[data-v-5cc52b6a]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998}.import-file-dialog[data-v-5cc52b6a]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:700px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dialog-header[data-v-5cc52b6a]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.dialog-header h3[data-v-5cc52b6a]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-5cc52b6a]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s}.close-btn[data-v-5cc52b6a]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.dialog-body[data-v-5cc52b6a]{flex:1;padding:20px;overflow-y:auto;max-height:60vh}.directory-section[data-v-5cc52b6a],.preview-section[data-v-5cc52b6a],.selected-files-section[data-v-5cc52b6a],.upload-section[data-v-5cc52b6a]{margin-bottom:20px}.upload-mode-toggle[data-v-5cc52b6a]{display:flex;gap:8px;margin-bottom:12px;border:1px solid var(--border-color,#464647);border-radius:4px;padding:4px;background:var(--input-bg,#2d2d30);width:-moz-fit-content;width:fit-content}.mode-btn[data-v-5cc52b6a]{padding:6px 16px;border:none;border-radius:3px;background:transparent;color:var(--text-secondary,#969696);cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.mode-btn[data-v-5cc52b6a]:hover{background:var(--hover-bg,hsla(0,0%,100%,.05));color:var(--text-primary,#ccc)}.mode-btn.active[data-v-5cc52b6a]{background:var(--accent-color,#007acc);color:#fff}.directory-section label[data-v-5cc52b6a],.preview-section label[data-v-5cc52b6a],.selected-files-section label[data-v-5cc52b6a],.upload-section label[data-v-5cc52b6a]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.directory-nav[data-v-5cc52b6a]{position:relative}.current-path[data-v-5cc52b6a]{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;cursor:pointer;transition:all .2s;color:var(--text-primary,#ccc)}.current-path[data-v-5cc52b6a]:hover{background:var(--hover-bg,#383838);border-color:var(--accent-color,#007acc)}.current-path .chevron[data-v-5cc52b6a]{margin-left:auto}.directory-tree[data-v-5cc52b6a]{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--dropdown-bg,#252526);border:1px solid var(--border-color,#464647);border-radius:4px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.3)}.directory-item[data-v-5cc52b6a]{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;transition:background .2s;color:var(--text-primary,#ccc);font-size:13px}.directory-item[data-v-5cc52b6a]:hover{background:var(--hover-bg,#094771)}.directory-item.selected[data-v-5cc52b6a]{background:var(--selected-bg,#094771)}.directory-item.root-item[data-v-5cc52b6a]{font-weight:500;border-bottom:1px solid var(--border-color,#464647)}.file-drop-area[data-v-5cc52b6a]{border:2px dashed var(--border-color,#464647);border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background:var(--input-bg,#2d2d30)}.file-drop-area.drag-over[data-v-5cc52b6a],.file-drop-area[data-v-5cc52b6a]:hover{border-color:var(--accent-color,#007acc);background:var(--hover-bg,rgba(0,122,204,.1))}.upload-icon[data-v-5cc52b6a]{color:var(--text-secondary,#969696);margin-bottom:16px}.upload-text .main-text[data-v-5cc52b6a]{font-size:16px;color:var(--text-primary,#ccc);margin-bottom:8px}.upload-text .sub-text[data-v-5cc52b6a]{font-size:13px;color:var(--text-secondary,#969696)}.error-hint[data-v-5cc52b6a]{margin-top:8px;font-size:12px;color:var(--error-color,#f44747)}.selected-files-list[data-v-5cc52b6a]{max-height:200px;overflow-y:auto;border:1px solid var(--border-color,#464647);border-radius:4px;background:var(--input-bg,#2d2d30)}.file-item[data-v-5cc52b6a]{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid var(--border-color,#464647)}.file-item[data-v-5cc52b6a]:last-child{border-bottom:none}.file-info[data-v-5cc52b6a]{display:flex;align-items:center;gap:12px;flex:1}.file-icon[data-v-5cc52b6a]{width:20px;height:20px}.file-details[data-v-5cc52b6a]{flex:1}.file-name[data-v-5cc52b6a]{font-size:14px;color:var(--text-primary,#ccc);margin-bottom:2px}.file-size[data-v-5cc52b6a]{font-size:12px;color:var(--text-secondary,#969696)}.remove-btn[data-v-5cc52b6a]{background:transparent;border:none;color:var(--text-secondary,#969696);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.remove-btn[data-v-5cc52b6a]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--error-color,#f44747)}.import-preview[data-v-5cc52b6a]{padding:12px;background:var(--preview-bg,#252526);border:1px solid var(--border-color,#464647);border-radius:4px}.destination-info[data-v-5cc52b6a]{display:flex;align-items:center;gap:12px}.destination-path[data-v-5cc52b6a]{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:var(--text-primary,#ccc);word-break:break-all}.file-count[data-v-5cc52b6a]{font-size:12px;color:var(--text-secondary,#969696);margin-top:4px}.dialog-footer[data-v-5cc52b6a]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color,#464647)}.btn-cancel[data-v-5cc52b6a],.btn-import[data-v-5cc52b6a]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel[data-v-5cc52b6a]{background:var(--button-secondary-bg,#2d2d30);color:var(--text-primary,#ccc);border:1px solid var(--border-color,#464647)}.btn-cancel[data-v-5cc52b6a]:hover{background:var(--hover-bg,#383838)}.btn-import[data-v-5cc52b6a]{background:var(--accent-color,#007acc);color:#fff}.btn-import[data-v-5cc52b6a]:hover:not(:disabled){background:var(--accent-hover,#005a9e)}.btn-import[data-v-5cc52b6a]:disabled{opacity:.5;cursor:not-allowed}.dialog-body[data-v-5cc52b6a]::-webkit-scrollbar,.directory-tree[data-v-5cc52b6a]::-webkit-scrollbar,.selected-files-list[data-v-5cc52b6a]::-webkit-scrollbar{width:8px}.dialog-body[data-v-5cc52b6a]::-webkit-scrollbar-track,.directory-tree[data-v-5cc52b6a]::-webkit-scrollbar-track,.selected-files-list[data-v-5cc52b6a]::-webkit-scrollbar-track{background:var(--scrollbar-track,#1e1e1e)}.dialog-body[data-v-5cc52b6a]::-webkit-scrollbar-thumb,.directory-tree[data-v-5cc52b6a]::-webkit-scrollbar-thumb,.selected-files-list[data-v-5cc52b6a]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb,#464647);border-radius:4px}.dialog-body[data-v-5cc52b6a]::-webkit-scrollbar-thumb:hover,.directory-tree[data-v-5cc52b6a]::-webkit-scrollbar-thumb:hover,.selected-files-list[data-v-5cc52b6a]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover,#5a5a5a)}.dialog-cover[data-v-3422cd8f]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998}.new-folder-dialog[data-v-3422cd8f]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:600px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dialog-header[data-v-3422cd8f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.dialog-header h3[data-v-3422cd8f]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-3422cd8f]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s}.close-btn[data-v-3422cd8f]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.dialog-body[data-v-3422cd8f]{flex:1;padding:20px;overflow-y:auto;max-height:60vh}.directory-section[data-v-3422cd8f],.foldername-section[data-v-3422cd8f],.preview-section[data-v-3422cd8f]{margin-bottom:20px}.directory-section label[data-v-3422cd8f],.foldername-section label[data-v-3422cd8f],.preview-section label[data-v-3422cd8f]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.directory-nav[data-v-3422cd8f]{position:relative}.current-path[data-v-3422cd8f]{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;cursor:pointer;transition:all .2s;color:var(--text-primary,#ccc)}.current-path[data-v-3422cd8f]:hover{background:var(--hover-bg,#383838);border-color:var(--accent-color,#007acc)}.current-path .chevron[data-v-3422cd8f]{margin-left:auto}.directory-tree[data-v-3422cd8f]{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--dropdown-bg,#252526);border:1px solid var(--border-color,#464647);border-radius:4px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.3)}.directory-item[data-v-3422cd8f]{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;transition:background .2s;color:var(--text-primary,#ccc);font-size:13px}.directory-item.selected[data-v-3422cd8f]{background:var(--selected-bg,#094771)}.directory-item.root-item[data-v-3422cd8f]{font-weight:500;border-bottom:1px solid var(--border-color,#464647)}.directory-item.collapsible[data-v-3422cd8f]{cursor:pointer}.directory-item[data-v-3422cd8f]:hover{background:var(--hover-bg,#094771)}.folder-chevron[data-v-3422cd8f]{cursor:pointer;transition:transform .2s ease;padding:2px;border-radius:2px;margin-right:4px}.folder-chevron[data-v-3422cd8f]:hover{background:hsla(0,0%,100%,.1)}.folder-spacer[data-v-3422cd8f]{width:14px;height:14px;display:inline-block;margin-right:4px}.foldername-input-wrapper[data-v-3422cd8f]{display:flex;align-items:center;gap:8px}.foldername-input[data-v-3422cd8f]{flex:1;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;transition:all .2s}.foldername-input[data-v-3422cd8f]:focus{outline:none;border-color:var(--accent-color,#007acc);background:var(--input-focus-bg,#383838)}.foldername-input[data-v-3422cd8f]::-moz-placeholder{color:var(--text-disabled,#6b6b6b)}.foldername-input[data-v-3422cd8f]::placeholder{color:var(--text-disabled,#6b6b6b)}.folder-type-icon[data-v-3422cd8f]{color:var(--text-secondary,#969696)}.error-hint[data-v-3422cd8f],.folder-hint[data-v-3422cd8f]{margin-top:6px;font-size:12px;color:var(--text-secondary,#969696)}.error-hint[data-v-3422cd8f]{color:var(--error-color,#f44747)}.folder-preview[data-v-3422cd8f]{padding:12px;background:var(--preview-bg,#252526);border:1px solid var(--border-color,#464647);border-radius:4px}.folder-info[data-v-3422cd8f]{display:flex;align-items:center;gap:12px}.folder-path[data-v-3422cd8f]{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:var(--text-primary,#ccc);word-break:break-all}.folder-type[data-v-3422cd8f]{font-size:12px;color:var(--text-secondary,#969696);margin-top:4px}.dialog-footer[data-v-3422cd8f]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color,#464647)}.btn-cancel[data-v-3422cd8f],.btn-create[data-v-3422cd8f]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel[data-v-3422cd8f]{background:var(--button-secondary-bg,#2d2d30);color:var(--text-primary,#ccc);border:1px solid var(--border-color,#464647)}.btn-cancel[data-v-3422cd8f]:hover{background:var(--hover-bg,#383838)}.btn-create[data-v-3422cd8f]{background:var(--accent-color,#007acc);color:#fff}.btn-create[data-v-3422cd8f]:hover:not(:disabled){background:var(--accent-hover,#005a9e)}.btn-create[data-v-3422cd8f]:disabled{opacity:.5;cursor:not-allowed}.dialog-body[data-v-3422cd8f]::-webkit-scrollbar,.directory-tree[data-v-3422cd8f]::-webkit-scrollbar{width:8px}.dialog-body[data-v-3422cd8f]::-webkit-scrollbar-track,.directory-tree[data-v-3422cd8f]::-webkit-scrollbar-track{background:var(--scrollbar-track,#1e1e1e)}.dialog-body[data-v-3422cd8f]::-webkit-scrollbar-thumb,.directory-tree[data-v-3422cd8f]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb,#464647);border-radius:4px}.dialog-body[data-v-3422cd8f]::-webkit-scrollbar-thumb:hover,.directory-tree[data-v-3422cd8f]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover,#5a5a5a)}[data-theme=light] .dialog-overlay[data-v-3422cd8f]{background:rgba(0,0,0,.3)}[data-theme=light] .dialog-content[data-v-3422cd8f]{background:#fff;border-color:#d0d0d0;box-shadow:0 8px 32px rgba(0,0,0,.15)}[data-theme=light] .dialog-header[data-v-3422cd8f]{background:#fff;border-bottom-color:#e0e0e0}[data-theme=light] .dialog-header h3[data-v-3422cd8f]{color:#333}[data-theme=light] .close-btn[data-v-3422cd8f]{color:rgba(0,0,0,.6)}[data-theme=light] .close-btn[data-v-3422cd8f]:hover{color:rgba(0,0,0,.9);background:rgba(0,0,0,.08)}[data-theme=light] .current-path[data-v-3422cd8f]{background:#f8f8f8;border-color:#d0d0d0;color:#333}[data-theme=light] .current-path[data-v-3422cd8f]:hover{background:#f0f0f0;border-color:#1890ff}[data-theme=light] .directory-dropdown[data-v-3422cd8f]{background:#fff;border-color:#d0d0d0;box-shadow:0 4px 12px rgba(0,0,0,.15)}[data-theme=light] .directory-item[data-v-3422cd8f]{color:#333}[data-theme=light] .directory-item[data-v-3422cd8f]:hover{background:#fafafa}[data-theme=light] .directory-item.selected[data-v-3422cd8f]{background:#f0f8ff}[data-theme=light] .foldername-input[data-v-3422cd8f]{background:#fff;border-color:#d0d0d0;color:#333}[data-theme=light] .foldername-input[data-v-3422cd8f]:focus{border-color:#1890ff;background:#fff}[data-theme=light] .foldername-input[data-v-3422cd8f]::-moz-placeholder{color:#999}[data-theme=light] .foldername-input[data-v-3422cd8f]::placeholder{color:#999}[data-theme=light] .btn-cancel[data-v-3422cd8f]{background:#f8f8f8;color:#333;border-color:#d0d0d0}[data-theme=light] .btn-cancel[data-v-3422cd8f]:hover{background:#e8e8e8}[data-theme=light] .btn-create[data-v-3422cd8f]{background:#1890ff}[data-theme=light] .btn-create[data-v-3422cd8f]:hover:not(:disabled){background:#096dd9}[data-theme=light] .dialog-body[data-v-3422cd8f]::-webkit-scrollbar-track,[data-theme=light] .directory-tree[data-v-3422cd8f]::-webkit-scrollbar-track{background:#f1f1f1}[data-theme=light] .dialog-body[data-v-3422cd8f]::-webkit-scrollbar-thumb,[data-theme=light] .directory-tree[data-v-3422cd8f]::-webkit-scrollbar-thumb{background:silver}[data-theme=light] .dialog-body[data-v-3422cd8f]::-webkit-scrollbar-thumb:hover,[data-theme=light] .directory-tree[data-v-3422cd8f]::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.dialog-cover[data-v-2c0ff972]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998}.new-file-dialog[data-v-2c0ff972]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:600px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dialog-header[data-v-2c0ff972]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.dialog-header h3[data-v-2c0ff972]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-2c0ff972]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s}.close-btn[data-v-2c0ff972]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.dialog-body[data-v-2c0ff972]{flex:1;padding:20px;overflow-y:auto;max-height:60vh}.directory-section[data-v-2c0ff972],.filename-section[data-v-2c0ff972],.preview-section[data-v-2c0ff972]{margin-bottom:20px}.directory-section label[data-v-2c0ff972],.filename-section label[data-v-2c0ff972],.preview-section label[data-v-2c0ff972]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.directory-nav[data-v-2c0ff972]{position:relative}.current-path[data-v-2c0ff972]{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;cursor:pointer;transition:all .2s;color:var(--text-primary,#ccc)}.current-path[data-v-2c0ff972]:hover{background:var(--hover-bg,#383838);border-color:var(--accent-color,#007acc)}.current-path .chevron[data-v-2c0ff972]{margin-left:auto}.directory-tree[data-v-2c0ff972]{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--dropdown-bg,#252526);border:1px solid var(--border-color,#464647);border-radius:4px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.3)}.directory-item[data-v-2c0ff972]{display:flex;align-items:center;padding:4px 8px;transition:background .2s;color:var(--text-primary,#ccc);font-size:13px}.directory-expand-icon[data-v-2c0ff972]{cursor:pointer;padding:4px;margin-right:4px;border-radius:2px;transition:background .2s;display:flex;align-items:center;justify-content:center;width:22px;height:22px}.directory-expand-icon[data-v-2c0ff972]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1))}.directory-expand-placeholder[data-v-2c0ff972]{width:22px;height:22px;margin-right:4px}.directory-content[data-v-2c0ff972]{display:flex;align-items:center;gap:6px;flex:1;cursor:pointer;padding:4px 6px;border-radius:4px;transition:background .2s}.directory-content[data-v-2c0ff972]:hover{background:var(--hover-bg,#094771)}.directory-item.selected .directory-content[data-v-2c0ff972]{background:var(--selected-bg,#094771)}.directory-item.root-item[data-v-2c0ff972]{font-weight:500;border-bottom:1px solid var(--border-color,#464647)}.filename-input-wrapper[data-v-2c0ff972]{display:flex;align-items:center;gap:8px}.filename-input[data-v-2c0ff972]{flex:1;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;transition:all .2s}.filename-input[data-v-2c0ff972]:focus{outline:none;border-color:var(--accent-color,#007acc);background:var(--input-focus-bg,#383838)}.filename-input[data-v-2c0ff972]::-moz-placeholder{color:var(--text-disabled,#6b6b6b)}.filename-input[data-v-2c0ff972]::placeholder{color:var(--text-disabled,#6b6b6b)}.file-type-icon[data-v-2c0ff972]{color:var(--text-secondary,#969696)}.error-hint[data-v-2c0ff972],.file-types-hint[data-v-2c0ff972]{margin-top:6px;font-size:12px;color:var(--text-secondary,#969696)}.error-hint[data-v-2c0ff972]{color:var(--error-color,#f44747)}.file-preview[data-v-2c0ff972]{padding:12px;background:var(--preview-bg,#252526);border:1px solid var(--border-color,#464647);border-radius:4px}.file-info[data-v-2c0ff972]{display:flex;align-items:center;gap:12px}.file-path[data-v-2c0ff972]{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:var(--text-primary,#ccc);word-break:break-all}.file-type[data-v-2c0ff972]{font-size:12px;color:var(--text-secondary,#969696);margin-top:4px}.dialog-footer[data-v-2c0ff972]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color,#464647)}.btn-cancel[data-v-2c0ff972],.btn-create[data-v-2c0ff972]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel[data-v-2c0ff972]{background:var(--button-secondary-bg,#2d2d30);color:var(--text-primary,#ccc);border:1px solid var(--border-color,#464647)}.btn-cancel[data-v-2c0ff972]:hover{background:var(--hover-bg,#383838)}.btn-create[data-v-2c0ff972]{background:var(--accent-color,#007acc);color:#fff}.btn-create[data-v-2c0ff972]:hover:not(:disabled){background:var(--accent-hover,#005a9e)}.btn-create[data-v-2c0ff972]:disabled{opacity:.5;cursor:not-allowed}.dialog-body[data-v-2c0ff972]::-webkit-scrollbar,.directory-tree[data-v-2c0ff972]::-webkit-scrollbar{width:8px}.dialog-body[data-v-2c0ff972]::-webkit-scrollbar-track,.directory-tree[data-v-2c0ff972]::-webkit-scrollbar-track{background:var(--scrollbar-track,#1e1e1e)}.dialog-body[data-v-2c0ff972]::-webkit-scrollbar-thumb,.directory-tree[data-v-2c0ff972]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb,#464647);border-radius:4px}.dialog-body[data-v-2c0ff972]::-webkit-scrollbar-thumb:hover,.directory-tree[data-v-2c0ff972]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover,#5a5a5a)}[data-theme=light] .dialog-overlay[data-v-2c0ff972]{background:rgba(0,0,0,.3)}[data-theme=light] .dialog-content[data-v-2c0ff972]{background:#fff;border-color:#d0d0d0;box-shadow:0 8px 32px rgba(0,0,0,.15)}[data-theme=light] .dialog-header[data-v-2c0ff972]{background:#fff;border-bottom-color:#e0e0e0}[data-theme=light] .dialog-header h3[data-v-2c0ff972]{color:#333}[data-theme=light] .close-btn[data-v-2c0ff972]{color:rgba(0,0,0,.6)}[data-theme=light] .close-btn[data-v-2c0ff972]:hover{color:rgba(0,0,0,.9);background:rgba(0,0,0,.08)}[data-theme=light] .current-path[data-v-2c0ff972]{background:#f8f8f8;border-color:#d0d0d0;color:#333}[data-theme=light] .current-path[data-v-2c0ff972]:hover{background:#f0f0f0;border-color:#1890ff}[data-theme=light] .directory-dropdown[data-v-2c0ff972]{background:#fff;border-color:#d0d0d0;box-shadow:0 4px 12px rgba(0,0,0,.15)}[data-theme=light] .directory-item[data-v-2c0ff972]{color:#333}[data-theme=light] .directory-item[data-v-2c0ff972]:hover{background:#fafafa}[data-theme=light] .directory-item.selected[data-v-2c0ff972]{background:#f0f8ff}[data-theme=light] .filename-input[data-v-2c0ff972]{background:#fff;border-color:#d0d0d0;color:#333}[data-theme=light] .filename-input[data-v-2c0ff972]:focus{border-color:#1890ff;background:#fff}[data-theme=light] .filename-input[data-v-2c0ff972]::-moz-placeholder{color:#999}[data-theme=light] .filename-input[data-v-2c0ff972]::placeholder{color:#999}[data-theme=light] .file-preview[data-v-2c0ff972]{background:#f8f8f8;border-color:#d0d0d0}[data-theme=light] .btn-cancel[data-v-2c0ff972]{background:#f8f8f8;color:#333;border-color:#d0d0d0}[data-theme=light] .btn-cancel[data-v-2c0ff972]:hover{background:#e8e8e8}[data-theme=light] .btn-create[data-v-2c0ff972]{background:#1890ff}[data-theme=light] .btn-create[data-v-2c0ff972]:hover:not(:disabled){background:#096dd9}[data-theme=light] .dialog-body[data-v-2c0ff972]::-webkit-scrollbar-track,[data-theme=light] .directory-tree[data-v-2c0ff972]::-webkit-scrollbar-track{background:#f1f1f1}[data-theme=light] .dialog-body[data-v-2c0ff972]::-webkit-scrollbar-thumb,[data-theme=light] .directory-tree[data-v-2c0ff972]::-webkit-scrollbar-thumb{background:silver}[data-theme=light] .dialog-body[data-v-2c0ff972]::-webkit-scrollbar-thumb:hover,[data-theme=light] .directory-tree[data-v-2c0ff972]::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.fullscreen-preview[data-v-3c263865]{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-primary,#1e1e1e);z-index:100;display:flex;flex-direction:column;overflow:hidden}.preview-header[data-v-3c263865]{height:40px;background:var(--bg-secondary,#252526);border-bottom:1px solid var(--border-color,#3e3e42);display:flex;justify-content:space-between;align-items:center;padding:0 15px;flex-shrink:0}.preview-header-left[data-v-3c263865]{display:flex;align-items:center;gap:10px}.preview-title[data-v-3c263865]{font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.preview-header-right[data-v-3c263865]{display:flex;align-items:center;gap:8px}.preview-action-btn[data-v-3c263865],.preview-close-btn[data-v-3c263865]{width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary,#969696);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.preview-action-btn[data-v-3c263865]:hover,.preview-close-btn[data-v-3c263865]:hover{background:hsla(0,0%,100%,.1);color:var(--text-primary,#ccc)}.preview-content[data-v-3c263865]{flex:1;overflow:hidden;position:relative}.unsupported-preview[data-v-3c263865]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary,#969696);font-size:16px}[data-theme=light] .fullscreen-preview[data-v-3c263865]{background:#fff}[data-theme=light] .preview-header[data-v-3c263865]{background:#f3f3f3;border-bottom-color:#e0e0e0}[data-theme=light] .preview-title[data-v-3c263865]{color:#333}[data-theme=light] .preview-action-btn[data-v-3c263865],[data-theme=light] .preview-close-btn[data-v-3c263865]{color:#666}[data-theme=light] .preview-action-btn[data-v-3c263865]:hover,[data-theme=light] .preview-close-btn[data-v-3c263865]:hover{background:rgba(0,0,0,.05);color:#333}.find-replace-overlay[data-v-28db288f]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);display:flex;align-items:flex-start;justify-content:center;padding-top:100px;z-index:10000}.find-replace-modal[data-v-28db288f]{background:var(--bg-secondary,#2d2d30);border-radius:8px;width:500px;max-width:90%;box-shadow:0 4px 20px rgba(0,0,0,.5);border:1px solid var(--border-color,#464647)}.modal-header[data-v-28db288f]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#3e3e42)}.modal-header h3[data-v-28db288f]{margin:0;font-size:16px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-28db288f]{background:transparent;border:none;color:var(--text-primary,#ccc);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn[data-v-28db288f]:hover{background:hsla(0,0%,100%,.1)}.modal-body[data-v-28db288f]{padding:20px}.input-group[data-v-28db288f]{margin-bottom:16px;display:flex;align-items:center;gap:12px}.input-group label[data-v-28db288f]{min-width:100px;font-size:14px;color:var(--text-primary,#ccc)}.modal-input[data-v-28db288f]{flex:1;padding:8px 12px;background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;outline:none;transition:border-color .2s}.modal-input[data-v-28db288f]:focus{border-color:var(--accent-color,#007acc)}.modal-input[data-v-28db288f]::-moz-placeholder{color:var(--text-secondary,grey)}.modal-input[data-v-28db288f]::placeholder{color:var(--text-secondary,grey)}.options-group[data-v-28db288f]{display:flex;gap:20px;margin:20px 0;padding:12px 0;border-top:1px solid var(--border-color,#3e3e42);border-bottom:1px solid var(--border-color,#3e3e42)}.checkbox-label[data-v-28db288f]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-primary,#ccc);cursor:pointer}.checkbox-label input[type=checkbox][data-v-28db288f]{cursor:pointer}.search-info[data-v-28db288f]{margin-top:12px;padding:8px 12px;background:var(--bg-primary,#1e1e1e);border-radius:4px;font-size:13px;color:var(--text-secondary,#969696)}.modal-footer[data-v-28db288f]{padding:16px 20px;border-top:1px solid var(--border-color,#3e3e42);background:var(--bg-tertiary,#252526);border-radius:0 0 8px 8px}.button-group[data-v-28db288f]{display:flex;gap:8px;justify-content:flex-end}.action-btn[data-v-28db288f]{padding:6px 16px;background:var(--bg-secondary,#3c3c3c);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:13px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.action-btn[data-v-28db288f]:hover:not(:disabled){background:var(--bg-hover,#4a4a4a);border-color:var(--accent-color,#007acc)}.action-btn[data-v-28db288f]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-28db288f]{background:var(--accent-color,#007acc);border-color:var(--accent-color,#007acc);color:#fff}.action-btn.primary[data-v-28db288f]:hover:not(:disabled){background:var(--accent-hover,#0062a3)}.modal-fade-enter-active[data-v-28db288f],.modal-fade-leave-active[data-v-28db288f]{transition:opacity .2s}.modal-fade-enter-from[data-v-28db288f],.modal-fade-leave-to[data-v-28db288f]{opacity:0}.modal-fade-enter-active .find-replace-modal[data-v-28db288f],.modal-fade-leave-active .find-replace-modal[data-v-28db288f]{transition:transform .2s}.modal-fade-enter-from .find-replace-modal[data-v-28db288f],.modal-fade-leave-to .find-replace-modal[data-v-28db288f]{transform:translateY(-20px)}[data-theme=light] .find-replace-modal[data-v-28db288f]{background:#fff;border-color:#e0e0e0}[data-theme=light] .modal-header[data-v-28db288f]{border-bottom-color:#e0e0e0}[data-theme=light] .action-btn[data-v-28db288f],[data-theme=light] .checkbox-label[data-v-28db288f],[data-theme=light] .close-btn[data-v-28db288f],[data-theme=light] .input-group label[data-v-28db288f],[data-theme=light] .modal-header h3[data-v-28db288f]{color:#333}[data-theme=light] .close-btn[data-v-28db288f]:hover{background:rgba(0,0,0,.08)}[data-theme=light] .modal-input[data-v-28db288f]{background:#f5f5f5;border-color:#d0d0d0;color:#333}[data-theme=light] .modal-input[data-v-28db288f]:focus{border-color:#007acc}[data-theme=light] .options-group[data-v-28db288f]{border-color:#e0e0e0}[data-theme=light] .search-info[data-v-28db288f]{background:#f5f5f5;color:#666}[data-theme=light] .modal-footer[data-v-28db288f]{background:#f8f8f8;border-top-color:#e0e0e0}[data-theme=light] .action-btn[data-v-28db288f]{background:#f0f0f0;border-color:#d0d0d0}[data-theme=light] .action-btn[data-v-28db288f]:hover:not(:disabled){background:#e0e0e0;border-color:#007acc}.modal-overlay[data-v-6e26e148]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:10000}.modal-container[data-v-6e26e148]{background:var(--bg-secondary,#2d2d30);border-radius:8px;width:90%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.3)}.modal-header[data-v-6e26e148]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border-color,#3e3e42)}.modal-header h2[data-v-6e26e148]{margin:0;font-size:20px;color:var(--text-primary,#ccc)}.close-btn[data-v-6e26e148]{background:transparent;border:none;color:var(--text-primary,#ccc);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn[data-v-6e26e148]:hover{background:hsla(0,0%,100%,.1)}.modal-body[data-v-6e26e148]{flex:1;overflow-y:auto;padding:20px}.shortcut-section[data-v-6e26e148]{margin-bottom:30px}.shortcut-section h3[data-v-6e26e148]{font-size:14px;color:var(--text-primary,#ccc);margin-bottom:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.shortcut-list[data-v-6e26e148]{display:flex;flex-direction:column;gap:8px}.shortcut-item[data-v-6e26e148]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:4px;background:var(--bg-primary,#1e1e1e)}.shortcut-action[data-v-6e26e148]{color:var(--text-primary,#ccc);font-size:13px}.shortcut-keys[data-v-6e26e148]{color:var(--text-secondary,#969696);font-size:12px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background:var(--bg-tertiary,#383838);padding:4px 8px;border-radius:4px;border:1px solid var(--border-color,#464647)}.modal-body[data-v-6e26e148]::-webkit-scrollbar{width:8px}.modal-body[data-v-6e26e148]::-webkit-scrollbar-track{background:var(--bg-primary,#1e1e1e)}.modal-body[data-v-6e26e148]::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb,#4a4a4a);border-radius:4px}.modal-body[data-v-6e26e148]::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover,#5a5a5a)}.modal-fade-enter-active[data-v-6e26e148],.modal-fade-leave-active[data-v-6e26e148]{transition:opacity .3s}.modal-fade-enter-from[data-v-6e26e148],.modal-fade-leave-to[data-v-6e26e148]{opacity:0}[data-theme=light] .modal-container[data-v-6e26e148]{background:#fff}[data-theme=light] .modal-header[data-v-6e26e148]{border-bottom-color:#e0e0e0}[data-theme=light] .close-btn[data-v-6e26e148],[data-theme=light] .modal-header h2[data-v-6e26e148],[data-theme=light] .shortcut-action[data-v-6e26e148],[data-theme=light] .shortcut-section h3[data-v-6e26e148]{color:#333}[data-theme=light] .close-btn[data-v-6e26e148]:hover{background:rgba(0,0,0,.08)}[data-theme=light] .shortcut-item[data-v-6e26e148]{background:#f5f5f5}[data-theme=light] .shortcut-keys[data-v-6e26e148]{color:#666;background:#e8e8e8;border-color:#d0d0d0}[data-theme=light] .modal-body[data-v-6e26e148]::-webkit-scrollbar-track{background:#f5f5f5}[data-theme=light] .modal-body[data-v-6e26e148]::-webkit-scrollbar-thumb{background:silver}[data-theme=light] .modal-body[data-v-6e26e148]::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.profile-modal-overlay[data-v-7228530a]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9998;display:flex;align-items:center;justify-content:center}.profile-modal[data-v-7228530a]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-color,#464647);border-radius:8px;width:550px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;z-index:9999;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dialog-header[data-v-7228530a]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color,#464647)}.dialog-header h3[data-v-7228530a]{margin:0;font-size:18px;font-weight:500;color:var(--text-primary,#ccc)}.close-btn[data-v-7228530a]{cursor:pointer;color:var(--text-secondary,#969696);padding:4px;border-radius:4px;transition:all .2s;background:transparent;border:none;display:flex;align-items:center;justify-content:center}.close-btn[data-v-7228530a]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.dialog-body[data-v-7228530a]{flex:1;overflow-y:auto;max-height:60vh}.tab-navigation[data-v-7228530a]{display:flex;gap:4px;padding:12px 20px;background:var(--bg-secondary,#252526);border-bottom:1px solid var(--border-color,#464647)}.tab-btn[data-v-7228530a]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary,#969696);font-size:14px;cursor:pointer;transition:all .2s}.tab-btn[data-v-7228530a]:hover{background:var(--hover-bg,hsla(0,0%,100%,.1));color:var(--text-primary,#ccc)}.tab-btn.active[data-v-7228530a]{background:var(--accent-color,#007acc);color:#fff}.tab-content[data-v-7228530a]{padding:20px;min-height:300px}.profile-section .user-info[data-v-7228530a]{display:flex;flex-direction:column;gap:16px}.info-row[data-v-7228530a]{display:flex;align-items:center;padding:12px;background:var(--input-bg,#2d2d30);border-radius:4px;border:1px solid var(--border-color,#464647)}.info-row label[data-v-7228530a]{flex:0 0 120px;font-weight:500;color:var(--text-secondary,#969696);font-size:14px}.info-row span[data-v-7228530a]{flex:1;color:var(--text-primary,#ccc)}.role-badge[data-v-7228530a]{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500}.role-badge.student[data-v-7228530a]{background:rgba(0,122,204,.15);color:var(--accent-color,#007acc);border:1px solid var(--accent-color,#007acc)}.role-badge.professor[data-v-7228530a]{background:rgba(103,194,58,.15);color:#67c23a;border:1px solid #67c23a}.session-id[data-v-7228530a]{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;color:var(--text-disabled,#6b6b6b)}.forgot-section[data-v-7228530a],.password-section[data-v-7228530a]{max-width:400px;margin:0 auto}.form-group[data-v-7228530a]{margin-bottom:20px}.form-group label[data-v-7228530a]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-primary,#ccc)}.form-group input[data-v-7228530a]{width:100%;box-sizing:border-box;padding:10px 12px;background:var(--input-bg,#2d2d30);border:1px solid var(--border-color,#464647);border-radius:4px;color:var(--text-primary,#ccc);font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;transition:all .2s}.form-group input[data-v-7228530a]:focus{outline:none;border-color:var(--accent-color,#007acc);background:var(--input-focus-bg,#383838)}.form-group input[data-v-7228530a]::-moz-placeholder{color:var(--text-disabled,#6b6b6b)}.form-group input[data-v-7228530a]::placeholder{color:var(--text-disabled,#6b6b6b)}.form-group input[data-v-7228530a]:disabled{background:var(--input-disabled-bg,#1a1a1a);cursor:not-allowed;opacity:.6}.forgot-info[data-v-7228530a]{padding:16px;background:var(--info-bg,rgba(0,122,204,.1));border:1px solid var(--accent-color,#007acc);border-radius:4px;margin-bottom:20px}.forgot-info p[data-v-7228530a]{margin:0 0 8px;font-size:13px;color:var(--accent-color,#007acc);line-height:1.5}.forgot-info p[data-v-7228530a]:last-child{margin-bottom:0}.form-actions[data-v-7228530a]{display:flex;gap:12px;margin-top:24px}.btn-danger[data-v-7228530a],.btn-primary[data-v-7228530a],.btn-secondary[data-v-7228530a],.btn-success[data-v-7228530a]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;box-sizing:border-box;display:flex;align-items:center;gap:8px}.btn-primary[data-v-7228530a]{background:var(--accent-color,#007acc);color:#fff}.btn-primary[data-v-7228530a]:hover:not(:disabled){background:var(--accent-hover,#005a9e)}.btn-secondary[data-v-7228530a]{background:var(--bg-secondary,#252526);color:var(--text-primary,#ccc);border:1px solid var(--border-color,#464647)}.btn-secondary[data-v-7228530a]:hover:not(:disabled){background:var(--hover-bg,#383838)}.btn-success[data-v-7228530a]{background:#67c23a;color:#fff}.btn-success[data-v-7228530a]:hover:not(:disabled){background:#5daf34}.btn-danger[data-v-7228530a]{background:var(--error-color,#f44747);color:#fff}.btn-danger[data-v-7228530a]:hover:not(:disabled){background:#e73c3c}.btn-danger[data-v-7228530a]:disabled,.btn-primary[data-v-7228530a]:disabled,.btn-secondary[data-v-7228530a]:disabled,.btn-success[data-v-7228530a]:disabled{opacity:.5;cursor:not-allowed}.admin-contact[data-v-7228530a]{margin-top:32px}.divider[data-v-7228530a]{text-align:center;margin:20px 0;position:relative}.divider[data-v-7228530a]:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-color,#464647)}.divider span[data-v-7228530a]{background:var(--bg-primary,#1e1e1e);padding:0 16px;color:var(--text-secondary,#969696);font-size:12px}.contact-section[data-v-7228530a]{text-align:center;padding:20px;background:var(--preview-bg,#252526);border-radius:4px;border:1px solid var(--border-color,#464647)}.contact-section h4[data-v-7228530a]{margin:0 0 12px;color:var(--text-primary,#ccc);font-size:16px}.contact-section p[data-v-7228530a]{margin:0 0 16px;font-size:13px;color:var(--text-secondary,#969696)}.admin-info[data-v-7228530a]{display:flex;flex-direction:column;gap:12px;margin:16px 0}.contact-method[data-v-7228530a]{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:var(--text-primary,#ccc)}.admin-email[data-v-7228530a]{color:var(--accent-color,#007acc);font-weight:500;font-size:15px}.contact-note[data-v-7228530a]{margin-top:12px;font-size:12px;color:var(--text-disabled,#6b6b6b);font-style:italic}.dialog-footer[data-v-7228530a]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid var(--border-color,#464647)}[data-theme=light] .profile-modal[data-v-7228530a]{background:#fff;border-color:#d0d0d0;box-shadow:0 8px 32px rgba(0,0,0,.15)}[data-theme=light] .dialog-header[data-v-7228530a]{border-bottom-color:#e0e0e0}[data-theme=light] .dialog-header h3[data-v-7228530a]{color:#333}[data-theme=light] .close-btn[data-v-7228530a]{color:rgba(0,0,0,.6)}[data-theme=light] .close-btn[data-v-7228530a]:hover{color:rgba(0,0,0,.9);background:rgba(0,0,0,.08)}[data-theme=light] .tab-navigation[data-v-7228530a]{background:#f8f8f8;border-bottom-color:#e0e0e0}[data-theme=light] .tab-btn[data-v-7228530a]{color:#666}[data-theme=light] .tab-btn[data-v-7228530a]:hover{color:#333;background:rgba(0,0,0,.08)}[data-theme=light] .tab-btn.active[data-v-7228530a]{background:#1890ff}[data-theme=light] .info-row[data-v-7228530a]{background:#f8f8f8;border-color:#d0d0d0}[data-theme=light] .info-row label[data-v-7228530a]{color:#666}[data-theme=light] .info-row span[data-v-7228530a]{color:#333}[data-theme=light] .role-badge.student[data-v-7228530a]{background:rgba(24,144,255,.15);color:#1890ff;border-color:#1890ff}[data-theme=light] .session-id[data-v-7228530a]{color:#999}[data-theme=light] .form-group label[data-v-7228530a]{color:#333}[data-theme=light] .form-group input[data-v-7228530a]{background:#f8f8f8;border-color:#d0d0d0;color:#333}[data-theme=light] .form-group input[data-v-7228530a]:focus{background:#fff;border-color:#1890ff}[data-theme=light] .form-group input[data-v-7228530a]::-moz-placeholder{color:#999}[data-theme=light] .form-group input[data-v-7228530a]::placeholder{color:#999}[data-theme=light] .form-group input[data-v-7228530a]:disabled{background:#f0f0f0}[data-theme=light] .forgot-info[data-v-7228530a]{background:#e6f7ff;color:#1890ff;border-color:#1890ff}[data-theme=light] .btn-primary[data-v-7228530a]{background:#1890ff}[data-theme=light] .btn-primary[data-v-7228530a]:hover:not(:disabled){background:#096dd9}[data-theme=light] .btn-secondary[data-v-7228530a]{background:#fff;color:#333;border-color:#d0d0d0}[data-theme=light] .btn-secondary[data-v-7228530a]:hover:not(:disabled){background:#f8f8f8}[data-theme=light] .divider[data-v-7228530a]:before{background:#e0e0e0}[data-theme=light] .divider span[data-v-7228530a]{background:#fff;color:#666}[data-theme=light] .contact-section[data-v-7228530a]{background:#f8f8f8;border-color:#d0d0d0}[data-theme=light] .contact-section h4[data-v-7228530a]{color:#333}[data-theme=light] .contact-section p[data-v-7228530a]{color:#666}[data-theme=light] .contact-method[data-v-7228530a]{color:#333}[data-theme=light] .admin-email[data-v-7228530a]{color:#1890ff}[data-theme=light] .contact-note[data-v-7228530a]{color:#999}[data-theme=light] .dialog-footer[data-v-7228530a]{border-top-color:#e0e0e0}[data-theme=high-contrast] .profile-modal[data-v-7228530a]{background:#000;border:2px solid #fff;box-shadow:0 8px 32px hsla(0,0%,100%,.3)}[data-theme=high-contrast] .dialog-header[data-v-7228530a]{border-bottom:2px solid #fff}[data-theme=high-contrast] .close-btn[data-v-7228530a],[data-theme=high-contrast] .dialog-header h3[data-v-7228530a]{color:#fff}[data-theme=high-contrast] .close-btn[data-v-7228530a]:hover{background:#333;border:1px solid #ff0}[data-theme=high-contrast] .tab-navigation[data-v-7228530a]{background:#000;border-bottom:2px solid #fff}[data-theme=high-contrast] .tab-btn[data-v-7228530a]{color:#fff;border:1px solid transparent}[data-theme=high-contrast] .tab-btn[data-v-7228530a]:hover{border-color:#fff}[data-theme=high-contrast] .tab-btn.active[data-v-7228530a]{background:#00bfff;color:#000;border-color:#00bfff}[data-theme=high-contrast] .info-row[data-v-7228530a]{background:#000;border:2px solid #fff}[data-theme=high-contrast] .info-row label[data-v-7228530a],[data-theme=high-contrast] .info-row span[data-v-7228530a]{color:#fff}[data-theme=high-contrast] .role-badge.student[data-v-7228530a]{background:#000;color:#00bfff;border:2px solid #00bfff}[data-theme=high-contrast] .role-badge.professor[data-v-7228530a]{background:#000;color:#0f0;border:2px solid #0f0}[data-theme=high-contrast] .session-id[data-v-7228530a]{color:#ccc}[data-theme=high-contrast] .form-group label[data-v-7228530a]{color:#fff}[data-theme=high-contrast] .form-group input[data-v-7228530a]{background:#000;border:2px solid #fff;color:#fff}[data-theme=high-contrast] .form-group input[data-v-7228530a]:focus{border-color:#ff0}[data-theme=high-contrast] .form-group input[data-v-7228530a]::-moz-placeholder{color:#ccc}[data-theme=high-contrast] .form-group input[data-v-7228530a]::placeholder{color:#ccc}[data-theme=high-contrast] .forgot-info[data-v-7228530a]{background:#000;color:#00bfff;border:2px solid #00bfff}[data-theme=high-contrast] .btn-primary[data-v-7228530a]{background:#00bfff;color:#000;border:2px solid #fff}[data-theme=high-contrast] .btn-primary[data-v-7228530a]:hover:not(:disabled){background:#ff0;border-color:#ff0}[data-theme=high-contrast] .btn-secondary[data-v-7228530a]{background:#333;color:#fff;border:2px solid #fff}[data-theme=high-contrast] .btn-secondary[data-v-7228530a]:hover:not(:disabled){background:#666}[data-theme=high-contrast] .btn-success[data-v-7228530a]{background:#0f0;color:#000;border:2px solid #fff}[data-theme=high-contrast] .btn-danger[data-v-7228530a]{background:#f44;color:#fff;border:2px solid #fff}[data-theme=high-contrast] .divider[data-v-7228530a]:before{background:#fff}[data-theme=high-contrast] .divider span[data-v-7228530a]{background:#000;color:#fff}[data-theme=high-contrast] .contact-section[data-v-7228530a]{background:#000;border:2px solid #fff}[data-theme=high-contrast] .contact-method[data-v-7228530a],[data-theme=high-contrast] .contact-section h4[data-v-7228530a],[data-theme=high-contrast] .contact-section p[data-v-7228530a]{color:#fff}[data-theme=high-contrast] .contact-method strong[data-v-7228530a]{color:#ff0;font-weight:600}[data-theme=high-contrast] .admin-email[data-v-7228530a]{color:#00bfff}[data-theme=high-contrast] .contact-note[data-v-7228530a]{color:#ccc}[data-theme=high-contrast] .dialog-footer[data-v-7228530a]{border-top:2px solid #fff}.two-header-container[data-v-3adfcdfe]{width:100%;display:flex;flex-direction:column;position:relative;z-index:100}.header-first[data-v-3adfcdfe],.header-second[data-v-3adfcdfe]{width:100%;height:40px;background:var(--header-bg,#313131);display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--border-color,#252525);position:relative}.nav-menu[data-v-3adfcdfe]{flex:0 0 auto}.nav__items-left[data-v-3adfcdfe]{display:flex;list-style:none;margin:0;padding:0;gap:4px}.nav__item[data-v-3adfcdfe]{position:relative}.nav__item-button[data-v-3adfcdfe]{background:transparent;border:none;color:var(--text-primary,#b5b5b5);padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border-radius:4px;transition:background .2s;height:28px}.nav__item-button[data-v-3adfcdfe]:hover{background:hsla(0,0%,100%,.1)}.nav__item-header[data-v-3adfcdfe]{font-weight:400}.nav__item-triangle[data-v-3adfcdfe]{opacity:.6;width:8px;height:5px}.nav__dropdown[data-v-3adfcdfe]{position:absolute;top:calc(100% + 2px);left:0;background:var(--bg-secondary,#252526);border:1px solid var(--border-color,#464647);border-radius:4px;min-width:220px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:1000;padding:4px 0;list-style:none;margin:0}.nav__dropdown-item[data-v-3adfcdfe]{padding:0;margin:0}.nav__dropdown-item button[data-v-3adfcdfe]{width:100%;padding:8px 16px;background:transparent;border:none;color:var(--text-primary,#ccc);font-size:13px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.nav__keyboard-shortcut[data-v-3adfcdfe]{font-size:11px;opacity:.6;margin-left:24px;font-family:monospace}.nav__dropdown-divider[data-v-3adfcdfe]{height:1px;background:var(--border-color,#464647);margin:4px 0}.nav__dropdown-item button[data-v-3adfcdfe]:hover{background:var(--hover-bg,#094771)}.nav__dropdown-item button[data-v-3adfcdfe]:disabled{color:var(--text-tertiary,#666);cursor:not-allowed;opacity:.5}.nav__dropdown-item button[data-v-3adfcdfe]:disabled:hover{background:transparent}.nav__dropdown-item .delete-option[data-v-3adfcdfe]{color:#f44747}.nav__dropdown-item .delete-option[data-v-3adfcdfe]:hover:not(:disabled){background:rgba(244,71,71,.2)}.header-right-section[data-v-3adfcdfe]{display:flex;align-items:center;margin-right:20px;padding-right:8px}.sign-in-btn[data-v-3adfcdfe],.user-btn[data-v-3adfcdfe]{display:flex;align-items:center;gap:8px;padding:8px 20px;margin-right:12px;background:transparent;border:none;border-radius:4px;color:var(--text-primary,#b5b5b5);font-size:13px;cursor:pointer;transition:all .2s;height:32px;outline:none}.sign-in-btn[data-v-3adfcdfe]:hover,.user-btn[data-v-3adfcdfe]:hover{background:hsla(0,0%,100%,.1)}.sign-in-btn[data-v-3adfcdfe]:focus,.user-btn[data-v-3adfcdfe]:focus{outline:none}.user-btn[data-v-3adfcdfe]{background:rgba(64,158,255,.1);color:var(--primary-color,#409eff);border:1px solid rgba(64,158,255,.3)}.user-btn[data-v-3adfcdfe]:hover{background:rgba(64,158,255,.2);border-color:rgba(64,158,255,.5)}.header-second-center-container[data-v-3adfcdfe]{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;height:100%}.header-second-right[data-v-3adfcdfe]{display:flex;align-items:center;margin-left:auto;margin-right:20px;padding-right:8px}.icon-btn[data-v-3adfcdfe]{padding:5px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;border-radius:6px;color:var(--text-primary,#ccc)}.delete-btn.disabled[data-v-3adfcdfe]{opacity:.4;cursor:not-allowed;pointer-events:none}.delete-btn[data-v-3adfcdfe]:not(.disabled):hover{background:hsla(0,87%,69%,.2);color:#f56c6c}.settings-btn[data-v-3adfcdfe]{margin-right:12px}.icon-btn[data-v-3adfcdfe]:hover{background:hsla(0,0%,100%,.1);transform:translateY(-1px)}.icon-btn[data-v-3adfcdfe]:active{transform:translateY(0)}.run-btn[data-v-3adfcdfe]{color:#fff}.stop-btn[data-v-3adfcdfe]{background:var(--danger-color,#6c757d);color:#fff}.stop-btn[data-v-3adfcdfe]:hover{background:var(--danger-hover,#adb5bd)}.save-btn[data-v-3adfcdfe]{color:var(--text-primary,#ccc)}.save-btn[data-v-3adfcdfe]:hover{background:hsla(0,0%,100%,.1)}[data-theme=light] .header-first[data-v-3adfcdfe],[data-theme=light] .header-second[data-v-3adfcdfe]{background:#f3f3f3;border-bottom-color:#e0e0e0}[data-theme=light] .icon-btn[data-v-3adfcdfe],[data-theme=light] .nav__item-button[data-v-3adfcdfe],[data-theme=light] .sign-in-btn[data-v-3adfcdfe]{color:#333}[data-theme=light] .icon-btn[data-v-3adfcdfe]:hover,[data-theme=light] .nav__item-button[data-v-3adfcdfe]:hover,[data-theme=light] .sign-in-btn[data-v-3adfcdfe]:hover{background:rgba(0,0,0,.08)}[data-theme=light] .nav__dropdown[data-v-3adfcdfe]{background:#fff;border-color:#e0e0e0;box-shadow:0 4px 12px rgba(0,0,0,.1)}[data-theme=light] .nav__dropdown-item button[data-v-3adfcdfe]{color:#333}[data-theme=light] .nav__dropdown-item button[data-v-3adfcdfe]:hover{background:#e8e8e8}[data-theme=light] .run-btn[data-v-3adfcdfe]{background:#28a745;color:#fff;border:1px solid #239a3b}[data-theme=light] .run-btn[data-v-3adfcdfe]:hover{background:#239a3b;box-shadow:0 2px 4px rgba(40,167,69,.2)}[data-theme=light] .stop-btn[data-v-3adfcdfe]{background:#dc3545;color:#fff;border:1px solid #c82333}[data-theme=light] .stop-btn[data-v-3adfcdfe]:hover{background:#c82333;box-shadow:0 2px 4px rgba(220,53,69,.2)}[data-theme=light] .save-btn[data-v-3adfcdfe]{color:#333}[data-theme=light] .save-btn[data-v-3adfcdfe]:hover{background:rgba(0,0,0,.08)}.unified-console[data-v-44905964]{display:flex;flex-direction:column;height:100%;background:var(--console-bg,#1e1e1e);color:var(--console-text,#d4d4d4);font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;overflow:hidden}.console-output[data-v-44905964]{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px;min-height:0;background:var(--console-bg,#1e1e1e);width:100%;box-sizing:border-box}.output-line[data-v-44905964]{margin:1px 0;line-height:1.4;width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.output-text[data-v-44905964]{margin:0;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;overflow-wrap:break-word;font-family:inherit;font-size:inherit;max-width:100%;box-sizing:border-box}.error-output[data-v-44905964]{color:#f48771}.system-message[data-v-44905964]{color:#9cdcfe;font-style:italic}.input-prompt-line[data-v-44905964]{display:flex;align-items:center;margin:8px 0;padding:4px 0;border-left:3px solid var(--accent-color,#007acc);padding-left:8px}.user-input-line[data-v-44905964]{display:flex;align-items:center;margin:2px 0;color:#d4d4d4}.input-indicator[data-v-44905964]{color:#569cd6;font-weight:700;margin-right:6px;font-size:12px;font-family:Consolas,Monaco,Courier New,monospace}.input-text[data-v-44905964]{margin-left:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px}.input-area[data-v-44905964]{border-top:1px solid var(--border-primary,#3c3c3c);padding:10px;background:#252526}.input-container[data-v-44905964]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.input-prefix[data-v-44905964]{color:#569cd6;font-weight:700;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace}.user-input-field[data-v-44905964]{flex:1;background:#1e1e1e;border:1px solid #3e3e42;color:#d4d4d4;padding:6px 10px;border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;outline:none}.console-status[data-v-44905964]{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:#2d2d30;border-top:1px solid #3e3e42;font-size:12px;min-height:24px}.status-left[data-v-44905964]{display:flex;align-items:center;gap:12px}.status-item[data-v-44905964]{display:flex;align-items:center;gap:6px}.status-dot[data-v-44905964]{width:8px;height:8px;border-radius:50%;background:#858585}.status-item.running .status-dot[data-v-44905964]{background:#4ec9b0;animation:pulse-44905964 1.5s infinite}.status-item.success .status-dot[data-v-44905964]{background:#608b4e}.status-item.error .status-dot[data-v-44905964]{background:#f48771}.repl-line[data-v-44905964]{font-family:Consolas,Monaco,Courier New,monospace;display:flex;align-items:baseline;margin:2px 0}.repl-prompt[data-v-44905964]{color:#4a9eff;font-weight:500;margin-right:8px;white-space:pre}.repl-text[data-v-44905964]{flex:1;color:#e4e4e4;white-space:pre-wrap;word-break:break-all}.repl-output[data-v-44905964]{font-family:Consolas,Monaco,Courier New,monospace;color:#ccc;margin:2px 0;padding-left:20px;white-space:pre-wrap;word-break:break-all}.input-container.repl-mode[data-v-44905964]{background:#1a1a1a;border:1px solid #4a9eff}.input-container.repl-mode .user-input-field[data-v-44905964]{font-family:Consolas,Monaco,Courier New,monospace;min-height:24px;resize:none}.status-item.repl .status-dot[data-v-44905964]{background:#4a9eff;animation:pulse-44905964 2s infinite}@keyframes pulse-44905964{0%,to{opacity:1}50%{opacity:.5}}.cm-s-repl-theme.CodeMirror[data-v-44905964]{background:transparent!important;color:#d4d4d4!important;font-family:Consolas,Monaco,Courier New,monospace!important;font-size:13px!important;line-height:1.4!important}.cm-s-repl-theme .CodeMirror-cursor[data-v-44905964]{border-left:1px solid #d4d4d4!important}.cm-s-repl-theme .CodeMirror-selected[data-v-44905964]{background:rgba(68,68,68,.99)!important}.cm-s-repl-theme .CodeMirror-focused .CodeMirror-selected[data-v-44905964]{background:rgba(38,79,120,.99)!important}.cm-s-repl-theme .cm-keyword[data-v-44905964]{color:#569cd6!important;font-weight:400!important}.cm-s-repl-theme .cm-string-2[data-v-44905964],.cm-s-repl-theme .cm-string[data-v-44905964]{color:#ce9178!important}.cm-s-repl-theme .cm-number[data-v-44905964]{color:#b5cea8!important}.cm-s-repl-theme .cm-comment[data-v-44905964]{color:#6a9955!important;font-style:italic!important}.cm-s-repl-theme .cm-def[data-v-44905964]{color:#dcdcaa!important;font-weight:400!important}.cm-s-repl-theme .cm-builtin[data-v-44905964]{color:#4fc1ff!important;font-weight:400!important}.cm-s-repl-theme .cm-operator[data-v-44905964]{color:#d4d4d4!important;font-weight:400!important}.cm-s-repl-theme .cm-variable-2[data-v-44905964],.cm-s-repl-theme .cm-variable[data-v-44905964]{color:#9cdcfe!important;font-weight:400!important}.cm-s-repl-theme .cm-variable-3[data-v-44905964]{color:#4fc1ff!important;font-weight:400!important}.cm-s-repl-theme .cm-property[data-v-44905964]{color:#9cdcfe!important;font-weight:400!important}.cm-s-repl-theme .cm-bracket[data-v-44905964]{color:gold!important;font-weight:400!important}.cm-s-repl-theme .cm-tag[data-v-44905964]{color:#569cd6!important;font-weight:400!important}.cm-s-repl-theme .cm-attribute[data-v-44905964]{color:#9cdcfe!important;font-weight:400!important}.repl-codemirror[data-v-44905964]{width:100%!important}.repl-codemirror .CodeMirror[data-v-44905964],.repl-codemirror[data-v-44905964]{font-family:Consolas,Monaco,Courier New,monospace!important;font-size:13px!important;border:none!important}.repl-codemirror .CodeMirror[data-v-44905964]{background:transparent!important;color:#d4d4d4!important;height:auto!important;min-height:20px!important;max-height:200px!important;line-height:1.4!important}.repl-codemirror .CodeMirror-scroll[data-v-44905964]{min-height:20px!important;max-height:200px!important;overflow:auto!important}.repl-codemirror .CodeMirror-lines[data-v-44905964]{padding:2px 0!important}.repl-codemirror .CodeMirror-line[data-v-44905964]{line-height:1.4!important;font-family:Consolas,Monaco,Courier New,monospace!important;font-size:13px!important}.repl-codemirror .CodeMirror-gutters[data-v-44905964]{display:none!important}.repl-codemirror .CodeMirror-sizer[data-v-44905964]{margin-left:0!important}.output-text[data-v-44905964],.repl-codemirror .CodeMirror-line[data-v-44905964] *,.repl-codemirror .CodeMirror[data-v-44905964] *,.repl-codemirror span[data-v-44905964],.repl-codemirror[data-v-44905964] *,.repl-input-text[data-v-44905964],.repl-line[data-v-44905964],.repl-output[data-v-44905964],.repl-prompt[data-v-44905964],.repl-text[data-v-44905964]{font-family:Consolas,Monaco,Courier New,monospace!important;font-size:13px!important;line-height:1.4!important}.repl-line.multiline[data-v-44905964]{align-items:flex-start!important;flex-direction:column}.repl-line.multiline .repl-prompt[data-v-44905964]{align-self:flex-start;margin-bottom:0}.repl-line.multiline .repl-input-text[data-v-44905964]{margin-left:0;padding-left:24px}.repl-line .multiline-content[data-v-44905964],.repl-line.multiline .repl-input-text[data-v-44905964]{margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Consolas,Monaco,Courier New,monospace!important;font-size:13px!important;line-height:1.4!important;display:block;width:100%}.repl-input-text.multiline-content[data-v-44905964]{padding-left:0}.repl-input-text[data-v-44905964],.repl-output[data-v-44905964],.repl-text[data-v-44905964]{color:#d4d4d4!important}.repl-prompt[data-v-44905964]{color:#4a9eff!important;font-weight:400!important}.console-tabs .el-tabs{--el-tabs-header-height:25px}.console-tabs .el-tabs__nav-wrap{background:transparent;margin-top:-3px;height:20px}.console-tabs .el-tabs--card>.el-tabs__header .el-tabs__nav{border:none;background:transparent;border-radius:0;height:20px}.console-tabs .el-tabs--card>.el-tabs__header{border:none;background:transparent;height:20px}.console-tabs .el-tabs__content{display:none}.console-tabs .el-tabs__item{height:20px;padding-left:10px;padding-right:3px;line-height:20px;font-size:12px;font-weight:500;font-family:Gotham-Book;color:#ccc;letter-spacing:-.8px;opacity:.6;background:transparent}.console-tabs .el-tabs--card>.el-tabs__header .el-tabs__item{border-left:none;border-right:1px solid;border-bottom:none;border-color:#232323}.console-tabs .el-tabs__item.is-active{color:#fff;background-color:hsla(207,5%,42%,.3);opacity:1;border-bottom:2px solid #50e3c2}.console-tabs .el-tabs--card>.el-tabs__header .el-tabs__item{color:#ccc;height:20px}.console-tabs .el-tabs--card>.el-tabs__header .el-tabs__item.is-active .is-icon-close{background-color:transparent}.console-tabs .el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{right:-10px;background:transparent}.console-tabs .el-tabs__nav-prev{margin-top:-10px;margin-left:2px}.console-tabs .el-tabs__nav-prev.is-disabled .el-icon{color:#232323}.console-tabs .el-tabs__nav-next{margin-top:-10px;margin-right:6px}.console-tabs .el-tabs__nav-next.is-disabled .el-icon{color:#232323}.console-tabs[data-v-109efd1e]{padding-left:20px;background-color:transparent;height:20px}.node-icon[data-v-109efd1e]{width:12px;height:12px}.node-label[data-v-109efd1e]{letter-spacing:-.8px;font-family:Gotham-Book;padding-left:2px;color:#fff}.file-path[data-v-109efd1e]{font-size:12px;width:100%;background:#2e3032;color:#ccc;font-family:Gotham-Book}.run-icon[data-v-109efd1e]{background-image:url(../../static/img/icon_running.8062bc3f.svg)}.run-icon[data-v-109efd1e],.stop-icon[data-v-109efd1e]{margin-right:10px;margin-top:-1px;width:16px;height:16px;cursor:pointer}.stop-icon[data-v-109efd1e]{background-image:url(../../static/img/icon_stop.28e08eac.svg)}.total-frame[data-v-b2350ddc]{position:fixed;width:100%;height:calc(100% - 80px);top:80px;left:0;display:flex;flex-direction:row}.left-sidebar[data-v-b2350ddc]{background:var(--bg-sidebar,#282828);color:var(--text-primary,#ccc);height:100%;width:100%;overflow-y:auto;overflow-x:hidden;flex-shrink:0;position:relative;box-sizing:border-box}.center-frame[data-v-b2350ddc]{position:relative;height:100%;display:flex;flex-direction:column;background:var(--bg-primary,#1e1e1e);min-width:0;overflow:hidden}.editor-section[data-v-b2350ddc]{display:flex;flex-direction:column;overflow:hidden;transition:height .3s ease;flex:1;min-height:200px}.editor-tab-bar[data-v-b2350ddc]{height:35px;background:var(--bg-secondary,#252526);border-bottom:1px solid var(--border-primary,#3c3c3c)}.editor-content[data-v-b2350ddc]{flex:1;overflow:hidden;background:var(--bg-primary,#1e1e1e)}.console-section[data-v-b2350ddc]{background:var(--bg-secondary,#252526);border-top:1px solid var(--border-primary,#3c3c3c);transition:height .3s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative;display:flex;z-index:5;flex-direction:column}.console-section.collapsed[data-v-b2350ddc]{overflow:hidden}.console-resizer[data-v-b2350ddc]{position:absolute;top:0;left:0;right:0;height:5px;cursor:ns-resize;background:transparent;z-index:20;transition:background-color .15s ease;will-change:background-color;transform:translateZ(0);backface-visibility:hidden}.console-resizer[data-v-b2350ddc]:hover{background:rgba(0,122,204,.3)}.console-resizer.resizing[data-v-b2350ddc]{background:var(--accent-color,#007acc)}.resizer-handle.horizontal[data-v-b2350ddc]{width:40px;height:2px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);background:var(--text-secondary,#858585);border-radius:1px;opacity:0;transition:opacity .15s ease;will-change:opacity}.console-resizer.resizing .resizer-handle.horizontal[data-v-b2350ddc],.console-resizer:hover .resizer-handle.horizontal[data-v-b2350ddc]{opacity:1}.console-header[data-v-b2350ddc]{height:35px;background:var(--console-header-bg,#323336);border-bottom:1px solid var(--console-header-border,#464647);display:flex;justify-content:space-between;align-items:center;padding:0 12px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.1)}.console-header[data-v-b2350ddc]:hover{background:var(--console-header-hover,#3a3a3d)}[data-theme=light] .console-header[data-v-b2350ddc]{background:#e2e6ea;border-bottom:1px solid #c8cfd6;box-shadow:0 1px 3px rgba(0,0,0,.08)}[data-theme=light] .console-header[data-v-b2350ddc]:hover{background:#d8dde2}[data-theme=dark] .console-header[data-v-b2350ddc]{background:#323336;border-bottom:1px solid #464647;box-shadow:0 1px 3px rgba(0,0,0,.2)}[data-theme=dark] .console-header[data-v-b2350ddc]:hover{background:#3a3a3d}[data-theme=contrast] .console-header[data-v-b2350ddc]{background:#1a1a1a;border-bottom:2px solid #3a3a3a;box-shadow:0 1px 3px hsla(0,0%,100%,.1)}[data-theme=contrast] .console-header[data-v-b2350ddc]:hover{background:#252525}.console-header-left[data-v-b2350ddc]{display:flex;align-items:center;gap:8px}.console-header-center[data-v-b2350ddc]{display:flex;gap:4px;align-items:center}.console-expand-arrow[data-v-b2350ddc]{background:var(--console-expand-bg,rgba(0,122,204,.1));border:1.5px solid var(--console-header-button-border,#007acc);border-radius:6px;padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--console-header-button-text,#007acc);transition:all .2s;width:32px;height:32px;box-shadow:0 1px 3px rgba(0,122,204,.2)}.console-expand-arrow[data-v-b2350ddc]:hover{background:var(--accent-color,#007acc);color:#fff;border-color:var(--accent-color,#007acc);transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,122,204,.4)}[data-theme=light] .console-expand-arrow[data-v-b2350ddc]{background:rgba(0,102,204,.08);border:1.5px solid #06c;color:#06c;box-shadow:0 1px 3px rgba(0,102,204,.15)}[data-theme=light] .console-expand-arrow[data-v-b2350ddc]:hover{background:#06c;border-color:#06c;color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,102,204,.3)}[data-theme=dark] .console-expand-arrow[data-v-b2350ddc]{background:rgba(0,122,204,.1);border:1.5px solid #007acc;color:#007acc;box-shadow:0 1px 3px rgba(0,122,204,.2)}[data-theme=contrast] .console-expand-arrow[data-v-b2350ddc]{background:hsla(0,0%,100%,.08);border:2px solid #fff;color:#fff;box-shadow:0 1px 3px hsla(0,0%,100%,.15)}[data-theme=contrast] .console-expand-arrow[data-v-b2350ddc]:hover{background:#fff;color:#000;border-color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px hsla(0,0%,100%,.3)}.collapse-icon[data-v-b2350ddc]{display:inline-block;transition:transform .3s ease;font-size:12px;color:var(--text-secondary,#969696)}.collapse-icon.collapsed[data-v-b2350ddc]{transform:rotate(-90deg)}.console-title[data-v-b2350ddc]{font-size:14px;font-weight:600;color:var(--console-header-text,#e5e5e5);text-transform:uppercase;letter-spacing:.5px}[data-theme=light] .console-title[data-v-b2350ddc]{color:#495057}[data-theme=dark] .console-title[data-v-b2350ddc]{color:#e5e5e5}[data-theme=contrast] .console-title[data-v-b2350ddc]{color:#fff;font-weight:700}.console-count[data-v-b2350ddc]{font-size:12px;color:var(--text-secondary,#969696)}.console-header-right[data-v-b2350ddc]{display:flex;gap:8px}.console-action-btn[data-v-b2350ddc]{background:var(--console-action-bg,rgba(0,122,204,.15));border:1.5px solid var(--console-header-button-border,#007acc);color:var(--console-header-button-text,#007acc);padding:6px 14px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;box-shadow:0 1px 3px rgba(0,122,204,.25)}.console-action-btn[data-v-b2350ddc]:hover{background:var(--console-header-button-hover,#007acc);border-color:var(--accent-color,#007acc);color:var(--text-primary,#fff);transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,122,204,.4)}[data-theme=light] .console-action-btn[data-v-b2350ddc]{background:rgba(0,102,204,.1);border:1.5px solid #06c;color:#06c;box-shadow:0 1px 3px rgba(0,102,204,.2)}[data-theme=light] .console-action-btn[data-v-b2350ddc]:hover{background:#06c;border-color:#06c;color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,102,204,.3)}[data-theme=dark] .console-action-btn[data-v-b2350ddc]{background:rgba(0,122,204,.15);border:1.5px solid #007acc;color:#007acc;box-shadow:0 1px 3px rgba(0,122,204,.25)}[data-theme=dark] .console-action-btn[data-v-b2350ddc]:hover{background:#007acc;border-color:#007acc;color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,122,204,.4)}[data-theme=contrast] .console-action-btn[data-v-b2350ddc]{background:hsla(0,0%,100%,.1);border:2px solid #fff;color:#fff;box-shadow:0 1px 3px hsla(0,0%,100%,.2)}[data-theme=contrast] .console-action-btn[data-v-b2350ddc]:hover{background:#fff;border-color:#fff;color:#000;transform:translateY(-1px);box-shadow:0 2px 6px hsla(0,0%,100%,.3)}.console-body[data-v-b2350ddc]{flex:1;display:flex;flex-direction:column;overflow:hidden;height:calc(100% - 35px)}.console-tab-bar[data-v-b2350ddc]{height:30px;background:var(--bg-tertiary,#1e1e1e);border-bottom:1px solid var(--border-secondary,#464647)}.console-output-area[data-v-b2350ddc]{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--bg-primary,#1e1e1e);padding:12px;font-family:Consolas,Monaco,Courier New,monospace;font-size:20px;line-height:1.4;min-height:0}.console-line[data-v-b2350ddc]{margin-bottom:2px}.console-text[data-v-b2350ddc]{color:var(--text-primary,#ccc);margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:Consolas,Monaco,Courier New,monospace;font-size:20px;line-height:1.4;font-weight:400;letter-spacing:.02em}.console-error[data-v-b2350ddc]{color:var(--error-color,#f44747);margin:0;white-space:pre-wrap;word-wrap:break-word}.console-input-prompt[data-v-b2350ddc]{color:var(--text-primary,#ccc);display:flex;align-items:flex-start;gap:8px;font-family:Consolas,Monaco,Courier New,monospace;font-size:20px;line-height:1.4}.prompt-arrow[data-v-b2350ddc]{color:var(--accent-color,#007acc);font-weight:700}.console-system[data-v-b2350ddc]{color:var(--text-secondary,#969696);margin:0;font-style:italic;white-space:pre-wrap}.console-repl-prompt[data-v-b2350ddc]{font-weight:700;font-family:monospace}.console-user-input[data-v-b2350ddc]{color:var(--text-primary,#ccc);margin:0;white-space:pre-wrap;word-wrap:break-word;font-weight:500;font-family:Consolas,Monaco,Courier New,monospace;font-size:20px;line-height:1.4;letter-spacing:.02em}.console-repl-entry[data-v-b2350ddc]{margin-bottom:4px}.console-repl-line[data-v-b2350ddc]{display:flex;align-items:flex-start;gap:4px;margin:0;line-height:1.4}.console-repl-prompt[data-v-b2350ddc]{color:var(--accent-color,#007acc);flex-shrink:0}.console-repl-input[data-v-b2350ddc],.console-repl-prompt[data-v-b2350ddc]{font-weight:500;font-family:Consolas,Monaco,Courier New,monospace;font-size:20px;line-height:1.4}.console-repl-input[data-v-b2350ddc]{color:var(--text-primary,#ccc);margin:0;white-space:pre-wrap;word-wrap:break-word;flex:1;letter-spacing:.02em}.console-repl-input.no-prompt[data-v-b2350ddc]{margin-left:28px}.ide-wrapper .console-output-area .console-line .python-keyword[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .python-keyword[data-v-b2350ddc],body .console-output-area .console-line .python-keyword[data-v-b2350ddc]{color:#569cd6!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .python-string[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .python-string[data-v-b2350ddc],body .console-output-area .console-line .python-string[data-v-b2350ddc]{color:#ce9178!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .python-number[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .python-number[data-v-b2350ddc],body .console-output-area .console-line .python-number[data-v-b2350ddc]{color:#b5cea8!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .python-comment[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .python-comment[data-v-b2350ddc],body .console-output-area .console-line .python-comment[data-v-b2350ddc]{color:#6a9955!important;font-style:italic!important;font-weight:400!important}.ide-wrapper .console-output-area .console-line .python-builtin[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .python-builtin[data-v-b2350ddc],body .console-output-area .console-line .python-builtin[data-v-b2350ddc]{color:#dcdcaa!important;font-weight:400!important;font-style:normal!important}.console-repl-input pre[class*=language-][data-v-b2350ddc]{margin:0;padding:0;background:transparent;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.console-repl-input code[class*=language-][data-v-b2350ddc]{font-family:inherit;font-size:inherit;line-height:inherit;text-shadow:none;background:transparent;padding:0;letter-spacing:inherit}.ide-wrapper .console-output-area .console-line .console-repl-input .token.keyword[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.keyword[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.keyword[data-v-b2350ddc]{color:#569cd6!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .console-repl-input .token.string[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.string[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.string[data-v-b2350ddc]{color:#ce9178!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .console-repl-input .token.number[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.number[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.number[data-v-b2350ddc]{color:#b5cea8!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .console-repl-input .token.comment[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.comment[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.comment[data-v-b2350ddc]{color:#6a9955!important;font-weight:400!important;font-style:italic!important}.ide-wrapper .console-output-area .console-line .console-repl-input .token.builtin[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.builtin[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.builtin[data-v-b2350ddc]{color:#dcdcaa!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .console-repl-input .token.operator[data-v-b2350ddc],.ide-wrapper .console-output-area .console-line .console-repl-input .token.punctuation[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.operator[data-v-b2350ddc],.ide-wrapper .console-section .console-body .console-output-area .console-line .console-repl-input .token.punctuation[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.operator[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token.punctuation[data-v-b2350ddc]{color:#d4d4d4!important;font-weight:400!important;font-style:normal!important}.ide-wrapper .console-output-area .console-line .console-repl-input .token[data-v-b2350ddc],.ide-wrapper .console-output-area .console-line .console-repl-input span[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input .token[data-v-b2350ddc],body .console-output-area .console-line .console-repl-input span[data-v-b2350ddc]{font-weight:400!important}.console-input-area[data-v-b2350ddc]{border-top:1px solid var(--border-secondary,#464647);padding:8px 12px;background:var(--bg-tertiary,#1a1a1a);position:sticky;bottom:0;z-index:10;margin-top:auto}.input-prompt[data-v-b2350ddc]{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--text-secondary,#969696);font-size:20px}.prompt-icon[data-v-b2350ddc]{font-size:16px}.input-field-container[data-v-b2350ddc]{display:flex;gap:8px}.program-input-field[data-v-b2350ddc]{flex:1;background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-secondary,#464647);color:var(--text-primary,#fff);padding:6px 10px;border-radius:3px;font-family:Courier New,monospace;font-size:20px;outline:none;resize:none;overflow-y:auto;min-height:32px;max-height:150px;line-height:20px;transition:height .15s ease}.program-input-field[data-v-b2350ddc]:focus{border-color:var(--accent-color,#007acc);box-shadow:0 0 0 1px var(--accent-color,#007acc)}.input-submit-btn[data-v-b2350ddc]{background:var(--accent-color,#007acc);color:#fff;border:none;padding:6px 16px;border-radius:3px;cursor:pointer;font-size:13px;transition:background-color .2s ease}.input-submit-btn[data-v-b2350ddc]:hover{background:#1a8cff}.repl-section[data-v-b2350ddc]{border-top:1px solid var(--border-primary,#3c3c3c);background:var(--bg-secondary,#252526);padding:8px 12px;flex-shrink:0;margin-top:auto}.repl-prompt[data-v-b2350ddc]{display:flex;align-items:center}.prompt-symbol[data-v-b2350ddc]{font-size:14px}.repl-input[data-v-b2350ddc]{flex:1;background:var(--bg-primary,#1e1e1e);border:1px solid var(--border-secondary,#464647);color:var(--text-primary,#fff);font-family:Consolas,Monaco,Courier New,monospace!important;font-size:20px!important;line-height:1.4!important;padding:6px 8px;border-radius:3px;outline:none;resize:none;overflow-y:auto;min-height:32px;max-height:150px;transition:border-color .2s ease,height .15s ease}.repl-input[data-v-b2350ddc]:focus{border-color:var(--accent-color,#007acc);box-shadow:0 0 0 1px var(--accent-color,#007acc)}.repl-input[data-v-b2350ddc]::-moz-placeholder{color:var(--text-muted,#6a6a6a)}.repl-input[data-v-b2350ddc]::placeholder{color:var(--text-muted,#6a6a6a)}.right-sidebar[data-v-b2350ddc]{background:var(--bg-sidebar,#252526);height:100%;width:100%;position:relative;display:flex;flex-direction:column;border-left:1px solid var(--border-primary,#3c3c3c);z-index:20;box-sizing:border-box;overflow:hidden}.right-sidebar-placeholder[data-v-b2350ddc]{width:0;height:100%;background:var(--bg-sidebar,#252526);display:none;overflow:hidden}.preview-tabs[data-v-b2350ddc]{height:35px;background:var(--bg-secondary,#2a2a2d);border-bottom:1px solid var(--border-primary,#3c3c3c);display:flex;justify-content:space-between;align-items:center;padding:0 4px}.preview-tab-list[data-v-b2350ddc]{display:flex;flex:1;overflow-x:auto;gap:2px}.preview-tab[data-v-b2350ddc]{background:transparent;border:none;color:var(--text-secondary,#969696);padding:6px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;border-bottom:2px solid transparent;transition:all .2s ease;font-size:13px;white-space:nowrap}.preview-tab[data-v-b2350ddc]:hover{background:var(--bg-hover,#2f2f31);color:var(--text-primary,#ccc)}.preview-tab.active[data-v-b2350ddc]{background:var(--bg-active,#1e1e1e);color:var(--text-primary,#fff);border-bottom-color:var(--accent-color,#007acc)}.preview-tab[data-v-b2350ddc]{cursor:grab;position:relative;transition:transform .15s ease,opacity .15s ease,background .2s ease}.preview-tab.dragging[data-v-b2350ddc]{opacity:.5;cursor:grabbing}.preview-tab.drop-target-left[data-v-b2350ddc]:before{left:-2px}.preview-tab.drop-target-left[data-v-b2350ddc]:before,.preview-tab.drop-target-right[data-v-b2350ddc]:after{content:"";position:absolute;top:4px;bottom:4px;width:3px;background:var(--accent-color,#007acc);border-radius:2px;animation:preview-pulse-b2350ddc .5s ease-in-out infinite alternate}.preview-tab.drop-target-right[data-v-b2350ddc]:after{right:-2px}@keyframes preview-pulse-b2350ddc{0%{opacity:.6}to{opacity:1}}.tab-icon[data-v-b2350ddc]{font-size:14px}.tab-title[data-v-b2350ddc]{font-size:13px}.tab-close[data-v-b2350ddc]{margin-left:4px;opacity:.6;transition:opacity .2s ease;font-size:16px;line-height:1}.tab-close[data-v-b2350ddc]:hover{opacity:1;color:var(--error-color,#f44747)}.preview-tab-add[data-v-b2350ddc]{background:transparent;border:none;color:var(--text-secondary,#969696);padding:4px 8px;cursor:pointer;font-size:14px;transition:all .2s ease}.preview-tab-add[data-v-b2350ddc]:hover{background:var(--bg-hover,#2f2f31);color:var(--accent-color,#007acc)}.preview-content[data-v-b2350ddc]{flex:1;overflow:hidden;background:var(--bg-primary,#1e1e1e)}.preview-panel[data-v-b2350ddc]{height:100%;overflow:auto}.output-panel[data-v-b2350ddc]{height:100%;padding:12px}.output-content[data-v-b2350ddc]{font-family:Courier New,monospace;font-size:13px}.output-line[data-v-b2350ddc]{margin-bottom:4px}.output-line.error[data-v-b2350ddc]{color:var(--error-color,#f44747)}.output-line.warning[data-v-b2350ddc]{color:var(--warning-color,#fc0)}.output-line.info[data-v-b2350ddc]{color:var(--info-color,#3794ff)}.output-line pre[data-v-b2350ddc]{margin:0;white-space:pre-wrap;word-wrap:break-word}.media-preview-panel[data-v-b2350ddc]{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-pattern,#1a1a1a)}.data-preview-panel[data-v-b2350ddc]{height:100%;overflow:hidden;display:flex;flex-direction:column;position:relative;z-index:21}.sidebar-resizer[data-v-b2350ddc]{width:5px;height:100%;background:var(--border-primary,#3c3c3c);cursor:col-resize;position:absolute;transition:background-color .15s ease;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;will-change:left,right,background-color;transform:translateZ(0);backface-visibility:hidden}.sidebar-resizer.resizing[data-v-b2350ddc],.sidebar-resizer[data-v-b2350ddc]:hover{background:var(--accent-color,#007acc)}.resizer-arrows[data-v-b2350ddc]{position:absolute;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:60}.resizer-arrow[data-v-b2350ddc]{background:var(--bg-secondary,#2a2a2d);border:1px solid var(--border-primary,#3c3c3c);border-radius:4px;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary,#b5b5b5);transition:all .2s;width:24px;height:24px}.resizer-arrow[data-v-b2350ddc]:hover{background:var(--accent-color,#007acc);color:#fff;border-color:var(--accent-color,#007acc)}.sidebar-resizer.resizing.at-limit[data-v-b2350ddc]{background:var(--warning-color,orange)}.resizer-handle[data-v-b2350ddc]{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);width:2px;height:30px;background:var(--text-secondary,#858585);border-radius:1px;opacity:.6;transition:opacity .15s ease;will-change:opacity}.sidebar-resizer.resizing .resizer-handle[data-v-b2350ddc],.sidebar-resizer:hover .resizer-handle[data-v-b2350ddc]{opacity:1}.sidebar-resizer.left[data-v-b2350ddc]{min-left:150px;max-left:calc(100vw - 800px)}.sidebar-resizer.right[data-v-b2350ddc]{min-right:300px;max-right:calc(100vw - 650px)}.show-preview-btn[data-v-b2350ddc]{position:absolute;right:0;top:50%;transform:translateY(-50%);background:var(--accent-color,#007acc);color:#fff;padding:8px 6px;border-radius:4px 0 0 4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;z-index:15;transition:all .2s ease}.show-preview-btn[data-v-b2350ddc]:hover{background:#1a8cff;padding-right:10px}.show-preview-btn .tab-count[data-v-b2350ddc]{background:hsla(0,0%,100%,.2);padding:2px 6px;border-radius:10px;font-size:12px;font-weight:700}.right-panel-controls[data-v-b2350ddc]{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;z-index:100;pointer-events:none}.right-panel-controls .control-arrow[data-v-b2350ddc]{pointer-events:auto;background:var(--bg-secondary,#2d2d30);border:1px solid var(--border-primary,#3c3c3c);color:var(--text-primary,#ccc);width:24px;height:24px;border-radius:4px 0 0 4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:.7}.right-panel-controls .control-arrow[data-v-b2350ddc]:hover{background:var(--accent-color,#007acc);color:#fff;opacity:1;transform:translateX(-2px)}.right-panel-controls .control-arrow[data-v-b2350ddc]:active{transform:translateX(0)}[data-theme=light] .right-panel-controls .control-arrow[data-v-b2350ddc]{background:#fff;border-color:#e0e0e0;color:#333}[data-theme=light] .right-panel-controls .control-arrow[data-v-b2350ddc]:hover{background:#007acc;color:#fff}@keyframes slideDown-b2350ddc{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUp-b2350ddc{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}.console-section[data-v-b2350ddc]{animation:slideDown-b2350ddc .3s ease-out}.console-section.collapsed[data-v-b2350ddc]{animation:slideUp-b2350ddc .3s ease-out}.console-mode-tabs[data-v-b2350ddc]{display:flex;background-color:var(--bg-secondary,#252526);border-bottom:1px solid var(--border-color,#3e3e42);padding:0;margin:0}.tab-button[data-v-b2350ddc]{background:transparent;border:none;color:var(--text-secondary,#ccc);padding:12px 16px;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s ease;font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px;position:relative}.tab-button[data-v-b2350ddc]:hover{background-color:var(--bg-hover,#2a2a2b);color:var(--text-primary,#fff)}.tab-button.active[data-v-b2350ddc]{color:var(--text-primary,#fff);border-bottom-color:var(--accent-color,#007acc);background-color:var(--bg-active,#1e1e1e)}.tab-badge[data-v-b2350ddc]{background-color:var(--accent-color,#007acc);color:#fff;border-radius:10px;padding:2px 6px;font-size:11px;font-weight:700;min-width:16px;text-align:center}.tab-content[data-v-b2350ddc]{height:calc(100% - 48px);display:flex;flex-direction:column}.output-tab[data-v-b2350ddc]{flex:1;overflow:hidden;display:flex;flex-direction:column}.output-tab .console-content[data-v-b2350ddc]{flex:1;overflow-y:auto;overflow-x:hidden}.terminal-tab[data-v-b2350ddc]{background-color:var(--bg-primary,#1e1e1e)}.terminal-header[data-v-b2350ddc]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:var(--bg-secondary,#252526);border-bottom:1px solid var(--border-color,#3e3e42)}.terminal-title[data-v-b2350ddc]{color:var(--text-secondary,#ccc);font-size:13px;font-weight:500}.terminal-actions[data-v-b2350ddc]{display:flex;gap:8px}.terminal-btn[data-v-b2350ddc]{background:transparent;border:1px solid var(--border-color,#3e3e42);color:var(--text-secondary,#ccc);padding:4px 8px;border-radius:3px;cursor:pointer;font-size:12px;transition:all .2s ease}.terminal-btn[data-v-b2350ddc]:hover{background-color:var(--bg-hover,#2a2a2b);border-color:var(--accent-color,#007acc);color:var(--text-primary,#fff)}.terminal-content[data-v-b2350ddc]{flex:1;padding:12px;overflow-y:auto;overflow-x:hidden;font-family:Courier New,monospace;background-color:var(--bg-primary,#1e1e1e);width:100%;box-sizing:border-box}.terminal-output[data-v-b2350ddc]{margin-bottom:12px}.terminal-welcome[data-v-b2350ddc]{color:var(--text-secondary,#ccc);margin-bottom:16px;font-style:italic}.terminal-welcome div[data-v-b2350ddc]{margin-bottom:4px;font-size:13px}.pyodide-loading[data-v-b2350ddc]{color:var(--accent-color,#007acc);text-align:center;padding:20px}.loading-spinner[data-v-b2350ddc]{font-size:18px;animation:spin-b2350ddc 1s linear infinite;margin-top:8px}@keyframes spin-b2350ddc{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pyodide-ready[data-v-b2350ddc]{color:var(--success-color,#4caf50)}.python-features[data-v-b2350ddc]{color:var(--text-muted,#888);font-size:12px;margin-top:8px}.pyodide-not-loaded[data-v-b2350ddc]{color:var(--text-secondary,#ccc);cursor:pointer;transition:color .2s ease}.pyodide-not-loaded[data-v-b2350ddc]:hover{color:var(--accent-color,#007acc)}.terminal-line[data-v-b2350ddc]{margin-bottom:2px}.terminal-input-line[data-v-b2350ddc]{display:flex;align-items:flex-start;color:var(--text-primary,#fff)}.terminal-output-line[data-v-b2350ddc]{margin-left:20px;color:var(--text-secondary,#ccc)}.terminal-output-line pre[data-v-b2350ddc]{margin:0;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;overflow-wrap:break-word;font-family:inherit;font-size:14px;max-width:100%;box-sizing:border-box}.terminal-error-line[data-v-b2350ddc]{margin-left:20px;color:var(--error-color,#ff6b68)}.terminal-error-line pre[data-v-b2350ddc]{margin:0;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;overflow-wrap:break-word;font-family:inherit;font-size:14px;max-width:100%;box-sizing:border-box}.terminal-current-prompt[data-v-b2350ddc]{display:flex;align-items:center;margin-top:8px;position:sticky;bottom:0;background-color:var(--bg-primary,#1e1e1e);padding:4px 0}.prompt-symbol[data-v-b2350ddc]{color:var(--accent-color,#007acc);font-weight:700;margin-right:8px;font-family:Courier New,monospace}.input-text[data-v-b2350ddc],.terminal-input[data-v-b2350ddc]{font-family:Courier New,monospace;font-size:14px}.terminal-input[data-v-b2350ddc]{flex:1;background:transparent;border:none;color:var(--text-primary,#fff);outline:none;padding:2px 0}.terminal-input[data-v-b2350ddc]::-moz-placeholder{color:var(--text-muted,#6a6a6a)}.terminal-input[data-v-b2350ddc]::placeholder{color:var(--text-muted,#6a6a6a)}.ide-wrapper[data-v-b2350ddc]{text-align:left;background-color:var(--bg-primary,#1e1e1e);color:var(--text-primary,#ccc);transition:background-color .3s ease,color .3s ease;width:100%;height:100vh;position:relative;overflow:hidden}a[data-v-b2350ddc]{color:#fff}body[data-v-b2350ddc]{scrollbar-track-color:#3c3f41}.two-header-menu[data-v-b2350ddc]{position:fixed;width:100%;height:80px;top:0;left:0;z-index:9999}.console-output-area[data-v-b2350ddc]::-webkit-scrollbar,.left-sidebar[data-v-b2350ddc]::-webkit-scrollbar,.preview-content[data-v-b2350ddc]::-webkit-scrollbar{width:6px;height:6px}.console-output-area[data-v-b2350ddc]::-webkit-scrollbar-thumb,.left-sidebar[data-v-b2350ddc]::-webkit-scrollbar-thumb,.preview-content[data-v-b2350ddc]::-webkit-scrollbar-thumb{background:#87939a;border-radius:3px}.console-output-area[data-v-b2350ddc]::-webkit-scrollbar-track,.left-sidebar[data-v-b2350ddc]::-webkit-scrollbar-track,.preview-content[data-v-b2350ddc]::-webkit-scrollbar-track{background:#2f2f2f}.context-menu[data-v-b2350ddc]{position:fixed;background:var(--bg-secondary,#252526);border:1px solid var(--border-primary,#3c3c3c);border-radius:4px;padding:4px 0;min-width:150px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:10000}.context-menu-item[data-v-b2350ddc]{padding:8px 16px;cursor:pointer;color:var(--text-primary,#ccc);font-size:13px;transition:background-color .2s ease}.context-menu-item[data-v-b2350ddc]:hover{background:var(--bg-hover,#094771)}.context-menu-divider[data-v-b2350ddc]{height:1px;background:var(--border-secondary,#464647);margin:4px 0}@media (max-width:1400px){.left-sidebar[data-v-b2350ddc]{max-width:min(40vw,500px);width:100%}.right-sidebar[data-v-b2350ddc]{max-width:350px}.console-height[data-v-b2350ddc]{max-height:250px}.main-splitpanes.splitpanes--vertical>.splitpanes__pane[data-v-b2350ddc]{flex-shrink:0}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:first-child{overflow:hidden}}@media (max-width:1200px){.left-sidebar[data-v-b2350ddc]{width:100%;max-width:min(35vw,400px)}.right-sidebar[data-v-b2350ddc]{display:none!important;width:0!important}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:last-child{width:0!important;max-width:0!important;min-width:0!important;flex:0 0 0!important;display:none!important}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]:last-of-type{display:none!important;width:0!important}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:nth-child(2){flex:1 1 auto!important;width:auto!important}.center-frame[data-v-b2350ddc]{width:100%!important}}@media (max-width:1024px){.left-sidebar[data-v-b2350ddc]{max-width:min(35vw,350px)}.right-sidebar[data-v-b2350ddc]{max-width:300px}}@media (max-width:900px){.left-sidebar[data-v-b2350ddc]{width:0!important;display:none}.main-splitpanes.splitpanes--vertical[data-v-b2350ddc]{display:flex!important}.splitpanes__pane[data-v-b2350ddc]{background:var(--bg-primary,#1e1e1e)!important}.main-splitpanes.splitpanes--vertical>.splitpanes__pane[data-v-b2350ddc]:first-child{display:none!important;visibility:hidden!important;width:0!important;max-width:0!important;min-width:0!important;flex:0 0 0!important;overflow:hidden!important;padding:0!important;margin:0!important;border:none!important;position:absolute!important;left:-9999px!important}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]{display:none!important;width:0!important}.main-splitpanes.splitpanes--vertical>.splitpanes__pane[data-v-b2350ddc]:nth-child(2),.main-splitpanes.splitpanes--vertical>.splitpanes__pane[data-v-b2350ddc]:nth-child(3){width:100%!important;max-width:100%!important;flex:1 1 100%!important}#center-frame[data-v-b2350ddc]{width:100%!important;left:0!important;right:0!important}.sidebar-resizer.left[data-v-b2350ddc]{display:none}.center-frame[data-v-b2350ddc]{left:0!important;right:0!important;width:100%!important}.right-sidebar[data-v-b2350ddc]{display:none!important}.main-splitpanes.splitpanes--vertical>.splitpanes__pane[data-v-b2350ddc]:last-child{display:none!important;visibility:hidden!important;width:0!important;max-width:0!important;min-width:0!important;flex:0 0 0!important;overflow:hidden!important;padding:0!important;margin:0!important;border:none!important;position:absolute!important;right:-9999px!important}.sidebar-resizer.right[data-v-b2350ddc]{display:none}.console-header[data-v-b2350ddc]{height:40px}.console-title[data-v-b2350ddc]{font-size:14px}}@media (max-width:480px){.console-header[data-v-b2350ddc]{height:36px}.console-action-btn[data-v-b2350ddc]{padding:4px 8px;font-size:12px}.editor-tab-bar[data-v-b2350ddc]{font-size:12px}}.run-icon[data-v-b2350ddc]{margin-top:-5px;background-image:url(../../static/img/icon_running.8062bc3f.svg)}.run-icon[data-v-b2350ddc],.stop-icon[data-v-b2350ddc]{margin-right:20px;width:16px;height:16px;cursor:pointer}.stop-icon[data-v-b2350ddc]{margin-top:5px;background-image:url(../../static/img/icon_stop.28e08eac.svg)}.repl-modal[data-v-b2350ddc]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:10000}.repl-modal-content[data-v-b2350ddc]{width:90%;max-width:1200px;height:80%;background:#1e1e1e;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.5)}.repl-modal-header[data-v-b2350ddc]{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#2d2d30;border-bottom:1px solid #3e3e42;border-radius:8px 8px 0 0}.repl-modal-header h3[data-v-b2350ddc]{margin:0;color:#d4d4d4;font-size:18px}.repl-close-btn[data-v-b2350ddc]{background:transparent;border:none;color:#d4d4d4;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.repl-close-btn[data-v-b2350ddc]:hover{background:hsla(0,0%,100%,.1)}.repl-modal-body[data-v-b2350ddc]{flex:1;overflow:hidden;border-radius:0 0 8px 8px}.repl-indicator[data-v-b2350ddc]{display:inline-block;width:8px;height:8px;background:#4ec9b0;border-radius:50%;margin-left:8px;animation:pulse-b2350ddc 2s infinite}@keyframes pulse-b2350ddc{0%,to{opacity:1}50%{opacity:.5}}.console-action-btn.active[data-v-b2350ddc]{background:var(--accent-color,#007acc);color:#fff}.main-splitpanes[data-v-b2350ddc]{height:100%;width:100%;background:var(--bg-primary,#1e1e1e)!important}.sidebar-resizer[data-v-b2350ddc]{display:none!important}.splitpanes.default-theme .splitpanes__splitter[data-v-b2350ddc]{background-color:var(--border-primary,#3c3c3c);position:relative;z-index:20}.splitpanes__pane[data-v-b2350ddc]{background:transparent!important;transition:none}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]{background:var(--bg-primary,#1e1e1e)!important;overflow:hidden}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:first-child{min-width:0;flex-shrink:0}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:last-child{min-width:0;transition:none}@media (min-width:1100px) and (max-width:1200px){.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:last-child{width:0!important;max-width:0!important;display:none!important}.main-splitpanes>.splitpanes__pane[data-v-b2350ddc]:nth-child(2){flex:1 1 auto!important;width:calc(100% - var(--left-sidebar-width, 180px))!important}}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]{width:8px;background-color:var(--border-primary,#3c3c3c);cursor:col-resize;display:flex;align-items:center;justify-content:center}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]:last-of-type{pointer-events:none;cursor:default;opacity:.3}.main-splitpanes.splitpanes--vertical.has-right-content>.splitpanes__splitter[data-v-b2350ddc]:last-of-type{pointer-events:auto;cursor:col-resize;opacity:1}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]:hover{background-color:var(--accent-color,#007acc)}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]:before{content:"⋮";color:hsla(0,0%,100%,.3);font-size:20px;font-weight:700}.main-splitpanes.splitpanes--vertical>.splitpanes__splitter[data-v-b2350ddc]:hover:before{color:hsla(0,0%,100%,.8)}#center-frame .splitpanes--horizontal>.splitpanes__splitter[data-v-b2350ddc]{height:8px;cursor:ns-resize;background-color:var(--border-primary,#3c3c3c);position:relative;display:flex;align-items:center;justify-content:center}#center-frame .splitpanes--horizontal>.splitpanes__splitter[data-v-b2350ddc]:hover{background-color:var(--accent-color,#007acc)}#center-frame .splitpanes--horizontal>.splitpanes__splitter[data-v-b2350ddc]:before{content:"⋯";color:hsla(0,0%,100%,.3);font-size:20px;font-weight:700;letter-spacing:2px}#center-frame .splitpanes--horizontal>.splitpanes__splitter[data-v-b2350ddc]:hover:before{color:hsla(0,0%,100%,.8)}[data-theme=light] .right-sidebar[data-v-b2350ddc]{background:var(--bg-sidebar,#f3f3f3);border-left-color:var(--border-primary,#e0e0e0)}[data-theme=light] .right-sidebar-placeholder[data-v-b2350ddc]{background:var(--bg-sidebar,#f3f3f3);color:var(--text-secondary,#6a6a6a)}[data-theme=light] .preview-tabs[data-v-b2350ddc]{background:var(--bg-secondary,#e8e8e8);border-bottom-color:var(--border-primary,#d0d0d0)}[data-theme=light] .preview-tab[data-v-b2350ddc]{color:var(--text-secondary,#616161)}[data-theme=light] .preview-tab[data-v-b2350ddc]:hover{background:var(--bg-hover,#d4d4d4);color:var(--text-primary,#333)}[data-theme=light] .preview-tab.active[data-v-b2350ddc]{background:var(--bg-active,#fff);color:var(--text-primary,#333);border-bottom-color:var(--accent-color,#0078d4)}[data-theme=light] .preview-tab-add[data-v-b2350ddc]{color:var(--text-secondary,#616161)}[data-theme=light] .preview-tab-add[data-v-b2350ddc]:hover{background:var(--bg-hover,#d4d4d4);color:var(--accent-color,#0078d4)}[data-theme=light] .preview-content[data-v-b2350ddc]{background:var(--bg-primary,#fff)}[data-theme=light] .media-preview-panel[data-v-b2350ddc]{background:var(--bg-pattern,#f8f8f8)}[data-theme=light] .output-panel[data-v-b2350ddc]{background:var(--bg-primary,#fff);color:var(--text-primary,#333)}[data-theme=high-contrast] .right-sidebar[data-v-b2350ddc]{background:var(--bg-sidebar,#000);border-left:2px solid var(--border-primary,#fff)}[data-theme=high-contrast] .right-sidebar-placeholder[data-v-b2350ddc]{background:var(--bg-sidebar,#000);color:var(--text-secondary,#fff)}[data-theme=high-contrast] .preview-tabs[data-v-b2350ddc]{background:var(--bg-secondary,#000);border-bottom:2px solid var(--border-primary,#fff)}[data-theme=high-contrast] .preview-tab[data-v-b2350ddc]{color:var(--text-secondary,#fff);border:1px solid transparent}[data-theme=high-contrast] .preview-tab[data-v-b2350ddc]:hover{background:var(--bg-hover,#1a1a1a);color:var(--text-primary,#fff);border-color:var(--accent-color,#ff0)}[data-theme=high-contrast] .preview-tab.active[data-v-b2350ddc]{background:var(--bg-active,#0f0f0f);color:var(--text-primary,#fff);border-color:var(--accent-color,#ff0);border-bottom-color:var(--accent-color,#ff0)}[data-theme=high-contrast] .preview-tab-add[data-v-b2350ddc]{color:var(--text-secondary,#fff)}[data-theme=high-contrast] .preview-tab-add[data-v-b2350ddc]:hover{background:var(--bg-hover,#1a1a1a);color:var(--accent-color,#ff0)}[data-theme=high-contrast] .preview-content[data-v-b2350ddc]{background:var(--bg-primary,#000)}[data-theme=high-contrast] .media-preview-panel[data-v-b2350ddc]{background:var(--bg-pattern,#0f0f0f)}[data-theme=high-contrast] .output-panel[data-v-b2350ddc]{background:var(--bg-primary,#000);color:var(--text-primary,#fff)}#center-frame .splitpanes[data-v-b2350ddc]{height:100%}#center-frame .splitpanes__pane[data-v-b2350ddc]{overflow:hidden;background:var(--bg-primary,#1e1e1e)}.splitpanes__pane .console-section[data-v-b2350ddc],.splitpanes__pane .editor-section[data-v-b2350ddc]{height:100%;display:flex;flex-direction:column} \ No newline at end of file diff --git a/dist/static/css/768.6c9ce803.css b/dist/static/css/768.6c9ce803.css new file mode 100644 index 00000000..b5b26a8f --- /dev/null +++ b/dist/static/css/768.6c9ce803.css @@ -0,0 +1 @@ +.coming-soon[data-v-2bdcaa10]{text-align:center;padding:80px 24px}.coming-soon .icon[data-v-2bdcaa10]{font-size:64px}.coming-soon h3[data-v-2bdcaa10]{margin:24px 0 12px;color:var(--admin-text-white)}.coming-soon p[data-v-2bdcaa10]{color:var(--admin-text-secondary)} \ No newline at end of file diff --git a/dist/static/css/953.f894a2d4.css b/dist/static/css/953.f894a2d4.css new file mode 100644 index 00000000..ecb15d70 --- /dev/null +++ b/dist/static/css/953.f894a2d4.css @@ -0,0 +1 @@ +.coming-soon[data-v-7f594bff]{text-align:center;padding:80px 24px}.coming-soon .icon[data-v-7f594bff]{font-size:64px}.coming-soon h3[data-v-7f594bff]{margin:24px 0 12px;color:var(--admin-text-white)}.coming-soon p[data-v-7f594bff]{color:var(--admin-text-secondary)} \ No newline at end of file diff --git a/dist/static/css/admin.94e6ff1c.css b/dist/static/css/admin.94e6ff1c.css new file mode 100644 index 00000000..1e9f9539 --- /dev/null +++ b/dist/static/css/admin.94e6ff1c.css @@ -0,0 +1 @@ +#admin-app{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;background-color:var(--admin-bg-primary);color:var(--admin-text-primary)}.login-page[data-v-55e08b4a]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1e1e,#2d2d30);padding:20px}.login-container[data-v-55e08b4a]{width:100%;max-width:400px;background-color:var(--admin-bg-secondary);border:1px solid var(--admin-border-color);border-radius:12px;padding:40px;box-shadow:var(--admin-shadow-lg)}.login-header[data-v-55e08b4a]{text-align:center;margin-bottom:32px}.login-title[data-v-55e08b4a]{font-size:28px;font-weight:700;color:var(--admin-text-white);margin:0 0 8px 0}.login-subtitle[data-v-55e08b4a]{font-size:14px;color:var(--admin-text-secondary);margin:0}.login-form[data-v-55e08b4a]{margin-bottom:24px}.form-group[data-v-55e08b4a]{margin-bottom:20px}.form-label[data-v-55e08b4a]{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--admin-text-primary)}.input-icon[data-v-55e08b4a]{font-size:16px}.login-error[data-v-55e08b4a]{margin-bottom:20px}.login-button[data-v-55e08b4a]{width:100%;height:44px;font-size:16px;font-weight:500}.login-footer[data-v-55e08b4a]{text-align:center;color:var(--admin-text-muted);font-size:12px}.login-footer p[data-v-55e08b4a]{margin:0}[data-v-55e08b4a] .el-input__wrapper{background-color:var(--admin-bg-tertiary)!important;box-shadow:0 0 0 1px var(--admin-border-color) inset!important}[data-v-55e08b4a] .el-input__inner{color:var(--admin-text-primary)!important}[data-v-55e08b4a] .el-input__inner::-moz-placeholder{color:var(--admin-text-muted)!important}[data-v-55e08b4a] .el-input__inner::placeholder{color:var(--admin-text-muted)!important}[data-v-55e08b4a] .el-button--primary{--el-button-bg-color:var(--admin-primary);--el-button-border-color:var(--admin-primary);--el-button-hover-bg-color:var(--admin-primary-hover);--el-button-hover-border-color:var(--admin-primary-hover)}.admin-sidebar[data-v-1b06d4f8]{width:var(--admin-sidebar-width);background-color:var(--admin-bg-secondary);border-right:1px solid var(--admin-border-color);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100;transition:width .3s ease}.admin-sidebar.collapsed[data-v-1b06d4f8]{width:var(--admin-sidebar-collapsed-width)}.sidebar-logo[data-v-1b06d4f8]{height:60px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--admin-border-color);font-size:18px;font-weight:600;color:var(--admin-text-white)}.logo-icon[data-v-1b06d4f8]{font-size:24px;margin-right:12px}.collapsed .logo-icon[data-v-1b06d4f8]{margin-right:0}.sidebar-nav[data-v-1b06d4f8]{flex:1;padding:16px 0;overflow-y:auto}.nav-item[data-v-1b06d4f8]{display:flex;align-items:center;padding:12px 20px;color:var(--admin-text-secondary);text-decoration:none;transition:all .2s ease;cursor:pointer;border-left:3px solid transparent}.nav-item[data-v-1b06d4f8]:hover{background-color:var(--admin-bg-hover);color:var(--admin-text-primary)}.nav-item.active[data-v-1b06d4f8]{background-color:var(--admin-bg-active);color:var(--admin-text-white);border-left-color:var(--admin-primary)}.nav-icon[data-v-1b06d4f8]{font-size:18px;width:24px;text-align:center;margin-right:12px}.collapsed .nav-icon[data-v-1b06d4f8]{margin-right:0}.nav-text[data-v-1b06d4f8]{white-space:nowrap;overflow:hidden}.sidebar-footer[data-v-1b06d4f8]{padding:16px;border-top:1px solid var(--admin-border-color)}.user-info[data-v-1b06d4f8]{margin-bottom:12px;padding:8px;background-color:var(--admin-bg-tertiary);border-radius:8px}.user-name[data-v-1b06d4f8]{font-size:14px;font-weight:500;color:var(--admin-text-primary)}.user-role[data-v-1b06d4f8]{font-size:12px;color:var(--admin-text-secondary);text-transform:capitalize}.logout-btn[data-v-1b06d4f8]{display:flex;align-items:center;width:100%;padding:12px;background-color:transparent;border:1px solid var(--admin-border-color);border-radius:8px;color:var(--admin-text-secondary);cursor:pointer;transition:all .2s ease}.logout-btn[data-v-1b06d4f8]:hover{background-color:rgba(220,53,69,.2);border-color:var(--admin-danger);color:var(--admin-danger)}.admin-layout[data-v-41cc9b25]{display:flex;min-height:100vh}.admin-main[data-v-41cc9b25]{flex:1;margin-left:var(--admin-sidebar-width);display:flex;flex-direction:column;transition:margin-left .3s ease}.admin-main.sidebar-collapsed[data-v-41cc9b25]{margin-left:var(--admin-sidebar-collapsed-width)}.admin-header[data-v-41cc9b25]{height:60px;background-color:var(--admin-bg-secondary);border-bottom:1px solid var(--admin-border-color);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:50;gap:16px}.toggle-sidebar[data-v-41cc9b25]{background:none;border:none;color:var(--admin-text-secondary);font-size:20px;cursor:pointer;padding:8px;border-radius:4px;transition:all .2s ease}.toggle-sidebar[data-v-41cc9b25]:hover{background-color:var(--admin-bg-hover);color:var(--admin-text-primary)}.page-title[data-v-41cc9b25]{font-size:20px;font-weight:600;color:var(--admin-text-white);margin:0;flex:1}.header-actions[data-v-41cc9b25]{display:flex;align-items:center;gap:16px}.welcome-text[data-v-41cc9b25]{font-size:14px;color:var(--admin-text-secondary)}.admin-content[data-v-41cc9b25]{flex:1;padding:24px;overflow-y:auto;background-color:var(--admin-bg-primary)}.dashboard[data-v-6087adce]{max-width:1200px}.stats-grid[data-v-6087adce]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.stat-card[data-v-6087adce]{background-color:var(--admin-bg-secondary);border:1px solid var(--admin-border-color);border-radius:8px;padding:20px;display:flex;align-items:center}.stat-icon[data-v-6087adce]{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-right:16px;font-size:28px}.stat-icon.primary[data-v-6087adce]{background-color:rgba(0,120,212,.2)}.stat-icon.success[data-v-6087adce]{background-color:rgba(40,167,69,.2)}.stat-icon.warning[data-v-6087adce]{background-color:rgba(255,193,7,.2)}.stat-icon.info[data-v-6087adce]{background-color:rgba(23,162,184,.2)}.stat-value[data-v-6087adce]{font-size:32px;font-weight:700;color:var(--admin-text-white);line-height:1;margin-bottom:4px}.stat-label[data-v-6087adce]{font-size:14px;color:var(--admin-text-secondary)}.quick-actions[data-v-6087adce]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.action-btn[data-v-6087adce]{display:flex;flex-direction:column;align-items:center;padding:24px 16px;background-color:var(--admin-bg-tertiary);border:1px solid var(--admin-border-color);border-radius:8px;color:var(--admin-text-primary);text-decoration:none;cursor:pointer;transition:all .2s ease}.action-btn[data-v-6087adce]:hover{background-color:var(--admin-bg-hover);border-color:var(--admin-primary)}.action-icon[data-v-6087adce]{font-size:32px;margin-bottom:12px}.action-text[data-v-6087adce]{font-size:14px;font-weight:500}.view-all-link[data-v-6087adce]{color:var(--admin-primary);text-decoration:none;font-size:14px}.view-all-link[data-v-6087adce]:hover{text-decoration:underline}.activity-list[data-v-6087adce]{display:flex;flex-direction:column;gap:12px}.activity-item[data-v-6087adce]{display:flex;align-items:center;padding:12px;background-color:var(--admin-bg-tertiary);border-radius:8px}.activity-icon[data-v-6087adce]{font-size:20px;margin-right:12px}.activity-content[data-v-6087adce]{flex:1;display:flex;justify-content:space-between;align-items:center}.activity-text[data-v-6087adce]{font-size:14px;color:var(--admin-text-primary)}.activity-time[data-v-6087adce]{font-size:12px;color:var(--admin-text-muted)}.system-status[data-v-6087adce]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.status-item[data-v-6087adce]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--admin-bg-tertiary);border-radius:8px}.status-label[data-v-6087adce]{font-size:14px;color:var(--admin-text-secondary)}.status-value[data-v-6087adce]{font-size:14px;font-weight:500}.status-value.success[data-v-6087adce]{color:var(--admin-success)}.status-value.warning[data-v-6087adce]{color:var(--admin-warning)}.status-value.danger[data-v-6087adce]{color:var(--admin-danger)}.users-page[data-v-156869a3]{max-width:1400px}.toolbar[data-v-156869a3]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px}.toolbar-left[data-v-156869a3]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar-right[data-v-156869a3]{display:flex;align-items:center;gap:8px}.search-box[data-v-156869a3]{display:flex;align-items:center;background-color:var(--admin-bg-tertiary);border:1px solid var(--admin-border-color);border-radius:4px;padding:0 12px;min-width:250px}.search-box input[data-v-156869a3]{flex:1;border:none;background:transparent;padding:10px 8px;color:var(--admin-text-primary);font-size:14px}.search-box input[data-v-156869a3]:focus{outline:none}.search-icon[data-v-156869a3]{color:var(--admin-text-muted)}.pagination-wrapper[data-v-156869a3]{margin-top:20px;display:flex;justify-content:flex-end}.badge[data-v-156869a3]{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-transform:capitalize}.badge-success[data-v-156869a3]{background-color:rgba(40,167,69,.2);color:var(--admin-success)}.badge-info[data-v-156869a3]{background-color:rgba(0,120,212,.2);color:var(--admin-primary)}.badge-danger[data-v-156869a3]{background-color:rgba(220,53,69,.2);color:var(--admin-danger)}.import-info[data-v-156869a3]{margin-bottom:20px;padding:16px;background-color:var(--admin-bg-tertiary);border-radius:8px}.import-info p[data-v-156869a3]{margin:0 0 8px 0;color:var(--admin-text-primary)}.import-info ul[data-v-156869a3]{margin:0;padding-left:20px;color:var(--admin-text-secondary)}.selected-file[data-v-156869a3]{margin-top:12px;padding:8px 12px;background-color:var(--admin-bg-tertiary);border-radius:4px;font-size:14px;color:var(--admin-text-primary)}:root{--admin-bg-primary:#1e1e1e;--admin-bg-secondary:#252526;--admin-bg-tertiary:#2d2d30;--admin-bg-hover:#3e3e42;--admin-bg-active:#094771;--admin-text-primary:#d4d4d4;--admin-text-secondary:#a0a0a0;--admin-text-muted:#6b6b6b;--admin-text-white:#fff;--admin-border-color:#464647;--admin-border-light:#333;--admin-primary:#0078d4;--admin-primary-hover:#1e90ff;--admin-success:#28a745;--admin-warning:#ffc107;--admin-danger:#dc3545;--admin-info:#17a2b8;--admin-shadow:0 2px 8px rgba(0,0,0,.4);--admin-shadow-lg:0 4px 16px rgba(0,0,0,.5);--admin-sidebar-width:250px;--admin-sidebar-collapsed-width:64px}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background-color:var(--admin-bg-primary);color:var(--admin-text-primary)}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:var(--admin-sidebar-width);background-color:var(--admin-bg-secondary);border-right:1px solid var(--admin-border-color);display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100;transition:width .3s ease}.admin-sidebar.collapsed{width:var(--admin-sidebar-collapsed-width)}.admin-main{flex:1;margin-left:var(--admin-sidebar-width);display:flex;flex-direction:column;transition:margin-left .3s ease}.admin-sidebar.collapsed+.admin-main{margin-left:var(--admin-sidebar-collapsed-width)}.admin-header{height:60px;background-color:var(--admin-bg-secondary);border-bottom:1px solid var(--admin-border-color);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:50}.admin-content{flex:1;padding:24px;overflow-y:auto}.sidebar-logo{height:60px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--admin-border-color);font-size:18px;font-weight:600;color:var(--admin-text-white)}.sidebar-logo .logo-icon{width:32px;height:32px;margin-right:12px}.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;padding:12px 20px;color:var(--admin-text-secondary);text-decoration:none;transition:all .2s ease;cursor:pointer;border-left:3px solid transparent}.nav-item:hover{background-color:var(--admin-bg-hover);color:var(--admin-text-primary)}.nav-item.active{background-color:var(--admin-bg-active);color:var(--admin-text-white);border-left-color:var(--admin-primary)}.nav-item .nav-icon{width:20px;height:20px;margin-right:12px}.nav-item .nav-text{white-space:nowrap;overflow:hidden}.admin-card{background-color:var(--admin-bg-secondary);border:1px solid var(--admin-border-color);border-radius:8px;padding:20px;margin-bottom:24px}.admin-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--admin-border-color)}.admin-card-title{font-size:18px;font-weight:600;color:var(--admin-text-white);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.stat-card{background-color:var(--admin-bg-secondary);border:1px solid var(--admin-border-color);padding:20px}.stat-card,.stat-icon{border-radius:8px;display:flex;align-items:center}.stat-icon{width:48px;height:48px;justify-content:center;margin-right:16px;font-size:24px}.stat-icon.primary{background-color:rgba(0,120,212,.2);color:var(--admin-primary)}.stat-icon.success{background-color:rgba(40,167,69,.2);color:var(--admin-success)}.stat-icon.warning{background-color:rgba(255,193,7,.2);color:var(--admin-warning)}.stat-icon.danger{background-color:rgba(220,53,69,.2);color:var(--admin-danger)}.stat-content{flex:1}.stat-value{font-size:28px;font-weight:700;color:var(--admin-text-white);line-height:1;margin-bottom:4px}.stat-label{font-size:14px;color:var(--admin-text-secondary)}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:12px 16px;text-align:left;border-bottom:1px solid var(--admin-border-color)}.admin-table th{background-color:var(--admin-bg-tertiary);color:var(--admin-text-secondary);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.admin-table tr:hover{background-color:var(--admin-bg-hover)}.admin-table td{color:var(--admin-text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;text-decoration:none}.btn-primary{background-color:var(--admin-primary);color:var(--admin-text-white)}.btn-primary:hover{background-color:var(--admin-primary-hover)}.btn-secondary{background-color:var(--admin-bg-tertiary);color:var(--admin-text-primary);border:1px solid var(--admin-border-color)}.btn-secondary:hover{background-color:var(--admin-bg-hover)}.btn-danger{background-color:var(--admin-danger);color:var(--admin-text-white)}.btn-danger:hover{background-color:#c82333}.btn-sm{padding:4px 8px;font-size:12px}.btn-icon{padding:8px;min-width:36px}.form-group{margin-bottom:16px}.form-label{display:block;margin-bottom:8px;font-weight:500}.form-input,.form-label{font-size:14px;color:var(--admin-text-primary)}.form-input{width:100%;padding:10px 12px;background-color:var(--admin-bg-tertiary);border:1px solid var(--admin-border-color);border-radius:4px;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--admin-primary)}.form-input::-moz-placeholder{color:var(--admin-text-muted)}.form-input::placeholder{color:var(--admin-text-muted)}.search-box{display:flex;align-items:center;background-color:var(--admin-bg-tertiary);border:1px solid var(--admin-border-color);border-radius:4px;padding:0 12px}.search-box input{flex:1;border:none;background:transparent;padding:10px 8px;color:var(--admin-text-primary);font-size:14px}.search-box input:focus{outline:none}.search-box .search-icon{color:var(--admin-text-muted)}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-success{background-color:rgba(40,167,69,.2);color:var(--admin-success)}.badge-warning{background-color:rgba(255,193,7,.2);color:var(--admin-warning)}.badge-danger{background-color:rgba(220,53,69,.2);color:var(--admin-danger)}.badge-info{background-color:rgba(0,120,212,.2);color:var(--admin-primary)}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px}.pagination-btn{padding:8px 12px;background-color:var(--admin-bg-tertiary);border:1px solid var(--admin-border-color);border-radius:4px;color:var(--admin-text-primary);cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background-color:var(--admin-bg-hover)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-btn.active{background-color:var(--admin-primary);border-color:var(--admin-primary);color:var(--admin-text-white)}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--admin-border-color);border-radius:50%;border-top-color:var(--admin-primary);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{text-align:center;padding:48px 24px;color:var(--admin-text-secondary)}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-title{font-size:18px;font-weight:500;color:var(--admin-text-primary);margin-bottom:8px}.empty-state-text{font-size:14px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--admin-bg-secondary);border:1px solid var(--admin-border-color);border-radius:8px;padding:24px;min-width:400px;max-width:600px;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-title{font-size:18px;font-weight:600;color:var(--admin-text-white)}.modal-close{background:none;border:none;color:var(--admin-text-secondary);cursor:pointer;font-size:24px;line-height:1}.modal-close:hover{color:var(--admin-text-primary)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--admin-border-color)}.dark .el-dialog{background-color:var(--admin-bg-secondary)!important;border:1px solid var(--admin-border-color)!important}.dark .el-dialog__header{border-bottom:1px solid var(--admin-border-color)}.dark .el-dialog__title{color:var(--admin-text-white)!important}.dark .el-dialog__body{color:var(--admin-text-primary)}.dark .el-input__wrapper{background-color:var(--admin-bg-tertiary)!important;box-shadow:0 0 0 1px var(--admin-border-color) inset!important}.dark .el-input__inner{color:var(--admin-text-primary)!important}.dark .el-select .el-input__wrapper{background-color:var(--admin-bg-tertiary)!important}.dark .el-button--primary{--el-button-bg-color:var(--admin-primary);--el-button-border-color:var(--admin-primary)}.dark .el-button--danger{--el-button-bg-color:var(--admin-danger);--el-button-border-color:var(--admin-danger)}.dark .el-table{--el-table-bg-color:var(--admin-bg-secondary);--el-table-tr-bg-color:var(--admin-bg-secondary);--el-table-header-bg-color:var(--admin-bg-tertiary);--el-table-row-hover-bg-color:var(--admin-bg-hover);--el-table-border-color:var(--admin-border-color);--el-table-text-color:var(--admin-text-primary);--el-table-header-text-color:var(--admin-text-secondary)}.dark .el-pagination{--el-pagination-bg-color:var(--admin-bg-tertiary);--el-pagination-text-color:var(--admin-text-primary);--el-pagination-button-bg-color:var(--admin-bg-tertiary);--el-pagination-button-disabled-bg-color:var(--admin-bg-secondary)}.dark .el-message-box{background-color:var(--admin-bg-secondary)!important;border-color:var(--admin-border-color)!important}.dark .el-message-box__title{color:var(--admin-text-white)!important}.dark .el-message-box__content{color:var(--admin-text-primary)!important} \ No newline at end of file diff --git a/dist/static/css/app.ec59260d.css b/dist/static/css/app.ec59260d.css deleted file mode 100644 index dedb6791..00000000 --- a/dist/static/css/app.ec59260d.css +++ /dev/null @@ -1 +0,0 @@ -body,html{overflow:hidden}#app,body,html{margin:0;padding:0;width:100vw;height:100vh}#app{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}body,button,html,input,select,textarea{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif!important;font-optical-sizing:auto}.CodeMirror,.CodeMirror *,.cm-editor,.cm-editor *,.codemirror-container,.codemirror-container *,.console-input,.console-output,.console-output-area,.console-output-area *,.console-text,.console-text *,.console-user-input,.console-user-input *,.editor-content,.token,.token *,.vue-codemirror,[class*=token],[class*=token] *,code,code[class*=language-],code[class*=language-] *,pre,pre[class*=language-],pre[class*=language-] *{font-family:Consolas,Monaco,Courier New,monospace!important}*{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif!important;font-optical-sizing:auto}body,html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif!important}.CodeMirror,.CodeMirror *,.cm-editor,.cm-editor *,.codemirror-container *,.console-input,.console-output,.editor-content,.vue-codemirror,code,pre{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace!important}.float-left{float:left}.float-right{float:right}.position-absolute{position:absolute}.noselected{-moz-user-select:none;-webkit-user-select:none;user-select:none}.input-focus{outline:none}.dialog-cover{background:#000;opacity:.5;position:fixed;z-index:5;top:0;left:0;width:100%;height:100%}.el-message{z-index:20000!important;top:80px!important}.el-message-box__wrapper{z-index:20001!important}.el-notification{z-index:20000!important}:root[data-theme=dark]{--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-tertiary:#2d2d30;--bg-sidebar:#252526;--bg-editor:#1e1e1e;--bg-console:#1e1e1e;--bg-tree:#252526;--bg-hover:#2a2d2e;--bg-selected:#094771;--bg-toolbar:#2d2d30;--text-primary:#ccc;--text-secondary:#969696;--text-disabled:#6b6b6b;--text-highlight:#fff;--border-primary:#3c3c3c;--border-secondary:#464647;--scrollbar-thumb:#424242;--scrollbar-track:#1e1e1e;--btn-primary-bg:#0e639c;--btn-primary-hover:#17b;--btn-secondary-bg:#3c3c3c;--btn-secondary-hover:#45494a;--border-color:#3c3c3c}:root[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f3f3f3;--bg-tertiary:#e8e8e8;--bg-sidebar:#f3f3f3;--bg-editor:#fff;--bg-console:#f8f8f8;--bg-tree:#f3f3f3;--bg-hover:#e8e8e8;--bg-selected:#add6ff;--bg-toolbar:#f3f3f3;--text-primary:#333;--text-secondary:#6b6b6b;--text-disabled:#9d9d9d;--text-highlight:#000;--border-primary:#d4d4d4;--border-secondary:#e0e0e0;--scrollbar-thumb:#c1c1c1;--scrollbar-track:#f1f1f1;--btn-primary-bg:#007acc;--btn-primary-hover:#005a9e;--btn-secondary-bg:#e0e0e0;--btn-secondary-hover:#d0d0d0;--border-color:#d4d4d4}body{transition:background-color .3s ease,color .3s ease}.ide-container,body{background-color:var(--bg-primary);color:var(--text-primary)}.ide-project-list,.tree{background-color:var(--bg-tree)!important;color:var(--text-primary)!important}.CodeMirror,.editor-frame{background-color:var(--bg-editor)!important;color:var(--text-primary)!important}.console-area,.console-frame{background-color:var(--bg-console)!important;color:var(--text-primary)!important}.console-sidebar{background-color:var(--bg-secondary)!important}.toolbar,.top-toolbar{background-color:var(--bg-toolbar)!important;border-bottom:1px solid var(--border-primary)!important}.el-tabs__item{color:var(--text-secondary)!important}.el-tabs__item.is-active{color:var(--text-primary)!important;background-color:var(--bg-selected)!important}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)!important}::-webkit-scrollbar-track{background:var(--scrollbar-track)!important}.dialog-content{background:var(--bg-secondary)!important}.dialog-content,.dialog-input{color:var(--text-primary)!important}.dialog-input{background:var(--bg-primary)!important;border:1px solid var(--border-primary)!important}.btn-primary{background-color:var(--btn-primary-bg)!important;color:#fff!important}.btn-primary:hover{background-color:var(--btn-primary-hover)!important}.btn-secondary{background-color:var(--btn-secondary-bg)!important;color:var(--text-primary)!important}.btn-secondary:hover{background-color:var(--btn-secondary-hover)!important}:root[data-theme=light] .CodeMirror{color:#333!important;background-color:#fff!important}:root[data-theme=light] .CodeMirror-gutters{background-color:#f7f7f7!important;border-right:1px solid #ddd!important}:root[data-theme=light] .CodeMirror-gutter{background-color:#f7f7f7!important}:root[data-theme=light] .CodeMirror-linenumber{color:#999!important}:root[data-theme=light] .CodeMirror-cursor{border-left:1px solid #333!important}:root[data-theme=dark] .CodeMirror-activeline-background{background:#2a2a2a!important}:root[data-theme=light] .CodeMirror-activeline-background{background:#e8f2ff!important}:root[data-theme=light] .CodeMirror-selected{background:#e6f3ff!important;color:#000!important}:root[data-theme=light] .cm-comment{color:green!important}:root[data-theme=light] .cm-keyword{color:#00f!important}:root[data-theme=light] .cm-string{color:#a31515!important}:root[data-theme=light] .cm-number{color:#098658!important}:root[data-theme=light] .cm-variable{color:#001080!important}:root[data-theme=light] .cm-def{color:#795e26!important;font-style:normal!important}:root[data-theme=light] .cm-operator{color:#000!important}:root[data-theme=light] .cm-builtin{color:#267f99!important}:root[data-theme=dark] .CodeMirror{background-color:#1e1e1e!important;color:#d4d4d4!important}:root[data-theme=dark] .CodeMirror-gutters{background-color:#1e1e1e!important;border-right:1px solid #464647!important}:root[data-theme=dark] .CodeMirror-gutter{background-color:#1e1e1e!important}:root[data-theme=dark] .CodeMirror-linenumber{color:#858585!important}:root[data-theme=dark] .CodeMirror-cursor{border-left:1px solid #d4d4d4!important}:root[data-theme=dark] .cm-comment{color:#6a9955!important}:root[data-theme=dark] .cm-keyword{color:#569cd6!important}:root[data-theme=dark] .cm-string{color:#ce9178!important}:root[data-theme=dark] .cm-number{color:#b5cea8!important}:root[data-theme=dark] .cm-variable{color:#9cdcfe!important}:root[data-theme=dark] .cm-def{color:#dcdcaa!important;font-style:normal!important}:root[data-theme=dark] .cm-operator{color:#d4d4d4!important}:root[data-theme=dark] .cm-builtin{color:#4ec9b0!important}:root[data-theme=contrast] .CodeMirror{background-color:#000!important;color:#fff!important}:root[data-theme=contrast] .CodeMirror-gutters{background-color:#000!important;border-right:2px solid #fff!important}:root[data-theme=contrast] .CodeMirror-gutter{background-color:#000!important}:root[data-theme=contrast] .CodeMirror-linenumber{color:#fff!important}:root[data-theme=contrast] .CodeMirror-cursor{border-left:2px solid #ff0!important}:root[data-theme=contrast] .CodeMirror-activeline-background{background:#2a2a2a!important}:root[data-theme=contrast] .CodeMirror-selected{background:#333!important;color:#fff!important}:root[data-theme=contrast] .cm-comment{color:#0f0!important}:root[data-theme=contrast] .cm-keyword{color:#00bfff!important}:root[data-theme=contrast] .cm-string{color:#ff0!important}:root[data-theme=contrast] .cm-number{color:#ff8000!important}:root[data-theme=contrast] .cm-variable{color:#fff!important}:root[data-theme=contrast] .cm-def{color:#0f0!important;font-style:normal!important}:root[data-theme=contrast] .cm-operator{color:#fff!important}:root[data-theme=contrast] .cm-builtin{color:#f0f!important}:root[data-theme=light] .el-tabs__item .is-icon-close{color:#606266!important;width:16px!important;height:16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;transition:all .2s ease!important}:root[data-theme=light] .el-tabs__item.is-active .is-icon-close{color:#303133!important}:root[data-theme=light] .el-tabs__item .is-icon-close:hover{background-color:rgba(0,0,0,.15)!important;color:#000!important}:root[data-theme=dark] .el-tabs__item .is-icon-close{color:#909399!important;width:16px!important;height:16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;transition:all .2s ease!important}:root[data-theme=dark] .el-tabs__item.is-active .is-icon-close{color:#ccc!important}:root[data-theme=dark] .el-tabs__item .is-icon-close:hover{background-color:hsla(0,0%,100%,.15)!important;color:#fff!important}:root[data-theme=dark] .el-icon.is-icon-close svg,:root[data-theme=light] .el-icon.is-icon-close svg{fill:currentColor!important}.status-bar{background-color:var(--bg-secondary)!important;border-top:1px solid var(--border-primary)!important;color:var(--text-secondary)!important}.CodeMirror{font-size:14px!important}.CodeMirror,.CodeMirror-lines{line-height:1.4!important}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{line-height:1.4!important;padding:0 4px!important}:root{--editor-font-size:14px;--console-font-size:12px}:root[data-theme=contrast]{--bg-primary:#000;--bg-secondary:#0a0a0a;--bg-tertiary:#1a1a1a;--bg-sidebar:#0a0a0a;--bg-editor:#000;--bg-console:#000;--bg-tree:#0a0a0a;--bg-hover:#1a1a1a;--bg-selected:#2a2a2a;--bg-toolbar:#000;--text-primary:#fff;--text-secondary:#f0f0f0;--text-disabled:#d0d0d0;--text-highlight:#fff;--border-primary:#fff;--border-secondary:#fff;--scrollbar-thumb:#fff;--scrollbar-track:#333;--btn-primary-bg:#00bfff;--btn-primary-hover:#ff0;--btn-secondary-bg:#333;--btn-secondary-hover:#1a1a1a;--border-color:#fff;--hover-bg:#1a1a1a;--text-tertiary:#d0d0d0}.el-message-box{border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 8px 32px rgba(0,0,0,.4)!important}.el-message-box,.el-message-box__header{background-color:var(--bg-primary)!important}.el-message-box__header{border-bottom:1px solid var(--border-color)!important;padding:16px 20px!important}.el-message-box__title span{color:var(--text-primary)!important;font-size:16px!important;font-weight:500!important}.el-message-box__headerbtn{color:var(--text-secondary)!important;transition:all .2s!important}.el-message-box__headerbtn:hover{color:var(--text-primary)!important;background-color:var(--hover-bg)!important;border-radius:4px!important}.el-message-box__content{background-color:var(--bg-primary)!important;color:var(--text-primary)!important;padding:18px 20px!important;min-height:40px!important}.el-message-box__container{background-color:var(--bg-primary)!important;margin-bottom:0!important}.el-message-box__message{margin:0!important;padding:0!important;margin-bottom:12px!important}.el-message-box__message label,.el-message-box__message p{color:var(--text-primary)!important;font-size:14px!important;line-height:1.6!important;margin:0!important}.el-message-box__status{color:var(--text-secondary)!important;margin-right:12px!important}.el-message-box__input{margin-top:0!important}.el-message-box__input .el-input__wrapper{background-color:transparent!important;border:1px solid var(--border-color)!important;border-radius:4px!important;box-shadow:none!important;transition:all .2s!important}.el-message-box__input .el-input__wrapper:focus-within{border-color:#409eff!important}.el-message-box__input .el-input__inner{background-color:transparent!important;color:var(--text-primary)!important;border:none!important;box-shadow:none!important;padding:8px 12px!important;font-size:14px!important;font-family:Monaco,Menlo,Ubuntu Mono,monospace!important}.el-message-box__input .el-input__inner:focus{background-color:transparent!important;outline:none!important;box-shadow:none!important}.el-message-box__input .el-input__inner::-moz-placeholder{color:var(--text-tertiary)!important}.el-message-box__input .el-input__inner::placeholder{color:var(--text-tertiary)!important}.el-message-box__errormsg{color:#f56c6c!important;font-size:12px!important;margin-top:6px!important}.el-message-box__btns{background-color:var(--bg-primary)!important;border-top:1px solid var(--border-color)!important;padding:12px 20px!important;display:flex!important;justify-content:flex-end!important;gap:10px!important}.el-message-box__btns .el-button{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;padding:8px 16px!important;font-size:14px!important;border-radius:4px!important;transition:all .2s!important}.el-message-box__btns .el-button:hover{background-color:var(--hover-bg)!important;transform:translateY(-1px)!important}.el-message-box__btns .el-button--primary{background-color:#409eff!important;border-color:#409eff!important;color:#fff!important}.el-message-box__btns .el-button--primary:hover{background-color:#66b1ff!important;border-color:#66b1ff!important;transform:translateY(-1px)!important}:root[data-theme=light] .el-message-box{background-color:#fff!important;border:1px solid #d0d0d0!important;box-shadow:0 8px 32px rgba(0,0,0,.15)!important}:root[data-theme=light] .el-message-box__header{background-color:#fff!important;border-bottom:1px solid #e0e0e0!important}:root[data-theme=light] .el-message-box__title span{color:#333!important}:root[data-theme=light] .el-message-box__headerbtn{color:rgba(0,0,0,.6)!important}:root[data-theme=light] .el-message-box__headerbtn:hover{color:rgba(0,0,0,.9)!important;background-color:rgba(0,0,0,.08)!important}:root[data-theme=light] .el-message-box__content{background-color:#fff!important;color:#333!important}:root[data-theme=light] .el-message-box__container{background-color:#fff!important}:root[data-theme=light] .el-message-box__message label,:root[data-theme=light] .el-message-box__message p{color:#333!important}:root[data-theme=light] .el-message-box__status{color:#606266!important}:root[data-theme=light] .el-message-box__input .el-input__wrapper{border:1px solid #d0d0d0!important}:root[data-theme=light] .el-message-box__input .el-input__wrapper:focus-within{border-color:#1890ff!important}:root[data-theme=light] .el-message-box__input .el-input__inner{color:#333!important}:root[data-theme=light] .el-message-box__input .el-input__inner::-moz-placeholder{color:#999!important}:root[data-theme=light] .el-message-box__input .el-input__inner::placeholder{color:#999!important}:root[data-theme=light] .el-message-box__btns{background-color:#fff!important;border-top:1px solid #e0e0e0!important}:root[data-theme=light] .el-message-box__btns .el-button{background-color:#f8f8f8!important;color:#333!important;border:1px solid #d0d0d0!important}:root[data-theme=light] .el-message-box__btns .el-button:hover{background-color:#e8e8e8!important}:root[data-theme=light] .el-message-box__btns .el-button--primary{background-color:#1890ff!important;border-color:#1890ff!important;color:#fff!important}:root[data-theme=light] .el-message-box__btns .el-button--primary:hover{background-color:#096dd9!important;border-color:#096dd9!important}:root[data-theme=contrast] .el-message-box{border:2px solid #fff!important;box-shadow:0 8px 32px hsla(0,0%,100%,.3)!important}:root[data-theme=contrast] .el-message-box__header{border-bottom:2px solid #fff!important}:root[data-theme=contrast] .el-message-box__input .el-input__wrapper{border:2px solid #fff!important}:root[data-theme=contrast] .el-message-box__content{background-color:#000!important;color:#fff!important}:root[data-theme=contrast] .el-message-box__container{background-color:#000!important}:root[data-theme=contrast] .el-message-box__message label,:root[data-theme=contrast] .el-message-box__message p,:root[data-theme=contrast] .el-message-box__status{color:#fff!important}:root[data-theme=contrast] .el-message-box__input .el-input__wrapper:focus-within{border-color:#ff0!important}:root[data-theme=contrast] .el-message-box__input .el-input__inner{color:#fff!important}:root[data-theme=contrast] .el-message-box__input .el-input__inner::-moz-placeholder{color:#d0d0d0!important}:root[data-theme=contrast] .el-message-box__input .el-input__inner::placeholder{color:#d0d0d0!important}:root[data-theme=contrast] .el-message-box__btns{background-color:#000!important;border-top:2px solid #fff!important}:root[data-theme=contrast] .el-message-box__btns .el-button{background-color:#333!important;color:#fff!important;border:2px solid #fff!important}:root[data-theme=contrast] .el-message-box__btns .el-button:hover{background-color:#1a1a1a!important;border-color:#ff0!important}:root[data-theme=contrast] .el-message-box__btns .el-button--primary{background-color:#00bfff!important;border-color:#00bfff!important;color:#000!important}:root[data-theme=contrast] .el-message-box__btns .el-button--primary:hover{background-color:#ff0!important;border-color:#ff0!important} \ No newline at end of file diff --git a/dist/static/css/chunk-vendors.6b1238e4.css b/dist/static/css/chunk-vendors.f89ac4ee.css similarity index 99% rename from dist/static/css/chunk-vendors.6b1238e4.css rename to dist/static/css/chunk-vendors.f89ac4ee.css index 2be4f202..b3891cb4 100644 --- a/dist/static/css/chunk-vendors.6b1238e4.css +++ b/dist/static/css/chunk-vendors.f89ac4ee.css @@ -1 +1 @@ -@charset "UTF-8";:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:0.3s;--el-transition-duration-fast:0.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(0.645,0.045,0.355,1);--el-transition-function-fast-bezier:cubic-bezier(0.23,1,0.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:hsla(0,0%,100%,.9);--el-mask-color-extra-light:hsla(0,0%,100%,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;align-items:center;background-color:var(--el-color-white);border-radius:var(--el-alert-border-radius-base);box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:var(--el-alert-padding);position:relative;transition:opacity var(--el-transition-duration-fast);width:100%}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color)}.el-alert--primary.is-light,.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color)}.el-alert--success.is-light,.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color)}.el-alert--info.is-light,.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color)}.el-alert--warning.is-light,.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color)}.el-alert--error.is-light,.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:flex;flex-direction:column;gap:4px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);margin-right:8px;width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);margin-right:12px;width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{cursor:pointer;font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;right:16px;top:12px}.el-alert .el-alert__close-btn.is-customed{font-size:var(--el-alert-close-customed-font-size);font-style:normal;line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{box-sizing:border-box;flex-shrink:0;overflow:auto;width:var(--el-aside-width,300px)}.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;position:relative;width:var(--el-input-width)}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper,.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__header{border-bottom:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__footer{border-top:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:var(--el-text-color-secondary);cursor:default;font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;align-items:center;background:var(--el-avatar-bg-color);box-sizing:border-box;color:var(--el-avatar-text-color);display:inline-flex;font-size:var(--el-avatar-text-size);height:var(--el-avatar-size);justify-content:center;outline:none;overflow:hidden;text-align:center;width:var(--el-avatar-size)}.el-avatar>img{display:block;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);align-items:center;background-color:var(--el-backtop-bg-color);border-radius:50%;box-shadow:var(--el-box-shadow-lighter);color:var(--el-backtop-text-color);cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:fixed;width:40px;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translateX(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);font-weight:700;margin:0 9px}.el-breadcrumb__separator.el-icon{font-weight:400;margin:0 6px}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{align-items:center;display:inline-flex;float:left}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:var(--el-text-color-primary);font-weight:700;text-decoration:none;transition:var(--el-transition-color)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{content:"";display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:hsla(0,0%,100%,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-calendar{--el-calendar-border:var(--el-table-border,1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{border-bottom:var(--el-calendar-header-border-bottom);display:flex;justify-content:space-between;padding:12px 20px}.el-calendar__title{align-self:center;color:var(--el-text-color)}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:var(--el-text-color-regular);font-weight:400;padding:12px 0}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);transition:background-color var(--el-transition-duration-fast) ease;vertical-align:top}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:var(--el-calendar-cell-width);padding:8px}.el-calendar-table .el-calendar-day:hover{background-color:var(--el-calendar-selected-bg-color);cursor:pointer}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-carousel__item{display:inline-block;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.el-carousel__item,.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{height:50%;width:100%}.el-carousel__mask{background-color:var(--el-color-white);height:100%;left:0;opacity:.24;position:absolute;top:0;transition:var(--el-transition-duration-fast);width:100%}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31,45,61,.11);--el-carousel-arrow-hover-background:rgba(31,45,61,.23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{align-items:center;background-color:var(--el-carousel-arrow-background);border:none;border-radius:50%;color:#fff;cursor:pointer;display:inline-flex;font-size:var(--el-carousel-arrow-font-size);height:var(--el-carousel-arrow-size);justify-content:center;margin:0;outline:none;padding:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);transition:var(--el-transition-duration);width:var(--el-carousel-arrow-size);z-index:10}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{list-style:none;margin:0;padding:0;position:absolute;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical)*2);position:static;text-align:center;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels{left:0;right:0;text-align:center;transform:none}.el-carousel__indicators--labels .el-carousel__button{color:#000;font-size:12px;height:auto;padding:2px 18px;width:auto}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{height:calc(var(--el-carousel-indicator-width)/2);width:var(--el-carousel-indicator-height)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{background-color:#fff;border:none;cursor:pointer;display:block;height:var(--el-carousel-indicator-height);margin:0;opacity:.48;outline:none;padding:0;transition:var(--el-transition-duration);width:var(--el-carousel-indicator-width)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%) translateX(-10px)}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%) translateX(10px)}.el-transitioning{filter:url(#elCarouselHorizontal)}.el-transitioning-vertical{filter:url(#elCarouselVertical)}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);display:flex;font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{border-right:var(--el-cascader-menu-border);box-sizing:border-box;color:var(--el-cascader-menu-text-color);min-width:180px}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;list-style:none;margin:0;min-height:100%;padding:6px 0;position:relative}.el-cascader-menu__hover-zone{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.el-cascader-menu__empty-text{align-items:center;color:var(--el-cascader-color-empty);display:flex;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{align-items:center;display:flex;height:34px;line-height:34px;outline:none;padding:0 30px 0 20px;position:relative}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{left:10px;position:absolute}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;overflow:hidden;padding:0 8px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-cascader-node>.el-checkbox,.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;font-size:var(--el-font-size-base);line-height:32px;outline:none;position:relative;vertical-align:middle}.el-cascader:not(.is-disabled):hover .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset;cursor:pointer}.el-cascader .el-input{cursor:pointer;display:flex}.el-cascader .el-input .el-input__inner{cursor:pointer;text-overflow:ellipsis}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{font-size:14px;transition:transform var(--el-transition-duration)}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--large .el-cascader__tags{gap:6px;padding:8px}.el-cascader--large .el-cascader__search-input{height:24px;margin-left:7px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader--small .el-cascader__tags{gap:4px;padding:2px}.el-cascader--small .el-cascader__search-input{height:20px;margin-left:5px}.el-cascader.is-disabled .el-cascader__label{color:var(--el-disabled-text-color);z-index:calc(var(--el-index-normal) + 1)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill)}.el-cascader__dropdown.el-popper,.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-cascader__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-cascader__tags{box-sizing:border-box;display:flex;flex-wrap:wrap;gap:6px;left:0;line-height:normal;padding:4px;position:absolute;right:30px;text-align:left;top:50%;transform:translateY(-50%)}.el-cascader__tags .el-tag{align-items:center;background:var(--el-cascader-tag-background);display:inline-flex;max-width:100%;text-overflow:ellipsis}.el-cascader__tags .el-tag.el-tag--dark,.el-cascader__tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__tags .el-tag>span{flex:1;line-height:normal;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__tags .el-tag+input{margin-left:0}.el-cascader__tags.is-validate{right:55px}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{align-items:center;background:var(--el-fill-color);display:inline-flex;max-width:100%;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag.el-tag--dark,.el-cascader__collapse-tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__collapse-tags .el-tag>span{flex:1;line-height:normal;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags .el-tag+input{margin-left:0}.el-cascader__collapse-tags .el-tag{margin:2px 0}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{color:var(--el-cascader-menu-text-color);font-size:var(--el-font-size-base);margin:0;max-height:204px;padding:6px 0;text-align:center}.el-cascader__suggestion-item{align-items:center;cursor:pointer;display:flex;height:34px;justify-content:space-between;outline:none;padding:0 15px;text-align:left}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{color:var(--el-cascader-color-empty);margin:10px 0}.el-cascader__search-input{background:transparent;border:none;box-sizing:border-box;color:var(--el-cascader-menu-text-color);flex:1;height:24px;margin-left:7px;min-width:60px;outline:none;padding:0}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:700;line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all)}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--primary.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.el-check-tag--primary.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-check-tag.el-check-tag--primary.is-checked.is-disabled{background-color:var(--el-color-primary-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-checked.is-disabled:hover{background-color:var(--el-color-primary-light-8)}.el-check-tag.el-check-tag--primary.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-check-tag.el-check-tag--success.is-checked{background-color:var(--el-color-success-light-8);color:var(--el-color-success)}.el-check-tag.el-check-tag--success.is-checked:hover{background-color:var(--el-color-success-light-7)}.el-check-tag.el-check-tag--success.is-checked.is-disabled{background-color:var(--el-color-success-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-checked.is-disabled:hover{background-color:var(--el-color-success-light-8)}.el-check-tag.el-check-tag--success.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-disabled,.el-check-tag.el-check-tag--success.is-disabled:hover{background-color:var(--el-color-success-light-9)}.el-check-tag.el-check-tag--warning.is-checked{background-color:var(--el-color-warning-light-8);color:var(--el-color-warning)}.el-check-tag.el-check-tag--warning.is-checked:hover{background-color:var(--el-color-warning-light-7)}.el-check-tag.el-check-tag--warning.is-checked.is-disabled{background-color:var(--el-color-warning-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-checked.is-disabled:hover{background-color:var(--el-color-warning-light-8)}.el-check-tag.el-check-tag--warning.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-disabled,.el-check-tag.el-check-tag--warning.is-disabled:hover{background-color:var(--el-color-warning-light-9)}.el-check-tag.el-check-tag--danger.is-checked{background-color:var(--el-color-danger-light-8);color:var(--el-color-danger)}.el-check-tag.el-check-tag--danger.is-checked:hover{background-color:var(--el-color-danger-light-7)}.el-check-tag.el-check-tag--danger.is-checked.is-disabled{background-color:var(--el-color-danger-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-checked.is-disabled:hover{background-color:var(--el-color-danger-light-8)}.el-check-tag.el-check-tag--danger.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-disabled,.el-check-tag.el-check-tag--danger.is-disabled:hover{background-color:var(--el-color-danger-light-9)}.el-check-tag.el-check-tag--error.is-checked{background-color:var(--el-color-error-light-8);color:var(--el-color-error)}.el-check-tag.el-check-tag--error.is-checked:hover{background-color:var(--el-color-error-light-7)}.el-check-tag.el-check-tag--error.is-checked.is-disabled{background-color:var(--el-color-error-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-checked.is-disabled:hover{background-color:var(--el-color-error-light-8)}.el-check-tag.el-check-tag--error.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-disabled,.el-check-tag.el-check-tag--error.is-disabled:hover{background-color:var(--el-color-error-light-9)}.el-check-tag.el-check-tag--info.is-checked{background-color:var(--el-color-info-light-8);color:var(--el-color-info)}.el-check-tag.el-check-tag--info.is-checked:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--info.is-checked.is-disabled{background-color:var(--el-color-info-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-checked.is-disabled:hover{background-color:var(--el-color-info-light-8)}.el-check-tag.el-check-tag--info.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-disabled,.el-check-tag.el-check-tag--info.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);display:inline-block;position:relative}.el-checkbox-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left-color:transparent;border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);line-height:1;margin:0;outline:none;padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7);color:var(--el-checkbox-button-checked-text-color)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-bottom-left-radius:var(--el-border-radius-base);border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-bottom-right-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-bottom:1px solid var(--el-collapse-border-color);border-top:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:var(--el-collapse-header-bg-color);border:none;border-bottom:1px solid var(--el-collapse-border-color);color:var(--el-collapse-header-text-color);cursor:pointer;display:flex;font-size:var(--el-collapse-header-font-size);font-weight:500;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);outline:none;padding:0;transition:border-bottom-color var(--el-transition-duration);width:100%}.el-collapse-item__arrow{font-weight:300;transition:transform var(--el-transition-duration)}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__title{flex:auto;text-align:left}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:var(--el-collapse-content-bg-color);border-bottom:1px solid var(--el-collapse-border-color);box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:var(--el-collapse-content-text-color);font-size:var(--el-collapse-content-font-size);line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse-icon-position-left .el-collapse-item__header{gap:8px}.el-collapse-icon-position-left .el-collapse-item__title{order:1}.el-collapse-icon-position-right .el-collapse-item__header{padding-right:8px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{border-radius:4px;cursor:pointer;height:20px;margin:0 0 8px 8px;width:20px}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{border-radius:3px;display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:red;box-sizing:border-box;float:right;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-svpanel{height:180px;position:relative;width:280px}.el-color-svpanel__black,.el-color-svpanel__white{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}.el-color-alpha-slider{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider__bar{background:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{clear:both;content:"";display:table}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{color:#000;float:left;font-size:12px;line-height:26px;width:160px}.el-color-picker{display:inline-block;height:32px;line-height:normal;outline:none;position:relative;width:32px}.el-color-picker:hover:not(.is-disabled,.is-focused) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-color-picker.is-disabled .el-color-picker__color{opacity:.3}.el-color-picker--large{height:40px;width:40px}.el-color-picker--small{height:24px;width:24px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__trigger{align-items:center;border:1px solid var(--el-border-color);border-radius:4px;cursor:pointer;display:inline-flex;font-size:0;justify-content:center;padding:4px}.el-color-picker__color,.el-color-picker__trigger{box-sizing:border-box;height:100%;position:relative;width:100%}.el-color-picker__color{border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);display:block;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{align-items:center;display:inline-flex;height:100%;justify-content:center;width:100%}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{align-items:center;color:#fff;display:inline-flex;font-size:12px;justify-content:center}.el-color-picker__panel{background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light);box-sizing:content-box;padding:6px;position:absolute;z-index:10}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed;opacity:1}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);border-radius:15px;color:#fff}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{border-bottom:1px solid var(--el-border-color-lighter);color:var(--el-datepicker-header-text-color);font-weight:400;padding:5px}.el-date-table th.el-date-table__week-header{padding:0;width:24px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .el-date-table-cell__text,.el-month-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translateX(-50%);width:54px}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date .el-date-table-cell,.el-month-table td.start-date .el-date-table-cell{color:#fff}.el-month-table td.end-date .el-date-table-cell__text,.el-month-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.end-date .el-date-table-cell__text,.el-year-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translateX(-50%);width:60px}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.end-date .el-date-table-cell,.el-year-table td.start-date .el-date-table-cell{color:#fff}.el-year-table td.end-date .el-date-table-cell__text,.el-year-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-year-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:192px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:var(--el-index-normal)}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:var(--el-text-color-regular);font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper,.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{height:var(--el-input-height,var(--el-component-size));width:var(--el-date-editor-width)}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .clear-icon,.el-date-editor .close-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{color:var(--el-text-color-placeholder);float:left;font-size:14px;height:inherit}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{appearance:none;background-color:transparent;border:none;color:var(--el-text-color-regular);display:inline-block;font-size:var(--el-font-size-base);height:30px;line-height:30px;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{align-items:center;color:var(--el-text-color-primary);display:inline-flex;flex:1;font-size:14px;height:100%;justify-content:center;margin:0;overflow-wrap:break-word;padding:0 5px}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);cursor:pointer;font-size:14px;height:inherit;width:unset}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{align-items:center;display:inline-flex;padding:0 10px;vertical-align:middle}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{font-size:14px;height:38px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{font-size:12px;height:22px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled,.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{background:var(--el-bg-color-overlay);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));color:var(--el-text-color-regular);line-height:30px}.el-picker-panel .el-time-panel{background-color:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:var(--el-bg-color-overlay);border-top:1px solid var(--el-datepicker-inner-border-color);font-size:0;padding:4px 12px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:transparent;border:0;color:var(--el-datepicker-text-color);cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{background-color:transparent;border:1px solid var(--el-fill-color-darker);border-radius:2px;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{background:transparent;border:0;color:var(--el-datepicker-icon-color);cursor:pointer;font-size:12px;margin-top:8px;outline:none}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{padding:12px 12px 0;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;float:left;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:var(--el-datepicker-icon-color);display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;right:0;top:13px;z-index:1}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{border-radius:2px;box-sizing:content-box;left:0;position:relative;-webkit-user-select:none;user-select:none;width:180px;z-index:var(--el-index-top)}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{box-sizing:border-box;content:"";height:32px;left:0;margin-top:-16px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{border-bottom:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:transparent;border:none;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:0.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color,var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary,20px);background-color:var(--el-drawer-bg-color);box-shadow:var(--el-box-shadow-dark);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;position:absolute;transition:all var(--el-transition-duration)}.el-drawer .btt,.el-drawer .ltr,.el-drawer .rtl,.el-drawer .ttb{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{align-items:center;color:var(--el-text-color-primary);display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{flex:1;font-size:16px;line-height:inherit;margin:0}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{background-color:transparent;border:none;color:inherit;cursor:pointer;display:inline-flex;font-size:var(--el-font-size-extra-large);outline:none}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;overflow:auto;padding:var(--el-drawer-padding-primary)}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{bottom:0;height:100%;top:0}.el-drawer.btt,.el-drawer.ttb{left:0;right:0;width:100%}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{background-color:transparent!important}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translateX(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translateX(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);line-height:1;position:relative;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper,.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:0}.el-dropdown .el-dropdown__caret-button{align-items:center;border-left:none;display:inline-flex;justify-content:center;padding-left:0;padding-right:0;width:32px}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{background:var(--el-overlay-color-lighter);bottom:-1px;content:"";display:block;left:0;position:absolute;top:-1px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;left:0;list-style:none;margin:0;padding:5px 0;position:relative;top:0;z-index:var(--el-dropdown-menu-index)}.el-dropdown-menu__item{align-items:center;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:var(--el-font-size-base);line-height:22px;list-style:none;margin:0;outline:none;padding:5px 16px;white-space:nowrap}.el-dropdown-menu__item:not(.is-disabled):focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{font-size:14px;line-height:22px;padding:7px 20px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:12px;line-height:20px;padding:2px 12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height);padding:var(--el-footer-padding)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;text-align:left;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;box-sizing:border-box;flex-shrink:0;height:var(--el-header-height);padding:var(--el-header-padding)}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;user-select:none;z-index:1}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{font-size:40px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;position:static;-webkit-user-select:none;user-select:none;width:100%}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%)}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;gap:22px;height:100%;justify-content:space-around;padding:0 6px;width:100%}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{bottom:90px;color:#fff;cursor:default;left:50%;transform:translateX(-50%)}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__close{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;width:44px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{opacity:1;vertical-align:top}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{left:0;position:absolute;top:0}.el-image__error,.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{align-items:center;color:var(--el-text-color-placeholder);display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-input-tag{--el-input-tag-border-color-hover:var(--el-border-color-hover);--el-input-tag-placeholder-color:var(--el-text-color-placeholder);--el-input-tag-disabled-color:var(--el-disabled-text-color);--el-input-tag-disabled-border:var(--el-disabled-border-color);--el-input-tag-font-size:var(--el-font-size-base);--el-input-tag-close-hover-color:var(--el-text-color-secondary);--el-input-tag-text-color:var(--el-text-color-regular);--el-input-tag-input-focus-border-color:var(--el-color-primary);--el-input-tag-width:100%;--el-input-tag-mini-height:var(--el-component-size);--el-input-tag-gap:6px;--el-input-tag-padding:4px;--el-input-tag-inner-padding:8px;--el-input-tag-line-height:24px;align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--el-input-tag-font-size);line-height:var(--el-input-tag-line-height);min-height:var(--el-input-tag-mini-height);padding:var(--el-input-tag-padding);transform:translateZ(0);transition:var(--el-transition-duration);width:var(--el-input-tag-width)}.el-input-tag.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-tag.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-input-tag.is-disabled{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-input-tag.is-disabled,.el-input-tag.is-disabled:hover{box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input-tag.is-disabled .el-input-tag__inner .el-input-tag__input,.el-input-tag.is-disabled .el-input-tag__inner .el-tag{cursor:not-allowed}.el-input-tag__prefix,.el-input-tag__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;padding:0 var(--el-input-tag-inner-padding)}.el-input-tag__suffix{gap:8px}.el-input-tag__inner{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:var(--el-input-tag-gap);max-width:100%;min-width:0;position:relative}.el-input-tag__inner.is-left-space{margin-left:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-right-space{margin-right:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-draggable .el-tag{cursor:move;-webkit-user-select:none;user-select:none}.el-input-tag__drop-indicator{background-color:var(--el-color-primary);height:var(--el-input-tag-line-height);position:absolute;top:0;width:1px}.el-input-tag__inner .el-tag{border-color:transparent;cursor:pointer;max-width:100%}.el-input-tag__inner .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__inner .el-tag .el-tag__content{line-height:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-input-tag__input-wrapper{flex:1}.el-input-tag__input{appearance:none;background-color:transparent;border:none;color:var(--el-input-tag-text-color);font-family:inherit;font-size:inherit;line-height:inherit;outline:none;padding:0;width:100%}.el-input-tag__input::placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-input-tag--large{--el-input-tag-gap:6px;--el-input-tag-padding:8px;--el-input-tag-padding-left:8px;--el-input-tag-font-size:14px}.el-input-tag--small{--el-input-tag-gap:4px;--el-input-tag-padding:2px;--el-input-tag-padding-left:6px;--el-input-tag-font-size:12px;--el-input-tag-line-height:20px;--el-input-tag-mini-height:var(--el-component-size-small)}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);align-items:center;color:var(--el-link-text-color);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link.is-hover-underline:hover:after{border-bottom:1px solid var(--el-link-hover-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-underline:after{border-bottom:1px solid var(--el-link-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link:hover:after{border-color:var(--el-link-hover-text-color)}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link__inner{align-items:center;display:inline-flex;justify-content:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link.is-disabled:after{border-color:var(--el-link-disabled-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;box-sizing:border-box;display:block;flex:1;flex-basis:auto;overflow:auto;padding:var(--el-main-padding)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);backface-visibility:hidden;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);box-shadow:var(--el-messagebox-box-shadow);box-sizing:border-box;display:inline-block;font-size:var(--el-messagebox-font-size);max-width:var(--el-messagebox-width);overflow:hidden;overflow-wrap:break-word;padding:var(--el-messagebox-padding-primary);position:relative;text-align:left;vertical-align:middle;width:100%}.el-message-box:focus{outline:none!important}.el-overlay.is-message-box .el-overlay-message-box{bottom:0;left:0;overflow:auto;padding:16px;position:fixed;right:0;text-align:center;top:0}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size, 16px))}.el-message-box__title{color:var(--el-messagebox-title-color);font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;display:flex;gap:12px}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0;min-width:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end;padding-top:var(--el-messagebox-padding-primary)}.el-message-box--center .el-message-box__title{align-items:center;display:flex;gap:6px;justify-content:center}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;left:50%;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;top:20px;transform:translateX(-50%);transition:opacity var(--el-transition-duration),transform .4s,top .4s;width:fit-content}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);background-color:var(--el-bg-color-overlay);border:1px solid var(--el-notification-border-color);border-radius:var(--el-notification-radius);box-shadow:var(--el-notification-shadow);box-sizing:border-box;display:flex;overflow:hidden;overflow-wrap:break-word;padding:var(--el-notification-padding);position:fixed;transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);width:var(--el-notification-width);z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{flex:1;margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right);min-width:0}.el-notification__title{color:var(--el-notification-title-color);font-size:var(--el-notification-title-font-size);font-weight:700;line-height:var(--el-notification-icon-size);margin:0}.el-notification__content{color:var(--el-notification-content-color);font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0}.el-notification__content p{margin:0}.el-notification .el-notification__icon{flex-shrink:0;font-size:var(--el-notification-icon-size);height:var(--el-notification-icon-size);width:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{color:var(--el-notification-close-color);cursor:pointer;font-size:var(--el-notification-close-font-size);position:absolute;right:15px;top:18px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--primary{--el-notification-icon-color:var(--el-color-primary);color:var(--el-notification-icon-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translateX(100%)}.el-notification-fade-enter-from.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{background-color:var(--el-overlay-color-lighter);bottom:0;height:100%;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{align-items:center;display:flex;justify-content:space-between;line-height:24px}.el-page-header__left{align-items:center;display:flex;margin-right:40px;position:relative}.el-page-header__back{align-items:center;cursor:pointer;display:flex}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{align-items:center;display:flex;font-size:16px;margin-right:10px}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:var(--el-text-color-primary);font-size:18px}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;align-items:center;color:var(--el-pagination-text-color);display:flex;font-size:var(--el-pagination-font-size);font-weight:400;white-space:nowrap}.el-pagination .el-input__inner{-moz-appearance:textfield;text-align:center}.el-pagination .el-select{width:128px}.el-pagination button{align-items:center;background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;display:flex;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:none}.el-pagination button.is-active,.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination button.is-disabled,.el-pagination button:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{color:var(--el-text-color-regular);font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{align-items:center;color:var(--el-text-color-regular);display:flex;font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{box-sizing:border-box;text-align:center}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{align-items:center;display:flex;flex:1;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{background-color:var(--el-disabled-bg-color);color:var(--el-text-color-placeholder)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{background-color:var(--el-fill-color-dark);color:var(--el-text-color-secondary)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{font-size:var(--el-pagination-font-size-small);height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-next,.el-pagination--large .btn-prev,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.el-pager,.el-pager li{align-items:center;display:flex}.el-pager li{background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li.is-active,.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li.is-disabled,.el-pager li:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button,.el-radio-button__inner{display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;padding:8px 15px;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{flex-wrap:wrap;font-size:0}.el-radio,.el-radio-group{align-items:center;display:inline-flex}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);cursor:pointer;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);align-items:center;display:inline-flex;height:32px}.el-rate:active,.el-rate:focus{outline:none}.el-rate__item{color:var(--el-rate-void-color);cursor:pointer;display:inline-block;font-size:0;line-height:normal;position:relative;vertical-align:middle}.el-rate .el-rate__icon{display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);position:relative;transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{left:0;position:absolute;top:0}.el-rate .el-rate__icon.is-active,.el-rate__decimal{color:var(--el-rate-fill-color)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__decimal,.el-rate__decimal--box{left:0;position:absolute;top:0}.el-rate__text{color:var(--el-rate-text-color);font-size:var(--el-rate-font-size);vertical-align:middle}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{color:var(--el-rate-disabled-void-color);cursor:auto}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-result-padding);text-align:center}.el-result__icon svg{height:var(--el-result-icon-font-size);width:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{color:var(--el-text-color-primary);font-size:var(--el-result-title-font-size);line-height:1.3;margin:0}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1.3;margin:0}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty,.el-select-dropdown__loading{color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{box-sizing:border-box;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);height:34px;line-height:34px;overflow:hidden;padding:0 32px 0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{background-color:unset;color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class=%27icon%27 width=%27200%27 height=%27200%27 viewBox=%270 0 1024 1024%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath fill=%27currentColor%27 d=%27M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z%27%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class=%27icon%27 width=%27200%27 height=%27200%27 viewBox=%270 0 1024 1024%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath fill=%27currentColor%27 d=%27M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z%27%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__title{box-sizing:border-box;color:var(--el-color-info);font-size:12px;line-height:34px;overflow:hidden;padding:0 20px;text-overflow:ellipsis;white-space:nowrap}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:14px;gap:6px;line-height:24px;min-height:32px;padding:4px 12px;position:relative;text-align:left;transform:translateZ(0);transition:var(--el-transition-duration)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select__wrapper.is-disabled,.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag,.el-select__wrapper.is-disabled input{cursor:not-allowed}.el-select__wrapper.is-disabled .el-select__prefix,.el-select__wrapper.is-disabled .el-select__suffix{pointer-events:none}.el-select__prefix,.el-select__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;gap:6px}.el-select__caret{color:var(--el-select-input-color);cursor:pointer;font-size:var(--el-select-input-font-size);transform:rotate(0deg);transition:var(--el-transition-duration)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__clear{cursor:pointer}.el-select__clear:hover{color:var(--el-select-close-hover-color)}.el-select__selection{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{border-color:transparent;cursor:pointer}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.el-select__tags-text{line-height:normal}.el-select__placeholder,.el-select__tags-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{color:var(--el-input-text-color,var(--el-text-color-regular));position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:-1}.el-select__placeholder.is-transparent{color:var(--el-text-color-placeholder);-webkit-user-select:none;user-select:none}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper,.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{flex:1}.el-select__input-wrapper.is-hidden{opacity:0;position:absolute;z-index:-1}.el-select__input{appearance:none;background-color:transparent;border:none;color:var(--el-select-multiple-input-color);font-family:inherit;font-size:inherit;height:24px;outline:none;padding:0;width:100%}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-select--large .el-select__wrapper{font-size:14px;gap:6px;line-height:24px;min-height:40px;padding:8px 16px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{font-size:12px;gap:4px;line-height:20px;min-height:24px;padding:2px 8px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);border-radius:var(--el-border-radius-base);display:inline-block;height:16px;width:100%}.el-skeleton__circle{border-radius:50%;height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size);width:var(--el-skeleton-circle-size)}.el-skeleton__button{border-radius:4px;height:40px;width:64px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{height:var(--el-font-size-small);width:100%}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{align-items:center;border-radius:0;display:flex;justify-content:center;width:unset}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:22%;width:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:var(--el-skeleton-color);height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{animation:el-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;height:50px;width:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-grow:0;flex-shrink:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{border-color:var(--el-text-color-primary);color:var(--el-text-color-primary)}.el-step__head.is-wait{border-color:var(--el-text-color-placeholder);color:var(--el-text-color-placeholder)}.el-step__head.is-success{border-color:var(--el-color-success);color:var(--el-color-success)}.el-step__head.is-error{border-color:var(--el-color-danger);color:var(--el-color-danger)}.el-step__head.is-finish{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-step__icon{align-items:center;background:var(--el-bg-color);box-sizing:border-box;display:inline-flex;font-size:14px;height:24px;justify-content:center;position:relative;transition:.15s ease-out;width:24px;z-index:1}.el-step__icon.is-text{border:2px solid;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{color:inherit;display:inline-block;font-weight:700;line-height:1;text-align:center;-webkit-user-select:none;user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:var(--el-text-color-placeholder);border-color:currentColor;position:absolute}.el-step__line-inner{border:1px solid;box-sizing:border-box;display:block;height:0;transition:.15s ease-out;width:0}.el-step__main{text-align:left;white-space:normal}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:var(--el-text-color-primary);font-weight:700}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{font-size:12px;font-weight:400;line-height:20px;margin-top:-5px;padding-right:10%}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;left:0;right:0;top:11px}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{bottom:0;left:11px;top:0;width:2px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{font-size:0;padding-right:10px;width:auto}.el-step.is-simple .el-step__icon{background:transparent;font-size:12px;height:16px;width:16px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{align-items:stretch;display:flex;flex-grow:1;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;overflow-wrap:break-word}.el-step.is-simple .el-step__arrow{align-items:center;display:flex;flex-grow:1;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{background:var(--el-text-color-placeholder);content:"";display:inline-block;height:15px;position:absolute;width:1px}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{background:var(--el-fill-color-light);border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;padding:0 10px}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;user-select:none}.el-table__expand-icon{color:var(--el-text-color-regular);cursor:pointer;font-size:12px;height:20px;position:relative;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:-1px;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{cursor:pointer;display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;height:12px;line-height:12px;margin-right:8px;text-align:center;width:12px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);font-size:var(--el-font-size-base)}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{background-color:var(--el-bg-color);display:flex;flex-direction:column-reverse;left:0;overflow:hidden;position:absolute;top:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{background-color:var(--el-bg-color);box-shadow:2px 0 4px 0 rgba(0,0,0,.06);display:flex;flex-direction:column-reverse;left:0;overflow:hidden;position:absolute;top:0}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{background-color:var(--el-bg-color);box-shadow:-2px 0 4px 0 rgba(0,0,0,.06);display:flex;flex-direction:column-reverse;overflow:hidden;position:absolute;right:0;top:0}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{overflow:hidden;position:relative}.el-table-v2__header .el-checkbox{z-index:0}.el-table-v2__footer{bottom:0;overflow:hidden;right:0}.el-table-v2__empty,.el-table-v2__footer,.el-table-v2__overlay{left:0;position:absolute}.el-table-v2__overlay{bottom:0;right:0;top:0;z-index:9999}.el-table-v2__header-row{border-bottom:var(--el-table-border);display:flex}.el-table-v2__header-cell{align-items:center;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);display:flex;font-weight:700;height:100%;overflow:hidden;padding:0 8px;-webkit-user-select:none;user-select:none}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{display:none;opacity:.6;transition:opacity,display var(--el-transition-duration)}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{align-items:center;border-bottom:var(--el-table-border);display:flex;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{align-items:center;display:flex;height:100%;overflow:hidden;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{cursor:pointer;margin:0 4px;-webkit-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{align-items:stretch;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{margin:0;max-height:200px}.time-select-item{font-size:14px;line-height:20px;padding:8px 10px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);cursor:pointer;font-weight:700}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{padding-left:28px;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid var(--el-timeline-node-color);height:100%;left:4px;position:absolute}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{align-items:center;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;position:absolute}.el-timeline-item__node--normal{height:var(--el-timeline-node-size-normal);left:-1px;width:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{height:var(--el-timeline-node-size-large);left:-2px;width:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{align-items:center;display:flex;justify-content:center;position:absolute}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);font-size:var(--el-font-size-small);line-height:1}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);font-size:var(--el-font-size-base);list-style:none;margin:0}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{align-items:center;display:flex}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);background-color:var(--el-color-white);border:1px solid var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);padding:var(--el-tooltip-v2-padding)}.el-tooltip-v2__arrow{color:var(--el-color-white);height:var(--el-tooltip-v2-arrow-height);left:var(--el-tooltip-v2-arrow-x);pointer-events:none;position:absolute;top:var(--el-tooltip-v2-arrow-y);width:var(--el-tooltip-v2-arrow-width)}.el-tooltip-v2__arrow:after,.el-tooltip-v2__arrow:before{border:var(--el-tooltip-v2-arrow-border-width) solid transparent;content:"";height:0;position:absolute;width:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-bottom:0;border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-bottom:0;border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-left:0;border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-left:0;border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;color:var(--el-color-white)}.el-tooltip-v2__content.is-dark,.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;padding:0 30px;vertical-align:middle}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{background:var(--el-bg-color-overlay);box-sizing:border-box;display:inline-block;max-height:100%;overflow:hidden;position:relative;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width)}.el-transfer-panel__body{border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);height:var(--el-transfer-panel-body-height);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{box-sizing:border-box;height:var(--el-transfer-panel-body-height);list-style:none;margin:0;overflow:auto;padding:6px 0}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{display:block!important;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular);margin-right:30px}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{box-sizing:border-box;display:block;line-height:var(--el-transfer-item-height);overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{box-sizing:border-box;padding:15px;text-align:center}.el-transfer-panel__filter .el-input__inner{box-sizing:border-box;display:inline-block;font-size:12px;height:var(--el-transfer-filter-height);width:100%}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{align-items:center;background:var(--el-transfer-panel-header-bg-color);border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black);display:flex;height:var(--el-transfer-panel-header-height);margin:0;padding-left:15px}.el-transfer-panel .el-transfer-panel__header .el-checkbox{align-items:center;display:flex;position:relative;width:100%}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{color:var(--el-text-color-primary);font-size:16px;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{color:var(--el-text-color-secondary);font-size:12px;font-weight:400;position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0)}.el-transfer-panel .el-transfer-panel__footer{background:var(--el-bg-color-overlay);border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);height:var(--el-transfer-panel-footer-height);margin:0;padding:0}.el-transfer-panel .el-transfer-panel__footer:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:var(--el-text-color-regular);padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{color:var(--el-text-color-secondary);height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);margin:0;padding:6px 15px 0;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);background:var(--el-fill-color-blank);color:var(--el-tree-text-color);cursor:default;font-size:var(--el-font-size-base);position:relative}.el-tree__empty-block{height:100%;min-height:60px;position:relative;text-align:center;width:100%}.el-tree__empty-text{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:var(--el-color-primary);height:1px;left:0;position:absolute;right:0}.el-tree-node{outline:none;white-space:nowrap}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);align-items:center;cursor:pointer;display:flex;height:var(--el-tree-node-content-height)}.el-tree-node__content>.el-tree-node__expand-icon{box-sizing:content-box;padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{color:var(--el-tree-expand-icon-color);cursor:pointer;font-size:12px;transform:rotate(0deg);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{color:var(--el-tree-expand-icon-color);font-size:var(--el-font-size-base);margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:transparent;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__list>.el-select-dropdown__item{padding-left:32px}.el-tree-select__popper .el-select-dropdown__item{background:transparent!important;flex:1;height:20px;line-height:20px;padding-left:0}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{--el-upload-picture-card-size:148px;align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px)}.el-upload-list{list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper.always-on .el-virtual-scrollbar,.el-vl__wrapper:hover .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{color:var(--el-statistic-title-color);font-size:var(--el-statistic-title-font-size);font-weight:var(--el-statistic-title-font-weight);line-height:20px;margin-bottom:4px}.el-statistic__content{color:var(--el-statistic-content-color);font-size:var(--el-statistic-content-font-size);font-weight:var(--el-statistic-content-font-weight)}.el-statistic__value{display:inline-block}.el-statistic__prefix{display:inline-block;margin-right:4px}.el-statistic__suffix{display:inline-block;margin-left:4px}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:12px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-close-color:var(--el-color-info);--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{border-radius:var(--el-tour-border-radius);box-shadow:var(--el-box-shadow-light);outline:none;overflow-wrap:break-word;padding:var(--el-tour-padding-primary);width:var(--el-tour-width)}.el-tour__arrow,.el-tour__content{background:var(--el-tour-bg-color);box-sizing:border-box}.el-tour__arrow{height:10px;pointer-events:none;position:absolute;transform:rotate(45deg);width:10px}.el-tour__content[data-side^=top] .el-tour__arrow{border-left-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:transparent;border-right-color:transparent}.el-tour__content[data-side^=left] .el-tour__arrow{border-bottom-color:transparent;border-left-color:transparent}.el-tour__content[data-side^=right] .el-tour__arrow{border-right-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-tour__closebtn .el-tour__close{color:var(--el-tour-close-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding-bottom:var(--el-tour-padding-primary)}.el-tour__header.show-close{padding-right:calc(var(--el-tour-padding-primary) + var(--el-message-close-size, 16px))}.el-tour__title{color:var(--el-tour-title-text-color);font-size:var(--el-tour-title-font-size);font-weight:var(--el-tour-title-font-weight);line-height:var(--el-tour-font-line-height)}.el-tour__body{color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{box-sizing:border-box;display:flex;justify-content:space-between;padding-top:var(--el-tour-padding-primary)}.el-tour__content .el-tour-indicators{display:inline-block;flex:1}.el-tour__content .el-tour-indicator{background:var(--el-color-info-light-9);border-radius:50%;display:inline-block;height:6px;margin-right:6px;width:6px}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary);--el-tour-close-color:#fff}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{background:#fff;border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:hsla(0,0%,100%,.15)}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}.el-anchor{--el-anchor-bg-color:var(--el-bg-color);--el-anchor-padding-indent:14px;--el-anchor-line-height:22px;--el-anchor-font-size:12px;--el-anchor-color:var(--el-text-color-secondary);--el-anchor-active-color:var(--el-color-primary);--el-anchor-marker-bg-color:var(--el-color-primary);background-color:var(--el-anchor-bg-color);position:relative}.el-anchor__marker{background-color:var(--el-anchor-marker-bg-color);border-radius:4px;opacity:0;position:absolute;z-index:0}.el-anchor.el-anchor--vertical .el-anchor__marker{height:14px;left:0;top:8px;transition:top .25s ease-in-out,opacity .25s;width:4px}.el-anchor.el-anchor--vertical .el-anchor__list{padding-left:var(--el-anchor-padding-indent)}.el-anchor.el-anchor--vertical.el-anchor--underline:before{background-color:rgba(5,5,5,.06);content:"";height:100%;left:0;position:absolute;width:2px}.el-anchor.el-anchor--vertical.el-anchor--underline .el-anchor__marker{border-radius:unset;width:2px}.el-anchor.el-anchor--horizontal .el-anchor__marker{bottom:0;height:2px;transition:left .25s ease-in-out,opacity .25s,width .25s;width:20px}.el-anchor.el-anchor--horizontal .el-anchor__list{display:flex;padding-bottom:4px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item{padding-left:16px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item:first-child{padding-left:0}.el-anchor.el-anchor--horizontal.el-anchor--underline:before{background-color:rgba(5,5,5,.06);bottom:0;content:"";height:2px;position:absolute;width:100%}.el-anchor.el-anchor--horizontal.el-anchor--underline .el-anchor__marker{border-radius:unset;height:2px}.el-anchor__item{display:flex;flex-direction:column;overflow:hidden}.el-anchor__link{cursor:pointer;font-size:var(--el-anchor-font-size);line-height:var(--el-anchor-line-height);max-width:100%;outline:none;overflow:hidden;padding:4px 0;text-decoration:none;text-overflow:ellipsis;transition:color var(--el-transition-duration);white-space:nowrap}.el-anchor__link,.el-anchor__link:focus,.el-anchor__link:hover{color:var(--el-anchor-color)}.el-anchor__link.is-active{color:var(--el-anchor-active-color)}.el-anchor .el-anchor__list .el-anchor__item a{display:inline-block}.el-segmented--vertical{flex-direction:column}.el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented{--el-segmented-color:var(--el-text-color-regular);--el-segmented-bg-color:var(--el-fill-color-light);--el-segmented-padding:2px;--el-segmented-item-selected-color:var(--el-color-white);--el-segmented-item-selected-bg-color:var(--el-color-primary);--el-segmented-item-selected-disabled-bg-color:var(--el-color-primary-light-5);--el-segmented-item-hover-color:var(--el-text-color-primary);--el-segmented-item-hover-bg-color:var(--el-fill-color-dark);--el-segmented-item-active-bg-color:var(--el-fill-color-darker);--el-segmented-item-disabled-color:var(--el-text-color-placeholder);align-items:stretch;background:var(--el-segmented-bg-color);border-radius:var(--el-border-radius-base);box-sizing:border-box;color:var(--el-segmented-color);display:inline-flex;font-size:14px;min-height:32px;padding:var(--el-segmented-padding)}.el-segmented__group{align-items:stretch;display:flex;position:relative;width:100%}.el-segmented__item-selected{background:var(--el-segmented-item-selected-bg-color);border-radius:calc(var(--el-border-radius-base) - 2px);height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:all .3s;width:10px}.el-segmented__item-selected.is-disabled{background:var(--el-segmented-item-selected-disabled-bg-color)}.el-segmented__item-selected.is-focus-visible:before{border-radius:inherit;bottom:0;content:"";left:0;outline:2px solid var(--el-segmented-item-selected-bg-color);outline-offset:1px;position:absolute;right:0;top:0}.el-segmented__item{align-items:center;border-radius:calc(var(--el-border-radius-base) - 2px);cursor:pointer;display:flex;flex:1;padding:0 11px}.el-segmented__item:not(.is-disabled):not(.is-selected):hover{background:var(--el-segmented-item-hover-bg-color);color:var(--el-segmented-item-hover-color)}.el-segmented__item:not(.is-disabled):not(.is-selected):active{background:var(--el-segmented-item-active-bg-color)}.el-segmented__item.is-selected,.el-segmented__item.is-selected.is-disabled{color:var(--el-segmented-item-selected-color)}.el-segmented__item.is-disabled{color:var(--el-segmented-item-disabled-color);cursor:not-allowed}.el-segmented__item-input{height:0;margin:0;opacity:0;pointer-events:none;position:absolute;width:0}.el-segmented__item-label{flex:1;line-height:normal;overflow:hidden;text-align:center;text-overflow:ellipsis;transition:color .3s;white-space:nowrap;z-index:1}.el-segmented.is-block{display:flex}.el-segmented.is-block .el-segmented__item{min-width:0}.el-segmented--large{border-radius:var(--el-border-radius-base);font-size:16px;min-height:40px}.el-segmented--large .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 2px)}.el-segmented--large .el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented--large .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 2px);padding:0 11px}.el-segmented--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:14px;min-height:24px}.el-segmented--small .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 3px)}.el-segmented--small .el-segmented--vertical .el-segmented__item{padding:7px}.el-segmented--small .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 3px);padding:0 7px}.el-mention{position:relative;width:100%}.el-mention__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-mention__popper.el-popper,.el-mention__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-mention__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-mention-dropdown{--el-mention-font-size:var(--el-font-size-base);--el-mention-bg-color:var(--el-bg-color-overlay);--el-mention-shadow:var(--el-box-shadow-light);--el-mention-border:1px solid var(--el-border-color-light);--el-mention-option-color:var(--el-text-color-regular);--el-mention-option-height:34px;--el-mention-option-min-width:100px;--el-mention-option-hover-background:var(--el-fill-color-light);--el-mention-option-selected-color:var(--el-color-primary);--el-mention-option-disabled-color:var(--el-text-color-placeholder);--el-mention-option-loading-color:var(--el-text-color-secondary);--el-mention-option-loading-padding:10px 0;--el-mention-max-height:174px;--el-mention-padding:6px 0;--el-mention-header-padding:10px;--el-mention-footer-padding:10px}.el-mention-dropdown__item{box-sizing:border-box;color:var(--el-mention-option-color);cursor:pointer;font-size:var(--el-mention-font-size);height:var(--el-mention-option-height);line-height:var(--el-mention-option-height);min-width:var(--el-mention-option-min-width);overflow:hidden;padding:0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-mention-dropdown__item.is-hovering{background-color:var(--el-mention-option-hover-background)}.el-mention-dropdown__item.is-selected{color:var(--el-mention-option-selected-color);font-weight:700}.el-mention-dropdown__item.is-disabled{background-color:unset;color:var(--el-mention-option-disabled-color);cursor:not-allowed}.el-mention-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-mention-dropdown__loading{color:var(--el-mention-option-loading-color);font-size:12px;margin:0;min-width:var(--el-mention-option-min-width);padding:10px 0;text-align:center}.el-mention-dropdown__wrap{max-height:var(--el-mention-max-height)}.el-mention-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:var(--el-mention-padding)}.el-mention-dropdown__header{border-bottom:var(--el-mention-border);padding:var(--el-mention-header-padding)}.el-mention-dropdown__footer{border-top:var(--el-mention-border);padding:var(--el-mention-footer-padding)}.el-splitter{display:flex;height:100%;margin:0;padding:0;position:relative;width:100%}.el-splitter__mask{bottom:0;left:0;position:absolute;right:0;top:0;z-index:999}.el-splitter__mask-horizontal{cursor:col-resize}.el-splitter__mask-vertical{cursor:row-resize}.el-splitter__horizontal{flex-direction:row}.el-splitter__vertical{flex-direction:column}.el-splitter-bar{flex:none;position:relative;-webkit-user-select:none;user-select:none}.el-splitter-bar__disable{cursor:auto!important}.el-splitter-bar__disable:before{background-color:var(--el-border-color-light)!important}.el-splitter-bar__dragger{background:transparent;z-index:1}.el-splitter-bar__dragger,.el-splitter-bar__dragger:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:before{background-color:var(--el-border-color-light);content:""}.el-splitter-bar__dragger:hover:before{background-color:var(--el-color-primary-light-5)}.el-splitter-bar__dragger-horizontal:before{height:100%;width:2px}.el-splitter-bar__dragger-vertical:before{height:2px;width:100%}.el-splitter-bar__dragger-active:before{background-color:var(--el-color-primary-light-3)}.el-splitter-bar:hover .el-splitter-bar__collapse-icon{opacity:1}.el-splitter-bar__collapse-icon{align-items:center;background:var(--el-border-color-light);border-radius:2px;cursor:pointer;display:flex;justify-content:center;opacity:0;position:absolute;z-index:9}.el-splitter-bar__collapse-icon:hover{background-color:var(--el-color-primary-light-5);opacity:1}.el-splitter-bar__horizontal-collapse-icon-start{height:24px;left:-12px;top:50%;transform:translate(-50%,-50%);width:16px}.el-splitter-bar__horizontal-collapse-icon-end{height:24px;left:12px;top:50%;transform:translate(-50%,-50%);width:16px}.el-splitter-bar__vertical-collapse-icon-start{height:16px;right:50%;top:-12px;transform:translate(50%,-50%);width:24px}.el-splitter-bar__vertical-collapse-icon-end{height:16px;right:50%;top:12px;transform:translate(50%,-50%);width:24px}.el-splitter-panel{box-sizing:border-box;flex-grow:0;overflow:auto;scrollbar-width:thin} \ No newline at end of file +@charset "UTF-8";:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:0.3s;--el-transition-duration-fast:0.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(0.645,0.045,0.355,1);--el-transition-function-fast-bezier:cubic-bezier(0.23,1,0.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.08),0px 12px 32px rgba(0,0,0,.12),0px 8px 16px -8px rgba(0,0,0,.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,.8);--el-overlay-color-light:rgba(0,0,0,.7);--el-overlay-color-lighter:rgba(0,0,0,.5);--el-mask-color:hsla(0,0%,100%,.9);--el-mask-color-extra-light:hsla(0,0%,100%,.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;align-items:center;background-color:var(--el-color-white);border-radius:var(--el-alert-border-radius-base);box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:var(--el-alert-padding);position:relative;transition:opacity var(--el-transition-duration-fast);width:100%}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color)}.el-alert--primary.is-light,.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color)}.el-alert--success.is-light,.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color)}.el-alert--info.is-light,.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color)}.el-alert--warning.is-light,.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color)}.el-alert--error.is-light,.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:flex;flex-direction:column;gap:4px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);margin-right:8px;width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);margin-right:12px;width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{cursor:pointer;font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;right:16px;top:12px}.el-alert .el-alert__close-btn.is-customed{font-size:var(--el-alert-close-customed-font-size);font-style:normal;line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{box-sizing:border-box;flex-shrink:0;overflow:auto;width:var(--el-aside-width,300px)}.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;position:relative;width:var(--el-input-width)}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper,.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__header{border-bottom:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__footer{border-top:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:var(--el-text-color-secondary);cursor:default;font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;align-items:center;background:var(--el-avatar-bg-color);box-sizing:border-box;color:var(--el-avatar-text-color);display:inline-flex;font-size:var(--el-avatar-text-size);height:var(--el-avatar-size);justify-content:center;outline:none;overflow:hidden;text-align:center;width:var(--el-avatar-size)}.el-avatar>img{display:block;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);align-items:center;background-color:var(--el-backtop-bg-color);border-radius:50%;box-shadow:var(--el-box-shadow-lighter);color:var(--el-backtop-text-color);cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:fixed;width:40px;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translateX(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);font-weight:700;margin:0 9px}.el-breadcrumb__separator.el-icon{font-weight:400;margin:0 6px}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{align-items:center;display:inline-flex;float:left}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:var(--el-text-color-primary);font-weight:700;text-decoration:none;transition:var(--el-transition-color)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{content:"";display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:hsla(0,0%,100%,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-calendar{--el-calendar-border:var(--el-table-border,1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{border-bottom:var(--el-calendar-header-border-bottom);display:flex;justify-content:space-between;padding:12px 20px}.el-calendar__title{align-self:center;color:var(--el-text-color)}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:var(--el-text-color-regular);font-weight:400;padding:12px 0}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);transition:background-color var(--el-transition-duration-fast) ease;vertical-align:top}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:var(--el-calendar-cell-width);padding:8px}.el-calendar-table .el-calendar-day:hover{background-color:var(--el-calendar-selected-bg-color);cursor:pointer}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-carousel__item{display:inline-block;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.el-carousel__item,.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{height:50%;width:100%}.el-carousel__mask{background-color:var(--el-color-white);height:100%;left:0;opacity:.24;position:absolute;top:0;transition:var(--el-transition-duration-fast);width:100%}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31,45,61,.11);--el-carousel-arrow-hover-background:rgba(31,45,61,.23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{align-items:center;background-color:var(--el-carousel-arrow-background);border:none;border-radius:50%;color:#fff;cursor:pointer;display:inline-flex;font-size:var(--el-carousel-arrow-font-size);height:var(--el-carousel-arrow-size);justify-content:center;margin:0;outline:none;padding:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);transition:var(--el-transition-duration);width:var(--el-carousel-arrow-size);z-index:10}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{list-style:none;margin:0;padding:0;position:absolute;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical)*2);position:static;text-align:center;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels{left:0;right:0;text-align:center;transform:none}.el-carousel__indicators--labels .el-carousel__button{color:#000;font-size:12px;height:auto;padding:2px 18px;width:auto}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{height:calc(var(--el-carousel-indicator-width)/2);width:var(--el-carousel-indicator-height)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{background-color:#fff;border:none;cursor:pointer;display:block;height:var(--el-carousel-indicator-height);margin:0;opacity:.48;outline:none;padding:0;transition:var(--el-transition-duration);width:var(--el-carousel-indicator-width)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%) translateX(-10px)}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%) translateX(10px)}.el-transitioning{filter:url(#elCarouselHorizontal)}.el-transitioning-vertical{filter:url(#elCarouselVertical)}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);display:flex;font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{border-right:var(--el-cascader-menu-border);box-sizing:border-box;color:var(--el-cascader-menu-text-color);min-width:180px}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;list-style:none;margin:0;min-height:100%;padding:6px 0;position:relative}.el-cascader-menu__hover-zone{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.el-cascader-menu__empty-text{align-items:center;color:var(--el-cascader-color-empty);display:flex;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{align-items:center;display:flex;height:34px;line-height:34px;outline:none;padding:0 30px 0 20px;position:relative}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{left:10px;position:absolute}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;overflow:hidden;padding:0 8px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-cascader-node>.el-checkbox,.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;font-size:var(--el-font-size-base);line-height:32px;outline:none;position:relative;vertical-align:middle}.el-cascader:not(.is-disabled):hover .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset;cursor:pointer}.el-cascader .el-input{cursor:pointer;display:flex}.el-cascader .el-input .el-input__inner{cursor:pointer;text-overflow:ellipsis}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{font-size:14px;transition:transform var(--el-transition-duration)}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--large .el-cascader__tags{gap:6px;padding:8px}.el-cascader--large .el-cascader__search-input{height:24px;margin-left:7px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader--small .el-cascader__tags{gap:4px;padding:2px}.el-cascader--small .el-cascader__search-input{height:20px;margin-left:5px}.el-cascader.is-disabled .el-cascader__label{color:var(--el-disabled-text-color);z-index:calc(var(--el-index-normal) + 1)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill)}.el-cascader__dropdown.el-popper,.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-cascader__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-cascader__tags{box-sizing:border-box;display:flex;flex-wrap:wrap;gap:6px;left:0;line-height:normal;padding:4px;position:absolute;right:30px;text-align:left;top:50%;transform:translateY(-50%)}.el-cascader__tags .el-tag{align-items:center;background:var(--el-cascader-tag-background);display:inline-flex;max-width:100%;text-overflow:ellipsis}.el-cascader__tags .el-tag.el-tag--dark,.el-cascader__tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__tags .el-tag>span{flex:1;line-height:normal;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__tags .el-tag+input{margin-left:0}.el-cascader__tags.is-validate{right:55px}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{align-items:center;background:var(--el-fill-color);display:inline-flex;max-width:100%;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag.el-tag--dark,.el-cascader__collapse-tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__collapse-tags .el-tag>span{flex:1;line-height:normal;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags .el-tag+input{margin-left:0}.el-cascader__collapse-tags .el-tag{margin:2px 0}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{color:var(--el-cascader-menu-text-color);font-size:var(--el-font-size-base);margin:0;max-height:204px;padding:6px 0;text-align:center}.el-cascader__suggestion-item{align-items:center;cursor:pointer;display:flex;height:34px;justify-content:space-between;outline:none;padding:0 15px;text-align:left}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{color:var(--el-cascader-color-empty);margin:10px 0}.el-cascader__search-input{background:transparent;border:none;box-sizing:border-box;color:var(--el-cascader-menu-text-color);flex:1;height:24px;margin-left:7px;min-width:60px;outline:none;padding:0}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:700;line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all)}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--primary.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.el-check-tag--primary.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-check-tag.el-check-tag--primary.is-checked.is-disabled{background-color:var(--el-color-primary-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-checked.is-disabled:hover{background-color:var(--el-color-primary-light-8)}.el-check-tag.el-check-tag--primary.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-check-tag.el-check-tag--success.is-checked{background-color:var(--el-color-success-light-8);color:var(--el-color-success)}.el-check-tag.el-check-tag--success.is-checked:hover{background-color:var(--el-color-success-light-7)}.el-check-tag.el-check-tag--success.is-checked.is-disabled{background-color:var(--el-color-success-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-checked.is-disabled:hover{background-color:var(--el-color-success-light-8)}.el-check-tag.el-check-tag--success.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-disabled,.el-check-tag.el-check-tag--success.is-disabled:hover{background-color:var(--el-color-success-light-9)}.el-check-tag.el-check-tag--warning.is-checked{background-color:var(--el-color-warning-light-8);color:var(--el-color-warning)}.el-check-tag.el-check-tag--warning.is-checked:hover{background-color:var(--el-color-warning-light-7)}.el-check-tag.el-check-tag--warning.is-checked.is-disabled{background-color:var(--el-color-warning-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-checked.is-disabled:hover{background-color:var(--el-color-warning-light-8)}.el-check-tag.el-check-tag--warning.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-disabled,.el-check-tag.el-check-tag--warning.is-disabled:hover{background-color:var(--el-color-warning-light-9)}.el-check-tag.el-check-tag--danger.is-checked{background-color:var(--el-color-danger-light-8);color:var(--el-color-danger)}.el-check-tag.el-check-tag--danger.is-checked:hover{background-color:var(--el-color-danger-light-7)}.el-check-tag.el-check-tag--danger.is-checked.is-disabled{background-color:var(--el-color-danger-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-checked.is-disabled:hover{background-color:var(--el-color-danger-light-8)}.el-check-tag.el-check-tag--danger.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-disabled,.el-check-tag.el-check-tag--danger.is-disabled:hover{background-color:var(--el-color-danger-light-9)}.el-check-tag.el-check-tag--error.is-checked{background-color:var(--el-color-error-light-8);color:var(--el-color-error)}.el-check-tag.el-check-tag--error.is-checked:hover{background-color:var(--el-color-error-light-7)}.el-check-tag.el-check-tag--error.is-checked.is-disabled{background-color:var(--el-color-error-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-checked.is-disabled:hover{background-color:var(--el-color-error-light-8)}.el-check-tag.el-check-tag--error.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-disabled,.el-check-tag.el-check-tag--error.is-disabled:hover{background-color:var(--el-color-error-light-9)}.el-check-tag.el-check-tag--info.is-checked{background-color:var(--el-color-info-light-8);color:var(--el-color-info)}.el-check-tag.el-check-tag--info.is-checked:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--info.is-checked.is-disabled{background-color:var(--el-color-info-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-checked.is-disabled:hover{background-color:var(--el-color-info-light-8)}.el-check-tag.el-check-tag--info.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-disabled,.el-check-tag.el-check-tag--info.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);display:inline-block;position:relative}.el-checkbox-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left-color:transparent;border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);line-height:1;margin:0;outline:none;padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7);color:var(--el-checkbox-button-checked-text-color)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-bottom-left-radius:var(--el-border-radius-base);border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-bottom-right-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-bottom:1px solid var(--el-collapse-border-color);border-top:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:var(--el-collapse-header-bg-color);border:none;border-bottom:1px solid var(--el-collapse-border-color);color:var(--el-collapse-header-text-color);cursor:pointer;display:flex;font-size:var(--el-collapse-header-font-size);font-weight:500;height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);outline:none;padding:0;transition:border-bottom-color var(--el-transition-duration);width:100%}.el-collapse-item__arrow{font-weight:300;transition:transform var(--el-transition-duration)}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__title{flex:auto;text-align:left}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:var(--el-collapse-content-bg-color);border-bottom:1px solid var(--el-collapse-border-color);box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:var(--el-collapse-content-text-color);font-size:var(--el-collapse-content-font-size);line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse-icon-position-left .el-collapse-item__header{gap:8px}.el-collapse-icon-position-left .el-collapse-item__title{order:1}.el-collapse-icon-position-right .el-collapse-item__header{padding-right:8px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{border-radius:4px;cursor:pointer;height:20px;margin:0 0 8px 8px;width:20px}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{border-radius:3px;display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:red;box-sizing:border-box;float:right;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-svpanel{height:180px;position:relative;width:280px}.el-color-svpanel__black,.el-color-svpanel__white{bottom:0;left:0;position:absolute;right:0;top:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:head;height:4px;transform:translate(-2px,-2px);width:4px}.el-color-alpha-slider{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider__bar{background:linear-gradient(to right,hsla(0,0%,100%,0) 0,var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0),#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{clear:both;content:"";display:table}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{color:#000;float:left;font-size:12px;line-height:26px;width:160px}.el-color-picker{display:inline-block;height:32px;line-height:normal;outline:none;position:relative;width:32px}.el-color-picker:hover:not(.is-disabled,.is-focused) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-color-picker.is-disabled .el-color-picker__color{opacity:.3}.el-color-picker--large{height:40px;width:40px}.el-color-picker--small{height:24px;width:24px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__trigger{align-items:center;border:1px solid var(--el-border-color);border-radius:4px;cursor:pointer;display:inline-flex;font-size:0;justify-content:center;padding:4px}.el-color-picker__color,.el-color-picker__trigger{box-sizing:border-box;height:100%;position:relative;width:100%}.el-color-picker__color{border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);display:block;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{align-items:center;display:inline-flex;height:100%;justify-content:center;width:100%}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{align-items:center;color:#fff;display:inline-flex;font-size:12px;justify-content:center}.el-color-picker__panel{background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light);box-sizing:content-box;padding:6px;position:absolute;z-index:10}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed;opacity:1}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);border-radius:15px;color:#fff}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{border-bottom:1px solid var(--el-border-color-lighter);color:var(--el-datepicker-header-text-color);font-weight:400;padding:5px}.el-date-table th.el-date-table__week-header{padding:0;width:24px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .el-date-table-cell__text,.el-month-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translateX(-50%);width:54px}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date .el-date-table-cell,.el-month-table td.start-date .el-date-table-cell{color:#fff}.el-month-table td.end-date .el-date-table-cell__text,.el-month-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.end-date .el-date-table-cell__text,.el-year-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translateX(-50%);width:60px}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.end-date .el-date-table-cell,.el-year-table td.start-date .el-date-table-cell{color:#fff}.el-year-table td.end-date .el-date-table-cell__text,.el-year-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-year-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:192px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:var(--el-index-normal)}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:var(--el-text-color-regular);font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper,.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{height:var(--el-input-height,var(--el-component-size));width:var(--el-date-editor-width)}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .clear-icon,.el-date-editor .close-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{color:var(--el-text-color-placeholder);float:left;font-size:14px;height:inherit}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{appearance:none;background-color:transparent;border:none;color:var(--el-text-color-regular);display:inline-block;font-size:var(--el-font-size-base);height:30px;line-height:30px;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{align-items:center;color:var(--el-text-color-primary);display:inline-flex;flex:1;font-size:14px;height:100%;justify-content:center;margin:0;overflow-wrap:break-word;padding:0 5px}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);cursor:pointer;font-size:14px;height:inherit;width:unset}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{align-items:center;display:inline-flex;padding:0 10px;vertical-align:middle}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{font-size:14px;height:38px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{font-size:12px;height:22px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled,.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{background:var(--el-bg-color-overlay);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));color:var(--el-text-color-regular);line-height:30px}.el-picker-panel .el-time-panel{background-color:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:var(--el-bg-color-overlay);border-top:1px solid var(--el-datepicker-inner-border-color);font-size:0;padding:4px 12px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:transparent;border:0;color:var(--el-datepicker-text-color);cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{background-color:transparent;border:1px solid var(--el-fill-color-darker);border-radius:2px;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{background:transparent;border:0;color:var(--el-datepicker-icon-color);cursor:pointer;font-size:12px;margin-top:8px;outline:none}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{padding:12px 12px 0;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;float:left;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:var(--el-datepicker-icon-color);display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;right:0;top:13px;z-index:1}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{border-radius:2px;box-sizing:content-box;left:0;position:relative;-webkit-user-select:none;user-select:none;width:180px;z-index:var(--el-index-top)}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{box-sizing:border-box;content:"";height:32px;left:0;margin-top:-16px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{border-bottom:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:transparent;border:none;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:0.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color,var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary,20px);background-color:var(--el-drawer-bg-color);box-shadow:var(--el-box-shadow-dark);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;position:absolute;transition:all var(--el-transition-duration)}.el-drawer .btt,.el-drawer .ltr,.el-drawer .rtl,.el-drawer .ttb{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{align-items:center;color:var(--el-text-color-primary);display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{flex:1;font-size:16px;line-height:inherit;margin:0}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{background-color:transparent;border:none;color:inherit;cursor:pointer;display:inline-flex;font-size:var(--el-font-size-extra-large);outline:none}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;overflow:auto;padding:var(--el-drawer-padding-primary)}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{bottom:0;height:100%;top:0}.el-drawer.btt,.el-drawer.ttb{left:0;right:0;width:100%}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{background-color:transparent!important}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translateX(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translateX(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);line-height:1;position:relative;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper,.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:0}.el-dropdown .el-dropdown__caret-button{align-items:center;border-left:none;display:inline-flex;justify-content:center;padding-left:0;padding-right:0;width:32px}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{background:var(--el-overlay-color-lighter);bottom:-1px;content:"";display:block;left:0;position:absolute;top:-1px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;left:0;list-style:none;margin:0;padding:5px 0;position:relative;top:0;z-index:var(--el-dropdown-menu-index)}.el-dropdown-menu__item{align-items:center;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:var(--el-font-size-base);line-height:22px;list-style:none;margin:0;outline:none;padding:5px 16px;white-space:nowrap}.el-dropdown-menu__item:not(.is-disabled):focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{font-size:14px;line-height:22px;padding:7px 20px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:12px;line-height:20px;padding:2px 12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height);padding:var(--el-footer-padding)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;text-align:left;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;box-sizing:border-box;flex-shrink:0;height:var(--el-header-height);padding:var(--el-header-padding)}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;user-select:none;z-index:1}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{font-size:40px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;position:static;-webkit-user-select:none;user-select:none;width:100%}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%)}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;gap:22px;height:100%;justify-content:space-around;padding:0 6px;width:100%}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{bottom:90px;color:#fff;cursor:default;left:50%;transform:translateX(-50%)}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__close{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;width:44px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{opacity:1;vertical-align:top}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{left:0;position:absolute;top:0}.el-image__error,.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{align-items:center;color:var(--el-text-color-placeholder);display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-input-tag{--el-input-tag-border-color-hover:var(--el-border-color-hover);--el-input-tag-placeholder-color:var(--el-text-color-placeholder);--el-input-tag-disabled-color:var(--el-disabled-text-color);--el-input-tag-disabled-border:var(--el-disabled-border-color);--el-input-tag-font-size:var(--el-font-size-base);--el-input-tag-close-hover-color:var(--el-text-color-secondary);--el-input-tag-text-color:var(--el-text-color-regular);--el-input-tag-input-focus-border-color:var(--el-color-primary);--el-input-tag-width:100%;--el-input-tag-mini-height:var(--el-component-size);--el-input-tag-gap:6px;--el-input-tag-padding:4px;--el-input-tag-inner-padding:8px;--el-input-tag-line-height:24px;align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--el-input-tag-font-size);line-height:var(--el-input-tag-line-height);min-height:var(--el-input-tag-mini-height);padding:var(--el-input-tag-padding);transform:translateZ(0);transition:var(--el-transition-duration);width:var(--el-input-tag-width)}.el-input-tag.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-tag.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-input-tag.is-disabled{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-input-tag.is-disabled,.el-input-tag.is-disabled:hover{box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input-tag.is-disabled .el-input-tag__inner .el-input-tag__input,.el-input-tag.is-disabled .el-input-tag__inner .el-tag{cursor:not-allowed}.el-input-tag__prefix,.el-input-tag__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;padding:0 var(--el-input-tag-inner-padding)}.el-input-tag__suffix{gap:8px}.el-input-tag__inner{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:var(--el-input-tag-gap);max-width:100%;min-width:0;position:relative}.el-input-tag__inner.is-left-space{margin-left:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-right-space{margin-right:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-draggable .el-tag{cursor:move;-webkit-user-select:none;user-select:none}.el-input-tag__drop-indicator{background-color:var(--el-color-primary);height:var(--el-input-tag-line-height);position:absolute;top:0;width:1px}.el-input-tag__inner .el-tag{border-color:transparent;cursor:pointer;max-width:100%}.el-input-tag__inner .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__inner .el-tag .el-tag__content{line-height:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-input-tag__input-wrapper{flex:1}.el-input-tag__input{appearance:none;background-color:transparent;border:none;color:var(--el-input-tag-text-color);font-family:inherit;font-size:inherit;line-height:inherit;outline:none;padding:0;width:100%}.el-input-tag__input::placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-input-tag--large{--el-input-tag-gap:6px;--el-input-tag-padding:8px;--el-input-tag-padding-left:8px;--el-input-tag-font-size:14px}.el-input-tag--small{--el-input-tag-gap:4px;--el-input-tag-padding:2px;--el-input-tag-padding-left:6px;--el-input-tag-font-size:12px;--el-input-tag-line-height:20px;--el-input-tag-mini-height:var(--el-component-size-small)}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);align-items:center;color:var(--el-link-text-color);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link.is-hover-underline:hover:after{border-bottom:1px solid var(--el-link-hover-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-underline:after{border-bottom:1px solid var(--el-link-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link:hover:after{border-color:var(--el-link-hover-text-color)}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link__inner{align-items:center;display:inline-flex;justify-content:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link.is-disabled:after{border-color:var(--el-link-disabled-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;box-sizing:border-box;display:block;flex:1;flex-basis:auto;overflow:auto;padding:var(--el-main-padding)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);backface-visibility:hidden;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);box-shadow:var(--el-messagebox-box-shadow);box-sizing:border-box;display:inline-block;font-size:var(--el-messagebox-font-size);max-width:var(--el-messagebox-width);overflow:hidden;overflow-wrap:break-word;padding:var(--el-messagebox-padding-primary);position:relative;text-align:left;vertical-align:middle;width:100%}.el-message-box:focus{outline:none!important}.el-overlay.is-message-box .el-overlay-message-box{bottom:0;left:0;overflow:auto;padding:16px;position:fixed;right:0;text-align:center;top:0}.el-overlay.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size, 16px))}.el-message-box__title{color:var(--el-messagebox-title-color);font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;display:flex;gap:12px}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0;min-width:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end;padding-top:var(--el-messagebox-padding-primary)}.el-message-box--center .el-message-box__title{align-items:center;display:flex;gap:6px;justify-content:center}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;left:50%;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;top:20px;transform:translateX(-50%);transition:opacity var(--el-transition-duration),transform .4s,top .4s;width:fit-content}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);background-color:var(--el-bg-color-overlay);border:1px solid var(--el-notification-border-color);border-radius:var(--el-notification-radius);box-shadow:var(--el-notification-shadow);box-sizing:border-box;display:flex;overflow:hidden;overflow-wrap:break-word;padding:var(--el-notification-padding);position:fixed;transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);width:var(--el-notification-width);z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{flex:1;margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right);min-width:0}.el-notification__title{color:var(--el-notification-title-color);font-size:var(--el-notification-title-font-size);font-weight:700;line-height:var(--el-notification-icon-size);margin:0}.el-notification__content{color:var(--el-notification-content-color);font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0}.el-notification__content p{margin:0}.el-notification .el-notification__icon{flex-shrink:0;font-size:var(--el-notification-icon-size);height:var(--el-notification-icon-size);width:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{color:var(--el-notification-close-color);cursor:pointer;font-size:var(--el-notification-close-font-size);position:absolute;right:15px;top:18px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--primary{--el-notification-icon-color:var(--el-color-primary);color:var(--el-notification-icon-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translateX(100%)}.el-notification-fade-enter-from.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{background-color:var(--el-overlay-color-lighter);bottom:0;height:100%;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{align-items:center;display:flex;justify-content:space-between;line-height:24px}.el-page-header__left{align-items:center;display:flex;margin-right:40px;position:relative}.el-page-header__back{align-items:center;cursor:pointer;display:flex}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{align-items:center;display:flex;font-size:16px;margin-right:10px}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:var(--el-text-color-primary);font-size:18px}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;align-items:center;color:var(--el-pagination-text-color);display:flex;font-size:var(--el-pagination-font-size);font-weight:400;white-space:nowrap}.el-pagination .el-input__inner{-moz-appearance:textfield;text-align:center}.el-pagination .el-select{width:128px}.el-pagination button{align-items:center;background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;display:flex;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:none}.el-pagination button.is-active,.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination button.is-disabled,.el-pagination button:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{color:var(--el-text-color-regular);font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{align-items:center;color:var(--el-text-color-regular);display:flex;font-weight:400;margin-left:var(--el-pagination-item-gap)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{box-sizing:border-box;text-align:center}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{align-items:center;display:flex;flex:1;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{background-color:var(--el-disabled-bg-color);color:var(--el-text-color-placeholder)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{background-color:var(--el-fill-color-dark);color:var(--el-text-color-secondary)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{font-size:var(--el-pagination-font-size-small);height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-next,.el-pagination--large .btn-prev,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.el-pager,.el-pager li{align-items:center;display:flex}.el-pager li{background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li.is-active,.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li.is-disabled,.el-pager li:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#fff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button,.el-radio-button__inner{display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;padding:8px 15px;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{flex-wrap:wrap;font-size:0}.el-radio,.el-radio-group{align-items:center;display:inline-flex}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);cursor:pointer;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);align-items:center;display:inline-flex;height:32px}.el-rate:active,.el-rate:focus{outline:none}.el-rate__item{color:var(--el-rate-void-color);cursor:pointer;display:inline-block;font-size:0;line-height:normal;position:relative;vertical-align:middle}.el-rate .el-rate__icon{display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);position:relative;transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{left:0;position:absolute;top:0}.el-rate .el-rate__icon.is-active,.el-rate__decimal{color:var(--el-rate-fill-color)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__decimal,.el-rate__decimal--box{left:0;position:absolute;top:0}.el-rate__text{color:var(--el-rate-text-color);font-size:var(--el-rate-font-size);vertical-align:middle}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{color:var(--el-rate-disabled-void-color);cursor:auto}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-result-padding);text-align:center}.el-result__icon svg{height:var(--el-result-icon-font-size);width:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{color:var(--el-text-color-primary);font-size:var(--el-result-title-font-size);line-height:1.3;margin:0}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1.3;margin:0}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty,.el-select-dropdown__loading{color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{box-sizing:border-box;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);height:34px;line-height:34px;overflow:hidden;padding:0 32px 0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{background-color:unset;color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class=%27icon%27 width=%27200%27 height=%27200%27 viewBox=%270 0 1024 1024%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath fill=%27currentColor%27 d=%27M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z%27%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class=%27icon%27 width=%27200%27 height=%27200%27 viewBox=%270 0 1024 1024%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath fill=%27currentColor%27 d=%27M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z%27%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__title{box-sizing:border-box;color:var(--el-color-info);font-size:12px;line-height:34px;overflow:hidden;padding:0 20px;text-overflow:ellipsis;white-space:nowrap}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:14px;gap:6px;line-height:24px;min-height:32px;padding:4px 12px;position:relative;text-align:left;transform:translateZ(0);transition:var(--el-transition-duration)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select__wrapper.is-disabled,.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag,.el-select__wrapper.is-disabled input{cursor:not-allowed}.el-select__wrapper.is-disabled .el-select__prefix,.el-select__wrapper.is-disabled .el-select__suffix{pointer-events:none}.el-select__prefix,.el-select__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;gap:6px}.el-select__caret{color:var(--el-select-input-color);cursor:pointer;font-size:var(--el-select-input-font-size);transform:rotate(0deg);transition:var(--el-transition-duration)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__clear{cursor:pointer}.el-select__clear:hover{color:var(--el-select-close-hover-color)}.el-select__selection{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{border-color:transparent;cursor:pointer}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.el-select__tags-text{line-height:normal}.el-select__placeholder,.el-select__tags-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{color:var(--el-input-text-color,var(--el-text-color-regular));position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:-1}.el-select__placeholder.is-transparent{color:var(--el-text-color-placeholder);-webkit-user-select:none;user-select:none}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper,.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{flex:1}.el-select__input-wrapper.is-hidden{opacity:0;position:absolute;z-index:-1}.el-select__input{appearance:none;background-color:transparent;border:none;color:var(--el-select-multiple-input-color);font-family:inherit;font-size:inherit;height:24px;outline:none;padding:0;width:100%}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-select--large .el-select__wrapper{font-size:14px;gap:6px;line-height:24px;min-height:40px;padding:8px 16px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{font-size:12px;gap:4px;line-height:20px;min-height:24px;padding:2px 8px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);border-radius:var(--el-border-radius-base);display:inline-block;height:16px;width:100%}.el-skeleton__circle{border-radius:50%;height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size);width:var(--el-skeleton-circle-size)}.el-skeleton__button{border-radius:4px;height:40px;width:64px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{height:var(--el-font-size-small);width:100%}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{align-items:center;border-radius:0;display:flex;justify-content:center;width:unset}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:22%;width:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:var(--el-skeleton-color);height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{animation:el-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;height:50px;width:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-grow:0;flex-shrink:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{border-color:var(--el-text-color-primary);color:var(--el-text-color-primary)}.el-step__head.is-wait{border-color:var(--el-text-color-placeholder);color:var(--el-text-color-placeholder)}.el-step__head.is-success{border-color:var(--el-color-success);color:var(--el-color-success)}.el-step__head.is-error{border-color:var(--el-color-danger);color:var(--el-color-danger)}.el-step__head.is-finish{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-step__icon{align-items:center;background:var(--el-bg-color);box-sizing:border-box;display:inline-flex;font-size:14px;height:24px;justify-content:center;position:relative;transition:.15s ease-out;width:24px;z-index:1}.el-step__icon.is-text{border:2px solid;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{color:inherit;display:inline-block;font-weight:700;line-height:1;text-align:center;-webkit-user-select:none;user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:var(--el-text-color-placeholder);border-color:currentColor;position:absolute}.el-step__line-inner{border:1px solid;box-sizing:border-box;display:block;height:0;transition:.15s ease-out;width:0}.el-step__main{text-align:left;white-space:normal}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:var(--el-text-color-primary);font-weight:700}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{font-size:12px;font-weight:400;line-height:20px;margin-top:-5px;padding-right:10%}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;left:0;right:0;top:11px}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{bottom:0;left:11px;top:0;width:2px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{font-size:0;padding-right:10px;width:auto}.el-step.is-simple .el-step__icon{background:transparent;font-size:12px;height:16px;width:16px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{align-items:stretch;display:flex;flex-grow:1;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;overflow-wrap:break-word}.el-step.is-simple .el-step__arrow{align-items:center;display:flex;flex-grow:1;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{background:var(--el-text-color-placeholder);content:"";display:inline-block;height:15px;position:absolute;width:1px}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{background:var(--el-fill-color-light);border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#fff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;padding:0 10px}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;user-select:none}.el-table__expand-icon{color:var(--el-text-color-regular);cursor:pointer;font-size:12px;height:20px;position:relative;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:-1px;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{cursor:pointer;display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;height:12px;line-height:12px;margin-right:8px;text-align:center;width:12px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,.15);--el-table-index:var(--el-index-normal);font-size:var(--el-font-size-base)}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{background-color:var(--el-bg-color);display:flex;flex-direction:column-reverse;left:0;overflow:hidden;position:absolute;top:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{background-color:var(--el-bg-color);box-shadow:2px 0 4px 0 rgba(0,0,0,.06);display:flex;flex-direction:column-reverse;left:0;overflow:hidden;position:absolute;top:0}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{background-color:var(--el-bg-color);box-shadow:-2px 0 4px 0 rgba(0,0,0,.06);display:flex;flex-direction:column-reverse;overflow:hidden;position:absolute;right:0;top:0}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{overflow:hidden;position:relative}.el-table-v2__header .el-checkbox{z-index:0}.el-table-v2__footer{bottom:0;overflow:hidden;right:0}.el-table-v2__empty,.el-table-v2__footer,.el-table-v2__overlay{left:0;position:absolute}.el-table-v2__overlay{bottom:0;right:0;top:0;z-index:9999}.el-table-v2__header-row{border-bottom:var(--el-table-border);display:flex}.el-table-v2__header-cell{align-items:center;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);display:flex;font-weight:700;height:100%;overflow:hidden;padding:0 8px;-webkit-user-select:none;user-select:none}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{display:none;opacity:.6;transition:opacity,display var(--el-transition-duration)}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{align-items:center;border-bottom:var(--el-table-border);display:flex;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{align-items:center;display:flex;height:100%;overflow:hidden;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{cursor:pointer;margin:0 4px;-webkit-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{align-items:stretch;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--el-color-primary)}.el-tabs__item:hover{cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{margin:0;max-height:200px}.time-select-item{font-size:14px;line-height:20px;padding:8px 10px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);cursor:pointer;font-weight:700}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{padding-left:28px;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid var(--el-timeline-node-color);height:100%;left:4px;position:absolute}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{align-items:center;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;position:absolute}.el-timeline-item__node--normal{height:var(--el-timeline-node-size-normal);left:-1px;width:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{height:var(--el-timeline-node-size-large);left:-2px;width:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{align-items:center;display:flex;justify-content:center;position:absolute}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);font-size:var(--el-font-size-small);line-height:1}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);font-size:var(--el-font-size-base);list-style:none;margin:0}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{align-items:center;display:flex}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);background-color:var(--el-color-white);border:1px solid var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);padding:var(--el-tooltip-v2-padding)}.el-tooltip-v2__arrow{color:var(--el-color-white);height:var(--el-tooltip-v2-arrow-height);left:var(--el-tooltip-v2-arrow-x);pointer-events:none;position:absolute;top:var(--el-tooltip-v2-arrow-y);width:var(--el-tooltip-v2-arrow-width)}.el-tooltip-v2__arrow:after,.el-tooltip-v2__arrow:before{border:var(--el-tooltip-v2-arrow-border-width) solid transparent;content:"";height:0;position:absolute;width:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:before{border-bottom:0;border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow:after{border-bottom:0;border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow:after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow:after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:before{border-left:0;border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow:after{border-left:0;border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;color:var(--el-color-white)}.el-tooltip-v2__content.is-dark,.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;padding:0 30px;vertical-align:middle}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{background:var(--el-bg-color-overlay);box-sizing:border-box;display:inline-block;max-height:100%;overflow:hidden;position:relative;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width)}.el-transfer-panel__body{border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);height:var(--el-transfer-panel-body-height);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{box-sizing:border-box;height:var(--el-transfer-panel-body-height);list-style:none;margin:0;overflow:auto;padding:6px 0}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{display:block!important;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular);margin-right:30px}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{box-sizing:border-box;display:block;line-height:var(--el-transfer-item-height);overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{box-sizing:border-box;padding:15px;text-align:center}.el-transfer-panel__filter .el-input__inner{box-sizing:border-box;display:inline-block;font-size:12px;height:var(--el-transfer-filter-height);width:100%}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{align-items:center;background:var(--el-transfer-panel-header-bg-color);border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black);display:flex;height:var(--el-transfer-panel-header-height);margin:0;padding-left:15px}.el-transfer-panel .el-transfer-panel__header .el-checkbox{align-items:center;display:flex;position:relative;width:100%}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{color:var(--el-text-color-primary);font-size:16px;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{color:var(--el-text-color-secondary);font-size:12px;font-weight:400;position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0)}.el-transfer-panel .el-transfer-panel__footer{background:var(--el-bg-color-overlay);border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);height:var(--el-transfer-panel-footer-height);margin:0;padding:0}.el-transfer-panel .el-transfer-panel__footer:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:var(--el-text-color-regular);padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{color:var(--el-text-color-secondary);height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);margin:0;padding:6px 15px 0;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);background:var(--el-fill-color-blank);color:var(--el-tree-text-color);cursor:default;font-size:var(--el-font-size-base);position:relative}.el-tree__empty-block{height:100%;min-height:60px;position:relative;text-align:center;width:100%}.el-tree__empty-text{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:var(--el-color-primary);height:1px;left:0;position:absolute;right:0}.el-tree-node{outline:none;white-space:nowrap}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);align-items:center;cursor:pointer;display:flex;height:var(--el-tree-node-content-height)}.el-tree-node__content>.el-tree-node__expand-icon{box-sizing:content-box;padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{color:var(--el-tree-expand-icon-color);cursor:pointer;font-size:12px;transform:rotate(0deg);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{color:var(--el-tree-expand-icon-color);font-size:var(--el-font-size-base);margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:transparent;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__list>.el-select-dropdown__item{padding-left:32px}.el-tree-select__popper .el-select-dropdown__item{background:transparent!important;flex:1;height:20px;line-height:20px;padding-left:0}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{color:inherit}.el-upload.is-disabled:focus,.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{--el-upload-picture-card-size:148px;align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{color:var(--el-color-primary)}.el-upload:focus,.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px)}.el-upload-list{list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#fff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:400;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper.always-on .el-virtual-scrollbar,.el-vl__wrapper:hover .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{color:var(--el-statistic-title-color);font-size:var(--el-statistic-title-font-size);font-weight:var(--el-statistic-title-font-weight);line-height:20px;margin-bottom:4px}.el-statistic__content{color:var(--el-statistic-content-color);font-size:var(--el-statistic-content-font-size);font-weight:var(--el-statistic-content-font-weight)}.el-statistic__value{display:inline-block}.el-statistic__prefix{display:inline-block;margin-right:4px}.el-statistic__suffix{display:inline-block;margin-left:4px}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:12px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-close-color:var(--el-color-info);--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{border-radius:var(--el-tour-border-radius);box-shadow:var(--el-box-shadow-light);outline:none;overflow-wrap:break-word;padding:var(--el-tour-padding-primary);width:var(--el-tour-width)}.el-tour__arrow,.el-tour__content{background:var(--el-tour-bg-color);box-sizing:border-box}.el-tour__arrow{height:10px;pointer-events:none;position:absolute;transform:rotate(45deg);width:10px}.el-tour__content[data-side^=top] .el-tour__arrow{border-left-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:transparent;border-right-color:transparent}.el-tour__content[data-side^=left] .el-tour__arrow{border-bottom-color:transparent;border-left-color:transparent}.el-tour__content[data-side^=right] .el-tour__arrow{border-right-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-tour__closebtn .el-tour__close{color:var(--el-tour-close-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding-bottom:var(--el-tour-padding-primary)}.el-tour__header.show-close{padding-right:calc(var(--el-tour-padding-primary) + var(--el-message-close-size, 16px))}.el-tour__title{color:var(--el-tour-title-text-color);font-size:var(--el-tour-title-font-size);font-weight:var(--el-tour-title-font-weight);line-height:var(--el-tour-font-line-height)}.el-tour__body{color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{box-sizing:border-box;display:flex;justify-content:space-between;padding-top:var(--el-tour-padding-primary)}.el-tour__content .el-tour-indicators{display:inline-block;flex:1}.el-tour__content .el-tour-indicator{background:var(--el-color-info-light-9);border-radius:50%;display:inline-block;height:6px;margin-right:6px;width:6px}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary);--el-tour-close-color:#fff}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{background:#fff;border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:hsla(0,0%,100%,.15)}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}.el-anchor{--el-anchor-bg-color:var(--el-bg-color);--el-anchor-padding-indent:14px;--el-anchor-line-height:22px;--el-anchor-font-size:12px;--el-anchor-color:var(--el-text-color-secondary);--el-anchor-active-color:var(--el-color-primary);--el-anchor-marker-bg-color:var(--el-color-primary);background-color:var(--el-anchor-bg-color);position:relative}.el-anchor__marker{background-color:var(--el-anchor-marker-bg-color);border-radius:4px;opacity:0;position:absolute;z-index:0}.el-anchor.el-anchor--vertical .el-anchor__marker{height:14px;left:0;top:8px;transition:top .25s ease-in-out,opacity .25s;width:4px}.el-anchor.el-anchor--vertical .el-anchor__list{padding-left:var(--el-anchor-padding-indent)}.el-anchor.el-anchor--vertical.el-anchor--underline:before{background-color:rgba(5,5,5,.06);content:"";height:100%;left:0;position:absolute;width:2px}.el-anchor.el-anchor--vertical.el-anchor--underline .el-anchor__marker{border-radius:unset;width:2px}.el-anchor.el-anchor--horizontal .el-anchor__marker{bottom:0;height:2px;transition:left .25s ease-in-out,opacity .25s,width .25s;width:20px}.el-anchor.el-anchor--horizontal .el-anchor__list{display:flex;padding-bottom:4px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item{padding-left:16px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item:first-child{padding-left:0}.el-anchor.el-anchor--horizontal.el-anchor--underline:before{background-color:rgba(5,5,5,.06);bottom:0;content:"";height:2px;position:absolute;width:100%}.el-anchor.el-anchor--horizontal.el-anchor--underline .el-anchor__marker{border-radius:unset;height:2px}.el-anchor__item{display:flex;flex-direction:column;overflow:hidden}.el-anchor__link{cursor:pointer;font-size:var(--el-anchor-font-size);line-height:var(--el-anchor-line-height);max-width:100%;outline:none;overflow:hidden;padding:4px 0;text-decoration:none;text-overflow:ellipsis;transition:color var(--el-transition-duration);white-space:nowrap}.el-anchor__link,.el-anchor__link:focus,.el-anchor__link:hover{color:var(--el-anchor-color)}.el-anchor__link.is-active{color:var(--el-anchor-active-color)}.el-anchor .el-anchor__list .el-anchor__item a{display:inline-block}.el-segmented--vertical{flex-direction:column}.el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented{--el-segmented-color:var(--el-text-color-regular);--el-segmented-bg-color:var(--el-fill-color-light);--el-segmented-padding:2px;--el-segmented-item-selected-color:var(--el-color-white);--el-segmented-item-selected-bg-color:var(--el-color-primary);--el-segmented-item-selected-disabled-bg-color:var(--el-color-primary-light-5);--el-segmented-item-hover-color:var(--el-text-color-primary);--el-segmented-item-hover-bg-color:var(--el-fill-color-dark);--el-segmented-item-active-bg-color:var(--el-fill-color-darker);--el-segmented-item-disabled-color:var(--el-text-color-placeholder);align-items:stretch;background:var(--el-segmented-bg-color);border-radius:var(--el-border-radius-base);box-sizing:border-box;color:var(--el-segmented-color);display:inline-flex;font-size:14px;min-height:32px;padding:var(--el-segmented-padding)}.el-segmented__group{align-items:stretch;display:flex;position:relative;width:100%}.el-segmented__item-selected{background:var(--el-segmented-item-selected-bg-color);border-radius:calc(var(--el-border-radius-base) - 2px);height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:all .3s;width:10px}.el-segmented__item-selected.is-disabled{background:var(--el-segmented-item-selected-disabled-bg-color)}.el-segmented__item-selected.is-focus-visible:before{border-radius:inherit;bottom:0;content:"";left:0;outline:2px solid var(--el-segmented-item-selected-bg-color);outline-offset:1px;position:absolute;right:0;top:0}.el-segmented__item{align-items:center;border-radius:calc(var(--el-border-radius-base) - 2px);cursor:pointer;display:flex;flex:1;padding:0 11px}.el-segmented__item:not(.is-disabled):not(.is-selected):hover{background:var(--el-segmented-item-hover-bg-color);color:var(--el-segmented-item-hover-color)}.el-segmented__item:not(.is-disabled):not(.is-selected):active{background:var(--el-segmented-item-active-bg-color)}.el-segmented__item.is-selected,.el-segmented__item.is-selected.is-disabled{color:var(--el-segmented-item-selected-color)}.el-segmented__item.is-disabled{color:var(--el-segmented-item-disabled-color);cursor:not-allowed}.el-segmented__item-input{height:0;margin:0;opacity:0;pointer-events:none;position:absolute;width:0}.el-segmented__item-label{flex:1;line-height:normal;overflow:hidden;text-align:center;text-overflow:ellipsis;transition:color .3s;white-space:nowrap;z-index:1}.el-segmented.is-block{display:flex}.el-segmented.is-block .el-segmented__item{min-width:0}.el-segmented--large{border-radius:var(--el-border-radius-base);font-size:16px;min-height:40px}.el-segmented--large .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 2px)}.el-segmented--large .el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented--large .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 2px);padding:0 11px}.el-segmented--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:14px;min-height:24px}.el-segmented--small .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 3px)}.el-segmented--small .el-segmented--vertical .el-segmented__item{padding:7px}.el-segmented--small .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 3px);padding:0 7px}.el-mention{position:relative;width:100%}.el-mention__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-mention__popper.el-popper,.el-mention__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-mention__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-mention-dropdown{--el-mention-font-size:var(--el-font-size-base);--el-mention-bg-color:var(--el-bg-color-overlay);--el-mention-shadow:var(--el-box-shadow-light);--el-mention-border:1px solid var(--el-border-color-light);--el-mention-option-color:var(--el-text-color-regular);--el-mention-option-height:34px;--el-mention-option-min-width:100px;--el-mention-option-hover-background:var(--el-fill-color-light);--el-mention-option-selected-color:var(--el-color-primary);--el-mention-option-disabled-color:var(--el-text-color-placeholder);--el-mention-option-loading-color:var(--el-text-color-secondary);--el-mention-option-loading-padding:10px 0;--el-mention-max-height:174px;--el-mention-padding:6px 0;--el-mention-header-padding:10px;--el-mention-footer-padding:10px}.el-mention-dropdown__item{box-sizing:border-box;color:var(--el-mention-option-color);cursor:pointer;font-size:var(--el-mention-font-size);height:var(--el-mention-option-height);line-height:var(--el-mention-option-height);min-width:var(--el-mention-option-min-width);overflow:hidden;padding:0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-mention-dropdown__item.is-hovering{background-color:var(--el-mention-option-hover-background)}.el-mention-dropdown__item.is-selected{color:var(--el-mention-option-selected-color);font-weight:700}.el-mention-dropdown__item.is-disabled{background-color:unset;color:var(--el-mention-option-disabled-color);cursor:not-allowed}.el-mention-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-mention-dropdown__loading{color:var(--el-mention-option-loading-color);font-size:12px;margin:0;min-width:var(--el-mention-option-min-width);padding:10px 0;text-align:center}.el-mention-dropdown__wrap{max-height:var(--el-mention-max-height)}.el-mention-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:var(--el-mention-padding)}.el-mention-dropdown__header{border-bottom:var(--el-mention-border);padding:var(--el-mention-header-padding)}.el-mention-dropdown__footer{border-top:var(--el-mention-border);padding:var(--el-mention-footer-padding)}.el-splitter{display:flex;height:100%;margin:0;padding:0;position:relative;width:100%}.el-splitter__mask{bottom:0;left:0;position:absolute;right:0;top:0;z-index:999}.el-splitter__mask-horizontal{cursor:col-resize}.el-splitter__mask-vertical{cursor:row-resize}.el-splitter__horizontal{flex-direction:row}.el-splitter__vertical{flex-direction:column}.el-splitter-bar{flex:none;position:relative;-webkit-user-select:none;user-select:none}.el-splitter-bar__disable{cursor:auto!important}.el-splitter-bar__disable:before{background-color:var(--el-border-color-light)!important}.el-splitter-bar__dragger{background:transparent;z-index:1}.el-splitter-bar__dragger,.el-splitter-bar__dragger:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:before{background-color:var(--el-border-color-light);content:""}.el-splitter-bar__dragger:hover:before{background-color:var(--el-color-primary-light-5)}.el-splitter-bar__dragger-horizontal:before{height:100%;width:2px}.el-splitter-bar__dragger-vertical:before{height:2px;width:100%}.el-splitter-bar__dragger-active:before{background-color:var(--el-color-primary-light-3)}.el-splitter-bar:hover .el-splitter-bar__collapse-icon{opacity:1}.el-splitter-bar__collapse-icon{align-items:center;background:var(--el-border-color-light);border-radius:2px;cursor:pointer;display:flex;justify-content:center;opacity:0;position:absolute;z-index:9}.el-splitter-bar__collapse-icon:hover{background-color:var(--el-color-primary-light-5);opacity:1}.el-splitter-bar__horizontal-collapse-icon-start{height:24px;left:-12px;top:50%;transform:translate(-50%,-50%);width:16px}.el-splitter-bar__horizontal-collapse-icon-end{height:24px;left:12px;top:50%;transform:translate(-50%,-50%);width:16px}.el-splitter-bar__vertical-collapse-icon-start{height:16px;right:50%;top:-12px;transform:translate(50%,-50%);width:24px}.el-splitter-bar__vertical-collapse-icon-end{height:16px;right:50%;top:12px;transform:translate(50%,-50%);width:24px}.el-splitter-panel{box-sizing:border-box;flex-grow:0;overflow:auto;scrollbar-width:thin}html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222b;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2a1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2a1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.36),0px 8px 20px rgba(0,0,0,.72);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,.72);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,.72),0px 12px 32px #000,0px 8px 16px -8px #000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#e5eaf3;--el-text-color-regular:#cfd3dc;--el-text-color-secondary:#a3a6ad;--el-text-color-placeholder:#8d9095;--el-text-color-disabled:#6c6e72;--el-border-color-darker:#636466;--el-border-color-dark:#58585b;--el-border-color:#4c4d4f;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2b2b2c;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393a;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1d1d1d;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0,0,0,.8);--el-mask-color-extra-light:rgba(0,0,0,.3)}html.dark .el-button{--el-button-disabled-text-color:hsla(0,0%,100%,.5)}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a} \ No newline at end of file diff --git a/dist/static/fonts/fontello.3f1fdcf0.ttf b/dist/static/fonts/fontello.3f1fdcf0.ttf deleted file mode 100644 index fcc3b308..00000000 Binary files a/dist/static/fonts/fontello.3f1fdcf0.ttf and /dev/null differ diff --git a/dist/static/fonts/fontello.6c502925.eot b/dist/static/fonts/fontello.6c502925.eot deleted file mode 100644 index 4f8bd820..00000000 Binary files a/dist/static/fonts/fontello.6c502925.eot and /dev/null differ diff --git a/dist/static/fonts/fontello.6ec73abf.woff b/dist/static/fonts/fontello.6ec73abf.woff deleted file mode 100644 index 98444536..00000000 Binary files a/dist/static/fonts/fontello.6ec73abf.woff and /dev/null differ diff --git a/dist/static/img/btn_trash.ede23957.svg b/dist/static/img/btn_trash.ede23957.svg deleted file mode 100644 index 18d42b26..00000000 --- a/dist/static/img/btn_trash.ede23957.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - btn_trash - Created with Sketch. - - - - - - - - - - - \ No newline at end of file diff --git a/dist/static/img/default_file.ed0769e2.svg b/dist/static/img/default_file.ed0769e2.svg deleted file mode 100644 index 9ee39aa0..00000000 --- a/dist/static/img/default_file.ed0769e2.svg +++ /dev/null @@ -1 +0,0 @@ -default_file \ No newline at end of file diff --git a/dist/static/img/default_folder.6b79b8c8.svg b/dist/static/img/default_folder.6b79b8c8.svg deleted file mode 100644 index c6f9b035..00000000 --- a/dist/static/img/default_folder.6b79b8c8.svg +++ /dev/null @@ -1 +0,0 @@ -default_folder \ No newline at end of file diff --git a/dist/static/img/default_folder_opened.5feffc5a.svg b/dist/static/img/default_folder_opened.5feffc5a.svg deleted file mode 100644 index 8aab2ff5..00000000 --- a/dist/static/img/default_folder_opened.5feffc5a.svg +++ /dev/null @@ -1 +0,0 @@ -default_folder_opened \ No newline at end of file diff --git a/dist/static/img/default_root_folder.f8a91e0b.svg b/dist/static/img/default_root_folder.f8a91e0b.svg deleted file mode 100644 index 0c5b2d53..00000000 --- a/dist/static/img/default_root_folder.f8a91e0b.svg +++ /dev/null @@ -1 +0,0 @@ -default_root_folder \ No newline at end of file diff --git a/dist/static/img/default_root_folder_opened.81974082.svg b/dist/static/img/default_root_folder_opened.81974082.svg deleted file mode 100644 index 72d5ce5e..00000000 --- a/dist/static/img/default_root_folder_opened.81974082.svg +++ /dev/null @@ -1 +0,0 @@ -default_root_folder_opened \ No newline at end of file diff --git a/dist/static/img/file_type_binary.6f6ddddd.svg b/dist/static/img/file_type_binary.6f6ddddd.svg deleted file mode 100644 index 3f43b0b6..00000000 --- a/dist/static/img/file_type_binary.6f6ddddd.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_binary \ No newline at end of file diff --git a/dist/static/img/file_type_config.1859762e.svg b/dist/static/img/file_type_config.1859762e.svg deleted file mode 100644 index 96d30e57..00000000 --- a/dist/static/img/file_type_config.1859762e.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_config \ No newline at end of file diff --git a/dist/static/img/file_type_css.892d68fc.svg b/dist/static/img/file_type_css.892d68fc.svg deleted file mode 100644 index 3d8959a0..00000000 --- a/dist/static/img/file_type_css.892d68fc.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_css \ No newline at end of file diff --git a/dist/static/img/file_type_cython.2e66e530.svg b/dist/static/img/file_type_cython.2e66e530.svg deleted file mode 100644 index 6cc0836c..00000000 --- a/dist/static/img/file_type_cython.2e66e530.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_cython \ No newline at end of file diff --git a/dist/static/img/file_type_db.06cbd4ec.svg b/dist/static/img/file_type_db.06cbd4ec.svg deleted file mode 100644 index e42ec133..00000000 --- a/dist/static/img/file_type_db.06cbd4ec.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_db \ No newline at end of file diff --git a/dist/static/img/file_type_docker.c59f36f5.svg b/dist/static/img/file_type_docker.c59f36f5.svg deleted file mode 100644 index 15fa40d2..00000000 --- a/dist/static/img/file_type_docker.c59f36f5.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_docker \ No newline at end of file diff --git a/dist/static/img/file_type_git.18e73a3f.svg b/dist/static/img/file_type_git.18e73a3f.svg deleted file mode 100644 index c5ea394b..00000000 --- a/dist/static/img/file_type_git.18e73a3f.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_git \ No newline at end of file diff --git a/dist/static/img/file_type_html.1758920c.svg b/dist/static/img/file_type_html.1758920c.svg deleted file mode 100644 index a0152d86..00000000 --- a/dist/static/img/file_type_html.1758920c.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_html \ No newline at end of file diff --git a/dist/static/img/file_type_image.b4409e9a.svg b/dist/static/img/file_type_image.b4409e9a.svg deleted file mode 100644 index df924c0e..00000000 --- a/dist/static/img/file_type_image.b4409e9a.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_image \ No newline at end of file diff --git a/dist/static/img/file_type_ini.9fc10fb1.svg b/dist/static/img/file_type_ini.9fc10fb1.svg deleted file mode 100644 index 741d211e..00000000 --- a/dist/static/img/file_type_ini.9fc10fb1.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_ini \ No newline at end of file diff --git a/dist/static/img/file_type_json.dad766e3.svg b/dist/static/img/file_type_json.dad766e3.svg deleted file mode 100644 index 26c39ba7..00000000 --- a/dist/static/img/file_type_json.dad766e3.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_json \ No newline at end of file diff --git a/dist/static/img/file_type_json2.027aae3c.svg b/dist/static/img/file_type_json2.027aae3c.svg deleted file mode 100644 index 4d4cca30..00000000 --- a/dist/static/img/file_type_json2.027aae3c.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_json2 \ No newline at end of file diff --git a/dist/static/img/file_type_jupyter.4e5ac975.svg b/dist/static/img/file_type_jupyter.4e5ac975.svg deleted file mode 100644 index 974a58a6..00000000 --- a/dist/static/img/file_type_jupyter.4e5ac975.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_jupyter \ No newline at end of file diff --git a/dist/static/img/file_type_license.0dce5267.svg b/dist/static/img/file_type_license.0dce5267.svg deleted file mode 100644 index 6859deae..00000000 --- a/dist/static/img/file_type_license.0dce5267.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_license \ No newline at end of file diff --git a/dist/static/img/file_type_log.3777e6b4.svg b/dist/static/img/file_type_log.3777e6b4.svg deleted file mode 100644 index dc22622f..00000000 --- a/dist/static/img/file_type_log.3777e6b4.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_log \ No newline at end of file diff --git a/dist/static/img/file_type_markdown.71e2f1af.svg b/dist/static/img/file_type_markdown.71e2f1af.svg deleted file mode 100644 index c5b32a6f..00000000 --- a/dist/static/img/file_type_markdown.71e2f1af.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_markdown \ No newline at end of file diff --git a/dist/static/img/file_type_numpy.08037ae3.svg b/dist/static/img/file_type_numpy.08037ae3.svg deleted file mode 100644 index 56a7fa9c..00000000 --- a/dist/static/img/file_type_numpy.08037ae3.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_numpy \ No newline at end of file diff --git a/dist/static/img/file_type_pdf.99061a86.svg b/dist/static/img/file_type_pdf.99061a86.svg deleted file mode 100644 index 79087524..00000000 --- a/dist/static/img/file_type_pdf.99061a86.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_pdf \ No newline at end of file diff --git a/dist/static/img/file_type_pdf2.08cbb53f.svg b/dist/static/img/file_type_pdf2.08cbb53f.svg deleted file mode 100644 index 91cad358..00000000 --- a/dist/static/img/file_type_pdf2.08cbb53f.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_pdf2 \ No newline at end of file diff --git a/dist/static/img/file_type_python.556a0a36.svg b/dist/static/img/file_type_python.556a0a36.svg deleted file mode 100644 index 677f2165..00000000 --- a/dist/static/img/file_type_python.556a0a36.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_python \ No newline at end of file diff --git a/dist/static/img/file_type_pytyped.37cea703.svg b/dist/static/img/file_type_pytyped.37cea703.svg deleted file mode 100644 index ee57c8a3..00000000 --- a/dist/static/img/file_type_pytyped.37cea703.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_pytyped \ No newline at end of file diff --git a/dist/static/img/file_type_pyup.82185bc6.svg b/dist/static/img/file_type_pyup.82185bc6.svg deleted file mode 100644 index 8d805e3a..00000000 --- a/dist/static/img/file_type_pyup.82185bc6.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_pyup \ No newline at end of file diff --git a/dist/static/img/file_type_shell.e62d42c5.svg b/dist/static/img/file_type_shell.e62d42c5.svg deleted file mode 100644 index 17d38213..00000000 --- a/dist/static/img/file_type_shell.e62d42c5.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_shell \ No newline at end of file diff --git a/dist/static/img/file_type_sql.359bd2aa.svg b/dist/static/img/file_type_sql.359bd2aa.svg deleted file mode 100644 index c1ba68bc..00000000 --- a/dist/static/img/file_type_sql.359bd2aa.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_sql \ No newline at end of file diff --git a/dist/static/img/file_type_sqlite.6549c95c.svg b/dist/static/img/file_type_sqlite.6549c95c.svg deleted file mode 100644 index a5b87f96..00000000 --- a/dist/static/img/file_type_sqlite.6549c95c.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_sqlite \ No newline at end of file diff --git a/dist/static/img/file_type_svg.4ec240a2.svg b/dist/static/img/file_type_svg.4ec240a2.svg deleted file mode 100644 index b7a0c02e..00000000 --- a/dist/static/img/file_type_svg.4ec240a2.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_svg \ No newline at end of file diff --git a/dist/static/img/file_type_text.7916b128.svg b/dist/static/img/file_type_text.7916b128.svg deleted file mode 100644 index a5562edd..00000000 --- a/dist/static/img/file_type_text.7916b128.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_text \ No newline at end of file diff --git a/dist/static/img/file_type_toml.ea69a9ec.svg b/dist/static/img/file_type_toml.ea69a9ec.svg deleted file mode 100644 index a0a58907..00000000 --- a/dist/static/img/file_type_toml.ea69a9ec.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_toml \ No newline at end of file diff --git a/dist/static/img/file_type_xml.972323ec.svg b/dist/static/img/file_type_xml.972323ec.svg deleted file mode 100644 index fed3cafc..00000000 --- a/dist/static/img/file_type_xml.972323ec.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_xml \ No newline at end of file diff --git a/dist/static/img/file_type_yaml.20a3c373.svg b/dist/static/img/file_type_yaml.20a3c373.svg deleted file mode 100644 index 601979d5..00000000 --- a/dist/static/img/file_type_yaml.20a3c373.svg +++ /dev/null @@ -1 +0,0 @@ -file_type_yaml \ No newline at end of file diff --git a/dist/static/img/folder_type_config.e08ecc5a.svg b/dist/static/img/folder_type_config.e08ecc5a.svg deleted file mode 100644 index de35ad4f..00000000 --- a/dist/static/img/folder_type_config.e08ecc5a.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_config \ No newline at end of file diff --git a/dist/static/img/folder_type_config_opened.8c19dee7.svg b/dist/static/img/folder_type_config_opened.8c19dee7.svg deleted file mode 100644 index 9c3b1dc9..00000000 --- a/dist/static/img/folder_type_config_opened.8c19dee7.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_config_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_dist.03e5250b.svg b/dist/static/img/folder_type_dist.03e5250b.svg deleted file mode 100644 index f5528076..00000000 --- a/dist/static/img/folder_type_dist.03e5250b.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_dist \ No newline at end of file diff --git a/dist/static/img/folder_type_dist_opened.7806bc53.svg b/dist/static/img/folder_type_dist_opened.7806bc53.svg deleted file mode 100644 index a5b7ced4..00000000 --- a/dist/static/img/folder_type_dist_opened.7806bc53.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_dist_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_docs.b8d52ee1.svg b/dist/static/img/folder_type_docs.b8d52ee1.svg deleted file mode 100644 index 81874120..00000000 --- a/dist/static/img/folder_type_docs.b8d52ee1.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_docs \ No newline at end of file diff --git a/dist/static/img/folder_type_docs_opened.e2db4fc1.svg b/dist/static/img/folder_type_docs_opened.e2db4fc1.svg deleted file mode 100644 index 4940d022..00000000 --- a/dist/static/img/folder_type_docs_opened.e2db4fc1.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_docs_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_git.c8cbf40b.svg b/dist/static/img/folder_type_git.c8cbf40b.svg deleted file mode 100644 index 5c149bca..00000000 --- a/dist/static/img/folder_type_git.c8cbf40b.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_git \ No newline at end of file diff --git a/dist/static/img/folder_type_git_opened.1c8a671b.svg b/dist/static/img/folder_type_git_opened.1c8a671b.svg deleted file mode 100644 index 1ef445f5..00000000 --- a/dist/static/img/folder_type_git_opened.1c8a671b.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_git_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_images.20cb17f3.svg b/dist/static/img/folder_type_images.20cb17f3.svg deleted file mode 100644 index 6f974eef..00000000 --- a/dist/static/img/folder_type_images.20cb17f3.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_images \ No newline at end of file diff --git a/dist/static/img/folder_type_images_opened.41cd121d.svg b/dist/static/img/folder_type_images_opened.41cd121d.svg deleted file mode 100644 index d85ca532..00000000 --- a/dist/static/img/folder_type_images_opened.41cd121d.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_images_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_library.98982e52.svg b/dist/static/img/folder_type_library.98982e52.svg deleted file mode 100644 index 6bd6722f..00000000 --- a/dist/static/img/folder_type_library.98982e52.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_library \ No newline at end of file diff --git a/dist/static/img/folder_type_library_opened.5877bebc.svg b/dist/static/img/folder_type_library_opened.5877bebc.svg deleted file mode 100644 index 48df2a99..00000000 --- a/dist/static/img/folder_type_library_opened.5877bebc.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_library_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_private.2bfe09e7.svg b/dist/static/img/folder_type_private.2bfe09e7.svg deleted file mode 100644 index d7f84a9f..00000000 --- a/dist/static/img/folder_type_private.2bfe09e7.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_private \ No newline at end of file diff --git a/dist/static/img/folder_type_private_opened.721abd95.svg b/dist/static/img/folder_type_private_opened.721abd95.svg deleted file mode 100644 index 26b4c3ce..00000000 --- a/dist/static/img/folder_type_private_opened.721abd95.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_private_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_public.ef3f9250.svg b/dist/static/img/folder_type_public.ef3f9250.svg deleted file mode 100644 index edced71a..00000000 --- a/dist/static/img/folder_type_public.ef3f9250.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_public \ No newline at end of file diff --git a/dist/static/img/folder_type_public_opened.bc4babc3.svg b/dist/static/img/folder_type_public_opened.bc4babc3.svg deleted file mode 100644 index 668d69bf..00000000 --- a/dist/static/img/folder_type_public_opened.bc4babc3.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_public_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_python.152fce8e.svg b/dist/static/img/folder_type_python.152fce8e.svg deleted file mode 100644 index ae4dfc22..00000000 --- a/dist/static/img/folder_type_python.152fce8e.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_python \ No newline at end of file diff --git a/dist/static/img/folder_type_python_opened.aa68a96e.svg b/dist/static/img/folder_type_python_opened.aa68a96e.svg deleted file mode 100644 index 8246504f..00000000 --- a/dist/static/img/folder_type_python_opened.aa68a96e.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_python_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_src.0b2a2f4d.svg b/dist/static/img/folder_type_src.0b2a2f4d.svg deleted file mode 100644 index ff56a086..00000000 --- a/dist/static/img/folder_type_src.0b2a2f4d.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_src \ No newline at end of file diff --git a/dist/static/img/folder_type_src_opened.581b11ad.svg b/dist/static/img/folder_type_src_opened.581b11ad.svg deleted file mode 100644 index ddf7e62b..00000000 --- a/dist/static/img/folder_type_src_opened.581b11ad.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_src_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_template.6417600b.svg b/dist/static/img/folder_type_template.6417600b.svg deleted file mode 100644 index 1c7bc307..00000000 --- a/dist/static/img/folder_type_template.6417600b.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_template \ No newline at end of file diff --git a/dist/static/img/folder_type_template_opened.223ca529.svg b/dist/static/img/folder_type_template_opened.223ca529.svg deleted file mode 100644 index f43a8c9d..00000000 --- a/dist/static/img/folder_type_template_opened.223ca529.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_template_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_test.bee5252d.svg b/dist/static/img/folder_type_test.bee5252d.svg deleted file mode 100644 index a312a141..00000000 --- a/dist/static/img/folder_type_test.bee5252d.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_test \ No newline at end of file diff --git a/dist/static/img/folder_type_test_opened.2f5e01cd.svg b/dist/static/img/folder_type_test_opened.2f5e01cd.svg deleted file mode 100644 index f595147b..00000000 --- a/dist/static/img/folder_type_test_opened.2f5e01cd.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_test_opened \ No newline at end of file diff --git a/dist/static/img/folder_type_vscode.4b61ca6c.svg b/dist/static/img/folder_type_vscode.4b61ca6c.svg deleted file mode 100644 index 550ebee7..00000000 --- a/dist/static/img/folder_type_vscode.4b61ca6c.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_vscode \ No newline at end of file diff --git a/dist/static/img/folder_type_vscode_opened.495c5b54.svg b/dist/static/img/folder_type_vscode_opened.495c5b54.svg deleted file mode 100644 index 6ecfbce8..00000000 --- a/dist/static/img/folder_type_vscode_opened.495c5b54.svg +++ /dev/null @@ -1 +0,0 @@ -folder_type_vscode_opened \ No newline at end of file diff --git a/dist/static/img/fontello.a51e6f27.svg b/dist/static/img/fontello.a51e6f27.svg deleted file mode 100644 index c9ed7204..00000000 --- a/dist/static/img/fontello.a51e6f27.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - -Copyright (C) 2017 by original authors @ fontello.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/static/img/frame01.728c7f05.svg b/dist/static/img/frame01.728c7f05.svg deleted file mode 100644 index d033b797..00000000 --- a/dist/static/img/frame01.728c7f05.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - frame01 - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/static/img/frame02.9f2fedc1.svg b/dist/static/img/frame02.9f2fedc1.svg deleted file mode 100644 index fb7edd94..00000000 --- a/dist/static/img/frame02.9f2fedc1.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - frame02 - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/static/img/frame03_fileselection.9819a582.svg b/dist/static/img/frame03_fileselection.9819a582.svg deleted file mode 100644 index 829b436d..00000000 --- a/dist/static/img/frame03_fileselection.9819a582.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - frame03_fileselection - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/static/img/icon_close.35f3407f.svg b/dist/static/img/icon_close.35f3407f.svg deleted file mode 100644 index e02c572f..00000000 --- a/dist/static/img/icon_close.35f3407f.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - icon_close - Created with Sketch. - - - - - - - \ No newline at end of file diff --git a/dist/static/img/icon_running.8062bc3f.svg b/dist/static/img/icon_running.8062bc3f.svg deleted file mode 100644 index b559e0af..00000000 --- a/dist/static/img/icon_running.8062bc3f.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - icon_running - Created with Sketch. - - - - - - - \ No newline at end of file diff --git a/dist/static/img/icon_select.c04db1ae.svg b/dist/static/img/icon_select.c04db1ae.svg deleted file mode 100644 index ed22afe4..00000000 --- a/dist/static/img/icon_select.c04db1ae.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - icon_select - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dist/static/img/icon_stop.28e08eac.svg b/dist/static/img/icon_stop.28e08eac.svg deleted file mode 100644 index 07040abc..00000000 --- a/dist/static/img/icon_stop.28e08eac.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - icon_stop - Created with Sketch. - - - - - - - diff --git a/dist/static/js/104.b9a5773d.js b/dist/static/js/104.b9a5773d.js deleted file mode 100644 index 721eeac9..00000000 --- a/dist/static/js/104.b9a5773d.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[104],{43104:function(e,t,o){o.r(t),o.d(t,{default:function(){return Fe}});var i=o(5012),n=o(22542),l=o(7093),s=o(22164),a=o(94411),d=o(32104),r=o(37093),c=o(98095),p=o(703),h=o(3549),u=o(20641),m=o(53751);const g={class:"top-menu-container"},S={class:"nav-menu"},v={class:"nav__items-left"},f={class:"nav__item"},k=["aria-expanded"],w={class:"nav__dropdown-item"},b={class:"nav__dropdown-item"},P={class:"nav__dropdown-item"},I=["disabled"],C={class:"nav__dropdown-item"},z={class:"nav__dropdown-item"},L={class:"nav__dropdown-item"},F=["disabled"],D={class:"nav__dropdown-item"},y={class:"nav__dropdown-item"},_=["disabled"],R={class:"header-center-absolute"},x={class:"header-right"};function E(e,t,o,i,n,l){const s=(0,u.g2)("Play"),a=(0,u.g2)("Square"),d=(0,u.g2)("Upload"),r=(0,u.g2)("Settings");return(0,u.uX)(),(0,u.CE)("div",g,[(0,u.Lk)("nav",S,[(0,u.Lk)("ul",v,[(0,u.Lk)("li",f,[(0,u.Lk)("button",{class:"nav__item-button",onClick:t[0]||(t[0]=(0,m.D$)(e=>l.toggleDropdown("file"),["stop"])),"aria-haspopup":"menu","aria-expanded":"file"===n.activeDropdown},t[14]||(t[14]=[(0,u.Lk)("span",{class:"nav__item-header"},"File",-1),(0,u.Lk)("svg",{class:"nav__item-triangle",width:"9",height:"6",viewBox:"0 0 9 6",xmlns:"http://www.w3.org/2000/svg"},[(0,u.Lk)("polygon",{points:"4.5 6 9 0 0 0",fill:"currentColor"})],-1)]),8,k),(0,u.bo)((0,u.Lk)("ul",{class:"nav__dropdown",onClick:t[9]||(t[9]=(0,m.D$)(()=>{},["stop"]))},[(0,u.Lk)("li",w,[(0,u.Lk)("button",{onClick:t[1]||(t[1]=e=>l.newFile())}," New File ")]),(0,u.Lk)("li",b,[(0,u.Lk)("button",{onClick:t[2]||(t[2]=e=>l.openFile())}," Open File ")]),(0,u.Lk)("li",P,[(0,u.Lk)("button",{onClick:t[3]||(t[3]=e=>l.duplicateFile()),disabled:!l.hasSelectedFile}," Duplicate ",8,I)]),(0,u.Lk)("li",C,[(0,u.Lk)("button",{onClick:t[4]||(t[4]=e=>l.saveFile())}," Save ")]),(0,u.Lk)("li",z,[(0,u.Lk)("button",{onClick:t[5]||(t[5]=e=>l.saveAsFile())}," Save As ")]),(0,u.Lk)("li",L,[(0,u.Lk)("button",{onClick:t[6]||(t[6]=e=>l.moveFile()),disabled:!l.hasSelectedFile}," Move ",8,F)]),(0,u.Lk)("li",D,[(0,u.Lk)("button",{onClick:t[7]||(t[7]=e=>l.downloadFile())},"Download")]),(0,u.Lk)("li",y,[(0,u.Lk)("button",{onClick:t[8]||(t[8]=e=>l.deleteFile()),disabled:!l.hasSelectedFile,class:"delete-option"}," Delete File ",8,_)])],512),[[m.aG,"file"===n.activeDropdown]])])])]),(0,u.Lk)("div",R,[o.hasRunProgram?(0,u.Q3)("",!0):((0,u.uX)(),(0,u.CE)("div",{key:0,class:"icon-btn run-btn",onClick:t[10]||(t[10]=e=>l.runScript()),title:"Run (F5)"},[(0,u.bF)(s,{size:20})])),o.hasRunProgram?((0,u.uX)(),(0,u.CE)("div",{key:1,class:"icon-btn stop-btn",onClick:t[11]||(t[11]=e=>l.stopScript()),title:"Stop (Shift+F5)"},[(0,u.bF)(a,{size:20})])):(0,u.Q3)("",!0)]),(0,u.Lk)("div",x,[(0,u.Lk)("div",{class:"icon-btn",onClick:t[12]||(t[12]=e=>l.openUploadDialog()),title:"Import File"},[(0,u.bF)(d,{size:20})]),(0,u.Lk)("div",{class:"icon-btn settings-btn",onClick:t[13]||(t[13]=e=>l.openSettings()),title:"Settings"},[(0,u.bF)(r,{size:20})])])])}var T=o(75365),$=o(47478),A=o(58263),M=o(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const W=(0,M.A)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var U=o(39037),X=o(96763),j={props:{consoleLimit:Boolean,hasRunProgram:Boolean},data(){return{isRun:!0,activeDropdown:null}},computed:{ideInfo(){return this.$store?.state?.ide?.ideInfo||{}},isPythonFile(){return this.ideInfo.currProj&&this.ideInfo.currProj.pathSelected&&this.ideInfo.codeItems&&this.ideInfo.codeItems.length>0&&this.ideInfo.currProj.pathSelected.endsWith(".py")},hasSelectedFile(){return this.ideInfo.nodeSelected&&"file"===this.ideInfo.nodeSelected.type}},components:{Upload:T.A,Play:$.A,Square:A.A,Terminal:W,Settings:U.A},mounted(){const e=localStorage.getItem("theme")||"dark";document.documentElement.setAttribute("data-theme",e),document.addEventListener("click",this.closeDropdowns),document.addEventListener("keydown",this.handleKeyboardShortcuts)},beforeUnmount(){document.removeEventListener("click",this.closeDropdowns),document.removeEventListener("keydown",this.handleKeyboardShortcuts)},methods:{toggleDropdown(e){this.activeDropdown=this.activeDropdown===e?null:e},closeDropdowns(){this.activeDropdown=null},handleKeyboardShortcuts(e){e.ctrlKey&&"s"===e.key&&(e.preventDefault(),this.saveFile()),e.ctrlKey&&"n"===e.key&&(e.preventDefault(),this.newFile()),"F5"!==e.key||e.shiftKey||!this.isPythonFile||this.consoleLimit||(e.preventDefault(),this.runScript()),e.shiftKey&&"F5"===e.key&&this.hasRunProgram&&(e.preventDefault(),this.stopScript())},newFile(){if(this.closeDropdowns(),!this.ideInfo.nodeSelected||"dir"!==this.ideInfo.nodeSelected.type&&"folder"!==this.ideInfo.nodeSelected.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.$emit("set-text-dialog",{type:"create-file",title:"New File",tips:"Enter file name:",text:"untitled.py"})},addFile(){this.newFile()},addFolder(){if(this.closeDropdowns(),!this.ideInfo.nodeSelected||"dir"!==this.ideInfo.nodeSelected.type&&"folder"!==this.ideInfo.nodeSelected.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.$emit("set-text-dialog",{type:"create-folder",title:"New Folder",tips:"Enter folder name:",text:"new_folder"})},saveFile(){this.closeDropdowns(),this.ideInfo.codeSelected&&this.$store.dispatch("ide/saveFile",{codeItem:this.ideInfo.codeSelected,isAutoSave:!1}).then(()=>{this.$message.success("File saved")}).catch(e=>{const t=e.message||"Failed to save file";this.$message.error(t),X.error("[SAVE-ERROR]",e)})},downloadFile(){this.closeDropdowns(),this.ideInfo.nodeSelected&&"file"===this.ideInfo.nodeSelected.type?this.$emit("download-file"):this.ideInfo.codeSelected?this.$emit("download-file",this.ideInfo.codeSelected):this.$message.warning("Please select a file to download")},openUploadDialog(){this.closeDropdowns(),this.$emit("open-upload-dialog")},runScript(){this.closeDropdowns(),this.$emit("run-item")},stopScript(){this.closeDropdowns();for(let e=0;e{this.$emit("delete-file",{path:e.path,type:e.type,projectName:e.projectName||this.ideInfo.currProj?.data?.name})}).catch(()=>{})}}},O=o(66262);const N=(0,O.A)(j,[["render",E],["__scopeId","data-v-65b193b3"]]);var V=N,Q=o(90033);const K={class:"main-wrapper ide-wrapper ide-container"},B={id:"total-frame",class:"total-frame"},G={class:"left-sidebar"},q={class:"editor-section"},Z={class:"editor-tab-bar"},H={class:"editor-content"},J={class:"console-section"},Y={class:"console-header"},ee={class:"console-header-left"},te={class:"console-title"},oe={class:"console-header-center"},ie={class:"console-header-right"},ne={class:"console-content"},le={class:"right-sidebar"},se={class:"preview-tabs"},ae={class:"preview-tabs-header"},de={class:"preview-tabs-list"},re=["onClick"],ce=["onClick"],pe={key:0,class:"html-preview-panel"},he=["src"],ue={key:1,class:"image-preview-panel"},me=["src","alt"],ge={key:2,class:"pdf-preview-panel"},Se=["src"],ve={key:3,class:"data-preview-panel"},fe={key:4,class:"repl-modal"},ke={class:"repl-modal-content"},we={class:"repl-modal-header"},be={class:"repl-modal-body"};function Pe(e,t,o,g,S,v){const f=V,k=h.A,w=p.A,b=(0,u.g2)("pane"),P=c.A,I=r.A,C=(0,u.g2)("ChevronUp"),z=(0,u.g2)("Minimize2"),L=(0,u.g2)("ChevronDown"),F=(0,u.g2)("splitpanes"),D=d.A,y=a.A,_=s.A,R=l.A,x=n.A,E=i.A;return(0,u.uX)(),(0,u.CE)("div",K,[(0,u.bF)(f,{class:"top-menu",consoleLimit:e.consoleLimit,hasRunProgram:e.hasRunProgram,wordWrap:e.wordWrap,onSetTextDialog:e.setTextDialog,onSetDelDialog:e.setDelDialog,onSetProjsDialog:e.setProjsDialog,onRunItem:e.runPathSelected,onStopItem:e.stop,onThemeChanged:e.handleThemeChange,onToggleWordWrap:e.toggleWordWrap,onOpenUploadDialog:t[0]||(t[0]=t=>e.showUploadDialog=!0),onDownloadFile:e.downloadFile,onOpenRepl:e.openREPL,onOpenSettings:t[1]||(t[1]=t=>e.showSettingsModal=!0)},null,8,["consoleLimit","hasRunProgram","wordWrap","onSetTextDialog","onSetDelDialog","onSetProjsDialog","onRunItem","onStopItem","onThemeChanged","onToggleWordWrap","onDownloadFile","onOpenRepl"]),(0,u.bF)(k,{modelValue:e.showSettingsModal,"onUpdate:modelValue":t[2]||(t[2]=t=>e.showSettingsModal=t),onUpdateLineNumbers:e.updateLineNumbers,onUpdateWordWrap:e.updateWordWrap,onUpdateAutoSave:e.updateAutoSave,onUpdateAutoSaveInterval:e.updateAutoSaveInterval},null,8,["modelValue","onUpdateLineNumbers","onUpdateWordWrap","onUpdateAutoSave","onUpdateAutoSaveInterval"]),(0,u.Lk)("div",B,[(0,u.bF)(F,{class:"default-theme",onResized:v.onMainPaneResized},{default:(0,u.k6)(()=>[S.leftSidebarVisible?((0,u.uX)(),(0,u.Wv)(b,{key:0,size:S.leftPaneSize,"min-size":10,"max-size":40},{default:(0,u.k6)(()=>[(0,u.Lk)("div",G,[(0,u.bF)(w,{onGetItem:e.getFile,onContextMenu:e.showContextMenu},null,8,["onGetItem","onContextMenu"])])]),_:1},8,["size"])):(0,u.Q3)("",!0),(0,u.bF)(b,{size:v.centerPaneSize},{default:(0,u.k6)(()=>[(0,u.bF)(F,{horizontal:"",class:"editor-console-split",onResized:v.onEditorConsoleResized},{default:(0,u.k6)(()=>[(0,u.bF)(b,{size:S.editorPaneSize,"min-size":30},{default:(0,u.k6)(()=>[(0,u.Lk)("div",q,[(0,u.Lk)("div",Z,[e.ideInfo.codeItems.length>0?((0,u.uX)(),(0,u.Wv)(P,{key:0,onSelectItem:e.selectFile,onCloseItem:e.closeFile,onToggleSidebar:v.toggleLeftSidebar},null,8,["onSelectItem","onCloseItem","onToggleSidebar"])):(0,u.Q3)("",!0)]),(0,u.Lk)("div",H,[((0,u.uX)(!0),(0,u.CE)(u.FK,null,(0,u.pI)(e.ideInfo.codeItems,(t,o)=>((0,u.uX)(),(0,u.CE)(u.FK,{key:t.path+o},[e.ideInfo.codeSelected.path===t.path?((0,u.uX)(),(0,u.Wv)(I,{key:0,codeItem:t,codeItemIndex:o,consoleLimit:e.consoleLimit,wordWrap:e.wordWrap,onRunItem:e.runPathSelected,onUpdateItem:e.updateItem},null,8,["codeItem","codeItemIndex","consoleLimit","wordWrap","onRunItem","onUpdateItem"])):(0,u.Q3)("",!0)],64))),128))])])]),_:1},8,["size"]),(0,u.bF)(b,{size:S.consolePaneSize,"min-size":5,"max-size":70},{default:(0,u.k6)(()=>[(0,u.Lk)("div",J,[(0,u.Lk)("div",Y,[(0,u.Lk)("div",ee,[(0,u.Lk)("span",te,(0,Q.v_)(S.isReplMode?"Python REPL":"Console"),1)]),(0,u.Lk)("div",oe,[S.consoleMaximized?(0,u.Q3)("",!0):((0,u.uX)(),(0,u.CE)("button",{key:0,class:"console-expand-arrow",onClick:t[3]||(t[3]=(...e)=>v.expandConsole&&v.expandConsole(...e)),title:"Maximize console"},[(0,u.bF)(C,{size:16})])),S.consoleMaximized?((0,u.uX)(),(0,u.CE)("button",{key:1,class:"console-expand-arrow",onClick:t[4]||(t[4]=(...e)=>v.restoreConsole&&v.restoreConsole(...e)),title:"Restore console"},[(0,u.bF)(z,{size:16})])):(0,u.Q3)("",!0)]),(0,u.Lk)("div",ie,[(0,u.Lk)("button",{class:(0,Q.C4)(["console-toggle-btn",{active:S.isReplMode}]),onClick:t[5]||(t[5]=(...e)=>v.toggleReplMode&&v.toggleReplMode(...e))},(0,Q.v_)(S.isReplMode?"Console":"REPL"),3),(0,u.Lk)("button",{class:"console-collapse-btn",onClick:t[6]||(t[6]=(...e)=>v.toggleConsole&&v.toggleConsole(...e))},[(0,u.bF)(L,{size:16})])])]),(0,u.Lk)("div",ne,[e.wsInfo&&e.wsInfo.connected?((0,u.uX)(),(0,u.Wv)((0,u.$y)(v.currentConsoleComponent),{key:0,"is-repl-mode":S.isReplMode,"repl-session-id":S.replSessionId,onSessionStarted:e.handleReplSessionStarted,onSessionEnded:e.handleReplSessionEnded},null,40,["is-repl-mode","repl-session-id","onSessionStarted","onSessionEnded"])):(0,u.Q3)("",!0)])])]),_:1},8,["size"])]),_:1},8,["onResized"])]),_:1},8,["size"]),S.rightSidebarVisible&&S.previewTabs.length>0?((0,u.uX)(),(0,u.Wv)(b,{key:1,size:S.rightPaneSize,"min-size":15,"max-size":40},{default:(0,u.k6)(()=>[(0,u.Lk)("div",le,[(0,u.Lk)("div",se,[(0,u.Lk)("div",ae,[t[11]||(t[11]=(0,u.Lk)("span",null,"Preview",-1)),(0,u.Lk)("button",{onClick:t[7]||(t[7]=(...t)=>e.closeAllPreviews&&e.closeAllPreviews(...t)),class:"close-all-btn"},"✕")]),(0,u.Lk)("div",de,[((0,u.uX)(!0),(0,u.CE)(u.FK,null,(0,u.pI)(S.previewTabs,(t,o)=>((0,u.uX)(),(0,u.CE)("div",{key:o,class:(0,Q.C4)(["preview-tab",{active:S.selectedPreviewTab===o}]),onClick:t=>e.selectPreviewTab(o)},[(0,u.Lk)("span",null,(0,Q.v_)(t.title),1),(0,u.Lk)("button",{onClick:(0,m.D$)(t=>e.closePreviewTab(o),["stop"]),class:"tab-close"},"✕",8,ce)],10,re))),128))])]),((0,u.uX)(!0),(0,u.CE)(u.FK,null,(0,u.pI)(S.previewTabs,(e,t)=>(0,u.bo)(((0,u.uX)(),(0,u.CE)("div",{key:t,class:"preview-content"},["html"===e.type?((0,u.uX)(),(0,u.CE)("div",pe,[(0,u.Lk)("iframe",{src:e.content,frameborder:"0"},null,8,he)])):"image"===e.type?((0,u.uX)(),(0,u.CE)("div",ue,[(0,u.Lk)("img",{src:e.content,alt:e.title},null,8,me)])):"pdf"===e.type?((0,u.uX)(),(0,u.CE)("div",ge,[(0,u.Lk)("iframe",{src:e.content,frameborder:"0"},null,8,Se)])):"data"===e.type?((0,u.uX)(),(0,u.CE)("div",ve,[(0,u.bF)(D,{content:e.content},null,8,["content"])])):(0,u.Q3)("",!0)],512)),[[m.aG,S.selectedPreviewTab===t]])),128))])]),_:1},8,["size"])):(0,u.Q3)("",!0)]),_:1},8,["onResized"])]),e.showProjsDialog?((0,u.uX)(),(0,u.Wv)(y,{key:0,onOnCancel:e.onCloseProjsDialog,onOnSelect:e.onSelectProj,onOnDelete:e.onDeleteProj,onSetTextDialog:e.setTextDialog},null,8,["onOnCancel","onOnSelect","onOnDelete","onSetTextDialog"])):(0,u.Q3)("",!0),e.showFileDialog?((0,u.uX)(),(0,u.Wv)(_,{key:1,title:e.dialogTitle,text:e.dialogText,tips:e.dialogTips,onCheckInput:e.inputIsLegal,onOnCancel:e.onCloseTextDialog,onOnCreate:e.onCreate},null,8,["title","text","tips","onCheckInput","onOnCancel","onOnCreate"])):(0,u.Q3)("",!0),e.showDeleteDialog?((0,u.uX)(),(0,u.Wv)(R,{key:2,title:e.dialogTitle,onOnCancel:e.onCancelDelete,onOnDelete:e.onDelete},null,8,["title","onOnCancel","onOnDelete"])):(0,u.Q3)("",!0),e.showUploadDialog?((0,u.uX)(),(0,u.Wv)(x,{key:3,modelValue:e.showUploadDialog,"onUpdate:modelValue":t[8]||(t[8]=t=>e.showUploadDialog=t),onRefreshTree:e.refreshProjectTree,onClose:t[9]||(t[9]=t=>e.showUploadDialog=!1)},null,8,["modelValue","onRefreshTree"])):(0,u.Q3)("",!0),e.showREPL?((0,u.uX)(),(0,u.CE)("div",fe,[(0,u.Lk)("div",ke,[(0,u.Lk)("div",we,[t[12]||(t[12]=(0,u.Lk)("h3",null,"Python REPL (Interactive Console)",-1)),(0,u.Lk)("button",{onClick:t[10]||(t[10]=(...t)=>e.closeREPL&&e.closeREPL(...t)),class:"repl-close-btn"},"✕")]),(0,u.Lk)("div",be,[(0,u.bF)(E)])])])):(0,u.Q3)("",!0)])}var Ie=o(99415),Ce=o(96763),ze={name:"VmIdeWithSplitpanes",components:{Splitpanes:Ie.S,Pane:Ie.Z},data(){return{leftPaneSize:20,centerPaneSize:60,rightPaneSize:20,editorPaneSize:70,consolePaneSize:30,leftSidebarVisible:!0,rightSidebarVisible:!1,consoleMaximized:!1,isReplMode:!1,replSessionId:null,previewTabs:[],selectedPreviewTab:0}},computed:{currentConsoleComponent(){return"UnifiedConsole"},centerPaneSize(){return this.rightSidebarVisible&&this.previewTabs.length>0?100-this.leftPaneSize-this.rightPaneSize:100-this.leftPaneSize}},mounted(){try{const e=localStorage.getItem("ide_leftPaneSize"),t=localStorage.getItem("ide_rightPaneSize"),o=localStorage.getItem("ide_editorPaneSize"),i=localStorage.getItem("ide_consolePaneSize");if(e){const t=parseFloat(e);t>=10&&t<=40&&(this.leftPaneSize=t)}if(t){const e=parseFloat(t);e>=15&&e<=40&&(this.rightPaneSize=e)}if(o){const e=parseFloat(o);e>=30&&e<=95&&(this.editorPaneSize=e)}if(i){const e=parseFloat(i);e>=5&&e<=70&&(this.consolePaneSize=e)}}catch(e){Ce.warn("Failed to load saved pane sizes from localStorage:",e)}},methods:{toggleConsole(){this.consolePaneSize>10?this.consolePaneSize=5:this.consolePaneSize=30},expandConsole(){this.consoleMaximized=!0,this.consolePaneSize=70},restoreConsole(){this.consoleMaximized=!1,this.consolePaneSize=30},toggleLeftSidebar(e){this.leftSidebarVisible=e},toggleReplMode(){this.isReplMode=!this.isReplMode},onMainPaneResized(e){if(e&&e.length>=2){this.leftSidebarVisible&&(this.leftPaneSize=e[0].size),this.rightSidebarVisible&&e.length>=3&&(this.rightPaneSize=e[2].size);try{localStorage.setItem("ide_leftPaneSize",this.leftPaneSize.toString()),this.rightSidebarVisible&&localStorage.setItem("ide_rightPaneSize",this.rightPaneSize.toString())}catch(t){Ce.warn("Failed to save pane sizes to localStorage:",t)}}},onEditorConsoleResized(e){if(e&&e.length>=2){this.editorPaneSize=e[0].size,this.consolePaneSize=e[1].size,this.consoleMaximized=this.consolePaneSize>=65;try{localStorage.setItem("ide_editorPaneSize",this.editorPaneSize.toString()),localStorage.setItem("ide_consolePaneSize",this.consolePaneSize.toString())}catch(t){Ce.warn("Failed to save editor/console sizes to localStorage:",t)}}}}};const Le=(0,O.A)(ze,[["render",Pe],["__scopeId","data-v-7a42f12e"]]);var Fe=Le}}]); \ No newline at end of file diff --git a/dist/static/js/155.ce662bb5.js b/dist/static/js/155.ce662bb5.js deleted file mode 100644 index 7f469e37..00000000 --- a/dist/static/js/155.ce662bb5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[155],{1801:function(e,t,o){var n=o(90565);function r(e,t){var o=t?(0,n.A)(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}t.A=r},15647:function(e,t,o){var n=o(40367),r=(0,n.A)(Object.getPrototypeOf,Object);t.A=r},18598:function(e,t,o){o.d(t,{A:function(){return i}});var n=o(23149),r=Object.create,a=function(){function e(){}return function(t){if(!(0,n.A)(t))return{};if(r)return r(t);e.prototype=t;var o=new e;return e.prototype=void 0,o}}(),l=a,s=o(15647),c=o(97271);function u(e){return"function"!=typeof e.constructor||(0,c.A)(e)?{}:l((0,s.A)(e))}var i=u},22031:function(e,t,o){var n=o(52851),r=o(52528);function a(e,t,o,a){var l=!o;o||(o={});var s=-1,c=t.length;while(++s!0};var A=o(78396),g=o(36940),R=o(50180);const j=(...e)=>t=>{e.forEach(e=>{(0,l.Tn)(e)?e(t):e.value=t})};var C=o(87404);const m=(0,n.pM)({name:"ElDialogContent"}),h=(0,n.pM)({...m,props:b,emits:y,setup(e,{expose:t}){const o=e,{t:a}=(0,C.Ym)(),{Close:s}=p.H2,{dialogRef:c,headerRef:u,bodyId:d,ns:v,style:b}=(0,n.WQ)(f),{focusTrapRef:y}=(0,n.WQ)(g.r3),A=(0,n.EW)(()=>[v.b(),v.is("fullscreen",o.fullscreen),v.is("draggable",o.draggable),v.is("align-center",o.alignCenter),{[v.m("center")]:o.center}]),m=j(y,c),h=(0,n.EW)(()=>o.draggable),w=(0,n.EW)(()=>o.overflow),{resetPosition:k,updatePosition:B}=(0,R.P)(c,u,h,w);return t({resetPosition:k,updatePosition:B}),(e,t)=>((0,n.uX)(),(0,n.CE)("div",{ref:(0,r.R1)(m),class:(0,l.C4)((0,r.R1)(A)),style:(0,l.Tr)((0,r.R1)(b)),tabindex:"-1"},[(0,n.Lk)("header",{ref_key:"headerRef",ref:u,class:(0,l.C4)([(0,r.R1)(v).e("header"),e.headerClass,{"show-close":e.showClose}])},[(0,n.RG)(e.$slots,"header",{},()=>[(0,n.Lk)("span",{role:"heading","aria-level":e.ariaLevel,class:(0,l.C4)((0,r.R1)(v).e("title"))},(0,l.v_)(e.title),11,["aria-level"])]),e.showClose?((0,n.uX)(),(0,n.CE)("button",{key:0,"aria-label":(0,r.R1)(a)("el.dialog.close"),class:(0,l.C4)((0,r.R1)(v).e("headerbtn")),type:"button",onClick:t=>e.$emit("close")},[(0,n.bF)((0,r.R1)(i.tk),{class:(0,l.C4)((0,r.R1)(v).e("close"))},{default:(0,n.k6)(()=>[((0,n.uX)(),(0,n.Wv)((0,n.$y)(e.closeIcon||(0,r.R1)(s))))]),_:1},8,["class"])],10,["aria-label","onClick"])):(0,n.Q3)("v-if",!0)],2),(0,n.Lk)("div",{id:(0,r.R1)(d),class:(0,l.C4)([(0,r.R1)(v).e("body"),e.bodyClass])},[(0,n.RG)(e.$slots,"default")],10,["id"]),e.$slots.footer?((0,n.uX)(),(0,n.CE)("footer",{key:0,class:(0,l.C4)([(0,r.R1)(v).e("footer"),e.footerClass])},[(0,n.RG)(e.$slots,"footer")],2)):(0,n.Q3)("v-if",!0)],6))}});var w=(0,A.A)(h,[["__file","dialog-content.vue"]]),k=o(52388),B=o(31069),O=o(2154);const S=(0,v.b_)({...b,appendToBody:Boolean,appendTo:{type:k.k.to.type,default:"body"},beforeClose:{type:(0,v.jq)(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalPenetrable:Boolean,openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:"2"},transition:{type:(0,v.jq)([String,Object]),default:d}}),x={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[B.l4]:e=>(0,O.Lm)(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0};var E=o(52307),F=o(16908),I=o(14656),_=o(77010),$=o(22974),L=o(65980),M=o(76031);const P=(e,t)=>{var o;const a=(0,n.nI)(),s=a.emit,{nextZIndex:c}=(0,I.YK)();let u="";const i=(0,_.Bi)(),f=(0,_.Bi)(),v=(0,r.KR)(!1),p=(0,r.KR)(!1),b=(0,r.KR)(!1),y=(0,r.KR)(null!=(o=e.zIndex)?o:c());let A,g;const R=(0,$.H3)("namespace",L.Lt),j=(0,n.EW)(()=>{const t={},o=`--${R.value}-dialog`;return e.fullscreen||(e.top&&(t[`${o}-margin-top`]=e.top),e.width&&(t[`${o}-width`]=(0,M._V)(e.width))),t}),C=(0,n.EW)(()=>e.alignCenter?{display:"flex"}:{}),m=(0,n.EW)(()=>{const t={name:e.transition,onAfterEnter:h,onBeforeLeave:k,onAfterLeave:w};if((0,l.Gv)(e.transition)){const t={...e.transition},o=(e,t)=>o=>{(0,l.cy)(e)?e.forEach(e=>{(0,l.Tn)(e)&&e(o)}):(0,l.Tn)(e)&&e(o),t()};return t.onAfterEnter=o(t.onAfterEnter,h),t.onBeforeLeave=o(t.onBeforeLeave,k),t.onAfterLeave=o(t.onAfterLeave,w),t.name||(t.name=d),t}return t});function h(){s("opened")}function w(){s("closed"),s(B.l4,!1),e.destroyOnClose&&(b.value=!1)}function k(){s("close")}function O(){null==g||g(),null==A||A(),e.openDelay&&e.openDelay>0?({stop:A}=(0,E.TO)(()=>T(),e.openDelay)):T()}function S(){null==A||A(),null==g||g(),e.closeDelay&&e.closeDelay>0?({stop:g}=(0,E.TO)(()=>D(),e.closeDelay)):D()}function x(){function t(e){e||(p.value=!0,v.value=!1)}e.beforeClose?e.beforeClose(t):S()}function P(){e.closeOnClickModal&&x()}function T(){E.oc&&(v.value=!0)}function D(){v.value=!1}function W(){s("openAutoFocus")}function G(){s("closeAutoFocus")}function U(e){var t;"pointer"===(null==(t=e.detail)?void 0:t.focusReason)&&e.preventDefault()}function q(){e.closeOnPressEscape&&x()}return e.lockScroll&&(0,F.t)(v),(0,n.wB)(()=>e.zIndex,()=>{var t;y.value=null!=(t=e.zIndex)?t:c()}),(0,n.wB)(()=>e.modelValue,o=>{var r;o?(p.value=!1,O(),b.value=!0,y.value=null!=(r=e.zIndex)?r:c(),(0,n.dY)(()=>{s("open"),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):v.value&&S()}),(0,n.wB)(()=>e.fullscreen,e=>{t.value&&(e?(u=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=u)}),(0,n.sV)(()=>{e.modelValue&&(v.value=!0,b.value=!0,O())}),{afterEnter:h,afterLeave:w,beforeLeave:k,handleClose:x,onModalClick:P,close:S,doClose:D,onOpenAutoFocus:W,onCloseAutoFocus:G,onCloseRequested:q,onFocusoutPrevented:U,titleId:i,bodyId:f,closed:p,style:j,overlayDialogStyle:C,rendered:b,visible:v,zIndex:y,transitionConfig:m}};var T=o(49766),D=o(42757);const W=(0,n.pM)({name:"ElDialog",inheritAttrs:!1}),G=(0,n.pM)({...W,props:S,emits:x,setup(e,{expose:t}){const o=e,i=(0,n.Ht)();(0,T.b)({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},(0,n.EW)(()=>!!i.title));const d=(0,L.DU)("dialog"),v=(0,r.KR)(),p=(0,r.KR)(),b=(0,r.KR)(),{visible:y,titleId:A,bodyId:g,style:R,overlayDialogStyle:j,rendered:C,transitionConfig:m,zIndex:h,handleClose:k,onModalClick:B,onOpenAutoFocus:O,onCloseAutoFocus:S,onCloseRequested:x,onFocusoutPrevented:E}=P(o,v);(0,n.Gt)(f,{dialogRef:v,headerRef:p,bodyId:g,ns:d,rendered:C,style:R});const F=(0,D.r)(B),I=(0,n.EW)(()=>o.draggable&&!o.fullscreen),_=(0,n.EW)(()=>o.modalPenetrable&&!o.modal&&!o.fullscreen),$=()=>{var e;null==(e=b.value)||e.resetPosition()};return t({visible:y,dialogContentRef:b,resetPosition:$,handleClose:k}),(e,t)=>((0,n.uX)(),(0,n.Wv)((0,r.R1)(u.Nr),{to:e.appendTo,disabled:"body"===e.appendTo&&!e.appendToBody},{default:(0,n.k6)(()=>[(0,n.bF)(a.eB,(0,n.v6)((0,r.R1)(m),{persisted:""}),{default:(0,n.k6)(()=>{var t;return[(0,n.bo)((0,n.bF)((0,r.R1)(s._q),{"custom-mask-event":"",mask:e.modal,"overlay-class":[null!=(t=e.modalClass)?t:"",`${(0,r.R1)(d).namespace.value}-modal-dialog`,(0,r.R1)(d).is("penetrable",(0,r.R1)(_))],"z-index":(0,r.R1)(h)},{default:(0,n.k6)(()=>[(0,n.Lk)("div",{role:"dialog","aria-modal":"true","aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:(0,r.R1)(A),"aria-describedby":(0,r.R1)(g),class:(0,l.C4)(`${(0,r.R1)(d).namespace.value}-overlay-dialog`),style:(0,l.Tr)((0,r.R1)(j)),onClick:(0,r.R1)(F).onClick,onMousedown:(0,r.R1)(F).onMousedown,onMouseup:(0,r.R1)(F).onMouseup},[(0,n.bF)((0,r.R1)(c.A),{loop:"",trapped:(0,r.R1)(y),"focus-start-el":"container",onFocusAfterTrapped:(0,r.R1)(O),onFocusAfterReleased:(0,r.R1)(S),onFocusoutPrevented:(0,r.R1)(E),onReleaseRequested:(0,r.R1)(x)},{default:(0,n.k6)(()=>[(0,r.R1)(C)?((0,n.uX)(),(0,n.Wv)(w,(0,n.v6)({key:0,ref_key:"dialogContentRef",ref:b},e.$attrs,{center:e.center,"align-center":e.alignCenter,"close-icon":e.closeIcon,draggable:(0,r.R1)(I),overflow:e.overflow,fullscreen:e.fullscreen,"header-class":e.headerClass,"body-class":e.bodyClass,"footer-class":e.footerClass,"show-close":e.showClose,title:e.title,"aria-level":e.headerAriaLevel,onClose:(0,r.R1)(k)}),(0,n.eX)({header:(0,n.k6)(()=>[e.$slots.title?(0,n.RG)(e.$slots,"title",{key:1}):(0,n.RG)(e.$slots,"header",{key:0,close:(0,r.R1)(k),titleId:(0,r.R1)(A),titleClass:(0,r.R1)(d).e("title")})]),default:(0,n.k6)(()=>[(0,n.RG)(e.$slots,"default")]),_:2},[e.$slots.footer?{name:"footer",fn:(0,n.k6)(()=>[(0,n.RG)(e.$slots,"footer")])}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):(0,n.Q3)("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,["aria-label","aria-labelledby","aria-describedby","onClick","onMousedown","onMouseup"])]),_:3},8,["mask","overlay-class","z-index"]),[[a.aG,(0,r.R1)(y)]])]}),_:3},16)]),_:3},8,["to","disabled"]))}});var U=(0,A.A)(G,[["__file","dialog.vue"]]),q=o(64769);const z=(0,q.GU)(U)},47407:function(e,t,o){o.d(t,{Nr:function(){return u}});var n=o(20641),r=o(52388),a=o(78396);const l=(0,n.pM)({__name:"teleport",props:r.k,setup(e){return(e,t)=>e.disabled?(0,n.RG)(e.$slots,"default",{key:0}):((0,n.uX)(),(0,n.Wv)(n.Im,{key:1,to:e.to},[(0,n.RG)(e.$slots,"default")],8,["to"]))}});var s=(0,a.A)(l,[["__file","teleport.vue"]]),c=o(64769);const u=(0,c.GU)(s)},52388:function(e,t,o){o.d(t,{k:function(){return r}});var n=o(50819);const r=(0,n.b_)({to:{type:(0,n.jq)([String,Object]),required:!0},disabled:Boolean})},55615:function(e,t,o){o.d(t,{A:function(){return p}});var n=o(83607),r=o(23149),a=o(97271);function l(e){var t=[];if(null!=e)for(var o in Object(e))t.push(o);return t}var s=l,c=Object.prototype,u=c.hasOwnProperty;function i(e){if(!(0,r.A)(e))return s(e);var t=(0,a.A)(e),o=[];for(var n in e)("constructor"!=n||!t&&u.call(e,n))&&o.push(n);return o}var f=i,d=o(38446);function v(e){return(0,d.A)(e)?(0,n.A)(e,!0):f(e)}var p=v},69527:function(e,t,o){o.d(t,{ZH:function(){return a},qr:function(){return r}});var n=o(90033);const r=(e="")=>e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d"),a=e=>(0,n.ZH)(e)},80154:function(e,t,o){var n=o(41917),r="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=r&&"object"==typeof module&&module&&!module.nodeType&&module,l=a&&a.exports===r,s=l?n.A.Buffer:void 0,c=s?s.allocUnsafe:void 0;function u(e,t){if(t)return e.slice();var o=e.length,n=c?c(o):new e.constructor(o);return e.copy(n),n}t.A=u},83511:function(e,t,o){var n=o(76912),r=o(15647),a=o(88634),l=o(13153),s=Object.getOwnPropertySymbols,c=s?function(e){var t=[];while(e)(0,n.A)(t,(0,a.A)(e)),e=(0,r.A)(e);return t}:l.A;t.A=c},83973:function(e,t,o){var n=o(33831),r=o(83511),a=o(55615);function l(e){return(0,n.A)(e,a.A,r.A)}t.A=l},90565:function(e,t,o){var n=o(43988);function r(e){var t=new e.constructor(e.byteLength);return new n.A(t).set(new n.A(e)),t}t.A=r}}]); \ No newline at end of file diff --git a/dist/static/js/376.f88f7291.js b/dist/static/js/376.f88f7291.js deleted file mode 100644 index 588e98ad..00000000 --- a/dist/static/js/376.f88f7291.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[376],{71376:function(e,n,a){a.r(n),a.d(n,{default:function(){return v}});var i=a(20641);const t={class:"test-container"},l={style:{height:"500px",border:"1px solid #ccc"}};function s(e,n,a,s,o,u){const r=(0,i.g2)("pane"),d=(0,i.g2)("splitpanes");return(0,i.uX)(),(0,i.CE)("div",t,[n[2]||(n[2]=(0,i.Lk)("h2",null,"Splitpanes Test Component",-1)),(0,i.Lk)("div",l,[(0,i.bF)(d,{class:"default-theme",horizontal:""},{default:(0,i.k6)(()=>[(0,i.bF)(r,{size:70,"min-size":30},{default:(0,i.k6)(()=>n[0]||(n[0]=[(0,i.Lk)("div",{style:{background:"#f0f0f0",height:"100%",padding:"20px"}},[(0,i.Lk)("h3",null,"Editor Area"),(0,i.Lk)("p",null,"This would be your code editor")],-1)])),_:1,__:[0]}),(0,i.bF)(r,{size:30,"min-size":10},{default:(0,i.k6)(()=>n[1]||(n[1]=[(0,i.Lk)("div",{style:{background:"#e0e0e0",height:"100%",padding:"20px"}},[(0,i.Lk)("h3",null,"Console Area"),(0,i.Lk)("p",null,"This would be your console")],-1)])),_:1,__:[1]})]),_:1})])])}var o=a(99415),u={name:"TestSplitpanes",components:{Splitpanes:o.S,Pane:o.Z}},r=a(66262);const d=(0,r.A)(u,[["render",s],["__scopeId","data-v-677a756e"]]);var v=d},99415:function(e,n,a){a.d(n,{S:function(){return o},Z:function(){return u}});var i=a(20641),t=a(50953),l=a(90033),s=a(96763);const o={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(e,{emit:n}){const a=n,l=e,o=(0,i.Ht)(),u=(0,t.KR)([]),r=(0,i.EW)(()=>u.value.reduce((e,n)=>(e[~~n.id]=n)&&e,{})),d=(0,i.EW)(()=>u.value.length),v=(0,t.KR)(null),c=(0,t.KR)(!1),m=(0,t.KR)({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),p=(0,t.KR)({splitter:null,timeoutId:null}),h=(0,i.EW)(()=>({["splitpanes splitpanes--"+(l.horizontal?"horizontal":"vertical")]:!0,"splitpanes--dragging":m.value.dragging})),z=()=>{document.addEventListener("mousemove",P,{passive:!1}),document.addEventListener("mouseup",g),"ontouchstart"in window&&(document.addEventListener("touchmove",P,{passive:!1}),document.addEventListener("touchend",g))},f=()=>{document.removeEventListener("mousemove",P,{passive:!1}),document.removeEventListener("mouseup",g),"ontouchstart"in window&&(document.removeEventListener("touchmove",P,{passive:!1}),document.removeEventListener("touchend",g))},x=(e,n)=>{const a=e.target.closest(".splitpanes__splitter");if(a){const{left:n,top:i}=a.getBoundingClientRect(),{clientX:t,clientY:s}="ontouchstart"in window&&e.touches?e.touches[0]:e;m.value.cursorOffset=l.horizontal?s-i:t-n}z(),m.value.mouseDown=!0,m.value.activeSplitter=n},P=e=>{m.value.mouseDown&&(e.preventDefault(),m.value.dragging=!0,requestAnimationFrame(()=>{E(_(e)),X("resize",{event:e},!0)}))},g=e=>{m.value.dragging&&(window.getSelection().removeAllRanges(),X("resized",{event:e},!0)),m.value.mouseDown=!1,m.value.activeSplitter=null,setTimeout(()=>{m.value.dragging=!1,f()},100)},S=(e,n)=>{"ontouchstart"in window&&(e.preventDefault(),p.value.splitter===n?(clearTimeout(p.value.timeoutId),p.value.timeoutId=null,w(e,n),p.value.splitter=null):(p.value.splitter=n,p.value.timeoutId=setTimeout(()=>p.value.splitter=null,500))),m.value.dragging||X("splitter-click",{event:e,index:n},!0)},w=(e,n)=>{if(X("splitter-dblclick",{event:e,index:n},!0),l.maximizePanes){let a=0;u.value=u.value.map((e,i)=>(e.size=i===n?e.max:e.min,i!==n&&(a+=e.min),e)),u.value[n].size-=a,X("pane-maximize",{event:e,index:n,pane:u.value[n]}),X("resized",{event:e,index:n},!0)}},M=(e,n)=>{X("pane-click",{event:e,index:r.value[n].index,pane:r.value[n]})},_=e=>{const n=v.value.getBoundingClientRect(),{clientX:a,clientY:i}="ontouchstart"in window&&e.touches?e.touches[0]:e;return{x:a-(l.horizontal?0:m.value.cursorOffset)-n.left,y:i-(l.horizontal?m.value.cursorOffset:0)-n.top}},k=e=>{e=e[l.horizontal?"y":"x"];const n=v.value[l.horizontal?"clientHeight":"clientWidth"];return l.rtl&&!l.horizontal&&(e=n-e),100*e/n},E=e=>{const n=m.value.activeSplitter;let a={prevPanesSize:y(n),nextPanesSize:b(n),prevReachedMinPanes:0,nextReachedMinPanes:0};const i=0+(l.pushOtherPanes?0:a.prevPanesSize),t=100-(l.pushOtherPanes?0:a.nextPanesSize),s=Math.max(Math.min(k(e),t),i);let o=[n,n+1],r=u.value[o[0]]||null,d=u.value[o[1]]||null;const v=r.max<100&&s>=r.max+a.prevPanesSize,c=d.max<100&&s<=100-(d.max+b(n+1));if(v||c)v?(r.size=r.max,d.size=Math.max(100-r.max-a.prevPanesSize-a.nextPanesSize,0)):(r.size=Math.max(100-d.max-a.prevPanesSize-b(n+1),0),d.size=d.max);else{if(l.pushOtherPanes){const e=R(a,s);if(!e)return;({sums:a,panesToResize:o}=e),r=u.value[o[0]]||null,d=u.value[o[1]]||null}null!==r&&(r.size=Math.min(Math.max(s-a.prevPanesSize-a.prevReachedMinPanes,r.min),r.max)),null!==d&&(d.size=Math.min(Math.max(100-s-a.nextPanesSize-a.nextReachedMinPanes,d.min),d.max))}},R=(e,n)=>{const a=m.value.activeSplitter,i=[a,a+1];return n{t>i[0]&&t<=a&&(n.size=n.min,e.prevReachedMinPanes+=n.min)}),e.prevPanesSize=y(i[0]),void 0===i[0])?(e.prevReachedMinPanes=0,u.value[0].size=u.value[0].min,u.value.forEach((n,i)=>{i>0&&i<=a&&(n.size=n.min,e.prevReachedMinPanes+=n.min)}),u.value[i[1]].size=100-e.prevReachedMinPanes-u.value[0].min-e.prevPanesSize-e.nextPanesSize,null):n>100-e.nextPanesSize-u.value[i[1]].min&&(i[1]=W(a).index,e.nextReachedMinPanes=0,i[1]>a+1&&u.value.forEach((n,t)=>{t>a&&t{i=a+1&&(n.size=n.min,e.nextReachedMinPanes+=n.min)}),u.value[i[0]].size=100-e.prevPanesSize-b(i[0]-1),null):{sums:e,panesToResize:i}},y=e=>u.value.reduce((n,a,i)=>n+(iu.value.reduce((n,a,i)=>n+(i>e+1?a.size:0),0),L=e=>[...u.value].reverse().find(n=>n.indexn.min)||{},W=e=>u.value.find(n=>n.index>e+1&&n.size>n.min)||{},N=()=>{var e;const n=Array.from((null==(e=v.value)?void 0:e.children)||[]);for(const a of n){const e=a.classList.contains("splitpanes__pane"),n=a.classList.contains("splitpanes__splitter");!e&&!n&&(a.remove(),s.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},B=(e,n,a=!1)=>{const i=e-1,t=document.createElement("div");t.classList.add("splitpanes__splitter"),a||(t.onmousedown=e=>x(e,i),typeof window<"u"&&"ontouchstart"in window&&(t.ontouchstart=e=>x(e,i)),t.onclick=e=>S(e,i+1)),t.ondblclick=e=>w(e,i+1),n.parentNode.insertBefore(t,n)},C=e=>{e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.remove()},O=()=>{var e;const n=Array.from((null==(e=v.value)?void 0:e.children)||[]);for(const i of n)i.className.includes("splitpanes__splitter")&&C(i);let a=0;for(const i of n)i.className.includes("splitpanes__pane")&&(!a&&l.firstSplitter?B(a,i,!0):a&&B(a,i),a++)},A=({uid:e,...n})=>{const a=r.value[e];for(const[i,t]of Object.entries(n))a[i]=t},T=e=>{var n;let a=-1;Array.from((null==(n=v.value)?void 0:n.children)||[]).some(n=>(n.className.includes("splitpanes__pane")&&a++,n.isSameNode(e.el))),u.value.splice(a,0,{...e,index:a}),u.value.forEach((e,n)=>e.index=n),c.value&&(0,i.dY)(()=>{O(),D({addedPane:u.value[a]}),X("pane-add",{pane:u.value[a]})})},G=e=>{const n=u.value.findIndex(n=>n.id===e);u.value[n].el=null;const a=u.value.splice(n,1)[0];u.value.forEach((e,n)=>e.index=n),(0,i.dY)(()=>{O(),X("pane-remove",{pane:a}),D({removedPane:{...a}})})},D=(e={})=>{e.addedPane||e.removedPane?u.value.some(e=>null!==e.givenSize||e.min||e.max<100)?K(e):F():I(),c.value&&X("resized")},F=()=>{const e=100/d.value;let n=0;const a=[],i=[];for(const t of u.value)t.size=Math.max(Math.min(e,t.max),t.min),n-=t.size,t.size>=t.max&&a.push(t.id),t.size<=t.min&&i.push(t.id);n>.1&&Q(n,a,i)},I=()=>{let e=100;const n=[],a=[];let i=0;for(const l of u.value)e-=l.size,null!==l.givenSize&&i++,l.size>=l.max&&n.push(l.id),l.size<=l.min&&a.push(l.id);let t=100;if(e>.1){for(const n of u.value)null===n.givenSize&&(n.size=Math.max(Math.min(e/(d.value-i),n.max),n.min)),t-=n.size;t>.1&&Q(t,n,a)}},K=({addedPane:e,removedPane:n}={})=>{let a=100/d.value,i=0;const t=[],l=[];null!==((null==e?void 0:e.givenSize)??null)&&(a=(100-e.givenSize)/(d.value-1));for(const s of u.value)i-=s.size,s.size>=s.max&&t.push(s.id),s.size<=s.min&&l.push(s.id);if(!(Math.abs(i)<.1)){for(const n of u.value)null!==(null==e?void 0:e.givenSize)&&(null==e?void 0:e.id)===n.id||(n.size=Math.max(Math.min(a,n.max),n.min)),i-=n.size,n.size>=n.max&&t.push(n.id),n.size<=n.min&&l.push(n.id);i>.1&&Q(i,t,l)}},Q=(e,n,a)=>{let t;t=e>0?e/(d.value-n.length):e/(d.value-a.length),u.value.forEach((i,l)=>{if(e>0&&!n.includes(i.id)){const n=Math.max(Math.min(i.size+t,i.max),i.min),a=n-i.size;e-=a,i.size=n}else if(!a.includes(i.id)){const n=Math.max(Math.min(i.size+t,i.max),i.min),a=n-i.size;e-=a,i.size=n}}),Math.abs(e)>.1&&(0,i.dY)(()=>{c.value&&s.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},X=(e,n=void 0,i=!1)=>{const t=(null==n?void 0:n.index)??m.value.activeSplitter??null;a(e,{...n,...null!==t&&{index:t},...i&&null!==t&&{prevPane:u.value[t-(l.firstSplitter?1:0)],nextPane:u.value[t+(l.firstSplitter?0:1)]},panes:u.value.map(e=>({min:e.min,max:e.max,size:e.size}))})};(0,i.wB)(()=>l.firstSplitter,()=>O()),(0,i.sV)(()=>{N(),O(),D(),X("ready"),c.value=!0}),(0,i.xo)(()=>c.value=!1);const Y=()=>{var e;return(0,i.h)("div",{ref:v,class:h.value},null==(e=o.default)?void 0:e.call(o))};return(0,i.Gt)("panes",u),(0,i.Gt)("indexedPanes",r),(0,i.Gt)("horizontal",(0,i.EW)(()=>l.horizontal)),(0,i.Gt)("requestUpdate",A),(0,i.Gt)("onPaneAdd",T),(0,i.Gt)("onPaneRemove",G),(0,i.Gt)("onPaneClick",M),(e,n)=>((0,i.uX)(),(0,i.Wv)((0,i.$y)(Y)))}},u={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){var n;const a=e,s=(0,i.WQ)("requestUpdate"),o=(0,i.WQ)("onPaneAdd"),u=(0,i.WQ)("horizontal"),r=(0,i.WQ)("onPaneRemove"),d=(0,i.WQ)("onPaneClick"),v=null==(n=(0,i.nI)())?void 0:n.uid,c=(0,i.WQ)("indexedPanes"),m=(0,i.EW)(()=>c.value[v]),p=(0,t.KR)(null),h=(0,i.EW)(()=>{const e=isNaN(a.size)||void 0===a.size?0:parseFloat(a.size);return Math.max(Math.min(e,f.value),z.value)}),z=(0,i.EW)(()=>{const e=parseFloat(a.minSize);return isNaN(e)?0:e}),f=(0,i.EW)(()=>{const e=parseFloat(a.maxSize);return isNaN(e)?100:e}),x=(0,i.EW)(()=>{var e;return`${u.value?"height":"width"}: ${null==(e=m.value)?void 0:e.size}%`});return(0,i.wB)(()=>h.value,e=>s({uid:v,size:e})),(0,i.wB)(()=>z.value,e=>s({uid:v,min:e})),(0,i.wB)(()=>f.value,e=>s({uid:v,max:e})),(0,i.sV)(()=>{o({id:v,el:p.value,min:z.value,max:f.value,givenSize:void 0===a.size?null:h.value,size:h.value})}),(0,i.xo)(()=>r(v)),(e,n)=>((0,i.uX)(),(0,i.CE)("div",{ref_key:"paneEl",ref:p,class:"splitpanes__pane",onClick:n[0]||(n[0]=n=>(0,t.R1)(d)(n,e._.uid)),style:(0,l.Tr)(x.value)},[(0,i.RG)(e.$slots,"default")],4))}}}}]); \ No newline at end of file diff --git a/dist/static/js/400.62cbf8d1.js b/dist/static/js/400.62cbf8d1.js new file mode 100644 index 00000000..536513ce --- /dev/null +++ b/dist/static/js/400.62cbf8d1.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[400],{400:function(a,i,n){n.r(i),n.d(i,{default:function(){return c}});var e=n(641);function t(a,i,n,t,d,l){const s=(0,e.g2)("AdminLayout");return(0,e.uX)(),(0,e.Wv)(s,null,{default:(0,e.k6)(()=>i[0]||(i[0]=[(0,e.Lk)("div",{class:"audit-log-page"},[(0,e.Lk)("div",{class:"admin-card"},[(0,e.Lk)("div",{class:"admin-card-header"},[(0,e.Lk)("h3",{class:"admin-card-title"},"Audit Log")]),(0,e.Lk)("div",{class:"coming-soon"},[(0,e.Lk)("span",{class:"icon"},"📋"),(0,e.Lk)("h3",null,"Audit Log Coming Soon"),(0,e.Lk)("p",null,"This feature will display a complete audit trail of all admin actions with filtering and export capabilities.")])])],-1)])),_:1,__:[0]})}var d=n(7424),l={name:"AuditLogPage",components:{AdminLayout:d.A}},s=n(6262);const o=(0,s.A)(l,[["render",t],["__scopeId","data-v-7551a645"]]);var c=o}}]); \ No newline at end of file diff --git a/dist/static/js/404.3a7d4f0e.js b/dist/static/js/404.3a7d4f0e.js new file mode 100644 index 00000000..2f3811eb --- /dev/null +++ b/dist/static/js/404.3a7d4f0e.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[404],{6404:function(e,s,l){l.r(s),l.d(s,{default:function(){return D}});var a=l(1857),i=l(641),t=l(33);const n={class:"user-detail-page"},r={class:"page-header"},d={key:0,class:"loading-state"},o={key:1,class:"user-content"},u={class:"admin-card"},c={class:"admin-card-header"},k={class:"profile-grid"},v={class:"profile-item"},L={class:"profile-item"},f={class:"profile-item"},_={class:"profile-item"},m={class:"profile-item"},p={class:"profile-item"},g={class:"profile-item"},b={class:"admin-card"},w={class:"actions-grid"},C={key:2,class:"empty-state"};function h(e,s,l,h,y,U){const E=(0,i.g2)("router-link"),A=a.S2,F=(0,i.g2)("AdminLayout");return(0,i.uX)(),(0,i.Wv)(F,null,{default:(0,i.k6)(()=>[(0,i.Lk)("div",n,[(0,i.Lk)("div",r,[(0,i.bF)(E,{to:"/users",class:"back-link"},{default:(0,i.k6)(()=>s[0]||(s[0]=[(0,i.eW)("← Back to Users",-1)])),_:1,__:[0]}),s[1]||(s[1]=(0,i.Lk)("h2",null,"User Details",-1))]),h.loading?((0,i.uX)(),(0,i.CE)("div",d,s[2]||(s[2]=[(0,i.Lk)("div",{class:"loading-spinner"},null,-1),(0,i.Lk)("p",null,"Loading user details...",-1)]))):h.user?((0,i.uX)(),(0,i.CE)("div",o,[(0,i.Lk)("div",u,[(0,i.Lk)("div",c,[s[4]||(s[4]=(0,i.Lk)("h3",{class:"admin-card-title"},"Profile Information",-1)),(0,i.bF)(A,{type:"primary",onClick:h.editUser},{default:(0,i.k6)(()=>s[3]||(s[3]=[(0,i.eW)("Edit Profile",-1)])),_:1,__:[3]},8,["onClick"])]),(0,i.Lk)("div",k,[(0,i.Lk)("div",v,[s[5]||(s[5]=(0,i.Lk)("label",null,"Username",-1)),(0,i.Lk)("span",null,(0,t.v_)(h.user.username),1)]),(0,i.Lk)("div",L,[s[6]||(s[6]=(0,i.Lk)("label",null,"Full Name",-1)),(0,i.Lk)("span",null,(0,t.v_)(h.user.full_name||"Not set"),1)]),(0,i.Lk)("div",f,[s[7]||(s[7]=(0,i.Lk)("label",null,"Email",-1)),(0,i.Lk)("span",null,(0,t.v_)(h.user.email||"Not set"),1)]),(0,i.Lk)("div",_,[s[8]||(s[8]=(0,i.Lk)("label",null,"Role",-1)),(0,i.Lk)("span",{class:(0,t.C4)(["badge","professor"===h.user.role?"badge-info":"badge-success"])},(0,t.v_)(h.user.role),3)]),(0,i.Lk)("div",m,[s[9]||(s[9]=(0,i.Lk)("label",null,"Status",-1)),(0,i.Lk)("span",{class:(0,t.C4)(["badge",h.user.is_active?"badge-success":"badge-danger"])},(0,t.v_)(h.user.is_active?"Active":"Inactive"),3)]),(0,i.Lk)("div",p,[s[10]||(s[10]=(0,i.Lk)("label",null,"Last Login",-1)),(0,i.Lk)("span",null,(0,t.v_)(h.formatDate(h.user.last_login)),1)]),(0,i.Lk)("div",g,[s[11]||(s[11]=(0,i.Lk)("label",null,"Created At",-1)),(0,i.Lk)("span",null,(0,t.v_)(h.formatDate(h.user.created_at)),1)])])]),(0,i.Lk)("div",b,[s[16]||(s[16]=(0,i.Lk)("div",{class:"admin-card-header"},[(0,i.Lk)("h3",{class:"admin-card-title"},"Actions")],-1)),(0,i.Lk)("div",w,[(0,i.bF)(A,{onClick:h.resetPassword},{default:(0,i.k6)(()=>s[12]||(s[12]=[(0,i.eW)("🔑 Reset Password",-1)])),_:1,__:[12]},8,["onClick"]),(0,i.bF)(A,{onClick:h.viewFiles},{default:(0,i.k6)(()=>s[13]||(s[13]=[(0,i.eW)("📁 View Files",-1)])),_:1,__:[13]},8,["onClick"]),(0,i.bF)(A,{onClick:h.viewActivity},{default:(0,i.k6)(()=>s[14]||(s[14]=[(0,i.eW)("📋 View Activity",-1)])),_:1,__:[14]},8,["onClick"]),(0,i.bF)(A,{type:"danger",onClick:h.deleteUser},{default:(0,i.k6)(()=>s[15]||(s[15]=[(0,i.eW)("🗑️ Delete User",-1)])),_:1,__:[15]},8,["onClick"])])])])):((0,i.uX)(),(0,i.CE)("div",C,s[17]||(s[17]=[(0,i.Lk)("p",null,"User not found",-1)])))])]),_:1})}l(4114);var y=l(6278),U=l(5220),E=l(7424),A={name:"UserDetailPage",components:{AdminLayout:E.A},setup(){const e=(0,y.Pj)(),s=(0,U.lq)(),l=(0,U.rd)(),a=(0,i.EW)(()=>e.getters["users/currentUser"]),t=(0,i.EW)(()=>e.getters["users/isLoading"]),n=e=>e?new Date(e).toLocaleString():"Never",r=()=>{window.ElMessage.info("Edit feature coming soon")},d=()=>{window.ElMessage.info("Reset password feature coming soon")},o=()=>{l.push(`/files?user=${a.value?.username}`)},u=()=>{l.push(`/audit?user=${a.value?.id}`)},c=()=>{window.ElMessage.info("Delete feature coming soon")};return(0,i.sV)(()=>{const l=s.params.id;l&&e.dispatch("users/fetchUser",l)}),{user:a,loading:t,formatDate:n,editUser:r,resetPassword:d,viewFiles:o,viewActivity:u,deleteUser:c}}},F=l(6262);const W=(0,F.A)(A,[["render",h],["__scopeId","data-v-38b204d5"]]);var D=W}}]); \ No newline at end of file diff --git a/dist/static/js/408.3f8d925e.js b/dist/static/js/408.3f8d925e.js new file mode 100644 index 00000000..4bcbdc66 --- /dev/null +++ b/dist/static/js/408.3f8d925e.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[408],{3408:function(e,a,n){n.r(a),n.d(a,{default:function(){return c}});var s=n(641);function i(e,a,n,i,l,o){const r=(0,s.g2)("AdminLayout");return(0,s.uX)(),(0,s.Wv)(r,null,{default:(0,s.k6)(()=>a[0]||(a[0]=[(0,s.Lk)("div",{class:"file-browser-page"},[(0,s.Lk)("div",{class:"admin-card"},[(0,s.Lk)("div",{class:"admin-card-header"},[(0,s.Lk)("h3",{class:"admin-card-title"},"File Browser")]),(0,s.Lk)("div",{class:"coming-soon"},[(0,s.Lk)("span",{class:"icon"},"📁"),(0,s.Lk)("h3",null,"File Browser Coming Soon"),(0,s.Lk)("p",null,"This feature will allow you to browse, view, and manage student files.")])])],-1)])),_:1,__:[0]})}var l=n(7424),o={name:"FileBrowserPage",components:{AdminLayout:l.A}},r=n(6262);const d=(0,r.A)(o,[["render",i],["__scopeId","data-v-458473c8"]]);var c=d}}]); \ No newline at end of file diff --git a/dist/static/js/45.a267244c.js b/dist/static/js/45.a267244c.js deleted file mode 100644 index 5e0c84a2..00000000 --- a/dist/static/js/45.a267244c.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[45],{98045:function(e,t,l){l.r(t),l.d(t,{default:function(){return $c}});var n=l(42496),r=l(20641),o=l(50953),a=l(53751),i=l(90033),s=l(91361),u=l(52307);function d(){let e;const t=(t,n)=>{l(),e=window.setTimeout(t,n)},l=()=>window.clearTimeout(e);return(0,u.Uo)(()=>l()),{registerTimeout:t,cancelTimeout:l}}var c=l(50819),p=l(2154);const f=(0,c.b_)({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),v=({showAfter:e,hideAfter:t,autoClose:l,open:n,close:r})=>{const{registerTimeout:a}=d(),{registerTimeout:i,cancelTimeout:s}=d(),u=t=>{a(()=>{n(t);const e=(0,o.R1)(l);(0,p.Et)(e)&&e>0&&i(()=>{r(t)},e)},(0,o.R1)(e))},c=e=>{s(),a(()=>{r(e)},(0,o.R1)(t))};return{onOpen:u,onClose:c}};var h=l(25343),m=l(55158);const g=["light","dark"],b=(0,c.b_)({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:(0,m.YD)(h.rz),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:g,default:"light"},...f}),y={open:()=>!0,close:e=>(0,p.b0)(e)||e instanceof Event};var w=l(78396),C=l(65980);const R=(0,r.pM)({name:"ElAlert"}),x=(0,r.pM)({...R,props:b,emits:y,setup(e,{emit:t}){const l=e,{Close:n}=h.Nk,d=(0,r.Ht)(),c=(0,C.DU)("alert"),p=(0,o.KR)(!1),f=(0,r.EW)(()=>h.rz[l.type]),m=(0,r.EW)(()=>!(!l.description&&!d.default)),g=()=>{p.value=!0,t("open")},b=e=>{p.value=!1,t("close",e)},{onOpen:y,onClose:w}=v({showAfter:(0,o.lW)(l,"showAfter"),hideAfter:(0,o.lW)(l,"hideAfter"),autoClose:(0,o.lW)(l,"autoClose"),open:g,close:b});return u.oc&&y(),(e,t)=>((0,r.uX)(),(0,r.Wv)(a.eB,{name:(0,o.R1)(c).b("fade"),persisted:""},{default:(0,r.k6)(()=>[(0,r.bo)((0,r.Lk)("div",{class:(0,i.C4)([(0,o.R1)(c).b(),(0,o.R1)(c).m(e.type),(0,o.R1)(c).is("center",e.center),(0,o.R1)(c).is(e.effect)]),role:"alert"},[e.showIcon&&(e.$slots.icon||(0,o.R1)(f))?((0,r.uX)(),(0,r.Wv)((0,o.R1)(s.tk),{key:0,class:(0,i.C4)([(0,o.R1)(c).e("icon"),{[(0,o.R1)(c).is("big")]:(0,o.R1)(m)}])},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"icon",{},()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)((0,o.R1)(f))))])]),_:3},8,["class"])):(0,r.Q3)("v-if",!0),(0,r.Lk)("div",{class:(0,i.C4)((0,o.R1)(c).e("content"))},[e.title||e.$slots.title?((0,r.uX)(),(0,r.CE)("span",{key:0,class:(0,i.C4)([(0,o.R1)(c).e("title"),{"with-description":(0,o.R1)(m)}])},[(0,r.RG)(e.$slots,"title",{},()=>[(0,r.eW)((0,i.v_)(e.title),1)])],2)):(0,r.Q3)("v-if",!0),(0,o.R1)(m)?((0,r.uX)(),(0,r.CE)("p",{key:1,class:(0,i.C4)((0,o.R1)(c).e("description"))},[(0,r.RG)(e.$slots,"default",{},()=>[(0,r.eW)((0,i.v_)(e.description),1)])],2)):(0,r.Q3)("v-if",!0),e.closable?((0,r.uX)(),(0,r.CE)(r.FK,{key:2},[e.closeText?((0,r.uX)(),(0,r.CE)("div",{key:0,class:(0,i.C4)([(0,o.R1)(c).e("close-btn"),(0,o.R1)(c).is("customed")]),onClick:b},(0,i.v_)(e.closeText),3)):((0,r.uX)(),(0,r.Wv)((0,o.R1)(s.tk),{key:1,class:(0,i.C4)((0,o.R1)(c).e("close-btn")),onClick:(0,o.R1)(w)},{default:(0,r.k6)(()=>[(0,r.bF)((0,o.R1)(n))]),_:1},8,["class","onClick"]))],64)):(0,r.Q3)("v-if",!0)],2)],2),[[a.aG,p.value]])]),_:3},8,["name"]))}});var E=(0,w.A)(x,[["__file","alert.vue"]]),S=l(64769);const k=(0,S.GU)(E);var W=l(48548);const O=Symbol("elPaginationKey"),F=(0,c.b_)({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:h.Ze}}),T={click:e=>e instanceof MouseEvent};var A=l(87404);const L=(0,r.pM)({name:"ElPaginationPrev"}),_=(0,r.pM)({...L,props:F,emits:T,setup(e){const t=e,{t:l}=(0,A.Ym)(),n=(0,r.EW)(()=>t.disabled||t.currentPage<=1);return(e,t)=>((0,r.uX)(),(0,r.CE)("button",{type:"button",class:"btn-prev",disabled:(0,o.R1)(n),"aria-label":e.prevText||(0,o.R1)(l)("el.pagination.prev"),"aria-disabled":(0,o.R1)(n),onClick:t=>e.$emit("click",t)},[e.prevText?((0,r.uX)(),(0,r.CE)("span",{key:0},(0,i.v_)(e.prevText),1)):((0,r.uX)(),(0,r.Wv)((0,o.R1)(s.tk),{key:1},{default:(0,r.k6)(()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.prevIcon)))]),_:1}))],8,["disabled","aria-label","aria-disabled","onClick"]))}});var M=(0,w.A)(_,[["__file","prev.vue"]]);const K=(0,c.b_)({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:h.Ze}}),B=(0,r.pM)({name:"ElPaginationNext"}),P=(0,r.pM)({...B,props:K,emits:["click"],setup(e){const t=e,{t:l}=(0,A.Ym)(),n=(0,r.EW)(()=>t.disabled||t.currentPage===t.pageCount||0===t.pageCount);return(e,t)=>((0,r.uX)(),(0,r.CE)("button",{type:"button",class:"btn-next",disabled:(0,o.R1)(n),"aria-label":e.nextText||(0,o.R1)(l)("el.pagination.next"),"aria-disabled":(0,o.R1)(n),onClick:t=>e.$emit("click",t)},[e.nextText?((0,r.uX)(),(0,r.CE)("span",{key:0},(0,i.v_)(e.nextText),1)):((0,r.uX)(),(0,r.Wv)((0,o.R1)(s.tk),{key:1},{default:(0,r.k6)(()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.nextIcon)))]),_:1}))],8,["disabled","aria-label","aria-disabled","onClick"]))}});var N=(0,w.A)(P,[["__file","next.vue"]]),I=l(46996);const $=Symbol("popper"),j=Symbol("popperContent"),z=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],D=(0,c.b_)({role:{type:String,values:z,default:"tooltip"}}),V=(0,r.pM)({name:"ElPopper",inheritAttrs:!1}),q=(0,r.pM)({...V,props:D,setup(e,{expose:t}){const l=e,n=(0,o.KR)(),a=(0,o.KR)(),i=(0,o.KR)(),s=(0,o.KR)(),u=(0,r.EW)(()=>l.role),d={triggerRef:n,popperInstanceRef:a,contentRef:i,referenceRef:s,role:u};return t(d),(0,r.Gt)($,d),(e,t)=>(0,r.RG)(e.$slots,"default")}});var H=(0,w.A)(q,[["__file","popper.vue"]]);const X=(0,S.GU)(H),U=Symbol("elTooltip");var G="top",Q="bottom",Y="right",Z="left",J="auto",ee=[G,Q,Y,Z],te="start",le="end",ne="clippingParents",re="viewport",oe="popper",ae="reference",ie=ee.reduce(function(e,t){return e.concat([t+"-"+te,t+"-"+le])},[]),se=[].concat(ee,[J]).reduce(function(e,t){return e.concat([t,t+"-"+te,t+"-"+le])},[]),ue="beforeRead",de="read",ce="afterRead",pe="beforeMain",fe="main",ve="afterMain",he="beforeWrite",me="write",ge="afterWrite",be=[ue,de,ce,pe,fe,ve,he,me,ge];function ye(e){return e?(e.nodeName||"").toLowerCase():null}function we(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ce(e){var t=we(e).Element;return e instanceof t||e instanceof Element}function Re(e){var t=we(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function xe(e){if("undefined"==typeof ShadowRoot)return!1;var t=we(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function Ee(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var l=t.styles[e]||{},n=t.attributes[e]||{},r=t.elements[e];!Re(r)||!ye(r)||(Object.assign(r.style,l),Object.keys(n).forEach(function(e){var t=n[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)}))})}function Se(e){var t=e.state,l={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,l.popper),t.styles=l,t.elements.arrow&&Object.assign(t.elements.arrow.style,l.arrow),function(){Object.keys(t.elements).forEach(function(e){var n=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:l[e]),a=o.reduce(function(e,t){return e[t]="",e},{});!Re(n)||!ye(n)||(Object.assign(n.style,a),Object.keys(r).forEach(function(e){n.removeAttribute(e)}))})}}var ke={name:"applyStyles",enabled:!0,phase:"write",fn:Ee,effect:Se,requires:["computeStyles"]};function We(e){return e.split("-")[0]}var Oe=Math.max,Fe=Math.min,Te=Math.round;function Ae(e,t){void 0===t&&(t=!1);var l=e.getBoundingClientRect(),n=1,r=1;if(Re(e)&&t){var o=e.offsetHeight,a=e.offsetWidth;a>0&&(n=Te(l.width)/a||1),o>0&&(r=Te(l.height)/o||1)}return{width:l.width/n,height:l.height/r,top:l.top/r,right:l.right/n,bottom:l.bottom/r,left:l.left/n,x:l.left/n,y:l.top/r}}function Le(e){var t=Ae(e),l=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-l)<=1&&(l=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:l,height:n}}function _e(e,t){var l=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(l&&xe(l)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Me(e){return we(e).getComputedStyle(e)}function Ke(e){return["table","td","th"].indexOf(ye(e))>=0}function Be(e){return((Ce(e)?e.ownerDocument:e.document)||window.document).documentElement}function Pe(e){return"html"===ye(e)?e:e.assignedSlot||e.parentNode||(xe(e)?e.host:null)||Be(e)}function Ne(e){return Re(e)&&"fixed"!==Me(e).position?e.offsetParent:null}function Ie(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox"),l=-1!==navigator.userAgent.indexOf("Trident");if(l&&Re(e)){var n=Me(e);if("fixed"===n.position)return null}var r=Pe(e);for(xe(r)&&(r=r.host);Re(r)&&["html","body"].indexOf(ye(r))<0;){var o=Me(r);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return r;r=r.parentNode}return null}function $e(e){for(var t=we(e),l=Ne(e);l&&Ke(l)&&"static"===Me(l).position;)l=Ne(l);return l&&("html"===ye(l)||"body"===ye(l)&&"static"===Me(l).position)?t:l||Ie(e)||t}function je(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ze(e,t,l){return Oe(e,Fe(t,l))}function De(e,t,l){var n=ze(e,t,l);return n>l?l:n}function Ve(){return{top:0,right:0,bottom:0,left:0}}function qe(e){return Object.assign({},Ve(),e)}function He(e,t){return t.reduce(function(t,l){return t[l]=e,t},{})}var Xe=function(e,t){return e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e,qe("number"!=typeof e?e:He(e,ee))};function Ue(e){var t,l=e.state,n=e.name,r=e.options,o=l.elements.arrow,a=l.modifiersData.popperOffsets,i=We(l.placement),s=je(i),u=[Z,Y].indexOf(i)>=0,d=u?"height":"width";if(o&&a){var c=Xe(r.padding,l),p=Le(o),f="y"===s?G:Z,v="y"===s?Q:Y,h=l.rects.reference[d]+l.rects.reference[s]-a[s]-l.rects.popper[d],m=a[s]-l.rects.reference[s],g=$e(o),b=g?"y"===s?g.clientHeight||0:g.clientWidth||0:0,y=h/2-m/2,w=c[f],C=b-p[d]-c[v],R=b/2-p[d]/2+y,x=ze(w,R,C),E=s;l.modifiersData[n]=(t={},t[E]=x,t.centerOffset=x-R,t)}}function Ge(e){var t=e.state,l=e.options,n=l.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"==typeof r&&(r=t.elements.popper.querySelector(r),!r)||!_e(t.elements.popper,r)||(t.elements.arrow=r))}var Qe={name:"arrow",enabled:!0,phase:"main",fn:Ue,effect:Ge,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ye(e){return e.split("-")[1]}var Ze={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Je(e){var t=e.x,l=e.y,n=window,r=n.devicePixelRatio||1;return{x:Te(t*r)/r||0,y:Te(l*r)/r||0}}function et(e){var t,l=e.popper,n=e.popperRect,r=e.placement,o=e.variation,a=e.offsets,i=e.position,s=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,c=e.isFixed,p=a.x,f=void 0===p?0:p,v=a.y,h=void 0===v?0:v,m="function"==typeof d?d({x:f,y:h}):{x:f,y:h};f=m.x,h=m.y;var g=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),y=Z,w=G,C=window;if(u){var R=$e(l),x="clientHeight",E="clientWidth";if(R===we(l)&&(R=Be(l),"static"!==Me(R).position&&"absolute"===i&&(x="scrollHeight",E="scrollWidth")),r===G||(r===Z||r===Y)&&o===le){w=Q;var S=c&&R===C&&C.visualViewport?C.visualViewport.height:R[x];h-=S-n.height,h*=s?1:-1}if(r===Z||(r===G||r===Q)&&o===le){y=Y;var k=c&&R===C&&C.visualViewport?C.visualViewport.width:R[E];f-=k-n.width,f*=s?1:-1}}var W,O=Object.assign({position:i},u&&Ze),F=!0===d?Je({x:f,y:h}):{x:f,y:h};return f=F.x,h=F.y,s?Object.assign({},O,(W={},W[w]=b?"0":"",W[y]=g?"0":"",W.transform=(C.devicePixelRatio||1)<=1?"translate("+f+"px, "+h+"px)":"translate3d("+f+"px, "+h+"px, 0)",W)):Object.assign({},O,(t={},t[w]=b?h+"px":"",t[y]=g?f+"px":"",t.transform="",t))}function tt(e){var t=e.state,l=e.options,n=l.gpuAcceleration,r=void 0===n||n,o=l.adaptive,a=void 0===o||o,i=l.roundOffsets,s=void 0===i||i,u={placement:We(t.placement),variation:Ye(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,et(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:s})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,et(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var lt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:tt,data:{}},nt={passive:!0};function rt(e){var t=e.state,l=e.instance,n=e.options,r=n.scroll,o=void 0===r||r,a=n.resize,i=void 0===a||a,s=we(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(e){e.addEventListener("scroll",l.update,nt)}),i&&s.addEventListener("resize",l.update,nt),function(){o&&u.forEach(function(e){e.removeEventListener("scroll",l.update,nt)}),i&&s.removeEventListener("resize",l.update,nt)}}var ot={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:rt,data:{}},at={left:"right",right:"left",bottom:"top",top:"bottom"};function it(e){return e.replace(/left|right|bottom|top/g,function(e){return at[e]})}var st={start:"end",end:"start"};function ut(e){return e.replace(/start|end/g,function(e){return st[e]})}function dt(e){var t=we(e),l=t.pageXOffset,n=t.pageYOffset;return{scrollLeft:l,scrollTop:n}}function ct(e){return Ae(Be(e)).left+dt(e).scrollLeft}function pt(e){var t=we(e),l=Be(e),n=t.visualViewport,r=l.clientWidth,o=l.clientHeight,a=0,i=0;return n&&(r=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=n.offsetLeft,i=n.offsetTop)),{width:r,height:o,x:a+ct(e),y:i}}function ft(e){var t,l=Be(e),n=dt(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=Oe(l.scrollWidth,l.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Oe(l.scrollHeight,l.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),i=-n.scrollLeft+ct(e),s=-n.scrollTop;return"rtl"===Me(r||l).direction&&(i+=Oe(l.clientWidth,r?r.clientWidth:0)-o),{width:o,height:a,x:i,y:s}}function vt(e){var t=Me(e),l=t.overflow,n=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(l+r+n)}function ht(e){return["html","body","#document"].indexOf(ye(e))>=0?e.ownerDocument.body:Re(e)&&vt(e)?e:ht(Pe(e))}function mt(e,t){var l;void 0===t&&(t=[]);var n=ht(e),r=n===(null==(l=e.ownerDocument)?void 0:l.body),o=we(n),a=r?[o].concat(o.visualViewport||[],vt(n)?n:[]):n,i=t.concat(a);return r?i:i.concat(mt(Pe(a)))}function gt(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function bt(e){var t=Ae(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function yt(e,t){return t===re?gt(pt(e)):Ce(t)?bt(t):gt(ft(Be(e)))}function wt(e){var t=mt(Pe(e)),l=["absolute","fixed"].indexOf(Me(e).position)>=0,n=l&&Re(e)?$e(e):e;return Ce(n)?t.filter(function(e){return Ce(e)&&_e(e,n)&&"body"!==ye(e)}):[]}function Ct(e,t,l){var n="clippingParents"===t?wt(e):[].concat(t),r=[].concat(n,[l]),o=r[0],a=r.reduce(function(t,l){var n=yt(e,l);return t.top=Oe(n.top,t.top),t.right=Fe(n.right,t.right),t.bottom=Fe(n.bottom,t.bottom),t.left=Oe(n.left,t.left),t},yt(e,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Rt(e){var t,l=e.reference,n=e.element,r=e.placement,o=r?We(r):null,a=r?Ye(r):null,i=l.x+l.width/2-n.width/2,s=l.y+l.height/2-n.height/2;switch(o){case G:t={x:i,y:l.y-n.height};break;case Q:t={x:i,y:l.y+l.height};break;case Y:t={x:l.x+l.width,y:s};break;case Z:t={x:l.x-n.width,y:s};break;default:t={x:l.x,y:l.y}}var u=o?je(o):null;if(null!=u){var d="y"===u?"height":"width";switch(a){case te:t[u]=t[u]-(l[d]/2-n[d]/2);break;case le:t[u]=t[u]+(l[d]/2-n[d]/2);break}}return t}function xt(e,t){void 0===t&&(t={});var l=t,n=l.placement,r=void 0===n?e.placement:n,o=l.boundary,a=void 0===o?ne:o,i=l.rootBoundary,s=void 0===i?re:i,u=l.elementContext,d=void 0===u?oe:u,c=l.altBoundary,p=void 0!==c&&c,f=l.padding,v=void 0===f?0:f,h=qe("number"!=typeof v?v:He(v,ee)),m=d===oe?ae:oe,g=e.rects.popper,b=e.elements[p?m:d],y=Ct(Ce(b)?b:b.contextElement||Be(e.elements.popper),a,s),w=Ae(e.elements.reference),C=Rt({reference:w,element:g,strategy:"absolute",placement:r}),R=gt(Object.assign({},g,C)),x=d===oe?R:w,E={top:y.top-x.top+h.top,bottom:x.bottom-y.bottom+h.bottom,left:y.left-x.left+h.left,right:x.right-y.right+h.right},S=e.modifiersData.offset;if(d===oe&&S){var k=S[r];Object.keys(E).forEach(function(e){var t=[Y,Q].indexOf(e)>=0?1:-1,l=[G,Q].indexOf(e)>=0?"y":"x";E[e]+=k[l]*t})}return E}function Et(e,t){void 0===t&&(t={});var l=t,n=l.placement,r=l.boundary,o=l.rootBoundary,a=l.padding,i=l.flipVariations,s=l.allowedAutoPlacements,u=void 0===s?se:s,d=Ye(n),c=d?i?ie:ie.filter(function(e){return Ye(e)===d}):ee,p=c.filter(function(e){return u.indexOf(e)>=0});0===p.length&&(p=c);var f=p.reduce(function(t,l){return t[l]=xt(e,{placement:l,boundary:r,rootBoundary:o,padding:a})[We(l)],t},{});return Object.keys(f).sort(function(e,t){return f[e]-f[t]})}function St(e){if(We(e)===J)return[];var t=it(e);return[ut(e),t,ut(t)]}function kt(e){var t=e.state,l=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var r=l.mainAxis,o=void 0===r||r,a=l.altAxis,i=void 0===a||a,s=l.fallbackPlacements,u=l.padding,d=l.boundary,c=l.rootBoundary,p=l.altBoundary,f=l.flipVariations,v=void 0===f||f,h=l.allowedAutoPlacements,m=t.options.placement,g=We(m),b=g===m,y=s||(b||!v?[it(m)]:St(m)),w=[m].concat(y).reduce(function(e,l){return e.concat(We(l)===J?Et(t,{placement:l,boundary:d,rootBoundary:c,padding:u,flipVariations:v,allowedAutoPlacements:h}):l)},[]),C=t.rects.reference,R=t.rects.popper,x=new Map,E=!0,S=w[0],k=0;k=0,A=T?"width":"height",L=xt(t,{placement:W,boundary:d,rootBoundary:c,altBoundary:p,padding:u}),_=T?F?Y:Z:F?Q:G;C[A]>R[A]&&(_=it(_));var M=it(_),K=[];if(o&&K.push(L[O]<=0),i&&K.push(L[_]<=0,L[M]<=0),K.every(function(e){return e})){S=W,E=!1;break}x.set(W,K)}if(E)for(var B=v?3:1,P=function(e){var t=w.find(function(t){var l=x.get(t);if(l)return l.slice(0,e).every(function(e){return e})});if(t)return S=t,"break"},N=B;N>0;N--){var I=P(N);if("break"===I)break}t.placement!==S&&(t.modifiersData[n]._skip=!0,t.placement=S,t.reset=!0)}}var Wt={name:"flip",enabled:!0,phase:"main",fn:kt,requiresIfExists:["offset"],data:{_skip:!1}};function Ot(e,t,l){return void 0===l&&(l={x:0,y:0}),{top:e.top-t.height-l.y,right:e.right-t.width+l.x,bottom:e.bottom-t.height+l.y,left:e.left-t.width-l.x}}function Ft(e){return[G,Y,Q,Z].some(function(t){return e[t]>=0})}function Tt(e){var t=e.state,l=e.name,n=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,a=xt(t,{elementContext:"reference"}),i=xt(t,{altBoundary:!0}),s=Ot(a,n),u=Ot(i,r,o),d=Ft(s),c=Ft(u);t.modifiersData[l]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":c})}var At={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Tt};function Lt(e,t,l){var n=We(e),r=[Z,G].indexOf(n)>=0?-1:1,o="function"==typeof l?l(Object.assign({},t,{placement:e})):l,a=o[0],i=o[1];return a=a||0,i=(i||0)*r,[Z,Y].indexOf(n)>=0?{x:i,y:a}:{x:a,y:i}}function _t(e){var t=e.state,l=e.options,n=e.name,r=l.offset,o=void 0===r?[0,0]:r,a=se.reduce(function(e,l){return e[l]=Lt(l,t.rects,o),e},{}),i=a[t.placement],s=i.x,u=i.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[n]=a}var Mt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:_t};function Kt(e){var t=e.state,l=e.name;t.modifiersData[l]=Rt({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}var Bt={name:"popperOffsets",enabled:!0,phase:"read",fn:Kt,data:{}};function Pt(e){return"x"===e?"y":"x"}function Nt(e){var t=e.state,l=e.options,n=e.name,r=l.mainAxis,o=void 0===r||r,a=l.altAxis,i=void 0!==a&&a,s=l.boundary,u=l.rootBoundary,d=l.altBoundary,c=l.padding,p=l.tether,f=void 0===p||p,v=l.tetherOffset,h=void 0===v?0:v,m=xt(t,{boundary:s,rootBoundary:u,padding:c,altBoundary:d}),g=We(t.placement),b=Ye(t.placement),y=!b,w=je(g),C=Pt(w),R=t.modifiersData.popperOffsets,x=t.rects.reference,E=t.rects.popper,S="function"==typeof h?h(Object.assign({},t.rects,{placement:t.placement})):h,k="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),W=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(R){if(o){var F,T="y"===w?G:Z,A="y"===w?Q:Y,L="y"===w?"height":"width",_=R[w],M=_+m[T],K=_-m[A],B=f?-E[L]/2:0,P=b===te?x[L]:E[L],N=b===te?-E[L]:-x[L],I=t.elements.arrow,$=f&&I?Le(I):{width:0,height:0},j=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Ve(),z=j[T],D=j[A],V=ze(0,x[L],$[L]),q=y?x[L]/2-B-V-z-k.mainAxis:P-V-z-k.mainAxis,H=y?-x[L]/2+B+V+D+k.mainAxis:N+V+D+k.mainAxis,X=t.elements.arrow&&$e(t.elements.arrow),U=X?"y"===w?X.clientTop||0:X.clientLeft||0:0,J=null!=(F=null==W?void 0:W[w])?F:0,ee=_+q-J-U,le=_+H-J,ne=ze(f?Fe(M,ee):M,_,f?Oe(K,le):K);R[w]=ne,O[w]=ne-_}if(i){var re,oe="x"===w?G:Z,ae="x"===w?Q:Y,ie=R[C],se="y"===C?"height":"width",ue=ie+m[oe],de=ie-m[ae],ce=-1!==[G,Z].indexOf(g),pe=null!=(re=null==W?void 0:W[C])?re:0,fe=ce?ue:ie-x[se]-E[se]-pe+k.altAxis,ve=ce?ie+x[se]+E[se]-pe-k.altAxis:de,he=f&&ce?De(fe,ie,ve):ze(f?fe:ue,ie,f?ve:de);R[C]=he,O[C]=he-ie}t.modifiersData[n]=O}}var It={name:"preventOverflow",enabled:!0,phase:"main",fn:Nt,requiresIfExists:["offset"]};function $t(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function jt(e){return e!==we(e)&&Re(e)?$t(e):dt(e)}function zt(e){var t=e.getBoundingClientRect(),l=Te(t.width)/e.offsetWidth||1,n=Te(t.height)/e.offsetHeight||1;return 1!==l||1!==n}function Dt(e,t,l){void 0===l&&(l=!1);var n=Re(t),r=Re(t)&&zt(t),o=Be(t),a=Ae(e,r),i={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(n||!n&&!l)&&(("body"!==ye(t)||vt(o))&&(i=jt(t)),Re(t)?(s=Ae(t,!0),s.x+=t.clientLeft,s.y+=t.clientTop):o&&(s.x=ct(o))),{x:a.left+i.scrollLeft-s.x,y:a.top+i.scrollTop-s.y,width:a.width,height:a.height}}function Vt(e){var t=new Map,l=new Set,n=[];function r(e){l.add(e.name);var o=[].concat(e.requires||[],e.requiresIfExists||[]);o.forEach(function(e){if(!l.has(e)){var n=t.get(e);n&&r(n)}}),n.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){l.has(e.name)||r(e)}),n}function qt(e){var t=Vt(e);return be.reduce(function(e,l){return e.concat(t.filter(function(e){return e.phase===l}))},[])}function Ht(e){var t;return function(){return t||(t=new Promise(function(l){Promise.resolve().then(function(){t=void 0,l(e())})})),t}}function Xt(e){var t=e.reduce(function(e,t){var l=e[t.name];return e[t.name]=l?Object.assign({},l,t,{options:Object.assign({},l.options,t.options),data:Object.assign({},l.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var Ut={placement:"bottom",modifiers:[],strategy:"absolute"};function Gt(){for(var e=arguments.length,t=new Array(e),l=0;l({})},strategy:{type:String,values:ll,default:"absolute"}}),rl=(0,c.b_)({...nl,...el,id:String,style:{type:(0,c.jq)([String,Array,Object])},className:{type:(0,c.jq)([String,Array,Object])},effect:{type:(0,c.jq)(String),default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:(0,c.jq)([String,Array,Object])},popperStyle:{type:(0,c.jq)([String,Array,Object])},referenceEl:{type:(0,c.jq)(Object)},triggerTargetEl:{type:(0,c.jq)(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...(0,tl.l)(["ariaLabel"])}),ol={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0};var al=l(52388);const il=(0,c.b_)({...f,...rl,appendTo:{type:al.k.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:(0,c.jq)(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...(0,tl.l)(["ariaLabel"])}),sl=(0,c.b_)({virtualRef:{type:(0,c.jq)(Object)},virtualTriggering:Boolean,onMouseenter:{type:(0,c.jq)(Function)},onMouseleave:{type:(0,c.jq)(Function)},onClick:{type:(0,c.jq)(Function)},onKeydown:{type:(0,c.jq)(Function)},onFocus:{type:(0,c.jq)(Function)},onBlur:{type:(0,c.jq)(Function)},onContextmenu:{type:(0,c.jq)(Function)},id:String,open:Boolean});var ul=l(53344);const dl=(0,c.b_)({...sl,disabled:Boolean,trigger:{type:(0,c.jq)([String,Array]),default:"hover"},triggerKeys:{type:(0,c.jq)(Array),default:()=>[ul.R.enter,ul.R.numpadEnter,ul.R.space]}}),cl=(0,c.Y8)({type:(0,c.jq)(Boolean),default:null}),pl=(0,c.Y8)({type:(0,c.jq)(Function)}),fl=e=>{const t=`update:${e}`,l=`onUpdate:${e}`,n=[t],o={[e]:cl,[l]:pl},a=({indicator:n,toggleReason:o,shouldHideWhenRouteChanges:a,shouldProceed:s,onShow:d,onHide:c})=>{const f=(0,r.nI)(),{emit:v}=f,h=f.props,m=(0,r.EW)(()=>(0,i.Tn)(h[l])),g=(0,r.EW)(()=>null===h[e]),b=e=>{!0!==n.value&&(n.value=!0,o&&(o.value=e),(0,i.Tn)(d)&&d(e))},y=e=>{!1!==n.value&&(n.value=!1,o&&(o.value=e),(0,i.Tn)(c)&&c(e))},w=e=>{if(!0===h.disabled||(0,i.Tn)(s)&&!s())return;const l=m.value&&u.oc;l&&v(t,!0),!g.value&&l||b(e)},C=e=>{if(!0===h.disabled||!u.oc)return;const l=m.value&&u.oc;l&&v(t,!1),!g.value&&l||y(e)},R=e=>{(0,p.Lm)(e)&&(h.disabled&&e?m.value&&v(t,!1):n.value!==e&&(e?b():y()))},x=()=>{n.value?C():w()};return(0,r.wB)(()=>h[e],R),a&&void 0!==f.appContext.config.globalProperties.$route&&(0,r.wB)(()=>({...f.proxy.$route}),()=>{a.value&&n.value&&C()}),(0,r.sV)(()=>{R(h[e])}),{hide:C,show:w,toggle:x,hasUpdateHandler:m}};return{useModelToggle:a,useModelToggleProps:o,useModelToggleEmits:n}},{useModelToggle:vl,useModelToggleProps:hl,useModelToggleEmits:ml}=fl("modelValue"),{useModelToggleProps:gl,useModelToggleEmits:bl,useModelToggle:yl}=fl("visible"),wl=(0,c.b_)({...D,...gl,...il,...dl,...el,showArrow:{type:Boolean,default:!0}}),Cl=[...bl,"before-show","before-hide","show","hide","open","close"],Rl=(e,t)=>(0,i.cy)(e)?e.includes(t):e===t,xl=(e,t,l)=>n=>{Rl((0,o.R1)(e),t)&&l(n)};var El=l(97859),Sl=l(97786);const kl=Symbol("elForwardRef"),Wl=e=>{const t=t=>{e.value=t};(0,r.Gt)(kl,{setForwardRef:t})},Ol=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),Fl="ElOnlyChild",Tl=(0,r.pM)({name:Fl,setup(e,{slots:t,attrs:l}){var n;const o=(0,r.WQ)(kl),a=Ol(null!=(n=null==o?void 0:o.setForwardRef)?n:i.tE);return()=>{var e;const n=null==(e=t.default)?void 0:e.call(t,l);if(!n)return null;if(n.length>1)return null;const o=Al(n);return o?(0,r.bo)((0,r.E3)(o,l),[[a]]):null}}});function Al(e){if(!e)return null;const t=e;for(const l of t){if((0,i.Gv)(l))switch(l.type){case r.Mw:continue;case r.EY:case"svg":return Ll(l);case r.FK:return Al(l.children);default:return l}return Ll(l)}return null}function Ll(e){const t=(0,C.DU)("only-child");return(0,r.bF)("span",{class:t.e("content")},[e])}var _l=l(81531);const Ml=(0,r.pM)({name:"ElPopperTrigger",inheritAttrs:!1}),Kl=(0,r.pM)({...Ml,props:sl,setup(e,{expose:t}){const l=e,{role:n,triggerRef:a}=(0,r.WQ)($,void 0);Wl(a);const i=(0,r.EW)(()=>u.value?l.id:void 0),s=(0,r.EW)(()=>{if(n&&"tooltip"===n.value)return l.open&&l.id?l.id:void 0}),u=(0,r.EW)(()=>{if(n&&"tooltip"!==n.value)return n.value}),d=(0,r.EW)(()=>u.value?`${l.open}`:void 0);let c;const f=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return(0,r.sV)(()=>{(0,r.wB)(()=>l.virtualRef,e=>{e&&(a.value=(0,Sl.F4c)(e))},{immediate:!0}),(0,r.wB)(a,(e,t)=>{null==c||c(),c=void 0,(0,p.vq)(e)&&(f.forEach(n=>{var r;const o=l[n];o&&(e.addEventListener(n.slice(2).toLowerCase(),o),null==(r=null==t?void 0:t.removeEventListener)||r.call(t,n.slice(2).toLowerCase(),o))}),(0,_l.tp)(e)&&(c=(0,r.wB)([i,s,u,d],t=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((l,n)=>{(0,El.A)(t[n])?e.removeAttribute(l):e.setAttribute(l,t[n])})},{immediate:!0}))),(0,p.vq)(t)&&(0,_l.tp)(t)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),(0,r.xo)(()=>{if(null==c||c(),c=void 0,a.value&&(0,p.vq)(a.value)){const e=a.value;f.forEach(t=>{const n=l[t];n&&e.removeEventListener(t.slice(2).toLowerCase(),n)}),a.value=void 0}}),t({triggerRef:a}),(e,t)=>e.virtualTriggering?(0,r.Q3)("v-if",!0):((0,r.uX)(),(0,r.Wv)((0,o.R1)(Tl),(0,r.v6)({key:0},e.$attrs,{"aria-controls":(0,o.R1)(i),"aria-describedby":(0,o.R1)(s),"aria-expanded":(0,o.R1)(d),"aria-haspopup":(0,o.R1)(u)}),{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Bl=(0,w.A)(Kl,[["__file","trigger.vue"]]);const Pl=(e,t,{checkForDefaultPrevented:l=!0}={})=>{const n=n=>{const r=null==e?void 0:e(n);if(!1===l||!r)return null==t?void 0:t(n)};return n},Nl=(0,r.pM)({name:"ElTooltipTrigger"}),Il=(0,r.pM)({...Nl,props:dl,setup(e,{expose:t}){const l=e,n=(0,C.DU)("tooltip"),{controlled:a,id:s,open:u,onOpen:d,onClose:c,onToggle:p}=(0,r.WQ)(U,void 0),f=(0,o.KR)(null),v=()=>{if((0,o.R1)(a)||l.disabled)return!0},h=(0,o.lW)(l,"trigger"),m=Pl(v,xl(h,"hover",d)),g=Pl(v,xl(h,"hover",c)),b=Pl(v,xl(h,"click",e=>{0===e.button&&p(e)})),y=Pl(v,xl(h,"focus",d)),w=Pl(v,xl(h,"focus",c)),R=Pl(v,xl(h,"contextmenu",e=>{e.preventDefault(),p(e)})),x=Pl(v,e=>{const{code:t}=e;l.triggerKeys.includes(t)&&(e.preventDefault(),p(e))});return t({triggerRef:f}),(e,t)=>((0,r.uX)(),(0,r.Wv)((0,o.R1)(Bl),{id:(0,o.R1)(s),"virtual-ref":e.virtualRef,open:(0,o.R1)(u),"virtual-triggering":e.virtualTriggering,class:(0,i.C4)((0,o.R1)(n).e("trigger")),onBlur:(0,o.R1)(w),onClick:(0,o.R1)(b),onContextmenu:(0,o.R1)(R),onFocus:(0,o.R1)(y),onMouseenter:(0,o.R1)(m),onMouseleave:(0,o.R1)(g),onKeydown:(0,o.R1)(x)},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var $l=(0,w.A)(Il,[["__file","trigger.vue"]]),jl=l(47407),zl=l(77010);const Dl=()=>{const e=(0,C.E9)(),t=(0,zl.Sj)(),l=(0,r.EW)(()=>`${e.value}-popper-container-${t.prefix}`),n=(0,r.EW)(()=>`#${l.value}`);return{id:l,selector:n}},Vl=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},ql=()=>{const{id:e,selector:t}=Dl();return(0,r.KC)(()=>{u.oc&&(document.body.querySelector(t.value)||Vl(e.value))}),{id:e,selector:t}};var Hl=l(15378);const Xl=(e,t)=>{const l=(0,o.KR)(!1),n=(0,o.KR)(),r=()=>{t("focus")},a=e=>{var l;"pointer"!==(null==(l=e.detail)?void 0:l.focusReason)&&(n.value="first",t("blur"))},i=t=>{e.visible&&!l.value&&(t.target&&(n.value=t.target),l.value=!0)},s=t=>{e.trapping||("pointer"===t.detail.focusReason&&t.preventDefault(),l.value=!1)},u=()=>{l.value=!1,t("close")};return{focusStartRef:n,trapped:l,onFocusAfterReleased:a,onFocusAfterTrapped:r,onFocusInTrap:i,onFocusoutPrevented:s,onReleaseRequested:u}};function Ul(e){return void 0===e}var Gl=Ul;const Ql=(e,t=[])=>{const{placement:l,strategy:n,popperOptions:r}=e,o={placement:l,strategy:n,...r,modifiers:[...Zl(e),...t]};return Jl(o,null==r?void 0:r.modifiers),o},Yl=e=>{if(u.oc)return(0,Sl.F4c)(e)};function Zl(e){const{offset:t,gpuAcceleration:l,fallbackPlacements:n}=e;return[{name:"offset",options:{offset:[0,null!=t?t:12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:n}},{name:"computeStyles",options:{gpuAcceleration:l}}]}function Jl(e,t){t&&(e.modifiers=[...e.modifiers,...null!=t?t:[]])}var en=l(63753);const tn=(e,t,l={})=>{const n={name:"updateState",enabled:!0,phase:"write",fn:({state:e})=>{const t=ln(e);Object.assign(s.value,t)},requires:["computeStyles"]},a=(0,r.EW)(()=>{const{onFirstUpdate:e,placement:t,strategy:r,modifiers:a}=(0,o.R1)(l);return{onFirstUpdate:e,placement:t||"bottom",strategy:r||"absolute",modifiers:[...a||[],n,{name:"applyStyles",enabled:!1}]}}),i=(0,o.IJ)(),s=(0,o.KR)({styles:{popper:{position:(0,o.R1)(a).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),u=()=>{i.value&&(i.value.destroy(),i.value=void 0)};return(0,r.wB)(a,e=>{const t=(0,o.R1)(i);t&&t.setOptions(e)},{deep:!0}),(0,r.wB)([e,t],([e,t])=>{u(),e&&t&&(i.value=Jt(e,t,(0,o.R1)(a)))}),(0,r.xo)(()=>{u()}),{state:(0,r.EW)(()=>{var e;return{...(null==(e=(0,o.R1)(i))?void 0:e.state)||{}}}),styles:(0,r.EW)(()=>(0,o.R1)(s).styles),attributes:(0,r.EW)(()=>(0,o.R1)(s).attributes),update:()=>{var e;return null==(e=(0,o.R1)(i))?void 0:e.update()},forceUpdate:()=>{var e;return null==(e=(0,o.R1)(i))?void 0:e.forceUpdate()},instanceRef:(0,r.EW)(()=>(0,o.R1)(i))}};function ln(e){const t=Object.keys(e.elements),l=(0,en.A)(t.map(t=>[t,e.styles[t]||{}])),n=(0,en.A)(t.map(t=>[t,e.attributes[t]]));return{styles:l,attributes:n}}const nn=0,rn=e=>{const{popperInstanceRef:t,contentRef:l,triggerRef:n,role:a}=(0,r.WQ)($,void 0),i=(0,o.KR)(),s=(0,r.EW)(()=>e.arrowOffset),u=(0,r.EW)(()=>({name:"eventListeners",enabled:!!e.visible})),d=(0,r.EW)(()=>{var e;const t=(0,o.R1)(i),l=null!=(e=(0,o.R1)(s))?e:nn;return{name:"arrow",enabled:!Gl(t),options:{element:t,padding:l}}}),c=(0,r.EW)(()=>({onFirstUpdate:()=>{m()},...Ql(e,[(0,o.R1)(d),(0,o.R1)(u)])})),p=(0,r.EW)(()=>Yl(e.referenceEl)||(0,o.R1)(n)),{attributes:f,state:v,styles:h,update:m,forceUpdate:g,instanceRef:b}=tn(p,l,c);return(0,r.wB)(b,e=>t.value=e,{flush:"sync"}),(0,r.sV)(()=>{(0,r.wB)(()=>{var e;return null==(e=(0,o.R1)(p))?void 0:e.getBoundingClientRect()},()=>{m()})}),{attributes:f,arrowRef:i,contentRef:l,instanceRef:b,state:v,styles:h,role:a,forceUpdate:g,update:m}};var on=l(14656);const an=(e,{attributes:t,styles:l,role:n})=>{const{nextZIndex:a}=(0,on.YK)(),i=(0,C.DU)("popper"),s=(0,r.EW)(()=>(0,o.R1)(t).popper),u=(0,o.KR)((0,p.Et)(e.zIndex)?e.zIndex:a()),d=(0,r.EW)(()=>[i.b(),i.is("pure",e.pure),i.is(e.effect),e.popperClass]),c=(0,r.EW)(()=>[{zIndex:(0,o.R1)(u)},(0,o.R1)(l).popper,e.popperStyle||{}]),f=(0,r.EW)(()=>"dialog"===n.value?"false":void 0),v=(0,r.EW)(()=>(0,o.R1)(l).arrow||{}),h=()=>{u.value=(0,p.Et)(e.zIndex)?e.zIndex:a()};return{ariaModal:f,arrowStyle:v,contentAttrs:s,contentClass:d,contentStyle:c,contentZIndex:u,updateZIndex:h}};var sn=l(67959);const un=(0,r.pM)({name:"ElPopperContent"}),dn=(0,r.pM)({...un,props:rl,emits:ol,setup(e,{expose:t,emit:l}){const n=e,{focusStartRef:a,trapped:s,onFocusAfterReleased:u,onFocusAfterTrapped:d,onFocusInTrap:c,onFocusoutPrevented:f,onReleaseRequested:v}=Xl(n,l),{attributes:h,arrowRef:m,contentRef:g,styles:b,instanceRef:y,role:w,update:C}=rn(n),{ariaModal:R,arrowStyle:x,contentAttrs:E,contentClass:S,contentStyle:k,updateZIndex:W}=an(n,{styles:b,attributes:h,role:w}),O=(0,r.WQ)(sn.w,void 0);let F;(0,r.Gt)(j,{arrowStyle:x,arrowRef:m}),O&&(0,r.Gt)(sn.w,{...O,addInputId:i.tE,removeInputId:i.tE});const T=(e=!0)=>{C(),e&&W()},A=()=>{T(!1),n.visible&&n.focusOnShow?s.value=!0:!1===n.visible&&(s.value=!1)};return(0,r.sV)(()=>{(0,r.wB)(()=>n.triggerTargetEl,(e,t)=>{null==F||F(),F=void 0;const l=(0,o.R1)(e||g.value),a=(0,o.R1)(t||g.value);(0,p.vq)(l)&&(F=(0,r.wB)([w,()=>n.ariaLabel,R,()=>n.id],e=>{["role","aria-label","aria-modal","id"].forEach((t,n)=>{(0,El.A)(e[n])?l.removeAttribute(t):l.setAttribute(t,e[n])})},{immediate:!0})),a!==l&&(0,p.vq)(a)&&["role","aria-label","aria-modal","id"].forEach(e=>{a.removeAttribute(e)})},{immediate:!0}),(0,r.wB)(()=>n.visible,A,{immediate:!0})}),(0,r.xo)(()=>{null==F||F(),F=void 0}),t({popperContentRef:g,popperInstanceRef:y,updatePopper:T,contentStyle:k}),(e,t)=>((0,r.uX)(),(0,r.CE)("div",(0,r.v6)({ref_key:"contentRef",ref:g},(0,o.R1)(E),{style:(0,o.R1)(k),class:(0,o.R1)(S),tabindex:"-1",onMouseenter:t=>e.$emit("mouseenter",t),onMouseleave:t=>e.$emit("mouseleave",t)}),[(0,r.bF)((0,o.R1)(Hl.A),{trapped:(0,o.R1)(s),"trap-on-focus-in":!0,"focus-trap-el":(0,o.R1)(g),"focus-start-el":(0,o.R1)(a),onFocusAfterTrapped:(0,o.R1)(d),onFocusAfterReleased:(0,o.R1)(u),onFocusin:(0,o.R1)(c),onFocusoutPrevented:(0,o.R1)(f),onReleaseRequested:(0,o.R1)(v)},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16,["onMouseenter","onMouseleave"]))}});var cn=(0,w.A)(dn,[["__file","content.vue"]]),pn=l(33333);const fn=(0,r.pM)({name:"ElTooltipContent",inheritAttrs:!1}),vn=(0,r.pM)({...fn,props:il,setup(e,{expose:t}){const l=e,{selector:n}=Dl(),i=(0,C.DU)("tooltip"),s=(0,o.KR)(),d=(0,u.AI)(()=>{var e;return null==(e=s.value)?void 0:e.popperContentRef});let c;const{controlled:p,id:f,open:v,trigger:h,onClose:m,onOpen:g,onShow:b,onHide:y,onBeforeShow:w,onBeforeHide:R}=(0,r.WQ)(U,void 0),x=(0,r.EW)(()=>l.transition||`${i.namespace.value}-fade-in-linear`),E=(0,r.EW)(()=>l.persistent);(0,r.xo)(()=>{null==c||c()});const S=(0,r.EW)(()=>!!(0,o.R1)(E)||(0,o.R1)(v)),k=(0,r.EW)(()=>!l.disabled&&(0,o.R1)(v)),W=(0,r.EW)(()=>l.appendTo||n.value),O=(0,r.EW)(()=>{var e;return null!=(e=l.style)?e:{}}),F=(0,o.KR)(!0),T=()=>{y(),N()&&(0,pn.EC)(document.body),F.value=!0},A=()=>{if((0,o.R1)(p))return!0},L=Pl(A,()=>{l.enterable&&"hover"===(0,o.R1)(h)&&g()}),_=Pl(A,()=>{"hover"===(0,o.R1)(h)&&m()}),M=()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.updatePopper)||t.call(e),null==w||w()},K=()=>{null==R||R()},B=()=>{b()},P=()=>{l.virtualTriggering||m()},N=e=>{var t;const l=null==(t=s.value)?void 0:t.popperContentRef,n=(null==e?void 0:e.relatedTarget)||document.activeElement;return null==l?void 0:l.contains(n)};return(0,r.wB)(()=>(0,o.R1)(v),e=>{e?(F.value=!1,c=(0,Sl.X2F)(d,()=>{if((0,o.R1)(p))return;const e=(0,o.R1)(h);"hover"!==e&&m()})):null==c||c()},{flush:"post"}),(0,r.wB)(()=>l.content,()=>{var e,t;null==(t=null==(e=s.value)?void 0:e.updatePopper)||t.call(e)}),t({contentRef:s,isFocusInsideContent:N}),(e,t)=>((0,r.uX)(),(0,r.Wv)((0,o.R1)(jl.Nr),{disabled:!e.teleported,to:(0,o.R1)(W)},{default:(0,r.k6)(()=>[(0,o.R1)(S)||!F.value?((0,r.uX)(),(0,r.Wv)(a.eB,{key:0,name:(0,o.R1)(x),appear:!(0,o.R1)(E),onAfterLeave:T,onBeforeEnter:M,onAfterEnter:B,onBeforeLeave:K,persisted:""},{default:(0,r.k6)(()=>[(0,r.bo)((0,r.bF)((0,o.R1)(cn),(0,r.v6)({id:(0,o.R1)(f),ref_key:"contentRef",ref:s},e.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":F.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,(0,o.R1)(O)],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:(0,o.R1)(k),"z-index":e.zIndex,onMouseenter:(0,o.R1)(L),onMouseleave:(0,o.R1)(_),onBlur:P,onClose:(0,o.R1)(m)}),{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"]),[[a.aG,(0,o.R1)(k)]])]),_:3},8,["name","appear"])):(0,r.Q3)("v-if",!0)]),_:3},8,["disabled","to"]))}});var hn=(0,w.A)(vn,[["__file","content.vue"]]);const mn=(0,r.pM)({name:"ElPopperArrow",inheritAttrs:!1}),gn=(0,r.pM)({...mn,setup(e,{expose:t}){const l=(0,C.DU)("popper"),{arrowRef:n,arrowStyle:a}=(0,r.WQ)(j,void 0);return(0,r.xo)(()=>{n.value=void 0}),t({arrowRef:n}),(e,t)=>((0,r.uX)(),(0,r.CE)("span",{ref_key:"arrowRef",ref:n,class:(0,i.C4)((0,o.R1)(l).e("arrow")),style:(0,i.Tr)((0,o.R1)(a)),"data-popper-arrow":""},null,6))}});var bn=(0,w.A)(gn,[["__file","arrow.vue"]]);const yn=(0,r.pM)({name:"ElTooltip"}),wn=(0,r.pM)({...yn,props:wl,emits:Cl,setup(e,{expose:t,emit:l}){const n=e;ql();const a=(0,C.DU)("tooltip"),s=(0,zl.Bi)(),u=(0,o.KR)(),d=(0,o.KR)(),c=()=>{var e;const t=(0,o.R1)(u);t&&(null==(e=t.popperInstanceRef)||e.update())},f=(0,o.KR)(!1),h=(0,o.KR)(),{show:m,hide:g,hasUpdateHandler:b}=yl({indicator:f,toggleReason:h}),{onOpen:y,onClose:w}=v({showAfter:(0,o.lW)(n,"showAfter"),hideAfter:(0,o.lW)(n,"hideAfter"),autoClose:(0,o.lW)(n,"autoClose"),open:m,close:g}),R=(0,r.EW)(()=>(0,p.Lm)(n.visible)&&!b.value),x=(0,r.EW)(()=>[a.b(),n.popperClass]);(0,r.Gt)(U,{controlled:R,id:s,open:(0,o.tB)(f),trigger:(0,o.lW)(n,"trigger"),onOpen:y,onClose:w,onToggle:e=>{(0,o.R1)(f)?w(e):y(e)},onShow:()=>{l("show",h.value)},onHide:()=>{l("hide",h.value)},onBeforeShow:()=>{l("before-show",h.value)},onBeforeHide:()=>{l("before-hide",h.value)},updatePopper:c}),(0,r.wB)(()=>n.disabled,e=>{e&&f.value&&(f.value=!1)});const E=e=>{var t;return null==(t=d.value)?void 0:t.isFocusInsideContent(e)};return(0,r.Y4)(()=>f.value&&g()),t({popperRef:u,contentRef:d,isFocusInsideContent:E,updatePopper:c,onOpen:y,onClose:w,hide:g}),(e,t)=>((0,r.uX)(),(0,r.Wv)((0,o.R1)(X),{ref_key:"popperRef",ref:u,role:e.role},{default:(0,r.k6)(()=>[(0,r.bF)($l,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering},{default:(0,r.k6)(()=>[e.$slots.default?(0,r.RG)(e.$slots,"default",{key:0}):(0,r.Q3)("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),(0,r.bF)(hn,{ref_key:"contentRef",ref:d,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":(0,o.R1)(x),"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"content",{},()=>[e.rawContent?((0,r.uX)(),(0,r.CE)("span",{key:0,innerHTML:e.content},null,8,["innerHTML"])):((0,r.uX)(),(0,r.CE)("span",{key:1},(0,i.v_)(e.content),1))]),e.showArrow?((0,r.uX)(),(0,r.Wv)((0,o.R1)(bn),{key:0})):(0,r.Q3)("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Cn=(0,w.A)(wn,[["__file","tooltip.vue"]]);const Rn=(0,S.GU)(Cn),xn=4,En={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Sn=({move:e,size:t,bar:l})=>({[l.size]:t,transform:`translate${l.axis}(${e}%)`}),kn=Symbol("scrollbarContextKey"),Wn=(0,c.b_)({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean});var On=l(41651);const Fn="Thumb",Tn=(0,r.pM)({__name:"thumb",props:Wn,setup(e){const t=e,l=(0,r.WQ)(kn),n=(0,C.DU)("scrollbar");l||(0,On.$)(Fn,"can not inject scrollbar context");const s=(0,o.KR)(),d=(0,o.KR)(),c=(0,o.KR)({}),p=(0,o.KR)(!1);let f=!1,v=!1,h=0,m=0,g=u.oc?document.onselectstart:null;const b=(0,r.EW)(()=>En[t.vertical?"vertical":"horizontal"]),y=(0,r.EW)(()=>Sn({size:t.size,move:t.move,bar:b.value})),w=(0,r.EW)(()=>s.value[b.value.offset]**2/l.wrapElement[b.value.scrollSize]/t.ratio/d.value[b.value.offset]),R=e=>{var t;if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;null==(t=window.getSelection())||t.removeAllRanges(),E(e);const l=e.currentTarget;l&&(c.value[b.value.axis]=l[b.value.offset]-(e[b.value.client]-l.getBoundingClientRect()[b.value.direction]))},x=e=>{if(!d.value||!s.value||!l.wrapElement)return;const t=Math.abs(e.target.getBoundingClientRect()[b.value.direction]-e[b.value.client]),n=d.value[b.value.offset]/2,r=100*(t-n)*w.value/s.value[b.value.offset];l.wrapElement[b.value.scroll]=r*l.wrapElement[b.value.scrollSize]/100},E=e=>{e.stopImmediatePropagation(),f=!0,h=l.wrapElement.scrollHeight,m=l.wrapElement.scrollWidth,document.addEventListener("mousemove",S),document.addEventListener("mouseup",k),g=document.onselectstart,document.onselectstart=()=>!1},S=e=>{if(!s.value||!d.value)return;if(!1===f)return;const t=c.value[b.value.axis];if(!t)return;const n=-1*(s.value.getBoundingClientRect()[b.value.direction]-e[b.value.client]),r=d.value[b.value.offset]-t,o=100*(n-r)*w.value/s.value[b.value.offset];"scrollLeft"===b.value.scroll?l.wrapElement[b.value.scroll]=o*m/100:l.wrapElement[b.value.scroll]=o*h/100},k=()=>{f=!1,c.value[b.value.axis]=0,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",k),F(),v&&(p.value=!1)},W=()=>{v=!1,p.value=!!t.size},O=()=>{v=!0,p.value=f};(0,r.xo)(()=>{F(),document.removeEventListener("mouseup",k)});const F=()=>{document.onselectstart!==g&&(document.onselectstart=g)};return(0,Sl.MLh)((0,o.lW)(l,"scrollbarElement"),"mousemove",W),(0,Sl.MLh)((0,o.lW)(l,"scrollbarElement"),"mouseleave",O),(e,t)=>((0,r.uX)(),(0,r.Wv)(a.eB,{name:(0,o.R1)(n).b("fade"),persisted:""},{default:(0,r.k6)(()=>[(0,r.bo)((0,r.Lk)("div",{ref_key:"instance",ref:s,class:(0,i.C4)([(0,o.R1)(n).e("bar"),(0,o.R1)(n).is((0,o.R1)(b).key)]),onMousedown:x,onClick:(0,a.D$)(()=>{},["stop"])},[(0,r.Lk)("div",{ref_key:"thumb",ref:d,class:(0,i.C4)((0,o.R1)(n).e("thumb")),style:(0,i.Tr)((0,o.R1)(y)),onMousedown:R},null,38)],42,["onClick"]),[[a.aG,e.always||p.value]])]),_:1},8,["name"]))}});var An=(0,w.A)(Tn,[["__file","thumb.vue"]]);const Ln=(0,c.b_)({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),_n=(0,r.pM)({__name:"bar",props:Ln,setup(e,{expose:t}){const l=e,n=(0,r.WQ)(kn),a=(0,o.KR)(0),i=(0,o.KR)(0),s=(0,o.KR)(""),u=(0,o.KR)(""),d=(0,o.KR)(1),c=(0,o.KR)(1),p=e=>{if(e){const t=e.offsetHeight-xn,l=e.offsetWidth-xn;i.value=100*e.scrollTop/t*d.value,a.value=100*e.scrollLeft/l*c.value}},f=()=>{const e=null==n?void 0:n.wrapElement;if(!e)return;const t=e.offsetHeight-xn,r=e.offsetWidth-xn,o=t**2/e.scrollHeight,a=r**2/e.scrollWidth,i=Math.max(o,l.minSize),p=Math.max(a,l.minSize);d.value=o/(t-o)/(i/(t-i)),c.value=a/(r-a)/(p/(r-p)),u.value=i+xn((0,r.uX)(),(0,r.CE)(r.FK,null,[(0,r.bF)(An,{move:a.value,ratio:c.value,size:s.value,always:e.always},null,8,["move","ratio","size","always"]),(0,r.bF)(An,{move:i.value,ratio:d.value,size:u.value,vertical:"",always:e.always},null,8,["move","ratio","size","always"])],64))}});var Mn=(0,w.A)(_n,[["__file","bar.vue"]]);const Kn=(0,c.b_)({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:(0,c.jq)([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...(0,tl.l)(["ariaLabel","ariaOrientation"])}),Bn={"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(p.Et)};var Pn=l(76031);const Nn="ElScrollbar",In=(0,r.pM)({name:Nn}),$n=(0,r.pM)({...In,props:Kn,emits:Bn,setup(e,{expose:t,emit:l}){const n=e,a=(0,C.DU)("scrollbar");let s,u,d=0,c=0,f="";const v={bottom:!1,top:!1,right:!1,left:!1},h=(0,o.KR)(),m=(0,o.KR)(),g=(0,o.KR)(),b=(0,o.KR)(),y=(0,r.EW)(()=>{const e={};return n.height&&(e.height=(0,Pn._V)(n.height)),n.maxHeight&&(e.maxHeight=(0,Pn._V)(n.maxHeight)),[n.wrapStyle,e]}),w=(0,r.EW)(()=>[n.wrapClass,a.e("wrap"),{[a.em("wrap","hidden-default")]:!n.native}]),R=(0,r.EW)(()=>[a.e("view"),n.viewClass]),x=e=>{var t;return null!=(t=v[e])&&t},E={top:"bottom",bottom:"top",left:"right",right:"left"},S=e=>{const t=E[f];if(!t)return;const l=e[f],n=e[t];l&&!v[f]&&(v[f]=!0),!n&&v[t]&&(v[t]=!1)},k=()=>{var e;if(m.value){null==(e=b.value)||e.handleScroll(m.value);const t=d,r=c;d=m.value.scrollTop,c=m.value.scrollLeft;const o={bottom:d+m.value.clientHeight>=m.value.scrollHeight-n.distance,top:d<=n.distance&&0!==t,right:c+m.value.clientWidth>=m.value.scrollWidth-n.distance&&r!==c,left:c<=n.distance&&0!==r};if(l("scroll",{scrollTop:d,scrollLeft:c}),t!==d&&(f=d>t?"bottom":"top"),r!==c&&(f=c>r?"right":"left"),n.distance>0){if(x(f))return;S(o)}o[f]&&l("end-reached",f)}};function W(e,t){(0,i.Gv)(e)?m.value.scrollTo(e):(0,p.Et)(e)&&(0,p.Et)(t)&&m.value.scrollTo(e,t)}const O=e=>{(0,p.Et)(e)&&(m.value.scrollTop=e)},F=e=>{(0,p.Et)(e)&&(m.value.scrollLeft=e)},T=()=>{var e;null==(e=b.value)||e.update(),v[f]=!1};return(0,r.wB)(()=>n.noresize,e=>{e?(null==s||s(),null==u||u()):(({stop:s}=(0,Sl.wYm)(g,T)),u=(0,Sl.MLh)("resize",T))},{immediate:!0}),(0,r.wB)(()=>[n.maxHeight,n.height],()=>{n.native||(0,r.dY)(()=>{var e;T(),m.value&&(null==(e=b.value)||e.handleScroll(m.value))})}),(0,r.Gt)(kn,(0,o.Kh)({scrollbarElement:h,wrapElement:m})),(0,r.n)(()=>{m.value&&(m.value.scrollTop=d,m.value.scrollLeft=c)}),(0,r.sV)(()=>{n.native||(0,r.dY)(()=>{T()})}),(0,r.$u)(()=>T()),t({wrapRef:m,update:T,scrollTo:W,setScrollTop:O,setScrollLeft:F,handleScroll:k}),(e,t)=>((0,r.uX)(),(0,r.CE)("div",{ref_key:"scrollbarRef",ref:h,class:(0,i.C4)((0,o.R1)(a).b())},[(0,r.Lk)("div",{ref_key:"wrapRef",ref:m,class:(0,i.C4)((0,o.R1)(w)),style:(0,i.Tr)((0,o.R1)(y)),tabindex:e.tabindex,onScroll:k},[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.tag),{id:e.id,ref_key:"resizeRef",ref:g,class:(0,i.C4)((0,o.R1)(R)),style:(0,i.Tr)(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,["tabindex"]),e.native?(0,r.Q3)("v-if",!0):((0,r.uX)(),(0,r.Wv)(Mn,{key:0,ref_key:"barRef",ref:b,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}});var jn=(0,w.A)($n,[["__file","scrollbar.vue"]]);const zn=(0,S.GU)(jn);var Dn=l(18472);const Vn=(0,c.b_)({type:{type:String,values:["primary","success","info","warning","danger"],default:"primary"},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:Dn.I},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),qn={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent};var Hn=l(72207);const Xn=(0,r.pM)({name:"ElTag"}),Un=(0,r.pM)({...Xn,props:Vn,emits:qn,setup(e,{emit:t}){const l=e,n=(0,Hn.NV)(),u=(0,C.DU)("tag"),d=(0,r.EW)(()=>{const{type:e,hit:t,effect:r,closable:o,round:a}=l;return[u.b(),u.is("closable",o),u.m(e||"primary"),u.m(n.value),u.m(r),u.is("hit",t),u.is("round",a)]}),c=e=>{t("close",e)},p=e=>{t("click",e)},f=e=>{var t,l,n;(null==(n=null==(l=null==(t=null==e?void 0:e.component)?void 0:t.subTree)?void 0:l.component)?void 0:n.bum)&&(e.component.subTree.component.bum=null)};return(e,t)=>e.disableTransitions?((0,r.uX)(),(0,r.CE)("span",{key:0,class:(0,i.C4)((0,o.R1)(d)),style:(0,i.Tr)({backgroundColor:e.color}),onClick:p},[(0,r.Lk)("span",{class:(0,i.C4)((0,o.R1)(u).e("content"))},[(0,r.RG)(e.$slots,"default")],2),e.closable?((0,r.uX)(),(0,r.Wv)((0,o.R1)(s.tk),{key:0,class:(0,i.C4)((0,o.R1)(u).e("close")),onClick:(0,a.D$)(c,["stop"])},{default:(0,r.k6)(()=>[(0,r.bF)((0,o.R1)(W.bm))]),_:1},8,["class","onClick"])):(0,r.Q3)("v-if",!0)],6)):((0,r.uX)(),(0,r.Wv)(a.eB,{key:1,name:`${(0,o.R1)(u).namespace.value}-zoom-in-center`,appear:"",onVnodeMounted:f},{default:(0,r.k6)(()=>[(0,r.Lk)("span",{class:(0,i.C4)((0,o.R1)(d)),style:(0,i.Tr)({backgroundColor:e.color}),onClick:p},[(0,r.Lk)("span",{class:(0,i.C4)((0,o.R1)(u).e("content"))},[(0,r.RG)(e.$slots,"default")],2),e.closable?((0,r.uX)(),(0,r.Wv)((0,o.R1)(s.tk),{key:0,class:(0,i.C4)((0,o.R1)(u).e("close")),onClick:(0,a.D$)(c,["stop"])},{default:(0,r.k6)(()=>[(0,r.bF)((0,o.R1)(W.bm))]),_:1},8,["class","onClick"])):(0,r.Q3)("v-if",!0)],6)]),_:3},8,["name"]))}});var Gn=(0,w.A)(Un,[["__file","tag.vue"]]);const Qn=(0,S.GU)(Gn);var Yn=l(92049);function Zn(){if(!arguments.length)return[];var e=arguments[0];return(0,Yn.A)(e)?e:[e]}var Jn=Zn,er=l(77500),tr=l(6937);const lr="ElOption",nr=(0,c.b_)({value:{type:[String,Number,Boolean,Object],required:!0},label:{type:[String,Number]},created:Boolean,disabled:Boolean});var rr=l(69527);function or(e,t){const l=(0,r.WQ)(tr.u);l||(0,On.$)(lr,"usage: ");const n=(0,r.WQ)(tr.P,{disabled:!1}),a=(0,r.EW)(()=>f(Jn(l.props.modelValue),e.value)),s=(0,r.EW)(()=>{var e;if(l.props.multiple){const t=Jn(null!=(e=l.props.modelValue)?e:[]);return!a.value&&t.length>=l.props.multipleLimit&&l.props.multipleLimit>0}return!1}),u=(0,r.EW)(()=>{var t;return null!=(t=e.label)?t:(0,i.Gv)(e.value)?"":e.value}),d=(0,r.EW)(()=>e.value||e.label||""),c=(0,r.EW)(()=>e.disabled||t.groupDisabled||s.value),p=(0,r.nI)(),f=(t=[],n)=>{if((0,i.Gv)(e.value)){const e=l.props.valueKey;return t&&t.some(t=>(0,o.ux)((0,er.A)(t,e))===(0,er.A)(n,e))}return t&&t.includes(n)},v=()=>{e.disabled||n.disabled||(l.states.hoveringIndex=l.optionsArray.indexOf(p.proxy))},h=l=>{const n=new RegExp((0,rr.qr)(l),"i");t.visible=n.test(String(u.value))||e.created};return(0,r.wB)(()=>u.value,()=>{e.created||l.props.remote||l.setSelected()}),(0,r.wB)(()=>e.value,(t,n)=>{const{remote:r,valueKey:o}=l.props,a=r?t!==n:!(0,I.A)(t,n);if(a&&(l.onOptionDestroy(n,p.proxy),l.onOptionCreate(p.proxy)),!e.created&&!r){if(o&&(0,i.Gv)(t)&&(0,i.Gv)(n)&&t[o]===n[o])return;l.setSelected()}}),(0,r.wB)(()=>n.disabled,()=>{t.groupDisabled=n.disabled},{immediate:!0}),{select:l,currentLabel:u,currentValue:d,itemSelected:a,isDisabled:c,hoverItem:v,updateOption:h}}const ar=(0,r.pM)({name:lr,componentName:lr,props:nr,setup(e){const t=(0,C.DU)("select"),l=(0,zl.Bi)(),n=(0,r.EW)(()=>[t.be("dropdown","item"),t.is("disabled",(0,o.R1)(u)),t.is("selected",(0,o.R1)(s)),t.is("hovering",(0,o.R1)(v))]),a=(0,o.Kh)({index:-1,groupDisabled:!1,visible:!0,hover:!1}),{currentLabel:i,itemSelected:s,isDisabled:u,select:d,hoverItem:c,updateOption:p}=or(e,a),{visible:f,hover:v}=(0,o.QW)(a),h=(0,r.nI)().proxy;function m(){u.value||d.handleOptionSelect(h)}return d.onOptionCreate(h),(0,r.xo)(()=>{const e=h.value;(0,r.dY)(()=>{const{selected:t}=d.states,l=t.some(e=>e.value===h.value);d.states.cachedOptions.get(e)!==h||l||d.states.cachedOptions.delete(e)}),d.onOptionDestroy(e,h)}),{ns:t,id:l,containerKls:n,currentLabel:i,itemSelected:s,isDisabled:u,select:d,visible:f,hover:v,states:a,hoverItem:c,updateOption:p,selectOptionClick:m}}});function ir(e,t){return(0,r.bo)(((0,r.uX)(),(0,r.CE)("li",{id:e.id,class:(0,i.C4)(e.containerKls),role:"option","aria-disabled":e.isDisabled||void 0,"aria-selected":e.itemSelected,onMousemove:e.hoverItem,onClick:(0,a.D$)(e.selectOptionClick,["stop"])},[(0,r.RG)(e.$slots,"default",{},()=>[(0,r.Lk)("span",null,(0,i.v_)(e.currentLabel),1)])],42,["id","aria-disabled","aria-selected","onMousemove","onClick"])),[[a.aG,e.visible]])}var sr=(0,w.A)(ar,[["render",ir],["__file","option.vue"]]);const ur=(0,r.pM)({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const e=(0,r.WQ)(tr.u),t=(0,C.DU)("select"),l=(0,r.EW)(()=>e.props.popperClass),n=(0,r.EW)(()=>e.props.multiple),a=(0,r.EW)(()=>e.props.fitInputWidth),i=(0,o.KR)("");function s(){var t;i.value=`${null==(t=e.selectRef)?void 0:t.offsetWidth}px`}return(0,r.sV)(()=>{s(),(0,Sl.wYm)(e.selectRef,s)}),{ns:t,minWidth:i,popperClass:l,isMultiple:n,isFitInputWidth:a}}});function dr(e,t,l,n,o,a){return(0,r.uX)(),(0,r.CE)("div",{class:(0,i.C4)([e.ns.b("dropdown"),e.ns.is("multiple",e.isMultiple),e.popperClass]),style:(0,i.Tr)({[e.isFitInputWidth?"width":"minWidth"]:e.minWidth})},[e.$slots.header?((0,r.uX)(),(0,r.CE)("div",{key:0,class:(0,i.C4)(e.ns.be("dropdown","header"))},[(0,r.RG)(e.$slots,"header")],2)):(0,r.Q3)("v-if",!0),(0,r.RG)(e.$slots,"default"),e.$slots.footer?((0,r.uX)(),(0,r.CE)("div",{key:1,class:(0,i.C4)(e.ns.be("dropdown","footer"))},[(0,r.RG)(e.$slots,"footer")],2)):(0,r.Q3)("v-if",!0)],6)}var cr=(0,w.A)(ur,[["render",dr],["__file","select-dropdown.vue"]]),pr=l(23149),fr=l(41917),vr=function(){return fr.A.Date.now()},hr=vr,mr=/\s/;function gr(e){var t=e.length;while(t--&&mr.test(e.charAt(t)));return t}var br=gr,yr=/^\s+/;function wr(e){return e?e.slice(0,br(e)+1).replace(yr,""):e}var Cr=wr,Rr=l(61882),xr=NaN,Er=/^[-+]0x[0-9a-f]+$/i,Sr=/^0b[01]+$/i,kr=/^0o[0-7]+$/i,Wr=parseInt;function Or(e){if("number"==typeof e)return e;if((0,Rr.A)(e))return xr;if((0,pr.A)(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=(0,pr.A)(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Cr(e);var l=Sr.test(e);return l||kr.test(e)?Wr(e.slice(2),l?2:8):Er.test(e)?xr:+e}var Fr=Or,Tr="Expected a function",Ar=Math.max,Lr=Math.min;function _r(e,t,l){var n,r,o,a,i,s,u=0,d=!1,c=!1,p=!0;if("function"!=typeof e)throw new TypeError(Tr);function f(t){var l=n,o=r;return n=r=void 0,u=t,a=e.apply(o,l),a}function v(e){return u=e,i=setTimeout(g,t),d?f(e):a}function h(e){var l=e-s,n=e-u,r=t-l;return c?Lr(r,o-n):r}function m(e){var l=e-s,n=e-u;return void 0===s||l>=t||l<0||c&&n>=o}function g(){var e=hr();if(m(e))return b(e);i=setTimeout(g,h(e))}function b(e){return i=void 0,p&&n?f(e):(n=r=void 0,a)}function y(){void 0!==i&&clearTimeout(i),u=0,n=s=r=i=void 0}function w(){return void 0===i?a:b(hr())}function C(){var e=hr(),l=m(e);if(n=arguments,r=this,s=e,l){if(void 0===i)return v(s);if(c)return clearTimeout(i),i=setTimeout(g,t),f(s)}return void 0===i&&(i=setTimeout(g,t)),a}return t=Fr(t)||0,(0,pr.A)(l)&&(d=!!l.leading,c="maxWait"in l,o=c?Ar(Fr(l.maxWait)||0,t):o,p="trailing"in l?!!l.trailing:p),C.cancel=y,C.flush=w,C}var Mr=_r;function Kr(e,t,l,n){var r=e.length,o=l+(n?1:-1);while(n?o--:++o{const{t:l}=(0,A.Ym)(),n=(0,zl.Bi)(),a=(0,C.DU)("select"),s=(0,C.DU)("input"),d=(0,o.Kh)({inputValue:"",options:new Map,cachedOptions:new Map,optionValues:[],selected:[],selectionWidth:0,collapseItemWidth:0,selectedLabel:"",hoveringIndex:-1,previousQuery:null,inputHovering:!1,menuVisibleOnFocus:!1,isBeforeHide:!1}),c=(0,o.KR)(),f=(0,o.KR)(),v=(0,o.KR)(),m=(0,o.KR)(),g=(0,o.KR)(),b=(0,o.KR)(),y=(0,o.KR)(),w=(0,o.KR)(),R=(0,o.KR)(),x=(0,o.KR)(),E=(0,o.KR)(),S=(0,o.KR)(!1),k=(0,o.KR)(),{form:W,formItem:O}=(0,ko.j)(),{inputId:F}=(0,ko.W)(e,{formItemContext:O}),{valueOnClear:T,isEmptyValue:L}=(0,Wo.fQ)(e),{isComposing:_,handleCompositionStart:M,handleCompositionUpdate:K,handleCompositionEnd:B}=(0,Oo.o)({afterComposition:e=>ye(e)}),P=(0,r.EW)(()=>e.disabled||!!(null==W?void 0:W.disabled)),{wrapperRef:N,isFocused:$,handleBlur:j}=(0,Fo.K)(g,{disabled:P,afterFocus(){e.automaticDropdown&&!S.value&&(S.value=!0,d.menuVisibleOnFocus=!0)},beforeBlur(e){var t,l;return(null==(t=v.value)?void 0:t.isFocusInsideContent(e))||(null==(l=m.value)?void 0:l.isFocusInsideContent(e))},afterBlur(){var t;S.value=!1,d.menuVisibleOnFocus=!1,e.validateEvent&&(null==(t=null==O?void 0:O.validate)||t.call(O,"blur").catch(e=>(0,On.U)()))}}),z=(0,r.EW)(()=>(0,i.cy)(e.modelValue)?e.modelValue.length>0:!L(e.modelValue)),D=(0,r.EW)(()=>{var e;return null!=(e=null==W?void 0:W.statusIcon)&&e}),V=(0,r.EW)(()=>e.clearable&&!P.value&&d.inputHovering&&z.value),q=(0,r.EW)(()=>e.remote&&e.filterable&&!e.remoteShowSuffix?"":e.suffixIcon),H=(0,r.EW)(()=>a.is("reverse",!(!q.value||!S.value))),X=(0,r.EW)(()=>(null==O?void 0:O.validateState)||""),U=(0,r.EW)(()=>X.value&&h.vK[X.value]),G=(0,r.EW)(()=>e.remote?300:0),Q=(0,r.EW)(()=>e.remote&&!d.inputValue&&0===d.options.size),Y=(0,r.EW)(()=>e.loading?e.loadingText||l("el.select.loading"):e.filterable&&d.inputValue&&d.options.size>0&&0===Z.value?e.noMatchText||l("el.select.noMatch"):0===d.options.size?e.noDataText||l("el.select.noData"):null),Z=(0,r.EW)(()=>J.value.filter(e=>e.visible).length),J=(0,r.EW)(()=>{const e=Array.from(d.options.values()),t=[];return d.optionValues.forEach(l=>{const n=e.findIndex(e=>e.value===l);n>-1&&t.push(e[n])}),t.length>=e.length?t:e}),ee=(0,r.EW)(()=>Array.from(d.cachedOptions.values())),te=(0,r.EW)(()=>{const t=J.value.filter(e=>!e.created).some(e=>e.currentLabel===d.inputValue);return e.filterable&&e.allowCreate&&""!==d.inputValue&&!t}),le=()=>{e.filterable&&(0,i.Tn)(e.filterMethod)||e.filterable&&e.remote&&(0,i.Tn)(e.remoteMethod)||J.value.forEach(e=>{var t;null==(t=e.updateOption)||t.call(e,d.inputValue)})},ne=(0,Hn.NV)(),re=(0,r.EW)(()=>["small"].includes(ne.value)?"small":"default"),oe=(0,r.EW)({get(){return S.value&&!Q.value},set(e){S.value=e}}),ae=(0,r.EW)(()=>{if(e.multiple&&!(0,p.b0)(e.modelValue))return 0===Jn(e.modelValue).length&&!d.inputValue;const t=(0,i.cy)(e.modelValue)?e.modelValue[0]:e.modelValue;return!e.filterable&&!(0,p.b0)(t)||!d.inputValue}),ie=(0,r.EW)(()=>{var t;const n=null!=(t=e.placeholder)?t:l("el.select.placeholder");return e.multiple||!z.value?n:d.selectedLabel}),se=(0,r.EW)(()=>u.un?null:"mouseenter");(0,r.wB)(()=>e.modelValue,(t,l)=>{e.multiple&&e.filterable&&!e.reserveKeyword&&(d.inputValue="",ue("")),ce(),!(0,I.A)(t,l)&&e.validateEvent&&(null==O||O.validate("change").catch(e=>(0,On.U)()))},{flush:"post",deep:!0}),(0,r.wB)(()=>S.value,e=>{e?ue(d.inputValue):(d.inputValue="",d.previousQuery=null,d.isBeforeHide=!0),t("visible-change",e)}),(0,r.wB)(()=>d.options.entries(),()=>{u.oc&&(ce(),e.defaultFirstOption&&(e.filterable||e.remote)&&Z.value&&de())},{flush:"post"}),(0,r.wB)([()=>d.hoveringIndex,J],([e])=>{(0,p.Et)(e)&&e>-1?k.value=J.value[e]||{}:k.value={},J.value.forEach(e=>{e.hover=k.value===e})}),(0,r.nT)(()=>{d.isBeforeHide||le()});const ue=t=>{d.previousQuery===t||_.value||(d.previousQuery=t,e.filterable&&(0,i.Tn)(e.filterMethod)?e.filterMethod(t):e.filterable&&e.remote&&(0,i.Tn)(e.remoteMethod)&&e.remoteMethod(t),e.defaultFirstOption&&(e.filterable||e.remote)&&Z.value?(0,r.dY)(de):(0,r.dY)(fe))},de=()=>{const e=J.value.filter(e=>e.visible&&!e.disabled&&!e.states.groupDisabled),t=e.find(e=>e.created),l=e[0],n=J.value.map(e=>e.value);d.hoveringIndex=We(n,t||l)},ce=()=>{if(!e.multiple){const t=(0,i.cy)(e.modelValue)?e.modelValue[0]:e.modelValue,l=pe(t);return d.selectedLabel=l.currentLabel,void(d.selected=[l])}d.selectedLabel="";const t=[];(0,p.b0)(e.modelValue)||Jn(e.modelValue).forEach(e=>{t.push(pe(e))}),d.selected=t},pe=t=>{let l;const n=(0,i.Qd)(t);for(let a=d.cachedOptions.size-1;a>=0;a--){const r=ee.value[a],o=n?(0,er.A)(r.value,e.valueKey)===(0,er.A)(t,e.valueKey):r.value===t;if(o){l={value:t,currentLabel:r.currentLabel,get isDisabled(){return r.isDisabled}};break}}if(l)return l;const r=n?t.label:null!=t?t:"",o={value:t,currentLabel:r};return o},fe=()=>{d.hoveringIndex=J.value.findIndex(e=>d.selected.some(t=>$e(t)===$e(e)))},ve=()=>{d.selectionWidth=Number.parseFloat(window.getComputedStyle(f.value).width)},he=()=>{d.collapseItemWidth=x.value.getBoundingClientRect().width},me=()=>{var e,t;null==(t=null==(e=v.value)?void 0:e.updatePopper)||t.call(e)},ge=()=>{var e,t;null==(t=null==(e=m.value)?void 0:e.updatePopper)||t.call(e)},be=()=>{d.inputValue.length>0&&!S.value&&(S.value=!0),ue(d.inputValue)},ye=t=>{if(d.inputValue=t.target.value,!e.remote)return be();we()},we=Mr(()=>{be()},G.value),Ce=l=>{(0,I.A)(e.modelValue,l)||t(To.YU,l)},Re=e=>So(e,e=>{const t=d.cachedOptions.get(e);return t&&!t.disabled&&!t.states.groupDisabled}),xe=l=>{if(e.multiple&&l.code!==ul.R.delete&&l.target.value.length<=0){const l=Jn(e.modelValue).slice(),n=Re(l);if(n<0)return;const r=l[n];l.splice(n,1),t(To.l4,l),Ce(l),t("remove-tag",r)}},Ee=(l,n)=>{const r=d.selected.indexOf(n);if(r>-1&&!P.value){const l=Jn(e.modelValue).slice();l.splice(r,1),t(To.l4,l),Ce(l),t("remove-tag",n.value)}l.stopPropagation(),_e()},Se=l=>{l.stopPropagation();const n=e.multiple?[]:T.value;if(e.multiple)for(const e of d.selected)e.isDisabled&&n.push(e.value);t(To.l4,n),Ce(n),d.hoveringIndex=-1,S.value=!1,t("clear"),_e()},ke=l=>{var n;if(e.multiple){const r=Jn(null!=(n=e.modelValue)?n:[]).slice(),o=We(r,l);o>-1?r.splice(o,1):(e.multipleLimit<=0||r.length{Oe(l)})},We=(t,l)=>(0,p.b0)(l)?-1:(0,i.Gv)(l.value)?t.findIndex(t=>(0,I.A)((0,er.A)(t,e.valueKey),$e(l))):t.indexOf(l.value),Oe=e=>{var t,l,n,r,o;const s=(0,i.cy)(e)?e[0]:e;let u=null;if(null==s?void 0:s.value){const e=J.value.filter(e=>e.value===s.value);e.length>0&&(u=e[0].$el)}if(v.value&&u){const e=null==(r=null==(n=null==(l=null==(t=v.value)?void 0:t.popperRef)?void 0:l.contentRef)?void 0:n.querySelector)?void 0:r.call(n,`.${a.be("dropdown","wrap")}`);e&&(0,Ao.Rt)(e,u)}null==(o=E.value)||o.handleScroll()},Fe=e=>{d.options.set(e.value,e),d.cachedOptions.set(e.value,e)},Te=(e,t)=>{d.options.get(e)===t&&d.options.delete(e)},Ae=(0,r.EW)(()=>{var e,t;return null==(t=null==(e=v.value)?void 0:e.popperRef)?void 0:t.contentRef}),Le=()=>{d.isBeforeHide=!1,(0,r.dY)(()=>{var e;null==(e=E.value)||e.update(),Oe(d.selected)})},_e=()=>{var e;null==(e=g.value)||e.focus()},Me=()=>{var e;if(S.value)return S.value=!1,void(0,r.dY)(()=>{var e;return null==(e=g.value)?void 0:e.blur()});null==(e=g.value)||e.blur()},Ke=e=>{Se(e)},Be=e=>{if(S.value=!1,$.value){const t=new FocusEvent("focus",e);(0,r.dY)(()=>j(t))}},Pe=()=>{d.inputValue.length>0?d.inputValue="":S.value=!1},Ne=()=>{P.value||(u.un&&(d.inputHovering=!0),d.menuVisibleOnFocus?d.menuVisibleOnFocus=!1:S.value=!S.value)},Ie=()=>{if(S.value){const e=J.value[d.hoveringIndex];e&&!e.isDisabled&&ke(e)}else Ne()},$e=t=>(0,i.Gv)(t.value)?(0,er.A)(t.value,e.valueKey):t.value,je=(0,r.EW)(()=>J.value.filter(e=>e.visible).every(e=>e.isDisabled)),ze=(0,r.EW)(()=>e.multiple?e.collapseTags?d.selected.slice(0,e.maxCollapseTags):d.selected:[]),De=(0,r.EW)(()=>e.multiple&&e.collapseTags?d.selected.slice(e.maxCollapseTags):[]),Ve=e=>{if(S.value){if(0!==d.options.size&&0!==Z.value&&!_.value&&!je.value){"next"===e?(d.hoveringIndex++,d.hoveringIndex===d.options.size&&(d.hoveringIndex=0)):"prev"===e&&(d.hoveringIndex--,d.hoveringIndex<0&&(d.hoveringIndex=d.options.size-1));const t=J.value[d.hoveringIndex];!t.isDisabled&&t.visible||Ve(e),(0,r.dY)(()=>Oe(k.value))}}else S.value=!0},qe=()=>{if(!f.value)return 0;const e=window.getComputedStyle(f.value);return Number.parseFloat(e.gap||"6px")},He=(0,r.EW)(()=>{const t=qe(),l=x.value&&1===e.maxCollapseTags?d.selectionWidth-d.collapseItemWidth-t:d.selectionWidth;return{maxWidth:`${l}px`}}),Xe=(0,r.EW)(()=>({maxWidth:`${d.selectionWidth}px`})),Ue=e=>{t("popup-scroll",e)};let Ge;return(0,Sl.wYm)(f,ve),(0,Sl.wYm)(N,me),(0,Sl.wYm)(R,ge),(0,Sl.wYm)(x,he),(0,r.wB)(()=>oe.value,e=>{e?Ge=(0,Sl.wYm)(w,me).stop:(null==Ge||Ge(),Ge=void 0)}),(0,r.sV)(()=>{ce()}),{inputId:F,contentId:n,nsSelect:a,nsInput:s,states:d,isFocused:$,expanded:S,optionsArray:J,hoverOption:k,selectSize:ne,filteredOptionsCount:Z,updateTooltip:me,updateTagTooltip:ge,debouncedOnInputChange:we,onInput:ye,deletePrevTag:xe,deleteTag:Ee,deleteSelected:Se,handleOptionSelect:ke,scrollToOption:Oe,hasModelValue:z,shouldShowPlaceholder:ae,currentPlaceholder:ie,mouseEnterEventName:se,needStatusIcon:D,showClose:V,iconComponent:q,iconReverse:H,validateState:X,validateIcon:U,showNewOption:te,updateOptions:le,collapseTagSize:re,setSelected:ce,selectDisabled:P,emptyText:Y,handleCompositionStart:M,handleCompositionUpdate:K,handleCompositionEnd:B,onOptionCreate:Fe,onOptionDestroy:Te,handleMenuEnter:Le,focus:_e,blur:Me,handleClearClick:Ke,handleClickOutside:Be,handleEsc:Pe,toggleMenu:Ne,selectOption:Ie,getValueKey:$e,navigateOptions:Ve,dropdownMenuVisible:oe,showTagList:ze,collapseTagList:De,popupScroll:Ue,tagStyle:He,collapseTagStyle:Xe,popperRef:Ae,inputRef:g,tooltipRef:v,tagTooltipRef:m,prefixRef:b,suffixRef:y,selectRef:c,wrapperRef:N,selectionRef:f,scrollbarRef:E,menuRef:w,tagMenuRef:R,collapseItemRef:x}};var _o=(0,r.pM)({name:"ElOptions",setup(e,{slots:t}){const l=(0,r.WQ)(tr.u);let n=[];return()=>{var e,r;const o=null==(e=t.default)?void 0:e.call(t),a=[];function s(e){(0,i.cy)(e)&&e.forEach(e=>{var t,l,n,r;const o=null==(t=(null==e?void 0:e.type)||{})?void 0:t.name;"ElOptionGroup"===o?s((0,i.Kg)(e.children)||(0,i.cy)(e.children)||!(0,i.Tn)(null==(l=e.children)?void 0:l.default)?e.children:null==(n=e.children)?void 0:n.default()):"ElOption"===o?a.push(null==(r=e.props)?void 0:r.value):(0,i.cy)(e.children)&&s(e.children)})}return o.length&&s(null==(r=o[0])?void 0:r.children),(0,I.A)(a,n)||(n=a,l&&(l.states.optionValues=a)),o}}}),Mo=l(838);const Ko=(0,c.b_)({name:String,id:String,modelValue:{type:(0,c.jq)([Array,String,Number,Boolean,Object]),default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:Mo.mU,effect:{type:(0,c.jq)(String),default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},popperOptions:{type:(0,c.jq)(Object),default:()=>({})},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:{type:(0,c.jq)(Function)},filterMethod:{type:(0,c.jq)(Function)},multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:"value"},collapseTags:Boolean,collapseTagsTooltip:Boolean,maxCollapseTags:{type:Number,default:1},teleported:il.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:h.Ze,default:W.R$5},fitInputWidth:Boolean,suffixIcon:{type:h.Ze,default:W.yd$},tagType:{...Vn.type,default:"info"},tagEffect:{...Vn.effect,default:"light"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,showArrow:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:(0,c.jq)(String),values:se,default:"bottom-start"},fallbackPlacements:{type:(0,c.jq)(Array),default:["bottom-start","top-start","right","left"]},tabindex:{type:[String,Number],default:0},appendTo:il.appendTo,options:{type:(0,c.jq)(Array)},props:{type:(0,c.jq)(Object)},...Wo.bs,...(0,tl.l)(["ariaLabel"])}),Bo=(To.l4,To.YU,Bn.scroll,new Map);if(u.oc){let e;document.addEventListener("mousedown",t=>e=t),document.addEventListener("mouseup",t=>{if(e){for(const l of Bo.values())for(const{documentHandler:n}of l)n(t,e);e=void 0}})}function Po(e,t){let l=[];return(0,i.cy)(t.arg)?l=t.arg:(0,p.vq)(t.arg)&&l.push(t.arg),function(n,r){const o=t.instance.popperRef,a=n.target,i=null==r?void 0:r.target,s=!t||!t.instance,u=!a||!i,d=e.contains(a)||e.contains(i),c=e===a,p=l.length&&l.some(e=>null==e?void 0:e.contains(a))||l.length&&l.includes(i),f=o&&(o.contains(a)||o.contains(i));s||u||d||c||p||f||t.value(n,r)}}const No={beforeMount(e,t){Bo.has(e)||Bo.set(e,[]),Bo.get(e).push({documentHandler:Po(e,t),bindingFn:t.value})},updated(e,t){Bo.has(e)||Bo.set(e,[]);const l=Bo.get(e),n=l.findIndex(e=>e.bindingFn===t.oldValue),r={documentHandler:Po(e,t),bindingFn:t.value};n>=0?l.splice(n,1,r):l.push(r)},unmounted(e){Bo.delete(e)}};function Io(){const e=(0,o.IJ)(),t=(0,o.KR)(0),l=11,n=(0,r.EW)(()=>({minWidth:`${Math.max(t.value,l)}px`})),a=()=>{var l,n;t.value=null!=(n=null==(l=e.value)?void 0:l.getBoundingClientRect().width)?n:0};return(0,Sl.wYm)(e,a),{calculatorRef:e,calculatorWidth:t,inputStyle:n}}var $o=l(51338),jo=l(96763);const zo="ElSelect",Do=(0,r.pM)({name:zo,componentName:zo,components:{ElSelectMenu:cr,ElOption:sr,ElOptions:_o,ElTag:Qn,ElScrollbar:zn,ElTooltip:Rn,ElIcon:s.tk},directives:{ClickOutside:No},props:Ko,emits:[To.l4,To.YU,"remove-tag","clear","visible-change","focus","blur","popup-scroll"],setup(e,{emit:t,slots:l}){const n=(0,r.nI)();n.appContext.config.warnHandler=(...e)=>{e[0]&&!e[0].includes('Slot "default" invoked outside of the render function')&&jo.warn(...e)};const a=(0,r.EW)(()=>{const{modelValue:t,multiple:l}=e,n=l?[]:void 0;return(0,i.cy)(t)?l?t:n:l?n:t}),s=(0,o.Kh)({...(0,o.QW)(e),modelValue:a}),u=Lo(s,t),{calculatorRef:d,inputStyle:c}=Io(),p=e=>e.reduce((e,t)=>(e.push(t),t.children&&t.children.length>0&&e.push(...p(t.children)),e),[]),f=e=>{const t=(0,$o.CW)(e||[]);t.forEach(e=>{var t;if((0,i.Gv)(e)&&("ElOption"===e.type.name||"ElTree"===e.type.name)){const l=e.type.name;if("ElTree"===l){const l=(null==(t=e.props)?void 0:t.data)||[],n=p(l);n.forEach(e=>{e.currentLabel=e.label||((0,i.Gv)(e.value)?"":e.value),u.onOptionCreate(e)})}else if("ElOption"===l){const t={...e.props};t.currentLabel=t.label||((0,i.Gv)(t.value)?"":t.value),u.onOptionCreate(t)}}})};(0,r.wB)(()=>{var e;const t=null==(e=l.default)?void 0:e.call(l);return t},t=>{e.persistent||f(t)},{immediate:!0}),(0,r.Gt)(tr.u,(0,o.Kh)({props:s,states:u.states,selectRef:u.selectRef,optionsArray:u.optionsArray,setSelected:u.setSelected,handleOptionSelect:u.handleOptionSelect,onOptionCreate:u.onOptionCreate,onOptionDestroy:u.onOptionDestroy}));const v=(0,r.EW)(()=>e.multiple?u.states.selected.map(e=>e.currentLabel):u.states.selectedLabel);return(0,r.xo)(()=>{n.appContext.config.warnHandler=void 0}),{...u,modelValue:a,selectedLabel:v,calculatorRef:d,inputStyle:c}}});function Vo(e,t){const l=(0,r.g2)("el-tag"),n=(0,r.g2)("el-tooltip"),o=(0,r.g2)("el-icon"),s=(0,r.g2)("el-option"),u=(0,r.g2)("el-options"),d=(0,r.g2)("el-scrollbar"),c=(0,r.g2)("el-select-menu"),p=(0,r.gN)("click-outside");return(0,r.bo)(((0,r.uX)(),(0,r.CE)("div",{ref:"selectRef",class:(0,i.C4)([e.nsSelect.b(),e.nsSelect.m(e.selectSize)]),[(0,i.rU)(e.mouseEnterEventName)]:t=>e.states.inputHovering=!0,onMouseleave:t=>e.states.inputHovering=!1},[(0,r.bF)(n,{ref:"tooltipRef",visible:e.dropdownMenuVisible,placement:e.placement,teleported:e.teleported,"popper-class":[e.nsSelect.e("popper"),e.popperClass],"popper-options":e.popperOptions,"fallback-placements":e.fallbackPlacements,effect:e.effect,pure:"",trigger:"click",transition:`${e.nsSelect.namespace.value}-zoom-in-top`,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,persistent:e.persistent,"append-to":e.appendTo,"show-arrow":e.showArrow,offset:e.offset,onBeforeShow:e.handleMenuEnter,onHide:t=>e.states.isBeforeHide=!1},{default:(0,r.k6)(()=>{var t;return[(0,r.Lk)("div",{ref:"wrapperRef",class:(0,i.C4)([e.nsSelect.e("wrapper"),e.nsSelect.is("focused",e.isFocused),e.nsSelect.is("hovering",e.states.inputHovering),e.nsSelect.is("filterable",e.filterable),e.nsSelect.is("disabled",e.selectDisabled)]),onClick:(0,a.D$)(e.toggleMenu,["prevent"])},[e.$slots.prefix?((0,r.uX)(),(0,r.CE)("div",{key:0,ref:"prefixRef",class:(0,i.C4)(e.nsSelect.e("prefix"))},[(0,r.RG)(e.$slots,"prefix")],2)):(0,r.Q3)("v-if",!0),(0,r.Lk)("div",{ref:"selectionRef",class:(0,i.C4)([e.nsSelect.e("selection"),e.nsSelect.is("near",e.multiple&&!e.$slots.prefix&&!!e.states.selected.length)])},[e.multiple?(0,r.RG)(e.$slots,"tag",{key:0,data:e.states.selected,deleteTag:e.deleteTag,selectDisabled:e.selectDisabled},()=>[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.showTagList,t=>((0,r.uX)(),(0,r.CE)("div",{key:e.getValueKey(t),class:(0,i.C4)(e.nsSelect.e("selected-item"))},[(0,r.bF)(l,{closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":"",style:(0,i.Tr)(e.tagStyle),onClose:l=>e.deleteTag(l,t)},{default:(0,r.k6)(()=>[(0,r.Lk)("span",{class:(0,i.C4)(e.nsSelect.e("tags-text"))},[(0,r.RG)(e.$slots,"label",{label:t.currentLabel,value:t.value},()=>[(0,r.eW)((0,i.v_)(t.currentLabel),1)])],2)]),_:2},1032,["closable","size","type","effect","style","onClose"])],2))),128)),e.collapseTags&&e.states.selected.length>e.maxCollapseTags?((0,r.uX)(),(0,r.Wv)(n,{key:0,ref:"tagTooltipRef",disabled:e.dropdownMenuVisible||!e.collapseTagsTooltip,"fallback-placements":["bottom","top","right","left"],effect:e.effect,placement:"bottom","popper-class":e.popperClass,teleported:e.teleported},{default:(0,r.k6)(()=>[(0,r.Lk)("div",{ref:"collapseItemRef",class:(0,i.C4)(e.nsSelect.e("selected-item"))},[(0,r.bF)(l,{closable:!1,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":"",style:(0,i.Tr)(e.collapseTagStyle)},{default:(0,r.k6)(()=>[(0,r.Lk)("span",{class:(0,i.C4)(e.nsSelect.e("tags-text"))}," + "+(0,i.v_)(e.states.selected.length-e.maxCollapseTags),3)]),_:1},8,["size","type","effect","style"])],2)]),content:(0,r.k6)(()=>[(0,r.Lk)("div",{ref:"tagMenuRef",class:(0,i.C4)(e.nsSelect.e("selection"))},[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.collapseTagList,t=>((0,r.uX)(),(0,r.CE)("div",{key:e.getValueKey(t),class:(0,i.C4)(e.nsSelect.e("selected-item"))},[(0,r.bF)(l,{class:"in-tooltip",closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":"",onClose:l=>e.deleteTag(l,t)},{default:(0,r.k6)(()=>[(0,r.Lk)("span",{class:(0,i.C4)(e.nsSelect.e("tags-text"))},[(0,r.RG)(e.$slots,"label",{label:t.currentLabel,value:t.value},()=>[(0,r.eW)((0,i.v_)(t.currentLabel),1)])],2)]),_:2},1032,["closable","size","type","effect","onClose"])],2))),128))],2)]),_:3},8,["disabled","effect","popper-class","teleported"])):(0,r.Q3)("v-if",!0)]):(0,r.Q3)("v-if",!0),(0,r.Lk)("div",{class:(0,i.C4)([e.nsSelect.e("selected-item"),e.nsSelect.e("input-wrapper"),e.nsSelect.is("hidden",!e.filterable)])},[(0,r.bo)((0,r.Lk)("input",{id:e.inputId,ref:"inputRef","onUpdate:modelValue":t=>e.states.inputValue=t,type:"text",name:e.name,class:(0,i.C4)([e.nsSelect.e("input"),e.nsSelect.is(e.selectSize)]),disabled:e.selectDisabled,autocomplete:e.autocomplete,style:(0,i.Tr)(e.inputStyle),tabindex:e.tabindex,role:"combobox",readonly:!e.filterable,spellcheck:"false","aria-activedescendant":(null==(t=e.hoverOption)?void 0:t.id)||"","aria-controls":e.contentId,"aria-expanded":e.dropdownMenuVisible,"aria-label":e.ariaLabel,"aria-autocomplete":"none","aria-haspopup":"listbox",onKeydown:[(0,a.jR)((0,a.D$)(t=>e.navigateOptions("next"),["stop","prevent"]),["down"]),(0,a.jR)((0,a.D$)(t=>e.navigateOptions("prev"),["stop","prevent"]),["up"]),(0,a.jR)((0,a.D$)(e.handleEsc,["stop","prevent"]),["esc"]),(0,a.jR)((0,a.D$)(e.selectOption,["stop","prevent"]),["enter"]),(0,a.jR)((0,a.D$)(e.deletePrevTag,["stop"]),["delete"])],onCompositionstart:e.handleCompositionStart,onCompositionupdate:e.handleCompositionUpdate,onCompositionend:e.handleCompositionEnd,onInput:e.onInput,onClick:(0,a.D$)(e.toggleMenu,["stop"])},null,46,["id","onUpdate:modelValue","name","disabled","autocomplete","tabindex","readonly","aria-activedescendant","aria-controls","aria-expanded","aria-label","onKeydown","onCompositionstart","onCompositionupdate","onCompositionend","onInput","onClick"]),[[a.Jo,e.states.inputValue]]),e.filterable?((0,r.uX)(),(0,r.CE)("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:(0,i.C4)(e.nsSelect.e("input-calculator")),textContent:(0,i.v_)(e.states.inputValue)},null,10,["textContent"])):(0,r.Q3)("v-if",!0)],2),e.shouldShowPlaceholder?((0,r.uX)(),(0,r.CE)("div",{key:1,class:(0,i.C4)([e.nsSelect.e("selected-item"),e.nsSelect.e("placeholder"),e.nsSelect.is("transparent",!e.hasModelValue||e.expanded&&!e.states.inputValue)])},[e.hasModelValue?(0,r.RG)(e.$slots,"label",{key:0,label:e.currentPlaceholder,value:e.modelValue},()=>[(0,r.Lk)("span",null,(0,i.v_)(e.currentPlaceholder),1)]):((0,r.uX)(),(0,r.CE)("span",{key:1},(0,i.v_)(e.currentPlaceholder),1))],2)):(0,r.Q3)("v-if",!0)],2),(0,r.Lk)("div",{ref:"suffixRef",class:(0,i.C4)(e.nsSelect.e("suffix"))},[e.iconComponent&&!e.showClose?((0,r.uX)(),(0,r.Wv)(o,{key:0,class:(0,i.C4)([e.nsSelect.e("caret"),e.nsSelect.e("icon"),e.iconReverse])},{default:(0,r.k6)(()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.iconComponent)))]),_:1},8,["class"])):(0,r.Q3)("v-if",!0),e.showClose&&e.clearIcon?((0,r.uX)(),(0,r.Wv)(o,{key:1,class:(0,i.C4)([e.nsSelect.e("caret"),e.nsSelect.e("icon"),e.nsSelect.e("clear")]),onClick:e.handleClearClick},{default:(0,r.k6)(()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.clearIcon)))]),_:1},8,["class","onClick"])):(0,r.Q3)("v-if",!0),e.validateState&&e.validateIcon&&e.needStatusIcon?((0,r.uX)(),(0,r.Wv)(o,{key:2,class:(0,i.C4)([e.nsInput.e("icon"),e.nsInput.e("validateIcon"),e.nsInput.is("loading","validating"===e.validateState)])},{default:(0,r.k6)(()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.validateIcon)))]),_:1},8,["class"])):(0,r.Q3)("v-if",!0)],2)],10,["onClick"])]}),content:(0,r.k6)(()=>[(0,r.bF)(c,{ref:"menuRef"},{default:(0,r.k6)(()=>[e.$slots.header?((0,r.uX)(),(0,r.CE)("div",{key:0,class:(0,i.C4)(e.nsSelect.be("dropdown","header")),onClick:(0,a.D$)(()=>{},["stop"])},[(0,r.RG)(e.$slots,"header")],10,["onClick"])):(0,r.Q3)("v-if",!0),(0,r.bo)((0,r.bF)(d,{id:e.contentId,ref:"scrollbarRef",tag:"ul","wrap-class":e.nsSelect.be("dropdown","wrap"),"view-class":e.nsSelect.be("dropdown","list"),class:(0,i.C4)([e.nsSelect.is("empty",0===e.filteredOptionsCount)]),role:"listbox","aria-label":e.ariaLabel,"aria-orientation":"vertical",onScroll:e.popupScroll},{default:(0,r.k6)(()=>[e.showNewOption?((0,r.uX)(),(0,r.Wv)(s,{key:0,value:e.states.inputValue,created:!0},null,8,["value"])):(0,r.Q3)("v-if",!0),(0,r.bF)(u,null,{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default",{},()=>[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.options,(t,l)=>{var n,o,a,i,u,d;return(0,r.uX)(),(0,r.Wv)(s,{key:l,label:t[null!=(o=null==(n=e.props)?void 0:n.label)?o:"label"],value:t[null!=(i=null==(a=e.props)?void 0:a.value)?i:"value"],disabled:t[null!=(d=null==(u=e.props)?void 0:u.disabled)?d:"disabled"]},null,8,["label","value","disabled"])}),128))])]),_:3})]),_:3},8,["id","wrap-class","view-class","class","aria-label","onScroll"]),[[a.aG,e.states.options.size>0&&!e.loading]]),e.$slots.loading&&e.loading?((0,r.uX)(),(0,r.CE)("div",{key:1,class:(0,i.C4)(e.nsSelect.be("dropdown","loading"))},[(0,r.RG)(e.$slots,"loading")],2)):e.loading||0===e.filteredOptionsCount?((0,r.uX)(),(0,r.CE)("div",{key:2,class:(0,i.C4)(e.nsSelect.be("dropdown","empty"))},[(0,r.RG)(e.$slots,"empty",{},()=>[(0,r.Lk)("span",null,(0,i.v_)(e.emptyText),1)])],2)):(0,r.Q3)("v-if",!0),e.$slots.footer?((0,r.uX)(),(0,r.CE)("div",{key:3,class:(0,i.C4)(e.nsSelect.be("dropdown","footer")),onClick:(0,a.D$)(()=>{},["stop"])},[(0,r.RG)(e.$slots,"footer")],10,["onClick"])):(0,r.Q3)("v-if",!0)]),_:3},512)]),_:3},8,["visible","placement","teleported","popper-class","popper-options","fallback-placements","effect","transition","persistent","append-to","show-arrow","offset","onBeforeShow","onHide"])],16,["onMouseleave"])),[[p,e.handleClickOutside,e.popperRef]])}var qo=(0,w.A)(Do,[["render",Vo],["__file","select.vue"]]);const Ho=(0,r.pM)({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:Boolean},setup(e){const t=(0,C.DU)("select"),l=(0,o.KR)(),n=(0,r.nI)(),a=(0,o.KR)([]);(0,r.Gt)(tr.P,(0,o.Kh)({...(0,o.QW)(e)}));const s=(0,r.EW)(()=>a.value.some(e=>!0===e.visible)),u=e=>{var t;return"ElOption"===e.type.name&&!!(null==(t=e.component)?void 0:t.proxy)},d=e=>{const t=Jn(e),l=[];return t.forEach(e=>{var t;(0,r.vv)(e)&&(u(e)?l.push(e.component.proxy):(0,i.cy)(e.children)&&e.children.length?l.push(...d(e.children)):(null==(t=e.component)?void 0:t.subTree)&&l.push(...d(e.component.subTree)))}),l},c=()=>{a.value=d(n.subTree)};return(0,r.sV)(()=>{c()}),(0,Sl.P1n)(l,c,{attributes:!0,subtree:!0,childList:!0}),{groupRef:l,visible:s,ns:t}}});function Xo(e,t,l,n,o,s){return(0,r.bo)(((0,r.uX)(),(0,r.CE)("ul",{ref:"groupRef",class:(0,i.C4)(e.ns.be("group","wrap"))},[(0,r.Lk)("li",{class:(0,i.C4)(e.ns.be("group","title"))},(0,i.v_)(e.label),3),(0,r.Lk)("li",null,[(0,r.Lk)("ul",{class:(0,i.C4)(e.ns.b("group"))},[(0,r.RG)(e.$slots,"default")],2)])],2)),[[a.aG,e.visible]])}var Uo=(0,w.A)(Ho,[["render",Xo],["__file","option-group.vue"]]);const Go=(0,S.GU)(qo,{Option:sr,OptionGroup:Uo}),Qo=(0,S.WM)(sr),Yo=((0,S.WM)(Uo),()=>(0,r.WQ)(O,{}));var Zo=l(51254);const Jo=(0,c.b_)({pageSize:{type:Number,required:!0},pageSizes:{type:(0,c.jq)(Array),default:()=>(0,Zo.f)([10,20,30,40,50,100])},popperClass:{type:String},disabled:Boolean,teleported:Boolean,size:{type:String,values:Dn.I},appendSizeTo:String}),ea=(0,r.pM)({name:"ElPaginationSizes"}),ta=(0,r.pM)({...ea,props:Jo,emits:["page-size-change"],setup(e,{emit:t}){const l=e,{t:n}=(0,A.Ym)(),a=(0,C.DU)("pagination"),s=Yo(),u=(0,o.KR)(l.pageSize);(0,r.wB)(()=>l.pageSizes,(e,n)=>{if(!(0,I.A)(e,n)&&(0,i.cy)(e)){const n=e.includes(l.pageSize)?l.pageSize:l.pageSizes[0];t("page-size-change",n)}}),(0,r.wB)(()=>l.pageSize,e=>{u.value=e});const d=(0,r.EW)(()=>l.pageSizes);function c(e){var t;e!==u.value&&(u.value=e,null==(t=s.handleSizeChange)||t.call(s,Number(e)))}return(e,t)=>((0,r.uX)(),(0,r.CE)("span",{class:(0,i.C4)((0,o.R1)(a).e("sizes"))},[(0,r.bF)((0,o.R1)(Go),{"model-value":u.value,disabled:e.disabled,"popper-class":e.popperClass,size:e.size,teleported:e.teleported,"validate-event":!1,"append-to":e.appendSizeTo,onChange:c},{default:(0,r.k6)(()=>[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)((0,o.R1)(d),e=>((0,r.uX)(),(0,r.Wv)((0,o.R1)(Qo),{key:e,value:e,label:e+(0,o.R1)(n)("el.pagination.pagesize")},null,8,["value","label"]))),128))]),_:1},8,["model-value","disabled","popper-class","size","teleported","append-to"])],2))}});var la=(0,w.A)(ta,[["__file","sizes.vue"]]),na=l(50069);const ra=(0,c.b_)({size:{type:String,values:Dn.I}}),oa=(0,r.pM)({name:"ElPaginationJumper"}),aa=(0,r.pM)({...oa,props:ra,setup(e){const{t:t}=(0,A.Ym)(),l=(0,C.DU)("pagination"),{pageCount:n,disabled:a,currentPage:s,changeEvent:u}=Yo(),d=(0,o.KR)(),c=(0,r.EW)(()=>{var e;return null!=(e=d.value)?e:null==s?void 0:s.value});function p(e){d.value=e?+e:""}function f(e){e=Math.trunc(+e),null==u||u(e),d.value=void 0}return(e,s)=>((0,r.uX)(),(0,r.CE)("span",{class:(0,i.C4)((0,o.R1)(l).e("jump")),disabled:(0,o.R1)(a)},[(0,r.Lk)("span",{class:(0,i.C4)([(0,o.R1)(l).e("goto")])},(0,i.v_)((0,o.R1)(t)("el.pagination.goto")),3),(0,r.bF)((0,o.R1)(na.WK),{size:e.size,class:(0,i.C4)([(0,o.R1)(l).e("editor"),(0,o.R1)(l).is("in-pagination")]),min:1,max:(0,o.R1)(n),disabled:(0,o.R1)(a),"model-value":(0,o.R1)(c),"validate-event":!1,"aria-label":(0,o.R1)(t)("el.pagination.page"),type:"number","onUpdate:modelValue":p,onChange:f},null,8,["size","class","max","disabled","model-value","aria-label"]),(0,r.Lk)("span",{class:(0,i.C4)([(0,o.R1)(l).e("classifier")])},(0,i.v_)((0,o.R1)(t)("el.pagination.pageClassifier")),3)],10,["disabled"]))}});var ia=(0,w.A)(aa,[["__file","jumper.vue"]]);const sa=(0,c.b_)({total:{type:Number,default:1e3}}),ua=(0,r.pM)({name:"ElPaginationTotal"}),da=(0,r.pM)({...ua,props:sa,setup(e){const{t:t}=(0,A.Ym)(),l=(0,C.DU)("pagination"),{disabled:n}=Yo();return(e,a)=>((0,r.uX)(),(0,r.CE)("span",{class:(0,i.C4)((0,o.R1)(l).e("total")),disabled:(0,o.R1)(n)},(0,i.v_)((0,o.R1)(t)("el.pagination.total",{total:e.total})),11,["disabled"]))}});var ca=(0,w.A)(da,[["__file","total.vue"]]);const pa=(0,c.b_)({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),fa=(0,r.pM)({name:"ElPaginationPager"}),va=(0,r.pM)({...fa,props:pa,emits:[To.YU],setup(e,{emit:t}){const l=e,n=(0,C.DU)("pager"),s=(0,C.DU)("icon"),{t:u}=(0,A.Ym)(),d=(0,o.KR)(!1),c=(0,o.KR)(!1),p=(0,o.KR)(!1),f=(0,o.KR)(!1),v=(0,o.KR)(!1),h=(0,o.KR)(!1),m=(0,r.EW)(()=>{const e=l.pagerCount,t=(e-1)/2,n=Number(l.currentPage),r=Number(l.pageCount);let o=!1,a=!1;r>e&&(n>e-t&&(o=!0),n["more","btn-quickprev",s.b(),n.is("disabled",l.disabled)]),b=(0,r.EW)(()=>["more","btn-quicknext",s.b(),n.is("disabled",l.disabled)]),y=(0,r.EW)(()=>l.disabled?-1:0);function w(e=!1){l.disabled||(e?p.value=!0:f.value=!0)}function R(e=!1){e?v.value=!0:h.value=!0}function x(e){const n=e.target;if("li"===n.tagName.toLowerCase()&&Array.from(n.classList).includes("number")){const e=Number(n.textContent);e!==l.currentPage&&t(To.YU,e)}else"li"===n.tagName.toLowerCase()&&Array.from(n.classList).includes("more")&&E(e)}function E(e){const n=e.target;if("ul"===n.tagName.toLowerCase()||l.disabled)return;let r=Number(n.textContent);const o=l.pageCount,a=l.currentPage,i=l.pagerCount-2;n.className.includes("more")&&(n.className.includes("quickprev")?r=a-i:n.className.includes("quicknext")&&(r=a+i)),Number.isNaN(+r)||(r<1&&(r=1),r>o&&(r=o)),r!==a&&t(To.YU,r)}return(0,r.wB)(()=>[l.pageCount,l.pagerCount,l.currentPage],([e,t,l])=>{const n=(t-1)/2;let r=!1,o=!1;e>t&&(r=l>t-n,o=l((0,r.uX)(),(0,r.CE)("ul",{class:(0,i.C4)((0,o.R1)(n).b()),onClick:E,onKeyup:(0,a.jR)(x,["enter"])},[e.pageCount>0?((0,r.uX)(),(0,r.CE)("li",{key:0,class:(0,i.C4)([[(0,o.R1)(n).is("active",1===e.currentPage),(0,o.R1)(n).is("disabled",e.disabled)],"number"]),"aria-current":1===e.currentPage,"aria-label":(0,o.R1)(u)("el.pagination.currentPage",{pager:1}),tabindex:(0,o.R1)(y)}," 1 ",10,["aria-current","aria-label","tabindex"])):(0,r.Q3)("v-if",!0),d.value?((0,r.uX)(),(0,r.CE)("li",{key:1,class:(0,i.C4)((0,o.R1)(g)),tabindex:(0,o.R1)(y),"aria-label":(0,o.R1)(u)("el.pagination.prevPages",{pager:e.pagerCount-2}),onMouseenter:e=>w(!0),onMouseleave:e=>p.value=!1,onFocus:e=>R(!0),onBlur:e=>v.value=!1},[!p.value&&!v.value||e.disabled?((0,r.uX)(),(0,r.Wv)((0,o.R1)(W.yGC),{key:1})):((0,r.uX)(),(0,r.Wv)((0,o.R1)(W.V6m),{key:0}))],42,["tabindex","aria-label","onMouseenter","onMouseleave","onFocus","onBlur"])):(0,r.Q3)("v-if",!0),((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)((0,o.R1)(m),t=>((0,r.uX)(),(0,r.CE)("li",{key:t,class:(0,i.C4)([[(0,o.R1)(n).is("active",e.currentPage===t),(0,o.R1)(n).is("disabled",e.disabled)],"number"]),"aria-current":e.currentPage===t,"aria-label":(0,o.R1)(u)("el.pagination.currentPage",{pager:t}),tabindex:(0,o.R1)(y)},(0,i.v_)(t),11,["aria-current","aria-label","tabindex"]))),128)),c.value?((0,r.uX)(),(0,r.CE)("li",{key:2,class:(0,i.C4)((0,o.R1)(b)),tabindex:(0,o.R1)(y),"aria-label":(0,o.R1)(u)("el.pagination.nextPages",{pager:e.pagerCount-2}),onMouseenter:e=>w(),onMouseleave:e=>f.value=!1,onFocus:e=>R(),onBlur:e=>h.value=!1},[!f.value&&!h.value||e.disabled?((0,r.uX)(),(0,r.Wv)((0,o.R1)(W.yGC),{key:1})):((0,r.uX)(),(0,r.Wv)((0,o.R1)(W.u$D),{key:0}))],42,["tabindex","aria-label","onMouseenter","onMouseleave","onFocus","onBlur"])):(0,r.Q3)("v-if",!0),e.pageCount>1?((0,r.uX)(),(0,r.CE)("li",{key:3,class:(0,i.C4)([[(0,o.R1)(n).is("active",e.currentPage===e.pageCount),(0,o.R1)(n).is("disabled",e.disabled)],"number"]),"aria-current":e.currentPage===e.pageCount,"aria-label":(0,o.R1)(u)("el.pagination.currentPage",{pager:e.pageCount}),tabindex:(0,o.R1)(y)},(0,i.v_)(e.pageCount),11,["aria-current","aria-label","tabindex"])):(0,r.Q3)("v-if",!0)],42,["onKeyup"]))}});var ha=(0,w.A)(va,[["__file","pager.vue"]]),ma=l(49766);const ga=e=>"number"!==typeof e,ba=(0,c.b_)({pageSize:Number,defaultPageSize:Number,total:Number,pageCount:Number,pagerCount:{type:Number,validator:e=>(0,p.Et)(e)&&Math.trunc(e)===e&&e>4&&e<22&&e%2===1,default:7},currentPage:Number,defaultCurrentPage:Number,layout:{type:String,default:["prev","pager","next","jumper","->","total"].join(", ")},pageSizes:{type:(0,c.jq)(Array),default:()=>(0,Zo.f)([10,20,30,40,50,100])},popperClass:{type:String,default:""},prevText:{type:String,default:""},prevIcon:{type:h.Ze,default:()=>W.nkM},nextText:{type:String,default:""},nextIcon:{type:h.Ze,default:()=>W.Qpb},teleported:{type:Boolean,default:!0},small:Boolean,size:Mo.mU,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean,appendSizeTo:String}),ya={"update:current-page":e=>(0,p.Et)(e),"update:page-size":e=>(0,p.Et)(e),"size-change":e=>(0,p.Et)(e),change:(e,t)=>(0,p.Et)(e)&&(0,p.Et)(t),"current-change":e=>(0,p.Et)(e),"prev-click":e=>(0,p.Et)(e),"next-click":e=>(0,p.Et)(e)},wa="ElPagination";var Ca=(0,r.pM)({name:wa,props:ba,emits:ya,setup(e,{emit:t,slots:l}){const{t:n}=(0,A.Ym)(),a=(0,C.DU)("pagination"),i=(0,r.nI)().vnode.props||{},s=(0,Mo.wC)(),u=(0,r.EW)(()=>{var t;return e.small?"small":null!=(t=e.size)?t:s.value});(0,ma.b)({from:"small",replacement:"size",version:"3.0.0",scope:"el-pagination",ref:"https://element-plus.org/zh-CN/component/pagination.html"},(0,r.EW)(()=>!!e.small));const d="onUpdate:currentPage"in i||"onUpdate:current-page"in i||"onCurrentChange"in i,c="onUpdate:pageSize"in i||"onUpdate:page-size"in i||"onSizeChange"in i,p=(0,r.EW)(()=>{if(ga(e.total)&&ga(e.pageCount))return!1;if(!ga(e.currentPage)&&!d)return!1;if(e.layout.includes("sizes"))if(ga(e.pageCount)){if(!ga(e.total)&&!ga(e.pageSize)&&!c)return!1}else if(!c)return!1;return!0}),f=(0,o.KR)(ga(e.defaultPageSize)?10:e.defaultPageSize),v=(0,o.KR)(ga(e.defaultCurrentPage)?1:e.defaultCurrentPage),h=(0,r.EW)({get(){return ga(e.pageSize)?f.value:e.pageSize},set(l){ga(e.pageSize)&&(f.value=l),c&&(t("update:page-size",l),t("size-change",l))}}),m=(0,r.EW)(()=>{let t=0;return ga(e.pageCount)?ga(e.total)||(t=Math.max(1,Math.ceil(e.total/h.value))):t=e.pageCount,t}),g=(0,r.EW)({get(){return ga(e.currentPage)?v.value:e.currentPage},set(l){let n=l;l<1?n=1:l>m.value&&(n=m.value),ga(e.currentPage)&&(v.value=n),d&&(t("update:current-page",n),t("current-change",n))}});function b(e){g.value=e}function y(e){h.value=e;const t=m.value;g.value>t&&(g.value=t)}function w(){e.disabled||(g.value-=1,t("prev-click",g.value))}function R(){e.disabled||(g.value+=1,t("next-click",g.value))}function x(e,t){e&&(e.props||(e.props={}),e.props.class=[e.props.class,t].join(" "))}return(0,r.wB)(m,e=>{g.value>e&&(g.value=e)}),(0,r.wB)([g,h],e=>{t(To.YU,...e)},{flush:"post"}),(0,r.Gt)(O,{pageCount:m,disabled:(0,r.EW)(()=>e.disabled),currentPage:g,changeEvent:b,handleSizeChange:y}),()=>{var t,o;if(!p.value)return(0,On.U)(wa,n("el.pagination.deprecationWarning")),null;if(!e.layout)return null;if(e.hideOnSinglePage&&m.value<=1)return null;const i=[],s=[],d=(0,r.h)("div",{class:a.e("rightwrapper")},s),c={prev:(0,r.h)(M,{disabled:e.disabled,currentPage:g.value,prevText:e.prevText,prevIcon:e.prevIcon,onClick:w}),jumper:(0,r.h)(ia,{size:u.value}),pager:(0,r.h)(ha,{currentPage:g.value,pageCount:m.value,pagerCount:e.pagerCount,onChange:b,disabled:e.disabled}),next:(0,r.h)(N,{disabled:e.disabled,currentPage:g.value,pageCount:m.value,nextText:e.nextText,nextIcon:e.nextIcon,onClick:R}),sizes:(0,r.h)(la,{pageSize:h.value,pageSizes:e.pageSizes,popperClass:e.popperClass,disabled:e.disabled,teleported:e.teleported,size:u.value,appendSizeTo:e.appendSizeTo}),slot:null!=(o=null==(t=null==l?void 0:l.default)?void 0:t.call(l))?o:null,total:(0,r.h)(ca,{total:ga(e.total)?0:e.total})},f=e.layout.split(",").map(e=>e.trim());let v=!1;return f.forEach(e=>{"->"!==e?v?s.push(c[e]):i.push(c[e]):v=!0}),x(i[0],a.is("first")),x(i[i.length-1],a.is("last")),v&&s.length>0&&(x(s[0],a.is("first")),x(s[s.length-1],a.is("last")),i.push(d)),(0,r.h)("div",{class:[a.b(),a.is("background",e.background),a.m(u.value)]},i)}}});const Ra=(0,S.GU)(Ca);function xa(e){return null===e}var Ea=xa,Sa=l(13588),ka=l(45572);function Wa(e){return function(t,l,n){var r=-1,o=Object(t),a=n(t),i=a.length;while(i--){var s=a[e?i:++r];if(!1===l(o[s],s,o))break}return t}}var Oa=Wa,Fa=Oa(),Ta=Fa;function Aa(e,t){return e&&Ta(e,t,qr.A)}var La=Aa,_a=l(38446);function Ma(e,t){return function(l,n){if(null==l)return l;if(!(0,_a.A)(l))return e(l,n);var r=l.length,o=t?r:-1,a=Object(l);while(t?o--:++o1?l[r-1]:void 0,a=r>2?l[2]:void 0;o=e.length>3&&"function"==typeof o?(r--,o):void 0,a&&Ri(l[0],l[1],a)&&(o=r<3?void 0:o,r=1),t=Object(t);while(++n(0,i.Kg)(t)?(0,er.A)(l,t):t(l,n,e)):("$key"!==t&&(0,i.Gv)(l)&&"$value"in l&&(l=l.$value),[(0,i.Gv)(l)?t?(0,er.A)(l,t):null:l])},a=function(e,t){var l,r,o,a,i,s;if(n)return n(e.value,t.value);for(let n=0,u=null!=(r=null==(l=e.key)?void 0:l.length)?r:0;n(null==(s=t.key)?void 0:s[n]))return 1}return 0};return e.map((e,t)=>({value:e,index:t,key:o?o(e,t):null})).sort((e,t)=>{let n=a(e,t);return n||(n=e.index-t.index),n*+l}).map(e=>e.value)},Fi=function(e,t){let l=null;return e.columns.forEach(e=>{e.id===t&&(l=e)}),l},Ti=function(e,t){let l=null;for(let n=0;n{if(!e)throw new Error("Row is required when get row identity");if((0,i.Kg)(t)){if(!t.includes("."))return`${e[t]}`;const l=t.split(".");let n=e;for(const e of l)n=n[e];return`${n}`}return(0,i.Tn)(t)?t.call(null,e):""},_i=function(e,t,l=!1,n="children"){const r=e||[],o={};return r.forEach((e,r)=>{if(o[Li(e,t)]={row:e,index:r},l){const l=e[n];(0,i.cy)(l)&&Object.assign(o,_i(l,t,!0,n))}}),o};function Mi(e,t){const l={};let n;for(n in e)l[n]=e[n];for(n in t)if((0,i.$3)(t,n)){const e=t[n];(0,p.b0)(e)||(l[n]=e)}return l}function Ki(e){return""===e||(0,p.b0)(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e="")),e}function Bi(e){return""===e||(0,p.b0)(e)||(e=Ki(e),Number.isNaN(e)&&(e=80)),e}function Pi(e){return(0,p.Et)(e)?e:(0,i.Kg)(e)?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function Ni(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce((e,t)=>(...l)=>e(t(...l)))}function Ii(e,t,l,n,r,o,a){let s=null!=o?o:0,u=!1;const d=()=>{if(!a)return e.indexOf(t);const l=Li(t,a);return e.findIndex(e=>Li(e,a)===l)},c=d(),f=-1!==c,v=null==r?void 0:r.call(null,t,s),h=l=>{"add"===l?e.push(t):e.splice(c,1),u=!0},m=e=>{let t=0;const l=(null==n?void 0:n.children)&&e[n.children];return l&&(0,i.cy)(l)&&(t+=l.length,l.forEach(e=>{t+=m(e)})),t};return r&&!v||((0,p.Lm)(l)?l&&!f?h("add"):!l&&f&&h("remove"):h(f?"remove":"add")),!(null==n?void 0:n.checkStrictly)&&(null==n?void 0:n.children)&&(0,i.cy)(t[n.children])&&t[n.children].forEach(t=>{const o=Ii(e,t,null!=l?l:!f,n,r,s+1,a);s+=m(t)+1,o&&(u=o)}),u}function $i(e,t,l="children",n="hasChildren",r=!1){const o=e=>!((0,i.cy)(e)&&e.length);function a(e,i,s){t(e,i,s),i.forEach(e=>{if(e[n]&&r)return void t(e,null,s+1);const i=e[l];o(i)||a(e,i,s+1)})}e.forEach(e=>{if(e[n]&&r)return void t(e,null,0);const i=e[l];o(i)||a(e,i,0)})}const ji=(e,t,l,n)=>{const o={strategy:"fixed",...e.popperOptions},a=(0,i.Tn)(null==n?void 0:n.tooltipFormatter)?n.tooltipFormatter({row:l,column:n,cellValue:(0,m.GT)(l,n.property).value}):void 0;return(0,r.vv)(a)?{slotContent:a,content:null,...e,popperOptions:o}:{slotContent:null,content:null!=a?a:t,...e,popperOptions:o}};let zi=null;function Di(e,t,l,n,o,i){var s;const u=ji(e,t,l,n),d={...u,slotContent:void 0};if((null==zi?void 0:zi.trigger)===o){const e=null==(s=zi.vm)?void 0:s.component;return ki(null==e?void 0:e.props,d),void(e&&u.slotContent&&(e.slots.content=()=>[u.slotContent]))}null==zi||zi();const c=null==i?void 0:i.refs.tableWrapper,p=null==c?void 0:c.dataset.prefix,f=(0,r.bF)(Rn,{virtualTriggering:!0,virtualRef:o,appendTo:c,placement:"top",transition:"none",offset:0,hideAfter:0,...d},u.slotContent?{content:()=>u.slotContent}:void 0);f.appContext={...i.appContext,...i};const v=document.createElement("div");(0,a.XX)(f,v),f.component.exposed.onOpen();const h=null==c?void 0:c.querySelector(`.${p}-scrollbar__wrap`);zi=()=>{(0,a.XX)(null,v),null==h||h.removeEventListener("scroll",zi),zi=null},zi.trigger=null!=o?o:void 0,zi.vm=f,null==h||h.addEventListener("scroll",zi)}function Vi(e){return e.children?Da(e.children,Vi):[e]}function qi(e,t){return e+t.colSpan}const Hi=(e,t,l,n)=>{let r=0,o=e;const a=l.states.columns.value;if(n){const t=Vi(n[e]),l=a.slice(0,a.indexOf(t[0]));r=l.reduce(qi,0),o=r+t.reduce(qi,0)-1}else r=e;let i;switch(t){case"left":o=a.length-l.states.rightFixedLeafColumnsLength.value&&(i="right");break;default:o=a.length-l.states.rightFixedLeafColumnsLength.value&&(i="right")}return i?{direction:i,start:r,after:o}:{}},Xi=(e,t,l,n,r,o=0)=>{const a=[],{direction:i,start:s,after:u}=Hi(t,l,n,r);if(i){const t="left"===i;a.push(`${e}-fixed-column--${i}`),t&&u+o===n.states.fixedLeafColumnsLength.value-1?a.push("is-last-column"):t||s-o!==n.states.columns.value.length-n.states.rightFixedLeafColumnsLength.value||a.push("is-first-column")}return a};function Ui(e,t){return e+(Ea(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}const Gi=(e,t,l,n)=>{const{direction:r,start:o=0,after:a=0}=Hi(e,t,l,n);if(!r)return;const i={},s="left"===r,u=l.states.columns.value;return s?i.left=u.slice(0,o).reduce(Ui,0):i.right=u.slice(a+1).reverse().reduce(Ui,0),i},Qi=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function Yi(e){const t=(0,r.nI)(),l=(0,o.KR)(!1),n=(0,o.KR)([]),a=()=>{const t=e.data.value||[],r=e.rowKey.value;if(l.value)n.value=t.slice();else if(r){const e=_i(n.value,r);n.value=t.reduce((t,l)=>{const n=Li(l,r),o=e[n];return o&&t.push(l),t},[])}else n.value=[]},i=(l,r)=>{const o=Ii(n.value,l,r,void 0,void 0,void 0,e.rowKey.value);o&&t.emit("expand-change",l,n.value.slice())},s=l=>{t.store.assertRowKey();const r=e.data.value||[],o=e.rowKey.value,a=_i(r,o);n.value=l.reduce((e,t)=>{const l=a[t];return l&&e.push(l.row),e},[])},u=t=>{const l=e.rowKey.value;if(l){const e=_i(n.value,l);return!!e[Li(t,l)]}return n.value.includes(t)};return{updateExpandRows:a,toggleRowExpansion:i,setExpandRowKeys:s,isRowExpanded:u,states:{expandRows:n,defaultExpandAll:l}}}function Zi(e){const t=(0,r.nI)(),l=(0,o.KR)(null),n=(0,o.KR)(null),a=e=>{t.store.assertRowKey(),l.value=e,s(e)},i=()=>{l.value=null},s=l=>{var r;const{data:a,rowKey:i}=e;let s=null;i.value&&(s=null!=(r=((0,o.R1)(a)||[]).find(e=>Li(e,i.value)===l))?r:null),n.value=null!=s?s:null,t.emit("current-change",n.value,null)},u=e=>{const l=n.value;if(e&&e!==l)return n.value=e,void t.emit("current-change",n.value,l);!e&&l&&(n.value=null,t.emit("current-change",null,l))},d=()=>{const r=e.rowKey.value,o=e.data.value||[],a=n.value;if(a&&!o.includes(a)){if(r){const e=Li(a,r);s(e)}else n.value=null;Ea(n.value)&&t.emit("current-change",null,a)}else l.value&&(s(l.value),i())};return{setCurrentRowKey:a,restoreCurrentRowKey:i,setCurrentRowByKey:s,updateCurrentRow:u,updateCurrentRowData:d,states:{_currentRowKey:l,currentRow:n}}}function Ji(e){const t=(0,o.KR)([]),l=(0,o.KR)({}),n=(0,o.KR)(16),a=(0,o.KR)(!1),s=(0,o.KR)({}),u=(0,o.KR)("hasChildren"),d=(0,o.KR)("children"),c=(0,o.KR)(!1),f=(0,r.nI)(),v=(0,r.EW)(()=>{if(!e.rowKey.value)return{};const t=e.data.value||[];return m(t)}),h=(0,r.EW)(()=>{const t=e.rowKey.value,l=Object.keys(s.value),n={};return l.length?(l.forEach(e=>{if(s.value[e].length){const l={children:[]};s.value[e].forEach(e=>{const r=Li(e,t);l.children.push(r),e[u.value]&&!n[r]&&(n[r]={children:[]})}),n[e]=l}}),n):n}),m=t=>{const l=e.rowKey.value,n={};return $i(t,(e,t,r)=>{const o=Li(e,l);(0,i.cy)(t)?n[o]={children:t.map(e=>Li(e,l)),level:r}:a.value&&(n[o]={children:[],lazy:!0,level:r})},d.value,u.value,a.value),n},g=(e=!1,n)=>{var r,i;n||(n=null==(r=f.store)?void 0:r.states.defaultExpandAll.value);const s=v.value,u=h.value,d=Object.keys(s),c={};if(d.length){const r=(0,o.R1)(l),i=[],p=(l,r)=>{if(e)return t.value?n||t.value.includes(r):!(!n&&!(null==l?void 0:l.expanded));{const e=n||t.value&&t.value.includes(r);return!(!(null==l?void 0:l.expanded)&&!e)}};d.forEach(e=>{const t=r[e],l={...s[e]};if(l.expanded=p(t,e),l.lazy){const{loaded:n=!1,loading:r=!1}=t||{};l.loaded=!!n,l.loading=!!r,i.push(e)}c[e]=l});const f=Object.keys(u);a.value&&f.length&&i.length&&f.forEach(e=>{var t;const l=r[e],n=u[e].children;if(i.includes(e)){if(0!==(null==(t=c[e].children)?void 0:t.length))throw new Error("[ElTable]children must be an empty array.");c[e].children=n}else{const{loaded:t=!1,loading:r=!1}=l||{};c[e]={lazy:!0,loaded:!!t,loading:!!r,expanded:p(l,e),children:n,level:void 0}}})}l.value=c,null==(i=f.store)||i.updateTableScrollY()};(0,r.wB)(()=>t.value,()=>{g(!0)}),(0,r.wB)(()=>v.value,()=>{g()}),(0,r.wB)(()=>h.value,()=>{g()});const b=e=>{t.value=e,g()},y=e=>a.value&&e&&"loaded"in e&&!e.loaded,w=(t,n)=>{f.store.assertRowKey();const r=e.rowKey.value,o=Li(t,r),a=o&&l.value[o];if(o&&a&&"expanded"in a){const e=a.expanded;n=(0,p.b0)(n)?!a.expanded:n,l.value[o].expanded=n,e!==n&&f.emit("expand-change",t,n),y(a)&&R(t,o,a),f.store.updateTableScrollY()}},C=t=>{f.store.assertRowKey();const n=e.rowKey.value,r=Li(t,n),o=l.value[r];y(o)?R(t,r,o):w(t,void 0)},R=(e,t,n)=>{const{load:r}=f.props;r&&!l.value[t].loaded&&(l.value[t].loading=!0,r(e,n,n=>{if(!(0,i.cy)(n))throw new TypeError("[ElTable] data must be an array");l.value[t].loading=!1,l.value[t].loaded=!0,l.value[t].expanded=!0,n.length&&(s.value[t]=n),f.emit("expand-change",e,!0)}))},x=(e,t)=>{const{lazy:l,rowKey:n}=f.props;if(l){if(!n)throw new Error("[Table] rowKey is required in updateKeyChild");s.value[e]&&(s.value[e]=t)}};return{loadData:R,loadOrToggle:C,toggleTreeExpansion:w,updateTreeExpandKeys:b,updateTreeData:g,updateKeyChildren:x,normalize:m,states:{expandRowKeys:t,treeData:l,indent:n,lazy:a,lazyTreeNodeMap:s,lazyColumnIdentifier:u,childrenColumnName:d,checkStrictly:c}}}const es=(e,t)=>{const l=t.sortingColumn;return!l||(0,i.Kg)(l.sortable)?e:Oi(e,t.sortProp,t.sortOrder,l.sortMethod,l.sortBy)},ts=e=>{const t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,ts(e.children)):t.push(e)}),t};function ls(){var e;const t=(0,r.nI)(),{size:l}=(0,o.QW)(null==(e=t.proxy)?void 0:e.$props),n=(0,o.KR)(null),a=(0,o.KR)([]),s=(0,o.KR)([]),u=(0,o.KR)(!1),d=(0,o.KR)([]),c=(0,o.KR)([]),p=(0,o.KR)([]),f=(0,o.KR)([]),v=(0,o.KR)([]),h=(0,o.KR)([]),m=(0,o.KR)([]),g=(0,o.KR)([]),b=[],y=(0,o.KR)(0),w=(0,o.KR)(0),C=(0,o.KR)(0),R=(0,o.KR)(!1),x=(0,o.KR)([]),E=(0,o.KR)(!1),S=(0,o.KR)(!1),k=(0,o.KR)(null),W=(0,o.KR)({}),O=(0,o.KR)(null),F=(0,o.KR)(null),T=(0,o.KR)(null),A=(0,o.KR)(null),L=(0,o.KR)(null),_=(0,r.EW)(()=>n.value?_i(x.value,n.value):void 0);(0,r.wB)(a,()=>{var e;if(t.state){P(!1);const l="auto"===t.props.tableLayout;l&&(null==(e=t.refs.tableHeaderRef)||e.updateFixedColumnStyle())}},{deep:!0});const M=()=>{if(!n.value)throw new Error("[ElTable] prop row-key is required")},K=e=>{var t;null==(t=e.children)||t.forEach(t=>{t.fixed=e.fixed,K(t)})},B=()=>{d.value.forEach(e=>{K(e)}),f.value=d.value.filter(e=>[!0,"left"].includes(e.fixed));const e=d.value.find(e=>"selection"===e.type);let t;if(e&&"right"!==e.fixed&&!f.value.includes(e)){const l=d.value.indexOf(e);0===l&&f.value.length&&(f.value.unshift(e),t=!0)}v.value=d.value.filter(e=>"right"===e.fixed);const l=d.value.filter(e=>(!t||"selection"!==e.type)&&!e.fixed);c.value=Array.from(f.value).concat(l).concat(v.value);const n=ts(l),r=ts(f.value),o=ts(v.value);y.value=n.length,w.value=r.length,C.value=o.length,p.value=Array.from(r).concat(n).concat(o),u.value=f.value.length>0||v.value.length>0},P=(e,l=!1)=>{e&&B(),l?t.state.doLayout():t.state.debouncedUpdateLayout()},N=e=>_.value?!!_.value[Li(e,n.value)]:x.value.includes(e),I=()=>{R.value=!1;const e=x.value;x.value=[],e.length&&t.emit("selection-change",[])},$=()=>{var e,l;let r;if(n.value){r=[];const o=null==(l=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:l.childrenColumnName.value,s=_i(a.value,n.value,!0,o);for(const e in _.value)(0,i.$3)(_.value,e)&&!s[e]&&r.push(_.value[e].row)}else r=x.value.filter(e=>!a.value.includes(e));if(r.length){const e=x.value.filter(e=>!r.includes(e));x.value=e,t.emit("selection-change",e.slice())}},j=()=>(x.value||[]).slice(),z=(e,l,r=!0,o=!1)=>{var i,s,u,d;const c={children:null==(s=null==(i=null==t?void 0:t.store)?void 0:i.states)?void 0:s.childrenColumnName.value,checkStrictly:null==(d=null==(u=null==t?void 0:t.store)?void 0:u.states)?void 0:d.checkStrictly.value},p=Ii(x.value,e,l,c,o?void 0:k.value,a.value.indexOf(e),n.value);if(p){const l=(x.value||[]).slice();r&&t.emit("select",l,e),t.emit("selection-change",l)}},D=()=>{var e,l;const n=S.value?!R.value:!(R.value||x.value.length);R.value=n;let r=!1,o=0;const i=null==(l=null==(e=null==t?void 0:t.store)?void 0:e.states)?void 0:l.rowKey.value,{childrenColumnName:s}=t.store.states,u={children:s.value,checkStrictly:!1};a.value.forEach((e,t)=>{const l=t+o;Ii(x.value,e,n,u,k.value,l,i)&&(r=!0),o+=q(Li(e,i))}),r&&t.emit("selection-change",x.value?x.value.slice():[]),t.emit("select-all",(x.value||[]).slice())},V=()=>{var e;if(0===(null==(e=a.value)?void 0:e.length))return void(R.value=!1);const{childrenColumnName:l}=t.store.states;let n=0,r=0;const o=e=>{var t;for(const a of e){const e=k.value&&k.value.call(null,a,n);if(N(a))r++;else if(!k.value||e)return!1;if(n++,(null==(t=a[l.value])?void 0:t.length)&&!o(a[l.value]))return!1}return!0},i=o(a.value||[]);R.value=0!==r&&i},q=e=>{var l;if(!t||!t.store)return 0;const{treeData:n}=t.store.states;let r=0;const o=null==(l=n.value[e])?void 0:l.children;return o&&(r+=o.length,o.forEach(e=>{r+=q(e)})),r},H=(e,t)=>{const l={};return Jn(e).forEach(e=>{W.value[e.id]=t,l[e.columnKey||e.id]=t}),l},X=(e,t,l)=>{F.value&&F.value!==e&&(F.value.order=null),F.value=e,T.value=t,A.value=l},U=()=>{let e=(0,o.R1)(s);Object.keys(W.value).forEach(t=>{const l=W.value[t];if(!l||0===l.length)return;const n=Fi({columns:p.value},t);n&&n.filterMethod&&(e=e.filter(e=>l.some(t=>n.filterMethod.call(null,t,e,n))))}),O.value=e},G=()=>{var e;a.value=es(null!=(e=O.value)?e:[],{sortingColumn:F.value,sortProp:T.value,sortOrder:A.value})},Q=(e=void 0)=>{(null==e?void 0:e.filter)||U(),G()},Y=e=>{const{tableHeaderRef:l}=t.refs;if(!l)return;const n=Object.assign({},l.filterPanels),r=Object.keys(n);if(r.length)if((0,i.Kg)(e)&&(e=[e]),(0,i.cy)(e)){const l=e.map(e=>Ti({columns:p.value},e));r.forEach(e=>{const t=l.find(t=>t.id===e);t&&(t.filteredValue=[])}),t.store.commit("filterChange",{column:l,values:[],silent:!0,multi:!0})}else r.forEach(e=>{const t=p.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),W.value={},t.store.commit("filterChange",{column:{},values:[],silent:!0})},Z=()=>{F.value&&(X(null,null,null),t.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:J,toggleRowExpansion:ee,updateExpandRows:te,states:le,isRowExpanded:ne}=Yi({data:a,rowKey:n}),{updateTreeExpandKeys:re,toggleTreeExpansion:oe,updateTreeData:ae,updateKeyChildren:ie,loadOrToggle:se,states:ue}=Ji({data:a,rowKey:n}),{updateCurrentRowData:de,updateCurrentRow:ce,setCurrentRowKey:pe,states:fe}=Zi({data:a,rowKey:n}),ve=e=>{J(e),re(e)},he=(e,t)=>{const l=p.value.some(({type:e})=>"expand"===e);l?ee(e,t):oe(e,t)};return{assertRowKey:M,updateColumns:B,scheduleLayout:P,isSelected:N,clearSelection:I,cleanSelection:$,getSelectionRows:j,toggleRowSelection:z,_toggleAllSelection:D,toggleAllSelection:null,updateAllSelected:V,updateFilters:H,updateCurrentRow:ce,updateSort:X,execFilter:U,execSort:G,execQuery:Q,clearFilter:Y,clearSort:Z,toggleRowExpansion:ee,setExpandRowKeysAdapter:ve,setCurrentRowKey:pe,toggleRowExpansionAdapter:he,isRowExpanded:ne,updateExpandRows:te,updateCurrentRowData:de,loadOrToggle:se,updateTreeData:ae,updateKeyChildren:ie,states:{tableSize:l,rowKey:n,data:a,_data:s,isComplex:u,_columns:d,originColumns:c,columns:p,fixedColumns:f,rightFixedColumns:v,leafColumns:h,fixedLeafColumns:m,rightFixedLeafColumns:g,updateOrderFns:b,leafColumnsLength:y,fixedLeafColumnsLength:w,rightFixedLeafColumnsLength:C,isAllSelected:R,selection:x,reserveSelection:E,selectOnIndeterminate:S,selectable:k,filters:W,filteredData:O,sortingColumn:F,sortProp:T,sortOrder:A,hoverRow:L,...le,...ue,...fe}}}function ns(e,t){return e.map(e=>{var l;return e.id===t.id?t:((null==(l=e.children)?void 0:l.length)&&(e.children=ns(e.children,t)),e)})}function rs(e){e.forEach(e=>{var t,l;e.no=null==(t=e.getColumnIndex)?void 0:t.call(e),(null==(l=e.children)?void 0:l.length)&&rs(e.children)}),e.sort((e,t)=>e.no-t.no)}function os(){const e=(0,r.nI)(),t=ls(),l=(0,C.DU)("table"),n={setData(t,l){const n=(0,o.R1)(t._data)!==l;t.data.value=l,t._data.value=l,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),(0,o.R1)(t.reserveSelection)?e.store.assertRowKey():n?e.store.clearSelection():e.store.cleanSelection(),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,l,n,r){var a;const i=(0,o.R1)(t._columns);let s=[];n?(n&&!n.children&&(n.children=[]),null==(a=n.children)||a.push(l),s=ns(i,n)):(i.push(l),s=i),rs(s),t._columns.value=s,t.updateOrderFns.push(r),"selection"===l.type&&(t.selectable.value=l.selectable,t.reserveSelection.value=l.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,l){var n;const r=null==(n=l.getColumnIndex)?void 0:n.call(l);r!==l.no&&(rs(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,l,n,a){var i;const s=(0,o.R1)(t._columns)||[];if(n)null==(i=n.children)||i.splice(n.children.findIndex(e=>e.id===l.id),1),(0,r.dY)(()=>{var e;0===(null==(e=n.children)?void 0:e.length)&&delete n.children}),t._columns.value=ns(s,n);else{const e=s.indexOf(l);e>-1&&(s.splice(e,1),t._columns.value=s)}const u=t.updateOrderFns.indexOf(a);u>-1&&t.updateOrderFns.splice(u,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,l){const{prop:n,order:r,init:a}=l;if(n){const l=(0,o.R1)(t.columns).find(e=>e.property===n);l&&(l.order=r,e.store.updateSort(l,n,r),e.store.commit("changeSortCondition",{init:a}))}},changeSortCondition(t,l){const{sortingColumn:n,sortProp:r,sortOrder:a}=t,i=(0,o.R1)(n),s=(0,o.R1)(r),u=(0,o.R1)(a);Ea(u)&&(t.sortingColumn.value=null,t.sortProp.value=null);const d={filter:!0};e.store.execQuery(d),l&&(l.silent||l.init)||e.emit("sort-change",{column:i,prop:s,order:u}),e.store.updateTableScrollY()},filterChange(t,l){const{column:n,values:r,silent:o}=l,a=e.store.updateFilters(n,r);e.store.execQuery(),o||e.emit("filter-change",a),e.store.updateTableScrollY()},toggleAllSelection(){var t,l;null==(l=(t=e.store).toggleAllSelection)||l.call(t)},rowSelectedChanged(t,l){e.store.toggleRowSelection(l),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,l){e.store.updateCurrentRow(l)}},a=function(t,...l){const n=e.store.mutations;if(!n[t])throw new Error(`Action not found: ${t}`);n[t].apply(e,[e.store.states,...l])},i=function(){(0,r.dY)(()=>e.layout.updateScrollY.apply(e.layout))};return{ns:l,...t,mutations:n,commit:a,updateTableScrollY:i}}const as={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"},["treeProps.checkStrictly"]:{key:"checkStrictly",default:!1}};function is(e,t){if(!e)throw new Error("Table is required.");const l=os();return l.toggleAllSelection=Mr(l._toggleAllSelection,10),Object.keys(as).forEach(e=>{us(ds(t,e),e,l)}),ss(l,t),l}function ss(e,t){Object.keys(as).forEach(l=>{(0,r.wB)(()=>ds(t,l),t=>{us(t,l,e)})})}function us(e,t,l){let n=e,r=as[t];(0,i.Gv)(r)&&(n=n||r.default,r=r.key),l.states[r].value=n}function ds(e,t){if(t.includes(".")){const l=t.split(".");let n=e;return l.forEach(e=>{n=n[e]}),n}return e[t]}class cs{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=(0,o.KR)(null),this.scrollX=(0,o.KR)(!1),this.scrollY=(0,o.KR)(!1),this.bodyWidth=(0,o.KR)(null),this.fixedWidth=(0,o.KR)(null),this.rightFixedWidth=(0,o.KR)(null),this.gutterWidth=0;for(const t in e)(0,i.$3)(e,t)&&((0,o.i9)(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){const e=this.height.value;if(Ea(e))return!1;const t=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(null==t?void 0:t.wrapRef)){let e=!0;const l=this.scrollY.value;return e=t.wrapRef.scrollHeight>t.wrapRef.clientHeight,this.scrollY.value=e,l!==e}return!1}setHeight(e,t="height"){if(!u.oc)return;const l=this.table.vnode.el;e=Pi(e),this.height.value=Number(e),l||!e&&0!==e?l&&(0,p.Et)(e)?(l.style[t]=`${e}px`,this.updateElsHeight()):l&&(0,i.Kg)(e)&&(l.style[t]=e,this.updateElsHeight()):(0,r.dY)(()=>this.setHeight(e,t))}setMaxHeight(e){this.setHeight(e,"max-height")}getFlattenColumns(){const e=[],t=this.table.store.states.columns.value;return t.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(e){if(!e)return!0;let t=e;while("DIV"!==t.tagName){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1}updateColumnsWidth(){var e;if(!u.oc)return;const t=this.fit,l=null==(e=this.table.vnode.el)?void 0:e.clientWidth;let n=0;const r=this.getFlattenColumns(),o=r.filter(e=>!(0,p.Et)(e.width));if(r.forEach(e=>{(0,p.Et)(e.width)&&e.realWidth&&(e.realWidth=null)}),o.length>0&&t){if(r.forEach(e=>{n+=Number(e.width||e.minWidth||80)}),n<=l){this.scrollX.value=!1;const e=l-n;if(1===o.length)o[0].realWidth=Number(o[0].minWidth||80)+e;else{const t=o.reduce((e,t)=>e+Number(t.minWidth||80),0),l=e/t;let n=0;o.forEach((e,t)=>{if(0===t)return;const r=Math.floor(Number(e.minWidth||80)*l);n+=r,e.realWidth=Number(e.minWidth||80)+r}),o[0].realWidth=Number(o[0].minWidth||80)+e-n}}else this.scrollX.value=!0,o.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(n,l),this.table.state.resizeState.value.width=this.bodyWidth.value}else r.forEach(e=>{e.width||e.minWidth?e.realWidth=Number(e.width||e.minWidth):e.realWidth=80,n+=e.realWidth}),this.scrollX.value=n>l,this.bodyWidth.value=n;const a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}const i=this.store.states.rightFixedColumns.value;if(i.length>0){let e=0;i.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers("columns")}addObserver(e){this.observers.push(e)}removeObserver(e){const t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)}notifyObservers(e){const t=this.observers;t.forEach(t=>{var l,n;switch(e){case"columns":null==(l=t.state)||l.onColumnsChange(this);break;case"scrollable":null==(n=t.state)||n.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${e}.`)}})}}var ps=l(5728);const{CheckboxGroup:fs}=ps.dI,vs=(0,r.pM)({name:"ElTableFilterPanel",components:{ElCheckbox:ps.dI,ElCheckboxGroup:fs,ElScrollbar:zn,ElTooltip:Rn,ElIcon:s.tk,ArrowDown:W.yd$,ArrowUp:W.DoI},directives:{ClickOutside:No},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:il.appendTo},setup(e){const t=(0,r.nI)(),{t:l}=(0,A.Ym)(),n=(0,C.DU)("table-filter"),a=null==t?void 0:t.parent;e.column&&!a.filterPanels.value[e.column.id]&&(a.filterPanels.value[e.column.id]=t);const i=(0,o.KR)(!1),s=(0,o.KR)(null),u=(0,r.EW)(()=>e.column&&e.column.filters),d=(0,r.EW)(()=>e.column&&e.column.filterClassName?`${n.b()} ${e.column.filterClassName}`:n.b()),c=(0,r.EW)({get:()=>{var t;return((null==(t=e.column)?void 0:t.filteredValue)||[])[0]},set:e=>{f.value&&((0,p.Xj)(e)?f.value.splice(0,1):f.value.splice(0,1,e))}}),f=(0,r.EW)({get(){return e.column&&e.column.filteredValue||[]},set(t){var l;e.column&&(null==(l=e.upDataColumn)||l.call(e,"filteredValue",t))}}),v=(0,r.EW)(()=>!e.column||e.column.filterMultiple),h=e=>e.value===c.value,m=()=>{i.value=!1},g=e=>{e.stopPropagation(),i.value=!i.value},b=()=>{i.value=!1},y=()=>{x(f.value),m()},w=()=>{f.value=[],x(f.value),m()},R=e=>{c.value=e,(0,p.Xj)(e)?x([]):x(f.value),m()},x=t=>{var l,n;null==(l=e.store)||l.commit("filterChange",{column:e.column,values:t}),null==(n=e.store)||n.updateAllSelected()};(0,r.wB)(i,t=>{var l;e.column&&(null==(l=e.upDataColumn)||l.call(e,"filterOpened",t))},{immediate:!0});const E=(0,r.EW)(()=>{var e,t;return null==(t=null==(e=s.value)?void 0:e.popperRef)?void 0:t.contentRef});return{tooltipVisible:i,multiple:v,filterClassName:d,filteredValue:f,filterValue:c,filters:u,handleConfirm:y,handleReset:w,handleSelect:R,isPropAbsent:p.Xj,isActive:h,t:l,ns:n,showFilterPanel:g,hideFilterPanel:b,popperPaneRef:E,tooltip:s}}});function hs(e,t,l,n,o,a){const s=(0,r.g2)("el-checkbox"),u=(0,r.g2)("el-checkbox-group"),d=(0,r.g2)("el-scrollbar"),c=(0,r.g2)("arrow-up"),p=(0,r.g2)("arrow-down"),f=(0,r.g2)("el-icon"),v=(0,r.g2)("el-tooltip"),h=(0,r.gN)("click-outside");return(0,r.uX)(),(0,r.Wv)(v,{ref:"tooltip",visible:e.tooltipVisible,offset:0,placement:e.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":e.filterClassName,persistent:"","append-to":e.appendTo},{content:(0,r.k6)(()=>[e.multiple?((0,r.uX)(),(0,r.CE)("div",{key:0},[(0,r.Lk)("div",{class:(0,i.C4)(e.ns.e("content"))},[(0,r.bF)(d,{"wrap-class":e.ns.e("wrap")},{default:(0,r.k6)(()=>[(0,r.bF)(u,{modelValue:e.filteredValue,"onUpdate:modelValue":t=>e.filteredValue=t,class:(0,i.C4)(e.ns.e("checkbox-group"))},{default:(0,r.k6)(()=>[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.filters,e=>((0,r.uX)(),(0,r.Wv)(s,{key:e.value,value:e.value},{default:(0,r.k6)(()=>[(0,r.eW)((0,i.v_)(e.text),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","class"])]),_:1},8,["wrap-class"])],2),(0,r.Lk)("div",{class:(0,i.C4)(e.ns.e("bottom"))},[(0,r.Lk)("button",{class:(0,i.C4)({[e.ns.is("disabled")]:0===e.filteredValue.length}),disabled:0===e.filteredValue.length,type:"button",onClick:e.handleConfirm},(0,i.v_)(e.t("el.table.confirmFilter")),11,["disabled","onClick"]),(0,r.Lk)("button",{type:"button",onClick:e.handleReset},(0,i.v_)(e.t("el.table.resetFilter")),9,["onClick"])],2)])):((0,r.uX)(),(0,r.CE)("ul",{key:1,class:(0,i.C4)(e.ns.e("list"))},[(0,r.Lk)("li",{class:(0,i.C4)([e.ns.e("list-item"),{[e.ns.is("active")]:e.isPropAbsent(e.filterValue)}]),onClick:t=>e.handleSelect(null)},(0,i.v_)(e.t("el.table.clearFilter")),11,["onClick"]),((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.filters,t=>((0,r.uX)(),(0,r.CE)("li",{key:t.value,class:(0,i.C4)([e.ns.e("list-item"),e.ns.is("active",e.isActive(t))]),label:t.value,onClick:l=>e.handleSelect(t.value)},(0,i.v_)(t.text),11,["label","onClick"]))),128))],2))]),default:(0,r.k6)(()=>[(0,r.bo)(((0,r.uX)(),(0,r.CE)("span",{class:(0,i.C4)([`${e.ns.namespace.value}-table__column-filter-trigger`,`${e.ns.namespace.value}-none-outline`]),onClick:e.showFilterPanel},[(0,r.bF)(f,null,{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"filter-icon",{},()=>{var t;return[(null==(t=e.column)?void 0:t.filterOpened)?((0,r.uX)(),(0,r.Wv)(c,{key:0})):((0,r.uX)(),(0,r.Wv)(p,{key:1}))]})]),_:3})],10,["onClick"])),[[h,e.hideFilterPanel,e.popperPaneRef]])]),_:3},8,["visible","placement","popper-class","append-to"])}var ms=(0,w.A)(vs,[["render",hs],["__file","filter-panel.vue"]]);function gs(e){const t=(0,r.nI)();(0,r.KC)(()=>{l.value.addObserver(t)}),(0,r.sV)(()=>{n(l.value),o(l.value)}),(0,r.$u)(()=>{n(l.value),o(l.value)}),(0,r.hi)(()=>{l.value.removeObserver(t)});const l=(0,r.EW)(()=>{const t=e.layout;if(!t)throw new Error("Can not find table layout.");return t}),n=t=>{var l;const n=(null==(l=e.vnode.el)?void 0:l.querySelectorAll("colgroup > col"))||[];if(!n.length)return;const r=t.getFlattenColumns(),o={};r.forEach(e=>{o[e.id]=e});for(let e=0,a=n.length;e{var l,n;const r=(null==(l=e.vnode.el)?void 0:l.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let e=0,a=r.length;e{e.stopPropagation()},i=(e,t)=>{!t.filters&&t.sortable?b(e,t,!1):t.filterable&&!t.sortable&&a(e),null==n||n.emit("header-click",t,e)},s=(e,t)=>{null==n||n.emit("header-contextmenu",t,e)},d=(0,o.KR)(null),c=(0,o.KR)(!1),f=(0,o.KR)(),v=(r,o)=>{var a,i;if(u.oc&&!(o.children&&o.children.length>0)&&d.value&&e.border){c.value=!0;const s=n;t("set-drag-visible",!0);const u=null==s?void 0:s.vnode.el,p=null==u?void 0:u.getBoundingClientRect().left,v=null==(i=null==(a=null==l?void 0:l.vnode)?void 0:a.el)?void 0:i.querySelector(`th.${o.id}`),h=v.getBoundingClientRect(),m=h.left-p+30;(0,Pn.iQ)(v,"noclick"),f.value={startMouseLeft:r.clientX,startLeft:h.right-p,startColumnLeft:h.left-p,tableLeft:p};const g=null==s?void 0:s.refs.resizeProxy;g.style.left=`${f.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const b=e=>{const t=e.clientX-f.value.startMouseLeft,l=f.value.startLeft+t;g.style.left=`${Math.max(m,l)}px`},y=()=>{if(c.value){const{startColumnLeft:l,startLeft:n}=f.value,a=Number.parseInt(g.style.left,10),i=a-l;o.width=o.realWidth=i,null==s||s.emit("header-dragend",o.width,n-l,o,r),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",c.value=!1,d.value=null,f.value=void 0,t("set-drag-visible",!1)}document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",y),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{(0,Pn.vy)(v,"noclick")},0)};document.addEventListener("mousemove",b),document.addEventListener("mouseup",y)}},h=(t,l)=>{var n;if(l.children&&l.children.length>0)return;const r=t.target;if(!(0,p.vq)(r))return;const o=null==r?void 0:r.closest("th");if(l&&l.resizable&&o&&!c.value&&e.border){const r=o.getBoundingClientRect(),a=document.body.style,i=(null==(n=o.parentNode)?void 0:n.lastElementChild)===o,s=e.allowDragLastColumn||!i;r.width>12&&r.right-t.clientX<8&&s?(a.cursor="col-resize",(0,Pn.nB)(o,"is-sortable")&&(o.style.cursor="col-resize"),d.value=l):c.value||(a.cursor="",(0,Pn.nB)(o,"is-sortable")&&(o.style.cursor="pointer"),d.value=null)}},m=()=>{u.oc&&(document.body.style.cursor="")},g=({order:e,sortOrders:t})=>{if(""===e)return t[0];const l=t.indexOf(e||null);return t[l>t.length-2?0:l+1]},b=(t,l,r)=>{var o;t.stopPropagation();const a=l.order===r?null:r||g(l),i=null==(o=t.target)?void 0:o.closest("th");if(i&&(0,Pn.nB)(i,"noclick"))return void(0,Pn.vy)(i,"noclick");if(!l.sortable)return;const s=t.currentTarget;if(["ascending","descending"].some(e=>(0,Pn.nB)(s,e)&&!l.sortOrders.includes(e)))return;const u=e.store.states;let d,c=u.sortProp.value;const p=u.sortingColumn.value;(p!==l||p===l&&Ea(p.order))&&(p&&(p.order=null),u.sortingColumn.value=l,c=l.property),d=l.order=a||null,u.sortProp.value=c,u.sortOrder.value=d,null==n||n.store.commit("changeSortCondition")};return{handleHeaderClick:i,handleHeaderContextMenu:s,handleMouseDown:v,handleMouseMove:h,handleMouseOut:m,handleSortClick:b,handleFilterClick:a}}function ws(e){const t=(0,r.WQ)(bs),l=(0,C.DU)("table"),n=e=>{const l=null==t?void 0:t.props.headerRowStyle;return(0,i.Tn)(l)?l.call(null,{rowIndex:e}):l},o=e=>{const l=[],n=null==t?void 0:t.props.headerRowClassName;return(0,i.Kg)(n)?l.push(n):(0,i.Tn)(n)&&l.push(n.call(null,{rowIndex:e})),l.join(" ")},a=(l,n,r,o)=>{var a;let s=null!=(a=null==t?void 0:t.props.headerCellStyle)?a:{};(0,i.Tn)(s)&&(s=s.call(null,{rowIndex:l,columnIndex:n,row:r,column:o}));const u=Gi(n,o.fixed,e.store,r);return Qi(u,"left"),Qi(u,"right"),Object.assign({},s,u)},s=(n,r,o,a)=>{const s=Xi(l.b(),r,a.fixed,e.store,o),u=[a.id,a.order,a.headerAlign,a.className,a.labelClassName,...s];a.children||u.push("is-leaf"),a.sortable&&u.push("is-sortable");const d=null==t?void 0:t.props.headerCellClassName;return(0,i.Kg)(d)?u.push(d):(0,i.Tn)(d)&&u.push(d.call(null,{rowIndex:n,columnIndex:r,row:o,column:a})),u.push(l.e("cell")),u.filter(e=>Boolean(e)).join(" ")};return{getHeaderRowStyle:n,getHeaderRowClass:o,getHeaderCellStyle:a,getHeaderCellClass:s}}const Cs=e=>{const t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Cs(e.children))):t.push(e)}),t},Rs=e=>{let t=1;const l=(e,n)=>{if(n&&(e.level=n.level+1,t{l(n,e),t+=n.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,l(e,void 0)});const n=[];for(let o=0;o{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,n[e.level-1].push(e)}),n};function xs(e){const t=(0,r.WQ)(bs),l=(0,r.EW)(()=>Rs(e.store.states.originColumns.value)),n=(0,r.EW)(()=>{const e=l.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),o=e=>{e.stopPropagation(),null==t||t.store.commit("toggleAllSelection")};return{isGroup:n,toggleAllSelection:o,columnRows:l}}var Es=(0,r.pM)({name:"ElTableHeader",components:{ElCheckbox:ps.dI},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){const l=(0,r.nI)(),n=(0,r.WQ)(bs),a=(0,C.DU)("table"),i=(0,o.KR)({}),{onColumnsChange:s,onScrollableChange:u}=gs(n),d="auto"===(null==n?void 0:n.props.tableLayout),c=(0,o.Kh)(new Map),p=(0,o.KR)();let f;const v=()=>{f=setTimeout(()=>{c.size>0&&(c.forEach((e,t)=>{const l=p.value.querySelector(`.${t.replace(/\s/g,".")}`);if(l){const t=l.getBoundingClientRect().width;e.width=t||e.width}}),c.clear())})};(0,r.wB)(c,v),(0,r.xo)(()=>{f&&(clearTimeout(f),f=void 0)}),(0,r.sV)(async()=>{await(0,r.dY)(),await(0,r.dY)();const{prop:t,order:l}=e.defaultSort;null==n||n.store.commit("sort",{prop:t,order:l,init:!0}),v()});const{handleHeaderClick:h,handleHeaderContextMenu:m,handleMouseDown:g,handleMouseMove:b,handleMouseOut:y,handleSortClick:w,handleFilterClick:R}=ys(e,t),{getHeaderRowStyle:x,getHeaderRowClass:E,getHeaderCellStyle:S,getHeaderCellClass:k}=ws(e),{isGroup:W,toggleAllSelection:O,columnRows:F}=xs(e);return l.state={onColumnsChange:s,onScrollableChange:u},l.filterPanels=i,{ns:a,filterPanels:i,onColumnsChange:s,onScrollableChange:u,columnRows:F,getHeaderRowClass:E,getHeaderRowStyle:x,getHeaderCellClass:k,getHeaderCellStyle:S,handleHeaderClick:h,handleHeaderContextMenu:m,handleMouseDown:g,handleMouseMove:b,handleMouseOut:y,handleSortClick:w,handleFilterClick:R,isGroup:W,toggleAllSelection:O,saveIndexSelection:c,isTableLayoutAuto:d,theadRef:p,updateFixedColumnStyle:v}},render(){const{ns:e,isGroup:t,columnRows:l,getHeaderCellStyle:n,getHeaderCellClass:o,getHeaderRowClass:a,getHeaderRowStyle:i,handleHeaderClick:s,handleHeaderContextMenu:u,handleMouseDown:d,handleMouseMove:c,handleSortClick:p,handleMouseOut:f,store:v,$parent:h,saveIndexSelection:m,isTableLayoutAuto:g}=this;let b=1;return(0,r.h)("thead",{ref:"theadRef",class:{[e.is("group")]:t}},l.map((e,t)=>(0,r.h)("tr",{class:a(t),key:t,style:i(t)},e.map((l,a)=>{l.rowSpan>b&&(b=l.rowSpan);const i=o(t,a,e,l);return g&&l.fixed&&m.set(i,l),(0,r.h)("th",{class:i,colspan:l.colSpan,key:`${l.id}-thead`,rowspan:l.rowSpan,style:n(t,a,e,l),onClick:e=>{var t;(null==(t=e.currentTarget)?void 0:t.classList.contains("noclick"))||s(e,l)},onContextmenu:e=>u(e,l),onMousedown:e=>d(e,l),onMousemove:e=>c(e,l),onMouseout:f},[(0,r.h)("div",{class:["cell",l.filteredValue&&l.filteredValue.length>0?"highlight":""]},[l.renderHeader?l.renderHeader({column:l,$index:a,store:v,_self:h}):l.label,l.sortable&&(0,r.h)("span",{onClick:e=>p(e,l),class:"caret-wrapper"},[(0,r.h)("i",{onClick:e=>p(e,l,"ascending"),class:"sort-caret ascending"}),(0,r.h)("i",{onClick:e=>p(e,l,"descending"),class:"sort-caret descending"})]),l.filterable&&(0,r.h)(ms,{store:v,placement:l.filterPlacement||"bottom-start",appendTo:null==h?void 0:h.appendFilterPanelTo,column:l,upDataColumn:(e,t)=>{l[e]=t}},{"filter-icon":()=>l.renderFilterIcon?l.renderFilterIcon({filterOpened:l.filterOpened}):null})])])}))))}});function Ss(e,t,l=.03){return e-t>l}function ks(e){const t=(0,r.WQ)(bs),l=(0,o.KR)(""),n=(0,o.KR)((0,r.h)("div")),a=(l,n,r)=>{var o,a,i;const s=t,u=Wi(l);let d=null;const c=null==(o=null==s?void 0:s.vnode.el)?void 0:o.dataset.prefix;u&&(d=Ai({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},u,c),d&&(null==s||s.emit(`cell-${r}`,n,d,u,l))),null==s||s.emit(`row-${r}`,n,d,l)},i=(e,t)=>{a(e,t,"dblclick")},s=(t,l)=>{var n;null==(n=e.store)||n.commit("setCurrentRow",l),a(t,l,"click")},u=(e,t)=>{a(e,t,"contextmenu")},d=Mr(t=>{var l;null==(l=e.store)||l.commit("setHoverRow",t)},30),c=Mr(()=>{var t;null==(t=e.store)||t.commit("setHoverRow",null)},30),p=e=>{const t=window.getComputedStyle(e,null),l=Number.parseInt(t.paddingLeft,10)||0,n=Number.parseInt(t.paddingRight,10)||0,r=Number.parseInt(t.paddingTop,10)||0,o=Number.parseInt(t.paddingBottom,10)||0;return{left:l,right:n,top:r,bottom:o}},f=(e,t,l)=>{var n;let r=null==(n=null==t?void 0:t.target)?void 0:n.parentNode;while(e>1){if(r=null==r?void 0:r.nextSibling,!r||"TR"!==r.nodeName)break;l(r,"hover-row hover-fixed-row"),e--}},v=(l,n,r)=>{var o,a,i,s,u,d;if(!t)return;const c=t,v=Wi(l),h=null==(o=null==c?void 0:c.vnode.el)?void 0:o.dataset.prefix;let m=null;if(v){if(m=Ai({columns:null!=(i=null==(a=e.store)?void 0:a.states.columns.value)?i:[]},v,h),!m)return;v.rowSpan>1&&f(v.rowSpan,l,Pn.iQ);const t=c.hoverState={cell:v,column:m,row:n};null==c||c.emit("cell-mouse-enter",t.row,t.column,t.cell,l)}if(!r)return;const g=l.target.querySelector(".cell");if(!(0,Pn.nB)(g,`${h}-tooltip`)||!g.childNodes.length)return;const b=document.createRange();b.setStart(g,0),b.setEnd(g,g.childNodes.length);const{width:y,height:w}=b.getBoundingClientRect(),{width:C,height:R}=g.getBoundingClientRect(),{top:x,left:E,right:S,bottom:k}=p(g),W=E+S,O=x+k;Ss(y+W,C)||Ss(w+O,R)||Ss(g.scrollWidth,C)?Di(r,null!=(s=(null==v?void 0:v.innerText)||(null==v?void 0:v.textContent))?s:"",n,m,v,c):(null==(u=zi)?void 0:u.trigger)===v&&(null==(d=zi)||d())},h=e=>{const l=Wi(e);if(!l)return;l.rowSpan>1&&f(l.rowSpan,e,Pn.vy);const n=null==t?void 0:t.hoverState;null==t||t.emit("cell-mouse-leave",null==n?void 0:n.row,null==n?void 0:n.column,null==n?void 0:n.cell,e)};return{handleDoubleClick:i,handleClick:s,handleContextMenu:u,handleMouseEnter:d,handleMouseLeave:c,handleCellMouseEnter:v,handleCellMouseLeave:h,tooltipContent:l,tooltipTrigger:n}}function Ws(e){const t=(0,r.WQ)(bs),l=(0,C.DU)("table"),n=(e,l)=>{const n=null==t?void 0:t.props.rowStyle;return(0,i.Tn)(n)?n.call(null,{row:e,rowIndex:l}):n||null},o=(n,r)=>{var o;const a=[l.e("row")];(null==t?void 0:t.props.highlightCurrentRow)&&n===(null==(o=e.store)?void 0:o.states.currentRow.value)&&a.push("current-row"),e.stripe&&r%2===1&&a.push(l.em("row","striped"));const s=null==t?void 0:t.props.rowClassName;return(0,i.Kg)(s)?a.push(s):(0,i.Tn)(s)&&a.push(s.call(null,{row:n,rowIndex:r})),a},a=(l,n,r,o)=>{const a=null==t?void 0:t.props.cellStyle;let s=null!=a?a:{};(0,i.Tn)(a)&&(s=a.call(null,{rowIndex:l,columnIndex:n,row:r,column:o}));const u=Gi(n,null==e?void 0:e.fixed,e.store);return Qi(u,"left"),Qi(u,"right"),Object.assign({},s,u)},s=(n,r,o,a,s)=>{const u=Xi(l.b(),r,null==e?void 0:e.fixed,e.store,void 0,s),d=[a.id,a.align,a.className,...u],c=null==t?void 0:t.props.cellClassName;return(0,i.Kg)(c)?d.push(c):(0,i.Tn)(c)&&d.push(c.call(null,{rowIndex:n,columnIndex:r,row:o,column:a})),d.push(l.e("cell")),d.filter(e=>Boolean(e)).join(" ")},u=(e,l,n,r)=>{let o=1,a=1;const s=null==t?void 0:t.props.spanMethod;if((0,i.Tn)(s)){const t=s({row:e,column:l,rowIndex:n,columnIndex:r});(0,i.cy)(t)?(o=t[0],a=t[1]):(0,i.Gv)(t)&&(o=t.rowspan,a=t.colspan)}return{rowspan:o,colspan:a}},d=(e,t,l)=>{if(t<1)return e[l].realWidth;const n=e.map(({realWidth:e,width:t})=>e||t).slice(l,l+t);return Number(n.reduce((e,t)=>Number(e)+Number(t),-1))};return{getRowStyle:n,getRowClass:o,getCellStyle:a,getCellClass:s,getSpan:u,getColspanRealWidth:d}}const Os=(0,r.pM)({name:"TableTdWrapper"}),Fs=(0,r.pM)({...Os,props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup(e){return(t,l)=>((0,r.uX)(),(0,r.CE)("td",{colspan:e.colspan,rowspan:e.rowspan},[(0,r.RG)(t.$slots,"default")],8,["colspan","rowspan"]))}});var Ts=(0,w.A)(Fs,[["__file","td-wrapper.vue"]]),As=l(96763);function Ls(e){const t=(0,r.WQ)(bs),l=(0,C.DU)("table"),{handleDoubleClick:n,handleClick:o,handleContextMenu:a,handleMouseEnter:i,handleMouseLeave:s,handleCellMouseEnter:u,handleCellMouseLeave:d,tooltipContent:c,tooltipTrigger:f}=ks(e),{getRowStyle:v,getRowClass:h,getCellStyle:m,getCellClass:g,getSpan:b,getColspanRealWidth:y}=Ws(e),w=(0,r.EW)(()=>{var t;return null==(t=e.store)?void 0:t.states.columns.value.findIndex(({type:e})=>"default"===e)}),R=(e,l)=>{var n;const r=null==(n=null==t?void 0:t.props)?void 0:n.rowKey;return r?Li(e,r):l},x=(c,f,C,x=!1)=>{const{tooltipEffect:S,tooltipOptions:k,store:W}=e,{indent:O,columns:F}=W.states,T=h(c,f);let A=!0;C&&(T.push(l.em("row",`level-${C.level}`)),A=!!C.display);const L=A?null:{display:"none"};return(0,r.h)("tr",{style:[L,v(c,f)],class:T,key:R(c,f),onDblclick:e=>n(e,c),onClick:e=>o(e,c),onContextmenu:e=>a(e,c),onMouseenter:()=>i(f),onMouseleave:s},F.value.map((l,n)=>{const{rowspan:o,colspan:a}=b(c,l,f,n);if(!o||!a)return null;const i=Object.assign({},l);i.realWidth=y(F.value,a,n);const s={store:W,_self:e.context||t,column:i,row:c,$index:f,cellIndex:n,expanded:x};n===w.value&&C&&(s.treeNode={indent:C.level&&C.level*O.value,level:C.level},(0,p.Lm)(C.expanded)&&(s.treeNode.expanded=C.expanded,"loading"in C&&(s.treeNode.loading=C.loading),"noLazyChildren"in C&&(s.treeNode.noLazyChildren=C.noLazyChildren)));const v=`${R(c,f)},${n}`,h=i.columnKey||i.rawColumnKey||"",T=l.showOverflowTooltip&&ki({effect:S},k,l.showOverflowTooltip);return(0,r.h)(Ts,{style:m(f,n,c,l),class:g(f,n,c,l,a-1),key:`${h}${v}`,rowspan:o,colspan:a,onMouseenter:e=>u(e,c,T),onMouseleave:d},{default:()=>E(n,l,s)})}))},E=(e,t,l)=>t.renderCell(l),S=(n,o)=>{const a=e.store,{isRowExpanded:i,assertRowKey:s}=a,{treeData:u,lazyTreeNodeMap:d,childrenColumnName:c,rowKey:f}=a.states,v=a.states.columns.value,h=v.some(({type:e})=>"expand"===e);if(h){const e=i(n),s=x(n,o,void 0,e),u=null==t?void 0:t.renderExpanded;if(!u)return As.error("[Element Error]renderExpanded is required."),s;const d=[[s]];return(t.props.preserveExpandedContent||e)&&d[0].push((0,r.h)("tr",{key:`expanded-row__${s.key}`,style:{display:e?"":"none"}},[(0,r.h)("td",{colspan:v.length,class:`${l.e("cell")} ${l.e("expanded-cell")}`},[u({row:n,$index:o,store:a,expanded:e})])])),d}if(Object.keys(u.value).length){s();const e=Li(n,f.value);let t=u.value[e],l=null;t&&(l={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},(0,p.Lm)(t.lazy)&&(l&&(0,p.Lm)(t.loaded)&&t.loaded&&(l.noLazyChildren=!(t.children&&t.children.length)),l.loading=t.loading));const r=[x(n,o,null!=l?l:void 0)];if(t){let l=0;const a=(e,n)=>{e&&e.length&&n&&e.forEach(e=>{const i={display:n.display&&n.expanded,level:n.level+1,expanded:!1,noLazyChildren:!1,loading:!1},s=Li(e,f.value);if((0,p.Xj)(s))throw new Error("For nested data item, row-key is required.");if(t={...u.value[s]},t&&(i.expanded=t.expanded,t.level=t.level||i.level,t.display=!(!t.expanded||!i.display),(0,p.Lm)(t.lazy)&&((0,p.Lm)(t.loaded)&&t.loaded&&(i.noLazyChildren=!(t.children&&t.children.length)),i.loading=t.loading)),l++,r.push(x(e,o+l,i)),t){const l=d.value[s]||e[c.value];a(l,t)}})};t.display=!0;const i=d.value[e]||n[c.value];a(i,t)}return r}return x(n,o,void 0)};return{wrappedRowRender:S,tooltipContent:c,tooltipTrigger:f}}const _s={store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:""},highlight:Boolean},Ms=e=>u.oc?window.requestAnimationFrame(e):setTimeout(e,16);var Ks=(0,r.pM)({name:"ElTableBody",props:_s,setup(e){var t;const l=(0,r.nI)(),n=(0,r.WQ)(bs),o=(0,C.DU)("table"),{wrappedRowRender:a,tooltipContent:i,tooltipTrigger:s}=Ls(e),{onColumnsChange:d,onScrollableChange:c}=gs(n),p=[];return(0,r.wB)(null==(t=e.store)?void 0:t.states.hoverRow,(t,n)=>{var r,a;const i=null==l?void 0:l.vnode.el,s=Array.from((null==i?void 0:i.children)||[]).filter(e=>null==e?void 0:e.classList.contains(`${o.e("row")}`));let d=t;const c=null==(r=s[d])?void 0:r.childNodes;if(null==c?void 0:c.length){let e=0;const l=Array.from(c).reduce((t,l,n)=>{var r,o;return(null==(r=c[n])?void 0:r.colSpan)>1&&(e=null==(o=c[n])?void 0:o.colSpan),"TD"!==l.nodeName&&0===e&&t.push(n),e>0&&e--,t},[]);l.forEach(e=>{var l;d=t;while(d>0){const t=null==(l=s[d-1])?void 0:l.childNodes;if(t[e]&&"TD"===t[e].nodeName&&t[e].rowSpan>1){(0,Pn.iQ)(t[e],"hover-cell"),p.push(t[e]);break}d--}})}else p.forEach(e=>(0,Pn.vy)(e,"hover-cell")),p.length=0;(null==(a=e.store)?void 0:a.states.isComplex.value)&&u.oc&&Ms(()=>{const e=s[n],l=s[t];e&&!e.classList.contains("hover-fixed-row")&&(0,Pn.vy)(e,"hover-row"),l&&(0,Pn.iQ)(l,"hover-row")})}),(0,r.hi)(()=>{var e;null==(e=zi)||e()}),{ns:o,onColumnsChange:d,onScrollableChange:c,wrappedRowRender:a,tooltipContent:i,tooltipTrigger:s}},render(){const{wrappedRowRender:e,store:t}=this,l=(null==t?void 0:t.states.data.value)||[];return(0,r.h)("tbody",{tabIndex:-1},[l.reduce((t,l)=>t.concat(e(l,t.length)),[])])}});function Bs(){const e=(0,r.WQ)(bs),t=null==e?void 0:e.store,l=(0,r.EW)(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedLeafColumnsLength.value)?e:0}),n=(0,r.EW)(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0}),o=(0,r.EW)(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value.length)?e:0}),a=(0,r.EW)(()=>{var e;return null!=(e=null==t?void 0:t.states.fixedColumns.value.length)?e:0}),i=(0,r.EW)(()=>{var e;return null!=(e=null==t?void 0:t.states.rightFixedColumns.value.length)?e:0});return{leftFixedLeafCount:l,rightFixedLeafCount:n,columnsCount:o,leftFixedCount:a,rightFixedCount:i,columns:(0,r.EW)(()=>{var e;return null!=(e=null==t?void 0:t.states.columns.value)?e:[]})}}function Ps(e){const{columns:t}=Bs(),l=(0,C.DU)("table"),n=(t,n)=>{const r=t[n],o=[l.e("cell"),r.id,r.align,r.labelClassName,...Xi(l.b(),n,r.fixed,e.store)];return r.className&&o.push(r.className),r.children||o.push(l.is("leaf")),o},r=(t,l)=>{const n=Gi(l,t.fixed,e.store);return Qi(n,"left"),Qi(n,"right"),n};return{getCellClasses:n,getCellStyles:r,columns:t}}var Ns=(0,r.pM)({name:"ElTableFooter",props:{fixed:{type:String,default:""},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(e){const t=(0,r.WQ)(bs),l=(0,C.DU)("table"),{getCellClasses:n,getCellStyles:o,columns:a}=Ps(e),{onScrollableChange:i,onColumnsChange:s}=gs(t);return{ns:l,onScrollableChange:i,onColumnsChange:s,getCellClasses:n,getCellStyles:o,columns:a}},render(){const{columns:e,getCellStyles:t,getCellClasses:l,summaryMethod:n,sumText:o}=this,a=this.store.states.data.value;let i=[];return n?i=n({columns:e,data:a}):e.forEach((e,t)=>{if(0===t)return void(i[t]=o);const l=a.map(t=>Number(t[e.property])),n=[];let r=!0;l.forEach(e=>{if(!Number.isNaN(+e)){r=!1;const t=`${e}`.split(".")[1];n.push(t?t.length:0)}});const s=Math.max.apply(null,n);i[t]=r?"":l.reduce((e,t)=>{const l=Number(t);return Number.isNaN(+l)?e:Number.parseFloat((e+t).toFixed(Math.min(s,20)))},0)}),(0,r.h)((0,r.h)("tfoot",[(0,r.h)("tr",{},[...e.map((n,o)=>(0,r.h)("td",{key:o,colspan:n.colSpan,rowspan:n.rowSpan,class:l(e,o),style:t(n,o)},[(0,r.h)("div",{class:["cell",n.labelClassName]},[i[o]])]))])]))}});function Is(e){const t=t=>{e.commit("setCurrentRow",t)},l=()=>e.getSelectionRows(),n=(t,l,n=!0)=>{e.toggleRowSelection(t,l,!1,n),e.updateAllSelected()},r=()=>{e.clearSelection()},o=t=>{e.clearFilter(t)},a=()=>{e.commit("toggleAllSelection")},i=(t,l)=>{e.toggleRowExpansionAdapter(t,l)},s=()=>{e.clearSort()},u=(t,l)=>{e.commit("sort",{prop:t,order:l})},d=(t,l)=>{e.updateKeyChildren(t,l)};return{setCurrentRow:t,getSelectionRows:l,toggleRowSelection:n,clearSelection:r,clearFilter:o,toggleAllSelection:a,toggleRowExpansion:i,clearSort:s,sort:u,updateKeyChildren:d}}function $s(e,t,l,n){const a=(0,o.KR)(!1),i=(0,o.KR)(null),s=(0,o.KR)(!1),u=e=>{s.value=e},d=(0,o.KR)({width:null,height:null,headerHeight:null}),c=(0,o.KR)(!1),p={display:"inline-block",verticalAlign:"middle"},f=(0,o.KR)(),v=(0,o.KR)(0),h=(0,o.KR)(0),m=(0,o.KR)(0),g=(0,o.KR)(0),b=(0,o.KR)(0);(0,r.nT)(()=>{var l;t.setHeight(null!=(l=e.height)?l:null)}),(0,r.nT)(()=>{var l;t.setMaxHeight(null!=(l=e.maxHeight)?l:null)}),(0,r.wB)(()=>[e.currentRowKey,l.states.rowKey],([e,t])=>{(0,o.R1)(t)&&(0,o.R1)(e)&&l.setCurrentRowKey(`${e}`)},{immediate:!0}),(0,r.wB)(()=>e.data,e=>{n.store.commit("setData",e)},{immediate:!0,deep:!0}),(0,r.nT)(()=>{e.expandRowKeys&&l.setExpandRowKeysAdapter(e.expandRowKeys)});const y=()=>{n.store.commit("setHoverRow",null),n.hoverState&&(n.hoverState=null)},w=(e,t)=>{const{pixelX:l,pixelY:r}=t;Math.abs(l)>=Math.abs(r)&&(n.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},C=(0,r.EW)(()=>e.height||e.maxHeight||l.states.fixedColumns.value.length>0||l.states.rightFixedColumns.value.length>0),R=(0,r.EW)(()=>({width:t.bodyWidth.value?`${t.bodyWidth.value}px`:""})),x=()=>{C.value&&t.updateElsHeight(),t.updateColumnsWidth(),"undefined"!==typeof window&&requestAnimationFrame(W)};(0,r.sV)(async()=>{await(0,r.dY)(),l.updateColumns(),O(),requestAnimationFrame(x);const t=n.vnode.el,o=n.refs.headerWrapper;e.flexible&&t&&t.parentElement&&(t.parentElement.style.minWidth="0"),d.value={width:f.value=t.offsetWidth,height:t.offsetHeight,headerHeight:e.showHeader&&o?o.offsetHeight:null},l.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&n.store.commit("filterChange",{column:e,values:e.filteredValue,silent:!0})}),n.$ready=!0});const E=(e,l)=>{if(!e)return;const n=Array.from(e.classList).filter(e=>!e.startsWith("is-scrolling-"));n.push(t.scrollX.value?l:"is-scrolling-none"),e.className=n.join(" ")},S=e=>{const{tableWrapper:t}=n.refs;E(t,e)},k=e=>{const{tableWrapper:t}=n.refs;return!(!t||!t.classList.contains(e))},W=function(){if(!n.refs.scrollBarRef)return;if(!t.scrollX.value){const e="is-scrolling-none";return void(k(e)||S(e))}const e=n.refs.scrollBarRef.wrapRef;if(!e)return;const{scrollLeft:l,offsetWidth:r,scrollWidth:o}=e,{headerWrapper:a,footerWrapper:i}=n.refs;a&&(a.scrollLeft=l),i&&(i.scrollLeft=l);const s=o-r-1;S(l>=s?"is-scrolling-right":0===l?"is-scrolling-left":"is-scrolling-middle")},O=()=>{n.refs.scrollBarRef&&(n.refs.scrollBarRef.wrapRef&&(0,Sl.MLh)(n.refs.scrollBarRef.wrapRef,"scroll",W,{passive:!0}),e.fit?(0,Sl.wYm)(n.vnode.el,F):(0,Sl.MLh)(window,"resize",F),(0,Sl.wYm)(n.refs.bodyWrapper,()=>{var e,t;F(),null==(t=null==(e=n.refs)?void 0:e.scrollBarRef)||t.update()}))},F=()=>{var t,l,r,o;const a=n.vnode.el;if(!n.$ready||!a)return;let i=!1;const{width:s,height:u,headerHeight:c}=d.value,p=f.value=a.offsetWidth;s!==p&&(i=!0);const y=a.offsetHeight;(e.height||C.value)&&u!==y&&(i=!0);const w="fixed"===e.tableLayout?n.refs.headerWrapper:null==(t=n.refs.tableHeaderRef)?void 0:t.$el;e.showHeader&&(null==w?void 0:w.offsetHeight)!==c&&(i=!0),v.value=(null==(l=n.refs.tableWrapper)?void 0:l.scrollHeight)||0,m.value=(null==w?void 0:w.scrollHeight)||0,g.value=(null==(r=n.refs.footerWrapper)?void 0:r.offsetHeight)||0,b.value=(null==(o=n.refs.appendWrapper)?void 0:o.offsetHeight)||0,h.value=v.value-m.value-g.value-b.value,i&&(d.value={width:p,height:y,headerHeight:e.showHeader&&(null==w?void 0:w.offsetHeight)||0},x())},T=(0,Hn.NV)(),A=(0,r.EW)(()=>{const{bodyWidth:e,scrollY:l,gutterWidth:n}=t;return e.value?e.value-(l.value?n:0)+"px":""}),L=(0,r.EW)(()=>e.maxHeight?"fixed":e.tableLayout),_=(0,r.EW)(()=>{if(e.data&&e.data.length)return;let t="100%";e.height&&h.value&&(t=`${h.value}px`);const l=f.value;return{width:l?`${l}px`:"",height:t}}),M=(0,r.EW)(()=>e.height?{height:"100%"}:e.maxHeight?Number.isNaN(Number(e.maxHeight))?{maxHeight:`calc(${e.maxHeight} - ${m.value+g.value}px)`}:{maxHeight:+e.maxHeight-m.value-g.value+"px"}:{});return{isHidden:a,renderExpanded:i,setDragVisible:u,isGroup:c,handleMouseLeave:y,handleHeaderFooterMousewheel:w,tableSize:T,emptyBlockStyle:_,resizeProxyVisible:s,bodyWidth:A,resizeState:d,doLayout:x,tableBodyStyles:R,tableLayout:L,scrollbarViewStyle:p,scrollbarStyle:M}}function js(e){const t=(0,o.KR)(),l=()=>{const l=e.vnode.el,n=l.querySelector(".hidden-columns"),r={childList:!0,subtree:!0},o=e.store.states.updateOrderFns;t.value=new MutationObserver(()=>{o.forEach(e=>e())}),t.value.observe(n,r)};(0,r.sV)(()=>{l()}),(0,r.hi)(()=>{var e;null==(e=t.value)||e.disconnect()})}var zs={data:{type:Array,default:()=>[]},size:Mo.mU,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:"hasChildren",children:"children",checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:[Boolean,Object],tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean};function Ds(e){const t="auto"===e.tableLayout;let l=e.columns||[];t&&l.every(({width:e})=>(0,p.b0)(e))&&(l=[]);const n=l=>{const n={key:`${e.tableLayout}_${l.id}`,style:{},name:void 0};return t?n.style={width:`${l.width}px`}:n.name=l.id,n};return(0,r.h)("colgroup",{},l.map(e=>(0,r.h)("col",n(e))))}Ds.props=["columns","tableLayout"];const Vs=()=>{const e=(0,o.KR)(),t=(t,l)=>{const n=e.value;n&&n.scrollTo(t,l)},l=(t,l)=>{const n=e.value;n&&(0,p.Et)(l)&&["Top","Left"].includes(t)&&n[`setScroll${t}`](l)},n=e=>l("Top",e),r=e=>l("Left",e);return{scrollBarRef:e,scrollTo:t,setScrollTop:n,setScrollLeft:r}};var qs,Hs,Xs,Us,Gs,Qs,Ys,Zs,Js,eu,tu,lu,nu,ru,ou,au=!1;function iu(){if(!au){au=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),l=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(lu=/\b(iPhone|iP[ao]d)/.exec(e),nu=/\b(iP[ao]d)/.exec(e),eu=/Android/i.exec(e),ru=/FBAN\/\w+;/i.exec(e),ou=/Mobile/i.exec(e),tu=!!/Win64/.exec(e),t){qs=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,qs&&document&&document.documentMode&&(qs=document.documentMode);var n=/(?:Trident\/(\d+.\d+))/.exec(e);Qs=n?parseFloat(n[1])+4:qs,Hs=t[2]?parseFloat(t[2]):NaN,Xs=t[3]?parseFloat(t[3]):NaN,Us=t[4]?parseFloat(t[4]):NaN,Us?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),Gs=t&&t[1]?parseFloat(t[1]):NaN):Gs=NaN}else qs=Hs=Xs=Gs=Us=NaN;if(l){if(l[1]){var r=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);Ys=!r||parseFloat(r[1].replace("_","."))}else Ys=!1;Zs=!!l[2],Js=!!l[3]}else Ys=Zs=Js=!1}}var su,uu={ie:function(){return iu()||qs},ieCompatibilityMode:function(){return iu()||Qs>qs},ie64:function(){return uu.ie()&&tu},firefox:function(){return iu()||Hs},opera:function(){return iu()||Xs},webkit:function(){return iu()||Us},safari:function(){return uu.webkit()},chrome:function(){return iu()||Gs},windows:function(){return iu()||Zs},osx:function(){return iu()||Ys},linux:function(){return iu()||Js},iphone:function(){return iu()||lu},mobile:function(){return iu()||lu||nu||eu||ou},nativeApp:function(){return iu()||ru},android:function(){return iu()||eu},ipad:function(){return iu()||nu}},du=uu,cu=!!(typeof window<"u"&&window.document&&window.document.createElement),pu={canUseDOM:cu,canUseWorkers:typeof Worker<"u",canUseEventListeners:cu&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:cu&&!!window.screen,isInWorker:!cu},fu=pu;function vu(e,t){if(!fu.canUseDOM||t&&!("addEventListener"in document))return!1;var l="on"+e,n=l in document;if(!n){var r=document.createElement("div");r.setAttribute(l,"return;"),n="function"==typeof r[l]}return!n&&su&&"wheel"===e&&(n=document.implementation.hasFeature("Events.wheel","3.0")),n}fu.canUseDOM&&(su=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var hu=vu,mu=10,gu=40,bu=800;function yu(e){var t=0,l=0,n=0,r=0;return"detail"in e&&(l=e.detail),"wheelDelta"in e&&(l=-e.wheelDelta/120),"wheelDeltaY"in e&&(l=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=l,l=0),n=t*mu,r=l*mu,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||r)&&e.deltaMode&&(1==e.deltaMode?(n*=gu,r*=gu):(n*=bu,r*=bu)),n&&!t&&(t=n<1?-1:1),r&&!l&&(l=r<1?-1:1),{spinX:t,spinY:l,pixelX:n,pixelY:r}}yu.getEventType=function(){return du.firefox()?"DOMMouseScroll":hu("wheel")?"wheel":"mousewheel"};var wu=yu; -/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */const Cu=function(e,t){if(e&&e.addEventListener){const l=function(e){const l=wu(e);t&&Reflect.apply(t,this,[e,l])};e.addEventListener("wheel",l,{passive:!0})}},Ru={beforeMount(e,t){Cu(e,t.value)}};let xu=1;const Eu=(0,r.pM)({name:"ElTable",directives:{Mousewheel:Ru},components:{TableHeader:Es,TableBody:Ks,TableFooter:Ns,ElScrollbar:zn,hColgroup:Ds},props:zs,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change","scroll"],setup(e){const{t:t}=(0,A.Ym)(),l=(0,C.DU)("table"),n=(0,r.nI)();(0,r.Gt)(bs,n);const o=is(n,e);n.store=o;const a=new cs({store:n.store,table:n,fit:e.fit,showHeader:e.showHeader});n.layout=a;const i=(0,r.EW)(()=>0===(o.states.data.value||[]).length),{setCurrentRow:s,getSelectionRows:u,toggleRowSelection:d,clearSelection:c,clearFilter:p,toggleAllSelection:f,toggleRowExpansion:v,clearSort:h,sort:m,updateKeyChildren:g}=Is(o),{isHidden:b,renderExpanded:y,setDragVisible:w,isGroup:R,handleMouseLeave:x,handleHeaderFooterMousewheel:E,tableSize:S,emptyBlockStyle:k,resizeProxyVisible:W,bodyWidth:O,resizeState:F,doLayout:T,tableBodyStyles:L,tableLayout:_,scrollbarViewStyle:M,scrollbarStyle:K}=$s(e,a,o,n),{scrollBarRef:B,scrollTo:P,setScrollLeft:N,setScrollTop:I}=Vs(),$=Mr(T,50),j=`${l.namespace.value}-table_${xu++}`;n.tableId=j,n.state={isGroup:R,resizeState:F,doLayout:T,debouncedUpdateLayout:$};const z=(0,r.EW)(()=>{var l;return null!=(l=e.sumText)?l:t("el.table.sumText")}),D=(0,r.EW)(()=>{var l;return null!=(l=e.emptyText)?l:t("el.table.emptyText")}),V=(0,r.EW)(()=>Rs(o.states.originColumns.value)[0]);return js(n),(0,r.xo)(()=>{$.cancel()}),{ns:l,layout:a,store:o,columns:V,handleHeaderFooterMousewheel:E,handleMouseLeave:x,tableId:j,tableSize:S,isHidden:b,isEmpty:i,renderExpanded:y,resizeProxyVisible:W,resizeState:F,isGroup:R,bodyWidth:O,tableBodyStyles:L,emptyBlockStyle:k,debouncedUpdateLayout:$,setCurrentRow:s,getSelectionRows:u,toggleRowSelection:d,clearSelection:c,clearFilter:p,toggleAllSelection:f,toggleRowExpansion:v,clearSort:h,doLayout:T,sort:m,updateKeyChildren:g,t:t,setDragVisible:w,context:n,computedSumText:z,computedEmptyText:D,tableLayout:_,scrollbarViewStyle:M,scrollbarStyle:K,scrollBarRef:B,scrollTo:P,setScrollLeft:N,setScrollTop:I,allowDragLastColumn:e.allowDragLastColumn}}});function Su(e,t,l,n,o,s){const u=(0,r.g2)("hColgroup"),d=(0,r.g2)("table-header"),c=(0,r.g2)("table-body"),p=(0,r.g2)("table-footer"),f=(0,r.g2)("el-scrollbar"),v=(0,r.gN)("mousewheel");return(0,r.uX)(),(0,r.CE)("div",{ref:"tableWrapper",class:(0,i.C4)([{[e.ns.m("fit")]:e.fit,[e.ns.m("striped")]:e.stripe,[e.ns.m("border")]:e.border||e.isGroup,[e.ns.m("hidden")]:e.isHidden,[e.ns.m("group")]:e.isGroup,[e.ns.m("fluid-height")]:e.maxHeight,[e.ns.m("scrollable-x")]:e.layout.scrollX.value,[e.ns.m("scrollable-y")]:e.layout.scrollY.value,[e.ns.m("enable-row-hover")]:!e.store.states.isComplex.value,[e.ns.m("enable-row-transition")]:0!==(e.store.states.data.value||[]).length&&(e.store.states.data.value||[]).length<100,"has-footer":e.showSummary},e.ns.m(e.tableSize),e.className,e.ns.b(),e.ns.m(`layout-${e.tableLayout}`)]),style:(0,i.Tr)(e.style),"data-prefix":e.ns.namespace.value,onMouseleave:e.handleMouseLeave},[(0,r.Lk)("div",{class:(0,i.C4)(e.ns.e("inner-wrapper"))},[(0,r.Lk)("div",{ref:"hiddenColumns",class:"hidden-columns"},[(0,r.RG)(e.$slots,"default")],512),e.showHeader&&"fixed"===e.tableLayout?(0,r.bo)(((0,r.uX)(),(0,r.CE)("div",{key:0,ref:"headerWrapper",class:(0,i.C4)(e.ns.e("header-wrapper"))},[(0,r.Lk)("table",{ref:"tableHeader",class:(0,i.C4)(e.ns.e("header")),style:(0,i.Tr)(e.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[(0,r.bF)(u,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),(0,r.bF)(d,{ref:"tableHeaderRef",border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:e.setDragVisible},null,8,["border","default-sort","store","append-filter-panel-to","allow-drag-last-column","onSetDragVisible"])],6)],2)),[[v,e.handleHeaderFooterMousewheel]]):(0,r.Q3)("v-if",!0),(0,r.Lk)("div",{ref:"bodyWrapper",class:(0,i.C4)(e.ns.e("body-wrapper"))},[(0,r.bF)(f,{ref:"scrollBarRef","view-style":e.scrollbarViewStyle,"wrap-style":e.scrollbarStyle,always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:t=>e.$emit("scroll",t)},{default:(0,r.k6)(()=>[(0,r.Lk)("table",{ref:"tableBody",class:(0,i.C4)(e.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:(0,i.Tr)({width:e.bodyWidth,tableLayout:e.tableLayout})},[(0,r.bF)(u,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),e.showHeader&&"auto"===e.tableLayout?((0,r.uX)(),(0,r.Wv)(d,{key:0,ref:"tableHeaderRef",class:(0,i.C4)(e.ns.e("body-header")),border:e.border,"default-sort":e.defaultSort,store:e.store,"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:e.setDragVisible},null,8,["class","border","default-sort","store","append-filter-panel-to","onSetDragVisible"])):(0,r.Q3)("v-if",!0),(0,r.bF)(c,{context:e.context,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":e.tooltipEffect,"tooltip-options":e.tooltipOptions,"row-style":e.rowStyle,store:e.store,stripe:e.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),e.showSummary&&"auto"===e.tableLayout?((0,r.uX)(),(0,r.Wv)(p,{key:1,class:(0,i.C4)(e.ns.e("body-footer")),border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):(0,r.Q3)("v-if",!0)],6),e.isEmpty?((0,r.uX)(),(0,r.CE)("div",{key:0,ref:"emptyBlock",style:(0,i.Tr)(e.emptyBlockStyle),class:(0,i.C4)(e.ns.e("empty-block"))},[(0,r.Lk)("span",{class:(0,i.C4)(e.ns.e("empty-text"))},[(0,r.RG)(e.$slots,"empty",{},()=>[(0,r.eW)((0,i.v_)(e.computedEmptyText),1)])],2)],6)):(0,r.Q3)("v-if",!0),e.$slots.append?((0,r.uX)(),(0,r.CE)("div",{key:1,ref:"appendWrapper",class:(0,i.C4)(e.ns.e("append-wrapper"))},[(0,r.RG)(e.$slots,"append")],2)):(0,r.Q3)("v-if",!0)]),_:3},8,["view-style","wrap-style","always","tabindex","native","onScroll"])],2),e.showSummary&&"fixed"===e.tableLayout?(0,r.bo)(((0,r.uX)(),(0,r.CE)("div",{key:1,ref:"footerWrapper",class:(0,i.C4)(e.ns.e("footer-wrapper"))},[(0,r.Lk)("table",{class:(0,i.C4)(e.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:(0,i.Tr)(e.tableBodyStyles)},[(0,r.bF)(u,{columns:e.store.states.columns.value,"table-layout":e.tableLayout},null,8,["columns","table-layout"]),(0,r.bF)(p,{border:e.border,"default-sort":e.defaultSort,store:e.store,"sum-text":e.computedSumText,"summary-method":e.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[a.aG,!e.isEmpty],[v,e.handleHeaderFooterMousewheel]]):(0,r.Q3)("v-if",!0),e.border||e.isGroup?((0,r.uX)(),(0,r.CE)("div",{key:2,class:(0,i.C4)(e.ns.e("border-left-patch"))},null,2)):(0,r.Q3)("v-if",!0)],2),(0,r.bo)((0,r.Lk)("div",{ref:"resizeProxy",class:(0,i.C4)(e.ns.e("column-resize-proxy"))},null,2),[[a.aG,e.resizeProxyVisible]])],46,["data-prefix","onMouseleave"])}var ku=(0,w.A)(Eu,[["render",Su],["__file","table.vue"]]);const Wu={selection:"table-column--selection",expand:"table__expand-column"},Ou={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:""},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},Fu=e=>Wu[e]||"",Tu={selection:{renderHeader({store:e,column:t}){var l;function n(){return e.states.data.value&&0===e.states.data.value.length}return(0,r.h)(ps.dI,{disabled:n(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":null!=(l=e.toggleAllSelection)?l:void 0,modelValue:e.states.isAllSelected.value,ariaLabel:t.label})},renderCell({row:e,column:t,store:l,$index:n}){return(0,r.h)(ps.dI,{disabled:!!t.selectable&&!t.selectable.call(null,e,n),size:l.states.tableSize.value,onChange:()=>{l.commit("rowSelectedChanged",e)},onClick:e=>e.stopPropagation(),modelValue:l.isSelected(e),ariaLabel:t.label})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||"#"},renderCell({column:e,$index:t}){let l=t+1;const n=e.index;return(0,p.Et)(n)?l=t+n:(0,i.Tn)(n)&&(l=n(t)),(0,r.h)("div",{},[l])},sortable:!1},expand:{renderHeader({column:e}){return e.label||""},renderCell({column:e,row:t,store:l,expanded:n}){const{ns:o}=l,a=[o.e("expand-icon")];!e.renderExpand&&n&&a.push(o.em("expand-icon","expanded"));const i=function(e){e.stopPropagation(),l.toggleRowExpansion(t)};return(0,r.h)("div",{class:a,onClick:i},{default:()=>e.renderExpand?[e.renderExpand({expanded:n})]:[(0,r.h)(s.tk,null,{default:()=>[(0,r.h)(W.Qpb)]})]})},sortable:!1,resizable:!1}};function Au({row:e,column:t,$index:l}){var n;const r=t.property,o=r&&(0,m.GT)(e,r).value;return t&&t.formatter?t.formatter(e,t,o,l):(null==(n=null==o?void 0:o.toString)?void 0:n.call(o))||""}function Lu({row:e,treeNode:t,store:l},n=!1){const{ns:o}=l;if(!t)return n?[(0,r.h)("span",{class:o.e("placeholder")})]:null;const a=[],i=function(n){n.stopPropagation(),t.loading||l.loadOrToggle(e)};if(t.indent&&a.push((0,r.h)("span",{class:o.e("indent"),style:{"padding-left":`${t.indent}px`}})),(0,p.Lm)(t.expanded)&&!t.noLazyChildren){const e=[o.e("expand-icon"),t.expanded?o.em("expand-icon","expanded"):""];let l=W.Qpb;t.loading&&(l=W.Rhj),a.push((0,r.h)("div",{class:e,onClick:i},{default:()=>[(0,r.h)(s.tk,{class:{[o.is("loading")]:t.loading}},{default:()=>[(0,r.h)(l)]})]}))}else a.push((0,r.h)("span",{class:o.e("placeholder")}));return a}function _u(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function Mu(e,t){const l=(0,r.nI)(),n=()=>{const n=["fixed"],o={realWidth:"width",realMinWidth:"minWidth"},a=_u(n,o);Object.keys(a).forEach(n=>{const a=o[n];(0,i.$3)(t,a)&&(0,r.wB)(()=>t[a],t=>{let r=t;"width"===a&&"realWidth"===n&&(r=Ki(t)),"minWidth"===a&&"realMinWidth"===n&&(r=Bi(t)),l.columnConfig.value[a]=r,l.columnConfig.value[n]=r;const o="fixed"===a;e.value.store.scheduleLayout(o)})})},o=()=>{const e=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","filterClassName","showOverflowTooltip","tooltipFormatter"],n={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},o=_u(e,n);Object.keys(o).forEach(e=>{const o=n[e];(0,i.$3)(t,o)&&(0,r.wB)(()=>t[o],t=>{l.columnConfig.value[e]=t})})};return{registerComplexWatchers:n,registerNormalWatchers:o}}function Ku(e,t,l){const n=(0,r.nI)(),a=(0,o.KR)(""),s=(0,o.KR)(!1),u=(0,o.KR)(),d=(0,o.KR)(),c=(0,C.DU)("table");(0,r.nT)(()=>{u.value=e.align?`is-${e.align}`:null,u.value}),(0,r.nT)(()=>{d.value=e.headerAlign?`is-${e.headerAlign}`:u.value,d.value});const f=(0,r.EW)(()=>{let e=n.vnode.vParent||n.parent;while(e&&!e.tableId&&!e.columnId)e=e.vnode.vParent||e.parent;return e}),v=(0,r.EW)(()=>{const{store:e}=n.parent;if(!e)return!1;const{treeData:t}=e.states,l=t.value;return l&&Object.keys(l).length>0}),h=(0,o.KR)(Ki(e.width)),m=(0,o.KR)(Bi(e.minWidth)),g=e=>(h.value&&(e.width=h.value),m.value&&(e.minWidth=m.value),!h.value&&m.value&&(e.width=void 0),e.minWidth||(e.minWidth=80),e.realWidth=Number((0,p.b0)(e.width)?e.minWidth:e.width),e),b=e=>{const t=e.type,l=Tu[t]||{};Object.keys(l).forEach(t=>{const n=l[t];"className"===t||(0,p.b0)(n)||(e[t]=n)});const n=Fu(t);if(n){const t=`${(0,o.R1)(c.namespace)}-${n}`;e.className=e.className?`${e.className} ${t}`:t}return e},y=e=>{function t(e){var t;"ElTableColumn"===(null==(t=null==e?void 0:e.type)?void 0:t.name)&&(e.vParent=n)}(0,i.cy)(e)?e.forEach(e=>t(e)):t(e)},w=a=>{e.renderHeader||"selection"!==a.type&&(a.renderHeader=e=>(n.columnConfig.value["label"],(0,r.RG)(t,"header",e,()=>[a.label]))),t["filter-icon"]&&(a.renderFilterIcon=e=>(0,r.RG)(t,"filter-icon",e)),t.expand&&(a.renderExpand=e=>(0,r.RG)(t,"expand",e));let i=a.renderCell;return"expand"===a.type?(a.renderCell=e=>(0,r.h)("div",{class:"cell"},[i(e)]),l.value.renderExpanded=e=>t.default?t.default(e):t.default):(i=i||Au,a.renderCell=e=>{let n=null;if(t.default){const l=t.default(e);n=(0,$o.T4)(l)?l:i(e)}else n=i(e);const{columns:s}=l.value.store.states,u=s.value.findIndex(e=>"default"===e.type),d=v.value&&e.cellIndex===u,p=Lu(e,d),f={class:"cell",style:{}};return a.showOverflowTooltip&&(f.class=`${f.class} ${(0,o.R1)(c.namespace)}-tooltip`,f.style={width:(e.column.realWidth||Number(e.column.width))-1+"px"}),y(n),(0,r.h)("div",f,[p,n])}),a},R=(...t)=>t.reduce((t,l)=>((0,i.cy)(l)&&l.forEach(l=>{t[l]=e[l]}),t),{}),x=(e,t)=>Array.prototype.indexOf.call(e,t),E=()=>{l.value.store.commit("updateColumnOrder",n.columnConfig.value)};return{columnId:a,realAlign:u,isSubColumn:s,realHeaderAlign:d,columnOrTableParent:f,setColumnWidth:g,setColumnForcedProps:b,setColumnRenders:w,getPropsData:R,getColumnElIndex:x,updateColumnOrder:E}}var Bu={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}};let Pu=1;var Nu=(0,r.pM)({name:"ElTableColumn",components:{ElCheckbox:ps.dI},props:Bu,setup(e,{slots:t}){const l=(0,r.nI)(),n=(0,o.KR)({}),a=(0,r.EW)(()=>{let e=l.parent;while(e&&!e.tableId)e=e.parent;return e}),{registerNormalWatchers:i,registerComplexWatchers:s}=Mu(a,e),{columnId:u,isSubColumn:d,realHeaderAlign:c,columnOrTableParent:f,setColumnWidth:v,setColumnForcedProps:h,setColumnRenders:m,getPropsData:g,getColumnElIndex:b,realAlign:y,updateColumnOrder:w}=Ku(e,t,a),C=f.value;u.value=`${"tableId"in C&&C.tableId||"columnId"in C&&C.columnId}_column_${Pu++}`,(0,r.KC)(()=>{d.value=a.value!==C;const t=e.type||"default",r=""===e.sortable||e.sortable,o="selection"!==t&&((0,p.b0)(e.showOverflowTooltip)?C.props.showOverflowTooltip:e.showOverflowTooltip),f=(0,p.b0)(e.tooltipFormatter)?C.props.tooltipFormatter:e.tooltipFormatter,b={...Ou[t],id:u.value,type:t,property:e.prop||e.property,align:y,headerAlign:c,showOverflowTooltip:o,tooltipFormatter:f,filterable:e.filters||e.filterMethod,filteredValue:[],filterPlacement:"",filterClassName:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:r,index:e.index,rawColumnKey:l.vnode.key},w=["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],R=["sortMethod","sortBy","sortOrders"],x=["selectable","reserveSelection"],E=["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement","filterClassName"];let S=g(w,R,x,E);S=Mi(b,S);const k=Ni(m,v,h);S=k(S),n.value=S,i(),s()}),(0,r.sV)(()=>{var e,t;const r=f.value,o=d.value?null==(e=r.vnode.el)?void 0:e.children:null==(t=r.refs.hiddenColumns)?void 0:t.children,i=()=>b(o||[],l.vnode.el);n.value.getColumnIndex=i;const s=i();s>-1&&a.value.store.commit("insertColumn",n.value,d.value?"columnConfig"in r&&r.columnConfig.value:null,w)}),(0,r.xo)(()=>{const e=n.value.getColumnIndex,t=e?e():-1;t>-1&&a.value.store.commit("removeColumn",n.value,d.value?"columnConfig"in C&&C.columnConfig.value:null,w)}),l.columnId=u.value,l.columnConfig=n},render(){var e,t,l;try{const n=null==(t=(e=this.$slots).default)?void 0:t.call(e,{row:{},column:{},$index:-1}),o=[];if((0,i.cy)(n))for(const e of n)"ElTableColumn"===(null==(l=e.type)?void 0:l.name)||2&e.shapeFlag?o.push(e):e.type===r.FK&&(0,i.cy)(e.children)&&e.children.forEach(e=>{1024===(null==e?void 0:e.patchFlag)||(0,i.Kg)(null==e?void 0:e.children)||o.push(e)});const a=(0,r.h)("div",o);return a}catch(n){return(0,r.h)("div",[])}}});const Iu=(0,S.GU)(ku,{TableColumn:Nu}),$u=(0,S.WM)(Nu),ju=(0,c.b_)({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:(0,c.jq)([String,Object,Array]),default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}});Symbol("cardContextKey");var zu=l(22974);const Du=(0,r.pM)({name:"ElCard"}),Vu=(0,r.pM)({...Du,props:ju,setup(e){const t=(0,zu.H3)("card"),l=(0,C.DU)("card");return(e,n)=>{var a;return(0,r.uX)(),(0,r.CE)("div",{class:(0,i.C4)([(0,o.R1)(l).b(),(0,o.R1)(l).is(`${e.shadow||(null==(a=(0,o.R1)(t))?void 0:a.shadow)||"always"}-shadow`)])},[e.$slots.header||e.header?((0,r.uX)(),(0,r.CE)("div",{key:0,class:(0,i.C4)([(0,o.R1)(l).e("header"),e.headerClass])},[(0,r.RG)(e.$slots,"header",{},()=>[(0,r.eW)((0,i.v_)(e.header),1)])],2)):(0,r.Q3)("v-if",!0),(0,r.Lk)("div",{class:(0,i.C4)([(0,o.R1)(l).e("body"),e.bodyClass]),style:(0,i.Tr)(e.bodyStyle)},[(0,r.RG)(e.$slots,"default")],6),e.$slots.footer||e.footer?((0,r.uX)(),(0,r.CE)("div",{key:1,class:(0,i.C4)([(0,o.R1)(l).e("footer"),e.footerClass])},[(0,r.RG)(e.$slots,"footer",{},()=>[(0,r.eW)((0,i.v_)(e.footer),1)])],2)):(0,r.Q3)("v-if",!0)],2)}}});var qu=(0,w.A)(Vu,[["__file","card.vue"]]);const Hu=(0,S.GU)(qu),Xu=(0,c.b_)({size:{type:String,values:Dn.I},disabled:Boolean}),Uu=(0,c.b_)({...Xu,model:Object,rules:{type:(0,c.jq)(Object)},labelPosition:{type:String,values:["left","right","top"],default:"right"},requireAsteriskPosition:{type:String,values:["left","right"],default:"left"},labelWidth:{type:[String,Number],default:""},labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:(0,c.jq)([Object,Boolean]),default:!0}}),Gu={validate:(e,t,l)=>((0,i.cy)(e)||(0,i.Kg)(e))&&(0,p.Lm)(t)&&(0,i.Kg)(l)};function Qu(){const e=(0,o.KR)([]),t=(0,r.EW)(()=>{if(!e.value.length)return"0";const t=Math.max(...e.value);return t?`${t}px`:""});function l(l){const n=e.value.indexOf(l);return-1===n&&t.value,n}function n(t,n){if(t&&n){const r=l(n);e.value.splice(r,1,t)}else t&&e.value.push(t)}function a(t){const n=l(t);n>-1&&e.value.splice(n,1)}return{autoLabelWidth:t,registerLabelWidth:n,deregisterLabelWidth:a}}const Yu=(e,t)=>{const l=Jn(t).map(e=>(0,i.cy)(e)?e.join("."):e);return l.length>0?e.filter(e=>e.propString&&l.includes(e.propString)):e},Zu="ElForm",Ju=(0,r.pM)({name:Zu}),ed=(0,r.pM)({...Ju,props:Uu,emits:Gu,setup(e,{expose:t,emit:l}){const n=e,a=(0,o.KR)(),s=(0,o.Kh)([]),u=(0,Hn.NV)(),d=(0,C.DU)("form"),c=(0,r.EW)(()=>{const{labelPosition:e,inline:t}=n;return[d.b(),d.m(u.value||"default"),{[d.m(`label-${e}`)]:e,[d.m("inline")]:t}]}),p=e=>Yu(s,[e])[0],f=e=>{s.push(e)},v=e=>{e.prop&&s.splice(s.indexOf(e),1)},h=(e=[])=>{n.model&&Yu(s,e).forEach(e=>e.resetField())},m=(e=[])=>{Yu(s,e).forEach(e=>e.clearValidate())},g=(0,r.EW)(()=>{const e=!!n.model;return e}),b=e=>{if(0===s.length)return[];const t=Yu(s,e);return t.length?t:[]},y=async e=>R(void 0,e),w=async(e=[])=>{if(!g.value)return!1;const t=b(e);if(0===t.length)return!0;let l={};for(const r of t)try{await r.validate(""),"error"!==r.validateState||r.error||r.resetField()}catch(n){l={...l,...n}}return 0===Object.keys(l).length||Promise.reject(l)},R=async(e=[],t)=>{let l=!1;const r=!(0,i.Tn)(t);try{return l=await w(e),!0===l&&await(null==t?void 0:t(l)),l}catch(o){if(o instanceof Error)throw o;const e=o;if(n.scrollToError&&a.value){const e=a.value.querySelector(`.${d.b()}-item.is-error`);null==e||e.scrollIntoView(n.scrollIntoViewOptions)}return!l&&await(null==t?void 0:t(!1,e)),r&&Promise.reject(e)}},x=e=>{var t;const l=p(e);l&&(null==(t=l.$el)||t.scrollIntoView(n.scrollIntoViewOptions))};return(0,r.wB)(()=>n.rules,()=>{n.validateOnRuleChange&&y().catch(e=>(0,On.U)())},{deep:!0,flush:"post"}),(0,r.Gt)(sn.F,(0,o.Kh)({...(0,o.QW)(n),emit:l,resetFields:h,clearValidate:m,validateField:R,getField:p,addField:f,removeField:v,...Qu()})),t({validate:y,validateField:R,resetFields:h,clearValidate:m,scrollToField:x,getField:p,fields:s}),(e,t)=>((0,r.uX)(),(0,r.CE)("form",{ref_key:"formRef",ref:a,class:(0,i.C4)((0,o.R1)(c))},[(0,r.RG)(e.$slots,"default")],2))}});var td=(0,w.A)(ed,[["__file","form.vue"]]),ld=(l(65606),l(96763));function nd(){return nd=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),n=1;n=o)return e;switch(e){case"%s":return String(l[r++]);case"%d":return Number(l[r++]);case"%j":try{return JSON.stringify(l[r++])}catch(uu){return"[Circular]"}default:return e}});return a}return e}function hd(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}function md(e,t){return void 0===e||null===e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!hd(t)||"string"!==typeof e||e))}function gd(e,t,l){var n=[],r=0,o=e.length;function a(e){n.push.apply(n,e||[]),r++,r===o&&l(n)}e.forEach(function(e){t(e,a)})}function bd(e,t,l){var n=0,r=e.length;function o(a){if(a&&a.length)l(a);else{var i=n;n+=1,i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Ad={integer:function(e){return Ad.number(e)&&parseInt(e,10)===e},float:function(e){return Ad.number(e)&&!Ad.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(t){return!1}},date:function(e){return"function"===typeof e.getTime&&"function"===typeof e.getMonth&&"function"===typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"===typeof e},object:function(e){return"object"===typeof e&&!Ad.array(e)},method:function(e){return"function"===typeof e},email:function(e){return"string"===typeof e&&e.length<=320&&!!e.match(Td.email)},url:function(e){return"string"===typeof e&&e.length<=2048&&!!e.match(Fd())},hex:function(e){return"string"===typeof e&&!!e.match(Td.hex)}},Ld=function(e,t,l,n,r){if(e.required&&void 0===t)Wd(e,t,l,n,r);else{var o=["integer","float","array","regexp","object","method","email","number","date","url","hex"],a=e.type;o.indexOf(a)>-1?Ad[a](t)||n.push(vd(r.messages.types[a],e.fullField,e.type)):a&&typeof t!==e.type&&n.push(vd(r.messages.types[a],e.fullField,e.type))}},_d=function(e,t,l,n,r){var o="number"===typeof e.len,a="number"===typeof e.min,i="number"===typeof e.max,s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=t,d=null,c="number"===typeof t,p="string"===typeof t,f=Array.isArray(t);if(c?d="number":p?d="string":f&&(d="array"),!d)return!1;f&&(u=t.length),p&&(u=t.replace(s,"_").length),o?u!==e.len&&n.push(vd(r.messages[d].len,e.fullField,e.len)):a&&!i&&ue.max?n.push(vd(r.messages[d].max,e.fullField,e.max)):a&&i&&(ue.max)&&n.push(vd(r.messages[d].range,e.fullField,e.min,e.max))},Md="enum",Kd=function(e,t,l,n,r){e[Md]=Array.isArray(e[Md])?e[Md]:[],-1===e[Md].indexOf(t)&&n.push(vd(r.messages[Md],e.fullField,e[Md].join(", ")))},Bd=function(e,t,l,n,r){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||n.push(vd(r.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"===typeof e.pattern){var o=new RegExp(e.pattern);o.test(t)||n.push(vd(r.messages.pattern.mismatch,e.fullField,t,e.pattern))}},Pd={required:Wd,whitespace:Od,type:Ld,range:_d,enum:Kd,pattern:Bd},Nd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t,"string")&&!e.required)return l();Pd.required(e,t,n,o,r,"string"),md(t,"string")||(Pd.type(e,t,n,o,r),Pd.range(e,t,n,o,r),Pd.pattern(e,t,n,o,r),!0===e.whitespace&&Pd.whitespace(e,t,n,o,r))}l(o)},Id=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&Pd.type(e,t,n,o,r)}l(o)},$d=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(""===t&&(t=void 0),md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&(Pd.type(e,t,n,o,r),Pd.range(e,t,n,o,r))}l(o)},jd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&Pd.type(e,t,n,o,r)}l(o)},zd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),md(t)||Pd.type(e,t,n,o,r)}l(o)},Dd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&(Pd.type(e,t,n,o,r),Pd.range(e,t,n,o,r))}l(o)},Vd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&(Pd.type(e,t,n,o,r),Pd.range(e,t,n,o,r))}l(o)},qd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if((void 0===t||null===t)&&!e.required)return l();Pd.required(e,t,n,o,r,"array"),void 0!==t&&null!==t&&(Pd.type(e,t,n,o,r),Pd.range(e,t,n,o,r))}l(o)},Hd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&Pd.type(e,t,n,o,r)}l(o)},Xd="enum",Ud=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r),void 0!==t&&Pd[Xd](e,t,n,o,r)}l(o)},Gd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t,"string")&&!e.required)return l();Pd.required(e,t,n,o,r),md(t,"string")||Pd.pattern(e,t,n,o,r)}l(o)},Qd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t,"date")&&!e.required)return l();var i;if(Pd.required(e,t,n,o,r),!md(t,"date"))i=t instanceof Date?t:new Date(t),Pd.type(e,i,n,o,r),i&&Pd.range(e,i.getTime(),n,o,r)}l(o)},Yd=function(e,t,l,n,r){var o=[],a=Array.isArray(t)?"array":typeof t;Pd.required(e,t,n,o,r,a),l(o)},Zd=function(e,t,l,n,r){var o=e.type,a=[],i=e.required||!e.required&&n.hasOwnProperty(e.field);if(i){if(md(t,o)&&!e.required)return l();Pd.required(e,t,n,a,r,o),md(t,o)||Pd.type(e,t,n,a,r)}l(a)},Jd=function(e,t,l,n,r){var o=[],a=e.required||!e.required&&n.hasOwnProperty(e.field);if(a){if(md(t)&&!e.required)return l();Pd.required(e,t,n,o,r)}l(o)},ec={string:Nd,method:Id,number:$d,boolean:jd,regexp:zd,integer:Dd,float:Vd,array:qd,object:Hd,enum:Ud,pattern:Gd,date:Qd,url:Zd,hex:Zd,email:Zd,required:Yd,any:Jd};function tc(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var lc=tc(),nc=function(){function e(e){this.rules=null,this._messages=lc,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach(function(l){var n=e[l];t.rules[l]=Array.isArray(n)?n:[n]})},t.messages=function(e){return e&&(this._messages=Sd(tc(),e)),this._messages},t.validate=function(t,l,n){var r=this;void 0===l&&(l={}),void 0===n&&(n=function(){});var o=t,a=l,i=n;if("function"===typeof a&&(i=a,a={}),!this.rules||0===Object.keys(this.rules).length)return i&&i(null,o),Promise.resolve(o);function s(e){var t=[],l={};function n(e){var l;Array.isArray(e)?t=(l=t).concat.apply(l,e):t.push(e)}for(var r=0;r");const a=(0,C.DU)("form"),i=(0,o.KR)(),s=(0,o.KR)(0),u=()=>{var e;if(null==(e=i.value)?void 0:e.firstElementChild){const e=window.getComputedStyle(i.value.firstElementChild).width;return Math.ceil(Number.parseFloat(e))}return 0},d=(n="update")=>{(0,r.dY)(()=>{t.default&&e.isAutoWidth&&("update"===n?s.value=u():"remove"===n&&(null==l||l.deregisterLabelWidth(s.value)))})},c=()=>d("update");return(0,r.sV)(()=>{c()}),(0,r.xo)(()=>{d("remove")}),(0,r.$u)(()=>c()),(0,r.wB)(s,(t,n)=>{e.updateAll&&(null==l||l.registerLabelWidth(t,n))}),(0,Sl.wYm)((0,r.EW)(()=>{var e,t;return null!=(t=null==(e=i.value)?void 0:e.firstElementChild)?t:null}),c),()=>{var o,u;if(!t)return null;const{isAutoWidth:d}=e;if(d){const e=null==l?void 0:l.autoLabelWidth,u=null==n?void 0:n.hasLabel,d={};if(u&&e&&"auto"!==e){const t=Math.max(0,Number.parseInt(e,10)-s.value),r=n.labelPosition||l.labelPosition,o="left"===r?"marginRight":"marginLeft";t&&(d[o]=`${t}px`)}return(0,r.bF)("div",{ref:i,class:[a.be("item","label-wrap")],style:d},[null==(o=t.default)?void 0:o.call(t)])}return(0,r.bF)(r.FK,{ref:i},[null==(u=t.default)?void 0:u.call(t)])}}}),pc=l(96763);const fc=(0,r.pM)({name:"ElFormItem"}),vc=(0,r.pM)({...fc,props:uc,setup(e,{expose:t}){const l=e,n=(0,r.Ht)(),s=(0,r.WQ)(sn.F,void 0),d=(0,r.WQ)(sn.w,void 0),c=(0,Hn.NV)(void 0,{formItem:!1}),f=(0,C.DU)("form-item"),v=(0,zl.Bi)().value,h=(0,o.KR)([]),g=(0,o.KR)(""),b=(0,u.V7)(g,100),y=(0,o.KR)(""),w=(0,o.KR)();let R,x=!1;const E=(0,r.EW)(()=>l.labelPosition||(null==s?void 0:s.labelPosition)),S=(0,r.EW)(()=>{if("top"===E.value)return{};const e=(0,Pn._V)(l.labelWidth||(null==s?void 0:s.labelWidth)||"");return e?{width:e}:{}}),k=(0,r.EW)(()=>{if("top"===E.value||(null==s?void 0:s.inline))return{};if(!l.label&&!l.labelWidth&&M)return{};const e=(0,Pn._V)(l.labelWidth||(null==s?void 0:s.labelWidth)||"");return l.label||n.label?{}:{marginLeft:e}}),W=(0,r.EW)(()=>[f.b(),f.m(c.value),f.is("error","error"===g.value),f.is("validating","validating"===g.value),f.is("success","success"===g.value),f.is("required",I.value||l.required),f.is("no-asterisk",null==s?void 0:s.hideRequiredAsterisk),"right"===(null==s?void 0:s.requireAsteriskPosition)?"asterisk-right":"asterisk-left",{[f.m("feedback")]:null==s?void 0:s.statusIcon,[f.m(`label-${E.value}`)]:E.value}]),O=(0,r.EW)(()=>(0,p.Lm)(l.inlineMessage)?l.inlineMessage:(null==s?void 0:s.inlineMessage)||!1),F=(0,r.EW)(()=>[f.e("error"),{[f.em("error","inline")]:O.value}]),T=(0,r.EW)(()=>l.prop?(0,i.cy)(l.prop)?l.prop.join("."):l.prop:""),A=(0,r.EW)(()=>!(!l.label&&!n.label)),L=(0,r.EW)(()=>{var e;return null!=(e=l.for)?e:1===h.value.length?h.value[0]:void 0}),_=(0,r.EW)(()=>!L.value&&A.value),M=!!d,K=(0,r.EW)(()=>{const e=null==s?void 0:s.model;if(e&&l.prop)return(0,m.GT)(e,l.prop).value}),B=(0,r.EW)(()=>{const{required:e}=l,t=[];l.rules&&t.push(...Jn(l.rules));const n=null==s?void 0:s.rules;if(n&&l.prop){const e=(0,m.GT)(n,l.prop).value;e&&t.push(...Jn(e))}if(void 0!==e){const l=t.map((e,t)=>[e,t]).filter(([e])=>Object.keys(e).includes("required"));if(l.length>0)for(const[n,r]of l)n.required!==e&&(t[r]={...n,required:e});else t.push({required:e})}return t}),P=(0,r.EW)(()=>B.value.length>0),N=e=>{const t=B.value;return t.filter(t=>!t.trigger||!e||((0,i.cy)(t.trigger)?t.trigger.includes(e):t.trigger===e)).map(({trigger:e,...t})=>t)},I=(0,r.EW)(()=>B.value.some(e=>e.required)),$=(0,r.EW)(()=>{var e;return"error"===b.value&&l.showMessage&&(null==(e=null==s?void 0:s.showMessage)||e)}),j=(0,r.EW)(()=>`${l.label||""}${(null==s?void 0:s.labelSuffix)||""}`),z=e=>{g.value=e},D=e=>{var t,n;const{errors:r,fields:o}=e;r&&o||pc.error(e),z("error"),y.value=r?null!=(n=null==(t=null==r?void 0:r[0])?void 0:t.message)?n:`${l.prop} is required`:"",null==s||s.emit("validate",l.prop,!1,y.value)},V=()=>{z("success"),null==s||s.emit("validate",l.prop,!0,"")},q=async e=>{const t=T.value,l=new nc({[t]:e});return l.validate({[t]:K.value},{firstFields:!0}).then(()=>(V(),!0)).catch(e=>(D(e),Promise.reject(e)))},H=async(e,t)=>{if(x||!l.prop)return!1;const n=(0,i.Tn)(t);if(!P.value)return null==t||t(!1),!1;const r=N(e);return 0===r.length?(null==t||t(!0),!0):(z("validating"),q(r).then(()=>(null==t||t(!0),!0)).catch(e=>{const{fields:l}=e;return null==t||t(!1,l),!n&&Promise.reject(l)}))},X=()=>{z(""),y.value="",x=!1},U=async()=>{const e=null==s?void 0:s.model;if(!e||!l.prop)return;const t=(0,m.GT)(e,l.prop);x=!0,t.value=ic(R),await(0,r.dY)(),X(),x=!1},G=e=>{h.value.includes(e)||h.value.push(e)},Q=e=>{h.value=h.value.filter(t=>t!==e)};(0,r.wB)(()=>l.error,e=>{y.value=e||"",z(e?"error":"")},{immediate:!0}),(0,r.wB)(()=>l.validateStatus,e=>z(e||""));const Y=(0,o.Kh)({...(0,o.QW)(l),$el:w,size:c,validateMessage:y,validateState:g,labelId:v,inputIds:h,isGroup:_,hasLabel:A,fieldValue:K,addInputId:G,removeInputId:Q,resetField:U,clearValidate:X,validate:H,propString:T});return(0,r.Gt)(sn.w,Y),(0,r.sV)(()=>{l.prop&&(null==s||s.addField(Y),R=ic(K.value))}),(0,r.xo)(()=>{null==s||s.removeField(Y)}),t({size:c,validateMessage:y,validateState:g,validate:H,clearValidate:X,resetField:U}),(e,t)=>{var l;return(0,r.uX)(),(0,r.CE)("div",{ref_key:"formItemRef",ref:w,class:(0,i.C4)((0,o.R1)(W)),role:(0,o.R1)(_)?"group":void 0,"aria-labelledby":(0,o.R1)(_)?(0,o.R1)(v):void 0},[(0,r.bF)((0,o.R1)(cc),{"is-auto-width":"auto"===(0,o.R1)(S).width,"update-all":"auto"===(null==(l=(0,o.R1)(s))?void 0:l.labelWidth)},{default:(0,r.k6)(()=>[(0,o.R1)(A)?((0,r.uX)(),(0,r.Wv)((0,r.$y)((0,o.R1)(L)?"label":"div"),{key:0,id:(0,o.R1)(v),for:(0,o.R1)(L),class:(0,i.C4)((0,o.R1)(f).e("label")),style:(0,i.Tr)((0,o.R1)(S))},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"label",{label:(0,o.R1)(j)},()=>[(0,r.eW)((0,i.v_)((0,o.R1)(j)),1)])]),_:3},8,["id","for","class","style"])):(0,r.Q3)("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),(0,r.Lk)("div",{class:(0,i.C4)((0,o.R1)(f).e("content")),style:(0,i.Tr)((0,o.R1)(k))},[(0,r.RG)(e.$slots,"default"),(0,r.bF)(a.F,{name:`${(0,o.R1)(f).namespace.value}-zoom-in-top`},{default:(0,r.k6)(()=>[(0,o.R1)($)?(0,r.RG)(e.$slots,"error",{key:0,error:y.value},()=>[(0,r.Lk)("div",{class:(0,i.C4)((0,o.R1)(F))},(0,i.v_)(y.value),3)]):(0,r.Q3)("v-if",!0)]),_:3},8,["name"])],6)],10,["role","aria-labelledby"])}}});var hc=(0,w.A)(vc,[["__file","form-item.vue"]]);const mc=(0,S.GU)(td,{FormItem:hc}),gc=(0,S.WM)(hc);var bc=l(64481);const yc={class:"admin-password-manager"},wc={key:0,class:"admin-login"},Cc={key:1,class:"admin-panel"},Rc={class:"action-buttons"},xc={class:"users-section"},Ec={key:0},Sc={key:1,class:"never-logged-in"},kc={class:"pagination-container"},Wc={key:0,class:"generated-password"},Oc={class:"password-display"},Fc={key:1,class:"reset-result"},Tc={key:0},Ac={key:1},Lc={class:"dialog-footer"};function _c(e,t,l,o,u,d){const c=na.WK,p=gc,f=bc.S2,v=mc,h=Hu,m=(0,r.g2)("Refresh"),g=s.tk,b=(0,r.g2)("Key"),y=(0,r.g2)("MagicStick"),w=$u,C=Qn,R=Iu,x=Ra,E=k,S=n.kZ;return(0,r.uX)(),(0,r.CE)("div",yc,[t[22]||(t[22]=(0,r.Lk)("div",{class:"admin-header"},[(0,r.Lk)("h1",null,"Password Management"),(0,r.Lk)("p",{class:"admin-subtitle"},"Admin Editor Access Only")],-1)),o.isAuthenticated?(0,r.Q3)("",!0):((0,r.uX)(),(0,r.CE)("div",wc,[(0,r.bF)(h,{shadow:"always"},{header:(0,r.k6)(()=>t[8]||(t[8]=[(0,r.Lk)("span",null,"Admin Authentication Required",-1)])),default:(0,r.k6)(()=>[(0,r.bF)(v,{onSubmit:(0,a.D$)(o.authenticateAdmin,["prevent"])},{default:(0,r.k6)(()=>[(0,r.bF)(p,{label:"Admin Username"},{default:(0,r.k6)(()=>[(0,r.bF)(c,{modelValue:o.adminCredentials.username,"onUpdate:modelValue":t[0]||(t[0]=e=>o.adminCredentials.username=e),placeholder:"admin_editor",disabled:o.loading},null,8,["modelValue","disabled"])]),_:1}),(0,r.bF)(p,{label:"Password"},{default:(0,r.k6)(()=>[(0,r.bF)(c,{modelValue:o.adminCredentials.password,"onUpdate:modelValue":t[1]||(t[1]=e=>o.adminCredentials.password=e),type:"password",placeholder:"Enter admin password",disabled:o.loading,onKeyup:(0,a.jR)(o.authenticateAdmin,["enter"])},null,8,["modelValue","disabled","onKeyup"])]),_:1}),(0,r.bF)(p,null,{default:(0,r.k6)(()=>[(0,r.bF)(f,{type:"primary",onClick:o.authenticateAdmin,loading:o.loading,style:{width:"100%"}},{default:(0,r.k6)(()=>t[9]||(t[9]=[(0,r.eW)(" Authenticate ",-1)])),_:1,__:[9]},8,["onClick","loading"])]),_:1})]),_:1},8,["onSubmit"])]),_:1})])),o.isAuthenticated?((0,r.uX)(),(0,r.CE)("div",Cc,[(0,r.Lk)("div",Rc,[(0,r.bF)(f,{type:"primary",onClick:o.loadUsers,loading:o.loading},{default:(0,r.k6)(()=>[(0,r.bF)(g,null,{default:(0,r.k6)(()=>[(0,r.bF)(m)]),_:1}),t[10]||(t[10]=(0,r.eW)(" Refresh Users ",-1))]),_:1,__:[10]},8,["onClick","loading"]),(0,r.bF)(f,{type:"warning",onClick:o.showBulkPasswordReset,loading:o.loading},{default:(0,r.k6)(()=>[(0,r.bF)(g,null,{default:(0,r.k6)(()=>[(0,r.bF)(b)]),_:1}),t[11]||(t[11]=(0,r.eW)(" Bulk Password Reset ",-1))]),_:1,__:[11]},8,["onClick","loading"]),(0,r.bF)(f,{type:"success",onClick:o.generateRandomPassword},{default:(0,r.k6)(()=>[(0,r.bF)(g,null,{default:(0,r.k6)(()=>[(0,r.bF)(y)]),_:1}),t[12]||(t[12]=(0,r.eW)(" Generate Random Password ",-1))]),_:1,__:[12]},8,["onClick"])]),(0,r.Lk)("div",xc,[(0,r.bF)(h,{shadow:"hover"},{header:(0,r.k6)(()=>[(0,r.Lk)("span",null,"All Users ("+(0,i.v_)(o.users.length)+")",1)]),default:(0,r.k6)(()=>[(0,r.bF)(R,{data:o.paginatedUsers,stripe:"",style:{width:"100%"},loading:o.loading,"empty-text":"No users found","max-height":"500","scrollbar-always-on":!0},{default:(0,r.k6)(()=>[(0,r.bF)(w,{prop:"username",label:"Username",width:"120"}),(0,r.bF)(w,{prop:"full_name",label:"Full Name",width:"180"}),(0,r.bF)(w,{prop:"role",label:"Role",width:"100"},{default:(0,r.k6)(e=>[(0,r.bF)(C,{type:"professor"===e.row.role?"danger":"primary",size:"small"},{default:(0,r.k6)(()=>[(0,r.eW)((0,i.v_)(e.row.role),1)]),_:2},1032,["type"])]),_:1}),(0,r.bF)(w,{prop:"email",label:"Email",width:"200"}),(0,r.bF)(w,{prop:"last_login",label:"Last Login",width:"150"},{default:(0,r.k6)(e=>[e.row.last_login?((0,r.uX)(),(0,r.CE)("span",Ec,(0,i.v_)(o.formatDate(e.row.last_login)),1)):((0,r.uX)(),(0,r.CE)("span",Sc,"Never"))]),_:1}),(0,r.bF)(w,{label:"Actions",width:"200"},{default:(0,r.k6)(e=>[(0,r.bF)(f,{size:"small",type:"primary",onClick:t=>o.resetUserPassword(e.row),loading:o.resettingUsers.has(e.row.username)},{default:(0,r.k6)(()=>t[13]||(t[13]=[(0,r.eW)(" Reset Password ",-1)])),_:2,__:[13]},1032,["onClick","loading"])]),_:1})]),_:1},8,["data","loading"]),(0,r.Lk)("div",kc,[(0,r.bF)(x,{"current-page":o.currentPage,"onUpdate:currentPage":t[2]||(t[2]=e=>o.currentPage=e),"page-size":o.pageSize,"onUpdate:pageSize":t[3]||(t[3]=e=>o.pageSize=e),"page-sizes":[10,20,50,100],small:!1,total:o.users.length,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:o.handleSizeChange,onCurrentChange:o.handleCurrentChange},null,8,["current-page","page-size","total","onSizeChange","onCurrentChange"])])]),_:1})]),o.generatedPassword?((0,r.uX)(),(0,r.CE)("div",Wc,[(0,r.bF)(E,{title:"Generated Password",type:"success",closable:!1,"show-icon":""},{default:(0,r.k6)(()=>[(0,r.Lk)("div",Oc,[(0,r.Lk)("strong",null,(0,i.v_)(o.generatedPassword),1),(0,r.bF)(f,{size:"small",onClick:t[4]||(t[4]=e=>o.copyToClipboard(o.generatedPassword)),style:{"margin-left":"10px"}},{default:(0,r.k6)(()=>t[14]||(t[14]=[(0,r.eW)(" Copy ",-1)])),_:1,__:[14]})])]),_:1})])):(0,r.Q3)("",!0),o.lastResetResult?((0,r.uX)(),(0,r.CE)("div",Fc,[(0,r.bF)(E,{title:`Password Reset: ${o.lastResetResult.username}`,type:o.lastResetResult.success?"success":"error",closable:!1,"show-icon":""},{default:(0,r.k6)(()=>[o.lastResetResult.success?((0,r.uX)(),(0,r.CE)("div",Tc,[(0,r.Lk)("p",null,[t[15]||(t[15]=(0,r.Lk)("strong",null,"User:",-1)),(0,r.eW)(" "+(0,i.v_)(o.lastResetResult.username)+" ("+(0,i.v_)(o.lastResetResult.full_name)+")",1)]),(0,r.Lk)("p",null,[t[17]||(t[17]=(0,r.Lk)("strong",null,"New Password:",-1)),(0,r.Lk)("code",null,(0,i.v_)(o.lastResetResult.password),1),(0,r.bF)(f,{size:"small",onClick:t[5]||(t[5]=e=>o.copyToClipboard(o.lastResetResult.password)),style:{"margin-left":"10px"}},{default:(0,r.k6)(()=>t[16]||(t[16]=[(0,r.eW)(" Copy ",-1)])),_:1,__:[16]})]),t[18]||(t[18]=(0,r.Lk)("p",{class:"success-note"},"✓ User will need to log in again with the new password",-1))])):((0,r.uX)(),(0,r.CE)("div",Ac,[(0,r.Lk)("p",null,(0,i.v_)(o.lastResetResult.error),1)]))]),_:1},8,["title","type"])])):(0,r.Q3)("",!0)])):(0,r.Q3)("",!0),(0,r.bF)(S,{modelValue:o.bulkResetDialogVisible,"onUpdate:modelValue":t[7]||(t[7]=e=>o.bulkResetDialogVisible=e),title:"Bulk Password Reset",width:"500px","close-on-click-modal":!1},{footer:(0,r.k6)(()=>[(0,r.Lk)("span",Lc,[(0,r.bF)(f,{onClick:t[6]||(t[6]=e=>o.bulkResetDialogVisible=!1)},{default:(0,r.k6)(()=>t[20]||(t[20]=[(0,r.eW)("Cancel",-1)])),_:1,__:[20]}),(0,r.bF)(f,{type:"danger",onClick:o.confirmBulkPasswordReset,loading:o.loading},{default:(0,r.k6)(()=>t[21]||(t[21]=[(0,r.eW)(" Confirm Reset All ",-1)])),_:1,__:[21]},8,["onClick","loading"])])]),default:(0,r.k6)(()=>[(0,r.bF)(E,{title:"Warning",type:"warning",closable:!1,"show-icon":""},{default:(0,r.k6)(()=>t[19]||(t[19]=[(0,r.Lk)("p",null,"This will reset passwords for ALL users and export them to CSV.",-1),(0,r.Lk)("p",null,"All users will be forced to log in again.",-1)])),_:1,__:[19]})]),_:1},8,["modelValue"])])}l(17642),l(58004),l(33853),l(45876),l(32475),l(15024),l(31698);var Mc=l(16990),Kc=l(38880),Bc=l(96763),Pc={name:"AdminPasswordManager",components:{Refresh:W.C42,Key:W.Uzy,MagicStick:W.gf4},setup(){const e=(0,o.KR)(!1),t=(0,o.KR)(!1),l=(0,o.KR)([]),n=(0,o.KR)(""),a=(0,o.KR)(null),i=(0,o.KR)(!1),s=(0,o.KR)(new Set),u=(0,o.KR)(1),d=(0,o.KR)(20),c=(0,o.Kh)({username:"admin_editor",password:""}),p=(0,r.EW)(()=>{const e=(u.value-1)*d.value,t=e+d.value;return l.value.slice(e,t)}),f=async()=>{if(c.username&&c.password){t.value=!0;try{const t=await fetch("/api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:c.username,password:c.password})}),n=await t.json();if(!n.success)throw new Error(n.error||"Login failed");if("admin_editor"!==c.username)throw new Error("Only admin_editor can access this page");const r=await fetch("/api/admin/users?admin_username="+encodeURIComponent(c.username)),o=await r.json();if(!o.success)throw new Error(o.error||"Failed to load users");e.value=!0,l.value=o.users||[],Mc.nk.success(`Successfully authenticated as admin_editor (${o.total_count} users loaded)`)}catch(On){Bc.error("Admin authentication error:",On),Mc.nk.error(On.message||"Authentication failed"),e.value=!1,l.value=[]}finally{t.value=!1}}else Mc.nk.error("Please enter both username and password")},v=async()=>{if(e.value){t.value=!0;try{const e=await fetch("/api/admin/users?admin_username="+encodeURIComponent(c.username)),t=await e.json();if(!t.success)throw new Error(t.error||"Failed to load users");l.value=t.users||[],Mc.nk.success(`Loaded ${l.value.length} users`)}catch(On){Bc.error("Load users error:",On),Mc.nk.error(On.message||"Failed to load users")}finally{t.value=!1}}},h=async()=>{try{const e=await fetch("/api/admin/password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"generate_password",admin_username:c.username,length:12})}),t=await e.json();if(!t.success)throw new Error(t.error||"Failed to generate password");n.value=t.password,Mc.nk.success("Random password generated")}catch(On){Bc.error("Generate password error:",On),Mc.nk.error(On.message||"Failed to generate password")}},m=async e=>{try{const t=await Kc.s.confirm(`Reset password for ${e.username} (${e.full_name})?`,"Confirm Password Reset",{type:"warning",confirmButtonText:"Reset Password",cancelButtonText:"Cancel"});if("confirm"!==t)return;s.value.add(e.username);const l=await fetch("/api/admin/password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"generate_random_password_for_user",admin_username:c.username,target_username:e.username,length:12})}),r=await l.json();if(Bc.log("Password reset response:",r),!r.success)throw a.value={success:!1,username:e.username,error:r.error},new Error(r.error||"Failed to reset password");a.value={success:!0,username:e.username,full_name:r.target_full_name||e.full_name,password:r.new_password},Mc.nk.success(`Password reset for ${e.username}: ${r.new_password}`),n.value=""}catch(On){"cancel"!==On&&(Bc.error("Reset password error:",On),Mc.nk.error(On.message||"Failed to reset password"))}finally{s.value.delete(e.username)}},g=()=>{i.value=!0},b=async()=>{t.value=!0;try{const e=await fetch("/api/admin/password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"bulk_password_export",admin_username:c.username})}),t=await e.json();if(!t.success)throw new Error(t.error||"Bulk password reset failed");Mc.nk.success(`Bulk password reset completed for ${t.users_updated} users`),Mc.nk.info(`CSV exported: ${t.export_file}`),await v(),n.value="",a.value=null}catch(On){Bc.error("Bulk password reset error:",On),Mc.nk.error(On.message||"Bulk password reset failed")}finally{t.value=!1,i.value=!1}},y=async e=>{try{await navigator.clipboard.writeText(e),Mc.nk.success("Copied to clipboard")}catch(On){Bc.error("Copy error:",On),Mc.nk.error("Failed to copy to clipboard")}},w=e=>{if(!e)return"Never";const t=new Date(e);return t.toLocaleDateString()+" "+t.toLocaleTimeString()},C=e=>{d.value=e,u.value=1},R=e=>{u.value=e};return(0,r.sV)(()=>{}),{isAuthenticated:e,loading:t,users:l,paginatedUsers:p,currentPage:u,pageSize:d,generatedPassword:n,lastResetResult:a,bulkResetDialogVisible:i,resettingUsers:s,adminCredentials:c,authenticateAdmin:f,loadUsers:v,generateRandomPassword:h,resetUserPassword:m,showBulkPasswordReset:g,confirmBulkPasswordReset:b,copyToClipboard:y,formatDate:w,handleSizeChange:C,handleCurrentChange:R}}},Nc=l(66262);const Ic=(0,Nc.A)(Pc,[["render",_c],["__scopeId","data-v-04c2a148"]]);var $c=Ic}}]); \ No newline at end of file diff --git a/dist/static/js/456.307a3cf2.js b/dist/static/js/456.307a3cf2.js deleted file mode 100644 index a7b7baca..00000000 --- a/dist/static/js/456.307a3cf2.js +++ /dev/null @@ -1,139 +0,0 @@ -(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[456],{277:function(e,t,n){"use strict";n(17642),n(58004),n(33853),n(45876),n(32475),n(15024),n(31698);var r=n(16990),i=n(96763);const o=()=>{const e=window.location.hostname;return e.startsWith("exam.")||e.includes("exam.")},a=!o();class s{constructor(){this.allowedContentHashes=new Set,this.hashSalt="ide_clipboard_salt_2025"}generateContentHash(e){if(!e||"string"!==typeof e)return null;const t=e.trim().replace(/\s+/g," ");let n=0;for(let r=0;rk.handleNewFolder&&k.handleNewFolder(...e)),title:"New Folder"},[(0,i.bF)(w,{size:16})]),(0,i.Lk)("button",{class:"action-btn new-file-btn",onClick:t[1]||(t[1]=(...e)=>k.handleNewFile&&k.handleNewFile(...e)),title:"New File"},[(0,i.bF)(x,{size:16})]),k.isAdmin?((0,i.uX)(),(0,i.CE)("button",{key:0,class:"action-btn import-btn",onClick:t[2]||(t[2]=(...e)=>k.handleImportFile&&k.handleImportFile(...e)),title:"Import Files"},[(0,i.bF)(C,{size:16})])):(0,i.Q3)("",!0),k.isAdmin?((0,i.uX)(),(0,i.CE)("button",{key:1,class:"action-btn bulk-upload-btn",onClick:t[3]||(t[3]=(...e)=>k.handleBulkUpload&&k.handleBulkUpload(...e)),title:"Bulk Upload to Students"},[(0,i.bF)(S,{size:16})])):(0,i.Q3)("",!0),(0,i.Lk)("button",{class:"action-btn refresh-btn",onClick:t[4]||(t[4]=(...e)=>k.refreshTree&&k.refreshTree(...e)),title:"Refresh"},[(0,i.bF)(j,{size:16})])])]),(0,i.bF)(L,{id:"tree-root",class:"ide-project-list noselected",props:b.treeProps,data:k.treeData,"node-key":"uuid",ref:"tree","highlight-current":"","expand-on-click-node":!1,indent:12,"default-expanded-keys":k.defaultExpandedKeys,onNodeExpand:k.nodeExpand,onNodeCollapse:k.nodeCollapse,onNodeClick:k.handleNodeClick,onNodeContextmenu:k.handleContextMenu},{default:(0,i.k6)(({node:e,data:t})=>[(0,i.Lk)("span",{class:"node-wrapper",onDblclick:(0,o.D$)(e=>k.handleDoubleClick(t),["stop"])},[(0,i.Lk)("img",{src:k.getIconUrl(t),alt:"",class:"node-icon"},null,8,d),(0,i.Lk)("span",p,(0,a.v_)(e.label),1),"file"===t.type||"dir"===t.type||"folder"===t.type?((0,i.uX)(),(0,i.CE)("span",f,[(0,i.Lk)("button",{class:"dropdown-btn",onClick:(0,o.D$)(e=>k.showDropdown(e,t),["stop"]),title:"Actions"},[(0,i.bF)(T,{size:14})],8,h)])):(0,i.Q3)("",!0)],40,u)]),_:1},8,["props","data","default-expanded-keys","onNodeExpand","onNodeCollapse","onNodeClick","onNodeContextmenu"]),b.contextMenu.visible?((0,i.uX)(),(0,i.CE)("div",{key:0,class:"context-menu",style:(0,a.Tr)({left:b.contextMenu.x+"px",top:b.contextMenu.y+"px"})},["file"===b.contextMenu.data.type&&k.isPreviewFile(b.contextMenu.data)?((0,i.uX)(),(0,i.CE)("div",{key:0,class:"menu-item",onClick:t[5]||(t[5]=e=>k.handleMenuAction("openInEditor",b.contextMenu.data))},t[13]||(t[13]=[(0,i.Lk)("span",null,"Open in Editor",-1)]))):(0,i.Q3)("",!0),"file"===b.contextMenu.data.type&&k.isPreviewFile(b.contextMenu.data)?((0,i.uX)(),(0,i.CE)("div",g)):(0,i.Q3)("",!0),k.isProtectedFolder(b.contextMenu.data)?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",{key:2,class:(0,a.C4)(["menu-item",{disabled:!k.canRenameOrDelete(b.contextMenu.data)}]),onClick:t[6]||(t[6]=e=>k.canRenameOrDelete(b.contextMenu.data)&&k.handleMenuAction("rename",b.contextMenu.data))},t[14]||(t[14]=[(0,i.Lk)("span",null,"Rename",-1)]),2)),k.isProtectedFolder(b.contextMenu.data)?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",m)),"file"===b.contextMenu.data.type?((0,i.uX)(),(0,i.CE)("div",{key:4,class:"menu-item",onClick:t[7]||(t[7]=e=>k.handleMenuAction("download",b.contextMenu.data))},t[15]||(t[15]=[(0,i.Lk)("span",null,"Download",-1)]))):(0,i.Q3)("",!0),k.isProtectedFolder(b.contextMenu.data)?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",{key:5,class:(0,a.C4)(["menu-item danger",{disabled:!k.canRenameOrDelete(b.contextMenu.data)}]),onClick:t[8]||(t[8]=e=>k.canRenameOrDelete(b.contextMenu.data)&&k.handleMenuAction("delete",b.contextMenu.data))},t[16]||(t[16]=[(0,i.Lk)("span",null,"Delete",-1)]),2))],4)):(0,i.Q3)("",!0),b.dropdown.visible?((0,i.uX)(),(0,i.CE)("div",{key:1,class:"dropdown-menu",style:(0,a.Tr)({left:b.dropdown.x+"px",top:b.dropdown.y+"px"})},["file"===b.dropdown.data.type&&k.isPreviewFile(b.dropdown.data)?((0,i.uX)(),(0,i.CE)("div",{key:0,class:"menu-item",onClick:t[9]||(t[9]=e=>k.handleMenuAction("openInEditor",b.dropdown.data))},t[17]||(t[17]=[(0,i.Lk)("span",null,"Open in Editor",-1)]))):(0,i.Q3)("",!0),"file"===b.dropdown.data.type&&k.isPreviewFile(b.dropdown.data)?((0,i.uX)(),(0,i.CE)("div",_)):(0,i.Q3)("",!0),k.isProtectedFolder(b.dropdown.data)?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",{key:2,class:(0,a.C4)(["menu-item",{disabled:!k.canRenameOrDelete(b.dropdown.data)}]),onClick:t[10]||(t[10]=e=>k.canRenameOrDelete(b.dropdown.data)&&k.handleMenuAction("rename",b.dropdown.data))},t[18]||(t[18]=[(0,i.Lk)("span",null,"Rename",-1)]),2)),k.isProtectedFolder(b.dropdown.data)?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",v)),"file"===b.dropdown.data.type?((0,i.uX)(),(0,i.CE)("div",{key:4,class:"menu-item",onClick:t[11]||(t[11]=e=>k.handleMenuAction("download",b.dropdown.data))},t[19]||(t[19]=[(0,i.Lk)("span",null,"Download",-1)]))):(0,i.Q3)("",!0),k.isProtectedFolder(b.dropdown.data)?(0,i.Q3)("",!0):((0,i.uX)(),(0,i.CE)("div",{key:5,class:(0,a.C4)(["menu-item danger",{disabled:!k.canRenameOrDelete(b.dropdown.data)}]),onClick:t[12]||(t[12]=e=>k.canRenameOrDelete(b.dropdown.data)&&k.handleMenuAction("delete",b.dropdown.data))},t[20]||(t[20]=[(0,i.Lk)("span",null,"Delete",-1)]),2))],4)):(0,i.Q3)("",!0)])}n(44114),n(18111),n(20116),n(7588),n(61701),n(17642),n(58004),n(33853),n(45876),n(32475),n(15024),n(31698);var b=n(56660),k=n(53793),w=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const x=(0,w.A)("refresh-cw",[["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"}]]),C=(0,w.A)("ellipsis-vertical",[["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"}]]),S=(0,w.A)("file-plus",[["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:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);var j=n(79769),T=n(75365),L=n(86774),E=n(16990),A=n(38880),M=n(96763),D={components:{RefreshCw:x,MoreVertical:C,FilePlus:S,FolderPlus:j.A,Upload:T.A,Users:L.A},props:{currentUser:{type:Object,default:null}},data(){return{getFile:!0,treeProps:{uuid:"uuid",label:"label",children:"children"},contextMenu:{visible:!1,x:0,y:0,data:null},dropdown:{visible:!1,x:0,y:0,data:null},renameMode:!1,renameData:null}},methods:{isPreviewFile(e){if(!e||"file"!==e.type)return!1;const t=e.path||"",n=[".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".pdf",".csv",".txt"];return n.some(e=>t.toLowerCase().endsWith(e))},handleNewFile(){const e=this.ideInfo.nodeSelected;if(!e||"dir"!==e.type&&"folder"!==e.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.$emit("new-file")},handleNewFolder(){const e=this.ideInfo.nodeSelected;if(!e||"dir"!==e.type&&"folder"!==e.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.$emit("new-folder")},handleImportFile(){const e=this.ideInfo.nodeSelected;if(!e||"dir"!==e.type&&"folder"!==e.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.$emit("import-file")},handleBulkUpload(){this.$emit("bulk-upload")},refreshTree(){const e=this;if(this.ideInfo.allProjects&&this.ideInfo.allProjects.length>0){const t=this.ideInfo.allProjects.map(e=>e.name),n=[];let r=0;t.forEach(i=>{this.$store.dispatch(`ide/${b.QQ}`,{projectName:i,callback:i=>{if(0==i.code&&(n.push(i.data),r++,r===t.length)){e.$store.commit("ide/handleMultipleProjects",n);const t=n.find(t=>t.name===e.ideInfo.currProj.data.name);t&&e.$store.commit("ide/refreshProject",t),(0,E.nk)({type:"success",message:"All project trees refreshed",duration:2e3})}}})})}else this.ideInfo.currProj&&this.ideInfo.currProj.data&&this.$store.dispatch(`ide/${b.QQ}`,{projectName:this.ideInfo.currProj.data.name,callback:t=>{0==t.code&&(e.$store.commit("ide/refreshProject",t.data),(0,E.nk)({type:"success",message:"Project tree refreshed",duration:2e3}))}})},getIconUrl(e){return"file"===e.type?n(80238)(`./${(0,k.ry)(e.path.substring(e.path.lastIndexOf(".")+1))}`):"dir"===e.type||"folder"===e.type?this.expandedKeys.includes(e.path)?n(80238)(`./${(0,k.vT)(e.label)}`):n(80238)(`./${(0,k.lM)(e.label)}`):void 0},nodeExpand(e){this.getFile=!1,this.$store.commit("ide/addExpandNodeKey",e.uuid),this.$store.dispatch(`ide/${b.xv}`,{})},nodeCollapse(e){this.getFile=!1,this.$store.commit("ide/delExpandNodeKey",e.uuid),this.$store.dispatch(`ide/${b.xv}`,{})},handleNodeClick(e){if(this.closeAllMenus(),M.log("[ProjTree] handleNodeClick:",{path:e.path,name:e.name,type:e.type,projectName:e.projectName,fullData:e}),this.$store.commit("ide/setNodeSelected",e),this.ideInfo.multiRootData&&e.projectName){const t=this.ideInfo.allProjects.find(t=>t.name===e.projectName);t&&(M.log("[ProjTree] Setting project as current:",t.name),this.$store.commit("ide/handleProject",t))}"file"===e.type&&(M.log("[ProjTree] Emitting get-item with:",e.path,!1,e.projectName),this.$emit("get-item",e.path,!1,e.projectName))},handleDoubleClick(e){"file"===e.type&&this.$emit("get-item",e.path,!1,e.projectName)},handleContextMenu(e,t,n){e.preventDefault(),"file"!==t.type&&"dir"!==t.type&&"folder"!==t.type||this.showContextMenu(e,t)},showContextMenu(e,t){this.closeAllMenus();const n=150,r=200;let i=e.clientX,o=e.clientY;i+n>window.innerWidth&&(i=window.innerWidth-n-10),o+r>window.innerHeight&&(o=window.innerHeight-r-10),i<10&&(i=10),this.contextMenu={visible:!0,x:i,y:o,data:t},document.addEventListener("click",this.closeAllMenus)},showDropdown(e,t){e.preventDefault(),e.stopPropagation(),this.closeAllMenus();const n=e.target.getBoundingClientRect();this.dropdown={visible:!0,x:n.left,y:n.bottom,data:t},document.addEventListener("click",this.closeAllMenus)},closeAllMenus(){this.contextMenu.visible=!1,this.dropdown.visible=!1,document.removeEventListener("click",this.closeAllMenus)},isProtectedFolder(e){const t=e.label||e.name;if(this.currentUser&&"student"===this.currentUser.role)return"/"===e.path&&"Local"!==t;const n=[];return"/"===e.path&&n.includes(t)},canRenameOrDelete(e){if(!this.currentUser)return!1;if("professor"===this.currentUser.role)return!this.isProtectedFolder(e);if("student"===this.currentUser.role){const t=`Local/${this.currentUser.username}`,n=e.path||"";return n.startsWith(t+"/")&&!this.isProtectedFolder(e)}return!1},startRename(e){if(!this.canRenameOrDelete(e))return void E.nk.warning("You do not have permission to rename this item.");const t=e.label||e.name;let n=t,r="";if("file"===e.type){const e=t.lastIndexOf(".");e>0&&(n=t.substring(0,e),r=t.substring(e))}const i="file"===e.type,o=i?/^[a-zA-Z0-9_.-]+$/:/^[a-zA-Z0-9_. -]+$/,a=i?"Invalid filename format (no spaces allowed)":"Invalid folder name format";A.s.prompt("Enter new name:","Rename",{confirmButtonText:"OK",cancelButtonText:"Cancel",inputValue:n,inputPattern:o,inputErrorMessage:a}).then(({value:t})=>{const n="file"===e.type&&r?t+r:t;this.doRename(e,n)}).catch(()=>{})},doRename(e,t){M.log("[ProjTree] doRename - data:",e),M.log("[ProjTree] doRename - projectName from data:",e.projectName),this.$emit("rename-item",{oldPath:e.path,newName:t,type:e.type,projectName:e.projectName||this.ideInfo.currProj?.data?.name})},handleMenuAction(e,t){switch(this.closeAllMenus(),e){case"open":"file"===t.type&&this.$emit("get-item",t.path,!1,t.projectName);break;case"openInEditor":"file"===t.type&&this.$emit("open-in-editor",t.path,t.projectName);break;case"rename":this.startRename(t);break;case"delete":if(this.isProtectedFolder(t))return void E.nk.warning(`The "${t.label}" folder cannot be deleted as it is protected.`);if("directory"===t.type){const e=this.countFolderContents(t);let n=`Are you sure you want to delete "${t.label}"?`;if(e.totalFiles>0||e.totalFolders>0){const r=1===e.totalFiles?"file":"files",i=1===e.totalFolders?"folder":"folders";n=e.totalFiles>0&&e.totalFolders>0?`This folder contains ${e.totalFiles} ${r} and ${e.totalFolders} ${i}. Are you sure you want to delete "${t.label}" and all its contents?`:e.totalFiles>0?`This folder contains ${e.totalFiles} ${r}. Are you sure you want to delete "${t.label}" and all its contents?`:`This folder contains ${e.totalFolders} ${i}. Are you sure you want to delete "${t.label}" and all its contents?`}A.s.confirm(n,"Confirm Delete",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}).then(()=>{M.log("[ProjTree] Emitting delete for:",t),this.$emit("delete-item",{path:t.path,type:t.type,projectName:t.projectName||this.ideInfo.currProj?.data?.name})}).catch(()=>{})}else A.s.confirm(`Are you sure you want to delete "${t.label}"?`,"Confirm Delete",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}).then(()=>{M.log("[ProjTree] Emitting delete for:",t),this.$emit("delete-item",{path:t.path,type:t.type,projectName:t.projectName||this.ideInfo.currProj?.data?.name})}).catch(()=>{});break;case"download":"file"===t.type&&this.$emit("download-item",t);break}},countFolderContents(e){let t=0,n=0;const r=e=>{if(e.children)for(const i of e.children)"file"===i.type?t++:"directory"===i.type&&(n++,r(i))};return r(e),{totalFiles:t,totalFolders:n}}},mounted(){this.$store.commit("ide/setTreeRef",this.$refs.tree);const e=this;setTimeout(()=>{e.ideInfo.treeRef&&(e.ideInfo.treeRef.setCurrentKey("/"),null!==e.ideInfo.treeRef.getCurrentNode()&&e.$store.commit("ide/setNodeSelected",e.ideInfo.treeRef.getCurrentNode()),setTimeout(()=>{null!==e.ideInfo.currProj.pathSelected&&(e.ideInfo.treeRef.setCurrentKey(e.ideInfo.currProj.pathSelected),null!==e.ideInfo.treeRef.getCurrentNode()&&e.$store.commit("ide/setNodeSelected",e.ideInfo.treeRef.getCurrentNode()))},200))},300)},watch:{"ideInfo.currProj.pathSelected":{handler(e,t){const n=this;setTimeout(()=>{n.ideInfo.currProj.pathSelected&&n.ideInfo.treeRef.setCurrentKey(n.ideInfo.currProj.pathSelected)},100)}}},computed:{ideInfo(){return this.$store.state.ide.ideInfo},isAdmin(){const e=["sl7927","sa9082","et2434"];return this.currentUser&&e.includes(this.currentUser.username)},treeData(){return this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0?(M.log("[ProjTree] Using multiRootData with projects:",this.ideInfo.multiRootData.children.map(e=>e.name)),this.ideInfo.multiRootData.children):(M.log("[ProjTree] Using single project mode:",this.ideInfo.currProj?.data?.name),this.ideInfo.currProj.data?[this.ideInfo.currProj.data]:[])},expandedKeys(){return this.ideInfo?this.ideInfo.currProj.expandedKeys:[]},defaultExpandedKeys(){const e=[];if(void 0!==this.expandedKeys&&Array.isArray(this.expandedKeys))for(let t=0;t92||"NODE"===a&&o>94||"BROWSER"===a&&o>97)return!1;var e=new ArrayBuffer(8),t=s(e,{transfer:[e]});return 0!==e.byteLength||8!==t.byteLength})},2189:function(e){var t=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},n=-1,r=1,i=0;t.Diff=function(e,t){return[e,t]},t.prototype.diff_main=function(e,n,r,o){"undefined"==typeof o&&(o=this.Diff_Timeout<=0?Number.MAX_VALUE:(new Date).getTime()+1e3*this.Diff_Timeout);var a=o;if(null==e||null==n)throw new Error("Null input. (diff_main)");if(e==n)return e?[new t.Diff(i,e)]:[];"undefined"==typeof r&&(r=!0);var s=r,l=this.diff_commonPrefix(e,n),c=e.substring(0,l);e=e.substring(l),n=n.substring(l),l=this.diff_commonSuffix(e,n);var u=e.substring(e.length-l);e=e.substring(0,e.length-l),n=n.substring(0,n.length-l);var d=this.diff_compute_(e,n,s,a);return c&&d.unshift(new t.Diff(i,c)),u&&d.push(new t.Diff(i,u)),this.diff_cleanupMerge(d),d},t.prototype.diff_compute_=function(e,o,a,s){var l;if(!e)return[new t.Diff(r,o)];if(!o)return[new t.Diff(n,e)];var c=e.length>o.length?e:o,u=e.length>o.length?o:e,d=c.indexOf(u);if(-1!=d)return l=[new t.Diff(r,c.substring(0,d)),new t.Diff(i,u),new t.Diff(r,c.substring(d+u.length))],e.length>o.length&&(l[0][0]=l[2][0]=n),l;if(1==u.length)return[new t.Diff(n,e),new t.Diff(r,o)];var p=this.diff_halfMatch_(e,o);if(p){var f=p[0],h=p[1],g=p[2],m=p[3],_=p[4],v=this.diff_main(f,g,a,s),y=this.diff_main(h,m,a,s);return v.concat([new t.Diff(i,_)],y)}return a&&e.length>100&&o.length>100?this.diff_lineMode_(e,o,s):this.diff_bisect_(e,o,s)},t.prototype.diff_lineMode_=function(e,o,a){var s=this.diff_linesToChars_(e,o);e=s.chars1,o=s.chars2;var l=s.lineArray,c=this.diff_main(e,o,!1,a);this.diff_charsToLines_(c,l),this.diff_cleanupSemantic(c),c.push(new t.Diff(i,""));var u=0,d=0,p=0,f="",h="";while(u=1&&p>=1){c.splice(u-d-p,d+p),u=u-d-p;for(var g=this.diff_main(f,h,!1,a),m=g.length-1;m>=0;m--)c.splice(u,0,g[m]);u+=g.length}p=0,d=0,f="",h="";break}u++}return c.pop(),c},t.prototype.diff_bisect_=function(e,i,o){for(var a=e.length,s=i.length,l=Math.ceil((a+s)/2),c=l,u=2*l,d=new Array(u),p=new Array(u),f=0;fo)break;for(var k=-b+m;k<=b-_;k+=2){var w=c+k;L=k==-b||k!=b&&d[w-1]a)_+=2;else if(x>s)m+=2;else if(g){var C=c+h-k;if(C>=0&&C=S)return this.diff_bisectSplit_(e,i,L,x,o)}}}for(var j=-b+v;j<=b-y;j+=2){C=c+j;S=j==-b||j!=b&&p[C-1]a)y+=2;else if(T>s)v+=2;else if(!g){w=c+h-j;if(w>=0&&w=S)return this.diff_bisectSplit_(e,i,L,x,o)}}}}return[new t.Diff(n,e),new t.Diff(r,i)]},t.prototype.diff_bisectSplit_=function(e,t,n,r,i){var o=e.substring(0,n),a=t.substring(0,r),s=e.substring(n),l=t.substring(r),c=this.diff_main(o,a,!1,i),u=this.diff_main(s,l,!1,i);return c.concat(u)},t.prototype.diff_linesToChars_=function(e,t){var n=[],r={};function i(e){var t="",i=0,a=-1,s=n.length;while(ar?e=e.substring(n-r):nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||2*r.length=e.length?[r,o,a,s,u]:null}var a,s,l,c,u,d=o(n,r,Math.ceil(n.length/4)),p=o(n,r,Math.ceil(n.length/2));if(!d&&!p)return null;a=p?d&&d[4].length>p[4].length?d:p:d,e.length>t.length?(s=a[0],l=a[1],c=a[2],u=a[3]):(c=a[0],u=a[1],s=a[2],l=a[3]);var f=a[4];return[s,l,c,u,f]},t.prototype.diff_cleanupSemantic=function(e){var o=!1,a=[],s=0,l=null,c=0,u=0,d=0,p=0,f=0;while(c0?a[s-1]:-1,u=0,d=0,p=0,f=0,l=null,o=!0)),c++;o&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),c=1;while(c=_?(m>=h.length/2||m>=g.length/2)&&(e.splice(c,0,new t.Diff(i,g.substring(0,m))),e[c-1][1]=h.substring(0,h.length-m),e[c+1][1]=g.substring(m),c++):(_>=h.length/2||_>=g.length/2)&&(e.splice(c,0,new t.Diff(i,h.substring(0,_))),e[c-1][0]=r,e[c-1][1]=g.substring(0,g.length-_),e[c+1][0]=n,e[c+1][1]=h.substring(_),c++),c++}c++}},t.prototype.diff_cleanupSemanticLossless=function(e){function n(e,n){if(!e||!n)return 6;var r=e.charAt(e.length-1),i=n.charAt(0),o=r.match(t.nonAlphaNumericRegex_),a=i.match(t.nonAlphaNumericRegex_),s=o&&r.match(t.whitespaceRegex_),l=a&&i.match(t.whitespaceRegex_),c=s&&r.match(t.linebreakRegex_),u=l&&i.match(t.linebreakRegex_),d=c&&e.match(t.blanklineEndRegex_),p=u&&n.match(t.blanklineStartRegex_);return d||p?5:c||u?4:o&&!s&&l?3:s||l?2:o||a?1:0}var r=1;while(r=f&&(f=h,u=o,d=a,p=s)}e[r-1][1]!=u&&(u?e[r-1][1]=u:(e.splice(r-1,1),r--),e[r][1]=d,p?e[r+1][1]=p:(e.splice(r+1,1),r--))}r++}},t.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,t.whitespaceRegex_=/\s/,t.linebreakRegex_=/[\r\n]/,t.blanklineEndRegex_=/\n\r?\n$/,t.blanklineStartRegex_=/^\r?\n\r?\n/,t.prototype.diff_cleanupEfficiency=function(e){var o=!1,a=[],s=0,l=null,c=0,u=!1,d=!1,p=!1,f=!1;while(c0?a[s-1]:-1,p=f=!1),o=!0)),c++;o&&this.diff_cleanupMerge(e)},t.prototype.diff_cleanupMerge=function(e){e.push(new t.Diff(i,""));var o,a=0,s=0,l=0,c="",u="";while(a1?(0!==s&&0!==l&&(o=this.diff_commonPrefix(u,c),0!==o&&(a-s-l>0&&e[a-s-l-1][0]==i?e[a-s-l-1][1]+=u.substring(0,o):(e.splice(0,0,new t.Diff(i,u.substring(0,o))),a++),u=u.substring(o),c=c.substring(o)),o=this.diff_commonSuffix(u,c),0!==o&&(e[a][1]=u.substring(u.length-o)+e[a][1],u=u.substring(0,u.length-o),c=c.substring(0,c.length-o))),a-=s+l,e.splice(a,s+l),c.length&&(e.splice(a,0,new t.Diff(n,c)),a++),u.length&&(e.splice(a,0,new t.Diff(r,u)),a++),a++):0!==a&&e[a-1][0]==i?(e[a-1][1]+=e[a][1],e.splice(a,1)):a++,l=0,s=0,c="",u="";break}""===e[e.length-1][1]&&e.pop();var d=!1;a=1;while(at)break;s=o,l=a}return e.length!=i&&e[i][0]===n?l:l+(t-s)},t.prototype.diff_prettyHtml=function(e){for(var t=[],o=/&/g,a=//g,l=/\n/g,c=0;c");switch(u){case r:t[c]=''+p+"";break;case n:t[c]=''+p+"";break;case i:t[c]=""+p+"";break}}return t.join("")},t.prototype.diff_text1=function(e){for(var t=[],n=0;nthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var r=this.match_alphabet_(t),i=this;function o(e,r){var o=e/t.length,a=Math.abs(n-r);return i.Match_Distance?o+a/i.Match_Distance:a?1:o}var a=this.Match_Threshold,s=e.indexOf(t,n);-1!=s&&(a=Math.min(o(0,s),a),s=e.lastIndexOf(t,n+t.length),-1!=s&&(a=Math.min(o(0,s),a)));var l,c,u=1<=h;_--){var v=r[e.charAt(_-1)];if(m[_]=0===f?(m[_+1]<<1|1)&v:(m[_+1]<<1|1)&v|(d[_+1]|d[_])<<1|1|d[_+1],m[_]&u){var y=o(f,_-1);if(y<=a){if(a=y,s=_-1,!(s>n))break;h=Math.max(1,2*n-s)}}}if(o(f+1,n)>a)break;d=m}return s},t.prototype.match_alphabet_=function(e){for(var t={},n=0;n2&&(this.diff_cleanupSemantic(l),this.diff_cleanupEfficiency(l));else if(e&&"object"==typeof e&&"undefined"==typeof o&&"undefined"==typeof a)l=e,s=this.diff_text1(l);else if("string"==typeof e&&o&&"object"==typeof o&&"undefined"==typeof a)s=e,l=o;else{if("string"!=typeof e||"string"!=typeof o||!a||"object"!=typeof a)throw new Error("Unknown call format to patch_make.");s=e,l=a}if(0===l.length)return[];for(var c=[],u=new t.patch_obj,d=0,p=0,f=0,h=s,g=s,m=0;m=2*this.Patch_Margin&&d&&(this.patch_addContext_(u,h),c.push(u),u=new t.patch_obj,d=0,h=g,p=f);break}_!==r&&(p+=v.length),_!==n&&(f+=v.length)}return d&&(this.patch_addContext_(u,h),c.push(u)),c},t.prototype.patch_deepCopy=function(e){for(var n=[],r=0;rthis.Match_MaxBits?(c=this.match_main(t,p.substring(0,this.Match_MaxBits),d),-1!=c&&(f=this.match_main(t,p.substring(p.length-this.Match_MaxBits),d+p.length-this.Match_MaxBits),(-1==f||c>=f)&&(c=-1))):c=this.match_main(t,p,d),-1==c)s[l]=!1,a-=e[l].length2-e[l].length1;else if(s[l]=!0,a=c-d,u=-1==f?t.substring(c,c+p.length):t.substring(c,f+this.Match_MaxBits),p==u)t=t.substring(0,c)+this.diff_text2(e[l].diffs)+t.substring(c+p.length);else{var h=this.diff_main(p,u,!1);if(p.length>this.Match_MaxBits&&this.diff_levenshtein(h)/p.length>this.Patch_DeleteThreshold)s[l]=!1;else{this.diff_cleanupSemanticLossless(h);for(var g,m=0,_=0;_s[0][1].length){var l=n-s[0][1].length;s[0][1]=r.substring(s[0][1].length)+s[0][1],a.start1-=l,a.start2-=l,a.length1+=l,a.length2+=l}if(a=e[e.length-1],s=a.diffs,0==s.length||s[s.length-1][0]!=i)s.push(new t.Diff(i,r)),a.length1+=n,a.length2+=n;else if(n>s[s.length-1][1].length){l=n-s[s.length-1][1].length;s[s.length-1][1]+=r.substring(0,l),a.length1+=l,a.length2+=l}return r},t.prototype.patch_splitMax=function(e){for(var o=this.Match_MaxBits,a=0;a2*o?(d.length1+=h.length,l+=h.length,p=!1,d.diffs.push(new t.Diff(f,h)),s.diffs.shift()):(h=h.substring(0,o-d.length1-this.Patch_Margin),d.length1+=h.length,l+=h.length,f===i?(d.length2+=h.length,c+=h.length):p=!1,d.diffs.push(new t.Diff(f,h)),h==s.diffs[0][1]?s.diffs.shift():s.diffs[0][1]=s.diffs[0][1].substring(h.length))}u=this.diff_text2(d.diffs),u=u.substring(u.length-this.Patch_Margin);var g=this.diff_text1(s.diffs).substring(0,this.Patch_Margin);""!==g&&(d.length1+=g.length,d.length2+=g.length,0!==d.diffs.length&&d.diffs[d.diffs.length-1][0]===i?d.diffs[d.diffs.length-1][1]+=g:d.diffs.push(new t.Diff(i,g))),p||e.splice(++a,0,d)}}},t.prototype.patch_toText=function(e){for(var t=[],n=0;ng.handleClose&&g.handleClose(...e),["self"]))},[(0,r.Lk)("div",a,[(0,r.Lk)("div",s,[t[8]||(t[8]=(0,r.Lk)("h3",null,"Settings",-1)),(0,r.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>g.handleClose&&g.handleClose(...e))},[(0,r.bF)(m,{size:20})])]),(0,r.Lk)("div",l,[(0,r.Lk)("div",c,[t[10]||(t[10]=(0,r.Lk)("label",null,"Theme",-1)),(0,r.bo)((0,r.Lk)("select",{"onUpdate:modelValue":t[1]||(t[1]=e=>h.localSettings.theme=e),onChange:t[2]||(t[2]=e=>g.updateTheme(h.localSettings.theme)),class:"setting-select"},t[9]||(t[9]=[(0,r.Lk)("option",{value:"light"},"Light",-1),(0,r.Lk)("option",{value:"dark"},"Dark",-1),(0,r.Lk)("option",{value:"contrast"},"High Contrast",-1)]),544),[[i.u1,h.localSettings.theme]])]),(0,r.Lk)("div",u,[t[12]||(t[12]=(0,r.Lk)("label",null,"Font Size",-1)),(0,r.bo)((0,r.Lk)("select",{"onUpdate:modelValue":t[3]||(t[3]=e=>h.localSettings.fontSize=e),onChange:t[4]||(t[4]=e=>g.updateFontSize(h.localSettings.fontSize)),class:"setting-select"},t[11]||(t[11]=[(0,r.Fv)('',5)]),544),[[i.u1,h.localSettings.fontSize]])]),(0,r.Lk)("div",d,[t[14]||(t[14]=(0,r.Lk)("label",null,"Show Line Numbers",-1)),(0,r.Lk)("div",{class:"switch-container",onClick:t[5]||(t[5]=(...e)=>g.toggleLineNumbers&&g.toggleLineNumbers(...e))},[(0,r.Lk)("div",{class:(0,o.C4)(["switch",{"switch-on":h.localSettings.showLineNumbers}])},t[13]||(t[13]=[(0,r.Lk)("div",{class:"switch-handle"},null,-1)]),2)])]),(0,r.Lk)("div",p,[(0,r.Lk)("button",{class:"close-button",onClick:t[6]||(t[6]=(...e)=>g.handleClose&&g.handleClose(...e))},"Close")])])])])):(0,r.Q3)("",!0)}var h=n(6494),g={name:"SettingsModal",components:{X:h.A},props:{modelValue:{type:Boolean,default:!1}},data(){return{localSettings:{theme:"dark",fontSize:"14",showLineNumbers:!0,autoSave:!1,autoSaveInterval:"60",autoSaveNotifications:!0}}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},mounted(){this.loadSettings()},methods:{loadSettings(){const e=localStorage.getItem("theme");e&&(this.localSettings.theme=e);const t=localStorage.getItem("fontSize");t&&(this.localSettings.fontSize=t);const n=localStorage.getItem("showLineNumbers");null!==n&&(this.localSettings.showLineNumbers="true"===n);const r=localStorage.getItem("autoSave");null!==r&&(this.localSettings.autoSave="true"===r);const i=localStorage.getItem("autoSaveInterval");i&&(this.localSettings.autoSaveInterval=i);const o=localStorage.getItem("autoSaveNotifications");null!==o&&(this.localSettings.autoSaveNotifications="true"===o),document.documentElement.setAttribute("data-theme",this.localSettings.theme)},updateTheme(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)},updateFontSize(e){localStorage.setItem("fontSize",e),this.$emit("update-font-size",e)},updateLineNumbers(e){localStorage.setItem("showLineNumbers",e),this.$emit("update-line-numbers",e)},updateAutoSave(e){localStorage.setItem("autoSave",e),this.$emit("update-auto-save",e)},updateAutoSaveInterval(e){localStorage.setItem("autoSaveInterval",e),this.$emit("update-auto-save-interval",e)},updateAutoSaveNotifications(e){localStorage.setItem("autoSaveNotifications",e),this.$emit("update-auto-save-notifications",e)},toggleLineNumbers(){this.localSettings.showLineNumbers=!this.localSettings.showLineNumbers,this.updateLineNumbers(this.localSettings.showLineNumbers)},toggleAutoSave(){this.localSettings.autoSave=!this.localSettings.autoSave,this.updateAutoSave(this.localSettings.autoSave)},toggleAutoSaveNotifications(){this.localSettings.autoSaveNotifications=!this.localSettings.autoSaveNotifications,this.updateAutoSaveNotifications(this.localSettings.autoSaveNotifications)},handleClose(){this.visible=!1}}},m=n(66262);const _=(0,m.A)(g,[["render",f],["__scopeId","data-v-66da283c"]]);var v=_},4115:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_xml.972323ec.svg"},4413:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileNamesToIcon=void 0,t.FileNamesToIcon={".angular-cli.json":"file_type_angular.svg","angular-cli.json":"file_type_angular.svg","angular.json":"file_type_angular.svg",".angular.json":"file_type_angular.svg","api-extractor.json":"file_type_api_extractor.svg","api-extractor-base.json":"file_type_api_extractor.svg",".appsemblerc.yaml":"file_type_appsemble.svg","app-definition.yaml":"file_type_appsemble.svg","appveyor.yml":"file_type_appveyor.svg",".appveyor.yml":"file_type_appveyor.svg","astro.config.js":"file_type_astroconfig.svg","astro.config.cjs":"file_type_astroconfig.svg","astro.config.mjs":"file_type_astroconfig.svg","aurelia.json":"file_type_aurelia.svg","azure-pipelines.yml":"file_type_azurepipelines.svg",".vsts-ci.yml":"file_type_azurepipelines.svg",".babelrc":"file_type_light_babel.svg",".babelignore":"file_type_light_babel.svg",".babelrc.js":"file_type_light_babel.svg",".babelrc.cjs":"file_type_light_babel.svg",".babelrc.mjs":"file_type_light_babel.svg",".babelrc.json":"file_type_light_babel.svg","babel.config.js":"file_type_light_babel.svg","babel.config.cjs":"file_type_light_babel.svg","babel.config.mjs":"file_type_light_babel.svg","babel.config.json":"file_type_light_babel.svg",".bzrignore":"file_type_bazaar.svg","BUILD.bazel":"file_type_bazel.svg",".bazelrc":"file_type_bazel.svg","bazel.rc":"file_type_bazel.svg","bazel.bazelrc":"file_type_bazel.svg","bitbucket-pipelines.yml":"file_type_bitbucketpipeline.svg",".bithoundrc":"file_type_bithound.svg",".bowerrc":"file_type_bower.svg","bower.json":"file_type_bower.svg",".browserslistrc":"file_type_browserslist.svg",browserslist:"file_type_browserslist.svg",".buckconfig":"file_type_buckbuild.svg",gemfile:"file_type_bundler.svg","gemfile.lock":"file_type_bundler.svg","capacitor.config.json":"file_type_capacitor.svg","cargo.toml":"file_type_cargo.svg","cargo.lock":"file_type_cargo.svg",chefignore:"file_type_chef.svg",berksfile:"file_type_chef.svg","berksfile.lock":"file_type_chef.svg","policyfile.rb":"file_type_chef.svg","policyfile.lock.json":"file_type_chef.svg","circle.yml":"file_type_light_circleci.svg",".cfignore":"file_type_light_cloudfoundry.svg",".codacy.yml":"file_type_light_codacy.svg",".codacy.yaml":"file_type_light_codacy.svg",".codeclimate.yml":"file_type_light_codeclimate.svg","codecov.yml":"file_type_codecov.svg",".codecov.yml":"file_type_codecov.svg","config.codekit":"file_type_codekit.svg","config.codekit2":"file_type_codekit.svg","config.codekit3":"file_type_codekit.svg",".config.codekit":"file_type_codekit.svg",".config.codekit2":"file_type_codekit.svg",".config.codekit3":"file_type_codekit.svg","coffeelint.json":"file_type_coffeelint.svg",".coffeelintignore":"file_type_coffeelint.svg","commitlint.config.js":"file_type_commitlint.svg",".commitlintrc.js":"file_type_commitlint.svg",".commitlintrc.json":"file_type_commitlint.svg",".commitlintrc.yml":"file_type_commitlint.svg","composer.json":"file_type_composer.svg","composer.lock":"file_type_composer.svg","conanfile.txt":"file_type_conan.svg","conanfile.py":"file_type_conan.svg",".condarc":"file_type_conda.svg",".coveralls.yml":"file_type_coveralls.svg","crowdin.yml":"file_type_crowdin.svg",".csscomb.json":"file_type_csscomb.svg",".csslintrc":"file_type_csslint.svg",".cvsignore":"file_type_cvs.svg","cypress.json":"file_type_cypress.svg","cypress.env.json":"file_type_cypress.svg",".boringignore":"file_type_darcs.svg","dependabot.yml":"file_type_dependabot.svg","dependencies.yml":"file_type_dependencies.svg","devcontainer.json":"file_type_devcontainer.svg",".devcontainer.json":"file_type_devcontainer.svg","compose.yaml":"file_type_docker.svg","compose.yml":"file_type_docker.svg","docker-compose.yaml":"file_type_docker.svg","docker-compose.yml":"file_type_docker.svg","docker-compose.ci-build.yaml":"file_type_docker.svg","docker-compose.ci-build.yml":"file_type_docker.svg","docker-compose.override.yaml":"file_type_docker.svg","docker-compose.override.yml":"file_type_docker.svg","docker-compose.vs.debug.yaml":"file_type_docker.svg","docker-compose.vs.debug.yml":"file_type_docker.svg","docker-compose.vs.release.yaml":"file_type_docker.svg","docker-compose.vs.release.yml":"file_type_docker.svg","docker-cloud.yaml":"file_type_docker.svg","docker-cloud.yml":"file_type_docker.svg","docker-compose.test.yml":"file_type_dockertest.svg",".doczrc":"file_type_docz.svg","docz.js":"file_type_docz.svg","docz.json":"file_type_docz.svg",".docz.js":"file_type_docz.svg",".docz.json":"file_type_docz.svg","doczrc.js":"file_type_docz.svg","doczrc.json":"file_type_docz.svg","docz.config.js":"file_type_docz.svg","docz.config.json":"file_type_docz.svg",".dojorc":"file_type_dojo.svg",".drone.yml":"file_type_light_drone.svg",".drone.yml.sig":"file_type_light_drone.svg",".dvc":"file_type_dvc.svg",".editorconfig":"file_type_editorconfig.svg","elm-package.json":"file_type_elm.svg",".ember-cli":"file_type_ember.svg",emakefile:"file_type_erlang.svg",".emakerfile":"file_type_erlang.svg",".eslintrc":"file_type_eslint.svg",".eslintignore":"file_type_eslint.svg",".eslintcache":"file_type_eslint.svg",".eslintrc.js":"file_type_eslint.svg",".eslintrc.mjs":"file_type_eslint.svg",".eslintrc.cjs":"file_type_eslint.svg",".eslintrc.json":"file_type_eslint.svg",".eslintrc.yaml":"file_type_eslint.svg",".eslintrc.yml":"file_type_eslint.svg","app.json":"file_type_light_expo.svg","app.config.js":"file_type_light_expo.svg","app.config.json":"file_type_light_expo.svg","app.config.json5":"file_type_light_expo.svg",".faunarc":"file_type_fauna.svg","favicon.ico":"file_type_favicon.svg",".firebaserc":"file_type_firebase.svg","firebase.json":"file_type_light_firebasehosting.svg","firestore.rules":"file_type_firestore.svg","firestore.indexes.json":"file_type_firestore.svg",".flooignore":"file_type_floobits.svg",".flowconfig":"file_type_flow.svg",".flutter-plugins":"file_type_flutter.svg",".metadata":"file_type_flutter.svg","pubspec.lock":"file_type_flutter_package.svg","pubspec.yaml":"file_type_flutter_package.svg",".packages":"file_type_flutter_package.svg",".fossaignore":"file_type_fossa.svg","ignore-glob":"file_type_fossil.svg","fuse.js":"file_type_fusebox.svg","gatsby-config.js":"file_type_gatsby.svg","gatsby-config.ts":"file_type_gatsby.svg","gatsby-node.js":"file_type_gatsby.svg","gatsby-node.ts":"file_type_gatsby.svg","gatsby-browser.js":"file_type_gatsby.svg","gatsby-browser.ts":"file_type_gatsby.svg","gatsby-ssr.js":"file_type_gatsby.svg","gatsby-ssr.ts":"file_type_gatsby.svg",".gitattributes":"file_type_git.svg",".gitconfig":"file_type_git.svg",".gitignore":"file_type_git.svg",".gitmodules":"file_type_git.svg",".gitkeep":"file_type_git.svg",".mailmap":"file_type_git.svg",".gitlab-ci.yml":"file_type_gitlab.svg",".gitpod.yaml":"file_type_gitpod.svg",".gitpod.yml":"file_type_gitpod.svg","gitpod.yaml":"file_type_gitpod.svg","gitpod.yml":"file_type_gitpod.svg","glide.yml":"file_type_glide.svg",".glitterrc":"file_type_glitter.svg","go.sum":"file_type_go_package.svg","go.mod":"file_type_go_package.svg",".gqlconfig":"file_type_graphql.svg",".graphqlconfig":"file_type_graphql_config.svg",".graphqlconfig.yml":"file_type_graphql_config.svg",".graphqlconfig.yaml":"file_type_graphql_config.svg","greenkeeper.json":"file_type_greenkeeper.svg","gridsome.config.js":"file_type_gridsome.svg","gridsome.config.ts":"file_type_gridsome.svg","gridsome.server.js":"file_type_gridsome.svg","gridsome.server.ts":"file_type_gridsome.svg","gridsome.client.js":"file_type_gridsome.svg","gridsome.client.ts":"file_type_gridsome.svg","gruntfile.js":"file_type_grunt.svg","gruntfile.coffee":"file_type_grunt.svg","gruntfile.ts":"file_type_grunt.svg","gruntfile.babel.js":"file_type_grunt.svg","gruntfile.babel.coffee":"file_type_grunt.svg","gruntfile.babel.ts":"file_type_grunt.svg","gulpfile.js":"file_type_gulp.svg","gulpfile.coffee":"file_type_gulp.svg","gulpfile.ts":"file_type_gulp.svg","gulpfile.mjs":"file_type_gulp.svg","gulpfile.esm.js":"file_type_gulp.svg","gulpfile.esm.coffee":"file_type_gulp.svg","gulpfile.esm.ts":"file_type_gulp.svg","gulpfile.esm.mjs":"file_type_gulp.svg","gulpfile.babel.js":"file_type_gulp.svg","gulpfile.babel.coffee":"file_type_gulp.svg","gulpfile.babel.ts":"file_type_gulp.svg","gulpfile.babel.mjs":"file_type_gulp.svg","haxelib.json":"file_type_haxe.svg","checkstyle.json":"file_type_haxecheckstyle.svg",".p4ignore":"file_type_helix.svg","chart.lock":"file_type_helm.svg","chart.yaml":"file_type_helm.svg","horusec-config.json":"file_type_horusec.svg",".htmlhintrc":"file_type_htmlhint.svg",".huskyrc":"file_type_husky.svg","husky.config.js":"file_type_husky.svg",".huskyrc.js":"file_type_husky.svg",".huskyrc.json":"file_type_husky.svg",".huskyrc.yaml":"file_type_husky.svg",".huskyrc.yml":"file_type_husky.svg","ionic.project":"file_type_ionic.svg","ionic.config.json":"file_type_ionic.svg",jakefile:"file_type_jake.svg","jakefile.js":"file_type_jake.svg","jasmine.json":"file_type_jasmine.svg","jest.config.json":"file_type_jest.svg","jest.config.base.json":"file_type_jest.svg","jest.config.common.json":"file_type_jest.svg","jest.config.ts":"file_type_jest.svg","jest.config.base.ts":"file_type_jest.svg","jest.config.common.ts":"file_type_jest.svg","jest.json":"file_type_jest.svg",".jestrc":"file_type_jest.svg",".jestrc.js":"file_type_jest.svg",".jestrc.json":"file_type_jest.svg","jest.config.js":"file_type_jest.svg","jest.config.cjs":"file_type_jest.svg","jest.config.mjs":"file_type_jest.svg","jest.config.base.js":"file_type_jest.svg","jest.config.base.cjs":"file_type_jest.svg","jest.config.base.mjs":"file_type_jest.svg","jest.config.common.js":"file_type_jest.svg","jest.config.common.cjs":"file_type_jest.svg","jest.config.common.mjs":"file_type_jest.svg","jest.config.babel.js":"file_type_jest.svg","jest.config.babel.cjs":"file_type_jest.svg","jest.config.babel.mjs":"file_type_jest.svg",".jpmignore":"file_type_jpm.svg",".jsbeautifyrc":"file_type_jsbeautify.svg",jsbeautifyrc:"file_type_jsbeautify.svg",".jsbeautify":"file_type_jsbeautify.svg",jsbeautify:"file_type_jsbeautify.svg","jsconfig.json":"file_type_light_jsconfig.svg",".jscpd.json":"file_type_jscpd.svg","jscpd-report.xml":"file_type_jscpd.svg","jscpd-report.json":"file_type_jscpd.svg","jscpd-report.html":"file_type_jscpd.svg",".jshintrc":"file_type_jshint.svg",".jshintignore":"file_type_jshint.svg","karma.conf.js":"file_type_karma.svg","karma.conf.coffee":"file_type_karma.svg","karma.conf.ts":"file_type_karma.svg",".kitchen.yml":"file_type_kitchenci.svg","kitchen.yml":"file_type_kitchenci.svg",".kiteignore":"file_type_light_kite.svg","layout.html":"file_type_layout.svg","layout.htm":"file_type_layout.svg","lerna.json":"file_type_light_lerna.svg",license:"file_type_license.svg",licence:"file_type_license.svg",copying:"file_type_license.svg","copying.lesser":"file_type_license.svg","license.md":"file_type_license.svg","license.txt":"file_type_license.svg","licence.md":"file_type_license.svg","licence.txt":"file_type_license.svg","copying.md":"file_type_license.svg","copying.txt":"file_type_license.svg","copying.lesser.md":"file_type_license.svg","copying.lesser.txt":"file_type_license.svg",".licrc":"file_type_licensebat.svg",".lighthouserc.js":"file_type_lighthouse.svg",".lighthouserc.json":"file_type_lighthouse.svg",".lighthouserc.yaml":"file_type_lighthouse.svg",".lighthouserc.yml":"file_type_lighthouse.svg","include.xml":"file_type_lime.svg",".lintstagedrc":"file_type_lintstagedrc.svg","lint-staged.config.js":"file_type_lintstagedrc.svg",".lintstagedrc.js":"file_type_lintstagedrc.svg",".lintstagedrc.json":"file_type_lintstagedrc.svg",".lintstagedrc.yaml":"file_type_lintstagedrc.svg",".lintstagedrc.yml":"file_type_lintstagedrc.svg",manifest:"file_type_manifest.svg","manifest.bak":"file_type_manifest_bak.svg","manifest.skip":"file_type_manifest_skip.svg",".markdownlint.json":"file_type_markdownlint.svg","maven.config":"file_type_maven.svg","pom.xml":"file_type_maven.svg","extensions.xml":"file_type_maven.svg","settings.xml":"file_type_maven.svg",".hgignore":"file_type_mercurial.svg","mocha.opts":"file_type_mocha.svg",".mocharc.js":"file_type_mocha.svg",".mocharc.json":"file_type_mocha.svg",".mocharc.jsonc":"file_type_mocha.svg",".mocharc.yaml":"file_type_mocha.svg",".mocharc.yml":"file_type_mocha.svg",modernizr:"file_type_modernizr.svg","modernizr.js":"file_type_modernizr.svg","modernizrrc.js":"file_type_modernizr.svg",".modernizr.js":"file_type_modernizr.svg",".modernizrrc.js":"file_type_modernizr.svg","moleculer.config.js":"file_type_moleculer.svg","moleculer.config.json":"file_type_moleculer.svg","moleculer.config.ts":"file_type_moleculer.svg",".mtn-ignore":"file_type_monotone.svg",".nest-cli.json":"file_type_nestjs.svg","nest-cli.json":"file_type_nestjs.svg","nestconfig.json":"file_type_nestjs.svg",".nestconfig.json":"file_type_nestjs.svg","netlify.toml":"file_type_netlify.svg","next.config.js":"file_type_light_next.svg","ng-tailwind.js":"file_type_ng_tailwind.svg","nginx.conf":"file_type_nginx.svg","build.ninja":"file_type_ninja.svg",".node-version":"file_type_node.svg",".nvmrc":"file_type_node.svg","nodemon.json":"file_type_nodemon.svg",".npmignore":"file_type_npm.svg",".npmrc":"file_type_npm.svg","package.json":"file_type_npm.svg","package-lock.json":"file_type_npm.svg","npm-shrinkwrap.json":"file_type_npm.svg",".nsrirc":"file_type_nsri.svg",".nsriignore":"file_type_nsri.svg","nsri.config.js":"file_type_nsri.svg",".nsrirc.js":"file_type_nsri.svg",".nsrirc.json":"file_type_nsri.svg",".nsrirc.yaml":"file_type_nsri.svg",".nsrirc.yml":"file_type_nsri.svg",".integrity.json":"file_type_nsri-integrity.svg","nuxt.config.js":"file_type_nuxt.svg","nuxt.config.ts":"file_type_nuxt.svg",".nycrc":"file_type_nyc.svg",".nycrc.json":"file_type_nyc.svg",".merlin":"file_type_ocaml.svg","paket.dependencies":"file_type_paket.svg","paket.lock":"file_type_paket.svg","paket.references":"file_type_paket.svg","paket.template":"file_type_paket.svg","paket.local":"file_type_paket.svg",".php_cs":"file_type_phpcsfixer.svg",".php_cs.dist":"file_type_phpcsfixer.svg",phpunit:"file_type_phpunit.svg","phpunit.xml":"file_type_phpunit.svg","phpunit.xml.dist":"file_type_phpunit.svg",".phraseapp.yml":"file_type_phraseapp.svg",pipfile:"file_type_pip.svg","pipfile.lock":"file_type_pip.svg","platformio.ini":"file_type_platformio.svg","pnpmfile.js":"file_type_light_pnpm.svg","pnpm-lock.yaml":"file_type_light_pnpm.svg","pnpm-workspace.yaml":"file_type_light_pnpm.svg",".postcssrc":"file_type_postcssconfig.svg",".postcssrc.json":"file_type_postcssconfig.svg",".postcssrc.yaml":"file_type_postcssconfig.svg",".postcssrc.yml":"file_type_postcssconfig.svg",".postcssrc.ts":"file_type_postcssconfig.svg",".postcssrc.js":"file_type_postcssconfig.svg",".postcssrc.cjs":"file_type_postcssconfig.svg","postcss.config.ts":"file_type_postcssconfig.svg","postcss.config.js":"file_type_postcssconfig.svg","postcss.config.cjs":"file_type_postcssconfig.svg","preact.config.js":"file_type_preact.svg",".pre-commit-config.yaml":"file_type_precommit.svg",".prettierrc":"file_type_light_prettier.svg",".prettierignore":"file_type_light_prettier.svg","prettier.config.js":"file_type_light_prettier.svg","prettier.config.cjs":"file_type_light_prettier.svg","prettier.config.ts":"file_type_light_prettier.svg","prettier.config.coffee":"file_type_light_prettier.svg",".prettierrc.js":"file_type_light_prettier.svg",".prettierrc.cjs":"file_type_light_prettier.svg",".prettierrc.json":"file_type_light_prettier.svg",".prettierrc.json5":"file_type_light_prettier.svg",".prettierrc.yml":"file_type_light_prettier.svg",".prettierrc.yaml":"file_type_light_prettier.svg",procfile:"file_type_procfile.svg","protractor.conf.js":"file_type_protractor.svg","protractor.conf.coffee":"file_type_protractor.svg","protractor.conf.ts":"file_type_protractor.svg",".jade-lintrc":"file_type_pug.svg",".pug-lintrc":"file_type_pug.svg",".jade-lint.json":"file_type_pug.svg",".pug-lintrc.js":"file_type_pug.svg",".pug-lintrc.json":"file_type_pug.svg","py.typed":"file_type_pytyped.svg",".pyup":"file_type_pyup.svg",".pyup.yml":"file_type_pyup.svg",qmldir:"file_type_qmldir.svg","quasar.conf.js":"file_type_quasar.svg",rakefile:"file_type_rake.svg","razzle.config.js":"file_type_light_razzle.svg",".rehyperc":"file_type_light_rehype.svg",".rehypeignore":"file_type_light_rehype.svg",".rehyperc.cjs":"file_type_light_rehype.svg",".rehyperc.js":"file_type_light_rehype.svg",".rehyperc.json":"file_type_light_rehype.svg",".rehyperc.mjs":"file_type_light_rehype.svg",".rehyperc.yml":"file_type_light_rehype.svg",".rehyperc.yaml":"file_type_light_rehype.svg",".remarkrc":"file_type_light_remark.svg",".remarkignore":"file_type_light_remark.svg",".remarkrc.cjs":"file_type_light_remark.svg",".remarkrc.js":"file_type_light_remark.svg",".remarkrc.json":"file_type_light_remark.svg",".remarkrc.mjs":"file_type_light_remark.svg",".remarkrc.yml":"file_type_light_remark.svg",".remarkrc.yaml":"file_type_light_remark.svg",".renovaterc":"file_type_renovate.svg","renovate.json":"file_type_renovate.svg",".renovaterc.json":"file_type_renovate.svg",".retextrc":"file_type_light_retext.svg",".retextignore":"file_type_light_retext.svg",".retextrc.cjs":"file_type_light_retext.svg",".retextrc.js":"file_type_light_retext.svg",".retextrc.json":"file_type_light_retext.svg",".retextrc.mjs":"file_type_light_retext.svg",".retextrc.yml":"file_type_light_retext.svg",".retextrc.yaml":"file_type_light_retext.svg","robots.txt":"file_type_robots.svg","rollup.config.js":"file_type_rollup.svg","rollup.config.cjs":"file_type_rollup.svg","rollup.config.mjs":"file_type_rollup.svg","rollup.config.coffee":"file_type_rollup.svg","rollup.config.ts":"file_type_rollup.svg","rollup.config.common.js":"file_type_rollup.svg","rollup.config.common.cjs":"file_type_rollup.svg","rollup.config.common.mjs":"file_type_rollup.svg","rollup.config.common.coffee":"file_type_rollup.svg","rollup.config.common.ts":"file_type_rollup.svg","rollup.config.dev.js":"file_type_rollup.svg","rollup.config.dev.cjs":"file_type_rollup.svg","rollup.config.dev.mjs":"file_type_rollup.svg","rollup.config.dev.coffee":"file_type_rollup.svg","rollup.config.dev.ts":"file_type_rollup.svg","rollup.config.prod.js":"file_type_rollup.svg","rollup.config.prod.cjs":"file_type_rollup.svg","rollup.config.prod.mjs":"file_type_rollup.svg","rollup.config.prod.coffee":"file_type_rollup.svg","rollup.config.prod.ts":"file_type_rollup.svg",".rspec":"file_type_rspec.svg",".rubocop.yml":"file_type_light_rubocop.svg",".rubocop_todo.yml":"file_type_light_rubocop.svg","rust-toolchain":"file_type_light_rust_toolchain.svg",".sailsrc":"file_type_sails.svg",".sentryclirc":"file_type_sentry.svg",".sequelizerc":"file_type_sequelize.svg",".sequelizerc.js":"file_type_sequelize.svg",".sequelizerc.json":"file_type_sequelize.svg","serverless.yml":"file_type_serverless.svg","serverless.json":"file_type_serverless.svg","serverless.js":"file_type_serverless.svg","serverless.ts":"file_type_serverless.svg","snapcraft.yaml":"file_type_snapcraft.svg",".snyk":"file_type_snyk.svg",".solidarity":"file_type_solidarity.svg",".solidarity.json":"file_type_solidarity.svg",".stylelintrc":"file_type_light_stylelint.svg",".stylelintignore":"file_type_light_stylelint.svg",".stylelintcache":"file_type_light_stylelint.svg","stylelint.config.js":"file_type_light_stylelint.svg","stylelint.config.json":"file_type_light_stylelint.svg","stylelint.config.yaml":"file_type_light_stylelint.svg","stylelint.config.yml":"file_type_light_stylelint.svg","stylelint.config.ts":"file_type_light_stylelint.svg","stylelint.config.cjs":"file_type_light_stylelint.svg",".stylelintrc.js":"file_type_light_stylelint.svg",".stylelintrc.json":"file_type_light_stylelint.svg",".stylelintrc.yaml":"file_type_light_stylelint.svg",".stylelintrc.yml":"file_type_light_stylelint.svg",".stylelintrc.ts":"file_type_light_stylelint.svg",".stylelintrc.cjs":"file_type_light_stylelint.svg",".stylish-haskell.yaml":"file_type_stylish_haskell.svg",".svnignore":"file_type_subversion.svg","package.pins":"file_type_swift.svg","symfony.lock":"file_type_light_symfony.svg","tailwind.js":"file_type_tailwind.svg","tailwind.cjs":"file_type_tailwind.svg","tailwind.coffee":"file_type_tailwind.svg","tailwind.ts":"file_type_tailwind.svg","tailwind.json":"file_type_tailwind.svg","tailwind.config.js":"file_type_tailwind.svg","tailwind.config.cjs":"file_type_tailwind.svg","tailwind.config.coffee":"file_type_tailwind.svg","tailwind.config.ts":"file_type_tailwind.svg","tailwind.config.json":"file_type_tailwind.svg",".testcaferc.json":"file_type_light_testcafe.svg",".tfignore":"file_type_tfs.svg","tox.ini":"file_type_tox.svg",".travis.yml":"file_type_travis.svg","tsconfig.json":"file_type_tsconfig.svg","tsconfig.app.json":"file_type_tsconfig.svg","tsconfig.base.json":"file_type_tsconfig.svg","tsconfig.common.json":"file_type_tsconfig.svg","tsconfig.dev.json":"file_type_tsconfig.svg","tsconfig.development.json":"file_type_tsconfig.svg","tsconfig.e2e.json":"file_type_tsconfig.svg","tsconfig.prod.json":"file_type_tsconfig.svg","tsconfig.production.json":"file_type_tsconfig.svg","tsconfig.server.json":"file_type_tsconfig.svg","tsconfig.spec.json":"file_type_tsconfig.svg","tsconfig.staging.json":"file_type_tsconfig.svg","tsconfig.test.json":"file_type_tsconfig.svg","tsconfig.lib.json":"file_type_tsconfig.svg","tsconfig.lib.prod.json":"file_type_tsconfig.svg","tslint.json":"file_type_tslint.svg","tslint.yaml":"file_type_tslint.svg","tslint.yml":"file_type_tslint.svg","typedoc.js":"file_type_typedoc.svg","typedoc.json":"file_type_typedoc.svg",".unibeautifyrc":"file_type_light_unibeautify.svg","unibeautify.config.js":"file_type_light_unibeautify.svg",".unibeautifyrc.js":"file_type_light_unibeautify.svg",".unibeautifyrc.json":"file_type_light_unibeautify.svg",".unibeautifyrc.yaml":"file_type_light_unibeautify.svg",".unibeautifyrc.yml":"file_type_light_unibeautify.svg",unlicense:"file_type_unlicense.svg",unlicence:"file_type_unlicense.svg","unlicense.md":"file_type_unlicense.svg","unlicense.txt":"file_type_unlicense.svg","unlicence.md":"file_type_unlicense.svg","unlicence.txt":"file_type_unlicense.svg",vagrantfile:"file_type_vagrant.svg","vapor.yml":"file_type_vapor.svg",".vimrc":"file_type_vim.svg",".gvimrc":"file_type_vim.svg","vite.config.js":"file_type_vite.svg","vite.config.ts":"file_type_vite.svg",".vscodeignore":"file_type_vscode.svg","launch.json":"file_type_vscode.svg","tasks.json":"file_type_vscode.svg","vscodeignore.json":"file_type_vscode.svg",".vuerc":"file_type_vueconfig.svg","vue.config.js":"file_type_vueconfig.svg","wallaby.json":"file_type_wallaby.svg","wallaby.js":"file_type_wallaby.svg","wallaby.ts":"file_type_wallaby.svg","wallaby.coffee":"file_type_wallaby.svg","wallaby.conf.json":"file_type_wallaby.svg","wallaby.conf.js":"file_type_wallaby.svg","wallaby.conf.ts":"file_type_wallaby.svg","wallaby.conf.coffee":"file_type_wallaby.svg",".wallaby.json":"file_type_wallaby.svg",".wallaby.js":"file_type_wallaby.svg",".wallaby.ts":"file_type_wallaby.svg",".wallaby.coffee":"file_type_wallaby.svg",".wallaby.conf.json":"file_type_wallaby.svg",".wallaby.conf.js":"file_type_wallaby.svg",".wallaby.conf.ts":"file_type_wallaby.svg",".wallaby.conf.coffee":"file_type_wallaby.svg",".watchmanconfig":"file_type_watchmanconfig.svg","webpack.base.conf.js":"file_type_webpack.svg","webpack.base.conf.coffee":"file_type_webpack.svg","webpack.base.conf.ts":"file_type_webpack.svg","webpack.common.js":"file_type_webpack.svg","webpack.common.coffee":"file_type_webpack.svg","webpack.common.ts":"file_type_webpack.svg","webpack.config.js":"file_type_webpack.svg","webpack.config.coffee":"file_type_webpack.svg","webpack.config.ts":"file_type_webpack.svg","webpack.config.base.js":"file_type_webpack.svg","webpack.config.base.coffee":"file_type_webpack.svg","webpack.config.base.ts":"file_type_webpack.svg","webpack.config.common.js":"file_type_webpack.svg","webpack.config.common.coffee":"file_type_webpack.svg","webpack.config.common.ts":"file_type_webpack.svg","webpack.config.dev.js":"file_type_webpack.svg","webpack.config.dev.coffee":"file_type_webpack.svg","webpack.config.dev.ts":"file_type_webpack.svg","webpack.config.development.js":"file_type_webpack.svg","webpack.config.development.coffee":"file_type_webpack.svg","webpack.config.development.ts":"file_type_webpack.svg","webpack.config.staging.js":"file_type_webpack.svg","webpack.config.staging.coffee":"file_type_webpack.svg","webpack.config.staging.ts":"file_type_webpack.svg","webpack.config.test.js":"file_type_webpack.svg","webpack.config.test.coffee":"file_type_webpack.svg","webpack.config.test.ts":"file_type_webpack.svg","webpack.config.prod.js":"file_type_webpack.svg","webpack.config.prod.coffee":"file_type_webpack.svg","webpack.config.prod.ts":"file_type_webpack.svg","webpack.config.production.js":"file_type_webpack.svg","webpack.config.production.coffee":"file_type_webpack.svg","webpack.config.production.ts":"file_type_webpack.svg","webpack.config.babel.js":"file_type_webpack.svg","webpack.config.babel.coffee":"file_type_webpack.svg","webpack.config.babel.ts":"file_type_webpack.svg","webpack.config.base.babel.js":"file_type_webpack.svg","webpack.config.base.babel.coffee":"file_type_webpack.svg","webpack.config.base.babel.ts":"file_type_webpack.svg","webpack.config.common.babel.js":"file_type_webpack.svg","webpack.config.common.babel.coffee":"file_type_webpack.svg","webpack.config.common.babel.ts":"file_type_webpack.svg","webpack.config.dev.babel.js":"file_type_webpack.svg","webpack.config.dev.babel.coffee":"file_type_webpack.svg","webpack.config.dev.babel.ts":"file_type_webpack.svg","webpack.config.development.babel.js":"file_type_webpack.svg","webpack.config.development.babel.coffee":"file_type_webpack.svg","webpack.config.development.babel.ts":"file_type_webpack.svg","webpack.config.staging.babel.js":"file_type_webpack.svg","webpack.config.staging.babel.coffee":"file_type_webpack.svg","webpack.config.staging.babel.ts":"file_type_webpack.svg","webpack.config.test.babel.js":"file_type_webpack.svg","webpack.config.test.babel.coffee":"file_type_webpack.svg","webpack.config.test.babel.ts":"file_type_webpack.svg","webpack.config.prod.babel.js":"file_type_webpack.svg","webpack.config.prod.babel.coffee":"file_type_webpack.svg","webpack.config.prod.babel.ts":"file_type_webpack.svg","webpack.config.production.babel.js":"file_type_webpack.svg","webpack.config.production.babel.coffee":"file_type_webpack.svg","webpack.config.production.babel.ts":"file_type_webpack.svg","webpack.dev.js":"file_type_webpack.svg","webpack.dev.coffee":"file_type_webpack.svg","webpack.dev.ts":"file_type_webpack.svg","webpack.dev.conf.js":"file_type_webpack.svg","webpack.dev.conf.coffee":"file_type_webpack.svg","webpack.dev.conf.ts":"file_type_webpack.svg","webpack.prod.js":"file_type_webpack.svg","webpack.prod.coffee":"file_type_webpack.svg","webpack.prod.ts":"file_type_webpack.svg","webpack.prod.conf.js":"file_type_webpack.svg","webpack.prod.conf.coffee":"file_type_webpack.svg","webpack.prod.conf.ts":"file_type_webpack.svg","webpack.main.config.js":"file_type_webpack.svg","webpack.main.config.coffee":"file_type_webpack.svg","webpack.main.config.ts":"file_type_webpack.svg","webpack.mix.js":"file_type_webpack.svg","webpack.mix.coffee":"file_type_webpack.svg","webpack.mix.ts":"file_type_webpack.svg","webpack.plugins.js":"file_type_webpack.svg","webpack.plugins.coffee":"file_type_webpack.svg","webpack.plugins.ts":"file_type_webpack.svg","webpack.renderer.config.js":"file_type_webpack.svg","webpack.renderer.config.coffee":"file_type_webpack.svg","webpack.renderer.config.ts":"file_type_webpack.svg","webpack.rules.js":"file_type_webpack.svg","webpack.rules.coffee":"file_type_webpack.svg","webpack.rules.ts":"file_type_webpack.svg","webpack.test.conf.js":"file_type_webpack.svg","webpack.test.conf.coffee":"file_type_webpack.svg","webpack.test.conf.ts":"file_type_webpack.svg","wercker.yml":"file_type_wercker.svg","wpml-config.xml":"file_type_wpml.svg",".yamllint":"file_type_yamllint.svg",".yaspellerrc":"file_type_yandex.svg",".yaspeller.json":"file_type_yandex.svg","yarn.lock":"file_type_yarn.svg",".yarnrc":"file_type_yarn.svg",".yarnrc.yml":"file_type_yarn.svg",".yarnclean":"file_type_yarn.svg",".yarn-integrity":"file_type_yarn.svg",".yarn-metadata.json":"file_type_yarn.svg",".yarnignore":"file_type_yarn.svg",".yo-rc.json":"file_type_yeoman.svg","now.json":"file_type_light_zeit.svg",".nowignore":"file_type_light_zeit.svg","vercel.json":"file_type_light_zeit.svg",".vercelignore":"file_type_light_zeit.svg",Jenkinsfile:"file_type_groovy.svg",config:"file_type_ini.svg",gitconfig:"file_type_ini.svg",guardfile:"file_type_ruby.svg",podfile:"file_type_ruby.svg",capfile:"file_type_ruby.svg"}},4917:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_private_opened.721abd95.svg"},5012:function(e,t,n){"use strict";n.d(t,{A:function(){return j}});var r=n(20641),i=n(90033),o=n(53751);const a={class:"python-repl"},s={class:"repl-output",ref:"replOutput"},l={key:0,class:"welcome-text"},c={key:1,class:"output-text"},u={key:2,class:"input-line"},d={class:"prompt"},p={class:"user-input"},f={key:3,class:"error-text"},h={key:4,class:"system-text"},g={class:"repl-input-area"},m={class:"input-line-container"},_={class:"repl-prompt"},v=["placeholder","rows"],y={class:"repl-controls"};function b(e,t,n,b,k,w){return(0,r.uX)(),(0,r.CE)("div",a,[(0,r.Lk)("div",s,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(b.outputLines,(e,t)=>((0,r.uX)(),(0,r.CE)("div",{key:t,class:"repl-line"},["welcome"===e.type?((0,r.uX)(),(0,r.CE)("pre",l,(0,i.v_)(e.content),1)):"output"===e.type?((0,r.uX)(),(0,r.CE)("pre",c,(0,i.v_)(e.content),1)):"input"===e.type?((0,r.uX)(),(0,r.CE)("div",u,[(0,r.Lk)("span",d,(0,i.v_)(e.prompt),1),(0,r.Lk)("span",p,(0,i.v_)(e.content),1)])):"error"===e.type?((0,r.uX)(),(0,r.CE)("pre",f,(0,i.v_)(e.content),1)):"system"===e.type?((0,r.uX)(),(0,r.CE)("pre",h,(0,i.v_)(e.content),1)):(0,r.Q3)("",!0)]))),128))],512),(0,r.Lk)("div",g,[(0,r.Lk)("div",m,[(0,r.Lk)("span",_,(0,i.v_)(b.currentPrompt),1),(0,r.bo)((0,r.Lk)("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>b.currentInput=e),onKeydown:t[1]||(t[1]=(...e)=>b.handleKeyDown&&b.handleKeyDown(...e)),ref:"replInput",class:"repl-input-field",placeholder:b.placeholder,rows:b.inputRows,autofocus:""},null,40,v),[[o.Jo,b.currentInput]])]),t[6]||(t[6]=(0,r.Lk)("div",{class:"repl-hints"},[(0,r.Lk)("span",{class:"hint"},"Enter: Execute | Shift+Enter: New line | Tab: Indent | Up/Down: History")],-1))]),(0,r.Lk)("div",y,[b.isRunning?((0,r.uX)(),(0,r.CE)("button",{key:1,onClick:t[3]||(t[3]=(...e)=>b.stopREPL&&b.stopREPL(...e)),class:"control-btn stop"}," ⬛ Stop REPL ")):((0,r.uX)(),(0,r.CE)("button",{key:0,onClick:t[2]||(t[2]=(...e)=>b.startREPL&&b.startREPL(...e)),class:"control-btn start"}," ▶ Start REPL ")),(0,r.Lk)("button",{onClick:t[4]||(t[4]=(...e)=>b.clearOutput&&b.clearOutput(...e)),class:"control-btn clear"}," 🗑 Clear "),(0,r.Lk)("button",{onClick:t[5]||(t[5]=(...e)=>b.exportHistory&&b.exportHistory(...e)),class:"control-btn export"}," 💾 Export History ")])])}n(44114),n(18111),n(7588),n(14603),n(47566),n(98721);var k=n(50953),w=n(66278),x={name:"PythonREPL",setup(){const e=(0,w.Pj)(),t=(0,k.KR)([]),n=(0,k.KR)(""),i=(0,k.KR)(">>> "),o=(0,k.KR)(!1),a=(0,k.KR)(null),s=(0,k.KR)([]),l=(0,k.KR)(-1),c=(0,k.KR)("Enter Python code..."),u=(0,k.KR)(1),d=(0,k.KR)(null),p=(0,k.KR)(null),f=e=>{if(a.value&&e.id===a.value)if(0===e.code){if(e.data&&e.data.stdout){const n=e.data.stdout.split("\n");n.forEach(e=>{e&&t.value.push({type:"output",content:e})}),b()}}else 2e3===e.code?e.data&&"repl_prompt"===e.data.type&&(i.value=e.data.prompt,(0,r.dY)(()=>{p.value&&p.value.focus()})):1111===e.code&&(e.data&&e.data.stdout&&t.value.push({type:"system",content:e.data.stdout}),o.value=!1,a.value=null)},h=async()=>{a.value=Date.now().toString(),o.value=!0,t.value=[],await e.dispatch("websocket/sendMessage",{cmd:"start_python_repl",cmd_id:a.value,data:{projectName:e.state.ide.currentProject||"repl"}}),t.value.push({type:"welcome",content:"Python REPL started. You can now execute Python code interactively."})},g=async()=>{a.value&&await e.dispatch("websocket/sendMessage",{cmd:"stop_python_program",cmd_id:Date.now().toString(),data:{program_id:a.value}}),o.value=!1,a.value=null,i.value=">>> "},m=async()=>{if(!n.value.trim()||!a.value)return;const r=n.value;t.value.push({type:"input",prompt:i.value,content:r}),s.value.push(r),l.value=s.value.length,await e.dispatch("websocket/sendMessage",{cmd:"send_program_input",cmd_id:Date.now().toString(),data:{program_id:a.value,input:r}}),n.value="",u.value=1,b()},_=e=>{if("Enter"!==e.key||e.shiftKey)if("Enter"===e.key&&e.shiftKey)u.value=Math.min(10,u.value+1);else if("Tab"===e.key){e.preventDefault();const t=e.target.selectionStart,i=e.target.selectionEnd,o=n.value;n.value=o.substring(0,t)+" "+o.substring(i),(0,r.dY)(()=>{e.target.selectionStart=e.target.selectionEnd=t+4})}else"ArrowUp"===e.key&&0===e.target.selectionStart?(e.preventDefault(),l.value>0&&(l.value--,n.value=s.value[l.value])):"ArrowDown"===e.key&&(e.preventDefault(),l.value{if(p.value){const e=n.value.split("\n").length;u.value=Math.min(10,Math.max(1,e))}})},v=()=>{t.value=[],o.value&&t.value.push({type:"welcome",content:"Output cleared. REPL is still running."})},y=()=>{const e=s.value.join("\n"),t=new Blob([e],{type:"text/plain"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=`python_repl_history_${Date.now()}.py`,r.click(),URL.revokeObjectURL(n)},b=()=>{(0,r.dY)(()=>{d.value&&(d.value.scrollTop=d.value.scrollHeight)})};return(0,r.sV)(()=>{e.commit("websocket/setMessageHandler",f)}),(0,r.hi)(()=>{o.value&&g()}),{outputLines:t,currentInput:n,currentPrompt:i,isRunning:o,placeholder:c,inputRows:u,replOutput:d,replInput:p,commandHistory:s,historyIndex:l,startREPL:h,stopREPL:g,sendInput:m,handleKeyDown:_,clearOutput:v,exportHistory:y}}},C=n(66262);const S=(0,C.A)(x,[["render",b],["__scopeId","data-v-4691abe7"]]);var j=S},5828:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_pdf2.08cbb53f.svg"},6494:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},7093:function(e,t,n){"use strict";n.d(t,{A:function(){return h}});var r=n(20641),i=n(90033);const o={id:"root-delete",class:"noselected"},a={class:"dialog-wrap"},s={class:"dialog-content"},l={class:"top-title"},c={style:{"margin-top":"156px"}};function u(e,t,n,u,d,p){return(0,r.uX)(),(0,r.CE)("div",o,[(0,r.Lk)("div",a,[(0,r.Lk)("div",{class:"dialog-cover",onClick:t[0]||(t[0]=t=>e.$emit("onCancel"))}),(0,r.Lk)("div",s,[(0,r.Lk)("span",l,(0,i.v_)(n.title),1),(0,r.Lk)("div",c,[(0,r.Lk)("div",{class:"float-left btn-cancel",onClick:t[1]||(t[1]=t=>e.$emit("onCancel"))}," Cancel "),(0,r.Lk)("div",{class:"float-left btn-delete cursor-pointer",onClick:t[2]||(t[2]=t=>e.$emit("onDelete"))}," Delete ")])])])])}var d={props:{title:String},data(){return{}},methods:{},components:{},mounted(){},computed:{}},p=n(66262);const f=(0,p.A)(d,[["render",u],["__scopeId","data-v-1141e722"]]);var h=f},8208:function(e,t,n){(function(e){e(n(15237),n(23653),n(97923))})(function(e){"use strict";var t=e.commands,n=e.Pos;function r(t,r,i){if(i<0&&0==r.ch)return t.clipPos(n(r.line-1));var o=t.getLine(r.line);if(i>0&&r.ch>=o.length)return t.clipPos(n(r.line+1,0));for(var a,s="start",l=r.ch,c=l,u=i<0?0:o.length,d=0;c!=u;c+=i,d++){var p=o.charAt(i<0?c-1:c),f="_"!=p&&e.isWordChar(p)?"w":"o";if("w"==f&&p.toUpperCase()==p&&(f="W"),"start"==s)"o"!=f?(s="in",a=f):l=c+i;else if("in"==s&&a!=f){if("w"==a&&"W"==f&&i<0&&c--,"W"==a&&"w"==f&&i>0){if(c==l+1){a="w";continue}c--}break}}return n(r.line,c)}function i(e,t){e.extendSelectionsBy(function(n){return e.display.shift||e.doc.extend||n.empty()?r(e.doc,n.head,t):t<0?n.from():n.to()})}function o(t,r){if(t.isReadOnly())return e.Pass;t.operation(function(){for(var e=t.listSelections().length,i=[],o=-1,a=0;a=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},t.scrollLineDown=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},t.splitSelectionByLine=function(e){for(var t=e.listSelections(),r=[],i=0;io.line&&s==a.line&&0==a.ch||r.push({anchor:s==o.line?o:n(s,0),head:s==a.line?a:n(s)});e.setSelections(r,0)},t.singleSelectionTop=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},t.selectLine=function(e){for(var t=e.listSelections(),r=[],i=0;i=0;s--){l=r[i[s]];if(!(c&&e.cmpPos(l.head,c)>0)){var u=a(t,l.head);c=u.from,t.replaceRange(n(u.word),u.from,u.to)}}})}function h(t){var n=t.getCursor("from"),r=t.getCursor("to");if(0==e.cmpPos(n,r)){var i=a(t,n);if(!i.word)return;n=i.from,r=i.to}return{from:n,to:r,query:t.getRange(n,r),word:i}}function g(e,t){var r=h(e);if(r){var i=r.query,o=e.getSearchCursor(i,t?r.to:r.from);(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):(o=e.getSearchCursor(i,t?n(e.firstLine(),0):e.clipPos(n(e.lastLine()))),(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):r.word&&e.setSelection(r.from,r.to))}}t.selectScope=function(e){u(e)||e.execCommand("selectAll")},t.selectBetweenBrackets=function(t){if(!u(t))return e.Pass},t.goToBracket=function(t){t.extendSelectionsBy(function(r){var i=t.scanForBracket(r.head,1,d(t.getTokenTypeAt(r.head)));if(i&&0!=e.cmpPos(i.pos,r.head))return i.pos;var o=t.scanForBracket(r.head,-1,d(t.getTokenTypeAt(n(r.head.line,r.head.ch+1))));return o&&n(o.pos.line,o.pos.ch+1)||r.head})},t.swapLineUp=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.firstLine()-1,a=[],s=0;so?i.push(c,u):i.length&&(i[i.length-1]=u),o=u}t.operation(function(){for(var e=0;et.lastLine()?t.replaceRange("\n"+s,n(t.lastLine()),null,"+swapLine"):t.replaceRange(s+"\n",n(o,0),null,"+swapLine")}t.setSelections(a),t.scrollIntoView()})},t.swapLineDown=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.lastLine()+1,a=r.length-1;a>=0;a--){var s=r[a],l=s.to().line+1,c=s.from().line;0!=s.to().ch||s.empty()||l--,l=0;e-=2){var r=i[e],o=i[e+1],a=t.getLine(r);r==t.lastLine()?t.replaceRange("",n(r-1),n(r),"+swapLine"):t.replaceRange("",n(r,0),n(r+1,0),"+swapLine"),t.replaceRange(a+"\n",n(o,0),null,"+swapLine")}t.scrollIntoView()})},t.toggleCommentIndented=function(e){e.toggleComment({indent:!0})},t.joinLines=function(e){for(var t=e.listSelections(),r=[],i=0;i=0;o--){var a=r[o].head,s=t.getRange({line:a.line,ch:0},a),l=e.countColumn(s,null,t.getOption("tabSize")),c=t.findPosH(a,-1,"char",!1);if(s&&!/\S/.test(s)&&l%i==0){var u=new n(a.line,e.findColumn(s,l-i,i));u.ch!=a.ch&&(c=u)}t.replaceRange("",c,a,"+delete")}})},t.delLineRight=function(e){e.operation(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange("",t[r].anchor,n(t[r].to().line),"+delete");e.scrollIntoView()})},t.upcaseAtCursor=function(e){f(e,function(e){return e.toUpperCase()})},t.downcaseAtCursor=function(e){f(e,function(e){return e.toLowerCase()})},t.setSublimeMark=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},t.selectToSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},t.deleteToSublimeMark=function(t){var n=t.state.sublimeMark&&t.state.sublimeMark.find();if(n){var r=t.getCursor(),i=n;if(e.cmpPos(r,i)>0){var o=i;i=r,r=o}t.state.sublimeKilled=t.getRange(r,i),t.replaceRange("",r,i)}},t.swapWithSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},t.sublimeYank=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},t.showInCenter=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)},t.findUnder=function(e){g(e,!0)},t.findUnderPrevious=function(e){g(e,!1)},t.findAllUnder=function(e){var t=h(e);if(t){var n=e.getSearchCursor(t.query),r=[],i=-1;while(n.findNext())r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&i++;e.setSelections(r,i)}};var m=e.keyMap;m.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},e.normalizeKeyMap(m.macSublime),m.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},e.normalizeKeyMap(m.pcSublime);var _=m.default==m.macDefault;m.sublime=_?m.macSublime:m.pcSublime})},8756:function(e,t,n){"use strict";n.r(t),n.d(t,{BaseTransition:function(){return r.pR},BaseTransitionPropsValidators:function(){return r.QP},Comment:function(){return r.Mw},DeprecationTypes:function(){return r.aT},EffectScope:function(){return r.yC},ErrorCodes:function(){return r.tG},ErrorTypeStrings:function(){return r.ZQ},Fragment:function(){return r.FK},KeepAlive:function(){return r.PR},ReactiveEffect:function(){return r.X2},Static:function(){return r.jC},Suspense:function(){return r.tY},Teleport:function(){return r.Im},Text:function(){return r.EY},TrackOpTypes:function(){return r.Ul},Transition:function(){return r.eB},TransitionGroup:function(){return r.F},TriggerOpTypes:function(){return r.PP},VueElement:function(){return r.Vy},assertNumber:function(){return r.U4},callWithAsyncErrorHandling:function(){return r.qL},callWithErrorHandling:function(){return r.gh},camelize:function(){return r.PT},capitalize:function(){return r.ZH},cloneVNode:function(){return r.E3},compatUtils:function(){return r.Y5},compile:function(){return i},computed:function(){return r.EW},createApp:function(){return r.Ef},createBlock:function(){return r.Wv},createCommentVNode:function(){return r.Q3},createElementBlock:function(){return r.CE},createElementVNode:function(){return r.Lk},createHydrationRenderer:function(){return r.ci},createPropsRestProxy:function(){return r.bn},createRenderer:function(){return r.K9},createSSRApp:function(){return r.m1},createSlots:function(){return r.eX},createStaticVNode:function(){return r.Fv},createTextVNode:function(){return r.eW},createVNode:function(){return r.bF},customRef:function(){return r.rY},defineAsyncComponent:function(){return r.$V},defineComponent:function(){return r.pM},defineCustomElement:function(){return r.Xq},defineEmits:function(){return r.qP},defineExpose:function(){return r.wk},defineModel:function(){return r.NP},defineOptions:function(){return r.GM},defineProps:function(){return r.Yj},defineSSRCustomElement:function(){return r.Po},defineSlots:function(){return r.Lu},devtools:function(){return r.lt},effect:function(){return r.QZ},effectScope:function(){return r.uY},getCurrentInstance:function(){return r.nI},getCurrentScope:function(){return r.o5},getCurrentWatcher:function(){return r.Yv},getTransitionRawChildren:function(){return r.Df},guardReactiveProps:function(){return r.Ng},h:function(){return r.h},handleError:function(){return r.H4},hasInjectionContext:function(){return r.PS},hydrate:function(){return r.Qv},hydrateOnIdle:function(){return r.rU},hydrateOnInteraction:function(){return r.Tq},hydrateOnMediaQuery:function(){return r.dA},hydrateOnVisible:function(){return r.Pn},initCustomFormatter:function(){return r.y$},initDirectivesForSSR:function(){return r.Ib},inject:function(){return r.WQ},isMemoSame:function(){return r.Bs},isProxy:function(){return r.ju},isReactive:function(){return r.g8},isReadonly:function(){return r.Tm},isRef:function(){return r.i9},isRuntimeOnly:function(){return r.wX},isShallow:function(){return r.fE},isVNode:function(){return r.vv},markRaw:function(){return r.IG},mergeDefaults:function(){return r.HF},mergeModels:function(){return r.zz},mergeProps:function(){return r.v6},nextTick:function(){return r.dY},normalizeClass:function(){return r.C4},normalizeProps:function(){return r._B},normalizeStyle:function(){return r.Tr},onActivated:function(){return r.n},onBeforeMount:function(){return r.KC},onBeforeUnmount:function(){return r.xo},onBeforeUpdate:function(){return r.Ic},onDeactivated:function(){return r.Y4},onErrorCaptured:function(){return r.qG},onMounted:function(){return r.sV},onRenderTracked:function(){return r.qR},onRenderTriggered:function(){return r.bj},onScopeDispose:function(){return r.jr},onServerPrefetch:function(){return r.SS},onUnmounted:function(){return r.hi},onUpdated:function(){return r.$u},onWatcherCleanup:function(){return r.ch},openBlock:function(){return r.uX},popScopeId:function(){return r.jt},provide:function(){return r.Gt},proxyRefs:function(){return r.Pr},pushScopeId:function(){return r.Qi},queuePostFlushCb:function(){return r.Dl},reactive:function(){return r.Kh},readonly:function(){return r.tB},ref:function(){return r.KR},registerRuntimeCompiler:function(){return r.tC},render:function(){return r.XX},renderList:function(){return r.pI},renderSlot:function(){return r.RG},resolveComponent:function(){return r.g2},resolveDirective:function(){return r.gN},resolveDynamicComponent:function(){return r.$y},resolveFilter:function(){return r.LJ},resolveTransitionHooks:function(){return r.OW},setBlockTracking:function(){return r.Vq},setDevtoolsHook:function(){return r.iD},setTransitionHooks:function(){return r.MZ},shallowReactive:function(){return r.Gc},shallowReadonly:function(){return r.nD},shallowRef:function(){return r.IJ},ssrContextKey:function(){return r.Fw},ssrUtils:function(){return r.Gw},stop:function(){return r.ds},toDisplayString:function(){return r.v_},toHandlerKey:function(){return r.Kf},toHandlers:function(){return r.Tb},toRaw:function(){return r.ux},toRef:function(){return r.lW},toRefs:function(){return r.QW},toValue:function(){return r.BA},transformVNodeArgs:function(){return r.gW},triggerRef:function(){return r.mu},unref:function(){return r.R1},useAttrs:function(){return r.OA},useCssModule:function(){return r.D},useCssVars:function(){return r.$9},useHost:function(){return r.KT},useId:function(){return r.Bi},useModel:function(){return r.fn},useSSRContext:function(){return r.LM},useShadowRoot:function(){return r._U},useSlots:function(){return r.Ht},useTemplateRef:function(){return r.rk},useTransitionState:function(){return r.Gy},vModelCheckbox:function(){return r.lH},vModelDynamic:function(){return r.hp},vModelRadio:function(){return r.XL},vModelSelect:function(){return r.u1},vModelText:function(){return r.Jo},vShow:function(){return r.aG},version:function(){return r.rE},warn:function(){return r.R8},watch:function(){return r.wB},watchEffect:function(){return r.nT},watchPostEffect:function(){return r.p9},watchSyncEffect:function(){return r.U_},withAsyncContext:function(){return r.E},withCtx:function(){return r.k6},withDefaults:function(){return r.rO},withDirectives:function(){return r.bo},withKeys:function(){return r.jR},withMemo:function(){return r.bU},withModifiers:function(){return r.D$},withScopeId:function(){return r.YY}});var r=n(53751); -/** -* vue v3.5.18 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const i=()=>{0}},9486:function(e,t,n){"use strict";var r=n(46518),i=n(44576),o=n(79504),a=n(83972),s=n(34154),l=n(55169),c=n(92804),u=n(944),d=c.i2c,p=c.i2cUrl,f=o("".charAt),h=i.Uint8Array,g=!h||!h.prototype.toBase64||!function(){try{var e=new h;e.toBase64(null)}catch(t){return!0}}();h&&r({target:"Uint8Array",proto:!0,forced:g},{toBase64:function(){var e=s(this),t=arguments.length?a(arguments[0]):void 0,n="base64"===u(t)?d:p,r=!!t&&!!t.omitPadding;l(this.buffer);for(var i,o="",c=0,h=e.length,g=function(e){return f(n,i>>6*e&63)};c+21)){if(this.somethingSelected()){if(!t.hint.supportsSelection)return;for(var i=0;ip.clientHeight+1;setTimeout(function(){D=a.getScrollInfo()});var z=O.bottom-M;if(z>0){var I=O.bottom-O.top,F=O.top-(b.bottom-b.top)-2;M-O.topF&&(p.style.height=(I=F)+"px"),p.style.top=(w=b.top-I)-S+"px",x=!1):p.style.height=M-O.top-2+"px"}var P,R=O.right-A;if(N&&(R+=a.display.nativeBarWidth),R>0&&(O.right-O.left>A&&(p.style.width=A-5+"px",R-=O.right-O.left-A),p.style.left=(k=Math.max(b.left-R-C,0))+"px"),N)for(var q=p.firstChild;q;q=q.nextSibling)q.style.paddingRight=a.display.nativeBarWidth+"px";(a.addKeyMap(this.keyMap=l(r,{moveFocus:function(e,t){o.changeActive(o.selectedHint+e,t)},setFocus:function(e){o.changeActive(e)},menuSize:function(){return o.screenAmount()},length:h.length,close:function(){r.close()},pick:function(){o.pick()},data:i})),r.options.closeOnUnfocus)&&(a.on("blur",this.onBlur=function(){P=setTimeout(function(){r.close()},100)}),a.on("focus",this.onFocus=function(){clearTimeout(P)}));a.on("scroll",this.onScroll=function(){var e=a.getScrollInfo(),t=a.getWrapperElement().getBoundingClientRect();D||(D=a.getScrollInfo());var n=w+D.top-e.top,i=n-(d.pageYOffset||(u.documentElement||u.body).scrollTop);if(x||(i+=p.offsetHeight),i<=t.top||i>=t.bottom)return r.close();p.style.top=n+"px",p.style.left=k+D.left-e.left+"px"}),e.on(p,"dblclick",function(e){var t=c(p,e.target||e.srcElement);t&&null!=t.hintId&&(o.changeActive(t.hintId),o.pick())}),e.on(p,"click",function(e){var t=c(p,e.target||e.srcElement);t&&null!=t.hintId&&(o.changeActive(t.hintId),r.options.completeOnSingleClick&&o.pick())}),e.on(p,"mousedown",function(){setTimeout(function(){a.focus()},20)});var B=this.getSelectedHintRange();return 0===B.from&&0===B.to||this.scrollToActive(),e.signal(i,"select",h[this.selectedHint],p.childNodes[this.selectedHint]),!0}function d(e,t){if(!e.somethingSelected())return t;for(var n=[],r=0;r0?t(e):o(i+1)})}o(0)};return o.async=!0,o.supportsSelection=!0,o}return(r=t.getHelper(t.getCursor(),"hintWords"))?function(t){return e.hint.fromList(t,{words:r})}:e.hint.anyword?function(t,n){return e.hint.anyword(t,n)}:function(){}}r.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.tick=null,this.options.updateOnCursorActivity&&this.cm.off("cursorActivity",this.activityFunc),this.widget&&this.data&&e.signal(this.data,"close"),this.widget&&this.widget.close(),e.signal(this.cm,"endCompletion",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(t,n){var r=t.list[n],i=this;this.cm.operation(function(){r.hint?r.hint(i.cm,t,r):i.cm.replaceRange(s(r),r.from||t.from,r.to||t.to,"complete"),e.signal(t,"pick",r),i.cm.scrollIntoView()}),this.options.closeOnPick&&this.close()},cursorActivity:function(){this.debounce&&(o(this.debounce),this.debounce=0);var e=this.startPos;this.data&&(e=this.data.from);var t=this.cm.getCursor(),n=this.cm.getLine(t.line);if(t.line!=this.startPos.line||n.length-t.ch!=this.startLen-this.startPos.ch||t.ch=this.data.list.length?t=r?this.data.list.length-1:0:t<0&&(t=r?0:this.data.list.length-1),this.selectedHint!=t){var i=this.hints.childNodes[this.selectedHint];i&&(i.className=i.className.replace(" "+n,""),i.removeAttribute("aria-selected")),i=this.hints.childNodes[this.selectedHint=t],i.className+=" "+n,i.setAttribute("aria-selected","true"),this.completion.cm.getInputField().setAttribute("aria-activedescendant",i.id),this.scrollToActive(),e.signal(this.data,"select",this.data.list[this.selectedHint],i)}},scrollToActive:function(){var e=this.getSelectedHintRange(),t=this.hints.childNodes[e.from],n=this.hints.childNodes[e.to],r=this.hints.firstChild;t.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=n.offsetTop+n.offsetHeight-this.hints.clientHeight+r.offsetTop)},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1},getSelectedHintRange:function(){var e=this.completion.options.scrollMargin||0;return{from:Math.max(0,this.selectedHint-e),to:Math.min(this.data.list.length-1,this.selectedHint+e)}}},e.registerHelper("hint","auto",{resolve:f}),e.registerHelper("hint","fromList",function(t,n){var r,i=t.getCursor(),o=t.getTokenAt(i),a=e.Pos(i.line,o.start),s=i;o.start,]/,closeOnPick:!0,closeOnUnfocus:!0,updateOnCursorActivity:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null,paddingForScrollbar:!0,moveOnOverlap:!0};e.defineOption("hintOptions",null)})},10274:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_test.bee5252d.svg"},10841:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_numpy.08037ae3.svg"},11360:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_git.18e73a3f.svg"},11398:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_python.556a0a36.svg"},11647:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_pytyped.37cea703.svg"},11909:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";var t=e.Pos,n="http://www.w3.org/2000/svg";function r(e,t){this.mv=e,this.type=t,this.classes="left"==t?{chunk:"CodeMirror-merge-l-chunk",start:"CodeMirror-merge-l-chunk-start",end:"CodeMirror-merge-l-chunk-end",insert:"CodeMirror-merge-l-inserted",del:"CodeMirror-merge-l-deleted",connect:"CodeMirror-merge-l-connect"}:{chunk:"CodeMirror-merge-r-chunk",start:"CodeMirror-merge-r-chunk-start",end:"CodeMirror-merge-r-chunk-end",insert:"CodeMirror-merge-r-inserted",del:"CodeMirror-merge-r-deleted",connect:"CodeMirror-merge-r-connect"}}function i(t){t.diffOutOfDate&&(t.diff=A(t.orig.getValue(),t.edit.getValue(),t.mv.options.ignoreWhitespace),t.chunks=M(t.diff),t.diffOutOfDate=!1,e.signal(t.edit,"updateDiff",t.diff))}r.prototype={constructor:r,init:function(t,n,r){this.edit=this.mv.edit,(this.edit.state.diffViews||(this.edit.state.diffViews=[])).push(this),this.orig=e(t,$({value:n,readOnly:!this.mv.options.allowEditingOriginals},$(r))),"align"==this.mv.options.connect&&(this.edit.state.trackAlignable||(this.edit.state.trackAlignable=new K(this.edit)),this.orig.state.trackAlignable=new K(this.orig)),this.lockButton.title=this.edit.phrase("Toggle locked scrolling"),this.lockButton.setAttribute("aria-label",this.lockButton.title),this.orig.state.diffViews=[this];var i=r.chunkClassLocation||"background";"[object Array]"!=Object.prototype.toString.call(i)&&(i=[i]),this.classes.classLocation=i,this.diff=A(E(n),E(r.value),this.mv.options.ignoreWhitespace),this.chunks=M(this.diff),this.diffOutOfDate=this.dealigned=!1,this.needsScrollSync=null,this.showDifferences=!1!==r.showDifferences},registerEvents:function(e){this.forceUpdate=a(this),u(this,!0,!1),s(this,e)},setShowDifferences:function(e){e=!1!==e,e!=this.showDifferences&&(this.showDifferences=e,this.forceUpdate("full"))}};var o=!1;function a(t){var n,r={from:0,to:0,marked:[]},a={from:0,to:0,marked:[]},s=!1;function c(e){o=!0,s=!1,"full"==e&&(t.svg&&q(t.svg),t.copyButtons&&q(t.copyButtons),p(t.edit,r.marked,t.classes),p(t.orig,a.marked,t.classes),r.from=r.to=a.from=a.to=0),i(t),t.showDifferences&&(f(t.edit,t.diff,r,DIFF_INSERT,t.classes),f(t.orig,t.diff,a,DIFF_DELETE,t.classes)),"align"==t.mv.options.connect&&k(t),m(t),null!=t.needsScrollSync&&l(t,t.needsScrollSync),o=!1}function u(e){o||(t.dealigned=!0,d(e))}function d(e){o||s||(clearTimeout(n),!0===e&&(s=!0),n=setTimeout(c,!0===e?20:250))}function h(e,n){t.diffOutOfDate||(t.diffOutOfDate=!0,r.from=r.to=a.from=a.to=0),u(n.text.length-1!=n.to.line-n.from.line)}function g(){t.diffOutOfDate=!0,t.dealigned=!0,c("full")}return t.edit.on("change",h),t.orig.on("change",h),t.edit.on("swapDoc",g),t.orig.on("swapDoc",g),"align"==t.mv.options.connect&&(e.on(t.edit.state.trackAlignable,"realign",u),e.on(t.orig.state.trackAlignable,"realign",u)),t.edit.on("viewportChange",function(){d(!1)}),t.orig.on("viewportChange",function(){d(!1)}),c(),c}function s(e,t){e.edit.on("scroll",function(){l(e,!0)&&m(e)}),e.orig.on("scroll",function(){l(e,!1)&&m(e),t&&l(t,!0)&&m(t)})}function l(e,t){if(e.diffOutOfDate)return e.lockScroll&&null==e.needsScrollSync&&(e.needsScrollSync=t),!1;if(e.needsScrollSync=null,!e.lockScroll)return!0;var n,r,i=+new Date;if(t?(n=e.edit,r=e.orig):(n=e.orig,r=e.edit),n.state.scrollSetBy==e&&(n.state.scrollSetAt||0)+250>i)return!1;var o=n.getScrollInfo();if("align"==e.mv.options.connect)m=o.top;else{var a,s,l=.5*o.clientHeight,u=o.top+l,d=n.lineAtHeight(u,"local"),p=N(e.chunks,d,t),f=c(n,t?p.edit:p.orig),h=c(r,t?p.orig:p.edit),g=(u-f.top)/(f.bot-f.top),m=h.top-l+g*(h.bot-h.top);if(m>o.top&&(s=o.top/l)<1)m=m*s+o.top*(1-s);else if((a=o.height-o.clientHeight-o.top)a&&(s=a/l)<1&&(m=m*s+(_.height-_.clientHeight-a)*(1-s))}}return r.scrollTo(o.left,m),r.state.scrollSetAt=i,r.state.scrollSetBy=e,!0}function c(e,t){var n=t.after;return null==n&&(n=e.lastLine()+1),{top:e.heightAtLine(t.before||0,"local"),bot:e.heightAtLine(n,"local")}}function u(t,n,r){t.lockScroll=n,n&&0!=r&&l(t,DIFF_INSERT)&&m(t),(n?e.addClass:e.rmClass)(t.lockButton,"CodeMirror-merge-scrolllock-enabled")}function d(e,t,n){for(var r=n.classLocation,i=0;i20||n.from-o.to>20?(p(e,n.marked,i),g(e,t,r,n.marked,o.from,o.to,i),n.from=o.from,n.to=o.to):(o.fromn.to&&(g(e,t,r,n.marked,n.to,o.to,i),n.to=o.to))})}function h(e,t,n,r,i,o){for(var a=n.classLocation,s=e.getLineHandle(t),l=0;lb&&(g&&(p(f,b),g=!1),f=k)}else if(g=!0,v==r){var w=H(l,y,!0),x=G(c,l),C=X(u,w);Q(x,C)||i.push(e.markText(x,C,{className:d})),l=w}}g&&p(f,l.line+1)}function m(e){if(e.showDifferences){if(e.svg){q(e.svg);var t=e.gap.offsetWidth;B(e.svg,"width",t,"height",e.gap.offsetHeight)}e.copyButtons&&q(e.copyButtons);for(var n=e.edit.getViewport(),r=e.orig.getViewport(),i=e.mv.wrap.getBoundingClientRect().top,o=i-e.edit.getScrollerElement().getBoundingClientRect().top+e.edit.getScrollInfo().top,a=i-e.orig.getScrollerElement().getBoundingClientRect().top+e.orig.getScrollInfo().top,s=0;s=n.from&&l.origFrom<=r.to&&l.origTo>=r.from&&C(e,l,a,o,t)}}}function _(e,t){for(var n=0,r=0,i=0;ie&&o.editFrom<=e)return null;if(o.editFrom>e)break;n=o.editTo,r=o.origTo}return r+(e-n)}function v(e,t,n){for(var r=e.state.trackAlignable,i=e.firstLine(),o=0,a=[],s=0;;s++){for(var l=t[s],c=l?n?l.origFrom:l.editFrom:1e9;od){o++,i--;continue e}if(p.editTo>u){if(p.editFrom<=u)continue e;break}s+=p.origTo-p.origFrom-(p.editTo-p.editFrom),a++}if(u==d-s)l[r]=d,o++;else if(u1&&r.push(x(e[a],n[a],l))}}function x(e,t,n){var r=!0;t>e.lastLine()&&(t--,r=!1);var i=document.createElement("div");return i.className="CodeMirror-merge-spacer",i.style.height=n+"px",i.style.minWidth="1px",e.addLineWidget(t,i,{height:n,above:r,mergeSpacer:!0,handleMouseEvents:!0})}function C(e,t,r,i,o){var a="left"==e.type,s=e.orig.heightAtLine(t.origFrom,"local",!0)-r;if(e.svg){var l=s,c=e.edit.heightAtLine(t.editFrom,"local",!0)-i;if(a){var u=l;l=c,c=u}var d=e.orig.heightAtLine(t.origTo,"local",!0)-r,p=e.edit.heightAtLine(t.editTo,"local",!0)-i;if(a){u=d;d=p,p=u}var f=" C "+o/2+" "+c+" "+o/2+" "+l+" "+(o+2)+" "+l,h=" C "+o/2+" "+d+" "+o/2+" "+p+" -1 "+p;B(e.svg.appendChild(document.createElementNS(n,"path")),"d","M -1 "+c+f+" L "+(o+2)+" "+d+h+" z","class",e.classes.connect)}if(e.copyButtons){var g=e.copyButtons.appendChild(R("div","left"==e.type?"⇝":"⇜","CodeMirror-merge-copy")),m=e.mv.options.allowEditingOriginals;if(g.title=e.edit.phrase(m?"Push to left":"Revert chunk"),g.chunk=t,g.style.top=(t.origTo>t.origFrom?s:e.edit.heightAtLine(t.editFrom,"local")-i)+"px",g.setAttribute("role","button"),g.setAttribute("tabindex","0"),g.setAttribute("aria-label",g.title),m){var _=e.edit.heightAtLine(t.editFrom,"local")-i,v=e.copyButtons.appendChild(R("div","right"==e.type?"⇝":"⇜","CodeMirror-merge-copy-reverse"));v.title="Push to right",v.chunk={editFrom:t.origFrom,editTo:t.origTo,origFrom:t.editFrom,origTo:t.editTo},v.style.top=_+"px","right"==e.type?v.style.left="2px":v.style.right="2px",v.setAttribute("role","button"),v.setAttribute("tabindex","0"),v.setAttribute("aria-label",v.title)}}}function S(e,n,r,i){if(!e.diffOutOfDate){var o=i.origTo>r.lastLine()?t(i.origFrom-1):t(i.origFrom,0),a=t(i.origTo,0),s=i.editTo>n.lastLine()?t(i.editFrom-1):t(i.editFrom,0),l=t(i.editTo,0),c=e.mv.options.revertChunk;c?c(e.mv,r,o,a,n,s,l):n.replaceRange(r.getRange(o,a),s,l)}}var j,T=e.MergeView=function(t,n){if(!(this instanceof T))return new T(t,n);this.options=n;var i=n.origLeft,o=null==n.origRight?n.orig:n.origRight,a=null!=i,s=null!=o,l=1+(a?1:0)+(s?1:0),c=[],u=this.left=null,d=this.right=null,p=this;if(a){u=this.left=new r(this,"left");var f=R("div",null,"CodeMirror-merge-pane CodeMirror-merge-left");c.push(f),c.push(L(u))}var h=R("div",null,"CodeMirror-merge-pane CodeMirror-merge-editor");if(c.push(h),s){d=this.right=new r(this,"right"),c.push(L(d));var g=R("div",null,"CodeMirror-merge-pane CodeMirror-merge-right");c.push(g)}(s?g:h).className+=" CodeMirror-merge-pane-rightmost",c.push(R("div",null,null,"height: 0; clear: both;"));var _=this.wrap=t.appendChild(R("div",c,"CodeMirror-merge CodeMirror-merge-"+l+"pane"));this.edit=e(h,$(n)),u&&u.init(f,i,n),d&&d.init(g,o,n),n.collapseIdentical&&this.editor().operation(function(){P(p,n.collapseIdentical)}),"align"==n.connect&&(this.aligners=[],k(this.left||this.right,!0)),u&&u.registerEvents(d),d&&d.registerEvents(u);var v=function(){u&&m(u),d&&m(d)};e.on(window,"resize",v);var y=setInterval(function(){for(var t=_.parentNode;t&&t!=document.body;t=t.parentNode);t||(clearInterval(y),e.off(window,"resize",v))},5e3)};function L(t){var r=t.lockButton=R("div",null,"CodeMirror-merge-scrolllock");r.setAttribute("role","button"),r.setAttribute("tabindex","0");var i=R("div",[r],"CodeMirror-merge-scrolllock-wrap");e.on(r,"click",function(){u(t,!t.lockScroll)}),e.on(r,"keyup",function(e){("Enter"===e.key||"Space"===e.code)&&u(t,!t.lockScroll)});var o=[i];if(!1!==t.mv.options.revertButtons){t.copyButtons=R("div",null,"CodeMirror-merge-copybuttons-"+t.type);var a=function(e){var n=e.target||e.srcElement;n.chunk&&("CodeMirror-merge-copy-reverse"!=n.className?S(t,t.edit,t.orig,n.chunk):S(t,t.orig,t.edit,n.chunk))};e.on(t.copyButtons,"click",a),e.on(t.copyButtons,"keyup",function(e){("Enter"===e.key||"Space"===e.code)&&a(e)}),o.unshift(t.copyButtons)}if("align"!=t.mv.options.connect){var s=document.createElementNS&&document.createElementNS(n,"svg");s&&!s.createSVGRect&&(s=null),t.svg=s,s&&o.push(s)}return t.gap=R("div",o,"CodeMirror-merge-gap")}function E(e){return"string"==typeof e?e:e.getValue()}function A(e,t,n){j||(j=new diff_match_patch);for(var r=j.diff_main(e,t),i=0;id&&(s&&n.push({origFrom:i,origTo:p,editFrom:r,editTo:d}),r=h,i=g)}else H(c==DIFF_INSERT?o:a,l[1])}return(r<=o.line||i<=a.line)&&n.push({origFrom:i,origTo:a.line+1,editFrom:r,editTo:o.line+1}),n}function D(e,t){if(t==e.length-1)return!0;var n=e[t+1][1];return!(1==n.length&&t1||t==e.length-3)&&10==n.charCodeAt(0)))}function O(e,t){if(0==t)return!0;var n=e[t-1][1];return 10==n.charCodeAt(n.length-1)&&(1==t||(n=e[t-2][1],10==n.charCodeAt(n.length-1)))}function N(e,t,n){for(var r,i,o,a,s=0;st?(i=l.editFrom,a=l.origFrom):u>t&&(i=l.editTo,a=l.origTo)),u<=t?(r=l.editTo,o=l.origTo):c<=t&&(r=l.editFrom,o=l.origFrom)}return{edit:{before:r,after:i},orig:{before:o,after:a}}}function z(n,r,i){n.addLineClass(r,"wrap","CodeMirror-merge-collapsed-line");var o=document.createElement("span");o.className="CodeMirror-merge-collapsed-widget",o.title=n.phrase("Identical text collapsed. Click to expand.");var a=n.markText(t(r,0),t(i-1),{inclusiveLeft:!0,inclusiveRight:!0,replacedWith:o,clearOnEnter:!0});function s(){a.clear(),n.removeLineClass(r,"wrap","CodeMirror-merge-collapsed-line")}return a.explicitlyCleared&&s(),e.on(o,"click",s),a.on("clear",s),e.on(o,"click",s),{mark:a,clear:s}}function I(e,t){var n=[];function r(){for(var e=0;e=0&&st){var u=[{line:l,cm:r}];e.left&&u.push({line:_(l,e.left.chunks),cm:e.left.orig}),e.right&&u.push({line:_(l,e.right.chunks),cm:e.right.orig});var d=I(c,u);e.options.onCollapse&&e.options.onCollapse(e,l,c,d)}}}function R(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o0;--t)e.removeChild(e.firstChild)}function B(e){for(var t=1;t0?e:t}function Q(e,t){return e.line==t.line&&e.ch==t.ch}function Z(e,t,n){for(var r=e.length-1;r>=0;r--){var i=e[r],o=(n?i.origTo:i.editTo)-1;if(ot)return o}}function J(t,n){var r=null,o=t.state.diffViews,a=t.getCursor().line;if(o)for(var s=0;sr:u0)break}this.signal(),this.alignable.splice(n,0,e,t)},find:function(e){for(var t=0;t-1){var c=this.alignable[o+1];c==U?this.alignable.splice(o,2):this.alignable[o+1]=c&~U}a>-1&&n&&this.set(e+n,U)}},e.commands.goNextDiff=function(e){return J(e,1)},e.commands.goPrevDiff=function(e){return J(e,-1)}})},12520:function(e,t,n){(function(e){e(n(15237),n(40576),n(16792),n(68656))})(function(e){"use strict";var t={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function n(e,t,n){var r=e.current(),i=r.search(t);return i>-1?e.backUp(r.length-i):r.match(/<\/?$/)&&(e.backUp(r.length),e.match(t,!1)||e.match(r)),n}var r={};function i(e){var t=r[e];return t||(r[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function o(e,t){var n=e.match(i(t));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function a(e,t){return new RegExp((t?"^":"")+"","i")}function s(e,t){for(var n in e)for(var r=t[n]||(t[n]=[]),i=e[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function l(e,t){for(var n=0;n=0;p--)c.script.unshift(["type",d[p].matches,d[p].mode]);function f(t,i){var s,u=o.token(t,i.htmlState),d=/\btag\b/.test(u);if(d&&!/[<>\s\/]/.test(t.current())&&(s=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(s))i.inTag=s+" ";else if(i.inTag&&d&&/>$/.test(t.current())){var p=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var h=">"==t.current()&&l(c[p[1]],p[2]),g=e.getMode(r,h),m=a(p[1],!0),_=a(p[1],!1);i.token=function(e,t){return e.match(m,!1)?(t.token=f,t.localState=t.localMode=null,null):n(e,_,t.localMode.token(e,t.localState))},i.localMode=g,i.localState=e.startState(g,o.indent(i.htmlState,"",""))}else i.inTag&&(i.inTag+=t.current(),t.eol()&&(i.inTag+=" "));return u}return{startState:function(){var t=e.startState(o);return{token:f,inTag:null,localMode:null,localState:null,htmlState:t}},copyState:function(t){var n;return t.localState&&(n=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:n,htmlState:e.copyState(o,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n,r){return!t.localMode||/^\s*<\//.test(n)?o.indent(t.htmlState,n,r):t.localMode.indent?t.localMode.indent(t.localState,n,r):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||o}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")})},12648:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_python.152fce8e.svg"},13579:function(e,t,n){"use strict";var r=n(46518),i=n(69565),o=n(72652),a=n(79306),s=n(28551),l=n(1767),c=n(9539),u=n(84549),d=u("some",TypeError);r({target:"Iterator",proto:!0,real:!0,forced:d},{some:function(e){s(this);try{a(e)}catch(r){c(this,"throw",r)}if(d)return i(d,this,e);var t=l(this),n=0;return o(t,function(t,r){if(e(t,n++))return r()},{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},13684:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";e.defineMode("shell",function(){var t={};function n(e,n){for(var r=0;r1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=s(n,"("==n?"quote":"{"==n?"def":"string"),d(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function u(e){return function(t,n){return t.sol()&&t.string==e&&n.tokens.shift(),t.skipToEnd(),"string-2"}}function d(e,t){return(t.tokens[0]||a)(e,t)}return{startState:function(){return{tokens:[]}},token:function(e,t){return d(e,t)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}}),e.defineMIME("text/x-sh","shell"),e.defineMIME("application/x-sh","shell")})},13925:function(e,t,n){"use strict";var r=n(20034);e.exports=function(e){return r(e)||null===e}},14603:function(e,t,n){"use strict";var r=n(36840),i=n(79504),o=n(655),a=n(22812),s=URLSearchParams,l=s.prototype,c=i(l.append),u=i(l["delete"]),d=i(l.forEach),p=i([].push),f=new s("a=1&a=2&b=3");f["delete"]("a",1),f["delete"]("b",void 0),f+""!=="a=2"&&r(l,"delete",function(e){var t=arguments.length,n=t<2?void 0:arguments[1];if(t&&void 0===n)return u(this,e);var r=[];d(this,function(e,t){p(r,{key:t,value:e})}),a(t,1);var i,s=o(e),l=o(n),f=0,h=0,g=!1,m=r.length;while(f2),_=/Android/.test(e),v=m||_||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=m||/Mac/.test(t),b=/\bCrOS\b/.test(e),k=/win/i.test(t),w=p&&e.match(/Version\/(\d*\.\d*)/);w&&(w=Number(w[1])),w&&w>=15&&(p=!1,l=!0);var x=y&&(c||p&&(null==w||w<12.11)),C=n||a&&s>=9;function S(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var j,T=function(e,t){var n=e.className,r=S(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function L(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function E(e,t){return L(e).appendChild(t)}function A(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}m?I=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(I=function(e){try{e.select()}catch(t){}});var W=function(){this.id=null,this.f=null,this.time=0,this.handler=B(this.onTimeout,this)};function U(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}}var Y=[""];function J(e){while(Y.length<=e)Y.push(ee(Y)+" ");return Y[e]}function ee(e){return e[e.length-1]}function te(e,t){for(var n=[],r=0;r"€"&&(e.toUpperCase()!=e.toLowerCase()||oe.test(e))}function se(e,t){return t?!!(t.source.indexOf("\\w")>-1&&ae(e))||t.test(e):ae(e)}function le(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ce=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ue(e){return e.charCodeAt(0)>=768&&ce.test(e)}function de(e,t,n){while((n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}function fe(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,o=0;ot||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}var he=null;function ge(e,t,n){var r;he=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:he=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:he=i)}return null!=r?r:he}var me=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?e.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?t.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;function l(e,t,n){this.level=e,this.from=t,this.to=n}return function(e,t){var c="ltr"==t?"L":"R";if(0==e.length||"ltr"==t&&!r.test(e))return!1;for(var u=e.length,d=[],p=0;p-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function we(e,t){var n=be(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function je(e){e.prototype.on=function(e,t){ye(this,e,t)},e.prototype.off=function(e,t){ke(this,e,t)}}function Te(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Le(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ee(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ae(e){Te(e),Le(e)}function Me(e){return e.target||e.srcElement}function De(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var Oe,Ne,ze=function(){if(a&&s<9)return!1;var e=A("div");return"draggable"in e||"dragDrop"in e}();function Ie(e){if(null==Oe){var t=A("span","​");E(e,A("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Oe=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var n=Oe?A("span","​"):A("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Fe(e){if(null!=Ne)return Ne;var t=E(e,document.createTextNode("AخA")),n=j(t,0,1).getBoundingClientRect(),r=j(t,1,2).getBoundingClientRect();return L(e),!(!n||n.left==n.right)&&(Ne=r.right-n.right<3)}var Pe=3!="\n\nb".split(/\n/).length?function(e){var t=0,n=[],r=e.length;while(t<=r){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Re=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(n){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},qe=function(){var e=A("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Be=null;function $e(e){if(null!=Be)return Be;var t=E(e,A("span","x")),n=t.getBoundingClientRect(),r=j(t,0,1).getBoundingClientRect();return Be=Math.abs(n.left-r.left)>1}var He={},We={};function Ue(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),He[e]=t}function Ve(e,t){We[e]=t}function Ke(e){if("string"==typeof e&&We.hasOwnProperty(e))e=We[e];else if(e&&"string"==typeof e.name&&We.hasOwnProperty(e.name)){var t=We[e.name];"string"==typeof t&&(t={name:t}),e=ie(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ke("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ke("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Xe(e,t){t=Ke(t);var n=He[t.name];if(!n)return Xe(e,"text/plain");var r=n(e,t);if(Ge.hasOwnProperty(t.name)){var i=Ge[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var Ge={};function Qe(e,t){var n=Ge.hasOwnProperty(e)?Ge[e]:Ge[e]={};$(t,n)}function Ze(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Ye(e,t){var n;while(e.innerMode){if(n=e.innerMode(t),!n||n.mode==e)break;t=n.state,e=n.mode}return n||{mode:e,state:t}}function Je(e,t,n){return!e.startState||e.startState(t,n)}var et=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function tt(e,t){if(t-=e.first,t<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");var n=e;while(!n.lines)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?ct(n,tt(e,n).text.length):_t(t,tt(e,t.line).text.length)}function _t(e,t){var n=e.ch;return null==n||n>t?ct(e.line,t):n<0?ct(e.line,0):e}function vt(e,t){for(var n=[],r=0;r=this.string.length},et.prototype.sol=function(){return this.pos==this.lineStart},et.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},et.prototype.next=function(){if(this.post},et.prototype.eatSpace=function(){var e=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>e},et.prototype.skipToEnd=function(){this.pos=this.string.length},et.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},et.prototype.backUp=function(e){this.pos-=e},et.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);if(i(o)==i(e))return!1!==t&&(this.pos+=e.length),!0},et.prototype.current=function(){return this.string.slice(this.start,this.pos)},et.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},et.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},et.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var yt=function(e,t){this.state=e,this.lookAhead=t},bt=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function kt(e,t,n,r){var i=[e.state.modeGen],o={};At(e,t.text,e.doc.mode,n,function(e,t){return i.push(e,t)},o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],l=1,c=0;n.state=!0,At(e,t.text,s.mode,n,function(e,t){var n=l;while(ce&&i.splice(l,1,e,i[l+1],r),l+=2,c=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,l-n,e,"overlay "+t),l=n+2;else for(;ne.options.maxHighlightLength&&Ze(e.doc.mode,r.state),o=kt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function xt(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new bt(r,!0,t);var o=Mt(e,t,n),a=o>r.first&&tt(r,o-1).stateAfter,s=a?bt.fromSaved(r,a,o):new bt(r,Je(r.mode),o);return r.iter(o,t,function(n){Ct(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}bt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},bt.prototype.baseToken=function(e){if(!this.baseTokens)return null;while(this.baseTokens[this.baseTokenPos]<=e)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},bt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},bt.fromSaved=function(e,t,n){return t instanceof yt?new bt(e,Ze(e.mode,t.state),n,t.lookAhead):new bt(e,Ze(e.mode,t),n)},bt.prototype.save=function(e){var t=!1!==e?Ze(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new yt(t,this.maxLookAhead):t};var Tt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function Lt(e,t,n,r){var i,o=e.doc,a=o.mode;t=mt(o,t);var s,l=tt(o,t.line),c=xt(e,t.line,n),u=new et(l.text,e.options.tabSize,c);r&&(s=[]);while((r||u.pose.options.maxHighlightLength?(s=!1,a&&Ct(e,t,r,d.pos),d.pos=t.length,l=null):l=Et(jt(n,d,r.state,p),o),p){var f=p[0].name;f&&(l="m-"+(l?f+" "+l:f))}if(!s||u!=l){while(ca;--s){if(s<=o.first)return o.first;var l=tt(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof yt?c.lookAhead:0)<=o.modeFrontier))return s;var u=H(l.text,null,e.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function Dt(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=tt(e,r).stateAfter;if(i&&(!(i instanceof yt)||r+i.lookAhead=t:o.to>t);(r||(r=[])).push(new Ft(a,o.from,l?null:o.to))}}return r}function $t(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t);if(s||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;b0)){var u=[l,1],d=ut(c.from,s.from),p=ut(c.to,s.to);(d<0||!a.inclusiveLeft&&!d)&&u.push({from:c.from,to:s.from}),(p>0||!a.inclusiveRight&&!p)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function Vt(e){var t=e.markedSpans;if(t){for(var n=0;nt)&&(!n||Qt(n,o.marker)<0)&&(n=o.marker)}return n}function tn(e,t,n,r,i){var o=tt(e,t),a=Nt&&o.markedSpans;if(a)for(var s=0;s=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ut(c.to,n)>=0:ut(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ut(c.from,r)<=0:ut(c.from,r)<0)))return!0}}}function nn(e){var t;while(t=Yt(e))e=t.find(-1,!0).line;return e}function rn(e){var t;while(t=Jt(e))e=t.find(1,!0).line;return e}function on(e){var t,n;while(t=Jt(e))e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function an(e,t){var n=tt(e,t),r=nn(n);return n==r?t:ot(r)}function sn(e,t){if(t>e.lastLine())return t;var n,r=tt(e,t);if(!ln(e,r))return t;while(n=Jt(r))r=n.find(1,!0).line;return ot(r)+1}function ln(e,t){var n=Nt&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}var fn=function(e,t,n){this.text=e,Kt(this,t),this.height=n?n(this):1};function hn(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Vt(e),Kt(e,n);var i=r?r(e):1;i!=e.height&&it(e,i)}function gn(e){e.parent=null,Vt(e)}fn.prototype.lineNo=function(){return ot(this)},je(fn);var mn={},_n={};function vn(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?_n:mn;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function yn(e,t){var n=M("span",null,null,l?"padding-right: .1px":null),r={pre:M("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=kn,Fe(e.display.measure)&&(a=_e(o,e.doc.direction))&&(r.addToken=xn(r.addToken,a)),r.map=[];var s=t!=e.display.externalMeasured&&ot(o);Sn(o,r,wt(e,o,s)),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=z(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=z(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Ie(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(l){var c=r.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return we(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=z(r.pre.className,r.textClass||"")),r}function bn(e){var t=A("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function kn(e,t,n,r,i,o,l){if(t){var c,u=e.splitSpaces?wn(t,e.trailingSpace):t,d=e.cm.state.specialChars,p=!1;if(d.test(t)){c=document.createDocumentFragment();var f=0;while(1){d.lastIndex=f;var h=d.exec(t),g=h?h.index-f:t.length-f;if(g){var m=document.createTextNode(u.slice(f,f+g));a&&s<9?c.appendChild(A("span",[m])):c.appendChild(m),e.map.push(e.pos,e.pos+g,m),e.col+=g,e.pos+=g}if(!h)break;f+=g+1;var _=void 0;if("\t"==h[0]){var v=e.cm.options.tabSize,y=v-e.col%v;_=c.appendChild(A("span",J(y),"cm-tab")),_.setAttribute("role","presentation"),_.setAttribute("cm-text","\t"),e.col+=y}else"\r"==h[0]||"\n"==h[0]?(_=c.appendChild(A("span","\r"==h[0]?"␍":"␤","cm-invalidchar")),_.setAttribute("cm-text",h[0]),e.col+=1):(_=e.cm.options.specialCharPlaceholder(h[0]),_.setAttribute("cm-text",h[0]),a&&s<9?c.appendChild(A("span",[_])):c.appendChild(_),e.col+=1);e.map.push(e.pos,e.pos+1,_),e.pos++}}else e.col+=t.length,c=document.createTextNode(u),e.map.push(e.pos,e.pos+t.length,c),a&&s<9&&(p=!0),e.pos+=t.length;if(e.trailingSpace=32==u.charCodeAt(t.length-1),n||r||i||p||o||l){var b=n||"";r&&(b+=r),i&&(b+=i);var k=A("span",[c],b,o);if(l)for(var w in l)l.hasOwnProperty(w)&&"style"!=w&&"class"!=w&&k.setAttribute(w,l[w]);return e.content.appendChild(k)}e.content.appendChild(c)}}function wn(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;ic&&d.from<=c)break;if(d.to>=u)return e(n,r,i,o,a,s,l);e(n,r.slice(0,d.to-c),i,o,null,s,l),o=null,r=r.slice(d.to-c),c=d.to}}}function Cn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function Sn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,l,c,u,d,p,f=i.length,h=0,g=1,m="",_=0;;){if(_==h){l=c=u=s="",p=null,d=null,_=1/0;for(var v=[],y=void 0,b=0;bh||w.collapsed&&k.to==h&&k.from==h)){if(null!=k.to&&k.to!=h&&_>k.to&&(_=k.to,c=""),w.className&&(l+=" "+w.className),w.css&&(s=(s?s+";":"")+w.css),w.startStyle&&k.from==h&&(u+=" "+w.startStyle),w.endStyle&&k.to==_&&(y||(y=[])).push(w.endStyle,k.to),w.title&&((p||(p={})).title=w.title),w.attributes)for(var x in w.attributes)(p||(p={}))[x]=w.attributes[x];w.collapsed&&(!d||Qt(d.marker,w)<0)&&(d=k)}else k.from>h&&_>k.from&&(_=k.from)}if(y)for(var C=0;C=f)break;var j=Math.min(f,_);while(1){if(m){var T=h+m.length;if(!d){var L=T>j?m.slice(0,j-h):m;t.addToken(t,L,a?a+l:l,u,h+L.length==_?c:"",s,p)}if(T>=j){m=m.slice(j-h),h=j;break}h=T,u=""}m=i.slice(o,o=n[g++]),a=vn(n[g++],t.cm.options)}}else for(var E=1;E2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function nr(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};if(e.rest){for(var r=0;rn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function rr(e,t){t=nn(t);var n=ot(t),r=e.display.externalMeasured=new jn(e.doc,t,n);r.lineN=n;var i=r.built=yn(e,r);return r.text=i.pre,E(e.display.lineMeasure,i.pre),r}function ir(e,t,n,r){return sr(e,ar(e,t),n,r)}function or(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(o=l-s,i=o-1,t>=l&&(a="right")),null!=i){if(r=e[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)while(c&&e[c-2]==e[c-3]&&e[c-1].insertLeft)r=e[2+(c-=3)],a="left";if("right"==n&&i==l-s)while(c=0;i--)if((n=e[i]).left!=n.right)break;return n}function pr(e,t,n,r){var i,o=ur(t.map,n,r),l=o.node,c=o.start,u=o.end,d=o.collapse;if(3==l.nodeType){for(var p=0;p<4;p++){while(c&&ue(t.line.text.charAt(o.coverStart+c)))--c;while(o.coverStart+u0&&(d=r="right"),i=e.options.lineWrapping&&(f=l.getClientRects()).length>1?f["right"==r?f.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var h=l.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+Nr(e.display),top:h.top,bottom:h.bottom}:cr}for(var g=i.top-t.rect.top,m=i.bottom-t.rect.top,_=(g+m)/2,v=t.view.measure.heights,y=0;y=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!s)return a("before"==c?l-1:l,"before"==c);function u(e,t,n){var r=s[t],i=1==r.level;return a(n?e-1:e,i!=n)}var d=ge(s,l,c),p=he,f=u(l,d,"before"==c);return null!=p&&(f.other=u(l,p,"before"!=c)),f}function Cr(e,t){var n=0;t=mt(e.doc,t),e.options.lineWrapping||(n=Nr(e.display)*t.ch);var r=tt(e.doc,t.line),i=un(r)+Gn(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Sr(e,t,n,r,i){var o=ct(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function jr(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,n<0)return Sr(r.first,0,null,-1,-1);var i=at(r,n),o=r.first+r.size-1;if(i>o)return Sr(r.first+r.size-1,tt(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=tt(r,i);;){var s=Ar(e,a,i,t,n),l=en(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=tt(r,i=c.line)}}function Tr(e,t,n,r){r-=yr(t);var i=t.text.length,o=pe(function(t){return sr(e,n,t-1).bottom<=r},i,0);return i=pe(function(t){return sr(e,n,t).top>r},o,i),{begin:o,end:i}}function Lr(e,t,n,r){n||(n=ar(e,t));var i=br(e,t,sr(e,n,r),"line").top;return Tr(e,t,n,i)}function Er(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Ar(e,t,n,r,i){i-=un(t);var o=ar(e,t),a=yr(t),s=0,l=t.text.length,c=!0,u=_e(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?Dr:Mr)(e,t,n,o,u,r,i);c=1!=d.level,s=c?d.from:d.to-1,l=c?d.to:d.from-1}var p,f,h=null,g=null,m=pe(function(t){var n=sr(e,o,t);return n.top+=a,n.bottom+=a,!!Er(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,g=n),!0)},s,l),_=!1;if(g){var v=r-g.left=b.bottom?1:0}return m=de(t.text,m,1),Sr(n,m,f,_,r-p)}function Mr(e,t,n,r,i,o,a){var s=pe(function(s){var l=i[s],c=1!=l.level;return Er(xr(e,ct(n,c?l.to:l.from,c?"before":"after"),"line",t,r),o,a,!0)},0,i.length-1),l=i[s];if(s>0){var c=1!=l.level,u=xr(e,ct(n,c?l.from:l.to,c?"after":"before"),"line",t,r);Er(u,o,a,!0)&&u.top>a&&(l=i[s-1])}return l}function Dr(e,t,n,r,i,o,a){var s=Tr(e,t,r,a),l=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,p=0;p=c||f.to<=l)){var h=1!=f.level,g=sr(e,r,h?Math.min(c,f.to)-1:Math.max(l,f.from)).right,m=gm)&&(u=f,d=m)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Or(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==lr){lr=A("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)lr.appendChild(document.createTextNode("x")),lr.appendChild(A("br"));lr.appendChild(document.createTextNode("x"))}E(e.measure,lr);var n=lr.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),L(e.measure),n||1}function Nr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=A("span","xxxxxxxxxx"),n=A("pre",[t],"CodeMirror-line-like");E(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function zr(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:Ir(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function Ir(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Fr(e){var t=Or(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Nr(e.display)-3);return function(i){if(ln(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(l=tt(e.doc,c.line).text).length==c.ch){var u=H(l,l.length,e.options.tabSize)-l.length;c=ct(c.line,Math.max(0,Math.round((o-Zn(e.display).left)/Nr(e.display))-u))}return c}function qr(e,t){if(t>=e.display.viewTo)return null;if(t-=e.display.viewFrom,t<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Nt&&an(e.doc,t)i.viewFrom?Hr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)Hr(e);else if(t<=i.viewFrom){var o=Wr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Hr(e)}else if(n>=i.viewTo){var a=Wr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Hr(e)}else{var s=Wr(e,t,t,-1),l=Wr(e,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(Tn(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Hr(e)}var c=i.externalMeasured;c&&(n=i.lineN&&t=r.viewTo)){var o=r.view[qr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==U(a,n)&&a.push(n)}}}function Hr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Wr(e,t,n,r){var i,o=qr(e,t),a=e.display.view;if(!Nt||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,l=0;l0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}while(an(e.doc,n)!=n){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Ur(e,t,n){var r=e.display,i=r.view;0==i.length||t>=r.viewTo||n<=r.viewFrom?(r.view=Tn(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=Tn(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,qr(e,n)))),r.viewTo=n}function Vr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||l.to().line0?a:e.defaultCharWidth())+"px"}if(r.other){var s=n.appendChild(A("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));s.style.display="",s.style.left=r.other.left+"px",s.style.top=r.other.top+"px",s.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function Qr(e,t){return e.top-t.top||e.left-t.left}function Zr(e,t,n){var r=e.display,i=e.doc,o=document.createDocumentFragment(),a=Zn(e.display),s=a.left,l=Math.max(r.sizerWidth,Jn(e)-r.sizer.offsetLeft)-a.right,c="ltr"==i.direction;function u(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),o.appendChild(A("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?l-e:n)+"px;\n height: "+(r-t)+"px"))}function d(t,n,r){var o,a,d=tt(i,t),p=d.text.length;function f(n,r){return wr(e,ct(t,n),"div",d,r)}function h(t,n,r){var i=Lr(e,d,null,t),o="ltr"==n==("after"==r)?"left":"right",a="after"==r?i.begin:i.end-(/\s/.test(d.text.charAt(i.end-1))?2:1);return f(a,o)[o]}var g=_e(d,i.direction);return fe(g,n||0,null==r?p:r,function(e,t,i,d){var m="ltr"==i,_=f(e,m?"left":"right"),v=f(t-1,m?"right":"left"),y=null==n&&0==e,b=null==r&&t==p,k=0==d,w=!g||d==g.length-1;if(v.top-_.top<=3){var x=(c?y:b)&&k,C=(c?b:y)&&w,S=x?s:(m?_:v).left,j=C?l:(m?v:_).right;u(S,_.top,j-S,_.bottom)}else{var T,L,E,A;m?(T=c&&y&&k?s:_.left,L=c?l:h(e,i,"before"),E=c?s:h(t,i,"after"),A=c&&b&&w?l:v.right):(T=c?h(e,i,"before"):s,L=!c&&y&&k?l:_.right,E=!c&&b&&w?s:v.left,A=c?h(t,i,"after"):l),u(T,_.top,L-T,_.bottom),_.bottom0?t.blinker=setInterval(function(){e.hasFocus()||ni(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Jr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||ti(e))}function ei(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&ni(e))},100)}function ti(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(we(e,"focus",e,t),e.state.focused=!0,N(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),l&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Yr(e))}function ni(e,t){e.state.delayingBlurEvent||(e.state.focused&&(we(e,"blur",e,t),e.state.focused=!1,T(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function ri(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,o=0,l=0;l.005||g<-.005)&&(ie.display.sizerWidth){var _=Math.ceil(p/Nr(e.display));_>e.display.maxLineLength&&(e.display.maxLineLength=_,e.display.maxLine=c.line,e.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(t.scroller.scrollTop+=o)}function ii(e){if(e.widgets)for(var t=0;t=a&&(o=at(t,un(tt(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function ai(e,t){if(!xe(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null,o=n.wrapper.ownerDocument;if(t.top+r.top<0?i=!0:t.bottom+r.top>(o.defaultView.innerHeight||o.documentElement.clientHeight)&&(i=!1),null!=i&&!g){var a=A("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Gn(e.display))+"px;\n height: "+(t.bottom-t.top+Yn(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(i),e.display.lineSpace.removeChild(a)}}}function si(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n="before"==t.sticky?ct(t.line,t.ch+1,"before"):t,t=t.ch?ct(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t);for(var o=0;o<5;o++){var a=!1,s=xr(e,t),l=n&&n!=t?xr(e,n):s;i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r};var c=ci(e,i),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(mi(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(vi(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}function li(e,t){var n=ci(e,t);null!=n.scrollTop&&mi(e,n.scrollTop),null!=n.scrollLeft&&vi(e,n.scrollLeft)}function ci(e,t){var n=e.display,r=Or(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=er(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+Qn(n),l=t.tops-r;if(t.topi+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.options.fixedGutter?0:n.gutters.offsetWidth,p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-d,f=Jn(e)-n.gutters.offsetWidth,h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.leftf+p-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function ui(e,t){null!=t&&(hi(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function di(e){hi(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function pi(e,t,n){null==t&&null==n||hi(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function fi(e,t){hi(e),e.curOp.scrollToPos=t}function hi(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=Cr(e,t.from),r=Cr(e,t.to);gi(e,n,r,t.margin)}}function gi(e,t,n,r){var i=ci(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});pi(e,i.scrollLeft,i.scrollTop)}function mi(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||Ki(e,{top:t}),_i(e,t,!0),n&&Ki(e),Ri(e,100))}function _i(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function vi(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,Zi(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function yi(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+Qn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Yn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var bi=function(e,t,n){this.cm=n;var r=this.vert=A("div",[A("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=A("div",[A("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),ye(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),ye(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};bi.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},bi.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},bi.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},bi.prototype.zeroWidthHack=function(){var e=y&&!h?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new W,this.disableVert=new W},bi.prototype.enableZeroWidthBar=function(e,t,n){function r(){var i=e.getBoundingClientRect(),o="vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1);o!=e?e.style.visibility="hidden":t.set(1e3,r)}e.style.visibility="",t.set(1e3,r)},bi.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ki=function(){};function wi(e,t){t||(t=yi(e));var n=e.display.barWidth,r=e.display.barHeight;xi(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&ri(e),xi(e,yi(e)),n=e.display.barWidth,r=e.display.barHeight}function xi(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}ki.prototype.update=function(){return{bottom:0,right:0}},ki.prototype.setScrollLeft=function(){},ki.prototype.setScrollTop=function(){},ki.prototype.clear=function(){};var Ci={native:bi,null:ki};function Si(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Ci[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),ye(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?vi(e,t):mi(e,t)},e),e.display.scrollbars.addClass&&N(e.display.wrapper,e.display.scrollbars.addClass)}var ji=0;function Ti(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++ji,markArrays:null},En(e.curOp)}function Li(e){var t=e.curOp;t&&Mn(t,function(e){for(var t=0;t=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Bi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Mi(e){e.updatedDisplay=e.mustUpdate&&Ui(e.cm,e.update)}function Di(e){var t=e.cm,n=t.display;e.updatedDisplay&&ri(t),e.barMeasure=yi(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=ir(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+Yn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Jn(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Oi(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft=e.display.viewTo)){var n=+new Date+e.options.workTime,r=xt(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Ze(t.mode,r.state):null,l=kt(e,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),p=0;!d&&pn)return Ri(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&zi(e,function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Vr(e))return!1;Yi(e)&&(Hr(e),t.dims=zr(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Nt&&(o=an(e.doc,o),a=sn(e.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;Ur(e,o,a),n.viewOffset=un(tt(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var l=Vr(e);if(!s&&0==l&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Hi(e);return l>4&&(n.lineDiv.style.display="none"),Xi(e,n.updateLineNumbers,t.dims),l>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Wi(c),L(n.cursorDiv),L(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,Ri(e,400)),n.updateLineNumbers=null,!0}function Vi(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Jn(e))r&&(t.visible=oi(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+Qn(e.display)-er(e),n.top)}),t.visible=oi(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!Ui(e,t))break;ri(e);var i=yi(e);Kr(e),wi(e,i),Qi(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Ki(e,t){var n=new Bi(e,t);if(Ui(e,n)){ri(e),Vi(e,n);var r=yi(e);Kr(e),wi(e,r),Qi(e,r),n.finish()}}function Xi(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(t){var n=t.nextSibling;return l&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var c=r.view,u=r.viewFrom,d=0;d-1&&(f=!1),zn(e,p,u,n)),f&&(L(p.lineNumber),p.lineNumber.appendChild(document.createTextNode(lt(e.options,u)))),a=p.node.nextSibling}else{var h=Hn(e,p,u,n);o.insertBefore(h,a)}u+=p.size}while(a)a=s(a)}function Gi(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",On(e,"gutterChanged",e)}function Qi(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Yn(e)+"px"}function Zi(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=Ir(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;ac.clientWidth,h=c.scrollHeight>c.clientHeight;if(i&&f||o&&h){if(o&&y&&l)e:for(var g=t.target,m=s.view;g!=c;g=g.parentNode)for(var _=0;_=0&&ut(e,r.to())<=0)return n}return-1};var co=function(e,t){this.anchor=e,this.head=t};function uo(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort(function(e,t){return ut(e.from(),t.from())}),n=U(t,i);for(var o=1;o0:l>=0){var c=ht(s.from(),a.from()),u=ft(s.to(),a.to()),d=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,t.splice(--o,2,new co(d?u:c,d?c:u))}}return new lo(t,n)}function po(e,t){return new lo([new co(e,t||e)],0)}function fo(e){return e.text?ct(e.from.line+e.text.length-1,ee(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function ho(e,t){if(ut(e,t.from)<0)return e;if(ut(e,t.to)<=0)return fo(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=fo(t).ch-t.to.ch),ct(n,r)}function go(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,h-1),e.insert(s.line+1,_)}On(e,"change",e,t)}function wo(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a1&&!e.done[e.done.length-2].ranges?(e.done.pop(),ee(e.done)):void 0}function Ao(e,t,n,r){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&i.lastModTime>s-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=Eo(i,i.lastOp==r)))a=ee(o.changes),0==ut(t.from,t.to)&&0==ut(t.from,a.to)?a.to=fo(t):o.changes.push(To(e,t));else{var l=ee(i.done);l&&l.ranges||Oo(e.sel,i.done),o={changes:[To(e,t)],generation:i.generation},i.done.push(o);while(i.done.length>i.undoDepth)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||we(e,"historyAdded")}function Mo(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Do(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||Mo(e,o,ee(i.done),t))?i.done[i.done.length-1]=t:Oo(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Lo(i.undone)}function Oo(e,t){var n=ee(t);n&&n.ranges&&n.equals(e)||t.push(e)}function No(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function zo(e){if(!e)return null;for(var t,n=0;n-1&&(ee(s)[d]=c[d],delete c[d])}}}return r}function Ro(e,t,n,r){if(r){var i=e.anchor;if(n){var o=ut(t,i)<0;o!=ut(n,i)<0?(i=t,t=n):o!=ut(t,n)<0&&(t=n)}return new co(i,t)}return new co(n||t,t)}function qo(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Vo(e,new lo([Ro(e.sel.primary(),t,n,i)],0),r)}function Bo(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(we(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var d=l.find(r<0?1:-1),p=void 0;if((r<0?u:c)&&(d=Jo(e,d,-r,d&&d.line==t.line?o:null)),d&&d.line==t.line&&(p=ut(d,n))&&(r<0?p<0:p>0))return Zo(e,d,t,r,i)}var f=l.find(r<0?-1:1);return(r<0?c:u)&&(f=Jo(e,f,r,f.line==t.line?o:null)),f?Zo(e,f,t,r,i):null}}return t}function Yo(e,t,n,r,i){var o=r||1,a=Zo(e,t,n,o,i)||!i&&Zo(e,t,n,o,!0)||Zo(e,t,n,-o,i)||!i&&Zo(e,t,n,-o,!0);return a||(e.cantEdit=!0,ct(e.first,0))}function Jo(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?mt(e,ct(t.line-1)):null:n>0&&t.ch==(r||tt(e,t.line)).text.length?t.line=0;--i)ra(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else ra(e,t)}}function ra(e,t){if(1!=t.text.length||""!=t.text[0]||0!=ut(t.from,t.to)){var n=go(e,t);Ao(e,t,n,e.cm?e.cm.curOp.id:NaN),aa(e,t,n,Ht(e,t));var r=[];wo(e,function(e,n){n||-1!=U(r,e.history)||(da(e.history,t),r.push(e.history)),aa(e,t,null,Ht(e,t))})}}function ia(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,s="undo"==t?o.done:o.undone,l="undo"==t?o.undone:o.done,c=0;c=0;--f){var h=p(f);if(h)return h.v}}}}function oa(e,t){if(0!=t&&(e.first+=t,e.sel=new lo(te(e.sel.ranges,function(e){return new co(ct(e.anchor.line+t,e.anchor.ch),ct(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Br(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:ct(o,tt(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=nt(e,t.from,t.to),n||(n=go(e,t)),e.cm?sa(e.cm,t,r):ko(e,t,r),Ko(e,n,X),e.cantEdit&&Yo(e,ct(e.firstLine(),0))&&(e.cantEdit=!1)}}function sa(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=ot(nn(tt(r,o.line))),r.iter(l,a.line+1,function(e){if(e==i.maxLine)return s=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ce(e),ko(r,t,n,Fr(e)),e.options.lineWrapping||(r.iter(l,o.line+t.text.length,function(e){var t=dn(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),Dt(r,o.line),Ri(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Br(e):o.line!=a.line||1!=t.text.length||bo(e.doc,t)?Br(e,o.line,a.line+1,c):$r(e,o.line,"text");var u=Se(e,"changes"),d=Se(e,"change");if(d||u){var p={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&On(e,"change",e,p),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(p)}e.display.selForContextMenu=null}function la(e,t,n,r,i){var o;r||(r=n),ut(r,n)<0&&(o=[r,n],n=o[0],r=o[1]),"string"==typeof t&&(t=e.splitLines(t)),na(e,{from:n,to:r,text:t,origin:i})}function ca(e,t,n,r){n1||!(this.children[0]instanceof fa))){var s=[];this.collapse(s),this.children=[new fa(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,s=a;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=M("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(tn(e,t.line,t,n,o)||t.line!=n.line&&tn(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");It()}o.addToHistory&&Ao(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var s,l=t.line,c=e.cm;if(e.iter(l,n.line+1,function(r){c&&o.collapsed&&!c.options.lineWrapping&&nn(r)==c.display.maxLine&&(s=!0),o.collapsed&&l!=t.line&&it(r,0),qt(r,new Ft(o,l==t.line?t.ch:null,l==n.line?n.ch:null),e.cm&&e.cm.curOp),++l}),o.collapsed&&e.iter(t.line,n.line+1,function(t){ln(e,t)&&it(t,0)}),o.clearOnEnter&&ye(o,"beforeCursorEnter",function(){return o.clear()}),o.readOnly&&(zt(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++va,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Br(c,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=t.line;u<=n.line;u++)$r(c,u,"text");o.atomic&&Go(c.doc),On(c,"markerAdded",c,o)}return o}ya.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Ti(e),Se(this,"clear")){var n=this.find();n&&On(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&Br(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Go(e.doc)),e&&On(e,"markerCleared",e,this,r,i),t&&Li(e),this.parent&&this.parent.clear()}},ya.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;l--)na(this,r[l]);s?Uo(this,s):this.cm&&di(this.cm)}),undo:Pi(function(){ia(this,"undo")}),redo:Pi(function(){ia(this,"redo")}),undoSelection:Pi(function(){ia(this,"undo",!0)}),redoSelection:Pi(function(){ia(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=mt(this,e),t=mt(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var s=0;s=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n}),mt(this,ct(n,t))},indexFromPos:function(e){e=mt(this,e);var t=e.ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var d=e.dataTransfer.getData("Text");if(d){var p;if(t.state.draggingText&&!t.state.draggingText.copy&&(p=t.listSelections()),Ko(t.doc,po(n,n)),p)for(var f=0;f=0;t--)la(e.doc,"",r[t].from,r[t].to,"+delete");di(e)})}function Za(e,t,n){var r=de(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Ya(e,t,n){var r=Za(e,t.ch,n);return null==r?null:new ct(t.line,r,n<0?"after":"before")}function Ja(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=_e(n,t.doc.direction);if(o){var a,s=i<0?ee(o):o[0],l=i<0==(1==s.level),c=l?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=ar(t,n);a=i<0?n.text.length-1:0;var d=sr(t,u,a).top;a=pe(function(e){return sr(t,u,e).top==d},i<0==(1==s.level)?s.from:s.to-1,a),"before"==c&&(a=Za(n,a,1))}else a=i<0?s.to:s.from;return new ct(r,a,c)}}return new ct(r,i<0?n.text.length:0,i<0?"before":"after")}function es(e,t,n,r){var i=_e(t,e.doc.direction);if(!i)return Ya(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ge(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&p>=u.begin)){var f=d?"before":"after";return new ct(n.line,p,f)}}var h=function(e,t,r){for(var o=function(e,t){return t?new ct(n.line,l(e,1),"before"):new ct(n.line,e,"after")};e>=0&&e0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c0?u.end:l(u.begin,-1);return null==m||r>0&&m==t.text.length||(g=h(r>0?0:i.length-1,r,c(m)),!g)?null:g}$a.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},$a.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},$a.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},$a.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},$a["default"]=y?$a.macDefault:$a.pcDefault;var ts={selectAll:ea,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),X)},killLine:function(e){return Qa(e,function(t){if(t.empty()){var n=tt(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new ct(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),ct(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=tt(e.doc,i.line-1).text;a&&(i=new ct(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),ct(i.line-1,a.length-1),i,"+transpose"))}n.push(new co(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return zi(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(ut((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(ut(i.to(),t)>0||t.xRel<0)?js(e,r,t,o):Ls(e,r,t,o)}function js(e,t,n,r){var i=e.display,o=!1,c=Ii(e,function(t){l&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:ei(e)),ke(i.wrapper.ownerDocument,"mouseup",c),ke(i.wrapper.ownerDocument,"mousemove",u),ke(i.scroller,"dragstart",d),ke(i.scroller,"drop",c),o||(Te(t),r.addNew||qo(e.doc,n,null,null,r.extend),l&&!f||a&&9==s?setTimeout(function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()},20):i.input.focus())}),u=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},d=function(){return o=!0};l&&(i.scroller.draggable=!0),e.state.draggingText=c,c.copy=!r.moveOnDrag,ye(i.wrapper.ownerDocument,"mouseup",c),ye(i.wrapper.ownerDocument,"mousemove",u),ye(i.scroller,"dragstart",d),ye(i.scroller,"drop",c),e.state.delayingBlurEvent=!0,setTimeout(function(){return i.input.focus()},20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Ts(e,t,n){if("char"==n)return new co(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new co(ct(t.line,0),mt(e.doc,ct(t.line+1,0)));var r=n(e,t);return new co(r.from,r.to)}function Ls(e,t,n,r){a&&ei(e);var i=e.display,o=e.doc;Te(t);var s,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),s=l>-1?u[l]:new co(n,n)):(s=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(s=new co(n,n)),n=Rr(e,t,!0,!0),l=-1;else{var d=Ts(e,n,r.unit);s=r.extend?Ro(s,d.anchor,d.head,r.extend):d}r.addNew?-1==l?(l=u.length,Vo(o,uo(e,u.concat([s]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Vo(o,uo(e,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):$o(o,l,s,G):(l=0,Vo(o,new lo([s],0),G),c=o.sel);var p=n;function f(t){if(0!=ut(p,t))if(p=t,"rectangle"==r.unit){for(var i=[],a=e.options.tabSize,u=H(tt(o,n.line).text,n.ch,a),d=H(tt(o,t.line).text,t.ch,a),f=Math.min(u,d),h=Math.max(u,d),g=Math.min(n.line,t.line),m=Math.min(e.lastLine(),Math.max(n.line,t.line));g<=m;g++){var _=tt(o,g).text,v=Z(_,f,a);f==h?i.push(new co(ct(g,v),ct(g,v))):_.length>v&&i.push(new co(ct(g,v),ct(g,Z(_,h,a))))}i.length||i.push(new co(n,n)),Vo(o,uo(e,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var y,b=s,k=Ts(e,t,r.unit),w=b.anchor;ut(k.anchor,w)>0?(y=k.head,w=ht(b.from(),k.anchor)):(y=k.anchor,w=ft(b.to(),k.head));var x=c.ranges.slice(0);x[l]=Es(e,new co(mt(o,w),y)),Vo(o,uo(e,x,l),G)}}var h=i.wrapper.getBoundingClientRect(),g=0;function m(t){var n=++g,a=Rr(e,t,!0,"rectangle"==r.unit);if(a)if(0!=ut(a,p)){e.curOp.focus=O(P(e)),f(a);var s=oi(i,o);(a.line>=s.to||a.lineh.bottom?20:0;l&&setTimeout(Ii(e,function(){g==n&&(i.scroller.scrollTop+=l,m(t))}),50)}}function _(t){e.state.selectingText=!1,g=1/0,t&&(Te(t),i.input.focus()),ke(i.wrapper.ownerDocument,"mousemove",v),ke(i.wrapper.ownerDocument,"mouseup",y),o.history.lastSelOrigin=null}var v=Ii(e,function(e){0!==e.buttons&&De(e)?m(e):_(e)}),y=Ii(e,_);e.state.selectingText=y,ye(i.wrapper.ownerDocument,"mousemove",v),ye(i.wrapper.ownerDocument,"mouseup",y)}function Es(e,t){var n=t.anchor,r=t.head,i=tt(e.doc,n.line);if(0==ut(n,r)&&n.sticky==r.sticky)return t;var o=_e(i);if(!o)return t;var a=ge(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return t;var l,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=ge(o,r.ch,r.sticky),d=u-a||(r.ch-n.ch)*(1==s.level?-1:1);l=u==c-1||u==c?d<0:d>0}var p=o[c+(l?-1:0)],f=l==(1==p.level),h=f?p.from:p.to,g=f?"after":"before";return n.ch==h&&n.sticky==g?t:new co(new ct(n.line,h,g),r)}function As(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(p){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Te(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!Se(e,n))return Ee(t);o-=s.top-a.viewOffset;for(var l=0;l=i){var u=at(e.doc,o),d=e.display.gutterSpecs[l];return we(e,n,e,u,d.className,t),Ee(t)}}}function Ms(e,t){return As(e,t,"gutterClick",!0)}function Ds(e,t){Xn(e.display,t)||Os(e,t)||xe(e,t,"contextmenu")||C||e.display.input.onContextMenu(t)}function Os(e,t){return!!Se(e,"gutterContextMenu")&&As(e,t,"gutterContextMenu",!1)}function Ns(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),mr(e)}bs.prototype.compare=function(e,t,n){return this.time+ys>e&&0==ut(t,this.pos)&&n==this.button};var zs={toString:function(){return"CodeMirror.Init"}},Is={},Fs={};function Ps(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=zs&&i(e,t,n)}:i)}e.defineOption=n,e.Init=zs,n("value","",function(e,t){return e.setValue(t)},!0),n("mode",null,function(e,t){e.doc.modeOption=t,vo(e)},!0),n("indentUnit",2,vo,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,function(e){yo(e),mr(e),Br(e)},!0),n("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(ct(r,o))}r++});for(var i=n.length-1;i>=0;i--)la(e.doc,t,n[i],ct(n[i].line,n[i].ch+t.length))}}),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=zs&&e.refresh()}),n("specialCharPlaceholder",bn,function(e){return e.refresh()},!0),n("electricChars",!0),n("inputStyle",v?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),n("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),n("autocorrect",!1,function(e,t){return e.getInputField().autocorrect=t},!0),n("autocapitalize",!1,function(e,t){return e.getInputField().autocapitalize=t},!0),n("rtlMoveVisually",!k),n("wholeLineUpdateBefore",!0),n("theme","default",function(e){Ns(e),to(e)},!0),n("keyMap","default",function(e,t,n){var r=Ga(t),i=n!=zs&&Ga(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)}),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,qs,!0),n("gutters",[],function(e,t){e.display.gutterSpecs=Ji(t,e.options.lineNumbers),to(e)},!0),n("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?Ir(e.display)+"px":"0",e.refresh()},!0),n("coverGutterNextToScrollbar",!1,function(e){return wi(e)},!0),n("scrollbarStyle","native",function(e){Si(e),wi(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),n("lineNumbers",!1,function(e,t){e.display.gutterSpecs=Ji(e.options.gutters,t),to(e)},!0),n("firstLineNumber",1,to,!0),n("lineNumberFormatter",function(e){return e},to,!0),n("showCursorWhenSelecting",!1,Kr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,function(e,t){"nocursor"==t&&(ni(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),n("screenReaderLabel",null,function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)}),n("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),n("dragDrop",!0,Rs),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,Kr,!0),n("singleCursorHeightPerLine",!0,Kr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,yo,!0),n("addModeClass",!1,yo,!0),n("pollInterval",100),n("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),n("historyEventDelay",1250),n("viewportMargin",10,function(e){return e.refresh()},!0),n("maxHighlightLength",1e4,yo,!0),n("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),n("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),n("autofocus",null),n("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0),n("phrases",null)}function Rs(e,t,n){var r=n&&n!=zs;if(!t!=!r){var i=e.display.dragFunctions,o=t?ye:ke;o(e.display.scroller,"dragstart",i.start),o(e.display.scroller,"dragenter",i.enter),o(e.display.scroller,"dragover",i.over),o(e.display.scroller,"dragleave",i.leave),o(e.display.scroller,"drop",i.drop)}}function qs(e){e.options.lineWrapping?(N(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),pn(e)),Pr(e),Br(e),mr(e),setTimeout(function(){return wi(e)},100)}function Bs(e,t){var n=this;if(!(this instanceof Bs))return new Bs(e,t);this.options=t=t?$(t):{},$(Is,t,!1);var r=t.value;"string"==typeof r?r=new Ta(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Bs.inputStyles[t.inputStyle](this),o=this.display=new no(e,r,i,t);for(var c in o.wrapper.CodeMirror=this,Ns(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Si(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new W,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&s<11&&setTimeout(function(){return n.display.input.reset(!0)},20),$s(this),za(),Ti(this),this.curOp.forceUpdate=!0,xo(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout(function(){n.hasFocus()&&!n.state.focused&&ti(n)},20):ni(this),Fs)Fs.hasOwnProperty(c)&&Fs[c](this,t[c],zs);Yi(this),t.finishInit&&t.finishInit(this);for(var u=0;u400}ye(t.scroller,"touchstart",function(i){if(!xe(e,i)&&!o(i)&&!Ms(e,i)){t.input.ensurePolled(),clearTimeout(n);var a=+new Date;t.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}}),ye(t.scroller,"touchmove",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),ye(t.scroller,"touchend",function(n){var r=t.activeTouch;if(r&&!Xn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=e.coordsChar(t.activeTouch,"page");o=!r.prev||l(r,r.prev)?new co(a,a):!r.prev.prev||l(r,r.prev.prev)?e.findWordAt(a):new co(ct(a.line,0),mt(e.doc,ct(a.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),Te(n)}i()}),ye(t.scroller,"touchcancel",i),ye(t.scroller,"scroll",function(){t.scroller.clientHeight&&(mi(e,t.scroller.scrollTop),vi(e,t.scroller.scrollLeft,!0),we(e,"scroll",e))}),ye(t.scroller,"mousewheel",function(t){return so(e,t)}),ye(t.scroller,"DOMMouseScroll",function(t){return so(e,t)}),ye(t.wrapper,"scroll",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(t){xe(e,t)||Ae(t)},over:function(t){xe(e,t)||(Ma(e,t),Ae(t))},start:function(t){return Aa(e,t)},drop:Ii(e,Ea),leave:function(t){xe(e,t)||Da(e)}};var c=t.input.getField();ye(c,"keyup",function(t){return gs.call(e,t)}),ye(c,"keydown",Ii(e,fs)),ye(c,"keypress",Ii(e,ms)),ye(c,"focus",function(t){return ti(e,t)}),ye(c,"blur",function(t){return ni(e,t)})}Bs.defaults=Is,Bs.optionHandlers=Fs;var Hs=[];function Ws(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=xt(e,t).state:n="prev");var a=e.options.tabSize,s=tt(o,t),l=H(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&(c=o.mode.indent(i,s.text.slice(u.length),s.text),c==K||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?H(tt(o,t-1).text,null,a):0:"add"==n?c=l+e.options.indentUnit:"subtract"==n?c=l-e.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",p=0;if(e.options.indentWithTabs)for(var f=Math.floor(c/a);f;--f)p+=a,d+="\t";if(pa,l=Pe(t),c=null;if(s&&r.ranges.length>1)if(Us&&Us.text.join("\n")==t){if(r.ranges.length%Us.text.length==0){c=[];for(var u=0;u=0;p--){var f=r.ranges[p],h=f.from(),g=f.to();f.empty()&&(n&&n>0?h=ct(h.line,h.ch-n):e.state.overwrite&&!s?g=ct(g.line,Math.min(tt(o,g.line).text.length,g.ch+ee(l).length)):s&&Us&&Us.lineWise&&Us.text.join("\n")==l.join("\n")&&(h=g=ct(h.line,0)));var m={from:h,to:g,text:c?c[p%c.length]:l,origin:i||(s?"paste":e.state.cutIncoming>a?"cut":"+input")};na(e.doc,m),On(e,"inputRead",e,m)}t&&!s&&Gs(e,t),di(e),e.curOp.updateInput<2&&(e.curOp.updateInput=d),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Xs(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||!t.hasFocus()||zi(t,function(){return Ks(t,n,0,null,"paste")}),!0}function Gs(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Ws(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(tt(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ws(e,i.head.line,"smart"));a&&On(e,"electricInput",e,i.head.line)}}}function Qs(e){for(var t=[],n=[],r=0;rn&&(Ws(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&di(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l0&&$o(this.doc,r,new co(o,c[r].to()),X)}}}),getTokenAt:function(e,t){return Lt(this,e,t)},getLineTokens:function(e,t){return Lt(this,ct(e),t,!0)},getTokenTypeAt:function(e){e=mt(this.doc,e);var t,n=wt(this,tt(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=tt(this.doc,e)}else r=e;return br(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-un(r):0)},defaultTextHeight:function(){return Or(this.display)},defaultCharWidth:function(){return Nr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=xr(this,mt(this.doc,e));var a=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&li(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:Fi(fs),triggerOnKeyPress:Fi(ms),triggerOnKeyUp:gs,triggerOnMouseDown:Fi(ws),execCommand:function(e){if(ts.hasOwnProperty(e))return ts[e].call(null,this)},triggerElectric:Fi(function(e){Gs(this,e)}),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=mt(this.doc,e),a=0;a0&&s(n.charAt(r-1)))--r;while(i.5||this.options.lineWrapping)&&Pr(this),we(this,"refresh",this)}),swapDoc:Fi(function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),xo(this,e),mr(this),this.display.input.reset(),pi(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,On(this,"swapDoc",this,t),t}),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},je(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}function el(e,t,n,r,i){var o=t,a=n,s=tt(e,t.line),l=i&&"rtl"==e.direction?-n:n;function c(){var n=t.line+l;return!(n=e.first+e.size)&&(t=new ct(n,t.ch,t.sticky),s=tt(e,n))}function u(o){var a;if("codepoint"==r){var u=s.text.charCodeAt(t.ch+(n>0?0:-1));if(isNaN(u))a=null;else{var d=n>0?u>=55296&&u<56320:u>=56320&&u<57343;a=new ct(t.line,Math.max(0,Math.min(s.text.length,t.ch+n*(d?2:1))),-n)}}else a=i?es(e.cm,s,t,n):Ya(s,t,n);if(null==a){if(o||!c())return!1;t=Ja(i,e.cm,s,t.line,l)}else t=a;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var d=null,p="group"==r,f=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;;h=!1){if(n<0&&!u(!h))break;var g=s.text.charAt(t.ch)||"\n",m=se(g,f)?"w":p&&"\n"==g?"n":!p||/\s/.test(g)?null:"p";if(!p||h||m||(m="s"),d&&d!=m){n<0&&(n=1,u(),t.sticky="after");break}if(m&&(d=m),n>0&&!u(!h))break}var _=Yo(e,t,o,a,!0);return dt(o,_)&&(_.hitSide=!0),_}function tl(e,t,n,r){var i,o,a=e.doc,s=t.left;if("page"==r){var l=Math.min(e.display.wrapper.clientHeight,q(e).innerHeight||a(e).documentElement.clientHeight),c=Math.max(l-.5*Or(e.display),3);i=(n>0?t.bottom:t.top)+n*c}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;;){if(o=jr(e,s,i),!o.outside)break;if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var nl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new W,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function rl(e,t){var n=or(e,t.line);if(!n||n.hidden)return null;var r=tt(e.doc,t.line),i=nr(n,r,t.line),o=_e(r,e.doc.direction),a="left";if(o){var s=ge(o,t.ch);a=s%2?"right":"left"}var l=ur(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function il(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function ol(e,t){return t&&(e.bad=!0),e}function al(e,t,n,r,i){var o="",a=!1,s=e.doc.lineSeparator(),l=!1;function c(e){return function(t){return t.id==e}}function u(){a&&(o+=s,l&&(o+=s),a=l=!1)}function d(e){e&&(u(),o+=e)}function p(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void d(n);var o,f=t.getAttribute("cm-marker");if(f){var h=e.findMarks(ct(r,0),ct(i+1,0),c(+f));return void(h.length&&(o=h[0].find(0))&&d(nt(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;g&&u();for(var m=0;m=t.display.viewTo||o.line=t.display.viewFrom&&rl(t,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(a=ct(a.line-1,tt(r.doc,a.line-1).length)),s.ch==tt(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=qr(r,a.line))?(t=ot(i.view[0].line),n=i.view[0].node):(t=ot(i.view[e].line),n=i.view[e-1].node.nextSibling);var l,c,u=qr(r,s.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=ot(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;var d=r.doc.splitLines(al(r,n,c,t,l)),p=nt(r.doc,ct(t,0),ct(l,tt(r.doc,l).text.length));while(d.length>1&&p.length>1)if(ee(d)==ee(p))d.pop(),p.pop(),l--;else{if(d[0]!=p[0])break;d.shift(),p.shift(),t++}var f=0,h=0,g=d[0],m=p[0],_=Math.min(g.length,m.length);while(f<_&&g.charCodeAt(f)==m.charCodeAt(f))++f;var v=ee(d),y=ee(p),b=Math.min(v.length-(1==d.length?f:0),y.length-(1==p.length?f:0));while(ha.ch&&v.charCodeAt(v.length-h-1)==y.charCodeAt(y.length-h-1))f--,h++;d[d.length-1]=v.slice(0,v.length-h).replace(/^\u200b+/,""),d[0]=d[0].slice(f).replace(/\u200b+$/,"");var k=ct(t,f),w=ct(l,p.length?ee(p).length-h:0);return d.length>1||d[0]||ut(k,w)?(la(r.doc,d,k,w,"+input"),!0):void 0},nl.prototype.ensurePolled=function(){this.forceCompositionEnd()},nl.prototype.reset=function(){this.forceCompositionEnd()},nl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},nl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},nl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||zi(this.cm,function(){return Br(e.cm)})},nl.prototype.setUneditable=function(e){e.contentEditable="false"},nl.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Ii(this.cm,Ks)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},nl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},nl.prototype.onContextMenu=function(){},nl.prototype.resetPosition=function(){},nl.prototype.needsContentAttribute=!0;var cl=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new W,this.hasSelection=!1,this.composing=null,this.resetting=!1};function ul(e,t){if(t=t?$(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=O(R(e));t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(ye(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(l){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display="",e.form&&(ke(e.form,"submit",r),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Bs(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s}function dl(e){e.off=ke,e.on=ye,e.wheelEventPixels=ao,e.Doc=Ta,e.splitLines=Pe,e.countColumn=H,e.findColumn=Z,e.isWordChar=ae,e.Pass=K,e.signal=we,e.Line=fn,e.changeEnd=fo,e.scrollbarModel=Ci,e.Pos=ct,e.cmpPos=ut,e.modes=He,e.mimeModes=We,e.resolveMode=Ke,e.getMode=Xe,e.modeExtensions=Ge,e.extendMode=Qe,e.copyState=Ze,e.startState=Je,e.innerMode=Ye,e.commands=ts,e.keyMap=$a,e.keyName=Xa,e.isModifierKey=Va,e.lookupKey=Ua,e.normalizeKeyMap=Wa,e.StringStream=et,e.SharedTextMarker=ka,e.TextMarker=ya,e.LineWidget=ga,e.e_preventDefault=Te,e.e_stopPropagation=Le,e.e_stop=Ae,e.addClass=N,e.contains=D,e.rmClass=T,e.keyNames=Pa}cl.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!xe(r,e)){if(r.somethingSelected())Vs({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Qs(r);Vs({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,X):(n.prevInput="",i.value=t.text.join("\n"),I(i))}"cut"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),ye(i,"input",function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()}),ye(i,"paste",function(e){xe(r,e)||Xs(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())}),ye(i,"cut",o),ye(i,"copy",o),ye(e.scroller,"paste",function(t){if(!Xn(e,t)&&!xe(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}}),ye(e.lineSpace,"selectstart",function(t){Xn(e,t)||Te(t)}),ye(i,"compositionstart",function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}}),ye(i,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},cl.prototype.createField=function(e){this.wrapper=Ys(),this.textarea=this.wrapper.firstChild;var t=this.cm.options;Zs(this.textarea,t.spellcheck,t.autocorrect,t.autocapitalize)},cl.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},cl.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Xr(e);if(e.options.moveInputWithCursor){var i=xr(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},cl.prototype.showSelection=function(e){var t=this.cm,n=t.display;E(n.cursorDiv,e.cursors),E(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},cl.prototype.reset=function(e){if(!(this.contextMenuPending||this.composing&&e)){var t=this.cm;if(this.resetting=!0,t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&I(this.textarea),a&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null));this.resetting=!1}},cl.prototype.getField=function(){return this.textarea},cl.prototype.supportsTouch=function(){return!1},cl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!v||O(R(this.textarea))!=this.textarea))try{this.textarea.focus()}catch(e){}},cl.prototype.blur=function(){this.textarea.blur()},cl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},cl.prototype.receivedFocus=function(){this.slowPoll()},cl.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},cl.prototype.fastPoll=function(){var e=!1,t=this;function n(){var r=t.poll();r||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}t.pollingFast=!0,t.polling.set(20,n)},cl.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||this.resetting||!t.state.focused||Re(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}var l=0,c=Math.min(r.length,i.length);while(l1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},cl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},cl.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},cl.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=Rr(n,e),c=r.scroller.scrollTop;if(o&&!p){var u=n.options.resetSelectionOnContextMenu;u&&-1==n.doc.sel.contains(o)&&Ii(n,Vo)(n.doc,po(o),X);var d,f=i.style.cssText,h=t.wrapper.style.cssText,g=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-g.top-5)+"px; left: "+(e.clientX-g.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(d=i.ownerDocument.defaultView.scrollY),r.input.focus(),l&&i.ownerDocument.defaultView.scrollTo(null,d),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=v,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&_(),C){Ae(e);var m=function(){ke(window,"mouseup",m),setTimeout(v,20)};ye(window,"mouseup",m)}else setTimeout(v,50)}function _(){if(null!=i.selectionStart){var e=n.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function v(){if(t.contextMenuPending==v&&(t.contextMenuPending=!1,t.wrapper.style.cssText=h,i.style.cssText=f,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&_();var e=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?Ii(n,ea)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},cl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},cl.prototype.setUneditable=function(){},cl.prototype.needsContentAttribute=!1,Ps(Bs),Js(Bs);var pl="iter insert remove copy getEditor constructor".split(" ");for(var fl in Ta.prototype)Ta.prototype.hasOwnProperty(fl)&&U(pl,fl)<0&&(Bs.prototype[fl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ta.prototype[fl]));return je(Ta),Bs.inputStyles={textarea:cl,contenteditable:nl},Bs.defineMode=function(e){Bs.defaults.mode||"null"==e||(Bs.defaults.mode=e),Ue.apply(this,arguments)},Bs.defineMIME=Ve,Bs.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Bs.defineMIME("text/plain","null"),Bs.defineExtension=function(e,t){Bs.prototype[e]=t},Bs.defineDocExtension=function(e,t){Ta.prototype[e]=t},Bs.fromTextArea=ul,dl(Bs),Bs.version="5.65.20",Bs})},16193:function(e,t,n){"use strict";var r=n(84215);e.exports="NODE"===r},16533:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_css.892d68fc.svg"},16573:function(e,t,n){"use strict";var r=n(43724),i=n(62106),o=n(3238),a=ArrayBuffer.prototype;r&&!("detached"in a)&&i(a,"detached",{configurable:!0,get:function(){return o(this)}})},16632:function(e,t,n){"use strict";var r=n(46518),i=n(44576),o=n(59143),a=n(34154),s=i.Uint8Array,l=!s||!s.prototype.setFromBase64||!function(){var e=new s([255,255,255,255,255]);try{return void e.setFromBase64("",null)}catch(t){}try{return void e.setFromBase64("a")}catch(t){}try{e.setFromBase64("MjYyZg===")}catch(t){return 50===e[0]&&54===e[1]&&50===e[2]&&255===e[3]&&255===e[4]}}();s&&r({target:"Uint8Array",proto:!0,forced:l},{setFromBase64:function(e){a(this);var t=o(e,arguments.length>1?arguments[1]:void 0,this,this.length);return{read:t.read,written:t.written}}})},16792:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";e.defineMode("javascript",function(t,n){var r,i,o=t.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,c=!1!==n.trackScope,u=n.typescript,d=n.wordCharacters||/[\w$\xa1-\uffff]/,p=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e("new"),delete:r,void:r,throw:r,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r}}(),f=/[+\-*&%=<>!?|~^@]/,h=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(e){var t,n=!1,r=!1;while(null!=(t=e.next())){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}function m(e,t,n){return r=e,i=n,t}function _(e,t){var n=e.next();if('"'==n||"'"==n)return t.tokenize=v(n),t.tokenize(e,t);if("."==n&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return m("number","number");if("."==n&&e.match(".."))return m("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return m(n);if("="==n&&e.eat(">"))return m("=>","operator");if("0"==n&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return m("number","number");if(/\d/.test(n))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),m("number","number");if("/"==n)return e.eat("*")?(t.tokenize=y,y(e,t)):e.eat("/")?(e.skipToEnd(),m("comment","comment")):it(e,t,1)?(g(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),m("regexp","string-2")):(e.eat("="),m("operator","operator",e.current()));if("`"==n)return t.tokenize=b,b(e,t);if("#"==n&&"!"==e.peek())return e.skipToEnd(),m("meta","meta");if("#"==n&&e.eatWhile(d))return m("variable","property");if("<"==n&&e.match("!--")||"-"==n&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),m("comment","comment");if(f.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=n&&"="!=n||e.eat("="):/[<>*+\-|&?]/.test(n)&&(e.eat(n),">"==n&&e.eat(n))),"?"==n&&e.eat(".")?m("."):m("operator","operator",e.current());if(d.test(n)){e.eatWhile(d);var r=e.current();if("."!=t.lastType){if(p.propertyIsEnumerable(r)){var i=p[r];return m(i.type,i.style,r)}if("async"==r&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return m("async","keyword",r)}return m("variable","variable",r)}}function v(e){return function(t,n){var r,i=!1;if(s&&"@"==t.peek()&&t.match(h))return n.tokenize=_,m("jsonld-keyword","meta");while(null!=(r=t.next())){if(r==e&&!i)break;i=!i&&"\\"==r}return i||(n.tokenize=_),m("string","string")}}function y(e,t){var n,r=!1;while(n=e.next()){if("/"==n&&r){t.tokenize=_;break}r="*"==n}return m("comment","comment")}function b(e,t){var n,r=!1;while(null!=(n=e.next())){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=_;break}r=!r&&"\\"==n}return m("quasi","string-2",e.current())}var k="([{}])";function w(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l=k.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(d.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;var c=e.string.charAt(a-1);if(c==s&&"\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var x={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function C(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function S(e,t){if(!c)return!1;for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}function j(e,t,n,r,i){var o=e.cc;T.state=e,T.stream=i,T.marked=null,T.cc=o,T.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);while(1){var a=o.length?o.pop():l?U:H;if(a(n,r)){while(o.length&&o[o.length-1].lex)o.pop()();return T.marked?T.marked:"variable"==n&&S(e,r)?"variable-2":t}}}var T={state:null,column:null,marked:null,cc:null};function L(){for(var e=arguments.length-1;e>=0;e--)T.cc.push(arguments[e])}function E(){return L.apply(null,arguments),!0}function A(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function M(e){var t=T.state;if(T.marked="def",c){if(t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=D(e,t.context);if(null!=r)return void(t.context=r)}else if(!A(e,t.localVars))return void(t.localVars=new z(e,t.localVars));n.globalVars&&!A(e,t.globalVars)&&(t.globalVars=new z(e,t.globalVars))}}function D(e,t){if(t){if(t.block){var n=D(e,t.prev);return n?n==t.prev?t:new N(n,t.vars,!0):null}return A(e,t.vars)?t:new N(t.prev,new z(e,t.vars),!1)}return null}function O(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function N(e,t,n){this.prev=e,this.vars=t,this.block=n}function z(e,t){this.name=e,this.next=t}var I=new z("this",new z("arguments",null));function F(){T.state.context=new N(T.state.context,T.state.localVars,!1),T.state.localVars=I}function P(){T.state.context=new N(T.state.context,T.state.localVars,!0),T.state.localVars=null}function R(){T.state.localVars=T.state.context.vars,T.state.context=T.state.context.prev}function q(e,t){var n=function(){var n=T.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new C(r,T.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function B(){var e=T.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function $(e){function t(n){return n==e?E():";"==e||"}"==n||")"==n||"]"==n?L():E(t)}return t}function H(e,t){return"var"==e?E(q("vardef",t),Le,$(";"),B):"keyword a"==e?E(q("form"),K,H,B):"keyword b"==e?E(q("form"),H,B):"keyword d"==e?T.stream.match(/^\s*$/,!1)?E():E(q("stat"),G,$(";"),B):"debugger"==e?E($(";")):"{"==e?E(q("}"),P,pe,B,R):";"==e?E():"if"==e?("else"==T.state.lexical.info&&T.state.cc[T.state.cc.length-1]==B&&T.state.cc.pop()(),E(q("form"),K,H,B,Ne)):"function"==e?E(Pe):"for"==e?E(q("form"),P,ze,H,R,B):"class"==e||u&&"interface"==t?(T.marked="keyword",E(q("form","class"==e?e:t),He,B)):"variable"==e?u&&"declare"==t?(T.marked="keyword",E(H)):u&&("module"==t||"enum"==t||"type"==t)&&T.stream.match(/^\s*\w/,!1)?(T.marked="keyword","enum"==t?E(tt):"type"==t?E(qe,$("operator"),_e,$(";")):E(q("form"),Ee,$("{"),q("}"),pe,B,B)):u&&"namespace"==t?(T.marked="keyword",E(q("form"),U,H,B)):u&&"abstract"==t?(T.marked="keyword",E(H)):E(q("stat"),oe):"switch"==e?E(q("form"),K,$("{"),q("}","switch"),P,pe,B,B,R):"case"==e?E(U,$(":")):"default"==e?E($(":")):"catch"==e?E(q("form"),F,W,H,B,R):"export"==e?E(q("stat"),Ke,B):"import"==e?E(q("stat"),Ge,B):"async"==e?E(H):"@"==t?E(U,H):L(q("stat"),U,$(";"),B)}function W(e){if("("==e)return E(Be,$(")"))}function U(e,t){return X(e,t,!1)}function V(e,t){return X(e,t,!0)}function K(e){return"("!=e?L():E(q(")"),G,$(")"),B)}function X(e,t,n){if(T.state.fatArrowAt==T.stream.start){var r=n?te:ee;if("("==e)return E(F,q(")"),ue(Be,")"),B,$("=>"),r,R);if("variable"==e)return L(F,Ee,$("=>"),r,R)}var i=n?Z:Q;return x.hasOwnProperty(e)?E(i):"function"==e?E(Pe,i):"class"==e||u&&"interface"==t?(T.marked="keyword",E(q("form"),$e,B)):"keyword c"==e||"async"==e?E(n?V:U):"("==e?E(q(")"),G,$(")"),B,i):"operator"==e||"spread"==e?E(n?V:U):"["==e?E(q("]"),et,B,i):"{"==e?de(se,"}",null,i):"quasi"==e?L(Y,i):"new"==e?E(ne(n)):E()}function G(e){return e.match(/[;\}\)\],]/)?L():L(U)}function Q(e,t){return","==e?E(G):Z(e,t,!1)}function Z(e,t,n){var r=0==n?Q:Z,i=0==n?U:V;return"=>"==e?E(F,n?te:ee,R):"operator"==e?/\+\+|--/.test(t)||u&&"!"==t?E(r):u&&"<"==t&&T.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?E(q(">"),ue(_e,">"),B,r):"?"==t?E(U,$(":"),i):E(i):"quasi"==e?L(Y,r):";"!=e?"("==e?de(V,")","call",r):"."==e?E(ae,r):"["==e?E(q("]"),G,$("]"),B,r):u&&"as"==t?(T.marked="keyword",E(_e,r)):"regexp"==e?(T.state.lastType=T.marked="operator",T.stream.backUp(T.stream.pos-T.stream.start-1),E(i)):void 0:void 0}function Y(e,t){return"quasi"!=e?L():"${"!=t.slice(t.length-2)?E(Y):E(G,J)}function J(e){if("}"==e)return T.marked="string-2",T.state.tokenize=b,E(Y)}function ee(e){return w(T.stream,T.state),L("{"==e?H:U)}function te(e){return w(T.stream,T.state),L("{"==e?H:V)}function ne(e){return function(t){return"."==t?E(e?ie:re):"variable"==t&&u?E(Se,e?Z:Q):L(e?V:U)}}function re(e,t){if("target"==t)return T.marked="keyword",E(Q)}function ie(e,t){if("target"==t)return T.marked="keyword",E(Z)}function oe(e){return":"==e?E(B,H):L(Q,$(";"),B)}function ae(e){if("variable"==e)return T.marked="property",E()}function se(e,t){return"async"==e?(T.marked="property",E(se)):"variable"==e||"keyword"==T.style?(T.marked="property","get"==t||"set"==t?E(le):(u&&T.state.fatArrowAt==T.stream.start&&(n=T.stream.match(/^\s*:\s*/,!1))&&(T.state.fatArrowAt=T.stream.pos+n[0].length),E(ce))):"number"==e||"string"==e?(T.marked=s?"property":T.style+" property",E(ce)):"jsonld-keyword"==e?E(ce):u&&O(t)?(T.marked="keyword",E(se)):"["==e?E(U,fe,$("]"),ce):"spread"==e?E(V,ce):"*"==t?(T.marked="keyword",E(se)):":"==e?L(ce):void 0;var n}function le(e){return"variable"!=e?L(ce):(T.marked="property",E(Pe))}function ce(e){return":"==e?E(V):"("==e?L(Pe):void 0}function ue(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=T.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),E(function(n,r){return n==t||r==t?L():L(e)},r)}return i==t||o==t?E():n&&n.indexOf(";")>-1?L(e):E($(t))}return function(n,i){return n==t||i==t?E():L(e,r)}}function de(e,t,n){for(var r=3;r"),_e):"quasi"==e?L(ke,Ce):void 0}function ve(e){if("=>"==e)return E(_e)}function ye(e){return e.match(/[\}\)\]]/)?E():","==e||";"==e?E(ye):L(be,ye)}function be(e,t){return"variable"==e||"keyword"==T.style?(T.marked="property",E(be)):"?"==t||"number"==e||"string"==e?E(be):":"==e?E(_e):"["==e?E($("variable"),he,$("]"),be):"("==e?L(Re,be):e.match(/[;\}\)\],]/)?void 0:E()}function ke(e,t){return"quasi"!=e?L():"${"!=t.slice(t.length-2)?E(ke):E(_e,we)}function we(e){if("}"==e)return T.marked="string-2",T.state.tokenize=b,E(ke)}function xe(e,t){return"variable"==e&&T.stream.match(/^\s*[?:]/,!1)||"?"==t?E(xe):":"==e?E(_e):"spread"==e?E(xe):L(_e)}function Ce(e,t){return"<"==t?E(q(">"),ue(_e,">"),B,Ce):"|"==t||"."==e||"&"==t?E(_e):"["==e?E(_e,$("]"),Ce):"extends"==t||"implements"==t?(T.marked="keyword",E(_e)):"?"==t?E(_e,$(":"),_e):void 0}function Se(e,t){if("<"==t)return E(q(">"),ue(_e,">"),B,Ce)}function je(){return L(_e,Te)}function Te(e,t){if("="==t)return E(_e)}function Le(e,t){return"enum"==t?(T.marked="keyword",E(tt)):L(Ee,fe,De,Oe)}function Ee(e,t){return u&&O(t)?(T.marked="keyword",E(Ee)):"variable"==e?(M(t),E()):"spread"==e?E(Ee):"["==e?de(Me,"]"):"{"==e?de(Ae,"}"):void 0}function Ae(e,t){return"variable"!=e||T.stream.match(/^\s*:/,!1)?("variable"==e&&(T.marked="property"),"spread"==e?E(Ee):"}"==e?L():"["==e?E(U,$("]"),$(":"),Ae):E($(":"),Ee,De)):(M(t),E(De))}function Me(){return L(Ee,De)}function De(e,t){if("="==t)return E(V)}function Oe(e){if(","==e)return E(Le)}function Ne(e,t){if("keyword b"==e&&"else"==t)return E(q("form","else"),H,B)}function ze(e,t){return"await"==t?E(ze):"("==e?E(q(")"),Ie,B):void 0}function Ie(e){return"var"==e?E(Le,Fe):"variable"==e?E(Fe):L(Fe)}function Fe(e,t){return")"==e?E():";"==e?E(Fe):"in"==t||"of"==t?(T.marked="keyword",E(U,Fe)):L(U,Fe)}function Pe(e,t){return"*"==t?(T.marked="keyword",E(Pe)):"variable"==e?(M(t),E(Pe)):"("==e?E(F,q(")"),ue(Be,")"),B,ge,H,R):u&&"<"==t?E(q(">"),ue(je,">"),B,Pe):void 0}function Re(e,t){return"*"==t?(T.marked="keyword",E(Re)):"variable"==e?(M(t),E(Re)):"("==e?E(F,q(")"),ue(Be,")"),B,ge,R):u&&"<"==t?E(q(">"),ue(je,">"),B,Re):void 0}function qe(e,t){return"keyword"==e||"variable"==e?(T.marked="type",E(qe)):"<"==t?E(q(">"),ue(je,">"),B):void 0}function Be(e,t){return"@"==t&&E(U,Be),"spread"==e?E(Be):u&&O(t)?(T.marked="keyword",E(Be)):u&&"this"==e?E(fe,De):L(Ee,fe,De)}function $e(e,t){return"variable"==e?He(e,t):We(e,t)}function He(e,t){if("variable"==e)return M(t),E(We)}function We(e,t){return"<"==t?E(q(">"),ue(je,">"),B,We):"extends"==t||"implements"==t||u&&","==e?("implements"==t&&(T.marked="keyword"),E(u?_e:U,We)):"{"==e?E(q("}"),Ue,B):void 0}function Ue(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||u&&O(t))&&T.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1)?(T.marked="keyword",E(Ue)):"variable"==e||"keyword"==T.style?(T.marked="property",E(Ve,Ue)):"number"==e||"string"==e?E(Ve,Ue):"["==e?E(U,fe,$("]"),Ve,Ue):"*"==t?(T.marked="keyword",E(Ue)):u&&"("==e?L(Re,Ue):";"==e||","==e?E(Ue):"}"==e?E():"@"==t?E(U,Ue):void 0}function Ve(e,t){if("!"==t)return E(Ve);if("?"==t)return E(Ve);if(":"==e)return E(_e,De);if("="==t)return E(V);var n=T.state.lexical.prev,r=n&&"interface"==n.info;return L(r?Re:Pe)}function Ke(e,t){return"*"==t?(T.marked="keyword",E(Je,$(";"))):"default"==t?(T.marked="keyword",E(U,$(";"))):"{"==e?E(ue(Xe,"}"),Je,$(";")):L(H)}function Xe(e,t){return"as"==t?(T.marked="keyword",E($("variable"))):"variable"==e?L(V,Xe):void 0}function Ge(e){return"string"==e?E():"("==e?L(U):"."==e?L(Q):L(Qe,Ze,Je)}function Qe(e,t){return"{"==e?de(Qe,"}"):("variable"==e&&M(t),"*"==t&&(T.marked="keyword"),E(Ye))}function Ze(e){if(","==e)return E(Qe,Ze)}function Ye(e,t){if("as"==t)return T.marked="keyword",E(Qe)}function Je(e,t){if("from"==t)return T.marked="keyword",E(U)}function et(e){return"]"==e?E():L(ue(V,"]"))}function tt(){return L(q("form"),Ee,$("{"),q("}"),ue(nt,"}"),B,B)}function nt(){return L(Ee,De)}function rt(e,t){return"operator"==e.lastType||","==e.lastType||f.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function it(e,t,n){return t.tokenize==_&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return F.lex=P.lex=!0,R.lex=!0,B.lex=!0,{startState:function(e){var t={tokenize:_,lastType:"sof",cc:[],lexical:new C((e||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new N(null,null,!1),indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),w(e,t)),t.tokenize!=y&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==r?n:(t.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",j(t,n,r,i,e))},indent:function(t,r){if(t.tokenize==y||t.tokenize==b)return e.Pass;if(t.tokenize!=_)return 0;var i,s=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==B)l=l.prev;else if(u!=Ne&&u!=R)break}while(("stat"==l.type||"form"==l.type)&&("}"==s||(i=t.cc[t.cc.length-1])&&(i==Q||i==Z)&&!/^[,\.=+\-*:?[\(]/.test(r)))l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var d=l.type,p=s==d;return"vardef"==d?l.indented+("operator"==t.lastType||","==t.lastType?l.info.length+1:0):"form"==d&&"{"==s?l.indented:"form"==d?l.indented+o:"stat"==d?l.indented+(rt(t,r)?a||o:0):"switch"!=l.info||p||0==n.doubleIndentSwitch?l.align?l.column+(p?0:1):l.indented+(p?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:it,skipExpression:function(t){j(t,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})})},18613:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_text.7916b128.svg"},18727:function(e,t,n){"use strict";var r=n(36955);e.exports=function(e){var t=r(e);return"BigInt64Array"===t||"BigUint64Array"===t}},20456:function(e,t,n){"use strict";var r=n(46518),i=n(44576),o=n(79504),a=n(34154),s=n(55169),l=o(1.1.toString),c=i.Uint8Array,u=!c||!c.prototype.toHex||!function(){try{var e=new c([255,255,255,255,255,255,255,255]);return"ffffffffffffffff"===e.toHex()}catch(t){return!1}}();c&&r({target:"Uint8Array",proto:!0,forced:u},{toHex:function(){a(this),s(this.buffer);for(var e="",t=0,n=this.length;tn.keyCol)return e.skipToEnd(),"string";if(n.literal&&(n.literal=!1),e.sol()){if(n.keyCol=0,n.pair=!1,n.pairStart=!1,e.match("---"))return"def";if(e.match("..."))return"def";if(e.match(/\s*-\s+/))return"meta"}if(e.match(/^(\{|\}|\[|\])/))return"{"==r?n.inlinePairs++:"}"==r?n.inlinePairs--:"["==r?n.inlineList++:n.inlineList--,"meta";if(n.inlineList>0&&!i&&","==r)return e.next(),"meta";if(n.inlinePairs>0&&!i&&","==r)return n.keyCol=0,n.pair=!1,n.pairStart=!1,e.next(),"meta";if(n.pairStart){if(e.match(/^\s*(\||\>)\s*/))return n.literal=!0,"meta";if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(0==n.inlinePairs&&e.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(n.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(e.match(t))return"keyword"}return!n.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^\s,\[\]{}#&*!|>'"%@`])[^#:]*(?=:($|\s))/)?(n.pair=!0,n.keyCol=e.indentation(),"atom"):n.pair&&e.match(/^:\s*/)?(n.pairStart=!0,"meta"):(n.pairStart=!1,n.escaped="\\"==r,e.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},lineComment:"#",fold:"indent"}}),e.defineMIME("text/x-yaml","yaml"),e.defineMIME("text/yaml","yaml")})},20845:function(e,t,n){"use strict";e.exports=n.p+"static/img/default_root_folder.f8a91e0b.svg"},21743:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_html.1758920c.svg"},22164:function(e,t,n){"use strict";n.d(t,{A:function(){return v}});var r=n(20641),i=n(90033),o=n(53751);const a={id:"root-dialog",class:"noselected"},s={class:"dialog-wrap"},l={class:"dialog-top"},c={class:"dialog-top-title"},u={class:"position-absolute dialog-error"},d={class:"position-absolute",style:{bottom:"0px"}},p={key:0},f={key:1};function h(e,t,n,h,g,m){return(0,r.uX)(),(0,r.CE)("div",a,[(0,r.Lk)("div",s,[(0,r.Lk)("div",{class:"dialog-cover",onClick:t[0]||(t[0]=t=>e.$emit("onCancel"))}),(0,r.Lk)("div",{class:"dialog-content",onClick:t[6]||(t[6]=(...e)=>m.contentClick&&m.contentClick(...e))},[(0,r.Lk)("div",l,[(0,r.Lk)("span",c,(0,i.v_)(n.title),1)]),(0,r.Lk)("div",null,[(0,r.bo)((0,r.Lk)("input",{id:"ide-input-text",onKeyup:[t[1]||(t[1]=t=>e.$emit("check-input",g.inputText,m.updateLegalResult)),t[3]||(t[3]=(0,o.jR)(t=>e.$emit("onCreate"),["enter"]))],"onUpdate:modelValue":t[2]||(t[2]=e=>g.inputText=e),type:"text",class:"position-absolute dialog-input input-focus"},null,544),[[o.Jo,g.inputText]])]),(0,r.Lk)("div",u,(0,i.v_)(n.tips),1),(0,r.Lk)("div",d,[(0,r.Lk)("div",{class:"float-left btn-cancel",onClick:t[4]||(t[4]=t=>e.$emit("onCancel"))}," Cancel "),g.isLegal?((0,r.uX)(),(0,r.CE)("span",p,[(0,r.Lk)("div",{class:"float-left btn-create cursor-pointer",onClick:t[5]||(t[5]=t=>e.$emit("onCreate"))}," OK ")])):((0,r.uX)(),(0,r.CE)("span",f,t[7]||(t[7]=[(0,r.Lk)("div",{class:"float-left btn-create btn-create-opacity"}," OK ",-1)])))])])])])}var g={props:{title:String,text:String,tips:String},data(){return{inputText:this.text,isLegal:!1}},mounted(){const e=document.getElementById("ide-input-text");null!==e&&void 0!==e&&e.focus(),this.$emit("check-input",this.inputText,this.updateLegalResult)},methods:{updateLegalResult(e){this.isLegal=e},keyEvent(e){var t=e.keyCode?e.keyCode:e.which?e.which:e.charCode;13===t&&this.$emit("onCreate")},contentClick(){const e=document.getElementsByClassName("option")[0];void 0!==e&&(e.style.display="none")}},components:{},computed:{}},m=n(66262);const _=(0,m.A)(g,[["render",h],["__scopeId","data-v-362a7aa0"]]);var v=_},22261:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_public.ef3f9250.svg"},22542:function(e,t,n){"use strict";n.d(t,{A:function(){return F}});var r=n(20641),i=n(90033);const o={class:"upload-dialog"},a={class:"dialog-header"},s={class:"dialog-body"},l={class:"directory-section"},c={class:"directory-nav"},u={key:0,class:"directory-tree"},d=["onClick"],p={class:"upload-section"},f={class:"file-input-wrapper"},h={key:0},g={key:1},m={key:0,class:"preview-section"},_={class:"file-preview"},v={class:"file-info"},y={class:"file-name"},b={class:"file-size"},k={class:"dialog-footer"},w=["disabled"];function x(e,t,n,x,C,S){const j=(0,r.g2)("X"),T=(0,r.g2)("FolderOpen"),L=(0,r.g2)("ChevronDown"),E=(0,r.g2)("ChevronRight"),A=(0,r.g2)("Home"),M=(0,r.g2)("Folder"),D=(0,r.g2)("Upload"),O=(0,r.g2)("FileText");return(0,r.uX)(),(0,r.CE)("div",null,[t[11]||(t[11]=(0,r.Lk)("div",{class:"dialog-cover"},null,-1)),(0,r.Lk)("div",o,[(0,r.Lk)("div",a,[t[6]||(t[6]=(0,r.Lk)("h3",null,"Import File",-1)),(0,r.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>S.onCancel&&S.onCancel(...e))},[(0,r.bF)(j,{size:20})])]),(0,r.Lk)("div",s,[(0,r.Lk)("div",l,[t[7]||(t[7]=(0,r.Lk)("label",null,"Select Directory:",-1)),(0,r.Lk)("div",c,[(0,r.Lk)("div",{class:"current-path",onClick:t[1]||(t[1]=(...e)=>S.toggleDirectoryTree&&S.toggleDirectoryTree(...e))},[(0,r.bF)(T,{size:16}),(0,r.Lk)("span",null,(0,i.v_)(S.formatCurrentPath(C.currentPath)),1),C.showDirectoryTree?((0,r.uX)(),(0,r.Wv)(L,{key:0,size:16,class:"chevron"})):((0,r.uX)(),(0,r.Wv)(E,{key:1,size:16,class:"chevron"}))]),C.showDirectoryTree?((0,r.uX)(),(0,r.CE)("div",u,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(C.directories,e=>((0,r.uX)(),(0,r.CE)("div",{key:e.path,class:(0,i.C4)(["directory-item",{selected:C.currentPath===e.path,"root-item":e.isRoot}]),style:(0,i.Tr)({paddingLeft:20*e.level+12+"px"}),onClick:t=>S.selectDirectory(e)},[e.isRoot?((0,r.uX)(),(0,r.Wv)(A,{key:0,size:14})):((0,r.uX)(),(0,r.CE)(r.FK,{key:1},[(0,r.bF)(E,{size:14}),(0,r.bF)(M,{size:14})],64)),(0,r.Lk)("span",null,(0,i.v_)(e.displayName||e.name),1)],14,d))),128))])):(0,r.Q3)("",!0)])]),(0,r.Lk)("div",p,[t[8]||(t[8]=(0,r.Lk)("label",null,"Select File to Upload:",-1)),(0,r.Lk)("div",f,[(0,r.Lk)("input",{type:"file",ref:"fileInput",onChange:t[2]||(t[2]=(...e)=>S.onFileSelect&&S.onFileSelect(...e)),accept:".py,.csv,.pdf,.png,.jpg,.jpeg,.gif,.bmp,.svg",class:"file-input"},null,544),(0,r.Lk)("div",{class:"file-input-display",onClick:t[3]||(t[3]=t=>e.$refs.fileInput.click())},[(0,r.bF)(D,{size:20}),C.selectedFile?((0,r.uX)(),(0,r.CE)("span",g,(0,i.v_)(C.selectedFile.name),1)):((0,r.uX)(),(0,r.CE)("span",h,"Click to select file..."))])]),t[9]||(t[9]=(0,r.Lk)("div",{class:"file-types-hint"}," Supported: .py, .csv, .pdf, .png, .jpg, .jpeg, .gif, .bmp, .svg ",-1))]),C.selectedFile?((0,r.uX)(),(0,r.CE)("div",m,[t[10]||(t[10]=(0,r.Lk)("label",null,"File Preview:",-1)),(0,r.Lk)("div",_,[(0,r.Lk)("div",v,[(0,r.bF)(O,{size:20}),(0,r.Lk)("div",null,[(0,r.Lk)("div",y,(0,i.v_)(C.selectedFile.name),1),(0,r.Lk)("div",b,(0,i.v_)(S.formatFileSize(C.selectedFile.size)),1)])])])])):(0,r.Q3)("",!0)]),(0,r.Lk)("div",k,[(0,r.Lk)("button",{class:"btn-cancel",onClick:t[4]||(t[4]=(...e)=>S.onCancel&&S.onCancel(...e))},"Cancel"),(0,r.Lk)("button",{class:"btn-upload",onClick:t[5]||(t[5]=(...e)=>S.onUpload&&S.onUpload(...e)),disabled:!C.selectedFile||C.uploading},(0,i.v_)(C.uploading?"Uploading...":"Upload"),9,w)])])])}n(44114),n(18111),n(7588);var C=n(6494),S=n(75365),j=n(74829),T=n(27336),L=n(77950),E=n(24758),A=n(79992),M=n(51058),D=n(56660),O=n(96763),N={props:{modelValue:Boolean},data(){return{currentPath:"/",currentProject:null,directories:[],selectedFile:null,uploading:!1,showDirectoryTree:!1}},computed:{ideInfo(){return this.$store.state.ide.ideInfo}},components:{X:C.A,Upload:S.A,FolderOpen:j.A,Folder:T.A,ChevronRight:L.A,ChevronDown:E.A,FileText:A.A,Home:M.A},mounted(){this.loadDirectoryStructure()},methods:{loadDirectoryStructure(){this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0?(this.directories=[],this.ideInfo.multiRootData.children.forEach(e=>{const t=this.buildDirectoryTree(e,0,e.label);this.directories=this.directories.concat(t)})):this.ideInfo.currProj&&this.ideInfo.currProj.data&&(this.directories=this.buildDirectoryTree(this.ideInfo.currProj.data,0,this.ideInfo.currProj.data.label)),this.ideInfo.nodeSelected&&"dir"===this.ideInfo.nodeSelected.type&&(this.currentPath=this.ideInfo.nodeSelected.path,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name)},buildDirectoryTree(e,t=0,n=null){let r=[];return 0===t&&r.push({name:n||e.label||"/",displayName:n||e.label||"/",path:e.path||"/",level:0,isRoot:!0,projectName:n||e.label,fullPath:n?`${n}${e.path}`:e.path}),e.children&&e.children.forEach(e=>{"dir"!==e.type&&"folder"!==e.type||(r.push({name:e.label,displayName:e.label,path:e.path,level:t+1,isRoot:!1,projectName:n||e.projectName,fullPath:n?`${n}${e.path}`:e.path}),e.children&&(r=r.concat(this.buildDirectoryTree(e,t+1,n))))}),r},selectDirectory(e){this.currentPath=e.path,this.currentProject=e.projectName,this.showDirectoryTree=!1},toggleDirectoryTree(){this.showDirectoryTree=!this.showDirectoryTree},formatCurrentPath(e){return this.currentProject?"/"===e?this.currentProject:this.currentProject+e:"/"===e&&this.ideInfo.currProj?this.ideInfo.currProj.label:e.startsWith("/")&&this.ideInfo.currProj?this.ideInfo.currProj.label+e:e},onFileSelect(e){const t=e.target.files[0];t&&(this.selectedFile=t)},formatFileSize(e){if(0===e)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB"],r=Math.floor(Math.log(e)/Math.log(t));return Math.round(e/Math.pow(t,r)*100)/100+" "+n[r]},async onUpload(){if(this.selectedFile){this.uploading=!0;try{const e=new FileReader,t=this.selectedFile.name,n="/"===this.currentPath?`/${t}`:`${this.currentPath}/${t}`,r=/\.(png|jpg|jpeg|gif|bmp|svg|pdf)$/i.test(t);e.onload=e=>{const t=e.target.result;if(r){const e=t.split(",")[1];this.uploadFile(n,e,!0)}else this.uploadFile(n,t,!1)},e.onerror=e=>{O.error("File read error:",e),this.uploading=!1,alert("Failed to read file. Please try again.")},r?e.readAsDataURL(this.selectedFile):e.readAsText(this.selectedFile)}catch(e){O.error("Upload error:",e),this.uploading=!1}}},uploadFile(e,t,n){this.$store.dispatch(`ide/${D._L}`,{filePath:e,fileData:t,isBinary:n,callback:e=>{this.uploading=!1,e&&0===e.code?(this.$emit("refresh-tree"),this.selectedFile=null,this.$refs.fileInput&&(this.$refs.fileInput.value=""),this.onCancel(),window.ElMessage&&window.ElMessage({type:"success",message:"File uploaded successfully",duration:2e3})):(O.error("Failed to upload file:",e),alert("Failed to upload file. Please try again."))}})},onCancel(){this.selectedFile=null,this.uploading=!1,this.$emit("update:modelValue",!1),this.$emit("close")}}},z=n(66262);const I=(0,z.A)(N,[["render",x],["__scopeId","data-v-8ec5509e"]]);var F=I},22812:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(eu)break;var p=e.getLine(c++);i=null==i?p:i+"\n"+p}l*=2,t.lastIndex=n.ch;var f=t.exec(i);if(f){var h=i.slice(0,f.index).split("\n"),g=f[0].split("\n"),m=n.line+h.length-1,_=h[h.length-1].length;return{from:r(m,_),to:r(m+g.length-1,1==g.length?_+g[0].length:g[g.length-1].length),match:f}}}}function c(e,t,n){var r,i=0;while(i<=e.length){t.lastIndex=i;var o=t.exec(e);if(!o)break;var a=o.index+o[0].length;if(a>e.length-n)break;(!r||a>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function u(e,t,n){t=o(t,"g");for(var i=n.line,a=n.ch,s=e.firstLine();i>=s;i--,a=-1){var l=e.getLine(i),u=c(l,t,a<0?0:l.length-a);if(u)return{from:r(i,u.index),to:r(i,u.index+u[0].length),match:u}}}function d(e,t,n){if(!a(t))return u(e,t,n);t=o(t,"gm");for(var i,s=1,l=e.getLine(n.line).length-n.ch,d=n.line,p=e.firstLine();d>=p;){for(var f=0;f=p;f++){var h=e.getLine(d--);i=null==i?h:h+"\n"+i}s*=2;var g=c(i,t,l);if(g){var m=i.slice(0,g.index).split("\n"),_=g[0].split("\n"),v=d+m.length,y=m[m.length-1].length;return{from:r(v,y),to:r(v+_.length-1,1==_.length?y+_[0].length:_[_.length-1].length),match:g}}}}function p(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,s=r(e.slice(0,a)).length;if(s==n)return a;s>n?o=a:i=a+1}}function f(e,i,o,a){if(!i.length)return null;var s=a?t:n,l=s(i).split(/\r|\n\r?/);e:for(var c=o.line,u=o.ch,d=e.lastLine()+1-l.length;c<=d;c++,u=0){var f=e.getLine(c).slice(u),h=s(f);if(1==l.length){var g=h.indexOf(l[0]);if(-1==g)continue e;o=p(f,h,g,s)+u;return{from:r(c,p(f,h,g,s)+u),to:r(c,p(f,h,g+l[0].length,s)+u)}}var m=h.length-l[0].length;if(h.slice(m)==l[0]){for(var _=1;_=d;c--,u=-1){var f=e.getLine(c);u>-1&&(f=f.slice(0,u));var h=s(f);if(1==l.length){var g=h.lastIndexOf(l[0]);if(-1==g)continue e;return{from:r(c,p(f,h,g,s)),to:r(c,p(f,h,g+l[0].length,s))}}var m=l[l.length-1];if(h.slice(0,m.length)==m){var _=1;for(o=c-l.length+1;_(this.doc.getLine(n.line)||"").length&&(n.ch=0,n.line++)),0!=e.cmpPos(n,this.doc.clipPos(n))))return this.atOccurrence=!1;var i=this.matches(t,n);if(this.afterEmptyMatch=i&&0==e.cmpPos(i.from,i.to),i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var o=r(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:o,to:o},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,n),this.pos.to=r(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,t,n){return new g(this.doc,e,t,n)}),e.defineDocExtension("getSearchCursor",function(e,t,n){return new g(this,e,t,n)}),e.defineExtension("selectMatches",function(t,n){var r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);while(i.findNext()){if(e.cmpPos(i.to(),this.getCursor("to"))>0)break;r.push({anchor:i.from(),head:i.to()})}r.length&&this.setSelections(r,0)})})},23843:function(e,t,n){"use strict";e.exports=n.p+"static/img/default_root_folder_opened.81974082.svg"},24419:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FolderNamesToIcon=void 0,t.FolderNamesToIcon={android:"folder_type_android.svg",api:"folder_type_api.svg",".api":"folder_type_api.svg",apis:"folder_type_api.svg",".apis":"folder_type_api.svg",app:"folder_type_app.svg",".app":"folder_type_app.svg",arangodb:"folder_type_arangodb.svg",arango:"folder_type_arangodb.svg",assets:"folder_type_asset.svg",".assets":"folder_type_asset.svg",audio:"folder_type_audio.svg",".audio":"folder_type_audio.svg",audios:"folder_type_audio.svg",".audios":"folder_type_audio.svg",sound:"folder_type_audio.svg",".sound":"folder_type_audio.svg",sounds:"folder_type_audio.svg",".sounds":"folder_type_audio.svg",aurelia_project:"folder_type_aurelia.svg",aws:"folder_type_aws.svg",".aws":"folder_type_aws.svg",azure:"folder_type_azure.svg",".azure":"folder_type_azure.svg","azure-pipelines":"folder_type_azurepipelines.svg",".azure-pipelines":"folder_type_azurepipelines.svg",bin:"folder_type_binary.svg",".bin":"folder_type_binary.svg",blocs:"folder_type_bloc.svg",bloc:"folder_type_bloc.svg",blueprint:"folder_type_blueprint.svg",".blueprint":"folder_type_blueprint.svg",blueprints:"folder_type_blueprint.svg",".blueprints":"folder_type_blueprint.svg",bower_components:"folder_type_bower.svg",".buildkite":"folder_type_buildkite.svg",cake:"folder_type_cake.svg",".cake":"folder_type_cake.svg",certificates:"folder_type_certificate.svg",".certificates":"folder_type_certificate.svg",certs:"folder_type_certificate.svg","certs.":"folder_type_certificate.svg",chef:"folder_type_chef.svg",".chef":"folder_type_chef.svg",".circleci":"folder_type_circleci.svg",cli:"folder_type_cli.svg",cmd:"folder_type_cli.svg",command:"folder_type_cli.svg",commands:"folder_type_cli.svg",commandline:"folder_type_cli.svg",console:"folder_type_cli.svg",client:"folder_type_client.svg",clients:"folder_type_client.svg",".cmake":"folder_type_cmake.svg",cmake:"folder_type_cmake.svg",component:"folder_type_component.svg",components:"folder_type_component.svg",".components":"folder_type_component.svg",widgets:"folder_type_component.svg",composer:"folder_type_composer.svg",".composer":"folder_type_composer.svg",conf:"folder_type_config.svg",".conf":"folder_type_config.svg",config:"folder_type_config.svg",".config":"folder_type_config.svg",configs:"folder_type_config.svg",".configs":"folder_type_config.svg",configuration:"folder_type_config.svg",".configuration":"folder_type_config.svg",configurations:"folder_type_config.svg",".configurations":"folder_type_config.svg",setting:"folder_type_config.svg",".setting":"folder_type_config.svg",settings:"folder_type_config.svg",".settings":"folder_type_config.svg",ini:"folder_type_config.svg",".ini":"folder_type_config.svg",initializers:"folder_type_config.svg",".initializers":"folder_type_config.svg",controller:"folder_type_controller.svg",controllers:"folder_type_controller.svg",".controllers":"folder_type_controller.svg",handlers:"folder_type_controller.svg",".handlers":"folder_type_controller.svg",coverage:"folder_type_coverage.svg",css:"folder_type_css.svg",_css:"folder_type_css.svg",cubits:"folder_type_cubit.svg",cubit:"folder_type_cubit.svg",cypress:"folder_type_cypress.svg",".dapr":"folder_type_dapr.svg",dapr:"folder_type_dapr.svg",db:"folder_type_db.svg",database:"folder_type_db.svg",sql:"folder_type_db.svg",data:"folder_type_db.svg",repo:"folder_type_db.svg",repository:"folder_type_db.svg",repositories:"folder_type_db.svg",debian:"folder_type_debian.svg",deb:"folder_type_debian.svg",".dependabot":"folder_type_dependabot.svg",".devcontainer":"folder_type_devcontainer.svg",dist:"folder_type_dist.svg",".dist":"folder_type_dist.svg",dists:"folder_type_dist.svg",out:"folder_type_dist.svg",outs:"folder_type_dist.svg",export:"folder_type_dist.svg",exports:"folder_type_dist.svg",build:"folder_type_dist.svg",".build":"folder_type_dist.svg",builds:"folder_type_dist.svg",release:"folder_type_dist.svg",releases:"folder_type_dist.svg",target:"folder_type_dist.svg",targets:"folder_type_dist.svg",docker:"folder_type_docker.svg",".docker":"folder_type_docker.svg",docs:"folder_type_docs.svg",doc:"folder_type_docs.svg",e2e:"folder_type_e2e.svg",".elasticbeanstalk":"folder_type_elasticbeanstalk.svg",".ebextensions":"folder_type_elasticbeanstalk.svg",electron:"folder_type_light_electron.svg",".expo":"folder_type_light_expo.svg",".expo-shared":"folder_type_light_expo.svg",favicon:"folder_type_favicon.svg",favicons:"folder_type_favicon.svg",flow:"folder_type_flow.svg","flow-typed":"folder_type_flow.svg",fonts:"folder_type_light_fonts.svg",font:"folder_type_light_fonts.svg",fnt:"folder_type_light_fonts.svg",gcp:"folder_type_gcp.svg",".gcp":"folder_type_gcp.svg",".git":"folder_type_git.svg",submodules:"folder_type_git.svg",".submodules":"folder_type_git.svg",".github":"folder_type_github.svg",".gitlab":"folder_type_gitlab.svg",gradle:"folder_type_light_gradle.svg",".gradle":"folder_type_light_gradle.svg",graphql:"folder_type_graphql.svg",grunt:"folder_type_grunt.svg",gulp:"folder_type_gulp.svg","gulpfile.js":"folder_type_gulp.svg","gulpfile.coffee":"folder_type_gulp.svg","gulpfile.ts":"folder_type_gulp.svg","gulpfile.babel.js":"folder_type_gulp.svg","gulpfile.babel.coffee":"folder_type_gulp.svg","gulpfile.babel.ts":"folder_type_gulp.svg",".haxelib":"folder_type_haxelib.svg",haxe_libraries:"folder_type_haxelib.svg",helper:"folder_type_helper.svg",".helper":"folder_type_helper.svg",helpers:"folder_type_helper.svg",".helpers":"folder_type_helper.svg",hook:"folder_type_hook.svg",".hook":"folder_type_hook.svg",hooks:"folder_type_hook.svg",".hooks":"folder_type_hook.svg",".husky":"folder_type_husky.svg",".idea":"folder_type_idea.svg",images:"folder_type_images.svg",image:"folder_type_images.svg",img:"folder_type_images.svg",icons:"folder_type_images.svg",icon:"folder_type_images.svg",ico:"folder_type_images.svg",screenshot:"folder_type_images.svg",screenshots:"folder_type_images.svg",svg:"folder_type_images.svg",include:"folder_type_include.svg",includes:"folder_type_include.svg",incl:"folder_type_include.svg",inc:"folder_type_include.svg",".include":"folder_type_include.svg",".includes":"folder_type_include.svg",".incl":"folder_type_include.svg",".inc":"folder_type_include.svg",_include:"folder_type_include.svg",_includes:"folder_type_include.svg",_incl:"folder_type_include.svg",_inc:"folder_type_include.svg",interface:"folder_type_interfaces.svg",interfaces:"folder_type_interfaces.svg",ios:"folder_type_ios.svg",js:"folder_type_js.svg",json:"folder_type_json.svg",kubernetes:"folder_type_kubernetes.svg",k8s:"folder_type_kubernetes.svg",kube:"folder_type_kubernetes.svg",kuber:"folder_type_kubernetes.svg",".kubernetes":"folder_type_kubernetes.svg",".k8s":"folder_type_kubernetes.svg",".kube":"folder_type_kubernetes.svg",".kuber":"folder_type_kubernetes.svg",less:"folder_type_less.svg",_less:"folder_type_less.svg",lib:"folder_type_library.svg",libs:"folder_type_library.svg",".lib":"folder_type_library.svg",".libs":"folder_type_library.svg",library:"folder_type_library.svg",libraries:"folder_type_library.svg",linux:"folder_type_linux.svg",lang:"folder_type_locale.svg",language:"folder_type_locale.svg",languages:"folder_type_locale.svg",locale:"folder_type_locale.svg",locales:"folder_type_locale.svg",_locale:"folder_type_locale.svg",_locales:"folder_type_locale.svg",internationalization:"folder_type_locale.svg",globalization:"folder_type_locale.svg",localization:"folder_type_locale.svg",i18n:"folder_type_locale.svg",g11n:"folder_type_locale.svg",l10n:"folder_type_locale.svg",log:"folder_type_log.svg",logs:"folder_type_log.svg",macos:"folder_type_macos.svg",darwin:"folder_type_macos.svg",mariadb:"folder_type_mariadb.svg",maria:"folder_type_mariadb.svg",".mvn":"folder_type_maven.svg",memcached:"folder_type_memcached.svg",".memcached":"folder_type_memcached.svg",".meteor":"folder_type_light_meteor.svg",middleware:"folder_type_middleware.svg",middlewares:"folder_type_middleware.svg",minikube:"folder_type_minikube.svg",minik8s:"folder_type_minikube.svg",minikuber:"folder_type_minikube.svg",mjml:"folder_type_mjml.svg",".mjml":"folder_type_mjml.svg",mocks:"folder_type_mock.svg",".mocks":"folder_type_mock.svg",__mocks__:"folder_type_mock.svg",model:"folder_type_model.svg",".model":"folder_type_model.svg",models:"folder_type_model.svg",".models":"folder_type_model.svg",entities:"folder_type_model.svg",".entities":"folder_type_model.svg",modules:"folder_type_module.svg",mongodb:"folder_type_mongodb.svg",mongo:"folder_type_mongodb.svg",mysqldb:"folder_type_light_mysql.svg",mysql:"folder_type_light_mysql.svg",".next":"folder_type_next.svg",nginx:"folder_type_nginx.svg","conf.d":"folder_type_nginx.svg",node_modules:"folder_type_light_node.svg",notification:"folder_type_notification.svg",notifications:"folder_type_notification.svg",event:"folder_type_notification.svg",events:"folder_type_notification.svg",".nuget":"folder_type_nuget.svg",".nuxt":"folder_type_nuxt.svg",package:"folder_type_package.svg",packages:"folder_type_package.svg",".package":"folder_type_package.svg",".packages":"folder_type_package.svg",pkg:"folder_type_package.svg",".paket":"folder_type_paket.svg",php:"folder_type_php.svg",".pio":"folder_type_platformio.svg",".pioenvs":"folder_type_platformio.svg",plugin:"folder_type_plugin.svg",".plugin":"folder_type_plugin.svg",plugins:"folder_type_plugin.svg",".plugins":"folder_type_plugin.svg",extension:"folder_type_plugin.svg",".extension":"folder_type_plugin.svg",extensions:"folder_type_plugin.svg",".extensions":"folder_type_plugin.svg",private:"folder_type_private.svg",".private":"folder_type_private.svg",public:"folder_type_public.svg",".public":"folder_type_public.svg",".venv":"folder_type_python.svg",".virtualenv":"folder_type_python.svg",ravendb:"folder_type_ravendb.svg",redis:"folder_type_redis.svg",redux:"folder_type_light_redux.svg",route:"folder_type_route.svg",routes:"folder_type_route.svg",_route:"folder_type_route.svg",_routes:"folder_type_route.svg",routers:"folder_type_route.svg",sass:"folder_type_light_sass.svg",scss:"folder_type_light_sass.svg",_sass:"folder_type_light_sass.svg",_scss:"folder_type_light_sass.svg",script:"folder_type_script.svg",scripts:"folder_type_script.svg",server:"folder_type_server.svg",service:"folder_type_services.svg",services:"folder_type_services.svg",src:"folder_type_src.svg",source:"folder_type_src.svg",sources:"folder_type_src.svg",sso:"folder_type_sso.svg",story:"folder_type_story.svg",stories:"folder_type_story.svg",__stories__:"folder_type_story.svg",".storybook":"folder_type_story.svg",style:"folder_type_style.svg",styles:"folder_type_style.svg",temp:"folder_type_temp.svg",".temp":"folder_type_temp.svg",tmp:"folder_type_temp.svg",".tmp":"folder_type_temp.svg",template:"folder_type_template.svg",".template":"folder_type_template.svg",templates:"folder_type_template.svg",".templates":"folder_type_template.svg",tests:"folder_type_test.svg",".tests":"folder_type_test.svg",test:"folder_type_test.svg",".test":"folder_type_test.svg",__tests__:"folder_type_test.svg",__test__:"folder_type_test.svg",spec:"folder_type_test.svg",".spec":"folder_type_test.svg",specs:"folder_type_test.svg",".specs":"folder_type_test.svg",integration:"folder_type_test.svg",theme:"folder_type_theme.svg",themes:"folder_type_theme.svg",tool:"folder_type_tools.svg",tools:"folder_type_tools.svg",".tools":"folder_type_tools.svg",util:"folder_type_tools.svg",utils:"folder_type_tools.svg",".travis":"folder_type_travis.svg",typescript:"folder_type_typescript.svg",ts:"folder_type_typescript.svg",typings:"folder_type_typings.svg","@types":"folder_type_typings.svg",vagrant:"folder_type_vagrant.svg",".vagrant":"folder_type_vagrant.svg",video:"folder_type_video.svg",".video":"folder_type_video.svg",videos:"folder_type_video.svg",".videos":"folder_type_video.svg",html:"folder_type_view.svg",view:"folder_type_view.svg",views:"folder_type_view.svg",layout:"folder_type_view.svg",layouts:"folder_type_view.svg",page:"folder_type_view.svg",pages:"folder_type_view.svg",_view:"folder_type_view.svg",_views:"folder_type_view.svg",_layout:"folder_type_view.svg",_layouts:"folder_type_view.svg",_page:"folder_type_view.svg",_pages:"folder_type_view.svg",".vs":"folder_type_vs.svg",".vscode":"folder_type_vscode.svg",vscode:"folder_type_vscode.svg",".vscode-test":"folder_type_vscode_test.svg",webpack:"folder_type_webpack.svg",windows:"folder_type_windows.svg",win32:"folder_type_windows.svg",www:"folder_type_www.svg",wwwroot:"folder_type_www.svg"}},24719:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_binary.6f6ddddd.svg"},24758:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},26685:function(e,t,n){(function(e){e(n(15237),n(23653),n(53004))})(function(e){"use strict";function t(e,t,n,r){this.cm=e,this.options=r;var i={listenForChanges:!1};for(var o in r)i[o]=r[o];i.className||(i.className="CodeMirror-search-match"),this.annotation=e.annotateScrollbar(i),this.query=t,this.caseFold=n,this.gap={from:e.firstLine(),to:e.lastLine()+1},this.matches=[],this.update=null,this.findMatches(),this.annotation.update(this.matches);var a=this;e.on("change",this.changeHandler=function(e,t){a.onChange(t)})}e.defineExtension("showMatchesOnScrollbar",function(e,n,r){return"string"==typeof r&&(r={className:r}),r||(r={}),new t(this,e,n,r)});var n=1e3;function r(e,t,n){return e<=t?e:Math.max(t,e+n)}t.prototype.findMatches=function(){if(this.gap){for(var t=0;t=this.gap.to)break;r.to.line>=this.gap.from&&this.matches.splice(t--,1)}var i=this.cm.getSearchCursor(this.query,e.Pos(this.gap.from,0),{caseFold:this.caseFold,multiline:this.options.multiline}),o=this.options&&this.options.maxMatches||n;while(i.findNext()){r={from:i.from(),to:i.to()};if(r.from.line>=this.gap.to)break;if(this.matches.splice(t++,0,r),this.matches.length>o)break}this.gap=null}},t.prototype.onChange=function(t){var n=t.from.line,i=e.changeEnd(t).line,o=i-t.to.line;if(this.gap?(this.gap.from=Math.min(r(this.gap.from,n,o),t.from.line),this.gap.to=Math.max(r(this.gap.to,n,o),t.from.line)):this.gap={from:t.from.line,to:i+1},o)for(var a=0;anull==t?void 0:t[e||c],p=(e,t,n)=>{const r=e.value.currentNode;n();const i=e.value.currentNode;r!==i&&t("current-change",i?i.data:null,i)};var f=n(2154);const h=e=>{let t=!0,n=!0,r=!0;for(let i=0,o=e.length;i{e.canFocus=t,_(e.childNodes,t)})};let v=0;class y{constructor(e){this.isLeafByUser=void 0,this.isLeaf=void 0,this.id=v++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(const t in e)(0,o.$3)(e,t)&&(this[t]=e[t]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){var e;const t=this.store;if(!t)throw new Error("[Node]store is required!");t.registerNode(this);const n=t.props;if(n&&"undefined"!==typeof n.isLeaf){const e=m(this,"isLeaf");(0,f.Lm)(e)&&(this.isLeafByUser=e)}if(!0!==t.lazy&&this.data?(this.setData(this.data),t.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&t.lazy&&t.defaultExpandAll&&!this.isLeafByUser&&this.expand(),(0,o.cy)(this.data)||u(this,this.data),!this.data)return;const r=t.defaultExpandedKeys,i=t.key;i&&!(0,l.A)(this.key)&&r&&r.includes(this.key)&&this.expand(null,t.autoExpandParent),i&&void 0!==t.currentNodeKey&&this.key===t.currentNodeKey&&(t.currentNode=this,t.currentNode.isCurrent=!0),t.lazy&&t._initDefaultCheckedNode(this),this.updateLeafState(),1!==this.level&&!0!==(null==(e=this.parent)?void 0:e.expanded)||(this.canFocus=!0)}setData(e){let t;(0,o.cy)(e)||u(this,e),this.data=e,this.childNodes=[],t=0===this.level&&(0,o.cy)(this.data)?this.data:m(this,"children")||[];for(let n=0,r=t.length;n-1)return e.childNodes[t+1]}return null}get previousSibling(){const e=this.parent;if(e){const t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}contains(e,t=!0){return(this.childNodes||[]).some(n=>n===e||t&&n.contains(e))}remove(){const e=this.parent;e&&e.removeChild(this)}insertChild(e,t,n){if(!e)throw new Error("InsertChild error: child is required.");if(!(e instanceof y)){if(!n){const n=this.getChildren(!0);(null==n?void 0:n.includes(e.data))||((0,f.b0)(t)||t<0?null==n||n.push(e.data):null==n||n.splice(t,0,e.data))}Object.assign(e,{parent:this,store:this.store}),e=(0,i.Kh)(new y(e)),e instanceof y&&e.initialize()}e.level=this.level+1,(0,f.b0)(t)||t<0?this.childNodes.push(e):this.childNodes.splice(t,0,e),this.updateLeafState()}insertBefore(e,t){let n;t&&(n=this.childNodes.indexOf(t)),this.insertChild(e,n)}insertAfter(e,t){let n;t&&(n=this.childNodes.indexOf(t),-1!==n&&(n+=1)),this.insertChild(e,n)}removeChild(e){const t=this.getChildren()||[],n=t.indexOf(e.data);n>-1&&t.splice(n,1);const r=this.childNodes.indexOf(e);r>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(r,1)),this.updateLeafState()}removeChildByData(e){let t=null;for(let n=0;n{if(t){let e=this.parent;while(e&&e.level>0)e.expanded=!0,e=e.parent}this.expanded=!0,e&&e(),_(this.childNodes,!0)};this.shouldLoadData()?this.loadData(e=>{(0,o.cy)(e)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||g(this),n())}):n()}doCreateChildren(e,t={}){e.forEach(e=>{this.insertChild(Object.assign({data:e},t),void 0,!0)})}collapse(){this.expanded=!1,_(this.childNodes,!1)}shouldLoadData(){return Boolean(!0===this.store.lazy&&this.store.load&&!this.loaded)}updateLeafState(){if(!0===this.store.lazy&&!0!==this.loaded&&"undefined"!==typeof this.isLeafByUser)return void(this.isLeaf=this.isLeafByUser);const e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}setChecked(e,t,n,r){if(this.indeterminate="half"===e,this.checked=!0===e,this.store.checkStrictly)return;if(!this.shouldLoadData()||this.store.checkDescendants){const{all:n,allWithoutDisable:i}=h(this.childNodes);this.isLeaf||n||!i||(this.checked=!1,e=!1);const o=()=>{if(t){const n=this.childNodes;for(let a=0,s=n.length;a{o(),g(this)},{checked:!1!==e});o()}const i=this.parent;i&&0!==i.level&&(n||g(i))}getChildren(e=!1){if(0===this.level)return this.data;const t=this.data;if(!t)return null;const n=this.store.props;let r="children";return n&&(r=n.children||"children"),(0,f.b0)(t[r])&&(t[r]=null),e&&!t[r]&&(t[r]=[]),t[r]}updateChildren(){const e=this.getChildren()||[],t=this.childNodes.map(e=>e.data),n={},r=[];e.forEach((e,i)=>{const o=e[c],a=!!o&&t.findIndex(e=>(null==e?void 0:e[c])===o)>=0;a?n[o]={index:i,data:e}:r.push({index:i,data:e})}),this.store.lazy||t.forEach(e=>{n[null==e?void 0:e[c]]||this.removeChildByData(e)}),r.forEach(({index:e,data:t})=>{this.insertChild({data:t},e)}),this.updateLeafState()}loadData(e,t={}){if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(t).length)e&&e.call(this);else{this.loading=!0;const n=n=>{this.childNodes=[],this.doCreateChildren(n,t),this.loaded=!0,this.loading=!1,this.updateLeafState(),e&&e.call(this,n)},r=()=>{this.loading=!1};this.store.load(this,n,r)}}eachNode(e){const t=[this];while(t.length){const n=t.shift();t.unshift(...n.childNodes),e(n)}}reInitChecked(){this.store.checkStrictly||g(this)}}class b{constructor(e){this.lazy=!1,this.checkStrictly=!1,this.autoExpandParent=!1,this.defaultExpandAll=!1,this.checkDescendants=!1,this.currentNode=null,this.currentNodeKey=null;for(const t in e)(0,o.$3)(e,t)&&(this[t]=e[t]);this.nodesMap={}}initialize(){if(this.root=new y({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){const e=this.load;e(this.root,e=>{this.root.doCreateChildren(e),this._initDefaultCheckedNodes()},o.tE)}else this._initDefaultCheckedNodes()}filter(e){const t=this.filterNodeMethod,n=this.lazy,i=async function(o){const a=o.root?o.root.childNodes:o.childNodes;for(const[n,s]of a.entries())s.visible=!!(null==t?void 0:t.call(s,e,s.data,s)),n%80===0&&n>0&&await(0,r.dY)(),await i(s);if(!o.visible&&a.length){let e=!0;e=!a.some(e=>e.visible),o.root?o.root.visible=!1===e:o.visible=!1===e}e&&o.visible&&!o.isLeaf&&(n&&!o.loaded||o.expand())};i(this)}setData(e){const t=e!==this.root.data;t?(this.nodesMap={},this.root.setData(e),this._initDefaultCheckedNodes(),this.setCurrentNodeKey(this.currentNodeKey)):this.root.updateChildren()}getNode(e){if(e instanceof y)return e;const t=(0,o.Gv)(e)?d(this.key,e):e;return this.nodesMap[t]||null}insertBefore(e,t){var n;const r=this.getNode(t);null==(n=r.parent)||n.insertBefore({data:e},r)}insertAfter(e,t){var n;const r=this.getNode(t);null==(n=r.parent)||n.insertAfter({data:e},r)}remove(e){const t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))}append(e,t){const n=(0,f.Xj)(t)?this.root:this.getNode(t);n&&n.insertChild({data:e})}_initDefaultCheckedNodes(){const e=this.defaultCheckedKeys||[],t=this.nodesMap;e.forEach(e=>{const n=t[e];n&&n.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(e){const t=this.defaultCheckedKeys||[];!(0,l.A)(e.key)&&t.includes(e.key)&&e.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())}registerNode(e){const t=this.key;if(e&&e.data)if(t){const t=e.key;(0,l.A)(t)||(this.nodesMap[t]=e)}else this.nodesMap[e.id]=e}deregisterNode(e){const t=this.key;t&&e&&e.data&&(e.childNodes.forEach(e=>{this.deregisterNode(e)}),delete this.nodesMap[e.key])}getCheckedNodes(e=!1,t=!1){const n=[],r=function(i){const o=i.root?i.root.childNodes:i.childNodes;o.forEach(i=>{(i.checked||t&&i.indeterminate)&&(!e||e&&i.isLeaf)&&n.push(i.data),r(i)})};return r(this),n}getCheckedKeys(e=!1){return this.getCheckedNodes(e).map(e=>(e||{})[this.key])}getHalfCheckedNodes(){const e=[],t=function(n){const r=n.root?n.root.childNodes:n.childNodes;r.forEach(n=>{n.indeterminate&&e.push(n.data),t(n)})};return t(this),e}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(e=>(e||{})[this.key])}_getAllNodes(){const e=[],t=this.nodesMap;for(const n in t)(0,o.$3)(t,n)&&e.push(t[n]);return e}updateChildren(e,t){const n=this.nodesMap[e];if(!n)return;const r=n.childNodes;for(let i=r.length-1;i>=0;i--){const e=r[i];this.remove(e.data)}for(let i=0,o=t.length;ie.level-t.level),i=Object.create(null),o=Object.keys(n);r.forEach(e=>e.setChecked(!1,!1));const a=t=>{t.childNodes.forEach(t=>{var n;i[t.data[e]]=!0,(null==(n=t.childNodes)?void 0:n.length)&&a(t)})};for(let s=0,l=r.length;s{t.isLeaf||t.setChecked(!1,!1),e(t)})};e(n)}}else n.checked&&!i[l]&&n.setChecked(!1,!1)}}setCheckedNodes(e,t=!1){const n=this.key,r={};e.forEach(e=>{r[(e||{})[n]]=!0}),this._setCheckedKeys(n,t,r)}setCheckedKeys(e,t=!1){this.defaultCheckedKeys=e;const n=this.key,r={};e.forEach(e=>{r[e]=!0}),this._setCheckedKeys(n,t,r)}setDefaultExpandedKeys(e){e=e||[],this.defaultExpandedKeys=e,e.forEach(e=>{const t=this.getNode(e);t&&t.expand(null,this.autoExpandParent)})}setChecked(e,t,n){const r=this.getNode(e);r&&r.setChecked(!!t,n)}getCurrentNode(){return this.currentNode}setCurrentNode(e){const t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0}setUserCurrentNode(e,t=!0){var n;const r=e[this.key],i=this.nodesMap[r];this.setCurrentNode(i),t&&this.currentNode&&this.currentNode.level>1&&(null==(n=this.currentNode.parent)||n.expand(null,!0))}setCurrentNodeKey(e,t=!0){var n;if(this.currentNodeKey=e,(0,f.Xj)(e))return this.currentNode&&(this.currentNode.isCurrent=!1),void(this.currentNode=null);const r=this.getNode(e);r&&(this.setCurrentNode(r),t&&this.currentNode&&this.currentNode.level>1&&(null==(n=this.currentNode.parent)||n.expand(null,!0)))}}var k=n(78396),w=n(65980);const x=(0,r.pM)({name:"ElCollapseTransition"}),C=(0,r.pM)({...x,setup(e){const t=(0,w.DU)("collapse-transition"),n=e=>{e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},o={beforeEnter(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:0!==e.scrollHeight?e.style.maxHeight=`${e.scrollHeight}px`:e.style.maxHeight=0,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow="hidden"})},afterEnter(e){e.style.maxHeight="",e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){0!==e.scrollHeight&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>((0,r.uX)(),(0,r.Wv)(a.eB,(0,r.v6)({name:(0,i.R1)(t).b()},(0,r.Tb)(o)),{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},16,["name"]))}});var S=(0,k.A)(C,[["__file","collapse-transition.vue"]]),j=n(64769);const T=(0,j.GU)(S);var L=n(5728),E=n(91361),A=n(48548),M=n(50819),D=n(18472);const O=(0,M.b_)({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:D.I,default:""},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}});var N=n(72207);const z=(0,r.pM)({name:"ElText"}),I=(0,r.pM)({...z,props:O,setup(e){const t=e,n=(0,i.KR)(),a=(0,N.NV)(),s=(0,w.DU)("text"),l=(0,r.EW)(()=>[s.b(),s.m(t.type),s.m(a.value),s.is("truncated",t.truncated),s.is("line-clamp",!(0,f.b0)(t.lineClamp))]),c=()=>{var e,i,o,a,s,l,c;const u=(0,r.OA)().title;if(u)return;let d=!1;const p=(null==(e=n.value)?void 0:e.textContent)||"";if(t.truncated){const e=null==(i=n.value)?void 0:i.offsetWidth,t=null==(o=n.value)?void 0:o.scrollWidth;e&&t&&t>e&&(d=!0)}else if(!(0,f.b0)(t.lineClamp)){const e=null==(a=n.value)?void 0:a.offsetHeight,t=null==(s=n.value)?void 0:s.scrollHeight;e&&t&&t>e&&(d=!0)}d?null==(l=n.value)||l.setAttribute("title",p):null==(c=n.value)||c.removeAttribute("title")};return(0,r.sV)(c),(0,r.$u)(c),(e,t)=>((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.tag),{ref_key:"textRef",ref:n,class:(0,o.C4)((0,i.R1)(l)),style:(0,o.Tr)({"-webkit-line-clamp":e.lineClamp})},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},8,["class","style"]))}});var F=(0,k.A)(I,[["__file","text.vue"]]);const P=(0,j.GU)(F),R="RootTree",q="NodeInstance",B="TreeNodeMap",$=(0,r.pM)({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(e){const t=(0,w.DU)("tree"),n=(0,r.WQ)(q),i=(0,r.WQ)(R);return()=>{const o=e.node,{data:a,store:s}=o;return e.renderContent?e.renderContent(r.h,{_self:n,node:o,data:a,store:s}):(0,r.RG)(i.ctx.slots,"default",{node:o,data:a},()=>[(0,r.h)(P,{tag:"span",truncated:!0,class:t.be("node","label")},()=>[o.label])])}}});var H=(0,k.A)($,[["__file","tree-node-content.vue"]]);function W(e){const t=(0,r.WQ)(B,null),n={treeNodeExpand:t=>{var n;e.node!==t&&(null==(n=e.node)||n.collapse())},children:[]};return t&&t.children.push(n),(0,r.Gt)(B,n),{broadcastExpanded:t=>{if(e.accordion)for(const e of n.children)e.treeNodeExpand(t)}}}var U=n(76031);const V=Symbol("dragEvents");function K({props:e,ctx:t,el$:n,dropIndicator$:a,store:s}){const l=(0,w.DU)("tree"),c=(0,i.KR)({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null}),u=({event:n,treeNode:r})=>{if(n.dataTransfer){if((0,o.Tn)(e.allowDrag)&&!e.allowDrag(r.node))return n.preventDefault(),!1;n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain","")}catch(i){}c.value.draggingNode=r,t.emit("node-drag-start",r.node,n)}},d=({event:r,treeNode:i})=>{if(!r.dataTransfer)return;const s=i,u=c.value.dropNode;u&&u.node.id!==s.node.id&&(0,U.vy)(u.$el,l.is("drop-inner"));const d=c.value.draggingNode;if(!d||!s)return;let p=!0,f=!0,h=!0,g=!0;(0,o.Tn)(e.allowDrop)&&(p=e.allowDrop(d.node,s.node,"prev"),g=f=e.allowDrop(d.node,s.node,"inner"),h=e.allowDrop(d.node,s.node,"next")),r.dataTransfer.dropEffect=f||p||h?"move":"none",(p||f||h)&&(null==u?void 0:u.node.id)!==s.node.id&&(u&&t.emit("node-drag-leave",d.node,u.node,r),t.emit("node-drag-enter",d.node,s.node,r)),c.value.dropNode=p||f||h?s:null,s.node.nextSibling===d.node&&(h=!1),s.node.previousSibling===d.node&&(p=!1),s.node.contains(d.node,!1)&&(f=!1),(d.node===s.node||d.node.contains(s.node))&&(p=!1,f=!1,h=!1);const m=s.$el,_=m.querySelector(`.${l.be("node","content")}`).getBoundingClientRect(),v=n.value.getBoundingClientRect();let y;const b=p?f?.25:h?.45:1:-1,k=h?f?.75:p?.55:0:1;let w=-9999;const x=r.clientY-_.top;y=x<_.height*b?"before":x>_.height*k?"after":f?"inner":"none";const C=m.querySelector(`.${l.be("node","expand-icon")}`).getBoundingClientRect(),S=a.value;"before"===y?w=C.top-v.top:"after"===y&&(w=C.bottom-v.top),S.style.top=`${w}px`,S.style.left=C.right-v.left+"px","inner"===y?(0,U.iQ)(m,l.is("drop-inner")):(0,U.vy)(m,l.is("drop-inner")),c.value.showDropIndicator="before"===y||"after"===y,c.value.allowDrop=c.value.showDropIndicator||g,c.value.dropType=y,t.emit("node-drag-over",d.node,s.node,r)},p=e=>{var n,r;const{draggingNode:i,dropType:o,dropNode:a}=c.value;if(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),(null==i?void 0:i.node.data)&&a){const c={data:i.node.data};"none"!==o&&i.node.remove(),"before"===o?null==(n=a.node.parent)||n.insertBefore(c,a.node):"after"===o?null==(r=a.node.parent)||r.insertAfter(c,a.node):"inner"===o&&a.node.insertChild(c),"none"!==o&&(s.value.registerNode(c),s.value.key&&i.node.eachNode(e=>{var t;null==(t=s.value.nodesMap[e.data[s.value.key]])||t.setChecked(e.checked,!s.value.checkStrictly)})),(0,U.vy)(a.$el,l.is("drop-inner")),t.emit("node-drag-end",i.node,a.node,o,e),"none"!==o&&t.emit("node-drop",i.node,a.node,o,e)}i&&!a&&t.emit("node-drag-end",i.node,null,o,e),c.value.showDropIndicator=!1,c.value.draggingNode=null,c.value.dropNode=null,c.value.allowDrop=!0};return(0,r.Gt)(V,{treeNodeDragStart:u,treeNodeDragOver:d,treeNodeDragEnd:p}),{dragState:c}}const X=(0,r.pM)({name:"ElTreeNode",components:{ElCollapseTransition:T,ElCheckbox:L.dI,NodeContent:H,ElIcon:E.tk,Loading:A.Rhj},props:{node:{type:y,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:Boolean},emits:["node-expand"],setup(e,t){const n=(0,w.DU)("tree"),{broadcastExpanded:a}=W(e),s=(0,r.WQ)(R),l=(0,i.KR)(!1),c=(0,i.KR)(!1),u=(0,i.KR)(),f=(0,i.KR)(),h=(0,i.KR)(),g=(0,r.WQ)(V),m=(0,r.nI)();(0,r.Gt)(q,m),e.node.expanded&&(l.value=!0,c.value=!0);const _=s.props.props["children"]||"children";(0,r.wB)(()=>{var t;const n=null==(t=e.node.data)?void 0:t[_];return n&&[...n]},()=>{e.node.updateChildren()}),(0,r.wB)(()=>e.node.indeterminate,t=>{b(e.node.checked,t)}),(0,r.wB)(()=>e.node.checked,t=>{b(t,e.node.indeterminate)}),(0,r.wB)(()=>e.node.childNodes.length,()=>e.node.reInitChecked()),(0,r.wB)(()=>e.node.expanded,e=>{(0,r.dY)(()=>l.value=e),e&&(c.value=!0)});const v=e=>d(s.props.nodeKey,e.data),y=t=>{const n=e.props.class;if(!n)return{};let r;if((0,o.Tn)(n)){const{data:e}=t;r=n(e,t)}else r=n;return(0,o.Kg)(r)?{[r]:!0}:r},b=(t,n)=>{u.value===t&&f.value===n||s.ctx.emit("check-change",e.node.data,t,n),u.value=t,f.value=n},k=t=>{p(s.store,s.ctx.emit,()=>{var t;const n=null==(t=null==s?void 0:s.props)?void 0:t.nodeKey;if(n){const t=v(e.node);s.store.value.setCurrentNodeKey(t)}else s.store.value.setCurrentNode(e.node)}),s.currentNode.value=e.node,s.props.expandOnClickNode&&C(),(s.props.checkOnClickNode||e.node.isLeaf&&s.props.checkOnClickLeaf&&e.showCheckbox)&&!e.node.disabled&&S(!e.node.checked),s.ctx.emit("node-click",e.node.data,e.node,m,t)},x=t=>{var n;(null==(n=s.instance.vnode.props)?void 0:n["onNodeContextmenu"])&&(t.stopPropagation(),t.preventDefault()),s.ctx.emit("node-contextmenu",t,e.node.data,e.node,m)},C=()=>{e.node.isLeaf||(l.value?(s.ctx.emit("node-collapse",e.node.data,e.node,m),e.node.collapse()):e.node.expand(()=>{t.emit("node-expand",e.node.data,e.node,m)}))},S=t=>{e.node.setChecked(t,!(null==s?void 0:s.props.checkStrictly)),(0,r.dY)(()=>{const t=s.store.value;s.ctx.emit("check",e.node.data,{checkedNodes:t.getCheckedNodes(),checkedKeys:t.getCheckedKeys(),halfCheckedNodes:t.getHalfCheckedNodes(),halfCheckedKeys:t.getHalfCheckedKeys()})})},j=(e,t,n)=>{a(t),s.ctx.emit("node-expand",e,t,n)},T=t=>{s.props.draggable&&g.treeNodeDragStart({event:t,treeNode:e})},L=t=>{t.preventDefault(),s.props.draggable&&g.treeNodeDragOver({event:t,treeNode:{$el:h.value,node:e.node}})},E=e=>{e.preventDefault()},M=e=>{s.props.draggable&&g.treeNodeDragEnd(e)};return{ns:n,node$:h,tree:s,expanded:l,childNodeRendered:c,oldChecked:u,oldIndeterminate:f,getNodeKey:v,getNodeClass:y,handleSelectChange:b,handleClick:k,handleContextMenu:x,handleExpandIconClick:C,handleCheckChange:S,handleChildNodeExpand:j,handleDragStart:T,handleDragOver:L,handleDrop:E,handleDragEnd:M,CaretRight:A.K3R}}});function G(e,t,n,i,s,l){const c=(0,r.g2)("el-icon"),u=(0,r.g2)("el-checkbox"),d=(0,r.g2)("loading"),p=(0,r.g2)("node-content"),f=(0,r.g2)("el-tree-node"),h=(0,r.g2)("el-collapse-transition");return(0,r.bo)(((0,r.uX)(),(0,r.CE)("div",{ref:"node$",class:(0,o.C4)([e.ns.b("node"),e.ns.is("expanded",e.expanded),e.ns.is("current",e.node.isCurrent),e.ns.is("hidden",!e.node.visible),e.ns.is("focusable",!e.node.disabled),e.ns.is("checked",!e.node.disabled&&e.node.checked),e.getNodeClass(e.node)]),role:"treeitem",tabindex:"-1","aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:(0,a.D$)(e.handleClick,["stop"]),onContextmenu:e.handleContextMenu,onDragstart:(0,a.D$)(e.handleDragStart,["stop"]),onDragover:(0,a.D$)(e.handleDragOver,["stop"]),onDragend:(0,a.D$)(e.handleDragEnd,["stop"]),onDrop:(0,a.D$)(e.handleDrop,["stop"])},[(0,r.Lk)("div",{class:(0,o.C4)(e.ns.be("node","content")),style:(0,o.Tr)({paddingLeft:(e.node.level-1)*e.tree.props.indent+"px"})},[e.tree.props.icon||e.CaretRight?((0,r.uX)(),(0,r.Wv)(c,{key:0,class:(0,o.C4)([e.ns.be("node","expand-icon"),e.ns.is("leaf",e.node.isLeaf),{expanded:!e.node.isLeaf&&e.expanded}]),onClick:(0,a.D$)(e.handleExpandIconClick,["stop"])},{default:(0,r.k6)(()=>[((0,r.uX)(),(0,r.Wv)((0,r.$y)(e.tree.props.icon||e.CaretRight)))]),_:1},8,["class","onClick"])):(0,r.Q3)("v-if",!0),e.showCheckbox?((0,r.uX)(),(0,r.Wv)(u,{key:1,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:(0,a.D$)(()=>{},["stop"]),onChange:e.handleCheckChange},null,8,["model-value","indeterminate","disabled","onClick","onChange"])):(0,r.Q3)("v-if",!0),e.node.loading?((0,r.uX)(),(0,r.Wv)(c,{key:2,class:(0,o.C4)([e.ns.be("node","loading-icon"),e.ns.is("loading")])},{default:(0,r.k6)(()=>[(0,r.bF)(d)]),_:1},8,["class"])):(0,r.Q3)("v-if",!0),(0,r.bF)(p,{node:e.node,"render-content":e.renderContent},null,8,["node","render-content"])],6),(0,r.bF)(h,null,{default:(0,r.k6)(()=>[!e.renderAfterExpand||e.childNodeRendered?(0,r.bo)(((0,r.uX)(),(0,r.CE)("div",{key:0,class:(0,o.C4)(e.ns.be("node","children")),role:"group","aria-expanded":e.expanded,onClick:(0,a.D$)(()=>{},["stop"])},[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.node.childNodes,t=>((0,r.uX)(),(0,r.Wv)(f,{key:e.getNodeKey(t),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:t,accordion:e.accordion,props:e.props,onNodeExpand:e.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","accordion","props","onNodeExpand"]))),128))],10,["aria-expanded","onClick"])),[[a.aG,e.expanded]]):(0,r.Q3)("v-if",!0)]),_:1})],42,["aria-expanded","aria-disabled","aria-checked","draggable","data-key","onClick","onContextmenu","onDragstart","onDragover","onDragend","onDrop"])),[[a.aG,e.node.visible]])}var Q=(0,k.A)(X,[["render",G],["__file","tree-node.vue"]]),Z=n(97786),Y=n(53344);function J({el$:e},t){const n=(0,w.DU)("tree");function i(e,n){var r,i;const o=t.value.getNode(e[n].dataset.key);return o.canFocus&&o.visible&&((null==(r=o.parent)?void 0:r.expanded)||0===(null==(i=o.parent)?void 0:i.level))}(0,r.sV)(()=>{a()}),(0,r.$u)(()=>{const t=Array.from(e.value.querySelectorAll("input[type=checkbox]"));t.forEach(e=>{e.setAttribute("tabindex","-1")})});const o=t=>{const r=t.target;if(!r.className.includes(n.b("node")))return;const o=t.code,a=Array.from(e.value.querySelectorAll(`.${n.is("focusable")}[role=treeitem]`)),s=a.indexOf(r);let l;if([Y.R.up,Y.R.down].includes(o)){if(t.preventDefault(),o===Y.R.up){l=-1===s?0:0!==s?s-1:a.length-1;const e=l;while(1){if(i(a,l))break;if(l--,l===e){l=-1;break}l<0&&(l=a.length-1)}}else{l=-1===s?0:s=a.length&&(l=0)}}-1!==l&&a[l].focus()}[Y.R.left,Y.R.right].includes(o)&&(t.preventDefault(),r.click());const c=r.querySelector('[type="checkbox"]');[Y.R.enter,Y.R.numpadEnter,Y.R.space].includes(o)&&c&&(t.preventDefault(),c.click())};(0,Z.MLh)(e,"keydown",o);const a=()=>{var t;if(!e.value)return;const r=Array.from(e.value.querySelectorAll(`.${n.is("focusable")}[role=treeitem]`)),i=Array.from(e.value.querySelectorAll("input[type=checkbox]"));i.forEach(e=>{e.setAttribute("tabindex","-1")});const o=e.value.querySelectorAll(`.${n.is("checked")}[role=treeitem]`);o.length?o[0].setAttribute("tabindex","0"):null==(t=r[0])||t.setAttribute("tabindex","0")}}var ee=n(46996),te=n(25343),ne=n(87404),re=n(67959);const ie=(0,r.pM)({name:"ElTree",components:{ElTreeNode:Q},props:{data:{type:(0,M.jq)(Array),default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkOnClickLeaf:{type:Boolean,default:!0},checkDescendants:Boolean,autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:{type:(0,M.jq)(Function)},showCheckbox:Boolean,draggable:Boolean,allowDrag:{type:(0,M.jq)(Function)},allowDrop:{type:(0,M.jq)(Function)},props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:Boolean,highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},icon:{type:te.Ze}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(e,t){const{t:n}=(0,ne.Ym)(),o=(0,w.DU)("tree"),a=(0,r.WQ)(s.u,null),l=(0,i.KR)(new b({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));l.value.initialize();const c=(0,i.KR)(l.value.root),u=(0,i.KR)(null),f=(0,i.KR)(null),h=(0,i.KR)(null),{broadcastExpanded:g}=W(e),{dragState:m}=K({props:e,ctx:t,el$:f,dropIndicator$:h,store:l});J({el$:f},l);const _=(0,r.EW)(()=>{const{childNodes:e}=c.value,t=!!a&&0!==a.hasFilteredOptions;return(!e||0===e.length||e.every(({visible:e})=>!e))&&!t});(0,r.wB)(()=>e.currentNodeKey,e=>{l.value.setCurrentNodeKey(null!=e?e:null)}),(0,r.wB)(()=>e.defaultCheckedKeys,(e,t)=>{(0,ee.A)(e,t)||l.value.setDefaultCheckedKey(null!=e?e:[])}),(0,r.wB)(()=>e.defaultExpandedKeys,e=>{l.value.setDefaultExpandedKeys(null!=e?e:[])}),(0,r.wB)(()=>e.data,e=>{l.value.setData(e)},{deep:!0}),(0,r.wB)(()=>e.checkStrictly,e=>{l.value.checkStrictly=e});const v=t=>{if(!e.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");l.value.filter(t)},y=t=>d(e.nodeKey,t.data),k=t=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const n=l.value.getNode(t);if(!n)return[];const r=[n.data];let i=n.parent;while(i&&i!==c.value)r.push(i.data),i=i.parent;return r.reverse()},x=(e,t)=>l.value.getCheckedNodes(e,t),C=e=>l.value.getCheckedKeys(e),S=()=>{const e=l.value.getCurrentNode();return e?e.data:null},j=()=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const t=S();return t?t[e.nodeKey]:null},T=(t,n)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");l.value.setCheckedNodes(t,n)},L=(t,n)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");l.value.setCheckedKeys(t,n)},E=(e,t,n)=>{l.value.setChecked(e,t,n)},A=()=>l.value.getHalfCheckedNodes(),M=()=>l.value.getHalfCheckedKeys(),D=(n,r=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");p(l,t.emit,()=>{g(n),l.value.setUserCurrentNode(n,r)})},O=(n,r=!0)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");p(l,t.emit,()=>{g(),l.value.setCurrentNodeKey(null!=n?n:null,r)})},N=e=>l.value.getNode(e),z=e=>{l.value.remove(e)},I=(e,t)=>{l.value.append(e,t)},F=(e,t)=>{l.value.insertBefore(e,t)},P=(e,t)=>{l.value.insertAfter(e,t)},q=(e,n,r)=>{g(n),t.emit("node-expand",e,n,r)},B=(t,n)=>{if(!e.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");l.value.updateChildren(t,n)};return(0,r.Gt)(R,{ctx:t,props:e,store:l,root:c,currentNode:u,instance:(0,r.nI)()}),(0,r.Gt)(re.w,void 0),{ns:o,store:l,root:c,currentNode:u,dragState:m,el$:f,dropIndicator$:h,isEmpty:_,filter:v,getNodeKey:y,getNodePath:k,getCheckedNodes:x,getCheckedKeys:C,getCurrentNode:S,getCurrentKey:j,setCheckedNodes:T,setCheckedKeys:L,setChecked:E,getHalfCheckedNodes:A,getHalfCheckedKeys:M,setCurrentNode:D,setCurrentKey:O,t:n,getNode:N,remove:z,append:I,insertBefore:F,insertAfter:P,handleNodeExpand:q,updateKeyChildren:B}}});function oe(e,t,n,i,s,l){const c=(0,r.g2)("el-tree-node");return(0,r.uX)(),(0,r.CE)("div",{ref:"el$",class:(0,o.C4)([e.ns.b(),e.ns.is("dragging",!!e.dragState.draggingNode),e.ns.is("drop-not-allow",!e.dragState.allowDrop),e.ns.is("drop-inner","inner"===e.dragState.dropType),{[e.ns.m("highlight-current")]:e.highlightCurrent}]),role:"tree"},[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e.root.childNodes,t=>((0,r.uX)(),(0,r.Wv)(c,{key:e.getNodeKey(t),node:t,props:e.props,accordion:e.accordion,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,["node","props","accordion","render-after-expand","show-checkbox","render-content","onNodeExpand"]))),128)),e.isEmpty?((0,r.uX)(),(0,r.CE)("div",{key:0,class:(0,o.C4)(e.ns.e("empty-block"))},[(0,r.RG)(e.$slots,"empty",{},()=>{var t;return[(0,r.Lk)("span",{class:(0,o.C4)(e.ns.e("empty-text"))},(0,o.v_)(null!=(t=e.emptyText)?t:e.t("el.tree.emptyText")),3)]})],2)):(0,r.Q3)("v-if",!0),(0,r.bo)((0,r.Lk)("div",{ref:"dropIndicator$",class:(0,o.C4)(e.ns.e("drop-indicator"))},null,2),[[a.aG,e.dragState.showDropIndicator]])],2)}var ae=(0,k.A)(ie,[["render",oe],["__file","tree.vue"]]);const se=(0,j.GU)(ae)},29532:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";function t(e){var t;while(null!=(t=e.next()))if("`"==t&&!e.eat("`"))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null}function n(e){var t;while(null!=(t=e.next()))if('"'==t&&!e.eat('"'))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null}function r(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"variable-2"):e.eat('"')?(e.match(/^.*"/),"variable-2"):e.eat("`")?(e.match(/^.*`/),"variable-2"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function i(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"variable-2":null}e.defineMode("sql",function(t,n){var r=n.client||{},i=n.atoms||{false:!0,true:!0,null:!0},l=n.builtin||a(s),c=n.keywords||a(o),u=n.operatorChars||/^[*+\-%<>!=&|~^\/]/,d=n.support||{},p=n.hooks||{},f=n.dateSQL||{date:!0,time:!0,timestamp:!0},h=!1!==n.backslashStringEscapes,g=n.brackets||/^[\{}\(\)\[\]]/,m=n.punctuation||/^[;.,:]/;function _(e,t){var n=e.next();if(p[n]){var o=p[n](e,t);if(!1!==o)return o}if(d.hexNumber&&("0"==n&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==n||"X"==n)&&e.match(/^'[0-9a-fA-F]*'/)))return"number";if(d.binaryNumber&&(("b"==n||"B"==n)&&e.match(/^'[01]*'/)||"0"==n&&e.match(/^b[01]+/)))return"number";if(n.charCodeAt(0)>47&&n.charCodeAt(0)<58)return e.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),d.decimallessFloat&&e.match(/^\.(?!\.)/),"number";if("?"==n&&(e.eatSpace()||e.eol()||e.eat(";")))return"variable-3";if("'"==n||'"'==n&&d.doubleQuote)return t.tokenize=v(n),t.tokenize(e,t);if((d.nCharCast&&("n"==n||"N"==n)||d.charsetCast&&"_"==n&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(d.escapeConstant&&("e"==n||"E"==n)&&("'"==e.peek()||'"'==e.peek()&&d.doubleQuote))return t.tokenize=function(e,t){return(t.tokenize=v(e.next(),!0))(e,t)},"keyword";if(d.commentSlashSlash&&"/"==n&&e.eat("/"))return e.skipToEnd(),"comment";if(d.commentHash&&"#"==n||"-"==n&&e.eat("-")&&(!d.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==n&&e.eat("*"))return t.tokenize=y(1),t.tokenize(e,t);if("."!=n){if(u.test(n))return e.eatWhile(u),"operator";if(g.test(n))return"bracket";if(m.test(n))return e.eatWhile(m),"punctuation";if("{"==n&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var a=e.current().toLowerCase();return f.hasOwnProperty(a)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":i.hasOwnProperty(a)?"atom":l.hasOwnProperty(a)?"type":c.hasOwnProperty(a)?"keyword":r.hasOwnProperty(a)?"builtin":null}return d.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":e.match(/^\.+/)?null:e.match(/^[\w\d_$#]+/)?"variable-2":void 0}function v(e,t){return function(n,r){var i,o=!1;while(null!=(i=n.next())){if(i==e&&!o){r.tokenize=_;break}o=(h||t)&&!o&&"\\"==i}return"string"}}function y(e){return function(t,n){var r=t.match(/^.*?(\/\*|\*\/)/);return r?"/*"==r[1]?n.tokenize=y(e+1):n.tokenize=e>1?y(e-1):_:t.skipToEnd(),"comment"}}function b(e,t,n){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:n}}function k(e){e.indent=e.context.indent,e.context=e.context.prev}return{startState:function(){return{tokenize:_,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),t.tokenize==_&&e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"==n)return n;t.context&&null==t.context.align&&(t.context.align=!0);var r=e.current();return"("==r?b(e,t,")"):"["==r?b(e,t,"]"):t.context&&t.context.type==r&&k(t),n},indent:function(n,r){var i=n.context;if(!i)return e.Pass;var o=r.charAt(0)==i.type;return i.align?i.col+(o?0:1):i.indent+(o?0:t.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:d.commentSlashSlash?"//":d.commentHash?"#":"--",closeBrackets:"()[]{}''\"\"``",config:n}});var o="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function a(e){for(var t={},n=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:a("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":r}}),e.defineMIME("text/x-mysql",{name:"sql",client:a("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:a(o+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:a("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:a("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:a("date time timestamp"),support:a("decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":r,"`":t,"\\":i}}),e.defineMIME("text/x-mariadb",{name:"sql",client:a("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:a(o+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:a("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:a("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:a("date time timestamp"),support:a("decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":r,"`":t,"\\":i}}),e.defineMIME("text/x-sqlite",{name:"sql",client:a("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:a(o+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:a("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:a("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:a("date time timestamp datetime"),support:a("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":r,":":r,"?":r,$:r,'"':n,"`":t}}),e.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:a("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:a("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:a("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:a("commentSlashSlash decimallessFloat"),hooks:{}}),e.defineMIME("text/x-plsql",{name:"sql",client:a("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:a("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:a("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:a("date time timestamp"),support:a("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),e.defineMIME("text/x-hive",{name:"sql",keywords:a("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:a("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:a("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:a("date timestamp"),support:a("doubleQuote binaryNumber hexNumber")}),e.defineMIME("text/x-pgsql",{name:"sql",client:a("source"),keywords:a(o+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:a("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time zone timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:a("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,identifierQuote:'"',hooks:{'"':n},dateSQL:a("date time timestamp"),support:a("decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),e.defineMIME("text/x-gql",{name:"sql",keywords:a("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:a("false true"),builtin:a("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),e.defineMIME("text/x-gpsql",{name:"sql",client:a("source"),keywords:a("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:a("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:a("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:a("date time timestamp"),support:a("decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),e.defineMIME("text/x-sparksql",{name:"sql",keywords:a("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:a("abs acos acosh add_months aggregate and any approx_count_distinct approx_percentile array array_contains array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_repeat array_sort array_union arrays_overlap arrays_zip ascii asin asinh assert_true atan atan2 atanh avg base64 between bigint bin binary bit_and bit_count bit_get bit_length bit_or bit_xor bool_and bool_or boolean bround btrim cardinality case cast cbrt ceil ceiling char char_length character_length chr coalesce collect_list collect_set concat concat_ws conv corr cos cosh cot count count_if count_min_sketch covar_pop covar_samp crc32 cume_dist current_catalog current_database current_date current_timestamp current_timezone current_user date date_add date_format date_from_unix_date date_part date_sub date_trunc datediff day dayofmonth dayofweek dayofyear decimal decode degrees delimited dense_rank div double e element_at elt encode every exists exp explode explode_outer expm1 extract factorial filter find_in_set first first_value flatten float floor forall format_number format_string from_csv from_json from_unixtime from_utc_timestamp get_json_object getbit greatest grouping grouping_id hash hex hour hypot if ifnull in initcap inline inline_outer input_file_block_length input_file_block_start input_file_name inputformat instr int isnan isnotnull isnull java_method json_array_length json_object_keys json_tuple kurtosis lag last last_day last_value lcase lead least left length levenshtein like ln locate log log10 log1p log2 lower lpad ltrim make_date make_dt_interval make_interval make_timestamp make_ym_interval map map_concat map_entries map_filter map_from_arrays map_from_entries map_keys map_values map_zip_with max max_by md5 mean min min_by minute mod monotonically_increasing_id month months_between named_struct nanvl negative next_day not now nth_value ntile nullif nvl nvl2 octet_length or outputformat overlay parse_url percent_rank percentile percentile_approx pi pmod posexplode posexplode_outer position positive pow power printf quarter radians raise_error rand randn random rank rcfile reflect regexp regexp_extract regexp_extract_all regexp_like regexp_replace repeat replace reverse right rint rlike round row_number rpad rtrim schema_of_csv schema_of_json second sentences sequence sequencefile serde session_window sha sha1 sha2 shiftleft shiftright shiftrightunsigned shuffle sign signum sin sinh size skewness slice smallint some sort_array soundex space spark_partition_id split sqrt stack std stddev stddev_pop stddev_samp str_to_map string struct substr substring substring_index sum tan tanh textfile timestamp timestamp_micros timestamp_millis timestamp_seconds tinyint to_csv to_date to_json to_timestamp to_unix_timestamp to_utc_timestamp transform transform_keys transform_values translate trim trunc try_add try_divide typeof ucase unbase64 unhex uniontype unix_date unix_micros unix_millis unix_seconds unix_timestamp upper uuid var_pop var_samp variance version weekday weekofyear when width_bucket window xpath xpath_boolean xpath_double xpath_float xpath_int xpath_long xpath_number xpath_short xpath_string xxhash64 year zip_with"),atoms:a("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:a("date time timestamp"),support:a("doubleQuote zerolessFloat")}),e.defineMIME("text/x-esper",{name:"sql",client:a("source"),keywords:a("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:a("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:a("time"),support:a("decimallessFloat zerolessFloat binaryNumber hexNumber")}),e.defineMIME("text/x-trino",{name:"sql",keywords:a("abs absent acos add admin after all all_match alter analyze and any any_match approx_distinct approx_most_frequent approx_percentile approx_set arbitrary array_agg array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_sort array_union arrays_overlap as asc asin at at_timezone atan atan2 authorization avg bar bernoulli beta_cdf between bing_tile bing_tile_at bing_tile_coordinates bing_tile_polygon bing_tile_quadkey bing_tile_zoom_level bing_tiles_around bit_count bitwise_and bitwise_and_agg bitwise_left_shift bitwise_not bitwise_or bitwise_or_agg bitwise_right_shift bitwise_right_shift_arithmetic bitwise_xor bool_and bool_or both by call cardinality cascade case cast catalogs cbrt ceil ceiling char2hexint checksum chr classify coalesce codepoint column columns combinations comment commit committed concat concat_ws conditional constraint contains contains_sequence convex_hull_agg copartition corr cos cosh cosine_similarity count count_if covar_pop covar_samp crc32 create cross cube cume_dist current current_catalog current_date current_groups current_path current_role current_schema current_time current_timestamp current_timezone current_user data date_add date_diff date_format date_parse date_trunc day day_of_month day_of_week day_of_year deallocate default define definer degrees delete dense_rank deny desc describe descriptor distinct distributed dow doy drop e element_at else empty empty_approx_set encoding end error escape evaluate_classifier_predictions every except excluding execute exists exp explain extract false features fetch filter final first first_value flatten floor following for format format_datetime format_number from from_base from_base32 from_base64 from_base64url from_big_endian_32 from_big_endian_64 from_encoded_polyline from_geojson_geometry from_hex from_ieee754_32 from_ieee754_64 from_iso8601_date from_iso8601_timestamp from_iso8601_timestamp_nanos from_unixtime from_unixtime_nanos from_utf8 full functions geometric_mean geometry_from_hadoop_shape geometry_invalid_reason geometry_nearest_points geometry_to_bing_tiles geometry_union geometry_union_agg grant granted grants graphviz great_circle_distance greatest group grouping groups hamming_distance hash_counts having histogram hmac_md5 hmac_sha1 hmac_sha256 hmac_sha512 hour human_readable_seconds if ignore in including index infinity initial inner input insert intersect intersection_cardinality into inverse_beta_cdf inverse_normal_cdf invoker io is is_finite is_infinite is_json_scalar is_nan isolation jaccard_index join json_array json_array_contains json_array_get json_array_length json_exists json_extract json_extract_scalar json_format json_object json_parse json_query json_size json_value keep key keys kurtosis lag last last_day_of_month last_value lateral lead leading learn_classifier learn_libsvm_classifier learn_libsvm_regressor learn_regressor least left length level levenshtein_distance like limit line_interpolate_point line_interpolate_points line_locate_point listagg ln local localtime localtimestamp log log10 log2 logical lower lpad ltrim luhn_check make_set_digest map_agg map_concat map_entries map_filter map_from_entries map_keys map_union map_values map_zip_with match match_recognize matched matches materialized max max_by md5 measures merge merge_set_digest millisecond min min_by minute mod month multimap_agg multimap_from_entries murmur3 nan natural next nfc nfd nfkc nfkd ngrams no none none_match normal_cdf normalize not now nth_value ntile null nullif nulls numeric_histogram object objectid_timestamp of offset omit on one only option or order ordinality outer output over overflow parse_data_size parse_datetime parse_duration partition partitions passing past path pattern per percent_rank permute pi position pow power preceding prepare privileges properties prune qdigest_agg quarter quotes radians rand random range rank read recursive reduce reduce_agg refresh regexp_count regexp_extract regexp_extract_all regexp_like regexp_position regexp_replace regexp_split regr_intercept regr_slope regress rename render repeat repeatable replace reset respect restrict returning reverse revoke rgb right role roles rollback rollup round row_number rows rpad rtrim running scalar schema schemas second security seek select sequence serializable session set sets sha1 sha256 sha512 show shuffle sign simplify_geometry sin skewness skip slice some soundex spatial_partitioning spatial_partitions split split_part split_to_map split_to_multimap spooky_hash_v2_32 spooky_hash_v2_64 sqrt st_area st_asbinary st_astext st_boundary st_buffer st_centroid st_contains st_convexhull st_coorddim st_crosses st_difference st_dimension st_disjoint st_distance st_endpoint st_envelope st_envelopeaspts st_equals st_exteriorring st_geometries st_geometryfromtext st_geometryn st_geometrytype st_geomfrombinary st_interiorringn st_interiorrings st_intersection st_intersects st_isclosed st_isempty st_isring st_issimple st_isvalid st_length st_linefromtext st_linestring st_multipoint st_numgeometries st_numinteriorring st_numpoints st_overlaps st_point st_pointn st_points st_polygon st_relate st_startpoint st_symdifference st_touches st_union st_within st_x st_xmax st_xmin st_y st_ymax st_ymin start starts_with stats stddev stddev_pop stddev_samp string strpos subset substr substring sum system table tables tablesample tan tanh tdigest_agg text then ties timestamp_objectid timezone_hour timezone_minute to to_base to_base32 to_base64 to_base64url to_big_endian_32 to_big_endian_64 to_char to_date to_encoded_polyline to_geojson_geometry to_geometry to_hex to_ieee754_32 to_ieee754_64 to_iso8601 to_milliseconds to_spherical_geography to_timestamp to_unixtime to_utf8 trailing transaction transform transform_keys transform_values translate trim trim_array true truncate try try_cast type typeof uescape unbounded uncommitted unconditional union unique unknown unmatched unnest update upper url_decode url_encode url_extract_fragment url_extract_host url_extract_parameter url_extract_path url_extract_port url_extract_protocol url_extract_query use user using utf16 utf32 utf8 validate value value_at_quantile values values_at_quantiles var_pop var_samp variance verbose version view week week_of_year when where width_bucket wilson_interval_lower wilson_interval_upper window with with_timezone within without word_stem work wrapper write xxhash64 year year_of_week yow zip zip_with"),builtin:a("array bigint bingtile boolean char codepoints color date decimal double function geometry hyperloglog int integer interval ipaddress joniregexp json json2016 jsonpath kdbtree likepattern map model objectid p4hyperloglog precision qdigest re2jregexp real regressor row setdigest smallint sphericalgeography tdigest time timestamp tinyint uuid varbinary varchar zone"),atoms:a("false true null unknown"),operatorChars:/^[[\]|<>=!\-+*/%]/,dateSQL:a("date time timestamp zone"),support:a("decimallessFloat zerolessFloat hexNumber")})})},30764:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_sqlite.6549c95c.svg"},31216:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_json2.027aae3c.svg"},32104:function(e,t,n){"use strict";n.d(t,{A:function(){return x}});var r=n(20641),i=n(90033),o=n(53751);const a={class:"csv-viewer-container"},s={class:"csv-controls"},l={class:"csv-info"},c={key:0,class:"large-file-warning"},u={key:0,class:"csv-search"},d=["onClick"],p={class:"header-content"},f={key:0,class:"sort-icon"},h={class:"row-number"},g=["title"],m={key:0,class:"no-data"},_={key:0,class:"scroll-info"};function v(e,t,n,v,y,b){return(0,r.uX)(),(0,r.CE)("div",a,[(0,r.Lk)("div",s,[(0,r.Lk)("div",l,[(0,r.Lk)("span",null,(0,i.v_)(b.rowCount)+" rows × "+(0,i.v_)(b.columnCount)+" columns",1),y.showLargeFileWarning?((0,r.uX)(),(0,r.CE)("span",c," ⚠️ Large file - scroll performance may vary ")):(0,r.Q3)("",!0)]),b.isExamMode?(0,r.Q3)("",!0):((0,r.uX)(),(0,r.CE)("div",u,[(0,r.bo)((0,r.Lk)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>y.searchQuery=e),placeholder:"Search...",class:"search-input"},null,512),[[o.Jo,y.searchQuery]])]))]),(0,r.Lk)("div",{ref:"tableContainer",class:"csv-table-wrapper",onScroll:t[1]||(t[1]=(...e)=>b.handleScroll&&b.handleScroll(...e))},[(0,r.Lk)("div",{style:(0,i.Tr)({height:b.totalHeight+"px",position:"relative"})},[(0,r.Lk)("table",{class:"csv-table",style:(0,i.Tr)({transform:`translateY(${b.offsetY}px)`})},[(0,r.Lk)("thead",null,[(0,r.Lk)("tr",null,[t[2]||(t[2]=(0,r.Lk)("th",{class:"row-number-header"},"#",-1)),((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(b.displayHeaders,(e,t)=>((0,r.uX)(),(0,r.CE)("th",{key:t,class:(0,i.C4)(["csv-header",{sortable:!b.isExamMode}]),onClick:e=>!b.isExamMode&&b.sortBy(t)},[(0,r.Lk)("div",p,[(0,r.Lk)("span",null,(0,i.v_)(e||`Column ${t+1}`),1),y.sortColumn===t?((0,r.uX)(),(0,r.CE)("span",f,(0,i.v_)("asc"===y.sortDirection?"▲":"▼"),1)):(0,r.Q3)("",!0)])],10,d))),128))])]),(0,r.Lk)("tbody",null,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(b.visibleRows,(e,t)=>((0,r.uX)(),(0,r.CE)("tr",{key:b.visibleStartIndex+t},[(0,r.Lk)("td",h,(0,i.v_)(b.visibleStartIndex+t+1),1),((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(e,(e,t)=>((0,r.uX)(),(0,r.CE)("td",{key:t,class:"csv-cell",title:e},(0,i.v_)(e),9,g))),128))]))),128))])],4)],4),0===b.filteredData.length?((0,r.uX)(),(0,r.CE)("div",m," No data to display ")):(0,r.Q3)("",!0)],544),b.filteredData.length>0?((0,r.uX)(),(0,r.CE)("div",_,[(0,r.Lk)("span",null,"Showing rows "+(0,i.v_)(b.visibleStartIndex+1)+" - "+(0,i.v_)(Math.min(b.visibleEndIndex,b.filteredData.length))+" of "+(0,i.v_)(b.filteredData.length),1)])):(0,r.Q3)("",!0)])}n(44114),n(18111),n(22489),n(61701),n(13579);var y=n(16990),b={props:{content:{type:String,required:!0}},data(){return{headers:[],rows:[],searchQuery:"",sortColumn:null,sortDirection:"asc",scrollTop:0,containerHeight:400,rowHeight:32,overscan:5,showLargeFileWarning:!1,resizeObserver:null}},computed:{isExamMode(){const e=window.location.hostname;if(e.startsWith("exam.")||e.includes("exam"))return!0;const t=this.$store?.state?.ide?.ideInfo?.isExamMode;return void 0!==t&&null!==t?t:"true"===localStorage.getItem("is_exam_mode")},parsedData(){if(!this.content)return{headers:[],rows:[]};const e=this.content.split("\n").filter(e=>e.trim());if(0===e.length)return{headers:[],rows:[]};const t=e=>{const t=[];let n="",r=!1;for(let i=0;it(e));return{headers:n,rows:r}},filteredData(){let e=this.parsedData.rows;if(this.searchQuery){const t=this.searchQuery.toLowerCase();e=e.filter(e=>e.some(e=>e.toString().toLowerCase().includes(t)))}return null!==this.sortColumn&&(e=[...e].sort((e,t)=>{const n=e[this.sortColumn]||"",r=t[this.sortColumn]||"",i=parseFloat(n),o=parseFloat(r);if(!isNaN(i)&&!isNaN(o))return"asc"===this.sortDirection?i-o:o-i;const a=n.toString().localeCompare(r.toString());return"asc"===this.sortDirection?a:-a})),e},totalRows(){return this.filteredData.length},totalHeight(){return this.totalRows*this.rowHeight},visibleStartIndex(){return Math.max(0,Math.floor(this.scrollTop/this.rowHeight)-this.overscan)},visibleEndIndex(){const e=Math.ceil(this.containerHeight/this.rowHeight);return Math.min(this.totalRows,this.visibleStartIndex+e+2*this.overscan)},visibleRows(){return this.filteredData.slice(this.visibleStartIndex,this.visibleEndIndex)},offsetY(){return this.visibleStartIndex*this.rowHeight},rowCount(){return this.parsedData.rows.length},columnCount(){return this.parsedData.headers.length},displayHeaders(){return this.parsedData.headers}},watch:{content(){this.scrollTop=0,this.sortColumn=null,this.sortDirection="asc",this.checkLargeFile(),this.$refs.tableContainer&&(this.$refs.tableContainer.scrollTop=0)},searchQuery(){this.scrollTop=0,this.$refs.tableContainer&&(this.$refs.tableContainer.scrollTop=0)}},mounted(){this.initContainerHeight(),this.setupResizeObserver(),this.checkLargeFile()},beforeUnmount(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{handleScroll(e){this.scrollTop=e.target.scrollTop},initContainerHeight(){this.$refs.tableContainer&&(this.containerHeight=this.$refs.tableContainer.clientHeight||400)},setupResizeObserver(){"undefined"!==typeof ResizeObserver&&this.$refs.tableContainer&&(this.resizeObserver=new ResizeObserver(e=>{for(const t of e)this.containerHeight=t.contentRect.height||400}),this.resizeObserver.observe(this.$refs.tableContainer))},checkLargeFile(){this.parsedData.rows.length>1e4?(this.showLargeFileWarning=!0,y.nk.warning({message:`Large CSV file: ${this.parsedData.rows.length.toLocaleString()} rows. Using virtual scrolling for better performance.`,duration:4e3})):this.showLargeFileWarning=!1},sortBy(e){this.sortColumn===e?this.sortDirection="asc"===this.sortDirection?"desc":"asc":(this.sortColumn=e,this.sortDirection="asc"),this.scrollTop=0,this.$refs.tableContainer&&(this.$refs.tableContainer.scrollTop=0)}}},k=n(66262);const w=(0,k.A)(b,[["render",v],["__scopeId","data-v-6a013383"]]);var x=w},32603:function(e,t,n){"use strict";var r=n(655);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},33887:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},34154:function(e,t,n){"use strict";var r=n(36955),i=TypeError;e.exports=function(e){if("Uint8Array"===r(e))return e;throw new i("Argument is not an Uint8Array")}},34226:function(e,t,n){"use strict";var r=n(46518),i=n(44576),o=n(63463),a=n(34154),s=n(55169),l=n(42303);i.Uint8Array&&r({target:"Uint8Array",proto:!0},{setFromHex:function(e){a(this),o(e),s(this.buffer);var t=l(e,this).read;return{read:t,written:t/2}}})},34856:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";function t(e,t){if(!e.hasOwnProperty(t))throw new Error("Undefined state "+t+" in simple mode")}function n(e,t){if(!e)return/(?:)/;var n="";return e instanceof RegExp?(e.ignoreCase&&(n="i"),e.unicode&&(n+="u"),e=e.source):e=String(e),new RegExp((!1===t?"":"^")+"(?:"+e+")",n)}function r(e){if(!e)return null;if(e.apply)return e;if("string"==typeof e)return e.replace(/\./g," ");for(var t=[],n=0;n2&&u.token&&"string"!=typeof u.token){for(var f=2;f-1)return e.Pass;var a=r.indent.length-1,s=t[r.state];e:for(;;){for(var c=0;c(d.log("[FIND BLOCKED] Ctrl+F disabled for assignment"),!1),"Cmd-F":e=>(d.log("[FIND BLOCKED] Cmd+F disabled for assignment"),!1),"Ctrl-H":e=>(d.log("[REPLACE BLOCKED] Ctrl+H disabled for assignment"),!1),"Cmd-H":e=>(d.log("[REPLACE BLOCKED] Cmd+H disabled for assignment"),!1),Backspace:e=>{e.somethingSelected()?e.replaceSelection("",e.getSelection()):s().commands.smartBackspace(e)},F5:e=>{d.log("[F5-DEBUG] F5 key pressed, isPython:",this.isPython,"consoleLimit:",this.consoleLimit),this.isPython&&!this.consoleLimit?(d.log("[F5-DEBUG] Emitting run-item event from F5"),this.$emit("run-item")):d.log("[F5-DEBUG] F5 not processed - isPython:",this.isPython,"consoleLimit:",this.consoleLimit)},"Ctrl-C":e=>{const t=e.getSelection();return t&&(u.A.trackIDECopy(t),d.log("[CodeMirror] Copy tracked:",t.substring(0,50)),navigator.clipboard&&navigator.clipboard.writeText&&window.isSecureContext?navigator.clipboard.writeText(t).catch(n=>{d.error("[CodeMirror] Modern clipboard API failed:",n),this.copyTextFallback(t,e)}):(d.log("[CodeMirror] Using legacy copy method (HTTP environment)"),this.copyTextFallback(t,e))),!1},"Ctrl-X":e=>{const t=e.getSelection();return t&&(u.A.trackIDECopy(t),d.log("[CodeMirror] Cut tracked:",t.substring(0,50)),navigator.clipboard&&navigator.clipboard.writeText&&window.isSecureContext?navigator.clipboard.writeText(t).then(()=>{e.replaceSelection("")}).catch(n=>{d.error("[CodeMirror] Modern clipboard cut failed:",n),this.cutTextFallback(t,e)}):(d.log("[CodeMirror] Using legacy cut method (HTTP environment)"),this.cutTextFallback(t,e))),!1},"Ctrl-V":async e=>{await this.handlePasteOperation(e)},"Shift-Ctrl-V":async e=>{await this.handlePasteOperation(e)},"Cmd-C":e=>{const t=e.getSelection();return t&&(u.A.trackIDECopy(t),d.log("[CodeMirror] Mac Copy tracked:",t.substring(0,50)),navigator.clipboard&&navigator.clipboard.writeText&&window.isSecureContext?navigator.clipboard.writeText(t).catch(n=>{d.error("[CodeMirror] Mac clipboard API failed:",n),this.copyTextFallback(t,e)}):this.copyTextFallback(t,e)),!1},"Cmd-X":e=>{const t=e.getSelection();return t&&(u.A.trackIDECopy(t),d.log("[CodeMirror] Mac Cut tracked:",t.substring(0,50)),navigator.clipboard&&navigator.clipboard.writeText&&window.isSecureContext?navigator.clipboard.writeText(t).then(()=>{e.replaceSelection("")}).catch(n=>{d.error("[CodeMirror] Mac clipboard cut failed:",n),this.cutTextFallback(t,e)}):this.cutTextFallback(t,e)),!1},"Cmd-V":async e=>{await this.handlePasteOperation(e)},"Shift-Cmd-V":async e=>{await this.handlePasteOperation(e)}}}}},mounted(){this.updateEditorTheme(),this.$nextTick(()=>{if(this.$refs.codeEditor&&this.$refs.codeEditor.cminstance){this.$refs.codeEditor.cminstance.refresh(),this.applySavedSettings(),setTimeout(()=>{this.$refs.codeEditor.cminstance.refresh()},100);const e=this.$refs.codeEditor.$el;e&&e.addEventListener("paste",this.handleDOMPaste,!0)}});const e=new MutationObserver(()=>{this.updateEditorTheme(),this.$nextTick(()=>{this.$refs.codeEditor&&this.$refs.codeEditor.cminstance&&this.$refs.codeEditor.cminstance.refresh()})});e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),window.addEventListener("storage",e=>{("fontSize"===e.key||"showLineNumbers"===e.key)&&this.applySavedSettings()}),window.addEventListener("fontSizeChanged",()=>{this.applySavedSettings()})},watch:{"codeItem.content":{handler(){this.$nextTick(()=>{this.fixCoordinateSystem()})},deep:!0}},beforeUnmount(){this.writeTimeout&&clearTimeout(this.writeTimeout),this.$refs.codeEditor&&this.$refs.codeEditor.$el&&this.$refs.codeEditor.$el.removeEventListener("paste",this.handleDOMPaste,!0)},computed:{currentTheme(){const e=document.documentElement.getAttribute("data-theme");return"light"===e?"idea":"darcula"},cmOptions(){const e={...this.codeBaseOptions};e.theme=this.currentTheme;const t=localStorage.getItem("showLineNumbers");return null!==t&&(e.lineNumbers="true"===t),Object.assign(e,this.codeOtherOptions[this.codeItem.path.substring(this.codeItem.path.lastIndexOf(".")+1)])},ideInfo(){return this.$store.state.ide.ideInfo},codeItemContent:{get(){return this.codeItem.content},set(e){this.$store.commit("ide/setCodeItemContent",{index:this.codeItemIndex,content:e})}},isMarkdown(){return this.codeItem.path.endsWith(".md")},isPython(){return this.codeItem.path.endsWith(".py")}},components:{Codemirror:l.Ay},watch:{wordWrap(e){this.$refs.codeEditor&&this.$refs.codeEditor.codemirror&&this.$refs.codeEditor.codemirror.setOption("lineWrapping",e)}},methods:{async handleDOMPaste(e){e.preventDefault(),e.stopPropagation();const t=e.clipboardData||window.clipboardData,n=t?.getData("text");if(n){const e=await u.A.validatePaste(n);if(e){const e=this.$refs.codeEditor?.cminstance;e&&e.replaceSelection(n)}}},applySavedSettings(){const e=localStorage.getItem("fontSize")||localStorage.getItem("editorFontSize");if(e){const t=parseInt(e)+"px",n=this.$refs.codeEditor?.cminstance;if(n){const e=n.getWrapperElement();e&&(e.style.fontSize=t,n.refresh())}}const t=localStorage.getItem("showLineNumbers")||localStorage.getItem("editorLineNumbers");if(null!==t){const e="true"===t||!0===t,n=this.$refs.codeEditor?.cminstance;n&&n.setOption("lineNumbers",e)}},updateEditorTheme(){if(this.$refs.codeEditor&&this.$refs.codeEditor.cminstance){const e=this.currentTheme;this.$refs.codeEditor.cminstance.setOption("theme",e),this.$refs.codeEditor.cminstance.refresh()}},fixCoordinateSystem(){if(this.$refs.codeEditor&&this.$refs.codeEditor.cminstance){const e=this.$refs.codeEditor.cminstance;e.refresh(),e.getWrapperElement().style.display="none",e.getWrapperElement().offsetHeight,e.getWrapperElement().style.display="",e.refresh()}},codeChanged(e,t){t.closeHint(),this.$store.commit("ide/setCodeItemContent",{index:this.codeItemIndex,content:e}),this.writeTimeout&&clearTimeout(this.writeTimeout);const n="true"===localStorage.getItem("autoSave"),r=this.$store.state.ide.ideInfo?.autoSave||!1;d.log("[AUTO-SAVE-DEBUG] localStorage autoSave:",localStorage.getItem("autoSave"),"parsed:",n),d.log("[AUTO-SAVE-DEBUG] Store autoSave value:",r),d.log("[AUTO-SAVE-DEBUG] Will use localStorage value:",n),n?d.log("[CHARACTER-SAVE] Skipping character-based save (auto-save enabled in localStorage)"):this.writeTimeout=setTimeout(()=>{d.log("[CHARACTER-SAVE] Saving due to character change (auto-save disabled)");const t=this.codeItem.projectName||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name;this.$store.dispatch(`ide/${c._L}`,{projectName:t,filePath:this.codeItem.path,fileData:e,complete:!1,line:0,column:0,callback:e=>{}})},500)},async handlePasteOperation(e){try{if(d.log("[CodeMirror] Paste operation started"),navigator.clipboard&&navigator.clipboard.readText&&window.isSecureContext)try{const t=await navigator.clipboard.readText();d.log("[CodeMirror] Clipboard content retrieved via modern API:",t?.substring(0,50));const n=await u.A.validatePaste(t);n?(e.replaceSelection(t),d.log("[CodeMirror] Paste allowed:",t.substring(0,50))):d.log("[CodeMirror] Paste blocked for student")}catch(t){d.error("[CodeMirror] Modern clipboard API failed:",t),this.handleLegacyPaste(e)}else d.log("[CodeMirror] Using legacy paste method (HTTP environment)"),this.handleLegacyPaste(e)}catch(n){d.error("[CodeMirror] Paste operation failed:",n),this.handleLegacyPaste(e)}},handleLegacyPaste(e){d.log("[CodeMirror] Legacy paste - validation limited in HTTP environment"),u.A.isStudent()&&(d.warn("[CodeMirror] HTTP environment - limited paste validation for student"),setTimeout(()=>{const t=e.getDoc(),n=t.getCursor();t.getLine(n.line);d.log("[CodeMirror] Attempted to track legacy paste content")},100)),document.execCommand("paste")},copyTextFallback(e,t){try{const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),d.log("[CodeMirror] Legacy copy successful")}catch(n){d.error("[CodeMirror] Legacy copy failed:",n)}},cutTextFallback(e,t){try{this.copyTextFallback(e,t),t.replaceSelection(""),d.log("[CodeMirror] Legacy cut successful")}catch(n){d.error("[CodeMirror] Legacy cut failed:",n)}},anywordHint(e,t){var n=/[\w$]+/,r=500,i=t&&t.word||n,o=t&&t.range||r,a=e.getCursor(),l=e.getLine(a.line),c=a.ch,u=c;while(u&&i.test(l.charAt(u-1)))--u;for(var d=u!=c&&l.slice(u,c),p=t&&t.list||[],f={},h=new RegExp(i.source,"g"),g=-1;g<=1;g+=2)for(var m=a.line,_=Math.min(Math.max(m+g*o,e.firstLine()),e.lastLine())+g;m!=_;m+=g){var v,y=e.getLine(m);v=h.exec(y);while(v)m!=a.line||v[0]!==d?(d&&0!=v[0].lastIndexOf(d,0)||Object.prototype.hasOwnProperty.call(f,v[0])||(f[v[0]]=!0,p.push(v[0])),v=h.exec(y)):v=h.exec(y)}return{list:p,from:s().Pos(a.line,u),to:s().Pos(a.line,c)}},getPrefix(e){for(var t=e.length-1;t>=0;t--)if(!/^[a-zA-Z0-9]+$/.test(e.charAt(t)))return e.substring(t+1,e.length);return e},getFirstNonBlankChar(e){for(var t=0;te.$emit("run-item")),codeItemIndex:n.codeItemIndex},null,8,["codeItem","consoleLimit","wordWrap","codeItemIndex"]))],2)}var j={props:{codeItem:Object,codeItemIndex:Number,consoleLimit:Boolean,wordWrap:{type:Boolean,default:!0}},data(){return{}},computed:{isMarkdown(){return this.codeItem.path.endsWith(".md")},isCsvFile(){return this.codeItem.path.toLowerCase().endsWith(".csv")},isMediaFile(){const e=[".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".pdf"],t=this.codeItem.path.toLowerCase();return e.some(e=>t.endsWith(e))}},components:{CodeEditor:g,MarkdownEditor:x,MediaViewer:m.A,CsvViewer:_.A}};const T=(0,f.A)(j,[["render",S],["__scopeId","data-v-263b409e"]]);var L=T},38574:function(e,t,n){"use strict";var r=n(79504),i=Error,o=r("".replace),a=function(e){return String(new i(e).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);e.exports=function(e,t){if(l&&"string"==typeof e&&!i.prepareStackTrace)while(t--)e=o(e,s,"");return e}},39037:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},39928:function(e,t,n){"use strict";var r=n(26198),i=n(91291),o=RangeError;e.exports=function(e,t,n,a){var s=r(e),l=i(n),c=l<0?s+l:l;if(c>=s||c<0)throw new o("Incorrect index");for(var u=new t(s),d=0;d")):null:e.match("--")?n(h("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(g(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=h("meta","?>"),"meta"):(o=e.eat("/")?"closeTag":"openTag",t.tokenize=p,"tag bracket"):"&"==i?(r=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),r?"atom":"error"):(e.eatWhile(/[^&<]/),null)}function p(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=d,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){t.tokenize=d,t.state=b,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=f(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function f(e){var t=function(t,n){while(!t.eol())if(t.next()==e){n.tokenize=p;break}return"string"};return t.isInAttribute=!0,t}function h(e,t){return function(n,r){while(!n.eol()){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function g(e){return function(t,n){var r;while(null!=(r=t.next())){if("<"==r)return n.tokenize=g(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=d;break}return n.tokenize=g(e-1),n.tokenize(t,n)}}return"meta"}}function m(e){return e&&e.toLowerCase()}function _(e,t,n){this.prev=e.context,this.tagName=t||"",this.indent=e.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function v(e){e.context&&(e.context=e.context.prev)}function y(e,t){var n;while(1){if(!e.context)return;if(n=e.context.tagName,!l.contextGrabbers.hasOwnProperty(m(n))||!l.contextGrabbers[m(n)].hasOwnProperty(m(t)))return;v(e)}}function b(e,t,n){return"openTag"==e?(n.tagStart=t.column(),k):"closeTag"==e?w:b}function k(e,t,n){return"word"==e?(n.tagName=t.current(),a="tag",S):l.allowMissingTagName&&"endTag"==e?(a="tag bracket",S(e,t,n)):(a="error",k)}function w(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(m(n.context.tagName))&&v(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",x):(a="tag error",C)}return l.allowMissingTagName&&"endTag"==e?(a="tag bracket",x(e,t,n)):(a="error",C)}function x(e,t,n){return"endTag"!=e?(a="error",x):(v(n),b)}function C(e,t,n){return a="error",x(e,t,n)}function S(e,t,n){if("word"==e)return a="attribute",j;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||l.autoSelfClosers.hasOwnProperty(m(r))?y(n,r):(y(n,r),n.context=new _(n,r,i==n.indented)),b}return a="error",S}function j(e,t,n){return"equals"==e?T:(l.allowMissing||(a="error"),S(e,t,n))}function T(e,t,n){return"string"==e?L:"word"==e&&l.allowUnquoted?(a="string",S):(a="error",S(e,t,n))}function L(e,t,n){return"string"==e?L:S(e,t,n)}return d.isInText=!0,{startState:function(e){var t={tokenize:d,state:b,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&"comment"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n="error"==a?n+" error":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+s;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=p&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==l.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(e){e.state==T&&(e.state=S)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:"closeTag"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})})},40795:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";function t(t){return function(n,r){var i=r.line,o=n.getLine(i);function a(t){for(var a,s=r.ch,l=0;;){var c=s<=0?-1:o.lastIndexOf(t[0],s-1);if(-1!=c){if(1==l&&ct.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));if(/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"keyword"!=r.type||"import"!=r.string)return null;for(var i=n,o=Math.min(t.lastLine(),n+10);i<=o;++i){var a=t.getLine(i),s=a.indexOf(";");if(-1!=s)return{startCh:r.end,end:e.Pos(i,s)}}}var i,o=n.line,a=r(o);if(!a||r(o-1)||(i=r(o-2))&&i.end.line==o-1)return null;for(var s=a.end;;){var l=r(s.line+1);if(null==l)break;s=l.end}return{from:t.clipPos(e.Pos(o,a.startCh+1)),to:s}}),e.registerHelper("fold","include",function(t,n){function r(n){if(nt.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));return/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"meta"==r.type&&"#include"==r.string.slice(0,8)?r.start+8:void 0}var i=n.line,o=r(i);if(null==o||null!=r(i-1))return null;for(var a=i;;){var s=r(a+1);if(null==s)break;++a}return{from:e.Pos(i,o+1),to:t.clipPos(e.Pos(a))}})})},41549:function(e,t,n){"use strict";n(16632)},42258:function(e,t,n){"use strict";n.d(t,{A:function(){return N}});var r=n(64481),i=n(91361),o=n(20641);const a={class:"simple-pdf-viewer"},s={class:"pdf-toolbar"},l={class:"pdf-content"},c=["src"],u={key:1,class:"pdf-error"};function d(e,t,n,d,p,f){const h=(0,o.g2)("download"),g=i.tk,m=r.S2,_=(0,o.g2)("document-delete");return(0,o.uX)(),(0,o.CE)("div",a,[(0,o.Lk)("div",s,[(0,o.bF)(m,{onClick:f.downloadPdf,size:"small"},{default:(0,o.k6)(()=>[(0,o.bF)(g,null,{default:(0,o.k6)(()=>[(0,o.bF)(h)]),_:1}),t[1]||(t[1]=(0,o.eW)(" Download PDF ",-1))]),_:1,__:[1]},8,["onClick"])]),(0,o.Lk)("div",l,[f.pdfUrl?((0,o.uX)(),(0,o.CE)("iframe",{key:0,src:f.pdfUrl,class:"pdf-iframe",onError:t[0]||(t[0]=(...e)=>f.handleError&&f.handleError(...e))},null,40,c)):((0,o.uX)(),(0,o.CE)("div",u,[(0,o.bF)(g,{size:"48"},{default:(0,o.k6)(()=>[(0,o.bF)(_)]),_:1}),t[3]||(t[3]=(0,o.Lk)("p",null,"Unable to display PDF",-1)),(0,o.bF)(m,{onClick:f.downloadPdf,type:"primary",size:"small"},{default:(0,o.k6)(()=>t[2]||(t[2]=[(0,o.eW)(" Download PDF Instead ",-1)])),_:1,__:[2]},8,["onClick"])]))])])}n(16573),n(78100),n(77936),n(79577),n(41549),n(49797),n(49631),n(35623),n(64979),n(14603),n(47566),n(98721);var p=n(48548),f=n(96763),h={name:"SimplePdfViewer",components:{Download:p.f5X,DocumentDelete:p.Xs$},props:{pdfData:{type:String,required:!0},fileName:{type:String,default:"document.pdf"}},computed:{pdfUrl(){if(!this.pdfData)return null;try{if(this.pdfData.startsWith("data:"))return this.pdfData;const e=this.pdfData.replace(/[\s\n\r]/g,""),t=(4-e.length%4)%4,n=e+"=".repeat(t);return`data:application/pdf;base64,${n}`}catch(e){return f.error("Error creating PDF URL:",e),null}}},methods:{handleError(){f.error("Failed to load PDF in iframe")},downloadPdf(){try{let e=this.pdfData;this.pdfData.startsWith("data:")&&(e=this.pdfData.split(",")[1]);const t=e.replace(/[\s\n\r]/g,""),n=(4-t.length%4)%4,r=t+"=".repeat(n),i=atob(r),o=new Uint8Array(i.length);for(let c=0;cwindow.URL.revokeObjectURL(s),100)}catch(e){if(f.error("Error downloading PDF:",e),this.pdfUrl){const e=document.createElement("a");e.href=this.pdfUrl,e.download=this.fileName,document.body.appendChild(e),e.click(),document.body.removeChild(e)}}}}},g=n(66262);const m=(0,g.A)(h,[["render",d],["__scopeId","data-v-6488c88e"]]);var _=m,v=n(90033);const y={class:"media-viewer"},b={key:0,class:"loading-container"},k={key:1,class:"error-container"},w={key:2,class:"image-container"},x={class:"toolbar"},C={class:"zoom-level"},S=["src","alt"],j={key:3,class:"pdf-container"},T={key:4,class:"unsupported-file"};function L(e,t,n,a,s,l){const c=(0,o.g2)("refresh"),u=i.tk,d=(0,o.g2)("document"),p=r.S2,f=(0,o.g2)("zoom-in"),h=(0,o.g2)("zoom-out"),g=(0,o.g2)("download"),m=r.fg,L=_;return(0,o.uX)(),(0,o.CE)("div",y,[s.loading?((0,o.uX)(),(0,o.CE)("div",b,[(0,o.bF)(u,{size:"32",class:"loading-icon"},{default:(0,o.k6)(()=>[(0,o.bF)(c)]),_:1}),t[2]||(t[2]=(0,o.Lk)("p",null,"Loading media file...",-1))])):s.error?((0,o.uX)(),(0,o.CE)("div",k,[(0,o.bF)(u,{size:"64",class:"error-icon"},{default:(0,o.k6)(()=>[(0,o.bF)(d)]),_:1}),t[4]||(t[4]=(0,o.Lk)("p",null,"Failed to load media file",-1)),(0,o.bF)(p,{onClick:l.loadFile,type:"primary"},{default:(0,o.k6)(()=>[(0,o.bF)(u,null,{default:(0,o.k6)(()=>[(0,o.bF)(c)]),_:1}),t[3]||(t[3]=(0,o.eW)(" Retry ",-1))]),_:1,__:[3]},8,["onClick"])])):l.isImage?((0,o.uX)(),(0,o.CE)("div",w,[(0,o.Lk)("div",x,[(0,o.bF)(m,null,{default:(0,o.k6)(()=>[(0,o.bF)(p,{onClick:l.zoomIn,size:"small"},{default:(0,o.k6)(()=>[(0,o.bF)(u,null,{default:(0,o.k6)(()=>[(0,o.bF)(f)]),_:1}),t[5]||(t[5]=(0,o.eW)(" Zoom In ",-1))]),_:1,__:[5]},8,["onClick"]),(0,o.bF)(p,{onClick:l.zoomOut,size:"small"},{default:(0,o.k6)(()=>[(0,o.bF)(u,null,{default:(0,o.k6)(()=>[(0,o.bF)(h)]),_:1}),t[6]||(t[6]=(0,o.eW)(" Zoom Out ",-1))]),_:1,__:[6]},8,["onClick"]),(0,o.bF)(p,{onClick:l.resetZoom,size:"small"},{default:(0,o.k6)(()=>[(0,o.bF)(u,null,{default:(0,o.k6)(()=>[(0,o.bF)(c)]),_:1}),t[7]||(t[7]=(0,o.eW)(" Reset ",-1))]),_:1,__:[7]},8,["onClick"]),(0,o.bF)(p,{onClick:l.downloadFile,size:"small"},{default:(0,o.k6)(()=>[(0,o.bF)(u,null,{default:(0,o.k6)(()=>[(0,o.bF)(g)]),_:1}),t[8]||(t[8]=(0,o.eW)(" Download ",-1))]),_:1,__:[8]},8,["onClick"])]),_:1}),(0,o.Lk)("span",C,(0,v.v_)(Math.round(100*s.zoomLevel))+"%",1)]),(0,o.Lk)("div",{class:"image-wrapper",onWheel:t[1]||(t[1]=(...e)=>l.handleWheel&&l.handleWheel(...e))},[s.fileUrl?((0,o.uX)(),(0,o.CE)("img",{key:0,src:s.fileUrl,alt:l.fileName,style:(0,v.Tr)({transform:`scale(${s.zoomLevel})`}),onError:t[0]||(t[0]=(...e)=>l.handleError&&l.handleError(...e)),draggable:"false"},null,44,S)):(0,o.Q3)("",!0)],32)])):l.isPdf?((0,o.uX)(),(0,o.CE)("div",j,[s.fileUrl?((0,o.uX)(),(0,o.Wv)(L,{key:0,"pdf-data":l.getPdfData(),"file-name":l.fileName},null,8,["pdf-data","file-name"])):(0,o.Q3)("",!0)])):((0,o.uX)(),(0,o.CE)("div",T,[(0,o.bF)(u,{size:"64"},{default:(0,o.k6)(()=>[(0,o.bF)(d)]),_:1}),t[10]||(t[10]=(0,o.Lk)("p",null,"Preview not available for this file type",-1)),(0,o.bF)(p,{onClick:l.downloadFile,type:"primary"},{default:(0,o.k6)(()=>[(0,o.bF)(u,null,{default:(0,o.k6)(()=>[(0,o.bF)(g)]),_:1}),t[9]||(t[9]=(0,o.eW)(" Download File ",-1))]),_:1,__:[9]},8,["onClick"])]))])}var E=n(16990),A=n(56660),M=n(96763),D={name:"MediaViewer",components:{ZoomIn:p.$Zd,ZoomOut:p.enP,Refresh:p.C42,Download:p.f5X,Document:p.yoT,SimplePdfViewer:_},props:{codeItem:Object,codeItemIndex:Number},data(){return{zoomLevel:1,fileUrl:"",error:!1,loading:!1}},computed:{fileName(){return this.codeItem?.name||""},fileExtension(){const e=this.fileName.lastIndexOf(".");return-1===e?"":this.fileName.substring(e+1).toLowerCase()},isImage(){return["png","jpg","jpeg","gif","bmp","svg","webp"].includes(this.fileExtension)},isPdf(){return"pdf"===this.fileExtension},ideInfo(){return this.$store.state.ide.ideInfo},pdfViewerUrl(){return this.fileUrl}},mounted(){this.loadFile()},watch:{codeItem:{deep:!0,handler(){this.loadFile()}}},methods:{async loadFile(e=0){if(this.error=!1,this.loading=!0,this.fileUrl="",this.codeItem?.preloaded&&this.codeItem?.content)return this.loading=!1,this.fileUrl=this.codeItem.content,void M.log("Using preloaded content for media file");const t=this.codeItem?.projectName||this.ideInfo.currProj?.data?.name;let n=this.codeItem?.path;if(!t||!n)return this.loading=!1,void(this.error=!0);const r=this.ideInfo.nodeSelected;r&&r.path&&r.name===this.fileName&&(n=r.path,M.log("Using nodeSelected path:",n)),n&&n.startsWith("/")&&(n=n.substring(1)),M.log("Loading media file:",{projectName:t,filePath:n,originalPath:this.codeItem?.path,nodeSelectedPath:r?.path,nodeSelectedName:r?.name,fileName:this.fileName,binary:!0,retryCount:e,codeItem:this.codeItem}),0===e&&this.isImage&&await new Promise(e=>setTimeout(e,500)),this.$store.dispatch(`ide/${A.Jh}`,{projectName:t,filePath:n,binary:!0,callback:async t=>{if(M.log("Media file response:",{code:t.code,hasData:!!t.data,dataKeys:t.data?Object.keys(t.data):[],contentLength:t.data?.content?t.data.content.length:0,retryCount:e,fullResponse:t}),0===t.code&&t.data)if(t.data.content&&t.data.content.length>0){this.loading=!1;const e=this.getMimeType();this.fileUrl=`data:${e};base64,${t.data.content}`,M.log("File loaded successfully:",{mimeType:e,fileUrl:this.fileUrl.substring(0,50)+"..."})}else if(e<2){const t=1e3*Math.pow(1.5,e);M.log(`No content or empty content, retrying in ${t}ms... (attempt ${e+1})`),await new Promise(e=>setTimeout(e,t)),this.loadFile(e+1)}else this.loading=!1,M.error("No content in response data after retries"),this.handleError();else if(-22===t.code&&e<2){const t=1e3*Math.pow(1.5,e);M.log(`File not found, retrying in ${t}ms... (attempt ${e+1})`),await new Promise(e=>setTimeout(e,t)),this.loadFile(e+1)}else this.loading=!1,M.error("Failed to load file:",t),this.handleError()}})},getMimeType(){const e={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",bmp:"image/bmp",svg:"image/svg+xml",webp:"image/webp",pdf:"application/pdf"};return e[this.fileExtension]||"application/octet-stream"},zoomIn(){this.zoomLevel=Math.min(this.zoomLevel+.25,3)},zoomOut(){this.zoomLevel=Math.max(this.zoomLevel-.25,.25)},resetZoom(){this.zoomLevel=1},handleWheel(e){(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.deltaY<0?this.zoomIn():this.zoomOut())},downloadFile(){const e=document.createElement("a");e.href=this.fileUrl,e.download=this.fileName,e.click()},handleError(){this.fileUrl&&this.fileUrl.length>0&&(this.error=!0,this.loading=!1,M.error("MediaViewer error:",{fileName:this.fileName,filePath:this.codeItem?.path,fileUrl:this.fileUrl}),E.nk.error(`Failed to load file: ${this.fileName}`))},getPdfData(){return this.codeItem?.preloaded&&this.codeItem?.content?this.codeItem.content:(this.fileUrl&&this.fileUrl.startsWith("data:"),this.fileUrl)}}};const O=(0,g.A)(D,[["render",L],["__scopeId","data-v-3928fc30"]]);var N=O},42303:function(e,t,n){"use strict";var r=n(44576),i=n(79504),o=r.Uint8Array,a=r.SyntaxError,s=r.parseInt,l=Math.min,c=/[^\da-f]/i,u=i(c.exec),d=i("".slice);e.exports=function(e,t){var n=e.length;if(n%2!==0)throw new a("String should be an even number of characters");var r=t?l(t.length,n/2):n/2,i=t||new o(r),p=0,f=0;while(f({})},cminstance:{type:Object,default:()=>null},placeholder:{type:String,default:""}},emits:{ready:e=>e,"update:cminstance":e=>e},setup(e,{emit:t}){const n=(0,i.KR)(),o=(0,i.KR)(null),a=()=>{o.value=(0,i.IG)(c.fromTextArea(n.value,e.options)),t("update:cminstance",o.value);const a=(0,r.wB)(()=>e.cminstance,n=>{var r;n&&(null==(r=e.cminstance)||r.setValue(e.value||e.content)),t("ready",(0,i.R1)(o)),null==a||a()},{deep:!0})};return(0,r.sV)(()=>{a()}),{textarea:n,initialize:a}}}),d=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},p=["name","placeholder"];function f(e,t,n,i,o,a){return(0,r.uX)(),(0,r.CE)("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,p)}const h=d(u,[["render",f]]);window.diff_match_patch=s,window.DIFF_DELETE=-1,window.DIFF_INSERT=1,window.DIFF_EQUAL=0;const g=(0,r.pM)({name:"MergeMode",props:{options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})}},emits:["update:cminstance","ready"],setup(e,{emit:t}){const n=(0,i.KR)(),o=(0,i.KR)(),a=()=>{n.value=(0,i.IG)(c.MergeView(o.value,e.options)),t("update:cminstance",n.value),t("ready",n)};return(0,r.sV)(()=>{a()}),{mergeView:o,initialize:a}}}),m={ref:"mergeView"};function _(e,t,n,i,o,a){return(0,r.uX)(),(0,r.CE)("div",m,null,512)}const v=d(g,[["render",_]]);function y(e){const t=/#link#(.+)#link#/g,n=[];let r;for(r=t.exec(e);r;){const i=document.createElement("a"),o=JSON.parse(r[1]),a=Object.entries(o);for(const[e,t]of a)i.setAttribute(e,t);i.className="editor_custom_link",i.innerHTML="logDownload",n.push({start:r.index,end:r.index+r[0].length,node:i}),r=t.exec(e)}return n}function b(e){const t=[];function n(){const n=/#log<(\w*)>log#((.|\r\n|\n)*?)#log<(\w*)>log#/g;let r;for(r=n.exec(e);r;){const i=r[0].replace(/\r\n/g,"\n").split("\n"),o=r[2].replace(/\r\n/g,"\n").split("\n"),a=document.createElement("span"),s=r[1];a.className=`c-editor--log__${s}`;let l=0;for(let e=0;e[ \t])(.+)/,token:["tag","","error.strong","error.strong"],sol:!0},{regex:/(\[.*?\])([ \t]*)()(.+)(.?)/,token:["tag","","bracket","bracket","hr"],sol:!0},{regex:/(\[.*?\])([ \t]*)()(.+)(.?)/,token:["tag","","comment","comment","hr"],sol:!0}];c.defineSimpleMode("fclog",{start:[...k,{regex:/.*/,token:"hr"}],error:[...k,{regex:/.*/,token:"error.strong"}],info:[...k,{regex:/.*/,token:"bracket"}],warning:[...k,{regex:/.*\[/,token:"comment"}]}),c.defineSimpleMode("log",{start:[{regex:/^[=]+[^=]*[=]+/,token:"strong"},{regex:/([^\w])([A-Z][\w]*)/,token:["","string"]},{regex:/(^[A-Z][\w]*)/,token:"string"}]});const w=(0,r.pM)({name:"CodemirrorFclog",props:{value:{type:String,default:""},name:{type:String,default:"cm-textarea-"+ +new Date},options:{type:Object,default:()=>({})},cminstance:{type:Object,default:()=>({})},placeholder:{type:String,default:""}},emits:["update:cminstance","ready"],setup(e,{emit:t}){const n=(0,i.KR)(),o=(0,i.KR)(null),a=(t=e.cminstance)=>{t.getAllMarks().forEach(e=>e.clear());const n=t.getValue(),r=[].concat(y(n)).concat(b(n));for(let e=0;e{var r;o.value=(0,i.IG)(c.fromTextArea(n.value,e.options)),t("update:cminstance",(0,i.R1)(o)),null==(r=o.value)||r.on("change",a)};return(0,r.wB)(()=>e.cminstance,n=>{var r;n&&(a(e.cminstance),null==(r=e.cminstance)||r.setValue(e.value),t("ready",o))},{deep:!0,immediate:!0}),(0,r.sV)(()=>{s()}),{initialize:s,textarea:n}}}),x=["name","placeholder"];function C(e,t,n,i,o,a){return(0,r.uX)(),(0,r.CE)("textarea",{ref:"textarea",name:e.$props.name,placeholder:e.$props.placeholder},null,8,x)}const S=d(w,[["render",C]]),j={"update:value":()=>!0,change:(e,t)=>({value:e,cm:t}),input:()=>!0,ready:e=>e},T=["changes","scroll","beforeChange","cursorActivity","keyHandled","inputRead","electricInput","beforeSelectionChange","viewportChange","swapDoc","gutterClick","gutterContextMenu","focus","blur","refresh","optionChange","scrollCursorIntoView","update"],L=()=>{const e={};return T.forEach(t=>{e[t]=(...e)=>e}),e},E={...j,...L()},A={mode:"text",theme:"default",lineNumbers:!0,smartIndent:!0,indentUnit:2,styleActiveLine:!0};function M(e){Promise.resolve().then(()=>{const t=e.getScrollInfo();e.scrollTo(t.left,t.height)})}const D=({props:e,cminstance:t,emit:n,internalInstance:o,content:a})=>{const s=(0,r.EW)(()=>{var n;return e.merge?null==(n=(0,i.R1)(t))?void 0:n.editor():(0,i.R1)(t)}),l=()=>{const e=[];return Object.keys(null==o?void 0:o.vnode.props).forEach(t=>{if(t.startsWith("on")){const n=t.replace(t[2],t[2].toLowerCase()).slice(2);!j[n]&&e.push(n)}}),e};return{listenerEvents:()=>{s.value.on("change",t=>{const r=t.getValue();r===a.value&&""!==r||(a.value=r,n("update:value",a.value||""),n("input",a.value||" "),Promise.resolve().then(()=>{n("change",a.value,t)}),e.keepCursorInEnd&&M(t))});const t={};l().filter(e=>!t[e]&&(t[e]=!0)).forEach(e=>{s.value.on(e,(...t)=>{n(e,...t)})})}}};function O({props:e,cminstance:t,presetRef:n}){const o=(0,i.KR)("100%"),a=(0,i.KR)("100%"),s=(0,r.EW)(()=>{var n;return e.merge?null==(n=(0,i.R1)(t))?void 0:n.editor():(0,i.R1)(t)}),c=()=>{(0,r.dY)(()=>{var e;null==(e=s.value)||e.refresh()})},u=e=>!!e&&!(e&&isNaN(+e)),d=(t=e.width,n=e.height)=>{var r;let i="100%",c="100%";u(t)?i=`${String(t)}px`:t&&(i=t),u(n)?c=`${String(n)}px`:n&&(c=n),o.value=i,a.value=c,l.log("resize",i,c),null==(r=s.value)||r.setSize("100%","100%")},p=()=>{var e;const t=null==(e=s.value)?void 0:e.getWrapperElement();null==t||t.remove()},f=()=>{var e,t,r;const i=null==(e=s.value)?void 0:e.getDoc().getHistory();null==(t=n.value)||t.initialize(),p(),null==(r=s.value)||r.getDoc().setHistory(i)},h=()=>{const e=document.querySelector(".CodeMirror-gutters");return"0"!==(null==e?void 0:e.style.left.replace("px",""))};return{reload:f,refresh:c,resize:d,destroy:p,containerWidth:o,containerHeight:a,reviseStyle:()=>{if(c(),!h())return;const e=setInterval(()=>{h()?c():clearInterval(e)},60),t=setTimeout(()=>{clearInterval(e),clearTimeout(t)},400)}}}const N=(0,r.pM)({__name:"index",props:{value:{type:String,default:""},options:{type:Object,default:()=>A},globalOptions:{type:Object,default:()=>A},placeholder:{type:String,default:""},border:{type:Boolean,default:!1},width:{type:[String,Number],default:null},height:{type:[String,Number],default:null},originalStyle:{type:Boolean,default:!1},keepCursorInEnd:{type:Boolean,default:!1},merge:{type:Boolean,default:!1},name:{type:String,default:""},marker:{type:Function,default:()=>null},unseenLines:{type:Array,default:()=>[]}},emits:E,setup(e,{expose:t,emit:n}){var a,s,l;"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");const t=Object(e);for(let n=1;n{var e;return c.merge?null==(e=(0,i.R1)(d))?void 0:e.editor():(0,i.R1)(d)}),{refresh:k,resize:w,destroy:x,containerHeight:C,containerWidth:j,reviseStyle:T}=O({props:c,cminstance:d,presetRef:y}),{listenerEvents:L}=D({props:c,cminstance:d,emit:u,internalInstance:m,content:p}),E=()=>{void 0!==c.unseenLines&&void 0!==c.marker&&c.unseenLines.forEach(e=>{var t,n;const r=null==(t=d.value)?void 0:t.lineInfo(e);null==(n=d.value)||n.setGutterMarker(e,"breakpoints",null!=r&&r.gutterMarkers?null:c.marker())})},M=e=>{var t,n;const r=null==(t=d.value)?void 0:t.getValue();e!==r&&(null==(n=d.value)||n.setValue(e),p.value=e,T()),E()},N=()=>{L(),E(),w(c.width,c.height),u("ready",d.value),(0,r.wB)([()=>c.width,()=>c.height],([e,t])=>{w(e,t)},{deep:!0})},z=()=>{"fclog"!==c.options.mode&&"log"!==c.options.mode?c.merge?f.value=v:f.value=h:f.value=S};return(0,r.wB)(()=>c.options,e=>{var t;for(const n in c.options)null==(t=b.value)||t.setOption(n,(0,i.R1)(e[n]))},{deep:!0}),(0,r.wB)(()=>c.value,e=>{M(e)}),(0,r.wB)(()=>c.merge,z,{immediate:!0}),(0,r.xo)(()=>{x()}),t({cminstance:d,resize:w,refresh:k,destroy:x}),(e,t)=>((0,r.uX)(),(0,r.CE)("div",{class:(0,o.C4)(["codemirror-container",{merge:e.$props.merge,bordered:e.$props.border||e.$props.merge&&!c.originalStyle,"original-style":c.originalStyle}]),style:(0,o.Tr)({height:(0,i.R1)(C),width:(0,i.R1)(j)})},[((0,r.uX)(),(0,r.Wv)((0,r.$y)(f.value),(0,r.v6)({ref_key:"presetRef",ref:y,cminstance:d.value,"onUpdate:cminstance":t[0]||(t[0]=e=>d.value=e),style:{height:"100%"}},{...e.$props,...e.$attrs,options:g.value,name:(0,i.R1)(_),content:p.value},{onReady:N}),null,16,["cminstance"]))],6))}});window.CodeMirror;function z(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}z(".codemirror-container {\n position: relative;\n display: inline-block;\n height: 100%;\n width: fit-content;\n font-size: 13px;\n overflow: hidden;\n}\n.codemirror-container.bordered {\n border: 1px solid #aaaaaa;\n}\n\n.codemirror-container .editor_custom_link {\n cursor: pointer;\n color: #1474f1;\n text-decoration: underline;\n}\n.codemirror-container .editor_custom_link:hover {\n color: #04b4fa;\n}\n.codemirror-container:not(.original-style) .CodeMirror-lines .CodeMirror-placeholder.CodeMirror-line-like {\n color: #666;\n}\n.codemirror-container:not(.original-style) .CodeMirror,\n.codemirror-container:not(.original-style) .CodeMirror-merge-pane {\n height: 100%;\n font-family: consolas !important;\n}\n.codemirror-container:not(.original-style) .CodeMirror-merge,\n.codemirror-container:not(.original-style) .CodeMirror-merge-right .CodeMirror {\n height: 100%;\n border: none !important;\n}\n.codemirror-container:not(.original-style) .c-editor--log__error {\n color: #bb0606;\n font-weight: bold;\n}\n.codemirror-container:not(.original-style) .c-editor--log__info {\n color: #333333;\n font-weight: bold;\n}\n.codemirror-container:not(.original-style) .c-editor--log__warning {\n color: #ee9900;\n}\n.codemirror-container:not(.original-style) .c-editor--log__success {\n color: #669600;\n}\n.codemirror-container:not(.original-style) .cm-header,\n.codemirror-container:not(.original-style) .cm-strong {\n font-weight: bold;\n}\n")},43739:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_markdown.71e2f1af.svg"},46885:function(e,t,n){"use strict";n.r(t)},47478:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]])},47566:function(e,t,n){"use strict";var r=n(36840),i=n(79504),o=n(655),a=n(22812),s=URLSearchParams,l=s.prototype,c=i(l.getAll),u=i(l.has),d=new s("a=1");!d.has("a",2)&&d.has("a",void 0)||r(l,"has",function(e){var t=arguments.length,n=t<2?void 0:arguments[1];if(t&&void 0===n)return u(this,e);var r=c(this,e);a(t,1);var i=o(n),s=0;while(s=55296&&e<=57343)&&!(e>=64976&&e<=65007)&&65535!=(65535&e)&&65534!=(65535&e)&&!(e>=0&&e<=8)&&11!==e&&!(e>=14&&e<=31)&&!(e>=127&&e<=159)&&!(e>1114111)}function a(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(62),d=/[&<>"]/,p=/[&<>"]/g,f={"&":"&","<":"<",">":">",'"':"""};function h(e){return f[e]}var g=/[.?*+^$[\]\\(){}|-]/g,m=n(40);t.lib={},t.lib.mdurl=n(63),t.lib.ucmicro=n(147),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n]})}}),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=i,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,function(e,t,n){return t||function(e,t){var n=0;return i(u,t)?u[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?a(n):e}(e,n)})},t.isValidEntityCode=o,t.fromCodePoint=a,t.escapeHtml=function(e){return d.test(e)?e.replace(p,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return m.test(e)},t.escapeRE=function(e){return e.replace(g,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(6),i=n(16);e.exports=n(7)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(14),i=n(47),o=n(28),a=Object.defineProperty;t.f=n(7)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(15)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(89),i=n(27);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(32)("wks"),i=n(17),o=n(2).Symbol,a="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=a&&o[e]||(a?o:i)("Symbol."+e))}).store=r},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(module,exports,__nested_webpack_require_5055__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _typeof2=__nested_webpack_require_5055__(25),_typeof3=_interopRequireDefault(_typeof2),_keydownListen=__nested_webpack_require_5055__(110),_langHljsCss=__nested_webpack_require_5055__(111),_langHljsCss2=_interopRequireDefault(_langHljsCss),_langHljs=__nested_webpack_require_5055__(56),_langHljs2=_interopRequireDefault(_langHljs),_extraFunction=__nested_webpack_require_5055__(57),_util=__nested_webpack_require_5055__(112),_toolbar_left_click2=__nested_webpack_require_5055__(113),_toolbar_right_click2=__nested_webpack_require_5055__(114),_config=__nested_webpack_require_5055__(115),_markdown=__nested_webpack_require_5055__(134),_markdown2=_interopRequireDefault(_markdown),_mdToolbarLeft=__nested_webpack_require_5055__(70),_mdToolbarLeft2=_interopRequireDefault(_mdToolbarLeft),_mdToolbarRight=__nested_webpack_require_5055__(72),_mdToolbarRight2=_interopRequireDefault(_mdToolbarRight),_autoTextarea=__nested_webpack_require_5055__(218),_autoTextarea2=_interopRequireDefault(_autoTextarea);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}__nested_webpack_require_5055__(224),__nested_webpack_require_5055__(233),exports.default={emits:["imgDel","change","fullScreen","readModel","previewToggle","subfieldToggle","htmlCode","helpToggle","save","navigationToggle","update:modelValue"],mixins:[_markdown2.default],props:{scrollStyle:{type:Boolean,default:!0},boxShadow:{type:Boolean,default:!0},transition:{type:Boolean,default:!0},autofocus:{type:Boolean,default:!0},fontSize:{type:String,default:"14px"},toolbarsBackground:{type:String,default:"#ffffff"},editorBackground:{type:String,default:"#ffffff"},previewBackground:{type:String,default:"#fbfbfb"},boxShadowStyle:{type:String,default:"0 2px 12px 0 rgba(0, 0, 0, 0.1)"},help:{type:String,default:null},modelValue:{type:String,default:""},language:{type:String,default:"zh-CN"},subfield:{type:Boolean,default:!0},navigation:{type:Boolean,default:!1},defaultOpen:{type:String,default:null},editable:{type:Boolean,default:!0},toolbarsFlag:{type:Boolean,default:!0},toolbars:{type:Object,default:function(){return _config.CONFIG.toolbars}},html:{type:Boolean,default:!0},xssOptions:{type:[Object,Boolean],default:function(){return{}}},codeStyle:{type:String,default:function(){return"github"}},placeholder:{type:String,default:null},ishljs:{type:Boolean,default:!0},externalLink:{type:[Object,Boolean],default:!0},imageFilter:{type:Function,default:null},imageClick:{type:Function,default:null},tabSize:{type:Number,default:0},shortCut:{type:Boolean,default:!0}},data:function(){var e,t,n=this;return{s_right_click_menu_show:!1,right_click_menu_top:0,right_click_menu_left:0,s_subfield:n.subfield,s_autofocus:!0,s_navigation:n.navigation,s_scrollStyle:n.scrollStyle,d_value:"",d_render:"",s_preview_switch:(t=n.defaultOpen,t||(t=n.subfield?"preview":"edit"),"preview"===t),s_fullScreen:!1,s_help:!1,s_html_code:!1,d_help:null,d_words:null,edit_scroll_height:-1,s_readmodel:!1,s_table_enter:!1,d_history:(e=[],e.push(n.modelValue),e),d_history_index:0,currentTimeout:"",d_image_file:[],d_preview_imgsrc:null,s_external_link:{markdown_css:function(){return"https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.9.0/github-markdown.min.css"},hljs_js:function(){return"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js"},hljs_lang:function(e){return"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/languages/"+e+".min.js"},hljs_css:function(e){return _langHljsCss2.default[e]?"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/styles/"+e+".min.css":""},katex_js:function(){return"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.8.3/katex.min.js"},katex_css:function(){return"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.8.3/katex.min.css"}},p_external_link:{},textarea_selectionEnd:0,textarea_selectionEnds:[0],_xssHandler:null}},created:function(){var e=this;this.initLanguage(),this.initExternalFuc(),this.$nextTick(function(){e.editableTextarea()})},mounted:function(){var e=this;this.$el.addEventListener("paste",function(t){e.$paste(t)}),this.$el.addEventListener("drop",function(t){e.$drag(t)}),(0,_keydownListen.keydownListen)(this),(0,_extraFunction.ImagePreviewListener)(this),this.autofocus&&this.getTextareaDom().focus(),(0,_extraFunction.fullscreenchange)(this),this.d_value=this.modelValue||"",document.body.appendChild(this.$refs.help),this.loadExternalLink("markdown_css","css"),this.loadExternalLink("katex_css","css"),this.loadExternalLink("katex_js","js",function(){e.iRender(!0)}),this.loadExternalLink("hljs_js","js",function(){e.iRender(!0)}),"object"===(0,_typeof3.default)(e.externalLink)&&"function"==typeof e.externalLink.markdown_css||e.codeStyleChange(e.codeStyle,!0)},beforeUnmount:function(){document.body.removeChild(this.$refs.help)},getMarkdownIt:function(){var e=this.mixins[0].data().markdownIt;return e||(e=(0,_markdown.initMarkdown)()),e},methods:{loadExternalLink:function(e,t,n){if("function"==typeof this.p_external_link[e]){var r={css:_extraFunction.loadLink,js:_extraFunction.loadScript};r.hasOwnProperty(t)&&r[t](this.p_external_link[e](),n)}else!1!==this.p_external_link[e]&&console.error("external_link."+e,"is not a function, if you want to disabled this error log, set external_link."+e,"to function or false")},initExternalFuc:function(){for(var e=["markdown_css","hljs_js","hljs_css","hljs_lang","katex_js","katex_css"],t=(0,_typeof3.default)(this.externalLink),n="object"===t,r="boolean"===t,i=0;i0&&(e.preventDefault(),this.$refs.toolbar_left.$imgFilesAdd(n))}},$paste:function(e){var t=e.clipboardData;if(t){var n=t.items;if(!n)return;for(var r=t.types||[],i=null,o=0;o=0?this.language:"zh-CN",t=this;t.$render(_config.CONFIG["help_"+e],function(e){t.d_help=e}),this.d_words=_config.CONFIG["words_"+e]},editableTextarea:function(){var e=this.$refs.vNoteTextarea.$refs.vTextarea;this.editable?e.removeAttribute("disabled"):e.setAttribute("disabled","disabled")},codeStyleChange:function(e,t){if(t=t||!1,"function"==typeof this.p_external_link.hljs_css){var n=this.p_external_link.hljs_css(e);0===n.length&&t&&(console.warn("hljs color scheme",e,"do not exist, loading default github"),n=this.p_external_link.hljs_css("github")),n.length>0?(0,_extraFunction.loadLink)(n,null,"md-code-style"):console.warn("hljs color scheme",e,"do not exist, hljs color scheme will not change")}else!1!==this.p_external_link.hljs_css&&console.error("external_link.hljs_css is not a function, if you want to disabled this error log, set external_link.hljs_css to function or false")},iRender:function(e){var t=this;this.$render(t.d_value,function(n){t.d_render=n,e||t.change&&t.change(t.d_value,t.d_render),t.s_navigation&&(0,_extraFunction.getNavigation)(t,!1),t.$emit("update:modelValue",t.d_value),t.d_value!==t.d_history[t.d_history_index]&&(window.clearTimeout(t.currentTimeout),t.currentTimeout=setTimeout(function(){t.saveHistory()},500))})},$emptyHistory:function(){this.d_history=[this.d_value],this.d_history_index=0}},watch:{d_value:function(e,t){this.saveSelectionEndsHistory(),this.iRender()},modelValue:function(e,t){e!==this.d_value&&(this.d_value=e)},subfield:function(e,t){this.s_subfield=e},d_history_index:function(){this.d_history_index>20&&(this.d_history.shift(),this.d_history_index=this.d_history_index-1),this.d_value=this.d_history[this.d_history_index]},language:function(e){this.initLanguage()},editable:function(){this.editableTextarea()},defaultOpen:function(e){var t=e;return t||(t=this.subfield?"preview":"edit"),this.s_preview_switch="preview"===t,this.s_preview_switch},codeStyle:function(e){this.codeStyleChange(e)}},components:{"v-autoTextarea":_autoTextarea2.default,"v-md-toolbar-left":_mdToolbarLeft2.default,"v-md-toolbar-right":_mdToolbarRight2.default}}},function(e,t){e.exports=!0},function(e,t){var n=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={emits:["toolbar_left_addlink","imgTouch","imgAdd","imgDel","imgAdd","imgAdd","toolbar_left_click","toolbar_left_click"],name:"s-md-toolbar-left",props:{editable:{type:Boolean,default:!0},transition:{type:Boolean,default:!0},toolbars:{type:Object,required:!0},d_words:{type:Object,required:!0},image_filter:{type:Function,default:null}},data:function(){return{img_file:[[0,null]],img_timer:null,header_timer:null,s_img_dropdown_open:!1,s_header_dropdown_open:!1,s_img_link_open:!1,trigger:null,num:0,link_text:"",link_addr:"",link_type:"link"}},methods:{$imgLinkAdd:function(){this.$emit("toolbar_left_addlink",this.link_type,this.link_text,this.link_addr),this.s_img_link_open=!1},$toggle_imgLinkAdd:function(e){var t=this;this.link_type=e,this.link_text=this.link_addr="",this.s_img_link_open=!0,this.$nextTick(function(){t.$refs.linkTextInput.focus()}),this.s_img_dropdown_open=!1},$imgFileListClick:function(e){this.$emit("imgTouch",this.img_file[e])},$changeUrl:function(e,t){this.img_file[e][0]=t},$imgFileAdd:function(e){this.img_file.push([++this.num,e]),this.$emit("imgAdd",this.num,e),this.s_img_dropdown_open=!1},$imgFilesAdd:function(e){for(var t="function"==typeof this.image_filter,n=0;nt;){if(this.img_file[t][1]===e||this.isEqualName(e,t))return this.$imgDel(t),!0;t+=1}return!1},$imgAddByFilename:function(e,t){for(var n=0;n0?r:n)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(10);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports={}},function(e,t,n){var r=n(51),i=n(33);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(32)("keys"),i=n(17);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(13),i=n(2),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(12)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(6).f,i=n(4),o=n(9)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){t.f=n(9)},function(e,t,n){var r=n(2),i=n(13),o=n(12),a=n(35),s=n(6).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(59),i=n(137);for(var o in(t=e.exports=function(e,t){return new i(t).process(e)}).FilterCSS=i,r)t[o]=r[o];"undefined"!=typeof window&&(window.filterCSS=e.exports)},function(e,t){e.exports={indexOf:function(e,t){var n,r;if(Array.prototype.indexOf)return e.indexOf(t);for(n=0,r=e.length;n=0&&(n=this.attrs[t][1]),n},r.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=r},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n,r,i,o=e[1]||"",a=e[3];if(!a)return o;if(t&&"function"==typeof btoa){var s=(n=a,r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),"/*# ".concat(i," */")),l=a.sources.map(function(e){return"/*# sourceURL=".concat(a.sourceRoot||"").concat(e," */")});return[o].concat(l).concat([s]).join("\n")}return[o].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n}).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var i={};if(r)for(var o=0;on.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;idocument.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[o[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=l(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(4),i=n(8),o=n(90)(!1),a=n(31)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),l=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>l;)r(s,n=t[l++])&&(~o(c,n)||c.push(n));return c}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(27);e.exports=function(e){return Object(r(e))}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(51),i=n(33).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={"1c":"1c",abnf:"abnf",accesslog:"accesslog",actionscript:"actionscript",as:"actionscript",ada:"ada",apache:"apache",apacheconf:"apache",applescript:"applescript",osascript:"applescript",arduino:"arduino",armasm:"armasm",arm:"armasm",asciidoc:"asciidoc",adoc:"asciidoc",aspectj:"aspectj",autohotkey:"autohotkey",ahk:"autohotkey",autoit:"autoit",avrasm:"avrasm",awk:"awk",axapta:"axapta",bash:"bash",sh:"bash",zsh:"bash",basic:"basic",bnf:"bnf",brainfuck:"brainfuck",bf:"brainfuck",cal:"cal",capnproto:"capnproto",capnp:"capnproto",ceylon:"ceylon",clean:"clean",icl:"clean",dcl:"clean","clojure-repl":"clojure-repl",clojure:"clojure",clj:"clojure",cmake:"cmake","cmake.in":"cmake",coffeescript:"coffeescript",coffee:"coffeescript",cson:"coffeescript",iced:"coffeescript",coq:"coq",cos:"cos",cls:"cos",cpp:"cpp",c:"cpp",cc:"cpp",h:"cpp","c++":"cpp","h++":"cpp",hpp:"cpp",crmsh:"crmsh",crm:"crmsh",pcmk:"crmsh",crystal:"crystal",cr:"crystal",cs:"cs",csharp:"cs",csp:"csp",css:"css",d:"d",dart:"dart",delphi:"delphi",dpr:"delphi",dfm:"delphi",pas:"delphi",pascal:"delphi",freepascal:"delphi",lazarus:"delphi",lpr:"delphi",lfm:"delphi",diff:"diff",patch:"diff",django:"django",jinja:"django",dns:"dns",bind:"dns",zone:"dns",dockerfile:"dockerfile",docker:"dockerfile",dos:"dos",bat:"dos",cmd:"dos",dsconfig:"dsconfig",dts:"dts",dust:"dust",dst:"dust",ebnf:"ebnf",elixir:"elixir",elm:"elm",erb:"erb","erlang-repl":"erlang-repl",erlang:"erlang",erl:"erlang",excel:"excel",xlsx:"excel",xls:"excel",fix:"fix",flix:"flix",fortran:"fortran",f90:"fortran",f95:"fortran",fsharp:"fsharp",fs:"fsharp",gams:"gams",gms:"gams",gauss:"gauss",gss:"gauss",gcode:"gcode",nc:"gcode",gherkin:"gherkin",feature:"gherkin",glsl:"glsl",go:"go",golang:"go",golo:"golo",gradle:"gradle",groovy:"groovy",haml:"haml",handlebars:"handlebars",hbs:"handlebars","html.hbs":"handlebars","html.handlebars":"handlebars",haskell:"haskell",hs:"haskell",haxe:"haxe",hx:"haxe",hsp:"hsp",htmlbars:"htmlbars",http:"http",https:"http",hy:"hy",hylang:"hy",inform7:"inform7",i7:"inform7",ini:"ini",toml:"ini",irpf90:"irpf90",java:"java",jsp:"java",javascript:"javascript",js:"javascript",jsx:"javascript","jboss-cli":"jboss-cli","wildfly-cli":"jboss-cli",json:"json","julia-repl":"julia-repl",julia:"julia",kotlin:"kotlin",lasso:"lasso",ls:"livescript",lassoscript:"lasso",ldif:"ldif",leaf:"leaf",less:"less",lisp:"lisp",livecodeserver:"livecodeserver",livescript:"livescript",llvm:"llvm",lsl:"lsl",lua:"lua",makefile:"makefile",mk:"makefile",mak:"makefile",markdown:"markdown",md:"markdown",mkdown:"markdown",mkd:"markdown",mathematica:"mathematica",mma:"mathematica",matlab:"matlab",maxima:"maxima",mel:"mel",mercury:"mercury",m:"mercury",moo:"mercury",mipsasm:"mipsasm",mips:"mipsasm",mizar:"mizar",mojolicious:"mojolicious",monkey:"monkey",moonscript:"moonscript",moon:"moonscript",n1ql:"n1ql",nginx:"nginx",nginxconf:"nginx",nimrod:"nimrod",nim:"nimrod",nix:"nix",nixos:"nix",nsis:"nsis",objectivec:"objectivec",mm:"objectivec",objc:"objectivec","obj-c":"objectivec",ocaml:"ocaml",ml:"sml",openscad:"openscad",scad:"openscad",oxygene:"oxygene",parser3:"parser3",perl:"perl",pl:"perl",pm:"perl",pf:"pf","pf.conf":"pf",php:"php",php3:"php",php4:"php",php5:"php",php6:"php",pony:"pony",powershell:"powershell",ps:"powershell",processing:"processing",profile:"profile",prolog:"prolog",protobuf:"protobuf",puppet:"puppet",pp:"puppet",purebasic:"purebasic",pb:"purebasic",pbi:"purebasic",python:"python",py:"python",gyp:"python",q:"q",k:"q",kdb:"q",qml:"qml",qt:"qml",r:"r",rib:"rib",roboconf:"roboconf",graph:"roboconf",instances:"roboconf",routeros:"routeros",mikrotik:"routeros",rsl:"rsl",ruby:"ruby",rb:"ruby",gemspec:"ruby",podspec:"ruby",thor:"ruby",irb:"ruby",ruleslanguage:"ruleslanguage",rust:"rust",rs:"rust",scala:"scala",scheme:"scheme",scilab:"scilab",sci:"scilab",scss:"scss",shell:"shell",console:"shell",smali:"smali",smalltalk:"smalltalk",st:"smalltalk",sml:"sml",sqf:"sqf",sql:"sql",stan:"stan",stata:"stata",do:"stata",ado:"stata",step21:"step21",p21:"step21",step:"step21",stp:"step21",stylus:"stylus",styl:"stylus",subunit:"subunit",swift:"swift",taggerscript:"taggerscript",tap:"tap",tcl:"tcl",tk:"tcl",tex:"tex",thrift:"thrift",tp:"tp",twig:"twig",craftcms:"twig",typescript:"typescript",ts:"typescript",vala:"vala",vbnet:"vbnet",vb:"vbnet","vbscript-html":"vbscript-html",vbscript:"vbscript",vbs:"vbscript",verilog:"verilog",v:"verilog",sv:"verilog",svh:"verilog",vhdl:"vhdl",vim:"vim",x86asm:"x86asm",xl:"xl",tao:"xl",xml:"xml",html:"xml",xhtml:"xml",rss:"xml",atom:"xml",xjb:"xml",xsd:"xml",xsl:"xml",plist:"xml",xquery:"xquery",xpath:"xquery",xq:"xquery",yaml:"yaml",yml:"yaml",YAML:"yaml",zephir:"zephir",zep:"zephir"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadScript=function(e,t){"function"!=typeof t&&(t=function(){});var n=document.querySelectorAll("script[src='"+e+"']");if(n.length>0)return n[0].addEventListener("load",function(){t()}),void t();var r=document.createElement("script"),i=document.getElementsByTagName("head")[0];r.type="text/javascript",r.charset="UTF-8",r.src=e,r.addEventListener?r.addEventListener("load",function(){t()},!1):r.attachEvent&&r.attachEvent("onreadystatechange",function(){"loaded"===window.event.srcElement.readyState&&t()}),i.appendChild(r)},t.loadLink=function(e,t,n){if("function"!=typeof t&&(t=function(){}),document.querySelectorAll("link[href='"+e+"']").length>0)t();else{if(n){var r=document.querySelectorAll("link#"+n);if(r.length)return void(r[0].href=e)}var i=document.createElement("link"),o=document.getElementsByTagName("head")[0];i.rel="stylesheet",i.href=e,n&&(i.id=n),i.addEventListener?i.addEventListener("load",function(){t()},!1):i.attachEvent&&i.attachEvent("onreadystatechange",function(){"loaded"===window.event.srcElement.readyState&&t()}),o.appendChild(i)}},t.insertTextAtCaret=function(e,t,n){var r=t.prefix,i=t.subfix,o=t.str;if(t.type,e.focus(),s(e)){var a=e.selectionStart,l=e.selectionEnd,c=e.value;a===l?(e.value=c.substring(0,a)+r+o+i+c.substring(l,c.length),e.selectionStart=a+r.length,e.selectionEnd=a+(o.length+r.length)):c.substring(a-r.length,a)===r&&c.substring(l,l+i.length)===i&&function(e,t,n,r,i){return"*"!==e||"*"!==t||"*"!==n.substring(r-2,r-1)||"*"!==n.substring(i+1,i+2)}(r,i,c,a,l)?(e.value=c.substring(0,a-r.length)+c.substring(a,l)+c.substring(l+i.length,c.length),e.selectionStart=a-r.length,e.selectionEnd=l-r.length):(e.value=c.substring(0,a)+r+c.substring(a,l)+i+c.substring(l,c.length),e.selectionStart=a+r.length,e.selectionEnd=a+(l-a+r.length))}else alert("Error: Browser version is too low");n.d_value=e.value,e.focus()};var r="```",i="\n```\n",o="language";function a(e,t,n){var o=r,a=i,s=n.selectionStart,l=n.selectionEnd,c=n.value,u=c.substring(0,s);u+=o+e+"\n",u+=t,u+=a,u+=c.substring(l,c.length),n.value=u,n.selectionStart=s+o.length+(e?0:1),n.selectionEnd=n.selectionStart+e.length+t.length}function s(e){return"number"==typeof e.selectionStart&&"number"==typeof e.selectionEnd}t.insertCodeBlock=function(e){var t=e.getTextareaDom();if(s(t)){var n=o,l=t.selectionStart,c=t.selectionEnd,u=t.value;l===c?a(n,"",t):function(e){var t=e.selectionStart,n=e.selectionEnd,o=e.value,a=r,s=i;return"\n"===o.substring(t-1,t)?a+="\n":s="\n"+s,o.substring(t-a.length,t)===a&&o.substring(n,n+s.length)===s}(t)?function(e){var t=r,n=i,a=o,s=e.selectionStart,l=e.selectionEnd,c=e.value,u=c.substring(s,l);if("\n"===c.substring(s-1,s))t+="\n";else if(t+a+(n="\n"+n)===c.substring(s-t.length,l+n.length)){var d=c.substring(0,s-t.length);return d+=c.substring(l+n.length,c.length),e.value=d,e.selectionStart=s-t.length,void(e.selectionEnd=e.selectionStart)}var p=c.substring(0,s-t.length);p+=u,p+=c.substring(l+n.length,c.length),e.value=p,e.selectionStart=s-t.length,e.selectionEnd=e.selectionStart+u.length}(t):a("",u.substring(l,c),t),e.d_value=t.value,t.focus()}else alert("Error: Browser version is too low")},t.insertOl=function(e){var t=e.getTextareaDom();if(s(t)){var n=t.selectionStart,r=t.selectionEnd,i=t.value;if(n===r)t.value=i.substring(0,n)+"1. "+i.substring(r,i.length),t.selectionEnd=t.selectionStart=n+3;else{for(var o=n;o>0&&"\n"!==i.substring(o-1,o);)o--;for(var a=i.substring(o,r),l=a.split("\n"),c=0;c0&&"\n"!==i.substring(o-1,o);)o--;for(var a=r;a0&&"\n"!==i.substring(o-1,o);)o--;var a=i.substring(o,r),l=a.replace(/\n/g,"\n- ");l="- "+l,t.value=i.substring(0,o)+l+i.substring(r,i.length),t.selectionStart=o,t.selectionEnd=r+l.length-a.length}}else alert("Error: Browser version is too low");e.d_value=t.value,t.focus()},t.insertTab=function(e,t){t=t?new Array(t).fill(" ").join(""):"\t";var n=e.getTextareaDom();if(s(n)){var r=n.selectionStart,i=n.selectionEnd,o=n.value,a=o.substring(0,r).split("\n").pop();if(a.match(/^\s*[0-9]+\.\s+\S*/)){var l=a.replace(/(\d+)/,1);n.value=o.substring(0,r-l.length)+t+l+o.substring(i,o.length)}else a.match(/^\s*-\s+\S*/)?n.value=o.substring(0,r-a.length)+t+a+o.substring(i,o.length):n.value=o.substring(0,r)+t+o.substring(i,o.length);n.selectionStart=n.selectionEnd=r+t.length}else alert("Error: Browser version is too low");e.d_value=n.value,n.focus()},t.unInsertTab=function(e,t){var n=new RegExp(t?"\\s{"+t+"}":"\t");console.log("regTab:",n);var r=e.getTextareaDom();if(s(r)){var i=r.selectionStart,o=r.selectionEnd,a=r.value,l=a.substring(0,i).split("\n").pop();l.search(n)>=0&&(r.value=a.substring(0,i-l.length)+l.replace(n,"")+a.substring(o,a.length),r.selectionStart=r.selectionEnd=i-(t||1))}else alert("Error: Browser version is too low");e.d_value=r.value,r.focus()},t.insertEnter=function(e,t){var n=e.getTextareaDom();if(s(n)){var r=n.selectionStart,i=n.selectionEnd,o=n.value,a=o.substring(0,r).split("\n").pop(),l=a.match(/^\s*(?:[0-9]+\.|-)\s+\S+/);if(l){t.preventDefault();var c=l.shift().match(/^\s*(?:[0-9]+\.|-)\s/).shift();if(c.search(/-/)>=0)n.value=o.substring(0,r)+"\n"+c+o.substring(i,o.length),n.selectionStart=n.selectionEnd=r+c.length+1;else{var u=c.replace(/(\d+)/,parseInt(c)+1);n.value=o.substring(0,r)+"\n"+u+o.substring(i,o.length),n.selectionStart=n.selectionEnd=r+u.length+1}}else{var d=a.match(/^\s*(?:[0-9]+\.|-)\s+$/);if(d){t.preventDefault();var p=d.shift().length;n.value=o.substring(0,r-p)+"\n"+o.substring(i,o.length),n.selectionStart=n.selectionEnd=r-p}}}else alert("Error: Browser version is too low");e.d_value=n.value,n.focus()},t.getNavigation=function(e,t){var n=void 0;(n=e.$refs.navigationContent).innerHTML=e.d_render;var r=n.children;if(r.length)for(var i=0;i=0&&n.scrollHeight!==t.edit_scroll_height&&n.scrollHeight-n.offsetHeight-n.scrollTop<=30&&(t.$refs.vNoteEdit.scrollTop=n.scrollHeight-n.offsetHeight,r=1),t.edit_scroll_height=n.scrollHeight,t.$refs.vShowContent.scrollHeight>t.$refs.vShowContent.offsetHeight&&(t.$refs.vShowContent.scrollTop=(t.$refs.vShowContent.scrollHeight-t.$refs.vShowContent.offsetHeight)*r)},t.fullscreenchange=function(e){e.$el.addEventListener("fullscreenchange",function(t){e.$toolbar_right_read_change_status()},!1),e.$el.addEventListener("mozfullscreenchange",function(t){e.$toolbar_right_read_change_status()},!1),e.$el.addEventListener("webkitfullscreenchange",function(t){e.$toolbar_right_read_change_status()},!1),e.$el.addEventListener("msfullscreenchange",function(t){e.$toolbar_right_read_change_status()},!1)},t.windowResize=function(e){function t(){e.$el.clientWidth>768?e.s_subfield=e.subfield:e.s_subfield=!1}t(),window.addEventListener("resize",t)},t.ImagePreviewListener=function(e){e.$refs.vShowContent.addEventListener("click",function(t){var n=(t=t||window.event).srcElement?t.srcElement:t.target;"IMG"===n.tagName&&(null!=e.imageClick?e.imageClick(n):e.d_preview_imgsrc=n.src)})}},function(e,t,n){var r=n(38).FilterCSS,i=n(38).getDefaultWhiteList,o=n(39);function a(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}}var s=new r;function l(e){return e.replace(c,"<").replace(u,">")}var c=//g,d=/"/g,p=/"/g,f=/&#([a-zA-Z0-9]*);?/gim,h=/:?/gim,g=/&newline;?/gim,m=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,_=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,v=/u\s*r\s*l\s*\(.*/gi;function y(e){return e.replace(d,""")}function b(e){return e.replace(p,'"')}function k(e){return e.replace(f,function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))})}function w(e){return e.replace(h,":").replace(g," ")}function x(e){for(var t="",n=0,r=e.length;n0;t--){var n=e[t];if(" "!==n)return"="===n?t:-1}}function u(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}t.parseTag=function(e,t,n){"use strict";var r="",a=0,s=!1,l=!1,c=0,u=e.length,d="",p="";e:for(c=0;c"===f||c===u-1){r+=n(e.slice(a,s)),d=i(p=e.slice(s,c+1)),r+=t(s,r.length,d,p,o(p)),a=c+1,s=!1;continue}if('"'===f||"'"===f)for(var h=1,g=e.charAt(c-h);""===g.trim()||"="===g;){if("="===g){l=f;continue e}g=e.charAt(c-++h)}}else if(f===l){l=!1;continue}}return a`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",i="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",o=new RegExp("^(?:"+r+"|"+i+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|]*>|)"),a=new RegExp("^(?:"+r+"|"+i+")");e.exports.HTML_TAG_RE=o,e.exports.HTML_OPEN_CLOSE_TAG_RE=a},function(e,t,n){"use strict";function r(e,t){var n,r,i,o,a,s=[],l=t.length;for(n=0;n=0;n--)95!==(r=t[n]).marker&&42!==r.marker||-1!==r.end&&(i=t[r.end],s=n>0&&t[n-1].end===r.end+1&&t[n-1].token===r.token-1&&t[r.end+1].token===i.token+1&&t[n-1].marker===r.marker,a=String.fromCharCode(r.marker),(o=e.tokens[r.token]).type=s?"strong_open":"em_open",o.tag=s?"strong":"em",o.nesting=1,o.markup=s?a+a:a,o.content="",(o=e.tokens[i.token]).type=s?"strong_close":"em_close",o.tag=s?"strong":"em",o.nesting=-1,o.markup=s?a+a:a,o.content="",s&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}e.exports.tokenize=function(e,t){var n,r,i=e.pos,o=e.src.charCodeAt(i);if(t)return!1;if(95!==o&&42!==o)return!1;for(r=e.scanDelims(e.pos,42===o),n=0;n[Object(r.renderSlot)(e.$slots,"left-toolbar-before",{},void 0,!0)]),"left-toolbar-after":Object(r.withCtx)(()=>[Object(r.renderSlot)(e.$slots,"left-toolbar-after",{},void 0,!0)]),_:3},8,["editable","transition","d_words","onToolbar_left_click","onToolbar_left_addlink","toolbars","onImgAdd","onImgDel","onImgTouch","image_filter","class"]),Object(r.createVNode)(g,{ref:"toolbar_right",d_words:p.d_words,onToolbar_right_click:f.toolbar_right_click,toolbars:n.toolbars,s_subfield:p.s_subfield,s_preview_switch:p.s_preview_switch,s_fullScreen:p.s_fullScreen,s_html_code:p.s_html_code,s_navigation:p.s_navigation,class:Object(r.normalizeClass)({transition:n.transition})},{"right-toolbar-before":Object(r.withCtx)(()=>[Object(r.renderSlot)(e.$slots,"right-toolbar-before",{},void 0,!0)]),"right-toolbar-after":Object(r.withCtx)(()=>[Object(r.renderSlot)(e.$slots,"right-toolbar-after",{},void 0,!0)]),_:3},8,["d_words","onToolbar_right_click","toolbars","s_subfield","s_preview_switch","s_fullScreen","s_html_code","s_navigation","class"])],4),[[r.vShow,n.toolbarsFlag]]),Object(r.createCommentVNode)("编辑展示区域"),Object(r.createElementVNode)("div",i,[Object(r.createCommentVNode)("编辑区"),Object(r.createElementVNode)("div",{ref:"vNoteEdit",onScroll:t[1]||(t[1]=(...e)=>f.$v_edit_scroll&&f.$v_edit_scroll(...e)),class:Object(r.normalizeClass)(["v-note-edit divarea-wrapper",{"scroll-style":p.s_scrollStyle,"scroll-style-border-radius":p.s_scrollStyle&&!p.s_preview_switch&&!p.s_html_code,"single-edit":!p.s_preview_switch&&!p.s_html_code,"single-show":!p.s_subfield&&p.s_preview_switch||!p.s_subfield&&p.s_html_code,transition:n.transition}]),onClick:t[2]||(t[2]=(...e)=>f.textAreaFocus&&f.textAreaFocus(...e))},[Object(r.createElementVNode)("div",{class:"content-input-wrapper",style:Object(r.normalizeStyle)({"background-color":n.editorBackground})},[Object(r.createCommentVNode)(" 双栏 "),Object(r.createVNode)(m,{ref:"vNoteTextarea",placeholder:n.placeholder?n.placeholder:p.d_words.start_editor,class:"content-input",fontSize:n.fontSize,lineHeight:"1.5",modelValue:p.d_value,"onUpdate:modelValue":t[0]||(t[0]=e=>p.d_value=e),fullHeight:"",style:Object(r.normalizeStyle)({"background-color":n.editorBackground})},null,8,["placeholder","fontSize","modelValue","style"])],4)],34),Object(r.createCommentVNode)("展示区"),Object(r.withDirectives)(Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)([{"single-show":!p.s_subfield&&p.s_preview_switch||!p.s_subfield&&p.s_html_code},"v-note-show"])},[Object(r.withDirectives)(Object(r.createElementVNode)("div",{ref:"vShowContent",innerHTML:p.d_render,class:Object(r.normalizeClass)([{"scroll-style":p.s_scrollStyle,"scroll-style-border-radius":p.s_scrollStyle},"v-show-content"]),style:Object(r.normalizeStyle)({"background-color":n.previewBackground})},null,14,o),[[r.vShow,!p.s_html_code]]),Object(r.withDirectives)(Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)([{"scroll-style":p.s_scrollStyle,"scroll-style-border-radius":p.s_scrollStyle},"v-show-content-html"]),style:Object(r.normalizeStyle)({"background-color":n.previewBackground})},Object(r.toDisplayString)(p.d_render),7),[[r.vShow,p.s_html_code]])],2),[[r.vShow,p.s_preview_switch||p.s_html_code]]),Object(r.createCommentVNode)("标题导航"),Object(r.createVNode)(r.Transition,{name:"slideTop",persisted:""},{default:Object(r.withCtx)(()=>[Object(r.withDirectives)(Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)(["v-note-navigation-wrapper",{transition:n.transition}])},[Object(r.createElementVNode)("div",a,[Object(r.createTextVNode)(Object(r.toDisplayString)(p.d_words.navigation_title),1),Object(r.createElementVNode)("i",{onClick:t[3]||(t[3]=e=>f.toolbar_right_click("navigation")),class:"fa fa-mavon-times v-note-navigation-close","aria-hidden":"true"})]),Object(r.createElementVNode)("div",{ref:"navigationContent",class:Object(r.normalizeClass)(["v-note-navigation-content",{"scroll-style":p.s_scrollStyle}])},null,2)],2),[[r.vShow,p.s_navigation]])]),_:1})]),Object(r.createCommentVNode)("帮助文档"),Object(r.createVNode)(r.Transition,{name:"fade"},{default:Object(r.withCtx)(()=>[Object(r.createElementVNode)("div",s,[p.s_help?(Object(r.openBlock)(),Object(r.createElementBlock)("div",{key:0,onClick:t[5]||(t[5]=Object(r.withModifiers)(e=>f.toolbar_right_click("help"),["self"])),class:"v-note-help-wrapper"},[Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)(["v-note-help-content markdown-body",{shadow:n.boxShadow}])},[Object(r.createElementVNode)("i",{onClick:t[4]||(t[4]=Object(r.withModifiers)(e=>f.toolbar_right_click("help"),["stop","prevent"])),class:"fa fa-mavon-times","aria-hidden":"true"}),Object(r.createElementVNode)("div",{class:"scroll-style v-note-help-show",innerHTML:p.d_help},null,8,l)],2)])):Object(r.createCommentVNode)("v-if",!0)],512)]),_:1}),Object(r.createCommentVNode)(" 预览图片 "),Object(r.createVNode)(r.Transition,{name:"fade"},{default:Object(r.withCtx)(()=>[p.d_preview_imgsrc?(Object(r.openBlock)(),Object(r.createElementBlock)("div",{key:0,onClick:t[6]||(t[6]=e=>p.d_preview_imgsrc=null),class:"v-note-img-wrapper"},[Object(r.createElementVNode)("img",{src:p.d_preview_imgsrc,alt:"none"},null,8,c)])):Object(r.createCommentVNode)("v-if",!0)]),_:1}),Object(r.createCommentVNode)("阅读模式"),Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)([{show:p.s_readmodel},"v-note-read-model scroll-style"]),ref:"vReadModel"},[Object(r.createElementVNode)("div",{ref:"vNoteReadContent",class:"v-note-read-content",innerHTML:p.d_render},null,8,u)],2)],6)}},function(e,t,n){"use strict";n.d(t,"a",function(){return $});var r=n(0);const i={class:"v-left-item"},o=["disabled","title"],a=["disabled","title"],s=["disabled","title"],l={key:3,class:"op-icon-divider"},c=["disabled","title"],u=["disabled","title"],d=["disabled","title"],p=["disabled","title"],f=["disabled","title"],h=["disabled","title"],g=["disabled","title"],m=["disabled","title"],_={key:12,class:"op-icon-divider"},v=["disabled","title"],y=["disabled","title"],b=["disabled","title"],k={key:16,class:"op-icon-divider"},w=["disabled","title"],x=["disabled"],C={class:"dropdown-item",style:{overflow:"hidden"}},S=["title","onClick"],j=["onClick","title"],T=["src"],L=["disabled","title"],E=["disabled","title"],A={key:21,class:"op-icon-divider"},M=["title"],D=["title"],O=["title"],N=["title"],z={key:0,class:"add-image-link-wrapper"},I={class:"add-image-link"},F={class:"title"},P={class:"link-text input-wrapper"},R=["placeholder"],q={class:"link-addr input-wrapper"},B=["placeholder"];function $(e,t,n,$,H,W){return Object(r.openBlock)(),Object(r.createElementBlock)("div",i,[Object(r.renderSlot)(e.$slots,"left-toolbar-before",{},void 0,!0),n.toolbars.bold?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:0,disabled:!n.editable,type:"button",onClick:t[0]||(t[0]=e=>W.$clicks("bold")),class:"op-icon fa fa-mavon-bold","aria-hidden":"true",title:n.d_words.tl_bold+" (ctrl+b)"},null,8,o)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.italic?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:1,disabled:!n.editable,type:"button",onClick:t[1]||(t[1]=e=>W.$clicks("italic")),class:"op-icon fa fa-mavon-italic","aria-hidden":"true",title:n.d_words.tl_italic+" (ctrl+i)"},null,8,a)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.header?(Object(r.openBlock)(),Object(r.createElementBlock)("div",{key:2,class:Object(r.normalizeClass)([{selected:H.s_header_dropdown_open},"op-icon fa fa-mavon-header dropdown dropdown-wrapper"]),disabled:!n.editable,type:"button",onMouseleave:t[10]||(t[10]=(...e)=>W.$mouseleave_header_dropdown&&W.$mouseleave_header_dropdown(...e)),onMouseenter:t[11]||(t[11]=(...e)=>W.$mouseenter_header_dropdown&&W.$mouseenter_header_dropdown(...e)),"aria-hidden":"true",title:n.d_words.tl_header+" (ctrl+h)"},[Object(r.createVNode)(r.Transition,{name:"fade",persisted:""},{default:Object(r.withCtx)(()=>[Object(r.withDirectives)(Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)(["op-header popup-dropdown",{transition:n.transition}]),onMouseenter:t[8]||(t[8]=(...e)=>W.$mouseenter_header_dropdown&&W.$mouseenter_header_dropdown(...e)),onMouseleave:t[9]||(t[9]=(...e)=>W.$mouseleave_header_dropdown&&W.$mouseleave_header_dropdown(...e))},[Object(r.createElementVNode)("div",{title:"#",class:"dropdown-item",onClick:t[2]||(t[2]=Object(r.withModifiers)(e=>W.$click_header("header1"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_header_one),1)]),Object(r.createElementVNode)("div",{title:"## ",class:"dropdown-item",onClick:t[3]||(t[3]=Object(r.withModifiers)(e=>W.$click_header("header2"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_header_two),1)]),Object(r.createElementVNode)("div",{title:"### ",class:"dropdown-item",onClick:t[4]||(t[4]=Object(r.withModifiers)(e=>W.$click_header("header3"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_header_three),1)]),Object(r.createElementVNode)("div",{title:"#### ",class:"dropdown-item",onClick:t[5]||(t[5]=Object(r.withModifiers)(e=>W.$click_header("header4"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_header_four),1)]),Object(r.createElementVNode)("div",{title:"##### ",class:"dropdown-item",onClick:t[6]||(t[6]=Object(r.withModifiers)(e=>W.$click_header("header5"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_header_five),1)]),Object(r.createElementVNode)("div",{title:"###### ",class:"dropdown-item",onClick:t[7]||(t[7]=Object(r.withModifiers)(e=>W.$click_header("header6"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_header_six),1)])],34),[[r.vShow,H.s_header_dropdown_open]])]),_:1})],42,s)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.header||n.toolbars.italic||n.toolbars.bold?(Object(r.openBlock)(),Object(r.createElementBlock)("span",l)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.underline?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:4,disabled:!n.editable,type:"button",onClick:t[12]||(t[12]=e=>W.$clicks("underline")),class:"op-icon fa fa-mavon-underline",title:n.d_words.tl_underline+" (ctrl+u)","aria-hidden":"true"},null,8,c)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.strikethrough?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:5,disabled:!n.editable,type:"button",onClick:t[13]||(t[13]=e=>W.$clicks("strikethrough")),class:"op-icon fa fa-mavon-strikethrough",title:n.d_words.tl_strikethrough+" (ctrl+shift+d)","aria-hidden":"true"},null,8,u)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.mark?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:6,disabled:!n.editable,type:"button",onClick:t[14]||(t[14]=e=>W.$clicks("mark")),class:"op-icon fa fa-mavon-thumb-tack",title:n.d_words.tl_mark+" (ctrl+m)","aria-hidden":"true"},null,8,d)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.superscript?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:7,disabled:!n.editable,type:"button",onClick:t[15]||(t[15]=e=>W.$clicks("superscript")),class:"op-icon fa fa-mavon-superscript","aria-hidden":"true",title:n.d_words.tl_superscript+" (ctrl+alt+s)"},null,8,p)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.subscript?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:8,disabled:!n.editable,type:"button",onClick:t[16]||(t[16]=e=>W.$clicks("subscript")),class:"op-icon fa fa-mavon-subscript","aria-hidden":"true",title:n.d_words.tl_subscript+" (ctrl+shift+s)"},null,8,f)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.alignleft?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:9,disabled:!n.editable,type:"button",onClick:t[17]||(t[17]=e=>W.$clicks("alignleft")),class:"op-icon fa fa-mavon-align-left","aria-hidden":"true",title:n.d_words.tl_alignleft+" (ctrl+l)"},null,8,h)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.aligncenter?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:10,disabled:!n.editable,type:"button",onClick:t[18]||(t[18]=e=>W.$clicks("aligncenter")),class:"op-icon fa fa-mavon-align-center","aria-hidden":"true",title:n.d_words.tl_aligncenter+" (ctrl+e)"},null,8,g)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.alignright?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:11,disabled:!n.editable,type:"button",onClick:t[19]||(t[19]=e=>W.$clicks("alignright")),class:"op-icon fa fa-mavon-align-right","aria-hidden":"true",title:n.d_words.tl_alignright+" (ctrl+r)"},null,8,m)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.superscript||n.toolbars.subscript||n.toolbars.underline||n.toolbars.strikethrough||n.toolbars.mark?(Object(r.openBlock)(),Object(r.createElementBlock)("span",_)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.quote?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:13,disabled:!n.editable,type:"button",onClick:t[20]||(t[20]=e=>W.$clicks("quote")),class:"op-icon fa fa-mavon-quote-left","aria-hidden":"true",title:n.d_words.tl_quote+" (ctrl+q)"},null,8,v)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.ol?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:14,disabled:!n.editable,type:"button",onClick:t[21]||(t[21]=e=>W.$clicks("ol")),class:"op-icon fa fa-mavon-list-ol","aria-hidden":"true",title:n.d_words.tl_ol+" (ctrl+o)"},null,8,y)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.ul?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:15,disabled:!n.editable,type:"button",onClick:t[22]||(t[22]=e=>W.$clicks("ul")),class:"op-icon fa fa-mavon-list-ul","aria-hidden":"true",title:n.d_words.tl_ul+" (ctrl+alt+u)"},null,8,b)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.ul||n.toolbars.ol||n.toolbars.quote?(Object(r.openBlock)(),Object(r.createElementBlock)("span",k)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.link?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:17,disabled:!n.editable,type:"button",onClick:t[23]||(t[23]=Object(r.withModifiers)(e=>W.$toggle_imgLinkAdd("link"),["stop"])),class:"op-icon fa fa-mavon-link","aria-hidden":"true",title:n.d_words.tl_link+" (ctrl+l)"},null,8,w)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.imagelink?(Object(r.openBlock)(),Object(r.createElementBlock)("div",{key:18,disabled:!n.editable,class:Object(r.normalizeClass)([{selected:H.s_img_dropdown_open},"op-icon fa fa-mavon-picture-o dropdown dropdown-wrapper"]),type:"button",onMouseleave:t[28]||(t[28]=(...e)=>W.$mouseleave_img_dropdown&&W.$mouseleave_img_dropdown(...e)),onMouseenter:t[29]||(t[29]=(...e)=>W.$mouseenter_img_dropdown&&W.$mouseenter_img_dropdown(...e)),"aria-hidden":"true"},[Object(r.createVNode)(r.Transition,{name:"fade",persisted:""},{default:Object(r.withCtx)(()=>[Object(r.withDirectives)(Object(r.createElementVNode)("div",{class:Object(r.normalizeClass)(["op-image popup-dropdown",{transition:n.transition}]),onMouseleave:t[26]||(t[26]=(...e)=>W.$mouseleave_img_dropdown&&W.$mouseleave_img_dropdown(...e)),onMouseenter:t[27]||(t[27]=(...e)=>W.$mouseenter_img_dropdown&&W.$mouseenter_img_dropdown(...e))},[Object(r.createElementVNode)("div",{class:"dropdown-item",onClick:t[24]||(t[24]=Object(r.withModifiers)(e=>W.$toggle_imgLinkAdd("imagelink"),["stop"]))},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(n.d_words.tl_image),1)]),Object(r.createElementVNode)("div",C,[Object(r.createElementVNode)("input",{type:"file",accept:"image/gif,image/jpeg,image/jpg,image/png,image/svg",onChange:t[25]||(t[25]=e=>W.$imgAdd(e)),multiple:"multiple"},null,32),Object(r.createTextVNode)(Object(r.toDisplayString)(n.d_words.tl_upload),1)]),(Object(r.openBlock)(!0),Object(r.createElementBlock)(r.Fragment,null,Object(r.renderList)(H.img_file,(e,t)=>(Object(r.openBlock)(),Object(r.createElementBlock)(r.Fragment,{key:t},[e&&e[1]?(Object(r.openBlock)(),Object(r.createElementBlock)("div",{key:0,class:"dropdown-item dropdown-images",title:e[1].name,onClick:Object(r.withModifiers)(e=>W.$imgFileListClick(t),["stop"])},[Object(r.createElementVNode)("span",null,Object(r.toDisplayString)(e[1].name),1),Object(r.createElementVNode)("button",{type:"button",onClick:Object(r.withModifiers)(e=>W.$imgDel(t),["stop"]),class:"op-icon fa fa-mavon-times","aria-hidden":"true",title:n.d_words.tl_upload_remove},null,8,j),Object(r.createCommentVNode)(" 缩略图展示 "),Object(r.createElementVNode)("img",{class:Object(r.normalizeClass)(["image-show",{transition:n.transition}]),src:e[1].miniurl,alt:"none"},null,10,T)],8,S)):Object(r.createCommentVNode)("v-if",!0)],64))),128))],34),[[r.vShow,H.s_img_dropdown_open]])]),_:1})],42,x)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.code?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:19,disabled:!n.editable,type:"button",onClick:t[30]||(t[30]=e=>W.$clicks("code")),class:"op-icon fa fa-mavon-code","aria-hidden":"true",title:n.d_words.tl_code+" (ctrl+alt+c)"},null,8,L)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.table?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:20,disabled:!n.editable,type:"button",onClick:t[31]||(t[31]=e=>W.$clicks("table")),class:"op-icon fa fa-mavon-table","aria-hidden":"true",title:n.d_words.tl_table+" (ctrl+alt+t)"},null,8,E)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.link||n.toolbars.imagelink||n.toolbars.code||n.toolbars.table?(Object(r.openBlock)(),Object(r.createElementBlock)("span",A)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.undo?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:22,type:"button",onClick:t[32]||(t[32]=e=>W.$clicks("undo")),class:"op-icon fa fa-mavon-undo","aria-hidden":"true",title:n.d_words.tl_undo+" (ctrl+z)"},null,8,M)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.redo?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:23,type:"button",onClick:t[33]||(t[33]=e=>W.$clicks("redo")),class:"op-icon fa fa-mavon-repeat","aria-hidden":"true",title:n.d_words.tl_redo+" (ctrl+y)"},null,8,D)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.trash?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:24,type:"button",onClick:t[34]||(t[34]=e=>W.$clicks("trash")),class:"op-icon fa fa-mavon-trash-o","aria-hidden":"true",title:n.d_words.tl_trash+" (ctrl+breakspace)"},null,8,O)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.save?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:25,type:"button",onClick:t[35]||(t[35]=e=>W.$clicks("save")),class:"op-icon fa fa-mavon-floppy-o","aria-hidden":"true",title:n.d_words.tl_save+" (ctrl+s)"},null,8,N)):Object(r.createCommentVNode)("v-if",!0),Object(r.renderSlot)(e.$slots,"left-toolbar-after",{},void 0,!0),Object(r.createCommentVNode)(" 添加image链接 "),Object(r.createVNode)(r.Transition,{name:"fade"},{default:Object(r.withCtx)(()=>[H.s_img_link_open?(Object(r.openBlock)(),Object(r.createElementBlock)("div",z,[Object(r.createElementVNode)("div",I,[Object(r.createElementVNode)("i",{onClick:t[36]||(t[36]=Object(r.withModifiers)(e=>H.s_img_link_open=!1,["stop","prevent"])),class:"fa fa-mavon-times","aria-hidden":"true"}),Object(r.createElementVNode)("h3",F,Object(r.toDisplayString)("link"==H.link_type?n.d_words.tl_popup_link_title:n.d_words.tl_popup_img_link_title),1),Object(r.createElementVNode)("div",P,[Object(r.withDirectives)(Object(r.createElementVNode)("input",{ref:"linkTextInput",type:"text","onUpdate:modelValue":t[37]||(t[37]=e=>H.link_text=e),placeholder:"link"==H.link_type?n.d_words.tl_popup_link_text:n.d_words.tl_popup_img_link_text},null,8,R),[[r.vModelText,H.link_text]])]),Object(r.createElementVNode)("div",q,[Object(r.withDirectives)(Object(r.createElementVNode)("input",{type:"text","onUpdate:modelValue":t[38]||(t[38]=e=>H.link_addr=e),placeholder:"link"==H.link_type?n.d_words.tl_popup_link_addr:n.d_words.tl_popup_img_link_addr},null,8,B),[[r.vModelText,H.link_addr]])]),Object(r.createElementVNode)("div",{class:"op-btn cancel",onClick:t[39]||(t[39]=Object(r.withModifiers)(e=>H.s_img_link_open=!1,["stop"]))},Object(r.toDisplayString)(n.d_words.tl_popup_link_cancel),1),Object(r.createElementVNode)("div",{class:"op-btn sure",onClick:t[40]||(t[40]=Object(r.withModifiers)(e=>W.$imgLinkAdd(),["stop"]))},Object(r.toDisplayString)(n.d_words.tl_popup_link_sure),1)])])):Object(r.createCommentVNode)("v-if",!0)]),_:1})])}},function(e,t,n){"use strict";n.d(t,"a",function(){return _});var r=n(0);const i={class:"v-right-item"},o=["title"],a=["title"],s=["title"],l=["title"],c=["title"],u=["title"],d=["title"],p=["title"],f={key:8,class:"op-icon-divider"},h=["title"],g=["title"],m=["title"];function _(e,t,n,_,v,y){return Object(r.openBlock)(),Object(r.createElementBlock)("div",i,[Object(r.renderSlot)(e.$slots,"right-toolbar-before"),n.toolbars.navigation?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:0,type:"button",onClick:t[0]||(t[0]=e=>y.$clicks("navigation")),class:"op-icon fa fa-mavon-bars","aria-hidden":"true",title:n.d_words.tl_navigation_on+" (F8)"},null,8,o)),[[r.vShow,!n.s_navigation]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.navigation?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:1,type:"button",onClick:t[1]||(t[1]=e=>y.$clicks("navigation")),class:"op-icon fa fa-mavon-bars selected","aria-hidden":"true",title:n.d_words.tl_navigation_off+" (F8)"},null,8,a)),[[r.vShow,n.s_navigation]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.preview?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:2,type:"button",onClick:t[2]||(t[2]=e=>y.$clicks("preview")),class:"op-icon fa fa-mavon-eye-slash selected","aria-hidden":"true",title:n.d_words.tl_edit+" (F9)"},null,8,s)),[[r.vShow,n.s_preview_switch]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.preview?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:3,type:"button",onClick:t[3]||(t[3]=e=>y.$clicks("preview")),class:"op-icon fa fa-mavon-eye","aria-hidden":"true",title:n.d_words.tl_preview+" (F9)"},null,8,l)),[[r.vShow,!n.s_preview_switch]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.fullscreen?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:4,type:"button",onClick:t[4]||(t[4]=e=>y.$clicks("fullscreen")),class:"op-icon fa fa-mavon-arrows-alt",title:n.d_words.tl_fullscreen_on+" (F10)","aria-hidden":"true"},null,8,c)),[[r.vShow,!n.s_fullScreen]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.fullscreen?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:5,type:"button",onClick:t[5]||(t[5]=e=>y.$clicks("fullscreen")),class:"op-icon fa fa-mavon-compress selected",title:n.d_words.tl_fullscreen_off+" (F10)","aria-hidden":"true"},null,8,u)),[[r.vShow,n.s_fullScreen]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.readmodel?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:6,type:"button",onClick:t[6]||(t[6]=e=>y.$clicks("read")),class:"op-icon fa fa-mavon-window-maximize","aria-hidden":"true",title:n.d_words.tl_read+" (F11)"},null,8,d)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.subfield?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:7,type:"button",onClick:t[7]||(t[7]=e=>y.$clicks("subfield")),class:Object(r.normalizeClass)(["op-icon fa fa-mavon-columns",{selected:n.s_subfield}]),"aria-hidden":"true",title:(n.s_subfield?n.d_words.tl_single_column:n.d_words.tl_double_column)+" (F12)"},null,10,p)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.help&&n.toolbars.htmlcode&&n.toolbars.readmodel&&n.toolbars.fullscreen&&n.toolbars.subfield&&n.toolbars.navigation?(Object(r.openBlock)(),Object(r.createElementBlock)("span",f)):Object(r.createCommentVNode)("v-if",!0),n.toolbars.htmlcode?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:9,type:"button",onClick:t[8]||(t[8]=e=>y.$clicks("html")),class:"op-icon fa fa-mavon-code",title:n.d_words.tl_html_on,"aria-hidden":"true"},null,8,h)),[[r.vShow,!n.s_html_code]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.htmlcode?Object(r.withDirectives)((Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:10,type:"button",onClick:t[9]||(t[9]=e=>y.$clicks("html")),class:"op-icon fa fa-mavon-code selected",title:n.d_words.tl_html_off,"aria-hidden":"true"},null,8,g)),[[r.vShow,n.s_html_code]]):Object(r.createCommentVNode)("v-if",!0),n.toolbars.help?(Object(r.openBlock)(),Object(r.createElementBlock)("button",{key:11,type:"button",onClick:t[10]||(t[10]=e=>y.$clicks("help")),class:"op-icon fa fa-mavon-question-circle",style:{"font-size":"17px",padding:"5px 6px 5px 3px"},title:n.d_words.tl_help,"aria-hidden":"true"},null,8,m)):Object(r.createCommentVNode)("v-if",!0),Object(r.renderSlot)(e.$slots,"right-toolbar-after")])}},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var r=n(0);const i=["autofocus","placeholder"];function o(e,t,n,o,a,s){return Object(r.openBlock)(),Object(r.createElementBlock)("div",{style:Object(r.normalizeStyle)({fontSize:n.fontSize,lineHeight:n.lineHeight,height:n.fullHeight?"100%":"auto"}),class:"auto-textarea-wrapper"},[Object(r.createElementVNode)("pre",{style:Object(r.normalizeStyle)({fontSize:n.fontSize,lineHeight:n.lineHeight,minHeight:n.fullHeight?"100%":"auto"}),class:"auto-textarea-block"},[t[2]||(t[2]=Object(r.createElementVNode)("br",null,null,-1)),Object(r.createTextVNode)(Object(r.toDisplayString)(a.temp_value)+" ",1)],4),Object(r.withDirectives)(Object(r.createElementVNode)("textarea",{ref:"vTextarea",autofocus:a.s_autofocus,onKeyup:t[0]||(t[0]=(...e)=>s.change&&s.change(...e)),spellcheck:"false",placeholder:n.placeholder,"onUpdate:modelValue":t[1]||(t[1]=e=>a.temp_value=e),style:Object(r.normalizeStyle)({fontSize:n.fontSize,lineHeight:n.lineHeight}),class:Object(r.normalizeClass)([{"no-border":!n.border,"no-resize":!n.resize},"auto-textarea-input"])}," ",46,i),[[r.vModelText,a.temp_value]])],4)}},function(e,t,n){"use strict";var r=n(80).default,i={markdownIt:r.mixins[0].data().markdownIt,mavonEditor:r,LeftToolbar:n(70).default,RightToolbar:n(72).default,install:function(e){e.component("mavon-editor",r)}};e.exports=i},function(e,t,n){"use strict";n.r(t);var r=n(75),i=n(21);for(var o in i)["default"].indexOf(o)<0&&function(e){n.d(t,e,function(){return i[e]})}(o);n(221),n(223);var a=n(3);const s=n.n(a)()(i.default,[["render",r.a],["__scopeId","data-v-33c11741"]]);t.default=s},function(e,t,n){e.exports={default:n(82),__esModule:!0}},function(e,t,n){n(83),n(95),e.exports=n(35).f("iterator")},function(e,t,n){"use strict";var r=n(84)(!0);n(45)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(26),i=n(27);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),l=r(n),c=s.length;return l<0||l>=c?e?"":void 0:(o=s.charCodeAt(l))<55296||o>56319||l+1===c||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536}}},function(e,t,n){var r=n(86);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var r=n(50),i=n(16),o=n(34),a={};n(5)(a,n(9)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(6),i=n(14),o=n(30);e.exports=n(7)?Object.defineProperties:function(e,t){i(e);for(var n,a=o(t),s=a.length,l=0;s>l;)r.f(e,n=a[l++],t[n]);return e}},function(e,t,n){var r=n(52);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(8),i=n(91),o=n(92);e.exports=function(e){return function(t,n,a){var s,l=r(t),c=i(l.length),u=o(a,c);if(e&&n!=n){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(26),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(26),i=Math.max,o=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):o(e,t)}},function(e,t,n){var r=n(2).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(4),i=n(53),o=n(31)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){n(96);for(var r=n(2),i=n(5),o=n(29),a=n(9)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(100),__esModule:!0}},function(e,t,n){n(101),n(107),n(108),n(109),e.exports=n(13).Symbol},function(e,t,n){"use strict";var r=n(2),i=n(4),o=n(7),a=n(46),s=n(49),l=n(102).KEY,c=n(15),u=n(32),d=n(34),p=n(17),f=n(9),h=n(35),g=n(36),m=n(103),_=n(104),v=n(14),y=n(10),b=n(53),k=n(8),w=n(28),x=n(16),C=n(50),S=n(105),j=n(106),T=n(54),L=n(6),E=n(30),A=j.f,M=L.f,D=S.f,O=r.Symbol,N=r.JSON,z=N&&N.stringify,I=f("_hidden"),F=f("toPrimitive"),P={}.propertyIsEnumerable,R=u("symbol-registry"),q=u("symbols"),B=u("op-symbols"),$=Object.prototype,H="function"==typeof O&&!!T.f,W=r.QObject,U=!W||!W.prototype||!W.prototype.findChild,V=o&&c(function(){return 7!=C(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=A($,t);r&&delete $[t],M(e,t,n),r&&e!==$&&M($,t,r)}:M,K=function(e){var t=q[e]=C(O.prototype);return t._k=e,t},X=H&&"symbol"==typeof O.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof O},G=function(e,t,n){return e===$&&G(B,t,n),v(e),t=w(t,!0),v(n),i(q,t)?(n.enumerable?(i(e,I)&&e[I][t]&&(e[I][t]=!1),n=C(n,{enumerable:x(0,!1)})):(i(e,I)||M(e,I,x(1,{})),e[I][t]=!0),V(e,t,n)):M(e,t,n)},Q=function(e,t){v(e);for(var n,r=m(t=k(t)),i=0,o=r.length;o>i;)G(e,n=r[i++],t[n]);return e},Z=function(e){var t=P.call(this,e=w(e,!0));return!(this===$&&i(q,e)&&!i(B,e))&&(!(t||!i(this,e)||!i(q,e)||i(this,I)&&this[I][e])||t)},Y=function(e,t){if(e=k(e),t=w(t,!0),e!==$||!i(q,t)||i(B,t)){var n=A(e,t);return!n||!i(q,t)||i(e,I)&&e[I][t]||(n.enumerable=!0),n}},J=function(e){for(var t,n=D(k(e)),r=[],o=0;n.length>o;)i(q,t=n[o++])||t==I||t==l||r.push(t);return r},ee=function(e){for(var t,n=e===$,r=D(n?B:k(e)),o=[],a=0;r.length>a;)!i(q,t=r[a++])||n&&!i($,t)||o.push(q[t]);return o};H||(s((O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===$&&t.call(B,n),i(this,I)&&i(this[I],e)&&(this[I][e]=!1),V(this,e,x(1,n))};return o&&U&&V($,e,{configurable:!0,set:t}),K(e)}).prototype,"toString",function(){return this._k}),j.f=Y,L.f=G,n(55).f=S.f=J,n(37).f=Z,T.f=ee,o&&!n(12)&&s($,"propertyIsEnumerable",Z,!0),h.f=function(e){return K(f(e))}),a(a.G+a.W+a.F*!H,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)f(te[ne++]);for(var re=E(f.store),ie=0;re.length>ie;)g(re[ie++]);a(a.S+a.F*!H,"Symbol",{for:function(e){return i(R,e+="")?R[e]:R[e]=O(e)},keyFor:function(e){if(!X(e))throw TypeError(e+" is not a symbol!");for(var t in R)if(R[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),a(a.S+a.F*!H,"Object",{create:function(e,t){return void 0===t?C(e):Q(C(e),t)},defineProperty:G,defineProperties:Q,getOwnPropertyDescriptor:Y,getOwnPropertyNames:J,getOwnPropertySymbols:ee});var oe=c(function(){T.f(1)});a(a.S+a.F*oe,"Object",{getOwnPropertySymbols:function(e){return T.f(b(e))}}),N&&a(a.S+a.F*(!H||c(function(){var e=O();return"[null]"!=z([e])||"{}"!=z({a:e})||"{}"!=z(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=t=r[1],(y(t)||void 0!==e)&&!X(e))return _(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!X(t))return t}),r[1]=t,z.apply(N,r)}}),O.prototype[F]||n(5)(O.prototype,F,O.prototype.valueOf),d(O,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},function(e,t,n){var r=n(17)("meta"),i=n(10),o=n(4),a=n(6).f,s=0,l=Object.isExtensible||function(){return!0},c=!n(15)(function(){return l(Object.preventExtensions({}))}),u=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!l(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!o(e,r)){if(!l(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return c&&d.NEED&&l(e)&&!o(e,r)&&u(e),e}}},function(e,t,n){var r=n(30),i=n(54),o=n(37);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var a,s=n(e),l=o.f,c=0;s.length>c;)l.call(e,a=s[c++])&&t.push(a);return t}},function(e,t,n){var r=n(52);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(8),i=n(55).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?function(e){try{return i(e)}catch(e){return a.slice()}}(e):i(r(e))}},function(e,t,n){var r=n(37),i=n(16),o=n(8),a=n(28),s=n(4),l=n(47),c=Object.getOwnPropertyDescriptor;t.f=n(7)?c:function(e,t){if(e=o(e),t=a(t,!0),l)try{return c(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(36)("asyncIterator")},function(e,t,n){n(36)("observable")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=119,i=120,o=121,a=122,s=123,l=66,c=73,u=72,d=85,p=68,f=77,h=81,g=79,m=76,_=83,v=90,y=89,b=67,k=84,w=82,x=8,C=9,S=13,j=97,T=98,L=99,E=100,A=101,M=102,D=49,O=50,N=51,z=52,I=53,F=54;t.keydownListen=function(e){e.shortCut&&e.$el.addEventListener("keydown",function(t){if(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey)if(!t.ctrlKey&&!t.metaKey||t.altKey||t.shiftKey){if((t.ctrlKey||t.metaKey)&&t.altKey&&!t.shiftKey)switch(t.keyCode){case _:t.preventDefault(),e.toolbar_left_click("superscript");break;case d:t.preventDefault(),e.toolbar_left_click("ul");break;case m:t.preventDefault(),e.toolbar_left_click("imagelink");break;case b:t.preventDefault(),e.toolbar_left_click("code");break;case k:t.preventDefault(),e.toolbar_left_click("table")}else if((t.ctrlKey||t.metaKey)&&t.shiftKey&&!t.altKey)switch(t.keyCode){case _:t.preventDefault(),e.toolbar_left_click("subscript");break;case p:t.preventDefault(),e.toolbar_left_click("strikethrough");break;case m:t.preventDefault(),e.toolbar_left_click("alignleft");break;case w:t.preventDefault(),e.toolbar_left_click("alignright");break;case b:t.preventDefault(),e.toolbar_left_click("aligncenter")}else if(!t.ctrlKey&&!t.metaKey&&t.shiftKey&&!t.altKey)switch(t.keyCode){case C:e.$refs.toolbar_left.s_img_link_open||(t.preventDefault(),e.unInsertTab())}}else switch(t.keyCode){case l:t.preventDefault(),e.toolbar_left_click("bold");break;case c:t.preventDefault(),e.toolbar_left_click("italic");break;case u:t.preventDefault(),e.toolbar_left_click("header");break;case d:t.preventDefault(),e.toolbar_left_click("underline");break;case p:t.preventDefault(),e.toolbar_left_click("removeLine");break;case f:t.preventDefault(),e.toolbar_left_click("mark");break;case h:t.preventDefault(),e.toolbar_left_click("quote");break;case g:t.preventDefault(),e.toolbar_left_click("ol");break;case m:t.preventDefault(),e.toolbar_left_click("link");break;case _:t.preventDefault(),e.toolbar_left_click("save");break;case v:t.preventDefault(),e.toolbar_left_click("undo");break;case y:t.preventDefault(),e.toolbar_left_click("redo");break;case x:t.preventDefault(),e.toolbar_left_click("trash");break;case j:t.preventDefault(),e.toolbar_left_click("header1");break;case T:t.preventDefault(),e.toolbar_left_click("header2");break;case L:t.preventDefault(),e.toolbar_left_click("header3");break;case E:t.preventDefault(),e.toolbar_left_click("header4");break;case A:t.preventDefault(),e.toolbar_left_click("header5");break;case M:t.preventDefault(),e.toolbar_left_click("header6");break;case D:t.preventDefault(),e.toolbar_left_click("header1");break;case O:t.preventDefault(),e.toolbar_left_click("header2");break;case N:t.preventDefault(),e.toolbar_left_click("header3");break;case z:t.preventDefault(),e.toolbar_left_click("header4");break;case I:t.preventDefault(),e.toolbar_left_click("header5");break;case F:t.preventDefault(),e.toolbar_left_click("header6")}else switch(t.keyCode){case r:e.toolbars.navigation&&(t.preventDefault(),e.toolbar_right_click("navigation"));break;case i:e.toolbars.preview&&(t.preventDefault(),e.toolbar_right_click("preview"));break;case o:e.toolbars.fullscreen&&(t.preventDefault(),e.toolbar_right_click("fullscreen"));break;case a:e.toolbars.readmodel&&(t.preventDefault(),e.toolbar_right_click("read"));break;case s:e.toolbars.subfield&&(t.preventDefault(),e.toolbar_right_click("subfield"));break;case C:e.$refs.toolbar_left.s_img_link_open||(t.preventDefault(),e.insertTab());break;case S:e.$refs.toolbar_left.s_img_link_open?(t.preventDefault(),e.$refs.toolbar_left.$imgLinkAdd()):e.insertEnter(t)}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={agate:1,androidstudio:1,"arduino-light":1,arta:1,ascetic:1,"atom-one-dark":1,"atom-one-light":1,"brown-paper":1,"codepen-embed":1,"color-brewer":1,dark:1,default:1,docco:1,far:1,foundation:1,github:1,googlecode:1,grayscale:1,hybrid:1,idea:1,"ir-black":1,magula:1,"mono-blue":1,"monokai-sublime":1,monokai:1,obsidian:1,"paraiso-dark":1,"paraiso-light":1,pojoaque:1,purebasic:1,rainbow:1,routeros:1,"school-book":1,sunburst:1,"tomorrow-night-blue":1,"tomorrow-night-bright":1,vs:1,vs2015:1,xcode:1,xt256:1,"a11y-dark":1,"a11y-light":1,"an-old-hope":1,"atom-one-dark-reasonable":1,"brown-pap":1,devibeans:1,"github-dark":1,"github-dark-dimmed":1,gml:1,"gradient-dark":1,"gradient-light":1,"isbl-editor-dark":1,"isbl-editor-light":1,"kimbie-dark":1,"kimbie-light":1,lightfair:1,lioshi:1,"night-owl":1,"nnfx-dark":1,"nnfx-light":1,nord:1,pojo:1,"qtcreator-dark":1,"qtcreator-light":1,"shades-of-purple":1,srcery:1,"stackoverflow-dark":1,"stackoverflow-light":1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(25),o=(r=i)&&r.__esModule?r:{default:r};t.p_ObjectCopy_DEEP=function e(t,n){for(var r in n){var i=(0,o.default)(n[r]);!t[r]||"Object"!==i&&"object"!==i?t[r]=n[r]:t[r]=e(t[r],n[r])}return t},t.p_urlParse=function(){var e=window.location.search,t={},n=e.match(/[?&][^?&]+=[^?&]+/g);return n&&n.forEach(function(e){var n=e.substring(1).split("="),r=decodeURIComponent(n[0]),i=decodeURIComponent(n[1]);t[r]=i}),t},t.stopEvent=function(e){e&&(e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation())}},function(e,t,n){"use strict";function r(e){e.d_history_index>0&&e.d_history_index--,e.$nextTick(function(){var t=e.textarea_selectionEnds[e.d_history_index];e.getTextareaDom().selectionStart=t,e.getTextareaDom().selectionEnd=t}),e.getTextareaDom().focus()}function i(e){e.d_history_index ",subfix:"",str:t.d_words.tl_quote},link:{prefix:"[](",subfix:")",str:t.d_words.tl_link},imagelink:{prefix:"![](",subfix:")",str:t.d_words.tl_image},table:{prefix:"",subfix:"",str:"|column1|column2|column3|\n|-|-|-|\n|content1|content2|content3|\n"},aligncenter:{prefix:"::: hljs-center\n\n",subfix:"\n\n:::\n",str:t.d_words.tl_aligncenter},alignright:{prefix:"::: hljs-right\n\n",subfix:"\n\n:::\n",str:t.d_words.tl_alignright},alignleft:{prefix:"::: hljs-left\n\n",subfix:"\n\n:::\n",str:t.d_words.tl_alignleft}};n.hasOwnProperty(e)&&t.insertText(t.getTextareaDom(),n[e]);var d={undo:r,redo:i,trash:o,save:a,ol:s,ul:l,removeLine:c,code:u};d.hasOwnProperty(e)&&d[e](t)}},function(e,t,n){"use strict";function r(e){e.s_html_code=!e.s_html_code,e.htmlcode&&e.htmlcode(e.s_html_code,e.d_value)}function i(e){e.s_help=!e.s_help,e.helptoggle&&e.helptoggle(e.s_help,e.d_value)}function o(e){var t=e.$refs.vReadModel;t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen()}function a(e){e.s_preview_switch=!e.s_preview_switch,e.previewtoggle&&e.previewtoggle(e.s_preview_switch,e.d_value)}function s(e){e.s_fullScreen=!e.s_fullScreen,e.fullscreen&&e.fullscreen(e.s_fullScreen,e.d_value)}function l(e){e.s_subfield=!e.s_subfield,e.s_preview_switch=e.s_subfield,e.previewtoggle&&e.previewtoggle(e.s_preview_switch,e.d_value),e.subfieldtoggle&&e.subfieldtoggle(e.s_subfield,e.d_value)}function c(e){e.s_navigation=!e.s_navigation,e.s_navigation&&(e.s_preview_switch=!0),e.navigationtoggle&&e.navigationtoggle(e.s_navigation,e.d_value),e.s_navigation&&e.getNavigation(e,!1)}Object.defineProperty(t,"__esModule",{value:!0}),t.toolbar_right_click=function(e,t){var n={help:i,html:r,read:o,preview:a,fullscreen:s,navigation:c,subfield:l};n.hasOwnProperty(e)&&n[e](t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CONFIG=void 0;var r=b(n(116)),i=b(n(117)),o=b(n(118)),a=b(n(119)),s=b(n(120)),l=b(n(121)),c=b(n(122)),u=b(n(123)),d=(b(n(124)),b(n(125))),p=b(n(126)),f=b(n(127)),h=b(n(128)),g=b(n(129)),m=b(n(130)),_=b(n(131)),v=b(n(132)),y=b(n(133));function b(e){return e&&e.__esModule?e:{default:e}}t.CONFIG={"help_zh-CN":r.default,"help_zh-TW":i.default,"help_pt-BR":s.default,help_en:o.default,help_fr:a.default,help_ru:l.default,help_de:c.default,help_ja:u.default,"words_zh-CN":d.default,"words_zh-TW":p.default,"words_pt-BR":g.default,words_en:f.default,words_fr:h.default,words_ru:m.default,words_de:_.default,words_ja:v.default,words_kr:y.default,langList:["en","zh-CN","zh-TW","fr","pt-BR","ru","de","ja","kr"],toolbars:{bold:!0,italic:!0,header:!0,underline:!0,strikethrough:!0,mark:!0,superscript:!0,subscript:!0,quote:!0,ol:!0,ul:!0,link:!0,imagelink:!0,code:!0,table:!0,undo:!0,redo:!0,trash:!0,save:!0,alignleft:!0,aligncenter:!0,alignright:!0,navigation:!0,subfield:!0,fullscreen:!0,readmodel:!0,htmlcode:!0,help:!0,preview:!0}}},function(e,t){e.exports='@[toc](目录)\r\n\r\nMarkdown 语法简介\r\n=============\r\n> [语法详解](http://commonmark.org/help/)\r\n\r\n## **目录**\r\n```\r\n@[toc](目录)\r\n```\r\n\r\n## **粗体**\r\n```\r\n**粗体**\r\n__粗体__\r\n```\r\n## *斜体*\r\n```\r\n*斜体*\r\n_斜体_\r\n```\r\n## 标题\r\n```\r\n# 一级标题 #\r\n一级标题\r\n====\r\n## 二级标题 ##\r\n二级标题\r\n----\r\n### 三级标题 ###\r\n#### 四级标题 ####\r\n##### 五级标题 #####\r\n###### 六级标题 ######\r\n```\r\n## 分割线\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^上^角~下~标\r\n```\r\n上角标 x^2^\r\n下角标 H~2~0\r\n```\r\n## ++下划线++ ~~中划线~~\r\n```\r\n++下划线++\r\n~~中划线~~\r\n```\r\n## ==标记==\r\n```\r\n==标记==\r\n```\r\n## 段落引用\r\n```\r\n> 一级\r\n>> 二级\r\n>>> 三级\r\n...\r\n```\r\n\r\n## 列表\r\n```\r\n有序列表\r\n1.\r\n2.\r\n3.\r\n...\r\n无序列表\r\n-\r\n-\r\n...\r\n```\r\n\r\n## 任务列表\r\n\r\n- [x] 已完成任务\r\n- [ ] 未完成任务\r\n\r\n```\r\n- [x] 已完成任务\r\n- [ ] 未完成任务\r\n```\r\n\r\n## 链接\r\n```\r\n[链接](www.baidu.com)\r\n![图片描述](http://www.image.com)\r\n```\r\n## 代码段落\r\n\\``` type\r\n\r\n代码段落\r\n\r\n\\```\r\n\r\n\\` 代码块 \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n## 表格(table)\r\n```\r\n| 标题1 | 标题2 | 标题3 |\r\n| :-- | :--: | ----: |\r\n| 左对齐 | 居中 | 右对齐 |\r\n| ---------------------- | ------------- | ----------------- |\r\n```\r\n| 标题1 | 标题2 | 标题3 |\r\n| :-- | :--: | ----: |\r\n| 左对齐 | 居中 | 右对齐 |\r\n| ---------------------- | ------------- | ----------------- |\r\n## 脚注(footnote)\r\n```\r\nhello[^hello]\r\n```\r\n\r\n见底部脚注[^hello]\r\n\r\n[^hello]: 一个注脚\r\n\r\n## 表情(emoji)\r\n[参考网站: https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$公式\r\n\r\n我们可以渲染公式例如:$x_i + y_i = z_i$和$\\sum_{i=1}^n a_i=0$\r\n我们也可以单行渲染\r\n$$\\sum_{i=1}^n a_i=0$$\r\n具体可参照[katex文档](http://www.intmath.com/cg5/katex-mathjax-comparison.php)和[katex支持的函数](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)以及[latex文档](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## 布局\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`居左`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`居中`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`居右`\r\n`:::`\r\n:::\r\n\r\n## 定义\r\n\r\n术语一\r\n\r\n: 定义一\r\n\r\n包含有*行内标记*的术语二\r\n\r\n: 定义二\r\n\r\n {一些定义二的文字或代码}\r\n\r\n 定义二的第三段\r\n\r\n```\r\n术语一\r\n\r\n: 定义一\r\n\r\n包含有*行内标记*的术语二\r\n\r\n: 定义二\r\n\r\n {一些定义二的文字或代码}\r\n\r\n 定义二的第三段\r\n\r\n```\r\n\r\n## abbr\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nHTML 规范由 W3C 维护\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nHTML 规范由 W3C 维护\r\n```\r\n\r\n'},function(e,t){e.exports='@[toc](目錄)\r\n\r\nMarkdown 語法簡介\r\n=============\r\n> [語法詳解](http://commonmark.org/help/)\r\n\r\n## **粗體**\r\n```\r\n**粗體**\r\n__粗體__\r\n```\r\n## *斜體*\r\n```\r\n*斜體*\r\n_斜體_\r\n```\r\n## 標題\r\n```\r\n# 一級標題 #\r\n一級標題\r\n====\r\n## 二級標題 ##\r\n二級標題\r\n----\r\n### 三級標題 ###\r\n#### 四級標題 ####\r\n##### 五級標題 #####\r\n###### 六級標題 ######\r\n```\r\n## 分割線\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^上^角~下~標\r\n```\r\n上角標 x^2^\r\n下角標 H~2~0\r\n```\r\n## ++下劃線++ ~~中劃線~~\r\n```\r\n++下劃線++\r\n~~中劃線~~\r\n```\r\n## ==標記==\r\n```\r\n==標記==\r\n```\r\n## 段落引用\r\n```\r\n> 一級\r\n>> 二級\r\n>>> 三級\r\n...\r\n```\r\n\r\n## 列表\r\n```\r\n有序列表\r\n1.\r\n2.\r\n3.\r\n...\r\n無序列表\r\n-\r\n-\r\n...\r\n```\r\n\r\n## 任務列表\r\n\r\n- [x] 已完成任務\r\n- [ ] 未完成任務\r\n\r\n```\r\n- [x] 已完成任務\r\n- [ ] 未完成任務\r\n```\r\n\r\n## 鏈接\r\n```\r\n[鏈接](www.baidu.com)\r\n![圖片描述](http://www.image.com)\r\n```\r\n## 代碼段落\r\n\\``` type\r\n\r\n代碼段落\r\n\r\n\\```\r\n\r\n\\` 代碼塊 \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n## 表格(table)\r\n```\r\n| 標題1 | 標題2 | 標題3 |\r\n| :-- | :--: | ----: |\r\n| 左對齊 | 居中 | 右對齊 |\r\n| ---------------------- | ------------- | ----------------- |\r\n```\r\n| 標題1 | 標題2 | 標題3 |\r\n| :-- | :--: | ----: |\r\n| 左對齊 | 居中 | 右對齊 |\r\n| ---------------------- | ------------- | ----------------- |\r\n## 腳註(footnote)\r\n```\r\nhello[^hello]\r\n```\r\n\r\n見底部腳註[^hello]\r\n\r\n[^hello]: 一個註腳\r\n\r\n## 表情(emoji)\r\n[參考網站: https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$公式\r\n\r\n我們可以渲染公式例如:$x_i + y_i = z_i$和$\\sum_{i=1}^n a_i=0$\r\n我們也可以單行渲染\r\n$$\\sum_{i=1}^n a_i=0$$\r\n具體可參照[katex文檔](http://www.intmath.com/cg5/katex-mathjax-comparison.php)和[katex支持的函數](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)以及[latex文檔](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## 布局\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`居左`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`居中`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`居右`\r\n`:::`\r\n:::\r\n\r\n## 定義\r\n\r\n術語一\r\n\r\n: 定義一\r\n\r\n包含有*行內標記*的術語二\r\n\r\n: 定義二\r\n\r\n {一些定義二的文字或代碼}\r\n\r\n 定義二的第三段\r\n\r\n```\r\n術語一\r\n\r\n: 定義一\r\n\r\n包含有*行內標記*的術語二\r\n\r\n: 定義二\r\n\r\n {一些定義二的文字或代碼}\r\n\r\n 定義二的第三段\r\n\r\n```\r\n\r\n## abbr\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nHTML 規範由 W3C 維護\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nHTML 規範由 W3C 維護\r\n```\r\n\r\n'},function(e,t){e.exports='@[toc](Catalog)\r\n\r\nMarkdown Guide\r\n===\r\n> Detailed: [http://commonmark.org/help/](http://commonmark.org/help/)\r\n\r\n## **Bold**\r\n```\r\n**bold**\r\n__bold__\r\n```\r\n## *Italic*\r\n```\r\n*italic*\r\n_italic_\r\n```\r\n## Header\r\n```\r\n# h1 #\r\nh1\r\n====\r\n## h2 ##\r\nh2\r\n----\r\n### h3 ###\r\n#### h4 ####\r\n##### h5 #####\r\n###### h6 ######\r\n```\r\n## Dividing line\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^Super^script & ~Sub~script\r\n```\r\nsuper x^2^\r\nsub H~2~0\r\n```\r\n## ++Underline++ & ~~Strikethrough~~\r\n```\r\n++underline++\r\n~~strikethrough~~\r\n```\r\n## ==Mark==\r\n```\r\n==mark==\r\n```\r\n## Quote\r\n\r\n```\r\n> quote 1\r\n>> quote 2\r\n>>> quote 3\r\n...\r\n```\r\n\r\n## List\r\n```\r\nol\r\n1.\r\n2.\r\n3.\r\n...\r\n\r\nul\r\n-\r\n-\r\n...\r\n```\r\n\r\n## Todo List\r\n\r\n- [x] task 1\r\n- [ ] task 2\r\n\r\n```\r\n- [x] task 1\r\n- [ ] task 2\r\n```\r\n\r\n## Link\r\n```\r\nText Link\r\n[Text](www.baidu.com)\r\n\r\nImage Link\r\n![Text](http://www.image.com)\r\n```\r\n## Code\r\n\\``` type\r\n\r\ncode block\r\n\r\n\\```\r\n\r\n\\` code \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n\r\n## Table\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n| ---------------------- | ------------- | ----------------- |\r\n## Footnote\r\n```\r\nhello[^hello]\r\n```\r\n\r\nLook at the bottom[^hello]\r\n\r\n[^hello]: footnote\r\n\r\n## Emojis\r\nDetailed: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$ Mathematics\r\n\r\nWe can render formulas for example:$x_i + y_i = z_i$ and $\\sum_{i=1}^n a_i=0$\r\nWe can also single-line rendering\r\n$$\\sum_{i=1}^n a_i=0$$\r\nDetailed: [katex](http://www.intmath.com/cg5/katex-mathjax-comparison.php)和[katex function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)以及[latex](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## Layout\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`left`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`center`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`right`\r\n`:::`\r\n:::\r\n\r\n## deflist\r\n\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\n\r\n## abbr\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n'},function(e,t){e.exports='@[toc](Catalogue)\r\n\r\nGuide Markdown\r\n==============\r\n> Détail : [http://commonmark.org/help/](http://commonmark.org/help/)\r\n\r\n## **Bold**\r\n```\r\n**bold**\r\n__bold__\r\n```\r\n## *Italic*\r\n```\r\n*italic*\r\n_italic_\r\n```\r\n## Header\r\n```\r\n# h1 #\r\nh1\r\n====\r\n## h2 ##\r\nh2\r\n----\r\n### h3 ###\r\n#### h4 ####\r\n##### h5 #####\r\n###### h6 ######\r\n```\r\n## Dividing line\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^Super^script & ~Sub~script\r\n```\r\nsuper x^2^\r\nsub H~2~0\r\n```\r\n## ++Underline++ & ~~Strikethrough~~\r\n```\r\n++underline++\r\n~~strikethrough~~\r\n```\r\n## ==Mark==\r\n```\r\n==mark==\r\n```\r\n## Quote\r\n\r\n```\r\n> quote 1\r\n>> quote 2\r\n>>> quote 3\r\n...\r\n```\r\n\r\n## List\r\n```\r\nol\r\n1.\r\n2.\r\n3.\r\n...\r\n\r\nul\r\n-\r\n-\r\n...\r\n```\r\n## Link\r\n\r\n## Todo List\r\n\r\n- [x] Équipe 1\r\n- [ ] Équipe 2\r\n\r\n```\r\n- [x] Équipe 1\r\n- [ ] Équipe 2\r\n```\r\n\r\n```\r\nText Link\r\n[Text](www.baidu.com)\r\n\r\nImage Link\r\n![Text](http://www.image.com)\r\n```\r\n## Code\r\n\\``` type\r\n\r\ncode block\r\n\r\n\\```\r\n\r\n\\` code \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n\r\n## Table\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n| ---------------------- | ------------- | ----------------- |\r\n## Footnote\r\n```\r\nhello[^hello]\r\n```\r\n\r\nLook at the bottom[^hello]\r\n\r\n[^hello]: footnote\r\n\r\n## Emojis\r\nDetailed: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$ Mathematics\r\n\r\nWe can render formulas for example:$x_i + y_i = z_i$ and $\\sum_{i=1}^n a_i=0$\r\nWe can also single-line rendering\r\n$$\\sum_{i=1}^n a_i=0$$\r\nDetailed: [katex](http://www.intmath.com/cg5/katex-mathjax-comparison.php)和[katex function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)以及[latex](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## Layout\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`left`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`center`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`right`\r\n`:::`\r\n:::\r\n\r\n## deflist\r\n\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\n\r\n## abbr\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n'},function(e,t){e.exports='@[toc](Directory)\r\n\r\nGuia Markdown\r\n===\r\n> Detalhes: [http://commonmark.org/help/](http://commonmark.org/help/)\r\n\r\n## **Negrito**\r\n```\r\n**negrito**\r\n__negrito__\r\n```\r\n## *Itálico*\r\n```\r\n*itálico*\r\n_itálico_\r\n```\r\n## Cabeçalho\r\n```\r\n# h1 #\r\nh1\r\n====\r\n## h2 ##\r\nh2\r\n----\r\n### h3 ###\r\n#### h4 ####\r\n##### h5 #####\r\n###### h6 ######\r\n```\r\n## Linha Divisora\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^Sobre^scrito & ~Sub~scrito\r\n```\r\nsobre x^2^\r\nsub H~2~0\r\n```\r\n## ++Sublinhar++ & ~~Tachar~~\r\n```\r\n++sublinhar++\r\n~~tachar~~\r\n```\r\n## ==Marcador==\r\n```\r\n==marcador==\r\n```\r\n## Citação\r\n\r\n```\r\n> citação 1\r\n>> citação 2\r\n>>> citação 3\r\n...\r\n```\r\n\r\n## Listas\r\n```\r\nlista Numerada\r\n1.\r\n2.\r\n3.\r\n...\r\n\r\nlista com marcadores\r\n-\r\n-\r\n...\r\n```\r\n\r\n## Todo Listas\r\n\r\n- [x] Tarefa 1\r\n- [ ] Tarefa 2\r\n\r\n```\r\n- [x] Tarefa 1\r\n- [ ] Tarefa 2\r\n```\r\n\r\n## Link\r\n```\r\nLink Texto\r\n[Text](www.baidu.com)\r\n\r\nLink Imagem\r\n![Text](http://www.image.com)\r\n```\r\n## Código\r\n\\``` tipo\r\n\r\nbloco de código\r\n\r\n\\```\r\n\r\n\\` código \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n\r\n## Tabela\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| esquerda | centro | direita |\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| esquerda | centro | direita |\r\n| ---------------------- | ------------- | ----------------- |\r\n## Rodapé\r\n```\r\nolá[^olá]\r\n```\r\n\r\nOlhe para baixo[^olá]\r\n\r\n[^olá]: rodapé\r\n\r\n## Emojis\r\nDetalhes: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$ Mathematics\r\n\r\nPodemos mostrar fórmulas por exemplo:$x_i + y_i = z_i$ and $\\sum_{i=1}^n a_i=0$\r\nPodemos também mostrar em uma única linha:\r\n$$\\sum_{i=1}^n a_i=0$$\r\nDetalhes: [katex](http://www.intmath.com/cg5/katex-mathjax-comparison.php)和[katex function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)以及[latex](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## Layout\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`esquerda`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`centro`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`direita`\r\n`:::`\r\n:::\r\n\r\n## Definições\r\n\r\nTermo 1\r\n\r\n: Definição 1\r\n\r\nTermo 2 com *markup inline*\r\n\r\n: Definição 2\r\n\r\n { um pouco de código, parte da Definição 2 }\r\n\r\n Terceiro parágrafo da definição 2.\r\n\r\n```\r\nTermo 1\r\n\r\n: Definição 1\r\n\r\nTermo 2 com *markup inline*\r\n\r\n: Definição 2\r\n\r\n { um pouco de código, parte da Definição 2 }\r\n\r\n Terceiro parágrafo da definição 2.\r\n\r\n```\r\n\r\n## Abreviações\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nA especificação HTML\r\né mantida pela W3C.\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\né mantida pela W3C.\r\n```\r\n'},function(e,t){e.exports='@[toc](Catalog) \r\n \r\nMarkdown помощь \r\n=== \r\n> Подробнее: [http://commonmark.org/help/](http://commonmark.org/help/) \r\n \r\n## **Полужирный** \r\n``` \r\n**Полужирный** \r\n__Полужирный__ \r\n``` \r\n## *Курсив* \r\n``` \r\n*Курсив* \r\n_Курсив_ \r\n``` \r\n## Заголовок \r\n``` \r\n# h1 # \r\nh1 \r\n==== \r\n## h2 ## \r\nh2 \r\n---- \r\n### h3 ### \r\n#### h4 #### \r\n##### h5 ##### \r\n###### h6 ###### \r\n``` \r\n## Разделительная линия \r\n``` \r\n*** \r\n--- \r\n``` \r\n**** \r\n## ^Верхний^индекс & ~Нижний~индекс \r\n``` \r\nверхний x^2^ \r\nнижний H~2~0 \r\n``` \r\n## ++Подчеркнутый++ & ~~Зачеркнутый~~ \r\n``` \r\n++Подчеркнутый++ \r\n~~Зачеркнутый~~ \r\n``` \r\n## ==Отметка== \r\n``` \r\n==Отметка== \r\n``` \r\n## Цитата \r\n \r\n``` \r\n> Цитата \r\n>> Цитата 2 \r\n>>> Цитата 3 \r\n... \r\n``` \r\n \r\n## Список \r\n``` \r\nol \r\n1. \r\n2. \r\n3. \r\n... \r\n \r\nul \r\n- \r\n- \r\n... \r\n``` \r\n \r\n## Список задач \r\n \r\n- [x] Задача 1 \r\n- [ ] Задача 2 \r\n \r\n``` \r\n- [x] Задача 1 \r\n- [ ] Задача 2 \r\n``` \r\n \r\n## Ссылка \r\n``` \r\nСсылка \r\n[Текст](www.baidu.com) \r\n \r\nСсылка изображения \r\n![Текст](http://www.image.com) \r\n``` \r\n## Код \r\n\\``` type \r\n \r\ncode block \r\n \r\n\\``` \r\n \r\n\\` code \\` \r\n \r\n```c++ \r\nint main() \r\n{ \r\n printf("hello world!");} \r\n``` \r\n`code` \r\n \r\n## Таблица \r\n``` \r\n| th1 | th2 | th3 | \r\n| :-- | :--: | ----: | \r\n| left | center | right | \r\n``` \r\n| th1 | th2 | th3 | \r\n| :-- | :--: | ----: | \r\n| left | center | right | \r\n| ---------------------- | ------------- | ----------------- | \r\n## Сноска \r\n``` \r\nПривет[^Привет] \r\n``` \r\n \r\nТут что-то непонятное[^Привет] \r\n \r\n[^Привет]: А тут объяснение \r\n \r\n## Emojis \r\nПодробнее: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/) \r\n``` \r\n:laughing: \r\n:blush: \r\n:smiley: \r\n:) \r\n... \r\n``` \r\n:laughing::blush::smiley::) \r\n \r\n## $\\KaTeX$ Mathematics \r\n \r\nМожно выводить такие формулы:$x_i + y_i = z_i$ and $\\sum_{i=1}^n a_i=0$ \r\nА также в одну строку:\r\n$$\\sum_{i=1}^n a_i=0$$ \r\nПодробнее: \r\n- [katex](http://www.intmath.com/cg5/katex-mathjax-comparison.php)\r\n- [katex function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)\r\n- [latex](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference) \r\n \r\n## Разметка\r\n \r\n::: hljs-left \r\n`::: hljs-left` \r\n`left` \r\n`:::` \r\n::: \r\n \r\n::: hljs-center \r\n`::: hljs-center` \r\n`center` \r\n`:::` \r\n::: \r\n \r\n::: hljs-right \r\n`::: hljs-right` \r\n`right` \r\n`:::` \r\n::: \r\n \r\n## Список определений\r\n \r\nТермин 1 \r\n \r\n: Определение 1 \r\n \r\nТермин 2 с использованием *разметки*\r\n \r\n: Определение 2 \r\n \r\n { Какой-нибудь код, часть определения 2 } \r\n Третий параграф определения 2. \r\n``` \r\nТермин 1 \r\n \r\n: Определение 1 \r\n \r\nТермин 2 с использованием *разметки*\r\n \r\n: Определение 2 \r\n \r\n { Какой-нибудь код, часть определения 2 } \r\n Третий параграф определения 2. \r\n``` \r\n \r\n## Сокращения\r\n*[HTML]: Hyper Text Markup Language \r\n*[W3C]: World Wide Web Consortium \r\nThe HTML specification \r\nis maintained by the W3C. \r\n``` \r\n*[HTML]: Hyper Text Markup Language \r\n*[W3C]: World Wide Web Consortium \r\nThe HTML specification \r\nis maintained by the W3C. \r\n```\r\n'},function(e,t){e.exports='@[toc](Catalog)\r\n\r\nMarkdown Handbuch\r\n===\r\n> Details: [http://commonmark.org/help/](http://commonmark.org/help/)\r\n\r\n## **Fett**\r\n```\r\n**fett**\r\n__fett__\r\n```\r\n## *Kursiv*\r\n```\r\n*kursiv*\r\n_kursiv_\r\n```\r\n## Überschriften\r\n```\r\n# h1 #\r\nh1\r\n====\r\n## h2 ##\r\nh2\r\n----\r\n### h3 ###\r\n#### h4 ####\r\n##### h5 #####\r\n###### h6 ######\r\n```\r\n## Trennlinien\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^Hoch^gestellt & ~Tief~gestellt\r\n```\r\nhochgestellt x^2^\r\ntiefgestellt H~2~0\r\n```\r\n## ++Unterstrichen++ & ~~Durchgestrichen~~\r\n```\r\n++unterstrichen++\r\n~~durchgestrichen~~\r\n```\r\n## ==Markiert==\r\n```\r\n==markiert==\r\n```\r\n## Zitat\r\n\r\n```\r\n> zitat 1\r\n>> zitat 2\r\n>>> zitat 3\r\n...\r\n```\r\n\r\n## Liste\r\n```\r\nol\r\n1.\r\n2.\r\n3.\r\n...\r\n\r\nul\r\n-\r\n-\r\n...\r\n```\r\n\r\n## Todo Liste\r\n\r\n- [x] aufgabe 1\r\n- [ ] aufgabe 2\r\n\r\n```\r\n- [x] aufgabe 1\r\n- [ ] aufgabe 2\r\n```\r\n\r\n## Link\r\n```\r\nText Link\r\n[Text](www.baidu.com)\r\n\r\nLink mit Bild\r\n![Text](http://www.image.com)\r\n```\r\n## Code\r\n\\``` Typ\r\n\r\nCodeblock\r\n\r\n\\```\r\n\r\n\\` code \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n\r\n## Tabelle\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| links | mitte | rechts |\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| links | mitte | rechts |\r\n| ---------------------- | ------------- | ----------------- |\r\n## Fußnote\r\n```\r\nhallo[^hallo]\r\n```\r\n\r\nSchau zum unteren Rand[^hallo]\r\n\r\n[^hallo]: fussnote\r\n\r\n## Emojis\r\nDetails: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$ Mathematik\r\n\r\nFormeln lassen sich darstellen z.b. :$x_i + y_i = z_i$ und $\\sum_{i=1}^n a_i=0$\r\nFormeln können auf einer eigenen Zeile gerendert werden\r\n$$\\sum_{i=1}^n a_i=0$$\r\nDetails: [katex](http://www.intmath.com/cg5/katex-mathjax-comparison.php)和[katex function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)以及[latex](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## Layout\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`links`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`mitte`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`rechts`\r\n`:::`\r\n:::\r\n\r\n## Liste von Definitionen\r\n\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 mit *inline markup*\r\n\r\n: Definition 2\r\n\r\n { ein wenig code, teil von Definition 2 }\r\n\r\n Dritter Absatz von Definition 2.\r\n\r\n```\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 mit *inline markup*\r\n\r\n: Definition 2\r\n\r\n { ein wenig code, teil von Definition 2 }\r\n\r\n Dritter Absatz von Definition 2.\r\n\r\n```\r\n\r\n## Abkürzungen\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nDie HTML Spezifikation\r\nwird gepflegt vom W3C.\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nDie HTML Spezifikation\r\nwird gepflegt vom W3C.\r\n```\r\n'},function(e,t){e.exports='@[toc](目次)\r\n\r\nMarkdown 文法ガイド\r\n===\r\n> Detailed: [http://commonmark.org/help/](http://commonmark.org/help/)\r\n\r\n## **太字**\r\n```\r\n**太字**\r\n__太字__\r\n```\r\n## *斜体*\r\n```\r\n*斜体*\r\n_斜体_\r\n```\r\n## 見出し\r\n```\r\n# h1 #\r\nh1\r\n====\r\n## h2 ##\r\nh2\r\n----\r\n### h3 ###\r\n#### h4 ####\r\n##### h5 #####\r\n###### h6 ######\r\n```\r\n## 横線\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^上付き^文字 & ~下付き~文字\r\n```\r\nsuper x^2^\r\nsub H~2~0\r\n```\r\n## ++下線++ & ~~取り消し線~~\r\n```\r\n++underline++\r\n~~strikethrough~~\r\n```\r\n## ==蛍光ペン==\r\n```\r\n==mark==\r\n```\r\n## 引用\r\n\r\n```\r\n> quote 1\r\n>> quote 2\r\n>>> quote 3\r\n...\r\n```\r\n\r\n## リスト\r\n```\r\n番号付きリスト\r\n1.\r\n2.\r\n3.\r\n...\r\n\r\n箇条書きリスト\r\n-\r\n-\r\n...\r\n```\r\n\r\n## Todoリスト\r\n\r\n- [x] task 1\r\n- [ ] task 2\r\n\r\n```\r\n- [x] task 1\r\n- [ ] task 2\r\n```\r\n\r\n## リンク\r\n```\r\nText Link\r\n[Text](www.baidu.com)\r\n\r\nImage Link\r\n![Text](http://www.image.com)\r\n```\r\n## コード\r\n\\``` type\r\n\r\ncode block\r\n\r\n\\```\r\n\r\n\\` code \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n\r\n## 表\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n| ---------------------- | ------------- | ----------------- |\r\n\r\n## 脚注\r\n```\r\nhello[^hello]\r\n```\r\n\r\nLook at the bottom[^hello]\r\n\r\n[^hello]: footnote\r\n\r\n## 絵文字\r\n> Detailed: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$ 数式\r\n> Detailed: [KaTeXマニュアル](http://www.intmath.com/cg5/katex-mathjax-comparison.php)、[KaTeX function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX)、[LaTeXマニュアル](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\nWe can render formulas for example:$x_i + y_i = z_i$ and $\\sum_{i=1}^n a_i=0$ \r\nWe can also single-line rendering\r\n$$\\sum_{i=1}^n a_i=0$$\r\n\r\n## レイアウト\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`left`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`center`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`right`\r\n`:::`\r\n:::\r\n\r\n## 定義リスト\r\n\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\n\r\n## abbr\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n'},function(e,t){e.exports='@[toc](Catalog)\r\n\r\n\r\n마크다운 가이드\r\n===\r\n> 자세히 보기: [http://commonmark.org/help/](http://commonmark.org/help/)\r\n\r\n## **볼드체(굵게)**\r\n```\r\n**볼드체**\r\n__볼드체__\r\n```\r\n## *이탈릭체(기울임꼴)*\r\n```\r\n*이탈릭체*\r\n_이탈릭체_\r\n```\r\n## 헤더\r\n```\r\n# h1 #\r\nh1\r\n====\r\n## h2 ##\r\nh2\r\n----\r\n### h3 ###\r\n#### h4 ####\r\n##### h5 #####\r\n###### h6 ######\r\n```\r\n## 구분선\r\n```\r\n***\r\n---\r\n```\r\n****\r\n## ^위^첨자 & ~아래~첨자\r\n```\r\n위첨자 x^2^\r\n아래첨자 H~2~0\r\n```\r\n## ++밑줄++ & ~~취소선~~\r\n```\r\n++밑줄++\r\n~~취소선~~\r\n```\r\n## ==마커==\r\n```\r\n==마커==\r\n```\r\n## 인용\r\n\r\n```\r\n> quote 1\r\n>> quote 2\r\n>>> quote 3\r\n...\r\n```\r\n\r\n## 리스트\r\n```\r\nol\r\n1.\r\n2.\r\n3.\r\n...\r\n\r\nul\r\n-\r\n-\r\n...\r\n```\r\n\r\n## 할일\r\n\r\n- [x] task 1\r\n- [ ] task 2\r\n\r\n```\r\n- [x] task 1\r\n- [ ] task 2\r\n```\r\n\r\n## 링크\r\n```\r\n텍스트 링크\r\n[Text](www.baidu.com)\r\n\r\n이미지 링크\r\n![Text](http://www.image.com)\r\n```\r\n## 코드블럭\r\n\\``` type\r\n\r\ncode block\r\n\r\n\\```\r\n\r\n\\` code \\`\r\n\r\n```c++\r\nint main()\r\n{\r\n printf("hello world!");\r\n}\r\n```\r\n`code`\r\n\r\n## 테이블\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n```\r\n| th1 | th2 | th3 |\r\n| :-- | :--: | ----: |\r\n| left | center | right |\r\n| ---------------------- | ------------- | ----------------- |\r\n## Footnote\r\n```\r\nhello[^hello]\r\n```\r\n\r\nLook at the bottom[^hello]\r\n\r\n[^hello]: footnote\r\n\r\n## 이모티콘\r\nDetailed: [https://www.webpagefx.com/tools/emoji-cheat-sheet/](https://www.webpagefx.com/tools/emoji-cheat-sheet/)\r\n```\r\n:laughing:\r\n:blush:\r\n:smiley:\r\n:)\r\n...\r\n```\r\n:laughing::blush::smiley::)\r\n\r\n## $\\KaTeX$ 수학공식\r\n\r\n우리는 다음과 같이 함수를 만들 수 있습니다.:$x_i + y_i = z_i$ and $\\sum_{i=1}^n a_i=0$\r\n단일 항으로도 가능합니다.\r\n$$\\sum_{i=1}^n a_i=0$$\r\nDetailed: [katex](http://www.intmath.com/cg5/katex-mathjax-comparison.php) and [katex function](https://github.com/Khan/KaTeX/wiki/Function-Support-in-KaTeX) and [latex](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)\r\n\r\n## 레이아웃\r\n\r\n::: hljs-left\r\n`::: hljs-left`\r\n`left`\r\n`:::`\r\n:::\r\n\r\n::: hljs-center\r\n`::: hljs-center`\r\n`center`\r\n`:::`\r\n:::\r\n\r\n::: hljs-right\r\n`::: hljs-right`\r\n`right`\r\n`:::`\r\n:::\r\n\r\n## deflist\r\n\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\nTerm 1\r\n\r\n: Definition 1\r\n\r\nTerm 2 with *inline markup*\r\n\r\n: Definition 2\r\n\r\n { some code, part of Definition 2 }\r\n\r\n Third paragraph of definition 2.\r\n\r\n```\r\n\r\n## abbr\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n*[HTML]: Hyper Text Markup Language\r\n*[W3C]: World Wide Web Consortium\r\nThe HTML specification\r\nis maintained by the W3C.\r\n```\r\n'},function(e){e.exports=JSON.parse('{"start_editor":"开始编辑...","navigation_title":"导航目录","tl_bold":"粗体","tl_italic":"斜体","tl_header":"标题","tl_header_one":"一级标题","tl_header_two":"二级标题","tl_header_three":"三级标题","tl_header_four":"四级标题","tl_header_five":"五级标题","tl_header_six":"六级标题","tl_underline":"下划线","tl_strikethrough":"中划线","tl_mark":"标记","tl_superscript":"上角标","tl_subscript":"下角标","tl_quote":"段落引用","tl_ol":"有序列表","tl_ul":"无序列表","tl_link":"链接","tl_image":"添加图片链接","tl_code":"代码块","tl_table":"表格","tl_undo":"上一步","tl_redo":"下一步","tl_trash":"清空","tl_save":"保存","tl_navigation_on":"开启标题导航","tl_navigation_off":"关闭标题导航","tl_preview":"预览","tl_aligncenter":"居中","tl_alignleft":"居左","tl_alignright":"居右","tl_edit":"编辑","tl_single_column":"单栏","tl_double_column":"双栏","tl_fullscreen_on":"全屏编辑","tl_fullscreen_off":"退出全屏","tl_read":"沉浸式阅读","tl_html_on":"查看html文本","tl_html_off":"返回markdown文本","tl_help":"markdown语法帮助","tl_upload":"上传图片","tl_upload_remove":"删除","tl_popup_link_title":"添加链接","tl_popup_link_text":"链接描述","tl_popup_link_addr":"链接地址","tl_popup_img_link_title":"添加图片","tl_popup_img_link_text":"图片描述","tl_popup_img_link_addr":"图片链接","tl_popup_link_sure":"确定","tl_popup_link_cancel":"取消"}')},function(e){e.exports=JSON.parse('{"start_editor":"開始編輯...","navigation_title":"導航目錄","tl_bold":"粗體","tl_italic":"斜體","tl_header":"標題","tl_header_one":"一級標題","tl_header_two":"二級標題","tl_header_three":"三級標題","tl_header_four":"四級標題","tl_header_five":"五級標題","tl_header_six":"六級標題","tl_underline":"下劃線","tl_strikethrough":"中劃線","tl_mark":"標記","tl_superscript":"上角標","tl_subscript":"下角標","tl_quote":"段落引用","tl_ol":"有序列表","tl_ul":"無序列表","tl_link":"鏈接","tl_image":"添加圖片鏈接","tl_code":"代碼塊","tl_table":"表格","tl_undo":"上一步","tl_redo":"下一步","tl_trash":"清空","tl_save":"保存","tl_navigation_on":"開啟標題導航","tl_navigation_off":"關閉標題導航","tl_preview":"預覽","tl_aligncenter":"居中","tl_alignleft":"居左","tl_alignright":"居右","tl_edit":"編輯","tl_single_column":"單欄","tl_double_column":"雙欄","tl_fullscreen_on":"全屏編輯","tl_fullscreen_off":"退出全屏","tl_read":"沈浸式閱讀","tl_html_on":"查看html文本","tl_html_off":"返回markdown文本","tl_help":"markdown語法幫助","tl_upload":"上傳圖片","tl_upload_remove":"刪除","tl_popup_link_title":"添加鏈接","tl_popup_link_text":"鏈接描述","tl_popup_link_addr":"鏈接地址","tl_popup_img_link_title":"添加圖片","tl_popup_img_link_text":"圖片描述","tl_popup_img_link_addr":"圖片鏈接","tl_popup_link_sure":"確定","tl_popup_link_cancel":"取消"}')},function(e){e.exports=JSON.parse('{"start_editor":"Begin editing...","navigation_title":"Navigation","tl_bold":"Bold","tl_italic":"Italic","tl_header":"Header","tl_header_one":"Header 1","tl_header_two":"Header 2","tl_header_three":"Header 3","tl_header_four":"Header 4","tl_header_five":"Header 5","tl_header_six":"Header 6","tl_underline":"Underline","tl_strikethrough":"Strikethrough","tl_mark":"Mark","tl_superscript":"Superscript","tl_subscript":"Subscript","tl_quote":"Quote","tl_ol":"Ol","tl_ul":"Ul","tl_link":"Link","tl_image":"Image Link","tl_code":"Code","tl_table":"Table","tl_undo":"Undo","tl_redo":"Redo","tl_trash":"Trash","tl_save":"Save","tl_navigation_on":"Navigation ON","tl_navigation_off":"Navigation OFF","tl_preview":"Preview","tl_aligncenter":"Center text","tl_alignleft":"Clamp text to the left","tl_alignright":"Clamp text to the right","tl_edit":"Edit","tl_single_column":"Single Column","tl_double_column":"Double Columns","tl_fullscreen_on":"FullScreen ON","tl_fullscreen_off":"FullScreen OFF","tl_read":"Read Model","tl_html_on":"HTML ON","tl_html_off":"HTML OFF","tl_help":"Markdown Guide","tl_upload":"Upload Images","tl_upload_remove":"Remove","tl_popup_link_title":"Add Link","tl_popup_link_text":"Link text","tl_popup_link_addr":"Link address","tl_popup_img_link_title":"Add Image","tl_popup_img_link_text":"Image Text","tl_popup_img_link_addr":"Image Link","tl_popup_link_sure":"Sure","tl_popup_link_cancel":"Cancel"}')},function(e){e.exports=JSON.parse('{"start_editor":"Début d\'édition...","navigation_title":"Navigation","tl_bold":"Gras","tl_italic":"Italique","tl_header":"Entête","tl_header_one":"Entête 1","tl_header_two":"Entête 2","tl_header_three":"Entête 3","tl_header_four":"Entête 4","tl_header_five":"Entête 5","tl_header_six":"Entête 6","tl_underline":"Souligné","tl_strikethrough":"Barré","tl_mark":"Mark","tl_superscript":"Exposant","tl_subscript":"Sous-exposant","tl_quote":"Quote","tl_ol":"Liste ","tl_ul":"Puce","tl_link":"Lien","tl_image":"Image Lien","tl_code":"Code","tl_table":"Table","tl_undo":"Annuler","tl_redo":"Refaire","tl_trash":"Supprimer","tl_save":"Sauver","tl_navigation_on":"Activer la navigation","tl_navigation_off":"Désactiver le navigation","tl_preview":"Previsualisé","tl_aligncenter":"Center le texte","tl_alignleft":"Férer le texte à gauche","tl_alignright":"Férer le texte à droite","tl_edit":"Editer","tl_single_column":"Seule Colonne","tl_double_column":"Colonnes Doubles","tl_fullscreen_on":"Activer le mode plein écran","tl_fullscreen_off":"Désactiver le mode plein écran","tl_read":"Lire le modèle","tl_html_on":"Activer le mode HTML","tl_html_off":"Désactiver le mode HTML","tl_help":"Guide Markdown","tl_upload":"Télécharger les images","tl_upload_remove":"Supprimer","tl_popup_link_title":"Ajouter un lien","tl_popup_link_text":"Description","tl_popup_link_addr":"Link","tl_popup_img_link_title":"Ajouter une image","tl_popup_img_link_text":"Description","tl_popup_img_link_addr":"Link","tl_popup_link_sure":"sûr","tl_popup_link_cancel":"Annuler"}')},function(e){e.exports=JSON.parse('{"start_editor":"Começar edição...","navigation_title":"Navegação","tl_bold":"Negrito","tl_italic":"Itálico","tl_header":"Cabeçalho","tl_header_one":"Cabeçalho 1","tl_header_two":"Cabeçalho 2","tl_header_three":"Cabeçalho 3","tl_header_four":"Cabeçalho 4","tl_header_five":"Cabeçalho 5","tl_header_six":"Cabeçalho 6","tl_underline":"Sublinhar","tl_strikethrough":"Tachar","tl_mark":"Marcação","tl_superscript":"Sobrescrito","tl_subscript":"Subscrito","tl_quote":"Citação","tl_ol":"Lista Numerada","tl_ul":"Lista com marcadores","tl_link":"Link","tl_image":"Link de imagem","tl_code":"Código","tl_table":"Tabela","tl_undo":"Desfazer","tl_redo":"Refazer","tl_trash":"Lixo","tl_save":"Salvar","tl_navigation_on":"Mostrar Navegação","tl_navigation_off":"Esconder Navegação","tl_preview":"Preview","tl_aligncenter":"Alinhar no centro","tl_alignleft":"Alinhar à esquerda","tl_alignright":"Alinhar à direita","tl_edit":"Editar","tl_single_column":"Coluna Única","tl_double_column":"Duas Colunas","tl_fullscreen_on":"Ligar Tela Cheia","tl_fullscreen_off":"Desligar Tela Cheia","tl_read":"Modo de Leitura","tl_html_on":"Ligar HTML","tl_html_off":"Desligar HTML","tl_help":"Guia Markdown","tl_upload":"Upload de Imagens","tl_upload_remove":"Remover","tl_popup_link_title":"Adicionar Link","tl_popup_link_text":"Descrição","tl_popup_link_addr":"Link","tl_popup_img_link_title":"Adicionar fotos","tl_popup_img_link_text":"Descrição","tl_popup_img_link_addr":"Link","tl_popup_link_sure":"Confirmar","tl_popup_link_cancel":"Cancelar"}')},function(e){e.exports=JSON.parse('{"start_editor":"Начните редактирование...","navigation_title":"Навигация","tl_bold":"Полужирный","tl_italic":"Курсив","tl_header":"Заголовки","tl_header_one":"Заголовок 1","tl_header_two":"Заголовок 2","tl_header_three":"Заголовок 3","tl_header_four":"Заголовок 4","tl_header_five":"Заголовок 5","tl_header_six":"Заголовок 6","tl_underline":"Подчеркнутый","tl_strikethrough":"Зачеркнутый","tl_mark":"Отметка","tl_superscript":"Верхний индекс","tl_subscript":"Нижний индекс","tl_quote":"Цитата","tl_ol":"Нумерованный список","tl_ul":"Список","tl_link":"Ссылка","tl_image":"Ссылка изображения","tl_code":"Код","tl_table":"Таблица","tl_undo":"Отменить","tl_redo":"Вернуть","tl_trash":"Удалить","tl_save":"Сохранить","tl_navigation_on":"Показать навигацию","tl_navigation_off":"Скрыть навигацию","tl_preview":"Предпросмотр","tl_aligncenter":"Выровнять по центру","tl_alignleft":"Выровнять по левому краю","tl_alignright":"Выровнять по правому краю","tl_edit":"Редактор","tl_single_column":"Одно поле","tl_double_column":"Два поля","tl_fullscreen_on":"Полноэкранный режим","tl_fullscreen_off":"Выключить полноэкранный режим","tl_read":"Режим чтения","tl_html_on":"Показать HTML","tl_html_off":"Убрать HTML","tl_help":"Markdown помощь","tl_upload":"Загрузить изображение","tl_upload_remove":"Удалить","tl_popup_link_title":"Добавить ссылку","tl_popup_link_text":"Текст ссылки","tl_popup_link_addr":"Адрес ссылки","tl_popup_img_link_title":"Локальное изображение","tl_popup_img_link_text":"Текст изображения","tl_popup_img_link_addr":"Ссылка изображения","tl_popup_link_sure":"Добавить","tl_popup_link_cancel":"Отменить"}')},function(e){e.exports=JSON.parse('{"start_editor":"Bearbeitung beginnen...","navigation_title":"Navigation","tl_bold":"Fett","tl_italic":"Kursiv","tl_header":"Überschrift","tl_header_one":"Überschrift 1","tl_header_two":"Überschrift 2","tl_header_three":"Überschrift 3","tl_header_four":"Überschrift 4","tl_header_five":"Überschrift 5","tl_header_six":"Überschrift 6","tl_underline":"Unterstrichen","tl_strikethrough":"Durchgestrichen","tl_mark":"Markiert","tl_superscript":"Hochgestellt","tl_subscript":"Tiefgestellt","tl_quote":"Zitat","tl_ol":"Ol","tl_ul":"Ul","tl_link":"Link","tl_image":"Link mit Bild","tl_code":"Code","tl_table":"Tabelle","tl_undo":"Rückgängig","tl_redo":"Wiederherstellen","tl_trash":"Mülleimer","tl_save":"Speichern","tl_navigation_on":"Navigation AN","tl_navigation_off":"Navigation AUS","tl_preview":"Vorschau","tl_aligncenter":"Text zentrieren","tl_alignleft":"Nach links ausrichten","tl_alignright":"Nach rechts ausrichten","tl_edit":"Bearbeiten","tl_single_column":"Einspaltig","tl_double_column":"Zweispaltig","tl_fullscreen_on":"Vollbild AN","tl_fullscreen_off":"Vollbild AUS","tl_read":"Lesemodus","tl_html_on":"HTML AN","tl_html_off":"HTML AUS","tl_help":"Markdown Handbuch","tl_upload":"Bilder-Upload","tl_upload_remove":"Entfernen","tl_popup_link_title":"Link hinzufügen","tl_popup_link_text":"Text des Links","tl_popup_link_addr":"Linkziel","tl_popup_img_link_title":"Bild hinzufügen","tl_popup_img_link_text":"Text des Bildes","tl_popup_img_link_addr":"Link auf Bild","tl_popup_link_sure":"Ja","tl_popup_link_cancel":"Abbruch"}')},function(e){e.exports=JSON.parse('{"start_editor":"編集を始めてね!","navigation_title":"ナビゲーション","tl_bold":"太字","tl_italic":"斜体","tl_header":"見出し","tl_header_one":"見出し1","tl_header_two":"見出し2","tl_header_three":"見出し3","tl_header_four":"見出し4","tl_header_five":"見出し5","tl_header_six":"見出し6","tl_underline":"下線","tl_strikethrough":"取り消し線","tl_mark":"蛍光ペン","tl_superscript":"上付き文字","tl_subscript":"下付き文字","tl_quote":"引用","tl_ol":"番号付きリスト","tl_ul":"箇条書きリスト","tl_link":"ハイパーリンク","tl_image":"画像のリンク","tl_code":"コードの挿入","tl_table":"表の挿入","tl_undo":"戻る","tl_redo":"進む","tl_trash":"削除","tl_save":"保存","tl_navigation_on":"ナビゲーションを表示","tl_navigation_off":"ナビゲーションを非表示","tl_preview":"プレビュー","tl_aligncenter":"中央揃え","tl_alignleft":"左揃え","tl_alignright":"右揃え","tl_edit":"編集","tl_single_column":"一列","tl_double_column":"二列","tl_fullscreen_on":"全画面表示","tl_fullscreen_off":"全画面表示の終了","tl_read":"モデルの読み込み","tl_html_on":"HTMLで表示","tl_html_off":"HTML表示の終了","tl_help":"ヘルプ","tl_upload":"画像をアップロード","tl_upload_remove":"画像の削除","tl_popup_link_title":"リンクの追加","tl_popup_link_text":"リンクテキスト","tl_popup_link_addr":"リンク先のURL","tl_popup_img_link_title":"画像の追加","tl_popup_img_link_text":"画像タイトル","tl_popup_img_link_addr":"画像URL","tl_popup_link_sure":"OK","tl_popup_link_cancel":"戻る"}')},function(e){e.exports=JSON.parse('{"start_editor":"작성해주세요.","navigation_title":"네비게이션","tl_bold":"굵게","tl_italic":"기울임꼴","tl_header":"헤더","tl_header_one":"헤더 1","tl_header_two":"헤더 2","tl_header_three":"헤더 3","tl_header_four":"헤더 4","tl_header_five":"헤더 5","tl_header_six":"헤더 6","tl_underline":"밑줄","tl_strikethrough":"취소선","tl_mark":"마커","tl_superscript":"위첨자","tl_subscript":"아래첨자","tl_quote":"Quote","tl_ol":"숫자 리스트","tl_ul":"점 리스트","tl_link":"링크","tl_image":"이미지 링크","tl_code":"코드블럭","tl_table":"테이블","tl_undo":"실행취소","tl_redo":"되돌리기","tl_trash":"삭제","tl_save":"저장","tl_navigation_on":"네비게이션 끔","tl_navigation_off":"네비게이션 켬","tl_preview":"미리보기","tl_aligncenter":"가운데 정렬","tl_alignleft":"왼쪽 정렬","tl_alignright":"오른쪽 정렬","tl_edit":"수정","tl_single_column":"단일 열","tl_double_column":"복수 열","tl_fullscreen_on":"전체화면 활성화","tl_fullscreen_off":"전체화면 종료","tl_read":"읽기모드","tl_html_on":"HTML 켬","tl_html_off":"HTML 끔","tl_help":"마크다운 가이드","tl_upload":"이미지 업로드","tl_upload_remove":"제거","tl_popup_link_title":"링크 삽입","tl_popup_link_text":"텍스트","tl_popup_link_addr":"링크주소","tl_popup_img_link_title":"이미지 추가","tl_popup_img_link_text":"이미지 이름","tl_popup_img_link_addr":"링크주소","tl_popup_link_sure":"삽입","tl_popup_link_cancel":"취소"}')},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(25));t.initMarkdown=T;var i=s(n(56)),o=n(57),a=s(n(135));function s(e){return e&&e.__esModule?e:{default:e}}var l={html:!0,xhtmlOut:!0,breaks:!0,langPrefix:"lang-",linkify:!1,typographer:!0,quotes:"“”‘’"},c=n(140),u=n(197),d=n(203),p=n(204),f=n(205),h=n(206),g=n(207),m=n(208),_=n(209),v=n(210),y=n(211),b=n(212),k=n(213),w=n(214),x=n(215),C={},S=[],j={hljs:"auto",highlighted:!0,langCheck:function(e){e&&i.default[e]&&!C[e]&&(C[e]=1,S.push(i.default[e]))}};function T(){var e=new c(l),t=e.renderer.rules.link_open||function(e,t,n,r,i){return i.renderToken(e,t,n)};return e.renderer.rules.link_open=function(e,n,r,i,o){var a=e[n].attrIndex("href");if(e[n].attrs[a][1].startsWith("#"))return t(e,n,r,i,o);var s=e[n].attrIndex("target");return s<0?e[n].attrPush(["target","_blank"]):e[n].attrs[s][1]="_blank",t(e,n,r,i,o)},e.use(k,j).use(u).use(p).use(d).use(y).use(y,"hljs-left").use(y,"hljs-center").use(y,"hljs-right").use(f).use(h).use(g).use(m).use(_).use(y).use(x).use(w).use(v).use(b),e}t.default={data:function(){return{markdownIt:null}},created:function(){this.markdownIt=T(),this.html?"object"===(0,r.default)(this.xssOptions)&&this.markdownIt.use(a.default,this.xssOptions):(this.markdownIt.set({html:!1}),this.xssOptions=!1)},mounted:function(){j.highlighted=this.ishljs},methods:{$render:function(e,t){C={},S=[];var n=this.markdownIt.render(e);this.ishljs&&S.length>0&&this.$_render(e,t,n),t(n)},$_render:function(e,t,n){for(var r=this,i=0,a=0;a";var y=function(e){var t=l.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=l.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=l.trim(e.slice(0,-1))),{html:e,closing:n}}(a),b=n[i],k=s(y.html,function(e,t){var n=-1!==l.indexOf(b,e),r=u(i,e,t,n);return c(r)?n?(t=p(i,e,t,g))?e+"="+h+t+h:e:c(r=d(i,e,t,n))?void 0:r:r});return a="<"+i,k&&(a+=" "+k),y.closing&&(a+=" /"),a+">"}return c(v=o(i,a,_))?f(a):v},f);return m&&(_=m.remove(_)),_},e.exports=u},function(e,t,n){"use strict";e.exports=n(141)},function(e,t,n){"use strict";var r=n(1),i=n(149),o=n(153),a=n(154),s=n(162),l=n(176),c=n(189),u=n(63),d=n(191),p={default:n(194),zero:n(195),commonmark:n(196)},f=/^(vbscript|javascript|file|data):/,h=/^data:image\/(gif|png|jpeg|webp);/;function g(e){var t=e.trim().toLowerCase();return!f.test(t)||!!h.test(t)}var m=["http:","https:","mailto:"];function _(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=d.toASCII(t.hostname)}catch(e){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=d.toUnicode(t.hostname)}catch(e){}return u.decode(u.format(t))}function y(e,t){if(!(this instanceof y))return new y(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new l,this.block=new s,this.core=new a,this.renderer=new o,this.linkify=new c,this.validateLink=g,this.normalizeLink=_,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},i),this.options={},this.configure(e),t&&this.set(t)}y.prototype.set=function(e){return r.assign(this.options,e),this},y.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=p[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach(function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)}),this},y.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(t){n=n.concat(this[t].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},y.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(t){n=n.concat(this[t].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},y.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},y.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},y.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},y.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},y.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=y},function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(e,t,n){"use strict";var r={};function i(e,t,n){var o,a,s,l,c,u="";for("string"!=typeof t&&(n=t,t=i.defaultChars),void 0===n&&(n=!0),c=function(e){var t,n,i=r[e];if(i)return i;for(i=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?i.push(n):i.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1=56320&&l<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}i.defaultChars=";/?:@&=+$,-_.!~*'()#",i.componentChars="-_.!~*'()",e.exports=i},function(e,t,n){"use strict";var r={};function i(e,t){var n;return"string"!=typeof t&&(t=i.defaultChars),n=function(e){var t,n,i=r[e];if(i)return i;for(i=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),i.push(n);for(t=0;t=55296&&l<=57343?"���":String.fromCharCode(l),t+=6):240==(248&i)&&t+91114111?c+="����":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="�";return c})}i.defaultChars=";/?:@&=+$,#",i.componentChars="",e.exports=i},function(e,t,n){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+(e.hash||"")}},function(e,t,n){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var i=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,s=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(s),c=["%","/","?",";","#"].concat(l),u=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},h={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var n,r,o,s,l,g=e;if(g=g.trim(),!t&&1===e.split("#").length){var m=a.exec(g);if(m)return this.pathname=m[1],m[2]&&(this.search=m[2]),this}var _=i.exec(g);if(_&&(o=(_=_[0]).toLowerCase(),this.protocol=_,g=g.substr(_.length)),(t||_||g.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(l="//"===g.substr(0,2))||_&&f[_]||(g=g.substr(2),this.slashes=!0)),!f[_]&&(l||_&&!h[_])){var v,y,b=-1;for(n=0;n127?S+="x":S+=C[j];if(!S.match(d)){var L=x.slice(0,n),E=x.slice(n+1),A=C.match(p);A&&(L.push(A[1]),E.unshift(A[2])),E.length&&(g=E.join(".")+g),this.hostname=L.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var M=g.indexOf("#");-1!==M&&(this.hash=g.substr(M),g=g.slice(0,M));var D=g.indexOf("?");return-1!==D&&(this.search=g.substr(D),g=g.slice(0,D)),g&&(this.pathname=g),h[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=o.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}},function(e,t,n){"use strict";t.Any=n(64),t.Cc=n(65),t.Cf=n(148),t.P=n(40),t.Z=n(66)},function(e,t){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},function(e,t,n){"use strict";t.parseLinkLabel=n(150),t.parseLinkDestination=n(151),t.parseLinkTitle=n(152)},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,i,o,a,s=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,r=1;e.pos=n)return l;if(34!==(o=e.charCodeAt(t))&&39!==o&&40!==o)return l;for(t++,40===o&&(o=41);t"+o(e[t].content)+""},a.code_block=function(e,t,n,r,i){var a=e[t];return""+o(e[t].content)+"\n"},a.fence=function(e,t,n,r,a){var s,l,c,u,d=e[t],p=d.info?i(d.info).trim():"",f="";return p&&(f=p.split(/\s+/g)[0]),0===(s=n.highlight&&n.highlight(d.content,f)||o(d.content)).indexOf(""+s+"\n"):"
"+s+"
\n"},a.image=function(e,t,n,r,i){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=i.renderInlineAsText(o.children,n,r),i.renderToken(e,t,n)},a.hardbreak=function(e,t,n){return n.xhtmlOut?"
\n":"
\n"},a.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
\n":"
\n":"\n"},a.text=function(e,t){return o(e[t].content)},a.html_block=function(e,t){return e[t].content},a.html_inline=function(e,t){return e[t].content},s.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t\n":">")},s.prototype.renderInline=function(e,t,n){for(var r,i="",o=this.rules,a=0,s=e.length;a/i.test(e)}e.exports=function(e){var t,n,o,a,s,l,c,u,d,p,f,h,g,m,_,v,y,b,k=e.tokens;if(e.md.options.linkify)for(n=0,o=k.length;n=0;t--)if("link_close"!==(l=a[t]).type){if("html_inline"===l.type&&(b=l.content,/^\s]/i.test(b)&&g>0&&g--,i(l.content)&&g++),!(g>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(d=l.content,y=e.md.linkify.match(d),c=[],h=l.level,f=0,u=0;uf&&((s=new e.Token("text","",0)).content=d.slice(f,p),s.level=h,c.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",_]],s.level=h++,s.markup="linkify",s.info="auto",c.push(s),(s=new e.Token("text","",0)).content=v,s.level=h,c.push(s),(s=new e.Token("link_close","a",-1)).level=--h,s.markup="linkify",s.info="auto",c.push(s),f=y[u].lastIndex);f=0;t--)"text"!==(n=e[t]).type||r||(n.content=n.content.replace(o,s)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function c(e){var t,n,i=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||i||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),"link_open"===n.type&&"auto"===n.info&&i--,"link_close"===n.type&&"auto"===n.info&&i++}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(i.test(e.tokens[t].content)&&l(e.tokens[t].children),r.test(e.tokens[t].content)&&c(e.tokens[t].children))}},function(e,t,n){"use strict";var r=n(1).isWhiteSpace,i=n(1).isPunctChar,o=n(1).isMdAsciiPunct,a=/['"]/,s=/['"]/g;function l(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function c(e,t){var n,a,c,u,d,p,f,h,g,m,_,v,y,b,k,w,x,C,S,j,T;for(S=[],n=0;n=0&&!(S[x].level<=f);x--);if(S.length=x+1,"text"===a.type){d=0,p=(c=a.content).length;e:for(;d=0)g=c.charCodeAt(u.index-1);else for(x=n-1;x>=0&&"softbreak"!==e[x].type&&"hardbreak"!==e[x].type;x--)if("text"===e[x].type){g=e[x].content.charCodeAt(e[x].content.length-1);break}if(m=32,d=48&&g<=57&&(w=k=!1),k&&w&&(k=!1,w=v),k||w){if(w)for(x=S.length-1;x>=0&&(h=S[x],!(S[x].level=0;t--)"inline"===e.tokens[t].type&&a.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}},function(e,t,n){"use strict";var r=n(42);function i(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}i.prototype.Token=r,e.exports=i},function(e,t,n){"use strict";var r=n(41),i=[["table",n(163),["paragraph","reference"]],["code",n(164)],["fence",n(165),["paragraph","reference","blockquote","list"]],["blockquote",n(166),["paragraph","reference","blockquote","list"]],["hr",n(167),["paragraph","reference","blockquote","list"]],["list",n(168),["paragraph","reference","blockquote"]],["reference",n(169)],["heading",n(170),["paragraph","reference","blockquote"]],["lheading",n(171)],["html_block",n(172),["paragraph","reference","blockquote"]],["paragraph",n(174)]];function o(){this.ruler=new r;for(var e=0;e=n))&&!(e.sCount[a]=l){e.line=n;break}for(r=0;rn)return!1;if(d=t+1,e.sCount[d]=4)return!1;if((c=e.bMarks[d]+e.tShift[d])>=e.eMarks[d])return!1;if(124!==(s=e.src.charCodeAt(c++))&&45!==s&&58!==s)return!1;for(;c=4)return!1;if((f=(p=o(l.replace(/^\||\|$/g,""))).length)>g.length)return!1;if(a)return!0;for((h=e.push("table_open","table",1)).map=_=[t,0],(h=e.push("thead_open","thead",1)).map=[t,t+1],(h=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u=4);d++){for(p=o(l.replace(/^\||\|$/g,"")),h=e.push("tr_open","tr",1),u=0;u=4))break;i=++r}return e.line=i,(o=e.push("code_block","code",0)).content=e.getLines(t,i,4+e.blkIndent,!0),o.map=[t,e.line],!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var i,o,a,s,l,c,u,d=!1,p=e.bMarks[t]+e.tShift[t],f=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(p+3>f)return!1;if(126!==(i=e.src.charCodeAt(p))&&96!==i)return!1;if(l=p,(o=(p=e.skipChars(p,i))-l)<3)return!1;if(u=e.src.slice(l,p),a=e.src.slice(p,f),96===i&&a.indexOf(String.fromCharCode(i))>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((p=l=e.bMarks[s]+e.tShift[s])<(f=e.eMarks[s])&&e.sCount[s]=4||(p=e.skipChars(p,i))-l=4)return!1;if(62!==e.src.charCodeAt(j++))return!1;if(i)return!0;for(l=f=e.sCount[t]+j-(e.bMarks[t]+e.tShift[t]),32===e.src.charCodeAt(j)?(j++,l++,f++,o=!1,b=!0):9===e.src.charCodeAt(j)?(b=!0,(e.bsCount[t]+f)%4==3?(j++,l++,f++,o=!1):o=!0):b=!1,h=[e.bMarks[t]],e.bMarks[t]=j;j=T,v=[e.sCount[t]],e.sCount[t]=f-l,y=[e.tShift[t]],e.tShift[t]=j-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),_=e.parentType,e.parentType="blockquote",C=!1,p=t+1;p=(T=e.eMarks[p])));p++)if(62!==e.src.charCodeAt(j++)||C){if(u)break;for(k=!1,s=0,c=w.length;s=T,g.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(b?1:0),v.push(e.sCount[p]),e.sCount[p]=f-l,y.push(e.tShift[p]),e.tShift[p]=j-e.bMarks[p]}for(m=e.blkIndent,e.blkIndent=0,(x=e.push("blockquote_open","blockquote",1)).markup=">",x.map=d=[t,0],e.md.block.tokenize(e,t,p),(x=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=S,e.parentType=_,d[1]=e.line,s=0;s=4)return!1;if(42!==(o=e.src.charCodeAt(c++))&&45!==o&&95!==o)return!1;for(a=1;c=a)return-1;if((n=e.src.charCodeAt(o++))<48||n>57)return-1;for(;;){if(o>=a)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-i>=10)return-1}return o=4)return!1;if(e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]=e.blkIndent&&(N=!0),(L=o(e,t))>=0){if(p=!0,A=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(A,L-A-1)),N&&1!==v)return!1}else{if(!((L=i(e,t))>=0))return!1;p=!1}if(N&&e.skipSpaces(L)>=e.eMarks[t])return!1;if(_=e.src.charCodeAt(L-1),r)return!0;for(m=e.tokens.length,p?(O=e.push("ordered_list_open","ol",1),1!==v&&(O.attrs=[["start",v]])):O=e.push("bullet_list_open","ul",1),O.map=g=[t,0],O.markup=String.fromCharCode(_),b=t,E=!1,D=e.md.block.ruler.getRules("list"),x=e.parentType,e.parentType="list";b=y?1:k-d)>4&&(u=1),c=d+u,(O=e.push("list_item_open","li",1)).markup=String.fromCharCode(_),O.map=f=[t,0],j=e.tight,S=e.tShift[t],C=e.sCount[t],w=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=s-e.bMarks[t],e.sCount[t]=k,s>=y&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!E||(z=!1),E=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[t]=S,e.sCount[t]=C,e.tight=j,(O=e.push("list_item_close","li",-1)).markup=String.fromCharCode(_),b=t=e.line,f[1]=b,s=e.bMarks[t],b>=n)break;if(e.sCount[b]=4)break;for(M=!1,l=0,h=D.length;l=4)return!1;if(91!==e.src.charCodeAt(x))return!1;for(;++x3||e.sCount[S]<0)){for(y=!1,d=0,p=b.length;d=4)return!1;if(35!==(o=e.src.charCodeAt(c))||c>=u)return!1;for(a=1,o=e.src.charCodeAt(++c);35===o&&c6||cc&&r(e.src.charCodeAt(s-1))&&(u=s),e.line=t+1,(l=e.push("heading_open","h"+String(a),1)).markup="########".slice(0,a),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(a),-1)).markup="########".slice(0,a)),!0)}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,i,o,a,s,l,c,u,d,p,f=t+1,h=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(p=e.parentType,e.parentType="paragraph";f3)){if(e.sCount[f]>=e.blkIndent&&(l=e.bMarks[f]+e.tShift[f])<(c=e.eMarks[f])&&(45===(d=e.src.charCodeAt(l))||61===d)&&(l=e.skipChars(l,d),(l=e.skipSpaces(l))>=c)){u=61===d?1:2;break}if(!(e.sCount[f]<0)){for(i=!1,o=0,a=h.length;o|$))/i,/<\/(script|pre|style)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(i.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var i,a,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),i=0;i3||e.sCount[l]<0)){for(r=!1,i=0,o=c.length;i0&&this.level++,this.tokens.push(i),i},o.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},o.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;et;)if(!i(this.src.charCodeAt(--e)))return e+1;return e},o.prototype.skipChars=function(e,t){for(var n=this.src.length;en;)if(t!==this.src.charCodeAt(--e))return e+1;return e},o.prototype.getLines=function(e,t,n,r){var o,a,s,l,c,u,d,p=e;if(e>=t)return"";for(u=new Array(t-e),o=0;pn?new Array(a-n+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},o.prototype.Token=r,e.exports=o},function(e,t,n){"use strict";var r=n(41),i=[["text",n(177)],["newline",n(178)],["escape",n(179)],["backticks",n(180)],["strikethrough",n(68).tokenize],["emphasis",n(69).tokenize],["link",n(181)],["image",n(182)],["autolink",n(183)],["html_inline",n(184)],["entity",n(185)]],o=[["balance_pairs",n(186)],["strikethrough",n(68).postProcess],["emphasis",n(69).postProcess],["text_collapse",n(187)]];function a(){var e;for(this.ruler=new r,e=0;e=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},a.prototype.parse=function(e,t,n,r){var i,o,a,s=new this.State(e,t,n,r);for(this.tokenize(s),a=(o=this.ruler2.getRules("")).length,i=0;i=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),o++;o?@[]^_`{|}~-".split("").forEach(function(e){i[e.charCodeAt(0)]=1}),e.exports=function(e,t){var n,o=e.pos,a=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o=g)return!1;for(m=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok&&(f=e.md.normalizeLink(u.str),e.md.validateLink(f)?c=u.pos:f=""),m=c;c=g||41!==e.src.charCodeAt(c))&&(_=!0),c++}if(_){if(void 0===e.env.references)return!1;if(c=0?a=e.src.slice(m,c++):c=s+1):c=s+1,a||(a=e.src.slice(l,s)),!(d=e.env.references[r(a)]))return e.pos=h,!1;f=d.href,p=d.title}return t||(e.pos=l,e.posMax=s,e.push("link_open","a",1).attrs=n=[["href",f]],p&&n.push(["title",p]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=g,!0}},function(e,t,n){"use strict";var r=n(1).normalizeReference,i=n(1).isSpace;e.exports=function(e,t){var n,o,a,s,l,c,u,d,p,f,h,g,m,_="",v=e.pos,y=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)=y)return!1;for(m=u,(p=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(_=e.md.normalizeLink(p.str),e.md.validateLink(_)?u=p.pos:_=""),m=u;u=y||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u=0?s=e.src.slice(m,u++):u=l+1):u=l+1,s||(s=e.src.slice(c,l)),!(d=e.env.references[r(s)]))return e.pos=v,!1;_=d.href,f=d.title}return t||(a=e.src.slice(c,l),e.md.inline.parse(a,e.md,e.env,g=[]),(h=e.push("image","img",0)).attrs=n=[["src",_],["alt",""]],h.children=g,h.content=a,f&&n.push(["title",f])),e.pos=u,e.posMax=y,!0}},function(e,t,n){"use strict";var r=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,i=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,o,a,s,l,c,u=e.pos;return 60===e.src.charCodeAt(u)&&!((n=e.src.slice(u)).indexOf(">")<0)&&(i.test(n)?(s=(o=n.match(i))[0].slice(1,-1),l=e.md.normalizeLink(s),!!e.md.validateLink(l)&&(t||((c=e.push("link_open","a",1)).attrs=[["href",l]],c.markup="autolink",c.info="auto",(c=e.push("text","",0)).content=e.md.normalizeLinkText(s),(c=e.push("link_close","a",-1)).markup="autolink",c.info="auto"),e.pos+=o[0].length,!0)):!!r.test(n)&&(s=(a=n.match(r))[0].slice(1,-1),l=e.md.normalizeLink("mailto:"+s),!!e.md.validateLink(l)&&(t||((c=e.push("link_open","a",1)).attrs=[["href",l]],c.markup="autolink",c.info="auto",(c=e.push("text","",0)).content=e.md.normalizeLinkText(s),(c=e.push("link_close","a",-1)).markup="autolink",c.info="auto"),e.pos+=a[0].length,!0)))}},function(e,t,n){"use strict";var r=n(67).HTML_TAG_RE;e.exports=function(e,t){var n,i,o,a=e.pos;return!!e.md.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(a)||a+2>=o)&&!(33!==(n=e.src.charCodeAt(a+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&!!(i=e.src.slice(a).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(a,a+i[0].length)),e.pos+=i[0].length,!0))}},function(e,t,n){"use strict";var r=n(62),i=n(1).has,o=n(1).isValidEntityCode,a=n(1).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,l=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,u=e.pos,d=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1a;r-=o.jump+1)if((o=t[r]).marker===i.marker&&(-1===s&&(s=r),o.open&&o.end<0&&o.level===i.level&&(l=!1,(o.close||i.open)&&(o.length+i.length)%3==0&&(o.length%3==0&&i.length%3==0||(l=!0)),!l))){c=r>0&&!t[r-1].open?t[r-1].jump+1:0,i.jump=n-r+c,i.open=!1,o.end=n,o.jump=c,o.close=!1,s=-1;break}-1!==s&&(u[i.marker][(i.length||0)%3]=s)}}e.exports=function(e){var t,n=e.tokens_meta,i=e.tokens_meta.length;for(r(0,e.delimiters),t=0;t0&&r++,"text"===i[t].type&&t+10&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(o),i},s.prototype.scanDelims=function(e,t){var n,r,s,l,c,u,d,p,f,h=e,g=!0,m=!0,_=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;h<_&&this.src.charCodeAt(h)===v;)h++;return s=h-e,r=h<_?this.src.charCodeAt(h):32,d=a(n)||o(String.fromCharCode(n)),f=a(r)||o(String.fromCharCode(r)),u=i(n),(p=i(r))?g=!1:f&&(u||d||(g=!1)),u?m=!1:d&&(p||f||(m=!1)),t?(l=g,c=m):(l=g&&(!m||d),c=m&&(!g||f)),{can_open:l,can_close:c,length:s}},s.prototype.Token=r,e.exports=s},function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}function i(e){return Object.prototype.toString.call(e)}function o(e){return"[object Function]"===i(e)}function a(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var s={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1},l={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},c="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(190)(e.__opts__),r=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(s(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(s(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(s(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(s(t.tpl_host_fuzzy_test),"i");var l=[];function c(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach(function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===i(n))return function(e){return"[object RegExp]"===i(e)}(n.validate)?r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate):o(n.validate)?r.validate=n.validate:c(t,n),void(o(n.normalize)?r.normalize=n.normalize:n.normalize?c(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===i(e)}(n)?c(t,n):l.push(t)}}),l.forEach(function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)}),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter(function(t){return t.length>0&&e.__compiled__[t]}).map(a).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function d(e,t){var n=e.__index__,r=e.__last_index__,i=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=i,this.text=i,this.url=i}function p(e,t){var n=new d(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function f(e,t){if(!(this instanceof f))return new f(e,t);var n;t||(n=e,Object.keys(n||{}).reduce(function(e,t){return e||s.hasOwnProperty(t)},!1)&&(t=e,e={})),this.__opts__=r({},s,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},l,e),this.__compiled__={},this.__tlds__=c,this.__tlds_replaced__=!1,this.re={},u(this)}f.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},f.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},f.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,i,o,a,s,l;if(this.re.schema_test.test(e))for((s=this.re.schema_search).lastIndex=0;null!==(t=s.exec(e));)if(i=this.testSchemaAt(e,t[2],s.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+i;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l=0&&null!==(r=e.match(this.re.email_fuzzy))&&(o=r.index+r[1].length,a=r.index+r[0].length,(this.__index__<0||othis.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=a)),this.__index__>=0},f.prototype.pretest=function(e){return this.re.pretest.test(e)},f.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},f.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(p(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(p(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},f.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,t,n){return e!==n[t-1]}).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},f.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},f.prototype.onCompile=function(){},e.exports=f},function(e,t,n){"use strict";e.exports=function(e){var t={};return t.src_Any=n(64).source,t.src_Cc=n(65).source,t.src_Z=n(66).source,t.src_P=n(40).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|"),t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},function(e,t,n){(function(e,r){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof r&&r;o.global!==o&&o.window!==o&&o.self;var a,s=2147483647,l=/^xn--/,c=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,f=String.fromCharCode;function h(e){throw new RangeError(d[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function m(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(u,".")).split("."),t).join(".")}function _(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=f((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+f(e)}).join("")}function y(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function b(e,t,n){var r=0;for(e=n?p(e/700):e>>1,e+=p(e/t);e>455;r+=36)e=p(e/35);return p(r+36*e/(e+38))}function k(e){var t,n,r,i,o,a,l,c,u,d,f,g=[],m=e.length,_=0,y=128,k=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r=128&&h("not-basic"),g.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=m&&h("invalid-input"),((c=(f=e.charCodeAt(i++))-48<10?f-22:f-65<26?f-65:f-97<26?f-97:36)>=36||c>p((s-_)/a))&&h("overflow"),_+=c*a,!(c<(u=l<=k?1:l>=k+26?26:l-k));l+=36)a>p(s/(d=36-u))&&h("overflow"),a*=d;k=b(_-o,t=g.length+1,0==o),p(_/t)>s-y&&h("overflow"),y+=p(_/t),_%=t,g.splice(_++,0,y)}return v(g)}function w(e){var t,n,r,i,o,a,l,c,u,d,g,m,v,k,w,x=[];for(m=(e=_(e)).length,t=128,n=0,o=72,a=0;a=t&&gp((s-n)/(v=r+1))&&h("overflow"),n+=(l-t)*v,t=l,a=0;as&&h("overflow"),g==t){for(c=n,u=36;!(c<(d=u<=o?1:u>=o+26?26:u-o));u+=36)w=c-d,k=36-d,x.push(f(y(d+w%k,0))),c=p(w/k);x.push(f(y(c,0))),o=b(n,v,r==i),n=0,++r}++n,++t}return x.join("")}a={version:"1.4.1",ucs2:{decode:_,encode:v},decode:k,encode:w,toASCII:function(e){return m(e,function(e){return c.test(e)?"xn--"+w(e):e})},toUnicode:function(e){return m(e,function(e){return l.test(e)?k(e.slice(4).toLowerCase()):e})}},void 0===(i=function(){return a}.call(t,n,t,e))||(e.exports=i)}()}).call(this,n(192)(e),n(193))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},function(e,t,n){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},function(e,t,n){"use strict";var r=n(198),i=n(199),o=n(200),a=n(201),s=n(202);e.exports=function(e,t){var n={defs:r,shortcuts:i,enabled:[]},l=s(e.utils.assign({},n,t||{}));e.renderer.rules.emoji=o,e.core.ruler.push("emoji",a(e,l.defs,l.shortcuts,l.scanRE,l.replaceRE))}},function(e){e.exports=JSON.parse('{"100":"💯","1234":"🔢","grinning":"😀","smiley":"😃","smile":"😄","grin":"😁","laughing":"😆","satisfied":"😆","sweat_smile":"😅","joy":"😂","rofl":"🤣","relaxed":"☺️","blush":"😊","innocent":"😇","slightly_smiling_face":"🙂","upside_down_face":"🙃","wink":"😉","relieved":"😌","heart_eyes":"😍","kissing_heart":"😘","kissing":"😗","kissing_smiling_eyes":"😙","kissing_closed_eyes":"😚","yum":"😋","stuck_out_tongue_winking_eye":"😜","stuck_out_tongue_closed_eyes":"😝","stuck_out_tongue":"😛","money_mouth_face":"🤑","hugs":"🤗","nerd_face":"🤓","sunglasses":"😎","clown_face":"🤡","cowboy_hat_face":"🤠","smirk":"😏","unamused":"😒","disappointed":"😞","pensive":"😔","worried":"😟","confused":"😕","slightly_frowning_face":"🙁","frowning_face":"☹️","persevere":"😣","confounded":"😖","tired_face":"😫","weary":"😩","triumph":"😤","angry":"😠","rage":"😡","pout":"😡","no_mouth":"😶","neutral_face":"😐","expressionless":"😑","hushed":"😯","frowning":"😦","anguished":"😧","open_mouth":"😮","astonished":"😲","dizzy_face":"😵","flushed":"😳","scream":"😱","fearful":"😨","cold_sweat":"😰","cry":"😢","disappointed_relieved":"😥","drooling_face":"🤤","sob":"😭","sweat":"😓","sleepy":"😪","sleeping":"😴","roll_eyes":"🙄","thinking":"🤔","lying_face":"🤥","grimacing":"😬","zipper_mouth_face":"🤐","nauseated_face":"🤢","sneezing_face":"🤧","mask":"😷","face_with_thermometer":"🤒","face_with_head_bandage":"🤕","smiling_imp":"😈","imp":"👿","japanese_ogre":"👹","japanese_goblin":"👺","hankey":"💩","poop":"💩","shit":"💩","ghost":"👻","skull":"💀","skull_and_crossbones":"☠️","alien":"👽","space_invader":"👾","robot":"🤖","jack_o_lantern":"🎃","smiley_cat":"😺","smile_cat":"😸","joy_cat":"😹","heart_eyes_cat":"😻","smirk_cat":"😼","kissing_cat":"😽","scream_cat":"🙀","crying_cat_face":"😿","pouting_cat":"😾","open_hands":"👐","raised_hands":"🙌","clap":"👏","pray":"🙏","handshake":"🤝","+1":"👍","thumbsup":"👍","-1":"👎","thumbsdown":"👎","fist_oncoming":"👊","facepunch":"👊","punch":"👊","fist_raised":"✊","fist":"✊","fist_left":"🤛","fist_right":"🤜","crossed_fingers":"🤞","v":"✌️","metal":"🤘","ok_hand":"👌","point_left":"👈","point_right":"👉","point_up_2":"👆","point_down":"👇","point_up":"☝️","hand":"✋","raised_hand":"✋","raised_back_of_hand":"🤚","raised_hand_with_fingers_splayed":"🖐","vulcan_salute":"🖖","wave":"👋","call_me_hand":"🤙","muscle":"💪","middle_finger":"🖕","fu":"🖕","writing_hand":"✍️","selfie":"🤳","nail_care":"💅","ring":"💍","lipstick":"💄","kiss":"💋","lips":"👄","tongue":"👅","ear":"👂","nose":"👃","footprints":"👣","eye":"👁","eyes":"👀","speaking_head":"🗣","bust_in_silhouette":"👤","busts_in_silhouette":"👥","baby":"👶","boy":"👦","girl":"👧","man":"👨","woman":"👩","blonde_woman":"👱‍♀","blonde_man":"👱","person_with_blond_hair":"👱","older_man":"👴","older_woman":"👵","man_with_gua_pi_mao":"👲","woman_with_turban":"👳‍♀","man_with_turban":"👳","policewoman":"👮‍♀","policeman":"👮","cop":"👮","construction_worker_woman":"👷‍♀","construction_worker_man":"👷","construction_worker":"👷","guardswoman":"💂‍♀","guardsman":"💂","female_detective":"🕵️‍♀️","male_detective":"🕵","detective":"🕵","woman_health_worker":"👩‍⚕","man_health_worker":"👨‍⚕","woman_farmer":"👩‍🌾","man_farmer":"👨‍🌾","woman_cook":"👩‍🍳","man_cook":"👨‍🍳","woman_student":"👩‍🎓","man_student":"👨‍🎓","woman_singer":"👩‍🎤","man_singer":"👨‍🎤","woman_teacher":"👩‍🏫","man_teacher":"👨‍🏫","woman_factory_worker":"👩‍🏭","man_factory_worker":"👨‍🏭","woman_technologist":"👩‍💻","man_technologist":"👨‍💻","woman_office_worker":"👩‍💼","man_office_worker":"👨‍💼","woman_mechanic":"👩‍🔧","man_mechanic":"👨‍🔧","woman_scientist":"👩‍🔬","man_scientist":"👨‍🔬","woman_artist":"👩‍🎨","man_artist":"👨‍🎨","woman_firefighter":"👩‍🚒","man_firefighter":"👨‍🚒","woman_pilot":"👩‍✈","man_pilot":"👨‍✈","woman_astronaut":"👩‍🚀","man_astronaut":"👨‍🚀","woman_judge":"👩‍⚖","man_judge":"👨‍⚖","mrs_claus":"🤶","santa":"🎅","princess":"👸","prince":"🤴","bride_with_veil":"👰","man_in_tuxedo":"🤵","angel":"👼","pregnant_woman":"🤰","bowing_woman":"🙇‍♀","bowing_man":"🙇","bow":"🙇","tipping_hand_woman":"💁","information_desk_person":"💁","sassy_woman":"💁","tipping_hand_man":"💁‍♂","sassy_man":"💁‍♂","no_good_woman":"🙅","no_good":"🙅","ng_woman":"🙅","no_good_man":"🙅‍♂","ng_man":"🙅‍♂","ok_woman":"🙆","ok_man":"🙆‍♂","raising_hand_woman":"🙋","raising_hand":"🙋","raising_hand_man":"🙋‍♂","woman_facepalming":"🤦‍♀","man_facepalming":"🤦‍♂","woman_shrugging":"🤷‍♀","man_shrugging":"🤷‍♂","pouting_woman":"🙎","person_with_pouting_face":"🙎","pouting_man":"🙎‍♂","frowning_woman":"🙍","person_frowning":"🙍","frowning_man":"🙍‍♂","haircut_woman":"💇","haircut":"💇","haircut_man":"💇‍♂","massage_woman":"💆","massage":"💆","massage_man":"💆‍♂","business_suit_levitating":"🕴","dancer":"💃","man_dancing":"🕺","dancing_women":"👯","dancers":"👯","dancing_men":"👯‍♂","walking_woman":"🚶‍♀","walking_man":"🚶","walking":"🚶","running_woman":"🏃‍♀","running_man":"🏃","runner":"🏃","running":"🏃","couple":"👫","two_women_holding_hands":"👭","two_men_holding_hands":"👬","couple_with_heart_woman_man":"💑","couple_with_heart":"💑","couple_with_heart_woman_woman":"👩‍❤️‍👩","couple_with_heart_man_man":"👨‍❤️‍👨","couplekiss_man_woman":"💏","couplekiss_woman_woman":"👩‍❤️‍💋‍👩","couplekiss_man_man":"👨‍❤️‍💋‍👨","family_man_woman_boy":"👪","family":"👪","family_man_woman_girl":"👨‍👩‍👧","family_man_woman_girl_boy":"👨‍👩‍👧‍👦","family_man_woman_boy_boy":"👨‍👩‍👦‍👦","family_man_woman_girl_girl":"👨‍👩‍👧‍👧","family_woman_woman_boy":"👩‍👩‍👦","family_woman_woman_girl":"👩‍👩‍👧","family_woman_woman_girl_boy":"👩‍👩‍👧‍👦","family_woman_woman_boy_boy":"👩‍👩‍👦‍👦","family_woman_woman_girl_girl":"👩‍👩‍👧‍👧","family_man_man_boy":"👨‍👨‍👦","family_man_man_girl":"👨‍👨‍👧","family_man_man_girl_boy":"👨‍👨‍👧‍👦","family_man_man_boy_boy":"👨‍👨‍👦‍👦","family_man_man_girl_girl":"👨‍👨‍👧‍👧","family_woman_boy":"👩‍👦","family_woman_girl":"👩‍👧","family_woman_girl_boy":"👩‍👧‍👦","family_woman_boy_boy":"👩‍👦‍👦","family_woman_girl_girl":"👩‍👧‍👧","family_man_boy":"👨‍👦","family_man_girl":"👨‍👧","family_man_girl_boy":"👨‍👧‍👦","family_man_boy_boy":"👨‍👦‍👦","family_man_girl_girl":"👨‍👧‍👧","womans_clothes":"👚","shirt":"👕","tshirt":"👕","jeans":"👖","necktie":"👔","dress":"👗","bikini":"👙","kimono":"👘","high_heel":"👠","sandal":"👡","boot":"👢","mans_shoe":"👞","shoe":"👞","athletic_shoe":"👟","womans_hat":"👒","tophat":"🎩","mortar_board":"🎓","crown":"👑","rescue_worker_helmet":"⛑","school_satchel":"🎒","pouch":"👝","purse":"👛","handbag":"👜","briefcase":"💼","eyeglasses":"👓","dark_sunglasses":"🕶","closed_umbrella":"🌂","open_umbrella":"☂️","dog":"🐶","cat":"🐱","mouse":"🐭","hamster":"🐹","rabbit":"🐰","fox_face":"🦊","bear":"🐻","panda_face":"🐼","koala":"🐨","tiger":"🐯","lion":"🦁","cow":"🐮","pig":"🐷","pig_nose":"🐽","frog":"🐸","monkey_face":"🐵","see_no_evil":"🙈","hear_no_evil":"🙉","speak_no_evil":"🙊","monkey":"🐒","chicken":"🐔","penguin":"🐧","bird":"🐦","baby_chick":"🐤","hatching_chick":"🐣","hatched_chick":"🐥","duck":"🦆","eagle":"🦅","owl":"🦉","bat":"🦇","wolf":"🐺","boar":"🐗","horse":"🐴","unicorn":"🦄","bee":"🐝","honeybee":"🐝","bug":"🐛","butterfly":"🦋","snail":"🐌","shell":"🐚","beetle":"🐞","ant":"🐜","spider":"🕷","spider_web":"🕸","turtle":"🐢","snake":"🐍","lizard":"🦎","scorpion":"🦂","crab":"🦀","squid":"🦑","octopus":"🐙","shrimp":"🦐","tropical_fish":"🐠","fish":"🐟","blowfish":"🐡","dolphin":"🐬","flipper":"🐬","shark":"🦈","whale":"🐳","whale2":"🐋","crocodile":"🐊","leopard":"🐆","tiger2":"🐅","water_buffalo":"🐃","ox":"🐂","cow2":"🐄","deer":"🦌","dromedary_camel":"🐪","camel":"🐫","elephant":"🐘","rhinoceros":"🦏","gorilla":"🦍","racehorse":"🐎","pig2":"🐖","goat":"🐐","ram":"🐏","sheep":"🐑","dog2":"🐕","poodle":"🐩","cat2":"🐈","rooster":"🐓","turkey":"🦃","dove":"🕊","rabbit2":"🐇","mouse2":"🐁","rat":"🐀","chipmunk":"🐿","feet":"🐾","paw_prints":"🐾","dragon":"🐉","dragon_face":"🐲","cactus":"🌵","christmas_tree":"🎄","evergreen_tree":"🌲","deciduous_tree":"🌳","palm_tree":"🌴","seedling":"🌱","herb":"🌿","shamrock":"☘️","four_leaf_clover":"🍀","bamboo":"🎍","tanabata_tree":"🎋","leaves":"🍃","fallen_leaf":"🍂","maple_leaf":"🍁","mushroom":"🍄","ear_of_rice":"🌾","bouquet":"💐","tulip":"🌷","rose":"🌹","wilted_flower":"🥀","sunflower":"🌻","blossom":"🌼","cherry_blossom":"🌸","hibiscus":"🌺","earth_americas":"🌎","earth_africa":"🌍","earth_asia":"🌏","full_moon":"🌕","waning_gibbous_moon":"🌖","last_quarter_moon":"🌗","waning_crescent_moon":"🌘","new_moon":"🌑","waxing_crescent_moon":"🌒","first_quarter_moon":"🌓","moon":"🌔","waxing_gibbous_moon":"🌔","new_moon_with_face":"🌚","full_moon_with_face":"🌝","sun_with_face":"🌞","first_quarter_moon_with_face":"🌛","last_quarter_moon_with_face":"🌜","crescent_moon":"🌙","dizzy":"💫","star":"⭐️","star2":"🌟","sparkles":"✨","zap":"⚡️","fire":"🔥","boom":"💥","collision":"💥","comet":"☄","sunny":"☀️","sun_behind_small_cloud":"🌤","partly_sunny":"⛅️","sun_behind_large_cloud":"🌥","sun_behind_rain_cloud":"🌦","rainbow":"🌈","cloud":"☁️","cloud_with_rain":"🌧","cloud_with_lightning_and_rain":"⛈","cloud_with_lightning":"🌩","cloud_with_snow":"🌨","snowman_with_snow":"☃️","snowman":"⛄️","snowflake":"❄️","wind_face":"🌬","dash":"💨","tornado":"🌪","fog":"🌫","ocean":"🌊","droplet":"💧","sweat_drops":"💦","umbrella":"☔️","green_apple":"🍏","apple":"🍎","pear":"🍐","tangerine":"🍊","orange":"🍊","mandarin":"🍊","lemon":"🍋","banana":"🍌","watermelon":"🍉","grapes":"🍇","strawberry":"🍓","melon":"🍈","cherries":"🍒","peach":"🍑","pineapple":"🍍","kiwi_fruit":"🥝","avocado":"🥑","tomato":"🍅","eggplant":"🍆","cucumber":"🥒","carrot":"🥕","corn":"🌽","hot_pepper":"🌶","potato":"🥔","sweet_potato":"🍠","chestnut":"🌰","peanuts":"🥜","honey_pot":"🍯","croissant":"🥐","bread":"🍞","baguette_bread":"🥖","cheese":"🧀","egg":"🥚","fried_egg":"🍳","bacon":"🥓","pancakes":"🥞","fried_shrimp":"🍤","poultry_leg":"🍗","meat_on_bone":"🍖","pizza":"🍕","hotdog":"🌭","hamburger":"🍔","fries":"🍟","stuffed_flatbread":"🥙","taco":"🌮","burrito":"🌯","green_salad":"🥗","shallow_pan_of_food":"🥘","spaghetti":"🍝","ramen":"🍜","stew":"🍲","fish_cake":"🍥","sushi":"🍣","bento":"🍱","curry":"🍛","rice":"🍚","rice_ball":"🍙","rice_cracker":"🍘","oden":"🍢","dango":"🍡","shaved_ice":"🍧","ice_cream":"🍨","icecream":"🍦","cake":"🍰","birthday":"🎂","custard":"🍮","lollipop":"🍭","candy":"🍬","chocolate_bar":"🍫","popcorn":"🍿","doughnut":"🍩","cookie":"🍪","milk_glass":"🥛","baby_bottle":"🍼","coffee":"☕️","tea":"🍵","sake":"🍶","beer":"🍺","beers":"🍻","clinking_glasses":"🥂","wine_glass":"🍷","tumbler_glass":"🥃","cocktail":"🍸","tropical_drink":"🍹","champagne":"🍾","spoon":"🥄","fork_and_knife":"🍴","plate_with_cutlery":"🍽","soccer":"⚽️","basketball":"🏀","football":"🏈","baseball":"⚾️","tennis":"🎾","volleyball":"🏐","rugby_football":"🏉","8ball":"🎱","ping_pong":"🏓","badminton":"🏸","goal_net":"🥅","ice_hockey":"🏒","field_hockey":"🏑","cricket":"🏏","golf":"⛳️","bow_and_arrow":"🏹","fishing_pole_and_fish":"🎣","boxing_glove":"🥊","martial_arts_uniform":"🥋","ice_skate":"⛸","ski":"🎿","skier":"⛷","snowboarder":"🏂","weight_lifting_woman":"🏋️‍♀️","weight_lifting_man":"🏋","person_fencing":"🤺","women_wrestling":"🤼‍♀","men_wrestling":"🤼‍♂","woman_cartwheeling":"🤸‍♀","man_cartwheeling":"🤸‍♂","basketball_woman":"⛹️‍♀️","basketball_man":"⛹","woman_playing_handball":"🤾‍♀","man_playing_handball":"🤾‍♂","golfing_woman":"🏌️‍♀️","golfing_man":"🏌","surfing_woman":"🏄‍♀","surfing_man":"🏄","surfer":"🏄","swimming_woman":"🏊‍♀","swimming_man":"🏊","swimmer":"🏊","woman_playing_water_polo":"🤽‍♀","man_playing_water_polo":"🤽‍♂","rowing_woman":"🚣‍♀","rowing_man":"🚣","rowboat":"🚣","horse_racing":"🏇","biking_woman":"🚴‍♀","biking_man":"🚴","bicyclist":"🚴","mountain_biking_woman":"🚵‍♀","mountain_biking_man":"🚵","mountain_bicyclist":"🚵","running_shirt_with_sash":"🎽","medal_sports":"🏅","medal_military":"🎖","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","trophy":"🏆","rosette":"🏵","reminder_ribbon":"🎗","ticket":"🎫","tickets":"🎟","circus_tent":"🎪","woman_juggling":"🤹‍♀","man_juggling":"🤹‍♂","performing_arts":"🎭","art":"🎨","clapper":"🎬","microphone":"🎤","headphones":"🎧","musical_score":"🎼","musical_keyboard":"🎹","drum":"🥁","saxophone":"🎷","trumpet":"🎺","guitar":"🎸","violin":"🎻","game_die":"🎲","dart":"🎯","bowling":"🎳","video_game":"🎮","slot_machine":"🎰","car":"🚗","red_car":"🚗","taxi":"🚕","blue_car":"🚙","bus":"🚌","trolleybus":"🚎","racing_car":"🏎","police_car":"🚓","ambulance":"🚑","fire_engine":"🚒","minibus":"🚐","truck":"🚚","articulated_lorry":"🚛","tractor":"🚜","kick_scooter":"🛴","bike":"🚲","motor_scooter":"🛵","motorcycle":"🏍","rotating_light":"🚨","oncoming_police_car":"🚔","oncoming_bus":"🚍","oncoming_automobile":"🚘","oncoming_taxi":"🚖","aerial_tramway":"🚡","mountain_cableway":"🚠","suspension_railway":"🚟","railway_car":"🚃","train":"🚋","mountain_railway":"🚞","monorail":"🚝","bullettrain_side":"🚄","bullettrain_front":"🚅","light_rail":"🚈","steam_locomotive":"🚂","train2":"🚆","metro":"🚇","tram":"🚊","station":"🚉","helicopter":"🚁","small_airplane":"🛩","airplane":"✈️","flight_departure":"🛫","flight_arrival":"🛬","rocket":"🚀","artificial_satellite":"🛰","seat":"💺","canoe":"🛶","boat":"⛵️","sailboat":"⛵️","motor_boat":"🛥","speedboat":"🚤","passenger_ship":"🛳","ferry":"⛴","ship":"🚢","anchor":"⚓️","construction":"🚧","fuelpump":"⛽️","busstop":"🚏","vertical_traffic_light":"🚦","traffic_light":"🚥","world_map":"🗺","moyai":"🗿","statue_of_liberty":"🗽","fountain":"⛲️","tokyo_tower":"🗼","european_castle":"🏰","japanese_castle":"🏯","stadium":"🏟","ferris_wheel":"🎡","roller_coaster":"🎢","carousel_horse":"🎠","parasol_on_ground":"⛱","beach_umbrella":"🏖","desert_island":"🏝","mountain":"⛰","mountain_snow":"🏔","mount_fuji":"🗻","volcano":"🌋","desert":"🏜","camping":"🏕","tent":"⛺️","railway_track":"🛤","motorway":"🛣","building_construction":"🏗","factory":"🏭","house":"🏠","house_with_garden":"🏡","houses":"🏘","derelict_house":"🏚","office":"🏢","department_store":"🏬","post_office":"🏣","european_post_office":"🏤","hospital":"🏥","bank":"🏦","hotel":"🏨","convenience_store":"🏪","school":"🏫","love_hotel":"🏩","wedding":"💒","classical_building":"🏛","church":"⛪️","mosque":"🕌","synagogue":"🕍","kaaba":"🕋","shinto_shrine":"⛩","japan":"🗾","rice_scene":"🎑","national_park":"🏞","sunrise":"🌅","sunrise_over_mountains":"🌄","stars":"🌠","sparkler":"🎇","fireworks":"🎆","city_sunrise":"🌇","city_sunset":"🌆","cityscape":"🏙","night_with_stars":"🌃","milky_way":"🌌","bridge_at_night":"🌉","foggy":"🌁","watch":"⌚️","iphone":"📱","calling":"📲","computer":"💻","keyboard":"⌨️","desktop_computer":"🖥","printer":"🖨","computer_mouse":"🖱","trackball":"🖲","joystick":"🕹","clamp":"🗜","minidisc":"💽","floppy_disk":"💾","cd":"💿","dvd":"📀","vhs":"📼","camera":"📷","camera_flash":"📸","video_camera":"📹","movie_camera":"🎥","film_projector":"📽","film_strip":"🎞","telephone_receiver":"📞","phone":"☎️","telephone":"☎️","pager":"📟","fax":"📠","tv":"📺","radio":"📻","studio_microphone":"🎙","level_slider":"🎚","control_knobs":"🎛","stopwatch":"⏱","timer_clock":"⏲","alarm_clock":"⏰","mantelpiece_clock":"🕰","hourglass":"⌛️","hourglass_flowing_sand":"⏳","satellite":"📡","battery":"🔋","electric_plug":"🔌","bulb":"💡","flashlight":"🔦","candle":"🕯","wastebasket":"🗑","oil_drum":"🛢","money_with_wings":"💸","dollar":"💵","yen":"💴","euro":"💶","pound":"💷","moneybag":"💰","credit_card":"💳","gem":"💎","balance_scale":"⚖️","wrench":"🔧","hammer":"🔨","hammer_and_pick":"⚒","hammer_and_wrench":"🛠","pick":"⛏","nut_and_bolt":"🔩","gear":"⚙️","chains":"⛓","gun":"🔫","bomb":"💣","hocho":"🔪","knife":"🔪","dagger":"🗡","crossed_swords":"⚔️","shield":"🛡","smoking":"🚬","coffin":"⚰️","funeral_urn":"⚱️","amphora":"🏺","crystal_ball":"🔮","prayer_beads":"📿","barber":"💈","alembic":"⚗️","telescope":"🔭","microscope":"🔬","hole":"🕳","pill":"💊","syringe":"💉","thermometer":"🌡","toilet":"🚽","potable_water":"🚰","shower":"🚿","bathtub":"🛁","bath":"🛀","bellhop_bell":"🛎","key":"🔑","old_key":"🗝","door":"🚪","couch_and_lamp":"🛋","bed":"🛏","sleeping_bed":"🛌","framed_picture":"🖼","shopping":"🛍","shopping_cart":"🛒","gift":"🎁","balloon":"🎈","flags":"🎏","ribbon":"🎀","confetti_ball":"🎊","tada":"🎉","dolls":"🎎","izakaya_lantern":"🏮","lantern":"🏮","wind_chime":"🎐","email":"✉️","envelope":"✉️","envelope_with_arrow":"📩","incoming_envelope":"📨","e-mail":"📧","love_letter":"💌","inbox_tray":"📥","outbox_tray":"📤","package":"📦","label":"🏷","mailbox_closed":"📪","mailbox":"📫","mailbox_with_mail":"📬","mailbox_with_no_mail":"📭","postbox":"📮","postal_horn":"📯","scroll":"📜","page_with_curl":"📃","page_facing_up":"📄","bookmark_tabs":"📑","bar_chart":"📊","chart_with_upwards_trend":"📈","chart_with_downwards_trend":"📉","spiral_notepad":"🗒","spiral_calendar":"🗓","calendar":"📆","date":"📅","card_index":"📇","card_file_box":"🗃","ballot_box":"🗳","file_cabinet":"🗄","clipboard":"📋","file_folder":"📁","open_file_folder":"📂","card_index_dividers":"🗂","newspaper_roll":"🗞","newspaper":"📰","notebook":"📓","notebook_with_decorative_cover":"📔","ledger":"📒","closed_book":"📕","green_book":"📗","blue_book":"📘","orange_book":"📙","books":"📚","book":"📖","open_book":"📖","bookmark":"🔖","link":"🔗","paperclip":"📎","paperclips":"🖇","triangular_ruler":"📐","straight_ruler":"📏","pushpin":"📌","round_pushpin":"📍","scissors":"✂️","pen":"🖊","fountain_pen":"🖋","black_nib":"✒️","paintbrush":"🖌","crayon":"🖍","memo":"📝","pencil":"📝","pencil2":"✏️","mag":"🔍","mag_right":"🔎","lock_with_ink_pen":"🔏","closed_lock_with_key":"🔐","lock":"🔒","unlock":"🔓","heart":"❤️","yellow_heart":"💛","green_heart":"💚","blue_heart":"💙","purple_heart":"💜","black_heart":"🖤","broken_heart":"💔","heavy_heart_exclamation":"❣️","two_hearts":"💕","revolving_hearts":"💞","heartbeat":"💓","heartpulse":"💗","sparkling_heart":"💖","cupid":"💘","gift_heart":"💝","heart_decoration":"💟","peace_symbol":"☮️","latin_cross":"✝️","star_and_crescent":"☪️","om":"🕉","wheel_of_dharma":"☸️","star_of_david":"✡️","six_pointed_star":"🔯","menorah":"🕎","yin_yang":"☯️","orthodox_cross":"☦️","place_of_worship":"🛐","ophiuchus":"⛎","aries":"♈️","taurus":"♉️","gemini":"♊️","cancer":"♋️","leo":"♌️","virgo":"♍️","libra":"♎️","scorpius":"♏️","sagittarius":"♐️","capricorn":"♑️","aquarius":"♒️","pisces":"♓️","id":"🆔","atom_symbol":"⚛️","accept":"🉑","radioactive":"☢️","biohazard":"☣️","mobile_phone_off":"📴","vibration_mode":"📳","eight_pointed_black_star":"✴️","vs":"🆚","white_flower":"💮","ideograph_advantage":"🉐","secret":"㊙️","congratulations":"㊗️","u6e80":"🈵","a":"🅰️","b":"🅱️","ab":"🆎","cl":"🆑","o2":"🅾️","sos":"🆘","x":"❌","o":"⭕️","stop_sign":"🛑","no_entry":"⛔️","name_badge":"📛","no_entry_sign":"🚫","anger":"💢","hotsprings":"♨️","no_pedestrians":"🚷","do_not_litter":"🚯","no_bicycles":"🚳","non-potable_water":"🚱","underage":"🔞","no_mobile_phones":"📵","no_smoking":"🚭","exclamation":"❗️","heavy_exclamation_mark":"❗️","grey_exclamation":"❕","question":"❓","grey_question":"❔","bangbang":"‼️","interrobang":"⁉️","low_brightness":"🔅","high_brightness":"🔆","part_alternation_mark":"〽️","warning":"⚠️","children_crossing":"🚸","trident":"🔱","fleur_de_lis":"⚜️","beginner":"🔰","recycle":"♻️","white_check_mark":"✅","chart":"💹","sparkle":"❇️","eight_spoked_asterisk":"✳️","negative_squared_cross_mark":"❎","globe_with_meridians":"🌐","diamond_shape_with_a_dot_inside":"💠","m":"Ⓜ️","cyclone":"🌀","zzz":"💤","atm":"🏧","wc":"🚾","wheelchair":"♿️","parking":"🅿️","sa":"🈂️","passport_control":"🛂","customs":"🛃","baggage_claim":"🛄","left_luggage":"🛅","mens":"🚹","womens":"🚺","baby_symbol":"🚼","restroom":"🚻","put_litter_in_its_place":"🚮","cinema":"🎦","signal_strength":"📶","koko":"🈁","symbols":"🔣","information_source":"ℹ️","abc":"🔤","abcd":"🔡","capital_abcd":"🔠","ng":"🆖","ok":"🆗","up":"🆙","cool":"🆒","new":"🆕","free":"🆓","zero":"0️⃣","one":"1️⃣","two":"2️⃣","three":"3️⃣","four":"4️⃣","five":"5️⃣","six":"6️⃣","seven":"7️⃣","eight":"8️⃣","nine":"9️⃣","keycap_ten":"🔟","hash":"#️⃣","asterisk":"*️⃣","arrow_forward":"▶️","pause_button":"⏸","play_or_pause_button":"⏯","stop_button":"⏹","record_button":"⏺","next_track_button":"⏭","previous_track_button":"⏮","fast_forward":"⏩","rewind":"⏪","arrow_double_up":"⏫","arrow_double_down":"⏬","arrow_backward":"◀️","arrow_up_small":"🔼","arrow_down_small":"🔽","arrow_right":"➡️","arrow_left":"⬅️","arrow_up":"⬆️","arrow_down":"⬇️","arrow_upper_right":"↗️","arrow_lower_right":"↘️","arrow_lower_left":"↙️","arrow_upper_left":"↖️","arrow_up_down":"↕️","left_right_arrow":"↔️","arrow_right_hook":"↪️","leftwards_arrow_with_hook":"↩️","arrow_heading_up":"⤴️","arrow_heading_down":"⤵️","twisted_rightwards_arrows":"🔀","repeat":"🔁","repeat_one":"🔂","arrows_counterclockwise":"🔄","arrows_clockwise":"🔃","musical_note":"🎵","notes":"🎶","heavy_plus_sign":"➕","heavy_minus_sign":"➖","heavy_division_sign":"➗","heavy_multiplication_x":"✖️","heavy_dollar_sign":"💲","currency_exchange":"💱","tm":"™️","copyright":"©️","registered":"®️","wavy_dash":"〰️","curly_loop":"➰","loop":"➿","end":"🔚","back":"🔙","on":"🔛","top":"🔝","soon":"🔜","heavy_check_mark":"✔️","ballot_box_with_check":"☑️","radio_button":"🔘","white_circle":"⚪️","black_circle":"⚫️","red_circle":"🔴","large_blue_circle":"🔵","small_red_triangle":"🔺","small_red_triangle_down":"🔻","small_orange_diamond":"🔸","small_blue_diamond":"🔹","large_orange_diamond":"🔶","large_blue_diamond":"🔷","white_square_button":"🔳","black_square_button":"🔲","black_small_square":"▪️","white_small_square":"▫️","black_medium_small_square":"◾️","white_medium_small_square":"◽️","black_medium_square":"◼️","white_medium_square":"◻️","black_large_square":"⬛️","white_large_square":"⬜️","speaker":"🔈","mute":"🔇","sound":"🔉","loud_sound":"🔊","bell":"🔔","no_bell":"🔕","mega":"📣","loudspeaker":"📢","eye_speech_bubble":"👁‍🗨","speech_balloon":"💬","thought_balloon":"💭","right_anger_bubble":"🗯","spades":"♠️","clubs":"♣️","hearts":"♥️","diamonds":"♦️","black_joker":"🃏","flower_playing_cards":"🎴","mahjong":"🀄️","clock1":"🕐","clock2":"🕑","clock3":"🕒","clock4":"🕓","clock5":"🕔","clock6":"🕕","clock7":"🕖","clock8":"🕗","clock9":"🕘","clock10":"🕙","clock11":"🕚","clock12":"🕛","clock130":"🕜","clock230":"🕝","clock330":"🕞","clock430":"🕟","clock530":"🕠","clock630":"🕡","clock730":"🕢","clock830":"🕣","clock930":"🕤","clock1030":"🕥","clock1130":"🕦","clock1230":"🕧","white_flag":"🏳️","black_flag":"🏴","checkered_flag":"🏁","triangular_flag_on_post":"🚩","rainbow_flag":"🏳️‍🌈","afghanistan":"🇦🇫","aland_islands":"🇦🇽","albania":"🇦🇱","algeria":"🇩🇿","american_samoa":"🇦🇸","andorra":"🇦🇩","angola":"🇦🇴","anguilla":"🇦🇮","antarctica":"🇦🇶","antigua_barbuda":"🇦🇬","argentina":"🇦🇷","armenia":"🇦🇲","aruba":"🇦🇼","australia":"🇦🇺","austria":"🇦🇹","azerbaijan":"🇦🇿","bahamas":"🇧🇸","bahrain":"🇧🇭","bangladesh":"🇧🇩","barbados":"🇧🇧","belarus":"🇧🇾","belgium":"🇧🇪","belize":"🇧🇿","benin":"🇧🇯","bermuda":"🇧🇲","bhutan":"🇧🇹","bolivia":"🇧🇴","caribbean_netherlands":"🇧🇶","bosnia_herzegovina":"🇧🇦","botswana":"🇧🇼","brazil":"🇧🇷","british_indian_ocean_territory":"🇮🇴","british_virgin_islands":"🇻🇬","brunei":"🇧🇳","bulgaria":"🇧🇬","burkina_faso":"🇧🇫","burundi":"🇧🇮","cape_verde":"🇨🇻","cambodia":"🇰🇭","cameroon":"🇨🇲","canada":"🇨🇦","canary_islands":"🇮🇨","cayman_islands":"🇰🇾","central_african_republic":"🇨🇫","chad":"🇹🇩","chile":"🇨🇱","cn":"🇨🇳","christmas_island":"🇨🇽","cocos_islands":"🇨🇨","colombia":"🇨🇴","comoros":"🇰🇲","congo_brazzaville":"🇨🇬","congo_kinshasa":"🇨🇩","cook_islands":"🇨🇰","costa_rica":"🇨🇷","cote_divoire":"🇨🇮","croatia":"🇭🇷","cuba":"🇨🇺","curacao":"🇨🇼","cyprus":"🇨🇾","czech_republic":"🇨🇿","denmark":"🇩🇰","djibouti":"🇩🇯","dominica":"🇩🇲","dominican_republic":"🇩🇴","ecuador":"🇪🇨","egypt":"🇪🇬","el_salvador":"🇸🇻","equatorial_guinea":"🇬🇶","eritrea":"🇪🇷","estonia":"🇪🇪","ethiopia":"🇪🇹","eu":"🇪🇺","european_union":"🇪🇺","falkland_islands":"🇫🇰","faroe_islands":"🇫🇴","fiji":"🇫🇯","finland":"🇫🇮","fr":"🇫🇷","french_guiana":"🇬🇫","french_polynesia":"🇵🇫","french_southern_territories":"🇹🇫","gabon":"🇬🇦","gambia":"🇬🇲","georgia":"🇬🇪","de":"🇩🇪","ghana":"🇬🇭","gibraltar":"🇬🇮","greece":"🇬🇷","greenland":"🇬🇱","grenada":"🇬🇩","guadeloupe":"🇬🇵","guam":"🇬🇺","guatemala":"🇬🇹","guernsey":"🇬🇬","guinea":"🇬🇳","guinea_bissau":"🇬🇼","guyana":"🇬🇾","haiti":"🇭🇹","honduras":"🇭🇳","hong_kong":"🇭🇰","hungary":"🇭🇺","iceland":"🇮🇸","india":"🇮🇳","indonesia":"🇮🇩","iran":"🇮🇷","iraq":"🇮🇶","ireland":"🇮🇪","isle_of_man":"🇮🇲","israel":"🇮🇱","it":"🇮🇹","jamaica":"🇯🇲","jp":"🇯🇵","crossed_flags":"🎌","jersey":"🇯🇪","jordan":"🇯🇴","kazakhstan":"🇰🇿","kenya":"🇰🇪","kiribati":"🇰🇮","kosovo":"🇽🇰","kuwait":"🇰🇼","kyrgyzstan":"🇰🇬","laos":"🇱🇦","latvia":"🇱🇻","lebanon":"🇱🇧","lesotho":"🇱🇸","liberia":"🇱🇷","libya":"🇱🇾","liechtenstein":"🇱🇮","lithuania":"🇱🇹","luxembourg":"🇱🇺","macau":"🇲🇴","macedonia":"🇲🇰","madagascar":"🇲🇬","malawi":"🇲🇼","malaysia":"🇲🇾","maldives":"🇲🇻","mali":"🇲🇱","malta":"🇲🇹","marshall_islands":"🇲🇭","martinique":"🇲🇶","mauritania":"🇲🇷","mauritius":"🇲🇺","mayotte":"🇾🇹","mexico":"🇲🇽","micronesia":"🇫🇲","moldova":"🇲🇩","monaco":"🇲🇨","mongolia":"🇲🇳","montenegro":"🇲🇪","montserrat":"🇲🇸","morocco":"🇲🇦","mozambique":"🇲🇿","myanmar":"🇲🇲","namibia":"🇳🇦","nauru":"🇳🇷","nepal":"🇳🇵","netherlands":"🇳🇱","new_caledonia":"🇳🇨","new_zealand":"🇳🇿","nicaragua":"🇳🇮","niger":"🇳🇪","nigeria":"🇳🇬","niue":"🇳🇺","norfolk_island":"🇳🇫","northern_mariana_islands":"🇲🇵","north_korea":"🇰🇵","norway":"🇳🇴","oman":"🇴🇲","pakistan":"🇵🇰","palau":"🇵🇼","palestinian_territories":"🇵🇸","panama":"🇵🇦","papua_new_guinea":"🇵🇬","paraguay":"🇵🇾","peru":"🇵🇪","philippines":"🇵🇭","pitcairn_islands":"🇵🇳","poland":"🇵🇱","portugal":"🇵🇹","puerto_rico":"🇵🇷","qatar":"🇶🇦","reunion":"🇷🇪","romania":"🇷🇴","ru":"🇷🇺","rwanda":"🇷🇼","st_barthelemy":"🇧🇱","st_helena":"🇸🇭","st_kitts_nevis":"🇰🇳","st_lucia":"🇱🇨","st_pierre_miquelon":"🇵🇲","st_vincent_grenadines":"🇻🇨","samoa":"🇼🇸","san_marino":"🇸🇲","sao_tome_principe":"🇸🇹","saudi_arabia":"🇸🇦","senegal":"🇸🇳","serbia":"🇷🇸","seychelles":"🇸🇨","sierra_leone":"🇸🇱","singapore":"🇸🇬","sint_maarten":"🇸🇽","slovakia":"🇸🇰","slovenia":"🇸🇮","solomon_islands":"🇸🇧","somalia":"🇸🇴","south_africa":"🇿🇦","south_georgia_south_sandwich_islands":"🇬🇸","kr":"🇰🇷","south_sudan":"🇸🇸","es":"🇪🇸","sri_lanka":"🇱🇰","sudan":"🇸🇩","suriname":"🇸🇷","swaziland":"🇸🇿","sweden":"🇸🇪","switzerland":"🇨🇭","syria":"🇸🇾","taiwan":"🇹🇼","tajikistan":"🇹🇯","tanzania":"🇹🇿","thailand":"🇹🇭","timor_leste":"🇹🇱","togo":"🇹🇬","tokelau":"🇹🇰","tonga":"🇹🇴","trinidad_tobago":"🇹🇹","tunisia":"🇹🇳","tr":"🇹🇷","turkmenistan":"🇹🇲","turks_caicos_islands":"🇹🇨","tuvalu":"🇹🇻","uganda":"🇺🇬","ukraine":"🇺🇦","united_arab_emirates":"🇦🇪","gb":"🇬🇧","uk":"🇬🇧","us":"🇺🇸","us_virgin_islands":"🇻🇮","uruguay":"🇺🇾","uzbekistan":"🇺🇿","vanuatu":"🇻🇺","vatican_city":"🇻🇦","venezuela":"🇻🇪","vietnam":"🇻🇳","wallis_futuna":"🇼🇫","western_sahara":"🇪🇭","yemen":"🇾🇪","zambia":"🇿🇲","zimbabwe":"🇿🇼"}')},function(e,t,n){"use strict";e.exports={angry:[">:(",">:-("],blush:[':")',':-")'],broken_heart:["0&&!s.test(u[i-1]))return;if(i+r.lengthl&&((a=new o("text","",0)).content=e.slice(l,i),c.push(a)),(a=new o("emoji","",0)).markup=d,a.content=t[d],c.push(a),l=i+r.length}),l=0;t--)"link_open"!==(s=a[t]).type&&"link_close"!==s.type||"auto"===s.info&&(u-=s.nesting),"text"===s.type&&0===u&&r.test(s.content)&&(c[n].children=a=o(a,t,l(s.content,s.level,e.Token)))}}},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.defs;e.enabled.length&&(n=Object.keys(n).reduce(function(t,r){return e.enabled.indexOf(r)>=0&&(t[r]=n[r]),t},{})),t=Object.keys(e.shortcuts).reduce(function(t,r){return n[r]?Array.isArray(e.shortcuts[r])?(e.shortcuts[r].forEach(function(e){t[e]=r}),t):(t[e.shortcuts[r]]=r,t):t},{});var r=Object.keys(n).map(function(e){return":"+e+":"}).concat(Object.keys(t)).sort().reverse().map(function(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}).join("|"),i=RegExp(r),o=RegExp(r,"g");return{defs:n,shortcuts:t,scanRE:i,replaceRE:o}}},function(e,t,n){"use strict";var r=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;function i(e,t){var n,i,o=e.posMax,a=e.pos;if(126!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=o)return!1;for(e.pos=a+1;e.pos?@[\]^_`{|}~-])/g;function i(e,t){var n,i,o=e.posMax,a=e.pos;if(94!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=o)return!1;for(e.pos=a+1;e.pos=o||126!==(r=e.src.charCodeAt(i++))&&58!==r||i===(n=e.skipSpaces(i))||n>=o?-1:i}e.block.ruler.before("paragraph","deflist",function(e,r,i,o){var a,s,l,c,u,d,p,f,h,g,m,_,v,y,b,k,w,x,C,S;if(o)return!(e.ddIndent<0)&&n(e,r)>=0;if((h=r+1)>=i)return!1;if(e.isEmpty(h)&&++h>=i)return!1;if(e.sCount[h]1&&e.isEmpty(e.line-1),e.tShift[l]=b,e.sCount[l]=y,e.tight=k,e.parentType=v,e.blkIndent=_,e.ddIndent=m,S=e.push("dd_close","dd",-1),u[1]=h=e.line,h>=i)break e;if(e.sCount[h]=i)break;if(c=h,e.isEmpty(c))break;if(e.sCount[c]=i)break;if(e.isEmpty(l)&&l++,l>=i)break;if(e.sCount[l]=u)return!1;if(42!==e.src.charCodeAt(c++))return!1;if(91!==e.src.charCodeAt(c++))return!1;for(s=c;c^`|~".split("").map(t).join("")+"])("+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(t).join("|")+")($|"+r+"|"+i+"|["+" \r\n$+<=>^`|~".split("").map(t).join("")+"])",f=new RegExp(g,"g"),a=0,s=v.length;a=0;o--)if("text"===(_=l[o]).type&&(p=0,u=_.content,f.lastIndex=0,d=[],m.test(u))){for(;h=f.exec(u);)(h.index>0||h[1].length>0)&&((c=new e.Token("text","",0)).content=u.slice(p,h.index+h[1].length),d.push(c)),(c=new e.Token("abbr_open","abbr",1)).attrs=[["title",e.env.abbreviations[":"+h[2]]]],d.push(c),(c=new e.Token("text","",0)).content=h[2],d.push(c),c=new e.Token("abbr_close","abbr",-1),d.push(c),f.lastIndex-=h[3].length,p=f.lastIndex;d.length&&(p0&&(n+=":"+e[t].meta.subId),"["+n+"]"}function o(e,t,n,r,i){var o=i.rules.footnote_anchor_name(e,t,n,r,i),a=i.rules.footnote_caption(e,t,n,r,i),s=o;return e[t].meta.subId>0&&(s+=":"+e[t].meta.subId),''+a+""}function a(e,t,n){return(n.xhtmlOut?'
\n':'
\n')+'
\n
    \n'}function s(){return"
\n
\n"}function l(e,t,n,r,i){var o=i.rules.footnote_anchor_name(e,t,n,r,i);return e[t].meta.subId>0&&(o+=":"+e[t].meta.subId),'
  • '}function c(){return"
  • \n"}function u(e,t,n,r,i){var o=i.rules.footnote_anchor_name(e,t,n,r,i);return e[t].meta.subId>0&&(o+=":"+e[t].meta.subId),' ↩︎'}e.exports=function(e){var t=e.helpers.parseLinkLabel,n=e.utils.isSpace;e.renderer.rules.footnote_ref=o,e.renderer.rules.footnote_block_open=a,e.renderer.rules.footnote_block_close=s,e.renderer.rules.footnote_open=l,e.renderer.rules.footnote_close=c,e.renderer.rules.footnote_anchor=u,e.renderer.rules.footnote_caption=i,e.renderer.rules.footnote_anchor_name=r,e.block.ruler.before("reference","footnote_def",function(e,t,r,i){var o,a,s,l,c,u,d,p,f,h,g,m=e.bMarks[t]+e.tShift[t],_=e.eMarks[t];if(m+4>_)return!1;if(91!==e.src.charCodeAt(m))return!1;if(94!==e.src.charCodeAt(m+1))return!1;for(c=m+2;c<_;c++){if(32===e.src.charCodeAt(c))return!1;if(93===e.src.charCodeAt(c))break}if(c===m+2)return!1;if(c+1>=_||58!==e.src.charCodeAt(++c))return!1;if(i)return!0;for(c++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(m+2,c-2),e.env.footnotes.refs[":"+u]=-1,(d=new e.Token("footnote_reference_open","",1)).meta={label:u},d.level=e.level++,e.tokens.push(d),o=e.bMarks[t],a=e.tShift[t],s=e.sCount[t],l=e.parentType,g=c,p=f=e.sCount[t]+c-(e.bMarks[t]+e.tShift[t]);c<_&&(h=e.src.charCodeAt(c),n(h));)9===h?f+=4-f%4:f++,c++;return e.tShift[t]=c-g,e.sCount[t]=f-p,e.bMarks[t]=g,e.blkIndent+=4,e.parentType="footnote",e.sCount[t]=s)&&94===e.src.charCodeAt(l)&&91===e.src.charCodeAt(l+1)&&(r=l+2,!((i=t(e,l+1))<0)&&(n||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.md.inline.parse(e.src.slice(r,i),e.md,e.env,a=[]),e.push("footnote_ref","",0).meta={id:o},e.env.footnotes.list[o]={content:e.src.slice(r,i),tokens:a}),e.pos=i+1,e.posMax=s,!0))}),e.inline.ruler.after("footnote_inline","footnote_ref",function(e,t){var n,r,i,o,a=e.posMax,s=e.pos;if(s+3>a)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(s))return!1;if(94!==e.src.charCodeAt(s+1))return!1;for(r=s+2;r=a)&&(r++,n=e.src.slice(s+2,r-1),void 0!==e.env.footnotes.refs[":"+n]&&(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+n]<0?(i=e.env.footnotes.list.length,e.env.footnotes.list[i]={label:n,count:0},e.env.footnotes.refs[":"+n]=i):i=e.env.footnotes.refs[":"+n],o=e.env.footnotes.list[i].count,e.env.footnotes.list[i].count++,e.push("footnote_ref","",0).meta={id:i,subId:o,label:n}),e.pos=r,e.posMax=a,!0))}),e.core.ruler.after("inline","footnote_tail",function(e){var t,n,r,i,o,a,s,l,c,u,d=!1,p={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return"footnote_reference_open"===e.type?(d=!0,c=[],u=e.meta.label,!1):"footnote_reference_close"===e.type?(d=!1,p[":"+u]=c,!1):(d&&c.push(e),!d)}),e.env.footnotes.list)){for(a=e.env.footnotes.list,s=new e.Token("footnote_block_open","",1),e.tokens.push(s),t=0,n=a.length;t0?a[t].count:1,r=0;r=0;r--)if(e[r].level===n)return r;return-1}function s(e,t){return"inline"===e[t].type&&function(e){return"paragraph_open"===e.type}(e[t-1])&&function(e){return"list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function l(e,t){if(e.children.unshift(function(e,t){var r=new t("html_inline","",0),i=n?' disabled="" ':"";return 0===e.content.indexOf("[ ] ")?r.content='':0!==e.content.indexOf("[x] ")&&0!==e.content.indexOf("[X] ")||(r.content=''),r}(e,t)),e.children[1].content=e.children[1].content.slice(3),e.content=e.content.slice(3),r)if(i){e.children.pop();var o="task-item-"+Math.ceil(1e7*Math.random()-1e3);e.children[0].content=e.children[0].content.slice(0,-1)+' id="'+o+'">',e.children.push(function(e,t,n){var r=new n("html_inline","",0);return r.content='",r.attrs=[{for:t}],r}(e.content,o,t))}else e.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="",t}(t))}e.exports=function(e,t){t&&(n=!t.enabled,r=!!t.label,i=!!t.labelAfter),e.core.ruler.after("inline","github-task-lists",function(e){for(var t=e.tokens,r=2;r=s)&&!((v=e.bMarks[u]+e.tShift[u])<(y=e.eMarks[u])&&e.sCount[u]=4)){for(c=v+1;c<=y&&r[(c-v)%o]===e.src[c];c++);if(!(Math.floor((c-v)/o)':""},e.renderer.rules.toc_open=function(e,t){return""},e.renderer.rules.toc_close=function(e,t){return""},e.renderer.rules.toc_body=function(e,n){for(var i=[],o=t.tokens,a=o.length,s=0;su)for(var n=e.level-u,r=0;r"),u++;else if(e.level"),u--;return(t=t.concat(['
  • ',e.content,"
  • "])).join("")});return"

    "+e[n].content+"

    "+d.join("")+new Array(u+1).join("")},e.core.ruler.push("grab_state",function(e){t=e}),e.inline.ruler.after("emphasis","toc",function(e,t){for(;e.src.indexOf("\n")>=0&&e.src.indexOf("\n")1&&(o=i.pop()),r.content=o,r=e.push("toc_close","toc",-1);var a=0,s=e.src.indexOf("\n");return a=-1!==s?e.pos+s:e.pos+e.posMax+1,e.pos=a,!0})}},function(e,t){e.exports=function(e,t){void 0===(t=t||{}).highlighted&&(t.highlighted=!0),void 0===t.hljs&&(t.hljs="auto"),"function"!=typeof t.langCheck&&(t.langCheck=function(){}),e.options.highlight=function(n,r){var i=t.hljs;if("auto"===t.hljs&&(i=window.hljs),t.highlighted&&r&&i){if(i.getLanguage(r))return'
    '+i.highlight(r,n,!0).value+"
    ";"function"==typeof t.langCheck&&t.langCheck(r)}return'
    '+e.utils.escapeHtml(n)+"
    "}}},function(e,t,n){"use strict"; -/** - * @Author: chenhuachao - * @Date: 2017-11-26T15:57:48+08:00 - * @Email: chenhuachaoxyz@gmail.com - * @Filename: index.js - * @Last modified by: chc - * @Last modified time: 2017-11-26T16:00:49+08:00 - * @License: MIT - * @Copyright: 2017 - */var r=null;function i(e,t){var n,r,i=e.posMax,o=!0,a=!0;return n=t>0?e.src.charCodeAt(t-1):-1,r=t+1<=i?e.src.charCodeAt(t+1):-1,(32===n||9===n||r>=48&&r<=57)&&(a=!1),32!==r&&9!==r||(o=!1),{can_open:o,can_close:a}}function o(e,t){if(!r&&window.katex&&(r=window.katex),!r)return!1;var n,o,a,s;if("$"!==e.src[e.pos])return!1;if(!i(e,e.pos).can_open)return t||(e.pending+="$"),e.pos+=1,!0;for(o=n=e.pos+1;-1!==(o=e.src.indexOf("$",o));){for(s=o-1;"\\"===e.src[s];)s-=1;if((o-s)%2==1)break;o+=1}return-1===o?(t||(e.pending+="$"),e.pos=n,!0):o-n==0?(t||(e.pending+="$$"),e.pos=n+1,!0):i(e,o).can_close?(t||((a=e.push("math_inline","math",0)).markup="$",a.content=e.src.slice(n,o)),e.pos=o+1,!0):(t||(e.pending+="$"),e.pos=n,!0)}function a(e,t,n,i){if(!r&&window.katex&&(r=window.katex),!r)return!1;var o,a,s,l,c,u=!1,d=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(d+2>p)return!1;if("$$"!==e.src.slice(d,d+2))return!1;if(d+=2,o=e.src.slice(d,p),i)return!0;for("$$"===o.trim().slice(-2)&&(o=o.trim().slice(0,-2),u=!0),s=t;!u&&!(++s>=n)&&!((d=e.bMarks[s]+e.tShift[s])<(p=e.eMarks[s])&&e.tShift[s]"+r.renderToString(e,t)+"

    "}catch(n){return t.throwOnError&&console.log(n),e}}(e[n].content)+"\n"}}},function(e,t){ -/** - * @Author: HuaChao Chen - * @Date: 2017-06-12T21:06:58+08:00 - * @Email: chenhuachaoxyz@gmail.com - * @Filename: index.js - * @Last modified by: chc - * @Last modified time: 2017-06-12T21:18:15+08:00 - * @License: MIT - * @Copyright: 2017 - */ -e.exports=function(e,t){e.image_add=function(t,n){e.__image instanceof Object||(e.__image={}),e.__image[t]=n},e.image_del=function(t){e.__image instanceof Object||(e.__image={}),delete e.__image[t]};var n=e.renderer.rules.image;e.renderer.rules.image=function(t,r,i,o,a){var s=t[r].attrs;if(e.__image instanceof Object)for(var l=0;la)return t.charCoords(e,"local")[n?"top":"bottom"];var i=t.heightAtLine(l,"local");return i+(n?0:l.height)}var u=t.lastLine();if(t.display.barWidth)for(var d,p=0;pu)){var h=d||c(f.from,!0)*n,g=c(f.to,!1)*n;while(pu)break;if(d=c(i[p+1].from,!0)*n,d>g+.9)break;f=i[++p],g=c(f.to,!1)*n}if(g!=h){var m=Math.max(g-h,3),_=r.appendChild(document.createElement("div"));_.style.cssText="position: absolute; right: 0px; width: "+Math.max(t.display.barWidth-1,2)+"px; top: "+(h+this.buttonHeight)+"px; height: "+m+"px",_.className=this.options.className,f.id&&_.setAttribute("annotation-id",f.id)}}}this.div.textContent="",this.div.appendChild(r)},t.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("changes",this.changeHandler),this.div.parentNode.removeChild(this.div)}})},53793:function(e,t,n){"use strict";t.vT=t.ry=t.lM=t.j9=t.XE=void 0;var r=n(90800),i=n(74381),o=n(4413),a=n(24419),s=n(98468);function l(e){var n=a.FolderNamesToIcon[e];return n||t.XE}t.XE="default_folder.svg",t.j9="default_file.svg",t.lM=l;var c=void 0,u=void 0;function d(e){var n=o.FileNamesToIcon[e];if(void 0!==n)return n;var a=e.split(".");if(a.length>2){var l=a.pop(),d=a.pop(),p=i.FileExtensions2ToIcon[d+"."+l];if(void 0!==p)return p;if(!l)return t.j9;if(l===c)return u;var f=r.FileExtensions1ToIcon[l];if(void 0!==f)return c=l,u=f,f}else{var h=a.pop();if(!h)return t.j9;if(h===c)return u;var g=r.FileExtensions1ToIcon[h];if(void 0!==g)return c=h,u=g,g}var m=e.split(".").pop();if(void 0!==m){var _=s.LanguagesToIcon[m];if(_)return _}return t.j9}function p(e){return l(e).split(".").shift()+"_opened.svg"}t.ry=d,t.vT=p},53920:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_vscode_opened.495c5b54.svg"},53957:function(e,t,n){"use strict";n.d(t,{A:function(){return d}});var r=n(20641); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const i=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),o=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),a=e=>{const t=o(e);return t.charAt(0).toUpperCase()+t.slice(1)},s=(...e)=>e.filter((e,t,n)=>Boolean(e)&&""!==e.trim()&&n.indexOf(e)===t).join(" ").trim(),l=e=>""===e; -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"}; -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const u=({name:e,iconNode:t,absoluteStrokeWidth:n,"absolute-stroke-width":o,strokeWidth:u,"stroke-width":d,size:p=c.width,color:f=c.stroke,...h},{slots:g})=>(0,r.h)("svg",{...c,...h,width:p,height:p,stroke:f,"stroke-width":l(n)||l(o)||!0===n||!0===o?24*Number(u||d||c["stroke-width"])/Number(p):u||d||c["stroke-width"],class:s("lucide",h.class,...e?[`lucide-${i(a(e))}-icon`,`lucide-${i(e)}`]:["lucide-icon"])},[...t.map(e=>(0,r.h)(...e)),...g.default?[g.default()]:[]]),d=(e,t)=>(n,{slots:i,attrs:o})=>(0,r.h)(u,{...o,...n,iconNode:t,name:e},i)},55002:function(e){"use strict";e.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},55169:function(e,t,n){"use strict";var r=n(3238),i=TypeError;e.exports=function(e){if(r(e))throw new i("ArrayBuffer is detached");return e}},55218:function(e,t,n){(function(e){e(n(15237))})(function(e){var t={pairs:"()[]{}''\"\"",closeBefore:")]}'\":;>",triples:"",explode:"[]{}"},n=e.Pos;function r(e,n){return"pairs"==n&&"string"==typeof e?e:"object"==typeof e&&null!=e[n]?e[n]:t[n]}e.defineOption("autoCloseBrackets",!1,function(t,n,a){a&&a!=e.Init&&(t.removeKeyMap(i),t.state.closeBrackets=null),n&&(o(r(n,"pairs")),t.state.closeBrackets=n,t.addKeyMap(i))});var i={Backspace:l,Enter:c};function o(e){for(var t=0;t=0;l--){var u=a[l].head;t.replaceRange("",n(u.line,u.ch-1),n(u.line,u.ch+1),"+delete")}}function c(t){var n=s(t),i=n&&r(n,"explode");if(!i||t.getOption("disableInput"))return e.Pass;for(var o=t.listSelections(),a=0;a0?{line:a.head.line,ch:a.head.ch+t}:{line:a.head.line-1};n.push({anchor:s,head:s})}e.setSelections(n,i)}function d(t){var r=e.cmpPos(t.anchor,t.head)>0;return{anchor:new n(t.anchor.line,t.anchor.ch+(r?-1:1)),head:new n(t.head.line,t.head.ch+(r?1:-1))}}function p(t,i){var o=s(t);if(!o||t.getOption("disableInput"))return e.Pass;var a=r(o,"pairs"),l=a.indexOf(i);if(-1==l)return e.Pass;for(var c,p=r(o,"closeBefore"),f=r(o,"triples"),g=a.charAt(l+1)==i,m=t.listSelections(),_=l%2==0,v=0;v1&&f.indexOf(i)>=0&&t.getRange(n(k.line,k.ch-2),k)==i+i){if(k.ch>2&&/\bstring/.test(t.getTokenTypeAt(n(k.line,k.ch-2))))return e.Pass;y="addFour"}else if(g){var x=0==k.ch?" ":t.getRange(n(k.line,k.ch-1),k);if(e.isWordChar(w)||x==i||e.isWordChar(x))return e.Pass;y="both"}else{if(!_||!(0===w.length||/\s/.test(w)||p.indexOf(w)>-1))return e.Pass;y="both"}else y=g&&h(t,k)?"both":f.indexOf(i)>=0&&t.getRange(k,n(k.line,k.ch+3))==i+i+i?"skipThree":"skip";if(c){if(c!=y)return e.Pass}else c=y}var C=l%2?a.charAt(l-1):i,S=l%2?i:a.charAt(l+1);t.operation(function(){if("skip"==c)u(t,1);else if("skipThree"==c)u(t,3);else if("surround"==c){for(var e=t.getSelections(),n=0;n=0;s--){var l=o[s].from(),c=o[s].to();l.line>=i||(c.line>=i&&(c=r(i,0)),i=l.line,null==a?n.uncomment(l,c,e)?a="un":(n.lineComment(l,c,e),a="line"):"un"==a?n.uncomment(l,c,e):n.lineComment(l,c,e))}}),e.defineExtension("lineComment",function(e,i,l){l||(l=t);var c=this,u=s(c,e),d=c.getLine(e.line);if(null!=d&&!a(c,e,d)){var p=l.lineComment||u.lineComment;if(p){var f=Math.min(0!=i.ch||i.line==e.line?i.line+1:i.line,c.lastLine()+1),h=null==l.padding?" ":l.padding,g=l.commentBlankLines||e.line==i.line;c.operation(function(){if(l.indent){for(var t=null,i=e.line;is.length)&&(t=s)}for(i=e.line;ip||l.operation(function(){if(0!=a.fullLines){var t=n.test(l.getLine(p));l.replaceRange(f+d,r(p)),l.replaceRange(u+f,r(e.line,0));var s=a.blockCommentLead||c.blockCommentLead;if(null!=s)for(var h=e.line+1;h<=p;++h)(h!=p||t)&&l.replaceRange(s+f,r(h,0))}else{var g=0==i(l.getCursor("to"),o),m=!l.somethingSelected();l.replaceRange(d,o),g&&l.setSelection(m?o:l.getCursor("from"),o),l.replaceRange(u,e)}})}}else(a.lineComment||c.lineComment)&&0!=a.fullLines&&l.lineComment(e,o,a)}),e.defineExtension("uncomment",function(e,i,o){o||(o=t);var a,l=this,c=s(l,e),u=Math.min(0!=i.ch||i.line==e.line?i.line:i.line-1,l.lastLine()),d=Math.min(e.line,u),p=o.lineComment||c.lineComment,f=[],h=null==o.padding?" ":o.padding;e:if(p){for(var g=d;g<=u;++g){var m=l.getLine(g),_=m.indexOf(p);if(_>-1&&!/comment/.test(l.getTokenTypeAt(r(g,_+1)))&&(_=-1),-1==_&&n.test(m))break e;if(_>-1&&n.test(m.slice(0,_)))break e;f.push(m)}if(l.operation(function(){for(var e=d;e<=u;++e){var t=f[e-d],n=t.indexOf(p),i=n+p.length;n<0||(t.slice(i,i+h.length)==h&&(i+=h.length),a=!0,l.replaceRange("",r(e,n),r(e,i)))}}),a)return!0}var v=o.blockCommentStart||c.blockCommentStart,y=o.blockCommentEnd||c.blockCommentEnd;if(!v||!y)return!1;var b=o.blockCommentLead||c.blockCommentLead,k=l.getLine(d),w=k.indexOf(v);if(-1==w)return!1;var x=u==d?k:l.getLine(u),C=x.indexOf(y,u==d?w+v.length:0),S=r(d,w+1),j=r(u,C+1);if(-1==C||!/comment/.test(l.getTokenTypeAt(S))||!/comment/.test(l.getTokenTypeAt(j))||l.getRange(S,j,"\n").indexOf(y)>-1)return!1;var T=k.lastIndexOf(v,e.ch),L=-1==T?-1:k.slice(0,e.ch).indexOf(y,T+v.length);if(-1!=T&&-1!=L&&L+y.length!=e.ch)return!1;L=x.indexOf(y,i.ch);var E=x.slice(i.ch).lastIndexOf(v,L-i.ch);return T=-1==L||-1==E?-1:i.ch+E,(-1==L||-1==T||T==i.ch)&&(l.operation(function(){l.replaceRange("",r(u,C-(h&&x.slice(C-h.length,C)==h?h.length:0)),r(u,C+y.length));var e=w+v.length;if(h&&k.slice(e,e+h.length)==h&&(e+=h.length),l.replaceRange("",r(d,w),r(d,e)),b)for(var t=d+1;t<=u;++t){var i=l.getLine(t),o=i.indexOf(b);if(-1!=o&&!n.test(i.slice(0,o))){var a=o+b.length;h&&i.slice(a,a+h.length)==h&&(a+=h.length),l.replaceRange("",r(t,o),r(t,a))}}}),!0)})})},58263:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]])},59143:function(e,t,n){"use strict";var r=n(44576),i=n(79504),o=n(83972),a=n(63463),s=n(39297),l=n(92804),c=n(944),u=n(55169),d=l.c2i,p=l.c2iUrl,f=r.SyntaxError,h=r.TypeError,g=i("".charAt),m=function(e,t){for(var n=e.length;t>16&255,i>>8&255,255&i];if(2===r){if(n&&0!==o[1])throw new f("Extra bits");return[o[0]]}if(3===r){if(n&&0!==o[2])throw new f("Extra bits");return[o[0],o[1]]}return o},v=function(e,t,n){for(var r=t.length,i=0;i0){if("stop-before-partial"===l)break;if("loose"!==l)throw new f("Missing padding");if(1===x.length)throw new f("Malformed padding: exactly one additional character");k=v(b,_(x,i,!1),k)}w=y;break}var S=g(e,C);if(++C,"="===S){if(x.length<2)throw new f("Padding is too early");if(C=m(e,C),2===x.length){if(C===y){if("stop-before-partial"===l)break;throw new f("Malformed padding: only one =")}"="===g(e,C)&&(++C,C=m(e,C))}if(C=c){if(p&&s&&p.test(s.className))return;r=o(a.indicatorOpen)}}(r||s)&&e.setGutterMarker(n,a.gutter,r)})}function s(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function l(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation(function(){a(e,t.from,t.to)}),n.from=t.from,n.to=t.to)}function c(e,n,r){var o=e.state.foldGutter;if(o){var a=o.options;if(r==a.gutter){var s=i(e,n);s?s.clear():e.foldCode(t(n,0),a)}}}function u(e,t){"mode"==t&&d(e)}function d(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){l(e)},n.foldOnChangeTimeSpan||600)}}function p(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?l(e):e.operation(function(){n.fromt.to&&(a(e,t.to,n.to),t.to=n.to)})},n.updateViewportTimeSpan||400)}}function f(e,t){var n=e.state.foldGutter;if(n){var r=t.line;r>=n.from&&r*\/]/.test(n)?w(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?w("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?w(null,n):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=S),w("variable callee","variable")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),w("property","word")):w(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),w("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?w("variable-2","variable-definition"):w("variable-2","variable")):e.match(/^\w+-/)?w("meta","meta"):void 0}function C(e){return function(t,n){var r,i=!1;while(null!=(r=t.next())){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),w("string","string")}}function S(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=C(")"),w(null,"(")}function j(e,t,n){this.type=e,this.indent=t,this.prev=n}function T(e,t,n,r){return e.context=new j(n,t.indentation()+(!1===r?0:a),e.context),n}function L(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function E(e,t,n){return D[n.context.type](e,t,n)}function A(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return E(e,t,n)}function M(e){var t=e.current().toLowerCase();o=_.hasOwnProperty(t)?"atom":m.hasOwnProperty(t)?"keyword":"variable"}var D={top:function(e,t,n){if("{"==e)return T(n,t,"block");if("}"==e&&n.context.prev)return L(n);if(b&&/@component/i.test(e))return T(n,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return T(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return T(n,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return T(n,t,"at");if("hash"==e)o="builtin";else if("word"==e)o="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return T(n,t,"interpolation");if(":"==e)return"pseudo";if(v&&"("==e)return T(n,t,"parens")}return n.context.type},block:function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return p.hasOwnProperty(r)?(o="property","maybeprop"):f.hasOwnProperty(r)?(o=k?"string-2":"property","maybeprop"):v?(o=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==e?"block":v||"hash"!=e&&"qualifier"!=e?D.top(e,t,n):(o="error","block")},maybeprop:function(e,t,n){return":"==e?T(n,t,"prop"):E(e,t,n)},prop:function(e,t,n){if(";"==e)return L(n);if("{"==e&&v)return T(n,t,"propBlock");if("}"==e||"{"==e)return A(e,t,n);if("("==e)return T(n,t,"parens");if("hash"!=e||/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t.current())){if("word"==e)M(t);else if("interpolation"==e)return T(n,t,"interpolation")}else o+=" error";return"prop"},propBlock:function(e,t,n){return"}"==e?L(n):"word"==e?(o="property","maybeprop"):n.context.type},parens:function(e,t,n){return"{"==e||"}"==e?A(e,t,n):")"==e?L(n):"("==e?T(n,t,"parens"):"interpolation"==e?T(n,t,"interpolation"):("word"==e&&M(t),"parens")},pseudo:function(e,t,n){return"meta"==e?"pseudo":"word"==e?(o="variable-3",n.context.type):E(e,t,n)},documentTypes:function(e,t,n){return"word"==e&&l.hasOwnProperty(t.current())?(o="tag",n.context.type):D.atBlock(e,t,n)},atBlock:function(e,t,n){if("("==e)return T(n,t,"atBlock_parens");if("}"==e||";"==e)return A(e,t,n);if("{"==e)return L(n)&&T(n,t,v?"block":"top");if("interpolation"==e)return T(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?"keyword":p.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?k?"string-2":"property":_.hasOwnProperty(r)?"atom":m.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(e,t,n){return"}"==e?A(e,t,n):"{"==e?L(n)&&T(n,t,v?"block":"top",!1):("word"==e&&(o="error"),n.context.type)},atBlock_parens:function(e,t,n){return")"==e?L(n):"{"==e||"}"==e?A(e,t,n,2):D.atBlock(e,t,n)},restricted_atBlock_before:function(e,t,n){return"{"==e?T(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):E(e,t,n)},restricted_atBlock:function(e,t,n){return"}"==e?(n.stateArg=null,L(n)):"word"==e?(o="@font-face"==n.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!g.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,n){return"word"==e?(o="variable","keyframes"):"{"==e?T(n,t,"top"):E(e,t,n)},at:function(e,t,n){return";"==e?L(n):"{"==e||"}"==e?A(e,t,n):("word"==e?o="tag":"hash"==e&&(o="builtin"),"at")},interpolation:function(e,t,n){return"}"==e?L(n):"{"==e||";"==e?A(e,t,n):("word"==e?o="variable":"variable"!=e&&"("!=e&&")"!=e&&(o="error"),"interpolation")}};return{startState:function(e){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new j(r?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||x)(e,t);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(t.state=D[t.state](i,e,t)),o},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):(n=n.prev,i=n.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:y,fold:"brace"}});var n=["domain","regexp","url","url-prefix"],r=t(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=t(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme","dynamic-range","video-dynamic-range"],s=t(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light","standard","high"],c=t(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(u),p=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],f=t(p),h=["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],g=t(h),m=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],_=t(m),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],y=t(v),b=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],k=t(b),w=n.concat(i).concat(a).concat(l).concat(u).concat(p).concat(v).concat(b);function x(e,t){var n,r=!1;while(null!=(n=e.next())){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.registerHelper("hintWords","css",w),e.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,fontProperties:g,counterDescriptors:_,colorKeywords:y,valueKeywords:k,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=x,x(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,colorKeywords:y,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=x,x(e,t)):["operator","operator"]},":":function(e){return!!e.match(/^\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,colorKeywords:y,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=x,x(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:d,nonStandardPropertyKeywords:f,fontProperties:g,counterDescriptors:_,colorKeywords:y,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=x,x(e,t))}},name:"css",helperType:"gss"})})},68813:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_yaml.20a3c373.svg"},71467:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_public_opened.bc4babc3.svg"},71554:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_git_opened.1c8a671b.svg"},71760:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_template.6417600b.svg"},73506:function(e,t,n){"use strict";var r=n(13925),i=String,o=TypeError;e.exports=function(e){if(r(e))return e;throw new o("Can't set "+i(e)+" as a prototype")}},73764:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_docker.c59f36f5.svg"},73864:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_images_opened.41cd121d.svg"},74024:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_config.e08ecc5a.svg"},74381:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileExtensions2ToIcon=void 0,t.FileExtensions2ToIcon={"gemfile.lock":"file_type_bundler.svg","css.map":"file_type_cssmap.svg","drawio.png":"file_type_drawio.svg","drawio.svg":"file_type_drawio.svg","js.flow":"file_type_flow.svg","ejs.t":"file_type_hygen.svg","js.snap":"file_type_jest_snapshot.svg","jsx.snap":"file_type_jest_snapshot.svg","ts.snap":"file_type_jest_snapshot.svg","tsx.snap":"file_type_jest_snapshot.svg","js.map":"file_type_light_jsmap.svg","layout.html":"file_type_layout.svg","layout.htm":"file_type_layout.svg","marko.js":"file_type_markojs.svg","format.ps1xml":"file_type_powershell_format.svg","types.ps1xml":"file_type_powershell_types.svg","story.js":"file_type_storybook.svg","story.jsx":"file_type_storybook.svg","story.ts":"file_type_storybook.svg","story.tsx":"file_type_storybook.svg","story.mdx":"file_type_storybook.svg","stories.js":"file_type_storybook.svg","stories.jsx":"file_type_storybook.svg","stories.ts":"file_type_storybook.svg","stories.tsx":"file_type_storybook.svg","stories.mdx":"file_type_storybook.svg","test.js":"file_type_light_testjs.svg","test.jsx":"file_type_light_testjs.svg","test.mjs":"file_type_light_testjs.svg","spec.js":"file_type_light_testjs.svg","spec.jsx":"file_type_light_testjs.svg","spec.mjs":"file_type_light_testjs.svg","test.ts":"file_type_testts.svg","test.tsx":"file_type_testts.svg","spec.ts":"file_type_testts.svg","spec.tsx":"file_type_testts.svg","e2e-test.ts":"file_type_testts.svg","e2e-test.tsx":"file_type_testts.svg","e2e-spec.ts":"file_type_testts.svg","e2e-spec.tsx":"file_type_testts.svg","d.ts":"file_type_typescriptdef.svg"}},74806:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var n=t(["and","or","not","is"]),r=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],i=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function o(e){return e.scopes[e.scopes.length-1]}e.registerHelper("hintWords","python",r.concat(i).concat(["exec","print"])),e.defineMode("python",function(a,s){for(var l="error",c=s.delimiters||s.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,u=[s.singleOperators,s.doubleOperators,s.doubleDelimiters,s.tripleDelimiters,s.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],d=0;dr?C(t):i0&&j(e,t)&&(a+=" "+l),a}return k(e,t)}function k(e,t,r){if(e.eatSpace())return null;if(!r&&e.match(/^#.*/))return"comment";if(e.match(/^[0-9\.]/,!1)){var i=!1;if(e.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(i=!0),e.match(/^[\d_]+\.\d*/)&&(i=!0),e.match(/^\.\d+/)&&(i=!0),i)return e.eat(/J/i),"number";var o=!1;if(e.match(/^0x[0-9a-f_]+/i)&&(o=!0),e.match(/^0b[01_]+/i)&&(o=!0),e.match(/^0o[0-7_]+/i)&&(o=!0),e.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(e.eat(/J/i),o=!0),e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}if(e.match(_)){var a=-1!==e.current().toLowerCase().indexOf("f");return a?(t.tokenize=w(e.current(),t.tokenize),t.tokenize(e,t)):(t.tokenize=x(e.current(),t.tokenize),t.tokenize(e,t))}for(var s=0;s=0)e=e.substr(1);var n=1==e.length,r="string";function i(e){return function(t,n){var r=k(t,n,!0);return"punctuation"==r&&("{"==t.current()?n.tokenize=i(e+1):"}"==t.current()&&(n.tokenize=e>1?i(e-1):o)),r}}function o(o,a){while(!o.eol())if(o.eatWhile(/[^'"\{\}\\]/),o.eat("\\")){if(o.next(),n&&o.eol())return r}else{if(o.match(e))return a.tokenize=t,r;if(o.match("{{"))return r;if(o.match("{",!1))return a.tokenize=i(0),o.current()?r:a.tokenize(o,a);if(o.match("}}"))return r;if(o.match("}"))return l;o.eat(/['"]/)}if(n){if(s.singleLineStringErrors)return l;a.tokenize=t}return r}return o.isString=!0,o}function x(e,t){while("rubf".indexOf(e.charAt(0).toLowerCase())>=0)e=e.substr(1);var n=1==e.length,r="string";function i(i,o){while(!i.eol())if(i.eatWhile(/[^'"\\]/),i.eat("\\")){if(i.next(),n&&i.eol())return r}else{if(i.match(e))return o.tokenize=t,r;i.eat(/['"]/)}if(n){if(s.singleLineStringErrors)return l;o.tokenize=t}return r}return i.isString=!0,i}function C(e){while("py"!=o(e).type)e.scopes.pop();e.scopes.push({offset:o(e).offset+a.indentUnit,type:"py",align:null})}function S(e,t,n){var r=e.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:e.column()+1;t.scopes.push({offset:t.indent+p,type:n,align:r})}function j(e,t){var n=e.indentation();while(t.scopes.length>1&&o(t).offset>n){if("py"!=o(t).type)return!0;t.scopes.pop()}return o(t).offset!=n}function T(e,t){e.sol()&&(t.beginningOfLine=!0,t.dedent=!1);var n=t.tokenize(e,t),r=e.current();if(t.beginningOfLine&&"@"==r)return e.match(m,!1)?"meta":g?"operator":l;if(/\S/.test(r)&&(t.beginningOfLine=!1),"variable"!=n&&"builtin"!=n||"meta"!=t.lastToken||(n="meta"),"pass"!=r&&"return"!=r||(t.dedent=!0),"lambda"==r&&(t.lambda=!0),":"==r&&!t.lambda&&"py"==o(t).type&&e.match(/^\s*(?:#|$)/,!1)&&C(t),1==r.length&&!/string|comment/.test(n)){var i="[({".indexOf(r);if(-1!=i&&S(e,t,"])}".slice(i,i+1)),i="])}".indexOf(r),-1!=i){if(o(t).type!=r)return l;t.indent=t.scopes.pop().offset-p}}return t.dedent&&e.eol()&&"py"==o(t).type&&t.scopes.length>1&&t.scopes.pop(),n}var L={startState:function(e){return{tokenize:b,scopes:[{offset:e||0,type:"py",align:null}],indent:e||0,lastToken:null,lambda:!1,dedent:0}},token:function(e,t){var n=t.errorToken;n&&(t.errorToken=!1);var r=T(e,t);return r&&"comment"!=r&&(t.lastToken="keyword"==r||"punctuation"==r?e.current():r),"punctuation"==r&&(r=null),e.eol()&&t.lambda&&(t.lambda=!1),n?r+" "+l:r},indent:function(t,n){if(t.tokenize!=b)return t.tokenize.isString?e.Pass:0;var r=o(t),i=r.type==n.charAt(0)||"py"==r.type&&!t.dedent&&/^(else:|elif |except |finally:)/.test(n);return null!=r.align?r.align-(i?1:0):r.offset-(i?p:0)},electricInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,closeBrackets:{triples:"'\""},lineComment:"#",fold:"indent"};return L}),e.defineMIME("text/x-python","python");var a=function(e){return e.split(" ")};e.defineMIME("text/x-cython",{name:"python",extra_keywords:a("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")})})},74829:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},75365:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]])},75854:function(e,t,n){"use strict";var r=n(72777),i=TypeError;e.exports=function(e){var t=r(e,"number");if("number"==typeof t)throw new i("Can't convert number to bigint");return BigInt(t)}},76895:function(e,t,n){(function(e){e(n(15237),n(23653),n(50908))})(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var n=e.exec(t.string);if(n&&n.index==t.pos)return t.pos+=n[0].length||1,"searching";n?t.pos=n.index:t.skipToEnd()}}}function n(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function r(e){return e.state.search||(e.state.search=new n)}function i(e){return"string"==typeof e&&e==e.toLowerCase()}function o(e,t,n){return e.getSearchCursor(t,n,{caseFold:i(t),multiline:!0})}function a(e,t,n,r,i){e.openDialog(t,r,{value:n,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){h(e)},onKeyDown:i,bottom:e.options.search.bottom})}function s(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0,bottom:e.options.search.bottom}):i(prompt(n,r))}function l(e,t,n,r){e.openConfirm?e.openConfirm(t,r):confirm(n)&&r[0]()}function c(e){return e.replace(/\\([nrt\\])/g,function(e,t){return"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"==t?"\\":e})}function u(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],-1==t[2].indexOf("i")?"":"i")}catch(n){}else e=c(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function d(e,n,r){n.queryText=r,n.query=u(r),e.removeOverlay(n.overlay,i(n.query)),n.overlay=t(n.query,i(n.query)),e.addOverlay(n.overlay),e.showMatchesOnScrollbar&&(n.annotate&&(n.annotate.clear(),n.annotate=null),n.annotate=e.showMatchesOnScrollbar(n.query,i(n.query)))}function p(t,n,i,o){var l=r(t);if(l.query)return f(t,n);var c=t.getSelection()||l.lastQuery;if(c instanceof RegExp&&"x^"==c.source&&(c=null),i&&t.openDialog){var u=null,p=function(n,r){e.e_stop(r),n&&(n!=l.queryText&&(d(t,l,n),l.posFrom=l.posTo=t.getCursor()),u&&(u.style.opacity=1),f(t,r.shiftKey,function(e,n){var r;n.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(n,"window").top&&((u=r).style.opacity=.4)}))};a(t,m(t),c,p,function(n,i){var o=e.keyName(n),a=t.getOption("extraKeys"),s=a&&a[o]||e.keyMap[t.getOption("keyMap")][o];"findNext"==s||"findPrev"==s||"findPersistentNext"==s||"findPersistentPrev"==s?(e.e_stop(n),d(t,r(t),i),t.execCommand(s)):"find"!=s&&"findPersistent"!=s||(e.e_stop(n),p(i,n))}),o&&c&&(d(t,l,c),f(t,n))}else s(t,m(t),"Search for:",c,function(e){e&&!l.query&&t.operation(function(){d(t,l,e),l.posFrom=l.posTo=t.getCursor(),f(t,n)})})}function f(t,n,i){t.operation(function(){var a=r(t),s=o(t,a.query,n?a.posFrom:a.posTo);(s.find(n)||(s=o(t,a.query,n?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),s.find(n)))&&(t.setSelection(s.from(),s.to()),t.scrollIntoView({from:s.from(),to:s.to()},20),a.posFrom=s.from(),a.posTo=s.to(),i&&i(s.from(),s.to()))})}function h(e){e.operation(function(){var t=r(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function g(e,t){var n=e?document.createElement(e):document.createDocumentFragment();for(var r in t)n[r]=t[r];for(var i=2;i=0;n--){var r=e[n];t[p(r).toUpperCase()]=f(p(r),r)}else if(e)for(var i in e)t[i.toUpperCase()]=f(i,e[i]);return t}function g(e){return t[e.toUpperCase()]}function m(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function _(e,t){var n=e.length,r=p(t).substr(0,n);return e.toUpperCase()===r.toUpperCase()}function v(e,t,n,r){if(l(n))for(var i=0;i0)&&s(h,u[m])<=0){d={start:f,end:u[m]};break}f=u[m]}if(d.start){var _=n.getRange(d.start,d.end,!1);for(m=0;m<_.length;m++){var v=_[m];if(w(v,function(e){var t=e.toUpperCase();t===i&&g(l)&&(c=l),t!==o.ALIAS_KEYWORD&&(l=e)}),c)break}}return c}e.registerHelper("hint","sql",function(e,o){t=h(o&&o.tables);var s=o&&o.defaultTable,l=o&&o.disableKeywords;n=s&&g(s),r=u(e),i=d(e),s&&!n&&(n=x(s,e)),n=n||[],n.columns&&(n=n.columns);var c,p,f,m=e.getCursor(),_=[],y=e.getTokenAt(m);if(y.end>m.ch&&(y.end=m.ch,y.string=y.string.slice(0,m.ch-y.start)),y.string.match(/^[.`"'\w@][\w$#]*$/g)?(f=y.string,c=y.start,p=y.end):(c=p=m.ch,f=""),"."==f.charAt(0)||f.charAt(0)==i)c=k(m,y,_,e);else{var b=function(e,t){return"object"===typeof e?e.className=t:e={text:e,className:t},e};v(_,f,n,function(e){return b(e,"CodeMirror-hint-table CodeMirror-hint-default-table")}),v(_,f,t,function(e){return b(e,"CodeMirror-hint-table")}),l||v(_,f,r,function(e){return b(e.toUpperCase(),"CodeMirror-hint-keyword")})}return{list:_,from:a(m.line,c),to:a(m.line,p)}})})},79577:function(e,t,n){"use strict";var r=n(39928),i=n(94644),o=n(18727),a=n(91291),s=n(75854),l=i.aTypedArray,c=i.getTypedArrayConstructor,u=i.exportTypedArrayMethod,d=function(){try{new Int8Array(1)["with"](2,{valueOf:function(){throw 8}})}catch(e){return 8===e}}(),p=d&&function(){try{new Int8Array(1)["with"](-.5,1)}catch(e){return!0}}();u("with",{with:function(e,t){var n=l(this),i=a(e),u=o(n)?s(t):+t;return r(n,c(n),i,u)}}["with"],!d||p)},79769:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},79780:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_src_opened.581b11ad.svg"},79886:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_log.3777e6b4.svg"},79992:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("file-text",[["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:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},80238:function(e,t,n){var r={"./default_file.svg":77844,"./default_folder.svg":67734,"./default_folder_opened.svg":85918,"./default_root_folder.svg":20845,"./default_root_folder_opened.svg":23843,"./file_type_binary.svg":24719,"./file_type_config.svg":87354,"./file_type_css.svg":16533,"./file_type_cython.svg":66543,"./file_type_db.svg":97942,"./file_type_docker.svg":73764,"./file_type_git.svg":11360,"./file_type_html.svg":21743,"./file_type_image.svg":56807,"./file_type_ini.svg":27822,"./file_type_json.svg":65182,"./file_type_json2.svg":31216,"./file_type_jupyter.svg":755,"./file_type_license.svg":48017,"./file_type_log.svg":79886,"./file_type_markdown.svg":43739,"./file_type_numpy.svg":10841,"./file_type_pdf.svg":99706,"./file_type_pdf2.svg":5828,"./file_type_python.svg":11398,"./file_type_pytyped.svg":11647,"./file_type_pyup.svg":59338,"./file_type_shell.svg":3294,"./file_type_sql.svg":60828,"./file_type_sqlite.svg":30764,"./file_type_svg.svg":84586,"./file_type_text.svg":18613,"./file_type_toml.svg":97232,"./file_type_xml.svg":4115,"./file_type_yaml.svg":68813,"./folder_type_config.svg":74024,"./folder_type_config_opened.svg":59952,"./folder_type_dist.svg":61374,"./folder_type_dist_opened.svg":80550,"./folder_type_docs.svg":86387,"./folder_type_docs_opened.svg":49993,"./folder_type_git.svg":55906,"./folder_type_git_opened.svg":71554,"./folder_type_images.svg":85152,"./folder_type_images_opened.svg":73864,"./folder_type_library.svg":61899,"./folder_type_library_opened.svg":14753,"./folder_type_private.svg":65335,"./folder_type_private_opened.svg":4917,"./folder_type_public.svg":22261,"./folder_type_public_opened.svg":71467,"./folder_type_python.svg":12648,"./folder_type_python_opened.svg":90320,"./folder_type_src.svg":65812,"./folder_type_src_opened.svg":79780,"./folder_type_template.svg":71760,"./folder_type_template_opened.svg":55256,"./folder_type_test.svg":10274,"./folder_type_test_opened.svg":62210,"./folder_type_vscode.svg":61176,"./folder_type_vscode_opened.svg":53920};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=80238},80550:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_dist_opened.7806bc53.svg"},83972:function(e,t,n){"use strict";var r=n(20034),i=String,o=TypeError;e.exports=function(e){if(void 0===e||r(e))return e;throw new o(i(e)+" is not an object or undefined")}},84215:function(e,t,n){"use strict";var r=n(44576),i=n(82839),o=n(22195),a=function(e){return i.slice(0,e.length)===e};e.exports=function(){return a("Bun/")?"BUN":a("Cloudflare-Workers")?"CLOUDFLARE":a("Deno/")?"DENO":a("Node.js/")?"NODE":r.Bun&&"string"==typeof Bun.version?"BUN":r.Deno&&"object"==typeof Deno.version?"DENO":"process"===o(r.process)?"NODE":r.window&&r.document?"BROWSER":"REST"}()},84586:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_svg.4ec240a2.svg"},85152:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_images.20cb17f3.svg"},85918:function(e,t,n){"use strict";e.exports=n.p+"static/img/default_folder_opened.5feffc5a.svg"},86387:function(e,t,n){"use strict";e.exports=n.p+"static/img/folder_type_docs.b8d52ee1.svg"},86774:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const i=(0,r.A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]])},87354:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_config.1859762e.svg"},88948:function(e,t,n){(function(e){e(n(15237))})(function(e){"use strict";function t(t,r,o,a){if(o&&o.call){var s=o;o=null}else s=i(t,o,"rangeFinder");"number"==typeof r&&(r=e.Pos(r,0));var l=i(t,o,"minFoldSize");function c(e){var n=s(t,r);if(!n||n.to.line-n.from.linet.firstLine())r=e.Pos(r.line-1,0),u=c(!1);if(u&&!u.cleared&&"unfold"!==a){var d=n(t,o,u);e.on(d,"mousedown",function(t){p.clear(),e.e_preventDefault(t)});var p=t.markText(u.from,u.to,{replacedWith:d,clearOnEnter:i(t,o,"clearOnEnter"),__isFold:!0});p.on("clear",function(n,r){e.signal(t,"unfold",t,n,r)}),e.signal(t,"fold",t,u.from,u.to)}}function n(e,t,n){var r=i(e,t,"widget");if("function"==typeof r&&(r=r(n.from,n.to)),"string"==typeof r){var o=document.createTextNode(r);r=document.createElement("span"),r.appendChild(o),r.className="CodeMirror-foldmarker"}else r&&(r=r.cloneNode(!0));return r}e.newFoldFunction=function(e,n){return function(r,i){t(r,i,{rangeFinder:e,widget:n})}},e.defineExtension("foldCode",function(e,n,r){t(this,e,n,r)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),n=0;ne.$emit("onCancel"))}),(0,r.Lk)("div",a,[(0,r.Lk)("div",s,[t[3]||(t[3]=(0,r.Lk)("span",{class:"dialog-top-title"},"Please select a project",-1)),(0,r.Lk)("div",{class:"dialog-close",onClick:t[1]||(t[1]=t=>e.$emit("onCancel"))})]),t[5]||(t[5]=(0,r.Lk)("table",null,[(0,r.Lk)("thead",null,[(0,r.Lk)("tr",null,[(0,r.Lk)("th",{class:"dialog-table-head"},"Project Name"),(0,r.Lk)("th",{class:"dialog-table-head"},"Time"),(0,r.Lk)("th",{class:"dialog-table-head"},"Options")])])],-1)),(0,r.Lk)("div",l,[(0,r.Lk)("table",null,[(0,r.Lk)("tbody",null,[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(m.ideInfo.projList,t=>((0,r.uX)(),(0,r.CE)("tr",{key:t.name,onDblclick:n=>e.$emit("onSelect",t.name)},[(0,r.Lk)("td",null,(0,i.v_)(t.name),1),(0,r.Lk)("td",null,(0,i.v_)(t.ctime),1),(0,r.Lk)("td",null,[m.ideInfo.currProj.data.name===t.name?((0,r.uX)(),(0,r.CE)("div",u)):(0,r.Q3)("",!0),m.ideInfo.currProj.data.name!==t.name?((0,r.uX)(),(0,r.CE)("div",{key:1,class:"float-left proj-open",onClick:n=>e.$emit("onSelect",t.name)},"Open",8,d)):(0,r.Q3)("",!0),m.ideInfo.currProj.data.name!==t.name?((0,r.uX)(),(0,r.CE)("div",{key:2,class:"proj-icon-trash float-left",onClick:n=>e.$emit("onDelete",t.name)},null,8,p)):(0,r.Q3)("",!0)])],40,c))),128))])])]),(0,r.Lk)("div",f,[(0,r.Lk)("div",{class:"dialog-add-content",onClick:t[2]||(t[2]=(...e)=>m.showCreateProjDialog&&m.showCreateProjDialog(...e))},t[4]||(t[4]=[(0,r.Lk)("span",null,"+",-1),(0,r.Lk)("span",null,"New Project",-1)]))])])])}var g={data(){return{}},computed:{ideInfo(){return this.$store.state.ide.ideInfo}},methods:{showCreateProjDialog(){this.$emit("setTextDialog",{type:"create-project",title:"New Project Name",text:"",tips:""})}}},m=n(66262);const _=(0,m.A)(g,[["render",h],["__scopeId","data-v-5d059974"]]);var v=_},94483:function(e,t,n){"use strict";var r,i,o,a,s=n(44576),l=n(89429),c=n(1548),u=s.structuredClone,d=s.ArrayBuffer,p=s.MessageChannel,f=!1;if(c)f=function(e){u(e,{transfer:[e]})};else if(d)try{p||(r=l("worker_threads"),r&&(p=r.MessageChannel)),p&&(i=new p,o=new d(2),a=function(e){i.port1.postMessage(null,[e])},2===o.byteLength&&(a(o),0===o.byteLength&&(f=a)))}catch(h){}e.exports=f},94644:function(e,t,n){"use strict";var r,i,o,a=n(77811),s=n(43724),l=n(44576),c=n(94901),u=n(20034),d=n(39297),p=n(36955),f=n(16823),h=n(66699),g=n(36840),m=n(62106),_=n(1625),v=n(42787),y=n(52967),b=n(78227),k=n(33392),w=n(91181),x=w.enforce,C=w.get,S=l.Int8Array,j=S&&S.prototype,T=l.Uint8ClampedArray,L=T&&T.prototype,E=S&&v(S),A=j&&v(j),M=Object.prototype,D=l.TypeError,O=b("toStringTag"),N=k("TYPED_ARRAY_TAG"),z="TypedArrayConstructor",I=a&&!!y&&"Opera"!==p(l.opera),F=!1,P={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},R={BigInt64Array:8,BigUint64Array:8},q=function(e){if(!u(e))return!1;var t=p(e);return"DataView"===t||d(P,t)||d(R,t)},B=function(e){var t=v(e);if(u(t)){var n=C(t);return n&&d(n,z)?n[z]:B(t)}},$=function(e){if(!u(e))return!1;var t=p(e);return d(P,t)||d(R,t)},H=function(e){if($(e))return e;throw new D("Target is not a typed array")},W=function(e){if(c(e)&&(!y||_(E,e)))return e;throw new D(f(e)+" is not a typed array constructor")},U=function(e,t,n,r){if(s){if(n)for(var i in P){var o=l[i];if(o&&d(o.prototype,e))try{delete o.prototype[e]}catch(a){try{o.prototype[e]=t}catch(c){}}}A[e]&&!n||g(A,e,n?t:I&&j[e]||t,r)}},V=function(e,t,n){var r,i;if(s){if(y){if(n)for(r in P)if(i=l[r],i&&d(i,e))try{delete i[e]}catch(o){}if(E[e]&&!n)return;try{return g(E,e,n?t:I&&E[e]||t)}catch(o){}}for(r in P)i=l[r],!i||i[e]&&!n||g(i,e,t)}};for(r in P)i=l[r],o=i&&i.prototype,o?x(o)[z]=i:I=!1;for(r in R)i=l[r],o=i&&i.prototype,o&&(x(o)[z]=i);if((!I||!c(E)||E===Function.prototype)&&(E=function(){throw new D("Incorrect invocation")},I))for(r in P)l[r]&&y(l[r],E);if((!I||!A||A===M)&&(A=E.prototype,I))for(r in P)l[r]&&y(l[r].prototype,A);if(I&&v(L)!==A&&y(L,A),s&&!d(A,O))for(r in F=!0,m(A,O,{configurable:!0,get:function(){return u(this)?this[N]:void 0}}),P)l[r]&&h(l[r],N,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:I,TYPED_ARRAY_TAG:F&&N,aTypedArray:H,aTypedArrayConstructor:W,exportTypedArrayMethod:U,exportTypedArrayStaticMethod:V,getTypedArrayConstructor:B,isView:q,isTypedArray:$,TypedArray:E,TypedArrayPrototype:A}},95636:function(e,t,n){"use strict";var r=n(44576),i=n(79504),o=n(46706),a=n(57696),s=n(55169),l=n(67394),c=n(94483),u=n(1548),d=r.structuredClone,p=r.ArrayBuffer,f=r.DataView,h=Math.min,g=p.prototype,m=f.prototype,_=i(g.slice),v=o(g,"resizable","get"),y=o(g,"maxByteLength","get"),b=i(m.getInt8),k=i(m.setInt8);e.exports=(u||c)&&function(e,t,n){var r,i=l(e),o=void 0===t?i:a(t),g=!v||!v(e);if(s(e),u&&(e=d(e,{transfer:[e]}),i===o&&(n||g)))return e;if(i>=o&&(!n||g))r=_(e,0,o);else{var m=n&&!g&&y?{maxByteLength:y(e)}:void 0;r=new p(o,m);for(var w=new f(e),x=new f(r),C=h(o,i),S=0;S=t.options.minChars&&a(e,i,!1,t.options.style)}}else{var o=!0===t.options.showToken?/[\w$]/:t.options.showToken,l=e.getCursor(),u=e.getLine(l.line),d=l.ch,p=d;while(d&&o.test(u.charAt(d-1)))--d;while(p0){var i={line:t.line,ch:t.ch-1},o=e.getRange(i,t);if(null===o.match(/\W/))return!1}if(n.ch",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<","<":">>",">":"<<"};function i(e){return e&&e.bracketRegex||/[(){}[\]]/}function o(e,t,o){var s=e.getLineHandle(t.line),l=t.ch-1,c=o&&o.afterCursor;null==c&&(c=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var u=i(o),d=!c&&l>=0&&u.test(s.text.charAt(l))&&r[s.text.charAt(l)]||u.test(s.text.charAt(l+1))&&r[s.text.charAt(++l)];if(!d)return null;var p=">"==d.charAt(1)?1:-1;if(o&&o.strict&&p>0!=(l==t.ch))return null;var f=e.getTokenTypeAt(n(t.line,l+1)),h=a(e,n(t.line,l+(p>0?1:0)),p,f,o);return null==h?null:{from:n(t.line,l),to:h&&h.pos,match:h&&h.ch==d.charAt(0),forward:p>0}}function a(e,t,o,a,s){for(var l=s&&s.maxScanLineLength||1e4,c=s&&s.maxScanLines||1e3,u=[],d=i(s),p=o>0?Math.min(t.line+c,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-c),f=t.line;f!=p;f+=o){var h=e.getLine(f);if(h){var g=o>0?0:h.length-1,m=o>0?h.length:-1;if(!(h.length>l))for(f==t.line&&(g=t.ch-(o<0?1:0));g!=m;g+=o){var _=h.charAt(g);if(d.test(_)&&(void 0===a||(e.getTokenTypeAt(n(f,g+1))||"")==(a||""))){var v=r[_];if(v&&">"==v.charAt(1)==o>0)u.push(_);else{if(!u.length)return{pos:n(f,g),ch:_};u.pop()}}}}}return f-o!=(o>0?e.lastLine():e.firstLine())&&null}function s(e,r,i){for(var a=e.state.matchBrackets.maxHighlightLineLength||1e3,s=i&&i.highlightNonMatching,l=[],c=e.listSelections(),u=0;ug.toggleSidebar&&g.toggleSidebar(...e)),"aria-label":"Close files navigation",title:"Hide file explorer"},[(0,r.bF)(m,{size:16})])):((0,r.uX)(),(0,r.CE)("button",{key:1,class:"sidebar__expand",onClick:t[1]||(t[1]=(...e)=>g.toggleSidebar&&g.toggleSidebar(...e)),"aria-label":"Open files navigation",title:"Show file explorer"},[(0,r.bF)(_,{size:16})])),(0,r.Lk)("div",{class:"code-tab-list",onDragover:t[4]||(t[4]=(0,i.D$)(()=>{},["prevent"])),onDrop:t[5]||(t[5]=(...e)=>g.handleDropOnContainer&&g.handleDropOnContainer(...e))},[((0,r.uX)(!0),(0,r.CE)(r.FK,null,(0,r.pI)(g.codeItems,(e,n)=>((0,r.uX)(),(0,r.CE)("button",{key:`${e.projectName||"default"}:${e.path}`,class:(0,o.C4)(["code-tab",{active:g.isActiveTab(e),dragging:h.draggedIndex===n,"drop-target-left":h.dropTargetIndex===n&&h.draggedIndex>n,"drop-target-right":h.dropTargetIndex===n&&h.draggedIndexg.selectTab(e),onDragstart:e=>g.handleDragStart(e,n),onDragover:e=>g.handleDragOver(e,n),onDragenter:e=>g.handleDragEnter(e,n),onDragleave:t[2]||(t[2]=e=>g.handleDragLeave(e)),onDrop:e=>g.handleDrop(e,n),onDragend:t[3]||(t[3]=(...e)=>g.handleDragEnd&&g.handleDragEnd(...e))},[(0,r.Lk)("img",{src:g.getIconUrl(e.path),alt:"",class:"tab-file-icon"},null,8,l),(0,r.Lk)("span",c,(0,o.v_)(g.getTabLabel(e)),1),(0,r.Lk)("span",{class:"tab-close-btn",onClick:(0,i.D$)(t=>g.removeTab(e),["stop"]),title:"Close"}," × ",8,u)],42,s))),128))],32),(0,r.Lk)("div",d,[g.codeItems.length>0?((0,r.uX)(),(0,r.CE)("span",p,(0,o.v_)(g.codeItems.length)+"/6 ",1)):(0,r.Q3)("",!0)])])}n(18111),n(22489),n(20116),n(61701),n(17642),n(58004),n(33853),n(45876),n(32475),n(15024),n(31698);var h=n(53793),g=n(33887),m=n(77950),_={data(){return{sidebarVisible:!0,draggedIndex:-1,dropTargetIndex:-1}},mounted(){},methods:{toggleSidebar(){this.sidebarVisible=!this.sidebarVisible,this.$emit("toggle-sidebar",this.sidebarVisible)},isActiveTab(e){return this.ideInfo.codeSelected&&this.ideInfo.codeSelected.path===e.path&&this.ideInfo.codeSelected.projectName===e.projectName},getIconUrl(e){return n(80238)(`./${(0,h.ry)(e.substring(e.lastIndexOf(".")+1))}`)},getItem(e){for(let t=0;te.projectName).filter(e=>e));return t.size>1&&e.projectName?`${e.name} [${e.projectName}]`:e.name},selectTab(e){this.$emit("select-item",e)},removeTab(e){this.$emit("close-item",e)},handleDragStart(e,t){this.draggedIndex=t,e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",t.toString()),setTimeout(()=>{e.target&&e.target.classList.add("dragging")},0)},handleDragOver(e,t){e.preventDefault(),e.dataTransfer.dropEffect="move"},handleDragEnter(e,t){e.preventDefault(),t!==this.draggedIndex&&-1!==this.draggedIndex&&(this.dropTargetIndex=t)},handleDragLeave(e){const t=e.relatedTarget;!t||e.currentTarget.contains(t)},handleDrop(e,t){e.preventDefault(),-1!==this.draggedIndex&&t!==this.draggedIndex&&this.$emit("reorder-tabs",this.draggedIndex,t),this.resetDragState()},handleDropOnContainer(e){this.resetDragState()},handleDragEnd(){this.resetDragState()},resetDragState(){this.draggedIndex=-1,this.dropTargetIndex=-1}},watch:{},computed:{ideInfo(){return this.$store.state.ide.ideInfo},codeItems(){return this.ideInfo.codeItems},currentFileName(){const e=this.codeItems.find(e=>e.path===this.pathSelected);return e?e.name:"No file selected"},pathSelected:{get(){return this.ideInfo.currProj.pathSelected},set(e){const t=this.getItem(e);t&&this.$emit("select-item",t)}}},components:{ChevronLeft:g.A,ChevronRight:m.A}},v=n(66262);const y=(0,v.A)(_,[["render",f],["__scopeId","data-v-44ea9c53"]]);var b=y},98468:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LanguagesToIcon=void 0,t.LanguagesToIcon={as:"file_type_actionscript.svg",ada:"file_type_light_ada.svg",prw:"file_type_advpl.svg",affect:"file_type_affectscript.svg",al:"file_type_al.svg",ansible:"file_type_ansible.svg",g4:"file_type_antlr.svg",any:"file_type_anyscript.svg",cls:"file_type_apex.svg",apl:"file_type_light_apl.svg",applescript:"file_type_applescript.svg",adoc:"file_type_asciidoc.svg",asp:"file_type_asp.svg",ats:"file_type_ats.svg",au3:"file_type_autoit.svg",avcs:"file_type_avro.svg",azcli:"file_type_azure.svg",bal:"file_type_ballerina.svg",bat:"file_type_bat.svg",cmd:"file_type_bat.svg",bats:"file_type_bats.svg",bzl:"file_type_bazel.svg",bf:"file_type_befunge.svg",bicep:"file_type_bicep.svg",bib:"file_type_light_tex.svg",biml:"file_type_biml.svg","blade.php":"file_type_blade.svg",blitzbasic:"file_type_blitzbasic.svg",bolt:"file_type_bolt.svg",bsq:"file_type_bosque.svg",c:"file_type_c.svg",cabal:"file_type_cabal.svg",Caddyfile:"file_type_caddy.svg",casc:"file_type_casc.svg",cddl:"file_type_cddl.svg",ceylon:"file_type_ceylon.svg",cfc:"file_type_cfc.svg",clj:"file_type_clojure.svg",cljs:"file_type_clojure.svg",cljc:"file_type_clojure.svg",cljx:"file_type_clojure.svg",clojure:"file_type_clojure.svg",edn:"file_type_clojure.svg",clojurescript:"file_type_clojurescript.svg",cmake:"file_type_cmake.svg",cbl:"file_type_cobol.svg",coffee:"file_type_coffeescript.svg",cson:"file_type_coffeescript.svg",confluence:"file_type_confluence.svg",ckbk:"file_type_chef_cookbook.svg",cpp:"file_type_cpp.svg",cc:"file_type_cpp.svg",cxx:"file_type_cpp.svg",hpp:"file_type_cpp.svg",hh:"file_type_cpp.svg",hxx:"file_type_cpp.svg",h:"file_type_cpp.svg",ino:"file_type_cpp.svg",inl:"file_type_cpp.svg",ipp:"file_type_cpp.svg",cr:"file_type_light_crystal.svg",cs:"file_type_csharp.svg",csx:"file_type_csharp.svg",cake:"file_type_csharp.svg",css:"file_type_css.svg",cu:"file_type_cuda.svg",pyx:"file_type_cython.svg",dal:"file_type_dal.svg",dart:"file_type_dartlang.svg",diff:"file_type_diff.svg",patch:"file_type_diff.svg",rej:"file_type_diff.svg",dockerfile:"file_type_docker.svg",dtx:"file_type_light_tex.svg",env:"file_type_light_config.svg",dot:"file_type_dotjs.svg",dox:"file_type_doxygen.svg",drl:"file_type_drools.svg",dust:"file_type_dustjs.svg",edge:"file_type_edge.svg",eex:"file_type_eex.svg",ex:"file_type_elixir.svg",elm:"file_type_elm.svg",erb:"file_type_erb.svg",erl:"file_type_erlang.svg",falcon:"file_type_falcon.svg",fs:"file_type_fsharp.svg",fsi:"file_type_fsharp.svg",fsx:"file_type_fsharp.svg",fsscript:"file_type_fsharp.svg",fthtml:"file_type_fthtml.svg",gspec:"file_type_galen.svg",gcode:"file_type_gcode.svg",gen:"file_type_genstat.svg",glsl:"file_type_glsl.svg",glyphs:"file_type_glyphs.svg",gp:"file_type_gnuplot.svg",go:"file_type_go.svg",gql:"file_type_graphql.svg",groovy:"file_type_groovy.svg",gvy:"file_type_groovy.svg",gradle:"file_type_groovy.svg",haml:"file_type_haml.svg",handlebars:"file_type_handlebars.svg",hbs:"file_type_handlebars.svg",hjs:"file_type_handlebars.svg",prg:"file_type_harbour.svg",hs:"file_type_haskell.svg",haxe:"file_type_haxe.svg","helm.tpl":"file_type_helm.svg",hjson:"file_type_light_hjson.svg",hlsl:"file_type_hlsl.svg",hlsli:"file_type_hlsl.svg",fx:"file_type_hlsl.svg",fxh:"file_type_hlsl.svg",vsh:"file_type_hlsl.svg",psh:"file_type_hlsl.svg",cginc:"file_type_hlsl.svg",compute:"file_type_hlsl.svg",hosts:"file_type_host.svg",html:"file_type_html.svg",htm:"file_type_html.svg",shtml:"file_type_html.svg",xhtml:"file_type_html.svg",mdoc:"file_type_html.svg",jsp:"file_type_html.svg",aspx:"file_type_html.svg",jshtm:"file_type_html.svg",volt:"file_type_html.svg",ejs:"file_type_html.svg",rhtml:"file_type_html.svg",http:"file_type_http.svg",hy:"file_type_hy.svg",hypr:"file_type_hypr.svg",icl:"file_type_icl.svg",imba:"file_type_imba.svg",properties:"file_type_light_ini.svg",gitconfig:"file_type_light_ini.svg",cfg:"file_type_light_ini.svg",conf:"file_type_light_ini.svg",ink:"file_type_ink.svg",iss:"file_type_innosetup.svg",io:"file_type_light_io.svg",janet:"file_type_janet.svg",java:"file_type_java.svg",jav:"file_type_java.svg",js:"file_type_light_js.svg",es6:"file_type_light_js.svg",mjs:"file_type_light_js.svg",pac:"file_type_light_js.svg",jsx:"file_type_reactjs.svg",jekyll:"file_type_jekyll.svg",json:"file_type_light_json.svg",bowerrc:"file_type_light_json.svg",jshintrc:"file_type_light_json.svg",jscsrc:"file_type_light_json.svg",eslintrc:"file_type_light_json.svg",babelrc:"file_type_light_json.svg",webmanifest:"file_type_light_json.svg",jsonc:"file_type_light_json.svg",jsonnet:"file_type_jsonnet.svg",json5:"file_type_light_json5.svg",jl:"file_type_julia.svg",id:"file_type_iodine.svg",kv:"file_type_kivy.svg",ks:"file_type_kos.svg",kt:"file_type_kotlin.svg",".kusto":"file_type_kusto.svg",tex:"file_type_light_tex.svg",lat:"file_type_latino.svg",less:"file_type_less.svg",flex:"file_type_lex.svg",lisp:"file_type_lisp.svg",log:"file_type_log.svg",lol:"file_type_lolcode.svg",lsl:"file_type_lsl.svg",lua:"file_type_lua.svg",mk:"file_type_makefile.svg",md:"file_type_markdown.svg",mdown:"file_type_markdown.svg",markdown:"file_type_markdown.svg",markdn:"file_type_markdown.svg",marko:"file_type_marko.svg",mat:"file_type_matlab.svg",ms:"file_type_maxscript.svg",mdx:"file_type_light_mdx.svg",mediawiki:"file_type_mediawiki.svg",mel:"file_type_maya.svg","meson.build":"file_type_meson.svg",mjml:"file_type_mjml.svg",ep:"file_type_mojolicious.svg",mongo:"file_type_mongo.svg",mson:"file_type_mson.svg",ne:"file_type_nearly.svg",nim:"file_type_nim.svg",nimble:"file_type_nimble.svg",nix:"file_type_nix.svg",nsi:"file_type_nsi.svg",nunjucks:"file_type_nunjucks.svg",ml:"file_type_ocaml.svg",o3:"file_type_ogone.svg",pas:"file_type_delphi.svg",pddl:"file_type_pddl.svg",pl:"file_type_perl.svg",pm:"file_type_perl.svg",pod:"file_type_perl.svg",t:"file_type_perl.svg",PL:"file_type_perl.svg",psgi:"file_type_perl.svg",p6:"file_type_perl.svg",pl6:"file_type_perl.svg",pm6:"file_type_perl.svg",nqp:"file_type_perl.svg",pgsql:"file_type_pgsql.svg",php:"file_type_php.svg",php4:"file_type_php.svg",php5:"file_type_php.svg",phtml:"file_type_php.svg",ctp:"file_type_php.svg",pine:"file_type_pine.svg",txt:"file_type_text.svg",ddl:"file_type_plsql.svg",polymer:"file_type_polymer.svg",pony:"file_type_pony.svg",pcss:"file_type_postcss.svg",ps1:"file_type_powershell.svg",psm1:"file_type_powershell.svg",psd1:"file_type_powershell.svg",pssc:"file_type_powershell.svg",psrc:"file_type_powershell.svg",prisma:"file_type_light_prisma.svg",pro:"file_type_prolog.svg",rules:"file_type_prometheus.svg",pp:"file_type_puppet.svg",purs:"file_type_light_purescript.svg",arr:"file_type_pyret.svg",py:"file_type_python.svg",rpy:"file_type_python.svg",pyw:"file_type_python.svg",cpy:"file_type_python.svg",gyp:"file_type_python.svg",gypi:"file_type_python.svg",qvs:"file_type_qlikview.svg",qml:"file_type_qml.svg",qs:"file_type_qsharp.svg",r:"file_type_r.svg",rhistory:"file_type_r.svg",rprofile:"file_type_r.svg",rt:"file_type_r.svg",rkt:"file_type_racket.svg",cshtml:"file_type_razor.svg",raml:"file_type_raml.svg",re:"file_type_reason.svg",red:"file_type_red.svg",res:"file_type_rescript.svg",rst:"file_type_rest.svg",rex:"file_type_rexx.svg",tag:"file_type_riot.svg",rmd:"file_type_rmd.svg",robot:"file_type_robotframework.svg",rb:"file_type_ruby.svg",rbx:"file_type_ruby.svg",rjs:"file_type_ruby.svg",gemspec:"file_type_ruby.svg",rake:"file_type_ruby.svg",ru:"file_type_ruby.svg",rs:"file_type_light_rust.svg",san:"file_type_san.svg",sbt:"file_type_sbt.svg",scad:"file_type_openscad.svg",scala:"file_type_scala.svg",sce:"file_type_scilab.svg",scss:"file_type_scss.svg",shader:"file_type_light_shaderlab.svg",sh:"file_type_shell.svg",bash:"file_type_shell.svg",bashrc:"file_type_shell.svg",bash_aliases:"file_type_shell.svg",bash_profile:"file_type_shell.svg",bash_login:"file_type_shell.svg",ebuild:"file_type_shell.svg",install:"file_type_shell.svg",profile:"file_type_shell.svg",bash_logout:"file_type_shell.svg",zsh:"file_type_shell.svg",zshrc:"file_type_shell.svg",zprofile:"file_type_shell.svg",zlogin:"file_type_shell.svg",zlogout:"file_type_shell.svg",zshenv:"file_type_shell.svg","zsh-theme":"file_type_shell.svg",slang:"file_type_slang.svg",ice:"file_type_slice.svg",slim:"file_type_slim.svg",ss:"file_type_silverstripe.svg",tpl:"file_type_smarty.svg",snort:"file_type_snort.svg",sol:"file_type_light_solidity.svg",rq:"file_type_sparql.svg",sqf:"file_type_sqf.svg",sql:"file_type_sql.svg",dsql:"file_type_sql.svg",nut:"file_type_squirrel.svg",stan:"file_type_stan.svg",bazel:"file_type_bazel.svg",do:"file_type_stata.svg",stencil:"file_type_stencil.svg","st.css":"file_type_stylable.svg",styl:"file_type_light_stylus.svg",svelte:"file_type_svelte.svg",swagger:"file_type_swagger.svg",swift:"file_type_swift.svg",swig:"file_type_swig.svg",sv:"file_type_light_systemverilog.svg",tt:"file_type_t4tt.svg",teal:"file_type_teal.svg",tera:"file_type_tera.svg",tf:"file_type_terraform.svg",sty:"file_type_light_tex.svg",textile:"file_type_textile.svg",Tiltfile:"file_type_tiltfile.svg",toml:"file_type_light_toml.svg",ttcn3:"file_type_ttcn.svg",tuc:"file_type_tuc.svg",twig:"file_type_twig.svg",ts:"file_type_typescript.svg",tsx:"file_type_reactts.svg",vb:"file_type_vb.svg",brs:"file_type_vb.svg",vbs:"file_type_vb.svg",bas:"file_type_vb.svg",wsf:"file_type_script.svg",vm:"file_type_velocity.svg",v:"file_type_verilog.svg",vhdl:"file_type_vhdl.svg",vim:"file_type_vim.svg",vue:"file_type_vue.svg",wasm:"file_type_wasm.svg",wy:"file_type_wenyan.svg",wl:"file_type_wolfram.svg",wurst:"file_type_wurst.svg","xmake.lua":"file_type_xmake.svg",xml:"file_type_xml.svg",xsd:"file_type_xml.svg",ascx:"file_type_xml.svg",atom:"file_type_xml.svg",axml:"file_type_xml.svg",bpmn:"file_type_xml.svg",config:"file_type_xml.svg",cpt:"file_type_xml.svg",csl:"file_type_xml.svg",csproj:"file_type_xml.svg","csproj.user":"file_type_xml.svg",dita:"file_type_xml.svg",ditamap:"file_type_xml.svg",dtd:"file_type_xml.svg",dtml:"file_type_xml.svg",fsproj:"file_type_xml.svg",fxml:"file_type_xml.svg",iml:"file_type_xml.svg",isml:"file_type_xml.svg",jmx:"file_type_xml.svg",launch:"file_type_xml.svg",menu:"file_type_xml.svg",mxml:"file_type_xml.svg",nuspec:"file_type_xml.svg",opml:"file_type_xml.svg",owl:"file_type_xml.svg",proj:"file_type_xml.svg",props:"file_type_xml.svg",pt:"file_type_xml.svg",publishsettings:"file_type_xml.svg",pubxml:"file_type_xml.svg","pubxml.user":"file_type_xml.svg",rdf:"file_type_xml.svg",rng:"file_type_xml.svg",rss:"file_type_xml.svg",shproj:"file_type_xml.svg",storyboard:"file_type_xml.svg",svg:"file_type_xml.svg",targets:"file_type_xml.svg",tld:"file_type_xml.svg",tmx:"file_type_xml.svg",vbproj:"file_type_xml.svg","vbproj.user":"file_type_xml.svg",vcxproj:"file_type_xml.svg","vcxproj.filters":"file_type_xml.svg",wsdl:"file_type_xml.svg",wxi:"file_type_xml.svg",wxl:"file_type_xml.svg",wxs:"file_type_xml.svg",xaml:"file_type_xml.svg",xbl:"file_type_xml.svg",xib:"file_type_xml.svg",xlf:"file_type_xml.svg",xliff:"file_type_xml.svg",xpdl:"file_type_xml.svg",xul:"file_type_xml.svg",xoml:"file_type_xml.svg",xquery:"file_type_xquery.svg",xsl:"file_type_xsl.svg",xslt:"file_type_xsl.svg",bison:"file_type_yacc.svg",eyaml:"file_type_light_yaml.svg",eyml:"file_type_light_yaml.svg",yaml:"file_type_light_yaml.svg",yml:"file_type_light_yaml.svg",yang:"file_type_yang.svg",zig:"file_type_zig.svg"}},98721:function(e,t,n){"use strict";var r=n(43724),i=n(79504),o=n(62106),a=URLSearchParams.prototype,s=i(a.forEach);r&&!("size"in a)&&o(a,"size",{get:function(){var e=0;return s(this,function(){e++}),e},configurable:!0,enumerable:!0})},99415:function(e,t,n){"use strict";n.d(t,{S:function(){return s},Z:function(){return l}});var r=n(20641),i=n(50953),o=n(90033),a=n(96763);const s={__name:"splitpanes",props:{horizontal:{type:Boolean,default:!1},pushOtherPanes:{type:Boolean,default:!0},maximizePanes:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean,default:!1}},emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click","splitter-dblclick"],setup(e,{emit:t}){const n=t,o=e,s=(0,r.Ht)(),l=(0,i.KR)([]),c=(0,r.EW)(()=>l.value.reduce((e,t)=>(e[~~t.id]=t)&&e,{})),u=(0,r.EW)(()=>l.value.length),d=(0,i.KR)(null),p=(0,i.KR)(!1),f=(0,i.KR)({mouseDown:!1,dragging:!1,activeSplitter:null,cursorOffset:0}),h=(0,i.KR)({splitter:null,timeoutId:null}),g=(0,r.EW)(()=>({["splitpanes splitpanes--"+(o.horizontal?"horizontal":"vertical")]:!0,"splitpanes--dragging":f.value.dragging})),m=()=>{document.addEventListener("mousemove",y,{passive:!1}),document.addEventListener("mouseup",b),"ontouchstart"in window&&(document.addEventListener("touchmove",y,{passive:!1}),document.addEventListener("touchend",b))},_=()=>{document.removeEventListener("mousemove",y,{passive:!1}),document.removeEventListener("mouseup",b),"ontouchstart"in window&&(document.removeEventListener("touchmove",y,{passive:!1}),document.removeEventListener("touchend",b))},v=(e,t)=>{const n=e.target.closest(".splitpanes__splitter");if(n){const{left:t,top:r}=n.getBoundingClientRect(),{clientX:i,clientY:a}="ontouchstart"in window&&e.touches?e.touches[0]:e;f.value.cursorOffset=o.horizontal?a-r:i-t}m(),f.value.mouseDown=!0,f.value.activeSplitter=t},y=e=>{f.value.mouseDown&&(e.preventDefault(),f.value.dragging=!0,requestAnimationFrame(()=>{j(C(e)),W("resize",{event:e},!0)}))},b=e=>{f.value.dragging&&(window.getSelection().removeAllRanges(),W("resized",{event:e},!0)),f.value.mouseDown=!1,f.value.activeSplitter=null,setTimeout(()=>{f.value.dragging=!1,_()},100)},k=(e,t)=>{"ontouchstart"in window&&(e.preventDefault(),h.value.splitter===t?(clearTimeout(h.value.timeoutId),h.value.timeoutId=null,w(e,t),h.value.splitter=null):(h.value.splitter=t,h.value.timeoutId=setTimeout(()=>h.value.splitter=null,500))),f.value.dragging||W("splitter-click",{event:e,index:t},!0)},w=(e,t)=>{if(W("splitter-dblclick",{event:e,index:t},!0),o.maximizePanes){let n=0;l.value=l.value.map((e,r)=>(e.size=r===t?e.max:e.min,r!==t&&(n+=e.min),e)),l.value[t].size-=n,W("pane-maximize",{event:e,index:t,pane:l.value[t]}),W("resized",{event:e,index:t},!0)}},x=(e,t)=>{W("pane-click",{event:e,index:c.value[t].index,pane:c.value[t]})},C=e=>{const t=d.value.getBoundingClientRect(),{clientX:n,clientY:r}="ontouchstart"in window&&e.touches?e.touches[0]:e;return{x:n-(o.horizontal?0:f.value.cursorOffset)-t.left,y:r-(o.horizontal?f.value.cursorOffset:0)-t.top}},S=e=>{e=e[o.horizontal?"y":"x"];const t=d.value[o.horizontal?"clientHeight":"clientWidth"];return o.rtl&&!o.horizontal&&(e=t-e),100*e/t},j=e=>{const t=f.value.activeSplitter;let n={prevPanesSize:L(t),nextPanesSize:E(t),prevReachedMinPanes:0,nextReachedMinPanes:0};const r=0+(o.pushOtherPanes?0:n.prevPanesSize),i=100-(o.pushOtherPanes?0:n.nextPanesSize),a=Math.max(Math.min(S(e),i),r);let s=[t,t+1],c=l.value[s[0]]||null,u=l.value[s[1]]||null;const d=c.max<100&&a>=c.max+n.prevPanesSize,p=u.max<100&&a<=100-(u.max+E(t+1));if(d||p)d?(c.size=c.max,u.size=Math.max(100-c.max-n.prevPanesSize-n.nextPanesSize,0)):(c.size=Math.max(100-u.max-n.prevPanesSize-E(t+1),0),u.size=u.max);else{if(o.pushOtherPanes){const e=T(n,a);if(!e)return;({sums:n,panesToResize:s}=e),c=l.value[s[0]]||null,u=l.value[s[1]]||null}null!==c&&(c.size=Math.min(Math.max(a-n.prevPanesSize-n.prevReachedMinPanes,c.min),c.max)),null!==u&&(u.size=Math.min(Math.max(100-a-n.nextPanesSize-n.nextReachedMinPanes,u.min),u.max))}},T=(e,t)=>{const n=f.value.activeSplitter,r=[n,n+1];return t{i>r[0]&&i<=n&&(t.size=t.min,e.prevReachedMinPanes+=t.min)}),e.prevPanesSize=L(r[0]),void 0===r[0])?(e.prevReachedMinPanes=0,l.value[0].size=l.value[0].min,l.value.forEach((t,r)=>{r>0&&r<=n&&(t.size=t.min,e.prevReachedMinPanes+=t.min)}),l.value[r[1]].size=100-e.prevReachedMinPanes-l.value[0].min-e.prevPanesSize-e.nextPanesSize,null):t>100-e.nextPanesSize-l.value[r[1]].min&&(r[1]=M(n).index,e.nextReachedMinPanes=0,r[1]>n+1&&l.value.forEach((t,i)=>{i>n&&i{r=n+1&&(t.size=t.min,e.nextReachedMinPanes+=t.min)}),l.value[r[0]].size=100-e.prevPanesSize-E(r[0]-1),null):{sums:e,panesToResize:r}},L=e=>l.value.reduce((t,n,r)=>t+(rl.value.reduce((t,n,r)=>t+(r>e+1?n.size:0),0),A=e=>[...l.value].reverse().find(t=>t.indext.min)||{},M=e=>l.value.find(t=>t.index>e+1&&t.size>t.min)||{},D=()=>{var e;const t=Array.from((null==(e=d.value)?void 0:e.children)||[]);for(const n of t){const e=n.classList.contains("splitpanes__pane"),t=n.classList.contains("splitpanes__splitter");!e&&!t&&(n.remove(),a.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))}},O=(e,t,n=!1)=>{const r=e-1,i=document.createElement("div");i.classList.add("splitpanes__splitter"),n||(i.onmousedown=e=>v(e,r),typeof window<"u"&&"ontouchstart"in window&&(i.ontouchstart=e=>v(e,r)),i.onclick=e=>k(e,r+1)),i.ondblclick=e=>w(e,r+1),t.parentNode.insertBefore(i,t)},N=e=>{e.onmousedown=void 0,e.onclick=void 0,e.ondblclick=void 0,e.remove()},z=()=>{var e;const t=Array.from((null==(e=d.value)?void 0:e.children)||[]);for(const r of t)r.className.includes("splitpanes__splitter")&&N(r);let n=0;for(const r of t)r.className.includes("splitpanes__pane")&&(!n&&o.firstSplitter?O(n,r,!0):n&&O(n,r),n++)},I=({uid:e,...t})=>{const n=c.value[e];for(const[r,i]of Object.entries(t))n[r]=i},F=e=>{var t;let n=-1;Array.from((null==(t=d.value)?void 0:t.children)||[]).some(t=>(t.className.includes("splitpanes__pane")&&n++,t.isSameNode(e.el))),l.value.splice(n,0,{...e,index:n}),l.value.forEach((e,t)=>e.index=t),p.value&&(0,r.dY)(()=>{z(),R({addedPane:l.value[n]}),W("pane-add",{pane:l.value[n]})})},P=e=>{const t=l.value.findIndex(t=>t.id===e);l.value[t].el=null;const n=l.value.splice(t,1)[0];l.value.forEach((e,t)=>e.index=t),(0,r.dY)(()=>{z(),W("pane-remove",{pane:n}),R({removedPane:{...n}})})},R=(e={})=>{e.addedPane||e.removedPane?l.value.some(e=>null!==e.givenSize||e.min||e.max<100)?$(e):q():B(),p.value&&W("resized")},q=()=>{const e=100/u.value;let t=0;const n=[],r=[];for(const i of l.value)i.size=Math.max(Math.min(e,i.max),i.min),t-=i.size,i.size>=i.max&&n.push(i.id),i.size<=i.min&&r.push(i.id);t>.1&&H(t,n,r)},B=()=>{let e=100;const t=[],n=[];let r=0;for(const o of l.value)e-=o.size,null!==o.givenSize&&r++,o.size>=o.max&&t.push(o.id),o.size<=o.min&&n.push(o.id);let i=100;if(e>.1){for(const t of l.value)null===t.givenSize&&(t.size=Math.max(Math.min(e/(u.value-r),t.max),t.min)),i-=t.size;i>.1&&H(i,t,n)}},$=({addedPane:e,removedPane:t}={})=>{let n=100/u.value,r=0;const i=[],o=[];null!==((null==e?void 0:e.givenSize)??null)&&(n=(100-e.givenSize)/(u.value-1));for(const a of l.value)r-=a.size,a.size>=a.max&&i.push(a.id),a.size<=a.min&&o.push(a.id);if(!(Math.abs(r)<.1)){for(const t of l.value)null!==(null==e?void 0:e.givenSize)&&(null==e?void 0:e.id)===t.id||(t.size=Math.max(Math.min(n,t.max),t.min)),r-=t.size,t.size>=t.max&&i.push(t.id),t.size<=t.min&&o.push(t.id);r>.1&&H(r,i,o)}},H=(e,t,n)=>{let i;i=e>0?e/(u.value-t.length):e/(u.value-n.length),l.value.forEach((r,o)=>{if(e>0&&!t.includes(r.id)){const t=Math.max(Math.min(r.size+i,r.max),r.min),n=t-r.size;e-=n,r.size=t}else if(!n.includes(r.id)){const t=Math.max(Math.min(r.size+i,r.max),r.min),n=t-r.size;e-=n,r.size=t}}),Math.abs(e)>.1&&(0,r.dY)(()=>{p.value&&a.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})},W=(e,t=void 0,r=!1)=>{const i=(null==t?void 0:t.index)??f.value.activeSplitter??null;n(e,{...t,...null!==i&&{index:i},...r&&null!==i&&{prevPane:l.value[i-(o.firstSplitter?1:0)],nextPane:l.value[i+(o.firstSplitter?0:1)]},panes:l.value.map(e=>({min:e.min,max:e.max,size:e.size}))})};(0,r.wB)(()=>o.firstSplitter,()=>z()),(0,r.sV)(()=>{D(),z(),R(),W("ready"),p.value=!0}),(0,r.xo)(()=>p.value=!1);const U=()=>{var e;return(0,r.h)("div",{ref:d,class:g.value},null==(e=s.default)?void 0:e.call(s))};return(0,r.Gt)("panes",l),(0,r.Gt)("indexedPanes",c),(0,r.Gt)("horizontal",(0,r.EW)(()=>o.horizontal)),(0,r.Gt)("requestUpdate",I),(0,r.Gt)("onPaneAdd",F),(0,r.Gt)("onPaneRemove",P),(0,r.Gt)("onPaneClick",x),(e,t)=>((0,r.uX)(),(0,r.Wv)((0,r.$y)(U)))}},l={__name:"pane",props:{size:{type:[Number,String]},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},setup(e){var t;const n=e,a=(0,r.WQ)("requestUpdate"),s=(0,r.WQ)("onPaneAdd"),l=(0,r.WQ)("horizontal"),c=(0,r.WQ)("onPaneRemove"),u=(0,r.WQ)("onPaneClick"),d=null==(t=(0,r.nI)())?void 0:t.uid,p=(0,r.WQ)("indexedPanes"),f=(0,r.EW)(()=>p.value[d]),h=(0,i.KR)(null),g=(0,r.EW)(()=>{const e=isNaN(n.size)||void 0===n.size?0:parseFloat(n.size);return Math.max(Math.min(e,_.value),m.value)}),m=(0,r.EW)(()=>{const e=parseFloat(n.minSize);return isNaN(e)?0:e}),_=(0,r.EW)(()=>{const e=parseFloat(n.maxSize);return isNaN(e)?100:e}),v=(0,r.EW)(()=>{var e;return`${l.value?"height":"width"}: ${null==(e=f.value)?void 0:e.size}%`});return(0,r.wB)(()=>g.value,e=>a({uid:d,size:e})),(0,r.wB)(()=>m.value,e=>a({uid:d,min:e})),(0,r.wB)(()=>_.value,e=>a({uid:d,max:e})),(0,r.sV)(()=>{s({id:d,el:h.value,min:m.value,max:_.value,givenSize:void 0===n.size?null:g.value,size:g.value})}),(0,r.xo)(()=>c(d)),(e,t)=>((0,r.uX)(),(0,r.CE)("div",{ref_key:"paneEl",ref:h,class:"splitpanes__pane",onClick:t[0]||(t[0]=t=>(0,i.R1)(u)(t,e._.uid)),style:(0,o.Tr)(v.value)},[(0,r.RG)(e.$slots,"default")],4))}}},99706:function(e,t,n){"use strict";e.exports=n.p+"static/img/file_type_pdf.99061a86.svg"}}]); \ No newline at end of file diff --git a/dist/static/js/541.ecb0fa6e.js b/dist/static/js/541.ecb0fa6e.js new file mode 100644 index 00000000..365d7880 --- /dev/null +++ b/dist/static/js/541.ecb0fa6e.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[541],{4541:function(n,a,e){e.r(a),e.d(a,{default:function(){return t}});var d=e(641);function s(n,a,e,s,i,c){const o=(0,d.g2)("AdminLayout");return(0,d.uX)(),(0,d.Wv)(o,null,{default:(0,d.k6)(()=>a[0]||(a[0]=[(0,d.Lk)("div",{class:"grading-page"},[(0,d.Lk)("div",{class:"admin-card"},[(0,d.Lk)("div",{class:"admin-card-header"},[(0,d.Lk)("h3",{class:"admin-card-title"},"Grading")]),(0,d.Lk)("div",{class:"coming-soon"},[(0,d.Lk)("span",{class:"icon"},"📝"),(0,d.Lk)("h3",null,"Grading System Coming Soon"),(0,d.Lk)("p",null,"This feature will allow you to view, grade, and provide feedback on student submissions.")])])],-1)])),_:1,__:[0]})}var i=e(7424),c={name:"GradingPage",components:{AdminLayout:i.A}},o=e(6262);const r=(0,o.A)(c,[["render",s],["__scopeId","data-v-d64c568e"]]);var t=r}}]); \ No newline at end of file diff --git a/dist/static/js/568.eb87c855.js b/dist/static/js/568.eb87c855.js deleted file mode 100644 index 09bac357..00000000 --- a/dist/static/js/568.eb87c855.js +++ /dev/null @@ -1,36 +0,0 @@ -(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[568],{18237:function(e,t,i){"use strict";var o=i(46518),s=i(72652),n=i(79306),a=i(28551),r=i(1767),l=i(9539),d=i(84549),c=i(18745),h=i(79039),p=TypeError,u=h(function(){[].keys().reduce(function(){},void 0)}),m=!u&&d("reduce",p);o({target:"Iterator",proto:!0,real:!0,forced:u||m},{reduce:function(e){a(this);try{n(e)}catch(h){l(this,"throw",h)}var t=arguments.length<2,i=t?void 0:arguments[1];if(m)return c(m,this,t?[e]:[e,i]);var o=r(this),d=0;if(s(o,function(o){t?(t=!1,i=o):i=e(i,o,d),d++},{IS_RECORD:!0}),t)throw new p("Reduce of empty iterator with no initial value");return i}})},18745:function(e,t,i){"use strict";var o=i(40616),s=Function.prototype,n=s.apply,a=s.call;e.exports="object"==typeof Reflect&&Reflect.apply||(o?a.bind(n):function(){return a.apply(n,arguments)})},44317:function(e,t,i){(function(e){e(i(15237))})(function(e){e.defineOption("showTrailingSpace",!1,function(t,i,o){o==e.Init&&(o=!1),o&&!i?t.removeOverlay("trailingspace"):!o&&i&&t.addOverlay({token:function(e){for(var t=e.string.length,i=t;i&&/\s/.test(e.string.charAt(i-1));--i);return i>e.pos?(e.pos=i,null):(e.pos=t,"trailingspace")},name:"trailingspace"})})})},93568:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return Il}});var o=i(20641),s=i(53751),n=i(90033);const a={class:"login-modal"},r={class:"login-header"},l={class:"login-body"},d={class:"form-group"},c=["disabled"],h={class:"form-group"},p=["disabled"],u={key:0,class:"error-message"},m=["disabled"],f={key:0},g={key:1};function v(e,t,i,v,w,y){const b=(0,o.g2)("X");return i.visible?((0,o.uX)(),(0,o.CE)("div",{key:0,class:"login-modal-overlay",onClick:t[6]||(t[6]=(0,s.D$)((...e)=>y.close&&y.close(...e),["self"]))},[(0,o.Lk)("div",a,[(0,o.Lk)("div",r,[t[7]||(t[7]=(0,o.Lk)("h3",null,"Sign In to Python IDE",-1)),(0,o.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>y.close&&y.close(...e))},[(0,o.bF)(b,{size:20})])]),(0,o.Lk)("div",l,[(0,o.Lk)("form",{onSubmit:t[5]||(t[5]=(0,s.D$)((...e)=>y.handleLogin&&y.handleLogin(...e),["prevent"]))},[(0,o.Lk)("div",d,[t[8]||(t[8]=(0,o.Lk)("label",{for:"username"},"Username (Net ID)",-1)),(0,o.bo)((0,o.Lk)("input",{id:"username","onUpdate:modelValue":t[1]||(t[1]=e=>w.username=e),type:"text",placeholder:"Enter your net id",required:"",disabled:w.loading,onInput:t[2]||(t[2]=(...e)=>y.clearError&&y.clearError(...e))},null,40,c),[[s.Jo,w.username]])]),(0,o.Lk)("div",h,[t[9]||(t[9]=(0,o.Lk)("label",{for:"password"},"Password",-1)),(0,o.bo)((0,o.Lk)("input",{id:"password","onUpdate:modelValue":t[3]||(t[3]=e=>w.password=e),type:"password",placeholder:"Enter your password",required:"",disabled:w.loading,onInput:t[4]||(t[4]=(...e)=>y.clearError&&y.clearError(...e))},null,40,p),[[s.Jo,w.password]])]),w.error?((0,o.uX)(),(0,o.CE)("div",u,(0,n.v_)(w.error),1)):(0,o.Q3)("",!0),(0,o.Lk)("button",{type:"submit",class:"login-btn",disabled:w.loading},[w.loading?((0,o.uX)(),(0,o.CE)("span",f,"Signing in...")):((0,o.uX)(),(0,o.CE)("span",g,"Sign In"))],8,m)],32)])])])):(0,o.Q3)("",!0)}var w=i(6494),y=i(96763),b={name:"LoginModal",components:{X:w.A},props:{visible:{type:Boolean,default:!1}},data(){return{username:"",password:"",loading:!1,error:"",isFirstLogin:!1}},watch:{username(e){e&&e.match(/^[a-z]{2}\d{4}$/)?this.isFirstLogin=!0:this.isFirstLogin=!1}},methods:{async handleLogin(){this.loading=!0,this.error="";try{const e="/api/login",t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:this.username,password:this.password})}),i=await t.json();i.success?(localStorage.setItem("session_id",i.session_id),localStorage.setItem("username",i.username),localStorage.setItem("role",i.role),localStorage.setItem("full_name",i.full_name),this.$emit("login-success",{username:i.username,role:i.role,full_name:i.full_name,session_id:i.session_id}),this.close(),window.location.reload()):this.error=i.error||"Invalid username or password"}catch(Er){y.error("Login error:",Er),this.error="Connection error. Please try again."}finally{this.loading=!1}},clearError(){this.error=""},close(){this.username="",this.password="",this.error="",this.loading=!1,this.$emit("close")},async validateSession(e){try{const t="/api/validate-session",i=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:e})}),o=await i.json();o.success||(localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("role"),localStorage.removeItem("full_name"))}catch(Er){y.error("Session validation error:",Er)}}},mounted(){const e=localStorage.getItem("session_id");e&&this.validateSession(e)}},k=i(66262);const I=(0,k.A)(b,[["render",v],["__scopeId","data-v-f34a53b2"]]);var P=I,S=i(5012),C=i(42496),L=i(64481),F=i(28643);const E={class:"file-browser-content"},x={class:"current-path"},D={class:"path-value"},R={class:"file-tree-container"},T={class:"node-item"},$=["src"],j={class:"node-label"},N={key:0,class:"selected-file"},M={class:"selected-value"},A={key:1,class:"selected-file"},_={class:"selected-value"},U={class:"dialog-footer"};function O(e,t,i,s,a,r){const l=F.qk,d=L.S2,c=C.kZ;return(0,o.uX)(),(0,o.Wv)(c,{title:r.title,modelValue:r.visible,"onUpdate:modelValue":t[0]||(t[0]=e=>r.visible=e),width:"600px","close-on-click-modal":!1,onClose:r.handleClose,class:"file-browser-dialog custom-dialog"},{footer:(0,o.k6)(()=>[(0,o.Lk)("div",U,[(0,o.bF)(d,{onClick:r.handleClose},{default:(0,o.k6)(()=>t[4]||(t[4]=[(0,o.eW)("Cancel",-1)])),_:1,__:[4]},8,["onClick"]),(0,o.bF)(d,{type:"primary",onClick:r.handleConfirm,disabled:!r.canConfirm},{default:(0,o.k6)(()=>[(0,o.eW)((0,n.v_)(r.confirmButtonText),1)]),_:1},8,["onClick","disabled"])])]),default:(0,o.k6)(()=>[(0,o.Lk)("div",E,[(0,o.Lk)("div",x,[t[1]||(t[1]=(0,o.Lk)("span",{class:"path-label"},"Current Path:",-1)),(0,o.Lk)("span",D,(0,n.v_)(a.currentPath||"/"),1)]),(0,o.Lk)("div",R,[(0,o.bF)(l,{data:r.treeData,props:a.treeProps,"node-key":"path","expand-on-click-node":!1,"default-expanded-keys":a.expandedKeys,"highlight-current":"",onNodeClick:r.handleNodeClick,onNodeExpand:r.handleNodeExpand,onNodeCollapse:r.handleNodeCollapse,ref:"fileTree"},{default:(0,o.k6)(({node:e,data:t})=>[(0,o.Lk)("span",T,[(0,o.Lk)("img",{src:r.getIconUrl(t),alt:"",class:"node-icon"},null,8,$),(0,o.Lk)("span",j,(0,n.v_)(e.label),1)])]),_:1},8,["data","props","default-expanded-keys","onNodeClick","onNodeExpand","onNodeCollapse"])]),"open"===i.mode?((0,o.uX)(),(0,o.CE)("div",N,[t[2]||(t[2]=(0,o.Lk)("span",{class:"selected-label"},"Selected File:",-1)),(0,o.Lk)("span",M,(0,n.v_)(a.selectedFile?a.selectedFile.label:"None"),1)])):(0,o.Q3)("",!0),"move"===i.mode?((0,o.uX)(),(0,o.CE)("div",A,[t[3]||(t[3]=(0,o.Lk)("span",{class:"selected-label"},"Move to:",-1)),(0,o.Lk)("span",_,(0,n.v_)(a.selectedFolder?a.selectedFolder.path:"/"),1)])):(0,o.Q3)("",!0)])]),_:1},8,["title","modelValue","onClose"])}i(44114),i(18111),i(22489),i(7588),i(61701);var W=i(53793),V=i(96763),z={name:"DialogFileBrowser",props:{modelValue:{type:Boolean,default:!1},mode:{type:String,default:"open",validator:e=>["open","move"].includes(e)},fileToMove:{type:Object,default:null},currentUser:{type:Object,default:null}},data(){return{selectedFile:null,selectedFolder:null,currentPath:"/",expandedKeys:[],treeProps:{label:"label",children:"children"}}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},title(){return"open"===this.mode?"Open File":"Move File"},confirmButtonText(){return"open"===this.mode?"Open":"Move"},canConfirm(){return"open"===this.mode?null!==this.selectedFile:"move"===this.mode&&(null!==this.selectedFolder&&this.fileToMove&&this.selectedFolder.path!==this.getParentPath(this.fileToMove.path))},ideInfo(){return this.$store?.state?.ide?.ideInfo||{}},treeData(){let e;return e=this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0?this.ideInfo.multiRootData.children:this.ideInfo.currProj.data?[this.ideInfo.currProj.data]:[],"move"===this.mode&&(e=this.filterOutFile(e),e=this.filterByPermissions(e)),e},isStudent(){return this.currentUser&&"student"===this.currentUser.role},studentDirectory(){return this.isStudent&&this.currentUser?.username?`Local/${this.currentUser.username}`:null}},methods:{getIconUrl(e){try{if("file"===e.type){const t=e.path.substring(e.path.lastIndexOf(".")+1);return i(80238)(`./${(0,W.ry)(t)}`)}if("dir"===e.type||"folder"===e.type){const t=this.expandedKeys.includes(e.path),o=t?(0,W.vT)(e.label):(0,W.lM)(e.label);return i(80238)(`./${o}`)}}catch(t){return"file"===e.type?i(77844):i(67734)}},handleNodeClick(e){if("open"===this.mode)"file"===e.type?(this.selectedFile=e,this.currentPath=e.path):this.expandedKeys.includes(e.path)?this.handleNodeCollapse(e):this.handleNodeExpand(e);else if("move"===this.mode&&("dir"===e.type||"folder"===e.type)){if(this.currentUser&&this.isStudent&&!this.canAccessPath(e.path))return void this.$message.warning("You can only move files within your personal directory");this.selectedFolder=e,this.currentPath=e.path}},handleNodeExpand(e){this.expandedKeys.includes(e.path)||this.expandedKeys.push(e.path)},handleNodeCollapse(e){const t=this.expandedKeys.indexOf(e.path);t>-1&&this.expandedKeys.splice(t,1)},handleConfirm(){if(V.log("[DialogFileBrowser] handleConfirm called:",{mode:this.mode,selectedFile:this.selectedFile,selectedFolder:this.selectedFolder,fileToMove:this.fileToMove}),"open"===this.mode&&this.selectedFile)V.log("[DialogFileBrowser] Opening file:",this.selectedFile.path),this.$emit("open-file",this.selectedFile.path),this.handleClose();else if("move"===this.mode&&this.selectedFolder&&this.fileToMove){const e=this.getFileName(this.fileToMove.path),t=this.selectedFolder.path.endsWith("/")?this.selectedFolder.path+e:this.selectedFolder.path+"/"+e;V.log("[DialogFileBrowser] Moving file - DETAILED DEBUG:",{mode:this.mode,oldPath:this.fileToMove.path,newPath:t,selectedFolderPath:this.selectedFolder.path,fileName:e,fileToMove:this.fileToMove,selectedFolder:this.selectedFolder,projectName:this.fileToMove.projectName||this.ideInfo.currProj?.data?.name}),this.$emit("move-file",{oldPath:this.fileToMove.path,newPath:t,projectName:this.fileToMove.projectName||this.ideInfo.currProj?.data?.name}),this.handleClose()}else V.log("[DialogFileBrowser] Cannot confirm - missing requirements:",{mode:this.mode,hasSelectedFile:!!this.selectedFile,hasSelectedFolder:!!this.selectedFolder,hasFileToMove:!!this.fileToMove,canConfirm:this.canConfirm})},handleClose(){this.selectedFile=null,this.selectedFolder=null,this.currentPath="/",this.expandedKeys=[],this.$emit("update:modelValue",!1)},getParentPath(e){const t=e.lastIndexOf("/");return t>0?e.substring(0,t):"/"},getFileName(e){const t=e.lastIndexOf("/");return t>=0?e.substring(t+1):e},filterOutFile(e){return this.fileToMove?e.map(e=>e.path===this.fileToMove.path?null:e.children&&e.children.length>0?{...e,children:this.filterOutFile(e.children).filter(Boolean)}:e).filter(Boolean):e},filterByPermissions(e){return this.isStudent?e.map(e=>this.canAccessPath(e.path)?e.children&&e.children.length>0?{...e,children:this.filterByPermissions(e.children)}:e:null).filter(Boolean):e},canAccessPath(e){return!this.isStudent||!(!e||!this.studentDirectory)&&(e===this.studentDirectory||e.startsWith(this.studentDirectory+"/"))}},watch:{visible(e){e&&(this.selectedFile=null,this.selectedFolder=null,this.currentPath="/",this.expandedKeys=[],this.$nextTick(()=>{this.treeData&&this.treeData.length>0&&this.treeData.forEach(e=>{"dir"!==e.type&&"folder"!==e.type||!e.path||this.expandedKeys.push(e.path)})}))}}};const B=(0,k.A)(z,[["render",O]]);var X=B;const H={class:"bulk-upload-dialog"},K={class:"dialog-header"},G={class:"dialog-body"},Q={class:"students-section"},J={class:"target-selection"},q={key:0,class:"specific-students"},Y={class:"student-list"},Z=["onClick"],ee=["checked","onChange"],te={class:"student-info"},ie={class:"username"},oe={class:"fullname"},se={class:"selection-summary"},ne={class:"folder-section"},ae={class:"folder-input-group"},re={class:"path-preview"},le={class:"upload-section"},de={class:"upload-mode-toggle"},ce={class:"upload-icon"},he={class:"upload-text"},pe={class:"main-text"},ue={key:0,class:"error-hint"},me={key:0,class:"preview-section"},fe={class:"files-preview"},ge=["src"],ve={class:"file-name"},we={class:"file-size"},ye={key:0,class:"more-files"},be={class:"dialog-footer"},ke=["disabled"];function Ie(e,t,i,a,r,l){const d=(0,o.g2)("X"),c=(0,o.g2)("Users"),h=(0,o.g2)("UserCheck"),p=(0,o.g2)("Upload");return(0,o.uX)(),(0,o.CE)("div",null,[t[24]||(t[24]=(0,o.Lk)("div",{class:"dialog-cover"},null,-1)),(0,o.Lk)("div",H,[(0,o.Lk)("div",K,[t[16]||(t[16]=(0,o.Lk)("h3",null,"Bulk Upload to Students",-1)),(0,o.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.onCancel&&l.onCancel(...e))},[(0,o.bF)(d,{size:20})])]),(0,o.Lk)("div",G,[(0,o.Lk)("div",Q,[t[18]||(t[18]=(0,o.Lk)("label",null,"Upload To:",-1)),(0,o.Lk)("div",J,[(0,o.Lk)("button",{class:(0,n.C4)([{active:"all"===r.targetMode},"target-btn"]),onClick:t[1]||(t[1]=e=>r.targetMode="all")},[(0,o.bF)(c,{size:16}),(0,o.eW)(" All Students ("+(0,n.v_)(l.totalStudents)+") ",1)],2),(0,o.Lk)("button",{class:(0,n.C4)([{active:"specific"===r.targetMode},"target-btn"]),onClick:t[2]||(t[2]=e=>r.targetMode="specific")},[(0,o.bF)(h,{size:16}),t[17]||(t[17]=(0,o.eW)(" Specific Students ",-1))],2)]),"specific"===r.targetMode?((0,o.uX)(),(0,o.CE)("div",q,[(0,o.bo)((0,o.Lk)("input",{type:"text","onUpdate:modelValue":t[3]||(t[3]=e=>r.studentSearch=e),placeholder:"Search students...",class:"search-input"},null,512),[[s.Jo,r.studentSearch]]),(0,o.Lk)("div",Y,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(l.filteredStudents,e=>((0,o.uX)(),(0,o.CE)("div",{key:e.username,class:(0,n.C4)(["student-item",{selected:l.isStudentSelected(e.username)}]),onClick:t=>l.toggleStudent(e.username)},[(0,o.Lk)("input",{type:"checkbox",checked:l.isStudentSelected(e.username),onChange:(0,s.D$)(t=>l.toggleStudent(e.username),["stop"])},null,40,ee),(0,o.Lk)("div",te,[(0,o.Lk)("span",ie,(0,n.v_)(e.username),1),(0,o.Lk)("span",oe,(0,n.v_)(e.full_name),1)])],10,Z))),128))]),(0,o.Lk)("div",se," Selected: "+(0,n.v_)(r.selectedStudents.length)+" student(s) ",1)])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",ne,[t[21]||(t[21]=(0,o.Lk)("label",null,"Destination Folder (optional - leave empty for root):",-1)),(0,o.Lk)("div",ae,[(0,o.bo)((0,o.Lk)("input",{type:"text","onUpdate:modelValue":t[4]||(t[4]=e=>r.commonFolder=e),placeholder:"Leave empty for root, or e.g., Examples",class:"folder-input"},null,512),[[s.Jo,r.commonFolder]]),t[19]||(t[19]=(0,o.Lk)("span",{class:"path-separator"},"/",-1)),(0,o.bo)((0,o.Lk)("input",{type:"text","onUpdate:modelValue":t[5]||(t[5]=e=>r.subPath=e),placeholder:"e.g., Week1 (optional)",class:"folder-input"},null,512),[[s.Jo,r.subPath]])]),(0,o.Lk)("div",re,[t[20]||(t[20]=(0,o.eW)(" Path: ",-1)),(0,o.Lk)("code",null,"Local//"+(0,n.v_)(l.previewPath),1)])]),(0,o.Lk)("div",le,[t[23]||(t[23]=(0,o.Lk)("label",null,"Select Files or Folder:",-1)),(0,o.Lk)("div",de,[(0,o.Lk)("button",{class:(0,n.C4)([{active:"files"===r.uploadMode},"mode-btn"]),onClick:t[6]||(t[6]=e=>l.switchUploadMode("files"))}," Files ",2),(0,o.Lk)("button",{class:(0,n.C4)([{active:"folder"===r.uploadMode},"mode-btn"]),onClick:t[7]||(t[7]=e=>l.switchUploadMode("folder"))}," Folder ",2)]),(0,o.Lk)("div",{class:(0,n.C4)(["file-drop-area",{"drag-over":r.dragOver}]),onDrop:t[10]||(t[10]=(...e)=>l.handleDrop&&l.handleDrop(...e)),onDragover:t[11]||(t[11]=(0,s.D$)(e=>r.dragOver=!0,["prevent"])),onDragleave:t[12]||(t[12]=(0,s.D$)(e=>r.dragOver=!1,["prevent"])),onClick:t[13]||(t[13]=(...e)=>l.triggerFileInput&&l.triggerFileInput(...e))},["files"===r.uploadMode?((0,o.uX)(),(0,o.CE)("input",{key:0,type:"file",ref:"fileInput",onChange:t[8]||(t[8]=(...e)=>l.handleFileSelect&&l.handleFileSelect(...e)),multiple:"",accept:".py,.txt,.csv,.pdf",style:{display:"none"}},null,544)):((0,o.uX)(),(0,o.CE)("input",{key:1,type:"file",ref:"folderInput",onChange:t[9]||(t[9]=(...e)=>l.handleFolderSelect&&l.handleFolderSelect(...e)),webkitdirectory:"",directory:"",multiple:"",style:{display:"none"}},null,544)),(0,o.Lk)("div",ce,[(0,o.bF)(p,{size:48})]),(0,o.Lk)("div",he,[(0,o.Lk)("div",pe,(0,n.v_)("files"===r.uploadMode?"Click to select files or drag and drop":"Click to select folder or drag and drop"),1),t[22]||(t[22]=(0,o.Lk)("div",{class:"sub-text"}," Supported formats: .py, .txt, .csv, .pdf ",-1))])],34),r.uploadError?((0,o.uX)(),(0,o.CE)("div",ue,(0,n.v_)(r.uploadError),1)):(0,o.Q3)("",!0)]),r.selectedFiles.length>0?((0,o.uX)(),(0,o.CE)("div",me,[(0,o.Lk)("label",null,"Files to Upload ("+(0,n.v_)(r.selectedFiles.length)+"):",1),(0,o.Lk)("div",fe,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.selectedFiles.slice(0,5),(e,t)=>((0,o.uX)(),(0,o.CE)("div",{key:t,class:"file-preview-item"},[(0,o.Lk)("img",{src:l.getFileIcon(e.name),alt:"",class:"file-icon"},null,8,ge),(0,o.Lk)("span",ve,(0,n.v_)(e.name),1),(0,o.Lk)("span",we,(0,n.v_)(l.formatFileSize(e.size)),1)]))),128)),r.selectedFiles.length>5?((0,o.uX)(),(0,o.CE)("div",ye," + "+(0,n.v_)(r.selectedFiles.length-5)+" more files ",1)):(0,o.Q3)("",!0)])])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",be,[(0,o.Lk)("button",{class:"btn-cancel",onClick:t[14]||(t[14]=(...e)=>l.onCancel&&l.onCancel(...e))},"Cancel"),(0,o.Lk)("button",{class:"btn-upload",onClick:t[15]||(t[15]=(...e)=>l.onBulkUpload&&l.onBulkUpload(...e)),disabled:!l.canUpload||r.uploading},(0,n.v_)(r.uploading?"Uploading...":`Upload to ${l.targetCount} Student(s)`),9,ke)])])])}i(18237);var Pe=i(75365),Se=i(86774),Ce=i(53957); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const Le=(0,Ce.A)("user-check",[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var Fe=i(74829),Ee=i(16990),xe=i(96763),De={props:{modelValue:Boolean},data(){return{targetMode:"all",selectedStudents:[],studentSearch:"",allStudents:[],commonFolder:"",subPath:"",uploadMode:"files",selectedFiles:[],fileStructure:[],uploadError:"",uploading:!1,dragOver:!1,supportedExtensions:[".py",".txt",".csv",".pdf"]}},computed:{currentUser(){const e=localStorage.getItem("session_id"),t=localStorage.getItem("username"),i=localStorage.getItem("role");return e&&t?{session_id:e,username:t,role:i}:null},filteredStudents(){if(!this.studentSearch)return this.allStudents;const e=this.studentSearch.toLowerCase();return this.allStudents.filter(t=>t.username.toLowerCase().includes(e)||t.full_name.toLowerCase().includes(e))},totalStudents(){return this.allStudents.length},targetCount(){return"all"===this.targetMode?this.totalStudents:this.selectedStudents.length},previewPath(){const e=this.commonFolder.trim(),t=this.subPath.trim();return e&&t?`${e}/${t}/`:e?`${e}/`:t?`${t}/`:"(root directory)"},canUpload(){const e=this.selectedFiles.length>0,t="all"===this.targetMode||this.selectedStudents.length>0;return e&&t}},components:{X:w.A,Upload:Pe.A,Users:Se.A,UserCheck:Le,FolderOpen:Fe.A},mounted(){this.loadAllStudents()},methods:{async loadAllStudents(){try{const e=await fetch("/api/get-all-students",{method:"GET",headers:{"session-id":this.currentUser?.session_id}}),t=await e.json();if(!t.success)throw new Error(t.error||"Failed to fetch students");this.allStudents=t.students,xe.log(`[BulkUpload] Loaded ${t.count} students`)}catch(Er){xe.error("[BulkUpload] Error loading students:",Er),Ee.nk.error("Failed to load student list: "+Er.message),this.allStudents=[]}},isStudentSelected(e){return this.selectedStudents.includes(e)},toggleStudent(e){const t=this.selectedStudents.indexOf(e);t>-1?this.selectedStudents.splice(t,1):this.selectedStudents.push(e)},switchUploadMode(e){this.uploadMode=e,this.selectedFiles=[],this.fileStructure=[],this.uploadError=""},triggerFileInput(){"files"===this.uploadMode?this.$refs.fileInput?.click():this.$refs.folderInput?.click()},handleFileSelect(e){const t=Array.from(e.target.files);this.processFiles(t)},handleFolderSelect(e){const t=Array.from(e.target.files);this.processFolderFiles(t)},handleDrop(e){e.preventDefault(),this.dragOver=!1;const t=e.dataTransfer.items;if(t){const e=[],i=[];for(let o=0;o{if(e.length>0){const t=e.some(e=>e.webkitRelativePath);t||"folder"===this.uploadMode?this.processFolderFiles(e):this.processFiles(e)}})}else{const t=Array.from(e.dataTransfer.files);this.processFiles(t)}},async traverseFileTree(e,t,i=""){if(e.isFile)return new Promise(o=>{e.file(e=>{e.relativePath=i+e.name,t.push(e),o()})});if(e.isDirectory){const o=e.createReader();return new Promise(s=>{o.readEntries(async o=>{for(const s of o)await this.traverseFileTree(s,t,i+e.name+"/");s()})})}},processFiles(e){this.uploadError="";const t=[],i=[];e.forEach(e=>{const o="."+e.name.split(".").pop().toLowerCase();this.supportedExtensions.includes(o)?e.size<=10485760?t.push(e):i.push(`${e.name} (too large)`):i.push(`${e.name} (unsupported)`)}),i.length>0&&(this.uploadError=`Invalid files: ${i.join(", ")}`),this.selectedFiles=t},processFolderFiles(e){this.uploadError="";const t=[],i=[];this.fileStructure=[],e.forEach(e=>{const o="."+e.name.split(".").pop().toLowerCase(),s=e.webkitRelativePath||e.relativePath||e.name;this.supportedExtensions.includes(o)&&(e.size<=10485760?(t.push(e),this.fileStructure.push({file:e,relativePath:s,name:e.name,size:e.size})):i.push(`${s} (too large)`))}),i.length>0&&(this.uploadError=`Invalid files: ${i.join(", ")}`),this.selectedFiles=t,0===this.selectedFiles.length&&e.length>0&&(this.uploadError="No supported files found in the selected folder")},formatFileSize(e){if(0===e)return"0 Bytes";const t=1024,i=["Bytes","KB","MB"],o=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,o)).toFixed(2))+" "+i[o]},getFileIcon(e){const t=e.substring(e.lastIndexOf(".")+1);return i(80238)(`./${(0,W.ry)(t)}`)},async onBulkUpload(){if(this.canUpload){this.uploading=!0;try{const e="all"===this.targetMode?"all":JSON.stringify(this.selectedStudents),t=this.selectedFiles.map(async(t,i)=>{const o=new FormData;if(o.append("file",t),o.append("targetStudents",e),o.append("commonFolder",this.commonFolder),o.append("subPath",this.subPath||""),o.append("filename",t.name),"folder"===this.uploadMode&&this.fileStructure[i]){const e=this.fileStructure[i].relativePath;o.append("relativePath",e),o.append("preserveStructure","true")}const s=await fetch("/api/bulk-upload",{method:"POST",body:o,headers:{"session-id":this.currentUser?.session_id}}),n=await s.json();if(!n.success)throw new Error(`Failed to upload ${t.name}: ${n.error}`);return n}),i=await Promise.all(t),o=i.reduce((e,t)=>e+t.uploaded_to,0),s=Math.round(o/i.length);Ee.nk.success(`Successfully uploaded ${this.selectedFiles.length} file(s) to ${s} students`),this.$emit("update:modelValue",!1)}catch(Er){xe.error("[BulkUpload] Error:",Er),Ee.nk.error("Failed to upload files: "+Er.message)}finally{this.uploading=!1}}},onCancel(){this.$emit("update:modelValue",!1)}}};const Re=(0,k.A)(De,[["render",Ie],["__scopeId","data-v-6215f3ba"]]);var Te=Re;const $e={class:"import-file-dialog"},je={class:"dialog-header"},Ne={class:"dialog-body"},Me={class:"directory-section"},Ae={class:"directory-nav"},_e={key:0,class:"directory-tree"},Ue=["onClick"],Oe={class:"upload-section"},We={class:"upload-mode-toggle"},Ve={class:"upload-icon"},ze={class:"upload-text"},Be={class:"main-text"},Xe={class:"sub-text"},He={key:0,class:"error-hint"},Ke={key:0,class:"selected-files-section"},Ge={class:"selected-files-list"},Qe={class:"file-info"},Je=["src"],qe={class:"file-details"},Ye={class:"file-name"},Ze={class:"file-size"},et=["onClick"],tt={key:1,class:"preview-section"},it={class:"import-preview"},ot={class:"destination-info"},st={class:"destination-path"},nt={class:"file-count"},at={class:"dialog-footer"},rt=["disabled"];function lt(e,t,i,a,r,l){const d=(0,o.g2)("X"),c=(0,o.g2)("FolderOpen"),h=(0,o.g2)("ChevronDown"),p=(0,o.g2)("ChevronRight"),u=(0,o.g2)("Home"),m=(0,o.g2)("Folder"),f=(0,o.g2)("Upload");return(0,o.uX)(),(0,o.CE)("div",null,[t[16]||(t[16]=(0,o.Lk)("div",{class:"dialog-cover"},null,-1)),(0,o.Lk)("div",$e,[(0,o.Lk)("div",je,[t[12]||(t[12]=(0,o.Lk)("h3",null,"Import Files",-1)),(0,o.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.onCancel&&l.onCancel(...e))},[(0,o.bF)(d,{size:20})])]),(0,o.Lk)("div",Ne,[(0,o.Lk)("div",Me,[t[13]||(t[13]=(0,o.Lk)("label",null,"Select Destination Directory:",-1)),(0,o.Lk)("div",Ae,[(0,o.Lk)("div",{class:"current-path",onClick:t[1]||(t[1]=(...e)=>l.toggleDirectoryTree&&l.toggleDirectoryTree(...e))},[(0,o.bF)(c,{size:16}),(0,o.Lk)("span",null,(0,n.v_)(l.formatCurrentPath(r.currentPath)),1),r.showDirectoryTree?((0,o.uX)(),(0,o.Wv)(h,{key:0,size:16,class:"chevron"})):((0,o.uX)(),(0,o.Wv)(p,{key:1,size:16,class:"chevron"}))]),r.showDirectoryTree?((0,o.uX)(),(0,o.CE)("div",_e,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.directories,e=>((0,o.uX)(),(0,o.CE)("div",{key:e.path,class:(0,n.C4)(["directory-item",{selected:r.currentPath===e.path,"root-item":e.isRoot}]),style:(0,n.Tr)({paddingLeft:20*e.level+12+"px"}),onClick:t=>l.selectDirectory(e)},[e.isRoot?((0,o.uX)(),(0,o.Wv)(u,{key:0,size:14})):((0,o.uX)(),(0,o.CE)(o.FK,{key:1},[(0,o.bF)(p,{size:14}),(0,o.bF)(m,{size:14})],64)),(0,o.Lk)("span",null,(0,n.v_)(e.displayName||e.name),1)],14,Ue))),128))])):(0,o.Q3)("",!0)])]),(0,o.Lk)("div",Oe,[t[14]||(t[14]=(0,o.Lk)("label",null,"Select Files or Folder to Import:",-1)),(0,o.Lk)("div",We,[(0,o.Lk)("button",{class:(0,n.C4)([{active:"files"===r.uploadMode},"mode-btn"]),onClick:t[2]||(t[2]=e=>l.switchUploadMode("files"))}," Files ",2),(0,o.Lk)("button",{class:(0,n.C4)([{active:"folder"===r.uploadMode},"mode-btn"]),onClick:t[3]||(t[3]=e=>l.switchUploadMode("folder"))}," Folder ",2)]),(0,o.Lk)("div",{class:(0,n.C4)(["file-drop-area",{"drag-over":r.dragOver}]),onDrop:t[6]||(t[6]=(...e)=>l.handleDrop&&l.handleDrop(...e)),onDragover:t[7]||(t[7]=(0,s.D$)(e=>r.dragOver=!0,["prevent"])),onDragleave:t[8]||(t[8]=(0,s.D$)(e=>r.dragOver=!1,["prevent"])),onClick:t[9]||(t[9]=(...e)=>l.triggerFileInput&&l.triggerFileInput(...e))},["files"===r.uploadMode?((0,o.uX)(),(0,o.CE)("input",{key:0,type:"file",ref:"fileInput",onChange:t[4]||(t[4]=(...e)=>l.handleFileSelect&&l.handleFileSelect(...e)),multiple:"",accept:".py,.txt,.csv,.pdf",style:{display:"none"}},null,544)):((0,o.uX)(),(0,o.CE)("input",{key:1,type:"file",ref:"folderInput",onChange:t[5]||(t[5]=(...e)=>l.handleFolderSelect&&l.handleFolderSelect(...e)),webkitdirectory:"",directory:"",multiple:"",style:{display:"none"}},null,544)),(0,o.Lk)("div",Ve,[(0,o.bF)(f,{size:48})]),(0,o.Lk)("div",ze,[(0,o.Lk)("div",Be,(0,n.v_)("files"===r.uploadMode?"Click to select files or drag and drop":"Click to select folder or drag and drop"),1),(0,o.Lk)("div",Xe,(0,n.v_)("files"===r.uploadMode?"Supported formats: .py, .txt, .csv, .pdf":"All supported files in folder will be uploaded"),1)])],34),r.uploadError?((0,o.uX)(),(0,o.CE)("div",He,(0,n.v_)(r.uploadError),1)):(0,o.Q3)("",!0)]),r.selectedFiles.length>0?((0,o.uX)(),(0,o.CE)("div",Ke,[(0,o.Lk)("label",null,"Selected Files ("+(0,n.v_)(r.selectedFiles.length)+"):",1),(0,o.Lk)("div",Ge,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.selectedFiles,(e,t)=>((0,o.uX)(),(0,o.CE)("div",{key:t,class:"file-item"},[(0,o.Lk)("div",Qe,[(0,o.Lk)("img",{src:l.getFileIcon(e.name),alt:"",class:"file-icon"},null,8,Je),(0,o.Lk)("div",qe,[(0,o.Lk)("div",Ye,(0,n.v_)(e.name),1),(0,o.Lk)("div",Ze,(0,n.v_)(l.formatFileSize(e.size)),1)])]),(0,o.Lk)("button",{class:"remove-btn",onClick:e=>l.removeFile(t),title:"Remove"},[(0,o.bF)(d,{size:16})],8,et)]))),128))])])):(0,o.Q3)("",!0),r.selectedFiles.length>0&&!r.uploadError?((0,o.uX)(),(0,o.CE)("div",tt,[t[15]||(t[15]=(0,o.Lk)("label",null,"Files will be imported to:",-1)),(0,o.Lk)("div",it,[(0,o.Lk)("div",ot,[(0,o.bF)(c,{size:20}),(0,o.Lk)("div",null,[(0,o.Lk)("div",st,(0,n.v_)(l.formatCurrentPath(r.currentPath)),1),(0,o.Lk)("div",nt,(0,n.v_)(r.selectedFiles.length)+" file(s) selected",1)])])])])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",at,[(0,o.Lk)("button",{class:"btn-cancel",onClick:t[10]||(t[10]=(...e)=>l.onCancel&&l.onCancel(...e))},"Cancel"),(0,o.Lk)("button",{class:"btn-import",onClick:t[11]||(t[11]=(...e)=>l.onImport&&l.onImport(...e)),disabled:0===r.selectedFiles.length||r.uploading},(0,n.v_)(r.uploading?"Importing...":`Import ${r.selectedFiles.length} file(s)`),9,rt)])])])}i(13579);var dt=i(27336),ct=i(77950),ht=i(24758),pt=i(51058),ut=i(56660),mt=i(96763),ft={props:{modelValue:Boolean},data(){return{currentPath:"/",currentProject:null,directories:[],selectedFiles:[],uploadError:"",uploading:!1,showDirectoryTree:!1,dragOver:!1,supportedExtensions:[".py",".txt",".csv",".pdf"],uploadMode:"files",fileStructure:[]}},computed:{ideInfo(){return this.$store.state.ide.ideInfo},currentUser(){const e=localStorage.getItem("session_id"),t=localStorage.getItem("username"),i=localStorage.getItem("role"),o=localStorage.getItem("full_name");return e&&t?{session_id:e,username:t,role:i,full_name:o}:null}},components:{X:w.A,FolderOpen:Fe.A,Folder:dt.A,ChevronRight:ct.A,ChevronDown:ht.A,Upload:Pe.A,Home:pt.A},mounted(){this.loadDirectoryStructure()},methods:{loadDirectoryStructure(){if(this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0?(this.directories=[],this.ideInfo.multiRootData.children.forEach(e=>{const t=this.buildDirectoryTree(e,0,e.label);this.directories=this.directories.concat(t)})):this.ideInfo.currProj&&this.ideInfo.currProj.data&&(this.directories=this.buildDirectoryTree(this.ideInfo.currProj.data,0,this.ideInfo.currProj.data.label)),this.ideInfo.nodeSelected){if("dir"===this.ideInfo.nodeSelected.type||"folder"===this.ideInfo.nodeSelected.type)this.currentPath=this.ideInfo.nodeSelected.path,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name;else if("file"===this.ideInfo.nodeSelected.type){const e=this.ideInfo.nodeSelected.path.substring(0,this.ideInfo.nodeSelected.path.lastIndexOf("/"))||"/";this.currentPath=e,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name}}else this.currentProject=this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name},buildDirectoryTree(e,t=0,i=null){let o=[];return 0===t&&o.push({name:i||e.label||"/",displayName:i||e.label||"/",path:e.path||"/",level:0,isRoot:!0,projectName:i||e.label,fullPath:i?`${i}${e.path}`:e.path}),e.children&&e.children.forEach(e=>{"dir"!==e.type&&"folder"!==e.type||(o.push({name:e.label,displayName:e.label,path:e.path,level:t+1,isRoot:!1,projectName:i||e.projectName,fullPath:i?`${i}${e.path}`:e.path}),e.children&&(o=o.concat(this.buildDirectoryTree(e,t+1,i))))}),o},selectDirectory(e){this.currentPath=e.path,this.currentProject=e.projectName,this.showDirectoryTree=!1},toggleDirectoryTree(){this.showDirectoryTree=!this.showDirectoryTree},formatCurrentPath(e){if(this.currentProject)return"/"===e?this.currentProject:e.startsWith(this.currentProject)?e:this.currentProject+e;if("/"===e&&this.ideInfo.currProj)return this.ideInfo.currProj.data?.label||this.ideInfo.currProj.config?.name;if(e.startsWith("/")&&this.ideInfo.currProj){const t=this.ideInfo.currProj.data?.label||this.ideInfo.currProj.config?.name;return e.includes(t)?e:t+e}return e},switchUploadMode(e){this.uploadMode=e,this.selectedFiles=[],this.fileStructure=[],this.uploadError=""},triggerFileInput(){"files"===this.uploadMode?this.$refs.fileInput?.click():this.$refs.folderInput?.click()},handleFileSelect(e){const t=Array.from(e.target.files);this.processFiles(t)},handleFolderSelect(e){const t=Array.from(e.target.files);this.processFolderFiles(t)},handleDrop(e){e.preventDefault(),this.dragOver=!1;const t=e.dataTransfer.items;if(t){const e=[],i=[];for(let o=0;o{if(e.length>0){const t=e.some(e=>e.webkitRelativePath);t||"folder"===this.uploadMode?this.processFolderFiles(e):this.processFiles(e)}})}else{const t=Array.from(e.dataTransfer.files);this.processFiles(t)}},async traverseFileTree(e,t,i=""){if(e.isFile)return new Promise(o=>{e.file(e=>{e.relativePath=i+e.name,t.push(e),o()})});if(e.isDirectory){const o=e.createReader();return new Promise(s=>{o.readEntries(async o=>{for(const s of o)await this.traverseFileTree(s,t,i+e.name+"/");s()})})}},processFiles(e){this.uploadError="";const t=[],i=[];e.forEach(e=>{const o="."+e.name.split(".").pop().toLowerCase();this.supportedExtensions.includes(o)?e.size<=10485760?t.push(e):i.push(`${e.name} (file too large, max 10MB)`):i.push(`${e.name} (unsupported format)`)}),i.length>0&&(this.uploadError=`Invalid files: ${i.join(", ")}`),t.forEach(e=>{const t=this.selectedFiles.some(t=>t.name===e.name&&t.size===e.size);t||this.selectedFiles.push(e)})},processFolderFiles(e){this.uploadError="";const t=[],i=[];this.fileStructure=[],e.forEach(e=>{const o="."+e.name.split(".").pop().toLowerCase(),s=e.webkitRelativePath||e.relativePath||e.name;this.supportedExtensions.includes(o)?e.size<=10485760?(t.push(e),this.fileStructure.push({file:e,relativePath:s,name:e.name,size:e.size})):i.push(`${s} (file too large, max 10MB)`):mt.log(`Skipping unsupported file: ${s}`)}),i.length>0&&(this.uploadError=`Invalid files: ${i.join(", ")}`),this.selectedFiles=t,0===this.selectedFiles.length&&e.length>0&&(this.uploadError="No supported files found in the selected folder")},removeFile(e){this.selectedFiles.splice(e,1),0===this.selectedFiles.length&&(this.uploadError="")},formatFileSize(e){if(0===e)return"0 Bytes";const t=1024,i=["Bytes","KB","MB","GB"],o=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,o)).toFixed(2))+" "+i[o]},getFileIcon(e){const t=e.substring(e.lastIndexOf(".")+1);return i(80238)(`./${(0,W.ry)(t)}`)},async onImport(){if(0===this.selectedFiles.length)return;this.uploading=!0;const e=this.currentProject||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name;let t=this.currentPath;t&&e&&t.startsWith(e)&&(t=t.substring(e.length)||"/"),t&&!t.startsWith("/")&&(t="/"+t),mt.log("[DialogImportFile] Upload params:",{projectName:e,rawCurrentPath:this.currentPath,cleanedParentPath:t,uploadMode:this.uploadMode,fileCount:this.selectedFiles.length});try{const i=this.selectedFiles.map(async(i,o)=>{const s=new FormData;if(s.append("file",i),s.append("projectName",e),s.append("parentPath",t),s.append("filename",i.name),"folder"===this.uploadMode&&this.fileStructure[o]){const e=this.fileStructure[o].relativePath;s.append("relativePath",e),s.append("preserveStructure","true"),mt.log("[DialogImportFile] Folder upload:",{filename:i.name,relativePath:e})}const n=await fetch("/api/upload-file",{method:"POST",body:s,headers:{"session-id":this.currentUser?.session_id}}),a=await n.json();if(!a.success)throw new Error(`Failed to upload ${i.name}: ${a.error}`);return a});await Promise.all(i),Ee.nk.success(`Successfully imported ${this.selectedFiles.length} file(s)`),this.$store.dispatch(`ide/${ut.QQ}`,{projectName:e,callback:e=>{0===e.code&&(this.$store.commit("ide/handleProject",e.data),this.ideInfo.multiRootData&&this.$parent.loadAllDefaultProjects?.())}}),this.$emit("files-imported",{count:this.selectedFiles.length,destination:this.currentPath,projectName:e}),this.$emit("update:modelValue",!1)}catch(Er){mt.error("[DialogImportFile] Error importing files:",Er),Ee.nk.error("Failed to import files: "+Er.message)}finally{this.uploading=!1}},onCancel(){this.$emit("update:modelValue",!1)}}};const gt=(0,k.A)(ft,[["render",lt],["__scopeId","data-v-5cc52b6a"]]);var vt=gt;const wt={class:"new-folder-dialog"},yt={class:"dialog-header"},bt={class:"dialog-body"},kt={class:"directory-section"},It={class:"directory-nav"},Pt={key:0,class:"directory-tree"},St=["onClick"],Ct={key:1,class:"folder-spacer"},Lt={class:"foldername-section"},Ft={class:"foldername-input-wrapper"},Et={class:"folder-type-icon"},xt={key:0,class:"error-hint"},Dt={key:1,class:"folder-hint"},Rt={key:0,class:"preview-section"},Tt={class:"folder-preview"},$t={class:"folder-info"},jt={class:"folder-path"},Nt={class:"dialog-footer"},Mt=["disabled"];function At(e,t,i,a,r,l){const d=(0,o.g2)("X"),c=(0,o.g2)("FolderOpen"),h=(0,o.g2)("ChevronDown"),p=(0,o.g2)("ChevronRight"),u=(0,o.g2)("Home"),m=(0,o.g2)("FolderPlus"),f=(0,o.g2)("Folder");return(0,o.uX)(),(0,o.CE)("div",null,[t[11]||(t[11]=(0,o.Lk)("div",{class:"dialog-cover"},null,-1)),(0,o.Lk)("div",wt,[(0,o.Lk)("div",yt,[t[6]||(t[6]=(0,o.Lk)("h3",null,"New Folder",-1)),(0,o.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.onCancel&&l.onCancel(...e))},[(0,o.bF)(d,{size:20})])]),(0,o.Lk)("div",bt,[(0,o.Lk)("div",kt,[t[7]||(t[7]=(0,o.Lk)("label",null,"Select Parent Directory:",-1)),(0,o.Lk)("div",It,[(0,o.Lk)("div",{class:"current-path",onClick:t[1]||(t[1]=(...e)=>l.toggleDirectoryTree&&l.toggleDirectoryTree(...e))},[(0,o.bF)(c,{size:16}),(0,o.Lk)("span",null,(0,n.v_)(l.formatCurrentPath(r.currentPath)),1),r.showDirectoryTree?((0,o.uX)(),(0,o.Wv)(h,{key:0,size:16,class:"chevron"})):((0,o.uX)(),(0,o.Wv)(p,{key:1,size:16,class:"chevron"}))]),r.showDirectoryTree?((0,o.uX)(),(0,o.CE)("div",Pt,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(l.visibleDirectories,e=>((0,o.uX)(),(0,o.CE)("div",{key:e.path,class:(0,n.C4)(["directory-item",{selected:r.currentPath===e.path,"root-item":e.isRoot,collapsible:e.hasChildren,collapsed:l.isCollapsed(e.path)}]),style:(0,n.Tr)({paddingLeft:20*e.level+12+"px"}),onClick:t=>l.selectDirectory(e)},[e.hasChildren?((0,o.uX)(),(0,o.CE)(o.FK,{key:0},[l.isCollapsed(e.path)?((0,o.uX)(),(0,o.Wv)(p,{key:1,size:14,class:"folder-chevron",onClick:(0,s.D$)(t=>l.toggleCollapse(e),["stop"])},null,8,["onClick"])):((0,o.uX)(),(0,o.Wv)(h,{key:0,size:14,class:"folder-chevron",onClick:(0,s.D$)(t=>l.toggleCollapse(e),["stop"])},null,8,["onClick"]))],64)):((0,o.uX)(),(0,o.CE)("span",Ct)),e.isRoot&&!e.isRootCreation?((0,o.uX)(),(0,o.Wv)(u,{key:2,size:14})):e.isRootCreation?((0,o.uX)(),(0,o.Wv)(m,{key:3,size:14})):((0,o.uX)(),(0,o.Wv)(f,{key:4,size:14})),(0,o.Lk)("span",null,(0,n.v_)(e.displayName||e.name),1)],14,St))),128))])):(0,o.Q3)("",!0)])]),(0,o.Lk)("div",Lt,[t[8]||(t[8]=(0,o.Lk)("label",null,"Folder Name:",-1)),(0,o.Lk)("div",Ft,[(0,o.bo)((0,o.Lk)("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=e=>r.folderName=e),onInput:t[3]||(t[3]=(...e)=>l.validateFolderName&&l.validateFolderName(...e)),placeholder:"Enter folder name",class:"foldername-input",ref:"folderNameInput"},null,544),[[s.Jo,r.folderName]]),(0,o.Lk)("div",Et,[(0,o.bF)(f,{size:20})])]),r.folderNameError?((0,o.uX)(),(0,o.CE)("div",xt,(0,n.v_)(r.folderNameError),1)):((0,o.uX)(),(0,o.CE)("div",Dt," Folder names should not contain special characters "))]),r.folderName&&!r.folderNameError?((0,o.uX)(),(0,o.CE)("div",Rt,[t[10]||(t[10]=(0,o.Lk)("label",null,"Folder will be created at:",-1)),(0,o.Lk)("div",Tt,[(0,o.Lk)("div",$t,[(0,o.bF)(f,{size:20}),(0,o.Lk)("div",null,[(0,o.Lk)("div",jt,(0,n.v_)(l.getFullFolderPath()),1),t[9]||(t[9]=(0,o.Lk)("div",{class:"folder-type"},"Directory",-1))])])])])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",Nt,[(0,o.Lk)("button",{class:"btn-cancel",onClick:t[4]||(t[4]=(...e)=>l.onCancel&&l.onCancel(...e))},"Cancel"),(0,o.Lk)("button",{class:"btn-create",onClick:t[5]||(t[5]=(...e)=>l.onCreate&&l.onCreate(...e)),disabled:!r.folderName||!!r.folderNameError||r.creating},(0,n.v_)(r.creating?"Creating...":"Create Folder"),9,Mt)])])])}i(20116),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);var _t=i(79769),Ut=i(96763),Ot={props:{modelValue:Boolean},data(){return{currentPath:"/",currentProject:null,directories:[],folderName:"",folderNameError:"",creating:!1,showDirectoryTree:!1,collapsedFolders:new Set}},components:{X:w.A,FolderOpen:Fe.A,Folder:dt.A,ChevronRight:ct.A,ChevronDown:ht.A,Home:pt.A,FolderPlus:_t.A},mounted(){this.loadDirectoryStructure(),this.$nextTick(()=>{this.$refs.folderNameInput?.focus()})},methods:{isDirectoryVisibleToStudent(e){return this.currentUser&&this.currentUser.role,!0},loadDirectoryStructure(){if(this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0)this.directories=[],this.ideInfo.multiRootData.children.forEach(e=>{if(this.currentUser&&"student"===this.currentUser.role){const t=`Local/${this.currentUser.username}`;if(!e.label.startsWith("Local/")||e.label!==t)return}const t=this.buildDirectoryTree(e,0,e.label);this.directories=this.directories.concat(t)});else if(this.ideInfo.currProj&&this.ideInfo.currProj.data){const e=this.ideInfo.currProj.data.label||this.ideInfo.currProj.data.name;if(this.currentUser&&"student"===this.currentUser.role){const t=`Local/${this.currentUser.username}`;if(e!==t)return void(this.directories=[])}this.directories=this.buildDirectoryTree(this.ideInfo.currProj.data,0,e)}if(this.currentUser&&"professor"===this.currentUser.role&&this.directories.unshift({name:"../",displayName:"../ (Root Level)",path:"ROOT_LEVEL",level:-1,isRoot:!0,hasChildren:!1,parentPath:"",projectName:"",fullPath:"ROOT_LEVEL",isRootCreation:!0}),this.currentUser&&"student"===this.currentUser.role)this.currentProject=`Local/${this.currentUser.username}`,this.currentPath="/";else if(this.ideInfo.nodeSelected){if("dir"===this.ideInfo.nodeSelected.type||"folder"===this.ideInfo.nodeSelected.type)this.currentPath=this.ideInfo.nodeSelected.path,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name;else if("file"===this.ideInfo.nodeSelected.type){const e=this.ideInfo.nodeSelected.path.substring(0,this.ideInfo.nodeSelected.path.lastIndexOf("/"))||"/";this.currentPath=e,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name}}else this.currentProject=this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name},buildDirectoryTree(e,t=0,i=null,o=""){let s=[];if(0===t){const t=e.children&&e.children.some(e=>("dir"===e.type||"folder"===e.type)&&this.isDirectoryVisibleToStudent(e.path));s.push({name:i||e.label||"/",displayName:i||e.label||"/",path:e.path||"/",level:0,isRoot:!0,hasChildren:t,parentPath:"",projectName:i||e.label,fullPath:i?`${i}${e.path}`:e.path})}return e.children&&e.children.forEach(n=>{if(("dir"===n.type||"folder"===n.type)&&this.isDirectoryVisibleToStudent(n.path)){const a=n.children&&n.children.some(e=>("dir"===e.type||"folder"===e.type)&&this.isDirectoryVisibleToStudent(e.path)),r=0===t?e.path||"/":o;s.push({name:n.label,displayName:n.label,path:n.path,level:t+1,isRoot:!1,hasChildren:a,parentPath:r,projectName:i||n.projectName,fullPath:i?`${i}${n.path}`:n.path}),n.children&&(s=s.concat(this.buildDirectoryTree(n,t+1,i,n.path)))}}),s},selectDirectory(e){this.currentPath=e.path,this.currentProject=e.projectName,this.showDirectoryTree=!1},toggleDirectoryTree(){this.showDirectoryTree=!this.showDirectoryTree},toggleCollapse(e){e.hasChildren&&(this.collapsedFolders.has(e.path)?this.collapsedFolders.delete(e.path):this.collapsedFolders.add(e.path),this.$forceUpdate())},isCollapsed(e){return this.collapsedFolders.has(e)},isDirectoryVisible(e){if(0===e.level||e.isRoot)return!0;let t=e.parentPath;while(t&&"/"!==t){if(this.collapsedFolders.has(t))return!1;const e=this.directories.find(e=>e.path===t);t=e?e.parentPath:null}return!0},formatCurrentPath(e){if("ROOT_LEVEL"===this.currentPath)return"../ (Root Level)";if(e&&"/"!==e){const t=["Local","Lecture Notes"];for(let i of t)if(e.startsWith(i))return e}if(this.currentProject)return"/"===e?this.currentUser&&"student"===this.currentUser.role&&"Local"===this.currentProject?`Local/${this.currentUser.username}`:this.currentProject:e.startsWith(this.currentProject)?e:this.currentProject+e;if("/"===e&&this.ideInfo.currProj)return this.ideInfo.currProj.data?.label||this.ideInfo.currProj.config?.name;if(e.startsWith("/")&&this.ideInfo.currProj){const t=this.ideInfo.currProj.data?.label||this.ideInfo.currProj.config?.name;return e.includes(t)?e:t+e}return e},validateFolderName(){if(this.folderNameError="",!this.folderName)return;if(/[<>:"|?*\\\/]/.test(this.folderName))return void(this.folderNameError="Folder name contains invalid characters");const e=["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"],t=this.folderName.toUpperCase();e.includes(t)?this.folderNameError="This is a reserved folder name":this.folderName.startsWith(".")||this.folderName.endsWith(".")?this.folderNameError="Folder name cannot start or end with a dot":this.folderName.length>255&&(this.folderNameError="Folder name is too long")},getFullFolderPath(){const e=this.folderName||"new_folder";if("ROOT_LEVEL"===this.currentPath)return`${e} (at root level)`;const t="/"===this.currentPath?`/${e}`:`${this.currentPath}/${e}`;return this.formatCurrentPath(t)},async onCreate(){if(this.folderName&&!this.folderNameError){this.creating=!0;try{const e=this.folderName;let t=this.currentPath,i=this.currentProject||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name;const o="ROOT_LEVEL"===t;o||this.currentUser&&"student"===this.currentUser.role&&"Local"===i&&("/"===t||t===`Local/${this.currentUser.username}`?(t=`Local/${this.currentUser.username}`,i=""):(t.startsWith(`Local/${this.currentUser.username}/`)||(t=`Local/${this.currentUser.username}${"/"===t?"":t}`),i=""));const s=o?"":t,n=o?"":i;Ut.log("[DialogNewFolder] ========== FOLDER CREATION DEBUG =========="),Ut.log("[DialogNewFolder] Input values:",{folderName:e,parentPath:t,projectName:i,"this.currentPath":this.currentPath,"this.currentProject":this.currentProject}),Ut.log("[DialogNewFolder] Computed values:",{actualParentPath:s,actualProjectName:n,isRootCreation:o}),Ut.log("[DialogNewFolder] Will send to server:",{projectName:n,parentPath:s,folderName:e,isRootCreation:o}),await new Promise((t,i)=>{this.$store.dispatch(`ide/${ut.p_}`,{projectName:n,parentPath:s,folderName:e,isRootCreation:o,callback:a=>{if(Ut.log("[DialogNewFolder] Create folder response:",a),0===a.code){Ee.nk.success(`Folder "${e}" created successfully`),o?this.$store.dispatch(`ide/${ut.qB}`,{callback:e=>{Ut.log("[DialogNewFolder] Project list refresh response:",e),0===e.code&&(this.$store.commit("ide/handleProjects",e.data),this.ideInfo.multiRootData&&this.$parent.loadAllDefaultProjects?.())}}):this.$store.dispatch(`ide/${ut.QQ}`,{projectName:n,callback:e=>{0===e.code&&(this.$store.commit("ide/handleProject",e.data),this.ideInfo.multiRootData&&this.$parent.loadAllDefaultProjects?.())}});const i=o||"/"===s?`/${e}`:`${s}/${e}`;this.$emit("folder-created",{path:i,projectName:n,isRootCreation:o}),this.$emit("update:modelValue",!1),t()}else{const e=a.message||a.msg||"Failed to create folder";Ee.nk.error(e),i(new Error(e))}}})})}catch(Er){Ut.error("[DialogNewFolder] Error creating folder:",Er),Ee.nk.error("Failed to create folder: "+Er.message)}finally{this.creating=!1}}},onCancel(){this.$emit("update:modelValue",!1)}},computed:{ideInfo(){return this.$store.state.ide.ideInfo},currentUser(){const e=localStorage.getItem("session_id"),t=localStorage.getItem("username"),i=localStorage.getItem("role"),o=localStorage.getItem("full_name");return e&&t?{session_id:e,username:t,role:i,full_name:o}:null},visibleDirectories(){return this.directories.filter(e=>{const t=this.isDirectoryVisible(e),i=this.isDirectoryVisibleToStudent(e.path);return t&&i})}}};const Wt=(0,k.A)(Ot,[["render",At],["__scopeId","data-v-3422cd8f"]]);var Vt=Wt;const zt={class:"new-file-dialog"},Bt={class:"dialog-header"},Xt={class:"dialog-body"},Ht={class:"directory-section"},Kt={class:"directory-nav"},Gt={key:0,class:"directory-tree"},Qt=["onClick"],Jt={key:1,class:"directory-expand-placeholder"},qt=["onClick"],Yt={class:"filename-section"},Zt={class:"filename-input-wrapper"},ei={key:0,class:"file-type-icon"},ti={key:0,class:"error-hint"},ii={key:1,class:"file-types-hint"},oi={key:0,class:"preview-section"},si={class:"file-preview"},ni={class:"file-info"},ai={class:"file-path"},ri={class:"file-type"},li={class:"dialog-footer"},di=["disabled"];function ci(e,t,i,a,r,l){const d=(0,o.g2)("X"),c=(0,o.g2)("FolderOpen"),h=(0,o.g2)("ChevronDown"),p=(0,o.g2)("ChevronRight"),u=(0,o.g2)("Home"),m=(0,o.g2)("Folder"),f=(0,o.g2)("FileText");return(0,o.uX)(),(0,o.CE)("div",null,[t[10]||(t[10]=(0,o.Lk)("div",{class:"dialog-cover"},null,-1)),(0,o.Lk)("div",zt,[(0,o.Lk)("div",Bt,[t[6]||(t[6]=(0,o.Lk)("h3",null,"New File",-1)),(0,o.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.onCancel&&l.onCancel(...e))},[(0,o.bF)(d,{size:20})])]),(0,o.Lk)("div",Xt,[(0,o.Lk)("div",Ht,[t[7]||(t[7]=(0,o.Lk)("label",null,"Select Directory:",-1)),(0,o.Lk)("div",Kt,[(0,o.Lk)("div",{class:"current-path",onClick:t[1]||(t[1]=(...e)=>l.toggleDirectoryTree&&l.toggleDirectoryTree(...e))},[(0,o.bF)(c,{size:16}),(0,o.Lk)("span",null,(0,n.v_)(l.formatCurrentPath(r.currentPath)),1),r.showDirectoryTree?((0,o.uX)(),(0,o.Wv)(h,{key:0,size:16,class:"chevron"})):((0,o.uX)(),(0,o.Wv)(p,{key:1,size:16,class:"chevron"}))]),r.showDirectoryTree?((0,o.uX)(),(0,o.CE)("div",Gt,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(l.visibleDirectories,e=>((0,o.uX)(),(0,o.CE)("div",{key:e.path,class:(0,n.C4)(["directory-item",{selected:r.currentPath===e.path,"root-item":e.isRoot}]),style:(0,n.Tr)({paddingLeft:20*e.level+12+"px"})},[e.hasChildren?((0,o.uX)(),(0,o.CE)("div",{key:0,class:"directory-expand-icon",onClick:(0,s.D$)(t=>l.toggleDirectory(e),["stop"])},[l.isExpanded(e.path)?((0,o.uX)(),(0,o.Wv)(h,{key:0,size:14})):((0,o.uX)(),(0,o.Wv)(p,{key:1,size:14}))],8,Qt)):((0,o.uX)(),(0,o.CE)("div",Jt)),(0,o.Lk)("div",{class:"directory-content",onClick:t=>l.selectDirectory(e)},[e.isRoot?((0,o.uX)(),(0,o.Wv)(u,{key:0,size:14})):((0,o.uX)(),(0,o.Wv)(m,{key:1,size:14})),(0,o.Lk)("span",null,(0,n.v_)(e.displayName||e.name),1)],8,qt)],6))),128))])):(0,o.Q3)("",!0)])]),(0,o.Lk)("div",Yt,[t[8]||(t[8]=(0,o.Lk)("label",null,"File Name:",-1)),(0,o.Lk)("div",Zt,[(0,o.bo)((0,o.Lk)("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=e=>r.fileName=e),onInput:t[3]||(t[3]=(...e)=>l.validateFileName&&l.validateFileName(...e)),placeholder:"Enter file name (e.g., script.py)",class:"filename-input",ref:"fileNameInput"},null,544),[[s.Jo,r.fileName]]),l.fileExtension?((0,o.uX)(),(0,o.CE)("div",ei,[(0,o.bF)(f,{size:20})])):(0,o.Q3)("",!0)]),r.fileNameError?((0,o.uX)(),(0,o.CE)("div",ti,(0,n.v_)(r.fileNameError),1)):((0,o.uX)(),(0,o.CE)("div",ii," Common extensions: .py, .txt, .csv, .json, .md, .html, .css, .js "))]),r.fileName&&!r.fileNameError?((0,o.uX)(),(0,o.CE)("div",oi,[t[9]||(t[9]=(0,o.Lk)("label",null,"File will be created at:",-1)),(0,o.Lk)("div",si,[(0,o.Lk)("div",ni,[(0,o.bF)(f,{size:20}),(0,o.Lk)("div",null,[(0,o.Lk)("div",ai,(0,n.v_)(l.getFullFilePath()),1),(0,o.Lk)("div",ri,(0,n.v_)(l.getFileTypeDescription()),1)])])])])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",li,[(0,o.Lk)("button",{class:"btn-cancel",onClick:t[4]||(t[4]=(...e)=>l.onCancel&&l.onCancel(...e))},"Cancel"),(0,o.Lk)("button",{class:"btn-create",onClick:t[5]||(t[5]=(...e)=>l.onCreate&&l.onCreate(...e)),disabled:!r.fileName||!!r.fileNameError&&!r.fileNameError.includes("already exists")||r.creating},(0,n.v_)(r.creating?"Creating...":"Create File"),9,di)])])])}var hi=i(79992),pi=i(38880),ui=i(96763),mi={props:{modelValue:Boolean},data(){return{currentPath:"/",currentProject:null,directories:[],expandedDirectories:new Set,fileName:"",fileNameError:"",creating:!1,showDirectoryTree:!1}},computed:{ideInfo(){return this.$store.state.ide.ideInfo},currentUser(){const e=localStorage.getItem("session_id"),t=localStorage.getItem("username"),i=localStorage.getItem("role"),o=localStorage.getItem("full_name");return e&&t?{session_id:e,username:t,role:i,full_name:o}:null},fileExtension(){if(!this.fileName)return"";const e=this.fileName.lastIndexOf(".");return e>0?this.fileName.substring(e):""},visibleDirectories(){return this.directories.filter(e=>{if(!this.isDirectoryVisibleToStudent(e.path))return!1;if(e.isRoot)return!0;const t=this.getParentPath(e.path);return"/"===t||this.expandedDirectories.has(t)})}},components:{X:w.A,FolderOpen:Fe.A,Folder:dt.A,ChevronRight:ct.A,ChevronDown:ht.A,FileText:hi.A,Home:pt.A},mounted(){this.loadDirectoryStructure(),this.$nextTick(()=>{this.$refs.fileNameInput?.focus()})},methods:{isDirectoryVisibleToStudent(e){return this.currentUser&&this.currentUser.role,!0},loadDirectoryStructure(){if(this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0)this.directories=[],this.ideInfo.multiRootData.children.forEach(e=>{if(this.currentUser&&"student"===this.currentUser.role){const t=`Local/${this.currentUser.username}`;if(!e.label.startsWith("Local/")||e.label!==t)return}const t=this.buildDirectoryTree(e,0,e.label);this.directories=this.directories.concat(t)});else if(this.ideInfo.currProj&&this.ideInfo.currProj.data){const e=this.ideInfo.currProj.data.label||this.ideInfo.currProj.data.name;if(this.currentUser&&"student"===this.currentUser.role){const t=`Local/${this.currentUser.username}`;if(e!==t)return void(this.directories=[])}this.directories=this.buildDirectoryTree(this.ideInfo.currProj.data,0,e)}if(this.currentUser&&"student"===this.currentUser.role){this.currentProject=`Local/${this.currentUser.username}`;const e=`Local/${this.currentUser.username}`,t=this.directories.find(t=>t.path===e);if(t)this.currentPath=e;else if(this.directories.length>0){const e=`Local/${this.currentUser.username}`,t=this.directories.find(t=>!t.isRoot&&t.projectName===e);this.currentPath=t?t.path:"/"}else this.currentPath="/"}else if(this.ideInfo.nodeSelected){if("dir"===this.ideInfo.nodeSelected.type||"folder"===this.ideInfo.nodeSelected.type)this.currentPath=this.ideInfo.nodeSelected.path,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name;else if("file"===this.ideInfo.nodeSelected.type){const e=this.ideInfo.nodeSelected.path.substring(0,this.ideInfo.nodeSelected.path.lastIndexOf("/"))||"/";this.currentPath=e,this.currentProject=this.ideInfo.nodeSelected.projectName||this.ideInfo.currProj?.data?.name}}else this.currentProject=this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name},buildDirectoryTree(e,t=0,i=null){let o=[];if(0===t){const t=e.children&&e.children.some(e=>("dir"===e.type||"folder"===e.type)&&this.isDirectoryVisibleToStudent(e.path)),s={name:i||e.label||"/",displayName:i||e.label||"/",path:e.path||"/",level:0,isRoot:!0,hasChildren:t,projectName:i||e.label,fullPath:i?`${i}${e.path}`:e.path};o.push(s),t&&this.expandedDirectories.add(s.path)}return e.children&&e.children.forEach(e=>{if(("dir"===e.type||"folder"===e.type)&&this.isDirectoryVisibleToStudent(e.path)){const s=e.children&&e.children.some(e=>("dir"===e.type||"folder"===e.type)&&this.isDirectoryVisibleToStudent(e.path));o.push({name:e.label,displayName:e.label,path:e.path,level:t+1,isRoot:!1,hasChildren:s,projectName:i||e.projectName,fullPath:i?`${i}${e.path}`:e.path}),e.children&&(o=o.concat(this.buildDirectoryTree(e,t+1,i)))}}),o},getParentPath(e){if("/"===e||!e)return"/";const t=e.lastIndexOf("/");return 0===t?"/":e.substring(0,t)},isExpanded(e){return this.expandedDirectories.has(e)},toggleDirectory(e){e.hasChildren&&(this.expandedDirectories.has(e.path)?this.expandedDirectories.delete(e.path):this.expandedDirectories.add(e.path))},selectDirectory(e){this.currentPath=e.path,this.currentProject=e.projectName,this.showDirectoryTree=!1},toggleDirectoryTree(){this.showDirectoryTree=!this.showDirectoryTree},formatCurrentPath(e){if(e&&"/"!==e){const t=["Local","Lecture Notes"];for(let i of t)if(e.startsWith(i))return e}if(this.currentProject)return"/"===e?this.currentUser&&"student"===this.currentUser.role&&"Local"===this.currentProject?`Local/${this.currentUser.username}`:this.currentProject:e.startsWith(this.currentProject)?e:this.currentProject+e;if("/"===e&&this.ideInfo.currProj)return this.ideInfo.currProj.data?.label||this.ideInfo.currProj.config?.name;if(e.startsWith("/")&&this.ideInfo.currProj){const t=this.ideInfo.currProj.data?.label||this.ideInfo.currProj.config?.name;return e.includes(t)?e:t+e}return e},validateFileName(){if(this.fileNameError="",!this.fileName)return;if(/[<>:"|?*\\]/.test(this.fileName))return void(this.fileNameError="File name contains invalid characters");const e=["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"],t=this.fileName.split(".")[0].toUpperCase();if(e.includes(t))return void(this.fileNameError="This is a reserved file name");if(this.fileName.startsWith(".")||this.fileName.endsWith("."))return void(this.fileNameError="File name cannot start or end with a dot");const i=this.currentProject||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name,o=this.checkFileExists(this.fileName,this.currentPath,i);o?this.fileNameError="A file with this name already exists (keep a unique file name)":this.fileExtension||(this.fileNameError="Consider adding a file extension (e.g., .py, .txt)")},getFullFilePath(){const e=this.fileName||"new_file",t="/"===this.currentPath?`/${e}`:`${this.currentPath}/${e}`;return this.formatCurrentPath(t)},getFileTypeDescription(){const e=this.fileExtension.toLowerCase(),t={".py":"Python Script",".txt":"Text File",".csv":"CSV Data File",".json":"JSON Data File",".md":"Markdown Document",".html":"HTML Document",".css":"CSS Stylesheet",".js":"JavaScript File",".xml":"XML Document",".yaml":"YAML Configuration",".yml":"YAML Configuration",".ini":"Configuration File",".log":"Log File"};return t[e]||"File"},checkFileExists(e,t,i){const o=(e,t,i)=>{if(!e||!e.children)return null;if(e.path===t)return e.children.find(e=>"file"===e.type&&(e.label===i||e.name===i));for(let s of e.children){const e=o(s,t,i);if(e)return e}return null};if(this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0){for(let s of this.ideInfo.multiRootData.children)if(s.name===i||s.label===i)return o(s,t,e)}else if(this.ideInfo.currProj&&this.ideInfo.currProj.data)return o(this.ideInfo.currProj.data,t,e);return null},async onCreate(){if(!this.fileName||this.fileNameError)return;const e=this.fileName;let t=this.currentPath,i=this.currentProject||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name;this.currentUser&&"student"===this.currentUser.role&&"Local"===i&&("/"===t||t===`Local/${this.currentUser.username}`?(t=`Local/${this.currentUser.username}`,i=""):(t.startsWith(`Local/${this.currentUser.username}/`)||(t=`Local/${this.currentUser.username}${"/"===t?"":t}`),i=""));const o=this.checkFileExists(e,t,i);if(o)try{await pi.s.confirm(`A file named "${e}" already exists in this directory. Creating this file will replace the existing file.`,"File Already Exists",{confirmButtonText:"Replace File",cancelButtonText:"Cancel",type:"warning",confirmButtonClass:"el-button--danger"})}catch{return}this.creating=!0;try{ui.log("[DialogNewFile] Creating file:",{fileName:e,parentPath:t,projectName:i,replaceExisting:!!o});let s="";const n=this.fileExtension.toLowerCase();".py"===n?s="":".json"===n&&(s="{}"),await new Promise((o,n)=>{this.$store.dispatch(`ide/${ut.Zd}`,{projectName:i,parentPath:t,fileName:e,callback:a=>{if(ui.log("[DialogNewFile] Create file response:",a),0===a.code){if(Ee.nk.success(`File "${e}" created successfully`),s){const n="/"===t?`/${e}`:`${t}/${e}`;this.$store.dispatch(`ide/${ut._L}`,{projectName:i,filePath:n,fileData:s,callback:e=>{ui.log("[DialogNewFile] Write file response:",e),o()}})}else o();this.$store.dispatch(`ide/${ut.QQ}`,{projectName:i,callback:e=>{0===e.code&&(this.$store.commit("ide/handleProject",e.data),this.ideInfo.multiRootData&&this.$parent.loadAllDefaultProjects?.())}});const n="/"===t?`/${e}`:`${t}/${e}`;this.$emit("file-created",{path:n,projectName:i}),this.$emit("update:modelValue",!1)}else{const e=a.message||"Failed to create file";Ee.nk.error(e),n(new Error(e))}}})})}catch(Er){ui.error("[DialogNewFile] Error creating file:",Er),Ee.nk.error("Failed to create file: "+Er.message)}finally{this.creating=!1}},onCancel(){this.$emit("update:modelValue",!1)}}};const fi=(0,k.A)(mi,[["render",ci],["__scopeId","data-v-2c0ff972"]]);var gi=fi,vi=i(22542),wi=i(7093),yi=i(22164),bi=i(94411),ki=i(32104),Ii=i(42258),Pi=i(37093),Si=i(98095);const Ci={key:0,class:"fullscreen-preview"},Li={class:"preview-header"},Fi={class:"preview-header-left"},Ei={class:"preview-title"},xi={class:"preview-header-right"},Di={class:"preview-content"},Ri={key:2,class:"unsupported-preview"};function Ti(e,t,i,s,a,r){const l=ki.A,d=Ii.A;return r.isActive?((0,o.uX)(),(0,o.CE)("div",Ci,[(0,o.Lk)("div",Li,[(0,o.Lk)("div",Fi,[(0,o.Lk)("span",Ei,(0,n.v_)(r.fileName),1)]),(0,o.Lk)("div",xi,[(0,o.Lk)("button",{class:"preview-action-btn",onClick:t[0]||(t[0]=(...e)=>r.openInRightPanel&&r.openInRightPanel(...e)),title:"Open in Right Panel"},t[2]||(t[2]=[(0,o.Lk)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[(0,o.Lk)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,o.Lk)("path",{d:"M15 3v18"})],-1)])),(0,o.Lk)("button",{class:"preview-close-btn",onClick:t[1]||(t[1]=(...e)=>r.close&&r.close(...e)),title:"Close Preview"},t[3]||(t[3]=[(0,o.Lk)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[(0,o.Lk)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,o.Lk)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)]))])]),(0,o.Lk)("div",Di,[r.isCsvFile?((0,o.uX)(),(0,o.Wv)(l,{key:0,content:r.content},null,8,["content"])):r.isMediaFile?((0,o.uX)(),(0,o.Wv)(d,{key:1,codeItem:r.mediaCodeItem,codeItemIndex:0},null,8,["codeItem"])):((0,o.uX)(),(0,o.CE)("div",Ri,t[4]||(t[4]=[(0,o.Lk)("p",null,"Preview not supported for this file type",-1)])))])])):(0,o.Q3)("",!0)}var $i={name:"FullscreenPreview",components:{CsvViewer:ki.A,MediaViewer:Ii.A},computed:{ideInfo(){return this.$store.state.ide.ideInfo},isActive(){return this.ideInfo.fullscreenPreview.active},file(){return this.ideInfo.fullscreenPreview.file},content(){return this.ideInfo.fullscreenPreview.content},fileName(){return this.file?.name||""},filePath(){return this.file?.path||""},isCsvFile(){return this.filePath.toLowerCase().endsWith(".csv")},isMediaFile(){const e=[".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".pdf"],t=this.filePath.toLowerCase();return e.some(e=>t.endsWith(e))},mediaCodeItem(){return this.file?{name:this.file.name,path:this.file.path,projectName:this.file.projectName,content:this.content,preloaded:!0}:null}},methods:{close(){this.$store.commit("ide/closeFullscreenPreview")},openInRightPanel(){this.$store.commit("ide/closeFullscreenPreview"),this.file&&this.$emit("open-in-right-panel",this.file.path)}},mounted(){this.handleEsc=e=>{"Escape"===e.key&&this.isActive&&this.close()},document.addEventListener("keydown",this.handleEsc)},beforeUnmount(){document.removeEventListener("keydown",this.handleEsc)}};const ji=(0,k.A)($i,[["render",Ti],["__scopeId","data-v-3c263865"]]);var Ni=ji,Mi=i(703);const Ai={class:"modal-header"},_i={class:"modal-body"},Ui={class:"input-group"},Oi={key:0,class:"input-group"},Wi={class:"options-group"},Vi={class:"checkbox-label"},zi={class:"checkbox-label"},Bi={class:"checkbox-label"},Xi={key:1,class:"search-info"},Hi={class:"modal-footer"},Ki={class:"button-group"},Gi=["disabled"],Qi=["disabled"],Ji=["disabled"],qi=["disabled"];function Yi(e,t,i,a,r,l){const d=(0,o.g2)("X"),c=(0,o.g2)("ChevronUp"),h=(0,o.g2)("ChevronDown");return(0,o.uX)(),(0,o.Wv)(s.eB,{name:"modal-fade"},{default:(0,o.k6)(()=>[i.modelValue?((0,o.uX)(),(0,o.CE)("div",{key:0,class:"find-replace-overlay",onClick:t[16]||(t[16]=(0,s.D$)((...e)=>l.close&&l.close(...e),["self"]))},[(0,o.Lk)("div",{class:"find-replace-modal",onClick:t[15]||(t[15]=(0,s.D$)(()=>{},["stop"]))},[(0,o.Lk)("div",Ai,[(0,o.Lk)("h3",null,(0,n.v_)(l.isReplaceMode?"Find and Replace":"Find"),1),(0,o.Lk)("button",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.close&&l.close(...e)),title:"Close (Esc)"},[(0,o.bF)(d,{size:18})])]),(0,o.Lk)("div",_i,[(0,o.Lk)("div",Ui,[t[17]||(t[17]=(0,o.Lk)("label",null,"Find:",-1)),(0,o.bo)((0,o.Lk)("input",{ref:"findInput","onUpdate:modelValue":t[1]||(t[1]=e=>r.findText=e),type:"text",class:"modal-input",placeholder:"Enter text to find...",onKeydown:[t[2]||(t[2]=(0,s.jR)((...e)=>l.findNext&&l.findNext(...e),["enter"])),t[3]||(t[3]=(0,s.jR)((...e)=>l.close&&l.close(...e),["escape"]))]},null,544),[[s.Jo,r.findText]])]),l.isReplaceMode?((0,o.uX)(),(0,o.CE)("div",Oi,[t[18]||(t[18]=(0,o.Lk)("label",null,"Replace with:",-1)),(0,o.bo)((0,o.Lk)("input",{"onUpdate:modelValue":t[4]||(t[4]=e=>r.replaceText=e),type:"text",class:"modal-input",placeholder:"Enter replacement text...",onKeydown:[t[5]||(t[5]=(0,s.jR)((...e)=>l.replace&&l.replace(...e),["enter"])),t[6]||(t[6]=(0,s.jR)((...e)=>l.close&&l.close(...e),["escape"]))]},null,544),[[s.Jo,r.replaceText]])])):(0,o.Q3)("",!0),(0,o.Lk)("div",Wi,[(0,o.Lk)("label",Vi,[(0,o.bo)((0,o.Lk)("input",{type:"checkbox","onUpdate:modelValue":t[7]||(t[7]=e=>r.caseSensitive=e)},null,512),[[s.lH,r.caseSensitive]]),t[19]||(t[19]=(0,o.Lk)("span",null,"Case sensitive",-1))]),(0,o.Lk)("label",zi,[(0,o.bo)((0,o.Lk)("input",{type:"checkbox","onUpdate:modelValue":t[8]||(t[8]=e=>r.wholeWord=e)},null,512),[[s.lH,r.wholeWord]]),t[20]||(t[20]=(0,o.Lk)("span",null,"Whole word",-1))]),(0,o.Lk)("label",Bi,[(0,o.bo)((0,o.Lk)("input",{type:"checkbox","onUpdate:modelValue":t[9]||(t[9]=e=>r.useRegex=e)},null,512),[[s.lH,r.useRegex]]),t[21]||(t[21]=(0,o.Lk)("span",null,"Regular expression",-1))])]),r.searchInfo?((0,o.uX)(),(0,o.CE)("div",Xi,(0,n.v_)(r.searchInfo),1)):(0,o.Q3)("",!0)]),(0,o.Lk)("div",Hi,[(0,o.Lk)("div",Ki,[(0,o.Lk)("button",{class:"action-btn",onClick:t[10]||(t[10]=(...e)=>l.findPrevious&&l.findPrevious(...e)),disabled:!r.findText},[(0,o.bF)(c,{size:16}),t[22]||(t[22]=(0,o.eW)(" Find Previous ",-1))],8,Gi),(0,o.Lk)("button",{class:"action-btn primary",onClick:t[11]||(t[11]=(...e)=>l.findNext&&l.findNext(...e)),disabled:!r.findText},[(0,o.bF)(h,{size:16}),t[23]||(t[23]=(0,o.eW)(" Find Next ",-1))],8,Qi),l.isReplaceMode?((0,o.uX)(),(0,o.CE)(o.FK,{key:0},[(0,o.Lk)("button",{class:"action-btn",onClick:t[12]||(t[12]=(...e)=>l.replace&&l.replace(...e)),disabled:!r.findText}," Replace ",8,Ji),(0,o.Lk)("button",{class:"action-btn",onClick:t[13]||(t[13]=(...e)=>l.replaceAll&&l.replaceAll(...e)),disabled:!r.findText}," Replace All ",8,qi)],64)):(0,o.Q3)("",!0),(0,o.Lk)("button",{class:"action-btn",onClick:t[14]||(t[14]=(...e)=>l.close&&l.close(...e))}," Close ")])])])])):(0,o.Q3)("",!0)]),_:1})} -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const Zi=(0,Ce.A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var eo={name:"FindReplaceModal",components:{X:w.A,ChevronUp:Zi,ChevronDown:ht.A},props:{modelValue:{type:Boolean,default:!1},mode:{type:String,default:"find",validator:e=>["find","replace"].includes(e)}},data(){return{findText:"",replaceText:"",caseSensitive:!1,wholeWord:!1,useRegex:!1,searchInfo:"",currentMatch:0,totalMatches:0,searchCursor:null}},computed:{isReplaceMode(){return"replace"===this.mode},activeEditor(){const e=document.querySelector(".editor-content .code-editor-flex .CodeMirror");return e&&e.CodeMirror?e.CodeMirror:null}},watch:{modelValue(e){e?this.$nextTick(()=>{this.$refs.findInput?.focus(),this.initializeSearch()}):this.clearSearch()},findText(){this.findText?this.updateSearchInfo():(this.searchInfo="",this.clearSearch())}},methods:{initializeSearch(){if(this.activeEditor){const e=this.activeEditor.getSelection();e&&(this.findText=e)}},clearSearch(){this.activeEditor&&this.activeEditor.operation(()=>{const e=this.activeEditor.getAllMarks();e.forEach(e=>{"CodeMirror-search-match"===e.className&&e.clear()})}),this.searchCursor=null,this.currentMatch=0,this.totalMatches=0,this.searchInfo=""},getSearchQuery(){let e=this.findText;this.useRegex||(e=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),this.wholeWord&&(e="\\b"+e+"\\b");try{return new RegExp(e,this.caseSensitive?"g":"gi")}catch(t){return this.findText}},findNext(){if(!this.findText||!this.activeEditor)return;const e=this.getSearchQuery(),t=this.activeEditor.getSearchCursor(e,this.activeEditor.getCursor(),!this.caseSensitive);if(t.findNext())this.activeEditor.setSelection(t.from(),t.to()),this.activeEditor.scrollIntoView(t.from(),50),this.highlightMatch(t);else{const t=this.activeEditor.getSearchCursor(e,{line:0,ch:0},!this.caseSensitive);t.findNext()?(this.activeEditor.setSelection(t.from(),t.to()),this.activeEditor.scrollIntoView(t.from(),50),this.highlightMatch(t),this.searchInfo="Wrapped to beginning"):this.searchInfo="No matches found"}this.updateSearchInfo()},findPrevious(){if(!this.findText||!this.activeEditor)return;const e=this.getSearchQuery(),t=this.activeEditor.getSearchCursor(e,this.activeEditor.getCursor("from"),!this.caseSensitive);if(t.findPrevious())this.activeEditor.setSelection(t.from(),t.to()),this.activeEditor.scrollIntoView(t.from(),50),this.highlightMatch(t);else{const t=this.activeEditor.lastLine(),i=this.activeEditor.getLine(t).length,o=this.activeEditor.getSearchCursor(e,{line:t,ch:i},!this.caseSensitive);o.findPrevious()?(this.activeEditor.setSelection(o.from(),o.to()),this.activeEditor.scrollIntoView(o.from(),50),this.highlightMatch(o),this.searchInfo="Wrapped to end"):this.searchInfo="No matches found"}this.updateSearchInfo()},replace(){if(!this.findText||!this.activeEditor)return;const e=this.activeEditor.getSelection(),t=this.getSearchQuery();e&&("string"===typeof t&&e===t||t instanceof RegExp&&t.test(e))?(this.activeEditor.replaceSelection(this.replaceText),this.findNext()):this.findNext()},replaceAll(){if(!this.findText||!this.activeEditor)return;const e=this.getSearchQuery(),t=this.activeEditor.getSearchCursor(e,{line:0,ch:0},!this.caseSensitive);let i=0;this.activeEditor.operation(()=>{while(t.findNext())t.replace(this.replaceText),i++}),this.searchInfo=`Replaced ${i} occurrence${1!==i?"s":""}`},highlightMatch(e){},updateSearchInfo(){if(!this.findText||!this.activeEditor)return void(this.searchInfo="");const e=this.getSearchQuery(),t=this.activeEditor.getSearchCursor(e,{line:0,ch:0},!this.caseSensitive);let i=0;while(t.findNext())i++;this.searchInfo=0===i?"No matches found":1===i?"1 match found":`${i} matches found`},close(){this.clearSearch(),this.$emit("update:modelValue",!1)},handleKeydown(e){"Escape"===e.key?this.close():("F3"===e.key||e.ctrlKey&&"g"===e.key)&&(e.preventDefault(),e.shiftKey?this.findPrevious():this.findNext())}},mounted(){document.addEventListener("keydown",this.handleKeydown)},beforeUnmount(){document.removeEventListener("keydown",this.handleKeydown),this.clearSearch()}};const to=(0,k.A)(eo,[["render",Yi],["__scopeId","data-v-28db288f"]]);var io=to;const oo={class:"modal-container"},so={class:"modal-header"},no={class:"modal-body"},ao={class:"shortcut-section"},ro={class:"shortcut-list"},lo={class:"shortcut-item"},co={class:"shortcut-keys"},ho={class:"shortcut-item"},po={class:"shortcut-keys"},uo={class:"shortcut-item"},mo={class:"shortcut-keys"};function fo(e,t,i,a,r,l){const d=(0,o.g2)("X");return(0,o.uX)(),(0,o.Wv)(s.eB,{name:"modal-fade"},{default:(0,o.k6)(()=>[i.modelValue?((0,o.uX)(),(0,o.CE)("div",{key:0,class:"modal-overlay",onClick:t[1]||(t[1]=(0,s.D$)((...e)=>l.close&&l.close(...e),["self"]))},[(0,o.Lk)("div",oo,[(0,o.Lk)("div",so,[(0,o.Lk)("h2",null,"Keyboard Shortcuts "+(0,n.v_)(l.isMac?"(Mac)":"(Windows/Linux)"),1),(0,o.Lk)("button",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.close&&l.close(...e))},[(0,o.bF)(d,{size:20})])]),(0,o.Lk)("div",no,[t[6]||(t[6]=(0,o.Lk)("div",{class:"shortcut-section"},[(0,o.Lk)("h3",null,"File Operations"),(0,o.Lk)("div",{class:"shortcut-list"},[(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"New File"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+Alt+N")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Open File"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+O")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Save"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+S")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Save As"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+Shift+S")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Move"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+Shift+M")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Download"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+D")])])],-1)),t[7]||(t[7]=(0,o.Lk)("div",{class:"shortcut-section"},[(0,o.Lk)("h3",null,"Edit Operations"),(0,o.Lk)("div",{class:"shortcut-list"},[(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Undo"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+Z")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Redo"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+Y")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Cut"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+X")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Copy"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+C")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Paste"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+V")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Select All"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+A")])])],-1)),t[8]||(t[8]=(0,o.Lk)("div",{class:"shortcut-section"},[(0,o.Lk)("h3",null,"Run Operations"),(0,o.Lk)("div",{class:"shortcut-list"},[(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Run Script"),(0,o.Lk)("span",{class:"shortcut-keys"},"F5")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Stop Script"),(0,o.Lk)("span",{class:"shortcut-keys"},"Shift+F5")])])],-1)),t[9]||(t[9]=(0,o.Lk)("div",{class:"shortcut-section"},[(0,o.Lk)("h3",null,"View Operations"),(0,o.Lk)("div",{class:"shortcut-list"},[(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Toggle Console"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+`")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Toggle Preview Panel"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+Shift+P")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Toggle Sidebar"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+B")])])],-1)),(0,o.Lk)("div",ao,[t[5]||(t[5]=(0,o.Lk)("h3",null,"Tab Navigation",-1)),(0,o.Lk)("div",ro,[(0,o.Lk)("div",lo,[t[2]||(t[2]=(0,o.Lk)("span",{class:"shortcut-action"},"Previous Tab",-1)),(0,o.Lk)("span",co,(0,n.v_)(l.formatKey("Alt"))+"+←",1)]),(0,o.Lk)("div",ho,[t[3]||(t[3]=(0,o.Lk)("span",{class:"shortcut-action"},"Next Tab",-1)),(0,o.Lk)("span",po,(0,n.v_)(l.formatKey("Alt"))+"+→",1)]),(0,o.Lk)("div",uo,[t[4]||(t[4]=(0,o.Lk)("span",{class:"shortcut-action"},"Go to Tab 1-6",-1)),(0,o.Lk)("span",mo,(0,n.v_)(l.formatKey("Alt"))+"+1-6",1)])])]),t[10]||(t[10]=(0,o.Lk)("div",{class:"shortcut-section"},[(0,o.Lk)("h3",null,"General"),(0,o.Lk)("div",{class:"shortcut-list"},[(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Show Keyboard Shortcuts"),(0,o.Lk)("span",{class:"shortcut-keys"},"F1")]),(0,o.Lk)("div",{class:"shortcut-item"},[(0,o.Lk)("span",{class:"shortcut-action"},"Settings"),(0,o.Lk)("span",{class:"shortcut-keys"},"Ctrl+,")])])],-1))])])])):(0,o.Q3)("",!0)]),_:1})}var go={name:"KeyboardShortcutsModal",props:{modelValue:{type:Boolean,default:!1}},components:{X:w.A},computed:{isMac(){return navigator.platform.toUpperCase().indexOf("MAC")>=0}},methods:{close(){this.$emit("update:modelValue",!1)},formatKey(e){return this.isMac?e.replace("Ctrl","⌘").replace("Alt","⌥").replace("Shift","⇧"):e}},mounted(){this.handleEsc=e=>{"Escape"===e.key&&this.modelValue&&this.close()},document.addEventListener("keydown",this.handleEsc)},beforeUnmount(){document.removeEventListener("keydown",this.handleEsc)}};const vo=(0,k.A)(go,[["render",fo],["__scopeId","data-v-6e26e148"]]);var wo=vo,yo=i(3549);const bo={class:"profile-modal"},ko={class:"dialog-header"},Io={class:"dialog-body"},Po={class:"tab-navigation"},So=["onClick"],Co={class:"tab-content"},Lo={key:0,class:"profile-section"},Fo={class:"user-info"},Eo={class:"info-row"},xo={class:"info-row"},Do={class:"info-row"},Ro={class:"info-row"},To={class:"session-id"},$o={key:1,class:"password-section"},jo={class:"form-group"},No=["disabled"],Mo={class:"form-group"},Ao=["disabled"],_o={class:"form-group"},Uo=["disabled"],Oo={class:"form-actions"},Wo=["disabled"],Vo={class:"dialog-footer"};function zo(e,t,i,a,r,l){const d=(0,o.g2)("X"),c=(0,o.g2)("LogOut");return l.visible?((0,o.uX)(),(0,o.CE)("div",{key:0,class:"profile-modal-overlay",onClick:t[8]||(t[8]=(0,s.D$)((...e)=>l.handleClose&&l.handleClose(...e),["self"]))},[(0,o.Lk)("div",bo,[(0,o.Lk)("div",ko,[(0,o.Lk)("h3",null,(0,n.v_)(i.currentUser?`${i.currentUser.full_name||i.currentUser.username}`:"User Profile"),1),(0,o.Lk)("div",{class:"close-btn",onClick:t[0]||(t[0]=(...e)=>l.handleClose&&l.handleClose(...e))},[(0,o.bF)(d,{size:20})])]),(0,o.Lk)("div",Io,[(0,o.Lk)("div",Po,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.tabs,e=>((0,o.uX)(),(0,o.CE)("button",{key:e.id,onClick:t=>r.activeTab=e.id,class:(0,n.C4)(["tab-btn",{active:r.activeTab===e.id}])},[((0,o.uX)(),(0,o.Wv)((0,o.$y)(e.icon),{size:16})),(0,o.eW)(" "+(0,n.v_)(e.label),1)],10,So))),128))]),(0,o.Lk)("div",Co,["profile"===r.activeTab?((0,o.uX)(),(0,o.CE)("div",Lo,[(0,o.Lk)("div",Fo,[(0,o.Lk)("div",Eo,[t[9]||(t[9]=(0,o.Lk)("label",null,"Username:",-1)),(0,o.Lk)("span",null,(0,n.v_)(i.currentUser?.username),1)]),(0,o.Lk)("div",xo,[t[10]||(t[10]=(0,o.Lk)("label",null,"Full Name:",-1)),(0,o.Lk)("span",null,(0,n.v_)(i.currentUser?.full_name||"Not set"),1)]),(0,o.Lk)("div",Do,[t[11]||(t[11]=(0,o.Lk)("label",null,"Role:",-1)),(0,o.Lk)("span",{class:(0,n.C4)(["role-badge",i.currentUser?.role])},(0,n.v_)("professor"===i.currentUser?.role?"Professor":"Student"),3)]),(0,o.Lk)("div",Ro,[t[12]||(t[12]=(0,o.Lk)("label",null,"Session:",-1)),(0,o.Lk)("span",To,(0,n.v_)(r.sessionId?.substring(0,20))+"...",1)])])])):(0,o.Q3)("",!0),"change-password"===r.activeTab?((0,o.uX)(),(0,o.CE)("div",$o,[(0,o.Lk)("form",{onSubmit:t[5]||(t[5]=(0,s.D$)((...e)=>l.changePassword&&l.changePassword(...e),["prevent"]))},[(0,o.Lk)("div",jo,[t[13]||(t[13]=(0,o.Lk)("label",null,"Current Password",-1)),(0,o.bo)((0,o.Lk)("input",{"onUpdate:modelValue":t[1]||(t[1]=e=>r.passwordForm.currentPassword=e),type:"password",placeholder:"Enter your current password",disabled:r.loading},null,8,No),[[s.Jo,r.passwordForm.currentPassword]])]),(0,o.Lk)("div",Mo,[t[14]||(t[14]=(0,o.Lk)("label",null,"New Password",-1)),(0,o.bo)((0,o.Lk)("input",{"onUpdate:modelValue":t[2]||(t[2]=e=>r.passwordForm.newPassword=e),type:"password",placeholder:"Enter new password (min 6 characters)",disabled:r.loading},null,8,Ao),[[s.Jo,r.passwordForm.newPassword]])]),(0,o.Lk)("div",_o,[t[15]||(t[15]=(0,o.Lk)("label",null,"Confirm New Password",-1)),(0,o.bo)((0,o.Lk)("input",{"onUpdate:modelValue":t[3]||(t[3]=e=>r.passwordForm.confirmPassword=e),type:"password",placeholder:"Confirm new password",disabled:r.loading},null,8,Uo),[[s.Jo,r.passwordForm.confirmPassword]])]),(0,o.Lk)("div",Oo,[(0,o.Lk)("button",{type:"submit",class:"btn-primary",disabled:r.loading},(0,n.v_)(r.loading?"Changing...":"Change Password"),9,Wo),(0,o.Lk)("button",{type:"button",class:"btn-secondary",onClick:t[4]||(t[4]=(...e)=>l.resetPasswordForm&&l.resetPasswordForm(...e))}," Reset ")])],32)])):(0,o.Q3)("",!0)])]),(0,o.Lk)("div",Vo,["profile"===r.activeTab?((0,o.uX)(),(0,o.CE)("button",{key:0,class:"btn-danger",onClick:t[6]||(t[6]=(...e)=>l.handleLogout&&l.handleLogout(...e))},[(0,o.bF)(c,{size:16}),t[16]||(t[16]=(0,o.eW)(" Logout ",-1))])):(0,o.Q3)("",!0),(0,o.Lk)("button",{class:"btn-secondary",onClick:t[7]||(t[7]=(...e)=>l.handleClose&&l.handleClose(...e))},"Close")])])])):(0,o.Q3)("",!0)} -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const Bo=(0,Ce.A)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),Xo=(0,Ce.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"}]]),Ho=(0,Ce.A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),Ko=(0,Ce.A)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),Go=(0,Ce.A)("mail",[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]),Qo=(0,Ce.A)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);var Jo=i(96763),qo={name:"UserProfileModal",props:{modelValue:{type:Boolean,default:!1},currentUser:{type:Object,default:null}},emits:["update:modelValue","logout","password-changed"],components:{User:Bo,Lock:Xo,HelpCircle:Ho,LogOut:Ko,Mail:Go,MessageSquare:Qo,X:w.A},data(){return{activeTab:"profile",loading:!1,passwordVerified:!1,sessionId:localStorage.getItem("session_id"),tabs:[{id:"profile",label:"Profile",icon:"User"},{id:"change-password",label:"Change Password",icon:"Lock"}],passwordForm:{currentPassword:"",newPassword:"",confirmPassword:""},forgotForm:{currentPassword:"",newPassword:"",confirmPassword:""}}},computed:{visible:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{handleClose(){this.visible=!1,this.resetAllForms()},async handleLogout(){try{const e=await fetch("/api/logout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:this.sessionId})}),t=await e.json();t.success?(localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("role"),localStorage.removeItem("full_name"),Ee.nk.success("Logged out successfully"),this.handleClose(),this.$emit("logout"),setTimeout(()=>{window.location.reload()},1e3)):Ee.nk.error("Logout failed. Please try again.")}catch(Er){Jo.error("Logout error:",Er),Ee.nk.error("Network error during logout")}},async changePassword(){if(this.passwordForm.currentPassword)if(!this.passwordForm.newPassword||this.passwordForm.newPassword.length<6)Ee.nk.warning("New password must be at least 6 characters");else if(this.passwordForm.newPassword===this.passwordForm.confirmPassword){this.loading=!0;try{const e=await fetch("/api/change-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:this.sessionId,old_password:this.passwordForm.currentPassword,new_password:this.passwordForm.newPassword})}),t=await e.json();t.success?(Ee.nk.success("Password changed successfully!"),this.$emit("password-changed"),this.resetPasswordForm(),this.activeTab="profile"):Ee.nk.error(t.error||"Failed to change password")}catch(Er){Ee.nk.error("Network error. Please try again.")}finally{this.loading=!1}}else Ee.nk.warning("Passwords do not match");else Ee.nk.warning("Please enter your current password")},async verifyCurrentPassword(){if(this.forgotForm.currentPassword){this.loading=!0;try{const e=await fetch("/api/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:this.currentUser.username,password:this.forgotForm.currentPassword})}),t=await e.json();t.success?(this.passwordVerified=!0,Ee.nk.success("Password verified! Now enter your new password.")):Ee.nk.error("Incorrect password. Please try again.")}catch(Er){Ee.nk.error("Network error. Please try again.")}finally{this.loading=!1}}else Ee.nk.warning("Please enter your current password")},async resetPasswordWithVerification(){if(this.passwordVerified)if(!this.forgotForm.newPassword||this.forgotForm.newPassword.length<6)Ee.nk.warning("New password must be at least 6 characters");else if(this.forgotForm.newPassword===this.forgotForm.confirmPassword){this.loading=!0;try{const e=await fetch("/api/change-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:this.sessionId,old_password:this.forgotForm.currentPassword,new_password:this.forgotForm.newPassword})}),t=await e.json();t.success?(Ee.nk.success("Password reset successfully!"),this.$emit("password-changed"),this.resetForgotForm(),this.activeTab="profile"):Ee.nk.error(t.error||"Failed to reset password")}catch(Er){Ee.nk.error("Network error. Please try again.")}finally{this.loading=!1}}else Ee.nk.warning("Passwords do not match");else Ee.nk.warning("Please verify your current password first")},resetPasswordForm(){this.passwordForm={currentPassword:"",newPassword:"",confirmPassword:""}},resetForgotForm(){this.forgotForm={currentPassword:"",newPassword:"",confirmPassword:""},this.passwordVerified=!1},resetAllForms(){this.resetPasswordForm(),this.resetForgotForm(),this.activeTab="profile"}}};const Yo=(0,k.A)(qo,[["render",zo],["__scopeId","data-v-7228530a"]]);var Zo=Yo;const es={class:"two-header-container"},ts={class:"header-first"},is={class:"nav-menu"},os={class:"nav__items-left"},ss={class:"nav__item"},ns=["aria-expanded"],as={class:"nav__dropdown-item"},rs={class:"nav__dropdown-item"},ls={class:"nav__dropdown-item"},ds=["disabled"],cs={class:"nav__dropdown-item"},hs={class:"nav__dropdown-item"},ps=["disabled"],us={class:"nav__dropdown-item"},ms=["disabled"],fs={class:"nav__dropdown-item"},gs={class:"nav__item"},vs=["aria-expanded"],ws={class:"nav__dropdown-item"},ys={class:"nav__dropdown-item"},bs={class:"nav__dropdown-item"},ks={class:"nav__dropdown-item"},Is={class:"nav__dropdown-item"},Ps={class:"nav__dropdown-item"},Ss={class:"nav__item"},Cs=["aria-expanded"],Ls={class:"nav__dropdown-item"},Fs={class:"nav__dropdown-item"},Es={class:"nav__dropdown-item"},xs={class:"nav__item"},Ds=["aria-expanded"],Rs={class:"nav__dropdown-item"},Ts={class:"nav__dropdown-item"},$s={class:"nav__dropdown-item"},js={class:"nav__item"},Ns=["aria-expanded"],Ms={class:"nav__dropdown-item"},As={class:"header-right-section"},_s={class:"header-second"},Us={class:"header-second-center-container"},Os={class:"header-second-right"};function Ws(e,t,i,a,r,l){const d=(0,o.g2)("UserCircle"),c=(0,o.g2)("Play"),h=(0,o.g2)("Square"),p=(0,o.g2)("Save"),u=(0,o.g2)("Settings"),m=Zo;return(0,o.uX)(),(0,o.CE)("div",es,[(0,o.Lk)("div",ts,[(0,o.Lk)("nav",is,[(0,o.Lk)("ul",os,[(0,o.Lk)("li",ss,[(0,o.Lk)("button",{class:"nav__item-button",onClick:t[0]||(t[0]=(0,s.D$)(e=>l.toggleDropdown("file"),["stop"])),"aria-haspopup":"menu","aria-expanded":"file"===r.activeDropdown},t[37]||(t[37]=[(0,o.Lk)("span",{class:"nav__item-header"},"File",-1),(0,o.Lk)("svg",{class:"nav__item-triangle",width:"9",height:"6",viewBox:"0 0 9 6",xmlns:"http://www.w3.org/2000/svg"},[(0,o.Lk)("polygon",{points:"4.5 6 9 0 0 0",fill:"currentColor"})],-1)]),8,ns),(0,o.bo)((0,o.Lk)("ul",{class:"nav__dropdown",onClick:t[8]||(t[8]=(0,s.D$)(()=>{},["stop"]))},[(0,o.Lk)("li",as,[(0,o.Lk)("button",{onClick:t[1]||(t[1]=e=>l.newFile())},t[38]||(t[38]=[(0,o.Lk)("span",null,"New File",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+Alt+N",-1)]))]),(0,o.Lk)("li",rs,[(0,o.Lk)("button",{onClick:t[2]||(t[2]=e=>l.openFile())},t[39]||(t[39]=[(0,o.Lk)("span",null,"Open File",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+O",-1)]))]),(0,o.Lk)("li",ls,[(0,o.Lk)("button",{onClick:t[3]||(t[3]=e=>l.duplicateFile()),disabled:!l.hasSelectedFile},t[40]||(t[40]=[(0,o.Lk)("span",null,"Duplicate (Make a copy)",-1)]),8,ds)]),(0,o.Lk)("li",cs,[(0,o.Lk)("button",{onClick:t[4]||(t[4]=e=>l.saveFile())},t[41]||(t[41]=[(0,o.Lk)("span",null,"Save",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+S",-1)]))]),(0,o.Lk)("li",hs,[(0,o.Lk)("button",{onClick:t[5]||(t[5]=e=>l.saveAsFile()),disabled:!l.canSaveAsFile},t[42]||(t[42]=[(0,o.Lk)("span",null,"Save As",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+Shift+S",-1)]),8,ps)]),(0,o.Lk)("li",us,[(0,o.Lk)("button",{onClick:t[6]||(t[6]=e=>l.moveFile()),disabled:!l.hasSelectedFile},t[43]||(t[43]=[(0,o.Lk)("span",null,"Move",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+Shift+M",-1)]),8,ms)]),(0,o.Lk)("li",fs,[(0,o.Lk)("button",{onClick:t[7]||(t[7]=e=>l.downloadFile())},t[44]||(t[44]=[(0,o.Lk)("span",null,"Download",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+D",-1)]))])],512),[[s.aG,"file"===r.activeDropdown]])]),(0,o.Lk)("li",gs,[(0,o.Lk)("button",{class:"nav__item-button",onClick:t[9]||(t[9]=(0,s.D$)(e=>l.toggleDropdown("edit"),["stop"])),"aria-haspopup":"menu","aria-expanded":"edit"===r.activeDropdown},t[45]||(t[45]=[(0,o.Lk)("span",{class:"nav__item-header"},"Edit",-1),(0,o.Lk)("svg",{class:"nav__item-triangle",width:"9",height:"6",viewBox:"0 0 9 6",xmlns:"http://www.w3.org/2000/svg"},[(0,o.Lk)("polygon",{points:"4.5 6 9 0 0 0",fill:"currentColor"})],-1)]),8,vs),(0,o.bo)((0,o.Lk)("ul",{class:"nav__dropdown",onClick:t[16]||(t[16]=(0,s.D$)(()=>{},["stop"]))},[(0,o.Lk)("li",ws,[(0,o.Lk)("button",{onClick:t[10]||(t[10]=e=>l.undo())},t[46]||(t[46]=[(0,o.Lk)("span",null,"Undo",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+Z",-1)]))]),(0,o.Lk)("li",ys,[(0,o.Lk)("button",{onClick:t[11]||(t[11]=e=>l.redo())},t[47]||(t[47]=[(0,o.Lk)("span",null,"Redo",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+Y",-1)]))]),t[52]||(t[52]=(0,o.Lk)("li",{class:"nav__dropdown-divider"},null,-1)),(0,o.Lk)("li",bs,[(0,o.Lk)("button",{onClick:t[12]||(t[12]=e=>l.cut())},t[48]||(t[48]=[(0,o.Lk)("span",null,"Cut",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+X",-1)]))]),(0,o.Lk)("li",ks,[(0,o.Lk)("button",{onClick:t[13]||(t[13]=e=>l.copy())},t[49]||(t[49]=[(0,o.Lk)("span",null,"Copy",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+C",-1)]))]),(0,o.Lk)("li",Is,[(0,o.Lk)("button",{onClick:t[14]||(t[14]=e=>l.paste())},t[50]||(t[50]=[(0,o.Lk)("span",null,"Paste",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+V",-1)]))]),t[53]||(t[53]=(0,o.Lk)("li",{class:"nav__dropdown-divider"},null,-1)),(0,o.Lk)("li",Ps,[(0,o.Lk)("button",{onClick:t[15]||(t[15]=e=>l.comment())},t[51]||(t[51]=[(0,o.Lk)("span",null,"Comment",-1)]))])],512),[[s.aG,"edit"===r.activeDropdown]])]),(0,o.Lk)("li",Ss,[(0,o.Lk)("button",{class:"nav__item-button",onClick:t[17]||(t[17]=(0,s.D$)(e=>l.toggleDropdown("run"),["stop"])),"aria-haspopup":"menu","aria-expanded":"run"===r.activeDropdown},t[54]||(t[54]=[(0,o.Lk)("span",{class:"nav__item-header"},"Run",-1),(0,o.Lk)("svg",{class:"nav__item-triangle",width:"9",height:"6",viewBox:"0 0 9 6",xmlns:"http://www.w3.org/2000/svg"},[(0,o.Lk)("polygon",{points:"4.5 6 9 0 0 0",fill:"currentColor"})],-1)]),8,Cs),(0,o.bo)((0,o.Lk)("ul",{class:"nav__dropdown",onClick:t[21]||(t[21]=(0,s.D$)(()=>{},["stop"]))},[(0,o.Lk)("li",Ls,[(0,o.Lk)("button",{onClick:t[18]||(t[18]=e=>l.runScript())},t[55]||(t[55]=[(0,o.Lk)("span",null,"Run Script",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"F5",-1)]))]),(0,o.Lk)("li",Fs,[(0,o.Lk)("button",{onClick:t[19]||(t[19]=e=>l.stopScript())},t[56]||(t[56]=[(0,o.Lk)("span",null,"Stop",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Shift+F5",-1)]))]),(0,o.Lk)("li",Es,[(0,o.Lk)("button",{onClick:t[20]||(t[20]=e=>l.clearConsole())},t[57]||(t[57]=[(0,o.Lk)("span",null,"Clear Console",-1)]))])],512),[[s.aG,"run"===r.activeDropdown]])]),(0,o.Lk)("li",xs,[(0,o.Lk)("button",{class:"nav__item-button",onClick:t[22]||(t[22]=(0,s.D$)(e=>l.toggleDropdown("view"),["stop"])),"aria-haspopup":"menu","aria-expanded":"view"===r.activeDropdown},t[58]||(t[58]=[(0,o.Lk)("span",{class:"nav__item-header"},"View",-1),(0,o.Lk)("svg",{class:"nav__item-triangle",width:"9",height:"6",viewBox:"0 0 9 6",xmlns:"http://www.w3.org/2000/svg"},[(0,o.Lk)("polygon",{points:"4.5 6 9 0 0 0",fill:"currentColor"})],-1)]),8,Ds),(0,o.bo)((0,o.Lk)("ul",{class:"nav__dropdown",onClick:t[26]||(t[26]=(0,s.D$)(()=>{},["stop"]))},[(0,o.Lk)("li",Rs,[(0,o.Lk)("button",{onClick:t[23]||(t[23]=e=>l.toggleConsole())},[(0,o.Lk)("span",null,(0,n.v_)(r.consoleVisible?"Hide REPL":"Show REPL"),1),t[59]||(t[59]=(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+`",-1))])]),(0,o.Lk)("li",Ts,[(0,o.Lk)("button",{onClick:t[24]||(t[24]=e=>l.togglePreviewPanel())},[(0,o.Lk)("span",null,(0,n.v_)(r.previewPanelVisible?"Hide Right Panel":"Show Right Panel"),1),t[60]||(t[60]=(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+Shift+P",-1))])]),(0,o.Lk)("li",$s,[(0,o.Lk)("button",{onClick:t[25]||(t[25]=e=>l.toggleSidebar())},[(0,o.Lk)("span",null,(0,n.v_)(r.sidebarVisible?"Hide Sidebar":"Show Sidebar"),1),t[61]||(t[61]=(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"Ctrl+B",-1))])])],512),[[s.aG,"view"===r.activeDropdown]])]),(0,o.Lk)("li",js,[(0,o.Lk)("button",{class:"nav__item-button",onClick:t[27]||(t[27]=(0,s.D$)(e=>l.toggleDropdown("help"),["stop"])),"aria-haspopup":"menu","aria-expanded":"help"===r.activeDropdown},t[62]||(t[62]=[(0,o.Lk)("span",{class:"nav__item-header"},"Help",-1),(0,o.Lk)("svg",{class:"nav__item-triangle",width:"9",height:"6",viewBox:"0 0 9 6",xmlns:"http://www.w3.org/2000/svg"},[(0,o.Lk)("polygon",{points:"4.5 6 9 0 0 0",fill:"currentColor"})],-1)]),8,Ns),(0,o.bo)((0,o.Lk)("ul",{class:"nav__dropdown",onClick:t[29]||(t[29]=(0,s.D$)(()=>{},["stop"]))},[(0,o.Lk)("li",Ms,[(0,o.Lk)("button",{onClick:t[28]||(t[28]=e=>l.showKeyboardShortcuts())},t[63]||(t[63]=[(0,o.Lk)("span",null,"Keyboard Shortcuts",-1),(0,o.Lk)("span",{class:"nav__keyboard-shortcut"},"F1",-1)]))])],512),[[s.aG,"help"===r.activeDropdown]])])])]),(0,o.Lk)("div",As,[i.currentUser?((0,o.uX)(),(0,o.CE)("button",{key:1,class:"user-btn",onClick:t[31]||(t[31]=e=>r.showUserProfile=!0)},[(0,o.bF)(d,{size:18}),(0,o.Lk)("span",null,(0,n.v_)(i.currentUser.username),1)])):((0,o.uX)(),(0,o.CE)("button",{key:0,class:"sign-in-btn",onClick:t[30]||(t[30]=(...e)=>l.handleSignIn&&l.handleSignIn(...e))},[(0,o.bF)(d,{size:18}),t[64]||(t[64]=(0,o.Lk)("span",null,"Sign In",-1))]))])]),(0,o.Lk)("div",_s,[(0,o.Lk)("div",Us,[i.hasRunProgram?(0,o.Q3)("",!0):((0,o.uX)(),(0,o.CE)("div",{key:0,class:"icon-btn run-btn",onClick:t[32]||(t[32]=e=>l.runScript()),title:"Run (F5)"},[(0,o.bF)(c,{size:20})])),i.hasRunProgram?((0,o.uX)(),(0,o.CE)("div",{key:1,class:"icon-btn stop-btn",onClick:t[33]||(t[33]=e=>l.stopScript()),title:"Stop (Shift+F5)"},[(0,o.bF)(h,{size:20})])):(0,o.Q3)("",!0),(0,o.Lk)("div",{class:"icon-btn save-btn",onClick:t[34]||(t[34]=e=>l.saveFile()),title:"Save (Ctrl+S)"},[(0,o.bF)(p,{size:20})])]),(0,o.Lk)("div",Os,[(0,o.Lk)("div",{class:"icon-btn settings-btn",onClick:t[35]||(t[35]=e=>l.openSettings()),title:"Settings"},[(0,o.bF)(u,{size:20})])])]),(0,o.bF)(m,{modelValue:r.showUserProfile,"onUpdate:modelValue":t[36]||(t[36]=e=>r.showUserProfile=e),"current-user":i.currentUser,onLogout:l.handleLogout,onPasswordChanged:l.handlePasswordChanged},null,8,["modelValue","current-user","onLogout","onPasswordChanged"])])}var Vs=i(47478),zs=i(58263),Bs=i(39037); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const Xs=(0,Ce.A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),Hs=(0,Ce.A)("circle-user",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]),Ks=(0,Ce.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"}]]);var Gs=i(96763),Qs={props:{consoleLimit:Boolean,hasRunProgram:Boolean,currentUser:{type:Object,default:null}},data(){return{isRun:!0,activeDropdown:null,consoleVisible:!0,previewPanelVisible:!1,sidebarVisible:!0,showUserProfile:!1}},computed:{ideInfo(){return this.$store?.state?.ide?.ideInfo||{}},isPythonFile(){return this.ideInfo.currProj&&this.ideInfo.currProj.pathSelected&&this.ideInfo.codeItems&&this.ideInfo.codeItems.length>0&&this.ideInfo.currProj.pathSelected.endsWith(".py")},hasSelectedFile(){const e=this.ideInfo.nodeSelected&&"file"===this.ideInfo.nodeSelected.type;return Gs.log("🔍 [DEBUG] hasSelectedFile computed:",{nodeSelected:this.ideInfo.nodeSelected,nodeType:this.ideInfo.nodeSelected?.type,result:e}),e},canDeleteFile(){const e=this.ideInfo.nodeSelected;return e&&"file"===e.type},deleteButtonTitle(){return this.ideInfo.nodeSelected?"file"!==this.ideInfo.nodeSelected.type?"Can only delete files":`Delete ${this.ideInfo.nodeSelected.label||this.ideInfo.nodeSelected.name}`:"Select a file to delete"},canSaveAsFile(){const e=this.hasSelectedFile,t=this.ideInfo.codeSelected&&this.ideInfo.codeSelected.fileName,i=e||t;return Gs.log("🔍 [DEBUG] canSaveAsFile computed:",{hasSelectedFile:e,nodeSelected:this.ideInfo.nodeSelected,hasCodeSelected:t,codeSelected:this.ideInfo.codeSelected,result:i}),i}},components:{Upload:Pe.A,Play:Vs.A,Square:zs.A,Settings:Bs.A,Trash2:Xs,UserCircle:Hs,Save:Ks,UserProfileModal:Zo},mounted(){const e=localStorage.getItem("theme")||"dark";document.documentElement.setAttribute("data-theme",e),document.addEventListener("click",this.closeDropdowns),Gs.log("🎹 TwoHeaderMenu - Adding keyboard shortcut listener"),document.addEventListener("keydown",this.handleKeyboardShortcuts)},beforeUnmount(){document.removeEventListener("click",this.closeDropdowns),document.removeEventListener("keydown",this.handleKeyboardShortcuts)},methods:{toggleDropdown(e){this.activeDropdown=this.activeDropdown===e?null:e},closeDropdowns(){this.activeDropdown=null},handleKeyboardShortcuts(e){if(e.ctrlKey&&!e.shiftKey&&"s"===e.key)return e.preventDefault(),e.stopPropagation(),void this.saveFile();if(e.ctrlKey&&e.shiftKey&&"S"===e.key)return Gs.log("🔍 [DEBUG] Ctrl+Shift+S keyboard shortcut triggered"),Gs.log("🔍 [DEBUG] canSaveAsFile:",this.canSaveAsFile),e.preventDefault(),e.stopPropagation(),void(this.canSaveAsFile?(Gs.log("🔍 [DEBUG] Calling saveAsFile() from keyboard shortcut"),this.saveAsFile()):Gs.log("🔍 [DEBUG] Cannot save as - no file available"));if(e.ctrlKey&&e.altKey&&!e.shiftKey&&"n"===e.key)return e.preventDefault(),e.stopPropagation(),void this.newFile();if(e.ctrlKey&&!e.shiftKey&&"o"===e.key)return e.preventDefault(),e.stopPropagation(),void this.openFile();if(e.ctrlKey&&!e.shiftKey&&"d"===e.key)return e.preventDefault(),e.stopPropagation(),void this.downloadFile();if(e.ctrlKey&&e.shiftKey&&"M"===e.key)return e.preventDefault(),e.stopPropagation(),void(this.hasSelectedFile&&this.moveFile());if(e.ctrlKey&&!e.shiftKey&&"z"===e.key)return e.preventDefault(),e.stopPropagation(),void this.undo();if(e.ctrlKey&&!e.shiftKey&&"y"===e.key)return e.preventDefault(),e.stopPropagation(),void this.redo();const t=()=>{const e=document.activeElement;return!!e&&("INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.classList.contains("repl-input")||"true"===e.contentEditable||e.classList.contains("filename-input")||e.classList.contains("el-input__inner")||"textbox"===e.getAttribute("role"))},i=e.ctrlKey||e.metaKey;if(i&&!e.shiftKey&&"x"===e.key){if(t())return;return e.preventDefault(),e.stopPropagation(),void this.cut()}if(i&&!e.shiftKey&&"c"===e.key){if(t())return;return e.preventDefault(),e.stopPropagation(),void this.copy()}if(i&&"v"===e.key){if(t())return;return e.preventDefault(),e.stopPropagation(),void this.paste()}if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&"f"===e.key)return e.preventDefault(),void e.stopPropagation();if((e.ctrlKey||e.metaKey)&&!e.shiftKey&&"h"===e.key)return e.preventDefault(),void e.stopPropagation();if(e.ctrlKey&&"/"===e.key)return e.preventDefault(),e.stopPropagation(),void this.comment();if("F5"===e.key&&!e.shiftKey)return e.preventDefault(),e.stopPropagation(),void(this.isPythonFile&&!this.consoleLimit&&this.runScript());if(e.shiftKey&&"F5"===e.key)return e.preventDefault(),e.stopPropagation(),void(this.hasRunProgram&&this.stopScript());if(e.ctrlKey&&"`"===e.key)return e.preventDefault(),e.stopPropagation(),void this.toggleConsole();if(e.ctrlKey&&e.shiftKey&&"P"===e.key)return Gs.log("🎹 [SHORTCUT] Ctrl+Shift+P - Toggle Preview Panel"),e.preventDefault(),e.stopPropagation(),void this.$emit("toggle-preview-panel");if(e.ctrlKey&&!e.shiftKey&&"b"===e.key)return e.preventDefault(),e.stopPropagation(),void this.toggleSidebar();if("F1"===e.key)return e.preventDefault(),e.stopPropagation(),void this.showKeyboardShortcuts();if(e.ctrlKey&&","===e.key)return e.preventDefault(),e.stopPropagation(),void this.openSettings();if(e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){if(Gs.log("🎹 [TAB-NAV] Alt key detected, key:",e.key,"code:",e.code),"ArrowLeft"===e.key)return Gs.log("🎹 [TAB-NAV] Navigate to previous tab"),e.preventDefault(),e.stopPropagation(),void this.$emit("navigate-tab","previous");if("ArrowRight"===e.key)return Gs.log("🎹 [TAB-NAV] Navigate to next tab"),e.preventDefault(),e.stopPropagation(),void this.$emit("navigate-tab","next");const t=e.code.match(/^Digit([1-6])$/);if(t){const i=parseInt(t[1])-1;return Gs.log("🎹 [TAB-NAV] Jump to tab index:",i,"(code:",e.code,")"),e.preventDefault(),e.stopPropagation(),void this.$emit("jump-to-tab",i)}}},newFile(){if(this.closeDropdowns(),!this.ideInfo.nodeSelected||"dir"!==this.ideInfo.nodeSelected.type&&"folder"!==this.ideInfo.nodeSelected.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.$emit("set-text-dialog",{type:"create-file",title:"New File",tips:"Enter file name:",text:"untitled.py"})},saveFile(){this.closeDropdowns(),this.ideInfo.codeSelected&&this.$store.dispatch("ide/saveFile",{codeItem:this.ideInfo.codeSelected,isAutoSave:!1}).then(()=>{Ee.nk.success("File saved")}).catch(e=>{const t=e.message||"Failed to save file";Ee.nk.error(t),Gs.error("[SAVE-ERROR]",e)})},downloadFile(){if(this.closeDropdowns(),this.ideInfo.nodeSelected&&"file"===this.ideInfo.nodeSelected.type){const e=this.ideInfo.nodeSelected,t={fileName:e.label||e.name,filePath:e.path,projectName:e.projectName||this.ideInfo.currProj?.data?.name};this.$emit("download-file",t)}else this.ideInfo.codeSelected?this.$emit("download-file",this.ideInfo.codeSelected):Ee.nk.warning("Please select a file to download")},runScript(){this.closeDropdowns(),this.$emit("run-item")},stopScript(){this.closeDropdowns();for(let e=0;e{this.$emit("delete-selected-file",{path:e.path,type:e.type,projectName:e.projectName||this.ideInfo.currProj?.data?.name})}).catch(()=>{})},openSettings(){this.$emit("open-settings")},handleSignIn(){this.$emit("sign-in")},openFile(){this.closeDropdowns(),this.$emit("open-file-browser")},duplicateFile(){if(Gs.log("🔍 [DEBUG] duplicateFile() called from TwoHeaderMenu"),this.closeDropdowns(),!this.hasSelectedFile)return Gs.log("🔍 [DEBUG] No file selected for duplication"),void Ee.nk.warning("Please select a file to duplicate");const e=this.ideInfo.nodeSelected,t=e.label||e.name,i=t.includes(".")?t.substring(t.lastIndexOf(".")):"",o=t.includes(".")?t.substring(0,t.lastIndexOf(".")):t,s=`${o}_copy${i}`;Gs.log("🔍 [DEBUG] Emitting duplicate-file event:",{originalPath:e.path,newName:s,projectName:e.projectName||this.ideInfo.currProj?.data?.name}),this.$emit("duplicate-file",{originalPath:e.path,newName:s,projectName:e.projectName||this.ideInfo.currProj?.data?.name})},saveAsFile(){if(Gs.log("🔍 [DEBUG] saveAsFile() called"),Gs.log("🔍 [DEBUG] hasSelectedFile:",this.hasSelectedFile),Gs.log("🔍 [DEBUG] nodeSelected:",this.ideInfo.nodeSelected),Gs.log("🔍 [DEBUG] codeSelected:",this.ideInfo.codeSelected),Gs.log("🔍 [DEBUG] canSaveAsFile:",this.canSaveAsFile),this.closeDropdowns(),this.hasSelectedFile){const e=this.ideInfo.nodeSelected,t={fileName:e.label||e.name,filePath:e.path,projectName:e.projectName||this.ideInfo.currProj?.data?.name};return Gs.log("🔍 [DEBUG] Converted tree file to fileInfo:",t),Gs.log("🔍 [DEBUG] Original selectedFile:",e),void this.$emit("save-as-file",t)}if(this.ideInfo.codeSelected)return Gs.log("🔍 [DEBUG] Emitting save-as-file for editor file:",this.ideInfo.codeSelected),void this.$emit("save-as-file",this.ideInfo.codeSelected);Gs.log("🔍 [DEBUG] No file available for save as"),Ee.nk.warning("Please select a file to save")},moveFile(){this.closeDropdowns(),this.hasSelectedFile?this.$emit("open-move-dialog",this.ideInfo.nodeSelected):Ee.nk.warning("Please select a file to move")},deleteFile(){if(this.closeDropdowns(),!this.hasSelectedFile)return void Ee.nk.warning("Please select a file to delete");const e=this.ideInfo.nodeSelected,t=e.label||e.name;pi.s.confirm(`Are you sure you want to delete "${t}"?`,"Confirm Delete",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}).then(()=>{this.$emit("delete-file",{path:e.path,type:e.type,projectName:e.projectName||this.ideInfo.currProj?.data?.name})}).catch(()=>{})},undo(){this.closeDropdowns(),this.$emit("undo")},redo(){this.closeDropdowns(),this.$emit("redo")},cut(){this.closeDropdowns(),this.$emit("cut")},copy(){this.closeDropdowns(),this.$emit("copy")},paste(){this.closeDropdowns(),this.$emit("paste")},find(){this.closeDropdowns(),this.$emit("find")},replace(){this.closeDropdowns(),this.$emit("replace")},comment(){this.closeDropdowns(),this.$emit("comment")},toggleConsole(){this.closeDropdowns(),this.consoleVisible=!this.consoleVisible,this.$emit("toggle-console",this.consoleVisible)},togglePreviewPanel(){this.closeDropdowns(),Gs.log("🎹 [MENU] Toggle Preview Panel clicked"),this.$emit("toggle-preview-panel")},toggleSidebar(){this.closeDropdowns(),this.sidebarVisible=!this.sidebarVisible,this.$emit("toggle-sidebar",this.sidebarVisible)},showKeyboardShortcuts(){this.closeDropdowns(),this.$emit("show-keyboard-shortcuts")},handleLogout(){localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("role"),localStorage.removeItem("full_name"),this.$emit("logout"),Ee.nk.success("Logged out successfully"),setTimeout(()=>{window.location.reload()},1e3)},handlePasswordChanged(){Ee.nk.success("Password changed successfully!")}}};const Js=(0,k.A)(Qs,[["render",Ws],["__scopeId","data-v-3adfcdfe"]]);var qs=Js;const Ys={class:"main-wrapper ide-wrapper ide-container"},Zs={id:"total-frame",class:"total-frame"},en={id:"left-sidebar",class:"left-sidebar"},tn={id:"center-frame",class:"center-frame"},on={class:"editor-tab-bar"},sn={class:"editor-content"},nn={class:"console-section"},an={class:"console-header"},rn={class:"console-header-left"},ln={class:"console-title"},dn={class:"console-header-center"},cn={key:0,class:"console-header-right"},hn=["title"],pn={class:"console-body"},un={class:"console-output-area",ref:"consoleOutputArea"},mn={key:0,class:"console-text"},fn={key:1,class:"console-error"},gn={key:2,class:"console-input-prompt"},vn={key:3,class:"console-system"},wn={key:4,class:"console-repl-prompt"},yn=["innerHTML"],bn={key:6,class:"console-repl-entry"},kn={key:0,class:"console-repl-prompt"},In=["innerHTML"],Pn={key:1,class:"console-repl-line"},Sn={class:"console-repl-prompt"},Cn=["innerHTML"],Ln={key:7,class:"console-text"},Fn={key:0,class:"console-input-area"},En={class:"input-prompt"},xn={class:"input-field-container"},Dn=["rows"],Rn={key:1,class:"repl-section"},Tn={class:"repl-prompt"},$n={class:"prompt-symbol"},jn=["rows"],Nn={id:"right-sidebar",class:"right-sidebar"},Mn={class:"right-sidebar-placeholder"},An={class:"preview-tabs"},_n=["onClick","onDragstart","onDragover","onDragenter","onDrop"],Un={class:"tab-icon"},On={class:"tab-title"},Wn=["onClick"],Vn={key:0,class:"output-panel"},zn={class:"output-content"},Bn={key:1,class:"media-preview-panel"},Xn={key:2,class:"data-preview-panel"},Hn={key:0,class:"right-panel-controls"},Kn=["title"],Gn={class:"tab-count"},Qn={key:8,class:"repl-modal"},Jn={class:"repl-modal-content"},qn={class:"repl-modal-header"},Yn={class:"repl-modal-body"};function Zn(e,t,i,a,r,l){const d=qs,c=yo.A,h=wo,p=io,u=Mi.A,m=(0,o.g2)("pane"),f=Ni,g=Si.A,v=Pi.A,w=(0,o.g2)("ChevronUp"),y=(0,o.g2)("ChevronDown"),b=(0,o.g2)("Minimize2"),k=(0,o.g2)("splitpanes"),I=Ii.A,C=ki.A,L=(0,o.g2)("ChevronLeft"),F=(0,o.g2)("ChevronRight"),E=bi.A,x=yi.A,D=wi.A,R=vi.A,T=gi,$=Vt,j=vt,N=Te,M=X,A=S.A,_=P;return(0,o.uX)(),(0,o.CE)("div",Ys,[(0,o.bF)(d,{class:"two-header-menu",consoleLimit:l.consoleLimit,hasRunProgram:l.hasRunProgram,currentUser:l.currentUser,onSetTextDialog:l.setTextDialog,onSetDelDialog:l.setDelDialog,onSetProjsDialog:l.setProjsDialog,onRunItem:l.runPathSelected,onStopItem:l.stop,onClearConsole:l.clearConsole,onSignIn:l.handleSignIn,onOpenUploadDialog:t[0]||(t[0]=e=>r.showUploadDialog=!0),onDownloadFile:l.downloadFile,onOpenSettings:t[1]||(t[1]=e=>r.showSettingsModal=!0),onOpenFileBrowser:l.openFileBrowser,onDuplicateFile:l.duplicateFile,onSaveAsFile:l.saveAsFile,onOpenMoveDialog:l.openMoveDialog,onDeleteFile:l.deleteFileFromMenu,onDeleteSelectedFile:l.deleteSelectedFile,onUndo:l.handleUndo,onRedo:l.handleRedo,onCut:l.handleCut,onCopy:l.handleCopy,onPaste:l.handlePaste,onFind:l.handleFind,onReplace:l.handleReplace,onComment:l.handleComment,onToggleConsole:l.toggleConsole,onTogglePreviewPanel:l.togglePreviewPanel,onToggleSidebar:l.toggleLeftSidebar,onShowKeyboardShortcuts:t[2]||(t[2]=e=>r.showKeyboardShortcutsModal=!r.showKeyboardShortcutsModal),onNavigateTab:l.handleNavigateTab,onJumpToTab:l.handleJumpToTab,onCloseCurrentTab:l.handleCloseCurrentTab},null,8,["consoleLimit","hasRunProgram","currentUser","onSetTextDialog","onSetDelDialog","onSetProjsDialog","onRunItem","onStopItem","onClearConsole","onSignIn","onDownloadFile","onOpenFileBrowser","onDuplicateFile","onSaveAsFile","onOpenMoveDialog","onDeleteFile","onDeleteSelectedFile","onUndo","onRedo","onCut","onCopy","onPaste","onFind","onReplace","onComment","onToggleConsole","onTogglePreviewPanel","onToggleSidebar","onNavigateTab","onJumpToTab","onCloseCurrentTab"]),(0,o.bF)(c,{modelValue:r.showSettingsModal,"onUpdate:modelValue":t[3]||(t[3]=e=>r.showSettingsModal=e),onUpdateFontSize:l.updateFontSize,onUpdateLineNumbers:l.updateLineNumbers,onUpdateWordWrap:l.updateWordWrap,onUpdateAutoSave:l.updateAutoSave,onUpdateAutoSaveInterval:l.updateAutoSaveInterval,onUpdateAutoSaveNotifications:l.updateAutoSaveNotifications},null,8,["modelValue","onUpdateFontSize","onUpdateLineNumbers","onUpdateWordWrap","onUpdateAutoSave","onUpdateAutoSaveInterval","onUpdateAutoSaveNotifications"]),(0,o.bF)(h,{modelValue:r.showKeyboardShortcutsModal,"onUpdate:modelValue":t[4]||(t[4]=e=>r.showKeyboardShortcutsModal=e)},null,8,["modelValue"]),(0,o.bF)(p,{modelValue:r.showFindReplaceModal,"onUpdate:modelValue":t[5]||(t[5]=e=>r.showFindReplaceModal=e),mode:r.findReplaceMode},null,8,["modelValue","mode"]),(0,o.Lk)("div",Zs,[(0,o.bF)(k,{class:(0,n.C4)(["default-theme","main-splitpanes",{"has-right-content":r.previewTabs.length>0}])},{default:(0,o.k6)(()=>[(0,o.bF)(m,{size:l.leftSidebarSize,"min-size":l.leftSidebarMinSize,"max-size":l.leftSidebarMaxSize},{default:(0,o.k6)(()=>[(0,o.bo)((0,o.Lk)("div",en,[(0,o.bF)(u,{currentUser:l.currentUser,onGetItem:l.getFile,onOpenInEditor:l.getFileForEditor,onContextMenu:r.showContextMenu,onRenameItem:l.handleRenameItem,onDeleteItem:l.handleDeleteItem,onDownloadItem:l.handleDownloadItem,onNewFile:l.handleNewFileFromTree,onNewFolder:l.handleNewFolderFromTree,onImportFile:l.handleImportFileFromTree,onBulkUpload:l.handleBulkUpload},null,8,["currentUser","onGetItem","onOpenInEditor","onContextMenu","onRenameItem","onDeleteItem","onDownloadItem","onNewFile","onNewFolder","onImportFile","onBulkUpload"])],512),[[s.aG,r.leftSidebarVisible&&r.windowWidth>900]])]),_:1},8,["size","min-size","max-size"]),(0,o.bF)(m,{size:l.centerSize,"min-size":30},{default:(0,o.k6)(()=>[(0,o.Lk)("div",tn,[(0,o.bF)(f,{onOpenInRightPanel:l.getFileForRightPanel},null,8,["onOpenInRightPanel"]),(0,o.bF)(k,{horizontal:"",class:"default-theme"},{default:(0,o.k6)(()=>[(0,o.bF)(m,{size:l.editorPaneSize,"min-size":5,"max-size":95},{default:(0,o.k6)(()=>[(0,o.Lk)("div",{class:"editor-section",onClick:t[6]||(t[6]=e=>l.setFocusedPanel("editor"))},[(0,o.Lk)("div",on,[l.ideInfo.codeItems.length>0?((0,o.uX)(),(0,o.Wv)(g,{key:0,onSelectItem:l.selectFile,onCloseItem:l.closeFile,onToggleSidebar:l.toggleLeftSidebar,onReorderTabs:l.handleReorderTabs},null,8,["onSelectItem","onCloseItem","onToggleSidebar","onReorderTabs"])):(0,o.Q3)("",!0)]),(0,o.Lk)("div",sn,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(l.ideInfo.codeItems,(e,t)=>((0,o.uX)(),(0,o.CE)(o.FK,{key:`${e.projectName||"default"}:${e.path}`},[l.isSelectedFile(e)?((0,o.uX)(),(0,o.Wv)(v,{key:0,codeItem:e,codeItemIndex:t,consoleLimit:l.consoleLimit,wordWrap:r.wordWrap,onRunItem:l.runPathSelected,onUpdateItem:l.updateItem},null,8,["codeItem","codeItemIndex","consoleLimit","wordWrap","onRunItem","onUpdateItem"])):(0,o.Q3)("",!0)],64))),128))])])]),_:1},8,["size"]),(0,o.bF)(m,{size:l.consolePaneSize,"min-size":5,"max-size":95},{default:(0,o.k6)(()=>[(0,o.Lk)("div",nn,[(0,o.Lk)("div",an,[(0,o.Lk)("div",rn,[(0,o.Lk)("span",ln,(0,n.v_)((r.isReplMode,"Console")),1)]),(0,o.Lk)("div",dn,["collapsed"===r.consoleMode?((0,o.uX)(),(0,o.CE)("button",{key:0,class:"console-expand-arrow",onClick:t[7]||(t[7]=(...e)=>l.handleConsoleUpArrow&&l.handleConsoleUpArrow(...e)),title:"Open console"},[(0,o.bF)(w,{size:16})])):(0,o.Q3)("",!0),"normal"===r.consoleMode?((0,o.uX)(),(0,o.CE)("button",{key:1,class:"console-expand-arrow",onClick:t[8]||(t[8]=(...e)=>l.handleConsoleUpArrow&&l.handleConsoleUpArrow(...e)),title:"Maximize console"},[(0,o.bF)(w,{size:16})])):(0,o.Q3)("",!0),"normal"===r.consoleMode?((0,o.uX)(),(0,o.CE)("button",{key:2,class:"console-expand-arrow",onClick:t[9]||(t[9]=(...e)=>l.handleConsoleDownArrow&&l.handleConsoleDownArrow(...e)),title:"Collapse console"},[(0,o.bF)(y,{size:16})])):(0,o.Q3)("",!0),"maximized"===r.consoleMode?((0,o.uX)(),(0,o.CE)("button",{key:3,class:"console-expand-arrow",onClick:t[10]||(t[10]=(...e)=>l.handleConsoleRestore&&l.handleConsoleRestore(...e)),title:"Restore console"},[(0,o.bF)(b,{size:16})])):(0,o.Q3)("",!0),"maximized"===r.consoleMode?((0,o.uX)(),(0,o.CE)("button",{key:4,class:"console-expand-arrow",onClick:t[11]||(t[11]=(...e)=>l.handleConsoleDownArrow&&l.handleConsoleDownArrow(...e)),title:"Collapse console"},[(0,o.bF)(y,{size:16})])):(0,o.Q3)("",!0)]),r.consoleExpanded?((0,o.uX)(),(0,o.CE)("div",cn,[(0,o.Lk)("button",{class:(0,n.C4)(["console-action-btn",{active:r.isReplMode}]),onClick:t[12]||(t[12]=(0,s.D$)((...e)=>l.toggleReplMode&&l.toggleReplMode(...e),["stop"])),title:r.isReplMode?"Exit REPL Mode":"Start Python REPL"},[(0,o.Lk)("span",null,(0,n.v_)(r.isReplMode?"Exit REPL":"REPL"),1)],10,hn),(0,o.Lk)("button",{class:"console-action-btn",onClick:t[13]||(t[13]=(0,s.D$)((...e)=>l.clearConsole&&l.clearConsole(...e),["stop"])),title:"Clear Console"},t[36]||(t[36]=[(0,o.Lk)("span",null,"Clear",-1)]))])):(0,o.Q3)("",!0)]),(0,o.bo)((0,o.Lk)("div",pn,[(0,o.Lk)("div",un,[l.ideInfo.consoleSelected&&l.ideInfo.consoleSelected.resultList?((0,o.uX)(!0),(0,o.CE)(o.FK,{key:0},(0,o.pI)(l.ideInfo.consoleSelected.resultList,(e,t)=>((0,o.uX)(),(0,o.CE)("div",{key:t,class:"console-line"},["output"!==e.type&&"text"!==e.type||l.isPromptOutput(e)?"error"===e.type?((0,o.uX)(),(0,o.CE)("pre",fn,(0,n.v_)(e.text||e.content||e),1)):"input"===e.type||"input-prompt"===e.type?((0,o.uX)(),(0,o.CE)("div",gn,[(0,o.Lk)("span",null,(0,n.v_)(e.text||e.content||e),1)])):"system"===e.type?((0,o.uX)(),(0,o.CE)("pre",vn,(0,n.v_)(e.text||e.content||e),1)):"repl-prompt"===e.type?((0,o.uX)(),(0,o.CE)("span",wn,(0,n.v_)(e.text||">>> "),1)):"user-input"===e.type?((0,o.uX)(),(0,o.CE)("pre",{key:5,class:"console-user-input",innerHTML:l.highlightPythonCode(e.text||e.content||e)},null,8,yn)):"repl-input"===e.type?((0,o.uX)(),(0,o.CE)("div",bn,[l.isMultilineCode(e.content||e.text||e)?((0,o.uX)(!0),(0,o.CE)(o.FK,{key:0},(0,o.pI)(l.splitCodeLines(e.content||e.text||e),(t,i)=>((0,o.uX)(),(0,o.CE)("div",{key:"line-"+i,class:"console-repl-line"},[0===i?((0,o.uX)(),(0,o.CE)("span",kn,(0,n.v_)(e.prompt||">>> "),1)):(0,o.Q3)("",!0),(0,o.Lk)("pre",{class:(0,n.C4)(["console-repl-input",{"no-prompt":i>0}]),innerHTML:l.highlightPythonCode(t)},null,10,In)]))),128)):((0,o.uX)(),(0,o.CE)("div",Pn,[(0,o.Lk)("span",Sn,(0,n.v_)(e.prompt||">>> "),1),(0,o.Lk)("pre",{class:"console-repl-input",innerHTML:l.highlightPythonCode(e.content||e.text||e)},null,8,Cn)]))])):((0,o.uX)(),(0,o.CE)("pre",Ln,(0,n.v_)("object"===typeof e?e.text||e.content||JSON.stringify(e):e),1)):((0,o.uX)(),(0,o.CE)("pre",mn,(0,n.v_)(e.text||e.content||e),1))]))),128)):(0,o.Q3)("",!0)],512),l.ideInfo.consoleSelected&&l.ideInfo.consoleSelected.waitingForInput?((0,o.uX)(),(0,o.CE)("div",Fn,[(0,o.Lk)("div",En,[t[37]||(t[37]=(0,o.Lk)("span",{class:"prompt-icon"},"💬",-1)),(0,o.Lk)("span",null,(0,n.v_)(l.ideInfo.consoleSelected.inputPrompt||"Enter input:"),1)]),(0,o.Lk)("div",xn,[(0,o.bo)((0,o.Lk)("textarea",{"onUpdate:modelValue":t[14]||(t[14]=e=>r.programInput=e),onKeydown:t[15]||(t[15]=(...e)=>l.handleProgramInputKeydown&&l.handleProgramInputKeydown(...e)),ref:"programInputField",class:"program-input-field",placeholder:"Type your input and press Enter...",rows:r.programInputRows,autofocus:""},null,40,Dn),[[s.Jo,r.programInput]]),(0,o.Lk)("button",{onClick:t[16]||(t[16]=(...e)=>l.sendProgramInput&&l.sendProgramInput(...e)),class:"input-submit-btn"},"Send")])])):(0,o.Q3)("",!0),r.isReplMode||l.ideInfo.consoleSelected&&l.ideInfo.consoleSelected.waitingForReplInput?((0,o.uX)(),(0,o.CE)("div",Rn,[(0,o.Lk)("div",Tn,[(0,o.Lk)("span",$n,(0,n.v_)(r.replPrompt||">>> "),1),(0,o.bo)((0,o.Lk)("textarea",{class:"repl-input",placeholder:"Enter Python code...","onUpdate:modelValue":t[17]||(t[17]=e=>r.replInput=e),onKeydown:t[18]||(t[18]=(...e)=>l.handleReplKeydown&&l.handleReplKeydown(...e)),ref:"replInputField",rows:r.replInputRows}," ",40,jn),[[s.Jo,r.replInput]])])])):(0,o.Q3)("",!0)],512),[[s.aG,r.consoleExpanded]])])]),_:1},8,["size"])]),_:1})])]),_:1},8,["size"]),(0,o.bF)(m,{size:l.rightSidebarSize,"min-size":l.rightSidebarMinSize,"max-size":l.rightSidebarMaxSize,"push-other-panes":!1},{default:(0,o.k6)(()=>[(0,o.Lk)("div",Nn,[(0,o.bo)((0,o.Lk)("div",Mn,null,512),[[s.aG,!r.rightSidebarVisible||0===r.previewTabs.length]]),(0,o.bo)((0,o.Lk)("div",An,[(0,o.Lk)("div",{class:"preview-tab-list",onDragover:t[21]||(t[21]=(0,s.D$)(()=>{},["prevent"])),onDrop:t[22]||(t[22]=(...e)=>l.handlePreviewDropOnContainer&&l.handlePreviewDropOnContainer(...e))},[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.previewTabs,(e,i)=>((0,o.uX)(),(0,o.CE)("button",{key:e.id,class:(0,n.C4)(["preview-tab",{active:r.selectedPreviewTab===e.id,dragging:r.previewDraggedIndex===i,"drop-target-left":r.previewDropTargetIndex===i&&r.previewDraggedIndex>i,"drop-target-right":r.previewDropTargetIndex===i&&r.previewDraggedIndexl.selectPreviewTab(e.id),onDragstart:e=>l.handlePreviewDragStart(e,i),onDragover:e=>l.handlePreviewDragOver(e,i),onDragenter:e=>l.handlePreviewDragEnter(e,i),onDragleave:t[19]||(t[19]=e=>l.handlePreviewDragLeave(e)),onDrop:e=>l.handlePreviewDrop(e,i),onDragend:t[20]||(t[20]=(...e)=>l.handlePreviewDragEnd&&l.handlePreviewDragEnd(...e))},[(0,o.Lk)("span",Un,(0,n.v_)(l.getTabIcon(e.type)),1),(0,o.Lk)("span",On,(0,n.v_)(e.title),1),(0,o.Lk)("span",{class:"tab-close",onClick:(0,s.D$)(t=>l.closePreviewTab(e.id),["stop"])},"×",8,Wn)],42,_n))),128))],32)],512),[[s.aG,r.rightSidebarVisible&&r.previewTabs.length>0]]),(0,o.bo)((0,o.Lk)("div",{class:"preview-content",onClick:t[23]||(t[23]=e=>l.setFocusedPanel("preview"))},[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.previewTabs,e=>(0,o.bo)(((0,o.uX)(),(0,o.CE)("div",{key:e.id,class:"preview-panel"},["output"===e.type?((0,o.uX)(),(0,o.CE)("div",Vn,[(0,o.Lk)("div",zn,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(e.content,(e,t)=>((0,o.uX)(),(0,o.CE)("div",{key:t,class:(0,n.C4)(["output-line",e.type])},[(0,o.Lk)("pre",null,(0,n.v_)(e.text),1)],2))),128))])])):"image"===e.type||"pdf"===e.type?((0,o.uX)(),(0,o.CE)("div",Bn,[(0,o.bF)(I,{codeItem:l.getMediaCodeItem(e),codeItemIndex:0},null,8,["codeItem"])])):"data"===e.type?((0,o.uX)(),(0,o.CE)("div",Xn,[(0,o.bF)(C,{content:e.content},null,8,["content"])])):(0,o.Q3)("",!0)],512)),[[s.aG,r.selectedPreviewTab===e.id]])),128))],512),[[s.aG,r.rightSidebarVisible&&r.previewTabs.length>0]])])]),_:1},8,["size","min-size","max-size"])]),_:1},8,["class"]),"closed"!==r.rightPanelMode&&r.previewTabs.length>0?((0,o.uX)(),(0,o.CE)("div",Hn,["normal"===r.rightPanelMode?((0,o.uX)(),(0,o.CE)("button",{key:0,class:"control-arrow left-arrow",onClick:t[24]||(t[24]=(...e)=>l.handleLeftArrowClick&&l.handleLeftArrowClick(...e)),title:"Expand preview to full width"},[(0,o.bF)(L,{size:16})])):(0,o.Q3)("",!0),(0,o.Lk)("button",{class:"control-arrow right-arrow",onClick:t[25]||(t[25]=(...e)=>l.handleRightArrowClick&&l.handleRightArrowClick(...e)),title:"expanded"===r.rightPanelMode?"Restore to normal size":"Collapse preview panel"},[(0,o.bF)(F,{size:16})],8,Kn)])):(0,o.Q3)("",!0),"closed"===r.rightPanelMode&&r.previewTabs.length>0?((0,o.uX)(),(0,o.CE)("div",{key:1,class:"show-preview-btn",onClick:t[26]||(t[26]=(...e)=>l.restoreRightPanel&&l.restoreRightPanel(...e)),title:"Show Preview Panel"},[(0,o.Lk)("span",Gn,(0,n.v_)(r.previewTabs.length),1),t[38]||(t[38]=(0,o.Lk)("span",null,"◀",-1))])):(0,o.Q3)("",!0)]),r.showProjsDialog?((0,o.uX)(),(0,o.Wv)(E,{key:0,onOnCancel:l.onCloseProjsDialog,onOnSelect:l.onSelectProj,onOnDelete:l.onDeleteProj,onSetTextDialog:l.setTextDialog},null,8,["onOnCancel","onOnSelect","onOnDelete","onSetTextDialog"])):(0,o.Q3)("",!0),r.showFileDialog?((0,o.uX)(),(0,o.Wv)(x,{key:1,title:r.dialogTitle,text:r.dialogText,tips:r.dialogTips,onCheckInput:l.inputIsLegal,onOnCancel:l.onCloseTextDialog,onOnCreate:l.onCreate},null,8,["title","text","tips","onCheckInput","onOnCancel","onOnCreate"])):(0,o.Q3)("",!0),r.showDeleteDialog?((0,o.uX)(),(0,o.Wv)(D,{key:2,title:r.dialogTitle,onOnCancel:l.onCancelDelete,onOnDelete:l.onDelete},null,8,["title","onOnCancel","onOnDelete"])):(0,o.Q3)("",!0),r.showUploadDialog?((0,o.uX)(),(0,o.Wv)(R,{key:3,modelValue:r.showUploadDialog,"onUpdate:modelValue":t[27]||(t[27]=e=>r.showUploadDialog=e),onRefreshTree:l.refreshProjectTree,onClose:t[28]||(t[28]=e=>r.showUploadDialog=!1)},null,8,["modelValue","onRefreshTree"])):(0,o.Q3)("",!0),r.showNewFileDialog?((0,o.uX)(),(0,o.Wv)(T,{key:4,modelValue:r.showNewFileDialog,"onUpdate:modelValue":t[29]||(t[29]=e=>r.showNewFileDialog=e),onFileCreated:l.handleFileCreated},null,8,["modelValue","onFileCreated"])):(0,o.Q3)("",!0),r.showNewFolderDialog?((0,o.uX)(),(0,o.Wv)($,{key:5,modelValue:r.showNewFolderDialog,"onUpdate:modelValue":t[30]||(t[30]=e=>r.showNewFolderDialog=e),onFolderCreated:l.handleFolderCreated},null,8,["modelValue","onFolderCreated"])):(0,o.Q3)("",!0),r.showImportFileDialog?((0,o.uX)(),(0,o.Wv)(j,{key:6,modelValue:r.showImportFileDialog,"onUpdate:modelValue":t[31]||(t[31]=e=>r.showImportFileDialog=e),onFilesImported:l.handleFilesImported},null,8,["modelValue","onFilesImported"])):(0,o.Q3)("",!0),r.showBulkUploadDialog?((0,o.uX)(),(0,o.Wv)(N,{key:7,modelValue:r.showBulkUploadDialog,"onUpdate:modelValue":t[32]||(t[32]=e=>r.showBulkUploadDialog=e)},null,8,["modelValue"])):(0,o.Q3)("",!0),(0,o.bF)(M,{modelValue:r.showFileBrowserDialog,"onUpdate:modelValue":t[33]||(t[33]=e=>r.showFileBrowserDialog=e),mode:r.fileBrowserMode,fileToMove:r.fileToMove,currentUser:l.currentUser,onOpenFile:l.handleOpenFile,onMoveFile:l.handleMoveFile},null,8,["modelValue","mode","fileToMove","currentUser","onOpenFile","onMoveFile"]),r.showREPL?((0,o.uX)(),(0,o.CE)("div",Qn,[(0,o.Lk)("div",Jn,[(0,o.Lk)("div",qn,[t[39]||(t[39]=(0,o.Lk)("h3",null,"Python REPL (Interactive Console)",-1)),(0,o.Lk)("button",{onClick:t[34]||(t[34]=(...e)=>l.closeREPL&&l.closeREPL(...e)),class:"repl-close-btn"},"✕")]),(0,o.Lk)("div",Yn,[(0,o.bF)(A)])])])):(0,o.Q3)("",!0),(0,o.bF)(_,{visible:r.showLoginModal,onClose:t[35]||(t[35]=e=>r.showLoginModal=!1),onLoginSuccess:l.handleLoginSuccess},null,8,["visible","onLoginSuccess"])])}i(16573),i(78100),i(77936),i(79577),i(41549),i(49797),i(49631),i(35623),i(64979),i(14603),i(47566),i(98721);var ea=i(99415),ta=i(33887); -/** - * @license lucide-vue-next v0.539.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */ -const ia=(0,Ce.A)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]),oa={class:"hybrid-console"},sa={class:"console-output",ref:"consoleOutput"},na={key:1,class:"output-text error-output"},aa={key:2,class:"output-text system-message"},ra={key:3,class:"input-prompt-line"},la={class:"prompt-text"},da={key:4,class:"user-input-line"},ca={class:"input-text"},ha={class:"repl-prompt"},pa={key:6,class:"repl-output"},ua={key:7,class:"figure-container"},ma=["src"],fa={class:"figure-controls"},ga=["onClick"],va=["onClick"],wa={key:0,class:"loading-indicator"},ya={key:0,class:"input-area"},ba={key:0,class:"input-prompt-display"},ka={class:"prompt-label"},Ia={key:1,class:"repl-input-container"},Pa={class:"repl-input-prefix"},Sa={class:"repl-editor-wrapper"},Ca={key:2,class:"input-container"},La=["rows"],Fa=["disabled"],Ea={class:"input-hint"},xa={key:0},Da={key:1},Ra={class:"console-status"},Ta={class:"status-left"},$a={key:0,class:"status-item repl"},ja={key:1,class:"status-item running"},Na={key:2,class:"status-item success"},Ma={key:3,class:"status-item error"},Aa={key:4,class:"status-item idle"},_a={class:"status-right"};function Ua(e,t,i,a,r,l){const d=(0,o.g2)("Codemirror");return(0,o.uX)(),(0,o.CE)("div",oa,[(0,o.Lk)("div",sa,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(a.outputLines,(e,i)=>((0,o.uX)(),(0,o.CE)("div",{key:i,class:"output-line"},["text"===e.type?((0,o.uX)(),(0,o.CE)("pre",{key:0,class:(0,n.C4)(["output-text",e.class])},(0,n.v_)(e.content),3)):"error"===e.type?((0,o.uX)(),(0,o.CE)("pre",na,(0,n.v_)(e.content),1)):"system"===e.type?((0,o.uX)(),(0,o.CE)("pre",aa,(0,n.v_)(e.content),1)):"input-prompt"===e.type?((0,o.uX)(),(0,o.CE)("div",ra,[t[9]||(t[9]=(0,o.Lk)("span",{class:"prompt-indicator"},"🔸",-1)),(0,o.Lk)("span",la,(0,n.v_)(e.content),1)])):"user-input"===e.type?((0,o.uX)(),(0,o.CE)("div",da,[t[10]||(t[10]=(0,o.Lk)("span",{class:"input-indicator"},"▶",-1)),(0,o.Lk)("span",ca,(0,n.v_)(e.content),1)])):"repl-input"===e.type?((0,o.uX)(),(0,o.CE)("div",{key:5,class:(0,n.C4)(["repl-line",{multiline:e.multiline}])},[(0,o.Lk)("span",ha,(0,n.v_)(e.prompt),1),(0,o.Lk)("pre",{class:(0,n.C4)(["repl-input-text",{"multiline-content":e.multiline}])},(0,n.v_)(e.content),3)],2)):"repl-output"===e.type?((0,o.uX)(),(0,o.CE)("pre",pa,(0,n.v_)(e.content),1)):"figure"===e.type?((0,o.uX)(),(0,o.CE)("div",ua,[(0,o.Lk)("img",{src:`data:image/png;base64,${e.data}`,alt:"Matplotlib Figure",class:"matplotlib-figure"},null,8,ma),(0,o.Lk)("div",fa,[(0,o.Lk)("button",{class:"figure-btn",onClick:t=>a.downloadFigure(e.data),title:"Download"}," 📥 ",8,ga),(0,o.Lk)("button",{class:"figure-btn",onClick:t=>a.openFigureInNewTab(e.data),title:"Open in new tab"}," 🔍 ",8,va)])])):(0,o.Q3)("",!0)]))),128)),!i.isRunning||a.waitingForInput||a.isReplMode?(0,o.Q3)("",!0):((0,o.uX)(),(0,o.CE)("div",wa,t[11]||(t[11]=[(0,o.Lk)("span",{class:"loading-dots"},"●●●",-1),(0,o.Lk)("span",{class:"loading-text"},"Running...",-1)])))],512),a.waitingForInput||a.isReplMode?((0,o.uX)(),(0,o.CE)("div",ya,[a.waitingForInput&&!a.isReplMode?((0,o.uX)(),(0,o.CE)("div",ba,[t[12]||(t[12]=(0,o.Lk)("span",{class:"prompt-icon"},"💬",-1)),(0,o.Lk)("span",ka,(0,n.v_)(a.currentPrompt||"Waiting for input..."),1)])):(0,o.Q3)("",!0),a.isReplMode?((0,o.uX)(),(0,o.CE)("div",Ia,[(0,o.Lk)("span",Pa,(0,n.v_)(a.replPrompt),1),(0,o.Lk)("div",Sa,[(0,o.bF)(d,{value:a.userInput,"onUpdate:value":t[0]||(t[0]=e=>a.userInput=e),options:a.replCodeMirrorOptions,onKeydown:a.handleKeyDown,ref:"replEditor",class:"repl-codemirror",placeholder:"Enter Python code..."},null,8,["value","options","onKeydown"])])])):((0,o.uX)(),(0,o.CE)("div",Ca,[t[13]||(t[13]=(0,o.Lk)("span",{class:"input-prefix"},"▶",-1)),(0,o.bo)((0,o.Lk)("textarea",{"onUpdate:modelValue":t[1]||(t[1]=e=>a.userInput=e),onKeydown:t[2]||(t[2]=(...e)=>a.handleKeyDown&&a.handleKeyDown(...e)),onPaste:t[3]||(t[3]=(...e)=>a.handleTextareaPaste&&a.handleTextareaPaste(...e)),ref:"inputField",class:"user-input-field",placeholder:"Type your input and press Enter...",rows:a.inputRows,autofocus:""},null,40,La),[[s.Jo,a.userInput]]),(0,o.Lk)("button",{class:"input-btn primary",onClick:t[4]||(t[4]=(...e)=>a.sendInput&&a.sendInput(...e)),disabled:!a.userInput.trim(),title:"Submit (Enter)"}," ✓ ",8,Fa),(0,o.Lk)("button",{class:"input-btn secondary",onClick:t[5]||(t[5]=(...e)=>a.cancelInput&&a.cancelInput(...e)),title:"Cancel (Escape)"}," ✕ ")])),(0,o.Lk)("div",Ea,[a.isReplMode?((0,o.uX)(),(0,o.CE)("span",xa,"Enter: Execute | Shift+Enter: New line | Up/Down: History")):((0,o.uX)(),(0,o.CE)("span",Da,"Press Enter to submit • Escape to cancel"))])])):(0,o.Q3)("",!0),(0,o.Lk)("div",Ra,[(0,o.Lk)("div",Ta,[a.isReplMode?((0,o.uX)(),(0,o.CE)("span",$a,t[14]||(t[14]=[(0,o.Lk)("span",{class:"status-dot repl"},null,-1),(0,o.eW)(" REPL Mode ",-1)]))):i.isRunning?((0,o.uX)(),(0,o.CE)("span",ja,[t[15]||(t[15]=(0,o.Lk)("span",{class:"status-dot"},null,-1)),(0,o.eW)(" Running "+(0,n.v_)(a.currentProgram),1)])):0===a.lastExitCode?((0,o.uX)(),(0,o.CE)("span",Na,t[16]||(t[16]=[(0,o.Lk)("span",{class:"status-dot"},null,-1),(0,o.eW)(" Ready ",-1)]))):null!==a.lastExitCode?((0,o.uX)(),(0,o.CE)("span",Ma,[t[17]||(t[17]=(0,o.Lk)("span",{class:"status-dot"},null,-1)),(0,o.eW)(" Exit code: "+(0,n.v_)(a.lastExitCode),1)])):((0,o.uX)(),(0,o.CE)("span",Aa,t[18]||(t[18]=[(0,o.Lk)("span",{class:"status-dot"},null,-1),(0,o.eW)(" Idle ",-1)])))]),(0,o.Lk)("div",_a,[(0,o.Lk)("button",{class:"status-btn",onClick:t[6]||(t[6]=(...e)=>a.clearConsole&&a.clearConsole(...e)),title:"Clear console"},"🗑️"),(0,o.Lk)("button",{class:"status-btn",onClick:t[7]||(t[7]=(...e)=>a.exportOutput&&a.exportOutput(...e)),title:"Export output"},"📄"),i.isRunning||a.isReplMode?((0,o.uX)(),(0,o.CE)("button",{key:0,class:"status-btn danger",onClick:t[8]||(t[8]=(...e)=>a.stopProgram&&a.stopProgram(...e)),title:"Stop"},"⏹️")):(0,o.Q3)("",!0)])])])}var Oa=i(50953),Wa=i(277),Va=i(42453),za=i(15237),Ba=i.n(za),Xa=(i(74806),i(50436),i(97923),i(55218),i(44317),i(57829),i(96763)),Ha={name:"HybridConsole",components:{Codemirror:Va.Ay},props:{item:{type:Object,required:!0},isRunning:{type:Boolean,default:!1}},emits:["run-item","stop-item","send-input"],setup(e,{emit:t}){const i=(0,Oa.KR)([]),s=(0,Oa.KR)(!1),n=(0,Oa.KR)(""),a=(0,Oa.KR)(""),r=(0,Oa.KR)(null),l=(0,Oa.KR)(""),d=(0,Oa.KR)(!1),c=(0,Oa.KR)(">>> "),h=(0,Oa.KR)([]),p=(0,Oa.KR)(-1),u=(0,Oa.KR)(1),m=(0,Oa.KR)(null),f=(0,Oa.KR)(null),g=(0,Oa.KR)(null),v=(0,Oa.KR)({mode:{name:"python",version:3,singleLineStringErrors:!1},theme:"repl-theme",lineNumbers:!1,smartIndent:!0,indentUnit:4,tabSize:4,indentWithTabs:!1,matchBrackets:!0,autoCloseBrackets:!0,styleActiveLine:!1,lineWrapping:!0,showCursorWhenSelecting:!0,viewportMargin:1/0,scrollbarStyle:null,autofocus:!0,extraKeys:{Enter:e=>{const t=e.getCursor(),i=e.getLine(t.line),o=e.getValue().trim(),s=i.trim().endsWith(":")||i.trim().endsWith("\\")||/^\s+/.test(i)||o.split("\n").some((e,i)=>i{const t=e.getCursor(),i=e.getLine(t.line),o=i.match(/^\s*/)[0];e.replaceSelection("\n"+o)},Up:e=>{0!==e.getCursor().line||e.getSelection()?Ba().commands.goLineUp(e):D("up")},Down:e=>{e.getCursor().line!==e.lastLine()||e.getSelection()?Ba().commands.goLineDown(e):D("down")},Tab:e=>{e.getSelection()?e.indentSelection("add"):e.replaceSelection(Array(e.getOption("indentUnit")+1).join(" "))},"Shift-Tab":e=>{e.indentSelection("subtract")},"Ctrl-V":async e=>{await y(e)},"Shift-Ctrl-V":async e=>{await y(e)},"Cmd-V":async e=>{await y(e)},"Shift-Cmd-V":async e=>{await y(e)},"Ctrl-C":e=>{const t=e.getSelection();return t&&(Wa.A.trackIDECopy(t),navigator.clipboard&&navigator.clipboard.writeText&&window.isSecureContext&&navigator.clipboard.writeText(t)),!1},"Cmd-C":e=>{const t=e.getSelection();return t&&(Wa.A.trackIDECopy(t),navigator.clipboard&&navigator.clipboard.writeText&&window.isSecureContext&&navigator.clipboard.writeText(t)),!1}}}),w=(0,o.EW)(()=>{if(!a.value)return 1;const e=a.value.split("\n").length;return Math.min(Math.max(e,1),10)});(0,o.wB)(a,()=>{u.value=w.value});const y=async e=>{try{if(navigator.clipboard&&navigator.clipboard.readText&&window.isSecureContext){const t=await navigator.clipboard.readText(),i=await Wa.A.validatePaste(t);i&&e.replaceSelection(t)}}catch(t){Wa.A.isProfessor()?Xa.log("[HybridConsole] Clipboard read failed for professor, native paste allowed"):Xa.log("[HybridConsole] Paste blocked for student (clipboard API failed)")}},b=async e=>{if(!Wa.A.isProfessor()){e.preventDefault(),e.stopPropagation();const t=e.clipboardData||window.clipboardData,i=t?.getData("text");if(i){const t=await Wa.A.validatePaste(i);if(t){const t=e.target,s=t.selectionStart,n=t.selectionEnd,r=t.value;a.value=r.substring(0,s)+i+r.substring(n),(0,o.dY)(()=>{t.selectionStart=t.selectionEnd=s+i.length})}}}},k=(e,t="text",s="")=>{i.value.push({type:t,content:e,class:s,timestamp:Date.now()}),(0,o.dY)(()=>{N()})},I=(e,t,s="repl-input")=>{const n=t.includes("\n")&&""!==t.trim()||t.trim().match(/^(def|class|if|for|while|with|try|except|finally)\s/)&&t.trim().endsWith(":");i.value.push({type:s,prompt:e,content:t,timestamp:Date.now(),multiline:n}),(0,o.dY)(()=>{N()})},P=e=>{i.value.push({type:"figure",data:e,timestamp:Date.now()}),(0,o.dY)(()=>{N()})},S=e=>{const t=e||"Program waiting for input:";n.value=t,s.value=!0,k(e||"Program waiting for input:","input-prompt"),(0,o.dY)(()=>{f.value&&f.value.focus()})},C=async e=>{if(!Wa.A.isProfessor()){e.preventDefault(),e.stopPropagation();const t=e.clipboardData||window.clipboardData,i=t?.getData("text");if(i){const e=await Wa.A.validatePaste(i);e&&g.value?.cminstance&&g.value.cminstance.replaceSelection(i)}}},L=()=>{d.value=!0,s.value=!1,c.value=">>> ",a.value="",p.value=-1,(0,o.dY)(()=>{setTimeout(()=>{if(g.value?.cminstance){g.value.cminstance.refresh(),g.value.cminstance.focus();const e=g.value.$el;e&&!e._replPasteListenerAdded&&(e.addEventListener("paste",C,!0),e._replPasteListenerAdded=!0)}else f.value&&f.value.focus()},100)})},F=()=>{d.value=!1,c.value=">>> ",a.value="",h.value=[],p.value=-1},E=e=>{d.value?"Enter"!==e.key||e.shiftKey?"Enter"===e.key&&e.shiftKey?c.value="... ":"ArrowUp"===e.key?(e.preventDefault(),D("up")):"ArrowDown"===e.key&&(e.preventDefault(),D("down")):(e.preventDefault(),x()):"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&(e.preventDefault(),T()):(e.preventDefault(),R())},x=()=>{const i=d.value&&g.value?.cminstance?.getValue()||a.value;if(!i.trim())return I(c.value,"","repl-input"),void(c.value=">>> ");i.trim()&&(h.value.push(i),p.value=h.value.length),I(c.value,i,"repl-input"),t("send-input",{programId:e.item.id,input:i,isRepl:!0}),d.value&&g.value?.cminstance&&(g.value.cminstance.setValue(""),(0,o.dY)(()=>{g.value.cminstance.refresh(),g.value.cminstance.focus()})),a.value="",c.value=">>> ",u.value=1},D=e=>{if(0!==h.value.length)if("up"===e){p.value>0?p.value--:-1!==p.value&&p.value!==h.value.length||(p.value=h.value.length-1);const e=h.value[p.value]||"";if(d.value&&g.value?.cminstance){g.value.cminstance.setValue(e);const t=g.value.cminstance.getDoc(),i=t.lastLine(),o=t.getLine(i).length;t.setCursor(i,o)}else a.value=e}else if("down"===e)if(p.value{if(!a.value.trim()&&!s.value)return;const i=a.value;k(i,"user-input"),a.value="",s.value=!1,n.value="",u.value=1,t("send-input",{programId:e.item.id,input:i,isRepl:!1})},T=()=>{a.value="",s.value=!1,n.value="",u.value=1,t("send-input",{programId:e.item.id,input:"",isRepl:!1})},$=()=>{i.value=[],r.value=null,d.value||(h.value=[],p.value=-1),Ee.nk.success("Console cleared")},j=()=>{d.value&&F(),t("stop-item",e.item.id)},N=()=>{m.value&&(m.value.scrollTop=m.value.scrollHeight)},M=e=>{const t=document.createElement("a");t.href=`data:image/png;base64,${e}`,t.download=`figure_${Date.now()}.png`,t.click()},A=e=>{const t=`data:image/png;base64,${e}`;window.open(t,"_blank")},_=()=>{const e=i.value.map(e=>"text"===e.type||"error"===e.type||"system"===e.type?e.content:"input-prompt"===e.type?`Prompt: ${e.content}`:"user-input"===e.type?`> ${e.content}`:"repl-input"===e.type?`${e.prompt}${e.content}`:"repl-output"===e.type?e.content:"").join("\n"),t=new Blob([e],{type:"text/plain"}),o=URL.createObjectURL(t),s=document.createElement("a");s.href=o,s.download=`console_output_${Date.now()}.txt`,s.click(),URL.revokeObjectURL(o),Ee.nk.success("Output exported")},U=e=>{0===e.code?e.data&&void 0!==e.data.stdout&&""!==e.data.stdout&&k(e.data.stdout,"text"):1===e.code?e.data&&e.data.stdout&&k(e.data.stdout,"error"):2e3===e.code?e.data&&void 0!==e.data.prompt&&S(e.data.prompt):3e3===e.code?e.data&&e.data.figure&&P(e.data.figure):4e3===e.code?e.data&&e.data.error&&(r.value=1):5e3===e.code&&e.data&&"repl"===e.data.mode&&L()};return(0,o.wB)(()=>e.item.resultList,e=>{if(e&&e.length>0){const t=e[e.length-1];U(t)}},{deep:!0}),(0,o.wB)(()=>e.item.run,t=>{t?(l.value=e.item.name||"program",r.value=null):d.value&&F()}),{outputLines:i,waitingForInput:s,currentPrompt:n,userInput:a,lastExitCode:r,currentProgram:l,isReplMode:d,replPrompt:c,inputRows:u,consoleOutput:m,inputField:f,replEditor:g,replCodeMirrorOptions:v,executeReplCommand:x,handleKeyDown:E,sendInput:R,cancelInput:T,clearConsole:$,stopProgram:j,exportOutput:_,downloadFigure:M,openFigureInNewTab:A,handleTextareaPaste:b}}};const Ka=(0,k.A)(Ha,[["render",Ua],["__scopeId","data-v-44905964"]]);var Ga=Ka,Qa=i(45572),Ja=i(22532),qa=i(14188);function Ya(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}var Za=Ya,er=i(66318);function tr(e,t,i){var o=-1,s=e.length;t<0&&(t=-t>s?0:s+t),i=i>s?s:i,i<0&&(i+=s),s=t>i?0:i-t>>>0,t>>>=0;var n=Array(s);while(++o1),t}),(0,lr.A)(e,(0,ur.A)(e),i),o&&(i=(0,Ja.A)(i,mr|fr|gr,hr));var s=t.length;while(s--)rr(i,t[s]);return i}),wr=vr,yr=i(91361),br=i(48548);const kr=Symbol("tabsRootContextKey");var Ir=i(97786),Pr=i(50819),Sr=i(51254);const Cr=(0,Pr.b_)({tabs:{type:(0,Pr.jq)(Array),default:()=>(0,Sr.f)([])},tabRefs:{type:(0,Pr.jq)(Object),default:()=>(0,Sr.f)({})}});var Lr=i(78396),Fr=i(69527),Er=i(41651),xr=i(65980),Dr=i(2154);const Rr="ElTabBar",Tr=(0,o.pM)({name:Rr}),$r=(0,o.pM)({...Tr,props:Cr,setup(e,{expose:t}){const i=e,s=(0,o.WQ)(kr);s||(0,Er.$)(Rr,"");const a=(0,xr.DU)("tabs"),r=(0,Oa.KR)(),l=(0,Oa.KR)(),d=()=>{let e=0,t=0;const o=["top","bottom"].includes(s.props.tabPosition)?"width":"height",n="width"===o?"x":"y",a="x"===n?"left":"top";return i.tabs.every(s=>{if((0,Dr.b0)(s.paneName))return!1;const n=i.tabRefs[s.paneName];if(!n)return!1;if(!s.active)return!0;e=n[`offset${(0,Fr.ZH)(a)}`],t=n[`client${(0,Fr.ZH)(o)}`];const r=window.getComputedStyle(n);return"width"===o&&(t-=Number.parseFloat(r.paddingLeft)+Number.parseFloat(r.paddingRight),e+=Number.parseFloat(r.paddingLeft)),!1}),{[o]:`${t}px`,transform:`translate${(0,Fr.ZH)(n)}(${e}px)`}},c=()=>l.value=d(),h=[],p=()=>{h.forEach(e=>e.stop()),h.length=0,Object.values(i.tabRefs).forEach(e=>{h.push((0,Ir.wYm)(e,c))})};(0,o.wB)(()=>i.tabs,async()=>{await(0,o.dY)(),c(),p()},{immediate:!0});const u=(0,Ir.wYm)(r,()=>c());return(0,o.xo)(()=>{h.forEach(e=>e.stop()),h.length=0,u.stop()}),t({ref:r,update:c}),(e,t)=>((0,o.uX)(),(0,o.CE)("div",{ref_key:"barRef",ref:r,class:(0,n.C4)([(0,Oa.R1)(a).e("active-bar"),(0,Oa.R1)(a).is((0,Oa.R1)(s).props.tabPosition)]),style:(0,n.Tr)(l.value)},null,6))}});var jr=(0,Lr.A)($r,[["__file","tab-bar.vue"]]),Nr=i(53344);const Mr=(0,Pr.b_)({panes:{type:(0,Pr.jq)(Array),default:()=>(0,Sr.f)([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),Ar={tabClick:(e,t,i)=>i instanceof Event,tabRemove:(e,t)=>t instanceof Event},_r="ElTabNav",Ur=(0,o.pM)({name:_r,props:Mr,emits:Ar,setup(e,{expose:t,emit:i}){const s=(0,o.WQ)(kr);s||(0,Er.$)(_r,"");const n=(0,xr.DU)("tabs"),a=(0,Ir.fho)(),r=(0,Ir.esz)(),l=(0,Oa.KR)(),d=(0,Oa.KR)(),c=(0,Oa.KR)(),h=(0,Oa.KR)({}),p=(0,Oa.KR)(),u=(0,Oa.KR)(!1),m=(0,Oa.KR)(0),f=(0,Oa.KR)(!1),g=(0,Oa.KR)(!0),v=(0,Oa.IJ)(),w=(0,o.EW)(()=>["top","bottom"].includes(s.props.tabPosition)?"width":"height"),y=(0,o.EW)(()=>{const e="width"===w.value?"X":"Y";return{transform:`translate${e}(-${m.value}px)`}}),b=()=>{if(!l.value)return;const e=l.value[`offset${(0,Fr.ZH)(w.value)}`],t=m.value;if(!t)return;const i=t>e?t-e:0;m.value=i},k=()=>{if(!l.value||!d.value)return;const e=d.value[`offset${(0,Fr.ZH)(w.value)}`],t=l.value[`offset${(0,Fr.ZH)(w.value)}`],i=m.value;if(e-i<=t)return;const o=e-i>2*t?i+t:e-t;m.value=o},I=async()=>{const t=d.value;if(!u.value||!c.value||!l.value||!t)return;await(0,o.dY)();const i=h.value[e.currentName];if(!i)return;const n=l.value,a=["top","bottom"].includes(s.props.tabPosition),r=i.getBoundingClientRect(),p=n.getBoundingClientRect(),f=a?t.offsetWidth-p.width:t.offsetHeight-p.height,g=m.value;let v=g;a?(r.leftp.right&&(v=g+r.right-p.right)):(r.topp.bottom&&(v=g+(r.bottom-p.bottom))),v=Math.max(v,0),m.value=Math.min(v,f)},P=()=>{var t;if(!d.value||!l.value)return;e.stretch&&(null==(t=p.value)||t.update());const i=d.value[`offset${(0,Fr.ZH)(w.value)}`],o=l.value[`offset${(0,Fr.ZH)(w.value)}`],s=m.value;o0&&(m.value=0))},S=e=>{let t=0;switch(e.code){case Nr.R.left:case Nr.R.up:t=-1;break;case Nr.R.right:case Nr.R.down:t=1;break;default:return}const i=Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),o=i.indexOf(e.target);let s=o+t;s<0?s=i.length-1:s>=i.length&&(s=0),i[s].focus({preventScroll:!0}),i[s].click(),C()},C=()=>{g.value&&(f.value=!0)},L=()=>f.value=!1,F=(e,t)=>{h.value[t]=e},E=async()=>{await(0,o.dY)();const t=h.value[e.currentName];null==t||t.focus({preventScroll:!0})};return(0,o.wB)(a,e=>{"hidden"===e?g.value=!1:"visible"===e&&setTimeout(()=>g.value=!0,50)}),(0,o.wB)(r,e=>{e?setTimeout(()=>g.value=!0,50):g.value=!1}),(0,Ir.wYm)(c,P),(0,o.sV)(()=>setTimeout(()=>I(),0)),(0,o.$u)(()=>P()),t({scrollToActiveTab:I,removeFocus:L,focusActiveTab:E,tabListRef:d,tabBarRef:p,scheduleRender:()=>(0,Oa.mu)(v)}),()=>{const t=u.value?[(0,o.bF)("span",{class:[n.e("nav-prev"),n.is("disabled",!u.value.prev)],onClick:b},[(0,o.bF)(yr.tk,null,{default:()=>[(0,o.bF)(br.nkM,null,null)]})]),(0,o.bF)("span",{class:[n.e("nav-next"),n.is("disabled",!u.value.next)],onClick:k},[(0,o.bF)(yr.tk,null,{default:()=>[(0,o.bF)(br.Qpb,null,null)]})])]:null,a=e.panes.map((t,a)=>{var r,l,d,c;const h=t.uid,p=t.props.disabled,u=null!=(l=null!=(r=t.props.name)?r:t.index)?l:`${a}`,m=!p&&(t.isClosable||e.editable);t.index=`${a}`;const g=m?(0,o.bF)(yr.tk,{class:"is-icon-close",onClick:e=>i("tabRemove",t,e)},{default:()=>[(0,o.bF)(br.bm,null,null)]}):null,v=(null==(c=(d=t.slots).label)?void 0:c.call(d))||t.props.label,w=!p&&t.active?0:-1;return(0,o.bF)("div",{ref:e=>F(e,u),class:[n.e("item"),n.is(s.props.tabPosition),n.is("active",t.active),n.is("disabled",p),n.is("closable",m),n.is("focus",f.value)],id:`tab-${u}`,key:`tab-${h}`,"aria-controls":`pane-${u}`,role:"tab","aria-selected":t.active,tabindex:w,onFocus:()=>C(),onBlur:()=>L(),onClick:e=>{L(),i("tabClick",t,u,e)},onKeydown:e=>{!m||e.code!==Nr.R.delete&&e.code!==Nr.R.backspace||i("tabRemove",t,e)}},[v,g])});return v.value,(0,o.bF)("div",{ref:c,class:[n.e("nav-wrap"),n.is("scrollable",!!u.value),n.is(s.props.tabPosition)]},[t,(0,o.bF)("div",{class:n.e("nav-scroll"),ref:l},[e.panes.length>0?(0,o.bF)("div",{class:[n.e("nav"),n.is(s.props.tabPosition),n.is("stretch",e.stretch&&["top","bottom"].includes(s.props.tabPosition))],ref:d,style:y.value,role:"tablist",onKeydown:S},[e.type?null:(0,o.bF)(jr,{ref:p,tabs:[...e.panes],tabRefs:h.value},null),a]):null])])}}});var Or=i(31069),Wr=i(51338);const Vr=(e,t,i)=>{const s=(0,Wr.CW)(e.subTree).filter(e=>{var i;return(0,o.vv)(e)&&(null==(i=e.type)?void 0:i.name)===t&&!!e.component}),n=s.map(e=>e.component.uid);return n.map(e=>i[e]).filter(e=>!!e)},zr=(e,t)=>{const i=(0,Oa.IJ)({}),s=(0,Oa.IJ)([]),n=new WeakMap,a=e=>{i.value[e.uid]=e,(0,Oa.mu)(i),(0,o.sV)(()=>{const t=e.getVnode().el,o=t.parentNode;if(!n.has(o)){n.set(o,[]);const e=o.insertBefore.bind(o);o.insertBefore=(t,s)=>{const a=n.get(o).some(e=>t===e||s===e);return a&&(0,Oa.mu)(i),e(t,s)}}n.get(o).push(t)})},r=e=>{delete i.value[e.uid],(0,Oa.mu)(i);const t=e.getVnode().el,o=t.parentNode,s=n.get(o),a=s.indexOf(t);s.splice(a,1)},l=()=>{s.value=Vr(e,t,i.value)},d=e=>e.render(),c=(0,o.pM)({setup(e,{slots:t}){return()=>(l(),t.default?(0,o.h)(d,{render:t.default}):null)}});return{children:s,addChild:a,removeChild:r,ChildrenSorter:c}},Br=(0,Pr.b_)({type:{type:String,values:["card","border-card",""],default:""},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:(0,Pr.jq)(Function),default:()=>!0},stretch:Boolean}),Xr=e=>(0,n.Kg)(e)||(0,Dr.Et)(e),Hr={[Or.l4]:e=>Xr(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>Xr(e),edit:(e,t)=>["remove","add"].includes(t),tabRemove:e=>Xr(e),tabAdd:()=>!0},Kr=(0,o.pM)({name:"ElTabs",props:Br,emits:Hr,setup(e,{emit:t,slots:i,expose:s}){var n;const a=(0,xr.DU)("tabs"),r=(0,o.EW)(()=>["left","right"].includes(e.tabPosition)),{children:l,addChild:d,removeChild:c,ChildrenSorter:h}=zr((0,o.nI)(),"ElTabPane"),p=(0,Oa.KR)(),u=(0,Oa.KR)(null!=(n=e.modelValue)?n:"0"),m=async(i,o=!1)=>{var s,n,a,r;if(u.value!==i&&!(0,Dr.b0)(i))try{let d;if(e.beforeLeave){const t=e.beforeLeave(i,u.value);d=t instanceof Promise?await t:t}else d=!0;if(!1!==d){const e=null==(s=l.value.find(e=>e.paneName===u.value))?void 0:s.isFocusInsidePane();u.value=i,o&&(t(Or.l4,i),t("tabChange",i)),null==(a=null==(n=p.value)?void 0:n.removeFocus)||a.call(n),e&&(null==(r=p.value)||r.focusActiveTab())}}catch(d){}},f=(e,i,o)=>{e.props.disabled||(t("tabClick",e,o),m(i,!0))},g=(e,i)=>{e.props.disabled||(0,Dr.b0)(e.props.name)||(i.stopPropagation(),t("edit",e.props.name,"remove"),t("tabRemove",e.props.name))},v=()=>{t("edit",void 0,"add"),t("tabAdd")},w=t=>{const i=t.el.firstChild,o=["bottom","right"].includes(e.tabPosition)?t.children[0].el:t.children[1].el;i!==o&&i.before(o)};return(0,o.wB)(()=>e.modelValue,e=>m(e)),(0,o.wB)(u,async()=>{var e;await(0,o.dY)(),null==(e=p.value)||e.scrollToActiveTab()}),(0,o.Gt)(kr,{props:e,currentName:u,registerPane:d,unregisterPane:c,nav$:p}),s({currentName:u,get tabNavRef(){return wr(p.value,["scheduleRender"])}}),()=>{const t=i["add-icon"],s=e.editable||e.addable?(0,o.bF)("div",{class:[a.e("new-tab"),r.value&&a.e("new-tab-vertical")],tabindex:"0",onClick:v,onKeydown:e=>{[Nr.R.enter,Nr.R.numpadEnter].includes(e.code)&&v()}},[t?(0,o.RG)(i,"add-icon"):(0,o.bF)(yr.tk,{class:a.is("icon-plus")},{default:()=>[(0,o.bF)(br.FWt,null,null)]})]):null,n=()=>(0,o.bF)(Ur,{ref:p,currentName:u.value,editable:e.editable,type:e.type,panes:l.value,stretch:e.stretch,onTabClick:f,onTabRemove:g},null),d=(0,o.bF)("div",{class:[a.e("header"),r.value&&a.e("header-vertical"),a.is(e.tabPosition)]},[(0,o.bF)(h,null,{default:n,$stable:!0}),s]),c=(0,o.bF)("div",{class:a.e("content")},[(0,o.RG)(i,"default")]);return(0,o.bF)("div",{class:[a.b(),a.m(e.tabPosition),{[a.m("card")]:"card"===e.type,[a.m("border-card")]:"border-card"===e.type}],onVnodeMounted:w,onVnodeUpdated:w},[c,d])}}});var Gr=Kr,Qr=i(52307);const Jr=(0,Pr.b_)({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),qr="ElTabPane",Yr=(0,o.pM)({name:qr}),Zr=(0,o.pM)({...Yr,props:Jr,setup(e){const t=e,i=(0,o.nI)(),a=(0,o.Ht)(),r=(0,o.WQ)(kr);r||(0,Er.$)(qr,"usage: ");const l=(0,xr.DU)("tab-pane"),d=(0,Oa.KR)(),c=(0,Oa.KR)(),h=(0,o.EW)(()=>t.closable||r.props.closable),p=(0,Qr.uA)(()=>{var e;return r.currentName.value===(null!=(e=t.name)?e:c.value)}),u=(0,Oa.KR)(p.value),m=(0,o.EW)(()=>{var e;return null!=(e=t.name)?e:c.value}),f=(0,Qr.uA)(()=>!t.lazy||u.value||p.value),g=()=>{var e;return null==(e=d.value)?void 0:e.contains(document.activeElement)};(0,o.wB)(p,e=>{e&&(u.value=!0)});const v=(0,Oa.Kh)({uid:i.uid,getVnode:()=>i.vnode,slots:a,props:t,paneName:m,active:p,index:c,isClosable:h,isFocusInsidePane:g});return r.registerPane(v),(0,o.xo)(()=>{r.unregisterPane(v)}),(0,o.Ic)(()=>{var e;a.label&&(null==(e=r.nav$.value)||e.scheduleRender())}),(e,t)=>(0,Oa.R1)(f)?(0,o.bo)(((0,o.uX)(),(0,o.CE)("div",{key:0,id:`pane-${(0,Oa.R1)(m)}`,ref_key:"paneRef",ref:d,class:(0,n.C4)((0,Oa.R1)(l).b()),role:"tabpanel","aria-hidden":!(0,Oa.R1)(p),"aria-labelledby":`tab-${(0,Oa.R1)(m)}`},[(0,o.RG)(e.$slots,"default")],10,["id","aria-hidden","aria-labelledby"])),[[s.aG,(0,Oa.R1)(p)]]):(0,o.Q3)("v-if",!0)}});var el=(0,Lr.A)(Zr,[["__file","tab-pane.vue"]]),tl=i(64769);const il=(0,tl.GU)(Gr,{TabPane:el}),ol=(0,tl.WM)(el),sl={class:"noselected console-tabs"},nl=["src"],al={class:"node-label"};function rl(e,t,i,s,a,r){const l=ol,d=il;return(0,o.uX)(),(0,o.CE)("div",sl,[(0,o.bF)(d,{modelValue:r.pathSelected,"onUpdate:modelValue":t[0]||(t[0]=e=>r.pathSelected=e),type:"card",closable:"",onTabRemove:r.removeTab,onTabClick:r.selectTab},{default:(0,o.k6)(()=>[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(r.consoleItems,e=>((0,o.uX)(),(0,o.Wv)(l,{key:e.path+"-|-"+e.id,label:e.name,name:e.path+"-|-"+e.id},{label:(0,o.k6)(()=>[(0,o.Lk)("img",{src:r.getIconUrl(e.path),alt:"",class:"node-icon"},null,8,nl),(0,o.Lk)("span",al,(0,n.v_)(r.getItemPath(e)),1)]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue","onTabRemove","onTabClick"])])}var ll={data(){return{}},mounted(){},methods:{getItemPath(e){return this.ideInfo.consoleSelected.path!==e.path||this.ideInfo.consoleSelected.id!==e.id||"Terminal"===this.ideInfo.consoleSelected.name&&"Terminal"===this.ideInfo.consoleSelected.path?e.name:"/"+this.ideInfo.currProj.data.name+e.path},getIconUrl(e){return i(80238)(`./${(0,W.ry)(e.substring(e.lastIndexOf(".")+1))}`)},getItem(e){if(!e)return;const t=e.split("-|-");t[1]=Number(t[1]);for(let i=0;i{document.addEventListener(e,this.activityHandler,!0)}),this.listenForIDEActivity()}removeActivityListeners(){this.activityEvents.forEach(e=>{document.removeEventListener(e,this.activityHandler,!0)})}listenForIDEActivity(){document.addEventListener("ide:file-save",this.activityHandler),document.addEventListener("ide:code-run",this.activityHandler),document.addEventListener("ide:file-open",this.activityHandler),document.addEventListener("ide:console-input",this.activityHandler)}onActivity(){this.isActive&&(this.lastActivity=Date.now(),!this.renewalInProgress&&this.shouldCheckRenewal()&&this.checkAndRenewSession())}shouldCheckRenewal(){const e=Date.now()-(this.lastRenewalAttempt||0);return e>this.activityThreshold}startRenewalChecker(){this.renewalTimer=setInterval(()=>{this.isActive&&this.hasRecentActivity()&&this.checkAndRenewSession()},this.renewalCheckInterval)}stopRenewalChecker(){this.renewalTimer&&(clearInterval(this.renewalTimer),this.renewalTimer=null)}hasRecentActivity(){const e=Date.now()-this.lastActivity;return e{this.wsInfo?.rws?.readyState===WebSocket.OPEN?(fl.log("🔄 [REPL] Retrying backend REPL after reconnection"),await this.startBackendRepl()):(fl.log("🌐 [REPL] Backend still unavailable, switching to browser mode"),this.addReplOutput("Backend unavailable, switching to browser mode...","error"),await this.startPyodideRepl())},2e3)}},async startPyodideRepl(){fl.log("🌐 [REPL] Starting Pyodide REPL, current state:",{pyodideReady:this.pyodideReady,pyodideInitialized:this.pyodideInitialized}),this.pyodideReady||(fl.log("🔄 [REPL] Pyodide not ready, initializing..."),await this.initializePyodideForRepl()),this.pyodideReady?fl.log("✅ [REPL] Pyodide ready for use"):(fl.log("❌ [REPL] Failed to initialize Pyodide"),this.addReplOutput("Failed to initialize browser Python","error"),this.isReplMode=!1)},async initializePyodideForRepl(){if(fl.log("🔄 [REPL] initializePyodideForRepl called, state:",{pyodideLoading:this.pyodideLoading,pyodideReady:this.pyodideReady,loadPyodideAvailable:typeof window.loadPyodide}),this.pyodideLoading||this.pyodideReady)fl.log("⚠️ [REPL] Pyodide already loading or ready, skipping");else{this.pyodideLoading=!0;try{if("function"!==typeof window.loadPyodide)throw new Error("Pyodide not available. Please check internet connection.");fl.log("📦 [REPL] Loading Pyodide from CDN..."),this.pyodide=await window.loadPyodide({indexURL:"https://cdn.jsdelivr.net/pyodide/v0.24.1/full/"}),this.pyodideNamespace=this.pyodide.globals.get("dict")(),await this.pyodide.runPythonAsync("\n import sys\n import io\n import builtins\n \n # Store the version\n python_version = sys.version\n \n # Setup for REPL\n _ = None\n "),this.pyodideReady=!0,this.pyodideLoading=!1,this.pyodideInitialized=!0,fl.log("✅ [REPL] Pyodide REPL ready!",{pyodide:this.pyodide,namespace:this.pyodideNamespace})}catch(Er){fl.error("❌ [REPL] Pyodide initialization failed:",Er),this.pyodideLoading=!1,this.pyodideReady=!1,this.addReplOutput(`Error: ${Er.message}`,"error")}}},async executeReplCommandDualMode(e){if(fl.log("🎯 [REPL] executeReplCommandDualMode called with:",e),!e.trim())return fl.log("⚠️ [REPL] Empty command, handling continuation mode"),void(this.replContinuationMode&&(this.replContinuationMode=!1,this.replPrompt=">>> "));this.replHistory[this.replHistory.length-1]!==e&&this.replHistory.push(e),this.replHistoryIndex=-1,this.replInput="",this.replInputRows=1,this.ideInfo.consoleSelected&&this.ideInfo.consoleSelected.id&&this.$store.commit("ide/addConsoleOutput",{id:this.ideInfo.consoleSelected.id,type:"repl-input",text:e,prompt:this.replPrompt});const t=this.wsInfo?.connected&&this.replSessionId&&"pyodide"!==this.replMode;fl.log("🔍 [REPL] Execution mode check:",{wsConnected:this.wsInfo?.connected,replSessionId:this.replSessionId,replMode:this.replMode,useBackend:t,pyodideReady:this.pyodideReady}),t?(fl.log("📤 [REPL] Executing via backend"),await this.executeBackendCommand(e)):this.pyodideReady?(fl.log("🌐 [REPL] Executing via Pyodide"),await this.executePyodideCommand(e)):(fl.log("⚠️ [REPL] No environment ready, initializing Pyodide..."),await this.startPyodideRepl(),this.pyodideReady?await this.executePyodideCommand(e):this.addReplOutput("No Python environment available","error"))},async executeBackendCommand(e){fl.log("📤 [REPL] executeBackendCommand called with:",e);try{const t={cmd:"send_program_input",id:Date.now().toString(),data:{program_id:this.replSessionId,input:e}};if(fl.log("📨 [REPL] Sending command message:",t),!this.wsInfo.rws||this.wsInfo.rws.readyState!==WebSocket.OPEN)throw new Error(`WebSocket disconnected: readyState=${this.wsInfo.rws?.readyState}`);this.wsInfo.rws.send(JSON.stringify(t)),fl.log("✅ [REPL] Command sent to backend")}catch(Er){fl.error("❌ [REPL] Backend execution failed:",Er),this.addReplOutput("Backend connection lost. Please restart REPL if needed.","system"),fl.log("⚠️ [REPL] Keeping backend mode, user can manually restart if needed")}},async executePyodideCommand(e){if(this.pyodideReady&&this.pyodide){try{await this.pyodide.runPythonAsync("\n import sys\n from io import StringIO\n _stdout = StringIO()\n _stderr = StringIO()\n _old_stdout = sys.stdout\n _old_stderr = sys.stderr\n sys.stdout = _stdout\n sys.stderr = _stderr\n ");let i=null,o=null;try{i=await this.pyodide.runPythonAsync(e,{globals:this.pyodideNamespace}),void 0!==i&&null!==i&&await this.pyodide.runPythonAsync("_ = _result",{globals:{...this.pyodideNamespace.toJs(),_result:i}})}catch(Er){o=Er}const s=await this.pyodide.runPythonAsync("\n sys.stdout = _old_stdout\n sys.stderr = _old_stderr\n stdout_val = _stdout.getvalue()\n stderr_val = _stderr.getvalue()\n _stdout.close()\n _stderr.close()\n (stdout_val, stderr_val)\n ");if(s[0]&&this.addReplOutput(s[0],"output"),s[1]&&this.addReplOutput(s[1],"error"),o)this.addReplOutput(String(o),"error");else if(void 0!==i&&null!==i){const e=this.pyodide.globals.get("None");if(i!==e)try{const e=await this.pyodide.runPythonAsync("repr(_last_val)",{globals:{...this.pyodideNamespace.toJs(),_last_val:i}});e&&"None"!==e&&this.addReplOutput(e,"output")}catch(t){const e=String(i);e&&"[object Object]"!==e&&this.addReplOutput(e,"output")}}this.replContinuationMode=!1,this.replPrompt=">>> "}catch(Er){fl.error("Pyodide execution error:",Er),this.addReplOutput(`Error: ${Er.message}`,"error")}this.$nextTick(()=>{this.$refs.consoleOutputArea&&(this.$refs.consoleOutputArea.scrollTop=this.$refs.consoleOutputArea.scrollHeight)})}else this.addReplOutput("Browser Python not ready","error")},handleBackendReplResponse(e){if(fl.log("📥 [REPL] Backend response received:",{code:e?.code,hasData:!!e?.data,dataKeys:e?.data?Object.keys(e.data):[],fullMessage:e}),e){if(0===e.code||"0"===e.code){if(e.data){if(e.data.stdout){const t=e.data.stdout,i=t.match(/^(>>>|\.\.\.)\s*$/)||t.match(/^(>>>|\.\.\.)\s*\n*$/)||">>>"===t.trim()||"..."===t.trim()||""===t.trim()||">>> "===t||"... "===t||t.match(/^\s*>>>\s*$/)||t.match(/^\s*\.\.\.\s*$/)||t.match(/^>>>\s*\n*$/)||t.match(/^\.\.\.\s*\n*$/);i||""===t.trim()||this.addReplOutput(t,"output")}e.data.stderr&&this.addReplOutput(e.data.stderr,"error")}}else 2e3===e.code?"repl_prompt"===e.data?.type?(this.replPrompt=">>> ",this.replContinuationMode=!1):e.data?.stdout&&this.addReplOutput(e.data.stdout,"output"):1111===e.code&&(this.addReplOutput("Backend session ended","system"),this.replSessionId=null,this.addReplOutput("Switching to browser mode...","system"),this.startPyodideRepl());this.$nextTick(()=>{this.$refs.consoleOutputArea&&(this.$refs.consoleOutputArea.scrollTop=this.$refs.consoleOutputArea.scrollHeight)})}else fl.log("⚠️ [REPL] Empty message received")},async stopDualModeReplSession(){if(this.replSessionId&&this.wsInfo?.rws?.readyState===WebSocket.OPEN){const e={cmd:"stop_python_program",id:Date.now().toString(),data:{program_id:this.replSessionId}};this.wsInfo.rws.send(JSON.stringify(e))}this.replSessionId=null,this.isReplMode=!1,this.replPrompt=">>> ",this.replContinuationMode=!1,this.pyodideNamespace&&(this.pyodideNamespace=this.pyodide?.globals.get("dict")())}}};var vl=gl,wl=i(96763);const yl=i(57975);var bl={data(){return{showDeleteDialog:!1,showFileDialog:!1,showProjsDialog:!1,showUploadDialog:!1,showNewFileDialog:!1,showNewFolderDialog:!1,showImportFileDialog:!1,showBulkUploadDialog:!1,showFileBrowserDialog:!1,showLoginModal:!1,fileBrowserMode:"open",fileToMove:null,showSettingsModal:!1,showKeyboardShortcutsModal:!1,showFindReplaceModal:!1,findReplaceMode:"find",showREPL:!1,isReplMode:!1,replSessionId:null,showCover:!0,showContextMenu:!1,contextMenuPosition:{x:0,y:0},contextMenuTarget:null,windowWidth:window.innerWidth,leftSidebarVisible:!0,dialogType:"",dialogTitle:"",dialogTips:"",dialogText:"",leftSidebarWidth:250,rightSidebarWidth:400,rightSidebarVisible:!1,consoleHeight:200,consoleExpanded:!0,consoleMaximized:!1,previousConsoleHeight:200,rightPanelExpanded:!1,previousRightWidth:400,rightPanelMode:"closed",consoleMode:"collapsed",consolePreviousMode:"normal",wasConsoleOpenBeforeRightExpand:!1,fileConsoleStates:{},activeFilePath:null,rightPanelState:"normal",rightPanelNormalWidth:400,previousConsoleState:{expanded:!0,height:200},editorHeight:"calc(100% - 235px)",minEditorWidth:500,isResizingLeft:!1,isResizingRight:!1,isResizingConsole:!1,startX:0,startY:0,startWidth:0,startHeight:0,resizeWarning:!1,programInput:"",programInputRows:1,wordWrap:!0,replInput:"",replHistory:[],replHistoryIndex:-1,replPrompt:">>> ",replInputRows:1,replContinuationMode:!1,previewTabs:[],selectedPreviewTab:null,previewTabCounter:0,previewDraggedIndex:-1,previewDropTargetIndex:-1,focusedPanel:"editor",terminalOutput:[],terminalSessionActive:!1,pyodide:null,pyodideLoading:!1,pyodideReady:!1,replMode:"auto",pyodideNamespace:null,pyodideInitialized:!1,wsMessageHandler:null}},mixins:[vl],components:{Splitpanes:ea.S,Pane:ea.Z,TwoHeaderMenu:qs,CodeTabs:Si.A,HybridConsole:Ga,ConsoleTabs:cl,ProjTree:Mi.A,IdeEditor:Pi.A,LoginModal:P,PythonREPL:S.A,DialogProjs:bi.A,DialogText:yi.A,DialogDelete:wi.A,DialogUpload:vi.A,DialogNewFile:gi,DialogNewFolder:Vt,DialogImportFile:vt,DialogBulkUpload:Te,DialogFileBrowser:X,CsvViewer:ki.A,MediaViewer:Ii.A,SettingsModal:yo.A,KeyboardShortcutsModal:wo,FindReplaceModal:io,FullscreenPreview:Ni,ChevronLeft:ta.A,ChevronRight:ct.A,ChevronUp:Zi,ChevronDown:ht.A,Minimize2:ia},created(){},mounted(){this.throttledHandleResizeLeft=this.throttle(this.handleResizeLeft,16),this.throttledHandleResizeRight=this.throttle(this.handleResizeRight,16),this.throttledHandleResizeConsole=this.throttle(this.handleResizeConsole,16),this.initializeAutoSave();const e=localStorage.getItem("session_id"),t=localStorage.getItem("username");if(!e||!t)return wl.log("🔒 [VmIde] No session found, auto-opening login modal..."),void(this.showLoginModal=!0);wl.log("🔑 [VmIde] Found existing session for:",t),wl.log("🔄 [VmIde] Starting session manager for auto-renewal..."),ml.startTracking();try{wl.log("🔌 [VmIde] Initializing WebSocket with authentication..."),this.wsInfo&&this.wsInfo.rws?wl.log("ℹ️ [VmIde] WebSocket already initialized"):(this.$store.dispatch("websocket/init",{}),wl.log("✅ [VmIde] WebSocket initialization dispatched"))}catch(Er){wl.error("❌ [VmIde] Error initializing WebSocket:",Er)}this.rightPanelMode="closed",this.consoleMode="collapsed",this.$nextTick(()=>{setTimeout(()=>{try{this.setupWebSocketHandler()}catch(Er){wl.error("Error in setupWebSocketHandler:",Er)}},500)}),this.loadLayoutPreferences(),window.addEventListener("resize",this.validateLayout);const i=this;if(e&&t){const e=setInterval(()=>{wl.log("⏱️ [VmIde] WebSocket check:",{connected:i.wsInfo.connected,wsInfo:i.wsInfo}),i.wsInfo.connected&&(wl.log("📡 [VmIde] WebSocket connected, listing projects..."),this.$store.dispatch(`ide/${ut.qB}`,{callback:t=>{wl.log("📋 [VmIde] Project list response:",t),clearInterval(e),0==t.code?(wl.log("✅ [VmIde] Projects found:",t.data),this.$store.commit("ide/handleProjects",t.data),i.loadAllDefaultProjects()):wl.error("❌ [VmIde] Failed to list projects:",t)}}))},1e3)}window.addEventListener("resize",this.resize),this.$nextTick(()=>{this.applyInitialEditorSettings()})},beforeUnmount(){window.removeEventListener("resize",this.validateLayout),window.removeEventListener("resize",this.resize),this.wsMessageHandler&&(this.wsMessageHandler=null),this.previewTabs.forEach(e=>{"pdf"===e.type&&e.content&&e.content.startsWith("blob:")&&URL.revokeObjectURL(e.content)})},computed:{wsInfo(){return this.$store.getters["websocket/wsInfo"]()},ideInfo(){return this.$store.state.ide.ideInfo},currentUser(){const e=this.$store.state.ide.currentUser;if(e)return e;const t=localStorage.getItem("session_id"),i=localStorage.getItem("username"),o=localStorage.getItem("role"),s=localStorage.getItem("full_name");return t&&i?{session_id:t,username:i,role:o,full_name:s}:null},isMarkdown(){return!!this.ideInfo.codeSelected.path&&this.ideInfo.codeSelected.path.endsWith(".md")},isMediaFile(){if(this.ideInfo.codeSelected.path){const e=[".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".pdf"],t=this.ideInfo.codeSelected.path.toLowerCase();return e.some(e=>t.endsWith(e))}return!1},consoleLimit(){let e=0;for(let t=0;t=3},hasRunProgram(){return this.ideInfo.consoleItems.some(e=>e.run)},showConsole(){const e=0!==this.ideInfo.consoleItems.length;return e},leftSidebarSize(){if(this.windowWidth<=900)return 0;let e=20;if(this.windowWidth<=1400&&this.windowWidth>1200){const t=Math.min(250,.2*this.windowWidth);e=t/this.windowWidth*100}else this.windowWidth<=1200&&(e=180/this.windowWidth*100);return this.leftSidebarVisible?e:.1},leftSidebarMinSize(){return this.windowWidth<=900?0:.1},leftSidebarMaxSize(){return this.windowWidth<=900?0:this.windowWidth<=1400&&this.windowWidth>1200?30:40},rightSidebarSize(){if(this.windowWidth<=900)return 0;if(this.windowWidth<=1200)return 0;if(0===this.previewTabs.length)return 0;if("closed"===this.rightPanelMode)return 0;if("expanded"===this.rightPanelMode){const e=this.leftSidebarVisible?20:0;return 100-e-10}return 30},rightSidebarMinSize(){return this.windowWidth<=1200?0:.1},rightSidebarMaxSize(){return this.windowWidth<=900||this.windowWidth<=1200?0:50},centerSize(){if(this.windowWidth<=900)return 100;if(this.windowWidth<=1200){const e=this.leftSidebarVisible?this.windowWidth<=1200?180/this.windowWidth*100:20:0;return 100-e}const e=this.leftSidebarVisible?this.leftSidebarSize:0,t=this.rightSidebarSize;return 0===t?100-e:Math.max(30,100-e-t)},editorPaneSize(){return"maximized"===this.consoleMode?5:"collapsed"===this.consoleMode?95:70},consolePaneSize(){return"maximized"===this.consoleMode?95:"collapsed"===this.consoleMode?5:30}},watch:{"previewTabs.length":function(e,t){0===e&&t>0&&(this.rightPanelMode="closed",this.rightSidebarVisible=!1)},"ideInfo.codeSelected":function(e,t){e&&t&&e.path&&t.path&&e.path!==t.path?this.handleTabChange(e,t):e&&!t&&(this.activeFilePath=e.path,this.loadFileConsoleState(e.path))},"ideInfo.consoleSelected.waitingForInput":function(e){e&&this.$nextTick(()=>{this.$refs.programInputField&&this.$refs.programInputField.focus()})},consoleExpanded(e){e&&this.$nextTick(()=>{this.$refs.consoleOutputArea&&(this.$refs.consoleOutputArea.scrollTop=this.$refs.consoleOutputArea.scrollHeight)})}},methods:{throttle(e,t){let i=0,o=null;const s=this;return function(...n){const a=Date.now();a-i>=t?(e.apply(s,n),i=a):o||(o=requestAnimationFrame(()=>{e.apply(s,n),i=Date.now(),o=null}))}},toggleLeftSidebar(e){this.leftSidebarVisible=e},applyInitialEditorSettings(){const e=localStorage.getItem("fontSize");e&&this.updateFontSize(e);const t=localStorage.getItem("showLineNumbers");null!==t&&this.updateLineNumbers("true"===t)},updateFontSize(e){const t=parseInt(e)+"px",i=document.querySelectorAll(".CodeMirror");i.forEach(e=>{e.CodeMirror&&(e.style.fontSize=t,e.CodeMirror.refresh())});const o=document.getElementById("codemirror-font-size")||document.createElement("style");o.id="codemirror-font-size",o.innerHTML=`.CodeMirror { font-size: ${t} !important; } .CodeMirror pre { font-size: ${t} !important; }`,document.getElementById("codemirror-font-size")||document.head.appendChild(o),localStorage.setItem("fontSize",e),window.dispatchEvent(new CustomEvent("fontSizeChanged"))},updateLineNumbers(e){const t=document.querySelectorAll(".CodeMirror");t.forEach(t=>{t.CodeMirror&&t.CodeMirror.setOption("lineNumbers",e)}),localStorage.setItem("editorLineNumbers",e),this.$store.commit("ide/setEditorOption",{option:"lineNumbers",value:e})},updateWordWrap(e){this.wordWrap=e,this.$store.commit("ide/setEditorOption",{option:"lineWrapping",value:e})},updateAutoSave(e){this.$store.commit("ide/setAutoSave",e),e?this.startAutoSave():this.stopAutoSave()},updateAutoSaveInterval(e){this.$store.commit("ide/setAutoSaveInterval",e),this.$store.state.ide.ideInfo.autoSave&&(this.stopAutoSave(),this.startAutoSave())},updateAutoSaveNotifications(e){this.$store.commit("ide/setAutoSaveNotifications",e)},initializeAutoSave(){const e=localStorage.getItem("autoSave"),t=localStorage.getItem("autoSaveInterval"),i=localStorage.getItem("autoSaveNotifications");if(null!==e){const t="true"===e;this.$store.commit("ide/setAutoSave",t),t&&(wl.log("[AUTO-SAVE] Auto-save is enabled in settings, starting timer"),this.startAutoSave())}t&&this.$store.commit("ide/setAutoSaveInterval",parseInt(t)),null!==i&&this.$store.commit("ide/setAutoSaveNotifications","true"===i),wl.log("[AUTO-SAVE] Initialized auto-save settings:",{enabled:this.$store.state.ide.ideInfo.autoSave,interval:this.$store.state.ide.ideInfo.autoSaveInterval,notifications:this.$store.state.ide.ideInfo.autoSaveNotifications})},startAutoSave(){this.autoSaveTimer&&clearInterval(this.autoSaveTimer);const e=this.$store.state.ide.ideInfo.autoSaveInterval||60;wl.log(`[AUTO-SAVE] Starting auto-save timer with ${e}s interval`),this.autoSaveTimer=setInterval(()=>{this.saveAllFiles()},1e3*e)},stopAutoSave(){this.autoSaveTimer&&(clearInterval(this.autoSaveTimer),this.autoSaveTimer=null,wl.log("[AUTO-SAVE] Auto-save timer stopped"))},saveAllFiles(){const e=this.ideInfo.codeItems.filter(e=>e.content);if(0===e.length)return void wl.log("[AUTO-SAVE] No files to auto-save");wl.log(`[AUTO-SAVE] Auto-saving ${e.length} files`);let t=0;e.forEach(i=>{ml.constructor.emitIDEActivity("file-save",{filename:i.fileName}),this.$store.dispatch("ide/saveFile",{codeItem:i,isAutoSave:!0}).then(()=>{t++,t===e.length&&this.$store.state.ide.ideInfo.autoSaveNotifications&&(0,Ee.nk)({message:`Auto-saved ${t} file${t>1?"s":""}`,type:"info",duration:2e3,showClose:!1})}).catch(e=>{wl.error(`[AUTO-SAVE] Failed to auto-save ${i.path}:`,e),403===e.code&&wl.warn(`[AUTO-SAVE] Permission denied for ${i.path}, skipping auto-save`)})})},toggleConsoleExpand(){this.consoleExpanded=!this.consoleExpanded,this.updateEditorHeight(),localStorage.setItem("console-expanded",this.consoleExpanded)},updateEditorHeight(){if(this.consoleExpanded){const e=window.innerHeight-300,t=Math.min(this.consoleHeight,e);this.editorHeight=`calc(100% - ${t+35}px)`}else this.editorHeight="calc(100% - 35px)"},clearConsole(){const e=this.ideInfo.consoleSelected;e&&e.resultList&&this.$store.commit("ide/clearConsoleOutput",e.id),this.programInput="",this.programInputRows=1},toggleWordWrap(){this.wordWrap=!this.wordWrap,localStorage.setItem("word-wrap",this.wordWrap)},openREPL(){this.toggleReplMode()},closeREPL(){this.showREPL=!1},async toggleReplMode(){this.isReplMode?(this.replSessionId&&await this.stopReplSession(),this.isReplMode=!1,this.replPrompt=">>> ",this.replInput="",this.replInputRows=1):(this.isReplMode=!0,this.clearConsole(),this.consoleExpanded||(this.consoleExpanded=!0),await this.startReplSession(),this.$nextTick(()=>{this.$refs.replInputField&&this.$refs.replInputField.focus()}))},async startReplSession(){this.ideInfo.consoleSelected&&this.addReplOutput("Type Python code and press Enter to execute","system"),await this.startDualModeReplSession()},async stopReplSession(){await this.stopDualModeReplSession()},getPythonVersion(){return"3.x"},setupWebSocketHandler(){try{if(!this.wsInfo||!this.wsInfo.rws)return wl.log("WebSocket not ready, retrying..."),void setTimeout(()=>this.setupWebSocketHandler(),500);const e=e=>{try{const t=JSON.parse(e.data);wl.log("📥 [VmIde] ALL WebSocket msg:",{id:t.id,cmd_id:t.cmd_id,code:t.code,cmd:t.cmd,programId:t.data?.program_id,ourSessionId:this.replSessionId,fullMsg:t});const i=t.id===this.replSessionId||t.cmd_id===this.replSessionId||t.data&&t.data.program_id===this.replSessionId||this.isReplMode&&this.replSessionId&&(0===t.code||2e3===t.code||1111===t.code)&&t.data&&(t.data.stdout||t.data.stderr||t.data.program_id);if(wl.log(`🔍 Match check: id=${t.id===this.replSessionId}, cmd_id=${t.cmd_id===this.replSessionId}, prog_id=${t.data?.program_id===this.replSessionId}, isReplMode=${this.isReplMode}, code=${t.code}`),i)return wl.log("🎯 REPL message matched - routing to REPL handler only!"),void this.handleReplResponse(t)}catch(t){}};this.$store.commit("websocket/addEventListener",{wsKey:"default",type:"message",listener:e}),this.wsMessageHandler=e,wl.log("WebSocket handler for REPL set up successfully")}catch(Er){wl.error("Error setting up WebSocket handler:",Er)}},handleReplMessage(e){wl.log("Handling REPL message:",e),this.handleReplResponse(e)},handleReplResponse(e){if(wl.log("🎯 [REPL] Processing REPL response:",e),wl.log("🎯 [REPL] Response type:",e?.type,"Data:",e?.data),e){if(e.type)switch(e.type){case"stdout":if(e.data&&e.data.text){const t=e.data.text;t.match(/^(>>>|\.\.\.)\s*$/)||""===t.trim()||this.addReplOutput(t,"output")}break;case"stderr":e.data&&e.data.text&&this.addReplOutput(e.data.text,"error");break;case"input_request":wl.log("Input request received:",e.data),e.data&&e.data.prompt&&(this.addReplOutput(e.data.prompt,"output"),this.$store.commit("ide/setConsoleWaiting",{id:this.ideInfo.consoleSelected?.id||e.cmd_id,waiting:!0,prompt:e.data.prompt}),this.programInputPrompt=e.data.prompt,this.$nextTick(()=>{this.$refs.programInputField&&this.$refs.programInputField.focus()}));break;case"repl_ready":wl.log("REPL ready:",e.data),this.isReplMode=!0,e.data&&e.data.prompt&&(this.replPrompt=e.data.prompt);break;case"complete":wl.log("Execution complete:",e.data),this.isReplMode=!1,e.data&&0!==e.data.exit_code&&this.addReplOutput(`\nProcess exited with code ${e.data.exit_code}`,"system"),this.$store.commit("ide/setConsoleWaiting",{id:this.ideInfo.consoleSelected?.id||e.cmd_id,waiting:!1});break;case"error":if(e.data){const t=e.data.error||"Unknown error";this.addReplOutput("Error: "+t,"error"),e.data.traceback&&this.addReplOutput(e.data.traceback,"error");const i=t.includes("Script timeout")||t.includes("Time limit exceeded")||t.includes("Infinite loop detected")||t.includes("Output rate limit exceeded")||t.includes("Flood detected");if(i){const i=t.includes("timeout")?"Timeout":"Infinite loop";wl.log(`⏰ [AUTO-STOP] ${i} detected - automatically stopping console`);const o=this.ideInfo.consoleSelected?.id||e.cmd_id;o&&setTimeout(()=>{this.stop(o),this.$store.commit("ide/updateConsoleItem",{id:o,run:!1,stop:!0}),this.addReplOutput("\nConsole stopped .\n","system")},100)}}break;case"figure":e.data&&e.data.content&&wl.log("Figure received, base64 length:",e.data.content.length);break;default:wl.log("Unknown message type:",e.type)}else if(0===e.code||"0"===e.code){if(e.data){if(e.data.stdout){const t=e.data.stdout;t.match(/^(>>>|\.\.\.)\s*$/)||""===t.trim()||this.addReplOutput(t,"output")}e.data.stderr&&this.addReplOutput(e.data.stderr,"error")}}else 2e3===e.code?e.data&&e.data.prompt&&(this.addReplOutput(e.data.prompt,"output"),this.$store.commit("ide/setConsoleWaiting",{id:this.ideInfo.consoleSelected?.id,waiting:!0,prompt:e.data.prompt})):5e3===e.code&&(this.isReplMode=!0);this.$nextTick(()=>{this.$refs.consoleOutputArea&&(this.$refs.consoleOutputArea.scrollTop=this.$refs.consoleOutputArea.scrollHeight)})}},toggleRightSidebar(){(this.previewTabs.length>0||this.rightSidebarVisible)&&(this.rightSidebarVisible=!this.rightSidebarVisible,localStorage.setItem("right-sidebar-visible",this.rightSidebarVisible))},expandRightPanel(){if(!this.rightPanelExpanded){this.previousRightWidth=this.rightSidebarWidth;const e=window.innerWidth,t=this.leftSidebarVisible?this.leftSidebarWidth:0;this.rightSidebarWidth=e-t-10,this.rightPanelExpanded=!0,this.consoleExpanded&&(this.consoleExpanded=!1,this.consoleMaximized=!1,this.updateEditorHeight())}},collapseRightPanel(){this.rightPanelExpanded?(this.rightSidebarWidth=this.previousRightWidth,this.rightPanelExpanded=!1,this.previousConsoleHeight>0&&(this.consoleExpanded=!0,this.updateEditorHeight())):this.rightSidebarWidth=300},handleLeftArrowClick(){"normal"===this.rightPanelMode&&(this.wasConsoleOpenBeforeRightExpand="collapsed"!==this.consoleMode,this.consoleMode="collapsed",this.consoleExpanded=!1,this.consoleMaximized=!1,this.rightPanelMode="expanded",this.rightSidebarVisible=!0,this.saveLayoutPreferences())},handleRightArrowClick(){"expanded"===this.rightPanelMode?(this.rightPanelMode="normal",this.wasConsoleOpenBeforeRightExpand&&(this.consoleMode="normal",this.consoleExpanded=!0)):"normal"===this.rightPanelMode&&(this.rightPanelMode="closed",this.rightSidebarVisible=!1),this.saveLayoutPreferences()},expandRightPanelToFull(){"normal"===this.rightPanelState&&(this.rightPanelNormalWidth=this.rightSidebarWidth),this.previousConsoleState.expanded=this.consoleExpanded,this.previousConsoleState.height=this.consoleHeight,this.consoleExpanded=!1,this.consoleMaximized=!1;const e=window.innerWidth,t=this.leftSidebarVisible?this.leftSidebarWidth:0;this.rightSidebarWidth=e-t-10,this.rightPanelState="expanded",this.rightPanelExpanded=!0,this.rightSidebarVisible=!0,this.updateEditorHeight(),this.saveLayoutPreferences()},collapseRightPanelCompletely(){"normal"===this.rightPanelState&&(this.rightPanelNormalWidth=this.rightSidebarWidth),this.rightSidebarVisible=!1,this.rightPanelState="collapsed",this.rightPanelExpanded=!1,this.saveLayoutPreferences()},restoreRightPanelToNormal(){this.rightSidebarWidth=this.rightPanelNormalWidth||400,this.rightSidebarVisible=!0,this.rightPanelState="normal",this.rightPanelExpanded=!1,this.previousConsoleState.expanded&&(this.consoleExpanded=!0,this.consoleHeight=this.previousConsoleState.height||200),this.updateEditorHeight(),this.saveLayoutPreferences()},restoreRightPanel(){this.rightPanelMode="normal",this.rightSidebarVisible=!0,this.saveLayoutPreferences()},handleConsoleUpArrow(){"collapsed"===this.consoleMode?(this.consoleMode="normal",this.consoleExpanded=!0,this.consoleMaximized=!1,this.updateEditorHeight()):"normal"===this.consoleMode&&(this.consolePreviousMode="normal",this.consoleMode="maximized",this.consoleMaximized=!0,this.consoleExpanded=!0,this.updateEditorHeight())},handleConsoleDownArrow(){"normal"!==this.consoleMode&&"maximized"!==this.consoleMode||(this.consoleMode="collapsed",this.consoleExpanded=!1,this.consoleMaximized=!1,this.updateEditorHeight())},handleConsoleRestore(){"maximized"===this.consoleMode&&(this.consoleMode=this.consolePreviousMode||"normal",this.consoleMaximized=!1,this.consoleExpanded="normal"===this.consoleMode,this.updateEditorHeight())},handleTabChange(e,t){this.isReplMode&&this.replSessionId&&(wl.log("🔄 [VmIde] File switched - stopping REPL session"),this.stopReplSession()),t&&t.path&&this.activeFilePath&&this.saveFileConsoleState(this.activeFilePath),e&&e.path&&(this.activeFilePath=e.path,this.loadFileConsoleState(e.path))},saveFileConsoleState(e){if(!e||!e.endsWith(".py"))return;const t=this.ideInfo.consoleItems.find(t=>t.path===e);this.fileConsoleStates[e]={mode:this.consoleMode,expanded:this.consoleExpanded,maximized:this.consoleMaximized,consoleId:t?t.id:null,hasOutput:t&&t.resultList&&t.resultList.length>0}},loadFileConsoleState(e){if(!e||!e.endsWith(".py"))return this.consoleMode="collapsed",this.consoleExpanded=!1,void(this.consoleMaximized=!1);const t=this.fileConsoleStates[e];if(t){if(this.consoleMode=t.mode||"collapsed",this.consoleExpanded=t.expanded||!1,this.consoleMaximized=t.maximized||!1,t.consoleId&&this.ideInfo.consoleItems){const e=this.ideInfo.consoleItems.find(e=>e.id===t.consoleId);e&&this.$nextTick(()=>{this.$store.commit("ide/setConsoleSelected",e)})}}else this.consoleMode="collapsed",this.consoleExpanded=!1,this.consoleMaximized=!1;this.$nextTick(()=>{this.updateEditorHeight()})},getOrCreateFileConsole(e){if(!e||"string"!==typeof e)return wl.error("getOrCreateFileConsole: Invalid file path provided:",e),null;let t=this.ideInfo.consoleItems.find(t=>t.path===e);if(!t){const i=e.split("/").pop(),o={id:this.ideInfo.consoleId,path:e,name:i,run:!1,resultList:[],waitingForInput:!1,inputPrompt:""};this.$store.commit("ide/addConsoleItem",o),this.$store.commit("ide/setConsoleId",this.ideInfo.consoleId+1),t=this.ideInfo.consoleItems.find(e=>e.id===o.id)}return t},expandConsole(){this.consoleMaximized||(this.consoleMaximized=!0,this.consoleExpanded=!0)},restoreConsole(){this.consoleMaximized&&(this.consoleMaximized=!1,this.consoleExpanded=!0)},collapseConsole(){this.consoleExpanded=!1,this.consoleMaximized=!1},selectPreviewTab(e){this.selectedPreviewTab=e},closePreviewTab(e){const t=this.previewTabs.findIndex(t=>t.id===e);if(t>-1){const i=this.previewTabs[t];"pdf"===i.type&&i.content&&i.content.startsWith("blob:")&&URL.revokeObjectURL(i.content),this.previewTabs.splice(t,1),this.selectedPreviewTab===e&&(this.selectedPreviewTab=this.previewTabs.length>0?this.previewTabs[0].id:null),0===this.previewTabs.length&&(this.rightSidebarVisible=!1,this.rightPanelMode="closed")}},addPreviewTab(e,t,i,o,s){wl.log("[addPreviewTab] Adding tab:",{type:e,title:t,filePath:o,projectName:s,hasContent:!!i});const n=this.previewTabs.find(e=>e.filePath===o&&e.projectName===s);if(n)this.selectedPreviewTab=n.id,n.content!==i&&("pdf"===n.type&&n.content&&n.content.startsWith("blob:")&&URL.revokeObjectURL(n.content),n.content=i);else{const n=5;if(this.previewTabs.length>=n){const e=this.previewTabs.shift();"pdf"===e.type&&e.content&&e.content.startsWith("blob:")&&URL.revokeObjectURL(e.content),wl.log(`Preview tab limit (${n}) reached. Closed "${e.title}" to open new file.`),(0,Ee.nk)({type:"warning",message:`Tab limit (${n}) reached. Closed "${e.title}" to open new file.`,duration:3e3})}const a=`${e}-${++this.previewTabCounter}`;this.previewTabs.push({id:a,type:e,title:t,content:i,filePath:o,projectName:s}),this.selectedPreviewTab=a}"closed"!==this.rightPanelMode&&this.rightSidebarVisible||(this.rightPanelMode="normal",this.rightSidebarVisible=!0,this.$nextTick(()=>{this.rightSidebarVisible||(this.rightSidebarVisible=!0)}))},getTabIcon(e){const t={output:"📄",image:"🖼️",pdf:"📑",data:"📊",text:"📝"};return t[e]||"📄"},handleThemeChange(e){wl.log("Theme changed to:",e)},downloadFile(e){if(!e||!e.fileName)return wl.error("[downloadFile] Invalid fileInfo:",e),void Ee.nk.error("Cannot download: invalid file information");const t=[".png",".jpg",".jpeg",".gif",".bmp",".svg",".pdf",".zip",".tar",".gz"],i=t.some(t=>e.fileName.toLowerCase().endsWith(t));this.$store.dispatch(`ide/${ut.Jh}`,{projectName:e.projectName,filePath:e.filePath,binary:i,callback:t=>{if(wl.log("[downloadFile] Response:",{code:t.code,hasData:!!t.data,dataKeys:t.data?Object.keys(t.data):[]}),0==t.code){let s,n=t.data?.content||t.data;if(i)try{if("object"===typeof n&&n.content&&(n=n.content),"string"!==typeof n)throw new Error("Binary content is not a string");n.includes(",")&&(n=n.split(",")[1]);const e=atob(n),t=new Uint8Array(e.length);for(let i=0;i0){wl.log("[VmIde] Refreshing multi-root project tree");let i=0;const o=t.ideInfo.multiRootData.children.length;t.ideInfo.multiRootData.children.forEach(s=>{t.$store.dispatch(`ide/${ut.QQ}`,{projectName:s.name,callback:n=>{0==n.code?(t.$store.commit("ide/handleProject",n.data),i++,i===o&&(wl.log("[VmIde] All projects refreshed"),e&&e())):(wl.error("[VmIde] Failed to refresh project:",s.name,n),i++,i===o&&e&&e())}})})}else this.ideInfo.currProj&&this.ideInfo.currProj.data?(wl.log("[VmIde] Refreshing single project tree"),this.$store.dispatch(`ide/${ut.QQ}`,{projectName:this.ideInfo.currProj.data.name,callback:i=>{0==i.code?(t.$store.commit("ide/handleProject",i.data),wl.log("[VmIde] Single project refreshed successfully")):wl.error("[VmIde] Failed to refresh project:",i),e&&e()}})):(wl.warn("[VmIde] No project to refresh"),e&&e())},inputIsLegal(e,t){this.dialogText=e;let i=this.checkStrIsLegal(this.dialogText,"create-file"===this.dialogType||"rename-file"===this.dialogType);return i&&("create-project"===this.dialogType||"rename-project"===this.dialogType?i=!this.isProjExist(this.dialogText):"create-file"!==this.dialogType&&"rename-file"!==this.dialogType&&"create-folder"!==this.dialogType&&"rename-folder"!==this.dialogType||(i=!this.isFileExist(this.dialogText,"create-file"===this.dialogType||"create-folder"===this.dialogType))),t(i),i},isProjExist(e){const t=this.ideInfo.projList.some(t=>t.name===e);return t&&(this.dialogTips="Project name already exists"),t},isSelectedFile(e){return this.ideInfo.codeSelected&&this.ideInfo.codeSelected.path===e.path&&this.ideInfo.codeSelected.projectName===e.projectName},getParentData(e){if(this.ideInfo.treeRef&&this.ideInfo.treeRef.currentNode&&this.ideInfo.treeRef.currentNode.parent)return this.ideInfo.treeRef.currentNode.parent.data;if(this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children)for(let t of this.ideInfo.multiRootData.children){const i=this.findParentInTree(t,e);if(i)return i}return this.ideInfo.currProj&&this.ideInfo.currProj.data?this.findParentInTree(this.ideInfo.currProj.data,e):null},findParentInTree(e,t){if(!e||!e.children)return null;for(let i of e.children)if(i.path===t)return e;for(let i of e.children)if(t.startsWith(i.path+"/")||i.path===t){const e=this.findParentInTree(i,t);if(e)return e}return null},isFileExist(e,t){let i=!1;if(!this.ideInfo.nodeSelected)return!1;if(t)i=this.ideInfo.nodeSelected.children&&this.ideInfo.nodeSelected.children.some(t=>t.name===e);else{const t=this.getParentData(this.ideInfo.nodeSelected.path);t&&t.children&&(i=t.children.some(t=>t.name===e))}return i&&(this.dialogTips="File with the same name already exists"),i},checkStrIsLegal(e,t){this.dialogTips="";let i=t&&-1!==e.lastIndexOf(".")?e.substring(0,e.lastIndexOf(".")):e;if(!i)return this.dialogTips="Name cannot be empty",!1;if(i.length>15)return this.dialogTips="Name length cannot exceed 15 characters",!1;if(t&&e.endsWith("."))return this.dialogTips="Name can only contain letters, numbers and underscore _",!1;const o=/^[a-zA-Z0-9_]+$/.test(i);return o||(this.dialogTips="Name can only contain letters, numbers and underscore _"),o},listProjects(e){const t=this;this.$store.dispatch(`ide/${ut.qB}`,{callback:i=>{0==i.code&&(t.$store.commit("ide/handleProjects",i.data),e&&t.getProject(e))}})},loadAllDefaultProjects(){wl.log("🚀 [loadAllDefaultProjects] Starting to load default projects");const e=this,t=localStorage.getItem("username"),i=localStorage.getItem("role"),o=[];if("professor"===i?this.ideInfo.projList.forEach(e=>{const t="string"===typeof e?e:e.name;t&&o.push(t)}):(this.ideInfo.projList.forEach(e=>{const t="string"===typeof e?e:e.name;t&&o.push(t)}),wl.log(`🎓 [loadAllDefaultProjects] Student ${t} loading all visible projects:`,o)),wl.log("📋 [loadAllDefaultProjects] Projects to load:",o),wl.log("📋 [loadAllDefaultProjects] Available projects:",this.ideInfo.projList),0===o.length)return void wl.warn("⚠️ [loadAllDefaultProjects] No projects to load");const s=[];let n=0;o.forEach(a=>{wl.log(`🔍 [loadAllDefaultProjects] Loading project: ${a}`),this.$store.dispatch(`ide/${ut.QQ}`,{projectName:a,callback:r=>{if(wl.log(`📥 [loadAllDefaultProjects] Response for ${a}:`,r),0==r.code){if(s.push(r.data),n++,n===o.length)if(wl.log("✅ [loadAllDefaultProjects] All projects loaded:",s),e.$store.commit("ide/handleMultipleProjects",s),"professor"===i){const t=s.find(e=>"Local"===e.name);t?e.$store.commit("ide/handleProject",t):s.length>0&&e.$store.commit("ide/handleProject",s[0])}else{const i=s.find(e=>e.name===`Local/${t}`);i?e.$store.commit("ide/handleProject",i):s.length>0&&e.$store.commit("ide/handleProject",s[0])}}else wl.error(`❌ [loadAllDefaultProjects] Failed to load ${a}:`,r),n++}})})},getProject(e){const t=this;this.$store.dispatch(`ide/${ut.QQ}`,{projectName:void 0===e?this.ideInfo.currProj.config.name:e,callback:e=>{if(0==e.code){t.$store.commit("ide/handleProject",e.data);for(var i=0;ie.toLowerCase().endsWith(t)),c=r.some(t=>e.toLowerCase().endsWith(t)),h=l.some(t=>e.toLowerCase().endsWith(t)),p=d||c||h;if(p&&o)this.openFullscreenPreview(e,n);else if(d){const i=e.split("/").pop(),o=e.toLowerCase().split(".").pop(),a="pdf"===o?"pdf":"image";wl.log("[getFile] Adding media file tab:",{originalPath:e,fileName:i,fileExt:o,actualProjectName:n}),s.addPreviewTab(a,i,null,e,n),!1!==t&&s.$store.dispatch(`ide/${ut.xv}`,{})}else if(c){const i=e.split("/").pop();this.$store.dispatch(`ide/${ut.Jh}`,{projectName:n,filePath:e,callback:o=>{if(0===o.code&&o.data){const a=o.data.content||o.data;s.addPreviewTab("data",i,a,e,n),!1!==t&&s.$store.dispatch(`ide/${ut.xv}`,{})}else wl.error("Failed to get CSV file:",e,o),(0,Ee.nk)({type:"error",message:`Failed to load ${i}`,duration:3e3})}})}else if(h){const i=e.split("/").pop();this.$store.dispatch(`ide/${ut.Jh}`,{projectName:n,filePath:e,callback:o=>{if(0===o.code&&o.data){const a=o.data.content||o.data;s.addPreviewTab("text",i,a,e,n),!1!==t&&s.$store.dispatch(`ide/${ut.xv}`,{})}else wl.error("Failed to get text file:",e,o),(0,Ee.nk)({type:"error",message:`Failed to load ${i}`,duration:3e3})}})}else{this.ideInfo.fullscreenPreview&&this.ideInfo.fullscreenPreview.active&&this.$store.commit("ide/closeFullscreenPreview");let i=e;n&&e.startsWith(n+"/")&&(i=e.substring(n.length+1)),wl.log("[getFile] Getting file with relative path:",{originalPath:e,projectName:n,relativePath:i}),this.$store.dispatch(`ide/${ut.Jh}`,{projectName:n,filePath:i,callback:i=>{0==i.code?(s.$store.commit("ide/handleGetFile",{filePath:e,data:i.data,save:t,isMedia:!1,projectName:s.ideInfo.currProj?.data?.name}),!1!==t&&s.$store.dispatch(`ide/${ut.xv}`,{})):wl.error("Failed to get file:",e,i)}})}},getFileForEditor(e,t){this.getFile(e,!1,t,!0)},getFileForRightPanel(e,t){this.getFile(e,!1,t,!1)},handleReorderTabs(e,t){this.$store.commit("ide/reorderCodeItems",{fromIndex:e,toIndex:t})},handlePreviewDragStart(e,t){this.previewDraggedIndex=t,e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",t.toString())},handlePreviewDragOver(e,t){e.preventDefault(),e.dataTransfer.dropEffect="move"},handlePreviewDragEnter(e,t){e.preventDefault(),t!==this.previewDraggedIndex&&-1!==this.previewDraggedIndex&&(this.previewDropTargetIndex=t)},handlePreviewDragLeave(e){},handlePreviewDrop(e,t){if(e.preventDefault(),-1!==this.previewDraggedIndex&&t!==this.previewDraggedIndex){const e=[...this.previewTabs],[i]=e.splice(this.previewDraggedIndex,1);e.splice(t,0,i),this.previewTabs=e}this.resetPreviewDragState()},handlePreviewDropOnContainer(e){this.resetPreviewDragState()},handlePreviewDragEnd(){this.resetPreviewDragState()},resetPreviewDragState(){this.previewDraggedIndex=-1,this.previewDropTargetIndex=-1},handleNavigateTab(e){wl.log("🎹 [TAB-NAV] handleNavigateTab called:",e,"focusedPanel:",this.focusedPanel),"editor"===this.focusedPanel?this.navigateEditorTab(e):this.navigatePreviewTab(e)},navigateEditorTab(e){const t=this.ideInfo.codeItems;if(wl.log("🎹 [TAB-NAV] navigateEditorTab:",e,"items count:",t.length),0===t.length)return;const i=t.findIndex(e=>e.path===this.ideInfo.codeSelected?.path&&e.projectName===this.ideInfo.codeSelected?.projectName);let o;o="next"===e?(i+1)%t.length:(i-1+t.length)%t.length,wl.log("🎹 [TAB-NAV] Moving from index",i,"to",o),this.selectFile(t[o])},navigatePreviewTab(e){if(wl.log("🎹 [TAB-NAV] navigatePreviewTab:",e,"previewTabs count:",this.previewTabs.length),0===this.previewTabs.length)return;const t=this.previewTabs.findIndex(e=>e.id===this.selectedPreviewTab);let i;i="next"===e?(t+1)%this.previewTabs.length:(t-1+this.previewTabs.length)%this.previewTabs.length,wl.log("🎹 [TAB-NAV] Preview tab moving from index",t,"to",i),this.selectedPreviewTab=this.previewTabs[i].id},handleJumpToTab(e){if(wl.log("🎹 [TAB-NAV] handleJumpToTab called:",e,"focusedPanel:",this.focusedPanel),"editor"===this.focusedPanel){const t=this.ideInfo.codeItems;wl.log("🎹 [TAB-NAV] Editor tabs:",t.length,"jumping to index:",e),ee.toLowerCase().endsWith(t)),l=a.some(t=>e.toLowerCase().endsWith(t));r?this.$store.dispatch(`ide/${ut.Jh}`,{projectName:t,filePath:e,binary:!0,callback:n=>{if(0===n.code&&n.data){let a=n.data.content||n.data;if(a&&a.length>0){const n={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",bmp:"image/bmp",svg:"image/svg+xml",webp:"image/webp",pdf:"application/pdf"},r=n[s]||"application/octet-stream",l=`data:${r};base64,${a}`,d={name:o,path:e,projectName:t,content:l,type:"pdf"===s?"pdf":"image"};i.$store.commit("ide/setFullscreenPreview",{file:d,content:l})}else i.$message.error(`Failed to load ${o}: No content received`)}else i.$message.error(`Failed to load ${o}`)}}):l&&this.$store.dispatch(`ide/${ut.Jh}`,{projectName:t,filePath:e,callback:s=>{if(0===s.code&&s.data){const n=s.data.content||s.data,a={name:o,path:e,projectName:t,content:n,type:"csv"};i.$store.commit("ide/setFullscreenPreview",{file:a,content:n})}else i.$message.error(`Failed to load ${o}`)}})},setTextDialog(e){"create-file"!==e.type||"New File"!==e.title?(this.dialogType=e.type,this.dialogTitle=e.title,this.dialogText=e.text,this.dialogTips=e.tips,this.showFileDialog=!0,this.showProjsDialog=!1):this.showNewFileDialog=!0},handleRenameItem(e){wl.log("[handleRenameItem] Received rename request:",e);const{oldPath:t,newName:i,type:o,projectName:s}=e,n=s||this.ideInfo.currProj?.config?.name||this.ideInfo.currProj?.data?.name;wl.log("[handleRenameItem] Using project:",n),wl.log("[handleRenameItem] Data projectName:",s),wl.log("[handleRenameItem] Current project:",this.ideInfo.currProj?.data?.name),wl.log("[handleRenameItem] Renaming:",{oldPath:t,newName:i,type:o,actualProjectName:n}),"file"===o?this.renameFile(i,t,n):"dir"!==o&&"folder"!==o||this.renameFolder(i,t,n)},handleDeleteItem(e){const{path:t,type:i,projectName:o}=e;wl.log("[handleDeleteItem] Deleting:",i,"at path:",t,"in project:",o),"file"===i?this.deleteFile(t,o):"dir"!==i&&"folder"!==i||this.deleteFolder(t,o)},handleDownloadItem(e){if(wl.log("[handleDownloadItem] Download request:",e),!e||!e.path)return wl.error("[handleDownloadItem] Invalid data:",e),void Ee.nk.error("Cannot download: no file selected");const t=e.path.split("/").pop()||e.label||e.name||"download",i={fileName:t,filePath:e.path,projectName:e.projectName||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name};wl.log("[handleDownloadItem] Downloading:",i),this.downloadFile(i)},openFileBrowser(){this.fileBrowserMode="open",this.fileToMove=null,this.showFileBrowserDialog=!0},handleSignIn(){wl.log("handleSignIn called");const e=localStorage.getItem("session_id"),t=localStorage.getItem("username");e&&t?pi.s.confirm(`You are already logged in as ${t}. Do you want to sign out and login with a different account?`,"Already Logged In",{confirmButtonText:"Sign Out",cancelButtonText:"Cancel",type:"info"}).then(()=>{localStorage.removeItem("session_id"),localStorage.removeItem("username"),localStorage.removeItem("role"),localStorage.removeItem("full_name"),window.location.reload()}).catch(()=>{}):(wl.log("Setting showLoginModal to true"),this.showLoginModal=!0,wl.log("showLoginModal is now:",this.showLoginModal),this.$nextTick(()=>{wl.log("After nextTick, showLoginModal:",this.showLoginModal),wl.log("Login modal element:",document.querySelector(".login-modal-overlay"))}))},handleLoginSuccess(e){wl.log("Login success received:",e),e?(wl.log("🔄 [VmIde] Starting session manager after login..."),ml.startTracking(),Ee.nk.success(`Welcome, ${e.full_name||e.username}!`),setTimeout(()=>{window.location.reload()},500)):wl.error("No user data received in handleLoginSuccess")},reconnectWebSocket(){this.wsInfo&&this.wsInfo.rws&&this.wsInfo.rws.close(),setTimeout(()=>{this.$store.dispatch("websocket/init")},500)},handleNewFileFromTree(){const e=this.ideInfo.nodeSelected;if(!e||"dir"!==e.type&&"folder"!==e.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.setTextDialog({type:"create-file",title:"New File",tips:"Enter file name:",text:"untitled.py"})},handleNewFolderFromTree(){const e=this.ideInfo.nodeSelected;if(!e||"dir"!==e.type&&"folder"!==e.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.showNewFolderDialog=!0},handleImportFileFromTree(){const e=this.ideInfo.nodeSelected;if(!e||"dir"!==e.type&&"folder"!==e.type){const e=this.ideInfo.currProj?.data;e&&this.$store.commit("ide/setNodeSelected",e)}this.showImportFileDialog=!0},handleUndo(){const e=this.getActiveCodeMirrorInstance();e?e.undo():document.execCommand("undo")},handleRedo(){const e=this.getActiveCodeMirrorInstance();e?e.redo():document.execCommand("redo")},handleCut(){const e=this.getActiveCodeMirrorInstance();if(e&&e.somethingSelected()){const t=e.getSelection();navigator.clipboard.writeText(t),e.replaceSelection("")}else document.execCommand("cut")},handleCopy(){const e=this.getActiveCodeMirrorInstance();if(e&&e.somethingSelected()){const t=e.getSelection();navigator.clipboard.writeText(t)}else document.execCommand("copy")},async handlePaste(){const e=this.getActiveCodeMirrorInstance();if(e)try{const t=await navigator.clipboard.readText(),i=await Wa.A.validatePaste(t);i&&e.replaceSelection(t)}catch(t){Wa.A.isProfessor()?document.execCommand("paste"):wl.log("[VmIde] Paste blocked for student (clipboard API failed)")}else Wa.A.isProfessor()&&document.execCommand("paste")},handleFind(){wl.log("[FIND DISABLED] Find feature temporarily disabled for file handling assignment")},handleReplace(){wl.log("[REPLACE DISABLED] Replace feature temporarily disabled for file handling assignment")},handleComment(){const e=this.getActiveCodeMirrorInstance();if(e)try{const t=e.getCursor(),i=e.getLine(t.line);let o=t.ch;if(i.trim().startsWith("# ")){const s=i.replace(/^(\s*)# /,"$1");e.replaceRange(s,{line:t.line,ch:0},{line:t.line,ch:i.length}),o=Math.max(0,t.ch-2)}else if(i.trim().startsWith("#")){const s=i.replace(/^(\s*)#/,"$1");e.replaceRange(s,{line:t.line,ch:0},{line:t.line,ch:i.length}),o=Math.max(0,t.ch-1)}else if(""!==i.trim()){const s=i.match(/^(\s*)(.*)/),n=s[1]||"",a=s[2]||"",r=n+"# "+a;e.replaceRange(r,{line:t.line,ch:0},{line:t.line,ch:i.length}),o=t.ch+2}e.setCursor(t.line,o),e.focus(),e.refresh();const s=e.getValue();void 0!==this.ideInfo.codeSelectedIndex&&this.$store.commit("ide/setCodeItemContent",{index:this.ideInfo.codeSelectedIndex,content:s}),setTimeout(()=>{e.refresh()},10)}catch(Er){wl.error("Comment toggle error:",Er)}},getActiveCodeMirrorInstance(){const e=document.querySelector(".editor-content .code-editor-flex .CodeMirror");if(e&&e.CodeMirror)return e.CodeMirror;const t=document.querySelectorAll(".code-editor-container");for(let o=0;o normal")):(this.rightPanelMode="closed",wl.log("🎹 [TOGGLE-PREVIEW] Closing panel -> closed"))},handleOpenFile(e){this.getFile(e),this.showFileBrowserDialog=!1},async duplicateFile(e){const{originalPath:t,newName:i,projectName:o}=e,s=this;wl.log("🔍 [DEBUG] duplicateFile called with:",{originalPath:t,newName:i,projectName:o});const n=t.lastIndexOf("/"),a=n>0?t.substring(0,n):"/",r=await this.generateUniqueFileName(i,a,o),l=a+"/"+r;wl.log("🔍 [DEBUG] Generated unique filename:",r),wl.log("🔍 [DEBUG] New file path will be:",l),this.$store.dispatch(`ide/${ut.Jh}`,{projectName:o,filePath:t,callback:e=>{if(0==e.code){const t=e.data.content||e.data;wl.log("🔍 [DEBUG] Original file content retrieved, length:",t?.length),s.$store.dispatch(`ide/${ut.Zd}`,{projectName:o,parentPath:a,fileName:r,callback:e=>{0==e.code?(wl.log("🔍 [DEBUG] File created successfully, now writing content"),s.$store.dispatch(`ide/${ut._L}`,{projectName:o,filePath:l,fileData:t,complete:!0,callback:e=>{0==e.code?(wl.log("🔍 [DEBUG] File duplicated successfully as:",r),Ee.nk.success(`File duplicated as ${r}`),s.refreshProjectTree()):(wl.error("🔍 [DEBUG] Failed to write content to duplicate file:",e),Ee.nk.error("Failed to write content to duplicate file"))}})):(wl.error("🔍 [DEBUG] Failed to create duplicate file:",e),Ee.nk.error("Failed to create duplicate file"))}})}else wl.error("🔍 [DEBUG] Failed to read original file:",e),Ee.nk.error("Failed to read original file")}})},async generateUniqueFileName(e,t,i){const o=e.lastIndexOf("."),s=o>0?e.substring(o):"",n=o>0?e.substring(0,o):e;wl.log("🔍 [DEBUG] generateUniqueFileName:",{proposedName:e,baseName:n,extension:s,parentPath:t});const a=await this.getExistingFilesInDirectory(t,i);if(wl.log("🔍 [DEBUG] Existing files in directory:",a),!a.includes(e))return wl.log("🔍 [DEBUG] Proposed name is already unique:",e),e;for(let d=1;d<1e3;d++){const e=1===d?`${n}_copy${s}`:`${n}_copy_${d}${s}`;if(!a.includes(e))return wl.log("🔍 [DEBUG] Found unique name:",e),e}const r=Date.now(),l=`${n}_copy_${r}${s}`;return wl.log("🔍 [DEBUG] Using timestamp fallback:",l),l},async getExistingFilesInDirectory(e,t){return new Promise(t=>{try{const i=this.ideInfo.currProj?.data;if(!i)return wl.log("🔍 [DEBUG] No project data available"),void t([]);const o=(e,t)=>{try{if(!e||"object"!==typeof e)return null;if(e.path===t&&"dir"===e.type)return e;if(e.children&&Array.isArray(e.children))for(const i of e.children){if(!i||"object"!==typeof i)continue;const e=o(i,t);if(e)return e}return null}catch(i){return wl.warn("🔍 [DEBUG] Error in findDirectory:",i),null}},s=o(i,e);if(wl.log("🔍 [DEBUG] Found target directory:",s),s&&s.children&&Array.isArray(s.children)){const e=s.children.filter(e=>{try{return e&&"object"===typeof e&&"file"===e.type&&(e.label||e.name)}catch(t){return wl.warn("🔍 [DEBUG] Invalid child node, skipping:",e,t),!1}}).map(e=>{try{return e.label||e.name||"unnamed"}catch(t){return wl.warn("🔍 [DEBUG] Error extracting child name:",t),"unnamed"}}).filter(e=>e&&"unnamed"!==e);wl.log("🔍 [DEBUG] Extracted filenames:",e),t(e)}else wl.log("🔍 [DEBUG] Directory not found or has no children"),t([])}catch(Er){wl.warn("🔍 [DEBUG] Error in getExistingFilesInDirectory:",Er),t([])}})},async saveAsFile(e){if(wl.log("🔍 [DEBUG] VmIde.saveAsFile() called with:",e),!e||!e.fileName)return wl.log("🔍 [DEBUG] Invalid fileInfo - no fileName"),void Ee.nk.error("No file selected to save");const t=this.ideInfo.codeItems.find(t=>t.filePath===e.filePath&&(t.projectName===e.projectName||!t.projectName&&!e.projectName));wl.log("🔍 [DEBUG] Looking for codeItem with filePath:",e.filePath),wl.log("🔍 [DEBUG] Available codeItems:",this.ideInfo.codeItems?.map(e=>({filePath:e.filePath,projectName:e.projectName}))),wl.log("🔍 [DEBUG] Found codeItem:",!!t),t?(wl.log("🔍 [DEBUG] Using editor content, calling performSaveAs"),await this.performSaveAs(e,t.content)):(wl.log("🔍 [DEBUG] File not in editor, reading from server"),this.readFileForSaveAs(e))},readFileForSaveAs(e){wl.log("🔍 [DEBUG] readFileForSaveAs called with:",e);const t=[".png",".jpg",".jpeg",".gif",".bmp",".svg",".pdf",".zip",".tar",".gz"],i=t.some(t=>e.fileName.toLowerCase().endsWith(t));wl.log("🔍 [DEBUG] File is binary:",i),wl.log("🔍 [DEBUG] Dispatching IDE_GET_FILE with:",{projectName:e.projectName,filePath:e.filePath,binary:i}),this.$store.dispatch(`ide/${ut.Jh}`,{projectName:e.projectName,filePath:e.filePath,binary:i,callback:async t=>{if(wl.log("🔍 [DEBUG] IDE_GET_FILE callback received:",{code:t.code,hasData:!!t.data}),0==t.code){let o=t.data?.content||t.data;if(i)return void Ee.nk.info("Binary files should be downloaded using the Download option instead.");"object"===typeof o&&o.content&&(o=o.content),await this.performSaveAs(e,o)}else Ee.nk.error("Failed to read file content")}})},async performSaveAs(e,t){wl.log("🔍 [DEBUG] performSaveAs called with fileInfo:",e),wl.log("🔍 [DEBUG] Content length:",t?.length);const i=e=>{const t=e.toLowerCase().split(".").pop(),i={py:"text/x-python",js:"text/javascript",html:"text/html",css:"text/css",json:"application/json",md:"text/markdown",txt:"text/plain",csv:"text/csv",xml:"text/xml"};return i[t]||"text/plain"},o=i(e.fileName),s="showSaveFilePicker"in window,n=window.isSecureContext;if(s&&n)try{const i=e.fileName.split(".").pop()||"txt",s={suggestedName:e.fileName,types:[{description:`${i.toUpperCase()} files`,accept:{[o]:["."+i]}}],excludeAcceptAllOption:!1},n=await window.showSaveFilePicker(s),a=await n.createWritable();if(t.length>1048576){const e=t.match(/.{1,65536}/g)||[];for(const t of e)await a.write(t)}else await a.write(t);return await a.close(),void Ee.nk.success(`File saved successfully as: ${n.name}`)}catch(Er){if("AbortError"===Er.name)return;"NotAllowedError"===Er.name?Ee.nk.warning("File access permission denied. Using fallback download method."):wl.warn("File System Access API failed:",Er)}else s&&!n&&wl.warn("File System Access API requires HTTPS. Using fallback method.");try{const i=new Blob([t],{type:o+";charset=utf-8"}),s=document.createElement("a"),n="download"in s;if(n){const t=window.URL.createObjectURL(i),o=document.createElement("a");if(o.href=t,o.download=e.fileName,o.style.display="none",o.setAttribute("target","_blank"),o.setAttribute("rel","noopener noreferrer"),document.body.appendChild(o),"function"===typeof o.click)o.click();else{const e=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});o.dispatchEvent(e)}setTimeout(()=>{document.body.contains(o)&&document.body.removeChild(o),window.URL.revokeObjectURL(t)},150),Ee.nk.success("File downloaded to your default downloads folder")}else{const e=window.URL.createObjectURL(i),t=window.open(e,"_blank");if(!t)throw new Error("Popup blocked or browser not supported");Ee.nk.info("File opened in new window. Use browser's save function to download."),setTimeout(()=>{window.URL.revokeObjectURL(e)},1e3)}}catch(Er){if(wl.error("Save As failed:",Er),navigator.clipboard&&navigator.clipboard.writeText)try{await navigator.clipboard.writeText(t),Ee.nk.warning("Could not download file. Content copied to clipboard instead.")}catch(a){Ee.nk.error("Failed to save file. Please try using a modern browser.")}else Ee.nk.error("Failed to save file. Please try using a modern browser.")}},openMoveDialog(e){wl.log("[VmIde] openMoveDialog called with:",e);e.path||e.filePath;const t=(i,o)=>{if("file"===i.type&&i.name===e.name)return i;if(i.children)for(const e of i.children){const i=t(e,o);if(i)return i}return null};let i=e;if(this.ideInfo.multiRootData&&this.ideInfo.multiRootData.children.length>0)for(const o of this.ideInfo.multiRootData.children){const s=t(o,e.name);if(s){wl.log("[VmIde] Found fresh file data in tree:",s.path),i={...e,path:s.path,filePath:s.path};break}}else if(this.ideInfo.currProj&&this.ideInfo.currProj.data){const o=t(this.ideInfo.currProj.data,e.name);o&&(wl.log("[VmIde] Found fresh file data in single project:",o.path),i={...e,path:o.path,filePath:o.path})}this.fileBrowserMode="move",this.fileToMove=i,this.showFileBrowserDialog=!0,wl.log("[VmIde] Move dialog opened with fresh data, mode:",this.fileBrowserMode,"fileToMove:",this.fileToMove)},handleMoveFile(e){wl.log("[VmIde] handleMoveFile called with data:",e);const{oldPath:t,newPath:i,projectName:o}=e,s=this,n=(e,t)=>{if(!e||!t)return e;const i=t+"/";return e.startsWith(i)?e.substring(i.length):e},a=n(t,o),r=n(i,o);if(wl.log("[VmIde] Normalized paths:",{originalOldPath:t,normalizedOldPath:a,originalNewPath:i,normalizedNewPath:r,projectName:o}),a===r)return Ee.nk.warning("Source and destination paths are the same"),void(this.showFileBrowserDialog=!1);if(r.startsWith(a+"/"))return Ee.nk.error("Cannot move a file into its own subdirectory"),void(this.showFileBrowserDialog=!1);const l=!1===this.ideInfo.nodeSelected?.isLeaf,d=l?ut.mr:ut.GG;wl.log("[VmIde] Using move command:",d),this.$store.dispatch(`ide/${d}`,{wsKey:this.wsKey,projectName:o,oldPath:a,newPath:r,callback:e=>{if(wl.log("[VmIde] Move result:",e),0===e.code){if(Ee.nk.success((l?"Folder":"File")+" moved successfully"),s.ideInfo.nodeSelected&&s.ideInfo.nodeSelected.path===t){const e={...s.ideInfo.nodeSelected,path:i,filePath:i,fileName:i.substring(i.lastIndexOf("/")+1),name:i.substring(i.lastIndexOf("/")+1),label:i.substring(i.lastIndexOf("/")+1)};if(s.$store.commit("ide/setNodeSelected",e),!l&&s.ideInfo.openList.length>0){const e=s.ideInfo.openList.findIndex(e=>e.path===t);if(-1!==e){const o=[...s.ideInfo.openList];o[e]={...o[e],path:i,filePath:i,fileName:i.substring(i.lastIndexOf("/")+1),name:i.substring(i.lastIndexOf("/")+1),label:i.substring(i.lastIndexOf("/")+1)},s.$store.commit("ide/setOpenList",o),s.ideInfo.selectFilePath===t&&s.$store.commit("ide/setSelectFilePath",i)}}}s.refreshProjectTreeWithCallback(()=>{wl.log("[VmIde] Tree refresh completed after move"),s.showFileBrowserDialog=!1})}else wl.error("[VmIde] Move failed:",e),Ee.nk.error(e.msg||"Failed to move "+(l?"folder":"file")),s.showFileBrowserDialog=!1}})},deleteFileFromMenu(e){this.handleDeleteItem(e)},deleteSelectedFile(e){this.handleDeleteItem(e)},setDelDialog(e){this.dialogType="",this.dialogTitle=e.title,this.dialogText="",this.dialogTips="",this.showDeleteDialog=!0},setProjsDialog(e){this.dialogType="",this.dialogTitle="",this.dialogText="",this.dialogTips="",this.showProjsDialog=!0},onCloseTextDialog(){this.showFileDialog=!1,this.ideInfo.nodeSelected&&this.ideInfo.treeRef.setCurrentNode(this.ideInfo.nodeSelected),"create-project"===this.dialogType&&(this.showProjsDialog=!0)},onCloseProjsDialog(){this.showProjsDialog=!1,this.showFileDialog=!1,this.showDeleteDialog=!1,this.ideInfo.nodeSelected&&this.ideInfo.treeRef.setCurrentNode(this.ideInfo.nodeSelected)},onCancelDelete(){this.showDeleteDialog=!1,this.ideInfo.nodeSelected&&this.ideInfo.treeRef.setCurrentNode(this.ideInfo.nodeSelected)},deleteProject(e){const t=this;this.$store.dispatch(`ide/${ut.DO}`,{projectName:e,callback:i=>{0==i.code&&t.$store.commit("ide/handleDelProject",e)}})},deleteFile(e,t){const i=this;wl.log("[deleteFile] Deleting file:",e,"from project:",t||this.ideInfo.currProj.config.name);const o=t||this.ideInfo.currProj.config.name||this.ideInfo.currProj.data?.name;this.$store.dispatch(`ide/${ut.w7}`,{projectName:o,filePath:e,callback:t=>{if(wl.log("[deleteFile] Response:",t),0==t.code){const t=i.getParentData(e);t&&i.$store.commit("ide/handleDelFile",{parentData:t,filePath:e}),i.refreshProjectTree(),(0,Ee.nk)({type:"success",message:"File deleted successfully",duration:2e3})}else(0,Ee.nk)({type:"error",message:"Failed to delete file",duration:3e3})}})},deleteFolder(e,t){const i=this;wl.log("[deleteFolder] Deleting folder:",e,"from project:",t||this.ideInfo.currProj.config.name);const o=t||this.ideInfo.currProj.config.name||this.ideInfo.currProj.data?.name;this.$store.dispatch(`ide/${ut.Ec}`,{projectName:o,folderPath:e,callback:t=>{if(wl.log("[deleteFolder] Response:",t),0==t.code){const t=!e.includes("/")||["Local","Lecture Notes"].includes(e)||1===e.split("/").length;if(wl.log("[deleteFolder] Is root-level operation?",t,"for path:",e),t)wl.log("[deleteFolder] Root-level folder delete - refreshing project list"),i.$store.dispatch(`ide/${ut.qB}`,{callback:e=>{wl.log("[deleteFolder] Project list refresh response:",e),0===e.code&&(i.$store.commit("ide/handleProjects",e.data),i.ideInfo.multiRootData&&i.loadAllDefaultProjects(),(0,Ee.nk)({type:"success",message:"Folder deleted successfully",duration:2e3}))}});else{const t=i.getParentData(e);t&&i.$store.commit("ide/handleDelFolder",{parentData:t,folderPath:e}),i.refreshProjectTree(),(0,Ee.nk)({type:"success",message:"Folder deleted successfully",duration:2e3})}}else(0,Ee.nk)({type:"error",message:"Failed to delete folder",duration:3e3})}})},createProject(e){const t=this;this.$store.dispatch(`ide/${ut.KV}`,{projectName:e,callback:i=>{0==i.code&&t.listProjects(e)}})},createFile(e,t,i){const o=this;this.$store.dispatch(`ide/${ut.Zd}`,{projectName:void 0===i?this.ideInfo.currProj.config.name:i,parentPath:void 0===t?this.ideInfo.nodeSelected.path:t,fileName:e,callback:t=>{if(0==t.code){const t=yl.join(o.ideInfo.nodeSelected.path,e);o.$store.commit("ide/addChildrenNode",{name:e,path:t,type:"file"}),o.$store.dispatch(`ide/${ut.xv}`,{})}}})},createFolder(e,t,i){const o=this;this.$store.dispatch(`ide/${ut.p_}`,{projectName:void 0===i?this.ideInfo.currProj.config.name:i,parentPath:void 0===t?this.ideInfo.nodeSelected.path:t,folderName:e,callback:t=>{if(0==t.code){const t=yl.join(o.ideInfo.nodeSelected.path,e);o.$store.commit("ide/addChildrenNode",{name:e,path:t,type:"dir"}),o.$store.dispatch(`ide/${ut.xv}`,{})}}})},renameProject(e,t){const i=this;this.$store.dispatch(`ide/${ut.sh}`,{oldName:void 0===t?this.ideInfo.currProj.config.name:t,newName:e,callback:t=>{0==t.code&&(i.$store.commit("ide/handleRename",e),i.$store.dispatch(`ide/${ut.xv}`,{}))}})},renameFile(e,t,i){const o=this;let s=t;if(void 0===s){if(!this.ideInfo.nodeSelected||!this.ideInfo.nodeSelected.path)return wl.error("Cannot rename: no path provided and nodeSelected is null"),void Ee.nk.error("Cannot rename: no file selected");s=this.ideInfo.nodeSelected.path}wl.log("[renameFile] Starting rename:",{actualOldPath:s,newName:e,projectName:i});const n=i||this.ideInfo.currProj?.config?.name||this.ideInfo.currProj?.data?.name;wl.log("[renameFile] Using project name:",n),this.$store.dispatch(`ide/${ut.Z0}`,{projectName:n,oldPath:s,fileName:e,callback:t=>{if(wl.log("[renameFile] Backend response:",t),0==t.code){const t=s.substring(0,s.lastIndexOf("/")+1)+e;wl.log("[renameFile] New path will be:",t);for(let i=0;i{0==e.code&&(o.$store.commit("ide/handleProject",e.data),o.$store.commit("ide/setPathSelected",t),o.ideInfo.multiRootData&&(wl.log("[renameFile] Refreshing all projects in multi-root mode"),o.loadAllDefaultProjects()),Ee.nk.success("File renamed successfully"))}})}else{wl.error("[renameFile] Rename failed:",t);const e=t.data?.message||t.message||"Unknown error";Ee.nk.error("Failed to rename file: "+e)}}})},renameFolder(e,t,i){const o=this;let s=t;if(void 0===s){if(!this.ideInfo.nodeSelected||!this.ideInfo.nodeSelected.path)return wl.error("Cannot rename folder: no path provided and nodeSelected is null"),void Ee.nk.error("Cannot rename folder: no folder selected");s=this.ideInfo.nodeSelected.path}wl.log("[renameFolder] Starting rename:",{actualOldPath:s,newName:e,projectName:i});const n=i||this.ideInfo.currProj?.config?.name||this.ideInfo.currProj?.data?.name;wl.log("[renameFolder] Using project name:",n),this.$store.dispatch(`ide/${ut.Zz}`,{projectName:n,oldPath:s,folderName:e,callback:t=>{if(wl.log("[renameFolder] Backend response:",t),0==t.code){const t=s.substring(0,s.lastIndexOf("/")+1)+e;wl.log("[renameFolder] New path will be:",t);for(let e=0;e{wl.log("[renameFolder] Project list refresh response:",e),0===e.code&&(o.$store.commit("ide/handleProjects",e.data),o.ideInfo.multiRootData&&o.loadAllDefaultProjects(),o.$store.commit("ide/setPathSelected",t),Ee.nk.success("Folder renamed successfully"))}})):o.$store.dispatch(`ide/${ut.QQ}`,{projectName:n,callback:e=>{0==e.code&&(o.$store.commit("ide/handleProject",e.data),o.$store.commit("ide/setPathSelected",t),o.ideInfo.multiRootData&&(wl.log("[renameFolder] Refreshing all projects in multi-root mode"),o.loadAllDefaultProjects()),Ee.nk.success("Folder renamed successfully"))}})}else{wl.error("[renameFolder] Rename failed:",t);const e=t.data?.message||t.message||"Unknown error";Ee.nk.error("Failed to rename folder: "+e)}}})},onDelete(){this.showDeleteDialog=!1,this.ideInfo.nodeSelected&&this.ideInfo.nodeSelected.type&&("dir"===this.ideInfo.nodeSelected.type||"folder"===this.ideInfo.nodeSelected.type)?this.deleteFolder(this.ideInfo.nodeSelected.path):this.deleteFile(this.ideInfo.nodeSelected.path)},onCreate(){const e=this.dialogText;if("create-file"===this.dialogType)this.createFile(e);else if("rename-file"===this.dialogType)this.renameFile(e);else if("create-folder"===this.dialogType)this.createFolder(e);else if("rename-folder"===this.dialogType)this.renameFolder(e);else if("create-project"===this.dialogType)if(this.hasRunProgram){const t=this;pi.s.confirm("Stop all running programs and create new project?","Warning",{confirmButtonText:"Stop and Create",cancelButtonText:"Cancel",type:"warning"}).then(()=>{t.stopAll(),t.$store.commit("ide/setConsoleItems",[]),t.createProject(e)}).catch(()=>{wl.log("canceled create project")})}else this.$store.commit("ide/setConsoleItems",[]),this.createProject(e);else"rename-project"===this.dialogType&&this.renameProject(e);this.showProjsDialog=!1,this.showFileDialog=!1,this.showDeleteDialog=!1},onDeleteProj(e){const t=this;pi.s.confirm("Delete this project?","Confirm",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}).then(()=>{t.deleteProject(e),(0,Ee.nk)({type:"success",message:"Deleted successfully"})}).catch(()=>{(0,Ee.nk)({type:"info",message:"Cancelled"})})},onSelectProj(e){this.hasRunProgram?pi.s.confirm("Stop all running programs and switch project?","Warning",{confirmButtonText:"Stop and Switch",cancelButtonText:"Cancel",type:"warning"}).then(()=>{this.stopAll(),this.$store.commit("ide/setConsoleItems",[]),this.getProject(e),this.showProjsDialog=!1}).catch(()=>{this.showProjsDialog=!1}):(this.getProject(e),this.showProjsDialog=!1,this.$store.commit("ide/setConsoleItems",[]))},selectFile(e){const t=this.ideInfo.codeSelected,i=t&&t.path!==e.path;if(i&&t.path&&t.path.endsWith(".py")){const e=this.ideInfo.consoleItems.find(e=>e.path===t.path);e&&(e.run||e.isReplMode||e.replActive)&&(wl.log("[FILE-SWITCH] Stopping running process for previous file:",t.path),wl.log("[FILE-SWITCH] Console state:",{run:e.run,isReplMode:e.isReplMode,replActive:e.replActive}),this.stop(e.id),this.$store.commit("ide/updateConsoleItem",{id:e.id,run:!1,isReplMode:!1,replActive:!1,waitingForInput:!1,inputPrompt:""})),this.saveFileConsoleState(t.path)}if(ml.constructor.emitIDEActivity("file-open",{filename:e.fileName}),this.$store.commit("ide/setPathSelected",e.path),this.$store.commit("ide/setCodeSelected",e),this.activeFilePath=e.path,i&&e.path&&e.path.endsWith(".py")){let t=this.ideInfo.consoleItems.find(t=>t.path===e.path);t||(t={id:this.$store.state.ide.consoleId,name:e.name,path:e.path,resultList:[],run:!1,stop:!1,waitingForInput:!1,inputPrompt:""},this.$store.commit("ide/pushConsoleItem",t)),this.$store.commit("ide/setConsoleSelected",t),this.consoleMode="collapsed",this.consoleExpanded=!1,this.consoleMaximized=!1,this.$nextTick(()=>{this.updateEditorHeight()})}this.ideInfo.currProj.pathSelected&&this.ideInfo.treeRef&&(this.ideInfo.treeRef.setCurrentKey(this.ideInfo.currProj.pathSelected),this.$store.commit("ide/setNodeSelected",this.ideInfo.treeRef.getCurrentNode())),this.$store.dispatch(`ide/${ut.xv}`,{})},closeFile(e){if(e.path&&e.path.endsWith(".py")){this.activeFilePath===e.path&&this.saveFileConsoleState(e.path);const t=this.ideInfo.consoleItems.filter(t=>t.path!==e.path);this.$store.commit("ide/setConsoleItems",t)}const t=[];for(let i=0;i0?this.ideInfo.currProj.pathSelected===e.path&&(this.$store.commit("ide/setPathSelected",this.ideInfo.codeItems[i-1].path),this.$store.commit("ide/setCodeSelected",this.ideInfo.codeItems[i-1])):i{this.stop(e.id),this.closeConsole(e)}).catch(()=>{wl.log("canceled close console")}):this.closeConsole(e)},closeConsole(e){const t=[];for(let i=0;i0?this.$store.commit("ide/setConsoleSelected",this.ideInfo.consoleItems[i-1]):i0?this.$store.commit("ide/setConsoleSelected",this.ideInfo.consoleItems[i-1]):i{wl.log("🔍 [VmIde] Script execution callback:",e);const t=e.id===this.replSessionId||e.cmd_id===this.replSessionId||e.data&&e.data.program_id===this.replSessionId||this.isReplMode&&this.replSessionId&&(0===e.code||2e3===e.code||5e3===e.code)&&e.data&&(e.data.stdout||e.data.stderr),i=null===e.data||void 0===e.data||2e3===e.code||4e3===e.code||5e3===e.code;wl.log("🔍 [Script] Callback - isReplMessage:",t,"isProgramLifecycle:",i,"code:",e.code,"id:",e.id,"replSessionId:",this.replSessionId),!t||i?(wl.log("✅ [Script] Processing through handleRunResult"),this.$store.commit("ide/handleRunResult",e)):wl.log("⏭️ [Script] Skipping - will be handled by REPL"),5e3!==e.code||t||(wl.log("🎯 [VmIde] Script completed, entering REPL mode"),this.isReplMode=!0)}}}),this.$store.commit("ide/setConsoleId",this.ideInfo.consoleId+1)},runConsoleSelected(){this.switchToOutputTab(),"collapsed"===this.consoleMode&&(this.consoleMode="normal",this.consoleExpanded=!0,this.consoleMaximized=!1);const e=this.ideInfo.consoleSelected?.projectName||this.ideInfo.currProj?.data?.name||this.ideInfo.currProj?.config?.name,t=this.ideInfo.consoleSelected.id;this.replSessionId=t,wl.log(`[VmIde] Setting replSessionId to ${t} for Python program re-run`),this.$store.dispatch(`ide/${ut.j8}`,{msgId:t,projectName:e,filePath:this.ideInfo.consoleSelected.path,callback:{limits:-1,callback:e=>{const t=e.id===this.replSessionId||e.cmd_id===this.replSessionId||e.data&&e.data.program_id===this.replSessionId||this.isReplMode&&this.replSessionId&&(0===e.code||2e3===e.code||5e3===e.code)&&e.data&&(e.data.stdout||e.data.stderr),i=null===e.data||void 0===e.data||2e3===e.code||4e3===e.code||5e3===e.code;wl.log("🔍 [REPL] Callback - isReplMessage:",t,"isProgramLifecycle:",i,"code:",e.code,"id:",e.id,"replSessionId:",this.replSessionId),!t||i?(wl.log("✅ [REPL] Processing through handleRunResult"),this.$store.commit("ide/handleRunResult",e)):wl.log("⏭️ [REPL] Skipping - will be handled by WebSocket")}}})},stop(e){this.$store.dispatch(`ide/${ut.aQ}`,{consoleId:e,callback:{limits:-1,callback:t=>{this.$store.commit("ide/handleStopResult",{consoleId:e,dict:t})}}})},stopAll(){for(let e=0;es-10,n=Math.max(150,Math.min(Math.min(500,s),n)),this.leftSidebarWidth=n},stopResizeLeft(){this.isResizingLeft=!1,this.resizeWarning=!1,document.removeEventListener("mousemove",this.throttledHandleResizeLeft),document.removeEventListener("mouseup",this.stopResizeLeft),this.validateLayout(),this.saveLayoutPreferences()},startResizeRight(e){this.isResizingRight=!0,this.startX=e.clientX,this.startWidth=this.rightSidebarWidth,document.addEventListener("mousemove",this.throttledHandleResizeRight),document.addEventListener("mouseup",this.stopResizeRight),e.preventDefault()},handleResizeRight(e){if(!this.isResizingRight)return;const t=this.startX-e.clientX,i=window.innerWidth,o=i-this.leftSidebarWidth-this.minEditorWidth-10;let s=this.startWidth+t;this.resizeWarning=s<310||s>o-10,s=Math.max(300,Math.min(o,s)),this.rightSidebarWidth=s},stopResizeRight(){this.isResizingRight=!1,this.resizeWarning=!1,document.removeEventListener("mousemove",this.throttledHandleResizeRight),document.removeEventListener("mouseup",this.stopResizeRight),this.validateLayout(),this.saveLayoutPreferences()},startResizeConsole(e){this.isResizingConsole=!0,this.startY=e.clientY,this.startHeight=this.consoleHeight,document.addEventListener("mousemove",this.throttledHandleResizeConsole),document.addEventListener("mouseup",this.stopResizeConsole),e.preventDefault()},handleResizeConsole(e){if(!this.isResizingConsole)return;const t=this.startY-e.clientY,i=window.innerHeight,o=i-200;let s=this.startHeight+t;s=Math.max(100,Math.min(o,s)),this.consoleHeight=s,this.updateEditorHeight()},stopResizeConsole(){this.isResizingConsole=!1,document.removeEventListener("mousemove",this.throttledHandleResizeConsole),document.removeEventListener("mouseup",this.stopResizeConsole),this.updateEditorHeight(),this.saveLayoutPreferences()},saveLayoutPreferences(){const e={leftSidebarWidth:this.leftSidebarWidth,rightSidebarWidth:this.rightSidebarWidth,rightSidebarVisible:this.rightSidebarVisible,consoleHeight:this.consoleHeight,consoleExpanded:this.consoleExpanded,wordWrap:this.wordWrap,rightPanelMode:this.rightPanelMode,consoleMode:this.consoleMode,consolePreviousMode:this.consolePreviousMode,wasConsoleOpenBeforeRightExpand:this.wasConsoleOpenBeforeRightExpand};localStorage.setItem("ide-layout-preferences",JSON.stringify(e))},loadLayoutPreferences(){const e=localStorage.getItem("ide-layout-preferences");if(e)try{const t=JSON.parse(e);this.leftSidebarWidth=t.leftSidebarWidth||250,this.rightSidebarWidth=t.rightSidebarWidth||400,this.rightSidebarVisible=!0===t.rightSidebarVisible,this.consoleHeight=t.consoleHeight||200,this.consoleExpanded=!1!==t.consoleExpanded,this.wordWrap=!1!==t.wordWrap,this.rightPanelMode=t.rightPanelMode||"closed",this.consoleMode=t.consoleMode||"collapsed",this.consolePreviousMode=t.consolePreviousMode||"normal",this.wasConsoleOpenBeforeRightExpand=t.wasConsoleOpenBeforeRightExpand||!1,this.rightSidebarVisible="closed"!==this.rightPanelMode,this.consoleExpanded="collapsed"!==this.consoleMode,this.consoleMaximized="maximized"===this.consoleMode}catch(t){wl.warn("Failed to load layout preferences:",t)}this.validateLayout(),this.updateEditorHeight()},validateLayout(){const e=window.innerWidth;if(e<900)return;const t=this.leftSidebarWidth+(this.rightSidebarVisible?this.rightSidebarWidth:0),i=e-t-10;if(i{e.target.selectionStart=e.target.selectionEnd=t+1,this.updateProgramInputRows()})}else e.preventDefault(),this.sendProgramInput();else if("Tab"===e.key){e.preventDefault();const t=e.target.selectionStart,i=e.target.selectionEnd,o=this.programInput;this.programInput=o.substring(0,t)+" "+o.substring(i),this.$nextTick(()=>{e.target.selectionStart=e.target.selectionEnd=t+4,this.updateProgramInputRows()})}this.$nextTick(()=>{this.updateProgramInputRows()})},updateProgramInputRows(){const e=7,t=this.programInput.split("\n").length;this.$refs.programInputField?(this.programInputRows=1,this.$nextTick(()=>{const t=this.$refs.programInputField,i=parseInt(window.getComputedStyle(t).lineHeight)||20,o=t.scrollHeight,s=Math.ceil(o/i);this.programInputRows=Math.min(e,Math.max(1,s))})):this.programInputRows=Math.min(e,Math.max(1,t))},sendProgramInput(){if(!this.programInput.trim())return;const e=this.programInput,t=this.ideInfo.consoleSelected.id;this.$store.commit("ide/addConsoleOutput",{id:t,type:"input",text:`▶ ${e}`}),this.programInput="",this.programInputRows=1,this.$store.commit("ide/setConsoleWaiting",{id:t,waiting:!1,prompt:""}),this.$store.dispatch(`ide/${ut.WP}`,{program_id:t,input:e,callback:{limits:-1,callback:e=>{wl.log("Input sent:",e)}}}),this.$nextTick(()=>{this.$refs.consoleOutputArea&&(this.$refs.consoleOutputArea.scrollTop=this.$refs.consoleOutputArea.scrollHeight)})},handleReplKeydown(e){if("Enter"===e.key)if(e.shiftKey){e.preventDefault();const t=e.target.selectionStart,i=e.target.selectionEnd,o=this.replInput;this.replInput=o.substring(0,t)+"\n"+o.substring(i),this.$nextTick(()=>{e.target.selectionStart=e.target.selectionEnd=t+1,this.updateReplRows()})}else{e.preventDefault();const t=e.target.selectionStart,i=this.replInput.substring(0,t),o=i.split("\n"),s=o[o.length-1],n=""===s.trim(),a=this.replInput.includes("\n");if(n&&a)this.executeReplCommand();else if(this.shouldContinueMultiline(this.replInput)){const t=e.target.selectionStart,i=e.target.selectionEnd,o=this.replInput;this.replInput=o.substring(0,t)+"\n"+o.substring(i),this.$nextTick(()=>{e.target.selectionStart=e.target.selectionEnd=t+1,this.updateReplRows()})}else this.executeReplCommand()}else if("Tab"===e.key){e.preventDefault();const t=e.target.selectionStart,i=e.target.selectionEnd,o=this.replInput;this.replInput=o.substring(0,t)+" "+o.substring(i),this.$nextTick(()=>{e.target.selectionStart=e.target.selectionEnd=t+4,this.updateReplRows()})}else"ArrowUp"!==e.key||0!==e.target.selectionStart||this.replInput.includes("\n")?"ArrowDown"!==e.key||this.replInput.includes("\n")||(e.preventDefault(),this.navigateReplHistory("down")):(e.preventDefault(),this.navigateReplHistory("up"));this.$nextTick(()=>{this.updateReplRows()})},updateReplRows(){const e=7,t=this.replInput.split("\n").length;this.$refs.replInputField?(this.replInputRows=1,this.$nextTick(()=>{const t=this.$refs.replInputField,i=parseInt(window.getComputedStyle(t).lineHeight)||20,o=t.scrollHeight,s=Math.ceil(o/i);this.replInputRows=Math.min(e,Math.max(1,s))})):this.replInputRows=Math.min(e,Math.max(1,t))},async executeReplCommand(){let e=this.replInput;while(e.endsWith("\n\n"))e=e.slice(0,-1);if(!e||!e.trim())return this.replInput="",void(this.replInputRows=1);if(this.ideInfo.consoleSelected&&this.ideInfo.consoleSelected.waitingForReplInput){const t=this.ideInfo.consoleSelected.id;if(this.replInput="",this.replInputRows=1,this.$store.commit("ide/addConsoleOutput",{id:t,type:"user-input",text:`>>> ${e}`}),this.wsInfo&&this.wsInfo.rws&&this.wsInfo.rws.readyState===WebSocket.OPEN){const i={cmd:"send_program_input",id:t,data:{program_id:t,input:e}};this.wsInfo.rws.send(JSON.stringify(i)),this.$store.commit("ide/setConsoleWaitingForReplInput",{id:t,waiting:!1})}}else await this.executeReplCommandDualMode(e)},shouldContinueMultiline(e){if(!e||!e.trim())return!1;const t=e.split("\n"),i=t[t.length-1].trim();if(i.endsWith(":"))return!0;e.trim();let o=0,s=0;for(const n of t){if(""===n.trim())continue;const e=n.search(/\S/);if(-1===e)continue;const t=n.trim();t.match(/^(def|class|if|elif|else|for|while|with|try|except|finally)\b.*:/)?(o++,s=e):e<=s&&o>0&&!t.match(/^(elif|else|except|finally)\b/)&&(o=Math.max(0,o-1),s=e)}return o>0&&!i.match(/^(return|break|continue|pass|raise)\b/)},highlightPythonCode(e){if(!e||"string"!==typeof e)return e;if("undefined"!==typeof Prism&&Prism.languages&&Prism.languages.python)try{return Prism.highlight(e,Prism.languages.python,"python")}catch(Er){return wl.warn("Prism.js highlighting failed:",Er),this.simpleHighlight(e)}return this.simpleHighlight(e)},isPromptOutput(e){const t=e.text||e.content||e;return"string"===typeof t&&(t.match(/^\s*>>>\s*$/)||t.match(/^\s*\.\.\.\s*$/)||t.match(/^>>>\s*\n*$/)||t.match(/^\.\.\.\s*\n*$/)||">>>"===t.trim()||"..."===t.trim()||">>> "===t||"... "===t)},simpleHighlight(e){if(!e)return e;let t=this.escapeHtml(e);const i=["def","class","if","elif","else","try","except","finally","for","while","with","as","import","from","return","yield","lambda","pass","break","continue","raise","assert","del","and","or","not","in","is","None","True","False","async","await"],o=new RegExp(`\\b(${i.join("|")})\\b`,"g");t=t.replace(o,'$1'),t=t.replace(/(["'])((?:\\.|(?!\1).)*?)\1/g,'$1$2$1'),t=t.replace(/\b(\d+\.?\d*)\b/g,'$1'),t=t.replace(/(#.*$)/gm,'$1');const s=["print","input","range","len","str","int","float","list","dict","set","tuple","type","sum","max","min","abs","round","sorted","reversed"],n=new RegExp(`\\b(${s.join("|")})\\b`,"g");return t=t.replace(n,'$1'),t},escapeHtml(e){const t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>t[e])},isMultilineCode(e){return!(!e||"string"!==typeof e)&&(e.includes("\n")&&""!==e.trim())},splitCodeLines(e){return e&&"string"===typeof e?e.split("\n"):[e||""]},ensureReplConsole(){if(wl.log("🔍 [VmIde] ensureReplConsole called"),!this.ideInfo.consoleSelected||!this.ideInfo.consoleSelected.resultList){const e={id:"repl-console",name:"REPL",path:"REPL",resultList:[],run:!1,stop:!1,waitingForInput:!1,inputPrompt:""},t=this.ideInfo.consoleItems.find(e=>"repl-console"===e.id);t||this.$store.commit("ide/pushConsoleItem",e),this.$store.commit("ide/selectConsoleItem","repl-console")}},addReplOutput(e,t="output"){wl.log(`📢 [VmIde] addReplOutput: [${t}] ${e}`),this.ideInfo.consoleSelected&&this.ideInfo.consoleSelected.id&&(this.$store.commit("ide/addConsoleOutput",{id:this.ideInfo.consoleSelected.id,type:t,text:e}),this.$nextTick(()=>{this.$refs.consoleOutputArea&&(this.$refs.consoleOutputArea.scrollTop=this.$refs.consoleOutputArea.scrollHeight)}))},navigateReplHistory(e){if(0!==this.replHistory.length){if("up"===e)-1===this.replHistoryIndex?this.replHistoryIndex=this.replHistory.length-1:this.replHistoryIndex>0&&this.replHistoryIndex--;else if("down"===e){if(-1===this.replHistoryIndex)return;if(!(this.replHistoryIndex=0&&(this.replInput=this.replHistory[this.replHistoryIndex])}},async executeTerminalCommand(){if(!this.terminalInput.trim())return;const e=this.terminalInput.trim();if(this.terminalHistory[this.terminalHistory.length-1]!==e&&this.terminalHistory.push(e),this.terminalHistoryIndex=-1,this.addTerminalOutput("input",e),"clear"===e||"clear()"===e)return this.clearTerminal(),void(this.terminalInput="");if("help"===e||"help()"===e)return this.addTerminalOutput("output",this.getHelpText()),this.terminalInput="",void this.$nextTick(()=>{this.scrollTerminalToBottom(),this.focusTerminalInput()});const t=await this.ensurePyodideReady();if(!t)return this.addTerminalOutput("error","Python environment failed to initialize"),void(this.terminalInput="");try{wl.log("[Pyodide] Executing:",e);const t=this.pyodide.runPython(e);void 0!==t&&null!==t&&this.addTerminalOutput("output",String(t))}catch(Er){wl.error("[Pyodide] Execution error:",Er),this.addTerminalOutput("error",Er.toString())}this.terminalInput="",this.$nextTick(()=>{this.scrollTerminalToBottom(),this.focusTerminalInput()})},addTerminalOutput(e,t){this.terminalOutput.push({type:e,content:t,timestamp:(new Date).toISOString()})},getHelpText(){return"🐍 Python Interactive Terminal (Powered by Pyodide)\n\nFeatures:\n• Full Python 3.11 environment in your browser\n• All variables and imports persist across commands\n• NumPy, Pandas, Matplotlib support available\n• Use Up/Down arrows for command history\n• Type 'clear' to clear the terminal\n\nTry these examples:\n >>> import math\n >>> math.sqrt(16)\n >>> x = [1, 2, 3, 4, 5]\n >>> sum(x)\n\nAdvanced packages (install with micropip):\n >>> import micropip\n >>> await micropip.install(\"requests\")"},navigateHistory(e){if(0!==this.terminalHistory.length){if("up"===e)-1===this.terminalHistoryIndex?this.terminalHistoryIndex=this.terminalHistory.length-1:this.terminalHistoryIndex>0&&this.terminalHistoryIndex--;else if("down"===e){if(-1===this.terminalHistoryIndex)return;if(!(this.terminalHistoryIndex=0&&(this.terminalInput=this.terminalHistory[this.terminalHistoryIndex])}},scrollTerminalToBottom(){this.$refs.terminalContent&&(this.$refs.terminalContent.scrollTop=this.$refs.terminalContent.scrollHeight)},focusTerminalInput(){this.$refs.terminalInputField&&this.$refs.terminalInputField.focus()},switchToOutputTab(){this.consoleModeTab="output"},switchToTerminalTab(){this.consoleModeTab="terminal",this.$nextTick(()=>{this.focusTerminalInput()})}}};const kl=(0,k.A)(bl,[["render",Zn],["__scopeId","data-v-b2350ddc"]]);var Il=kl}}]); \ No newline at end of file diff --git a/dist/static/js/733.197eeaaf.js b/dist/static/js/733.197eeaaf.js deleted file mode 100644 index 85a49300..00000000 --- a/dist/static/js/733.197eeaaf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[733],{5728:function(e,t,n){n.d(t,{dI:function(){return M}});var r=n(20641),a=n(50953),o=n(90033),u=n(53751),l=n(838),i=n(10022),c=n(31069),s=n(2154);const d={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:l.mU,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},...(0,i.l)(["ariaControls"])},f={[c.l4]:e=>(0,o.Kg)(e)||(0,s.Et)(e)||(0,s.Lm)(e),change:e=>(0,o.Kg)(e)||(0,s.Et)(e)||(0,s.Lm)(e)};var v=n(78396);const b=Symbol("checkboxGroupContextKey");var p=n(72207);const h=({model:e,isChecked:t})=>{const n=(0,r.WQ)(b,void 0),a=(0,r.EW)(()=>{var r,a;const o=null==(r=null==n?void 0:n.max)?void 0:r.value,u=null==(a=null==n?void 0:n.min)?void 0:a.value;return!(0,s.b0)(o)&&e.value.length>=o&&!t.value||!(0,s.b0)(u)&&e.value.length<=u&&t.value}),o=(0,p.CB)((0,r.EW)(()=>(null==n?void 0:n.disabled.value)||a.value));return{isDisabled:o,isLimitDisabled:a}};var m=n(29357),y=n(41651);const A=(e,{model:t,isLimitExceeded:n,hasOwnLabel:a,isDisabled:o,isLabeledByFormItem:u})=>{const l=(0,r.WQ)(b,void 0),{formItem:i}=(0,m.j)(),{emit:s}=(0,r.nI)();function d(t){var n,r,a,o;return[!0,e.trueValue,e.trueLabel].includes(t)?null==(r=null!=(n=e.trueValue)?n:e.trueLabel)||r:null!=(o=null!=(a=e.falseValue)?a:e.falseLabel)&&o}function f(e,t){s(c.YU,d(e),t)}function v(e){if(n.value)return;const t=e.target;s(c.YU,d(t.checked),e)}async function p(l){if(!n.value&&!a.value&&!o.value&&u.value){const n=l.composedPath(),a=n.some(e=>"LABEL"===e.tagName);a||(t.value=d([!1,e.falseValue,e.falseLabel].includes(t.value)),await(0,r.dY)(),f(t.value,l))}}const h=(0,r.EW)(()=>(null==l?void 0:l.validateEvent)||e.validateEvent);return(0,r.wB)(()=>e.modelValue,()=>{h.value&&(null==i||i.validate("change").catch(e=>(0,y.U)()))}),{handleChange:v,onClickRoot:p}},g=e=>{const t=(0,a.KR)(!1),{emit:n}=(0,r.nI)(),u=(0,r.WQ)(b,void 0),l=(0,r.EW)(()=>!1===(0,s.b0)(u)),i=(0,a.KR)(!1),d=(0,r.EW)({get(){var n,r;return l.value?null==(n=null==u?void 0:u.modelValue)?void 0:n.value:null!=(r=e.modelValue)?r:t.value},set(e){var r,a;l.value&&(0,o.cy)(e)?(i.value=void 0!==(null==(r=null==u?void 0:u.max)?void 0:r.value)&&e.length>(null==u?void 0:u.max.value)&&e.length>d.value.length,!1===i.value&&(null==(a=null==u?void 0:u.changeEvent)||a.call(u,e))):(n(c.l4,e),t.value=e)}});return{model:d,isGroup:l,isLimitExceeded:i}};var x=n(46996);const k=(e,t,{model:n})=>{const u=(0,r.WQ)(b,void 0),l=(0,a.KR)(!1),i=(0,r.EW)(()=>(0,s.Xj)(e.value)?e.label:e.value),c=(0,r.EW)(()=>{const t=n.value;return(0,s.Lm)(t)?t:(0,o.cy)(t)?(0,o.Gv)(i.value)?t.map(a.ux).some(e=>(0,x.A)(e,i.value)):t.map(a.ux).includes(i.value):null!==t&&void 0!==t?t===e.trueValue||t===e.trueLabel:!!t}),d=(0,p.NV)((0,r.EW)(()=>{var e;return null==(e=null==u?void 0:u.size)?void 0:e.value}),{prop:!0}),f=(0,p.NV)((0,r.EW)(()=>{var e;return null==(e=null==u?void 0:u.size)?void 0:e.value})),v=(0,r.EW)(()=>!!t.default||!(0,s.Xj)(i.value));return{checkboxButtonSize:d,isChecked:c,isFocused:l,checkboxSize:f,hasOwnLabel:v,actualValue:i}};var j=n(49766);const _=(e,t)=>{const{formItem:n}=(0,m.j)(),{model:a,isGroup:u,isLimitExceeded:l}=g(e),{isFocused:i,isChecked:c,checkboxButtonSize:d,checkboxSize:f,hasOwnLabel:v,actualValue:b}=k(e,t,{model:a}),{isDisabled:p}=h({model:a,isChecked:c}),{inputId:y,isLabeledByFormItem:x}=(0,m.W)(e,{formItemContext:n,disableIdGeneration:v,disableIdManagement:u}),{handleChange:_,onClickRoot:C}=A(e,{model:a,isLimitExceeded:l,hasOwnLabel:v,isDisabled:p,isLabeledByFormItem:x}),w=()=>{function t(){var t,n;(0,o.cy)(a.value)&&!a.value.includes(b.value)?a.value.push(b.value):a.value=null==(n=null!=(t=e.trueValue)?t:e.trueLabel)||n}e.checked&&t()};return w(),(0,j.b)({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},(0,r.EW)(()=>u.value&&(0,s.Xj)(e.value))),(0,j.b)({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},(0,r.EW)(()=>!!e.trueLabel)),(0,j.b)({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},(0,r.EW)(()=>!!e.falseLabel)),{inputId:y,isLabeledByFormItem:x,isChecked:c,isDisabled:p,isFocused:i,checkboxButtonSize:d,checkboxSize:f,hasOwnLabel:v,model:a,actualValue:b,handleChange:_,onClickRoot:C}};var C=n(65980);const w=(0,r.pM)({name:"ElCheckbox"}),S=(0,r.pM)({...w,props:d,emits:f,setup(e){const t=e,n=(0,r.Ht)(),{inputId:l,isLabeledByFormItem:i,isChecked:c,isDisabled:s,isFocused:d,checkboxSize:f,hasOwnLabel:v,model:b,actualValue:p,handleChange:h,onClickRoot:m}=_(t,n),y=(0,C.DU)("checkbox"),A=(0,r.EW)(()=>[y.b(),y.m(f.value),y.is("disabled",s.value),y.is("bordered",t.border),y.is("checked",c.value)]),g=(0,r.EW)(()=>[y.e("input"),y.is("disabled",s.value),y.is("checked",c.value),y.is("indeterminate",t.indeterminate),y.is("focus",d.value)]);return(e,t)=>((0,r.uX)(),(0,r.Wv)((0,r.$y)(!(0,a.R1)(v)&&(0,a.R1)(i)?"span":"label"),{class:(0,o.C4)((0,a.R1)(A)),"aria-controls":e.indeterminate?e.ariaControls:null,onClick:(0,a.R1)(m)},{default:(0,r.k6)(()=>{var t,n,i,c;return[(0,r.Lk)("span",{class:(0,o.C4)((0,a.R1)(g))},[e.trueValue||e.falseValue||e.trueLabel||e.falseLabel?(0,r.bo)(((0,r.uX)(),(0,r.CE)("input",{key:0,id:(0,a.R1)(l),"onUpdate:modelValue":e=>(0,a.i9)(b)?b.value=e:null,class:(0,o.C4)((0,a.R1)(y).e("original")),type:"checkbox",indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:(0,a.R1)(s),"true-value":null==(n=null!=(t=e.trueValue)?t:e.trueLabel)||n,"false-value":null!=(c=null!=(i=e.falseValue)?i:e.falseLabel)&&c,onChange:(0,a.R1)(h),onFocus:e=>d.value=!0,onBlur:e=>d.value=!1,onClick:(0,u.D$)(()=>{},["stop"])},null,42,["id","onUpdate:modelValue","indeterminate","name","tabindex","disabled","true-value","false-value","onChange","onFocus","onBlur","onClick"])),[[u.lH,(0,a.R1)(b)]]):(0,r.bo)(((0,r.uX)(),(0,r.CE)("input",{key:1,id:(0,a.R1)(l),"onUpdate:modelValue":e=>(0,a.i9)(b)?b.value=e:null,class:(0,o.C4)((0,a.R1)(y).e("original")),type:"checkbox",indeterminate:e.indeterminate,disabled:(0,a.R1)(s),value:(0,a.R1)(p),name:e.name,tabindex:e.tabindex,onChange:(0,a.R1)(h),onFocus:e=>d.value=!0,onBlur:e=>d.value=!1,onClick:(0,u.D$)(()=>{},["stop"])},null,42,["id","onUpdate:modelValue","indeterminate","disabled","value","name","tabindex","onChange","onFocus","onBlur","onClick"])),[[u.lH,(0,a.R1)(b)]]),(0,r.Lk)("span",{class:(0,o.C4)((0,a.R1)(y).e("inner"))},null,2)],2),(0,a.R1)(v)?((0,r.uX)(),(0,r.CE)("span",{key:0,class:(0,o.C4)((0,a.R1)(y).e("label"))},[(0,r.RG)(e.$slots,"default"),e.$slots.default?(0,r.Q3)("v-if",!0):((0,r.uX)(),(0,r.CE)(r.FK,{key:0},[(0,r.eW)((0,o.v_)(e.label),1)],64))],2)):(0,r.Q3)("v-if",!0)]}),_:3},8,["class","aria-controls","onClick"]))}});var E=(0,v.A)(S,[["__file","checkbox.vue"]]);const R=(0,r.pM)({name:"ElCheckboxButton"}),L=(0,r.pM)({...R,props:d,emits:f,setup(e){const t=e,n=(0,r.Ht)(),{isFocused:l,isChecked:i,isDisabled:c,checkboxButtonSize:s,model:d,actualValue:f,handleChange:v}=_(t,n),p=(0,r.WQ)(b,void 0),h=(0,C.DU)("checkbox"),m=(0,r.EW)(()=>{var e,t,n,r;const a=null!=(t=null==(e=null==p?void 0:p.fill)?void 0:e.value)?t:"";return{backgroundColor:a,borderColor:a,color:null!=(r=null==(n=null==p?void 0:p.textColor)?void 0:n.value)?r:"",boxShadow:a?`-1px 0 0 0 ${a}`:void 0}}),y=(0,r.EW)(()=>[h.b("button"),h.bm("button",s.value),h.is("disabled",c.value),h.is("checked",i.value),h.is("focus",l.value)]);return(e,t)=>{var n,s,b,p;return(0,r.uX)(),(0,r.CE)("label",{class:(0,o.C4)((0,a.R1)(y))},[e.trueValue||e.falseValue||e.trueLabel||e.falseLabel?(0,r.bo)(((0,r.uX)(),(0,r.CE)("input",{key:0,"onUpdate:modelValue":e=>(0,a.i9)(d)?d.value=e:null,class:(0,o.C4)((0,a.R1)(h).be("button","original")),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:(0,a.R1)(c),"true-value":null==(s=null!=(n=e.trueValue)?n:e.trueLabel)||s,"false-value":null!=(p=null!=(b=e.falseValue)?b:e.falseLabel)&&p,onChange:(0,a.R1)(v),onFocus:e=>l.value=!0,onBlur:e=>l.value=!1,onClick:(0,u.D$)(()=>{},["stop"])},null,42,["onUpdate:modelValue","name","tabindex","disabled","true-value","false-value","onChange","onFocus","onBlur","onClick"])),[[u.lH,(0,a.R1)(d)]]):(0,r.bo)(((0,r.uX)(),(0,r.CE)("input",{key:1,"onUpdate:modelValue":e=>(0,a.i9)(d)?d.value=e:null,class:(0,o.C4)((0,a.R1)(h).be("button","original")),type:"checkbox",name:e.name,tabindex:e.tabindex,disabled:(0,a.R1)(c),value:(0,a.R1)(f),onChange:(0,a.R1)(v),onFocus:e=>l.value=!0,onBlur:e=>l.value=!1,onClick:(0,u.D$)(()=>{},["stop"])},null,42,["onUpdate:modelValue","name","tabindex","disabled","value","onChange","onFocus","onBlur","onClick"])),[[u.lH,(0,a.R1)(d)]]),e.$slots.default||e.label?((0,r.uX)(),(0,r.CE)("span",{key:2,class:(0,o.C4)((0,a.R1)(h).be("button","inner")),style:(0,o.Tr)((0,a.R1)(i)?(0,a.R1)(m):void 0)},[(0,r.RG)(e.$slots,"default",{},()=>[(0,r.eW)((0,o.v_)(e.label),1)])],6)):(0,r.Q3)("v-if",!0)],2)}}});var z=(0,v.A)(L,[["__file","checkbox-button.vue"]]),V=n(64670),B=n(50819);const O=(0,B.b_)({modelValue:{type:(0,B.jq)(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:l.mU,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},...(0,i.l)(["ariaLabel"])}),W={[c.l4]:e=>(0,o.cy)(e),change:e=>(0,o.cy)(e)},I=(0,r.pM)({name:"ElCheckboxGroup"}),D=(0,r.pM)({...I,props:O,emits:W,setup(e,{emit:t}){const n=e,u=(0,C.DU)("checkbox"),{formItem:l}=(0,m.j)(),{inputId:i,isLabeledByFormItem:s}=(0,m.W)(n,{formItemContext:l}),d=async e=>{t(c.l4,e),await(0,r.dY)(),t(c.YU,e)},f=(0,r.EW)({get(){return n.modelValue},set(e){d(e)}});return(0,r.Gt)(b,{...(0,V.A)((0,a.QW)(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:f,changeEvent:d}),(0,r.wB)(()=>n.modelValue,(e,t)=>{n.validateEvent&&!(0,x.A)(e,t)&&(null==l||l.validate("change").catch(e=>(0,y.U)()))}),(e,t)=>{var n;return(0,r.uX)(),(0,r.Wv)((0,r.$y)(e.tag),{id:(0,a.R1)(i),class:(0,o.C4)((0,a.R1)(u).b("group")),role:"group","aria-label":(0,a.R1)(s)?void 0:e.ariaLabel||"checkbox-group","aria-labelledby":(0,a.R1)(s)?null==(n=(0,a.R1)(l))?void 0:n.labelId:void 0},{default:(0,r.k6)(()=>[(0,r.RG)(e.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var U=(0,v.A)(D,[["__file","checkbox-group.vue"]]),F=n(64769);const M=(0,F.GU)(E,{CheckboxButton:z,CheckboxGroup:U});(0,F.WM)(z),(0,F.WM)(U)},6937:function(e,t,n){n.d(t,{P:function(){return r},u:function(){return a}});const r=Symbol("ElSelectGroup"),a=Symbol("ElSelect")},9084:function(e,t,n){n.d(t,{A:function(){return b}});var r=n(83607),a=n(97271),o=n(40367),u=(0,o.A)(Object.keys,Object),l=u,i=Object.prototype,c=i.hasOwnProperty;function s(e){if(!(0,a.A)(e))return l(e);var t=[];for(var n in Object(e))c.call(e,n)&&"constructor"!=n&&t.push(n);return t}var d=s,f=n(38446);function v(e){return(0,f.A)(e)?(0,r.A)(e):d(e)}var b=v},11754:function(e,t,n){n.d(t,{A:function(){return y}});var r=n(80127);function a(){this.__data__=new r.A,this.size=0}var o=a;function u(e){var t=this.__data__,n=t["delete"](e);return this.size=t.size,n}var l=u;function i(e){return this.__data__.get(e)}var c=i;function s(e){return this.__data__.has(e)}var d=s,f=n(68335),v=n(29471),b=200;function p(e,t){var n=this.__data__;if(n instanceof r.A){var a=n.__data__;if(!f.A||a.length1;return t.has(1)&&t.clear(),{done:n,value:2}}}}},t=new Set([1,2,3,4]);return 3!==t.difference(e).size});r({target:"Set",proto:!0,real:!0,forced:i},{difference:a})},19042:function(e,t,n){var r=n(33831),a=n(88634),o=n(9084);function u(e){return(0,r.A)(e,o.A,a.A)}t.A=u},25170:function(e,t,n){var r=n(46706),a=n(94402);e.exports=r(a.proto,"size","get")||function(e){return e.size}},28527:function(e,t,n){var r=n(97080),a=n(94402).has,o=n(25170),u=n(83789),l=n(40507),i=n(9539);e.exports=function(e){var t=r(this),n=u(e);if(o(t)l))return!1;var c=o.get(e),s=o.get(t);if(c&&s)return c==t&&s==e;var f=-1,b=!0,y=n&m?new d:void 0;o.set(e,t),o.set(t,e);while(++fn.size)&&!1!==o(t,function(e){if(!n.includes(e))return!1},!0)}},58004:function(e,t,n){var r=n(46518),a=n(79039),o=n(68750),u=n(84916),l=!u("intersection",function(e){return 2===e.size&&e.has(1)&&e.has(2)})||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});r({target:"Set",proto:!0,real:!0,forced:l},{intersection:o})},64449:function(e,t,n){var r=n(97080),a=n(94402).has,o=n(25170),u=n(83789),l=n(38469),i=n(40507),c=n(9539);e.exports=function(e){var t=r(this),n=u(e);if(o(t)<=n.size)return!1!==l(t,function(e){if(n.includes(e))return!1},!0);var s=n.getIterator();return!1!==i(s,function(e){if(a(t,e))return c(s,"normal",!1)})}},64841:function(e,t,n){var r=n(72136),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=a&&"object"==typeof module&&module&&!module.nodeType&&module,u=o&&o.exports===a,l=u&&r.A.process,i=function(){try{var e=o&&o.require&&o.require("util").types;return e||l&&l.binding&&l.binding("util")}catch(t){}}();t.A=i},68750:function(e,t,n){var r=n(97080),a=n(94402),o=n(25170),u=n(83789),l=n(38469),i=n(40507),c=a.Set,s=a.add,d=a.has;e.exports=function(e){var t=r(this),n=u(e),a=new c;return o(t)>n.size?i(n.getIterator(),function(e){d(t,e)&&s(a,e)}):l(t,function(e){n.includes(e)&&s(a,e)}),a}},83440:function(e,t,n){var r=n(97080),a=n(94402),o=n(89286),u=n(25170),l=n(83789),i=n(38469),c=n(40507),s=a.has,d=a.remove;e.exports=function(e){var t=r(this),n=l(e),a=o(t);return u(t)<=n.size?i(t,function(e){n.includes(e)&&d(a,e)}):c(n.getIterator(),function(e){s(a,e)&&d(a,e)}),a}},83607:function(e,t,n){function r(e,t){var n=-1,r=Array(e);while(++na[0]||(a[0]=[(0,e.Lk)("div",{class:"settings-page"},[(0,e.Lk)("div",{class:"admin-card"},[(0,e.Lk)("div",{class:"admin-card-header"},[(0,e.Lk)("h3",{class:"admin-card-title"},"Settings")]),(0,e.Lk)("div",{class:"coming-soon"},[(0,e.Lk)("span",{class:"icon"},"⚙️"),(0,e.Lk)("h3",null,"Settings Coming Soon"),(0,e.Lk)("p",null,"This feature will allow you to configure system settings and manage admin accounts.")])])],-1)])),_:1,__:[0]})}var i=s(7424),c={name:"SettingsPage",components:{AdminLayout:i.A}},d=s(6262);const o=(0,d.A)(c,[["render",t],["__scopeId","data-v-2bdcaa10"]]);var l=o}}]); \ No newline at end of file diff --git a/dist/static/js/953.ad598ece.js b/dist/static/js/953.ad598ece.js new file mode 100644 index 00000000..aea37ee8 --- /dev/null +++ b/dist/static/js/953.ad598ece.js @@ -0,0 +1 @@ +"use strict";(self["webpackChunkvm_web_ide"]=self["webpackChunkvm_web_ide"]||[]).push([[953],{3334:function(a,n,i){i.r(n),i.d(n,{default:function(){return o}});var s=i(641);function e(a,n,i,e,c,t){const d=(0,s.g2)("AdminLayout");return(0,s.uX)(),(0,s.Wv)(d,null,{default:(0,s.k6)(()=>n[0]||(n[0]=[(0,s.Lk)("div",{class:"analytics-page"},[(0,s.Lk)("div",{class:"admin-card"},[(0,s.Lk)("div",{class:"admin-card-header"},[(0,s.Lk)("h3",{class:"admin-card-title"},"Analytics")]),(0,s.Lk)("div",{class:"coming-soon"},[(0,s.Lk)("span",{class:"icon"},"📈"),(0,s.Lk)("h3",null,"Analytics Dashboard Coming Soon"),(0,s.Lk)("p",null,"This feature will provide login activity, file usage, and code execution statistics.")])])],-1)])),_:1,__:[0]})}var c=i(7424),t={name:"AnalyticsPage",components:{AdminLayout:c.A}},d=i(6262);const l=(0,d.A)(t,[["render",e],["__scopeId","data-v-7f594bff"]]);var o=l}}]); \ No newline at end of file diff --git a/dist/static/js/admin.88d59d6b.js b/dist/static/js/admin.88d59d6b.js new file mode 100644 index 00000000..13115228 --- /dev/null +++ b/dist/static/js/admin.88d59d6b.js @@ -0,0 +1 @@ +(function(){"use strict";var e={248:function(e,t,a){var s=a(3751),r=a(720),o=(a(4188),a(1862),a(163)),n=a(7918),l=a(641);const i={id:"admin-app",class:"dark"};function u(e,t,a,s,r,o){const n=(0,l.g2)("router-view");return(0,l.uX)(),(0,l.CE)("div",i,[(0,l.bF)(n)])}var d={name:"AdminApp",mounted(){document.documentElement.setAttribute("data-theme","dark"),document.documentElement.classList.add("dark")}},c=a(6262);const p=(0,c.A)(d,[["render",u]]);var m=p,h=a(5220),g=a(6278);const f="/api/admin/auth";var v={async login(e,t){const a=await fetch(`${f}/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t})});return a.json()},async logout(e){const t=await fetch(`${f}/logout`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}});return t.json()},async validateSession(e){const t=await fetch(`${f}/session`,{method:"GET",headers:{Authorization:`Bearer ${e}`}});return t.json()},async renewSession(e){const t=await fetch(`${f}/session`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}});return t.json()}},b=a(6763);const _="admin_token",w="admin_user";var k={namespaced:!0,state:{token:localStorage.getItem(_)||null,user:JSON.parse(localStorage.getItem(w)||"null"),isAuthenticated:!1,loading:!1,error:null},mutations:{SET_TOKEN(e,t){e.token=t,t?localStorage.setItem(_,t):localStorage.removeItem(_)},SET_USER(e,t){e.user=t,t?localStorage.setItem(w,JSON.stringify(t)):localStorage.removeItem(w)},SET_AUTHENTICATED(e,t){e.isAuthenticated=t},SET_LOADING(e,t){e.loading=t},SET_ERROR(e,t){e.error=t},CLEAR_AUTH(e){e.token=null,e.user=null,e.isAuthenticated=!1,localStorage.removeItem(_),localStorage.removeItem(w)}},actions:{async login({commit:e},{username:t,password:a}){e("SET_LOADING",!0),e("SET_ERROR",null);try{const s=await v.login(t,a);return s.success?(e("SET_TOKEN",s.token),e("SET_USER",s.user),e("SET_AUTHENTICATED",!0),{success:!0}):(e("SET_ERROR",s.error||"Login failed"),{success:!1,error:s.error})}catch(s){const t=s.response?.data?.error||s.message||"Login failed";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async logout({commit:e,state:t}){try{t.token&&await v.logout(t.token)}catch(a){b.error("Logout error:",a)}finally{e("CLEAR_AUTH")}},async checkSession({commit:e,state:t}){if(!t.token)return e("SET_AUTHENTICATED",!1),!1;try{const a=await v.validateSession(t.token);return a.valid?(e("SET_USER",a.user),e("SET_AUTHENTICATED",!0),!0):(e("CLEAR_AUTH"),!1)}catch(a){return b.error("Session validation error:",a),e("CLEAR_AUTH"),!1}},async renewSession({commit:e,state:t}){if(!t.token)return!1;try{const e=await v.renewSession(t.token);return e.success}catch(a){return b.error("Session renewal error:",a),!1}}},getters:{isAuthenticated:e=>e.isAuthenticated,user:e=>e.user,token:e=>e.token,isLoading:e=>e.loading,error:e=>e.error,username:e=>e.user?.username||"",fullName:e=>e.user?.full_name||e.user?.username||""}};a(8111),a(2489),a(4603),a(7566),a(8721);const E="/api/admin/users";function y(e){const t=new URLSearchParams;for(const[a,s]of Object.entries(e))null!==s&&void 0!==s&&""!==s&&t.append(a,s);return t.toString()}var S={async getUsers(e,t={}){const a=y(t),s=a?`${E}?${a}`:E,r=await fetch(s,{method:"GET",headers:{Authorization:`Bearer ${e}`}});return r.json()},async getUser(e,t){const a=await fetch(`${E}/${t}`,{method:"GET",headers:{Authorization:`Bearer ${e}`}});return a.json()},async createUser(e,t){const a=await fetch(E,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(t)});return a.json()},async updateUser(e,t,a){const s=await fetch(`${E}/${t}`,{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(a)});return s.json()},async deleteUser(e,t){const a=await fetch(`${E}/${t}`,{method:"DELETE",headers:{Authorization:`Bearer ${e}`}});return a.json()},async resetPassword(e,t,a=null){const s=a?{new_password:a}:{},r=await fetch(`${E}/${t}/reset-password`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`},body:JSON.stringify(s)});return r.json()},async bulkImport(e,t){const a=new FormData;a.append("file",t);const s=await fetch(`${E}/bulk-import`,{method:"POST",headers:{Authorization:`Bearer ${e}`},body:a});return s.json()},async exportUsers(e,t={}){const a=y({...t,export:"true"}),s=`${E}?${a}`,r=await fetch(s,{method:"GET",headers:{Authorization:`Bearer ${e}`}});return r.blob()},async downloadTemplate(e){const t=await fetch(`${E}/bulk-import`,{method:"GET",headers:{Authorization:`Bearer ${e}`}});return t.blob()}},L={namespaced:!0,state:{users:[],currentUser:null,total:0,page:1,limit:20,loading:!1,error:null,filters:{search:"",role:"",status:""},sortBy:"username",sortOrder:"asc"},mutations:{SET_USERS(e,t){e.users=t},SET_CURRENT_USER(e,t){e.currentUser=t},SET_TOTAL(e,t){e.total=t},SET_PAGE(e,t){e.page=t},SET_LIMIT(e,t){e.limit=t},SET_LOADING(e,t){e.loading=t},SET_ERROR(e,t){e.error=t},SET_FILTERS(e,t){e.filters={...e.filters,...t}},SET_SORT(e,{sortBy:t,sortOrder:a}){t&&(e.sortBy=t),a&&(e.sortOrder=a)},RESET_FILTERS(e){e.filters={search:"",role:"",status:""},e.page=1},UPDATE_USER_IN_LIST(e,t){const a=e.users.findIndex(e=>e.id===t.id);-1!==a&&e.users.splice(a,1,{...e.users[a],...t})},REMOVE_USER_FROM_LIST(e,t){e.users=e.users.filter(e=>e.id!==t),e.total=Math.max(0,e.total-1)}},actions:{async fetchUsers({commit:e,state:t,rootState:a}){e("SET_LOADING",!0),e("SET_ERROR",null);try{const s=a.auth.token,r=await S.getUsers(s,{page:t.page,limit:t.limit,search:t.filters.search,role:t.filters.role,status:t.filters.status,sort_by:t.sortBy,sort_order:t.sortOrder});return r.success?(e("SET_USERS",r.users),e("SET_TOTAL",r.total),{success:!0}):(e("SET_ERROR",r.error),{success:!1,error:r.error})}catch(s){const t=s.response?.data?.error||s.message||"Failed to fetch users";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async fetchUser({commit:e,rootState:t},a){e("SET_LOADING",!0),e("SET_ERROR",null);try{const s=t.auth.token,r=await S.getUser(s,a);return r.success?(e("SET_CURRENT_USER",r.user),{success:!0,user:r.user}):(e("SET_ERROR",r.error),{success:!1,error:r.error})}catch(s){const t=s.response?.data?.error||s.message||"Failed to fetch user";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async createUser({commit:e,dispatch:t,rootState:a},s){e("SET_LOADING",!0),e("SET_ERROR",null);try{const r=a.auth.token,o=await S.createUser(r,s);return o.success?(await t("fetchUsers"),{success:!0,user:o.user}):(e("SET_ERROR",o.error),{success:!1,error:o.error})}catch(r){const t=r.response?.data?.error||r.message||"Failed to create user";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async updateUser({commit:e,rootState:t},{userId:a,userData:s}){e("SET_LOADING",!0),e("SET_ERROR",null);try{const r=t.auth.token,o=await S.updateUser(r,a,s);return o.success?(e("UPDATE_USER_IN_LIST",{id:a,...s}),{success:!0}):(e("SET_ERROR",o.error),{success:!1,error:o.error})}catch(r){const t=r.response?.data?.error||r.message||"Failed to update user";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async deleteUser({commit:e,rootState:t},a){e("SET_LOADING",!0),e("SET_ERROR",null);try{const s=t.auth.token,r=await S.deleteUser(s,a);return r.success?(e("REMOVE_USER_FROM_LIST",a),{success:!0}):(e("SET_ERROR",r.error),{success:!1,error:r.error})}catch(s){const t=s.response?.data?.error||s.message||"Failed to delete user";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async resetPassword({commit:e,rootState:t},{userId:a,newPassword:s}){e("SET_LOADING",!0),e("SET_ERROR",null);try{const r=t.auth.token,o=await S.resetPassword(r,a,s);return o.success?{success:!0,newPassword:o.new_password}:(e("SET_ERROR",o.error),{success:!1,error:o.error})}catch(r){const t=r.response?.data?.error||r.message||"Failed to reset password";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},async bulkImport({commit:e,dispatch:t,rootState:a},s){e("SET_LOADING",!0),e("SET_ERROR",null);try{const r=a.auth.token,o=await S.bulkImport(r,s);return o.success?(await t("fetchUsers"),{success:!0,created:o.created,failed:o.failed,errors:o.errors}):(e("SET_ERROR",o.error),{success:!1,error:o.error})}catch(r){const t=r.response?.data?.error||r.message||"Failed to import users";return e("SET_ERROR",t),{success:!1,error:t}}finally{e("SET_LOADING",!1)}},setPage({commit:e,dispatch:t},a){e("SET_PAGE",a),t("fetchUsers")},setFilters({commit:e,dispatch:t},a){e("SET_FILTERS",a),e("SET_PAGE",1),t("fetchUsers")},setSort({commit:e,dispatch:t},{sortBy:a,sortOrder:s}){e("SET_SORT",{sortBy:a,sortOrder:s}),t("fetchUsers")},resetFilters({commit:e,dispatch:t}){e("RESET_FILTERS"),t("fetchUsers")}},getters:{users:e=>e.users,currentUser:e=>e.currentUser,total:e=>e.total,page:e=>e.page,limit:e=>e.limit,pages:e=>Math.ceil(e.total/e.limit),isLoading:e=>e.loading,error:e=>e.error,filters:e=>e.filters,sortBy:e=>e.sortBy,sortOrder:e=>e.sortOrder}},A=(0,g.y$)({modules:{auth:k,users:L},state:{loading:!1,error:null},mutations:{SET_LOADING(e,t){e.loading=t},SET_ERROR(e,t){e.error=t},CLEAR_ERROR(e){e.error=null}},actions:{setLoading({commit:e},t){e("SET_LOADING",t)},setError({commit:e},t){e("SET_ERROR",t)},clearError({commit:e}){e("CLEAR_ERROR")}},getters:{isLoading:e=>e.loading,error:e=>e.error}}),R=a(1857),U=a(6560),T=a(8224),F=a(33);const C={class:"login-page"},O={class:"login-container"},P={class:"form-group"},I={class:"input-icon"},V={class:"form-group"},D={class:"input-icon"};function N(e,t,a,r,o,n){const i=(0,l.g2)("User"),u=T.WK,d=(0,l.g2)("Lock"),c=U.KR,p=R.S2;return(0,l.uX)(),(0,l.CE)("div",C,[(0,l.Lk)("div",O,[t[5]||(t[5]=(0,l.Lk)("div",{class:"login-header"},[(0,l.Lk)("h1",{class:"login-title"},"Admin Panel"),(0,l.Lk)("p",{class:"login-subtitle"},"Python Web IDE Administration")],-1)),(0,l.Lk)("form",{onSubmit:t[2]||(t[2]=(0,s.D$)((...e)=>r.handleLogin&&r.handleLogin(...e),["prevent"])),class:"login-form"},[(0,l.Lk)("div",P,[t[3]||(t[3]=(0,l.Lk)("label",{class:"form-label"},"Username",-1)),(0,l.bF)(u,{modelValue:r.username,"onUpdate:modelValue":t[0]||(t[0]=e=>r.username=e),placeholder:"Enter your username",size:"large",disabled:r.loading,onKeyup:(0,s.jR)(r.handleLogin,["enter"])},{prefix:(0,l.k6)(()=>[(0,l.Lk)("span",I,[(0,l.bF)(i,{size:18})])]),_:1},8,["modelValue","disabled","onKeyup"])]),(0,l.Lk)("div",V,[t[4]||(t[4]=(0,l.Lk)("label",{class:"form-label"},"Password",-1)),(0,l.bF)(u,{modelValue:r.password,"onUpdate:modelValue":t[1]||(t[1]=e=>r.password=e),type:"password",placeholder:"Enter your password",size:"large","show-password":"",disabled:r.loading,onKeyup:(0,s.jR)(r.handleLogin,["enter"])},{prefix:(0,l.k6)(()=>[(0,l.Lk)("span",D,[(0,l.bF)(d,{size:18})])]),_:1},8,["modelValue","disabled","onKeyup"])]),r.error?((0,l.uX)(),(0,l.Wv)(c,{key:0,title:r.error,type:"error",closable:!1,"show-icon":"",class:"login-error"},null,8,["title"])):(0,l.Q3)("",!0),(0,l.bF)(p,{type:"primary",size:"large",loading:r.loading,onClick:r.handleLogin,class:"login-button"},{default:(0,l.k6)(()=>[(0,l.eW)((0,F.v_)(r.loading?"Signing in...":"Sign In"),1)]),_:1},8,["loading","onClick"])],32),t[6]||(t[6]=(0,l.Lk)("div",{class:"login-footer"},[(0,l.Lk)("p",null,"Only professors can access the admin panel.")],-1))])])}a(4114);var z=a(953),x=a(7731),W=a(2551),$={name:"AdminLogin",components:{User:x.A,Lock:W.A},setup(){const e=(0,g.Pj)(),t=(0,h.rd)(),a=(0,h.lq)(),s=(0,z.KR)(""),r=(0,z.KR)(""),o=(0,l.EW)(()=>e.getters["auth/isLoading"]),n=(0,l.EW)(()=>e.getters["auth/error"]),i=async()=>{if(!s.value||!r.value)return void window.ElMessage.warning("Please enter username and password");const o=await e.dispatch("auth/login",{username:s.value,password:r.value});if(o.success){window.ElMessage.success("Welcome to Admin Panel");const e=a.query.redirect||"/dashboard";t.push(e)}else window.ElMessage.error(o.error||"Login failed")};return{username:s,password:r,loading:o,error:n,handleLogin:i}}};const B=(0,c.A)($,[["render",N],["__scopeId","data-v-55e08b4a"]]);var j=B;const K={class:"dashboard"},G={class:"stats-grid"},M={class:"stat-card"},q={class:"stat-icon primary"},X={class:"stat-content"},Q={class:"stat-value"},H={class:"stat-card"},J={class:"stat-icon success"},Z={class:"stat-content"},Y={class:"stat-value"},ee={class:"stat-card"},te={class:"stat-icon info"},ae={class:"stat-content"},se={class:"stat-value"},re={class:"stat-card"},oe={class:"stat-icon warning"},ne={class:"stat-content"},le={class:"stat-value"},ie={class:"admin-card"},ue={class:"quick-actions"},de={class:"action-icon"},ce={class:"action-icon"},pe={class:"action-icon"},me={class:"action-icon"},he={class:"admin-card"},ge={class:"admin-card-header"},fe={key:0,class:"activity-list"},ve={class:"activity-icon"},be={class:"activity-content"},_e={class:"activity-text"},we={class:"activity-time"},ke={key:1,class:"empty-state"},Ee={class:"admin-card"},ye={class:"system-status"},Se={class:"status-item"},Le={class:"status-item"};function Ae(e,t,a,s,r,o){const n=(0,l.g2)("Users"),i=(0,l.g2)("GraduationCap"),u=(0,l.g2)("UserCog"),d=(0,l.g2)("Activity"),c=(0,l.g2)("UserPlus"),p=(0,l.g2)("router-link"),m=(0,l.g2)("Upload"),h=(0,l.g2)("FolderOpen"),g=(0,l.g2)("ClipboardCheck"),f=(0,l.g2)("AdminLayout");return(0,l.uX)(),(0,l.Wv)(f,null,{default:(0,l.k6)(()=>[(0,l.Lk)("div",K,[(0,l.Lk)("div",G,[(0,l.Lk)("div",M,[(0,l.Lk)("div",q,[(0,l.bF)(n,{size:28})]),(0,l.Lk)("div",X,[(0,l.Lk)("div",Q,(0,F.v_)(s.stats.totalUsers),1),t[1]||(t[1]=(0,l.Lk)("div",{class:"stat-label"},"Total Users",-1))])]),(0,l.Lk)("div",H,[(0,l.Lk)("div",J,[(0,l.bF)(i,{size:28})]),(0,l.Lk)("div",Z,[(0,l.Lk)("div",Y,(0,F.v_)(s.stats.students),1),t[2]||(t[2]=(0,l.Lk)("div",{class:"stat-label"},"Students",-1))])]),(0,l.Lk)("div",ee,[(0,l.Lk)("div",te,[(0,l.bF)(u,{size:28})]),(0,l.Lk)("div",ae,[(0,l.Lk)("div",se,(0,F.v_)(s.stats.professors),1),t[3]||(t[3]=(0,l.Lk)("div",{class:"stat-label"},"Professors",-1))])]),(0,l.Lk)("div",re,[(0,l.Lk)("div",oe,[(0,l.bF)(d,{size:28})]),(0,l.Lk)("div",ne,[(0,l.Lk)("div",le,(0,F.v_)(s.stats.activeSessions),1),t[4]||(t[4]=(0,l.Lk)("div",{class:"stat-label"},"Active Sessions",-1))])])]),(0,l.Lk)("div",ie,[t[9]||(t[9]=(0,l.Lk)("div",{class:"admin-card-header"},[(0,l.Lk)("h2",{class:"admin-card-title"},"Quick Actions")],-1)),(0,l.Lk)("div",ue,[(0,l.bF)(p,{to:"/users",class:"action-btn"},{default:(0,l.k6)(()=>[(0,l.Lk)("span",de,[(0,l.bF)(c,{size:32})]),t[5]||(t[5]=(0,l.Lk)("span",{class:"action-text"},"Create User",-1))]),_:1,__:[5]}),(0,l.Lk)("button",{class:"action-btn",onClick:t[0]||(t[0]=e=>s.showBulkImport=!0)},[(0,l.Lk)("span",ce,[(0,l.bF)(m,{size:32})]),t[6]||(t[6]=(0,l.Lk)("span",{class:"action-text"},"Bulk Import",-1))]),(0,l.bF)(p,{to:"/files",class:"action-btn"},{default:(0,l.k6)(()=>[(0,l.Lk)("span",pe,[(0,l.bF)(h,{size:32})]),t[7]||(t[7]=(0,l.Lk)("span",{class:"action-text"},"Browse Files",-1))]),_:1,__:[7]}),(0,l.bF)(p,{to:"/grading",class:"action-btn"},{default:(0,l.k6)(()=>[(0,l.Lk)("span",me,[(0,l.bF)(g,{size:32})]),t[8]||(t[8]=(0,l.Lk)("span",{class:"action-text"},"Grade Submissions",-1))]),_:1,__:[8]})])]),(0,l.Lk)("div",he,[(0,l.Lk)("div",ge,[t[11]||(t[11]=(0,l.Lk)("h2",{class:"admin-card-title"},"Recent Activity",-1)),(0,l.bF)(p,{to:"/audit",class:"view-all-link"},{default:(0,l.k6)(()=>t[10]||(t[10]=[(0,l.eW)("View All →",-1)])),_:1,__:[10]})]),s.recentActivity.length>0?((0,l.uX)(),(0,l.CE)("div",fe,[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(s.recentActivity,e=>((0,l.uX)(),(0,l.CE)("div",{key:e.id,class:"activity-item"},[(0,l.Lk)("span",ve,[((0,l.uX)(),(0,l.Wv)((0,l.$y)(s.getActivityIcon(e.action_type)),{size:20}))]),(0,l.Lk)("div",be,[(0,l.Lk)("span",_e,[(0,l.Lk)("strong",null,(0,F.v_)(e.admin_username),1),(0,l.eW)(" "+(0,F.v_)(s.formatActivityText(e)),1)]),(0,l.Lk)("span",we,(0,F.v_)(s.formatTime(e.created_at)),1)])]))),128))])):((0,l.uX)(),(0,l.CE)("div",ke,t[12]||(t[12]=[(0,l.Lk)("p",null,"No recent activity",-1)])))]),(0,l.Lk)("div",Ee,[t[17]||(t[17]=(0,l.Lk)("div",{class:"admin-card-header"},[(0,l.Lk)("h2",{class:"admin-card-title"},"System Status")],-1)),(0,l.Lk)("div",ye,[t[15]||(t[15]=(0,l.Lk)("div",{class:"status-item"},[(0,l.Lk)("span",{class:"status-label"},"Database"),(0,l.Lk)("span",{class:"status-value success"},"● Connected")],-1)),t[16]||(t[16]=(0,l.Lk)("div",{class:"status-item"},[(0,l.Lk)("span",{class:"status-label"},"File Storage"),(0,l.Lk)("span",{class:"status-value success"},"● Online")],-1)),(0,l.Lk)("div",Se,[t[13]||(t[13]=(0,l.Lk)("span",{class:"status-label"},"Memory Usage",-1)),(0,l.Lk)("span",{class:(0,F.C4)(["status-value",s.memoryStatusClass])},(0,F.v_)(s.stats.memoryPercent)+"% ",3)]),(0,l.Lk)("div",Le,[t[14]||(t[14]=(0,l.Lk)("span",{class:"status-label"},"CPU Usage",-1)),(0,l.Lk)("span",{class:(0,F.C4)(["status-value",s.cpuStatusClass])},(0,F.v_)(s.stats.cpuPercent)+"% ",3)])])])])]),_:1})}var Re=a(7424),Ue=a(6774),Te=a(5997),Fe=a(8065),Ce=a(1905),Oe=a(7396),Pe=a(5365),Ie=a(4829),Ve=a(7417),De=a(2404),Ne=a(5626),ze=a(461),xe=a(1769),We=a(1783),$e=a(5239),Be=a(3528),je=a(9992),Ke=a(605),Ge={name:"AdminDashboard",components:{AdminLayout:Re.A,Users:Ue.A,GraduationCap:Te.A,UserCog:Fe.A,Activity:Ce.A,UserPlus:Oe.A,Upload:Pe.A,FolderOpen:Ie.A,ClipboardCheck:Ve.A,KeyRound:De.A,LogIn:Ne.A,LogOut:ze.A,Pencil:xe.A,Trash2:We.A,Eye:$e.A,Download:Be.A,FileText:je.A,ClipboardList:Ke.A},setup(){(0,g.Pj)();const e=(0,z.KR)(!1),t=(0,z.KR)({totalUsers:0,students:0,professors:0,activeSessions:0,memoryPercent:0,cpuPercent:0}),a=(0,z.KR)([]),s=(0,l.EW)(()=>t.value.memoryPercent>80?"danger":t.value.memoryPercent>60?"warning":"success"),r=(0,l.EW)(()=>t.value.cpuPercent>80?"danger":t.value.cpuPercent>60?"warning":"success"),o=e=>{const t={admin_login:Ne.A,admin_logout:ze.A,create_user:Oe.A,update_user:xe.A,delete_user:We.A,reset_password:De.A,bulk_import_users:Pe.A,view_file:$e.A,download_file:Be.A,edit_file:xe.A,delete_file:We.A,grade_submission:Ve.A};return t[e]||Ke.A},n=e=>{const t={admin_login:"logged in",admin_logout:"logged out",create_user:`created user ${e.target_username||""}`,update_user:`updated user ${e.target_username||""}`,delete_user:`deleted user ${e.target_username||""}`,reset_password:`reset password for ${e.target_username||""}`,bulk_import_users:"imported users from CSV",view_file:`viewed ${e.target_path||"a file"}`,download_file:`downloaded ${e.target_path||"a file"}`,edit_file:`edited ${e.target_path||"a file"}`,delete_file:`deleted ${e.target_path||"a file"}`,grade_submission:"graded a submission"};return t[e.action_type]||e.action_type},i=e=>{if(!e)return"";const t=new Date(e),a=new Date,s=a-t;return s<6e4?"just now":s<36e5?`${Math.floor(s/6e4)}m ago`:s<864e5?`${Math.floor(s/36e5)}h ago`:t.toLocaleDateString()},u=async()=>{t.value={totalUsers:65,students:60,professors:5,activeSessions:12,memoryPercent:45,cpuPercent:23},a.value=[{id:1,admin_username:"sa9082",action_type:"reset_password",target_username:"jd1234",created_at:new Date(Date.now()-3e5).toISOString()},{id:2,admin_username:"sl7927",action_type:"create_user",target_username:"newstudent",created_at:new Date(Date.now()-36e5).toISOString()}]};return(0,l.sV)(()=>{u()}),{stats:t,recentActivity:a,showBulkImport:e,memoryStatusClass:s,cpuStatusClass:r,getActivityIcon:o,formatActivityText:n,formatTime:i}}};const Me=(0,c.A)(Ge,[["render",Ae],["__scopeId","data-v-6087adce"]]);var qe=Me,Xe=a(3693),Qe=a(3022),He=a(8135),Je=a(945),Ze=a(3671),Ye=a(6091),et=a(6735),tt=a(8062);const at={class:"users-page"},st={class:"toolbar"},rt={class:"toolbar-left"},ot={class:"search-box"},nt={class:"search-icon"},lt={class:"toolbar-right"},it={class:"admin-card"},ut={class:"pagination-wrapper"},dt={style:{"font-size":"18px","font-weight":"bold",margin:"10px 0"}},ct={key:0,class:"selected-file"};function pt(e,t,a,r,o,n){const i=(0,l.g2)("Search"),u=tt.P9,d=tt.AV,c=(0,l.g2)("Download"),p=R.S2,m=(0,l.g2)("Upload"),h=(0,l.g2)("FileSpreadsheet"),g=(0,l.g2)("UserPlus"),f=et.o8,v=(0,l.g2)("Pencil"),b=(0,l.g2)("KeyRound"),_=(0,l.g2)("Trash2"),w=R.fg,k=et.Up,E=Ye.aQ,y=T.WK,S=Ze.xE,L=Ze.US,A=Je.kZ,C=He.qi,O=U.KR,P=(0,l.g2)("Copy"),I=Qe.j5,V=(0,l.g2)("AdminLayout"),D=Xe.A;return(0,l.uX)(),(0,l.Wv)(V,null,{default:(0,l.k6)(()=>[(0,l.Lk)("div",at,[(0,l.Lk)("div",st,[(0,l.Lk)("div",rt,[(0,l.Lk)("div",ot,[(0,l.Lk)("span",nt,[(0,l.bF)(i,{size:18})]),(0,l.bo)((0,l.Lk)("input",{"onUpdate:modelValue":t[0]||(t[0]=e=>r.searchQuery=e),type:"text",placeholder:"Search users...",onInput:t[1]||(t[1]=(...e)=>r.handleSearch&&r.handleSearch(...e))},null,544),[[s.Jo,r.searchQuery]])]),(0,l.bF)(d,{modelValue:r.roleFilter,"onUpdate:modelValue":t[2]||(t[2]=e=>r.roleFilter=e),placeholder:"All Roles",onChange:r.handleFilterChange},{default:(0,l.k6)(()=>[(0,l.bF)(u,{label:"All Roles",value:""}),(0,l.bF)(u,{label:"Students",value:"student"}),(0,l.bF)(u,{label:"Professors",value:"professor"})]),_:1},8,["modelValue","onChange"]),(0,l.bF)(d,{modelValue:r.statusFilter,"onUpdate:modelValue":t[3]||(t[3]=e=>r.statusFilter=e),placeholder:"All Status",onChange:r.handleFilterChange},{default:(0,l.k6)(()=>[(0,l.bF)(u,{label:"All Status",value:""}),(0,l.bF)(u,{label:"Active",value:"active"}),(0,l.bF)(u,{label:"Inactive",value:"inactive"})]),_:1},8,["modelValue","onChange"])]),(0,l.Lk)("div",lt,[(0,l.bF)(p,{onClick:r.downloadTemplate},{default:(0,l.k6)(()=>[(0,l.bF)(c,{size:16}),t[28]||(t[28]=(0,l.eW)(" Template",-1))]),_:1,__:[28]},8,["onClick"]),(0,l.bF)(p,{onClick:t[4]||(t[4]=e=>r.showBulkImport=!0)},{default:(0,l.k6)(()=>[(0,l.bF)(m,{size:16}),t[29]||(t[29]=(0,l.eW)(" Bulk Import",-1))]),_:1,__:[29]}),(0,l.bF)(p,{onClick:r.exportUsers},{default:(0,l.k6)(()=>[(0,l.bF)(h,{size:16}),t[30]||(t[30]=(0,l.eW)(" Export",-1))]),_:1,__:[30]},8,["onClick"]),(0,l.bF)(p,{type:"primary",onClick:t[5]||(t[5]=e=>r.showCreateUser=!0)},{default:(0,l.k6)(()=>[(0,l.bF)(g,{size:16}),t[31]||(t[31]=(0,l.eW)(" Create User",-1))]),_:1,__:[31]})])]),(0,l.Lk)("div",it,[(0,l.bo)(((0,l.uX)(),(0,l.Wv)(k,{data:r.users,stripe:"",style:{width:"100%"},onSortChange:r.handleSortChange},{default:(0,l.k6)(()=>[(0,l.bF)(f,{prop:"username",label:"Username",sortable:"custom",width:"150"}),(0,l.bF)(f,{prop:"full_name",label:"Name",sortable:"custom","min-width":"150"}),(0,l.bF)(f,{prop:"email",label:"Email","min-width":"200"}),(0,l.bF)(f,{prop:"role",label:"Role",sortable:"custom",width:"120"},{default:(0,l.k6)(e=>[(0,l.Lk)("span",{class:(0,F.C4)(["badge","professor"===e.row.role?"badge-info":"badge-success"])},(0,F.v_)(e.row.role),3)]),_:1}),(0,l.bF)(f,{prop:"is_active",label:"Status",width:"100"},{default:(0,l.k6)(e=>[(0,l.Lk)("span",{class:(0,F.C4)(["badge",e.row.is_active?"badge-success":"badge-danger"])},(0,F.v_)(e.row.is_active?"Active":"Inactive"),3)]),_:1}),(0,l.bF)(f,{prop:"last_login",label:"Last Login",sortable:"custom",width:"150"},{default:(0,l.k6)(e=>[(0,l.eW)((0,F.v_)(r.formatDate(e.row.last_login)),1)]),_:1}),(0,l.bF)(f,{label:"Actions",width:"180",fixed:"right"},{default:(0,l.k6)(e=>[(0,l.bF)(w,null,{default:(0,l.k6)(()=>[(0,l.bF)(p,{size:"small",onClick:t=>r.editUser(e.row)},{default:(0,l.k6)(()=>[(0,l.bF)(v,{size:14})]),_:2},1032,["onClick"]),(0,l.bF)(p,{size:"small",onClick:t=>r.resetPasswordDialog(e.row)},{default:(0,l.k6)(()=>[(0,l.bF)(b,{size:14})]),_:2},1032,["onClick"]),(0,l.bF)(p,{size:"small",type:"danger",onClick:t=>r.confirmDeleteUser(e.row)},{default:(0,l.k6)(()=>[(0,l.bF)(_,{size:14})]),_:2},1032,["onClick"])]),_:2},1024)]),_:1})]),_:1},8,["data","onSortChange"])),[[D,r.loading]]),(0,l.Lk)("div",ut,[(0,l.bF)(E,{"current-page":r.currentPage,"onUpdate:currentPage":t[6]||(t[6]=e=>r.currentPage=e),"page-size":r.pageSize,"onUpdate:pageSize":t[7]||(t[7]=e=>r.pageSize=e),"page-sizes":[10,20,50,100],total:r.total,layout:"total, sizes, prev, pager, next",onSizeChange:r.handleSizeChange,onCurrentChange:r.handlePageChange},null,8,["current-page","page-size","total","onSizeChange","onCurrentChange"])])]),(0,l.bF)(A,{modelValue:r.showCreateUser,"onUpdate:modelValue":t[14]||(t[14]=e=>r.showCreateUser=e),title:"Create New User",width:"500px"},{footer:(0,l.k6)(()=>[(0,l.bF)(p,{onClick:t[13]||(t[13]=e=>r.showCreateUser=!1)},{default:(0,l.k6)(()=>t[32]||(t[32]=[(0,l.eW)("Cancel",-1)])),_:1,__:[32]}),(0,l.bF)(p,{type:"primary",onClick:r.createUser,loading:r.creating},{default:(0,l.k6)(()=>t[33]||(t[33]=[(0,l.eW)("Create",-1)])),_:1,__:[33]},8,["onClick","loading"])]),default:(0,l.k6)(()=>[(0,l.bF)(L,{model:r.newUser,"label-position":"top"},{default:(0,l.k6)(()=>[(0,l.bF)(S,{label:"Username",required:""},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.newUser.username,"onUpdate:modelValue":t[8]||(t[8]=e=>r.newUser.username=e),placeholder:"Enter username"},null,8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Password",required:""},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.newUser.password,"onUpdate:modelValue":t[9]||(t[9]=e=>r.newUser.password=e),type:"password",placeholder:"Enter password","show-password":""},null,8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Full Name"},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.newUser.full_name,"onUpdate:modelValue":t[10]||(t[10]=e=>r.newUser.full_name=e),placeholder:"Enter full name"},null,8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Email"},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.newUser.email,"onUpdate:modelValue":t[11]||(t[11]=e=>r.newUser.email=e),placeholder:"Enter email"},null,8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Role"},{default:(0,l.k6)(()=>[(0,l.bF)(d,{modelValue:r.newUser.role,"onUpdate:modelValue":t[12]||(t[12]=e=>r.newUser.role=e),style:{width:"100%"}},{default:(0,l.k6)(()=>[(0,l.bF)(u,{label:"Student",value:"student"}),(0,l.bF)(u,{label:"Professor",value:"professor"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),(0,l.bF)(A,{modelValue:r.showEditUser,"onUpdate:modelValue":t[20]||(t[20]=e=>r.showEditUser=e),title:"Edit User",width:"500px"},{footer:(0,l.k6)(()=>[(0,l.bF)(p,{onClick:t[19]||(t[19]=e=>r.showEditUser=!1)},{default:(0,l.k6)(()=>t[34]||(t[34]=[(0,l.eW)("Cancel",-1)])),_:1,__:[34]}),(0,l.bF)(p,{type:"primary",onClick:r.updateUser,loading:r.updating},{default:(0,l.k6)(()=>t[35]||(t[35]=[(0,l.eW)("Save Changes",-1)])),_:1,__:[35]},8,["onClick","loading"])]),default:(0,l.k6)(()=>[r.editingUser?((0,l.uX)(),(0,l.Wv)(L,{key:0,model:r.editingUser,"label-position":"top"},{default:(0,l.k6)(()=>[(0,l.bF)(S,{label:"Username"},{default:(0,l.k6)(()=>[(0,l.bF)(y,{value:r.editingUser.username,disabled:""},null,8,["value"])]),_:1}),(0,l.bF)(S,{label:"Full Name"},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.editingUser.full_name,"onUpdate:modelValue":t[15]||(t[15]=e=>r.editingUser.full_name=e),placeholder:"Enter full name"},null,8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Email"},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.editingUser.email,"onUpdate:modelValue":t[16]||(t[16]=e=>r.editingUser.email=e),placeholder:"Enter email"},null,8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Role"},{default:(0,l.k6)(()=>[(0,l.bF)(d,{modelValue:r.editingUser.role,"onUpdate:modelValue":t[17]||(t[17]=e=>r.editingUser.role=e),style:{width:"100%"}},{default:(0,l.k6)(()=>[(0,l.bF)(u,{label:"Student",value:"student"}),(0,l.bF)(u,{label:"Professor",value:"professor"})]),_:1},8,["modelValue"])]),_:1}),(0,l.bF)(S,{label:"Status"},{default:(0,l.k6)(()=>[(0,l.bF)(C,{modelValue:r.editingUser.is_active,"onUpdate:modelValue":t[18]||(t[18]=e=>r.editingUser.is_active=e),"active-text":"Active","inactive-text":"Inactive"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])):(0,l.Q3)("",!0)]),_:1},8,["modelValue"]),(0,l.bF)(A,{modelValue:r.showResetPassword,"onUpdate:modelValue":t[23]||(t[23]=e=>r.showResetPassword=e),title:"Reset Password",width:"400px"},{footer:(0,l.k6)(()=>[(0,l.bF)(p,{onClick:t[22]||(t[22]=e=>r.showResetPassword=!1)},{default:(0,l.k6)(()=>t[38]||(t[38]=[(0,l.eW)("Cancel",-1)])),_:1,__:[38]}),(0,l.bF)(p,{type:"primary",onClick:r.resetPassword,loading:r.resetting},{default:(0,l.k6)(()=>t[39]||(t[39]=[(0,l.eW)("Reset Password",-1)])),_:1,__:[39]},8,["onClick","loading"])]),default:(0,l.k6)(()=>[(0,l.Lk)("p",null,[t[36]||(t[36]=(0,l.eW)("Reset password for ",-1)),(0,l.Lk)("strong",null,(0,F.v_)(r.resetPasswordUser?.username),1),t[37]||(t[37]=(0,l.eW)("?",-1))]),(0,l.bF)(S,{label:"New Password (leave blank for random)"},{default:(0,l.k6)(()=>[(0,l.bF)(y,{modelValue:r.newPassword,"onUpdate:modelValue":t[21]||(t[21]=e=>r.newPassword=e),type:"password",placeholder:"Leave blank for random password","show-password":""},null,8,["modelValue"])]),_:1})]),_:1},8,["modelValue"]),(0,l.bF)(A,{modelValue:r.showPasswordResult,"onUpdate:modelValue":t[25]||(t[25]=e=>r.showPasswordResult=e),title:"Password Reset Complete",width:"400px"},{footer:(0,l.k6)(()=>[(0,l.bF)(p,{onClick:r.copyPassword},{default:(0,l.k6)(()=>[(0,l.bF)(P,{size:14}),t[41]||(t[41]=(0,l.eW)(" Copy",-1))]),_:1,__:[41]},8,["onClick"]),(0,l.bF)(p,{type:"primary",onClick:t[24]||(t[24]=e=>r.showPasswordResult=!1)},{default:(0,l.k6)(()=>t[42]||(t[42]=[(0,l.eW)("Done",-1)])),_:1,__:[42]})]),default:(0,l.k6)(()=>[(0,l.bF)(O,{title:"New Password",type:"success",closable:!1,"show-icon":""},{default:(0,l.k6)(()=>[(0,l.Lk)("p",dt,(0,F.v_)(r.generatedPassword),1),t[40]||(t[40]=(0,l.Lk)("p",{style:{color:"#999"}},"Please share this password with the user securely.",-1))]),_:1,__:[40]})]),_:1},8,["modelValue"]),(0,l.bF)(A,{modelValue:r.showBulkImport,"onUpdate:modelValue":t[27]||(t[27]=e=>r.showBulkImport=e),title:"Bulk Import Users",width:"500px"},{footer:(0,l.k6)(()=>[(0,l.bF)(p,{onClick:t[26]||(t[26]=e=>r.showBulkImport=!1)},{default:(0,l.k6)(()=>t[44]||(t[44]=[(0,l.eW)("Cancel",-1)])),_:1,__:[44]}),(0,l.bF)(p,{type:"primary",onClick:r.bulkImport,loading:r.importing,disabled:!r.importFile},{default:(0,l.k6)(()=>t[45]||(t[45]=[(0,l.eW)(" Import Users ",-1)])),_:1,__:[45]},8,["onClick","loading","disabled"])]),default:(0,l.k6)(()=>[t[46]||(t[46]=(0,l.Lk)("div",{class:"import-info"},[(0,l.Lk)("p",null,"Upload a CSV file with the following columns:"),(0,l.Lk)("ul",null,[(0,l.Lk)("li",null,[(0,l.Lk)("strong",null,"username"),(0,l.eW)(" (required)")]),(0,l.Lk)("li",null,[(0,l.Lk)("strong",null,"password"),(0,l.eW)(" (required)")]),(0,l.Lk)("li",null,"full_name (optional)"),(0,l.Lk)("li",null,"email (optional)"),(0,l.Lk)("li",null,'role (optional, defaults to "student")')])],-1)),(0,l.bF)(I,{ref:"uploadRef","auto-upload":!1,limit:1,accept:".csv","on-change":r.handleFileChange},{trigger:(0,l.k6)(()=>[(0,l.bF)(p,null,{default:(0,l.k6)(()=>t[43]||(t[43]=[(0,l.eW)("Select CSV File",-1)])),_:1,__:[43]})]),_:1},8,["on-change"]),r.importFile?((0,l.uX)(),(0,l.CE)("div",ct," Selected: "+(0,F.v_)(r.importFile.name),1)):(0,l.Q3)("",!0)]),_:1,__:[46]},8,["modelValue"])])]),_:1})}var mt=a(1028),ht=a(617),gt=a(513),ft=a(6763),vt={name:"UsersPage",components:{AdminLayout:Re.A,Search:mt.A,Download:Be.A,Upload:Pe.A,FileSpreadsheet:ht.A,UserPlus:Oe.A,Pencil:xe.A,KeyRound:De.A,Trash2:We.A,Copy:gt.A},setup(){const e=(0,g.Pj)(),t=(0,z.KR)(""),a=(0,z.KR)(""),s=(0,z.KR)(""),r=(0,z.KR)(1),o=(0,z.KR)(20),n=((0,z.KR)("username"),(0,z.KR)("asc"),(0,z.KR)(!1)),i=(0,z.KR)(!1),u=(0,z.KR)(!1),d=(0,z.KR)(!1),c=(0,z.KR)(!1),p=(0,z.KR)({username:"",password:"",full_name:"",email:"",role:"student"}),m=(0,z.KR)(null),h=(0,z.KR)(null),f=(0,z.KR)(""),v=(0,z.KR)(""),b=(0,z.KR)(null),_=(0,z.KR)(!1),w=(0,z.KR)(!1),k=(0,z.KR)(!1),E=(0,z.KR)(!1),y=(0,l.EW)(()=>e.getters["users/users"]),L=(0,l.EW)(()=>e.getters["users/total"]),A=(0,l.EW)(()=>e.getters["users/isLoading"]),R=(0,l.EW)(()=>e.getters["auth/token"]),U=()=>{e.dispatch("users/fetchUsers")},T=()=>{e.dispatch("users/setFilters",{search:t.value})},F=()=>{e.dispatch("users/setFilters",{role:a.value,status:s.value})},C=({prop:t,order:a})=>{t&&a&&e.dispatch("users/setSort",{sortBy:t,sortOrder:"ascending"===a?"asc":"desc"})},O=t=>{e.dispatch("users/setPage",t)},P=t=>{e.commit("users/SET_LIMIT",t),e.commit("users/SET_PAGE",1),U()},I=e=>{if(!e)return"Never";const t=new Date(e);return t.toLocaleDateString()+" "+t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})},V=async()=>{if(!p.value.username||!p.value.password)return void window.ElMessage.warning("Username and password are required");_.value=!0;const t=await e.dispatch("users/createUser",p.value);_.value=!1,t.success?(window.ElMessage.success("User created successfully"),n.value=!1,p.value={username:"",password:"",full_name:"",email:"",role:"student"}):window.ElMessage.error(t.error||"Failed to create user")},D=e=>{m.value={...e},i.value=!0},N=async()=>{if(!m.value)return;w.value=!0;const t=await e.dispatch("users/updateUser",{userId:m.value.id,userData:{full_name:m.value.full_name,email:m.value.email,role:m.value.role,is_active:m.value.is_active}});w.value=!1,t.success?(window.ElMessage.success("User updated successfully"),i.value=!1,U()):window.ElMessage.error(t.error||"Failed to update user")},x=e=>{h.value=e,f.value="",u.value=!0},W=async()=>{if(!h.value)return;k.value=!0;const t=await e.dispatch("users/resetPassword",{userId:h.value.id,newPassword:f.value||null});k.value=!1,t.success?(v.value=t.newPassword,u.value=!1,d.value=!0):window.ElMessage.error(t.error||"Failed to reset password")},$=()=>{navigator.clipboard.writeText(v.value),window.ElMessage.success("Password copied to clipboard")},B=t=>{window.ElMessageBox.confirm(`Are you sure you want to delete user "${t.username}"? This action cannot be undone.`,"Confirm Delete",{confirmButtonText:"Delete",cancelButtonText:"Cancel",type:"warning"}).then(async()=>{const a=await e.dispatch("users/deleteUser",t.id);a.success?window.ElMessage.success("User deleted successfully"):window.ElMessage.error(a.error||"Failed to delete user")}).catch(()=>{})},j=e=>{b.value=e.raw},K=async()=>{if(!b.value)return;E.value=!0;const t=await e.dispatch("users/bulkImport",b.value);E.value=!1,t.success?(window.ElMessage.success(`Imported ${t.created} users. ${t.failed} failed.`),c.value=!1,b.value=null,t.errors?.length>0&&ft.warn("Import errors:",t.errors)):window.ElMessage.error(t.error||"Import failed")},G=async()=>{try{const e=await S.downloadTemplate(R.value),t=window.URL.createObjectURL(e),a=document.createElement("a");a.href=t,a.download="user_import_template.csv",a.click(),window.URL.revokeObjectURL(t)}catch(e){window.ElMessage.error("Failed to download template")}},M=async()=>{try{const e=await S.exportUsers(R.value,{search:t.value,role:a.value,status:s.value}),r=window.URL.createObjectURL(e),o=document.createElement("a");o.href=r,o.download=`users_export_${(new Date).toISOString().split("T")[0]}.csv`,o.click(),window.URL.revokeObjectURL(r)}catch(e){window.ElMessage.error("Failed to export users")}};return(0,l.sV)(()=>{U()}),(0,l.wB)(r,e=>{O(e)}),{searchQuery:t,roleFilter:a,statusFilter:s,currentPage:r,pageSize:o,users:y,total:L,loading:A,showCreateUser:n,showEditUser:i,showResetPassword:u,showPasswordResult:d,showBulkImport:c,newUser:p,editingUser:m,resetPasswordUser:h,newPassword:f,generatedPassword:v,importFile:b,creating:_,updating:w,resetting:k,importing:E,handleSearch:T,handleFilterChange:F,handleSortChange:C,handlePageChange:O,handleSizeChange:P,formatDate:I,createUser:V,editUser:D,updateUser:N,resetPasswordDialog:x,resetPassword:W,copyPassword:$,confirmDeleteUser:B,handleFileChange:j,bulkImport:K,downloadTemplate:G,exportUsers:M}}};const bt=(0,c.A)(vt,[["render",pt],["__scopeId","data-v-156869a3"]]);var _t=bt;const wt=[{path:"/login",name:"Login",component:j,meta:{requiresAuth:!1}},{path:"/",redirect:"/dashboard"},{path:"/dashboard",name:"Dashboard",component:qe,meta:{requiresAuth:!0}},{path:"/users",name:"Users",component:_t,meta:{requiresAuth:!0}},{path:"/users/:id",name:"UserDetail",component:()=>a.e(404).then(a.bind(a,6404)),meta:{requiresAuth:!0}},{path:"/files",name:"FileBrowser",component:()=>a.e(408).then(a.bind(a,3408)),meta:{requiresAuth:!0}},{path:"/grading",name:"Grading",component:()=>a.e(541).then(a.bind(a,4541)),meta:{requiresAuth:!0}},{path:"/analytics",name:"Analytics",component:()=>a.e(953).then(a.bind(a,3334)),meta:{requiresAuth:!0}},{path:"/audit",name:"AuditLog",component:()=>a.e(400).then(a.bind(a,400)),meta:{requiresAuth:!0}},{path:"/settings",name:"Settings",component:()=>a.e(768).then(a.bind(a,9768)),meta:{requiresAuth:!0}},{path:"/:pathMatch(.*)*",redirect:"/dashboard"}],kt=(0,h.aE)({history:(0,h.LA)("/"),routes:wt});kt.beforeEach(async(e,t,a)=>{const s=!1!==e.meta.requiresAuth;if(s){const t=await A.dispatch("auth/checkSession");if(!t)return void a({name:"Login",query:{redirect:e.fullPath}})}if("Login"===e.name){const e=await A.dispatch("auth/checkSession");if(e)return void a({name:"Dashboard"})}a()});var Et=kt;const yt=(0,s.Ef)(m);yt.use(Et),yt.use(A),yt.use(r.A),window.ElMessage=o.nk,window.ElMessageBox=n.s,yt.mount("#app")},7424:function(e,t,a){a.d(t,{A:function(){return $}});var s=a(641),r=a(33);const o={class:"admin-layout"},n={class:"admin-header"},l={class:"page-title"},i={class:"header-actions"},u={class:"welcome-text"},d={class:"admin-content"};function c(e,t,a,c,p,m){const h=(0,s.g2)("Sidebar");return(0,s.uX)(),(0,s.CE)("div",o,[(0,s.bF)(h,{collapsed:c.sidebarCollapsed},null,8,["collapsed"]),(0,s.Lk)("main",{class:(0,r.C4)(["admin-main",{"sidebar-collapsed":c.sidebarCollapsed}])},[(0,s.Lk)("header",n,[(0,s.Lk)("button",{class:"toggle-sidebar",onClick:t[0]||(t[0]=(...e)=>c.toggleSidebar&&c.toggleSidebar(...e))},(0,r.v_)(c.sidebarCollapsed?"☰":"◀"),1),(0,s.Lk)("h1",l,(0,r.v_)(c.pageTitle),1),(0,s.Lk)("div",i,[(0,s.Lk)("span",u,"Welcome, "+(0,r.v_)(c.fullName),1)])]),(0,s.Lk)("div",d,[(0,s.RG)(e.$slots,"default",{},void 0,!0)])],2)])}var p=a(953),m=a(6278),h=a(5220);const g={class:"sidebar-logo"},f={key:0,class:"logo-text"},v={class:"sidebar-nav"},b={key:0,class:"nav-text"},_={class:"sidebar-footer"},w={key:0,class:"user-info"},k={class:"user-name"},E={class:"user-role"},y=["title"],S={key:0,class:"nav-text"};function L(e,t,a,o,n,l){const i=(0,s.g2)("Shield"),u=(0,s.g2)("router-link"),d=(0,s.g2)("LogOut");return(0,s.uX)(),(0,s.CE)("aside",{class:(0,r.C4)(["admin-sidebar",{collapsed:a.collapsed}])},[(0,s.Lk)("div",g,[(0,s.bF)(i,{class:"logo-icon",size:24}),a.collapsed?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("span",f,"Admin Panel"))]),(0,s.Lk)("nav",v,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(o.navItems,e=>((0,s.uX)(),(0,s.Wv)(u,{key:e.path,to:e.path,class:(0,r.C4)(["nav-item",{active:o.isActive(e.path)}])},{default:(0,s.k6)(()=>[((0,s.uX)(),(0,s.Wv)((0,s.$y)(e.icon),{class:"nav-icon",size:20})),a.collapsed?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("span",b,(0,r.v_)(e.label),1))]),_:2},1032,["to","class"]))),128))]),(0,s.Lk)("div",_,[a.collapsed?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("div",w,[(0,s.Lk)("div",k,(0,r.v_)(o.fullName),1),(0,s.Lk)("div",E,(0,r.v_)(o.role),1)])),(0,s.Lk)("button",{class:"logout-btn",onClick:t[0]||(t[0]=(...e)=>o.handleLogout&&o.handleLogout(...e)),title:a.collapsed?"Logout":""},[(0,s.bF)(d,{class:"nav-icon",size:20}),a.collapsed?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("span",S,"Logout"))],8,y)])],2)}a(4114);var A=a(4563),R=a(6774),U=a(4829),T=a(7417),F=a(5297),C=a(9992),O=a(9037),P=a(461),I=a(4449),V={name:"AdminSidebar",components:{LayoutDashboard:A.A,Users:R.A,FolderOpen:U.A,ClipboardCheck:T.A,BarChart3:F.A,FileText:C.A,Settings:O.A,LogOut:P.A,Shield:I.A},props:{collapsed:{type:Boolean,default:!1}},setup(){const e=(0,m.Pj)(),t=(0,h.rd)(),a=(0,h.lq)(),r=[{path:"/dashboard",label:"Dashboard",icon:"LayoutDashboard"},{path:"/users",label:"Users",icon:"Users"},{path:"/files",label:"File Browser",icon:"FolderOpen"},{path:"/grading",label:"Grading",icon:"ClipboardCheck"},{path:"/analytics",label:"Analytics",icon:"BarChart3"},{path:"/audit",label:"Audit Log",icon:"FileText"},{path:"/settings",label:"Settings",icon:"Settings"}],o=(0,s.EW)(()=>e.getters["auth/fullName"]),n=(0,s.EW)(()=>e.getters["auth/user"]?.role||"professor"),l=e=>a.path===e||a.path.startsWith(e+"/"),i=async()=>{await e.dispatch("auth/logout"),t.push("/login")};return{navItems:r,fullName:o,role:n,isActive:l,handleLogout:i}}},D=a(6262);const N=(0,D.A)(V,[["render",L],["__scopeId","data-v-1b06d4f8"]]);var z=N,x={name:"AdminLayout",components:{Sidebar:z},setup(){const e=(0,m.Pj)(),t=(0,h.lq)(),a=(0,p.KR)(!1),r=(0,s.EW)(()=>e.getters["auth/fullName"]),o={"/dashboard":"Dashboard","/users":"User Management","/files":"File Browser","/grading":"Grading","/analytics":"Analytics","/audit":"Audit Log","/settings":"Settings"},n=(0,s.EW)(()=>{const e=t.path;return o[e]||"Admin Panel"}),l=()=>{a.value=!a.value};return{sidebarCollapsed:a,fullName:r,pageTitle:n,toggleSidebar:l}}};const W=(0,D.A)(x,[["render",c],["__scopeId","data-v-41cc9b25"]]);var $=W}},t={};function a(s){var r=t[s];if(void 0!==r)return r.exports;var o=t[s]={exports:{}};return e[s].call(o.exports,o,o.exports,a),o.exports}a.m=e,function(){var e=[];a.O=function(t,s,r,o){if(!s){var n=1/0;for(d=0;d=o)&&Object.keys(a.O).every(function(e){return a.O[e](s[i])})?s.splice(i--,1):(l=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[s,r,o]}}(),function(){a.d=function(e,t){for(var s in t)a.o(t,s)&&!a.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}}(),function(){a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce(function(t,s){return a.f[s](e,t),t},[]))}}(),function(){a.u=function(e){return"static/js/"+e+"."+{400:"62cbf8d1",404:"3a7d4f0e",408:"3f8d925e",541:"ecb0fa6e",768:"0fe5bb7b",953:"ad598ece"}[e]+".js"}}(),function(){a.miniCssF=function(e){return"static/css/"+e+"."+{400:"9fb7b61e",404:"7b84b1b7",408:"496ddb71",541:"db3e8857",768:"6c9ce803",953:"f894a2d4"}[e]+".css"}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="vm.web.ide:";a.l=function(s,r,o,n){if(e[s])e[s].push(r);else{var l,i;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;de.id===t.id);o||e.ideInfo.consoleItems.push(t)},selectConsoleItem(e,t){const o=e.ideInfo.consoleItems.find(e=>e.id===t);o&&(e.ideInfo.consoleSelected=o)},handleProjects(e,t){e.ideInfo.projList=t.map(e=>"string"===typeof e?{name:e,lastAccessTime:0}:e);const o=localStorage.getItem("username");let n=null;if(o&&(n=e.ideInfo.projList.find(e=>e.name===`Local/${o}`)),!n){let t=0;for(var s=0;st&&(t=e.ideInfo.projList[s].lastAccessTime,n=e.ideInfo.projList[s])}!n&&e.ideInfo.projList.length>0&&(n=e.ideInfo.projList[0]),n&&(e.ideInfo.currProj.config.name=n.name)},handleProject(e,t){const o=e=>{!e.label&&e.name&&(e.label=e.name),e.uuid||(e.uuid=e.path||e.name||Math.random().toString(36)),e.children&&e.children.forEach(e=>o(e))},n=[...e.ideInfo.currProj.expandedKeys||[]];e.ideInfo.currProj.config=t.config||{},o(t),e.ideInfo.currProj.data=t,e.ideInfo.currProj.pathSelected=e.ideInfo.currProj.config.selectFilePath,void 0!==t.config&&void 0!==t.config.expendKeys?(e.ideInfo.currProj.expandedKeys=t.config.expendKeys.filter(e=>null!==e),e.ideInfo.currProj.expandedKeys.sort()):e.ideInfo.currProj.expandedKeys=n,e.ideInfo.currProj.pathSelected&&e.ideInfo.treeRef&&(e.ideInfo.nodeSelected=e.ideInfo.treeRef.getCurrentNode())},refreshProject(e,t){const o=e=>{!e.label&&e.name&&(e.label=e.name),e.uuid||(e.uuid=e.path||e.name||Math.random().toString(36)),e.children&&e.children.forEach(e=>o(e))},n=[...e.ideInfo.currProj.expandedKeys||[]],s=e.ideInfo.currProj.pathSelected;o(t),e.ideInfo.currProj.data=t,e.ideInfo.currProj.expandedKeys=n,e.ideInfo.currProj.pathSelected=s,t.config&&(e.ideInfo.currProj.config={...e.ideInfo.currProj.config,...t.config})},handleMultipleProjects(e,t){e.ideInfo.allProjects=t;const o={label:"Projects",path:"/",type:"root",uuid:"root",children:[]},n=(e,t)=>{e.projectName=t,!e.label&&e.name&&(e.label=e.name),e.uuid||(e.uuid=e.path||e.name||Math.random().toString(36)),"/"!==e.path&&e.path!==t||(e.uuid=`${t}_root`),e.children&&e.children.forEach(e=>n(e,t))};t.forEach(e=>{if(e){const t=JSON.parse(JSON.stringify(e));n(t,e.name),t.isProjectRoot=!0,o.children.push(t)}}),e.ideInfo.multiRootData=o},handleDelProject(e,t){for(var o=0;o0?s[0].path:"");const i=[];for(let a=0;a=c){const t=e.ideInfo.codeItems.shift();s.log(`Tab limit (${c}) reached. Closed "${t.name}" to open new file.`),"undefined"!==typeof window&&window.ElMessage&&window.ElMessage({type:"warning",message:`Tab limit (${c}) reached. Closed "${t.name}" to open new file.`,duration:3e3})}e.ideInfo.codeItems.push({name:i.basename(t),content:o,path:t,projectName:r,codemirror:null,isMedia:a||!1}),e.ideInfo.currProj.pathSelected=t,e.ideInfo.codeSelected=e.ideInfo.codeItems[e.ideInfo.codeItems.length-1],e.ideInfo.treeRef&&(e.ideInfo.treeRef.setCurrentKey(e.ideInfo.currProj.pathSelected),e.ideInfo.nodeSelected=e.ideInfo.treeRef.getCurrentNode())},handleDelFile(e,{parentData:t,filePath:o}){for(let n=0;n0?e.ideInfo.currProj.pathSelected=e.ideInfo.codeItems[n-1].path:n{if(e.path=i.join(t,e.name),e.uuid=e.path,"dir"===e.type&&e.children)for(let n=0;n3e4&&e.ideInfo.consoleItems[o].resultList.splice(0,100);const n=`${t.data.stdout}`;if(e.ideInfo.consoleItems[o].isReplMode&&n.includes(">>> ")){const t=n.split(">>> ");t[0]&&e.ideInfo.consoleItems[o].resultList.push({type:"text",text:t[0]}),e.ideInfo.consoleItems[o].resultList.push({type:"repl-prompt",text:">>> "}),e.ideInfo.consoleItems[o].waitingForReplInput=!0}else e.ideInfo.consoleItems[o].resultList.push(n);break}else if(2e3===t.code){s.log("[FRONTEND-INPUT-DEBUG] *** RECEIVED INPUT REQUEST!",t),s.log("[FRONTEND-INPUT-DEBUG] Data:",t.data),s.log("[FRONTEND-INPUT-DEBUG] Prompt:",t.data?.prompt);for(let o=0;o\n Matplotlib Figure\n \n \n

    \n \n CS3 IDE
    \ No newline at end of file +Admin Panel - Python IDE
    \ No newline at end of file diff --git a/docker-compose.admin.yml b/docker-compose.admin.yml new file mode 100644 index 00000000..a0b3bf87 --- /dev/null +++ b/docker-compose.admin.yml @@ -0,0 +1,52 @@ +version: '3.8' + +# Admin Panel Docker Compose for Local Development +# Usage: docker-compose -f docker-compose.admin.yml up -d --build + +services: + # Local PostgreSQL for development + postgres: + image: postgres:15.7-alpine + container_name: pythonide-admin-db + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: pythonide + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5432:5432" + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 + + # Admin Panel Service + admin: + build: + context: . + dockerfile: Dockerfile.admin + container_name: pythonide-admin + ports: + - "10087:8080" # Different port from main IDE (10086) + environment: + DATABASE_URL: postgresql://postgres:postgres@postgres:5432/pythonide + IDE_SECRET_KEY: admin-secret-key-change-in-production + ADMIN_SESSION_SECRET: admin-session-secret-change-in-production + IDE_DATA_PATH: /app/server/projects + IS_ADMIN_MODE: "true" + TORNADO_PROCESSES: 1 + volumes: + # Share the same user files volume as main IDE + - user_files:/app/server/projects/ide + - ./server/migrations:/app/server/migrations + depends_on: + postgres: + condition: service_healthy + restart: unless-stopped + +volumes: + postgres_data: + user_files: diff --git a/docker-compose.full.yml b/docker-compose.full.yml new file mode 100644 index 00000000..ab2a4f84 --- /dev/null +++ b/docker-compose.full.yml @@ -0,0 +1,81 @@ +version: '3.8' + +# Full Local Development Setup: Main IDE + Admin Panel + PostgreSQL +# Usage: docker-compose -f docker-compose.full.yml up -d --build +# +# Access: +# - Main IDE: http://localhost:10086 +# - Admin Panel: http://localhost:10087 +# - PostgreSQL: localhost:5432 + +services: + # PostgreSQL Database (shared between IDE and Admin) + postgres: + image: postgres:15.7-alpine + container_name: pythonide-db + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: pythonide + volumes: + - postgres_data:/var/lib/postgresql/data + ports: + - "5432:5432" + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + interval: 10s + timeout: 5s + retries: 5 + + # Main IDE Service + pythonide: + build: + context: . + dockerfile: Dockerfile + container_name: pythonide-app + ports: + - "10086:8080" + environment: + DATABASE_URL: postgresql://postgres:postgres@postgres:5432/pythonide + IDE_SECRET_KEY: local-dev-secret-key + IDE_DATA_PATH: /app/server/projects + MAX_CONCURRENT_EXECUTIONS: 60 + EXECUTION_TIMEOUT: 60 + MEMORY_LIMIT_MB: 128 + TORNADO_PROCESSES: 1 + volumes: + - user_files:/app/server/projects/ide + - ./server/migrations:/app/server/migrations + depends_on: + postgres: + condition: service_healthy + restart: unless-stopped + + # Admin Panel Service + admin: + build: + context: . + dockerfile: Dockerfile.admin + container_name: pythonide-admin + ports: + - "10087:8080" + environment: + DATABASE_URL: postgresql://postgres:postgres@postgres:5432/pythonide + IDE_SECRET_KEY: local-dev-secret-key + ADMIN_SESSION_SECRET: admin-session-secret + IDE_DATA_PATH: /app/server/projects + IS_ADMIN_MODE: "true" + TORNADO_PROCESSES: 1 + volumes: + # Share the same user files volume as main IDE + - user_files:/app/server/projects/ide + - ./server/migrations:/app/server/migrations + depends_on: + postgres: + condition: service_healthy + restart: unless-stopped + +volumes: + postgres_data: + user_files: diff --git a/package.json b/package.json index 13b43cb3..1bd5390b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,10 @@ "private": true, "scripts": { "serve": "vue-cli-service serve", - "build": "vue-cli-service build" + "serve:admin": "BUILD_TARGET=admin vue-cli-service serve", + "build": "vue-cli-service build", + "build:admin": "BUILD_TARGET=admin vue-cli-service build", + "build:all": "npm run build && npm run build:admin" }, "dependencies": { "@element-plus/icons": "^0.0.11", diff --git a/public/admin.html b/public/admin.html new file mode 100644 index 00000000..c7d81efd --- /dev/null +++ b/public/admin.html @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + +
    + + + diff --git a/server/auth/admin_session_manager.py b/server/auth/admin_session_manager.py new file mode 100644 index 00000000..eb543374 --- /dev/null +++ b/server/auth/admin_session_manager.py @@ -0,0 +1,268 @@ +""" +Admin Session Manager +Handles authentication and session management for the admin panel. +Separate from main IDE sessions for security isolation. +""" + +import bcrypt +import secrets +import logging +import os +import sys +from datetime import datetime, timedelta + +# Add parent directory to path +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from common.database import db_manager + +logger = logging.getLogger(__name__) + + +class AdminSessionManager: + """Manages admin panel sessions (separate from main IDE sessions)""" + + def __init__(self): + self.db = db_manager + self.session_duration_hours = 24 + + def authenticate_admin(self, username: str, password: str, ip_address: str = None, user_agent: str = None): + """ + Authenticate admin user (must be professor role). + + Args: + username: Admin username + password: Admin password + ip_address: Client IP address (for logging) + user_agent: Client user agent (for logging) + + Returns: + tuple: (session_data, error_message) + """ + try: + # Get user from database + query = """ + SELECT id, username, password_hash, full_name, role, email + FROM users + WHERE username = %s AND is_active = true + """ + users = self.db.execute_query(query, (username,)) + + if not users: + self._log_login_attempt(None, ip_address, user_agent, success=False) + return None, "Invalid username or password" + + user = users[0] + + # Verify password + if not bcrypt.checkpw(password.encode(), user["password_hash"].encode()): + self._log_login_attempt(user["id"], ip_address, user_agent, success=False) + return None, "Invalid username or password" + + # Check if user is a professor (admin access) + if user["role"] != "professor": + self._log_login_attempt(user["id"], ip_address, user_agent, success=False) + return None, "Access denied. Admin privileges required." + + # Invalidate any existing admin sessions for this user (single session) + self._invalidate_user_admin_sessions(user["id"]) + + # Create new admin session + token = secrets.token_urlsafe(32) + expires_at = datetime.now() + timedelta(hours=self.session_duration_hours) + + session_query = """ + INSERT INTO admin_sessions (user_id, token, expires_at, ip_address, user_agent) + VALUES (%s, %s, %s, %s, %s) + RETURNING id + """ + result = self.db.execute_query( + session_query, + (user["id"], token, expires_at, ip_address, user_agent) + ) + + # Log successful login + self._log_login_attempt(user["id"], ip_address, user_agent, success=True, login_type="admin") + + logger.info(f"Admin login successful for user: {username}") + + return { + "user_id": user["id"], + "username": user["username"], + "full_name": user["full_name"], + "email": user["email"], + "role": user["role"], + "token": token, + "expires_at": expires_at.isoformat() + }, None + + except Exception as e: + logger.error(f"Admin authentication error: {e}") + return None, "Authentication failed. Please try again." + + def validate_admin_session(self, token: str): + """ + Validate an admin session token. + + Args: + token: Session token to validate + + Returns: + dict: User data if valid, None otherwise + """ + try: + query = """ + SELECT s.*, u.username, u.full_name, u.email, u.role + FROM admin_sessions s + JOIN users u ON s.user_id = u.id + WHERE s.token = %s AND s.is_active = true AND s.expires_at > %s + """ + sessions = self.db.execute_query(query, (token, datetime.now())) + + if not sessions: + return None + + session = sessions[0] + + # Verify user is still a professor + if session["role"] != "professor": + self._invalidate_session(token) + return None + + return { + "user_id": session["user_id"], + "username": session["username"], + "full_name": session["full_name"], + "email": session["email"], + "role": session["role"] + } + + except Exception as e: + logger.error(f"Admin session validation error: {e}") + return None + + def logout(self, token: str): + """ + Invalidate an admin session (logout). + + Args: + token: Session token to invalidate + + Returns: + bool: True if successful + """ + try: + # Get session details for logging + session = self.validate_admin_session(token) + if session: + # Log logout time + self._log_logout(session["user_id"]) + + self._invalidate_session(token) + logger.info(f"Admin logout successful") + return True + + except Exception as e: + logger.error(f"Admin logout error: {e}") + return False + + def renew_session(self, token: str): + """ + Extend admin session expiration (sliding window). + + Args: + token: Session token to renew + + Returns: + dict: New expiration time or error + """ + try: + session = self.validate_admin_session(token) + if not session: + return {"success": False, "error": "Invalid session"} + + new_expires_at = datetime.now() + timedelta(hours=self.session_duration_hours) + + query = """ + UPDATE admin_sessions + SET expires_at = %s + WHERE token = %s AND is_active = true + """ + self.db.execute_query(query, (new_expires_at, token)) + + return { + "success": True, + "expires_at": new_expires_at.isoformat() + } + + except Exception as e: + logger.error(f"Admin session renewal error: {e}") + return {"success": False, "error": "Failed to renew session"} + + def _invalidate_session(self, token: str): + """Invalidate a specific session""" + query = "UPDATE admin_sessions SET is_active = false WHERE token = %s" + self.db.execute_query(query, (token,)) + + def _invalidate_user_admin_sessions(self, user_id: int): + """Invalidate all admin sessions for a user""" + query = "UPDATE admin_sessions SET is_active = false WHERE user_id = %s AND is_active = true" + self.db.execute_query(query, (user_id,)) + + def _log_login_attempt(self, user_id: int, ip_address: str, user_agent: str, + success: bool, login_type: str = "admin"): + """Log a login attempt to login_history table""" + try: + query = """ + INSERT INTO login_history (user_id, ip_address, user_agent, success, login_type) + VALUES (%s, %s, %s, %s, %s) + """ + self.db.execute_query(query, (user_id, ip_address, user_agent, success, login_type)) + except Exception as e: + logger.error(f"Failed to log login attempt: {e}") + + def _log_logout(self, user_id: int): + """Update logout time for the most recent login""" + try: + query = """ + UPDATE login_history + SET logout_time = %s + WHERE id = ( + SELECT id FROM login_history + WHERE user_id = %s AND logout_time IS NULL + ORDER BY login_time DESC + LIMIT 1 + ) + """ + self.db.execute_query(query, (datetime.now(), user_id)) + except Exception as e: + logger.error(f"Failed to log logout: {e}") + + def cleanup_expired_sessions(self): + """Remove expired admin sessions (called periodically)""" + try: + query = """ + UPDATE admin_sessions + SET is_active = false + WHERE expires_at < %s AND is_active = true + """ + self.db.execute_query(query, (datetime.now(),)) + except Exception as e: + logger.error(f"Failed to cleanup expired admin sessions: {e}") + + def get_active_admin_sessions_count(self): + """Get count of active admin sessions""" + try: + query = """ + SELECT COUNT(*) as count + FROM admin_sessions + WHERE is_active = true AND expires_at > %s + """ + result = self.db.execute_query(query, (datetime.now(),)) + return result[0]["count"] if result else 0 + except Exception as e: + logger.error(f"Failed to get active admin sessions count: {e}") + return 0 + + +# Global instance +admin_session_manager = AdminSessionManager() diff --git a/server/handlers/admin/__init__.py b/server/handlers/admin/__init__.py new file mode 100644 index 00000000..3188e78f --- /dev/null +++ b/server/handlers/admin/__init__.py @@ -0,0 +1,24 @@ +""" +Admin Panel API Handlers +All handlers for the admin panel (admin.pythonide-classroom.tech) +""" + +from .auth_handler import AdminAuthHandler, AdminSessionHandler +from .users_handler import AdminUsersHandler, AdminUserDetailHandler, AdminBulkImportHandler + +# Collect all admin handlers for registration +def get_admin_handlers(): + """Return list of admin handler routes for registration in server.py""" + return [ + # Authentication + (r"/api/admin/auth/login", AdminAuthHandler), + (r"/api/admin/auth/logout", AdminAuthHandler), + (r"/api/admin/auth/session", AdminSessionHandler), + + # User Management + (r"/api/admin/users", AdminUsersHandler), + (r"/api/admin/users/([0-9]+)", AdminUserDetailHandler), + (r"/api/admin/users/([0-9]+)/reset-password", AdminUserDetailHandler), + (r"/api/admin/users/bulk-import", AdminBulkImportHandler), + (r"/api/admin/users/export", AdminUsersHandler), + ] diff --git a/server/handlers/admin/auth_handler.py b/server/handlers/admin/auth_handler.py new file mode 100644 index 00000000..56127590 --- /dev/null +++ b/server/handlers/admin/auth_handler.py @@ -0,0 +1,229 @@ +""" +Admin Authentication Handler +Handles admin login, logout, and session validation. +""" + +import json +import logging +import os +import sys + +from tornado.web import RequestHandler + +# Add parent directory to path +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from auth.admin_session_manager import admin_session_manager +from utils.audit_logger import log_admin_action, AuditActionType + +logger = logging.getLogger(__name__) + + +class BaseAdminHandler(RequestHandler): + """Base handler for admin API endpoints with common functionality""" + + def set_default_headers(self): + self.set_header("Content-Type", "application/json") + self.set_header("Access-Control-Allow-Origin", "*") + self.set_header("Access-Control-Allow-Headers", "Content-Type, Authorization") + self.set_header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS") + + def options(self, *args, **kwargs): + self.set_status(204) + self.finish() + + def get_client_ip(self): + """Get client IP address (considering proxies)""" + x_forwarded_for = self.request.headers.get("X-Forwarded-For") + if x_forwarded_for: + return x_forwarded_for.split(",")[0].strip() + x_real_ip = self.request.headers.get("X-Real-IP") + if x_real_ip: + return x_real_ip + return self.request.remote_ip + + def get_user_agent(self): + """Get client user agent""" + return self.request.headers.get("User-Agent", "") + + def get_auth_token(self): + """Extract token from Authorization header""" + auth_header = self.request.headers.get("Authorization", "") + if auth_header.startswith("Bearer "): + return auth_header[7:] + return None + + def validate_admin_session(self): + """ + Validate admin session from Authorization header. + Returns user data if valid, None otherwise. + """ + token = self.get_auth_token() + if not token: + return None + return admin_session_manager.validate_admin_session(token) + + def require_admin(self): + """ + Require valid admin session. Returns user data or sends 401 response. + """ + user = self.validate_admin_session() + if not user: + self.set_status(401) + self.write({"success": False, "error": "Unauthorized. Please log in."}) + return None + return user + + def write_error_response(self, status_code, error_message): + """Write a standard error response""" + self.set_status(status_code) + self.write({"success": False, "error": error_message}) + + def write_success_response(self, data=None): + """Write a standard success response""" + response = {"success": True} + if data: + response.update(data) + self.write(response) + + +class AdminAuthHandler(BaseAdminHandler): + """Handle admin login and logout""" + + async def post(self): + """Handle login or logout based on path""" + path = self.request.path + + if path.endswith("/login"): + await self._handle_login() + elif path.endswith("/logout"): + await self._handle_logout() + else: + self.write_error_response(404, "Not found") + + async def _handle_login(self): + """Process admin login request""" + try: + # Parse request body + try: + data = json.loads(self.request.body.decode()) + except json.JSONDecodeError: + self.write_error_response(400, "Invalid JSON") + return + + username = data.get("username", "").strip() + password = data.get("password", "") + + if not username or not password: + self.write_error_response(400, "Username and password are required") + return + + # Authenticate + ip_address = self.get_client_ip() + user_agent = self.get_user_agent() + + session_data, error = admin_session_manager.authenticate_admin( + username=username, + password=password, + ip_address=ip_address, + user_agent=user_agent + ) + + if error: + self.write_error_response(401, error) + return + + # Log successful login + log_admin_action( + admin_user_id=session_data["user_id"], + action_type=AuditActionType.ADMIN_LOGIN, + details={"ip_address": ip_address}, + ip_address=ip_address + ) + + self.write_success_response({ + "token": session_data["token"], + "user": { + "id": session_data["user_id"], + "username": session_data["username"], + "full_name": session_data["full_name"], + "email": session_data["email"], + "role": session_data["role"] + }, + "expires_at": session_data["expires_at"] + }) + + except Exception as e: + logger.error(f"Admin login error: {e}") + self.write_error_response(500, "Internal server error") + + async def _handle_logout(self): + """Process admin logout request""" + try: + user = self.validate_admin_session() + token = self.get_auth_token() + + if user and token: + # Log logout before invalidating + log_admin_action( + admin_user_id=user["user_id"], + action_type=AuditActionType.ADMIN_LOGOUT, + ip_address=self.get_client_ip() + ) + + admin_session_manager.logout(token) + + self.write_success_response({"message": "Logged out successfully"}) + + except Exception as e: + logger.error(f"Admin logout error: {e}") + self.write_error_response(500, "Internal server error") + + +class AdminSessionHandler(BaseAdminHandler): + """Handle admin session validation and renewal""" + + async def get(self): + """Validate current session""" + try: + user = self.validate_admin_session() + + if not user: + self.write_error_response(401, "Invalid or expired session") + return + + self.write_success_response({ + "valid": True, + "user": { + "id": user["user_id"], + "username": user["username"], + "full_name": user["full_name"], + "email": user["email"], + "role": user["role"] + } + }) + + except Exception as e: + logger.error(f"Session validation error: {e}") + self.write_error_response(500, "Internal server error") + + async def post(self): + """Renew session (extend expiration)""" + try: + token = self.get_auth_token() + if not token: + self.write_error_response(401, "No session token provided") + return + + result = admin_session_manager.renew_session(token) + + if result.get("success"): + self.write_success_response({ + "expires_at": result["expires_at"], + "message": "Session renewed successfully" + }) + else: + self.write_error_response(401, result.get("error", "Failed to renew session")) + + except Exception as e: + logger.error(f"Session renewal error: {e}") + self.write_error_response(500, "Internal server error") diff --git a/server/handlers/admin/users_handler.py b/server/handlers/admin/users_handler.py new file mode 100644 index 00000000..c7a38c14 --- /dev/null +++ b/server/handlers/admin/users_handler.py @@ -0,0 +1,597 @@ +""" +Admin Users Handler +Handles user CRUD operations, bulk import, and password management. +""" + +import json +import logging +import os +import sys +import csv +import io +import bcrypt +from datetime import datetime + +from tornado.web import RequestHandler + +# Add parent directory to path +sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) +from common.database import db_manager +from common.file_storage import file_storage +from auth.admin_session_manager import admin_session_manager +from utils.audit_logger import log_admin_action, AuditActionType +from utils.password_generator import PasswordGenerator +from handlers.admin.auth_handler import BaseAdminHandler + +logger = logging.getLogger(__name__) + + +class AdminUsersHandler(BaseAdminHandler): + """Handle user listing, creation, and export""" + + async def get(self): + """Get list of users with pagination and filtering""" + try: + admin = self.require_admin() + if not admin: + return + + # Parse query parameters + page = int(self.get_query_argument("page", "1")) + limit = int(self.get_query_argument("limit", "20")) + search = self.get_query_argument("search", "").strip() + role = self.get_query_argument("role", "").strip() + status = self.get_query_argument("status", "").strip() + sort_by = self.get_query_argument("sort_by", "username") + sort_order = self.get_query_argument("sort_order", "asc") + export_csv = self.get_query_argument("export", "").lower() == "true" + + # Validate sort parameters + valid_sort_columns = ["username", "full_name", "email", "role", "created_at", "last_login"] + if sort_by not in valid_sort_columns: + sort_by = "username" + if sort_order not in ["asc", "desc"]: + sort_order = "asc" + + # Build query + conditions = [] + params = [] + + if search: + conditions.append( + "(username ILIKE %s OR full_name ILIKE %s OR email ILIKE %s)" + ) + search_pattern = f"%{search}%" + params.extend([search_pattern, search_pattern, search_pattern]) + + if role in ["student", "professor"]: + conditions.append("role = %s") + params.append(role) + + if status == "active": + conditions.append("is_active = true") + elif status == "inactive": + conditions.append("is_active = false") + + where_clause = " AND ".join(conditions) if conditions else "1=1" + + # Get total count + count_query = f"SELECT COUNT(*) as total FROM users WHERE {where_clause}" + count_result = db_manager.execute_query(count_query, tuple(params)) + total = count_result[0]["total"] if count_result else 0 + + # Handle CSV export + if export_csv: + return await self._export_users_csv(where_clause, params, sort_by, sort_order) + + # Get paginated results + offset = (page - 1) * limit + query = f""" + SELECT id, username, full_name, email, role, is_active, created_at, last_login + FROM users + WHERE {where_clause} + ORDER BY {sort_by} {sort_order} + LIMIT %s OFFSET %s + """ + params.extend([limit, offset]) + users = db_manager.execute_query(query, tuple(params)) + + # Format response + users_list = [] + for user in users: + users_list.append({ + "id": user["id"], + "username": user["username"], + "full_name": user["full_name"], + "email": user["email"], + "role": user["role"], + "is_active": user["is_active"], + "created_at": user["created_at"].isoformat() if user["created_at"] else None, + "last_login": user["last_login"].isoformat() if user["last_login"] else None + }) + + self.write_success_response({ + "users": users_list, + "total": total, + "page": page, + "limit": limit, + "pages": (total + limit - 1) // limit + }) + + except Exception as e: + logger.error(f"Get users error: {e}") + self.write_error_response(500, "Internal server error") + + async def post(self): + """Create a new user""" + try: + admin = self.require_admin() + if not admin: + return + + # Parse request body + try: + data = json.loads(self.request.body.decode()) + except json.JSONDecodeError: + self.write_error_response(400, "Invalid JSON") + return + + username = data.get("username", "").strip() + password = data.get("password", "") + full_name = data.get("full_name", "").strip() + email = data.get("email", "").strip() + role = data.get("role", "student").strip() + + # Validate required fields + if not username: + self.write_error_response(400, "Username is required") + return + + if not password: + self.write_error_response(400, "Password is required") + return + + if role not in ["student", "professor"]: + self.write_error_response(400, "Role must be 'student' or 'professor'") + return + + # Generate email if not provided + if not email: + email = f"{username}@college.edu" + + # Check if username already exists + check_query = "SELECT id FROM users WHERE username = %s" + existing = db_manager.execute_query(check_query, (username,)) + if existing: + self.write_error_response(409, f"Username '{username}' already exists") + return + + # Hash password + password_hash = bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode("utf-8") + + # Create user + insert_query = """ + INSERT INTO users (username, email, password_hash, full_name, role) + VALUES (%s, %s, %s, %s, %s) + RETURNING id + """ + result = db_manager.execute_query( + insert_query, + (username, email, password_hash, full_name or username, role) + ) + + if not result: + self.write_error_response(500, "Failed to create user") + return + + user_id = result[0]["id"] + + # Create user directory + try: + file_storage.create_user_directories(username, full_name or username) + except Exception as e: + logger.error(f"Failed to create user directory: {e}") + + # Log action + log_admin_action( + admin_user_id=admin["user_id"], + action_type=AuditActionType.CREATE_USER, + target_user_id=user_id, + details={"username": username, "role": role}, + ip_address=self.get_client_ip() + ) + + self.write_success_response({ + "user": { + "id": user_id, + "username": username, + "full_name": full_name or username, + "email": email, + "role": role + }, + "message": f"User '{username}' created successfully" + }) + + except Exception as e: + logger.error(f"Create user error: {e}") + self.write_error_response(500, "Internal server error") + + async def _export_users_csv(self, where_clause, params, sort_by, sort_order): + """Export users as CSV download""" + try: + query = f""" + SELECT username, full_name, email, role, is_active, created_at, last_login + FROM users + WHERE {where_clause} + ORDER BY {sort_by} {sort_order} + """ + users = db_manager.execute_query(query, tuple(params)) + + # Build CSV + output = io.StringIO() + writer = csv.writer(output) + writer.writerow(["username", "full_name", "email", "role", "is_active", "created_at", "last_login"]) + + for user in users: + writer.writerow([ + user["username"], + user["full_name"], + user["email"], + user["role"], + "active" if user["is_active"] else "inactive", + user["created_at"].isoformat() if user["created_at"] else "", + user["last_login"].isoformat() if user["last_login"] else "" + ]) + + csv_content = output.getvalue() + output.close() + + # Set response headers for download + self.set_header("Content-Type", "text/csv") + self.set_header("Content-Disposition", f"attachment; filename=users_export_{datetime.now().strftime('%Y%m%d_%H%M%S')}.csv") + self.write(csv_content) + + except Exception as e: + logger.error(f"Export users CSV error: {e}") + self.write_error_response(500, "Failed to export users") + + +class AdminUserDetailHandler(BaseAdminHandler): + """Handle single user operations: get, update, delete, reset password""" + + async def get(self, user_id): + """Get user details""" + try: + admin = self.require_admin() + if not admin: + return + + query = """ + SELECT id, username, full_name, email, role, is_active, created_at, last_login + FROM users + WHERE id = %s + """ + users = db_manager.execute_query(query, (int(user_id),)) + + if not users: + self.write_error_response(404, "User not found") + return + + user = users[0] + self.write_success_response({ + "user": { + "id": user["id"], + "username": user["username"], + "full_name": user["full_name"], + "email": user["email"], + "role": user["role"], + "is_active": user["is_active"], + "created_at": user["created_at"].isoformat() if user["created_at"] else None, + "last_login": user["last_login"].isoformat() if user["last_login"] else None + } + }) + + except Exception as e: + logger.error(f"Get user detail error: {e}") + self.write_error_response(500, "Internal server error") + + async def put(self, user_id): + """Update user details""" + try: + admin = self.require_admin() + if not admin: + return + + # Parse request body + try: + data = json.loads(self.request.body.decode()) + except json.JSONDecodeError: + self.write_error_response(400, "Invalid JSON") + return + + # Build update query dynamically + updates = [] + params = [] + + if "full_name" in data: + updates.append("full_name = %s") + params.append(data["full_name"].strip()) + + if "email" in data: + updates.append("email = %s") + params.append(data["email"].strip()) + + if "role" in data and data["role"] in ["student", "professor"]: + updates.append("role = %s") + params.append(data["role"]) + + if "is_active" in data: + updates.append("is_active = %s") + params.append(bool(data["is_active"])) + + if not updates: + self.write_error_response(400, "No valid fields to update") + return + + params.append(int(user_id)) + query = f"UPDATE users SET {', '.join(updates)} WHERE id = %s RETURNING username" + + result = db_manager.execute_query(query, tuple(params)) + + if not result: + self.write_error_response(404, "User not found") + return + + # Log action + log_admin_action( + admin_user_id=admin["user_id"], + action_type=AuditActionType.UPDATE_USER, + target_user_id=int(user_id), + details={"updated_fields": list(data.keys())}, + ip_address=self.get_client_ip() + ) + + self.write_success_response({ + "message": f"User '{result[0]['username']}' updated successfully" + }) + + except Exception as e: + logger.error(f"Update user error: {e}") + self.write_error_response(500, "Internal server error") + + async def delete(self, user_id): + """Delete a user""" + try: + admin = self.require_admin() + if not admin: + return + + # Get user info before deleting + query = "SELECT username FROM users WHERE id = %s" + users = db_manager.execute_query(query, (int(user_id),)) + + if not users: + self.write_error_response(404, "User not found") + return + + username = users[0]["username"] + + # Prevent deleting self + if admin["user_id"] == int(user_id): + self.write_error_response(400, "Cannot delete your own account") + return + + # Delete user + delete_query = "DELETE FROM users WHERE id = %s" + db_manager.execute_query(delete_query, (int(user_id),)) + + # Log action + log_admin_action( + admin_user_id=admin["user_id"], + action_type=AuditActionType.DELETE_USER, + target_user_id=int(user_id), + details={"username": username}, + ip_address=self.get_client_ip() + ) + + self.write_success_response({ + "message": f"User '{username}' deleted successfully" + }) + + except Exception as e: + logger.error(f"Delete user error: {e}") + self.write_error_response(500, "Internal server error") + + async def post(self, user_id): + """Handle POST operations like reset-password""" + path = self.request.path + + if path.endswith("/reset-password"): + await self._reset_password(user_id) + else: + self.write_error_response(404, "Not found") + + async def _reset_password(self, user_id): + """Reset user password""" + try: + admin = self.require_admin() + if not admin: + return + + # Parse optional new password from body + new_password = None + if self.request.body: + try: + data = json.loads(self.request.body.decode()) + new_password = data.get("new_password") + except json.JSONDecodeError: + pass + + # Generate password if not provided + if not new_password: + generator = PasswordGenerator() + new_password = generator.generate_password(length=12) + + # Get user info + query = "SELECT username FROM users WHERE id = %s" + users = db_manager.execute_query(query, (int(user_id),)) + + if not users: + self.write_error_response(404, "User not found") + return + + username = users[0]["username"] + + # Hash and update password + password_hash = bcrypt.hashpw(new_password.encode(), bcrypt.gensalt()).decode("utf-8") + update_query = "UPDATE users SET password_hash = %s WHERE id = %s" + db_manager.execute_query(update_query, (password_hash, int(user_id))) + + # Invalidate all sessions for this user + invalidate_query = "UPDATE sessions SET is_active = false WHERE user_id = %s" + db_manager.execute_query(invalidate_query, (int(user_id),)) + + # Log action + log_admin_action( + admin_user_id=admin["user_id"], + action_type=AuditActionType.RESET_PASSWORD, + target_user_id=int(user_id), + details={"username": username}, + ip_address=self.get_client_ip() + ) + + self.write_success_response({ + "new_password": new_password, + "message": f"Password reset for '{username}'. User will need to log in again." + }) + + except Exception as e: + logger.error(f"Reset password error: {e}") + self.write_error_response(500, "Internal server error") + + +class AdminBulkImportHandler(BaseAdminHandler): + """Handle bulk user import from CSV""" + + async def get(self): + """Download CSV template""" + try: + admin = self.require_admin() + if not admin: + return + + template = "username,password,full_name,email,role\njd1234,temp123,John Doe,jd1234@college.edu,student\n" + + self.set_header("Content-Type", "text/csv") + self.set_header("Content-Disposition", "attachment; filename=user_import_template.csv") + self.write(template) + + except Exception as e: + logger.error(f"Download template error: {e}") + self.write_error_response(500, "Internal server error") + + async def post(self): + """Import users from CSV""" + try: + admin = self.require_admin() + if not admin: + return + + # Check for file upload + if "file" not in self.request.files: + # Try to parse CSV from body + try: + csv_content = self.request.body.decode() + except: + self.write_error_response(400, "No file uploaded") + return + else: + file_info = self.request.files["file"][0] + csv_content = file_info["body"].decode() + + # Parse CSV + reader = csv.DictReader(io.StringIO(csv_content)) + + created = 0 + failed = 0 + errors = [] + + for row_num, row in enumerate(reader, start=2): # Start at 2 (header is row 1) + try: + # Normalize column names (handle variations) + username = (row.get("username") or row.get("Username") or "").strip() + password = (row.get("password") or row.get("Password") or "").strip() + full_name = (row.get("full_name") or row.get("name") or row.get("Name") or "").strip() + email = (row.get("email") or row.get("Email") or "").strip() + role = (row.get("role") or row.get("Role") or "student").strip().lower() + + if not username: + errors.append({"row": row_num, "error": "Username is required"}) + failed += 1 + continue + + if not password: + errors.append({"row": row_num, "username": username, "error": "Password is required"}) + failed += 1 + continue + + if role not in ["student", "professor"]: + role = "student" + + if not email: + email = f"{username}@college.edu" + + if not full_name: + full_name = username + + # Check if user exists + check_query = "SELECT id FROM users WHERE username = %s" + existing = db_manager.execute_query(check_query, (username,)) + if existing: + errors.append({"row": row_num, "username": username, "error": "Username already exists"}) + failed += 1 + continue + + # Create user + password_hash = bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode("utf-8") + insert_query = """ + INSERT INTO users (username, email, password_hash, full_name, role) + VALUES (%s, %s, %s, %s, %s) + RETURNING id + """ + result = db_manager.execute_query( + insert_query, + (username, email, password_hash, full_name, role) + ) + + if result: + # Create user directory + try: + file_storage.create_user_directories(username, full_name) + except Exception as e: + logger.error(f"Failed to create directory for {username}: {e}") + + created += 1 + + except Exception as e: + errors.append({"row": row_num, "error": str(e)}) + failed += 1 + + # Log action + log_admin_action( + admin_user_id=admin["user_id"], + action_type=AuditActionType.BULK_IMPORT_USERS, + details={"created": created, "failed": failed}, + ip_address=self.get_client_ip() + ) + + self.write_success_response({ + "created": created, + "failed": failed, + "errors": errors[:20], # Limit errors in response + "message": f"Imported {created} users, {failed} failed" + }) + + except Exception as e: + logger.error(f"Bulk import error: {e}") + self.write_error_response(500, "Internal server error") diff --git a/server/migrations/migration_manager.py b/server/migrations/migration_manager.py index 5488720e..b9b29ad1 100644 --- a/server/migrations/migration_manager.py +++ b/server/migrations/migration_manager.py @@ -95,6 +95,11 @@ def get_pending_migrations(self) -> List[Tuple[str, str]]: ("004_add_filename_column", self._migration_004_filename), ("005_add_missing_columns", self._migration_005_missing_columns), ("006_fix_null_filenames", self._migration_006_fix_null_filenames), + ("007_admin_sessions", self._migration_007_admin_sessions), + ("008_admin_audit_log", self._migration_008_admin_audit_log), + ("009_login_history", self._migration_009_login_history), + ("010_file_access_log", self._migration_010_file_access_log), + ("011_execution_log", self._migration_011_execution_log), ] for name, migration_func in migration_definitions: @@ -296,17 +301,112 @@ def _migration_006_fix_null_filenames(self) -> str: """Fix any NULL filename values that may exist""" return """ -- Update any NULL filename values by extracting from path - UPDATE files - SET filename = - CASE - WHEN path LIKE '%/%' THEN + UPDATE files + SET filename = + CASE + WHEN path LIKE '%/%' THEN substring(path from '[^/]*$') - ELSE + ELSE path END WHERE filename IS NULL; """ + def _migration_007_admin_sessions(self) -> str: + """Create admin sessions table (separate from main IDE sessions)""" + return """ + CREATE TABLE IF NOT EXISTS admin_sessions ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id) ON DELETE CASCADE, + token VARCHAR(255) UNIQUE NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + expires_at TIMESTAMP, + ip_address VARCHAR(45), + user_agent TEXT, + is_active BOOLEAN DEFAULT true + ); + + CREATE INDEX IF NOT EXISTS idx_admin_sessions_token ON admin_sessions(token); + CREATE INDEX IF NOT EXISTS idx_admin_sessions_user ON admin_sessions(user_id); + CREATE INDEX IF NOT EXISTS idx_admin_sessions_active ON admin_sessions(is_active); + """ + + def _migration_008_admin_audit_log(self) -> str: + """Create admin audit log table for tracking all admin actions""" + return """ + CREATE TABLE IF NOT EXISTS admin_audit_log ( + id SERIAL PRIMARY KEY, + admin_user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + action_type VARCHAR(50) NOT NULL, + target_user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + target_path VARCHAR(500), + details JSONB, + ip_address VARCHAR(45), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ); + + CREATE INDEX IF NOT EXISTS idx_audit_admin_user ON admin_audit_log(admin_user_id); + CREATE INDEX IF NOT EXISTS idx_audit_target_user ON admin_audit_log(target_user_id); + CREATE INDEX IF NOT EXISTS idx_audit_action_type ON admin_audit_log(action_type); + CREATE INDEX IF NOT EXISTS idx_audit_created_at ON admin_audit_log(created_at); + """ + + def _migration_009_login_history(self) -> str: + """Create login history table for tracking user logins""" + return """ + CREATE TABLE IF NOT EXISTS login_history ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id) ON DELETE CASCADE, + login_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + logout_time TIMESTAMP, + ip_address VARCHAR(45), + user_agent TEXT, + success BOOLEAN DEFAULT true, + login_type VARCHAR(20) DEFAULT 'ide' + ); + + CREATE INDEX IF NOT EXISTS idx_login_user ON login_history(user_id); + CREATE INDEX IF NOT EXISTS idx_login_time ON login_history(login_time); + CREATE INDEX IF NOT EXISTS idx_login_success ON login_history(success); + """ + + def _migration_010_file_access_log(self) -> str: + """Create file access log table for tracking file operations""" + return """ + CREATE TABLE IF NOT EXISTS file_access_log ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + file_path VARCHAR(500) NOT NULL, + action VARCHAR(20) NOT NULL, + accessed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + details JSONB + ); + + CREATE INDEX IF NOT EXISTS idx_file_access_user ON file_access_log(user_id); + CREATE INDEX IF NOT EXISTS idx_file_access_path ON file_access_log(file_path); + CREATE INDEX IF NOT EXISTS idx_file_access_time ON file_access_log(accessed_at); + CREATE INDEX IF NOT EXISTS idx_file_access_action ON file_access_log(action); + """ + + def _migration_011_execution_log(self) -> str: + """Create execution log table for tracking code executions""" + return """ + CREATE TABLE IF NOT EXISTS execution_log ( + id SERIAL PRIMARY KEY, + user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + file_path VARCHAR(500), + execution_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + duration_ms INTEGER, + exit_code INTEGER, + stdout_preview TEXT, + stderr_preview TEXT + ); + + CREATE INDEX IF NOT EXISTS idx_execution_user ON execution_log(user_id); + CREATE INDEX IF NOT EXISTS idx_execution_time ON execution_log(execution_time); + CREATE INDEX IF NOT EXISTS idx_execution_exit_code ON execution_log(exit_code); + """ + def run_auto_migrations(database_url: str) -> bool: """Entry point for automatic migrations""" diff --git a/server/server.py b/server/server.py index 7e19a18f..5af07a2d 100644 --- a/server/server.py +++ b/server/server.py @@ -25,7 +25,8 @@ ForgotPasswordHandler, ResetPasswordHandler, ) -from handlers.admin_handler import get_admin_handlers +from handlers.admin_handler import get_admin_handlers as get_legacy_admin_handlers +from handlers.admin import get_admin_handlers as get_new_admin_handlers from handlers.migration_handler import get_migration_handler # TEMPORARY - REMOVE AFTER MIGRATION from handlers.upload_handler import UploadFileHandler from handlers.bulk_upload_handler import BulkUploadHandler @@ -283,7 +284,8 @@ def main(): (r"/api/bulk-upload", BulkUploadHandler), (r"/api/get-all-students", StudentListHandler), (r"/static/(.*)", StaticFileHandler, {"path": static_path}), # Serve static files (CSS, JS, etc) - *get_admin_handlers(), # Admin password management endpoints + *get_legacy_admin_handlers(), # Legacy admin password management endpoints + *get_new_admin_handlers(), # New admin panel endpoints (for admin.pythonide-classroom.tech) get_migration_handler(), # TEMPORARY migration endpoint - REMOVE AFTER USE (r"^.*$", VueHandler), ] diff --git a/server/utils/audit_logger.py b/server/utils/audit_logger.py new file mode 100644 index 00000000..c0e48883 --- /dev/null +++ b/server/utils/audit_logger.py @@ -0,0 +1,369 @@ +""" +Audit Logger Utility +Centralized logging for all admin actions to provide complete audit trail. +""" + +import json +import logging +import os +import sys +from datetime import datetime +from typing import Optional, Dict, Any + +# Add parent directory to path +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from common.database import db_manager + +logger = logging.getLogger(__name__) + + +class AuditActionType: + """Constants for audit action types""" + # User management + CREATE_USER = "create_user" + UPDATE_USER = "update_user" + DELETE_USER = "delete_user" + RESET_PASSWORD = "reset_password" + BULK_IMPORT_USERS = "bulk_import_users" + BULK_RESET_PASSWORDS = "bulk_reset_passwords" + ACTIVATE_USER = "activate_user" + DEACTIVATE_USER = "deactivate_user" + + # Session management + ADMIN_LOGIN = "admin_login" + ADMIN_LOGOUT = "admin_logout" + + # File operations + VIEW_FILE = "view_file" + DOWNLOAD_FILE = "download_file" + EDIT_FILE = "edit_file" + DELETE_FILE = "delete_file" + SEARCH_FILES = "search_files" + + # Grading + GRADE_SUBMISSION = "grade_submission" + BULK_GRADE = "bulk_grade" + EXPORT_GRADES = "export_grades" + + # Analytics + VIEW_ANALYTICS = "view_analytics" + EXPORT_AUDIT_LOG = "export_audit_log" + + +class AuditLogger: + """Centralized audit logging for admin actions""" + + def __init__(self): + self.db = db_manager + + def log_action( + self, + admin_user_id: int, + action_type: str, + target_user_id: Optional[int] = None, + target_path: Optional[str] = None, + details: Optional[Dict[str, Any]] = None, + ip_address: Optional[str] = None + ) -> bool: + """ + Log an admin action to the audit log. + + Args: + admin_user_id: ID of the admin performing the action + action_type: Type of action (use AuditActionType constants) + target_user_id: ID of the user being affected (if applicable) + target_path: File path being affected (if applicable) + details: Additional details as JSON + ip_address: IP address of the admin + + Returns: + bool: True if logged successfully + """ + try: + query = """ + INSERT INTO admin_audit_log + (admin_user_id, action_type, target_user_id, target_path, details, ip_address) + VALUES (%s, %s, %s, %s, %s, %s) + """ + self.db.execute_query( + query, + ( + admin_user_id, + action_type, + target_user_id, + target_path, + json.dumps(details) if details else None, + ip_address + ) + ) + logger.debug(f"Audit logged: {action_type} by user {admin_user_id}") + return True + + except Exception as e: + logger.error(f"Failed to log audit action: {e}") + return False + + def get_audit_logs( + self, + page: int = 1, + limit: int = 50, + action_type: Optional[str] = None, + admin_user_id: Optional[int] = None, + target_user_id: Optional[int] = None, + start_date: Optional[datetime] = None, + end_date: Optional[datetime] = None + ) -> Dict[str, Any]: + """ + Get audit logs with filtering and pagination. + + Args: + page: Page number (1-based) + limit: Number of records per page + action_type: Filter by action type + admin_user_id: Filter by admin who performed action + target_user_id: Filter by target user + start_date: Filter by start date + end_date: Filter by end date + + Returns: + dict: Paginated audit logs with metadata + """ + try: + # Build WHERE clause + conditions = [] + params = [] + + if action_type: + conditions.append("a.action_type = %s") + params.append(action_type) + + if admin_user_id: + conditions.append("a.admin_user_id = %s") + params.append(admin_user_id) + + if target_user_id: + conditions.append("a.target_user_id = %s") + params.append(target_user_id) + + if start_date: + conditions.append("a.created_at >= %s") + params.append(start_date) + + if end_date: + conditions.append("a.created_at <= %s") + params.append(end_date) + + where_clause = " AND ".join(conditions) if conditions else "1=1" + + # Get total count + count_query = f""" + SELECT COUNT(*) as total + FROM admin_audit_log a + WHERE {where_clause} + """ + count_result = self.db.execute_query(count_query, tuple(params)) + total = count_result[0]["total"] if count_result else 0 + + # Get paginated results + offset = (page - 1) * limit + query = f""" + SELECT + a.id, + a.action_type, + a.target_path, + a.details, + a.ip_address, + a.created_at, + admin_u.id as admin_user_id, + admin_u.username as admin_username, + admin_u.full_name as admin_full_name, + target_u.id as target_user_id, + target_u.username as target_username, + target_u.full_name as target_full_name + FROM admin_audit_log a + LEFT JOIN users admin_u ON a.admin_user_id = admin_u.id + LEFT JOIN users target_u ON a.target_user_id = target_u.id + WHERE {where_clause} + ORDER BY a.created_at DESC + LIMIT %s OFFSET %s + """ + params.extend([limit, offset]) + logs = self.db.execute_query(query, tuple(params)) + + # Format results + formatted_logs = [] + for log in logs: + formatted_logs.append({ + "id": log["id"], + "action_type": log["action_type"], + "admin_user": { + "id": log["admin_user_id"], + "username": log["admin_username"], + "full_name": log["admin_full_name"] + } if log["admin_user_id"] else None, + "target_user": { + "id": log["target_user_id"], + "username": log["target_username"], + "full_name": log["target_full_name"] + } if log["target_user_id"] else None, + "target_path": log["target_path"], + "details": json.loads(log["details"]) if log["details"] else None, + "ip_address": log["ip_address"], + "created_at": log["created_at"].isoformat() if log["created_at"] else None + }) + + return { + "success": True, + "logs": formatted_logs, + "total": total, + "page": page, + "limit": limit, + "pages": (total + limit - 1) // limit + } + + except Exception as e: + logger.error(f"Failed to get audit logs: {e}") + return {"success": False, "error": str(e)} + + def get_user_activity(self, user_id: int, limit: int = 100) -> Dict[str, Any]: + """ + Get all audit log entries related to a specific user + (as admin or as target). + + Args: + user_id: User ID to get activity for + limit: Maximum number of records + + Returns: + dict: User activity logs + """ + try: + query = """ + SELECT + a.id, + a.action_type, + a.target_path, + a.details, + a.ip_address, + a.created_at, + CASE + WHEN a.admin_user_id = %s THEN 'performer' + ELSE 'target' + END as user_role, + admin_u.username as admin_username, + target_u.username as target_username + FROM admin_audit_log a + LEFT JOIN users admin_u ON a.admin_user_id = admin_u.id + LEFT JOIN users target_u ON a.target_user_id = target_u.id + WHERE a.admin_user_id = %s OR a.target_user_id = %s + ORDER BY a.created_at DESC + LIMIT %s + """ + logs = self.db.execute_query(query, (user_id, user_id, user_id, limit)) + + formatted_logs = [] + for log in logs: + formatted_logs.append({ + "id": log["id"], + "action_type": log["action_type"], + "user_role": log["user_role"], + "admin_username": log["admin_username"], + "target_username": log["target_username"], + "target_path": log["target_path"], + "details": json.loads(log["details"]) if log["details"] else None, + "ip_address": log["ip_address"], + "created_at": log["created_at"].isoformat() if log["created_at"] else None + }) + + return {"success": True, "activity": formatted_logs} + + except Exception as e: + logger.error(f"Failed to get user activity: {e}") + return {"success": False, "error": str(e)} + + def export_audit_logs( + self, + start_date: Optional[datetime] = None, + end_date: Optional[datetime] = None + ) -> str: + """ + Export audit logs as CSV content. + + Args: + start_date: Filter by start date + end_date: Filter by end date + + Returns: + str: CSV content + """ + try: + conditions = [] + params = [] + + if start_date: + conditions.append("a.created_at >= %s") + params.append(start_date) + + if end_date: + conditions.append("a.created_at <= %s") + params.append(end_date) + + where_clause = " AND ".join(conditions) if conditions else "1=1" + + query = f""" + SELECT + a.created_at, + admin_u.username as admin_username, + a.action_type, + target_u.username as target_username, + a.target_path, + a.details, + a.ip_address + FROM admin_audit_log a + LEFT JOIN users admin_u ON a.admin_user_id = admin_u.id + LEFT JOIN users target_u ON a.target_user_id = target_u.id + WHERE {where_clause} + ORDER BY a.created_at DESC + """ + logs = self.db.execute_query(query, tuple(params)) if params else self.db.execute_query(query) + + # Build CSV + csv_lines = ["timestamp,admin_username,action_type,target_username,target_path,details,ip_address"] + + for log in logs: + details_str = json.dumps(log["details"]).replace('"', '""') if log["details"] else "" + csv_lines.append( + f'"{log["created_at"]}","{log["admin_username"] or ""}","{log["action_type"]}",' + f'"{log["target_username"] or ""}","{log["target_path"] or ""}",' + f'"{details_str}","{log["ip_address"] or ""}"' + ) + + return "\n".join(csv_lines) + + except Exception as e: + logger.error(f"Failed to export audit logs: {e}") + return "" + + +# Global instance +audit_logger = AuditLogger() + + +# Convenience function for quick logging +def log_admin_action( + admin_user_id: int, + action_type: str, + target_user_id: Optional[int] = None, + target_path: Optional[str] = None, + details: Optional[Dict[str, Any]] = None, + ip_address: Optional[str] = None +) -> bool: + """Quick function to log an admin action""" + return audit_logger.log_action( + admin_user_id=admin_user_id, + action_type=action_type, + target_user_id=target_user_id, + target_path=target_path, + details=details, + ip_address=ip_address + ) diff --git a/src/admin/App.vue b/src/admin/App.vue new file mode 100644 index 00000000..bf530ec6 --- /dev/null +++ b/src/admin/App.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/admin/api/auth.js b/src/admin/api/auth.js new file mode 100644 index 00000000..c1d4d420 --- /dev/null +++ b/src/admin/api/auth.js @@ -0,0 +1,55 @@ +/** + * Admin Auth API + * API calls for admin authentication + */ + +const BASE_URL = '/api/admin/auth' + +export default { + async login(username, password) { + const response = await fetch(`${BASE_URL}/login`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ username, password }) + }) + + return response.json() + }, + + async logout(token) { + const response = await fetch(`${BASE_URL}/logout`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + }) + + return response.json() + }, + + async validateSession(token) { + const response = await fetch(`${BASE_URL}/session`, { + method: 'GET', + headers: { + 'Authorization': `Bearer ${token}` + } + }) + + return response.json() + }, + + async renewSession(token) { + const response = await fetch(`${BASE_URL}/session`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + }) + + return response.json() + } +} diff --git a/src/admin/api/users.js b/src/admin/api/users.js new file mode 100644 index 00000000..2f63e82d --- /dev/null +++ b/src/admin/api/users.js @@ -0,0 +1,136 @@ +/** + * Admin Users API + * API calls for user management + */ + +const BASE_URL = '/api/admin/users' + +function buildQueryString(params) { + const searchParams = new URLSearchParams() + for (const [key, value] of Object.entries(params)) { + if (value !== null && value !== undefined && value !== '') { + searchParams.append(key, value) + } + } + return searchParams.toString() +} + +export default { + async getUsers(token, params = {}) { + const queryString = buildQueryString(params) + const url = queryString ? `${BASE_URL}?${queryString}` : BASE_URL + + const response = await fetch(url, { + method: 'GET', + headers: { + 'Authorization': `Bearer ${token}` + } + }) + + return response.json() + }, + + async getUser(token, userId) { + const response = await fetch(`${BASE_URL}/${userId}`, { + method: 'GET', + headers: { + 'Authorization': `Bearer ${token}` + } + }) + + return response.json() + }, + + async createUser(token, userData) { + const response = await fetch(BASE_URL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }, + body: JSON.stringify(userData) + }) + + return response.json() + }, + + async updateUser(token, userId, userData) { + const response = await fetch(`${BASE_URL}/${userId}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }, + body: JSON.stringify(userData) + }) + + return response.json() + }, + + async deleteUser(token, userId) { + const response = await fetch(`${BASE_URL}/${userId}`, { + method: 'DELETE', + headers: { + 'Authorization': `Bearer ${token}` + } + }) + + return response.json() + }, + + async resetPassword(token, userId, newPassword = null) { + const body = newPassword ? { new_password: newPassword } : {} + + const response = await fetch(`${BASE_URL}/${userId}/reset-password`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + }, + body: JSON.stringify(body) + }) + + return response.json() + }, + + async bulkImport(token, file) { + const formData = new FormData() + formData.append('file', file) + + const response = await fetch(`${BASE_URL}/bulk-import`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}` + }, + body: formData + }) + + return response.json() + }, + + async exportUsers(token, params = {}) { + const queryString = buildQueryString({ ...params, export: 'true' }) + const url = `${BASE_URL}?${queryString}` + + const response = await fetch(url, { + method: 'GET', + headers: { + 'Authorization': `Bearer ${token}` + } + }) + + // Return blob for file download + return response.blob() + }, + + async downloadTemplate(token) { + const response = await fetch(`${BASE_URL}/bulk-import`, { + method: 'GET', + headers: { + 'Authorization': `Bearer ${token}` + } + }) + + return response.blob() + } +} diff --git a/src/admin/assets/admin.css b/src/admin/assets/admin.css new file mode 100644 index 00000000..84eced68 --- /dev/null +++ b/src/admin/assets/admin.css @@ -0,0 +1,614 @@ +/** + * Admin Panel Styles + * Dark theme only + */ + +/* CSS Variables for Admin Panel */ +:root { + /* Primary colors */ + --admin-bg-primary: #1e1e1e; + --admin-bg-secondary: #252526; + --admin-bg-tertiary: #2d2d30; + --admin-bg-hover: #3e3e42; + --admin-bg-active: #094771; + + /* Text colors */ + --admin-text-primary: #d4d4d4; + --admin-text-secondary: #a0a0a0; + --admin-text-muted: #6b6b6b; + --admin-text-white: #ffffff; + + /* Border colors */ + --admin-border-color: #464647; + --admin-border-light: #333333; + + /* Accent colors */ + --admin-primary: #0078d4; + --admin-primary-hover: #1e90ff; + --admin-success: #28a745; + --admin-warning: #ffc107; + --admin-danger: #dc3545; + --admin-info: #17a2b8; + + /* Shadows */ + --admin-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); + --admin-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.5); + + /* Sidebar */ + --admin-sidebar-width: 250px; + --admin-sidebar-collapsed-width: 64px; +} + +/* Reset and base styles */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, body { + margin: 0; + padding: 0; + background-color: var(--admin-bg-primary); + color: var(--admin-text-primary); +} + +/* Layout */ +.admin-layout { + display: flex; + min-height: 100vh; +} + +.admin-sidebar { + width: var(--admin-sidebar-width); + background-color: var(--admin-bg-secondary); + border-right: 1px solid var(--admin-border-color); + display: flex; + flex-direction: column; + position: fixed; + height: 100vh; + z-index: 100; + transition: width 0.3s ease; +} + +.admin-sidebar.collapsed { + width: var(--admin-sidebar-collapsed-width); +} + +.admin-main { + flex: 1; + margin-left: var(--admin-sidebar-width); + display: flex; + flex-direction: column; + transition: margin-left 0.3s ease; +} + +.admin-sidebar.collapsed + .admin-main { + margin-left: var(--admin-sidebar-collapsed-width); +} + +.admin-header { + height: 60px; + background-color: var(--admin-bg-secondary); + border-bottom: 1px solid var(--admin-border-color); + display: flex; + align-items: center; + padding: 0 24px; + position: sticky; + top: 0; + z-index: 50; +} + +.admin-content { + flex: 1; + padding: 24px; + overflow-y: auto; +} + +/* Sidebar navigation */ +.sidebar-logo { + height: 60px; + display: flex; + align-items: center; + padding: 0 20px; + border-bottom: 1px solid var(--admin-border-color); + font-size: 18px; + font-weight: 600; + color: var(--admin-text-white); +} + +.sidebar-logo .logo-icon { + width: 32px; + height: 32px; + margin-right: 12px; +} + +.sidebar-nav { + flex: 1; + padding: 16px 0; + overflow-y: auto; +} + +.nav-item { + display: flex; + align-items: center; + padding: 12px 20px; + color: var(--admin-text-secondary); + text-decoration: none; + transition: all 0.2s ease; + cursor: pointer; + border-left: 3px solid transparent; +} + +.nav-item:hover { + background-color: var(--admin-bg-hover); + color: var(--admin-text-primary); +} + +.nav-item.active { + background-color: var(--admin-bg-active); + color: var(--admin-text-white); + border-left-color: var(--admin-primary); +} + +.nav-item .nav-icon { + width: 20px; + height: 20px; + margin-right: 12px; +} + +.nav-item .nav-text { + white-space: nowrap; + overflow: hidden; +} + +/* Cards */ +.admin-card { + background-color: var(--admin-bg-secondary); + border: 1px solid var(--admin-border-color); + border-radius: 8px; + padding: 20px; + margin-bottom: 24px; +} + +.admin-card-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 16px; + padding-bottom: 16px; + border-bottom: 1px solid var(--admin-border-color); +} + +.admin-card-title { + font-size: 18px; + font-weight: 600; + color: var(--admin-text-white); + margin: 0; +} + +/* Stats cards */ +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; + margin-bottom: 24px; +} + +.stat-card { + background-color: var(--admin-bg-secondary); + border: 1px solid var(--admin-border-color); + border-radius: 8px; + padding: 20px; + display: flex; + align-items: center; +} + +.stat-icon { + width: 48px; + height: 48px; + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 16px; + font-size: 24px; +} + +.stat-icon.primary { background-color: rgba(0, 120, 212, 0.2); color: var(--admin-primary); } +.stat-icon.success { background-color: rgba(40, 167, 69, 0.2); color: var(--admin-success); } +.stat-icon.warning { background-color: rgba(255, 193, 7, 0.2); color: var(--admin-warning); } +.stat-icon.danger { background-color: rgba(220, 53, 69, 0.2); color: var(--admin-danger); } + +.stat-content { + flex: 1; +} + +.stat-value { + font-size: 28px; + font-weight: 700; + color: var(--admin-text-white); + line-height: 1; + margin-bottom: 4px; +} + +.stat-label { + font-size: 14px; + color: var(--admin-text-secondary); +} + +/* Tables */ +.admin-table { + width: 100%; + border-collapse: collapse; +} + +.admin-table th, +.admin-table td { + padding: 12px 16px; + text-align: left; + border-bottom: 1px solid var(--admin-border-color); +} + +.admin-table th { + background-color: var(--admin-bg-tertiary); + color: var(--admin-text-secondary); + font-weight: 500; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.admin-table tr:hover { + background-color: var(--admin-bg-hover); +} + +.admin-table td { + color: var(--admin-text-primary); +} + +/* Buttons */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 8px 16px; + border-radius: 4px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + border: none; + text-decoration: none; +} + +.btn-primary { + background-color: var(--admin-primary); + color: var(--admin-text-white); +} + +.btn-primary:hover { + background-color: var(--admin-primary-hover); +} + +.btn-secondary { + background-color: var(--admin-bg-tertiary); + color: var(--admin-text-primary); + border: 1px solid var(--admin-border-color); +} + +.btn-secondary:hover { + background-color: var(--admin-bg-hover); +} + +.btn-danger { + background-color: var(--admin-danger); + color: var(--admin-text-white); +} + +.btn-danger:hover { + background-color: #c82333; +} + +.btn-sm { + padding: 4px 8px; + font-size: 12px; +} + +.btn-icon { + padding: 8px; + min-width: 36px; +} + +/* Forms */ +.form-group { + margin-bottom: 16px; +} + +.form-label { + display: block; + margin-bottom: 8px; + font-size: 14px; + font-weight: 500; + color: var(--admin-text-primary); +} + +.form-input { + width: 100%; + padding: 10px 12px; + background-color: var(--admin-bg-tertiary); + border: 1px solid var(--admin-border-color); + border-radius: 4px; + color: var(--admin-text-primary); + font-size: 14px; + transition: border-color 0.2s ease; +} + +.form-input:focus { + outline: none; + border-color: var(--admin-primary); +} + +.form-input::placeholder { + color: var(--admin-text-muted); +} + +/* Search box */ +.search-box { + display: flex; + align-items: center; + background-color: var(--admin-bg-tertiary); + border: 1px solid var(--admin-border-color); + border-radius: 4px; + padding: 0 12px; +} + +.search-box input { + flex: 1; + border: none; + background: transparent; + padding: 10px 8px; + color: var(--admin-text-primary); + font-size: 14px; +} + +.search-box input:focus { + outline: none; +} + +.search-box .search-icon { + color: var(--admin-text-muted); +} + +/* Badges */ +.badge { + display: inline-block; + padding: 4px 8px; + border-radius: 4px; + font-size: 12px; + font-weight: 500; +} + +.badge-success { + background-color: rgba(40, 167, 69, 0.2); + color: var(--admin-success); +} + +.badge-warning { + background-color: rgba(255, 193, 7, 0.2); + color: var(--admin-warning); +} + +.badge-danger { + background-color: rgba(220, 53, 69, 0.2); + color: var(--admin-danger); +} + +.badge-info { + background-color: rgba(0, 120, 212, 0.2); + color: var(--admin-primary); +} + +/* Pagination */ +.pagination { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + margin-top: 24px; +} + +.pagination-btn { + padding: 8px 12px; + background-color: var(--admin-bg-tertiary); + border: 1px solid var(--admin-border-color); + border-radius: 4px; + color: var(--admin-text-primary); + cursor: pointer; + transition: all 0.2s ease; +} + +.pagination-btn:hover:not(:disabled) { + background-color: var(--admin-bg-hover); +} + +.pagination-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.pagination-btn.active { + background-color: var(--admin-primary); + border-color: var(--admin-primary); + color: var(--admin-text-white); +} + +/* Loading spinner */ +.loading-spinner { + display: inline-block; + width: 20px; + height: 20px; + border: 2px solid var(--admin-border-color); + border-radius: 50%; + border-top-color: var(--admin-primary); + animation: spin 1s linear infinite; +} + +@keyframes spin { + to { transform: rotate(360deg); } +} + +/* Empty state */ +.empty-state { + text-align: center; + padding: 48px 24px; + color: var(--admin-text-secondary); +} + +.empty-state-icon { + font-size: 48px; + margin-bottom: 16px; + opacity: 0.5; +} + +.empty-state-title { + font-size: 18px; + font-weight: 500; + color: var(--admin-text-primary); + margin-bottom: 8px; +} + +.empty-state-text { + font-size: 14px; +} + +/* Dialogs/Modals */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} + +.modal-content { + background-color: var(--admin-bg-secondary); + border: 1px solid var(--admin-border-color); + border-radius: 8px; + padding: 24px; + min-width: 400px; + max-width: 600px; + max-height: 80vh; + overflow-y: auto; +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; +} + +.modal-title { + font-size: 18px; + font-weight: 600; + color: var(--admin-text-white); +} + +.modal-close { + background: none; + border: none; + color: var(--admin-text-secondary); + cursor: pointer; + font-size: 24px; + line-height: 1; +} + +.modal-close:hover { + color: var(--admin-text-primary); +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: 12px; + margin-top: 24px; + padding-top: 16px; + border-top: 1px solid var(--admin-border-color); +} + +/* Element Plus overrides for dark theme */ +.dark .el-dialog { + background-color: var(--admin-bg-secondary) !important; + border: 1px solid var(--admin-border-color) !important; +} + +.dark .el-dialog__header { + border-bottom: 1px solid var(--admin-border-color); +} + +.dark .el-dialog__title { + color: var(--admin-text-white) !important; +} + +.dark .el-dialog__body { + color: var(--admin-text-primary); +} + +.dark .el-input__wrapper { + background-color: var(--admin-bg-tertiary) !important; + box-shadow: 0 0 0 1px var(--admin-border-color) inset !important; +} + +.dark .el-input__inner { + color: var(--admin-text-primary) !important; +} + +.dark .el-select .el-input__wrapper { + background-color: var(--admin-bg-tertiary) !important; +} + +.dark .el-button--primary { + --el-button-bg-color: var(--admin-primary); + --el-button-border-color: var(--admin-primary); +} + +.dark .el-button--danger { + --el-button-bg-color: var(--admin-danger); + --el-button-border-color: var(--admin-danger); +} + +.dark .el-table { + --el-table-bg-color: var(--admin-bg-secondary); + --el-table-tr-bg-color: var(--admin-bg-secondary); + --el-table-header-bg-color: var(--admin-bg-tertiary); + --el-table-row-hover-bg-color: var(--admin-bg-hover); + --el-table-border-color: var(--admin-border-color); + --el-table-text-color: var(--admin-text-primary); + --el-table-header-text-color: var(--admin-text-secondary); +} + +.dark .el-pagination { + --el-pagination-bg-color: var(--admin-bg-tertiary); + --el-pagination-text-color: var(--admin-text-primary); + --el-pagination-button-bg-color: var(--admin-bg-tertiary); + --el-pagination-button-disabled-bg-color: var(--admin-bg-secondary); +} + +.dark .el-message-box { + background-color: var(--admin-bg-secondary) !important; + border-color: var(--admin-border-color) !important; +} + +.dark .el-message-box__title { + color: var(--admin-text-white) !important; +} + +.dark .el-message-box__content { + color: var(--admin-text-primary) !important; +} diff --git a/src/admin/components/layout/AdminLayout.vue b/src/admin/components/layout/AdminLayout.vue new file mode 100644 index 00000000..ea32e89c --- /dev/null +++ b/src/admin/components/layout/AdminLayout.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/admin/components/layout/Sidebar.vue b/src/admin/components/layout/Sidebar.vue new file mode 100644 index 00000000..eaf9fabe --- /dev/null +++ b/src/admin/components/layout/Sidebar.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/admin/main.js b/src/admin/main.js new file mode 100644 index 00000000..b69b18f3 --- /dev/null +++ b/src/admin/main.js @@ -0,0 +1,25 @@ +/** + * Admin Panel Entry Point + * Separate Vue application for the admin panel (admin.pythonide-classroom.tech) + */ + +import { createApp } from 'vue' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import 'element-plus/theme-chalk/dark/css-vars.css' +import { ElMessage, ElMessageBox } from 'element-plus' +import App from './App.vue' +import router from './router' +import store from './store' +import './assets/admin.css' + +const app = createApp(App) +app.use(router) +app.use(store) +app.use(ElementPlus) + +// Make ElMessage and ElMessageBox globally accessible +window.ElMessage = ElMessage +window.ElMessageBox = ElMessageBox + +app.mount('#app') diff --git a/src/admin/router/index.js b/src/admin/router/index.js new file mode 100644 index 00000000..d97fb962 --- /dev/null +++ b/src/admin/router/index.js @@ -0,0 +1,111 @@ +/** + * Admin Panel Router + * Handles routing for all admin panel pages + */ + +import { createRouter, createWebHistory } from 'vue-router' +import store from '../store' + +// Views +import Login from '../views/Login.vue' +import Dashboard from '../views/Dashboard.vue' +import Users from '../views/Users.vue' + +const routes = [ + { + path: '/login', + name: 'Login', + component: Login, + meta: { requiresAuth: false } + }, + { + path: '/', + redirect: '/dashboard' + }, + { + path: '/dashboard', + name: 'Dashboard', + component: Dashboard, + meta: { requiresAuth: true } + }, + { + path: '/users', + name: 'Users', + component: Users, + meta: { requiresAuth: true } + }, + { + path: '/users/:id', + name: 'UserDetail', + component: () => import('../views/UserDetail.vue'), + meta: { requiresAuth: true } + }, + { + path: '/files', + name: 'FileBrowser', + component: () => import('../views/FileBrowser.vue'), + meta: { requiresAuth: true } + }, + { + path: '/grading', + name: 'Grading', + component: () => import('../views/Grading.vue'), + meta: { requiresAuth: true } + }, + { + path: '/analytics', + name: 'Analytics', + component: () => import('../views/Analytics.vue'), + meta: { requiresAuth: true } + }, + { + path: '/audit', + name: 'AuditLog', + component: () => import('../views/AuditLog.vue'), + meta: { requiresAuth: true } + }, + { + path: '/settings', + name: 'Settings', + component: () => import('../views/Settings.vue'), + meta: { requiresAuth: true } + }, + { + path: '/:pathMatch(.*)*', + redirect: '/dashboard' + } +] + +const router = createRouter({ + history: createWebHistory('/'), + routes +}) + +// Navigation guard for authentication +router.beforeEach(async (to, from, next) => { + const requiresAuth = to.meta.requiresAuth !== false + + if (requiresAuth) { + // Check if user is authenticated + const isAuthenticated = await store.dispatch('auth/checkSession') + + if (!isAuthenticated) { + // Redirect to login + next({ name: 'Login', query: { redirect: to.fullPath } }) + return + } + } + + // If going to login while already authenticated, redirect to dashboard + if (to.name === 'Login') { + const isAuthenticated = await store.dispatch('auth/checkSession') + if (isAuthenticated) { + next({ name: 'Dashboard' }) + return + } + } + + next() +}) + +export default router diff --git a/src/admin/store/index.js b/src/admin/store/index.js new file mode 100644 index 00000000..83867f53 --- /dev/null +++ b/src/admin/store/index.js @@ -0,0 +1,45 @@ +/** + * Admin Panel Vuex Store + * Central state management for the admin panel + */ + +import { createStore } from 'vuex' +import auth from './modules/auth' +import users from './modules/users' + +export default createStore({ + modules: { + auth, + users + }, + state: { + loading: false, + error: null + }, + mutations: { + SET_LOADING(state, loading) { + state.loading = loading + }, + SET_ERROR(state, error) { + state.error = error + }, + CLEAR_ERROR(state) { + state.error = null + } + }, + actions: { + setLoading({ commit }, loading) { + commit('SET_LOADING', loading) + }, + setError({ commit }, error) { + commit('SET_ERROR', error) + }, + clearError({ commit }) { + commit('CLEAR_ERROR') + } + }, + getters: { + isLoading: state => state.loading, + error: state => state.error + } +}) diff --git a/src/admin/store/modules/auth.js b/src/admin/store/modules/auth.js new file mode 100644 index 00000000..b962df92 --- /dev/null +++ b/src/admin/store/modules/auth.js @@ -0,0 +1,141 @@ +/** + * Auth Module for Admin Panel + * Handles admin authentication state + */ + +import api from '../../api/auth' + +const TOKEN_KEY = 'admin_token' +const USER_KEY = 'admin_user' + +export default { + namespaced: true, + + state: { + token: localStorage.getItem(TOKEN_KEY) || null, + user: JSON.parse(localStorage.getItem(USER_KEY) || 'null'), + isAuthenticated: false, + loading: false, + error: null + }, + + mutations: { + SET_TOKEN(state, token) { + state.token = token + if (token) { + localStorage.setItem(TOKEN_KEY, token) + } else { + localStorage.removeItem(TOKEN_KEY) + } + }, + SET_USER(state, user) { + state.user = user + if (user) { + localStorage.setItem(USER_KEY, JSON.stringify(user)) + } else { + localStorage.removeItem(USER_KEY) + } + }, + SET_AUTHENTICATED(state, isAuthenticated) { + state.isAuthenticated = isAuthenticated + }, + SET_LOADING(state, loading) { + state.loading = loading + }, + SET_ERROR(state, error) { + state.error = error + }, + CLEAR_AUTH(state) { + state.token = null + state.user = null + state.isAuthenticated = false + localStorage.removeItem(TOKEN_KEY) + localStorage.removeItem(USER_KEY) + } + }, + + actions: { + async login({ commit }, { username, password }) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const response = await api.login(username, password) + + if (response.success) { + commit('SET_TOKEN', response.token) + commit('SET_USER', response.user) + commit('SET_AUTHENTICATED', true) + return { success: true } + } else { + commit('SET_ERROR', response.error || 'Login failed') + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Login failed' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async logout({ commit, state }) { + try { + if (state.token) { + await api.logout(state.token) + } + } catch (error) { + console.error('Logout error:', error) + } finally { + commit('CLEAR_AUTH') + } + }, + + async checkSession({ commit, state }) { + if (!state.token) { + commit('SET_AUTHENTICATED', false) + return false + } + + try { + const response = await api.validateSession(state.token) + + if (response.valid) { + commit('SET_USER', response.user) + commit('SET_AUTHENTICATED', true) + return true + } else { + commit('CLEAR_AUTH') + return false + } + } catch (error) { + console.error('Session validation error:', error) + commit('CLEAR_AUTH') + return false + } + }, + + async renewSession({ commit, state }) { + if (!state.token) return false + + try { + const response = await api.renewSession(state.token) + return response.success + } catch (error) { + console.error('Session renewal error:', error) + return false + } + } + }, + + getters: { + isAuthenticated: state => state.isAuthenticated, + user: state => state.user, + token: state => state.token, + isLoading: state => state.loading, + error: state => state.error, + username: state => state.user?.username || '', + fullName: state => state.user?.full_name || state.user?.username || '' + } +} diff --git a/src/admin/store/modules/users.js b/src/admin/store/modules/users.js new file mode 100644 index 00000000..7705f21b --- /dev/null +++ b/src/admin/store/modules/users.js @@ -0,0 +1,292 @@ +/** + * Users Module for Admin Panel + * Handles user management state + */ + +import usersApi from '../../api/users' + +export default { + namespaced: true, + + state: { + users: [], + currentUser: null, + total: 0, + page: 1, + limit: 20, + loading: false, + error: null, + filters: { + search: '', + role: '', + status: '' + }, + sortBy: 'username', + sortOrder: 'asc' + }, + + mutations: { + SET_USERS(state, users) { + state.users = users + }, + SET_CURRENT_USER(state, user) { + state.currentUser = user + }, + SET_TOTAL(state, total) { + state.total = total + }, + SET_PAGE(state, page) { + state.page = page + }, + SET_LIMIT(state, limit) { + state.limit = limit + }, + SET_LOADING(state, loading) { + state.loading = loading + }, + SET_ERROR(state, error) { + state.error = error + }, + SET_FILTERS(state, filters) { + state.filters = { ...state.filters, ...filters } + }, + SET_SORT(state, { sortBy, sortOrder }) { + if (sortBy) state.sortBy = sortBy + if (sortOrder) state.sortOrder = sortOrder + }, + RESET_FILTERS(state) { + state.filters = { search: '', role: '', status: '' } + state.page = 1 + }, + UPDATE_USER_IN_LIST(state, updatedUser) { + const index = state.users.findIndex(u => u.id === updatedUser.id) + if (index !== -1) { + state.users.splice(index, 1, { ...state.users[index], ...updatedUser }) + } + }, + REMOVE_USER_FROM_LIST(state, userId) { + state.users = state.users.filter(u => u.id !== userId) + state.total = Math.max(0, state.total - 1) + } + }, + + actions: { + async fetchUsers({ commit, state, rootState }) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.getUsers(token, { + page: state.page, + limit: state.limit, + search: state.filters.search, + role: state.filters.role, + status: state.filters.status, + sort_by: state.sortBy, + sort_order: state.sortOrder + }) + + if (response.success) { + commit('SET_USERS', response.users) + commit('SET_TOTAL', response.total) + return { success: true } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to fetch users' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async fetchUser({ commit, rootState }, userId) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.getUser(token, userId) + + if (response.success) { + commit('SET_CURRENT_USER', response.user) + return { success: true, user: response.user } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to fetch user' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async createUser({ commit, dispatch, rootState }, userData) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.createUser(token, userData) + + if (response.success) { + // Refresh user list + await dispatch('fetchUsers') + return { success: true, user: response.user } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to create user' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async updateUser({ commit, rootState }, { userId, userData }) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.updateUser(token, userId, userData) + + if (response.success) { + commit('UPDATE_USER_IN_LIST', { id: userId, ...userData }) + return { success: true } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to update user' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async deleteUser({ commit, rootState }, userId) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.deleteUser(token, userId) + + if (response.success) { + commit('REMOVE_USER_FROM_LIST', userId) + return { success: true } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to delete user' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async resetPassword({ commit, rootState }, { userId, newPassword }) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.resetPassword(token, userId, newPassword) + + if (response.success) { + return { success: true, newPassword: response.new_password } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to reset password' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + async bulkImport({ commit, dispatch, rootState }, file) { + commit('SET_LOADING', true) + commit('SET_ERROR', null) + + try { + const token = rootState.auth.token + const response = await usersApi.bulkImport(token, file) + + if (response.success) { + // Refresh user list + await dispatch('fetchUsers') + return { + success: true, + created: response.created, + failed: response.failed, + errors: response.errors + } + } else { + commit('SET_ERROR', response.error) + return { success: false, error: response.error } + } + } catch (error) { + const errorMessage = error.response?.data?.error || error.message || 'Failed to import users' + commit('SET_ERROR', errorMessage) + return { success: false, error: errorMessage } + } finally { + commit('SET_LOADING', false) + } + }, + + setPage({ commit, dispatch }, page) { + commit('SET_PAGE', page) + dispatch('fetchUsers') + }, + + setFilters({ commit, dispatch }, filters) { + commit('SET_FILTERS', filters) + commit('SET_PAGE', 1) + dispatch('fetchUsers') + }, + + setSort({ commit, dispatch }, { sortBy, sortOrder }) { + commit('SET_SORT', { sortBy, sortOrder }) + dispatch('fetchUsers') + }, + + resetFilters({ commit, dispatch }) { + commit('RESET_FILTERS') + dispatch('fetchUsers') + } + }, + + getters: { + users: state => state.users, + currentUser: state => state.currentUser, + total: state => state.total, + page: state => state.page, + limit: state => state.limit, + pages: state => Math.ceil(state.total / state.limit), + isLoading: state => state.loading, + error: state => state.error, + filters: state => state.filters, + sortBy: state => state.sortBy, + sortOrder: state => state.sortOrder + } +} diff --git a/src/admin/views/Analytics.vue b/src/admin/views/Analytics.vue new file mode 100644 index 00000000..2a69a189 --- /dev/null +++ b/src/admin/views/Analytics.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/admin/views/AuditLog.vue b/src/admin/views/AuditLog.vue new file mode 100644 index 00000000..b94bcd8f --- /dev/null +++ b/src/admin/views/AuditLog.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/admin/views/Dashboard.vue b/src/admin/views/Dashboard.vue new file mode 100644 index 00000000..872275c3 --- /dev/null +++ b/src/admin/views/Dashboard.vue @@ -0,0 +1,464 @@ + + + + + diff --git a/src/admin/views/FileBrowser.vue b/src/admin/views/FileBrowser.vue new file mode 100644 index 00000000..57edab3e --- /dev/null +++ b/src/admin/views/FileBrowser.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/admin/views/Grading.vue b/src/admin/views/Grading.vue new file mode 100644 index 00000000..ad0bce03 --- /dev/null +++ b/src/admin/views/Grading.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/admin/views/Login.vue b/src/admin/views/Login.vue new file mode 100644 index 00000000..f8180d89 --- /dev/null +++ b/src/admin/views/Login.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/admin/views/Settings.vue b/src/admin/views/Settings.vue new file mode 100644 index 00000000..cd66bc67 --- /dev/null +++ b/src/admin/views/Settings.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/admin/views/UserDetail.vue b/src/admin/views/UserDetail.vue new file mode 100644 index 00000000..fc610104 --- /dev/null +++ b/src/admin/views/UserDetail.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/src/admin/views/Users.vue b/src/admin/views/Users.vue new file mode 100644 index 00000000..39c5f970 --- /dev/null +++ b/src/admin/views/Users.vue @@ -0,0 +1,660 @@ + + + + + diff --git a/src/components/element/VmIde.vue b/src/components/element/VmIde.vue index aa221d6f..8632187f 100644 --- a/src/components/element/VmIde.vue +++ b/src/components/element/VmIde.vue @@ -68,7 +68,6 @@ + + +
    +
    {{ tab.content }}
    +
    @@ -1842,21 +1846,16 @@ export default { existingTab.content = content; } } else { - // Enforce right panel tab limit (max 5 tabs) - const MAX_PREVIEW_TABS = 5; - if (this.previewTabs.length >= MAX_PREVIEW_TABS) { - // Remove the oldest tab (first item) to make room - const closedTab = this.previewTabs.shift(); - // Clean up blob URL if PDF - if (closedTab.type === 'pdf' && closedTab.content && closedTab.content.startsWith('blob:')) { - URL.revokeObjectURL(closedTab.content); - } - console.log(`Preview tab limit (${MAX_PREVIEW_TABS}) reached. Closed "${closedTab.title}" to open new file.`); - ElMessage({ - type: 'warning', - message: `Tab limit (${MAX_PREVIEW_TABS}) reached. Closed "${closedTab.title}" to open new file.`, - duration: 3000 + // Right panel only allows 1 tab - replace any existing tab silently + if (this.previewTabs.length > 0) { + // Close all existing tabs (clean up blob URLs) + this.previewTabs.forEach(tab => { + if (tab.type === 'pdf' && tab.content && tab.content.startsWith('blob:')) { + URL.revokeObjectURL(tab.content); + } }); + // Clear all tabs + this.previewTabs = []; } // Create new tab with projectName @@ -2313,14 +2312,13 @@ export default { } }); }, - getFile(path, save, projectName, openInEditor = false) { + getFile(path, save, projectName) { const self = this; console.log('[getFile] Called with:', { path: path, save: save, - projectName: projectName, - openInEditor: openInEditor + projectName: projectName }); // Determine the project name - from parameter, current selection, or current project @@ -2329,25 +2327,17 @@ export default { this.ideInfo.currProj?.data?.name || this.ideInfo.currProj?.config?.name; - // Check if it's a preview file (should open in right panel by default) + // Check if it's a preview file (should open in right panel ONLY) // Preview files: images, PDFs, CSVs, and plain text files + // These files can ONLY open in the right panel, never in the main editor const mediaExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.svg', '.webp', '.pdf']; const dataExtensions = ['.csv']; const textExtensions = ['.txt']; const isMediaFile = mediaExtensions.some(ext => path.toLowerCase().endsWith(ext)); const isDataFile = dataExtensions.some(ext => path.toLowerCase().endsWith(ext)); const isTextFile = textExtensions.some(ext => path.toLowerCase().endsWith(ext)); - const isPreviewFile = isMediaFile || isDataFile || isTextFile; - - // If it's a preview file and openInEditor is true (from "Open in Editor" context menu) - // open it in the editor area instead of the right panel - if (isPreviewFile && openInEditor) { - // Open preview files in fullscreen/editor mode when explicitly requested - this.openFullscreenPreview(path, actualProjectName); - return; - } - // Default behavior: open preview files in the right panel + // Preview files always open in the right panel if (isMediaFile) { // For media files, add tab without preloading content // MediaViewer component will handle loading with retry logic @@ -2463,15 +2453,9 @@ export default { }); } }, - getFileForEditor(path, projectName) { - // Open preview files in the editor/fullscreen area instead of right panel - // This is called from context menu "Open in Editor" option - this.getFile(path, false, projectName, true); // openInEditor = true - }, getFileForRightPanel(path, projectName) { // Open preview files in the right panel (default behavior) - // This is called from FullscreenPreview's "Open in Right Panel" button - this.getFile(path, false, projectName, false); // openInEditor = false (default) + this.getFile(path, false, projectName); }, handleReorderTabs(fromIndex, toIndex) { // Reorder editor tabs via Vuex mutation @@ -6447,6 +6431,27 @@ body .console-output-area .console-line .console-repl-input span { z-index: 21; /* Ensure CSV content and scrollbars are above everything */ } +.text-preview-panel { + height: 100%; + overflow: auto; + display: flex; + flex-direction: column; + background: var(--bg-primary, #1e1e1e); + padding: 16px; +} + +.text-preview-panel .text-content { + margin: 0; + padding: 0; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', monospace; + font-size: 13px; + line-height: 1.6; + color: var(--text-primary, #d4d4d4); + white-space: pre-wrap; + word-wrap: break-word; + overflow-wrap: break-word; +} + /* Sidebar Resizers */ .sidebar-resizer { width: 5px; @@ -7473,6 +7478,14 @@ body { background: var(--bg-pattern, #f8f8f8); } +[data-theme="light"] .text-preview-panel { + background: var(--bg-primary, #ffffff); +} + +[data-theme="light"] .text-preview-panel .text-content { + color: var(--text-primary, #333333); +} + [data-theme="light"] .output-panel { background: var(--bg-primary, #ffffff); color: var(--text-primary, #333333); @@ -7529,6 +7542,14 @@ body { background: var(--bg-pattern, #0f0f0f); } +[data-theme="high-contrast"] .text-preview-panel { + background: var(--bg-primary, #000000); +} + +[data-theme="high-contrast"] .text-preview-panel .text-content { + color: var(--text-primary, #ffffff); +} + [data-theme="high-contrast"] .output-panel { background: var(--bg-primary, #000000); color: var(--text-primary, #ffffff); diff --git a/src/components/element/pages/ide/ProjTree.vue b/src/components/element/pages/ide/ProjTree.vue index b64ab051..f1548010 100644 --- a/src/components/element/pages/ide/ProjTree.vue +++ b/src/components/element/pages/ide/ProjTree.vue @@ -50,13 +50,9 @@ -
    - -