1"use strict";(self.webpackChunkranking=self.webpackChunkranking||[]).push([[9684],{4977(e,t,n){n.d(t,{A:()=>l});var r=n(9950);const i="LivingLines \u2013 KI-gest\xfctzte Mathe\xfcbungen f\xfcr Schulen",c="Handschriftlich rechnen, sofort Feedback bekommen. LivingLines ist die preisgekr\xf6nte Lernplattform f\xfcr adaptiven Mathematikunterricht \u2013 DSGVO-konform, mehrsprachig und direkt im Browser.";function o(e,t){let n=document.querySelector('meta[name="'.concat(e,'"]'));n||(n=document.createElement("meta"),n.setAttribute("name",e),document.head.appendChild(n)),n.setAttribute("content",t)}function a(e,t){let n=document.querySelector('meta[property="'.concat(e,'"]'));n||(n=document.createElement("meta"),n.setAttribute("property",e),document.head.appendChild(n)),n.setAttribute("content",t)}function s(e){let t=document.querySelector('link[rel="canonical"]');e?(t||(t=document.createElement("link"),t.setAttribute("rel","canonical"),document.head.appendChild(t)),t.setAttribute("href",e)):t&&t.remove()}function l(){let{title:e,description:t,canonical:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,r.useEffect)(()=>{const r=e||i,l=t||c;return document.title=r,o("title",r),o("description",l),a("og:title",r),a("og:description",l),n&&a("og:url",n),s(n||null),()=>{document.title=i,o("title",i),o("description",c),a("og:title",i),a("og:description",c),a("og:url","https://livinglines.app/"),s(null)}},[e,t,n])}},8678(e,t,n){n.d(t,{DB:()=>a,ER:()=>p,LE:()=>m,jJ:()=>d,my:()=>s,qM:()=>u,qq:()=>h,xi:()=>l});var r=n(9379),i=n(486),c=n(7901);async function o(e){let{method:t="GET",body:n,username:o,password:a,authenticated:s=!1,signal:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const d={"Content-Type":"application/json"};void 0!==o&&(d.Authorization="Basic ".concat(btoa("".concat(o,":").concat(a)))),s&&(d.Authorization="Bearer ".concat((0,c.$E)("token")||""));const u=await fetch("".concat((0,i.Qqt)().httpUrl).concat(e),(0,r.A)({method:t,headers:d,signal:l},void 0!==n?{body:JSON.stringify(n)}:{}));if(!u.ok){var h,m,p;const e=await u.json().catch(()=>({})),t="string"===typeof e.detail?e.detail:null===(h=e.detail)||void 0===h||null===(m=h[0])||void 0===m||null===(p=m.msg)||void 0===p?void 0:p.replace(/^Value error, /,"");throw new Error(t||"Speichern nicht m\xf6glich. Bitte die Verbindung pr\xfcfen und erneut versuchen.")}return u.json()}const a=e=>o("/pilot/enroll",{method:"POST",body:e}),s=e=>o("/pilot/fair-leads",{method:"POST",body:e}),l=e=>o("/pilot/access/".concat(encodeURIComponent(e))),d=e=>o("/pilot/access/".concat(encodeURIComponent(e),"/join"),{method:"POST",body:{},authenticated:!0}),u=(e,t,n,r)=>o("/admin/fair-leads?".concat(new URLSearchParams(n)),{username:e,password:t,signal:r}),h=(e,t,n,r)=>o("/admin/fair-leads/".concat(n),{username:e,password:t,method:"PATCH",body:r}),m=(e,t,n)=>o("/admin/fair-leads/".concat(n,"/invitation"),{username:e,password:t,method:"POST",body:{}});async function p(e,t,n){const r=await fetch("".concat((0,i.Qqt)().httpUrl,"/admin/fair-leads-export?").concat(new URLSearchParams(n)),{headers:{Authorization:"Basic ".concat(btoa("".concat(e,":").concat(t)))}});if(!r.ok)throw new Error("Export nicht m\xf6glich. Bitte die Filter eingrenzen und erneut versuchen.");const c=URL.createObjectURL(await r.blob()),o=document.createElement("a");o.href=c,o.download="livinglines-messekontakte.csv",o.click(),setTimeout(()=>URL.revokeObjectURL(c),1e3)}},9684(e,t,n){n.r(t),n.d(t,{default:()=>h});var r=n(9950),i=n(2994),c=n(6577),o=n(8678),a=n(486),s=n(7901),l=n(7506),d=n(4977),u=n(4414);function h(){const{token:e}=(0,i.g)(),t=(0,i.Zp)(),{currentUser:n,authReady:h,finalizeUserLogin:m}=(0,c.A)(),[p,f]=(0,r.useState)(null),[g,b]=(0,r.useState)(""),[v,k]=(0,r.useState)(!1),[j,y]=(0,r.useState)(!1),S=(0,r.useRef)(!1),w=(0,r.useRef)(null);(0,d.A)({title:"Ihr Schulzugang | LivingLines",description:"Als Lehrkraft f\xfcr Ihre Schule bei LivingLines anmelden oder registrieren."}),(0,r.useEffect)(()=>{let t=!0;return(0,s.ni)("pilot_access_return",JSON.stringify({path:"/pilot/zugang/".concat(e),created:Date.now()})),(0,o.xi)(e).then(e=>
1{t&&(f(e),(0,s.ni)("school_signup",JSON.stringify({school_id:e.school_id,name:e.school_name,state:e.state,school_type:e.school_type,role:"teacher"})),y(!0))}).catch(e=>{t&&b(e.message)}),()=>{t=!1,(0,s.fl)("school_signup")}},[e]),(0,r.useEffect)(()=>{h&&null===w.current&&(w.current=!n)},[h,n]);const L=async()=>{if(!S.current){S.current=!0,k(!0),b("");try{await(0,o.jJ)(e);const n=await(0,a.HWG)((0,s.$E)("token"));m(n),(0,s.fl)("pilot_access_return"),t("/teacher",{replace:!0})}catch(n){S.current=!1,k(!1),b(n.message)}}},x=(0,r.useRef)(L);return x.current=L,(0,r.useEffect)(()=>{j&&null!==n&&void 0!==n&&n.id&&["teacher","admin"].includes(null===n||void 0===n?void 0:n.role)&&w.current&&!S.current&&x.current()},[j,null===n||void 0===n?void 0:n.id,null===n||void 0===n?void 0:n.role]),(0,u.jsx)("main",{className:"pilot-school-access",children:(0,u.jsxs)("div",{className:"pilot-school-access-card",children:[(0,u.jsx)(i.N_,{className:"access-brand",to:"/",children:"LivingLines"}),p?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("p",{className:"access-eyebrow",children:"IHR SCHULZUGANG"}),(0,u.jsx)("h1",{children:p.school_name}),(0,u.jsx)("p",{children:"Als Lehrkraft anmelden oder ein eigenes Konto erstellen."}),"expired"===p.pilot_status&&(0,u.jsx)("p",{className:"access-expired",children:"Der bisherige Pilot ist beendet. Ihr Konto bleibt erreichbar. F\xfcr eine Verl\xe4ngerung sprechen Sie unser Team an."}),v?(0,u.jsx)("p",{role:"status",children:"Ihr Konto wird mit der Schule verbunden \u2026"}):n?["teacher","admin"].includes(n.role)?(0,u.jsx)("button",{className:"access-join",onClick:L,children:"Mit meinem Konto zur Schule"}):(0,u.jsx)("p",{children:"Dieser Zugang ist f\xfcr Lehrkr\xe4fte. Bitte mit einem Lehrkraft-Konto anmelden."}):j&&h&&(0,u.jsx)(l.A,{})]}):!g&&(0,u.jsx)("p",{role:"status",children:"Schulzugang wird geladen \u2026"}),g&&(0,u.jsx)("p",{className:"access-error",role:"alert",children:g}),(0,u.jsxs)("footer",{children:[(0,u.jsx)(i.N_,{to:"/info/datenschutz",children:"Datenschutz"}),(0,u.jsx)(i.N_,{to:"/impressum",children:"Impressum"})]})]})})}}}]);
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.