PageSourceSearch

https://fossilsketch.org/_next/static/chunks/3370-cfcb6d952fca7e09.js

js fossilsketch.org collected 2026-10-09 00:42:09 UTC 28,935 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3370],{1191:function(e,t,n){n.d(t,{Z:function(){return a}});var i=n(2784),r=n(2589);function a(e){var t=e.activityKey,n=e.classroomId,a=(0,i.useRef)(Date.now()),s=(0,i.useRef)(!0),o=(0,i.useRef)(0),c=(0,i.useRef)(0),l=(0,i.useRef)(0),u=(0,i.useRef)(null),d=r.S.useMutation(["user.logActivityTime"]).mutate;return(0,i.useEffect)((function(){if(Number.isFinite(n)&&!(n<=0)&&t){a.current=Date.now(),s.current=!0,o.current=0,c.current=0,l.current=0;var e=function(){var e=function(){var e=Date.now(),t=s.current?e-a.current:0;return Math.floor((o.current+t)/1e3)}()-c.current-l.current;e<=0||(l.current+=e,d({classroomId:n,activityKey:t,seconds:e},{onSuccess:function(){c.current+=e,l.current=Math.max(0,l.current-e)},onError:function(t){console.error("Failed to log activity time",t),l.current=Math.max(0,l.current-e)}}))},i=function(){var t=Date.now();"hidden"===document.visibilityState?(s.current&&(o.current+=t-a.current,s.current=!1),e()):s.current||(a.current=t,s.current=!0)},r=function(){var e=Date.now();s.current&&(o.current+=e-a.current,s.current=!1);var i=Math.floor(o.current/1e3)-c.current-l.current;i>0&&function(e){if(!e||e<=0)return!1;var i=new Blob([JSON.stringify({0:{classroomId:n,activityKey:t,seconds:Math.round(e)}})],{type:"application/json"});try{var r;return Boolean(null===(r=navigator.sendBeacon)||void 0===r?void 0:r.call(navigator,"/api/trpc/user.logActivityTime?batch=1",i))}catch(a){return console.error("Beacon failed",a),!1}}(i)&&(c.current+=i)};return document.addEventListener("visibilitychange",i),window.addEventListener("pagehide",r),u.current=window.setInterval(e,5e3),function(){document.removeEventListener("visibilitychange",i),window.removeEventListener("pagehide",r),u.current&&clearInterval(u.current),s.current&&(o.current+=Date.now()-a.current,s.current=!1);var e=Math.floor(o.current/1e3)-c.current-l.current;e>0&&d({classroomId:n,activityKey:t,seconds:e})}}}),[t,n]),null}},3370:function(e,t,n){n.d(t,{Z:function(){return L}});var i=n(865),r=n(6670),a=n(6383),s=n(8875),o=n(930),c=n(2322),l=n(2784),u=n(5632),d=n(7996),p=n.n(d),h=n(4761),m=n(9834),f=n(7841),v=n(5117),g=n(2172),x=n(2495);var y=function(e){var t=e.steps,n=e.updateStep,i=e.viewFinishButton,r=e.helperText,a=e.step,s=e.setStep,o=e.evaluateFinishedSketch,l=e.finishDisabled,u=void 0!==l&&l,d=e.specimenPickerOpen,y=void 0!==d&&d,b=(0,h.rZ)();return(0,c.jsxs)("div",{className:"".concat(p().step_select_container," ").concat(y?p().step_select_container_fixed:""),children:[(0,c.jsxs)("div",{className:p().step_select_top,children:[(0,c.jsx)(m.A,{variant:"transparent",size:55,onClick:function(){1!=a&&(s(a-1),n(a-1))},children:(0,c.jsx)(g.Z,{size:55})}),(0,c.jsxs)("div",{className:p().step_text_container,children:[(0,c.jsxs)("div",{className:p().step,style:{color:b.colors.cyan[7]},children:["Step ",a]}),(0,c.jsx)("div",{className:p().step_text,children:t[a-1]})]}),(0,c.jsx)(m.A,{variant:"transparent",size:55,onClick:function(){a<t.length&&(s(a+1),n(a+1))},children:(0,c.jsx)(x.Z,{size:55})})]}),(0,c.jsx)("div",{className:p().progressBar,children:(0,c.jsx)("div",{style:{height:"2px",backgroundColor:b.colors.cyan[7],width:a/t.length*100+"%",transitionDuration:"1s"}})}),(0,c.jsx)(f.z,{radius:"xl",size:"md",className:p().finish_button,onClick:function(){return o()},style:{display:i?"flex":"none"},disabled:u,children:"Finished"}),(0,c.jsx)("div",{className:p().helper_text,children:(0,c.jsx)(v.x,{children:r||"\xa0"})})]})};var b=function(e){var t=e.panelType,n=e.panelOptions,i=e.multipleChoices,r=e.setSelected,a=e.updateStep,s=e.fossilType,u=e.fossilData,d=function(e){if(g.includes(e)){var t=g.filter((function(t){return t!==e}));x(t)}else if(i){var n=g.slice();n.push(e),x(n)}else setTimeout((function(){a()}),500),x([e])},m=(0,h.rZ)(),v=(0,l.useState)([]),g=v[0],x=v[1],y=(0,l.useState)(null),b=y[0],S=y[1];(0,l.useEffect)((function(){r(t,g)}),[g]),(0,l.useEffect)((function(){if(x([]),n)if("ornamentation"===t){var e=n.find((function(e){return"smooth"===e.description.toLowerCase()})),i=n.filter((function(e){return"smooth"!==e.description.toLowerCase()}));S([e].concat((0,o.Z)(i)))}else if(n.length<5)S(n);else{for(var r=n.filter((function(e){var n=u&&u[t];return!!g.includes(e.description)||(Array.isArray(n)?n.includes(e.description):u&&u[t].toLowerCase()===e.description.toLowerCase())}));r.length<5;){var a=Math.floor(Math.random()*n.length);r.includes(n[a])||r.push(n[a])}S(function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),i=e[t];e[t]=e[n],e[n]=i}return e}(r))}else S(null)}),[t]);var j="ornamentation"===t||"otherFeatures"===t,C="".concat(p().panel_image," ").concat(j?p().panel_image_compact:""),_="".concat(p().panel_button," ").concat(j?p().panel_button_compact:"");return(0,c.jsx)("div",{style:{height:"25vh"},children:b&&(0,c.jsx)("div",{className:p().choice_panel_container,children:(0,c.jsxs)("div",{className:p().choice_panel,children:[null===b||void 0===b?void 0:b.map((function(e,t){var n="ostracoda"===s?"/ostracoda_identification/":"/forams/",i=Boolean(e.imagePath),r=i?_:"".concat(p().panel_button," ").concat(p().panel_button_text_only);return(0,c.jsxs)("div",{className:p().panel_container,children:[i&&(0,c.jsx)("div",{className:p().panel_image_container,children:(0,c.jsx)("img",{className:C,alt:e.description,src:n+e.imagePath,onClick:function(){return d(e.description)},style:{border:g.includes(e.description)?m.colors.cyan[7]+" solid 5px":""}})}),(0,c.jsx)(f.z,{radius:"xl",className:r,onClick:function(){return d(e.description)},children:e.description})]},t)})),"otherFeatures"===t&&(0,c.jsxs)("div",{className:p().panel_container,children:[(0,c.jsx)("div",{className:p().panel_image_container,children:(0,c.jsx)("img",{className:C,alt:"None of these",src:("ostracoda"===s?"/ostracoda_identification/":"/forams/")+"cancell.png",onClick:function(){return d("None of these")},style:{border:g.includes("None of these")?m.colors.cyan[7]+" solid 1px":""}})}),(0,c.jsx)(f.z,{radius:"xl",className:_,onClick:function(){return d("None of these")},children:"None of these"})]})]})})})},S=n(2870),j=n(1017),C=n(9454);var _=function(e){var t=e.FossilOptions,n=e.fossilType,i=e.selectedProperties,r=e.fossilGuess,a=e.morphotype,s=e.isFinalStep,o=function(e,t){var n=i[t].includes(e);return(0,c.jsxs)("div",{className:p().traitLine,children:[(0,c.jsx)("div",{className:p().checkWrapper,children:n?(0,c.jsx)(S.E,{height:16,width:16,className:p().correct,src:"/icons/correct.svg"}):(0,c.jsx)("div",{className:p().emptyIcon})}),(0,c.jsx)(v.x,{style:{fontSize:"1.5rem",fontWeight:300,color:"white",lineHeight:"40px",width:"100%",textAlign:"left"},children:e})]})},u=(0,h.rZ)(),d=(0,l.useState)(),m=d[0],g=d[1];return(0,l.useEffect)((function(){g("fossilsketch")}),[]),(0,c.jsx)("div",{style:{width:"33.333333%"},children:t&&(0,c.jsxs)(j.Z,{className:p().options_card,children:[(0,c.jsxs)(j.Z.Section,{children:[(0,c.jsx)(S.E,{src:"morphotype"===n?"https://storage.googleapis.com/"+m+"/morphotypeAnswers/"+a.image:(0,C.a9)("".concat(n,"/").concat(t.imagePath.replaceAll(" ","")))}),(0,c.jsx)("span",{className:p().options_card_title,style:{color:u.colors.cyan[7]},children:(0,c.jsx)(v.x,{children:function(){var e=t.genus+" "+t.species.toLocaleLowerCase();return"morphotype"===n&&(e=a.name),e}()})})]}),"ostracoda"===n&&(0,c.jsxs)(j.Z.Section,{className:p().options_card_properties,children:[t.shape&&o(t.shape,"shape"),t.size&&t.size.map((function(e){return o(e,"size")})),t.variation&&o(t.variation.charAt(0).toUpperCase()+t.variation.slice(1),"variation"),t.ornamentation&&t.ornamentation.map((function(e){return o(e,"ornamentation")})),t.otherFeatures&&t.otherFeatures.map((function(e){return o(e,"otherFeatures")}))]}),"foraminifera"===n&&(0,c.jsxs)(j.Z.Section,{className:p().options_card_properties,children:[t.shellType&&o(t.shellType,"shellType"),t.overallShape&&t.overallShape.map((function(e){return o(e,"overallShape")})),t.chamberShape&&t.chamberShape.map((function(e){return o(e,"chamberShape")})),t.numberChambers&&o(t.numberChambers,"numberChambers"),t.chamberArrangement&&t.chamberArrangement.map((function(e){return o(e,"chamberArrangement")})),t.apertureLocation&&o(t.apertureLocation,"apertureLocation"),t.apertureShape&&o(t.apertureShape,"apertureShape")]}),"morphotype"===n&&(0,c.jsx)(j.Z.Section,{className:p().options_card_properties}),(0,c.jsx)(j.Z.Section,{className:p().options_card_button_container,children:(0,c.jsx)(f.z,{radius:"xl",size:"md",className:p().options_card_button,onClick:function(){r(s,"morphotype"===n?a.name:(t.genus+" "+t.species).trim())},children:"This is it!"})})]})})},T=n(6759),N=n(7973),F=n(5056),w=n(8760),k=n(1191),A=n(2589),Z=n(7577),E=n(8090),P=n(3575),D=n(7082),I=n(6335),z=function(e){var t=e.fossilData,n=e.fossilType,i=e.choicePanelOptions,r=(0,l.useState)(1),a=r[0],s=r[1],o=(0,l.useState)("max_length"),c=o[0],u=o[1],d=(0,l.useState)(null),p=d[0],h=d[1],m=(0,l.useState)(!1),f=m[0],v=m[1],g=(0,l.useState)(!1),x=g[0],y=g[1],b=(0,l.useState)(""),S=b[0],j=b[1],C=(0,l.useState)(!1),_=C[0],T=C[1],N=(0,l.useState)("morphotype"===n?"Remember to sketch on the left view only!":""),F=N[0],w=N[1],k=(0,l.useState)(!1),A=k[0],Z=k[1],E=(0,l.useState)(!1),P=E[0],D=E[1],I=(0,l.useState)(null===t||void 0===t?void 0:t.outline),z=I[0],O=I[1];(0,l.useEffect)((function(){R(1)}),[t]);var R=function(e){switch(e||(e=a+1),s(e),e){case 1:"ostracoda"===n?(u("max_length"),O(null===t||void 0===t?void 0:t.majorAxis),w(""),T(!1)):"foraminifera"===n?(u("outline"),O(null===t||void 0===t?void 0:t.outline),w("You only need to sketch the outline of the left view"),T(!0)):(u("outline"),O(null===t||void 0===t?void 0:t.outline),w("Remember to sketch on the left view only!"),T(!0)),y(!1),h(null),j(""),Z(!1),D(!1);break;case 2:"ostracoda"===n?(u("max_height"),O(null===t||void 0===t?void 0:t.minorAxis),w(""),T(!1)):"foraminifera"===n?(u("last_chamber"),O(null===t||void 0===t?void 0:t.largestChamber),w("You only need to sketch the last chamber of this left view"),T(!0)):(u("center_outline"),O(null===t||void 0===t?void 0:t.centerOutline),w("Remember to sketch on the center view only!"),T(!0)),y(!1),h(null),j(""),Z(!1),D(!1);break;case 3:"ostracoda"===n?(h(i.variation),j("variation")):"foraminifera"===n?(h(i.shellType),j("shellType")):(h(i.chamberArrangement),j("chamberArrangement")),w(""),u("none"),y(!1),v(!1),T(!1),Z(!1),D(!1);break;case 4:"ostracoda"===n?(u("outline"),h(null),j(""),O(null===t||void 0===t?void 0:t.outline),w(""),v(!1)):"foraminifera"===n?(u("none"),h(i.overallShape),j("overallShape"),w("You can select multiple options"),v(!0)):(u("aperture_area"),h(null),j(""),O(null===t||void 0===t?void 0:t.apertureArea),w("Click on the aperture location in the CENTER view"),v(!1)),T(!0),y(!1),Z(!1),D(!1);break;case 5:"ostracoda"===n?(h(i.shape),j("shape"),Z(!1)):"foraminifera"===n?(h(i.chamberShape),j("chamberShape"),Z(!1)):(h(null),j(""),Z(!0)),w(""),u("none"),y(!1),v(!1),T(!1),D(!1);break;case 6:"ostracoda"===n?(h(i.size),j("size"),y(!0)):"foraminifera"===n&&(h(i.numberChambers),j("numberChambers"),y(!1),w("")),u("none"),v(!1),T(!1),Z(!1),D(!1);break;case 7:"ostracoda"===n?(h(i.ornamentation),j("ornamentation"),v(!0),T(!0),w("You can select multiple options")):"foraminifera"===n&&(h(i.chamberArrangement),j("chamberArrangement"),v(!1),T(!1),w("")),u("none"),y(!1),Z(!1),D(!1);break;case 8:"ostracoda"===n?(h(i.otherFeatures),j("otherFeatures"),T(!0),v(!0),w("You can select multiple options")):"foraminifera"===n&&(h(i.apertureLocation),j("apertureLocation"),T(!1),v(!1),w("")),u("none"),y(!1),Z(!1),D(!1);break;case 9:"ostracoda"===n?(h(null),j(""),Z(!0)):"foraminifera"===n&&(h(i.apertureShape),j("apertureShape"),v(!1),Z(!1)),T(!1),u("none"),y(!1),D(!1),w("");break;case 10:"ostracoda"===n?(Z(!1),D(!0)):(Z(!0),D(!1)),h(null),j(""),u("none"),y(!1),v(!1),T(!1),w("");break;case 11:"ostracoda"===n?(Z(!1),D(!1)):(Z(!1),D(!0)),h(null),j(""),u("none"),y(!1),v(!1),T(!1),w("");break;default:u("none"),y(!1),j(""),h(null),Z(!1)}};return{currentStep:a,setCurrentStep:s,sketchType:c,choicePanelData:p,multipleChoices:f,rulerVisible:x,panelType:S,finishButtonVisible:_,isCoarseStepVisible:A,isFineStepVisible:P,currentPoints:z,updateStep:R,helperText:F}};function O(e){return"number"===typeof e&&Number.isFinite(e)&&e>0}function R(e,t){if(!(null===e||void 0===e?void 0:e.trim()))return null;var n=e.trim();if(/^https?:\/\//i.test(n))return n;if(n.startsWith("/api/uploads/"))return n;var i=(0,C.DE)(t),r=n.replaceAll(" ","");return r.includes("/")||(r="".concat(i,"/").concat(r)),(0,C.a9)(r)}var M=[{name:"Biconvex Rounded",image:"Biconvex-Rounded.jpg",chamberArrangement:["Planispiral"]},{name:"Flat Discoidal",image:"Flat-Discoidal.jpg",chamberArrangement:["Planispiral"]},{name:"Biconvex Keeled",image:"Biconvex-Keeled.jpg",chamberArrangement:["Trochospiral"]},{name:"Cylindrical Tapered",image:"Elongate-Cylindrical-Tapered.jpg",chamberArrangement:["Triserial"]},{name:"Flat Tapered",image:"Elongate-Flat-Tapered.jpg",chamberArrangement:["Biserial"]},{name:"Spherical to Ovate",image:"Spherical-to-Ovate.jpg",chamberArrangement:["Unilocular","Planis
1piral","Biserial","Enrolled Biserial"]},{name:"Uniserial to Tubular",image:"Uniserial-to-tubular.jpg",chamberArrangement:[]},{name:"Rounded Discoidal",image:"Rounded-Discoidal.jpg",chamberArrangement:["Planispiral","Trochospiral"]},{name:"Planoconvex",image:"Planoconvex.jpg",chamberArrangement:""},{name:"Pyramidal",image:"Planoconvex.jpg",chamberArrangement:["High Trochospiral","Low Trochospiral","Trochospiral"]},{name:"Palmate",image:"Flat-Discoidal.jpg",chamberArrangement:["Planispiral","Biserial"]}];var L=function(e){var t=e.fossilType,n=e.steps,d=e.choicePanelOptions,h=function(e,t){if(e&&"mmScale"in e){var n=e.widthInMm;if(n&&!(n<=0)){var i=function(e){if(!(null===e||void 0===e?void 0:e.length))return null;var t=!0,n=!1,i=void 0;try{for(var r,a=e[Symbol.iterator]();!(t=(r=a.next()).done);t=!0){var s=r.value,o=null===s||void 0===s?void 0:s[0],c=null===s||void 0===s?void 0:s[1];if(o&&c&&(o.x!==c.x||o.y!==c.y))return[o,c]}}catch(l){n=!0,i=l}finally{try{t||null==a.return||a.return()}finally{if(n)throw i}}return null}(e.majorAxis);if(i){var r=(0,a.Z)(i,2),s=r[0],o=r[1],c=e.majorAxisCanvasWidth||e.outlineCanvasWidth;if(c&&t){var l=(o.x-s.x)*t/c;!Number.isFinite(l)||l<=0||(n<=.4?(ie("small"),fe(.47*l/n)):n>.8?(ie("large"),fe(1.55*l/n)):(ie("medium"),fe(.93*l/n)))}}}}},m=function(e,n){var a="morphotype"===t?B.morphotype:(B.genus+" "+B.species).trim();if(e)if(n===a){var s=Math.min(Math.max(0,4-ke.speciesTries.length-1),3);Ae((function(e){return(0,r.Z)((0,i.Z)({},e),{speciesTries:(0,o.Z)(e.speciesTries).concat([n]),variation:t,starRating:s})})),Fe(s>2?"Perfect! Great job!":"Not bad! You can do better"),$e({classroomId:parseInt(x.currentClass),family:t,genus:ke.correctFossilName,submission:JSON.stringify((0,r.Z)((0,i.Z)({},ke),{speciesTries:(0,o.Z)(ke.speciesTries).concat([n]),variation:t,starRating:s})),starRating:s,type:"identify"}),Se(!0)}else Ae((function(e){return(0,r.Z)((0,i.Z)({},e),{speciesTries:(0,o.Z)(e.speciesTries).concat([n]),variation:t})})),(0,P.c0)({id:"partialGuess",title:"Partially Correct!",message:"Try to match every observation in selected specimen",disallowClose:!1,autoClose:5e3,icon:(0,c.jsx)(D.Z,{}),color:"blue"});else if(n===a)if((0,P.c0)({id:"correctGuess",title:"Correct!",message:"Correct Identification",disallowClose:!1,autoClose:5e3,icon:(0,c.jsx)(I.Z,{})}),"morphotype"===t){var l=Math.min(Math.max(0,4-ke.speciesTries.length-1),3);Ae((function(e){return(0,r.Z)((0,i.Z)({},e),{speciesTries:(0,o.Z)(e.speciesTries).concat([n]),variation:t,starRating:l})})),Fe(l>2?"Perfect! Great job!":"Not bad! You can do better"),$e({classroomId:parseInt(x.currentClass),family:t,genus:ke.correctFossilName,submission:JSON.stringify((0,r.Z)((0,i.Z)({},ke),{speciesTries:(0,o.Z)(ke.speciesTries).concat([n]),variation:t,starRating:l})),starRating:l,type:"identify"}),Se(!0)}else Je();else if(-1!=n.indexOf(B.genus)){Ae((function(e){return(0,r.Z)((0,i.Z)({},e),{speciesTries:(0,o.Z)(e.speciesTries).concat([n]),variation:t})}));var u="You correctly identified the genus ".concat(B.genus,", but the specimen belongs to a different species.");(0,P.c0)({id:"partialGuess",title:"Partially Correct!",message:u,disallowClose:!1,autoClose:5e3,icon:(0,c.jsx)(D.Z,{}),color:"blue"}),Je()}else Ae((function(e){return(0,r.Z)((0,i.Z)({},e),{speciesTries:(0,o.Z)(e.speciesTries).concat([n]),variation:t})})),(0,P.c0)({id:"IncorrectGuess",title:"Incorrect!",message:"Incorrect Identification. Please try again.",disallowClose:!1,autoClose:5e3,icon:(0,c.jsx)(D.Z,{}),color:"red"})},g=(0,u.useRouter)(),x=(0,l.useContext)(N.Z),j=(0,l.useRef)(null),L=(0,l.useState)(F.vy),B=L[0],W=L[1],H=(0,l.useState)([]),Y=H[0],G=H[1],V=(0,l.useState)([]),K=V[0],U=V[1],J=(0,l.useState)([]),Q=J[0],q=J[1],X=(0,l.useState)([]),$=X[0],ee=X[1],te=(0,l.useState)(),ne=te[0],ie=te[1],re=(0,l.useState)(0),ae=re[0],se=re[1],oe=(0,l.useState)(0),ce=oe[0],le=oe[1],ue=(0,l.useState)(0),de=ue[0],pe=ue[1],he=(0,l.useState)(0),me=he[0],fe=he[1],ve=(0,l.useState)({shape:[""],size:[""],variation:[""],ornamentation:[""],otherFeatures:[""],shellType:[""],chamberShape:[""],numberChambers:[""],chamberArrangement:[""],apertureLocation:[""],apertureShape:[""],overallShape:[""]}),ge=ve[0],xe=ve[1],ye=(0,l.useState)(!1),be=ye[0],Se=ye[1],je=(0,l.useState)(),Ce=je[0],_e=je[1],Te=(0,l.useState)(""),Ne=Te[0],Fe=Te[1],we=(0,l.useState)({starRating:0}),ke=we[0],Ae=we[1],Ze=(0,l.useState)(""),Ee=Ze[0],Pe=Ze[1],De=(0,l.useState)(!1),Ie=De[0],ze=De[1],Oe=z({fossilData:B,fossilType:t,choicePanelOptions:d}),Re=Oe.currentStep,Me=Oe.setCurrentStep,Le=Oe.sketchType,Be=Oe.choicePanelData,We=Oe.multipleChoices,He=Oe.rulerVisible,Ye=Oe.panelType,Ge=Oe.finishButtonVisible,Ve=Oe.isCoarseStepVisible,Ke=Oe.isFineStepVisible,Ue=Oe.currentPoints,Je=Oe.updateStep,Qe
1=Oe.helperText;(0,l.useEffect)((function(){_e("fossilsketch")}),[]);var qe,Xe="outline"===Le||"center_outline"===Le||"last_chamber"===Le||"aperture_area"===Le,$e=A.S.useMutation(["submission.saveSubmission"]).mutate,et=(0,l.useState)(null),tt=et[0],nt=et[1],it=!O(x.currentFossil),rt=A.S.useQuery(["classroom.getClassroomFossils",{classroomId:null!==(qe=x.currentClass)&&void 0!==qe?qe:""}],{enabled:!!x.currentClass&&it,onError:function(e){console.error("Failed to load classroom fossils:",e),nt("Failed to load classroom fossils. Please try again.")}}),at=rt.data,st=rt.isLoading;(0,l.useEffect)((function(){if(it&&at){var e=function(e,t){var n,i,r;return"ostracoda"===t?(null!==(n=e.ostracods)&&void 0!==n?n:[]).flatMap((function(e){return e.fossilIds})):"morphotype"===t?(null!==(i=e.forams)&&void 0!==i?i:[]).filter((function(e){return!["Nonionellina","Nonionella","Pseudononion"].includes("".concat(e.displayData.genus," ").concat(e.displayData.species).trim())})).flatMap((function(e){return e.fossilIds})):(null!==(r=e.forams)&&void 0!==r?r:[]).flatMap((function(e){return e.fossilIds}))}(at,t).filter(O);0!==e.length?x.setCurrentFossil(e[Math.floor(Math.random()*e.length)]):nt("No fossils are assigned to this classroom for this activity.")}}),[at,it,t,x.setCurrentFossil]);var ot=A.S.useQuery(["classroom.getFossils",{classroomId:x.currentClass||"",fossilType:t}],{enabled:!!x.currentClass,onError:function(e){console.error("Failed to load fossils:",e),nt("Failed to load fossils. Please try again.")},onSuccess:function(e){G(e)}}).isLoading,ct=A.S.useMutation(["classroom.getFossil"],{onSuccess:function(e){if(void 0!=e){var t=e.fossilData;W(t),nt(null),h(t,de),Ae((function(t){var n,a;return(0,r.Z)((0,i.Z)({},t),{correctFossilName:"".concat(null===(n=e.fossilData)||void 0===n?void 0:n.genus," ").concat(null===(a=e.fossilData)||void 0===a?void 0:a.species).trim()})}))}},onError:function(e){console.error("Failed to load fossil:",e),nt(e.message||"Failed to load fossil. Return to the Database and try again.")}}),lt=ct.mutate;(0,l.useEffect)((function(){O(x.currentFossil)&&t&&lt({fossilId:x.currentFossil,fossilType:t})}),[x.currentFossil,t]);var ut=null!==(ut=A.S.useQuery(["classroom.getFossils",{classroomId:x.currentClass||"",fossilType:t,genus:null===B||void 0===B?void 0:B.genus}],{enabled:!!(null===B||void 0===B?void 0:B.id)&&!!x.currentClass,onError:function(e){console.error("Failed to load specimens:",e)},onSuccess:function(e){q(e)}}))?ut:(0,s.Z)(new TypeError("Cannot destructure undefined"));if((0,l.useEffect)((function(){var e;if(null===B||void 0===B||null===(e=B.imagePath)||void 0===e?void 0:e.trim()){var n=R(B.imagePath,t);if(n){Pe(n);var i=document.createElement("img");i.src=n,i.onload=function(){pe(i.width)},se(null===B||void 0===B?void 0:B.outlineCanvasHeight),le(null===B||void 0===B?void 0:B.outlineCanvasWidth)}}}),[t,B]),(0,l.useEffect)((function(){"ostracoda"===t&&(null===B||void 0===B?void 0:B.id)&&h(B,de)}),[B,de,Re,t]),(0,l.useEffect)((function(){switch(Le){case"outline":default:se(null===B||void 0===B?void 0:B.outlineCanvasHeight),le(null===B||void 0===B?void 0:B.outlineCanvasWidth);break;case"center_outline":se(null===B||void 0===B?void 0:B.centerOutlineCanvasHeight),le(null===B||void 0===B?void 0:B.centerOutlineCanvasWidth);break;case"last_chamber":se(null===B||void 0===B?void 0:B.largestChamberCanvasHeight),le(null===B||void 0===B?void 0:B.largestChamberCanvasWidth);break;case"aperture_area":se(null===B||void 0===B?void 0:B.apertureAreaCanvasHeight),le(null===B||void 0===B?void 0:B.apertureAreaCanvasWidth);break;case"max_length":se(null===B||void 0===B?void 0:B.majorAxisCanvasHeight),le(null===B||void 0===B?void 0:B.majorAxisCanvasWidth);break;case"max_height":se(null===B||void 0===B?void 0:B.minorAxisCanvasHeight),le(null===B||void 0===B?void 0:B.minorAxisCanvasWidth)}}),[Re]),(0,l.useEffect)((function(){if("morphotype"===t){var e=[];M.forEach((function(t,n){var i=t.name;e.push({morphotype:i,votes:0}),Object.keys(ge).forEach((function(i){ge[i].forEach((function(r){Array.isArray(t[i])?t[i].includes(r)&&(e[n].votes+=1):t[i]===r&&(e[n].votes+=1)}))}))})),e.sort((function(e,t){return t.votes-e.votes}));var n=[];e.forEach((function(e){var t=M.find((function(t){return t.name===e.morphotype}));n.push(t)})),ee(n)}else{var i=[];Y.forEach((function(e,t){var n="".concat(e.genus," ").concat(e.species).trim();i.push({fossilName:n,votes:0}
1),Object.keys(ge).forEach((function(n){ge[n].forEach((function(r){"variation"===n&&(r=r.toLowerCase()),Array.isArray(e[n])?e[n].includes(r)&&(i[t].votes+=1):e[n]===r&&(i[t].votes+=1)}))}))})),i.sort((function(e,t){return t.votes-e.votes}));var r=[];i.forEach((function(e){var t=Y.find((function(t){return"".concat(t.genus," ").concat(t.species).trim()===e.fossilName}));r.push(t)})),U(r)}}),[Re]),(0,l.useEffect)((function(){Ae("ostracoda"===t?{correctFossilName:"",variation:"",outlineTries:0,majorAxisTries:0,minorAxisTries:0,shape:[""],size:[""],ornamentation:[""],otherFeatures:[""],secondsElapsed:[],speciesTries:[],starRating:0}:{correctFossilName:"",variation:"",outlineTries:0,chamberTries:0,shellType:[""],shape:[""],chmberShape:[""],numberChambers:[""],chamberArrangement:[""],apertureLocation:[""],apertureShape:[""],secondsElapsed:[],speciesTries:[],starRating:0})}),[]),!x.currentClass)return(0,c.jsx)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"yellow",fontSize:"1.2rem"},children:"Please select a classroom to play this game."});if(tt)return(0,c.jsx)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"red",fontSize:"1.2rem"},children:tt});var dt=O(x.currentFossil)&&!(null===B||void 0===B?void 0:B.id);if(ot||it&&st||dt)return(0,c.jsx)("div",{style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",color:"white",fontSize:"1.2rem"},children:"Loading fossils..."});var pt=Ve||Ke,ht=parseInt(x.currentClass||"",10);return(0,c.jsxs)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[Number.isFinite(ht)&&ht>0&&(0,c.jsx)(k.Z,{activityKey:"".concat(t,"_identification"),classroomId:ht}),pt&&(0,c.jsxs)(Z.a,{opacity:.9,color:"rgba(0, 0, 0, 0.5)",zIndex:5,style:{overflow:"hidden"},children:["morphotype"===t?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(w.Z,{imgName:"https://storage.googleapis.com/"+Ce+"/foraminifera/".concat(null===B||void 0===B?void 0:B.imagePath),startOpen:!1,morphoImage:!0}),(0,c.jsx)(v.x,{style:{color:"white",position:"absolute",left:"25px",bottom:"20px",fontSize:"1.4rem",fontWeight:300},children:"Your Current Specimen"})]}):(0,c.jsxs)("div",{className:p().sidebar,children:[(0,c.jsx)("div",{className:p().observations,children:(0,c.jsx)(v.x,{children:"Observations"})}),(0,c.jsx)("div",{className:p().observation_list,children:Object.keys(ge).map((function(e){return ge[e].map((function(e){return""!==e&&"none of these"!==e.toLowerCase()?(0,c.jsx)("div",{className:p().observation,children:(0,c.jsx)(v.x,{children:e})},e):null}))}))})]}),Ve&&(0,c.jsx)("div",{className:"".concat(p().fossil_select_container," ").concat(p().fossil_select_container_spaced),children:(0,c.jsxs)("div",{className:p().inner_fossil_select_container,children:["morphotype"!==t&&K.map((function(e,n){return(0,c.jsx)(_,{FossilOptions:e,fossilType:t,selectedProperties:ge,fossilGuess:m,isFinalStep:!1},n)})),"morphotype"===t&&$.map((function(e,n){return(0,c.jsx)(_,{FossilOptions:Y[0],fossilType:t,selectedProperties:ge,fossilGuess:m,morphotype:e,isFinalStep:!1},n)}))]})}),Ke&&(0,c.jsx)("div",{className:"".concat(p().fossil_select_container," ").concat(p().fossil_select_container_spaced),children:(0,c.jsx)("div",{className:p().inner_fossil_select_container,children:"morphotype"!==t&&Q.map((function(e,n){return(0,c.jsx)(_,{FossilOptions:e,fossilType:t,selectedProperties:ge,fossilGuess:m,isFinalStep:!0},n)}))})})]}),(0,c.jsx)(E.u,{centered:!0,opened:be,onClose:function(){return Se(!1)},withCloseButton:!1,closeOnClickOutside:!1,children:(0,c.jsxs)("div",{className:p().final_modal,children:[(0,c.jsx)(S.E,{height:120,width:400,className:p().stars,src:"/icons/star"+ke.starRating+".svg"}),(0,c.jsx)("div",{className:p().final_feedback,children:Ne}),(0,c.jsxs)("div",{style:{display:"flex",width:"100%",padding:"20px 0"},children:[(0,c.jsx)(S.E,{src:function(){if("morphotype"===t){var e=M.find((function(e){return e.name===(null===B||void 0===B?void 0:B.morphotype)})),n=(null===e||void 0===e?void 0:e.image)||(null===B||void 0===B?void 0:B.morphoImage);return"https://storage.googleapis.com/"+Ce+"/morphotypeAnswers/"+n}var i;return null!==(i=R(null===B||void 0===B?void 0:B.imagePath,t))&&void 0!==i?i:(0,C.a9)("".concat((0,C.DE)(t),"/").concat(null===B||void 0===B?void 0:B.imagePath.replaceAll(" ","")))}()}),(0,c.jsx)("div",{className:p().funfact,children:"foraminifera"===t||"ostracoda"===t?"You identified "+((null===B||void 0===B?void 0:B.genus)+" "+(null===B||void 0===B?void 0:B.species)).trim()+"!":"You identified "+(null===B||void 0===B?void 0:B.morphotype)+"!"})]}),(0,c.jsx)(f.z,{className:p().database_button,radius:"xl",size:"md",onClick:function(){return g.push(function(){switch(t){case"foraminifera":return"/database?view=Foraminifera";case"ostracoda":return"/database?view=Ostracoda";case"morphotype":return"/database?view=Morphotypes";default:return"/database"}}())},children:"See Database"})]})}),(0,c.jsx)(y,{steps:n,updateStep:Je,viewFinishButton:Ge,helperText:Qe,step:Re,setStep:Me,evaluateFinishedSketch:function(){ze(!1),"outline"===Le||"center_outline"===Le||"last_chamber"===Le?j.current&&j.current.evaluateSketch():"aperture_area"===Le?j.current&&j.current.evaluateAreaPoint():Je()},finishDisabled:Xe&&!Ie,specimenPickerOpen:pt}),!Ve&&!Ke&&(0,c.jsx)(T.Z,{fossilFilePath:Ee,points:Ue,fossilData:B,originalCanvasHeight:ae,originalCanvasWidth:ce,sketchTab:Le,editMode:!1,updateStep:Je,incrementTries:function(e){var t=ke;switch(e){case"max_length":t.majorAxisTries+=1;break;case"max_height":t.minorAxisTries+=1;break;case"outline":t.outlineTries+=1;break;case"last_chamber":t.chamberTries+=1}Ae(t)},ref:j,rulerVisible:He,rulerWidth:me,rulerSize:ne,sketchHandler:function(e){var t;return ze(Array.isArray(e)&&e.length>0&&(null===(t=e[0])||void 0===t?void 0:t.length)>0)}}),(0,c.jsx)(b,{panelType:Ye,panelOptions:Be,multipleChoices:We,setSelected:function(e,t){if(e in ge){var n=ge;n[e]=t,xe(n)}e in ke&&Ae((function(n){var r=(0,i.Z)({},n);return r[e]=t,r}))},updateStep:Je,fossilType:t,fossilData:B})]})}},8760:function(e,t,n){var i=n(2322),r=n(2784);t.Z=function(e){var t=e.imgName,n=e.startOpen,a=e.morphoImage,s=(0,r.useState)(n),o=s[0],c=s[1];return(0,i.jsx)("img",{src:a?t:"/overlays/"+t,style:{position:"absolute",bottom:a?"50px":"25px",left:a?"25px":"auto",right:a?"auto":"25px",height:o?"70vh":"10vh",objectFit:"cover",zIndex:10,transitionDuration:"0.5s",cursor:o?"zoom-out":"zoom-in",border:"2px s
1olid #088585"},onClick:function(){return c(!o)}})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.