lookatstudy-mobile 0.14.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/install-termux.sh +41 -17
- package/package.json +1 -1
- package/server.cjs +45429 -10115
- package/web/assets/{abnfDiagram-N423BO3Z-DgtY7GDo.js → abnfDiagram-N423BO3Z-uVyZuC2D.js} +1 -1
- package/web/assets/api-web-BydHmVA4.js +1 -0
- package/web/assets/{arc-BFja7Mgl.js → arc-Bj7Boh6s.js} +1 -1
- package/web/assets/{architectureDiagram-T3A2C74G-DldSQeNu.js → architectureDiagram-T3A2C74G-CrbkXNQp.js} +1 -1
- package/web/assets/{blockDiagram-VBNYF7ZC-COFgyocp.js → blockDiagram-VBNYF7ZC-DAzIMkNI.js} +1 -1
- package/web/assets/{c4Diagram-5PPSVZJV-GmE0XgdV.js → c4Diagram-5PPSVZJV-NlYvtXbZ.js} +1 -1
- package/web/assets/channel-JNlIjRLZ.js +1 -0
- package/web/assets/{chunk-2GRJ4B5K-C-faEZaU.js → chunk-2GRJ4B5K-Cy2RZsUk.js} +1 -1
- package/web/assets/{chunk-2Q5K7J3B-BWgLp_F9.js → chunk-2Q5K7J3B-DtK3xo3Z.js} +1 -1
- package/web/assets/{chunk-5RXB4S5H-vHcAw0te.js → chunk-5RXB4S5H-CmVGejcd.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-BCDOzlTk.js → chunk-5VM5RSS4-EO_k0Crh.js} +1 -1
- package/web/assets/{chunk-6Q2QTUOP-Dursv_dJ.js → chunk-6Q2QTUOP-TBVy-R-c.js} +1 -1
- package/web/assets/{chunk-GF5L2VYU-D4V-7P-V.js → chunk-GF5L2VYU-_N0jD1tE.js} +1 -1
- package/web/assets/{chunk-JWPE2WC7-TwBqtNYu.js → chunk-JWPE2WC7-BIAuolFx.js} +1 -1
- package/web/assets/{chunk-KBJHAD2P-CBdoagw5.js → chunk-KBJHAD2P-DqcnXfI8.js} +1 -1
- package/web/assets/{chunk-RYQCIY6F-CvxRMinP.js → chunk-RYQCIY6F-D5RQKqlg.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-BpesQiqp.js → chunk-XXDRQBXY-1Ksx_dPa.js} +1 -1
- package/web/assets/classDiagram-JCYQIIEL-C-12RKGI.js +1 -0
- package/web/assets/classDiagram-v2-OCEON4UE-C-12RKGI.js +1 -0
- package/web/assets/{cose-bilkent-JH36ORCC-gCstzBiF.js → cose-bilkent-JH36ORCC-DAUofPwo.js} +1 -1
- package/web/assets/{cynefin-VYW2F7L2-eq0Le49d.js → cynefin-VYW2F7L2-CAYbjl57.js} +1 -1
- package/web/assets/{cynefinDiagram-MW4NZA55-xxlmYE_G.js → cynefinDiagram-MW4NZA55-UaEI49aN.js} +1 -1
- package/web/assets/{dagre-VZM6K2ZE-CWyDRsXC.js → dagre-VZM6K2ZE-CKP3kBHM.js} +1 -1
- package/web/assets/{diagram-7IWD3JNH-BD4KOl1t.js → diagram-7IWD3JNH-CLfr8NaW.js} +1 -1
- package/web/assets/{diagram-B4RE2ZJO-CXijC7V1.js → diagram-B4RE2ZJO-h051w7zn.js} +1 -1
- package/web/assets/{diagram-LBJQPF4R-DjfmPFKV.js → diagram-LBJQPF4R-CUOsO4df.js} +1 -1
- package/web/assets/{diagram-Q27KOJAE-DbvF3QXB.js → diagram-Q27KOJAE-BXbJxAlu.js} +1 -1
- package/web/assets/{diagram-UB23O5K3-Ctcq65GD.js → diagram-UB23O5K3-BHV6tpU9.js} +1 -1
- package/web/assets/{ebnfDiagram-BXEA7PRR-DCYFsDbf.js → ebnfDiagram-BXEA7PRR-CAahAB9-.js} +1 -1
- package/web/assets/{erDiagram-JOGREHBK-CQewgYqy.js → erDiagram-JOGREHBK-Bz30kI2B.js} +1 -1
- package/web/assets/{flowDiagram-UKHOOZJN-lB12og4l.js → flowDiagram-UKHOOZJN-CsFP_-KD.js} +1 -1
- package/web/assets/{ganttDiagram-PKOTCBZU-D7qHLjvT.js → ganttDiagram-PKOTCBZU-Cm5qe_5U.js} +1 -1
- package/web/assets/{gitGraphDiagram-DS77QQ5N-DawhnSu7.js → gitGraphDiagram-DS77QQ5N-DNktj2Kq.js} +1 -1
- package/web/assets/index-BC_sP79K.js +563 -0
- package/web/assets/index-BSTI-ywB.css +1 -0
- package/web/assets/{infoDiagram-6WML65LV-C4YDlp9J.js → infoDiagram-6WML65LV-vZK5e7Xx.js} +1 -1
- package/web/assets/{ishikawaDiagram-WSZJBQD7-qHmIFIFS.js → ishikawaDiagram-WSZJBQD7-Bt6EfUkc.js} +1 -1
- package/web/assets/{journeyDiagram-NVQOT4AX-BgXFOkh4.js → journeyDiagram-NVQOT4AX-DmVq_JOG.js} +1 -1
- package/web/assets/{kanban-definition-27J2QSJJ-Cb_2GmBW.js → kanban-definition-27J2QSJJ-tE00W58E.js} +1 -1
- package/web/assets/{linear-C6JxbU0K.js → linear-CAqnKu9J.js} +1 -1
- package/web/assets/{mermaid.core-BD6oeZlV.js → mermaid.core-uJSxER2x.js} +4 -4
- package/web/assets/{mindmap-definition-FAOFIHXS-BxBTsWEo.js → mindmap-definition-FAOFIHXS-D5S_P9_s.js} +1 -1
- package/web/assets/{pegDiagram-VL7TDLO6-BBAVQiSc.js → pegDiagram-VL7TDLO6-BZkaiQ_9.js} +1 -1
- package/web/assets/{pieDiagram-7S7Q4E2Y-CAPgb23U.js → pieDiagram-7S7Q4E2Y-DYpiHnao.js} +1 -1
- package/web/assets/{quadrantDiagram-CIZ2JOQS-j1RV2NlH.js → quadrantDiagram-CIZ2JOQS-BqycGz7D.js} +1 -1
- package/web/assets/{railroadDiagram-AXF67PYL-BDs1LoGd.js → railroadDiagram-AXF67PYL-DEoY1V9D.js} +1 -1
- package/web/assets/{requirementDiagram-LRYGKXZP-DDwz3C7i.js → requirementDiagram-LRYGKXZP-CH-xotLo.js} +1 -1
- package/web/assets/{sankeyDiagram-W5VNT64P-CT4bV-jV.js → sankeyDiagram-W5VNT64P-BCLFObl1.js} +1 -1
- package/web/assets/{sequenceDiagram-SI44F4Z6-yQc563EG.js → sequenceDiagram-SI44F4Z6-CE1T-Oar.js} +1 -1
- package/web/assets/{sizeCapture-X5ZJPWSS-BY_Fo4Vk.js → sizeCapture-X5ZJPWSS-uf4-mQAU.js} +1 -1
- package/web/assets/{stateDiagram-OKZ733FA-BprQJdqp.js → stateDiagram-OKZ733FA-Dt2wQF9A.js} +1 -1
- package/web/assets/stateDiagram-v2-UEYNNEHI-BbJD6fMT.js +1 -0
- package/web/assets/{swimlanes-SLNWSIFB-Cw1Bh8uO.js → swimlanes-SLNWSIFB-jLXDXtjZ.js} +2 -2
- package/web/assets/swimlanesDiagram-ULZ7WXOC-BTdV0I38.js +8 -0
- package/web/assets/{timeline-definition-Z64GVDOM-D-3MRDsn.js → timeline-definition-Z64GVDOM-CPajwTED.js} +1 -1
- package/web/assets/{vennDiagram-T6HMQDX7-D6GEH7ZD.js → vennDiagram-T6HMQDX7-DKkB137-.js} +1 -1
- package/web/assets/{wardleyDiagram-T6FBY63Y-C-6u22Ga.js → wardleyDiagram-T6FBY63Y-CHD6tq1V.js} +1 -1
- package/web/assets/{xychartDiagram-ELKLHX3M-DhJCg-k0.js → xychartDiagram-ELKLHX3M-DIO9Q6BD.js} +1 -1
- package/web/index.html +2 -2
- package/web/assets/api-web-CfrRrKkd.js +0 -1
- package/web/assets/channel-iM9iC2OH.js +0 -1
- package/web/assets/classDiagram-JCYQIIEL-Cm2EHo2w.js +0 -1
- package/web/assets/classDiagram-v2-OCEON4UE-Cm2EHo2w.js +0 -1
- package/web/assets/index-CPlDOqRv.js +0 -563
- package/web/assets/index-CUlT9__2.css +0 -1
- package/web/assets/stateDiagram-v2-UEYNNEHI-AF2jxans.js +0 -1
- package/web/assets/swimlanesDiagram-ULZ7WXOC-DtBbpGaG.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-TBVy-R-c.js";import{p as f}from"./chunk-JWPE2WC7-BIAuolFx.js";import{_ as n,l as o}from"./mermaid.core-uJSxER2x.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-CAYbjl57.js";import"./index-BC_sP79K.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var f=Object.defineProperty;var P=(s,e,t)=>e in s?f(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var g=(s,e,t)=>P(s,typeof e!="symbol"?e+"":e,t);const S={listCourses:"course:list",getCourseTree:"course:getTree",importCourseFromRepo:"course:importFromRepo",detectLanguages:"course:detectLanguages",getCourseLanguages:"course:getLanguages",setCourseLanguage:"course:setLanguage",getCourseLanguage:"course:getLanguage",analyzeRepo:"course:analyzeRepo",importAnalyzed:"course:importAnalyzed",importLocalFolder:"import:localFolder",importGithub:"import:github",importUrl:"import:url",importText:"import:text",importEpub:"import:epub",importAudio:"import:audio",importCancel:"import:cancel",importResume:"import:resume",importPack:"import:importPack",exportPack:"import:exportPack",generateCourseFromMarkdown:"course:generateFromMarkdown",deleteCourse:"course:delete",restructureCourse:"course:restructure",generateSummaries:"course:generateSummaries",getStarterPrompts:"course:getStarterPrompts",getNodeContent:"course:getNodeContent",getNodeSummary:"course:getNodeSummary",getPracticeForLesson:"course:getPracticeForLesson",getLessonForPractice:"course:getLessonForPractice",listAssetsByNode:"asset:listByNode",listAssetsByCourse:"asset:listByCourse",getAssetDataUrl:"asset:getDataUrl",getProgress:"progress:get",updateProgress:"progress:update",markNodeAttempted:"progress:markAttempted",generateExercise:"exercise:generate",listExercises:"exercise:list",submitExerciseAnswer:"exercise:submit",examPrepare:"exam:prepare",examRegenerate:"exam:regenerate",examGetStatus:"exam:getStatus",examStartAttempt:"exam:startAttempt",examRecordAnswer:"exam:recordAnswer",examSubmitAttempt:"exam:submitAttempt",getDueReviews:"srs:getDue",getAllSrsItems:"srs:getAll",recordReview:"srs:record",getStreak:"streak:get",touchStreakToday:"streak:touchToday",listSouls:"soul:list",getSoul:"soul:get",createSoul:"soul:create",setActiveSoul:"soul:setActive",getActiveSoul:"soul:getActive",agentChat:"agent:chat",abortAgentChat:"agent:abort",getChatHistory:"agent:getHistory",clearChatHistory:"agent:clearHistory",agentChatThread:"agent:chatThread",abortAgentChatThread:"agent:abortThread",getContextUsage:"agent:getContextUsage",getSpeechModelStatus:"speech:getModelStatus",ensureSpeechModel:"speech:ensureModel",deleteSpeechModel:"speech:deleteModel",ttsSpeak:"speech:ttsSpeak",ttsStop:"speech:ttsStop",asrTranscribe:"speech:asrTranscribe",testCustomTts:"speech:testCustomTts",testCustomAsr:"speech:testCustomAsr",getAttachmentDataUrl:"attachment:getDataUrl",isAgentReady:"agent:isReady",getProviderPresets:"agent:getProviderPresets",testLlmConnection:"agent:testConnection",testCustomProvider:"agent:testCustomProvider",discoverModels:"agent:discoverModels",discoverProviderModels:"agent:discoverProviderModels",listCustomProviders:"customProvider:list",createCustomProvider:"customProvider:create",updateCustomProvider:"customProvider:update",deleteCustomProvider:"customProvider:delete",listPendingProposals:"proposal:listPending",applyProposal:"proposal:apply",rejectProposal:"proposal:reject",recordQuizAnswer:"quiz:recordAnswer",logFriction:"friction:log",getDashboard:"dashboard:get",searchContent:"search:content",updateMemory:"memory:update",getMemory:"memory:get",consolidateMemory:"consolidate:run",getSetting:"settings:get",setSetting:"settings:set",getXpStatus:"xp:getStatus",exportCourse:"course:export",canvasList:"canvas:list",canvasSave:"canvas:save",canvasDelete:"canvas:delete",canvasTogglePin:"canvas:togglePin",canvasSaveUserNote:"canvas:saveUserNote",canvasRecordQuizResult:"canvas:recordQuizResult",canvasUpdateUserNoteComment:"canvas:updateUserNoteComment",threadList:"thread:list",threadCreate:"thread:create",threadUpdate:"thread:update",threadDelete:"thread:delete",threadGetMessages:"thread:getMessages",threadFindRecentByNode:"thread:findRecentByNode"},h=1,m="ls-serve-token";function y(){const s=new URLSearchParams(window.location.search).get("token");if(s){try{window.localStorage.setItem(m,s)}catch{}return s}try{return window.localStorage.getItem(m)??""}catch{return""}}class p{constructor(){g(this,"ws",null);g(this,"everOpened",!1);g(this,"pending",new Map);g(this,"listeners",new Map);g(this,"connectPromise",null)}connect(){return this.ws&&this.ws.readyState===WebSocket.OPEN?Promise.resolve(this.ws):this.connectPromise?this.connectPromise:(this.connectPromise=new Promise((e,t)=>{const c=window.location.protocol==="https:"?"wss:":"ws:",o=y(),a=`${c}//${window.location.host}/?token=${encodeURIComponent(o)}`;let i=!1;const d=new WebSocket(a);this.ws=d;const l=window.setTimeout(()=>{i||(i=!0,this.connectPromise=null,t(new Error("连接学习服务超时(serve 未启动?)")))},5e3);d.addEventListener("open",()=>{this.everOpened=!0,window.clearTimeout(l),i||(i=!0,this.connectPromise=null,e(d))}),d.addEventListener("message",u=>{let r=null;try{r=JSON.parse(String(u.data))}catch{return}if(!(!r||r.v!==h)){if(r.type==="res"){const n=this.pending.get(r.id);if(!n)return;this.pending.delete(r.id),window.clearTimeout(n.timer),r.ok?n.resolve(r.result):n.reject(new Error(r.error))}else if(r.type==="event"){const n=this.listeners.get(r.channel);if(n)for(const v of n)v(...r.args)}}}),d.addEventListener("close",u=>{if(this.connectPromise=null,this.ws===d&&(this.ws=null),!i){i=!0,window.clearTimeout(l),t(new Error(A(u)));return}const r=u.code===4001?"学习服务拒绝了连接(token 无效)——请用启动时打印的带 token 链接打开":"与服务端的连接已断开";for(const[,n]of this.pending)window.clearTimeout(n.timer),n.reject(new Error(r));if(u.code===4001&&(this.everOpened=!1),this.pending.clear(),u.code===4001){window.dispatchEvent(new CustomEvent(C));return}this.everOpened&&window.setTimeout(()=>void this.connect().catch(()=>{}),2e3)}),d.addEventListener("error",()=>{})}),this.connectPromise)}static bytesToB64(e){const t=new Uint8Array(e);let c="";const o=32768;for(let a=0;a<t.length;a+=o)c+=String.fromCharCode(...t.subarray(a,a+o));return btoa(c)}async invoke(e,...t){var a,i;const c=await this.connect(),o=((i=(a=globalThis.crypto)==null?void 0:a.randomUUID)==null?void 0:i.call(a))??String(Math.random()).slice(2);return new Promise((d,l)=>{const u=window.setTimeout(()=>{this.pending.delete(o),l(new Error(`调用 ${e} 超时`))},3e5);this.pending.set(o,{resolve:d,reject:l,timer:u});const r=e==="speech:asrTranscribe"&&t[0]instanceof ArrayBuffer?[p.bytesToB64(t[0]),...t.slice(1)]:t;c.send(JSON.stringify({v:h,type:"req",id:o,channel:e,args:r}))})}on(e,t){const c=e==="speech:ttsAudio"?(...a)=>{const i=a[0];if(i&&typeof i.wavBase64=="string"){const d=atob(i.wavBase64),l=new Uint8Array(d.length);for(let n=0;n<d.length;n++)l[n]=d.charCodeAt(n);const{wavBase64:u,...r}=i;t({...r,wavBytes:l.buffer})}else t(...a)}:t;let o=this.listeners.get(e);return o||(o=new Set,this.listeners.set(e,o)),o.add(c),this.connect().catch(()=>{}),()=>{o.delete(c)}}}function T(){if(typeof window>"u")return!1;if(new URLSearchParams(window.location.search).get("token"))return!0;try{return!!window.localStorage.getItem(m)}catch{return!1}}function k(s){try{window.localStorage.setItem(m,s)}catch{}const e=new URL(window.location.href);e.searchParams.set("token",s),window.location.replace(e.toString())}const C="ls-web-token-rejected";function A(s){return s.code===4001?"学习服务拒绝了连接(token 无效)——请用启动时打印的带 token 链接打开":"无法连接学习服务(serve 未启动?)"}let w=!1;async function x(){if(w||window.api)return;w=!0;const s=new p,e={};for(const[t,c]of Object.entries(S))e[t]=(...o)=>s.invoke(c,...o);e.on=(t,c)=>s.on(t,c),window.api=e}function E(){return new p}export{C as TOKEN_REJECTED_EVENT,E as createWebTransportForTest,T as hasWebToken,x as installWebApi,k as setWebToken};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-uJSxER2x.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|