diff --git a/.github/workflows/setup.yml b/.github/workflows/setup.yml new file mode 100644 index 00000000..0e30863e --- /dev/null +++ b/.github/workflows/setup.yml @@ -0,0 +1,43 @@ +name: Setup and coverage badge + +on: + push: + branches: + - '*' + pull_request: + branches: + - '*' + + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install Packages + run: npm install + + - name: Build + run: npm run build + + test-and-coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install Packages + run: npm install + + - name: Run Tests with Coverage + run: npm test -- --coverage + + - name: List coverage directory + run: ls -la coverage + + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v2 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + diff --git a/README.md b/README.md new file mode 100644 index 00000000..efeff654 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +This repository is for multi-vendor E-commerce website + +[![codecov](https://codecov.io/gh/atlp-rwanda/e-commerce-crafters-fn/branch/ft-analytics/graph/badge.svg?token=ZB2U3Q435X)](https://codecov.io/gh/atlp-rwanda/e-commerce-crafters-fn) + + + + + diff --git a/coverage/clover.xml b/coverage/clover.xml new file mode 100644 index 00000000..12fd1d51 --- /dev/null +++ b/coverage/clover.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 00000000..af824339 --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,2 @@ +{"/home/ismael/e-commerce-crafters-fn/src/pages/Check.tsx": {"path":"/home/ismael/e-commerce-crafters-fn/src/pages/Check.tsx","statementMap":{"0":{"start":{"line":3,"column":14},"end":{"line":18,"column":1}},"1":{"start":{"line":4,"column":36},"end":{"line":4,"column":51}},"2":{"start":{"line":6,"column":2},"end":{"line":17,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":14},"end":{"line":3,"column":15}},"loc":{"start":{"line":3,"column":20},"end":{"line":18,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":7},"end":{"line":15,"column":44}},"type":"binary-expr","locations":[{"start":{"line":15,"column":7},"end":{"line":15,"column":16}},{"start":{"line":15,"column":20},"end":{"line":15,"column":44}}],"line":15}},"s":{"0":1,"1":2,"2":2},"f":{"0":2},"b":{"0":[2,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f4fd7aef176069564e1f9661c4424964c5c13b81"} +} diff --git a/coverage/lcov-report/Check.tsx.html b/coverage/lcov-report/Check.tsx.html new file mode 100644 index 00000000..e394a4f6 --- /dev/null +++ b/coverage/lcov-report/Check.tsx.html @@ -0,0 +1,145 @@ + + + + + + Code coverage report for Check.tsx + + + + + + + + + +
+
+

All files Check.tsx

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 50% + Branches + 1/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +1x +2x +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React, { useState } from "react";
+ 
+const Check = () => {
+  const [showExtra, setShowExtra] = useState(false);
+ 
+  return (
+    <div className="flex flex-col items-start font-poppins text-sm">
+      <h1 className="text-gray-800">
+        If you want to part of the program click button below
+      </h1>
+      <button className="py-2 px-7 ml-10 mt-5 bg-purple-700 text-white rounded-md hover:bg-purple-500">
+        Confirm
+      </button>
+      <h1>hello there</h1>
+      {showExtra && <h2>You are welcome</h2>}
+    </div>
+  );
+};
+ 
+export default Check;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/Test.tsx.html b/coverage/lcov-report/Test.tsx.html new file mode 100644 index 00000000..c6ddd527 --- /dev/null +++ b/coverage/lcov-report/Test.tsx.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for Test.tsx + + + + + + + + + +
+
+

All files Test.tsx

+
+ +
+ 50% + Statements + 1/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 50% + Lines + 1/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +1x +  +  +  +  +  +  +  +  +  +  + 
import React from 'react'
+ 
+const Test = () => {
+  return (
+    <div className="flex flex-col items-start font-poppins text-sm">
+      <h1 className="text-gray-800">
+        If you want to part of the program click button below
+      </h1>
+      <button className='  py-2 px-7 ml-10 mt-5 bg-purple-700 text-white rounded-md hover:bg-purple-500'>Confirm</button>
+    </div>
+  );
+}
+ 
+export default Test
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 00000000..f418035b --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 00000000..cc121302 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 00000000..c1525b81 Binary files /dev/null and b/coverage/lcov-report/favicon.png differ diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 00000000..82f422f9 --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 100% + Statements + 3/3 +
+ + +
+ 50% + Branches + 1/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 3/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Check.tsx +
+
100%3/350%1/2100%1/1100%3/3
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 00000000..b317a7cd --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 00000000..b3225238 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 00000000..6ed68316 Binary files /dev/null and b/coverage/lcov-report/sort-arrow-sprite.png differ diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 00000000..2bb296a8 --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 00000000..35708e63 --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,16 @@ +TN: +SF:src/pages/Check.tsx +FN:3,(anonymous_0) +FNF:1 +FNH:1 +FNDA:2,(anonymous_0) +DA:3,1 +DA:4,2 +DA:6,2 +LF:3 +LH:3 +BRDA:15,0,0,2 +BRDA:15,0,1,0 +BRF:2 +BRH:1 +end_of_record diff --git a/dist/6bd5805730733860772c.svg b/dist/6bd5805730733860772c.svg new file mode 100644 index 00000000..6387b897 --- /dev/null +++ b/dist/6bd5805730733860772c.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/6c2dc433a0dd25891135.png b/dist/6c2dc433a0dd25891135.png new file mode 100644 index 00000000..b32c58e7 Binary files /dev/null and b/dist/6c2dc433a0dd25891135.png differ diff --git a/dist/bundle.js b/dist/bundle.js new file mode 100644 index 00000000..54570bef --- /dev/null +++ b/dist/bundle.js @@ -0,0 +1,3 @@ +/*! For license information please see bundle.js.LICENSE.txt */ +(()=>{var e,t,n={7135:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.A=void 0;var o,i=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=r(e)&&"function"!=typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var u=i?Object.getOwnPropertyDescriptor(e,a):null;u&&(u.get||u.set)?Object.defineProperty(o,a,u):o[a]=e[a]}return o.default=e,n&&n.set(e,o),o}(n(6540)),a=n(7767),u=(o=n(9525))&&o.__esModule?o:{default:o},l=n(9012),c=n(5511),s=n(297),f=n(4848);function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}t.A=function(e){var t=e.fallbackPath,n=i.useContext(u.default);if(null===n)throw new l.AuthError("Auth Provider is missing. Make sure, you are using this component inside the auth provider.");return(0,c.isAuthenticated)(n.value)?(0,f.jsx)(a.Outlet,{}):(n.set((0,s.doSignOut)()),(0,f.jsx)(a.Navigate,{to:t,replace:!0}))}},5588:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;td,B6:()=>M,G3:()=>ae,Gh:()=>V,HS:()=>F,Oi:()=>l,Pq:()=>U,Rr:()=>p,Sk:()=>K,V2:()=>Z,aE:()=>se,o1:()=>B,pX:()=>G,pb:()=>R,rc:()=>o,ro:()=>b,sC:()=>a,tH:()=>q,tW:()=>j,ue:()=>y,v6:()=>Q,yD:()=>I,zR:()=>u}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(o||(o={}));const i="popstate";function a(e){void 0===e&&(e={});let t,{initialEntries:n=["/"],initialIndex:r,v5Compat:i=!1}=e;t=n.map(((e,t)=>m(e,"string"==typeof e?null:e.state,0===t?"default":void 0)));let a=s(null==r?t.length-1:r),u=o.Pop,l=null;function s(e){return Math.min(Math.max(e,0),t.length-1)}function h(){return t[a]}function m(e,n,r){void 0===n&&(n=null);let o=f(t?h().pathname:"/",e,n,r);return c("/"===o.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),o}function v(e){return"string"==typeof e?e:d(e)}return{get index(){return a},get action(){return u},get location(){return h()},createHref:v,createURL:e=>new URL(v(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?p(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,n){u=o.Push;let r=m(e,n);a+=1,t.splice(a,t.length,r),i&&l&&l({action:u,location:r,delta:1})},replace(e,n){u=o.Replace;let r=m(e,n);t[a]=r,i&&l&&l({action:u,location:r,delta:0})},go(e){u=o.Pop;let n=s(a+e),r=t[n];a=n,l&&l({action:u,location:r,delta:e})},listen:e=>(l=e,()=>{l=null})}}function u(e){return void 0===e&&(e={}),function(e,t,n,a){void 0===a&&(a={});let{window:u=document.defaultView,v5Compat:c=!1}=a,p=u.history,h=o.Pop,m=null,v=y();function y(){return(p.state||{idx:null}).idx}function b(){h=o.Pop;let e=y(),t=null==e?null:e-v;v=e,m&&m({action:h,location:g.location,delta:t})}function A(e){let t="null"!==u.location.origin?u.location.origin:u.location.href,n="string"==typeof e?e:d(e);return n=n.replace(/ $/,"%20"),l(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==v&&(v=0,p.replaceState(r({},p.state,{idx:v}),""));let g={get action(){return h},get location(){return e(u,p)},listen(e){if(m)throw new Error("A history only accepts one active listener");return u.addEventListener(i,b),m=e,()=>{u.removeEventListener(i,b),m=null}},createHref:e=>t(u,e),createURL:A,encodeLocation(e){let t=A(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){h=o.Push;let r=f(g.location,e,t);n&&n(r,e),v=y()+1;let i=s(r,v),a=g.createHref(r);try{p.pushState(i,"",a)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;u.location.assign(a)}c&&m&&m({action:h,location:g.location,delta:1})},replace:function(e,t){h=o.Replace;let r=f(g.location,e,t);n&&n(r,e),v=y();let i=s(r,v),a=g.createHref(r);p.replaceState(i,"",a),c&&m&&m({action:h,location:g.location,delta:0})},go:e=>p.go(e)};return g}((function(e,t){let{pathname:n,search:r,hash:o}=e.location;return f("",{pathname:n,search:r,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"==typeof t?t:d(t)}),null,e)}function l(e,t){if(!1===e||null==e)throw new Error(t)}function c(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function s(e,t){return{usr:e.state,key:e.key,idx:t}}function f(e,t,n,o){return void 0===n&&(n=null),r({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?p(t):t,{state:n,key:t&&t.key||o||Math.random().toString(36).substr(2,8)})}function d(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function p(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}var h;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(h||(h={}));const m=new Set(["lazy","caseSensitive","path","id","index","children"]);function v(e,t,n,o){return void 0===n&&(n=[]),void 0===o&&(o={}),e.map(((e,i)=>{let a=[...n,i],u="string"==typeof e.id?e.id:a.join("-");if(l(!0!==e.index||!e.children,"Cannot specify children on an index route"),l(!o[u],'Found a route id collision on id "'+u+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){let n=r({},e,t(e),{id:u});return o[u]=n,n}{let n=r({},e,t(e),{id:u,children:void 0});return o[u]=n,e.children&&(n.children=v(e.children,t,a,o)),n}}))}function y(e,t,n){void 0===n&&(n="/");let r=R(("string"==typeof t?p(t):t).pathname||"/",n);if(null==r)return null;let o=A(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]))?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let e=0;null==i&&e{let a={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};a.relativePath.startsWith("/")&&(l(a.relativePath.startsWith(r),'Absolute route path "'+a.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),a.relativePath=a.relativePath.slice(r.length));let u=F([r,a.relativePath]),c=n.concat(a);e.children&&e.children.length>0&&(l(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+u+'".'),A(e.children,t,c,u)),(null!=e.path||e.index)&&t.push({path:u,score:O(u,e.index),routesMeta:c})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let n of g(e.path))o(e,t,n);else o(e,t)})),t}function g(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=g(r.join("/")),u=[];return u.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&u.push(...a),u.map((t=>e.startsWith("/")&&""===t?"/":t))}const C=/^:[\w-]+$/,w=3,E=2,S=1,x=10,_=-2,k=e=>"*"===e;function O(e,t){let n=e.split("/"),r=n.length;return n.some(k)&&(r+=_),t&&(r+=E),n.filter((e=>!k(e))).reduce(((e,t)=>e+(C.test(t)?w:""===t?S:x)),r)}function P(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let e=0;enull==e?"":"string"==typeof e?e:String(e);return r+n.split(/\/+/).map(((e,n,r)=>{if(n===r.length-1&&"*"===e)return o(t["*"]);const i=e.match(/^:([\w-]+)(\??)$/);if(i){const[,e,n]=i;let r=t[e];return l("?"===n||null!=r,'Missing ":'+e+'" param'),o(r)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")}function M(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=function(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!0),c("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));return e.endsWith("*")?(r.push({paramName:"*"}),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),u=o.slice(1);return{params:r.reduce(((e,t,n)=>{let{paramName:r,isOptional:o}=t;if("*"===r){let e=u[n]||"";a=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const l=u[n];return e[r]=o&&!l?void 0:(l||"").replace(/%2F/g,"/"),e}),{}),pathname:i,pathnameBase:a,pattern:e}}function T(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return c(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function R(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function B(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:o=""}="string"==typeof e?p(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:D(r),hash:z(o)}}function N(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.'}function L(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function I(e,t){let n=L(e);return t?n.map(((t,n)=>n===e.length-1?t.pathname:t.pathnameBase)):n.map((e=>e.pathnameBase))}function V(e,t,n,o){let i;void 0===o&&(o=!1),"string"==typeof e?i=p(e):(i=r({},e),l(!i.pathname||!i.pathname.includes("?"),N("?","pathname","search",i)),l(!i.pathname||!i.pathname.includes("#"),N("#","pathname","hash",i)),l(!i.search||!i.search.includes("#"),N("#","search","hash",i)));let a,u=""===e||""===i.pathname,c=u?"/":i.pathname;if(null==c)a=n;else{let e=t.length-1;if(!o&&c.startsWith("..")){let t=c.split("/");for(;".."===t[0];)t.shift(),e-=1;i.pathname=t.join("/")}a=e>=0?t[e]:"/"}let s=B(i,a),f=c&&"/"!==c&&c.endsWith("/"),d=(u||"."===c)&&n.endsWith("/");return s.pathname.endsWith("/")||!f&&!d||(s.pathname+="/"),s}const F=e=>e.join("/").replace(/\/\/+/g,"/"),H=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),D=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",z=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",U=function(e,t){void 0===t&&(t={});let n="number"==typeof t?{status:t}:t,o=new Headers(n.headers);return o.has("Content-Type")||o.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),r({},n,{headers:o}))};class q extends Error{}class W{constructor(e,t){let n;this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],l(e&&"object"==typeof e&&!Array.isArray(e),"defer() only accepts plain objects"),this.abortPromise=new Promise(((e,t)=>n=t)),this.controller=new AbortController;let r=()=>n(new q("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",r),this.controller.signal.addEventListener("abort",r),this.data=Object.entries(e).reduce(((e,t)=>{let[n,r]=t;return Object.assign(e,{[n]:this.trackPromise(n,r)})}),{}),this.done&&this.unlistenAbortSignal(),this.init=t}trackPromise(e,t){if(!(t instanceof Promise))return t;this.deferredKeys.push(e),this.pendingKeysSet.add(e);let n=Promise.race([t,this.abortPromise]).then((t=>this.onSettle(n,e,void 0,t)),(t=>this.onSettle(n,e,t)));return n.catch((()=>{})),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(e,t,n,r){if(this.controller.signal.aborted&&n instanceof q)return this.unlistenAbortSignal(),Object.defineProperty(e,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(t),this.done&&this.unlistenAbortSignal(),void 0===n&&void 0===r){let n=new Error('Deferred data for key "'+t+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(e,"_error",{get:()=>n}),this.emit(!1,t),Promise.reject(n)}return void 0===r?(Object.defineProperty(e,"_error",{get:()=>n}),this.emit(!1,t),Promise.reject(n)):(Object.defineProperty(e,"_data",{get:()=>r}),this.emit(!1,t),r)}emit(e,t){this.subscribers.forEach((n=>n(e,t)))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach(((e,t)=>this.pendingKeysSet.delete(t))),this.emit(!0)}async resolveData(e){let t=!1;if(!this.done){let n=()=>this.cancel();e.addEventListener("abort",n),t=await new Promise((t=>{this.subscribe((r=>{e.removeEventListener("abort",n),(r||this.done)&&t(r)}))}))}return t}get done(){return 0===this.pendingKeysSet.size}get unwrappedData(){return l(null!==this.data&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce(((e,t)=>{let[n,r]=t;return Object.assign(e,{[n]:$(r)})}),{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function $(e){if(!function(e){return e instanceof Promise&&!0===e._tracked}(e))return e;if(e._error)throw e._error;return e._data}const Q=function(e,t){return void 0===t&&(t={}),new W(e,"number"==typeof t?{status:t}:t)},Z=function(e,t){void 0===t&&(t=302);let n=t;"number"==typeof n?n={status:n}:void 0===n.status&&(n.status=302);let o=new Headers(n.headers);return o.set("Location",e),new Response(null,r({},n,{headers:o}))},K=(e,t)=>{let n=Z(e,t);return n.headers.set("X-Remix-Reload-Document","true"),n};class Y{constructor(e,t,n,r){void 0===r&&(r=!1),this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function G(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const J=["post","put","patch","delete"],X=new Set(J),ee=["get",...J],te=new Set(ee),ne=new Set([301,302,303,307,308]),re=new Set([307,308]),oe={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ie={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ae={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ue=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,le=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ce="remix-router-transitions";function se(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,n=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement,i=!n;let a;if(l(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let t=e.detectErrorBoundary;a=e=>({hasErrorBoundary:t(e)})}else a=le;let u,s,d={},p=v(e.routes,a,void 0,d),m=e.basename||"/",A=e.unstable_dataStrategy||ye,g=r({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,unstable_skipActionErrorRevalidation:!1},e.future),C=null,w=new Set,E=null,S=null,x=null,_=null!=e.hydrationData,k=y(p,e.history.location,m),O=null;if(null==k){let t=Oe(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=ke(p);k=n,O={[r.id]:t}}let P,j=k.some((e=>e.route.lazy)),M=k.some((e=>e.route.loader));if(j)s=!1;else if(M)if(g.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=e=>!e.route.loader||("function"!=typeof e.route.loader||!0!==e.route.loader.hydrate)&&(t&&void 0!==t[e.route.id]||n&&void 0!==n[e.route.id]);if(n){let e=k.findIndex((e=>void 0!==n[e.route.id]));s=k.slice(0,e+1).every(r)}else s=k.every(r)}else s=null!=e.hydrationData;else s=!0;let T,B={historyAction:e.history.action,location:e.history.location,matches:k,initialized:s,navigation:oe,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||O,fetchers:new Map,blockers:new Map},N=o.Pop,L=!1,I=!1,V=new Map,F=null,H=!1,D=!1,z=[],U=[],q=new Map,W=0,$=-1,Q=new Map,Z=new Set,K=new Map,J=new Map,X=new Set,ee=new Map,te=new Map,se=!1;function he(e,t){void 0===t&&(t={}),B=r({},B,e);let n=[],o=[];g.v7_fetcherPersist&&B.fetchers.forEach(((e,t)=>{"idle"===e.state&&(X.has(t)?o.push(t):n.push(t))})),[...w].forEach((e=>e(B,{deletedFetchers:o,unstable_viewTransitionOpts:t.viewTransitionOpts,unstable_flushSync:!0===t.flushSync}))),g.v7_fetcherPersist&&(n.forEach((e=>B.fetchers.delete(e))),o.forEach((e=>Ze(e))))}function me(t,n,i){var a,l;let c,{flushSync:s}=void 0===i?{}:i,f=null!=B.actionData&&null!=B.navigation.formMethod&&Ne(B.navigation.formMethod)&&"loading"===B.navigation.state&&!0!==(null==(a=t.state)?void 0:a._isRedirect);c=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:f?B.actionData:null;let d=n.loaderData?Se(B.loaderData,n.loaderData,n.matches||[],n.errors):B.loaderData,h=B.blockers;h.size>0&&(h=new Map(h),h.forEach(((e,t)=>h.set(t,ae))));let m,v=!0===L||null!=B.navigation.formMethod&&Ne(B.navigation.formMethod)&&!0!==(null==(l=t.state)?void 0:l._isRedirect);if(u&&(p=u,u=void 0),H||N===o.Pop||(N===o.Push?e.history.push(t,t.state):N===o.Replace&&e.history.replace(t,t.state)),N===o.Pop){let e=V.get(B.location.pathname);e&&e.has(t.pathname)?m={currentLocation:B.location,nextLocation:t}:V.has(t.pathname)&&(m={currentLocation:t,nextLocation:B.location})}else if(I){let e=V.get(B.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),V.set(B.location.pathname,e)),m={currentLocation:B.location,nextLocation:t}}he(r({},n,{actionData:c,loaderData:d,historyAction:N,location:t,initialized:!0,navigation:oe,revalidation:"idle",restoreScrollPosition:ot(t,n.matches||B.matches),preventScrollReset:v,blockers:h}),{viewTransitionOpts:m,flushSync:!0===s}),N=o.Pop,L=!1,I=!1,H=!1,D=!1,z=[],U=[]}async function Ce(t,n,i){T&&T.abort(),T=null,N=t,H=!0===(i&&i.startUninterruptedRevalidation),function(e,t){if(E&&x){let n=rt(e,t);E[n]=x()}}(B.location,B.matches),L=!0===(i&&i.preventScrollReset),I=!0===(i&&i.enableViewTransition);let a=u||p,l=i&&i.overrideNavigation,c=y(a,n,m),s=!0===(i&&i.flushSync);if(!c){let e=Oe(404,{pathname:n.pathname}),{matches:t,route:r}=ke(a);return nt(),void me(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:s})}if(B.initialized&&!D&&(f=B.location,d=n,f.pathname===d.pathname&&f.search===d.search&&(""===f.hash?""!==d.hash:f.hash===d.hash||""!==d.hash))&&!(i&&i.submission&&Ne(i.submission.formMethod)))return void me(n,{matches:c},{flushSync:s});var f,d;T=new AbortController;let v,b=ge(e.history,n,T.signal,i&&i.submission);if(i&&i.pendingError)v=[_e(c).route.id,{type:h.error,error:i.pendingError}];else if(i&&i.submission&&Ne(i.submission.formMethod)){let t=await async function(e,t,n,r,i){void 0===i&&(i={}),qe();let a,u=function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(t,n);he({navigation:u},{flushSync:!0===i.flushSync});let l=Fe(r,t);if(l.route.action||l.route.lazy){if(a=(await je("action",e,[l],r))[0],e.signal.aborted)return{shortCircuited:!0}}else a={type:h.error,error:Oe(405,{method:e.method,pathname:t.pathname,routeId:l.route.id})};if(Re(a)){let t;return t=i&&null!=i.replace?i.replace:Ae(a.response.headers.get("Location"),new URL(e.url),m)===B.location.pathname+B.location.search,await we(e,a,{submission:n,replace:t}),{shortCircuited:!0}}if(Me(a))throw Oe(400,{type:"defer-action"});if(Te(a)){let e=_e(r,l.route.id);return!0!==(i&&i.replace)&&(N=o.Push),{pendingActionResult:[e.route.id,a]}}return{pendingActionResult:[l.route.id,a]}}(b,n,i.submission,c,{replace:i.replace,flushSync:s});if(t.shortCircuited)return;v=t.pendingActionResult,l=De(n,i.submission),s=!1,b=ge(e.history,b.url,b.signal)}let{shortCircuited:A,loaderData:C,errors:w}=await async function(t,n,o,i,a,l,c,s,f,d){let h=i||De(n,a),v=a||l||He(h),y=u||p,[b,A]=pe(e.history,B,o,v,n,g.v7_partialHydration&&!0===s,g.unstable_skipActionErrorRevalidation,D,z,U,X,K,Z,y,m,d);if(nt((e=>!(o&&o.some((t=>t.route.id===e)))||b&&b.some((t=>t.route.id===e)))),$=++W,0===b.length&&0===A.length){let e=Ge();return me(n,r({matches:o,loaderData:{},errors:d&&Te(d[1])?{[d[0]]:d[1].error}:null},xe(d),e?{fetchers:new Map(B.fetchers)}:{}),{flushSync:f}),{shortCircuited:!0}}if(!(H||g.v7_partialHydration&&s)){let e;A.forEach((e=>{let t=B.fetchers.get(e.key),n=ze(void 0,t?t.data:void 0);B.fetchers.set(e.key,n)})),d&&!Te(d[1])?e={[d[0]]:d[1].data}:B.actionData&&(e=0===Object.keys(B.actionData).length?null:B.actionData),he(r({navigation:h},void 0!==e?{actionData:e}:{},A.length>0?{fetchers:new Map(B.fetchers)}:{}),{flushSync:f})}A.forEach((e=>{q.has(e.key)&&Ke(e.key),e.controller&&q.set(e.key,e.controller)}));let C=()=>A.forEach((e=>Ke(e.key)));T&&T.signal.addEventListener("abort",C);let{loaderResults:w,fetcherResults:E}=await Ve(B.matches,o,b,A,t);if(t.signal.aborted)return{shortCircuited:!0};T&&T.signal.removeEventListener("abort",C),A.forEach((e=>q.delete(e.key)));let S=Pe([...w,...E]);if(S){if(S.idx>=b.length){let e=A[S.idx-b.length].key;Z.add(e)}return await we(t,S.result,{replace:c}),{shortCircuited:!0}}let{loaderData:x,errors:_}=Ee(B,o,b,w,d,A,E,ee);ee.forEach(((e,t)=>{e.subscribe((n=>{(n||e.done)&&ee.delete(t)}))})),g.v7_partialHydration&&s&&B.errors&&Object.entries(B.errors).filter((e=>{let[t]=e;return!b.some((e=>e.route.id===t))})).forEach((e=>{let[t,n]=e;_=Object.assign(_||{},{[t]:n})}));let k=Ge(),O=Je($),P=k||O||A.length>0;return r({loaderData:x,errors:_},P?{fetchers:new Map(B.fetchers)}:{})}(b,n,c,l,i&&i.submission,i&&i.fetcherSubmission,i&&i.replace,i&&!0===i.initialHydration,s,v);A||(T=null,me(n,r({matches:c},xe(v),{loaderData:C,errors:w})))}async function we(i,a,u){let{submission:c,fetcherSubmission:s,replace:d}=void 0===u?{}:u;a.response.headers.has("X-Remix-Revalidate")&&(D=!0);let p=a.response.headers.get("Location");l(p,"Expected a Location header on the redirect Response"),p=Ae(p,new URL(i.url),m);let h=f(B.location,p,{_isRedirect:!0});if(n){let n=!1;if(a.response.headers.has("X-Remix-Reload-Document"))n=!0;else if(ue.test(p)){const r=e.history.createURL(p);n=r.origin!==t.location.origin||null==R(r.pathname,m)}if(n)return void(d?t.location.replace(p):t.location.assign(p))}T=null;let v=!0===d?o.Replace:o.Push,{formMethod:y,formAction:b,formEncType:A}=B.navigation;!c&&!s&&y&&b&&A&&(c=He(B.navigation));let g=c||s;if(re.has(a.response.status)&&g&&Ne(g.formMethod))await Ce(v,h,{submission:r({},g,{formAction:p}),preventScrollReset:L});else{let e=De(h,c);await Ce(v,h,{overrideNavigation:e,fetcherSubmission:s,preventScrollReset:L})}}async function je(e,t,n,o){try{let i=await async function(e,t,n,o,i,a,u,c){let s=o.reduce(((e,t)=>e.add(t.route.id)),new Set),f=new Set,d=await e({matches:i.map((e=>{let o=s.has(e.route.id);return r({},e,{shouldLoad:o,resolve:r=>(f.add(e.route.id),o?async function(e,t,n,r,o,i,a){let u,c,s=r=>{let o,u=new Promise(((e,t)=>o=t));c=()=>o(),t.signal.addEventListener("abort",c);let l,s=o=>"function"!=typeof r?Promise.reject(new Error('You cannot call the handler for a route which defines a boolean "'+e+'" [routeId: '+n.route.id+"]")):r({request:t,params:n.params,context:a},...void 0!==o?[o]:[]);return l=i?i((e=>s(e))):(async()=>{try{return{type:"data",result:await s()}}catch(e){return{type:"error",result:e}}})(),Promise.race([l,u])};try{let i=n.route[e];if(n.route.lazy)if(i){let e,[t]=await Promise.all([s(i).catch((t=>{e=t})),ve(n.route,o,r)]);if(void 0!==e)throw e;u=t}else{if(await ve(n.route,o,r),i=n.route[e],!i){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw Oe(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:h.data,result:void 0}}u=await s(i)}else{if(!i){let e=new URL(t.url);throw Oe(404,{pathname:e.pathname+e.search})}u=await s(i)}l(void 0!==u.result,"You defined "+("action"===e?"an action":"a loader")+' for route "'+n.route.id+"\" but didn't return anything from your `"+e+"` function. Please return a value or `null`.")}catch(e){return{type:h.error,result:e}}finally{c&&t.signal.removeEventListener("abort",c)}return u}(t,n,e,a,u,r,c):Promise.resolve({type:h.data,result:void 0}))})})),request:n,params:i[0].params,context:c});return i.forEach((e=>l(f.has(e.route.id),'`match.resolve()` was not called for route id "'+e.route.id+'". You must call `match.resolve()` on every match passed to `dataStrategy` to ensure all routes are properly loaded.'))),d.filter(((e,t)=>s.has(i[t].route.id)))}(A,e,t,n,o,d,a);return await Promise.all(i.map(((e,r)=>{if(function(e){return Be(e.result)&&ne.has(e.result.status)}(e)){let i=e.result;return{type:h.redirect,response:be(i,t,n[r].route.id,o,m,g.v7_relativeSplatPath)}}return async function(e){let{result:t,type:n,status:r}=e;if(Be(t)){let e;try{let n=t.headers.get("Content-Type");e=n&&/\bapplication\/json\b/.test(n)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:h.error,error:e}}return n===h.error?{type:h.error,error:new Y(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:h.data,data:e,statusCode:t.status,headers:t.headers}}return n===h.error?{type:h.error,error:t,statusCode:G(t)?t.status:r}:function(e){let t=e;return t&&"object"==typeof t&&"object"==typeof t.data&&"function"==typeof t.subscribe&&"function"==typeof t.cancel&&"function"==typeof t.resolveData}(t)?{type:h.deferred,deferredData:t,statusCode:null==(o=t.init)?void 0:o.status,headers:(null==(i=t.init)?void 0:i.headers)&&new Headers(t.init.headers)}:{type:h.data,data:t,statusCode:r};var o,i}(e)})))}catch(e){return n.map((()=>({type:h.error,error:e})))}}async function Ve(t,n,r,o,i){let[a,...u]=await Promise.all([r.length?je("loader",i,r,n):[],...o.map((t=>t.matches&&t.match&&t.controller?je("loader",ge(e.history,t.path,t.controller.signal),[t.match],t.matches).then((e=>e[0])):Promise.resolve({type:h.error,error:Oe(404,{pathname:t.path})})))]);return await Promise.all([Le(t,r,a,a.map((()=>i.signal)),!1,B.loaderData),Le(t,o.map((e=>e.match)),u,o.map((e=>e.controller?e.controller.signal:null)),!0)]),{loaderResults:a,fetcherResults:u}}function qe(){D=!0,z.push(...nt()),K.forEach(((e,t)=>{q.has(t)&&(U.push(t),Ke(t))}))}function We(e,t,n){void 0===n&&(n={}),B.fetchers.set(e,t),he({fetchers:new Map(B.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function $e(e,t,n,r){void 0===r&&(r={});let o=_e(B.matches,t);Ze(e),he({errors:{[o.route.id]:n},fetchers:new Map(B.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function Qe(e){return g.v7_fetcherPersist&&(J.set(e,(J.get(e)||0)+1),X.has(e)&&X.delete(e)),B.fetchers.get(e)||ie}function Ze(e){let t=B.fetchers.get(e);!q.has(e)||t&&"loading"===t.state&&Q.has(e)||Ke(e),K.delete(e),Q.delete(e),Z.delete(e),X.delete(e),B.fetchers.delete(e)}function Ke(e){let t=q.get(e);l(t,"Expected fetch controller: "+e),t.abort(),q.delete(e)}function Ye(e){for(let t of e){let e=Ue(Qe(t).data);B.fetchers.set(t,e)}}function Ge(){let e=[],t=!1;for(let n of Z){let r=B.fetchers.get(n);l(r,"Expected fetcher: "+n),"loading"===r.state&&(Z.delete(n),e.push(n),t=!0)}return Ye(e),t}function Je(e){let t=[];for(let[n,r]of Q)if(r0}function Xe(e){B.blockers.delete(e),te.delete(e)}function et(e,t){let n=B.blockers.get(e)||ae;l("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state);let r=new Map(B.blockers);r.set(e,t),he({blockers:r})}function tt(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===te.size)return;te.size>1&&c(!1,"A router only supports one blocker at a time");let o=Array.from(te.entries()),[i,a]=o[o.length-1],u=B.blockers.get(i);return u&&"proceeding"===u.state?void 0:a({currentLocation:t,nextLocation:n,historyAction:r})?i:void 0}function nt(e){let t=[];return ee.forEach(((n,r)=>{e&&!e(r)||(n.cancel(),t.push(r),ee.delete(r))})),t}function rt(e,t){return S&&S(e,t.map((e=>b(e,B.loaderData))))||e.key}function ot(e,t){if(E){let n=rt(e,t),r=E[n];if("number"==typeof r)return r}return null}return P={get basename(){return m},get future(){return g},get state(){return B},get routes(){return p},get window(){return t},initialize:function(){if(C=e.history.listen((t=>{let{action:n,location:r,delta:o}=t;if(se)return void(se=!1);c(0===te.size||null!=o,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=tt({currentLocation:B.location,nextLocation:r,historyAction:n});return i&&null!=o?(se=!0,e.history.go(-1*o),void et(i,{state:"blocked",location:r,proceed(){et(i,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),e.history.go(o)},reset(){let e=new Map(B.blockers);e.set(i,ae),he({blockers:e})}})):Ce(n,r)})),n){!function(e,t){try{let n=e.sessionStorage.getItem(ce);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch(e){}}(t,V);let e=()=>function(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(ce,JSON.stringify(n))}catch(e){c(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}}(t,V);t.addEventListener("pagehide",e),F=()=>t.removeEventListener("pagehide",e)}return B.initialized||Ce(o.Pop,B.location,{initialHydration:!0}),P},subscribe:function(e){return w.add(e),()=>w.delete(e)},enableScrollRestoration:function(e,t,n){if(E=e,x=t,S=n||null,!_&&B.navigation===oe){_=!0;let e=ot(B.location,B.matches);null!=e&&he({restoreScrollPosition:e})}return()=>{E=null,x=null,S=null}},navigate:async function t(n,i){if("number"==typeof n)return void e.history.go(n);let a=fe(B.location,B.matches,m,g.v7_prependBasename,n,g.v7_relativeSplatPath,null==i?void 0:i.fromRouteId,null==i?void 0:i.relative),{path:u,submission:l,error:c}=de(g.v7_normalizeFormMethod,!1,a,i),s=B.location,d=f(B.location,u,i&&i.state);d=r({},d,e.history.encodeLocation(d));let p=i&&null!=i.replace?i.replace:void 0,h=o.Push;!0===p?h=o.Replace:!1===p||null!=l&&Ne(l.formMethod)&&l.formAction===B.location.pathname+B.location.search&&(h=o.Replace);let v=i&&"preventScrollReset"in i?!0===i.preventScrollReset:void 0,y=!0===(i&&i.unstable_flushSync),b=tt({currentLocation:s,nextLocation:d,historyAction:h});if(!b)return await Ce(h,d,{submission:l,pendingError:c,preventScrollReset:v,replace:i&&i.replace,enableViewTransition:i&&i.unstable_viewTransition,flushSync:y});et(b,{state:"blocked",location:d,proceed(){et(b,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),t(n,i)},reset(){let e=new Map(B.blockers);e.set(b,ae),he({blockers:e})}})},fetch:function(t,n,r,o){if(i)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");q.has(t)&&Ke(t);let a=!0===(o&&o.unstable_flushSync),c=u||p,s=fe(B.location,B.matches,m,g.v7_prependBasename,r,g.v7_relativeSplatPath,n,null==o?void 0:o.relative),f=y(c,s,m);if(!f)return void $e(t,n,Oe(404,{pathname:s}),{flushSync:a});let{path:d,submission:h,error:v}=de(g.v7_normalizeFormMethod,!0,s,o);if(v)return void $e(t,n,v,{flushSync:a});let b=Fe(f,d);L=!0===(o&&o.preventScrollReset),h&&Ne(h.formMethod)?async function(t,n,r,o,i,a,c){if(qe(),K.delete(t),!o.route.action&&!o.route.lazy){let e=Oe(405,{method:c.formMethod,pathname:r,routeId:n});return void $e(t,n,e,{flushSync:a})}let s=B.fetchers.get(t);We(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(c,s),{flushSync:a});let f=new AbortController,d=ge(e.history,r,f.signal,c);q.set(t,f);let h=W,v=(await je("action",d,[o],i))[0];if(d.signal.aborted)return void(q.get(t)===f&&q.delete(t));if(g.v7_fetcherPersist&&X.has(t)){if(Re(v)||Te(v))return void We(t,Ue(void 0))}else{if(Re(v))return q.delete(t),$>h?void We(t,Ue(void 0)):(Z.add(t),We(t,ze(c)),we(d,v,{fetcherSubmission:c}));if(Te(v))return void $e(t,n,v.error)}if(Me(v))throw Oe(400,{type:"defer-action"});let b=B.navigation.location||B.location,A=ge(e.history,b,f.signal),C=u||p,w="idle"!==B.navigation.state?y(C,B.navigation.location,m):B.matches;l(w,"Didn't find any matches after fetcher action");let E=++W;Q.set(t,E);let S=ze(c,v.data);B.fetchers.set(t,S);let[x,_]=pe(e.history,B,w,c,b,!1,g.unstable_skipActionErrorRevalidation,D,z,U,X,K,Z,C,m,[o.route.id,v]);_.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,n=B.fetchers.get(t),r=ze(void 0,n?n.data:void 0);B.fetchers.set(t,r),q.has(t)&&Ke(t),e.controller&&q.set(t,e.controller)})),he({fetchers:new Map(B.fetchers)});let k=()=>_.forEach((e=>Ke(e.key)));f.signal.addEventListener("abort",k);let{loaderResults:O,fetcherResults:P}=await Ve(B.matches,w,x,_,A);if(f.signal.aborted)return;f.signal.removeEventListener("abort",k),Q.delete(t),q.delete(t),_.forEach((e=>q.delete(e.key)));let j=Pe([...O,...P]);if(j){if(j.idx>=x.length){let e=_[j.idx-x.length].key;Z.add(e)}return we(A,j.result)}let{loaderData:M,errors:R}=Ee(B,B.matches,x,O,void 0,_,P,ee);if(B.fetchers.has(t)){let e=Ue(v.data);B.fetchers.set(t,e)}Je(E),"loading"===B.navigation.state&&E>$?(l(N,"Expected pending action"),T&&T.abort(),me(B.navigation.location,{matches:w,loaderData:M,errors:R,fetchers:new Map(B.fetchers)})):(he({errors:R,loaderData:Se(B.loaderData,M,w,R),fetchers:new Map(B.fetchers)}),D=!1)}(t,n,d,b,f,a,h):(K.set(t,{routeId:n,path:d}),async function(t,n,r,o,i,a,u){let c=B.fetchers.get(t);We(t,ze(u,c?c.data:void 0),{flushSync:a});let s=new AbortController,f=ge(e.history,r,s.signal);q.set(t,s);let d=W,p=(await je("loader",f,[o],i))[0];if(Me(p)&&(p=await Ie(p,f.signal,!0)||p),q.get(t)===s&&q.delete(t),!f.signal.aborted){if(!X.has(t))return Re(p)?$>d?void We(t,Ue(void 0)):(Z.add(t),void await we(f,p)):void(Te(p)?$e(t,n,p.error):(l(!Me(p),"Unhandled fetcher deferred data"),We(t,Ue(p.data))));We(t,Ue(void 0))}}(t,n,d,b,f,a,h))},revalidate:function(){qe(),he({revalidation:"loading"}),"submitting"!==B.navigation.state&&("idle"!==B.navigation.state?Ce(N||B.historyAction,B.navigation.location,{overrideNavigation:B.navigation}):Ce(B.historyAction,B.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Qe,deleteFetcher:function(e){if(g.v7_fetcherPersist){let t=(J.get(e)||0)-1;t<=0?(J.delete(e),X.add(e)):J.set(e,t)}else Ze(e);he({fetchers:new Map(B.fetchers)})},dispose:function(){C&&C(),F&&F(),w.clear(),T&&T.abort(),B.fetchers.forEach(((e,t)=>Ze(t))),B.blockers.forEach(((e,t)=>Xe(t)))},getBlocker:function(e,t){let n=B.blockers.get(e)||ae;return te.get(e)!==t&&te.set(e,t),n},deleteBlocker:Xe,_internalFetchControllers:q,_internalActiveDeferreds:ee,_internalSetRoutes:function(e){d={},u=v(e,a,void 0,d)}},P}function fe(e,t,n,r,o,i,a,u){let l,c;if(a){l=[];for(let e of t)if(l.push(e),e.route.id===a){c=e;break}}else l=t,c=t[t.length-1];let s=V(o||".",I(l,i),R(e.pathname,n)||e.pathname,"path"===u);return null==o&&(s.search=e.search,s.hash=e.hash),null!=o&&""!==o&&"."!==o||!c||!c.route.index||Ve(s.search)||(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),r&&"/"!==n&&(s.pathname="/"===s.pathname?n:F([n,s.pathname])),d(s)}function de(e,t,n,r){if(!r||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(r))return{path:n};if(r.formMethod&&(o=r.formMethod,!te.has(o.toLowerCase())))return{path:n,error:Oe(405,{method:r.formMethod})};var o;let i,a,u=()=>({path:n,error:Oe(400,{type:"invalid-body"})}),c=r.formMethod||"get",s=e?c.toUpperCase():c.toLowerCase(),f=je(n);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!Ne(s))return u();let e="string"==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce(((e,t)=>{let[n,r]=t;return""+e+n+"="+r+"\n"}),""):String(r.body);return{path:n,submission:{formMethod:s,formAction:f,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!Ne(s))return u();try{let e="string"==typeof r.body?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:s,formAction:f,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return u()}}}if(l("function"==typeof FormData,"FormData is not available in this environment"),r.formData)i=Ce(r.formData),a=r.formData;else if(r.body instanceof FormData)i=Ce(r.body),a=r.body;else if(r.body instanceof URLSearchParams)i=r.body,a=we(i);else if(null==r.body)i=new URLSearchParams,a=new FormData;else try{i=new URLSearchParams(r.body),a=we(i)}catch(e){return u()}let h={formMethod:s,formAction:f,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(Ne(h.formMethod))return{path:n,submission:h};let m=p(n);return t&&m.search&&Ve(m.search)&&i.append("index",""),m.search="?"+i,{path:d(m),submission:h}}function pe(e,t,n,o,i,a,u,l,c,s,f,d,p,h,m,v){let b=v?Te(v[1])?v[1].error:v[1].data:void 0,A=e.createURL(t.location),g=e.createURL(i),C=v&&Te(v[1])?v[0]:void 0,w=C?function(e,t){let n=e;if(t){let r=e.findIndex((e=>e.route.id===t));r>=0&&(n=e.slice(0,r))}return n}(n,C):n,E=v?v[1].statusCode:void 0,S=u&&E&&E>=400,x=w.filter(((e,n)=>{let{route:i}=e;if(i.lazy)return!0;if(null==i.loader)return!1;if(a)return!("function"==typeof i.loader&&!i.loader.hydrate&&(void 0!==t.loaderData[i.id]||t.errors&&void 0!==t.errors[i.id]));if(function(e,t,n){let r=!t||n.route.id!==t.route.id,o=void 0===e[n.route.id];return r||o}(t.loaderData,t.matches[n],e)||c.some((t=>t===e.route.id)))return!0;let u=t.matches[n],s=e;return me(e,r({currentUrl:A,currentParams:u.params,nextUrl:g,nextParams:s.params},o,{actionResult:b,unstable_actionStatus:E,defaultShouldRevalidate:!S&&(l||A.pathname+A.search===g.pathname+g.search||A.search!==g.search||he(u,s))}))})),_=[];return d.forEach(((e,i)=>{if(a||!n.some((t=>t.route.id===e.routeId))||f.has(i))return;let u=y(h,e.path,m);if(!u)return void _.push({key:i,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let c=t.fetchers.get(i),d=Fe(u,e.path),v=!1;v=!p.has(i)&&(!!s.includes(i)||(c&&"idle"!==c.state&&void 0===c.data?l:me(d,r({currentUrl:A,currentParams:t.matches[t.matches.length-1].params,nextUrl:g,nextParams:n[n.length-1].params},o,{actionResult:b,unstable_actionStatus:E,defaultShouldRevalidate:!S&&l})))),v&&_.push({key:i,routeId:e.routeId,path:e.path,matches:u,match:d,controller:new AbortController})})),[x,_]}function he(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function me(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"==typeof n)return n}return t.defaultShouldRevalidate}async function ve(e,t,n){if(!e.lazy)return;let o=await e.lazy();if(!e.lazy)return;let i=n[e.id];l(i,"No route found in manifest");let a={};for(let e in o){let t=void 0!==i[e]&&"hasErrorBoundary"!==e;c(!t,'Route "'+i.id+'" has a static property "'+e+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+e+'" will be ignored.'),t||m.has(e)||(a[e]=o[e])}Object.assign(i,a),Object.assign(i,r({},t(i),{lazy:void 0}))}function ye(e){return Promise.all(e.matches.map((e=>e.resolve())))}function be(e,t,n,r,o,i){let a=e.headers.get("Location");if(l(a,"Redirects returned/thrown from loaders/actions must have a Location header"),!ue.test(a)){let u=r.slice(0,r.findIndex((e=>e.route.id===n))+1);a=fe(new URL(t.url),u,o,!0,a,i),e.headers.set("Location",a)}return e}function Ae(e,t,n){if(ue.test(e)){let r=e,o=r.startsWith("//")?new URL(t.protocol+r):new URL(r),i=null!=R(o.pathname,n);if(o.origin===t.origin&&i)return o.pathname+o.search+o.hash}return e}function ge(e,t,n,r){let o=e.createURL(je(t)).toString(),i={signal:n};if(r&&Ne(r.formMethod)){let{formMethod:e,formEncType:t}=r;i.method=e.toUpperCase(),"application/json"===t?(i.headers=new Headers({"Content-Type":t}),i.body=JSON.stringify(r.json)):"text/plain"===t?i.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?i.body=Ce(r.formData):i.body=r.formData}return new Request(o,i)}function Ce(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,"string"==typeof r?r:r.name);return t}function we(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Ee(e,t,n,o,i,a,u,c){let{loaderData:s,errors:f}=function(e,t,n,r,o,i){let a,u={},c=null,s=!1,f={},d=r&&Te(r[1])?r[1].error:void 0;return n.forEach(((n,r)=>{let p=t[r].route.id;if(l(!Re(n),"Cannot handle redirect results in processLoaderData"),Te(n)){let t=n.error;if(void 0!==d&&(t=d,d=void 0),c=c||{},i)c[p]=t;else{let n=_e(e,p);null==c[n.route.id]&&(c[n.route.id]=t)}u[p]=void 0,s||(s=!0,a=G(n.error)?n.error.status:500),n.headers&&(f[p]=n.headers)}else Me(n)?(o.set(p,n.deferredData),u[p]=n.deferredData.data,null==n.statusCode||200===n.statusCode||s||(a=n.statusCode),n.headers&&(f[p]=n.headers)):(u[p]=n.data,n.statusCode&&200!==n.statusCode&&!s&&(a=n.statusCode),n.headers&&(f[p]=n.headers))})),void 0!==d&&r&&(c={[r[0]]:d},u[r[0]]=void 0),{loaderData:u,errors:c,statusCode:a||200,loaderHeaders:f}}(t,n,o,i,c,!1);for(let t=0;te.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function ke(e){let t=1===e.length?e[0]:e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Oe(e,t){let{pathname:n,routeId:r,method:o,type:i}=void 0===t?{}:t,a="Unknown Server Error",u="Unknown @remix-run/router error";return 400===e?(a="Bad Request",o&&n&&r?u="You made a "+o+' request to "'+n+'" but did not provide a `loader` for route "'+r+'", so there is no way to handle the request.':"defer-action"===i?u="defer() is not supported in actions":"invalid-body"===i&&(u="Unable to encode submission body")):403===e?(a="Forbidden",u='Route "'+r+'" does not match URL "'+n+'"'):404===e?(a="Not Found",u='No route matches URL "'+n+'"'):405===e&&(a="Method Not Allowed",o&&n&&r?u="You made a "+o.toUpperCase()+' request to "'+n+'" but did not provide an `action` for route "'+r+'", so there is no way to handle the request.':o&&(u='Invalid request method "'+o.toUpperCase()+'"')),new Y(e||500,a,new Error(u),!0)}function Pe(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(Re(n))return{result:n,idx:t}}}function je(e){return d(r({},"string"==typeof e?p(e):e,{hash:""}))}function Me(e){return e.type===h.deferred}function Te(e){return e.type===h.error}function Re(e){return(e&&e.type)===h.redirect}function Be(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function Ne(e){return X.has(e.toLowerCase())}async function Le(e,t,n,r,o,i){for(let a=0;ae.route.id===c.route.id)),f=null!=s&&!he(s,c)&&void 0!==(i&&i[c.route.id]);if(Me(u)&&(o||f)){let e=r[a];l(e,"Expected an AbortSignal for revalidating fetcher deferred result"),await Ie(u,e,o).then((e=>{e&&(n[a]=e||n[a])}))}}}async function Ie(e,t,n){if(void 0===n&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:h.data,data:e.deferredData.unwrappedData}}catch(e){return{type:h.error,error:e}}return{type:h.data,data:e.deferredData.data}}}function Ve(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function Fe(e,t){let n="string"==typeof t?p(t).search:t.search;if(e[e.length-1].route.index&&Ve(n||""))return e[e.length-1];let r=L(e);return r[r.length-1]}function He(e){let{formMethod:t,formAction:n,formEncType:r,text:o,formData:i,json:a}=e;if(t&&n&&r)return null!=o?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:o}:null!=i?{formMethod:t,formAction:n,formEncType:r,formData:i,json:void 0,text:void 0}:void 0!==a?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:a,text:void 0}:void 0}function De(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function ze(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Ue(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}Symbol("deferred")},8972:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,"/*\n! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #CACACA; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.left-\\[10px\\] {\n left: 10px;\n}\n.top-0 {\n top: 0px;\n}\n.top-\\[-10px\\] {\n top: -10px;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n.h-1\\/4 {\n height: 25%;\n}\n.h-32 {\n height: 8rem;\n}\n.h-\\[30px\\] {\n height: 30px;\n}\n.h-\\[50px\\] {\n height: 50px;\n}\n.h-full {\n height: 100%;\n}\n.h-screen {\n height: 100vh;\n}\n.min-h-\\[25px\\] {\n min-height: 25px;\n}\n.w-12 {\n width: 3rem;\n}\n.w-\\[50px\\] {\n width: 50px;\n}\n.w-full {\n width: 100%;\n}\n.min-w-\\[25px\\] {\n min-width: 25px;\n}\n.min-w-\\[30px\\] {\n min-width: 30px;\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-\\[10px\\] {\n gap: 10px;\n}\n.gap-\\[14px\\] {\n gap: 14px;\n}\n.gap-\\[20px\\] {\n gap: 20px;\n}\n.gap-\\[2px\\] {\n gap: 2px;\n}\n.gap-\\[30px\\] {\n gap: 30px;\n}\n.gap-\\[40px\\] {\n gap: 40px;\n}\n.gap-\\[4px\\] {\n gap: 4px;\n}\n.gap-\\[6px\\] {\n gap: 6px;\n}\n.gap-\\[8px\\] {\n gap: 8px;\n}\n.overflow-auto {\n overflow: auto;\n}\n.rounded-\\[12px\\] {\n border-radius: 12px;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-t-\\[12px\\] {\n border-top-left-radius: 12px;\n border-top-right-radius: 12px;\n}\n.border {\n border-width: 1px;\n}\n.border-border\\/50 {\n border-color: rgb(102 102 102 / 0.5);\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity));\n}\n.border-red-500\\/60 {\n border-color: rgb(239 68 68 / 0.6);\n}\n.bg-\\[\\#013362\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(1 51 98 / var(--tw-bg-opacity));\n}\n.bg-\\[\\#EDFBFF\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(237 251 255 / var(--tw-bg-opacity));\n}\n.bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(238 237 237 / var(--tw-bg-opacity));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(202 202 202 / var(--tw-bg-opacity));\n}\n.bg-primary {\n --tw-bg-opacity: 1;\n background-color: rgb(1 51 98 / var(--tw-bg-opacity));\n}\n.bg-secondary {\n --tw-bg-opacity: 1;\n background-color: rgb(201 151 76 / var(--tw-bg-opacity));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pt-10 {\n padding-top: 2.5rem;\n}\n.text-center {\n text-align: center;\n}\n.font-outfit {\n font-family: Outfit, sans-serif;\n}\n.font-poppins {\n font-family: Poppins, sans-serif;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-\\[12px\\] {\n font-size: 12px;\n}\n.text-\\[14px\\] {\n font-size: 14px;\n}\n.text-\\[16px\\] {\n font-size: 16px;\n}\n.text-\\[18px\\] {\n font-size: 18px;\n}\n.text-\\[20px\\] {\n font-size: 20px;\n}\n.text-\\[28px\\] {\n font-size: 28px;\n}\n.text-\\[32px\\] {\n font-size: 32px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.font-\\[300\\] {\n font-weight: 300;\n}\n.font-\\[400\\] {\n font-weight: 400;\n}\n.font-\\[500\\] {\n font-weight: 500;\n}\n.font-\\[600\\] {\n font-weight: 600;\n}\n.font-\\[700\\] {\n font-weight: 700;\n}\n.font-\\[800\\] {\n font-weight: 800;\n}\n.font-medium {\n font-weight: 500;\n}\n.text-\\[\\#333333\\] {\n --tw-text-opacity: 1;\n color: rgb(51 51 51 / var(--tw-text-opacity));\n}\n.text-\\[\\#37C9EE\\] {\n --tw-text-opacity: 1;\n color: rgb(55 201 238 / var(--tw-text-opacity));\n}\n.text-\\[\\#666666\\] {\n --tw-text-opacity: 1;\n color: rgb(102 102 102 / var(--tw-text-opacity));\n}\n.text-\\[\\#828282\\] {\n --tw-text-opacity: 1;\n color: rgb(130 130 130 / var(--tw-text-opacity));\n}\n.text-\\[\\#A3A2A2\\] {\n --tw-text-opacity: 1;\n color: rgb(163 162 162 / var(--tw-text-opacity));\n}\n.text-\\[white\\] {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity));\n}\n.text-secondary {\n --tw-text-opacity: 1;\n color: rgb(201 151 76 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n.fade-in {\n animation: fadeIn 1s ease-in;\n}\n\n.lift-on-hover {\n transition: all 0.2s ease-in-out;\n}\n\n.lift-on-hover:hover {\n transform: translateY(-5px);\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\n}\n\n::-webkit-scrollbar {\n height: 4px;\n border-radius: 10px;\n}\n::-webkit-scrollbar-track {\n background: #f1f1f1; \n border-radius: 10px;\n}\n::-webkit-scrollbar-thumb {\n background: #888; \n border-radius: 10px;\n}\n::-webkit-scrollbar-thumb:hover {\n background: #555; \n}\n.placeholder\\:font-\\[400\\]::-moz-placeholder {\n font-weight: 400;\n}\n.placeholder\\:font-\\[400\\]::placeholder {\n font-weight: 400;\n}\n.hover\\:text-primary:hover {\n --tw-text-opacity: 1;\n color: rgb(1 51 98 / var(--tw-text-opacity));\n}\n@media (min-width: 360px) {\n\n .sm\\:h-48 {\n height: 12rem;\n }\n}\n@media (min-width: 540px) {\n\n .md\\:h-60 {\n height: 15rem;\n }\n\n .md\\:w-1\\/4 {\n width: 25%;\n }\n\n .md\\:w-\\[50\\%\\] {\n width: 50%;\n }\n\n .md\\:w-\\[60\\%\\] {\n width: 60%;\n }\n\n .md\\:flex-row {\n flex-direction: row;\n }\n\n .md\\:flex-col {\n flex-direction: column;\n }\n\n .md\\:justify-end {\n justify-content: flex-end;\n }\n\n .md\\:p-2 {\n padding: 0.5rem;\n }\n\n .md\\:text-\\[18px\\] {\n font-size: 18px;\n }\n\n .md\\:text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n}\n@media (min-width: 768px) {\n\n .lg\\:h-48 {\n height: 12rem;\n }\n\n .lg\\:w-1\\/3 {\n width: 33.333333%;\n }\n\n .lg\\:w-\\[30\\%\\] {\n width: 30%;\n }\n\n .lg\\:w-\\[40\\%\\] {\n width: 40%;\n }\n\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n@media (min-width: 1024px) {\n\n .xl\\:h-\\[30vh\\] {\n height: 30vh;\n }\n}\n@media (min-width: 1280px) {\n\n .\\32xl\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n","",{version:3,sources:["webpack://./src/index.css"],names:[],mappings:"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",sourcesContent:["@tailwind base;\r\n@tailwind components;\r\n@tailwind utilities;\r\n\r\n@keyframes fadeIn {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n.fade-in {\r\n animation: fadeIn 1s ease-in;\r\n}\r\n\r\n.lift-on-hover {\r\n transition: all 0.2s ease-in-out;\r\n}\r\n\r\n.lift-on-hover:hover {\r\n transform: translateY(-5px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\r\n}\r\n\r\n::-webkit-scrollbar {\r\n height: 4px;\r\n border-radius: 10px;\r\n}\r\n::-webkit-scrollbar-track {\r\n background: #f1f1f1; \r\n border-radius: 10px;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n background: #888; \r\n border-radius: 10px;\r\n}\r\n::-webkit-scrollbar-thumb:hover {\r\n background: #555; \r\n}\r\n"],sourceRoot:""}]);const u=a},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var u=0;u0?" ".concat(s[5]):""," {").concat(s[1],"}")),s[5]=i),n&&(s[2]?(s[1]="@media ".concat(s[2]," {").concat(s[1],"}"),s[2]=n):s[2]=n),o&&(s[4]?(s[1]="@supports (".concat(s[4],") {").concat(s[1],"}"),s[4]=o):s[4]="".concat(o)),t.push(s))}},t}},1354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},2733:function(e){e.exports=function(){"use strict";function e(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.useReactAuthKit=function(){var e=(0,r.useContext)(i);if(null===e)throw new o.AuthError("Auth Provider is missing. Make sure, you are using this component inside the auth provider.");return e};var r=n(6540),o=n(9685),i=(0,r.createContext)(null);t.default=i},4573:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=r(e)&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var u=i?Object.getOwnPropertyDescriptor(e,a):null;u&&(u.get||u.set)?Object.defineProperty(o,a,u):o[a]=e[a]}o.default=e,n&&n.set(e,o)}(n(6540));var o,i=(o=n(9525))&&o.__esModule?o:{default:o},a=n(6770),u=n(297),l=n(4848);function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}t.default=function(e){var t=e.store,n=e.children,r=t.tokenObject,o=t.refresh;return o&&(0,a.useInterval)((function(){var e,t;o.refreshApiCallback({authToken:null===(e=r.value.auth)||void 0===e?void 0:e.token,authUserState:r.value.userState,refreshToken:null===(t=r.value.refresh)||void 0===t?void 0:t.token}).then((function(e){e.isSuccess?r.set((0,u.doRefresh)(e)):r.set((0,u.doSignOut)())})).catch((function(){}))}),r.value.isSignIn?o.interval:null),(0,l.jsx)(i.default.Provider,{value:r,children:n})}},9764:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(2733))&&r.__esModule?r:{default:r},i=n(9364),a=n(9685);t.default=class{constructor(e,t,n,r,o,a){this.authStorageName=e,this.authStorageType=t,this.stateStorageName=`${e}_state`,this.refreshTokenName=n,this.cookieDomain=o,this.cookieSecure=a,this.debug=r,this.authStorageTypeName=`${this.authStorageName}_type`,this.isUsingRefreshToken=!!this.refreshTokenName,this.authValue=this.initialToken_(),this.authSubject=new i.BehaviorSubject(this.authValue),this.log(`[Auth Kit] - Initial Value ${this.authValue}`),this.authSubject.subscribe({next:this.syncTokens})}subscribe=(e,t,n)=>{this.authSubject.subscribe({next:e,error:t,complete:n})};set=e=>{this.log("Set Function is called with"),this.debug&&console.dir(e),this.log("Set Function Old Data"),this.debug&&console.dir(this.value);let t=this.value;if(void 0!==e.userState&&(t.userState=e.userState),e.auth)try{const n=this.getExpireDateTime(e.auth.token);n>new Date?t={...t,auth:{token:e.auth.token,type:e.auth.type,expiresAt:n},isSignIn:!0}:(t={...t,auth:null,isSignIn:!1,userState:null},new a.AuthError("Given Auth Token is already expired."))}catch(e){t={...t,auth:null,isSignIn:!1,userState:null},new a.AuthError("Error pursing the Auth Token. Make sure you provided a valid JWT.")}else null===e.auth&&(t={...t,auth:null,isSignIn:!1,userState:null});if(this.isUsingRefreshToken)if(null===t.auth)t={...t,refresh:null};else if(e.refresh)try{const n=this.getExpireDateTime(e.refresh);n>new Date?t={...t,refresh:{token:e.refresh,expiresAt:n}}:(t={...t,auth:null,isSignIn:!1,userState:null,refresh:null},new a.AuthError("Given Refresh Token is already expired."))}catch(e){t={...t,auth:null,isSignIn:!1,userState:null,refresh:null},new a.AuthError("Error pursing the Auth Token. Make sure you provided a valid JWT.")}else null===e.refresh&&(t={...t,refresh:null});this.log("[Auth Kit] - Set Function New Data"),this.log(t),this.authValue=t,this.authSubject.next(t)};get value(){return this.authSubject.value}initialToken_=()=>"cookie"===this.authStorageType?this.initialCookieToken_():this.initialLSToken_();initialCookieToken_=()=>{const e=o.default.get(this.authStorageName),t=o.default.get(this.authStorageTypeName),n=o.default.get(this.stateStorageName),r=this.isUsingRefreshToken&&null!=this.refreshTokenName?o.default.get(this.refreshTokenName):null;return this.checkTokenExist_(e,t,n,r)};initialLSToken_=()=>{const e=localStorage.getItem(this.authStorageName),t=localStorage.getItem(this.authStorageTypeName),n=localStorage.getItem(this.stateStorageName),r=this.isUsingRefreshToken&&null!=this.refreshTokenName?localStorage.getItem(this.refreshTokenName):null;return this.checkTokenExist_(e,t,n,r)};checkTokenExist_=(e,t,n,r)=>{this.log("checkTokenExist_ is called"),this.log(`Params: authToken: ${e}, authTokenType: ${t},\n stateCookie: ${n}, refreshToken: ${r}`);try{let o,i,a;if(this.isUsingRefreshToken&&r){this.log(`checkTokenExist - isUsingRefreshToken\n = ${this.isUsingRefreshToken} refrehToken - ${r}`);const e=this.getExpireDateTime(r);e{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(t).split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""));return JSON.parse(n)};getExpireDateTime=e=>{const t=this.parseJwt(e);if(Object.prototype.hasOwnProperty.call(t,"exp")){const e=new Date(0);return e.setUTCSeconds(t.exp),e}throw new a.AuthError("JWT has no exp param")};syncTokens=e=>{e.auth?this.setAuthToken(e.auth.token,e.auth.type,e.userState):this.removeAuth(),e.refresh&&this.isUsingRefreshToken?this.setRefreshToken(e.refresh.token):this.removeRefresh()};setAuthToken=(e,t,n)=>{if("cookie"===this.authStorageType){const r=this.getExpireDateTime(e);o.default.set(this.authStorageName,e,{expires:r,domain:this.cookieDomain,secure:this.cookieSecure}),o.default.set(this.authStorageTypeName,t,{expires:r,domain:this.cookieDomain,secure:this.cookieSecure}),n&&o.default.set(this.stateStorageName,JSON.stringify(n),{expires:r,domain:this.cookieDomain,secure:this.cookieSecure})}else window.localStorage.setItem(this.authStorageName,e),window.localStorage.setItem(this.authStorageTypeName,t),n&&window.localStorage.setItem(this.stateStorageName,JSON.stringify(n))};setRefreshToken=e=>{if("cookie"===this.authStorageType){if(this.isUsingRefreshToken&&this.refreshTokenName&&e){const t=this.getExpireDateTime(e);o.default.set(this.refreshTokenName,e,{expires:t,domain:this.cookieDomain,secure:this.cookieSecure})}}else this.isUsingRefreshToken&&this.refreshTokenName&&e&&localStorage.setItem(this.refreshTokenName,e)};removeAllToken=()=>{"cookie"===this.authStorageType?this.removeAllCookieToken_():this.removeAllLSToken_()};removeAllCookieToken_=()=>{o.default.remove(this.authStorageName,{domain:this.cookieDomain,secure:this.cookieSecure}),o.default.remove(this.authStorageTypeName,{domain:this.cookieDomain,secure:this.cookieSecure}),o.default.remove(this.stateStorageName,{domain:this.cookieDomain,secure:this.cookieSecure}),this.isUsingRefreshToken&&this.refreshTokenName&&o.default.remove(this.refreshTokenName,{domain:this.cookieDomain,secure:this.cookieSecure})};removeAllLSToken_=()=>{localStorage.removeItem(this.authStorageName),localStorage.removeItem(this.authStorageTypeName),localStorage.removeItem(this.stateStorageName),this.isUsingRefreshToken&&this.refreshTokenName&&localStorage.removeItem(this.refreshTokenName)};removeAuth=()=>{"cookie"===this.authStorageType?this.removeAuthCookie():this.removeAuthToken()};removeAuthCookie=()=>{o.default.remove(this.authStorageName,{domain:this.cookieDomain,secure:this.cookieSecure}),o.default.remove(this.authStorageTypeName,{domain:this.cookieDomain,secure:this.cookieSecure}),o.default.remove(this.stateStorageName,{domain:this.cookieDomain,secure:this.cookieSecure})};removeAuthToken=()=>{localStorage.removeItem(this.authStorageName),localStorage.removeItem(this.authStorageTypeName),localStorage.removeItem(this.stateStorageName)};removeRefresh=()=>{"cookie"===this.authStorageType?this.removeRefreshCookie():this.removeRefreshLocalStorage()};removeRefreshCookie=()=>{this.isUsingRefreshToken&&this.refreshTokenName&&o.default.remove(this.refreshTokenName,{domain:this.cookieDomain,secure:this.cookieSecure})};removeRefreshLocalStorage=()=>{this.isUsingRefreshToken&&this.refreshTokenName&&localStorage.removeItem(this.refreshTokenName)};log=(e,...t)=>{this.debug&&console.log(`[Auth Kit] - ${e}`,t)}}},421:(e,t,n)=>{"use strict";t.A=function(e){if("cookie"===e.authType&&(void 0===e.cookieDomain||void 0===e.cookieSecure))throw new i.AuthError("authType 'cookie' requires 'cookieDomain' and 'cookieSecure' to be present in the param");const t=e.refresh?`${e.authName}_refresh`:null;return{tokenObject:new o.default(e.authName,e.authType,t,void 0!==e.debug&&e.debug,e.cookieDomain,e.cookieSecure),refresh:e.refresh}};var r,o=(r=n(9764))&&r.__esModule?r:{default:r},i=n(9685)},9685:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthError=void 0;class n extends Error{constructor(e){super(e)}}t.AuthError=n},317:(e,t,n)=>{"use strict";t.A=void 0;var r=n(9525),o=n(5511);t.A=function(){var e=(0,r.useReactAuthKit)().value;return(0,o.isAuthenticated)(e)?e.userState:null}},7602:(e,t,n)=>{"use strict";t.A=void 0;var r=n(9525),o=n(297),i=n(9685);t.A=function(){var e=(0,r.useReactAuthKit)();return function(t){if(e.value.isUsingRefreshToken){if(t.refresh)return e.set((0,o.doSignIn)(t)),!0;throw new i.AuthError("This appication is using refresh token feature. So please include `refresh` param in the parameters")}if(t.refresh)throw new i.AuthError("This appication is not using refresh token feature. So please remove the `refresh` param in the parameters. In Case you want to use refresh token feature, make sure you added that while creating the store.");return e.set((0,o.doSignIn)(t)),!0}}},6709:(e,t,n)=>{"use strict";t.A=void 0;var r=n(9525),o=n(297);t.A=function(){var e=(0,r.useReactAuthKit)();return function(){e.set((0,o.doSignOut)())}}},9012:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0});var o={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a.default}});var i=n(9685);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=r(e)&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var o={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var l=i?Object.getOwnPropertyDescriptor(e,a):null;l&&(l.get||l.set)?Object.defineProperty(o,a,l):o[a]=e[a]}return o.default=e,n&&n.set(e,o),o}(n(4573));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}))},6770:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useInterval=function(e,t){const n=(0,r.useRef)(e),o=(0,r.useRef)(null);return(0,r.useEffect)((()=>{n.current=e}),[e]),(0,r.useEffect)((()=>("number"==typeof t&&(o.current=window.setInterval((()=>n.current()),60*t*1e3)),()=>{o.current&&window.clearTimeout(o.current)})),[t]),o};var r=n(6540)},297:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.doRefresh=function(e){let t={auth:{token:e.newAuthToken,type:e.newAuthTokenType||"Bearer"}};return e.newAuthUserState&&(t={...t,userState:e.newAuthUserState}),e.newRefreshToken&&(t={...t,refresh:e.newRefreshToken}),t},t.doSignIn=function(e){const t=e.auth.type||"Bearer";return{auth:{token:e.auth.token,type:t},refresh:e.refresh,userState:e.userState||{}}},t.doSignOut=function(){return{auth:null}}},5511:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAuthenticated=function(e){return!!e.auth&&new Date(e.auth.expiresAt)>new Date}},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n