diff --git a/.devops-context.md b/.devops-context.md new file mode 100644 index 0000000..276c014 --- /dev/null +++ b/.devops-context.md @@ -0,0 +1,61 @@ +# DevOps Context for Odin Code Projects + +This file contains essential information about the DevOps setup for the Odin Code Projects. It helps the AI assistant (and any humans working on the project) understand the build, deployment, and infrastructure context. + +## Build Process + +* **GitHub Actions:** The build process is managed using GitHub Actions. +* **Workflow:** The primary workflow is defined in `.github/workflows/build.yml`. +* **Build Context:** + * For most projects, the build context when building is the root of the project. + * For the `restaurant` project, the build context for docker is the `restaurant/` folder, and the dockerfile is found at `restaurant/devops/Dockerfile` +* **Image Naming:** Images are named using the format `ghcr.io//odin-codeprojects/:`. The tag is either `latest` or the first 8 characters of the commit hash. +* **Package files**: Most node projects have `package.json` and `package-lock.json` in the root, or in the `app/` folder. +* **Projects with package.json:** + * Battleship + * restaurant + * shopping-cart + * weather + * testing + * todo + +## Deployment + +* **Kubernetes:** The applications are deployed to a Kubernetes cluster. +* **Ingress**: All projects are exposed through ingress with the following settings. + * ingressClassName: traefik + * annotations: + * cert-manager.io/cluster-issuer: letsencrypt + * hosts: + * .odin.thecodedom.com + * tls: + * hosts: + * .odin.thecodedom.com + * secretName: -tls +* **Ingress locations**: The ingress files are located at /devops/-ingress.yaml +* **ArgoCD**: Application files are located at deploy/chart/templates/-application.yaml + +## Tools and Automation + +* **Firebase Studio:** Firebase Studio was used to help create the devops process. Instructed by Smiggiddy though. +* **CI/CD**: CI/CD is in place to build and test the code and deploy changes. + +## Project List +* All projects in this list are part of the build pipeline and can be deployed. + - admin-dashboard + - auth-expressjs + - battleship + - calculator + - cv + - cv-project + - inventory + - library + - messages + - nodejs-mini-message-board + - portfolio + - restaurant + - shopping-cart + - signup_form + - tictactoe + - todo + - weather diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e93707..294c33a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,10 +15,8 @@ jobs: matrix: project: - admin-dashboard - - auth-expressjs - battleship - calculator - - cv - cv-project - inventory - library @@ -29,7 +27,6 @@ jobs: - shopping-cart - signup_form - tictactoe - - todo - weather steps: - name: Checkout code @@ -48,13 +45,14 @@ jobs: - name: Build and Push Docker Image id: build-and-push env: - IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/${{ matrix.project }} + IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/odin-codeprojects/${{ matrix.project }} run: | IMAGE_TAG_LATEST=$IMAGE_NAME:latest # Check if the latest image exists in the registry IMAGE_EXISTS=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://ghcr.io/v2/${{ github.repository_owner }}/${{ matrix.project }}/manifests/latest") + if [ "$IMAGE_EXISTS" == "200" ]; then echo "Latest image exists, checking for changes..." diff --git a/README.md b/README.md new file mode 100644 index 0000000..608230d --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# Odin Code Projects: A Full-Stack Development Journey + +Welcome to my collection of projects, created during my journey through the world of full-stack web development! This repository showcases a variety of applications, each representing a step forward in my learning process. From mastering the fundamentals of HTML, CSS, and JavaScript to diving deep into modern frameworks like React and backend technologies like Node.js and Express.js, each project in this collection has been an exercise in growth. + +## My Learning Journey + +My journey began with the foundational building blocks of web development. I honed my skills in creating responsive and dynamic user interfaces with HTML, CSS, and vanilla JavaScript. As I progressed, I embraced the power of component-based architectures by diving into React, a leading JavaScript library for building user interfaces. This shift allowed me to create complex applications with manageable, reusable components. + +On the backend, I explored Node.js and Express.js to build robust APIs and server-side logic. I learned how to connect to databases, manage data, and handle user authentication, adding essential server-side capabilities to my toolkit. + +## DevOps in Action: Kubernetes Deployment + +Beyond crafting code, I've also focused on the crucial aspect of deployment and infrastructure. Leveraging my expertise in DevOps, I've deployed each of these projects to a Kubernetes cluster. This has provided me with hands-on experience managing containerized applications, handling scaling, and ensuring reliability in a production-like environment. + +## Automation with Gemini and Firebase Studio + +To enhance my workflow and automate the deployment process, I integrated cutting-edge tools like Google's Gemini and Firebase Studio. Gemini assisted me in rapidly generating deployment code snippets. As I want to continue learning more about AI, I'm using it to speed up tasks that may take longer. + +## Project Showcase + +Here are the projects that make up this collection, each showcasing different aspects of my full-stack development skills: + +* [Admin Dashboard](admin-dashboard.odin.thecodedom.com) +* [Battleship](battleship.odin.thecodedom.com) +* [Calculator](calculator.odin.thecodedom.com) +* [CV Project](cv-project.odin.thecodedom.com) +* [Inventory](inventory.odin.thecodedom.com) +* [Library](library.odin.thecodedom.com) +* [Messages](messages.odin.thecodedom.com) +* [Node.js Mini Message Board](nodejs-mini-message-board.odin.thecodedom.com) +* [Portfolio](portfolio.odin.thecodedom.com) +* [Restaurant](restaurant.odin.thecodedom.com) +* [Shopping Cart](shopping-cart.odin.thecodedom.com) +* [Signup Form](signup-form.odin.thecodedom.com) +* [Tic Tac Toe](tictactoe.odin.thecodedom.com) +* [Weather](weather.odin.thecodedom.com) + +Each project has it's own folder and it's own documentation, so you can dive deeper into each project. + +This journey has been a challenging, yet incredibly rewarding experience. I hope you enjoy exploring these projects as much as I enjoyed creating them! \ No newline at end of file diff --git a/admin-dashboard/devops/admin-dashboard-ingress.yaml b/admin-dashboard/devops/admin-dashboard-ingress.yaml new file mode 100644 index 0000000..c7b7ebe --- /dev/null +++ b/admin-dashboard/devops/admin-dashboard-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: admin-dashboard-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: admin-dashboard.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: admin-dashboard-service + port: + number: 80 + tls: + - hosts: + - admin-dashboard.odin.thecodedom.com + secretName: admin-dashboard-tls \ No newline at end of file diff --git a/battleship/devops/battleship-ingress.yaml b/battleship/devops/battleship-ingress.yaml new file mode 100644 index 0000000..f01c2e7 --- /dev/null +++ b/battleship/devops/battleship-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: battleship-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: battleship.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: battleship-service + port: + number: 80 + tls: + - hosts: + - battleship.odin.thecodedom.com + secretName: battleship-tls \ No newline at end of file diff --git a/calculator/devops/calculator-ingress.yaml b/calculator/devops/calculator-ingress.yaml new file mode 100644 index 0000000..388a93a --- /dev/null +++ b/calculator/devops/calculator-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: calculator-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: calculator.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: calculator-service + port: + number: 80 + tls: + - hosts: + - calculator.odin.thecodedom.com + secretName: calculator-tls \ No newline at end of file diff --git a/cv-project/devops/cv-project-ingress.yaml b/cv-project/devops/cv-project-ingress.yaml new file mode 100644 index 0000000..be0cbc9 --- /dev/null +++ b/cv-project/devops/cv-project-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: cv-project-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: cv-project.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: cv-project-service + port: + number: 80 + tls: + - hosts: + - cv-project.odin.thecodedom.com + secretName: cv-project-tls \ No newline at end of file diff --git a/cv-project/src/App.jsx b/cv-project/src/App.jsx index 470ca26..c40cc4c 100644 --- a/cv-project/src/App.jsx +++ b/cv-project/src/App.jsx @@ -20,7 +20,7 @@ function App() { const [educationInfo, setEducationInfo] = useState([ { schoolName: "Bowie State University", - graduationDatehttps://github.com/smiggiddy/odin-codeprojects/pull/18/conflict?name=cv-project%252Fsrc%252FApp.jsx&base_oid=7801fda840d1fa1854f23ddac31c617c382a3d13&head_oid=d00749cafbac7d5524c928f28cbb5b81e06b608e: "2020", + graduationDate: "2020", fieldOfStudy: "Computer Technology: Network Security", }, ]); diff --git a/cv/README.md b/cv/README.md deleted file mode 100644 index 2a7816c..0000000 --- a/cv/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# CV Project - -This project is a web application designed to display a curriculum vitae (CV) or resume. It's built using HTML, CSS, and JavaScript to provide a dynamic and interactive presentation of personal and professional information. - -## Project Structure - -- `index.html`: The main HTML file that structures the web page content. -- `css/style.css`: The stylesheet used to visually format the CV. -- `js/script.js`: Contains JavaScript code for interactive elements and functionality. -- `assets/`: This folder contains the compiled production react code. -- `icon.svg`: The icon for the project. -- `vite.svg`: The vite logo used in the project. - -## Running the Project Locally - -To view and run this CV project on your local machine, follow these steps: - -1. **Clone the Repository** - If you haven't already, clone the project repository to your local machine using git. -2. **Open `index.html`** - Navigate to the project directory in your file explorer and double-click on the `index.html` file. This will open the CV in your default web browser. - -## Project Overview - -This project provides a clean and modern way to present a CV online. It leverages web technologies to create a visually appealing and functional document. - -## Additional Notes - -- No specific server setup is required to run this project locally, as it is primarily a client-side application. -- All dependencies and code are self-contained within the project directory. \ No newline at end of file diff --git a/cv/assets/index-BM2FMEtQ.js b/cv/assets/index-BM2FMEtQ.js deleted file mode 100644 index fdaefab..0000000 --- a/cv/assets/index-BM2FMEtQ.js +++ /dev/null @@ -1,40 +0,0 @@ -(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function t(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=t(l);fetch(l.href,o)}})();function lc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Qu={exports:{}},tl={},Ku={exports:{}},T={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Jt=Symbol.for("react.element"),oc=Symbol.for("react.portal"),ic=Symbol.for("react.fragment"),uc=Symbol.for("react.strict_mode"),sc=Symbol.for("react.profiler"),ac=Symbol.for("react.provider"),cc=Symbol.for("react.context"),fc=Symbol.for("react.forward_ref"),dc=Symbol.for("react.suspense"),pc=Symbol.for("react.memo"),mc=Symbol.for("react.lazy"),Fi=Symbol.iterator;function hc(e){return e===null||typeof e!="object"?null:(e=Fi&&e[Fi]||e["@@iterator"],typeof e=="function"?e:null)}var Yu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Xu={};function ut(e,n,t){this.props=e,this.context=n,this.refs=Xu,this.updater=t||Yu}ut.prototype.isReactComponent={};ut.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};ut.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ju(){}Ju.prototype=ut.prototype;function Vo(e,n,t){this.props=e,this.context=n,this.refs=Xu,this.updater=t||Yu}var Bo=Vo.prototype=new Ju;Bo.constructor=Vo;Gu(Bo,ut.prototype);Bo.isPureReactComponent=!0;var Mi=Array.isArray,Zu=Object.prototype.hasOwnProperty,Ho={current:null},qu={key:!0,ref:!0,__self:!0,__source:!0};function bu(e,n,t){var r,l={},o=null,i=null;if(n!=null)for(r in n.ref!==void 0&&(i=n.ref),n.key!==void 0&&(o=""+n.key),n)Zu.call(n,r)&&!qu.hasOwnProperty(r)&&(l[r]=n[r]);var u=arguments.length-2;if(u===1)l.children=t;else if(1>>1,J=C[Q];if(0>>1;Ql(Sl,L))wnl(tr,Sl)?(C[Q]=tr,C[wn]=L,Q=wn):(C[Q]=Sl,C[gn]=L,Q=gn);else if(wnl(tr,L))C[Q]=tr,C[wn]=L,Q=wn;else break e}}return z}function l(C,z){var L=C.sortIndex-z.sortIndex;return L!==0?L:C.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,u=i.now();e.unstable_now=function(){return i.now()-u}}var s=[],c=[],m=1,h=null,p=3,w=!1,S=!1,k=!1,j=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(C){for(var z=t(c);z!==null;){if(z.callback===null)r(c);else if(z.startTime<=C)r(c),z.sortIndex=z.expirationTime,n(s,z);else break;z=t(c)}}function v(C){if(k=!1,d(C),!S)if(t(s)!==null)S=!0,gl(x);else{var z=t(c);z!==null&&wl(v,z.startTime-C)}}function x(C,z){S=!1,k&&(k=!1,f(P),P=-1),w=!0;var L=p;try{for(d(z),h=t(s);h!==null&&(!(h.expirationTime>z)||C&&!Pe());){var Q=h.callback;if(typeof Q=="function"){h.callback=null,p=h.priorityLevel;var J=Q(h.expirationTime<=z);z=e.unstable_now(),typeof J=="function"?h.callback=J:h===t(s)&&r(s),d(z)}else r(s);h=t(s)}if(h!==null)var nr=!0;else{var gn=t(c);gn!==null&&wl(v,gn.startTime-z),nr=!1}return nr}finally{h=null,p=L,w=!1}}var _=!1,N=null,P=-1,W=5,I=-1;function Pe(){return!(e.unstable_now()-IC||125Q?(C.sortIndex=L,n(c,C),t(s)===null&&C===t(c)&&(k?(f(P),P=-1):k=!0,wl(v,L-Q))):(C.sortIndex=J,n(s,C),S||w||(S=!0,gl(x))),C},e.unstable_shouldYield=Pe,e.unstable_wrapCallback=function(C){var z=p;return function(){var L=p;p=z;try{return C.apply(this,arguments)}finally{p=L}}}})(ls);rs.exports=ls;var Pc=rs.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zc=H,ge=Pc;function y(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Gl=Object.prototype.hasOwnProperty,jc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,$i={},Ai={};function Lc(e){return Gl.call(Ai,e)?!0:Gl.call($i,e)?!1:jc.test(e)?Ai[e]=!0:($i[e]=!0,!1)}function Tc(e,n,t,r){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ic(e,n,t,r){if(n===null||typeof n>"u"||Tc(e,n,t,r))return!0;if(r)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function ae(e,n,t,r,l,o,i){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=o,this.removeEmptyString=i}var ne={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ne[e]=new ae(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];ne[n]=new ae(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ne[e]=new ae(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ne[e]=new ae(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ne[e]=new ae(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ne[e]=new ae(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ne[e]=new ae(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ne[e]=new ae(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ne[e]=new ae(e,5,!1,e.toLowerCase(),null,!1,!1)});var Qo=/[\-:]([a-z])/g;function Ko(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(Qo,Ko);ne[n]=new ae(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(Qo,Ko);ne[n]=new ae(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(Qo,Ko);ne[n]=new ae(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ne[e]=new ae(e,1,!1,e.toLowerCase(),null,!1,!1)});ne.xlinkHref=new ae("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ne[e]=new ae(e,1,!1,e.toLowerCase(),null,!0,!0)});function Yo(e,n,t,r){var l=ne.hasOwnProperty(n)?ne[n]:null;(l!==null?l.type!==0:r||!(2u||l[i]!==o[u]){var s=` -`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{xl=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?St(e):""}function Dc(e){switch(e.tag){case 5:return St(e.type);case 16:return St("Lazy");case 13:return St("Suspense");case 19:return St("SuspenseList");case 0:case 2:case 15:return e=Cl(e.type,!1),e;case 11:return e=Cl(e.type.render,!1),e;case 1:return e=Cl(e.type,!0),e;default:return""}}function ql(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Fn:return"Fragment";case On:return"Portal";case Xl:return"Profiler";case Go:return"StrictMode";case Jl:return"Suspense";case Zl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case us:return(e.displayName||"Context")+".Consumer";case is:return(e._context.displayName||"Context")+".Provider";case Xo:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Jo:return n=e.displayName||null,n!==null?n:ql(e.type)||"Memo";case qe:n=e._payload,e=e._init;try{return ql(e(n))}catch{}}return null}function Rc(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ql(n);case 8:return n===Go?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function pn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function as(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Oc(e){var n=as(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var l=t.get,o=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function or(e){e._valueTracker||(e._valueTracker=Oc(e))}function cs(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=as(e)?e.checked?"true":"false":e.value),e=r,e!==t?(n.setValue(e),!0):!1}function Ir(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function bl(e,n){var t=n.checked;return V({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function Bi(e,n){var t=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;t=pn(n.value!=null?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function fs(e,n){n=n.checked,n!=null&&Yo(e,"checked",n,!1)}function eo(e,n){fs(e,n);var t=pn(n.value),r=n.type;if(t!=null)r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?no(e,n.type,t):n.hasOwnProperty("defaultValue")&&no(e,n.type,pn(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Hi(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function no(e,n,t){(n!=="number"||Ir(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var kt=Array.isArray;function Yn(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l"+n.valueOf().toString()+"",n=ir.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Rt(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var Ct={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fc=["Webkit","ms","Moz","O"];Object.keys(Ct).forEach(function(e){Fc.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Ct[n]=Ct[e]})});function hs(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||Ct.hasOwnProperty(e)&&Ct[e]?(""+n).trim():n+"px"}function vs(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=t.indexOf("--")===0,l=hs(t,n[t],r);t==="float"&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}var Mc=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function lo(e,n){if(n){if(Mc[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(y(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(y(61))}if(n.style!=null&&typeof n.style!="object")throw Error(y(62))}}function oo(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var io=null;function Zo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var uo=null,Gn=null,Xn=null;function Ki(e){if(e=bt(e)){if(typeof uo!="function")throw Error(y(280));var n=e.stateNode;n&&(n=ul(n),uo(e.stateNode,e.type,n))}}function ys(e){Gn?Xn?Xn.push(e):Xn=[e]:Gn=e}function gs(){if(Gn){var e=Gn,n=Xn;if(Xn=Gn=null,Ki(e),n)for(e=0;e>>=0,e===0?32:31-(Gc(e)/Xc|0)|0}var ur=64,sr=4194304;function Et(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Fr(e,n){var t=e.pendingLanes;if(t===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=t&268435455;if(i!==0){var u=i&~l;u!==0?r=Et(u):(o&=i,o!==0&&(r=Et(o)))}else i=t&~l,i!==0?r=Et(i):o!==0&&(r=Et(o));if(r===0)return 0;if(n!==0&&n!==r&&!(n&l)&&(l=r&-r,o=n&-n,l>=o||l===16&&(o&4194240)!==0))return n;if(r&4&&(r|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Zt(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-De(n),e[n]=t}function bc(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Nt),nu=" ",tu=!1;function Us(e,n){switch(e){case"keyup":return zf.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $s(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Mn=!1;function Lf(e,n){switch(e){case"compositionend":return $s(n);case"keypress":return n.which!==32?null:(tu=!0,nu);case"textInput":return e=n.data,e===nu&&tu?null:e;default:return null}}function Tf(e,n){if(Mn)return e==="compositionend"||!oi&&Us(e,n)?(e=Fs(),xr=ti=tn=null,Mn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=iu(t)}}function Hs(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Hs(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Ws(){for(var e=window,n=Ir();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=Ir(e.document)}return n}function ii(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Af(e){var n=Ws(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Hs(t.ownerDocument.documentElement,t)){if(r!==null&&ii(t)){if(n=r.start,e=r.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var l=t.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=uu(t,o);var i=uu(t,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(n=n.createRange(),n.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(n),e.extend(i.node,i.offset)):(n.setEnd(i.node,i.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Un=null,mo=null,zt=null,ho=!1;function su(e,n,t){var r=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;ho||Un==null||Un!==Ir(r)||(r=Un,"selectionStart"in r&&ii(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),zt&&At(zt,r)||(zt=r,r=$r(mo,"onSelect"),0Vn||(e.current=ko[Vn],ko[Vn]=null,Vn--)}function O(e,n){Vn++,ko[Vn]=e.current,e.current=n}var mn={},oe=vn(mn),de=vn(!1),Pn=mn;function et(e,n){var t=e.type.contextTypes;if(!t)return mn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in t)l[o]=n[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),l}function pe(e){return e=e.childContextTypes,e!=null}function Vr(){M(de),M(oe)}function hu(e,n,t){if(oe.current!==mn)throw Error(y(168));O(oe,n),O(de,t)}function bs(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return t;r=r.getChildContext();for(var l in r)if(!(l in n))throw Error(y(108,Rc(e)||"Unknown",l));return V({},t,r)}function Br(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Pn=oe.current,O(oe,e),O(de,de.current),!0}function vu(e,n,t){var r=e.stateNode;if(!r)throw Error(y(169));t?(e=bs(e,n,Pn),r.__reactInternalMemoizedMergedChildContext=e,M(de),M(oe),O(oe,e)):M(de),O(de,t)}var Be=null,sl=!1,Ul=!1;function ea(e){Be===null?Be=[e]:Be.push(e)}function qf(e){sl=!0,ea(e)}function yn(){if(!Ul&&Be!==null){Ul=!0;var e=0,n=R;try{var t=Be;for(R=1;e>=i,l-=i,He=1<<32-De(n)+l|t<P?(W=N,N=null):W=N.sibling;var I=p(f,N,d[P],v);if(I===null){N===null&&(N=W);break}e&&N&&I.alternate===null&&n(f,N),a=o(I,a,P),_===null?x=I:_.sibling=I,_=I,N=W}if(P===d.length)return t(f,N),U&&Sn(f,P),x;if(N===null){for(;PP?(W=N,N=null):W=N.sibling;var Pe=p(f,N,I.value,v);if(Pe===null){N===null&&(N=W);break}e&&N&&Pe.alternate===null&&n(f,N),a=o(Pe,a,P),_===null?x=Pe:_.sibling=Pe,_=Pe,N=W}if(I.done)return t(f,N),U&&Sn(f,P),x;if(N===null){for(;!I.done;P++,I=d.next())I=h(f,I.value,v),I!==null&&(a=o(I,a,P),_===null?x=I:_.sibling=I,_=I);return U&&Sn(f,P),x}for(N=r(f,N);!I.done;P++,I=d.next())I=w(N,f,P,I.value,v),I!==null&&(e&&I.alternate!==null&&N.delete(I.key===null?P:I.key),a=o(I,a,P),_===null?x=I:_.sibling=I,_=I);return e&&N.forEach(function(ct){return n(f,ct)}),U&&Sn(f,P),x}function j(f,a,d,v){if(typeof d=="object"&&d!==null&&d.type===Fn&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case lr:e:{for(var x=d.key,_=a;_!==null;){if(_.key===x){if(x=d.type,x===Fn){if(_.tag===7){t(f,_.sibling),a=l(_,d.props.children),a.return=f,f=a;break e}}else if(_.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===qe&&wu(x)===_.type){t(f,_.sibling),a=l(_,d.props),a.ref=yt(f,_,d),a.return=f,f=a;break e}t(f,_);break}else n(f,_);_=_.sibling}d.type===Fn?(a=Nn(d.props.children,f.mode,v,d.key),a.return=f,f=a):(v=Tr(d.type,d.key,d.props,null,f.mode,v),v.ref=yt(f,a,d),v.return=f,f=v)}return i(f);case On:e:{for(_=d.key;a!==null;){if(a.key===_)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){t(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{t(f,a);break}else n(f,a);a=a.sibling}a=Kl(d,f.mode,v),a.return=f,f=a}return i(f);case qe:return _=d._init,j(f,a,_(d._payload),v)}if(kt(d))return S(f,a,d,v);if(dt(d))return k(f,a,d,v);hr(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(t(f,a.sibling),a=l(a,d),a.return=f,f=a):(t(f,a),a=Ql(d,f.mode,v),a.return=f,f=a),i(f)):t(f,a)}return j}var tt=la(!0),oa=la(!1),Qr=vn(null),Kr=null,Wn=null,ci=null;function fi(){ci=Wn=Kr=null}function di(e){var n=Qr.current;M(Qr),e._currentValue=n}function Co(e,n,t){for(;e!==null;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,r!==null&&(r.childLanes|=n)):r!==null&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Zn(e,n){Kr=e,ci=Wn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(fe=!0),e.firstContext=null)}function _e(e){var n=e._currentValue;if(ci!==e)if(e={context:e,memoizedValue:n,next:null},Wn===null){if(Kr===null)throw Error(y(308));Wn=e,Kr.dependencies={lanes:0,firstContext:e}}else Wn=Wn.next=e;return n}var xn=null;function pi(e){xn===null?xn=[e]:xn.push(e)}function ia(e,n,t,r){var l=n.interleaved;return l===null?(t.next=t,pi(n)):(t.next=l.next,l.next=t),n.interleaved=t,Ge(e,r)}function Ge(e,n){e.lanes|=n;var t=e.alternate;for(t!==null&&(t.lanes|=n),t=e,e=e.return;e!==null;)e.childLanes|=n,t=e.alternate,t!==null&&(t.childLanes|=n),t=e,e=e.return;return t.tag===3?t.stateNode:null}var be=!1;function mi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ua(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Qe(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function an(e,n,t){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,D&2){var l=r.pending;return l===null?n.next=n:(n.next=l.next,l.next=n),r.pending=n,Ge(e,t)}return l=r.interleaved,l===null?(n.next=n,pi(r)):(n.next=l.next,l.next=n),r.interleaved=n,Ge(e,t)}function _r(e,n,t){if(n=n.updateQueue,n!==null&&(n=n.shared,(t&4194240)!==0)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,bo(e,t)}}function Su(e,n){var t=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,t===r)){var l=null,o=null;if(t=t.firstBaseUpdate,t!==null){do{var i={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};o===null?l=o=i:o=o.next=i,t=t.next}while(t!==null);o===null?l=o=n:o=o.next=n}else l=o=n;t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function Yr(e,n,t,r){var l=e.updateQueue;be=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,u=l.shared.pending;if(u!==null){l.shared.pending=null;var s=u,c=s.next;s.next=null,i===null?o=c:i.next=c,i=s;var m=e.alternate;m!==null&&(m=m.updateQueue,u=m.lastBaseUpdate,u!==i&&(u===null?m.firstBaseUpdate=c:u.next=c,m.lastBaseUpdate=s))}if(o!==null){var h=l.baseState;i=0,m=c=s=null,u=o;do{var p=u.lane,w=u.eventTime;if((r&p)===p){m!==null&&(m=m.next={eventTime:w,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var S=e,k=u;switch(p=n,w=t,k.tag){case 1:if(S=k.payload,typeof S=="function"){h=S.call(w,h,p);break e}h=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=k.payload,p=typeof S=="function"?S.call(w,h,p):S,p==null)break e;h=V({},h,p);break e;case 2:be=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[u]:p.push(u))}else w={eventTime:w,lane:p,tag:u.tag,payload:u.payload,callback:u.callback,next:null},m===null?(c=m=w,s=h):m=m.next=w,i|=p;if(u=u.next,u===null){if(u=l.shared.pending,u===null)break;p=u,u=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(m===null&&(s=h),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=m,n=l.shared.interleaved,n!==null){l=n;do i|=l.lane,l=l.next;while(l!==n)}else o===null&&(l.shared.lanes=0);Ln|=i,e.lanes=i,e.memoizedState=h}}function ku(e,n,t){if(e=n.effects,n.effects=null,e!==null)for(n=0;nt?t:4,e(!0);var r=Al.transition;Al.transition={};try{e(!1),n()}finally{R=t,Al.transition=r}}function Ca(){return Ne().memoizedState}function td(e,n,t){var r=fn(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},_a(e))Na(n,t);else if(t=ia(e,n,t,r),t!==null){var l=ue();Re(t,e,r,l),Pa(t,n,r)}}function rd(e,n,t){var r=fn(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(_a(e))Na(n,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=n.lastRenderedReducer,o!==null))try{var i=n.lastRenderedState,u=o(i,t);if(l.hasEagerState=!0,l.eagerState=u,Oe(u,i)){var s=n.interleaved;s===null?(l.next=l,pi(n)):(l.next=s.next,s.next=l),n.interleaved=l;return}}catch{}finally{}t=ia(e,n,l,r),t!==null&&(l=ue(),Re(t,e,r,l),Pa(t,n,r))}}function _a(e){var n=e.alternate;return e===A||n!==null&&n===A}function Na(e,n){jt=Xr=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function Pa(e,n,t){if(t&4194240){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,bo(e,t)}}var Jr={readContext:_e,useCallback:te,useContext:te,useEffect:te,useImperativeHandle:te,useInsertionEffect:te,useLayoutEffect:te,useMemo:te,useReducer:te,useRef:te,useState:te,useDebugValue:te,useDeferredValue:te,useTransition:te,useMutableSource:te,useSyncExternalStore:te,useId:te,unstable_isNewReconciler:!1},ld={readContext:_e,useCallback:function(e,n){return Me().memoizedState=[e,n===void 0?null:n],e},useContext:_e,useEffect:xu,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,Pr(4194308,4,wa.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Pr(4194308,4,e,n)},useInsertionEffect:function(e,n){return Pr(4,2,e,n)},useMemo:function(e,n){var t=Me();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=Me();return n=t!==void 0?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=td.bind(null,A,e),[r.memoizedState,e]},useRef:function(e){var n=Me();return e={current:e},n.memoizedState=e},useState:Eu,useDebugValue:Ei,useDeferredValue:function(e){return Me().memoizedState=e},useTransition:function(){var e=Eu(!1),n=e[0];return e=nd.bind(null,e[1]),Me().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=A,l=Me();if(U){if(t===void 0)throw Error(y(407));t=t()}else{if(t=n(),q===null)throw Error(y(349));jn&30||fa(r,n,t)}l.memoizedState=t;var o={value:t,getSnapshot:n};return l.queue=o,xu(pa.bind(null,r,o,e),[e]),r.flags|=2048,Gt(9,da.bind(null,r,o,t,n),void 0,null),t},useId:function(){var e=Me(),n=q.identifierPrefix;if(U){var t=We,r=He;t=(r&~(1<<32-De(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Kt++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),t==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[Ue]=n,e[Ht]=r,Ma(e,n,!1,!1),n.stateNode=e;e:{switch(i=oo(t,r),t){case"dialog":F("cancel",e),F("close",e),l=r;break;case"iframe":case"object":case"embed":F("load",e),l=r;break;case"video":case"audio":for(l=0;lot&&(n.flags|=128,r=!0,gt(o,!1),n.lanes=4194304)}else{if(!r)if(e=Gr(i),e!==null){if(n.flags|=128,r=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),gt(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!U)return re(n),null}else 2*K()-o.renderingStartTime>ot&&t!==1073741824&&(n.flags|=128,r=!0,gt(o,!1),n.lanes=4194304);o.isBackwards?(i.sibling=n.child,n.child=i):(t=o.last,t!==null?t.sibling=i:n.child=i,o.last=i)}return o.tail!==null?(n=o.tail,o.rendering=n,o.tail=n.sibling,o.renderingStartTime=K(),n.sibling=null,t=$.current,O($,r?t&1|2:t&1),n):(re(n),null);case 22:case 23:return zi(),r=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(n.flags|=8192),r&&n.mode&1?he&1073741824&&(re(n),n.subtreeFlags&6&&(n.flags|=8192)):re(n),null;case 24:return null;case 25:return null}throw Error(y(156,n.tag))}function dd(e,n){switch(si(n),n.tag){case 1:return pe(n.type)&&Vr(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return rt(),M(de),M(oe),yi(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return vi(n),null;case 13:if(M($),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(y(340));nt()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return M($),null;case 4:return rt(),null;case 10:return di(n.type._context),null;case 22:case 23:return zi(),null;case 24:return null;default:return null}}var yr=!1,le=!1,pd=typeof WeakSet=="function"?WeakSet:Set,E=null;function Qn(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){B(e,n,r)}else t.current=null}function Do(e,n,t){try{t()}catch(r){B(e,n,r)}}var Ru=!1;function md(e,n){if(vo=Mr,e=Ws(),ii(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&r.rangeCount!==0){t=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{t.nodeType,o.nodeType}catch{t=null;break e}var i=0,u=-1,s=-1,c=0,m=0,h=e,p=null;n:for(;;){for(var w;h!==t||l!==0&&h.nodeType!==3||(u=i+l),h!==o||r!==0&&h.nodeType!==3||(s=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(w=h.firstChild)!==null;)p=h,h=w;for(;;){if(h===e)break n;if(p===t&&++c===l&&(u=i),p===o&&++m===r&&(s=i),(w=h.nextSibling)!==null)break;h=p,p=h.parentNode}h=w}t=u===-1||s===-1?null:{start:u,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(yo={focusedElem:e,selectionRange:t},Mr=!1,E=n;E!==null;)if(n=E,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,E=e;else for(;E!==null;){n=E;try{var S=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var k=S.memoizedProps,j=S.memoizedState,f=n.stateNode,a=f.getSnapshotBeforeUpdate(n.elementType===n.type?k:je(n.type,k),j);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=n.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(v){B(n,n.return,v)}if(e=n.sibling,e!==null){e.return=n.return,E=e;break}E=n.return}return S=Ru,Ru=!1,S}function Lt(e,n,t){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&Do(n,t,o)}l=l.next}while(l!==r)}}function fl(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function Ro(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function Aa(e){var n=e.alternate;n!==null&&(e.alternate=null,Aa(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Ue],delete n[Ht],delete n[So],delete n[Jf],delete n[Zf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Va(e){return e.tag===5||e.tag===3||e.tag===4}function Ou(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Va(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Oo(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=Ar));else if(r!==4&&(e=e.child,e!==null))for(Oo(e,n,t),e=e.sibling;e!==null;)Oo(e,n,t),e=e.sibling}function Fo(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Fo(e,n,t),e=e.sibling;e!==null;)Fo(e,n,t),e=e.sibling}var b=null,Le=!1;function Ze(e,n,t){for(t=t.child;t!==null;)Ba(e,n,t),t=t.sibling}function Ba(e,n,t){if($e&&typeof $e.onCommitFiberUnmount=="function")try{$e.onCommitFiberUnmount(rl,t)}catch{}switch(t.tag){case 5:le||Qn(t,n);case 6:var r=b,l=Le;b=null,Ze(e,n,t),b=r,Le=l,b!==null&&(Le?(e=b,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):b.removeChild(t.stateNode));break;case 18:b!==null&&(Le?(e=b,t=t.stateNode,e.nodeType===8?Ml(e.parentNode,t):e.nodeType===1&&Ml(e,t),Ut(e)):Ml(b,t.stateNode));break;case 4:r=b,l=Le,b=t.stateNode.containerInfo,Le=!0,Ze(e,n,t),b=r,Le=l;break;case 0:case 11:case 14:case 15:if(!le&&(r=t.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Do(t,n,i),l=l.next}while(l!==r)}Ze(e,n,t);break;case 1:if(!le&&(Qn(t,n),r=t.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(u){B(t,n,u)}Ze(e,n,t);break;case 21:Ze(e,n,t);break;case 22:t.mode&1?(le=(r=le)||t.memoizedState!==null,Ze(e,n,t),le=r):Ze(e,n,t);break;default:Ze(e,n,t)}}function Fu(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new pd),n.forEach(function(r){var l=xd.bind(null,e,r);t.has(r)||(t.add(r),r.then(l,l))})}}function ze(e,n){var t=n.deletions;if(t!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=K()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*vd(r/1960))-r,10e?16:e,rn===null)var r=!1;else{if(e=rn,rn=null,br=0,D&6)throw Error(y(331));var l=D;for(D|=4,E=e.current;E!==null;){var o=E,i=o.child;if(E.flags&16){var u=o.deletions;if(u!==null){for(var s=0;sK()-Ni?_n(e,0):_i|=t),me(e,n)}function Ja(e,n){n===0&&(e.mode&1?(n=sr,sr<<=1,!(sr&130023424)&&(sr=4194304)):n=1);var t=ue();e=Ge(e,n),e!==null&&(Zt(e,n,t),me(e,t))}function Ed(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),Ja(e,t)}function xd(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(n),Ja(e,t)}var Za;Za=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||de.current)fe=!0;else{if(!(e.lanes&t)&&!(n.flags&128))return fe=!1,cd(e,n,t);fe=!!(e.flags&131072)}else fe=!1,U&&n.flags&1048576&&na(n,Wr,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;zr(e,n),e=n.pendingProps;var l=et(n,oe.current);Zn(n,t),l=wi(null,n,r,e,l,t);var o=Si();return n.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,pe(r)?(o=!0,Br(n)):o=!1,n.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,mi(n),l.updater=cl,n.stateNode=l,l._reactInternals=n,No(n,r,e,t),n=jo(null,n,r,!0,o,t)):(n.tag=0,U&&o&&ui(n),ie(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(zr(e,n),e=n.pendingProps,l=r._init,r=l(r._payload),n.type=r,l=n.tag=_d(r),e=je(r,e),l){case 0:n=zo(null,n,r,e,t);break e;case 1:n=Tu(null,n,r,e,t);break e;case 11:n=ju(null,n,r,e,t);break e;case 14:n=Lu(null,n,r,je(r.type,e),t);break e}throw Error(y(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),zo(e,n,r,l,t);case 1:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),Tu(e,n,r,l,t);case 3:e:{if(Ra(n),e===null)throw Error(y(387));r=n.pendingProps,o=n.memoizedState,l=o.element,ua(e,n),Yr(n,r,null,t);var i=n.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},n.updateQueue.baseState=o,n.memoizedState=o,n.flags&256){l=lt(Error(y(423)),n),n=Iu(e,n,r,t,l);break e}else if(r!==l){l=lt(Error(y(424)),n),n=Iu(e,n,r,t,l);break e}else for(ve=sn(n.stateNode.containerInfo.firstChild),ye=n,U=!0,Te=null,t=oa(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(nt(),r===l){n=Xe(e,n,t);break e}ie(e,n,r,t)}n=n.child}return n;case 5:return sa(n),e===null&&xo(n),r=n.type,l=n.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,go(r,l)?i=null:o!==null&&go(r,o)&&(n.flags|=32),Da(e,n),ie(e,n,i,t),n.child;case 6:return e===null&&xo(n),null;case 13:return Oa(e,n,t);case 4:return hi(n,n.stateNode.containerInfo),r=n.pendingProps,e===null?n.child=tt(n,null,r,t):ie(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),ju(e,n,r,l,t);case 7:return ie(e,n,n.pendingProps,t),n.child;case 8:return ie(e,n,n.pendingProps.children,t),n.child;case 12:return ie(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,o=n.memoizedProps,i=l.value,O(Qr,r._currentValue),r._currentValue=i,o!==null)if(Oe(o.value,i)){if(o.children===l.children&&!de.current){n=Xe(e,n,t);break e}}else for(o=n.child,o!==null&&(o.return=n);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=Qe(-1,t&-t),s.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var m=c.pending;m===null?s.next=s:(s.next=m.next,m.next=s),c.pending=s}}o.lanes|=t,s=o.alternate,s!==null&&(s.lanes|=t),Co(o.return,t,n),u.lanes|=t;break}s=s.next}}else if(o.tag===10)i=o.type===n.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(y(341));i.lanes|=t,u=i.alternate,u!==null&&(u.lanes|=t),Co(i,t,n),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===n){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}ie(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Zn(n,t),l=_e(l),r=r(l),n.flags|=1,ie(e,n,r,t),n.child;case 14:return r=n.type,l=je(r,n.pendingProps),l=je(r.type,l),Lu(e,n,r,l,t);case 15:return Ta(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),zr(e,n),n.tag=1,pe(r)?(e=!0,Br(n)):e=!1,Zn(n,t),za(n,r,l),No(n,r,l,t),jo(null,n,r,!0,e,t);case 19:return Fa(e,n,t);case 22:return Ia(e,n,t)}throw Error(y(156,n.tag))};function qa(e,n){return _s(e,n)}function Cd(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function xe(e,n,t,r){return new Cd(e,n,t,r)}function Li(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _d(e){if(typeof e=="function")return Li(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xo)return 11;if(e===Jo)return 14}return 2}function dn(e,n){var t=e.alternate;return t===null?(t=xe(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Tr(e,n,t,r,l,o){var i=2;if(r=e,typeof e=="function")Li(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Fn:return Nn(t.children,l,o,n);case Go:i=8,l|=8;break;case Xl:return e=xe(12,t,n,l|2),e.elementType=Xl,e.lanes=o,e;case Jl:return e=xe(13,t,n,l),e.elementType=Jl,e.lanes=o,e;case Zl:return e=xe(19,t,n,l),e.elementType=Zl,e.lanes=o,e;case ss:return pl(t,l,o,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case is:i=10;break e;case us:i=9;break e;case Xo:i=11;break e;case Jo:i=14;break e;case qe:i=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return n=xe(i,t,n,l),n.elementType=e,n.type=r,n.lanes=o,n}function Nn(e,n,t,r){return e=xe(7,e,r,n),e.lanes=t,e}function pl(e,n,t,r){return e=xe(22,e,r,n),e.elementType=ss,e.lanes=t,e.stateNode={isHidden:!1},e}function Ql(e,n,t){return e=xe(6,e,null,n),e.lanes=t,e}function Kl(e,n,t){return n=xe(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function Nd(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Nl(0),this.expirationTimes=Nl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Nl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ti(e,n,t,r,l,o,i,u,s){return e=new Nd(e,n,t,u,s),n===1?(n=1,o===!0&&(n|=8)):n=0,o=xe(3,null,null,n),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},mi(o),e}function Pd(e,n,t){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(tc)}catch(e){console.error(e)}}tc(),ts.exports=we;var Id=ts.exports,Wu=Id;Yl.createRoot=Wu.createRoot,Yl.hydrateRoot=Wu.hydrateRoot;function Ie(e){return g.jsxs("div",{className:"input",children:[e.label?g.jsx("label",{htmlFor:e.name,children:e.labelName}):null,g.jsx("input",{name:e.name,id:e.name,type:e.type,value:e.value,onChange:e.onChange,placeholder:e.placeholder})]})}function Dd(e){const[n,t]=H.useState(e.basicInfo.fullName),[r,l]=H.useState(e.basicInfo.location),[o,i]=H.useState(e.basicInfo.phone),[u,s]=H.useState(e.basicInfo.email),c={display:"flex",flexDirection:"column"};return g.jsx(g.Fragment,{children:g.jsx("div",{className:"general-info-form",children:g.jsx("form",{action:"",children:g.jsxs("div",{style:c,children:[g.jsx("h2",{className:"general-info-header",children:"Personal Details"}),g.jsx(Ie,{label:!0,name:"fullName",labelName:"Full name",value:n,placeholder:"",onChange:m=>{t(m.target.value),e.setBasicInfo({...e.basicInfo,fullName:m.target.value})}}),g.jsx(Ie,{label:!0,name:"location",labelName:"Location",placeholder:"",value:r,onChange:m=>{l(m.target.value),e.setBasicInfo({...e.basicInfo,location:m.target.value})}}),g.jsx(Ie,{label:!0,type:"email",name:"email",labelName:"Email",placeholder:"",value:u,onChange:m=>{s(m.target.value),e.setBasicInfo({...e.basicInfo,email:m.target.value})}}),g.jsx(Ie,{type:"text",label:!0,labelName:"Phone",placeholder:"",value:o,onChange:m=>{i(m.target.value),e.setBasicInfo({...e.basicInfo,phone:m.target.value})}})]})})})})}function Rd(e){const n=e.basicInfo;return g.jsx(g.Fragment,{children:n?g.jsxs("div",{className:"basic-info",children:[g.jsx("h1",{children:n.fullName}),g.jsxs("div",{className:"basic-info-details",children:[g.jsx("p",{children:n.location}),g.jsx("p",{children:n.email}),g.jsx("p",{children:n.phone})]})]}):null})}function Od(e){return g.jsxs("div",{className:"education-info",children:[g.jsx("h2",{children:"Education"}),g.jsx(Fd,{educationInfo:e.educationInfo,setEducationInfo:e.setEducationInfo,setEditEducation:e.setEditEducation})]})}function Fd(e){return g.jsx(g.Fragment,{children:e.educationInfo.map(n=>g.jsxs("div",{className:"education-item",children:[g.jsx("h2",{children:n.schoolName}),g.jsxs("p",{children:["Graduation: ",n.graduationDate+" ",n.fieldOfStudy]}),g.jsx("button",{onClick:()=>e.setEditEducation(n),children:"edit"}),g.jsx("button",{onClick:()=>Md(e.educationInfo,n.schoolName,e.setEducationInfo),children:"remove"})]},n.schoolName))})}function Md(e,n,t){const r=e.filter(l=>l.schoolName!==n);t(r)}function it(e){return g.jsx("button",{className:`${e.className} + btn`,onClick:e.onClick,children:e.text})}function Ud(e){return g.jsx(g.Fragment,{children:g.jsx($d,{isActive:e.educationItemActive,educationInfo:e.educationInfo,setEducationInfo:e.setEducationInfo,editSchool:e.editEducation})})}function $d({isActive:e,educationInfo:n,setEducationInfo:t,editSchool:r}){const[l,o]=H.useState(""),[i,u]=H.useState(""),[s,c]=H.useState("");H.useEffect(()=>{r?(o(r.graduationDate),u(r.schoolName),c(r.fieldOfStudy)):(o(""),u(""),c(""))},[r]);let m=r?n.findIndex(p=>p.id===r.id):null;const h={display:"flex",flexDirection:"column"};return g.jsx(g.Fragment,{children:e?g.jsxs("div",{className:"education-info-form",children:[g.jsx("h2",{className:"general-info-header",children:"Education History"}),g.jsxs("form",{action:"",style:h,onSubmit:p=>console.log(p.target),children:[g.jsx(Ie,{label:!0,labelName:"School",name:"School",type:"text",placeholder:"",value:i,onChange:p=>u(p.target.value)}),g.jsx(Ie,{label:!0,labelName:"Graduation date",name:"graduationDate",type:"text",placeholder:"",value:l,onChange:p=>o(p.target.value)}),g.jsx(Ie,{label:!0,labelName:"Degree/Field of study",name:"degree",type:"text",placeholder:"",value:s,onChange:p=>c(p.target.value)}),g.jsxs("div",{className:"btn-group",children:[g.jsx(it,{autoFocus:!0,type:"submit",className:"submit-btn",onClick:p=>{p.preventDefault(),console.log(i,l,s);const w=[...n];m!==-1&&m!==null?(w[m]={schoolName:i,graduationDate:l,fieldOfStudy:s},t(w)):t([...n,{schoolName:i,fieldOfStudy:s,graduationDate:l,id:crypto.randomUUID()}]),o(""),u(""),c("")},text:"Submit"}),g.jsx(it,{onClick:p=>{p.preventDefault(),o(""),u(""),c(""),m=null},text:"Clear"})]})]})]}):null})}function Ad(e){return g.jsx(g.Fragment,{children:g.jsx(Vd,{setJobs:e.setEmploymentHistory,jobs:e.employmentHistory,isActive:e.showJobForm})})}function Vd({isActive:e,jobs:n,setJobs:t}){const[r,l]=H.useState(""),[o,i]=H.useState(""),[u,s]=H.useState([]),[c,m]=H.useState(""),[h,p]=H.useState(""),w={display:"flex",flexDirection:"column"};function S(){l(""),i(""),s(""),p(""),m("")}function k(j,f){j.preventDefault();const a=crypto.randomUUID(),d={...f,id:a};t([...n,d]),S()}return g.jsx(g.Fragment,{children:e?g.jsxs("div",{className:"job-info-form",children:[g.jsx("h2",{className:"general-info-header",children:"Employment History"}),g.jsxs("form",{action:"",style:w,children:[g.jsx(Ie,{name:"employer",label:!0,labelName:"Employer",type:"text",placeholder:"",value:r,onChange:j=>l(j.target.value)}),g.jsx(Ie,{name:"jobTitle",label:!0,labelName:"Job title",type:"text",placeholder:"",value:o,onChange:j=>i(j.target.value)}),g.jsx(Ie,{name:"startDate",label:!0,labelName:"Start date",type:"text",placeholder:"",value:c,onChange:j=>m(j.target.value)}),g.jsx(Ie,{name:"endDate",label:!0,labelName:"End date",type:"text",placeholder:"",value:h,onChange:j=>p(j.target.value)}),g.jsxs("div",{className:"input",children:[g.jsx("label",{children:"Description"}),g.jsx("textarea",{name:"jobDescription",value:u,onChange:j=>s(j.target.value),rows:"5",maxLength:"400"})]}),g.jsxs("div",{className:"btn-group",children:[g.jsx(it,{onClick:j=>k(j,{employer:r,jobTitle:o,jobDescription:u,employmentStart:c,employmentEnd:h}),className:"submit-btn",text:"Submit"}),g.jsx(it,{onClick:j=>{j.preventDefault(),S()},className:"clear-btn",text:"Clear"})]})]})]}):null})}function Bd(e){return g.jsxs("div",{className:"job-info",children:[g.jsx("h2",{children:"Experience"}),g.jsx(Hd,{jobs:e.employmentHistory})]})}function Hd(e){return g.jsx(g.Fragment,{children:e.jobs.map(n=>g.jsxs("div",{className:"job",children:[g.jsxs("div",{className:"job-details",children:[g.jsx("h2",{className:"job-employer",children:n.employer}),g.jsxs("p",{className:"job-dates",children:[n.employmentStart," - ",n.employmentEnd]})]}),g.jsx("h3",{className:"job-title",children:n.jobTitle}),g.jsx("p",{children:n.jobDescription})]},n.id))})}function Wd(){const[e,n]=H.useState({fullName:"Marvin Gaye",phone:"301-240-5555",email:"mgaye@motown.com",location:"Detriot, MI"}),[t,r]=H.useState([]),[l,o]=H.useState(null),[i,u]=H.useState([]),[s,c]=H.useState(!1),[m,h]=H.useState(!1);return g.jsxs("div",{className:"container",children:[g.jsxs("div",{className:"form",children:[g.jsx(Dd,{setBasicInfo:n,basicInfo:e}),g.jsxs("div",{className:"btn-group",children:[g.jsx(it,{onClick:()=>{h(!m)},text:"Add Education",className:"normal-btn"}),g.jsx(it,{onClick:()=>c(!s),text:"Add Employment",className:"normal-btn"})]}),g.jsx(Ud,{educationInfo:t,setEducationInfo:r,setEditEducation:o,editEducation:l,educationItemActive:m}),g.jsx(Ad,{employmentHistory:i,setEmploymentHistory:u,showJobForm:s})]}),g.jsxs("div",{className:"resume",children:[g.jsx(Rd,{basicInfo:e}),g.jsx(Od,{educationInfo:t,setEditEducation:o,setEducationInfo:r}),g.jsx(Bd,{employmentHistory:i})]})]})}Yl.createRoot(document.getElementById("root")).render(g.jsx(Sc.StrictMode,{children:g.jsx(Wd,{})})); diff --git a/cv/assets/index-CvrChzGg.css b/cv/assets/index-CvrChzGg.css deleted file mode 100644 index 323aa1d..0000000 --- a/cv/assets/index-CvrChzGg.css +++ /dev/null @@ -1 +0,0 @@ -.input{display:flex;flex-direction:column;font-size:1.3rem;line-height:1.3;font-family:Inter Tight,sans-serif;font-optical-sizing:auto;font-style:normal}.input label{padding:10px 0 5px;font-size:1rem}.input input{font-size:1.1rem;padding:.5rem;border-radius:.4rem;outline:1px solid hsl(var(--light-gray));border:none}.input input:focus{outline:2px solid hsl(var(--dark-gray))}:root{--lightest-gray: 208, 21%, 93%;--lighter-gray: 210, 16%, 76%;--light-gray: 208, 12%, 58%;--dark-gray: 207, 12%, 43%;--darker-gray: 209, 15%, 28%;--dark-blue: 246, 87%, 30%;--blue: 219, 100%, 57%;--light-blue: 219, 100%, 69%;--green: 158, 95%, 34%;--green-hover: 158, 95%, 28%}.btn{border-radius:.4rem;padding:1rem;cursor:pointer;text-decoration:none;display:inline-block;border:none;font-size:1.2rem;flex:1}.normal-btn{background-color:hsl(var(--light-gray));transition:background-color .5s ease-in-out,color .5s ease-in-out}.normal-btn:hover{background-color:hsl(var(--dark-gray));color:hsl(var(--lighter-gray))}.submit-btn{background-color:hsl(var(--green));transition:background-color .6s}.submit-btn:hover{background-color:hsl(var(--green-hover))}.clear-btn{background-color:hsl(var(--lighter-gray));transition:background-color .6s}.clear-btn:hover{background-color:hsl(var(--light-gray))}:root{--font-size: 16px;--default-border-radius: .5rem;--default-shadow: 0 4px 6px hsla(0, 0%, 0%, .2);--small-shadow: 0 1px 3px hsla(0, 0%, 0%, .2);--large-shadow: 0 15px 35px hsla(0, 0%, 0%, .2);--tight-shadow: 0 4px 6px rgba(0, 0, 0, .3);--wide-shadow: 0 5px 15px rgba(0, 0, 0, .15);--lightest-gray: 208, 21%, 93%;--lighter-gray: 210, 16%, 76%;--light-gray: 208, 12%, 58%;--dark-gray: 207, 12%, 43%;--darker-gray: 209, 15%, 28%;--white-color: 360, 100%, 100%}html,body{padding:0;margin:0;font-size:var(--font-size);background:hsl(var(--lightest-gray))}textarea{resize:none}.container{display:flex;justify-content:center;padding:24px;gap:30px}.resume{display:flex;flex-direction:column;min-width:800px;max-width:850px;background:#fff;font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal}.form{max-width:450px;min-width:400px}.general-info-form{padding:20px;margin-bottom:1rem;border-radius:var(--default-border-radius);box-shadow:var(--tight-shadow),var(--wide-shadow);background:hsl(var(--white-color))}.general-info-header{font-family:Inter Tight,sans-serif;font-optical-sizing:auto;font-weight:700;font-style:normal}.basic-info{display:flex;flex-direction:column;align-items:center}.basic-info p{padding:0;margin:0}.basic-info-details{display:flex;gap:1rem}.education-info-form,.job-info-form{padding:20px;margin-bottom:1rem;background:hsl(var(--white-color));border-radius:var(--default-border-radius)}.education-info{display:flex;flex-direction:column;justify-content:center}.education-info>h2,.job-info>h2{align-self:center;width:100%;display:inline-block;text-align:center;background-color:hsl(var(--lighter-gray))}.education-item{padding:10px 25px}.education-item h2,p{padding:0;margin:0}.btn-group{display:flex;justify-content:center;margin:30px 0 20px;gap:10px}.job{padding:1rem}.job-details{display:flex;align-items:baseline;justify-content:space-between}.job-details>h2{margin-bottom:0;padding-bottom:0}.job-dates{padding:0}.job-title{margin-top:0} diff --git a/cv/assets/index-Czg_N-13.css b/cv/assets/index-Czg_N-13.css deleted file mode 100644 index 35bf1bc..0000000 --- a/cv/assets/index-Czg_N-13.css +++ /dev/null @@ -1 +0,0 @@ -.input{display:flex;flex-direction:column;font-size:1.3rem;line-height:1.3;font-family:Inter Tight,sans-serif;font-optical-sizing:auto;font-style:normal}.input label{padding:10px 0 5px;font-size:1rem}.input input{font-size:1.1rem;padding:.5rem;border-radius:.4rem;outline:1px solid hsl(var(--light-gray));border:none}.input input:focus{outline:2px solid hsl(var(--dark-gray))}:root{--lightest-gray: 208, 21%, 93%;--lighter-gray: 210, 16%, 76%;--light-gray: 208, 12%, 58%;--dark-gray: 207, 12%, 43%;--darker-gray: 209, 15%, 28%;--dark-blue: 246, 87%, 30%;--blue: 219, 100%, 57%;--light-blue: 219, 100%, 69%;--green: 158, 95%, 34%;--green-hover: 158, 95%, 28%}.btn{border-radius:.4rem;padding:1rem;cursor:pointer;text-decoration:none;display:inline-block;border:none;font-size:1.2rem;flex:1}.normal-btn{background-color:hsl(var(--light-gray));transition:background-color .5s ease-in-out,color .5s ease-in-out}.normal-btn:hover{background-color:hsl(var(--dark-gray));color:hsl(var(--lighter-gray))}.submit-btn{background-color:hsl(var(--green));transition:background-color .6s}.submit-btn:hover{background-color:hsl(var(--green-hover))}.clear-btn{background-color:hsl(var(--lighter-gray));transition:background-color .6s}.clear-btn:hover{background-color:hsl(var(--light-gray))}:root{--font-size: 16px;--default-border-radius: .5rem;--default-shadow: 0 4px 6px hsla(0, 0%, 0%, .2);--small-shadow: 0 1px 3px hsla(0, 0%, 0%, .2);--large-shadow: 0 15px 35px hsla(0, 0%, 0%, .2);--tight-shadow: 0 4px 6px rgba(0, 0, 0, .3);--wide-shadow: 0 5px 15px rgba(0, 0, 0, .15);--lightest-gray: 208, 21%, 93%;--lighter-gray: 210, 16%, 76%;--light-gray: 208, 12%, 58%;--dark-gray: 207, 12%, 43%;--darker-gray: 209, 15%, 28%;--white-color: 360, 100%, 100%}html,body{padding:0;margin:0;font-size:var(--font-size);background:hsl(var(--lightest-gray))}textarea{resize:none}.container{display:flex;justify-content:center;padding:24px;gap:30px}.resume{display:flex;flex-direction:column;min-width:800px;max-width:850px;background:#fff;font-family:Playfair Display,serif;font-optical-sizing:auto;font-style:normal;min-height:90vh}.form{max-width:450px;min-width:400px}.general-info-form{padding:20px;margin-bottom:1rem;border-radius:var(--default-border-radius);box-shadow:var(--tight-shadow),var(--wide-shadow);background:hsl(var(--white-color))}.general-info-header{font-family:Inter Tight,sans-serif;font-optical-sizing:auto;font-weight:700;font-style:normal}.basic-info{display:flex;flex-direction:column;align-items:center}.basic-info p{padding:0;margin:0}.basic-info-details{display:flex;gap:1rem}.education-info-form,.job-info-form{padding:20px;margin-bottom:1rem;background:hsl(var(--white-color));border-radius:var(--default-border-radius)}.education-info{display:flex;flex-direction:column;justify-content:center}.education-info>h2,.job-info>h2{align-self:center;width:100%;display:inline-block;text-align:center;background-color:hsl(var(--lighter-gray))}.education-item{padding:10px 25px}.education-item h2,p{padding:0;margin:0}.btn-group{display:flex;justify-content:center;margin:30px 0 20px;gap:10px}.job{padding:1rem}.job-details{display:flex;align-items:baseline;justify-content:space-between}.job-details>h2{margin-bottom:0;padding-bottom:0}.job-dates{padding:0}.job-title{margin-top:0} diff --git a/cv/assets/index-Xi3UETwU.js b/cv/assets/index-Xi3UETwU.js deleted file mode 100644 index deaf6e2..0000000 --- a/cv/assets/index-Xi3UETwU.js +++ /dev/null @@ -1,40 +0,0 @@ -(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function t(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=t(l);fetch(l.href,o)}})();function lc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Qu={exports:{}},tl={},Ku={exports:{}},T={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Jt=Symbol.for("react.element"),oc=Symbol.for("react.portal"),ic=Symbol.for("react.fragment"),uc=Symbol.for("react.strict_mode"),sc=Symbol.for("react.profiler"),ac=Symbol.for("react.provider"),cc=Symbol.for("react.context"),fc=Symbol.for("react.forward_ref"),dc=Symbol.for("react.suspense"),pc=Symbol.for("react.memo"),mc=Symbol.for("react.lazy"),Fi=Symbol.iterator;function hc(e){return e===null||typeof e!="object"?null:(e=Fi&&e[Fi]||e["@@iterator"],typeof e=="function"?e:null)}var Yu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Xu={};function ut(e,n,t){this.props=e,this.context=n,this.refs=Xu,this.updater=t||Yu}ut.prototype.isReactComponent={};ut.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};ut.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ju(){}Ju.prototype=ut.prototype;function Vo(e,n,t){this.props=e,this.context=n,this.refs=Xu,this.updater=t||Yu}var Bo=Vo.prototype=new Ju;Bo.constructor=Vo;Gu(Bo,ut.prototype);Bo.isPureReactComponent=!0;var Mi=Array.isArray,Zu=Object.prototype.hasOwnProperty,Ho={current:null},qu={key:!0,ref:!0,__self:!0,__source:!0};function bu(e,n,t){var r,l={},o=null,i=null;if(n!=null)for(r in n.ref!==void 0&&(i=n.ref),n.key!==void 0&&(o=""+n.key),n)Zu.call(n,r)&&!qu.hasOwnProperty(r)&&(l[r]=n[r]);var u=arguments.length-2;if(u===1)l.children=t;else if(1>>1,J=C[Q];if(0>>1;Ql(Sl,L))wnl(tr,Sl)?(C[Q]=tr,C[wn]=L,Q=wn):(C[Q]=Sl,C[gn]=L,Q=gn);else if(wnl(tr,L))C[Q]=tr,C[wn]=L,Q=wn;else break e}}return z}function l(C,z){var L=C.sortIndex-z.sortIndex;return L!==0?L:C.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,u=i.now();e.unstable_now=function(){return i.now()-u}}var s=[],c=[],m=1,h=null,p=3,w=!1,S=!1,k=!1,j=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(C){for(var z=t(c);z!==null;){if(z.callback===null)r(c);else if(z.startTime<=C)r(c),z.sortIndex=z.expirationTime,n(s,z);else break;z=t(c)}}function v(C){if(k=!1,d(C),!S)if(t(s)!==null)S=!0,gl(x);else{var z=t(c);z!==null&&wl(v,z.startTime-C)}}function x(C,z){S=!1,k&&(k=!1,f(P),P=-1),w=!0;var L=p;try{for(d(z),h=t(s);h!==null&&(!(h.expirationTime>z)||C&&!Pe());){var Q=h.callback;if(typeof Q=="function"){h.callback=null,p=h.priorityLevel;var J=Q(h.expirationTime<=z);z=e.unstable_now(),typeof J=="function"?h.callback=J:h===t(s)&&r(s),d(z)}else r(s);h=t(s)}if(h!==null)var nr=!0;else{var gn=t(c);gn!==null&&wl(v,gn.startTime-z),nr=!1}return nr}finally{h=null,p=L,w=!1}}var _=!1,N=null,P=-1,W=5,I=-1;function Pe(){return!(e.unstable_now()-IC||125Q?(C.sortIndex=L,n(c,C),t(s)===null&&C===t(c)&&(k?(f(P),P=-1):k=!0,wl(v,L-Q))):(C.sortIndex=J,n(s,C),S||w||(S=!0,gl(x))),C},e.unstable_shouldYield=Pe,e.unstable_wrapCallback=function(C){var z=p;return function(){var L=p;p=z;try{return C.apply(this,arguments)}finally{p=L}}}})(ls);rs.exports=ls;var Pc=rs.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zc=H,ge=Pc;function y(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Gl=Object.prototype.hasOwnProperty,jc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,$i={},Ai={};function Lc(e){return Gl.call(Ai,e)?!0:Gl.call($i,e)?!1:jc.test(e)?Ai[e]=!0:($i[e]=!0,!1)}function Tc(e,n,t,r){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ic(e,n,t,r){if(n===null||typeof n>"u"||Tc(e,n,t,r))return!0;if(r)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function ae(e,n,t,r,l,o,i){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=o,this.removeEmptyString=i}var ne={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ne[e]=new ae(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];ne[n]=new ae(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ne[e]=new ae(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ne[e]=new ae(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ne[e]=new ae(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ne[e]=new ae(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ne[e]=new ae(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ne[e]=new ae(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ne[e]=new ae(e,5,!1,e.toLowerCase(),null,!1,!1)});var Qo=/[\-:]([a-z])/g;function Ko(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(Qo,Ko);ne[n]=new ae(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(Qo,Ko);ne[n]=new ae(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(Qo,Ko);ne[n]=new ae(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ne[e]=new ae(e,1,!1,e.toLowerCase(),null,!1,!1)});ne.xlinkHref=new ae("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ne[e]=new ae(e,1,!1,e.toLowerCase(),null,!0,!0)});function Yo(e,n,t,r){var l=ne.hasOwnProperty(n)?ne[n]:null;(l!==null?l.type!==0:r||!(2u||l[i]!==o[u]){var s=` -`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=u);break}}}finally{xl=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?St(e):""}function Dc(e){switch(e.tag){case 5:return St(e.type);case 16:return St("Lazy");case 13:return St("Suspense");case 19:return St("SuspenseList");case 0:case 2:case 15:return e=Cl(e.type,!1),e;case 11:return e=Cl(e.type.render,!1),e;case 1:return e=Cl(e.type,!0),e;default:return""}}function ql(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Fn:return"Fragment";case On:return"Portal";case Xl:return"Profiler";case Go:return"StrictMode";case Jl:return"Suspense";case Zl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case us:return(e.displayName||"Context")+".Consumer";case is:return(e._context.displayName||"Context")+".Provider";case Xo:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Jo:return n=e.displayName||null,n!==null?n:ql(e.type)||"Memo";case qe:n=e._payload,e=e._init;try{return ql(e(n))}catch{}}return null}function Rc(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ql(n);case 8:return n===Go?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function pn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function as(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Oc(e){var n=as(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var l=t.get,o=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function or(e){e._valueTracker||(e._valueTracker=Oc(e))}function cs(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=as(e)?e.checked?"true":"false":e.value),e=r,e!==t?(n.setValue(e),!0):!1}function Ir(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function bl(e,n){var t=n.checked;return V({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function Bi(e,n){var t=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;t=pn(n.value!=null?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function fs(e,n){n=n.checked,n!=null&&Yo(e,"checked",n,!1)}function eo(e,n){fs(e,n);var t=pn(n.value),r=n.type;if(t!=null)r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?no(e,n.type,t):n.hasOwnProperty("defaultValue")&&no(e,n.type,pn(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function Hi(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function no(e,n,t){(n!=="number"||Ir(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var kt=Array.isArray;function Yn(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l"+n.valueOf().toString()+"",n=ir.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Rt(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var Ct={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fc=["Webkit","ms","Moz","O"];Object.keys(Ct).forEach(function(e){Fc.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),Ct[n]=Ct[e]})});function hs(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||Ct.hasOwnProperty(e)&&Ct[e]?(""+n).trim():n+"px"}function vs(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=t.indexOf("--")===0,l=hs(t,n[t],r);t==="float"&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}var Mc=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function lo(e,n){if(n){if(Mc[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(y(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(y(61))}if(n.style!=null&&typeof n.style!="object")throw Error(y(62))}}function oo(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var io=null;function Zo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var uo=null,Gn=null,Xn=null;function Ki(e){if(e=bt(e)){if(typeof uo!="function")throw Error(y(280));var n=e.stateNode;n&&(n=ul(n),uo(e.stateNode,e.type,n))}}function ys(e){Gn?Xn?Xn.push(e):Xn=[e]:Gn=e}function gs(){if(Gn){var e=Gn,n=Xn;if(Xn=Gn=null,Ki(e),n)for(e=0;e>>=0,e===0?32:31-(Gc(e)/Xc|0)|0}var ur=64,sr=4194304;function Et(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Fr(e,n){var t=e.pendingLanes;if(t===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=t&268435455;if(i!==0){var u=i&~l;u!==0?r=Et(u):(o&=i,o!==0&&(r=Et(o)))}else i=t&~l,i!==0?r=Et(i):o!==0&&(r=Et(o));if(r===0)return 0;if(n!==0&&n!==r&&!(n&l)&&(l=r&-r,o=n&-n,l>=o||l===16&&(o&4194240)!==0))return n;if(r&4&&(r|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Zt(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-De(n),e[n]=t}function bc(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Nt),nu=" ",tu=!1;function Us(e,n){switch(e){case"keyup":return zf.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $s(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Mn=!1;function Lf(e,n){switch(e){case"compositionend":return $s(n);case"keypress":return n.which!==32?null:(tu=!0,nu);case"textInput":return e=n.data,e===nu&&tu?null:e;default:return null}}function Tf(e,n){if(Mn)return e==="compositionend"||!oi&&Us(e,n)?(e=Fs(),xr=ti=tn=null,Mn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=iu(t)}}function Hs(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Hs(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Ws(){for(var e=window,n=Ir();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=Ir(e.document)}return n}function ii(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Af(e){var n=Ws(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Hs(t.ownerDocument.documentElement,t)){if(r!==null&&ii(t)){if(n=r.start,e=r.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var l=t.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=uu(t,o);var i=uu(t,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(n=n.createRange(),n.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(n),e.extend(i.node,i.offset)):(n.setEnd(i.node,i.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,Un=null,mo=null,zt=null,ho=!1;function su(e,n,t){var r=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;ho||Un==null||Un!==Ir(r)||(r=Un,"selectionStart"in r&&ii(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),zt&&At(zt,r)||(zt=r,r=$r(mo,"onSelect"),0Vn||(e.current=ko[Vn],ko[Vn]=null,Vn--)}function O(e,n){Vn++,ko[Vn]=e.current,e.current=n}var mn={},oe=vn(mn),de=vn(!1),Pn=mn;function et(e,n){var t=e.type.contextTypes;if(!t)return mn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in t)l[o]=n[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),l}function pe(e){return e=e.childContextTypes,e!=null}function Vr(){M(de),M(oe)}function hu(e,n,t){if(oe.current!==mn)throw Error(y(168));O(oe,n),O(de,t)}function bs(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return t;r=r.getChildContext();for(var l in r)if(!(l in n))throw Error(y(108,Rc(e)||"Unknown",l));return V({},t,r)}function Br(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Pn=oe.current,O(oe,e),O(de,de.current),!0}function vu(e,n,t){var r=e.stateNode;if(!r)throw Error(y(169));t?(e=bs(e,n,Pn),r.__reactInternalMemoizedMergedChildContext=e,M(de),M(oe),O(oe,e)):M(de),O(de,t)}var Be=null,sl=!1,Ul=!1;function ea(e){Be===null?Be=[e]:Be.push(e)}function qf(e){sl=!0,ea(e)}function yn(){if(!Ul&&Be!==null){Ul=!0;var e=0,n=R;try{var t=Be;for(R=1;e>=i,l-=i,He=1<<32-De(n)+l|t<P?(W=N,N=null):W=N.sibling;var I=p(f,N,d[P],v);if(I===null){N===null&&(N=W);break}e&&N&&I.alternate===null&&n(f,N),a=o(I,a,P),_===null?x=I:_.sibling=I,_=I,N=W}if(P===d.length)return t(f,N),U&&Sn(f,P),x;if(N===null){for(;PP?(W=N,N=null):W=N.sibling;var Pe=p(f,N,I.value,v);if(Pe===null){N===null&&(N=W);break}e&&N&&Pe.alternate===null&&n(f,N),a=o(Pe,a,P),_===null?x=Pe:_.sibling=Pe,_=Pe,N=W}if(I.done)return t(f,N),U&&Sn(f,P),x;if(N===null){for(;!I.done;P++,I=d.next())I=h(f,I.value,v),I!==null&&(a=o(I,a,P),_===null?x=I:_.sibling=I,_=I);return U&&Sn(f,P),x}for(N=r(f,N);!I.done;P++,I=d.next())I=w(N,f,P,I.value,v),I!==null&&(e&&I.alternate!==null&&N.delete(I.key===null?P:I.key),a=o(I,a,P),_===null?x=I:_.sibling=I,_=I);return e&&N.forEach(function(ct){return n(f,ct)}),U&&Sn(f,P),x}function j(f,a,d,v){if(typeof d=="object"&&d!==null&&d.type===Fn&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case lr:e:{for(var x=d.key,_=a;_!==null;){if(_.key===x){if(x=d.type,x===Fn){if(_.tag===7){t(f,_.sibling),a=l(_,d.props.children),a.return=f,f=a;break e}}else if(_.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===qe&&wu(x)===_.type){t(f,_.sibling),a=l(_,d.props),a.ref=yt(f,_,d),a.return=f,f=a;break e}t(f,_);break}else n(f,_);_=_.sibling}d.type===Fn?(a=Nn(d.props.children,f.mode,v,d.key),a.return=f,f=a):(v=Tr(d.type,d.key,d.props,null,f.mode,v),v.ref=yt(f,a,d),v.return=f,f=v)}return i(f);case On:e:{for(_=d.key;a!==null;){if(a.key===_)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){t(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{t(f,a);break}else n(f,a);a=a.sibling}a=Kl(d,f.mode,v),a.return=f,f=a}return i(f);case qe:return _=d._init,j(f,a,_(d._payload),v)}if(kt(d))return S(f,a,d,v);if(dt(d))return k(f,a,d,v);hr(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(t(f,a.sibling),a=l(a,d),a.return=f,f=a):(t(f,a),a=Ql(d,f.mode,v),a.return=f,f=a),i(f)):t(f,a)}return j}var tt=la(!0),oa=la(!1),Qr=vn(null),Kr=null,Wn=null,ci=null;function fi(){ci=Wn=Kr=null}function di(e){var n=Qr.current;M(Qr),e._currentValue=n}function Co(e,n,t){for(;e!==null;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,r!==null&&(r.childLanes|=n)):r!==null&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Zn(e,n){Kr=e,ci=Wn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(fe=!0),e.firstContext=null)}function _e(e){var n=e._currentValue;if(ci!==e)if(e={context:e,memoizedValue:n,next:null},Wn===null){if(Kr===null)throw Error(y(308));Wn=e,Kr.dependencies={lanes:0,firstContext:e}}else Wn=Wn.next=e;return n}var xn=null;function pi(e){xn===null?xn=[e]:xn.push(e)}function ia(e,n,t,r){var l=n.interleaved;return l===null?(t.next=t,pi(n)):(t.next=l.next,l.next=t),n.interleaved=t,Ge(e,r)}function Ge(e,n){e.lanes|=n;var t=e.alternate;for(t!==null&&(t.lanes|=n),t=e,e=e.return;e!==null;)e.childLanes|=n,t=e.alternate,t!==null&&(t.childLanes|=n),t=e,e=e.return;return t.tag===3?t.stateNode:null}var be=!1;function mi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ua(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Qe(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function an(e,n,t){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,D&2){var l=r.pending;return l===null?n.next=n:(n.next=l.next,l.next=n),r.pending=n,Ge(e,t)}return l=r.interleaved,l===null?(n.next=n,pi(r)):(n.next=l.next,l.next=n),r.interleaved=n,Ge(e,t)}function _r(e,n,t){if(n=n.updateQueue,n!==null&&(n=n.shared,(t&4194240)!==0)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,bo(e,t)}}function Su(e,n){var t=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,t===r)){var l=null,o=null;if(t=t.firstBaseUpdate,t!==null){do{var i={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};o===null?l=o=i:o=o.next=i,t=t.next}while(t!==null);o===null?l=o=n:o=o.next=n}else l=o=n;t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function Yr(e,n,t,r){var l=e.updateQueue;be=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,u=l.shared.pending;if(u!==null){l.shared.pending=null;var s=u,c=s.next;s.next=null,i===null?o=c:i.next=c,i=s;var m=e.alternate;m!==null&&(m=m.updateQueue,u=m.lastBaseUpdate,u!==i&&(u===null?m.firstBaseUpdate=c:u.next=c,m.lastBaseUpdate=s))}if(o!==null){var h=l.baseState;i=0,m=c=s=null,u=o;do{var p=u.lane,w=u.eventTime;if((r&p)===p){m!==null&&(m=m.next={eventTime:w,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var S=e,k=u;switch(p=n,w=t,k.tag){case 1:if(S=k.payload,typeof S=="function"){h=S.call(w,h,p);break e}h=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=k.payload,p=typeof S=="function"?S.call(w,h,p):S,p==null)break e;h=V({},h,p);break e;case 2:be=!0}}u.callback!==null&&u.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[u]:p.push(u))}else w={eventTime:w,lane:p,tag:u.tag,payload:u.payload,callback:u.callback,next:null},m===null?(c=m=w,s=h):m=m.next=w,i|=p;if(u=u.next,u===null){if(u=l.shared.pending,u===null)break;p=u,u=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(m===null&&(s=h),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=m,n=l.shared.interleaved,n!==null){l=n;do i|=l.lane,l=l.next;while(l!==n)}else o===null&&(l.shared.lanes=0);Ln|=i,e.lanes=i,e.memoizedState=h}}function ku(e,n,t){if(e=n.effects,n.effects=null,e!==null)for(n=0;nt?t:4,e(!0);var r=Al.transition;Al.transition={};try{e(!1),n()}finally{R=t,Al.transition=r}}function Ca(){return Ne().memoizedState}function td(e,n,t){var r=fn(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},_a(e))Na(n,t);else if(t=ia(e,n,t,r),t!==null){var l=ue();Re(t,e,r,l),Pa(t,n,r)}}function rd(e,n,t){var r=fn(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(_a(e))Na(n,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=n.lastRenderedReducer,o!==null))try{var i=n.lastRenderedState,u=o(i,t);if(l.hasEagerState=!0,l.eagerState=u,Oe(u,i)){var s=n.interleaved;s===null?(l.next=l,pi(n)):(l.next=s.next,s.next=l),n.interleaved=l;return}}catch{}finally{}t=ia(e,n,l,r),t!==null&&(l=ue(),Re(t,e,r,l),Pa(t,n,r))}}function _a(e){var n=e.alternate;return e===A||n!==null&&n===A}function Na(e,n){jt=Xr=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function Pa(e,n,t){if(t&4194240){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,bo(e,t)}}var Jr={readContext:_e,useCallback:te,useContext:te,useEffect:te,useImperativeHandle:te,useInsertionEffect:te,useLayoutEffect:te,useMemo:te,useReducer:te,useRef:te,useState:te,useDebugValue:te,useDeferredValue:te,useTransition:te,useMutableSource:te,useSyncExternalStore:te,useId:te,unstable_isNewReconciler:!1},ld={readContext:_e,useCallback:function(e,n){return Me().memoizedState=[e,n===void 0?null:n],e},useContext:_e,useEffect:xu,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,Pr(4194308,4,wa.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Pr(4194308,4,e,n)},useInsertionEffect:function(e,n){return Pr(4,2,e,n)},useMemo:function(e,n){var t=Me();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=Me();return n=t!==void 0?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=td.bind(null,A,e),[r.memoizedState,e]},useRef:function(e){var n=Me();return e={current:e},n.memoizedState=e},useState:Eu,useDebugValue:Ei,useDeferredValue:function(e){return Me().memoizedState=e},useTransition:function(){var e=Eu(!1),n=e[0];return e=nd.bind(null,e[1]),Me().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=A,l=Me();if(U){if(t===void 0)throw Error(y(407));t=t()}else{if(t=n(),q===null)throw Error(y(349));jn&30||fa(r,n,t)}l.memoizedState=t;var o={value:t,getSnapshot:n};return l.queue=o,xu(pa.bind(null,r,o,e),[e]),r.flags|=2048,Gt(9,da.bind(null,r,o,t,n),void 0,null),t},useId:function(){var e=Me(),n=q.identifierPrefix;if(U){var t=We,r=He;t=(r&~(1<<32-De(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Kt++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),t==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[Ue]=n,e[Ht]=r,Ma(e,n,!1,!1),n.stateNode=e;e:{switch(i=oo(t,r),t){case"dialog":F("cancel",e),F("close",e),l=r;break;case"iframe":case"object":case"embed":F("load",e),l=r;break;case"video":case"audio":for(l=0;lot&&(n.flags|=128,r=!0,gt(o,!1),n.lanes=4194304)}else{if(!r)if(e=Gr(i),e!==null){if(n.flags|=128,r=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),gt(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!U)return re(n),null}else 2*K()-o.renderingStartTime>ot&&t!==1073741824&&(n.flags|=128,r=!0,gt(o,!1),n.lanes=4194304);o.isBackwards?(i.sibling=n.child,n.child=i):(t=o.last,t!==null?t.sibling=i:n.child=i,o.last=i)}return o.tail!==null?(n=o.tail,o.rendering=n,o.tail=n.sibling,o.renderingStartTime=K(),n.sibling=null,t=$.current,O($,r?t&1|2:t&1),n):(re(n),null);case 22:case 23:return zi(),r=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(n.flags|=8192),r&&n.mode&1?he&1073741824&&(re(n),n.subtreeFlags&6&&(n.flags|=8192)):re(n),null;case 24:return null;case 25:return null}throw Error(y(156,n.tag))}function dd(e,n){switch(si(n),n.tag){case 1:return pe(n.type)&&Vr(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return rt(),M(de),M(oe),yi(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return vi(n),null;case 13:if(M($),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(y(340));nt()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return M($),null;case 4:return rt(),null;case 10:return di(n.type._context),null;case 22:case 23:return zi(),null;case 24:return null;default:return null}}var yr=!1,le=!1,pd=typeof WeakSet=="function"?WeakSet:Set,E=null;function Qn(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){B(e,n,r)}else t.current=null}function Do(e,n,t){try{t()}catch(r){B(e,n,r)}}var Ru=!1;function md(e,n){if(vo=Mr,e=Ws(),ii(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&r.rangeCount!==0){t=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{t.nodeType,o.nodeType}catch{t=null;break e}var i=0,u=-1,s=-1,c=0,m=0,h=e,p=null;n:for(;;){for(var w;h!==t||l!==0&&h.nodeType!==3||(u=i+l),h!==o||r!==0&&h.nodeType!==3||(s=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(w=h.firstChild)!==null;)p=h,h=w;for(;;){if(h===e)break n;if(p===t&&++c===l&&(u=i),p===o&&++m===r&&(s=i),(w=h.nextSibling)!==null)break;h=p,p=h.parentNode}h=w}t=u===-1||s===-1?null:{start:u,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(yo={focusedElem:e,selectionRange:t},Mr=!1,E=n;E!==null;)if(n=E,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,E=e;else for(;E!==null;){n=E;try{var S=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var k=S.memoizedProps,j=S.memoizedState,f=n.stateNode,a=f.getSnapshotBeforeUpdate(n.elementType===n.type?k:je(n.type,k),j);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=n.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(v){B(n,n.return,v)}if(e=n.sibling,e!==null){e.return=n.return,E=e;break}E=n.return}return S=Ru,Ru=!1,S}function Lt(e,n,t){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&Do(n,t,o)}l=l.next}while(l!==r)}}function fl(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function Ro(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function Aa(e){var n=e.alternate;n!==null&&(e.alternate=null,Aa(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Ue],delete n[Ht],delete n[So],delete n[Jf],delete n[Zf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Va(e){return e.tag===5||e.tag===3||e.tag===4}function Ou(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Va(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Oo(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=Ar));else if(r!==4&&(e=e.child,e!==null))for(Oo(e,n,t),e=e.sibling;e!==null;)Oo(e,n,t),e=e.sibling}function Fo(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Fo(e,n,t),e=e.sibling;e!==null;)Fo(e,n,t),e=e.sibling}var b=null,Le=!1;function Ze(e,n,t){for(t=t.child;t!==null;)Ba(e,n,t),t=t.sibling}function Ba(e,n,t){if($e&&typeof $e.onCommitFiberUnmount=="function")try{$e.onCommitFiberUnmount(rl,t)}catch{}switch(t.tag){case 5:le||Qn(t,n);case 6:var r=b,l=Le;b=null,Ze(e,n,t),b=r,Le=l,b!==null&&(Le?(e=b,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):b.removeChild(t.stateNode));break;case 18:b!==null&&(Le?(e=b,t=t.stateNode,e.nodeType===8?Ml(e.parentNode,t):e.nodeType===1&&Ml(e,t),Ut(e)):Ml(b,t.stateNode));break;case 4:r=b,l=Le,b=t.stateNode.containerInfo,Le=!0,Ze(e,n,t),b=r,Le=l;break;case 0:case 11:case 14:case 15:if(!le&&(r=t.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&(o&2||o&4)&&Do(t,n,i),l=l.next}while(l!==r)}Ze(e,n,t);break;case 1:if(!le&&(Qn(t,n),r=t.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(u){B(t,n,u)}Ze(e,n,t);break;case 21:Ze(e,n,t);break;case 22:t.mode&1?(le=(r=le)||t.memoizedState!==null,Ze(e,n,t),le=r):Ze(e,n,t);break;default:Ze(e,n,t)}}function Fu(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new pd),n.forEach(function(r){var l=xd.bind(null,e,r);t.has(r)||(t.add(r),r.then(l,l))})}}function ze(e,n){var t=n.deletions;if(t!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=K()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*vd(r/1960))-r,10e?16:e,rn===null)var r=!1;else{if(e=rn,rn=null,br=0,D&6)throw Error(y(331));var l=D;for(D|=4,E=e.current;E!==null;){var o=E,i=o.child;if(E.flags&16){var u=o.deletions;if(u!==null){for(var s=0;sK()-Ni?_n(e,0):_i|=t),me(e,n)}function Ja(e,n){n===0&&(e.mode&1?(n=sr,sr<<=1,!(sr&130023424)&&(sr=4194304)):n=1);var t=ue();e=Ge(e,n),e!==null&&(Zt(e,n,t),me(e,t))}function Ed(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),Ja(e,t)}function xd(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(n),Ja(e,t)}var Za;Za=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||de.current)fe=!0;else{if(!(e.lanes&t)&&!(n.flags&128))return fe=!1,cd(e,n,t);fe=!!(e.flags&131072)}else fe=!1,U&&n.flags&1048576&&na(n,Wr,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;zr(e,n),e=n.pendingProps;var l=et(n,oe.current);Zn(n,t),l=wi(null,n,r,e,l,t);var o=Si();return n.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,pe(r)?(o=!0,Br(n)):o=!1,n.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,mi(n),l.updater=cl,n.stateNode=l,l._reactInternals=n,No(n,r,e,t),n=jo(null,n,r,!0,o,t)):(n.tag=0,U&&o&&ui(n),ie(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(zr(e,n),e=n.pendingProps,l=r._init,r=l(r._payload),n.type=r,l=n.tag=_d(r),e=je(r,e),l){case 0:n=zo(null,n,r,e,t);break e;case 1:n=Tu(null,n,r,e,t);break e;case 11:n=ju(null,n,r,e,t);break e;case 14:n=Lu(null,n,r,je(r.type,e),t);break e}throw Error(y(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),zo(e,n,r,l,t);case 1:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),Tu(e,n,r,l,t);case 3:e:{if(Ra(n),e===null)throw Error(y(387));r=n.pendingProps,o=n.memoizedState,l=o.element,ua(e,n),Yr(n,r,null,t);var i=n.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},n.updateQueue.baseState=o,n.memoizedState=o,n.flags&256){l=lt(Error(y(423)),n),n=Iu(e,n,r,t,l);break e}else if(r!==l){l=lt(Error(y(424)),n),n=Iu(e,n,r,t,l);break e}else for(ve=sn(n.stateNode.containerInfo.firstChild),ye=n,U=!0,Te=null,t=oa(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(nt(),r===l){n=Xe(e,n,t);break e}ie(e,n,r,t)}n=n.child}return n;case 5:return sa(n),e===null&&xo(n),r=n.type,l=n.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,go(r,l)?i=null:o!==null&&go(r,o)&&(n.flags|=32),Da(e,n),ie(e,n,i,t),n.child;case 6:return e===null&&xo(n),null;case 13:return Oa(e,n,t);case 4:return hi(n,n.stateNode.containerInfo),r=n.pendingProps,e===null?n.child=tt(n,null,r,t):ie(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),ju(e,n,r,l,t);case 7:return ie(e,n,n.pendingProps,t),n.child;case 8:return ie(e,n,n.pendingProps.children,t),n.child;case 12:return ie(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,o=n.memoizedProps,i=l.value,O(Qr,r._currentValue),r._currentValue=i,o!==null)if(Oe(o.value,i)){if(o.children===l.children&&!de.current){n=Xe(e,n,t);break e}}else for(o=n.child,o!==null&&(o.return=n);o!==null;){var u=o.dependencies;if(u!==null){i=o.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=Qe(-1,t&-t),s.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var m=c.pending;m===null?s.next=s:(s.next=m.next,m.next=s),c.pending=s}}o.lanes|=t,s=o.alternate,s!==null&&(s.lanes|=t),Co(o.return,t,n),u.lanes|=t;break}s=s.next}}else if(o.tag===10)i=o.type===n.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(y(341));i.lanes|=t,u=i.alternate,u!==null&&(u.lanes|=t),Co(i,t,n),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===n){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}ie(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Zn(n,t),l=_e(l),r=r(l),n.flags|=1,ie(e,n,r,t),n.child;case 14:return r=n.type,l=je(r,n.pendingProps),l=je(r.type,l),Lu(e,n,r,l,t);case 15:return Ta(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:je(r,l),zr(e,n),n.tag=1,pe(r)?(e=!0,Br(n)):e=!1,Zn(n,t),za(n,r,l),No(n,r,l,t),jo(null,n,r,!0,e,t);case 19:return Fa(e,n,t);case 22:return Ia(e,n,t)}throw Error(y(156,n.tag))};function qa(e,n){return _s(e,n)}function Cd(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function xe(e,n,t,r){return new Cd(e,n,t,r)}function Li(e){return e=e.prototype,!(!e||!e.isReactComponent)}function _d(e){if(typeof e=="function")return Li(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xo)return 11;if(e===Jo)return 14}return 2}function dn(e,n){var t=e.alternate;return t===null?(t=xe(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Tr(e,n,t,r,l,o){var i=2;if(r=e,typeof e=="function")Li(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Fn:return Nn(t.children,l,o,n);case Go:i=8,l|=8;break;case Xl:return e=xe(12,t,n,l|2),e.elementType=Xl,e.lanes=o,e;case Jl:return e=xe(13,t,n,l),e.elementType=Jl,e.lanes=o,e;case Zl:return e=xe(19,t,n,l),e.elementType=Zl,e.lanes=o,e;case ss:return pl(t,l,o,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case is:i=10;break e;case us:i=9;break e;case Xo:i=11;break e;case Jo:i=14;break e;case qe:i=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return n=xe(i,t,n,l),n.elementType=e,n.type=r,n.lanes=o,n}function Nn(e,n,t,r){return e=xe(7,e,r,n),e.lanes=t,e}function pl(e,n,t,r){return e=xe(22,e,r,n),e.elementType=ss,e.lanes=t,e.stateNode={isHidden:!1},e}function Ql(e,n,t){return e=xe(6,e,null,n),e.lanes=t,e}function Kl(e,n,t){return n=xe(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function Nd(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Nl(0),this.expirationTimes=Nl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Nl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ti(e,n,t,r,l,o,i,u,s){return e=new Nd(e,n,t,u,s),n===1?(n=1,o===!0&&(n|=8)):n=0,o=xe(3,null,null,n),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},mi(o),e}function Pd(e,n,t){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(tc)}catch(e){console.error(e)}}tc(),ts.exports=we;var Id=ts.exports,Wu=Id;Yl.createRoot=Wu.createRoot,Yl.hydrateRoot=Wu.hydrateRoot;function Ie(e){return g.jsxs("div",{className:"input",children:[e.label?g.jsx("label",{htmlFor:e.name,children:e.labelName}):null,g.jsx("input",{name:e.name,id:e.name,type:e.type,value:e.value,onChange:e.onChange,placeholder:e.placeholder})]})}function Dd(e){const[n,t]=H.useState(e.basicInfo.fullName),[r,l]=H.useState(e.basicInfo.location),[o,i]=H.useState(e.basicInfo.phone),[u,s]=H.useState(e.basicInfo.email),c={display:"flex",flexDirection:"column"};return g.jsx(g.Fragment,{children:g.jsx("div",{className:"general-info-form",children:g.jsx("form",{action:"",children:g.jsxs("div",{style:c,children:[g.jsx("h2",{className:"general-info-header",children:"Personal Details"}),g.jsx(Ie,{label:!0,name:"fullName",labelName:"Full name",value:n,placeholder:"",onChange:m=>{t(m.target.value),e.setBasicInfo({...e.basicInfo,fullName:m.target.value})}}),g.jsx(Ie,{label:!0,name:"location",labelName:"Location",placeholder:"",value:r,onChange:m=>{l(m.target.value),e.setBasicInfo({...e.basicInfo,location:m.target.value})}}),g.jsx(Ie,{label:!0,type:"email",name:"email",labelName:"Email",placeholder:"",value:u,onChange:m=>{s(m.target.value),e.setBasicInfo({...e.basicInfo,email:m.target.value})}}),g.jsx(Ie,{type:"text",label:!0,labelName:"Phone",placeholder:"",value:o,onChange:m=>{i(m.target.value),e.setBasicInfo({...e.basicInfo,phone:m.target.value})}})]})})})})}function Rd(e){const n=e.basicInfo;return g.jsx(g.Fragment,{children:n?g.jsxs("div",{className:"basic-info",children:[g.jsx("h1",{children:n.fullName}),g.jsxs("div",{className:"basic-info-details",children:[g.jsx("p",{children:n.location}),g.jsx("p",{children:n.email}),g.jsx("p",{children:n.phone})]})]}):null})}function Od(e){return g.jsxs("div",{className:"education-info",children:[g.jsx("h2",{children:"Education"}),g.jsx(Fd,{educationInfo:e.educationInfo,setEducationInfo:e.setEducationInfo,setEditEducation:e.setEditEducation})]})}function Fd(e){return g.jsx(g.Fragment,{children:e.educationInfo.map(n=>g.jsxs("div",{className:"education-item",children:[g.jsx("h2",{children:n.schoolName}),g.jsxs("p",{children:["Graduation: ",n.graduationDate+" ",n.fieldOfStudy]}),g.jsx("button",{onClick:()=>e.setEditEducation(n),children:"edit"}),g.jsx("button",{onClick:()=>Md(e.educationInfo,n.schoolName,e.setEducationInfo),children:"remove"})]},n.schoolName))})}function Md(e,n,t){const r=e.filter(l=>l.schoolName!==n);t(r)}function it(e){return g.jsx("button",{className:`${e.className} + btn`,onClick:e.onClick,children:e.text})}function Ud(e){return g.jsx(g.Fragment,{children:g.jsx($d,{isActive:e.educationItemActive,educationInfo:e.educationInfo,setEducationInfo:e.setEducationInfo,editSchool:e.editEducation})})}function $d({isActive:e,educationInfo:n,setEducationInfo:t,editSchool:r}){const[l,o]=H.useState(""),[i,u]=H.useState(""),[s,c]=H.useState("");H.useEffect(()=>{r?(o(r.graduationDate),u(r.schoolName),c(r.fieldOfStudy)):(o(""),u(""),c(""))},[r]);let m=r?n.findIndex(p=>p.id===r.id):null;const h={display:"flex",flexDirection:"column"};return g.jsx(g.Fragment,{children:e?g.jsxs("div",{className:"education-info-form",children:[g.jsx("h2",{className:"general-info-header",children:"Education History"}),g.jsxs("form",{action:"",style:h,onSubmit:p=>console.log(p.target),children:[g.jsx(Ie,{label:!0,labelName:"School",name:"School",type:"text",placeholder:"",value:i,onChange:p=>u(p.target.value)}),g.jsx(Ie,{label:!0,labelName:"Graduation date",name:"graduationDate",type:"text",placeholder:"",value:l,onChange:p=>o(p.target.value)}),g.jsx(Ie,{label:!0,labelName:"Degree/Field of study",name:"degree",type:"text",placeholder:"",value:s,onChange:p=>c(p.target.value)}),g.jsxs("div",{className:"btn-group",children:[g.jsx(it,{autoFocus:!0,type:"submit",className:"submit-btn",onClick:p=>{p.preventDefault(),console.log(i,l,s);const w=[...n];m!==-1&&m!==null?(w[m]={schoolName:i,graduationDate:l,fieldOfStudy:s},t(w)):t([...n,{schoolName:i,fieldOfStudy:s,graduationDate:l,id:crypto.randomUUID()}]),o(""),u(""),c("")},text:"Submit"}),g.jsx(it,{onClick:p=>{p.preventDefault(),o(""),u(""),c(""),m=null},text:"Clear"})]})]})]}):null})}function Ad(e){return g.jsx(g.Fragment,{children:g.jsx(Vd,{setJobs:e.setEmploymentHistory,jobs:e.employmentHistory,isActive:e.showJobForm})})}function Vd({isActive:e,jobs:n,setJobs:t}){const[r,l]=H.useState(""),[o,i]=H.useState(""),[u,s]=H.useState([]),[c,m]=H.useState(""),[h,p]=H.useState(""),w={display:"flex",flexDirection:"column"};function S(){l(""),i(""),s(""),p(""),m("")}function k(j,f){j.preventDefault();const a=crypto.randomUUID(),d={...f,id:a};t([...n,d]),S()}return g.jsx(g.Fragment,{children:e?g.jsxs("div",{className:"job-info-form",children:[g.jsx("h2",{className:"general-info-header",children:"Employment History"}),g.jsxs("form",{action:"",style:w,children:[g.jsx(Ie,{name:"employer",label:!0,labelName:"Employer",type:"text",placeholder:"",value:r,onChange:j=>l(j.target.value)}),g.jsx(Ie,{name:"jobTitle",label:!0,labelName:"Job title",type:"text",placeholder:"",value:o,onChange:j=>i(j.target.value)}),g.jsx(Ie,{name:"startDate",label:!0,labelName:"Start date",type:"text",placeholder:"",value:c,onChange:j=>m(j.target.value)}),g.jsx(Ie,{name:"endDate",label:!0,labelName:"End date",type:"text",placeholder:"",value:h,onChange:j=>p(j.target.value)}),g.jsxs("div",{className:"input",children:[g.jsx("label",{children:"Description"}),g.jsx("textarea",{name:"jobDescription",value:u,onChange:j=>s(j.target.value),rows:"5",maxLength:"400"})]}),g.jsxs("div",{className:"btn-group",children:[g.jsx(it,{onClick:j=>k(j,{employer:r,jobTitle:o,jobDescription:u,employmentStart:c,employmentEnd:h}),className:"submit-btn",text:"Submit"}),g.jsx(it,{onClick:j=>{j.preventDefault(),S()},className:"clear-btn",text:"Clear"})]})]})]}):null})}function Bd(e){return g.jsxs("div",{className:"job-info",children:[g.jsx("h2",{children:"Experience"}),g.jsx(Hd,{jobs:e.employmentHistory})]})}function Hd(e){return g.jsx(g.Fragment,{children:e.jobs.map(n=>g.jsxs("div",{className:"job",children:[g.jsxs("div",{className:"job-details",children:[g.jsx("h2",{className:"job-employer",children:n.employer}),g.jsxs("p",{className:"job-dates",children:[n.employmentStart," - ",n.employmentEnd]})]}),g.jsx("h3",{className:"job-title",children:n.jobTitle}),g.jsx("p",{children:n.jobDescription})]},n.id))})}function Wd(){const[e,n]=H.useState({fullName:"Marvin Gaye",phone:"301-240-5555",email:"mgaye@motown.com",location:"Detriot, MI"}),[t,r]=H.useState([{schoolName:"Bowie State University",graduationDate:"2020",fieldOfStudy:"Computer Technology: Network Security"}]),[l,o]=H.useState(null),[i,u]=H.useState([{employer:"Google",jobTitle:"Site Reliability Engineer",jobDescription:"Keeping servers online and happy",employmentStart:"09/2020",employmentEnd:"present"}]),[s,c]=H.useState(!1),[m,h]=H.useState(!1);return g.jsxs("div",{className:"container",children:[g.jsxs("div",{className:"form",children:[g.jsx(Dd,{setBasicInfo:n,basicInfo:e}),g.jsxs("div",{className:"btn-group",children:[g.jsx(it,{onClick:()=>{h(!m)},text:"Add Education",className:"normal-btn"}),g.jsx(it,{onClick:()=>c(!s),text:"Add Employment",className:"normal-btn"})]}),g.jsx(Ud,{educationInfo:t,setEducationInfo:r,setEditEducation:o,editEducation:l,educationItemActive:m}),g.jsx(Ad,{employmentHistory:i,setEmploymentHistory:u,showJobForm:s})]}),g.jsxs("div",{className:"resume",children:[g.jsx(Rd,{basicInfo:e}),g.jsx(Od,{educationInfo:t,setEditEducation:o,setEducationInfo:r}),g.jsx(Bd,{employmentHistory:i})]})]})}Yl.createRoot(document.getElementById("root")).render(g.jsx(Sc.StrictMode,{children:g.jsx(Wd,{})})); diff --git a/cv/devops/Dockerfile b/cv/devops/Dockerfile deleted file mode 100644 index 25dce6e..0000000 --- a/cv/devops/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# Use an official Nginx image as the base image -FROM nginx:latest - -# Set the working directory to /app -WORKDIR /app - -# Copy the HTML, CSS, and JavaScript files to the Nginx default directory -COPY index.html /usr/share/nginx/html/ -COPY css/ /usr/share/nginx/html/css/ -COPY assets/ /usr/share/nginx/html/assets/ - -# Expose port 80 to the outside world -EXPOSE 80 - -# Start Nginx -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/cv/devops/deployment.yaml b/cv/devops/deployment.yaml deleted file mode 100644 index 564957c..0000000 --- a/cv/devops/deployment.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: cv-deployment -spec: - replicas: 1 - selector: - matchLabels: - app: cv - template: - metadata: - labels: - app: cv - spec: - containers: - - name: cv-app - image: ghcr.io/smiggiddy/odin-codeprojects/cv:latest - ports: - - containerPort: 80 ---- -apiVersion: v1 -kind: Service -metadata: - name: cv-service -spec: - type: LoadBalancer - selector: - app: cv - ports: - - protocol: TCP - port: 80 - targetPort: 80 \ No newline at end of file diff --git a/cv/icon.svg b/cv/icon.svg deleted file mode 100644 index a9b01c2..0000000 --- a/cv/icon.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - diff --git a/cv/index.html b/cv/index.html deleted file mode 100644 index 359fffb..0000000 --- a/cv/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - CV-Creator - - - - - -
- - diff --git a/cv/vite.svg b/cv/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/cv/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/deploy/chart/templates/cv-application.yaml b/deploy/chart/templates/cv-application.yaml deleted file mode 100644 index 99b7616..0000000 --- a/deploy/chart/templates/cv-application.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cv # Updated to match instruction - namespace: argocd -spec: - project: default - source: - repoURL: {{ .Values.repoUrl }} # Updated to match instruction - path: cv/devops - targetRevision: {{ .Values.targetRevision }} # Updated to match instruction - destination: - server: {{ .Values.targetServer }} - namespace: {{ .Values.targetNamespace }} # Updated to match instruction - syncPolicy: - automated: - prune: true - selfHeal: true \ No newline at end of file diff --git a/inventory/devops/inventory-ingress.yaml b/inventory/devops/inventory-ingress.yaml new file mode 100644 index 0000000..ca3455e --- /dev/null +++ b/inventory/devops/inventory-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: inventory-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: inventory.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: inventory-service + port: + number: 80 + tls: + - hosts: + - inventory.odin.thecodedom.com + secretName: inventory-tls \ No newline at end of file diff --git a/library/devops/Dockerfile b/library/devops/Dockerfile index dc79c17..8d8d24e 100644 --- a/library/devops/Dockerfile +++ b/library/devops/Dockerfile @@ -1,12 +1,6 @@ # Use an official Nginx image as the base image FROM nginx:latest -# Remove default Nginx configuration -RUN rm /etc/nginx/conf.d/default.conf - -# Copy custom Nginx configuration -COPY nginx.conf /etc/nginx/conf.d - # Set the working directory in the container WORKDIR /usr/share/nginx/html diff --git a/library/devops/library-ingress.yaml b/library/devops/library-ingress.yaml new file mode 100644 index 0000000..9c6c3e3 --- /dev/null +++ b/library/devops/library-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: library-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: library.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: library-service + port: + number: 80 + tls: + - hosts: + - library.odin.thecodedom.com + secretName: library-tls \ No newline at end of file diff --git a/messages/devops/messages-ingress.yaml b/messages/devops/messages-ingress.yaml new file mode 100644 index 0000000..e160812 --- /dev/null +++ b/messages/devops/messages-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: messages-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: messages.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: messages-service + port: + number: 80 + tls: + - hosts: + - messages.odin.thecodedom.com + secretName: messages-tls \ No newline at end of file diff --git a/nodejs-mini-message-board/devops/nodejs-mini-message-board-ingress.yaml b/nodejs-mini-message-board/devops/nodejs-mini-message-board-ingress.yaml new file mode 100644 index 0000000..e382845 --- /dev/null +++ b/nodejs-mini-message-board/devops/nodejs-mini-message-board-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: nodejs-mini-message-board-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: nodejs-mini-message-board.odin.thecodedom.com + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: nodejs-mini-message-board-service + port: + number: 3000 + tls: + - hosts: + - nodejs-mini-message-board.odin.thecodedom.com + secretName: nodejs-mini-message-board-tls \ No newline at end of file diff --git a/portfolio/devops/portfolio-ingress.yaml b/portfolio/devops/portfolio-ingress.yaml new file mode 100644 index 0000000..d4a6637 --- /dev/null +++ b/portfolio/devops/portfolio-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: portfolio-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: portfolio.odin.thecodedom.com + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: portfolio-service + port: + number: 80 + tls: + - hosts: + - portfolio.odin.thecodedom.com + secretName: portfolio-tls \ No newline at end of file diff --git a/restaurant/devops/Dockerfile b/restaurant/devops/Dockerfile index 6725dde..2b7e6bd 100644 --- a/restaurant/devops/Dockerfile +++ b/restaurant/devops/Dockerfile @@ -4,17 +4,14 @@ FROM node:18-alpine AS builder # Set the working directory WORKDIR /app -# Copy package.json and package-lock.json (if present) -COPY package*.json ./ +# Copy package files +COPY app . # Install dependencies -RUN npm install +RUN npm install -# Copy the rest of the application code -COPY . . - -# Build the application using webpack -RUN npm run build -- --config app/webpack.config.js +# Build the application +RUN npm run build -- --config ./webpack.config.js # Use an Nginx base image to serve the static files FROM nginx:alpine diff --git a/restaurant/devops/restaurant-ingress.yaml b/restaurant/devops/restaurant-ingress.yaml new file mode 100644 index 0000000..38cb5f8 --- /dev/null +++ b/restaurant/devops/restaurant-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: restaurant-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: restaurant.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: restaurant-service + port: + number: 80 + tls: + - hosts: + - restaurant.odin.thecodedom.com + secretName: restaurant-tls \ No newline at end of file diff --git a/shopping-cart/devops/shopping-cart-ingress.yaml b/shopping-cart/devops/shopping-cart-ingress.yaml new file mode 100644 index 0000000..39c025d --- /dev/null +++ b/shopping-cart/devops/shopping-cart-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: shopping-cart-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: shopping-cart.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: shopping-cart-service + port: + number: 80 + tls: + - hosts: + - shopping-cart.odin.thecodedom.com + secretName: shopping-cart-tls \ No newline at end of file diff --git a/signup_form/devops/Dockerfile b/signup_form/devops/Dockerfile index d85a2dd..70162aa 100644 --- a/signup_form/devops/Dockerfile +++ b/signup_form/devops/Dockerfile @@ -7,9 +7,6 @@ WORKDIR /app # Copy the HTML, CSS, and JavaScript files from the current directory to /app COPY . /app -# Copy the Nginx configuration file to /etc/nginx/conf.d/ -COPY ./nginx.conf /etc/nginx/conf.d/default.conf - # Expose port 80 for HTTP traffic EXPOSE 80 diff --git a/signup_form/devops/signup_form-ingress.yaml b/signup_form/devops/signup_form-ingress.yaml new file mode 100644 index 0000000..258ca35 --- /dev/null +++ b/signup_form/devops/signup_form-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: signup-form-ingress +spec: + ingressClassName: traefik + rules: + - host: signup-form.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: signup-form-service + port: + number: 80 + tls: + - hosts: + - signup-form.odin.thecodedom.com + secretName: signup-form-tls + annotations: + cert-manager.io/cluster-issuer: letsencrypt \ No newline at end of file diff --git a/tictactoe/devops/tictactoe-ingress.yaml b/tictactoe/devops/tictactoe-ingress.yaml new file mode 100644 index 0000000..14a5e1f --- /dev/null +++ b/tictactoe/devops/tictactoe-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: tictactoe-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: tictactoe.odin.thecodedom.com + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: tictactoe-service + port: + number: 80 + tls: + - hosts: + - tictactoe.odin.thecodedom.com + secretName: tictactoe-tls \ No newline at end of file diff --git a/todo/devops/Dockerfile b/todo/devops/Dockerfile index 416a949..3c089b8 100644 --- a/todo/devops/Dockerfile +++ b/todo/devops/Dockerfile @@ -28,9 +28,6 @@ RUN rm -rf ./* # Copy static files from the builder stage COPY --from=builder /app/dist . -# Copy the nginx configuration file -COPY ./nginx.conf /etc/nginx/conf.d/default.conf - # Expose port 80 EXPOSE 80 diff --git a/weather/devops/weather-ingress.yaml b/weather/devops/weather-ingress.yaml new file mode 100644 index 0000000..22dda86 --- /dev/null +++ b/weather/devops/weather-ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: weather-ingress + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + ingressClassName: traefik + rules: + - host: weather.odin.thecodedom.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: weather-service + port: + number: 80 + tls: + - hosts: + - weather.odin.thecodedom.com + secretName: weather-tls \ No newline at end of file