From 26809bd9dadae8124b7e341fe49740a29f891960 Mon Sep 17 00:00:00 2001 From: Kevin Bensema Date: Sat, 7 Sep 2024 23:43:27 -0700 Subject: [PATCH] Updates --- assets/{index-DRVNO369.js => index-DygmpBAA.js} | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename assets/{index-DRVNO369.js => index-DygmpBAA.js} (90%) diff --git a/assets/index-DRVNO369.js b/assets/index-DygmpBAA.js similarity index 90% rename from assets/index-DRVNO369.js rename to assets/index-DygmpBAA.js index f984b77..f026433 100644 --- a/assets/index-DRVNO369.js +++ b/assets/index-DygmpBAA.js @@ -182,4 +182,4 @@ License: MIT `:"\r"}(W,ne)),$=!1,x.delimiter)E(x.delimiter)&&(x.delimiter=x.delimiter(W),D.meta.delimiter=x.delimiter);else{var le=function(se,he,Le,ke,Pe){var Xe,me,ve,K;Pe=Pe||[","," ","|",";",l.RECORD_SEP,l.UNIT_SEP];for(var Ne=0;Ne=N)return rt(!0)}else for(xe=O,O++;;){if((xe=I.indexOf(c,xe+1))===-1)return q||ce.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:re.length,index:O}),St();if(xe===D-1)return St(I.substring(O,xe).replace(Ne,c));if(c!==z||I[xe+1]!==z){if(c===z||xe===0||I[xe-1]!==z){ve!==-1&&ve=N)return rt(!0);break}ce.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:re.length,index:O}),xe++}}else xe++}return St();function Ot(ee){re.push(ee),G=O}function lt(ee){var Me=0;if(ee!==-1){var Ke=I.substring(xe+1,ee);Ke&&Ke.trim()===""&&(Me=Ke.length)}return Me}function St(ee){return q||(ee===void 0&&(ee=I.substring(O)),W.push(ee),O=D,Ot(W),H&&pn()),rt()}function Se(ee){O=ee,Ot(W),W=[],K=I.indexOf($,O)}function rt(ee){return{data:re,errors:ce,meta:{delimiter:C,linebreak:$,aborted:M,truncated:!!ee,cursor:G+(V||0)}}}function pn(){A(rt()),re=[],ce=[]}},this.abort=function(){M=!0},this.getCharIndex=function(){return O}}function v(x){var c=x.data,C=s[c.workerId],$=!1;if(c.error)C.userError(c.error,c.file);else if(c.results&&c.results.data){var _={abort:function(){$=!0,f(c.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:k,resume:k};if(E(C.userStep)){for(var A=0;A{const[t,n]=b.useState([]),[r,o]=b.useState([]),[i,s]=b.useState(!0),[a,l]=b.useState("");b.useEffect(()=>{(async()=>{try{const y=await(await fetch(e)).body.getReader().read(),R=new TextDecoder("utf-8").decode(y.value);cR.parse(R,{complete:m=>{o(m.data[0]);const v=m.data.slice(1).map((f,k)=>[k+1,...f]);n(v),s(!1)},header:!1})}catch(h){console.error("Error fetching or parsing CSV:",h),s(!1)}})()},[e]);const u=p=>{l(p.target.value)},d=t.filter(p=>p[1].toLowerCase().includes(a.toLowerCase()));return i?g.jsx(nk,{}):g.jsxs(et,{children:[g.jsx(WE,{label:"Search for a shooter by name",variant:"outlined",value:a,onChange:u,fullWidth:!0,margin:"normal"}),g.jsx(EE,{component:ns,children:g.jsxs(fE,{sx:{minWidth:650},"aria-label":"CSV data table",children:[g.jsx($E,{children:g.jsxs(bh,{children:[g.jsx(wu,{children:"#"}),r.map((p,h)=>g.jsx(wu,{children:p},h))]})}),g.jsx(yE,{children:d.map(p=>g.jsx(bh,{children:p.map((h,S)=>g.jsx(wu,{children:h},S))},p[0]))})]})})]})},fR=()=>g.jsx(jr,{children:g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"h4",children:"Standings for 2024 Monthly 2-Gun League"}),g.jsx(dR,{csvUrl:"./ewpsa/Standings_2Gun.csv"})]})}),pR=()=>g.jsx(jr,{maxWidth:"md",children:g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"body1",component:"p",sx:{marginBottom:2},children:"Is a USPSA affiliated club that hosts Monthly USPSA pistol matches, Steel Challenge, and multigun events at the Rattlesnake Mountain Shooting Facility."}),g.jsx(Z,{variant:"body1",component:"p",sx:{marginBottom:2},children:"Vite version. Should have fixes."})]})});function Ct(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Or(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const Zy=6048e5,hR=864e5,Jy=6e4,e0=36e5;let mR={};function Dl(){return mR}function Hi(e,t){var a,l,u,d;const n=Dl(),r=(t==null?void 0:t.weekStartsOn)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.weekStartsOn)??n.weekStartsOn??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.weekStartsOn)??0,o=Ct(e),i=o.getDay(),s=(i=o.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}function kh(e){const t=Ct(e);return t.setHours(0,0,0,0),t}function Eh(e){const t=Ct(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function gR(e,t){const n=kh(e),r=kh(t),o=+n-Eh(n),i=+r-Eh(r);return Math.round((o-i)/hR)}function yR(e){const t=t0(e),n=Or(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),Aa(n)}function vR(e,t){const n=Ct(e),r=Ct(t),o=n.getTime()-r.getTime();return o<0?-1:o>0?1:o}function xR(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function SR(e){if(!xR(e)&&typeof e!="number")return!1;const t=Ct(e);return!isNaN(Number(t))}function wR(e){const t=Ct(e),n=Or(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const bR={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},CR=(e,t,n)=>{let r;const o=bR[e];return typeof o=="string"?r=o:t===1?r=o.one:r=o.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Cu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const kR={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ER={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},RR={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},TR={date:Cu({formats:kR,defaultWidth:"full"}),time:Cu({formats:ER,defaultWidth:"full"}),dateTime:Cu({formats:RR,defaultWidth:"full"})},PR={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},MR=(e,t,n,r)=>PR[e];function Xo(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let o;if(r==="formatting"&&e.formattingValues){const s=e.defaultFormattingWidth||e.defaultWidth,a=n!=null&&n.width?String(n.width):s;o=e.formattingValues[a]||e.formattingValues[s]}else{const s=e.defaultWidth,a=n!=null&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}const i=e.argumentCallback?e.argumentCallback(t):t;return o[i]}}const $R={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},IR={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},_R={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},OR={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},AR={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NR={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},jR=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},zR={ordinalNumber:jR,era:Xo({values:$R,defaultWidth:"wide"}),quarter:Xo({values:IR,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Xo({values:_R,defaultWidth:"wide"}),day:Xo({values:OR,defaultWidth:"wide"}),dayPeriod:Xo({values:AR,defaultWidth:"wide",formattingValues:NR,defaultFormattingWidth:"wide"})};function Zo(e){return(t,n={})=>{const r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],i=t.match(o);if(!i)return null;const s=i[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?DR(a,p=>p.test(s)):LR(a,p=>p.test(s));let u;u=e.valueCallback?e.valueCallback(l):l,u=n.valueCallback?n.valueCallback(u):u;const d=t.slice(s.length);return{value:u,rest:d}}}function LR(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function DR(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const o=r[0],i=t.match(e.parsePattern);if(!i)return null;let s=e.valueCallback?e.valueCallback(i[0]):i[0];s=n.valueCallback?n.valueCallback(s):s;const a=t.slice(o.length);return{value:s,rest:a}}}const BR=/^(\d+)(th|st|nd|rd)?/i,WR=/\d+/i,UR={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},HR={any:[/^b/i,/^(a|c)/i]},VR={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},GR={any:[/1/i,/2/i,/3/i,/4/i]},KR={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},YR={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},QR={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},qR={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},XR={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},ZR={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},JR={ordinalNumber:FR({matchPattern:BR,parsePattern:WR,valueCallback:e=>parseInt(e,10)}),era:Zo({matchPatterns:UR,defaultMatchWidth:"wide",parsePatterns:HR,defaultParseWidth:"any"}),quarter:Zo({matchPatterns:VR,defaultMatchWidth:"wide",parsePatterns:GR,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Zo({matchPatterns:KR,defaultMatchWidth:"wide",parsePatterns:YR,defaultParseWidth:"any"}),day:Zo({matchPatterns:QR,defaultMatchWidth:"wide",parsePatterns:qR,defaultParseWidth:"any"}),dayPeriod:Zo({matchPatterns:XR,defaultMatchWidth:"any",parsePatterns:ZR,defaultParseWidth:"any"})},eT={code:"en-US",formatDistance:CR,formatLong:TR,formatRelative:MR,localize:zR,match:JR,options:{weekStartsOn:0,firstWeekContainsDate:1}};function tT(e){const t=Ct(e);return gR(t,wR(t))+1}function nT(e){const t=Ct(e),n=+Aa(t)-+yR(t);return Math.round(n/Zy)+1}function n0(e,t){var d,p,h,S;const n=Ct(e),r=n.getFullYear(),o=Dl(),i=(t==null?void 0:t.firstWeekContainsDate)??((p=(d=t==null?void 0:t.locale)==null?void 0:d.options)==null?void 0:p.firstWeekContainsDate)??o.firstWeekContainsDate??((S=(h=o.locale)==null?void 0:h.options)==null?void 0:S.firstWeekContainsDate)??1,s=Or(e,0);s.setFullYear(r+1,0,i),s.setHours(0,0,0,0);const a=Hi(s,t),l=Or(e,0);l.setFullYear(r,0,i),l.setHours(0,0,0,0);const u=Hi(l,t);return n.getTime()>=a.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function rT(e,t){var a,l,u,d;const n=Dl(),r=(t==null?void 0:t.firstWeekContainsDate)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.firstWeekContainsDate)??n.firstWeekContainsDate??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.firstWeekContainsDate)??1,o=n0(e,t),i=Or(e,0);return i.setFullYear(o,0,r),i.setHours(0,0,0,0),Hi(i,t)}function oT(e,t){const n=Ct(e),r=+Hi(n,t)-+rT(n,t);return Math.round(r/Zy)+1}function Ee(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Vn={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Ee(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ee(n+1,2)},d(e,t){return Ee(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ee(e.getHours()%12||12,t.length)},H(e,t){return Ee(e.getHours(),t.length)},m(e,t){return Ee(e.getMinutes(),t.length)},s(e,t){return Ee(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),o=Math.trunc(r*Math.pow(10,n-3));return Ee(o,t.length)}},Kr={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Rh={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return Vn.y(e,t)},Y:function(e,t,n,r){const o=n0(e,r),i=o>0?o:1-o;if(t==="YY"){const s=i%100;return Ee(s,2)}return t==="Yo"?n.ordinalNumber(i,{unit:"year"}):Ee(i,t.length)},R:function(e,t){const n=t0(e);return Ee(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ee(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Ee(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Ee(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Vn.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Ee(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const o=oT(e,r);return t==="wo"?n.ordinalNumber(o,{unit:"week"}):Ee(o,t.length)},I:function(e,t,n){const r=nT(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Ee(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Vn.d(e,t)},D:function(e,t,n){const r=tT(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Ee(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return Ee(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});case"eeee":default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return Ee(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});case"cccc":default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),o=r===0?7:r;switch(t){case"i":return String(o);case"ii":return Ee(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const o=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let o;switch(r===12?o=Kr.noon:r===0?o=Kr.midnight:o=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let o;switch(r>=17?o=Kr.evening:r>=12?o=Kr.afternoon:r>=4?o=Kr.morning:o=Kr.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Vn.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Vn.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Ee(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Ee(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Vn.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Vn.s(e,t)},S:function(e,t){return Vn.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Ph(r);case"XXXX":case"XX":return xr(r);case"XXXXX":case"XXX":default:return xr(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Ph(r);case"xxxx":case"xx":return xr(r);case"xxxxx":case"xxx":default:return xr(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Th(r,":");case"OOOO":default:return"GMT"+xr(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Th(r,":");case"zzzz":default:return"GMT"+xr(r,":")}},t:function(e,t,n){const r=Math.trunc(e.getTime()/1e3);return Ee(r,t.length)},T:function(e,t,n){const r=e.getTime();return Ee(r,t.length)}};function Th(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Math.trunc(r/60),i=r%60;return i===0?n+String(o):n+String(o)+t+Ee(i,2)}function Ph(e,t){return e%60===0?(e>0?"-":"+")+Ee(Math.abs(e)/60,2):xr(e,t)}function xr(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Ee(Math.trunc(r/60),2),i=Ee(r%60,2);return n+o+t+i}const Mh=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},r0=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},iT=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],o=n[2];if(!o)return Mh(e,t);let i;switch(r){case"P":i=t.dateTime({width:"short"});break;case"PP":i=t.dateTime({width:"medium"});break;case"PPP":i=t.dateTime({width:"long"});break;case"PPPP":default:i=t.dateTime({width:"full"});break}return i.replace("{{date}}",Mh(r,t)).replace("{{time}}",r0(o,t))},sT={p:r0,P:iT},aT=/^D+$/,lT=/^Y+$/,uT=["D","DD","YY","YYYY"];function cT(e){return aT.test(e)}function dT(e){return lT.test(e)}function fT(e,t,n){const r=pT(e,t,n);if(console.warn(r),uT.includes(e))throw new RangeError(r)}function pT(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const hT=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,mT=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,gT=/^'([^]*?)'?$/,yT=/''/g,vT=/[a-zA-Z]/;function xT(e,t,n){var d,p,h,S;const r=Dl(),o=r.locale??eT,i=r.firstWeekContainsDate??((p=(d=r.locale)==null?void 0:d.options)==null?void 0:p.firstWeekContainsDate)??1,s=r.weekStartsOn??((S=(h=r.locale)==null?void 0:h.options)==null?void 0:S.weekStartsOn)??0,a=Ct(e);if(!SR(a))throw new RangeError("Invalid time value");let l=t.match(mT).map(y=>{const w=y[0];if(w==="p"||w==="P"){const R=sT[w];return R(y,o.formatLong)}return y}).join("").match(hT).map(y=>{if(y==="''")return{isToken:!1,value:"'"};const w=y[0];if(w==="'")return{isToken:!1,value:ST(y)};if(Rh[w])return{isToken:!0,value:y};if(w.match(vT))throw new RangeError("Format string contains an unescaped latin alphabet character `"+w+"`");return{isToken:!1,value:y}});o.localize.preprocessor&&(l=o.localize.preprocessor(a,l));const u={firstWeekContainsDate:i,weekStartsOn:s,locale:o};return l.map(y=>{if(!y.isToken)return y.value;const w=y.value;(dT(w)||cT(w))&&fT(w,t,String(e));const R=Rh[w[0]];return R(a,w,o.localize,u)}).join("")}function ST(e){const t=e.match(gT);return t?t[1].replace(yT,"'"):e}function wT(e,t){const n=Ct(e),r=Ct(t);return n.getTime()>r.getTime()}function $s(e,t){const r=ET(e);let o;if(r.date){const l=RT(r.date,2);o=TT(l.restDateString,l.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);const i=o.getTime();let s=0,a;if(r.time&&(s=PT(r.time),isNaN(s)))return new Date(NaN);if(r.timezone){if(a=MT(r.timezone),isNaN(a))return new Date(NaN)}else{const l=new Date(i+s),u=new Date(0);return u.setFullYear(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate()),u.setHours(l.getUTCHours(),l.getUTCMinutes(),l.getUTCSeconds(),l.getUTCMilliseconds()),u}return new Date(i+s+a)}const Is={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},bT=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,CT=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,kT=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ET(e){const t={},n=e.split(Is.dateTimeDelimiter);let r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Is.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Is.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){const o=Is.timezone.exec(r);o?(t.time=r.replace(o[1],""),t.timezone=o[1]):t.time=r}return t}function RT(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};const o=r[1]?parseInt(r[1]):null,i=r[2]?parseInt(r[2]):null;return{year:i===null?o:i*100,restDateString:e.slice((r[1]||r[2]).length)}}function TT(e,t){if(t===null)return new Date(NaN);const n=e.match(bT);if(!n)return new Date(NaN);const r=!!n[4],o=Jo(n[1]),i=Jo(n[2])-1,s=Jo(n[3]),a=Jo(n[4]),l=Jo(n[5])-1;if(r)return AT(t,a,l)?$T(t,a,l):new Date(NaN);{const u=new Date(0);return!_T(t,i,s)||!OT(t,o)?new Date(NaN):(u.setUTCFullYear(t,i,Math.max(o,s)),u)}}function Jo(e){return e?parseInt(e):1}function PT(e){const t=e.match(CT);if(!t)return NaN;const n=ku(t[1]),r=ku(t[2]),o=ku(t[3]);return NT(n,r,o)?n*e0+r*Jy+o*1e3:NaN}function ku(e){return e&&parseFloat(e.replace(",","."))||0}function MT(e){if(e==="Z")return 0;const t=e.match(kT);if(!t)return 0;const n=t[1]==="+"?-1:1,r=parseInt(t[2]),o=t[3]&&parseInt(t[3])||0;return jT(r,o)?n*(r*e0+o*Jy):NaN}function $T(e,t,n){const r=new Date(0);r.setUTCFullYear(e,0,4);const o=r.getUTCDay()||7,i=(t-1)*7+n+1-o;return r.setUTCDate(r.getUTCDate()+i),r}const IT=[31,null,31,30,31,30,31,31,30,31,30,31];function o0(e){return e%400===0||e%4===0&&e%100!==0}function _T(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(IT[t]||(o0(e)?29:28))}function OT(e,t){return t>=1&&t<=(o0(e)?366:365)}function AT(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function NT(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function jT(e,t){return t>=0&&t<=59}const zT=({jsonUrl:e})=>{const[t,n]=b.useState([]),[r,o]=b.useState([]),[i,s]=b.useState(null);b.useEffect(()=>{(async()=>{try{const p=await(await fetch(e)).json();n(p);const h=p.flatMap(y=>y.Tags),S=[...new Set(h)];o(S)}catch(d){console.error("Error fetching matches:",d)}})()},[e]);const a=u=>{s(i===u?null:u)},l=t.filter(u=>{const d=$s(u.Date);return wT(d,new Date)&&(i===null||u.Tags.includes(i))}).sort((u,d)=>vR($s(u.Date),$s(d.Date)));return g.jsxs(et,{children:[g.jsx(et,{sx:{display:"flex",flexWrap:"wrap",gap:1,mb:2},children:r.map(u=>g.jsx(wC,{label:u,onClick:()=>a(u),color:i===u?"primary":"default",variant:i===u?"filled":"outlined"},u))}),g.jsx(_a,{children:l.map((u,d)=>g.jsx(Oc,{children:g.jsxs(Ys,{children:[g.jsx(l2,{href:u.Link,target:"_blank",rel:"noopener noreferrer",children:u.Title}),g.jsxs(Z,{variant:"body2",color:"text.secondary",children:["On ",xT($s(u.Date),"MMMM do, yyyy")]})]})},d))})]})},LT=()=>g.jsx(jr,{children:g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"h4",children:"Upcoming Matches"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["You can always find all of our matches on ",g.jsx("a",{href:"https://practiscore.com/clubs/ewpsa-2",children:"Practiscore"}),". Below are direct links to registration for some upcoming matches in 2024."]}),g.jsx(zT,{jsonUrl:"./ewpsa/matches.json"})]})}),Yt=({imageUrl:e,altText:t,imgWidth:n,imgHeight:r})=>pf()?null:g.jsx(et,{component:"img",src:e,alt:t,sx:{width:{imgWidth:n},height:{imgHeight:r},float:"left",marginRight:2,marginBottom:1}}),DT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"USPSA Matches"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Yt,{imageUrl:"images/explainers/USPSA-Logo_ArticleSize.png",altText:"USPSA Logo"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["As a USPSA affiliated club, we host monthly Level 1 USPSA matches. Matches are held in the practical shooting bays, on the 3rd Sunday of every month. Registration is available on ",g.jsx("a",{href:"https://practiscore.com/clubs/ewpsa-2",children:"Practiscore"}),"."]}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"A typical Level-1 match here consists of 3-5 regular stages, a speed shoot, and a classifier stage. The regular stages are typically 28-32 round Comstock Long courses, with a mix of paper and steel targets. Registration opens at 9:00 AM, with the shooters meeting at 9:45 AM. Shooting starts at 10:00 AM. New shooters shoot free!"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["Information about equipment and divisions may be found in the USPSA rules at ",g.jsx("a",{href:"https://uspsa.org/rules",children:"uspsa.org/rules"}),"."]})]})]}),FT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"USPSA Matches"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Yt,{imageUrl:"images/explainers/SCSA-Logo_ArticleSize.png",altText:"Steel Challenge Shooting Association Logo"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["EWPSA hosts Steel Challenge matches on the second Sunday of every other month (except in winter). We shoot all eight USPSA Steel Challenge stages. Exact match dates and registration is available on ",g.jsx("a",{href:"https://practiscore.com/clubs/ewpsa-2",children:"Practiscore"}),"."]}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["Information about equipment and divisions may be found in the Steel Challenge rules at ",g.jsx("a",{href:"https://scsa.org/rules",children:"scsa.org/rules"}),"."]})]})]}),BT=Ol(g.jsx("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download");var WT={};const UT=({fileName:e,displayName:t})=>{const n=()=>{const r=WT.PUBLIC_URL+"/"+e,o=document.createElement("a");o.href=r,o.setAttribute("download",e),document.body.appendChild(o),o.click(),document.body.removeChild(o)};return g.jsxs(YC,{variant:"contained",color:"primary",startIcon:g.jsx(BT,{}),onClick:n,children:["Download ",t||e]})},HT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"Monthly 2-Gun Matches"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"body1",paragraph:!0,children:"Monthly 2-Gun is EWPSA's standard 2-gun match. It is hosted on the fourth Saturday of most months in the RMSF pistol bays - though sometimes a 'specialty match' is substituted. Check Practiscore for details. Monthly 2-Gun is an outlaw time plus 2-gun match. The rules are available for download below. We typically shoot four stages in each match. Note that one or two stages may involve some physical element such as extended running, climbing over small obstacles or through tunnels, or throwing kettlebells. In general, these matches have more steel and less paper than our 3-gun matches."}),g.jsx(Z,{variant:"h5",align:"center",children:"Divisions"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Monthly 2-Gun has six divisions, described in short below. Please note that in case of any contradiction between the explainers below and the rules, the rules take precedence."})]}),g.jsxs(et,{sx:{my:4},children:[g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Limited"})," - Unmagnified optics and iron sighted pistols."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/Limited2Gun_ArticleSize.png",altText:"Limited Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Any rifle in an intermediate or battle rifle caliber. Compensators or muzzle brakes are limited to 3" in length and 1" in diameter. Suppressors are permitted. The rifle many only have a single unmagnified sighting system, such as a red dot, holographic sight, or iron sights. Inline backup irons will not be counted as a second sighting system. The rifle may not have a bipod. If laser aiming devices are attached, they may not be used during the course of fire. Magazines are limited to a maximum of 30 rounds.'}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber, must be legal for USPSA Limited division, and must have iron sights - no red dots or lasers permitted. No compensators on pistols. Pistol magazines are limited to 140mm in length."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Tactical"})," - Rifles with one magnified optic and Carry Optics or Limited pistols."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/TacticalDivision_ArticleSize.png",altText:"Tactical Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Any rifle in an intermediate or battle rifle caliber. Compensators or muzzle brakes are limited to 3" in length and 1" in diameter. Suppressors are permitted. The rifle many only have a single unmagnified sighting system, such as a red dot, holographic sight, or iron sights. Inline backup irons will not be counted as a second sighting system. The rifle may not have a bipod. If laser aiming devices are attached, they may not be used during the course of fire. Magazines are limited to a maximum of 30 rounds.'}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber, and must be either USPSA Carry Optics or USPSA Limited legal. No compensators on pistols. Pistol magazines are limited to 140mm in length. PCCs (Trooper only) are restricted to iron sights and 30 round magazines."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Open"})," - Almost anything goes."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/OpenDivision2Gun_ArticleSize.png",altText:"Open Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any rifle with any sighting system or number of sighting systems in an intermediate or battle rifle caliber. Any muzzle device is permitted. Bipods are permitted, but must be collapsed at the start signal. Bags, tripods, and rear monopods may not be used. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any pistol in any handgun configuration (no braced pistols, PDWs. Needs to be a normal pistol. You know what I mean). Compensators and slide-mounted optics are permitted. No magazine type, capacity, or length restrictions."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Armored"})," - Suffering is fun!"]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/Armored_ArticleSize.png",altText:"Armored Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any rifle with any sighting system or number of sighting systems in an intermediate or battle rifle caliber. Any muzzle device is permitted. Bipods are permitted, but must be collapsed at the start signal. Bags, tripods, and rear monopods may not be used. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any pistol in any handgun configuration (no braced pistols, PDWs. Needs to be a normal pistol. You know what I mean). Compensators and slide-mounted optics are permitted. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Shooter must wear either front and rear rifle-rated plates (rated for at least 7.62x39) or front and rear training plates that weigh at least 6 lbs each."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Retro"})," - Nothing after 1991"]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/Retro2Gun_ArticleSize.png",altText:"Retro Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Any rifle in service before January 1, 1992, reproductions thereof, or rifles that substantially share external appearance (this means your 20" PSA AR-15 with a picatinny carry handle is an acceptable "M16A2"). Must be chambered in an intermediate or battle rifle caliber. Pre-1992 optics, reproductions thereof, or modern versions with the same form factor are permitted. Period-correct bipods are permitted. Magazines are limited to period capacity, but may be modern designs. No picatinny rails for optic mounting.'}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Iron sighted pistols of a design in service before January 1, 1992, reproductions thereof, or pistols that substantially share external appearance (your gen 4 Glock 17 is an acceptable "gen 2 Glock 17"). Pistol magazines are limited to 140mm or period capacity, whichever is greater.'})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Heavy Metal"})," - Battle rifles and heavy pistol calibers."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/HeavyMetal2Gun_ArticleSize.png",altText:"Heavy Metal Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any battle rifle with any sighting system. 6.5 Creedmoor, 308 Winchester, 30-06 Springfield, 7.62x54R, etc. Any muzzle device is permitted. Bipods are permitted, but must be collapsed at the start signal. Bags, tripods, and rear monopods may not be used. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any handgun chambered in 10mm, 41 Magnum, 45 ACP, or larger. Compensators and slide-mounted optics are permitted. No magazine type, capacity, or length restrictions."})]})]})]}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"h5",align:"center",children:"Rules"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Available in PDF format for download below."}),g.jsx(UT,{fileUrl:"public/files/2gun_rules.pdf",displayName:"2-Gun Rules"})]})]}),VT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"Red October AK Match"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Yt,{imageUrl:"images/explainers/RedAKInCircle_ArticleSize.png",altText:"Red October Logo"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Every October, EWPSA hosts the Red October AK match - a 2-Gun match focused on the Kalasknikov platform and the Cold War. Expect a Monthly 2-Gun style match with somewhat closer ranges (they are AKs, after all) and a Cold War theme. Red October is an Outlaw match - meaning there is no national umbrella organization - so we use the same rules as our Monthly 2-Gun matches. Stick around afterwards, there will be some small prizes for the winners of each division."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Red October is a stage points time plus match, which means that each stage is worth a certain number of match points, and your time is divided by the best time on that stage to get your stage points. The match points are the sum of your stage points. The shooter with the most match points wins. There will be four stages, expect a round count of about 150-200 rifle rounds and 150ish pistol rounds."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Red October has three custom divisions, described below, covering both Cold War and modern setups. No AK? No problem! We still want you to shoot the match - check out our Western Spy division. Costumes absolutely encouraged but by no means required. Before you ask, Galils and the various Swiss rifles go in Western Spy."}),g.jsx(Z,{variant:"h5",align:"center",children:"Red October Divisions"}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Warsaw Pact"})," - Iron sights or pre-1989 optics, and pre-1989 AK configurations. Iron sights on pistols."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/AKM_ArticleSize.png",altText:"AKM, courtesy of wikipedia"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:`Rifles must be an AK family rifle in a Cold War configuration. Optics are OK, as long as they are Cold War era side rail mounts. No picatinny rails. Rifles must be chambered in a Warsaw Pact caliber (7.62x39, 5.45x39, 7.62x54R, etc). If you have a PKM/RPK/SVD, you may shoot it as an "AK" in this division. Any period magazine is permitted. Grips, stocks, handguards, etc should be approximately period-correct, but we're not going to be too picky.`}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber, and must have iron sights. No compensators on pistols. Modern or western pistols are fine. Pistol magazines are limited to 140mm in length."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Zenitcope"})," - Modernized AKs and any pistol."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/ZenitcoAK74_ArticleSize.png",altText:"AK74, courtesy of Gunghis Kahn"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Modernized AKs in any configuration. Zenitco, Zenitcope, lights, lasers, optics, rails... whatever you want. Rifles must be chambered in an intermediate or battle rifle caliber, but 5.56x45mm AKs are welcome here. Any magazine is permitted."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber. No magazine length or capacity restrictions. Pistols may have compensators, red dots, etc. Western pistols are fine, although if you have a Stechkin we are very impressed."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Western Spy"})," - For Capitalist Kalashnicels. Any rifle and any pistol."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/CIA_ArticleSize.png",altText:"And ye shall know the truth, and the truth shall make you free"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any rifle in any configuration that doesn't fit into an AK division, that is chambered in an intermediate or battle rifle caliber (no magnum rifle calibers). Any sighting system or muzzle device may be used. No magazine length or capacity restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber. No magazine length or capacity restrictions. Pistols may have compensators, red dots, etc."})]})]})]})]}),GT=()=>{const[e,t]=b.useState(!1),[n,r]=b.useState(!1),[o,i]=b.useState("Home"),s=h=>S=>{S.type==="keydown"&&(S.key==="Tab"||S.key==="Shift")||t(h)},a=()=>{r(!n)},l=h=>{i(h),t(!1)},u=[{text:"Home",icon:g.jsx(qy,{})},{text:"Our Match Schedule",icon:g.jsx(Ac,{})},{text:"Matches",icon:g.jsx(Ac,{}),subItems:[{text:"USPSA",icon:g.jsx(Gr,{imagePath:"images/icons/USPSA-Logo_rgb_64x64.png",altText:"USPSA logo"})},{text:"Steel Challenge",icon:g.jsx(Gr,{imagePath:"images/icons/SCSA-Logo_96x96.png",altText:"Steel Challenge logo"})},{text:"Monthly 2-Gun",icon:g.jsx(Gr,{imagePath:"images/icons/2Gun_96x96.png",altText:"2-Gun logo"})},{text:"Summer 3-Gun",icon:g.jsx(Gr,{imagePath:"images/icons/3Gun_96x96.png",altText:"3-Gun logo"})},{text:"Action 2-Gun",icon:g.jsx(Gr,{imagePath:"images/icons/Kettlebell_96x96.png",altText:"Action 2-Gun logo"})},{text:"Red October",icon:g.jsx(Gr,{imagePath:"images/icons/RedAKInCircle64x64.png",altText:"Red October logo"})}]},{text:"2-Gun Standings",icon:g.jsx(Nc,{})},{text:"3-Gun Standings",icon:g.jsx(Nc,{})}],d=(h,S)=>g.jsxs(un.Fragment,{children:[g.jsxs(Oc,{button:!0,onClick:h.subItems?a:()=>l(h.text),sx:{cursor:"pointer"},children:[g.jsx(uh,{children:h.icon}),g.jsx(Ys,{primary:h.text}),h.subItems&&(n?g.jsx(Qy,{}):g.jsx(ln,{}))]}),h.subItems&&g.jsx(Ta,{in:n,timeout:"auto",unmountOnExit:!0,children:g.jsx(_a,{component:"div",disablePadding:!0,children:h.subItems.map((y,w)=>g.jsx(Oc,{button:!0,sx:{pl:4,cursor:"pointer"},onClick:()=>l(typeof y=="string"?y:y.text),children:typeof y=="string"?g.jsx(Ys,{primary:y}):g.jsxs(g.Fragment,{children:[g.jsx(uh,{children:y.icon}),g.jsx(Ys,{primary:y.text})]})},w))})})]},S),p=()=>{switch(o){case"Home":return g.jsx(pR,{});case"Our Match Schedule":return g.jsx(LT,{});case"2-Gun Standings":return g.jsx(fR,{});case"3-Gun Standings":return g.jsxs(et,{children:[g.jsx(Z,{variant:"h4",component:"h1",gutterBottom:!0,children:"3-Gun Standings"}),g.jsx(Z,{variant:"body1",children:"Current standings for 3-Gun competitions."})]});case"USPSA":return g.jsx(DT,{});case"Steel Challenge":return g.jsx(FT,{});case"Monthly 2-Gun":return g.jsx(HT,{});case"Red October":return g.jsx(VT,{});default:return g.jsxs(et,{children:[g.jsx(Z,{variant:"h4",component:"h1",gutterBottom:!0,children:o}),g.jsxs(Z,{variant:"body1",children:["Content for ",o," goes here."]})]})}};return g.jsxs(et,{sx:{flexGrow:1},children:[g.jsx(lR,{imageSrc:"Banner50pct.jpg",altText:"EWPSA Banner"}),g.jsx(pC,{position:"static",children:g.jsxs(AE,{children:[g.jsx(rC,{size:"large",edge:"start",color:"inherit","aria-label":"menu",sx:{mr:2},onClick:s(!0),children:g.jsx(Yy,{})}),g.jsx(Z,{variant:"h6",component:"div",sx:{flexGrow:1},children:"Eastern Washington Practical Shooters Association"})]})}),g.jsx(_k,{anchor:"left",open:e,onClose:s(!1),children:g.jsx(et,{sx:{width:250},role:"presentation",children:g.jsx(_a,{children:u.map(d)})})}),g.jsx(et,{component:"main",sx:{p:3},children:p()})]})};Wg(document.getElementById("root")).render(g.jsx(b.StrictMode,{children:g.jsx(GT,{})})); +`);var O=0,M=!1;this.parse=function(I,V,q){if(typeof I!="string")throw new Error("Input must be a string");var D=I.length,X=C.length,J=$.length,oe=_.length,H=E(A),re=[],ce=[],W=[],G=O=0;if(!I)return rt();if(x.header&&!V){var te=I.split($)[0].split(C),ne=[],le={},ie=!1;for(var se in te){var he=te[se];E(x.transformHeader)&&(he=x.transformHeader(he,se));var Le=he,ke=le[he]||0;for(0=N)return rt(!0)}else for(xe=O,O++;;){if((xe=I.indexOf(c,xe+1))===-1)return q||ce.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:re.length,index:O}),St();if(xe===D-1)return St(I.substring(O,xe).replace(Ne,c));if(c!==z||I[xe+1]!==z){if(c===z||xe===0||I[xe-1]!==z){ve!==-1&&ve=N)return rt(!0);break}ce.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:re.length,index:O}),xe++}}else xe++}return St();function Ot(ee){re.push(ee),G=O}function lt(ee){var Me=0;if(ee!==-1){var Ke=I.substring(xe+1,ee);Ke&&Ke.trim()===""&&(Me=Ke.length)}return Me}function St(ee){return q||(ee===void 0&&(ee=I.substring(O)),W.push(ee),O=D,Ot(W),H&&pn()),rt()}function Se(ee){O=ee,Ot(W),W=[],K=I.indexOf($,O)}function rt(ee){return{data:re,errors:ce,meta:{delimiter:C,linebreak:$,aborted:M,truncated:!!ee,cursor:G+(V||0)}}}function pn(){A(rt()),re=[],ce=[]}},this.abort=function(){M=!0},this.getCharIndex=function(){return O}}function v(x){var c=x.data,C=s[c.workerId],$=!1;if(c.error)C.userError(c.error,c.file);else if(c.results&&c.results.data){var _={abort:function(){$=!0,f(c.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:k,resume:k};if(E(C.userStep)){for(var A=0;A{const[t,n]=b.useState([]),[r,o]=b.useState([]),[i,s]=b.useState(!0),[a,l]=b.useState("");b.useEffect(()=>{(async()=>{try{const y=await(await fetch(e)).body.getReader().read(),R=new TextDecoder("utf-8").decode(y.value);cR.parse(R,{complete:m=>{o(m.data[0]);const v=m.data.slice(1).map((f,k)=>[k+1,...f]);n(v),s(!1)},header:!1})}catch(h){console.error("Error fetching or parsing CSV:",h),s(!1)}})()},[e]);const u=p=>{l(p.target.value)},d=t.filter(p=>p[1].toLowerCase().includes(a.toLowerCase()));return i?g.jsx(nk,{}):g.jsxs(et,{children:[g.jsx(WE,{label:"Search for a shooter by name",variant:"outlined",value:a,onChange:u,fullWidth:!0,margin:"normal"}),g.jsx(EE,{component:ns,children:g.jsxs(fE,{sx:{minWidth:650},"aria-label":"CSV data table",children:[g.jsx($E,{children:g.jsxs(bh,{children:[g.jsx(wu,{children:"#"}),r.map((p,h)=>g.jsx(wu,{children:p},h))]})}),g.jsx(yE,{children:d.map(p=>g.jsx(bh,{children:p.map((h,S)=>g.jsx(wu,{children:h},S))},p[0]))})]})})]})},fR=()=>g.jsx(jr,{children:g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"h4",children:"Standings for 2024 Monthly 2-Gun League"}),g.jsx(dR,{csvUrl:"../ewpsa/Standings_2Gun.csv"})]})}),pR=()=>g.jsx(jr,{maxWidth:"md",children:g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"body1",component:"p",sx:{marginBottom:2},children:"Is a USPSA affiliated club that hosts Monthly USPSA pistol matches, Steel Challenge, and multigun events at the Rattlesnake Mountain Shooting Facility."}),g.jsx(Z,{variant:"body1",component:"p",sx:{marginBottom:2},children:"Vite version. Should have fixes."})]})});function Ct(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Or(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const Zy=6048e5,hR=864e5,Jy=6e4,e0=36e5;let mR={};function Dl(){return mR}function Hi(e,t){var a,l,u,d;const n=Dl(),r=(t==null?void 0:t.weekStartsOn)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.weekStartsOn)??n.weekStartsOn??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.weekStartsOn)??0,o=Ct(e),i=o.getDay(),s=(i=o.getTime()?n+1:t.getTime()>=s.getTime()?n:n-1}function kh(e){const t=Ct(e);return t.setHours(0,0,0,0),t}function Eh(e){const t=Ct(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function gR(e,t){const n=kh(e),r=kh(t),o=+n-Eh(n),i=+r-Eh(r);return Math.round((o-i)/hR)}function yR(e){const t=t0(e),n=Or(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),Aa(n)}function vR(e,t){const n=Ct(e),r=Ct(t),o=n.getTime()-r.getTime();return o<0?-1:o>0?1:o}function xR(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function SR(e){if(!xR(e)&&typeof e!="number")return!1;const t=Ct(e);return!isNaN(Number(t))}function wR(e){const t=Ct(e),n=Or(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const bR={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},CR=(e,t,n)=>{let r;const o=bR[e];return typeof o=="string"?r=o:t===1?r=o.one:r=o.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Cu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const kR={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ER={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},RR={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},TR={date:Cu({formats:kR,defaultWidth:"full"}),time:Cu({formats:ER,defaultWidth:"full"}),dateTime:Cu({formats:RR,defaultWidth:"full"})},PR={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},MR=(e,t,n,r)=>PR[e];function Xo(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let o;if(r==="formatting"&&e.formattingValues){const s=e.defaultFormattingWidth||e.defaultWidth,a=n!=null&&n.width?String(n.width):s;o=e.formattingValues[a]||e.formattingValues[s]}else{const s=e.defaultWidth,a=n!=null&&n.width?String(n.width):e.defaultWidth;o=e.values[a]||e.values[s]}const i=e.argumentCallback?e.argumentCallback(t):t;return o[i]}}const $R={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},IR={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},_R={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},OR={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},AR={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NR={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},jR=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},zR={ordinalNumber:jR,era:Xo({values:$R,defaultWidth:"wide"}),quarter:Xo({values:IR,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Xo({values:_R,defaultWidth:"wide"}),day:Xo({values:OR,defaultWidth:"wide"}),dayPeriod:Xo({values:AR,defaultWidth:"wide",formattingValues:NR,defaultFormattingWidth:"wide"})};function Zo(e){return(t,n={})=>{const r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],i=t.match(o);if(!i)return null;const s=i[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?DR(a,p=>p.test(s)):LR(a,p=>p.test(s));let u;u=e.valueCallback?e.valueCallback(l):l,u=n.valueCallback?n.valueCallback(u):u;const d=t.slice(s.length);return{value:u,rest:d}}}function LR(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function DR(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const o=r[0],i=t.match(e.parsePattern);if(!i)return null;let s=e.valueCallback?e.valueCallback(i[0]):i[0];s=n.valueCallback?n.valueCallback(s):s;const a=t.slice(o.length);return{value:s,rest:a}}}const BR=/^(\d+)(th|st|nd|rd)?/i,WR=/\d+/i,UR={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},HR={any:[/^b/i,/^(a|c)/i]},VR={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},GR={any:[/1/i,/2/i,/3/i,/4/i]},KR={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},YR={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},QR={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},qR={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},XR={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},ZR={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},JR={ordinalNumber:FR({matchPattern:BR,parsePattern:WR,valueCallback:e=>parseInt(e,10)}),era:Zo({matchPatterns:UR,defaultMatchWidth:"wide",parsePatterns:HR,defaultParseWidth:"any"}),quarter:Zo({matchPatterns:VR,defaultMatchWidth:"wide",parsePatterns:GR,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Zo({matchPatterns:KR,defaultMatchWidth:"wide",parsePatterns:YR,defaultParseWidth:"any"}),day:Zo({matchPatterns:QR,defaultMatchWidth:"wide",parsePatterns:qR,defaultParseWidth:"any"}),dayPeriod:Zo({matchPatterns:XR,defaultMatchWidth:"any",parsePatterns:ZR,defaultParseWidth:"any"})},eT={code:"en-US",formatDistance:CR,formatLong:TR,formatRelative:MR,localize:zR,match:JR,options:{weekStartsOn:0,firstWeekContainsDate:1}};function tT(e){const t=Ct(e);return gR(t,wR(t))+1}function nT(e){const t=Ct(e),n=+Aa(t)-+yR(t);return Math.round(n/Zy)+1}function n0(e,t){var d,p,h,S;const n=Ct(e),r=n.getFullYear(),o=Dl(),i=(t==null?void 0:t.firstWeekContainsDate)??((p=(d=t==null?void 0:t.locale)==null?void 0:d.options)==null?void 0:p.firstWeekContainsDate)??o.firstWeekContainsDate??((S=(h=o.locale)==null?void 0:h.options)==null?void 0:S.firstWeekContainsDate)??1,s=Or(e,0);s.setFullYear(r+1,0,i),s.setHours(0,0,0,0);const a=Hi(s,t),l=Or(e,0);l.setFullYear(r,0,i),l.setHours(0,0,0,0);const u=Hi(l,t);return n.getTime()>=a.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function rT(e,t){var a,l,u,d;const n=Dl(),r=(t==null?void 0:t.firstWeekContainsDate)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.firstWeekContainsDate)??n.firstWeekContainsDate??((d=(u=n.locale)==null?void 0:u.options)==null?void 0:d.firstWeekContainsDate)??1,o=n0(e,t),i=Or(e,0);return i.setFullYear(o,0,r),i.setHours(0,0,0,0),Hi(i,t)}function oT(e,t){const n=Ct(e),r=+Hi(n,t)-+rT(n,t);return Math.round(r/Zy)+1}function Ee(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Vn={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Ee(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ee(n+1,2)},d(e,t){return Ee(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ee(e.getHours()%12||12,t.length)},H(e,t){return Ee(e.getHours(),t.length)},m(e,t){return Ee(e.getMinutes(),t.length)},s(e,t){return Ee(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),o=Math.trunc(r*Math.pow(10,n-3));return Ee(o,t.length)}},Kr={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Rh={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return Vn.y(e,t)},Y:function(e,t,n,r){const o=n0(e,r),i=o>0?o:1-o;if(t==="YY"){const s=i%100;return Ee(s,2)}return t==="Yo"?n.ordinalNumber(i,{unit:"year"}):Ee(i,t.length)},R:function(e,t){const n=t0(e);return Ee(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ee(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Ee(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Ee(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Vn.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Ee(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const o=oT(e,r);return t==="wo"?n.ordinalNumber(o,{unit:"week"}):Ee(o,t.length)},I:function(e,t,n){const r=nT(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Ee(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Vn.d(e,t)},D:function(e,t,n){const r=tT(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Ee(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return Ee(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});case"eeee":default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const o=e.getDay(),i=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return Ee(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});case"cccc":default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),o=r===0?7:r;switch(t){case"i":return String(o);case"ii":return Ee(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const o=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let o;switch(r===12?o=Kr.noon:r===0?o=Kr.midnight:o=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let o;switch(r>=17?o=Kr.evening:r>=12?o=Kr.afternoon:r>=4?o=Kr.morning:o=Kr.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Vn.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Vn.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Ee(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Ee(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Vn.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Vn.s(e,t)},S:function(e,t){return Vn.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Ph(r);case"XXXX":case"XX":return xr(r);case"XXXXX":case"XXX":default:return xr(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Ph(r);case"xxxx":case"xx":return xr(r);case"xxxxx":case"xxx":default:return xr(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Th(r,":");case"OOOO":default:return"GMT"+xr(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Th(r,":");case"zzzz":default:return"GMT"+xr(r,":")}},t:function(e,t,n){const r=Math.trunc(e.getTime()/1e3);return Ee(r,t.length)},T:function(e,t,n){const r=e.getTime();return Ee(r,t.length)}};function Th(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Math.trunc(r/60),i=r%60;return i===0?n+String(o):n+String(o)+t+Ee(i,2)}function Ph(e,t){return e%60===0?(e>0?"-":"+")+Ee(Math.abs(e)/60,2):xr(e,t)}function xr(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),o=Ee(Math.trunc(r/60),2),i=Ee(r%60,2);return n+o+t+i}const Mh=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},r0=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},iT=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],o=n[2];if(!o)return Mh(e,t);let i;switch(r){case"P":i=t.dateTime({width:"short"});break;case"PP":i=t.dateTime({width:"medium"});break;case"PPP":i=t.dateTime({width:"long"});break;case"PPPP":default:i=t.dateTime({width:"full"});break}return i.replace("{{date}}",Mh(r,t)).replace("{{time}}",r0(o,t))},sT={p:r0,P:iT},aT=/^D+$/,lT=/^Y+$/,uT=["D","DD","YY","YYYY"];function cT(e){return aT.test(e)}function dT(e){return lT.test(e)}function fT(e,t,n){const r=pT(e,t,n);if(console.warn(r),uT.includes(e))throw new RangeError(r)}function pT(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const hT=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,mT=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,gT=/^'([^]*?)'?$/,yT=/''/g,vT=/[a-zA-Z]/;function xT(e,t,n){var d,p,h,S;const r=Dl(),o=r.locale??eT,i=r.firstWeekContainsDate??((p=(d=r.locale)==null?void 0:d.options)==null?void 0:p.firstWeekContainsDate)??1,s=r.weekStartsOn??((S=(h=r.locale)==null?void 0:h.options)==null?void 0:S.weekStartsOn)??0,a=Ct(e);if(!SR(a))throw new RangeError("Invalid time value");let l=t.match(mT).map(y=>{const w=y[0];if(w==="p"||w==="P"){const R=sT[w];return R(y,o.formatLong)}return y}).join("").match(hT).map(y=>{if(y==="''")return{isToken:!1,value:"'"};const w=y[0];if(w==="'")return{isToken:!1,value:ST(y)};if(Rh[w])return{isToken:!0,value:y};if(w.match(vT))throw new RangeError("Format string contains an unescaped latin alphabet character `"+w+"`");return{isToken:!1,value:y}});o.localize.preprocessor&&(l=o.localize.preprocessor(a,l));const u={firstWeekContainsDate:i,weekStartsOn:s,locale:o};return l.map(y=>{if(!y.isToken)return y.value;const w=y.value;(dT(w)||cT(w))&&fT(w,t,String(e));const R=Rh[w[0]];return R(a,w,o.localize,u)}).join("")}function ST(e){const t=e.match(gT);return t?t[1].replace(yT,"'"):e}function wT(e,t){const n=Ct(e),r=Ct(t);return n.getTime()>r.getTime()}function $s(e,t){const r=ET(e);let o;if(r.date){const l=RT(r.date,2);o=TT(l.restDateString,l.year)}if(!o||isNaN(o.getTime()))return new Date(NaN);const i=o.getTime();let s=0,a;if(r.time&&(s=PT(r.time),isNaN(s)))return new Date(NaN);if(r.timezone){if(a=MT(r.timezone),isNaN(a))return new Date(NaN)}else{const l=new Date(i+s),u=new Date(0);return u.setFullYear(l.getUTCFullYear(),l.getUTCMonth(),l.getUTCDate()),u.setHours(l.getUTCHours(),l.getUTCMinutes(),l.getUTCSeconds(),l.getUTCMilliseconds()),u}return new Date(i+s+a)}const Is={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},bT=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,CT=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,kT=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ET(e){const t={},n=e.split(Is.dateTimeDelimiter);let r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Is.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Is.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){const o=Is.timezone.exec(r);o?(t.time=r.replace(o[1],""),t.timezone=o[1]):t.time=r}return t}function RT(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};const o=r[1]?parseInt(r[1]):null,i=r[2]?parseInt(r[2]):null;return{year:i===null?o:i*100,restDateString:e.slice((r[1]||r[2]).length)}}function TT(e,t){if(t===null)return new Date(NaN);const n=e.match(bT);if(!n)return new Date(NaN);const r=!!n[4],o=Jo(n[1]),i=Jo(n[2])-1,s=Jo(n[3]),a=Jo(n[4]),l=Jo(n[5])-1;if(r)return AT(t,a,l)?$T(t,a,l):new Date(NaN);{const u=new Date(0);return!_T(t,i,s)||!OT(t,o)?new Date(NaN):(u.setUTCFullYear(t,i,Math.max(o,s)),u)}}function Jo(e){return e?parseInt(e):1}function PT(e){const t=e.match(CT);if(!t)return NaN;const n=ku(t[1]),r=ku(t[2]),o=ku(t[3]);return NT(n,r,o)?n*e0+r*Jy+o*1e3:NaN}function ku(e){return e&&parseFloat(e.replace(",","."))||0}function MT(e){if(e==="Z")return 0;const t=e.match(kT);if(!t)return 0;const n=t[1]==="+"?-1:1,r=parseInt(t[2]),o=t[3]&&parseInt(t[3])||0;return jT(r,o)?n*(r*e0+o*Jy):NaN}function $T(e,t,n){const r=new Date(0);r.setUTCFullYear(e,0,4);const o=r.getUTCDay()||7,i=(t-1)*7+n+1-o;return r.setUTCDate(r.getUTCDate()+i),r}const IT=[31,null,31,30,31,30,31,31,30,31,30,31];function o0(e){return e%400===0||e%4===0&&e%100!==0}function _T(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(IT[t]||(o0(e)?29:28))}function OT(e,t){return t>=1&&t<=(o0(e)?366:365)}function AT(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function NT(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function jT(e,t){return t>=0&&t<=59}const zT=({jsonUrl:e})=>{const[t,n]=b.useState([]),[r,o]=b.useState([]),[i,s]=b.useState(null);b.useEffect(()=>{(async()=>{try{const p=await(await fetch(e)).json();n(p);const h=p.flatMap(y=>y.Tags),S=[...new Set(h)];o(S)}catch(d){console.error("Error fetching matches:",d)}})()},[e]);const a=u=>{s(i===u?null:u)},l=t.filter(u=>{const d=$s(u.Date);return wT(d,new Date)&&(i===null||u.Tags.includes(i))}).sort((u,d)=>vR($s(u.Date),$s(d.Date)));return g.jsxs(et,{children:[g.jsx(et,{sx:{display:"flex",flexWrap:"wrap",gap:1,mb:2},children:r.map(u=>g.jsx(wC,{label:u,onClick:()=>a(u),color:i===u?"primary":"default",variant:i===u?"filled":"outlined"},u))}),g.jsx(_a,{children:l.map((u,d)=>g.jsx(Oc,{children:g.jsxs(Ys,{children:[g.jsx(l2,{href:u.Link,target:"_blank",rel:"noopener noreferrer",children:u.Title}),g.jsxs(Z,{variant:"body2",color:"text.secondary",children:["On ",xT($s(u.Date),"MMMM do, yyyy")]})]})},d))})]})},LT=()=>g.jsx(jr,{children:g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"h4",children:"Upcoming Matches"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["You can always find all of our matches on ",g.jsx("a",{href:"https://practiscore.com/clubs/ewpsa-2",children:"Practiscore"}),". Below are direct links to registration for some upcoming matches in 2024."]}),g.jsx(zT,{jsonUrl:"../ewpsa/matches.json"})]})}),Yt=({imageUrl:e,altText:t,imgWidth:n,imgHeight:r})=>pf()?null:g.jsx(et,{component:"img",src:e,alt:t,sx:{width:{imgWidth:n},height:{imgHeight:r},float:"left",marginRight:2,marginBottom:1}}),DT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"USPSA Matches"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Yt,{imageUrl:"images/explainers/USPSA-Logo_ArticleSize.png",altText:"USPSA Logo"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["As a USPSA affiliated club, we host monthly Level 1 USPSA matches. Matches are held in the practical shooting bays, on the 3rd Sunday of every month. Registration is available on ",g.jsx("a",{href:"https://practiscore.com/clubs/ewpsa-2",children:"Practiscore"}),"."]}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"A typical Level-1 match here consists of 3-5 regular stages, a speed shoot, and a classifier stage. The regular stages are typically 28-32 round Comstock Long courses, with a mix of paper and steel targets. Registration opens at 9:00 AM, with the shooters meeting at 9:45 AM. Shooting starts at 10:00 AM. New shooters shoot free!"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["Information about equipment and divisions may be found in the USPSA rules at ",g.jsx("a",{href:"https://uspsa.org/rules",children:"uspsa.org/rules"}),"."]})]})]}),FT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"USPSA Matches"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Yt,{imageUrl:"images/explainers/SCSA-Logo_ArticleSize.png",altText:"Steel Challenge Shooting Association Logo"}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["EWPSA hosts Steel Challenge matches on the second Sunday of every other month (except in winter). We shoot all eight USPSA Steel Challenge stages. Exact match dates and registration is available on ",g.jsx("a",{href:"https://practiscore.com/clubs/ewpsa-2",children:"Practiscore"}),"."]}),g.jsxs(Z,{variant:"body1",paragraph:!0,children:["Information about equipment and divisions may be found in the Steel Challenge rules at ",g.jsx("a",{href:"https://scsa.org/rules",children:"scsa.org/rules"}),"."]})]})]}),BT=Ol(g.jsx("path",{d:"M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"}),"Download");var WT={};const UT=({fileName:e,displayName:t})=>{const n=()=>{const r=WT.PUBLIC_URL+"/"+e,o=document.createElement("a");o.href=r,o.setAttribute("download",e),document.body.appendChild(o),o.click(),document.body.removeChild(o)};return g.jsxs(YC,{variant:"contained",color:"primary",startIcon:g.jsx(BT,{}),onClick:n,children:["Download ",t||e]})},HT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"Monthly 2-Gun Matches"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"body1",paragraph:!0,children:"Monthly 2-Gun is EWPSA's standard 2-gun match. It is hosted on the fourth Saturday of most months in the RMSF pistol bays - though sometimes a 'specialty match' is substituted. Check Practiscore for details. Monthly 2-Gun is an outlaw time plus 2-gun match. The rules are available for download below. We typically shoot four stages in each match. Note that one or two stages may involve some physical element such as extended running, climbing over small obstacles or through tunnels, or throwing kettlebells. In general, these matches have more steel and less paper than our 3-gun matches."}),g.jsx(Z,{variant:"h5",align:"center",children:"Divisions"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Monthly 2-Gun has six divisions, described in short below. Please note that in case of any contradiction between the explainers below and the rules, the rules take precedence."})]}),g.jsxs(et,{sx:{my:4},children:[g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Limited"})," - Unmagnified optics and iron sighted pistols."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/Limited2Gun_ArticleSize.png",altText:"Limited Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Any rifle in an intermediate or battle rifle caliber. Compensators or muzzle brakes are limited to 3" in length and 1" in diameter. Suppressors are permitted. The rifle many only have a single unmagnified sighting system, such as a red dot, holographic sight, or iron sights. Inline backup irons will not be counted as a second sighting system. The rifle may not have a bipod. If laser aiming devices are attached, they may not be used during the course of fire. Magazines are limited to a maximum of 30 rounds.'}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber, must be legal for USPSA Limited division, and must have iron sights - no red dots or lasers permitted. No compensators on pistols. Pistol magazines are limited to 140mm in length."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Tactical"})," - Rifles with one magnified optic and Carry Optics or Limited pistols."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/TacticalDivision_ArticleSize.png",altText:"Tactical Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Any rifle in an intermediate or battle rifle caliber. Compensators or muzzle brakes are limited to 3" in length and 1" in diameter. Suppressors are permitted. The rifle many only have a single unmagnified sighting system, such as a red dot, holographic sight, or iron sights. Inline backup irons will not be counted as a second sighting system. The rifle may not have a bipod. If laser aiming devices are attached, they may not be used during the course of fire. Magazines are limited to a maximum of 30 rounds.'}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber, and must be either USPSA Carry Optics or USPSA Limited legal. No compensators on pistols. Pistol magazines are limited to 140mm in length. PCCs (Trooper only) are restricted to iron sights and 30 round magazines."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Open"})," - Almost anything goes."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/OpenDivision2Gun_ArticleSize.png",altText:"Open Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any rifle with any sighting system or number of sighting systems in an intermediate or battle rifle caliber. Any muzzle device is permitted. Bipods are permitted, but must be collapsed at the start signal. Bags, tripods, and rear monopods may not be used. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any pistol in any handgun configuration (no braced pistols, PDWs. Needs to be a normal pistol. You know what I mean). Compensators and slide-mounted optics are permitted. No magazine type, capacity, or length restrictions."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Armored"})," - Suffering is fun!"]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/Armored_ArticleSize.png",altText:"Armored Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any rifle with any sighting system or number of sighting systems in an intermediate or battle rifle caliber. Any muzzle device is permitted. Bipods are permitted, but must be collapsed at the start signal. Bags, tripods, and rear monopods may not be used. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any pistol in any handgun configuration (no braced pistols, PDWs. Needs to be a normal pistol. You know what I mean). Compensators and slide-mounted optics are permitted. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Shooter must wear either front and rear rifle-rated plates (rated for at least 7.62x39) or front and rear training plates that weigh at least 6 lbs each."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Retro"})," - Nothing after 1991"]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/Retro2Gun_ArticleSize.png",altText:"Retro Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Any rifle in service before January 1, 1992, reproductions thereof, or rifles that substantially share external appearance (this means your 20" PSA AR-15 with a picatinny carry handle is an acceptable "M16A2"). Must be chambered in an intermediate or battle rifle caliber. Pre-1992 optics, reproductions thereof, or modern versions with the same form factor are permitted. Period-correct bipods are permitted. Magazines are limited to period capacity, but may be modern designs. No picatinny rails for optic mounting.'}),g.jsx(Z,{variant:"body1",paragraph:!0,children:'Iron sighted pistols of a design in service before January 1, 1992, reproductions thereof, or pistols that substantially share external appearance (your gen 4 Glock 17 is an acceptable "gen 2 Glock 17"). Pistol magazines are limited to 140mm or period capacity, whichever is greater.'})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Heavy Metal"})," - Battle rifles and heavy pistol calibers."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/HeavyMetal2Gun_ArticleSize.png",altText:"Heavy Metal Division for 2-Gun"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any battle rifle with any sighting system. 6.5 Creedmoor, 308 Winchester, 30-06 Springfield, 7.62x54R, etc. Any muzzle device is permitted. Bipods are permitted, but must be collapsed at the start signal. Bags, tripods, and rear monopods may not be used. No magazine type, capacity, or length restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any handgun chambered in 10mm, 41 Magnum, 45 ACP, or larger. Compensators and slide-mounted optics are permitted. No magazine type, capacity, or length restrictions."})]})]})]}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Z,{variant:"h5",align:"center",children:"Rules"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Available in PDF format for download below."}),g.jsx(UT,{fileUrl:"public/files/2gun_rules.pdf",displayName:"2-Gun Rules"})]})]}),VT=()=>g.jsxs(jr,{children:[g.jsx(Z,{variant:"h4",align:"center",children:"Red October AK Match"}),g.jsxs(et,{sx:{my:4},children:[g.jsx(Yt,{imageUrl:"images/explainers/RedAKInCircle_ArticleSize.png",altText:"Red October Logo"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Every October, EWPSA hosts the Red October AK match - a 2-Gun match focused on the Kalasknikov platform and the Cold War. Expect a Monthly 2-Gun style match with somewhat closer ranges (they are AKs, after all) and a Cold War theme. Red October is an Outlaw match - meaning there is no national umbrella organization - so we use the same rules as our Monthly 2-Gun matches. Stick around afterwards, there will be some small prizes for the winners of each division."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Red October is a stage points time plus match, which means that each stage is worth a certain number of match points, and your time is divided by the best time on that stage to get your stage points. The match points are the sum of your stage points. The shooter with the most match points wins. There will be four stages, expect a round count of about 150-200 rifle rounds and 150ish pistol rounds."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Red October has three custom divisions, described below, covering both Cold War and modern setups. No AK? No problem! We still want you to shoot the match - check out our Western Spy division. Costumes absolutely encouraged but by no means required. Before you ask, Galils and the various Swiss rifles go in Western Spy."}),g.jsx(Z,{variant:"h5",align:"center",children:"Red October Divisions"}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Warsaw Pact"})," - Iron sights or pre-1989 optics, and pre-1989 AK configurations. Iron sights on pistols."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/AKM_ArticleSize.png",altText:"AKM, courtesy of wikipedia"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:`Rifles must be an AK family rifle in a Cold War configuration. Optics are OK, as long as they are Cold War era side rail mounts. No picatinny rails. Rifles must be chambered in a Warsaw Pact caliber (7.62x39, 5.45x39, 7.62x54R, etc). If you have a PKM/RPK/SVD, you may shoot it as an "AK" in this division. Any period magazine is permitted. Grips, stocks, handguards, etc should be approximately period-correct, but we're not going to be too picky.`}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber, and must have iron sights. No compensators on pistols. Modern or western pistols are fine. Pistol magazines are limited to 140mm in length."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Zenitcope"})," - Modernized AKs and any pistol."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/ZenitcoAK74_ArticleSize.png",altText:"AK74, courtesy of Gunghis Kahn"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Modernized AKs in any configuration. Zenitco, Zenitcope, lights, lasers, optics, rails... whatever you want. Rifles must be chambered in an intermediate or battle rifle caliber, but 5.56x45mm AKs are welcome here. Any magazine is permitted."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber. No magazine length or capacity restrictions. Pistols may have compensators, red dots, etc. Western pistols are fine, although if you have a Stechkin we are very impressed."})]})]}),g.jsxs(Mn,{children:[g.jsx(In,{expandIcon:g.jsx(ln,{}),"aria-controls":"panel1a-content",id:"panel1a-header",children:g.jsxs(Z,{children:[g.jsx("strong",{children:"Western Spy"})," - For Capitalist Kalashnicels. Any rifle and any pistol."]})}),g.jsxs($n,{children:[g.jsx(Yt,{imageUrl:"images/explainers/CIA_ArticleSize.png",altText:"And ye shall know the truth, and the truth shall make you free"}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Any rifle in any configuration that doesn't fit into an AK division, that is chambered in an intermediate or battle rifle caliber (no magnum rifle calibers). Any sighting system or muzzle device may be used. No magazine length or capacity restrictions."}),g.jsx(Z,{variant:"body1",paragraph:!0,children:"Pistols must be 9mm or larger caliber. No magazine length or capacity restrictions. Pistols may have compensators, red dots, etc."})]})]})]})]}),GT=()=>{const[e,t]=b.useState(!1),[n,r]=b.useState(!1),[o,i]=b.useState("Home"),s=h=>S=>{S.type==="keydown"&&(S.key==="Tab"||S.key==="Shift")||t(h)},a=()=>{r(!n)},l=h=>{i(h),t(!1)},u=[{text:"Home",icon:g.jsx(qy,{})},{text:"Our Match Schedule",icon:g.jsx(Ac,{})},{text:"Matches",icon:g.jsx(Ac,{}),subItems:[{text:"USPSA",icon:g.jsx(Gr,{imagePath:"images/icons/USPSA-Logo_rgb_64x64.png",altText:"USPSA logo"})},{text:"Steel Challenge",icon:g.jsx(Gr,{imagePath:"images/icons/SCSA-Logo_96x96.png",altText:"Steel Challenge logo"})},{text:"Monthly 2-Gun",icon:g.jsx(Gr,{imagePath:"images/icons/2Gun_96x96.png",altText:"2-Gun logo"})},{text:"Summer 3-Gun",icon:g.jsx(Gr,{imagePath:"images/icons/3Gun_96x96.png",altText:"3-Gun logo"})},{text:"Action 2-Gun",icon:g.jsx(Gr,{imagePath:"images/icons/Kettlebell_96x96.png",altText:"Action 2-Gun logo"})},{text:"Red October",icon:g.jsx(Gr,{imagePath:"images/icons/RedAKInCircle64x64.png",altText:"Red October logo"})}]},{text:"2-Gun Standings",icon:g.jsx(Nc,{})},{text:"3-Gun Standings",icon:g.jsx(Nc,{})}],d=(h,S)=>g.jsxs(un.Fragment,{children:[g.jsxs(Oc,{button:!0,onClick:h.subItems?a:()=>l(h.text),sx:{cursor:"pointer"},children:[g.jsx(uh,{children:h.icon}),g.jsx(Ys,{primary:h.text}),h.subItems&&(n?g.jsx(Qy,{}):g.jsx(ln,{}))]}),h.subItems&&g.jsx(Ta,{in:n,timeout:"auto",unmountOnExit:!0,children:g.jsx(_a,{component:"div",disablePadding:!0,children:h.subItems.map((y,w)=>g.jsx(Oc,{button:!0,sx:{pl:4,cursor:"pointer"},onClick:()=>l(typeof y=="string"?y:y.text),children:typeof y=="string"?g.jsx(Ys,{primary:y}):g.jsxs(g.Fragment,{children:[g.jsx(uh,{children:y.icon}),g.jsx(Ys,{primary:y.text})]})},w))})})]},S),p=()=>{switch(o){case"Home":return g.jsx(pR,{});case"Our Match Schedule":return g.jsx(LT,{});case"2-Gun Standings":return g.jsx(fR,{});case"3-Gun Standings":return g.jsxs(et,{children:[g.jsx(Z,{variant:"h4",component:"h1",gutterBottom:!0,children:"3-Gun Standings"}),g.jsx(Z,{variant:"body1",children:"Current standings for 3-Gun competitions."})]});case"USPSA":return g.jsx(DT,{});case"Steel Challenge":return g.jsx(FT,{});case"Monthly 2-Gun":return g.jsx(HT,{});case"Red October":return g.jsx(VT,{});default:return g.jsxs(et,{children:[g.jsx(Z,{variant:"h4",component:"h1",gutterBottom:!0,children:o}),g.jsxs(Z,{variant:"body1",children:["Content for ",o," goes here."]})]})}};return g.jsxs(et,{sx:{flexGrow:1},children:[g.jsx(lR,{imageSrc:"Banner50pct.jpg",altText:"EWPSA Banner"}),g.jsx(pC,{position:"static",children:g.jsxs(AE,{children:[g.jsx(rC,{size:"large",edge:"start",color:"inherit","aria-label":"menu",sx:{mr:2},onClick:s(!0),children:g.jsx(Yy,{})}),g.jsx(Z,{variant:"h6",component:"div",sx:{flexGrow:1},children:"Eastern Washington Practical Shooters Association"})]})}),g.jsx(_k,{anchor:"left",open:e,onClose:s(!1),children:g.jsx(et,{sx:{width:250},role:"presentation",children:g.jsx(_a,{children:u.map(d)})})}),g.jsx(et,{component:"main",sx:{p:3},children:p()})]})};Wg(document.getElementById("root")).render(g.jsx(b.StrictMode,{children:g.jsx(GT,{})})); diff --git a/index.html b/index.html index ecf8f5a..5428525 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,7 @@ EWPSA - +