@fgbg/mdocs 1.1.0 → 1.1.2
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/agent-skills/changelog/SKILL.md +18 -0
- package/dist/server/routes/assets.routes.js +9 -4
- package/dist/server/routes/assets.routes.js.map +1 -1
- package/dist/server/routes/assets.routes.upload.test.js +1 -0
- package/dist/server/routes/assets.routes.upload.test.js.map +1 -1
- package/dist/web/assets/{AgentChatPanel-C8TMWDuE.js → AgentChatPanel-Bt38gm3b.js} +2 -2
- package/dist/web/assets/{AgentSkillFormCard-yk7PWF0W.js → AgentSkillFormCard-CtfWIf7Y.js} +1 -1
- package/dist/web/assets/AiWriteWorkbench-Boie5E_-.js +7 -0
- package/dist/web/assets/{DiagramEditor-NtNY3sZL-Bw4wHaBD.js → DiagramEditor-NtNY3sZL-CZy-tmEe.js} +1 -1
- package/dist/web/assets/DocumentEditor-1A6lpvV-.js +26 -0
- package/dist/web/assets/{MergeView-royv5YkB.js → MergeView-Dip0aW7s.js} +1 -1
- package/dist/web/assets/PlaygroundPage-C4X6Lj-Q.js +8 -0
- package/dist/web/assets/{SettingsPage-D8HfepZ8.js → SettingsPage-nlnmzNZK.js} +1 -1
- package/dist/web/assets/{Toolbar-BDJ6WABq.js → Toolbar-BHLX-ug4.js} +2 -2
- package/dist/web/assets/{VisitorPickerModal-DPKIoySi.js → VisitorPickerModal-BPyEWlQo.js} +1 -1
- package/dist/web/assets/{copy-UwfRYkpI.js → copy-BE64wQqi.js} +1 -1
- package/dist/web/assets/diagram-CT58wBdU.js +5772 -0
- package/dist/web/assets/{editor-ONzd_YnO.js → editor-CL03se2B.js} +1 -1
- package/dist/web/assets/{index-4TuRcE3b.js → index-BkKvQv2F.js} +24 -24
- package/dist/web/assets/index-DKshvHIN.css +1 -0
- package/dist/web/assets/{meta2d-D3b5RRN8.js → meta2d-1-g23JOU.js} +1 -1
- package/dist/web/assets/{meta2dEngine-BD2XbzaV-D1J2-XNv.js → meta2dEngine-BD2XbzaV-z-eR7E_V.js} +1 -1
- package/dist/web/assets/{motion-DddvD-ez.js → motion-DX3HNq_4.js} +2 -2
- package/dist/web/assets/{plus-CiGwts52.js → plus-ECzYbQfA.js} +1 -1
- package/dist/web/assets/react-GP8hKHRA.js +2122 -0
- package/dist/web/assets/react-vendor-BuABiQkA.js +242 -0
- package/dist/web/assets/ui-BQStT3dY.js +3116 -0
- package/dist/web/index.html +6 -6
- package/package.json +2 -2
- package/dist/web/assets/AiWriteWorkbench-ChCJt24m.js +0 -7
- package/dist/web/assets/DocumentEditor-B3Dsq02C.js +0 -26
- package/dist/web/assets/PlaygroundPage-B-_1l4Ix.js +0 -8
- package/dist/web/assets/diagram--gCCJK__.js +0 -6257
- package/dist/web/assets/index-C4ESYs7f.css +0 -1
- package/dist/web/assets/react-B99eF5mm.js +0 -2377
- package/dist/web/assets/react-vendor-BJFXgntS.js +0 -242
- package/dist/web/assets/ui-BHvBMRFE.js +0 -3126
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DocumentEditor-
|
|
2
|
-
var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var jt=(e,n,r)=>ua(e,typeof n!="symbol"?n+"":n,r);import{r as _,j as f,R as Ko,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DocumentEditor-1A6lpvV-.js","assets/react-vendor-BuABiQkA.js","assets/ui-BQStT3dY.js","assets/motion-DX3HNq_4.js","assets/react-GP8hKHRA.js","assets/editor-CL03se2B.js","assets/diagram-CT58wBdU.js","assets/plus-ECzYbQfA.js","assets/copy-BE64wQqi.js","assets/Toolbar-BHLX-ug4.js","assets/VisitorPickerModal-BPyEWlQo.js","assets/SettingsPage-nlnmzNZK.js","assets/AgentChatPanel-Bt38gm3b.js","assets/AgentSkillFormCard-CtfWIf7Y.js","assets/AiWriteWorkbench-Boie5E_-.js","assets/MergeView-Dip0aW7s.js","assets/PlaygroundPage-C4X6Lj-Q.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var jt=(e,n,r)=>ua(e,typeof n!="symbol"?n+"":n,r);import{r as _,j as f,R as Ko,B as fa,_ as zt,a8 as ma,a9 as ha,aa as pa,ab as zn,c as ga,ac as ya}from"./react-vendor-BuABiQkA.js";import{a5 as va,a6 as ba}from"./ui-BQStT3dY.js";import{d as xa,s as tr,p as _a,t as wa,a as ka,q as Ca,o as Ia,b as Sa,c as Da,e as ot,f as Pa,g as Na,y as Ta,m as Hr,h as Vr}from"./diagram-CT58wBdU.js";import{f as Aa}from"./motion-DX3HNq_4.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))o(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&o(s)}).observe(document,{childList:!0,subtree:!0});function r(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(i){if(i.ep)return;i.ep=!0;const a=r(i);fetch(i.href,a)}})();/**
|
|
3
3
|
* @license lucide-react v0.562.0 - ISC
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the ISC license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/const Ma=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ea=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,r,o)=>o?o.toUpperCase():r.toLowerCase()),
|
|
7
|
+
*/const Ma=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ea=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,r,o)=>o?o.toUpperCase():r.toLowerCase()),Gr=e=>{const n=Ea(e);return n.charAt(0).toUpperCase()+n.slice(1)},Jo=(...e)=>e.filter((n,r,o)=>!!n&&n.trim()!==""&&o.indexOf(n)===r).join(" ").trim(),ja=e=>{for(const n in e)if(n.startsWith("aria-")||n==="role"||n==="title")return!0};/**
|
|
8
8
|
* @license lucide-react v0.562.0 - ISC
|
|
9
9
|
*
|
|
10
10
|
* This source code is licensed under the ISC license.
|
|
@@ -19,7 +19,7 @@ var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,config
|
|
|
19
19
|
*
|
|
20
20
|
* This source code is licensed under the ISC license.
|
|
21
21
|
* See the LICENSE file in the root directory of this source tree.
|
|
22
|
-
*/const Re=(e,n)=>{const r=_.forwardRef(({className:o,...i},a)=>_.createElement(Ra,{ref:a,iconNode:n,className:Jo(`lucide-${Ma(
|
|
22
|
+
*/const Re=(e,n)=>{const r=_.forwardRef(({className:o,...i},a)=>_.createElement(Ra,{ref:a,iconNode:n,className:Jo(`lucide-${Ma(Gr(e))}`,`lucide-${e}`,o),...i}));return r.displayName=Gr(e),r};/**
|
|
23
23
|
* @license lucide-react v0.562.0 - ISC
|
|
24
24
|
*
|
|
25
25
|
* This source code is licensed under the ISC license.
|
|
@@ -29,12 +29,12 @@ var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,config
|
|
|
29
29
|
*
|
|
30
30
|
* This source code is licensed under the ISC license.
|
|
31
31
|
* See the LICENSE file in the root directory of this source tree.
|
|
32
|
-
*/const za=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],
|
|
32
|
+
*/const za=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Wr=Re("file",za);/**
|
|
33
33
|
* @license lucide-react v0.562.0 - ISC
|
|
34
34
|
*
|
|
35
35
|
* This source code is licensed under the ISC license.
|
|
36
36
|
* See the LICENSE file in the root directory of this source tree.
|
|
37
|
-
*/const $a=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],
|
|
37
|
+
*/const $a=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],qr=Re("folder",$a);/**
|
|
38
38
|
* @license lucide-react v0.562.0 - ISC
|
|
39
39
|
*
|
|
40
40
|
* This source code is licensed under the ISC license.
|
|
@@ -54,17 +54,17 @@ var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,config
|
|
|
54
54
|
*
|
|
55
55
|
* This source code is licensed under the ISC license.
|
|
56
56
|
* See the LICENSE file in the root directory of this source tree.
|
|
57
|
-
*/const Wa=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],
|
|
57
|
+
*/const Wa=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],yr=Re("network",Wa);/**
|
|
58
58
|
* @license lucide-react v0.562.0 - ISC
|
|
59
59
|
*
|
|
60
60
|
* This source code is licensed under the ISC license.
|
|
61
61
|
* See the LICENSE file in the root directory of this source tree.
|
|
62
|
-
*/const qa=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],
|
|
62
|
+
*/const qa=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],Yr=Re("panel-left-close",qa);/**
|
|
63
63
|
* @license lucide-react v0.562.0 - ISC
|
|
64
64
|
*
|
|
65
65
|
* This source code is licensed under the ISC license.
|
|
66
66
|
* See the LICENSE file in the root directory of this source tree.
|
|
67
|
-
*/const Ya=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],
|
|
67
|
+
*/const Ya=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],Kr=Re("panel-left-open",Ya);/**
|
|
68
68
|
* @license lucide-react v0.562.0 - ISC
|
|
69
69
|
*
|
|
70
70
|
* This source code is licensed under the ISC license.
|
|
@@ -86,12 +86,12 @@ var da=Object.defineProperty;var ua=(e,n,r)=>n in e?da(e,n,{enumerable:!0,config
|
|
|
86
86
|
* See the LICENSE file in the root directory of this source tree.
|
|
87
87
|
*/const es=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Xo=Re("zap",es),ts={loading:"loading...",saved:"Saved",saving:"Saving...",unsaved:"Editing...",publish:"Publish",publishing:"Publishing...",published:"Published",cancel:"Cancel",create:"Create",creating:"Creating...",close:"Close",delete:"Delete",save:"Save",gotIt:"got it",error:"error",brand:"mdocs",welcomeTitle:"Welcome to mdocs",welcomeDesc:"Enter a display name to create a visitor identity. A secure token will be stored in this browser to identify you on future visits.",visitorNamePlaceholder:"Your name",createVisitor:"Create visitor",nameRequired:"please enter a name",visitorIdNotice:"your visitor id is {{id}}, save it for recovery",newDocument:"New document",newFolder:"New folder",noDocumentsYet:"no documents yet",collapseFolder:"Collapse folder",expandFolder:"Expand folder",noDocsInDomain:"No documents in this domain yet. Switch domain below or create a document.",createDocToStart:"Create or select a document to start writing.",domainLabel:"Domain",defaultDomain:"Default",displayNamePlaceholder:"Display name",currentDomainAria:"Current domain",insertDiagram:"Insert diagram",outlineHide:"Hide outline",outlineShow:"Show outline",readOnlyNotice:`> You don't have permission to edit
|
|
88
88
|
|
|
89
|
-
`,newDocumentTitle:"New document",newFolderTitle:"New folder",fileNameLabel:"File name",folderNameLabel:"Folder name",fileNameHint:"Names are shown as you type; stored paths are normalised (e.g. spaces → underscores). Use a .md file name.",folderNameHint:"Names are shown as you type; stored paths are normalised (e.g. folder 1 → folder_1).",untitledPlaceholder:"untitled.md",folderExamplePlaceholder:"e.g. research",pathExists:"this path already exists; pick another name",folderExists:"a folder with this name already exists",deleteConfirm:"delete {{name}}?",newDocIn:"New document in {{name}}",newDocAtRoot:"New document at root",newDocBeside:"New document beside this",newFolderIn:"New folder in {{name}}",newFolderAtRoot:"New folder at root",newFolderBeside:"New folder beside this",deleteItem:"Delete {{name}}",deleteFolder:"Delete {{name}}",editDiagram:"Edit diagram",newDiagram:"New diagram",saveAndInsert:"Save and insert",deleteDiagram:"Delete diagram",openFailed:"open failed: {{message}}",components:"Components",dragToCanvas:"drag to canvas",shapeRectangle:"Rectangle",shapeRounded:"Rounded",shapeCircle:"Circle",shapeDiamond:"Diamond",shapeTriangle:"Triangle",shapePentagon:"Pentagon",shapeText:"Text",shapeLine:"Line",shapeData:"Data",shapeDatabase:"Database",shapeDocument:"Document",shapeDisplay:"Display",shapeManual:"Manual",shapeParallel:"Parallel",shapeComment:"Comment",shapeSubprocess:"Subprocess",shapeQueue:"Queue",shapeIntStorage:"Int. Storage",shapeExtStorage:"Ext. Storage",errUnauthenticated:"Please register first",errBadRequest:"Invalid request",errInvalidVisitorName:"Invalid visitor name",errDocExists:"Document already exists",errDocNotFound:"Document not found",errForbidden:"You don't have permission",errInternal:"Internal error",errInvalidPath:"Invalid path",errUnknown:"Unknown error",errUnknownVisitorIds:"Some visitor IDs are invalid or disabled.",errTemplateNotFound:"Member template not found.",errDomainNotRestricted:"Member import only applies to restricted domains.",pathRequired:"relative path is required",pathMustBeRelative:"path must be relative",useForwardSlashes:"use forward slashes",pathNoDotDot:"path must not contain ..",pathMustEndWithMd:"document path must end with .md",pathUnsupportedChars:"path contains unsupported characters",pathEscapesRoot:"path escapes docs root",enterFolderName:"enter a folder name",singleNameNotPath:"use a single name, not a path",invalidFolderName:"invalid folder name",folderNameTooLong:"folder name is too long",enterFileName:"enter a file name",singleFileNameNotPath:"use a file name, not a path",invalidFileName:"invalid file name",fileNameTooLong:"file name is too long",permissionLabel:"Permission",permissionPrivate:"Private",permissionInvite:"Invite",permissionDomainWrite:"Domain write",permissionPublicRead:"Public read",permissionPublicEdit:"Public edit",invitePermissionRead:"Read only",invitePermissionEdit:"Can edit",personalDomainSuffix:"'s workspace",settings:"Settings",general:"General",language:"Language",backToDocs:"Back to documents",saveAndPublish:"Save & Publish",domainManagement:"Domain Management",createDomain:"New domain",domainName:"Domain Name",domainPermission:"Permission",domainPublic:"Public",domainRestricted:"Restricted",domainPrivate:"Private",docCount:"{{count}} documents",rename:"Rename",deleteDomain:"Delete Domain",deleteDomainConfirm:"Delete domain {{name}}?",domainLocked:"Has documents, locked",noDomains:"No domains",domainNameRequired:"Enter a domain name",domainBuiltIn:"Built-in",domainNotCreator:"Only the creator can modify this domain",domainSearchPlaceholder:"Search domain name…",domainFilterAll:"All",domainColName:"Name",domainColType:"Type",domainColDocCount:"Documents",domainColActions:"Actions",domainTypeBuiltinSuffix:"(built-in)",domainChangeType:"Change type",domainNotModifiable:"—",domainTooltipTypeLocked:"This domain has {{count}} document(s); type cannot be changed.",deleteDomainConfirmDetail:"Delete domain «{{name}}»? All {{count}} document(s) in it will be permanently removed.",domainNoMatch:"No matching domains.",memberTemplates:"Member templates",memberTemplateFormNew:"New template",memberTemplateSavedList:"Saved templates",memberTemplateIntro:"Save reusable member lists for restricted domains. Use Choose members… to pick people (left list = everyone, right = selected). You can also apply a template inside that dialog. Then save the template here.",memberTemplateStepName:"1. Name your template",memberTemplateStepMembers:"2. Choose members",memberTemplateStepSave:"3. Save",memberTemplateStep2Hint:"Select at least 1 member to continue",memberTemplateNameLabel:"Template name",memberTemplateNamePlaceholder:"e.g. Core team",memberTemplateIdsLabel:"Members",memberTemplateIdsHint:"Use Choose members… to pick people in the list; you can also apply a template inside that dialog.",memberTemplateCreate:"Save template",memberTemplateUpdate:"Update template",memberTemplateCancelEdit:"Cancel edit",memberTemplateDelete:"Delete",memberTemplateDeleteConfirm:"Delete template «{{name}}»?",memberTemplateConfirmDeleteCancel:"Cancel",memberTemplateConfirmDeleteDesc:"Delete template «{{name}}»? This cannot be undone.",memberTemplateConfirmDeleteSubmit:"Delete",memberTemplateEmpty:"No templates yet. Create one here, then use Members… on a restricted domain in Domain management.",memberTemplateEmptyAction:"Create first template",memberTemplateCount:"{{count}} visitors",memberTemplatePickerTitle:"Choose visitors for this template",memberTemplatePickMembersButton:"Choose members…",memberTemplateSelectedSummary:"{{count}} selected",memberTemplateWizardBack:"Back",memberTemplateWizardNext:"Next",domainMembersManageButton:"Members…",domainMembersPickerTitle:"Restricted domain members",domainMembersSaved:"Saved {{count}} member(s).",visitorPickerSearchPlaceholder:"Search by name or visitor id…",visitorPickerColumnAll:"Everyone",visitorPickerColumnSelected:"Selected",visitorPickerApplyTemplate:"Apply template",visitorPickerPickTemplate:"Pick a template…",visitorPickerConfirm:"Done",visitorPickerLoadError:"Could not load visitor list.",visitorPickerEmptyDirectory:"No visitors yet.",visitorPickerNoSelection:"No one selected yet.",visitorPickerColIdShort:"ID (6)",visitorPickerColName:"Name",visitorPickerColPick:"Pick",visitorPickerColIdFull:"Visitor ID",visitorPickerRemove:"Remove from selection",visitorPickerLockedHint:"This member cannot be removed (domain owner).",visitorPickerUnknownVisitor:"Unknown ID (not in directory)",visitorPickerMemberMissing:"Removed visitor (no longer in database)",visitorPickerDisabledTag:"inactive account",visitorPickerSelfMarker:"(you)",domainMemberImportPickTemplate:"Choose template…",domainMemberImportSection:"Members (from saved template)",domainMgmtRestrictedMemberHint:"For restricted domains you own: click Members… in the Actions column, then pick people in the dialog (or apply a saved template). The domain owner always stays in the list.",domainMemberImportApply:"Import members",domainMemberImportDone:"Added {{count}} member(s).",domainMemberImportHint:"Add templates under “Member templates” first.",shared:"Shared",autoSave:"Auto Save (Local Snapshot)",autoSaveDesc:"When enabled, your content is protected from network outages, crashes, or accidental refreshes. Disabling this feature puts your data at high risk of loss.",autoSaveAlwaysOnDesc:"Always enabled — your content is continuously saved to a local snapshot, so you never lose work.",autoSaveBadge:"Recommended",autoSaveTurnOffTitle:"High Risk Operation",autoSaveTurnOffBody:"Without auto-save, content is only stored when you manually save or publish. If the browser crashes, closes unexpectedly, or refreshes, all unsaved content will be permanently lost.",autoSaveTurnOffConfirm:"Confirm Disable",autoSaveTurnOffCancel:"Keep Enabled",autoPublish:"Auto Sync to Cloud",autoPublishDesc:"Push changes to the server in real time. When network is unstable or multi-device editing conflicts occur, sync will pause to protect data integrity.",viewDrafts:"View Unpublished Drafts",unpublishedDrafts:"Unpublished Drafts",noDrafts:"No unpublished drafts",draftCount:"{{count}} unpublished",publishAll:"Publish all",conflictTitle:"Publish conflict",conflictBody:"Local version conflicts with remote. Please resolve the merge manually and re-publish.",conflictResolve:"Resolve conflict",conflictClose:"Close",syncPull:"Pull update",syncBehindHint:"New version on server",pullConfirmTitle:"Pull remote version",pullConfirmBody:"Updates the editor from the server when there is no local draft.",mergeTitle:"Merge conflict",mergeLocal:"Local",mergeRemote:"Remote",mergeResult:"Merged",mergeSource:"Source",mergePreview:"Preview",mergeComplete:"Merge and publish",mergeLoadRemoteFailed:"Failed to load remote content",mergeLoadLocalFailed:"Failed to load local snapshot",mergeLoadingRemote:"Loading…",mergeConflictsUnresolved:"{{count}} unresolved conflict(s). Resolve all conflicts before publishing.",mergeConflictsPending:"Conflicts pending {{unresolved}} / {{total}}",mergeConflictsResolved:"All conflicts resolved ({{total}})",mergeConflictsPanel:"Conflicts",mergeConflictItem:"Conflict {{index}} / {{total}}",mergeConflictUnresolved:"Pending",mergeConflictResolved:"Resolved",mergeAcceptLocal:"Accept local",mergeAcceptRemote:"Accept remote",mergeAcceptBoth:"Keep both",mergeAcceptManual:"Edit manually",mergeReceive:"Accept",mergeReject:"Reject",mergeUseAllMine:"Use all mine",mergeUseAllTheirs:"Use all theirs",mergeReviewHint:"Red = mine · Green = theirs; Accept takes theirs, Reject keeps mine",mergeEditAfterResolve:"All conflicts resolved — you can edit the document",mergeNoConflicts:"Local and remote match — you can publish directly.",mergeResultHint:"Assembled from your choices; you may still edit below",mergeResultInlineHint:"Confirm every change from the merge base inline",mergeBase:"Base",mergeBaseMissing:"Could not load merge base — using two-way diff",pullBlockedConflict:"Unresolved conflict — merge first.",syncHeadMissing:"Cannot publish: reopen the document to refresh version info.",syncPullDone:"Pulled latest from server",unsavedChanges:"You have unsaved changes.",edit:"Edit",autoEdit:"Auto Edit",autoEditDesc:"Automatically enter edit mode when opening a document",saveDraft:"Save Draft",continue:"Continue",draftDeleted:"Draft deleted",confirmDeleteDraft:"Permanently delete this draft? This action cannot be undone.",draftsEmptyState:"All drafts synced — no unpublished content.",localSnapshot:"Local snapshot",unknownTitle:"Untitled document",draftPublishFailedNotice:'Draft "{{name}}" publish failed: document not found',draftPublishFailedSyncHead:'Draft "{{name}}" publish failed: missing version baseline — reopen the document or fix on server',draftPublishFailedGeneric:'Draft "{{name}}" publish failed: {{reason}}',publishFailed:"Publish failed",recoverDraft:"Save As New Document",recoverDraftDesc:'Save the draft of "{{name}}" as a brand new document',recoverTargetFolder:"Target Folder",cliToken:"CLI Token",cliTokenDesc:"Identity token for CLI and Agent tools, inherits all your permissions",cliTokenCreate:"Create",cliTokenReset:"Reset",cliTokenGenerated:"New CLI Token generated",cliTokenCopy:"Copy",cliTokenCopied:"Copied",cliTokenCopyFailed:"Copy failed — select the token above and copy manually",cliTokenResetConfirm:"Resetting will revoke all existing tokens and generate a new one. Confirm?",cliTokenActive:"Active",cliTokenRevoked:"Revoked",docInfo:"Document info",docInfoCreator:"Creator",docInfoCreatedAt:"Created",docInfoSize:"Size",docInfoUpdatedAt:"Last edited",docInfoChangePermission:"Change permission",docInfoInviteMember:"Invite members",docInfoInviteSuccess:"Invited {{count}} member(s)",docInfoPermissionUpdated:"Permission updated",expandSidebar:"Expand sidebar",collapseSidebar:"Collapse sidebar",bookmark:"Bookmarks",bookmarkAdd:"Add to bookmarks",bookmarkRemove:"Remove from bookmarks",bookmarkTitle:"My Bookmarks",bookmarkEmpty:"No bookmarks yet",bookmarkOpen:"Open",bookmarkAdded:"Bookmark added",bookmarkRemoved:"Bookmark removed",bookmarkColTitle:"Title",bookmarkColDomain:"Domain",bookmarkColAuthor:"Author",bookmarkColTime:"Bookmarked",bookmarkSearch:"Search bookmarks",bookmarkFilterAll:"All domains",bookmarkNoMatch:"No matching bookmarks",myDocuments:"My Documents",myDocumentsEmpty:"No documents yet",myDocumentsColTitle:"Title",myDocumentsColDomain:"Domain",myDocumentsColUpdated:"Updated",myDocumentsColCreated:"Created",myDocumentsNoMatch:"No matching documents",agentConfig:"AI",agentConfigDesc:"Configure DeepSeek for mdocs 智能助手. Only you can use this key.",agentConfigName:"Config name",agentConfigNameDefault:"Default: {{name}}'s ds config",agentConfigModel:"Model",agentConfigContextWindow:"Context window",agentConfigContextWindowDesc:"Token budget for the assistant (default 128000). Used for the usage ring.",agentConfigApiKey:"API Key",agentConfigApiKeyPlaceholder:"Paste DeepSeek API Key",agentConfigApiKeyConfigured:"Configured {{masked}}; leave blank to keep",agentConfigId:"Config ID",agentConfigShowKey:"Show API Key",agentConfigHideKey:"Hide API Key",agentFabOpen:"Open mdocs 智能助手",agentFabReset:"Reset position",logout:"Sign out"},ns={loading:"加载中...",saved:"已保存",saving:"保存中...",unsaved:"编辑中...",publish:"发布",publishing:"发布中...",published:"已发布",cancel:"取消",create:"创建",creating:"创建中...",close:"关闭",delete:"删除",save:"保存",gotIt:"知道了",error:"错误",brand:"mdocs",welcomeTitle:"欢迎使用 mdocs",welcomeDesc:"输入一个显示名称以创建访客身份。一个安全令牌将存储在此浏览器中,以便在后续访问时识别您。",visitorNamePlaceholder:"您的名字",createVisitor:"创建访客",nameRequired:"请输入名称",visitorIdNotice:"您的访客 ID 是 {{id}},请保存以便恢复",newDocument:"新建文档",newFolder:"新建文件夹",noDocumentsYet:"暂无文档",collapseFolder:"收起文件夹",expandFolder:"展开文件夹",noDocsInDomain:"此域尚无文档。请在下方切换域或创建文档。",createDocToStart:"创建一个文档或选择一个文档开始写作。",domainLabel:"域",defaultDomain:"默认",displayNamePlaceholder:"显示名称",currentDomainAria:"当前域",insertDiagram:"插入图表",outlineHide:"隐藏大纲",outlineShow:"显示大纲",readOnlyNotice:`> 您无权限编辑
|
|
89
|
+
`,newDocumentTitle:"New document",newFolderTitle:"New folder",fileNameLabel:"File name",folderNameLabel:"Folder name",fileNameHint:"Names are shown as you type; stored paths are normalised (e.g. spaces → underscores). Use a .md file name.",folderNameHint:"Names are shown as you type; stored paths are normalised (e.g. folder 1 → folder_1).",untitledPlaceholder:"untitled.md",folderExamplePlaceholder:"e.g. research",pathExists:"this path already exists; pick another name",folderExists:"a folder with this name already exists",deleteConfirm:"delete {{name}}?",newDocIn:"New document in {{name}}",newDocAtRoot:"New document at root",newDocBeside:"New document beside this",newFolderIn:"New folder in {{name}}",newFolderAtRoot:"New folder at root",newFolderBeside:"New folder beside this",deleteItem:"Delete {{name}}",deleteFolder:"Delete {{name}}",editDiagram:"Edit diagram",newDiagram:"New diagram",saveAndInsert:"Save and insert",deleteDiagram:"Delete diagram",openFailed:"open failed: {{message}}",components:"Components",dragToCanvas:"drag to canvas",shapeRectangle:"Rectangle",shapeRounded:"Rounded",shapeCircle:"Circle",shapeDiamond:"Diamond",shapeTriangle:"Triangle",shapePentagon:"Pentagon",shapeText:"Text",shapeLine:"Line",shapeData:"Data",shapeDatabase:"Database",shapeDocument:"Document",shapeDisplay:"Display",shapeManual:"Manual",shapeParallel:"Parallel",shapeComment:"Comment",shapeSubprocess:"Subprocess",shapeQueue:"Queue",shapeIntStorage:"Int. Storage",shapeExtStorage:"Ext. Storage",errUnauthenticated:"Please register first",errBadRequest:"Invalid request",errInvalidVisitorName:"Invalid visitor name",errDocExists:"Document already exists",errDocNotFound:"Document not found",errForbidden:"You don't have permission",errInternal:"Internal error",errInvalidPath:"Invalid path",errUnknown:"Unknown error",errUnknownVisitorIds:"Some visitor IDs are invalid or disabled.",errTemplateNotFound:"Member template not found.",errDomainNotRestricted:"Member import only applies to restricted domains.",pathRequired:"relative path is required",pathMustBeRelative:"path must be relative",useForwardSlashes:"use forward slashes",pathNoDotDot:"path must not contain ..",pathMustEndWithMd:"document path must end with .md",pathUnsupportedChars:"path contains unsupported characters",pathEscapesRoot:"path escapes docs root",enterFolderName:"enter a folder name",singleNameNotPath:"use a single name, not a path",invalidFolderName:"invalid folder name",folderNameTooLong:"folder name is too long",enterFileName:"enter a file name",singleFileNameNotPath:"use a file name, not a path",invalidFileName:"invalid file name",fileNameTooLong:"file name is too long",permissionLabel:"Permission",permissionPrivate:"Private",permissionInvite:"Invite",permissionDomainWrite:"Domain write",permissionPublicRead:"Public read",permissionPublicEdit:"Public edit",invitePermissionRead:"Read only",invitePermissionEdit:"Can edit",personalDomainSuffix:"'s workspace",settings:"Settings",general:"General",language:"Language",backToDocs:"Back to documents",saveAndPublish:"Save & Publish",domainManagement:"Domain Management",createDomain:"New domain",domainName:"Domain Name",domainPermission:"Permission",domainPublic:"Public",domainRestricted:"Restricted",domainPrivate:"Private",docCount:"{{count}} documents",rename:"Rename",deleteDomain:"Delete Domain",deleteDomainConfirm:"Delete domain {{name}}?",domainLocked:"Has documents, locked",noDomains:"No domains",domainNameRequired:"Enter a domain name",domainBuiltIn:"Built-in",domainNotCreator:"Only the creator can modify this domain",domainSearchPlaceholder:"Search domain name…",domainFilterAll:"All",domainColName:"Name",domainColType:"Type",domainColDocCount:"Documents",domainColActions:"Actions",domainTypeBuiltinSuffix:"(built-in)",domainChangeType:"Change type",domainNotModifiable:"—",domainTooltipTypeLocked:"This domain has {{count}} document(s); type cannot be changed.",deleteDomainConfirmDetail:"Delete domain «{{name}}»? All {{count}} document(s) in it will be permanently removed.",domainNoMatch:"No matching domains.",memberTemplates:"Member templates",memberTemplateFormNew:"New template",memberTemplateSavedList:"Saved templates",memberTemplateIntro:"Save reusable member lists for restricted domains. Use Choose members… to pick people (left list = everyone, right = selected). You can also apply a template inside that dialog. Then save the template here.",memberTemplateStepName:"1. Name your template",memberTemplateStepMembers:"2. Choose members",memberTemplateStepSave:"3. Save",memberTemplateStep2Hint:"Select at least 1 member to continue",memberTemplateNameLabel:"Template name",memberTemplateNamePlaceholder:"e.g. Core team",memberTemplateIdsLabel:"Members",memberTemplateIdsHint:"Use Choose members… to pick people in the list; you can also apply a template inside that dialog.",memberTemplateCreate:"Save template",memberTemplateUpdate:"Update template",memberTemplateCancelEdit:"Cancel edit",memberTemplateDelete:"Delete",memberTemplateDeleteConfirm:"Delete template «{{name}}»?",memberTemplateConfirmDeleteCancel:"Cancel",memberTemplateConfirmDeleteDesc:"Delete template «{{name}}»? This cannot be undone.",memberTemplateConfirmDeleteSubmit:"Delete",memberTemplateEmpty:"No templates yet. Create one here, then use Members… on a restricted domain in Domain management.",memberTemplateEmptyAction:"Create first template",memberTemplateCount:"{{count}} visitors",memberTemplatePickerTitle:"Choose visitors for this template",memberTemplatePickMembersButton:"Choose members…",memberTemplateSelectedSummary:"{{count}} selected",memberTemplateWizardBack:"Back",memberTemplateWizardNext:"Next",domainMembersManageButton:"Members…",domainMembersPickerTitle:"Restricted domain members",domainMembersSaved:"Saved {{count}} member(s).",visitorPickerSearchPlaceholder:"Search by name or visitor id…",visitorPickerColumnAll:"Everyone",visitorPickerColumnSelected:"Selected",visitorPickerApplyTemplate:"Apply template",visitorPickerPickTemplate:"Pick a template…",visitorPickerConfirm:"Done",visitorPickerLoadError:"Could not load visitor list.",visitorPickerEmptyDirectory:"No visitors yet.",visitorPickerNoSelection:"No one selected yet.",visitorPickerColIdShort:"ID (6)",visitorPickerColName:"Name",visitorPickerColPick:"Pick",visitorPickerColIdFull:"Visitor ID",visitorPickerRemove:"Remove from selection",visitorPickerLockedHint:"This member cannot be removed (domain owner).",visitorPickerUnknownVisitor:"Unknown ID (not in directory)",visitorPickerMemberMissing:"Removed visitor (no longer in database)",visitorPickerDisabledTag:"inactive account",visitorPickerSelfMarker:"(you)",domainMemberImportPickTemplate:"Choose template…",domainMemberImportSection:"Members (from saved template)",domainMgmtRestrictedMemberHint:"For restricted domains you own: click Members… in the Actions column, then pick people in the dialog (or apply a saved template). The domain owner always stays in the list.",domainMemberImportApply:"Import members",domainMemberImportDone:"Added {{count}} member(s).",domainMemberImportHint:"Add templates under “Member templates” first.",shared:"Shared",autoSave:"Auto Save (Local Snapshot)",autoSaveDesc:"When enabled, your content is protected from network outages, crashes, or accidental refreshes. Disabling this feature puts your data at high risk of loss.",autoSaveAlwaysOnDesc:"Always enabled — your content is continuously saved to a local snapshot, so you never lose work.",autoSaveBadge:"Recommended",autoSaveTurnOffTitle:"High Risk Operation",autoSaveTurnOffBody:"Without auto-save, content is only stored when you manually save or publish. If the browser crashes, closes unexpectedly, or refreshes, all unsaved content will be permanently lost.",autoSaveTurnOffConfirm:"Confirm Disable",autoSaveTurnOffCancel:"Keep Enabled",autoPublish:"Auto Sync to Cloud",autoPublishDesc:"Push changes to the server in real time. When network is unstable or multi-device editing conflicts occur, sync will pause to protect data integrity.",viewDrafts:"View Unpublished Drafts",unpublishedDrafts:"Unpublished Drafts",noDrafts:"No unpublished drafts",draftCount:"{{count}} unpublished",publishAll:"Publish all",conflictTitle:"Publish conflict",conflictBody:"Local version conflicts with remote. Please resolve the merge manually and re-publish.",conflictResolve:"Resolve conflict",conflictClose:"Close",syncPull:"Pull update",syncBehindHint:"New version on server",pullConfirmTitle:"Pull remote version",pullConfirmBody:"Updates the editor from the server when there is no local draft.",mergeTitle:"Merge conflict",mergeLocal:"Local",mergeRemote:"Remote",mergeResult:"Merged",mergeSource:"Source",mergePreview:"Preview",mergeComplete:"Merge and publish",mergeLoadRemoteFailed:"Failed to load remote content",mergeLoadLocalFailed:"Failed to load local snapshot",mergeLoadingRemote:"Loading…",mergeConflictsUnresolved:"{{count}} unresolved conflict(s). Resolve all conflicts before publishing.",mergeConflictsPending:"Conflicts pending {{unresolved}} / {{total}}",mergeConflictsResolved:"All conflicts resolved ({{total}})",mergeConflictsPanel:"Conflicts",mergeConflictItem:"Conflict {{index}} / {{total}}",mergeConflictUnresolved:"Pending",mergeConflictResolved:"Resolved",mergeAcceptLocal:"Accept local",mergeAcceptRemote:"Accept remote",mergeAcceptBoth:"Keep both",mergeAcceptManual:"Edit manually",mergeReceive:"Accept",mergeReject:"Reject",mergeUseAllMine:"Use all mine",mergeUseAllTheirs:"Use all theirs",mergeReviewHint:"Red = mine · Green = theirs; Accept takes theirs, Reject keeps mine",mergeEditAfterResolve:"All conflicts resolved — you can edit the document",mergeNoConflicts:"Local and remote match — you can publish directly.",mergeResultHint:"Assembled from your choices; you may still edit below",mergeResultInlineHint:"Confirm every change from the merge base inline",mergeBase:"Base",mergeBaseMissing:"Could not load merge base — using two-way diff",pullBlockedConflict:"Unresolved conflict — merge first.",pullBlockedDraft:"Local draft exists — cannot overwrite with pull. Publish, or use Pull when behind to open merge.",syncHeadMissing:"Cannot publish: reopen the document to refresh version info.",syncPullDone:"Pulled latest from server",unsavedChanges:"You have unsaved changes.",edit:"Edit",autoEdit:"Auto Edit",autoEditDesc:"Automatically enter edit mode when opening a document",saveDraft:"Save Draft",continue:"Continue",draftDeleted:"Draft deleted",confirmDeleteDraft:"Permanently delete this draft? This action cannot be undone.",draftsEmptyState:"All drafts synced — no unpublished content.",localSnapshot:"Local snapshot",unknownTitle:"Untitled document",draftPublishFailedNotice:'Draft "{{name}}" publish failed: document not found',draftPublishFailedSyncHead:'Draft "{{name}}" publish failed: missing version baseline — reopen the document or fix on server',draftPublishFailedGeneric:'Draft "{{name}}" publish failed: {{reason}}',publishFailed:"Publish failed",recoverDraft:"Save As New Document",recoverDraftDesc:'Save the draft of "{{name}}" as a brand new document',recoverTargetFolder:"Target Folder",cliToken:"CLI Token",cliTokenDesc:"Identity token for CLI and Agent tools, inherits all your permissions",cliTokenCreate:"Create",cliTokenReset:"Reset",cliTokenGenerated:"New CLI Token generated",cliTokenCopy:"Copy",cliTokenCopied:"Copied",cliTokenCopyFailed:"Copy failed — select the token above and copy manually",cliTokenResetConfirm:"Resetting will revoke all existing tokens and generate a new one. Confirm?",cliTokenActive:"Active",cliTokenRevoked:"Revoked",docInfo:"Document info",docInfoCreator:"Creator",docInfoCreatedAt:"Created",docInfoSize:"Size",docInfoUpdatedAt:"Last edited",docInfoChangePermission:"Change permission",docInfoInviteMember:"Invite members",docInfoInviteSuccess:"Invited {{count}} member(s)",docInfoPermissionUpdated:"Permission updated",expandSidebar:"Expand sidebar",collapseSidebar:"Collapse sidebar",bookmark:"Bookmarks",bookmarkAdd:"Add to bookmarks",bookmarkRemove:"Remove from bookmarks",bookmarkTitle:"My Bookmarks",bookmarkEmpty:"No bookmarks yet",bookmarkOpen:"Open",bookmarkAdded:"Bookmark added",bookmarkRemoved:"Bookmark removed",bookmarkColTitle:"Title",bookmarkColDomain:"Domain",bookmarkColAuthor:"Author",bookmarkColTime:"Bookmarked",bookmarkSearch:"Search bookmarks",bookmarkFilterAll:"All domains",bookmarkNoMatch:"No matching bookmarks",myDocuments:"My Documents",myDocumentsEmpty:"No documents yet",myDocumentsColTitle:"Title",myDocumentsColDomain:"Domain",myDocumentsColUpdated:"Updated",myDocumentsColCreated:"Created",myDocumentsNoMatch:"No matching documents",agentConfig:"AI",agentConfigDesc:"Configure DeepSeek for mdocs 智能助手. Only you can use this key.",agentConfigName:"Config name",agentConfigNameDefault:"Default: {{name}}'s ds config",agentConfigModel:"Model",agentConfigContextWindow:"Context window",agentConfigContextWindowDesc:"Token budget for the assistant (default 128000). Used for the usage ring.",agentConfigApiKey:"API Key",agentConfigApiKeyPlaceholder:"Paste DeepSeek API Key",agentConfigApiKeyConfigured:"Configured {{masked}}; leave blank to keep",agentConfigId:"Config ID",agentConfigShowKey:"Show API Key",agentConfigHideKey:"Hide API Key",agentFabOpen:"Open mdocs 智能助手",agentFabReset:"Reset position",logout:"Sign out"},ns={loading:"加载中...",saved:"已保存",saving:"保存中...",unsaved:"编辑中...",publish:"发布",publishing:"发布中...",published:"已发布",cancel:"取消",create:"创建",creating:"创建中...",close:"关闭",delete:"删除",save:"保存",gotIt:"知道了",error:"错误",brand:"mdocs",welcomeTitle:"欢迎使用 mdocs",welcomeDesc:"输入一个显示名称以创建访客身份。一个安全令牌将存储在此浏览器中,以便在后续访问时识别您。",visitorNamePlaceholder:"您的名字",createVisitor:"创建访客",nameRequired:"请输入名称",visitorIdNotice:"您的访客 ID 是 {{id}},请保存以便恢复",newDocument:"新建文档",newFolder:"新建文件夹",noDocumentsYet:"暂无文档",collapseFolder:"收起文件夹",expandFolder:"展开文件夹",noDocsInDomain:"此域尚无文档。请在下方切换域或创建文档。",createDocToStart:"创建一个文档或选择一个文档开始写作。",domainLabel:"域",defaultDomain:"默认",displayNamePlaceholder:"显示名称",currentDomainAria:"当前域",insertDiagram:"插入图表",outlineHide:"隐藏大纲",outlineShow:"显示大纲",readOnlyNotice:`> 您无权限编辑
|
|
90
90
|
|
|
91
|
-
`,newDocumentTitle:"新建文档",newFolderTitle:"新建文件夹",fileNameLabel:"文件名",folderNameLabel:"文件夹名",fileNameHint:"名称按您输入的方式显示;存储路径会被规范化(例如空格 → 下划线)。请使用 .md 文件名。",folderNameHint:"名称按您输入的方式显示;存储路径会被规范化(例如 folder 1 → folder_1)。",untitledPlaceholder:"未命名.md",folderExamplePlaceholder:"例如 research",pathExists:"此路径已存在,请选择其他名称",folderExists:"此名称的文件夹已存在",deleteConfirm:"删除 {{name}}?",newDocIn:"在 {{name}} 中新建文档",newDocAtRoot:"在根目录新建文档",newDocBeside:"在同级新建文档",newFolderIn:"在 {{name}} 中新建文件夹",newFolderAtRoot:"在根目录新建文件夹",newFolderBeside:"在同级新建文件夹",deleteItem:"删除 {{name}}",deleteFolder:"删除「{{name}}」",editDiagram:"编辑图表",newDiagram:"新建图表",saveAndInsert:"保存并插入",deleteDiagram:"删除图表",openFailed:"打开失败:{{message}}",components:"组件",dragToCanvas:"拖拽到画布",shapeRectangle:"矩形",shapeRounded:"圆角矩形",shapeCircle:"圆形",shapeDiamond:"菱形",shapeTriangle:"三角形",shapePentagon:"五边形",shapeText:"文本",shapeLine:"线条",shapeData:"数据",shapeDatabase:"数据库",shapeDocument:"文档",shapeDisplay:"显示",shapeManual:"手动",shapeParallel:"并行",shapeComment:"注释",shapeSubprocess:"子流程",shapeQueue:"队列",shapeIntStorage:"内部存储",shapeExtStorage:"外部存储",errUnauthenticated:"请先注册",errBadRequest:"请求无效",errInvalidVisitorName:"访客名称无效",errDocExists:"文档已存在",errDocNotFound:"文档不存在",errForbidden:"您没有权限",errInternal:"内部错误",errInvalidPath:"路径无效",errUnknown:"未知错误",errUnknownVisitorIds:"部分访客 ID 无效或已停用。",errTemplateNotFound:"找不到该成员模板。",errDomainNotRestricted:"仅受限域可从模板导入成员。",pathRequired:"需要提供相对路径",pathMustBeRelative:"路径必须是相对路径",useForwardSlashes:"请使用正斜杠",pathNoDotDot:"路径不能包含 ..",pathMustEndWithMd:"文档路径必须以 .md 结尾",pathUnsupportedChars:"路径包含不支持的字符",pathEscapesRoot:"路径超出了文档根目录",enterFolderName:"请输入文件夹名称",singleNameNotPath:"请使用单个名称,而非路径",invalidFolderName:"文件夹名称无效",folderNameTooLong:"文件夹名称过长",enterFileName:"请输入文件名",singleFileNameNotPath:"请使用文件名,而非路径",invalidFileName:"文件名无效",fileNameTooLong:"文件名过长",permissionLabel:"权限",permissionPrivate:"私有",permissionInvite:"邀请",permissionDomainWrite:"域内可编辑",permissionPublicRead:"公开可读",permissionPublicEdit:"公开可编辑",invitePermissionRead:"只读",invitePermissionEdit:"可编辑",personalDomainSuffix:"个人域",settings:"设置",general:"通用",language:"语言",backToDocs:"返回文档",saveAndPublish:"保存与发布",domainManagement:"域管理",createDomain:"创建新域",domainName:"域名称",domainPermission:"权限",domainPublic:"公开",domainRestricted:"受限",domainPrivate:"私有",docCount:"{{count}} 篇文档",rename:"重命名",deleteDomain:"删除域",deleteDomainConfirm:"确定删除域 {{name}}?",domainLocked:"有文档,不可修改",noDomains:"暂无域",domainNameRequired:"请输入域名称",domainBuiltIn:"系统内置",domainNotCreator:"您不是创建者,无权修改域设置",domainSearchPlaceholder:"搜索域名…",domainFilterAll:"全部",domainColName:"域名",domainColType:"类型",domainColDocCount:"文档数",domainColActions:"操作",domainTypeBuiltinSuffix:"(内置)",domainChangeType:"改类型",domainNotModifiable:"—",domainTooltipTypeLocked:"已有 {{count}} 篇文档,不可修改类型",deleteDomainConfirmDetail:"确定删除域「{{name}}」吗?域内 {{count}} 篇文档将被永久删除。",domainNoMatch:"没有匹配的域",memberTemplates:"域成员模板",memberTemplateFormNew:"新建模板",memberTemplateSavedList:"已保存的模板",memberTemplateIntro:"把常用成员存成模板,供受限域复用。点「选择成员…」在弹窗里左侧勾选、右侧为已选,也可在弹窗内应用模板。选好后在此保存模板。",memberTemplateStepName:"1. 填写名称",memberTemplateStepMembers:"2. 选择成员",memberTemplateStepSave:"3. 保存",memberTemplateStep2Hint:"至少选择 1 名成员才能继续",memberTemplateNameLabel:"模板名称",memberTemplateNamePlaceholder:"例如:核心开发组",memberTemplateIdsLabel:"成员",memberTemplateIdsHint:"通过下方「选择成员…」在列表中勾选;支持在弹窗内从模板自动勾选。",memberTemplateCreate:"保存模板",memberTemplateUpdate:"更新模板",memberTemplateCancelEdit:"取消编辑",memberTemplateDelete:"删除",memberTemplateDeleteConfirm:"删除模板「{{name}}」?",memberTemplateConfirmDeleteCancel:"取消",memberTemplateConfirmDeleteDesc:"确定删除模板「{{name}}」?此操作不可恢复。",memberTemplateConfirmDeleteSubmit:"确认删除",memberTemplateEmpty:"尚无模板。先在此创建,再在「域管理」里对受限域管理成员。",memberTemplateEmptyAction:"创建第一个模板",memberTemplateCount:"{{count}} 人",memberTemplatePickerTitle:"本模板包含的成员",memberTemplatePickMembersButton:"选择成员…",memberTemplateSelectedSummary:"已选 {{count}} 人",memberTemplateWizardBack:"上一步",memberTemplateWizardNext:"下一步",domainMembersManageButton:"成员…",domainMembersPickerTitle:"受限域成员",domainMembersSaved:"已保存 {{count}} 名成员。",visitorPickerSearchPlaceholder:"按昵称或 visitor id 搜索…",visitorPickerColumnAll:"全部访客",visitorPickerColumnSelected:"已选成员",visitorPickerApplyTemplate:"套用模板",visitorPickerPickTemplate:"选择模板…",visitorPickerConfirm:"完成",visitorPickerLoadError:"无法加载访客列表。",visitorPickerEmptyDirectory:"暂无访客。",visitorPickerNoSelection:"尚未选择任何人。",visitorPickerColIdShort:"ID 前 6 位",visitorPickerColName:"昵称",visitorPickerColPick:"勾选",visitorPickerColIdFull:"Visitor ID(完整)",visitorPickerRemove:"从已选中移除",visitorPickerLockedHint:"域创建者不可移除。",visitorPickerUnknownVisitor:"未知 ID(不在当前访客列表)",visitorPickerMemberMissing:"已删除的访客(库中无记录)",visitorPickerDisabledTag:"已停用",visitorPickerSelfMarker:"(你)",domainMemberImportPickTemplate:"选择模板…",domainMemberImportSection:"域成员(从模板导入)",domainMgmtRestrictedMemberHint:"对你创建的受限域:在「操作」列点「成员…」,在弹窗中勾选成员或套用模板;创建者会始终保留在已选列表中。",domainMemberImportApply:"导入成员",domainMemberImportDone:"新加入 {{count}} 名成员。",domainMemberImportHint:"请先在「域成员模板」中创建模板。",shared:"共享",autoSave:"自动保存 (本地快照)",autoSaveDesc:"开启后,即使断网、崩溃或误刷新,内容也不会丢失。关闭此功能将面临极高的数据丢失风险。",autoSaveAlwaysOnDesc:"始终开启 — 内容会持续保存到本地快照,永不会丢失。",autoSaveBadge:"强烈推荐",autoSaveTurnOffTitle:"高风险操作",autoSaveTurnOffBody:"关闭自动保存后,编辑内容仅在手动保存或发布时才会被存储。一旦浏览器崩溃、误关闭或刷新页面,所有未保存的内容将永久丢失。",autoSaveTurnOffConfirm:"确认关闭",autoSaveTurnOffCancel:"保持开启",autoPublish:"自动同步至云端",autoPublishDesc:"实时推送到服务器。当网络不稳定或多端编辑冲突时,系统将暂停同步以保护数据完整性。",viewDrafts:"查看未发布草稿",unpublishedDrafts:"未发布草稿",noDrafts:"暂无未发布草稿",draftCount:"{{count}} 篇未发布",publishAll:"全部发布",conflictTitle:"发布冲突",conflictBody:"云端版本与本地版本冲突,请手动处理合并后重新发布。",conflictResolve:"解决冲突",conflictClose:"关闭",syncPull:"拉取更新",syncBehindHint:"云端有新版本",pullConfirmTitle:"拉取远端版本",pullConfirmBody:"无本地草稿时,用云端内容更新编辑区。",mergeTitle:"合并冲突",mergeLocal:"本地",mergeRemote:"远端",mergeResult:"合并结果",mergeSource:"源码",mergePreview:"预览",mergeComplete:"完成合并并发布",mergeLoadRemoteFailed:"加载远端内容失败",mergeLoadLocalFailed:"加载本地快照失败",mergeLoadingRemote:"加载中…",mergeConflictsUnresolved:"仍有 {{count}} 处冲突未解决,请处理后再发布",mergeConflictsPending:"冲突待处理 {{unresolved}} / {{total}}",mergeConflictsResolved:"冲突已全部处理({{total}})",mergeConflictsPanel:"冲突块",mergeConflictItem:"冲突 {{index}} / {{total}}",mergeConflictUnresolved:"待处理",mergeConflictResolved:"已处理",mergeAcceptLocal:"采用本地",mergeAcceptRemote:"采用远端",mergeAcceptBoth:"保留双方",mergeAcceptManual:"手动编辑",mergeReceive:"接收",mergeReject:"拒绝",mergeUseAllMine:"全部用我的",mergeUseAllTheirs:"全部用别人的",mergeReviewHint:"红=我的 · 绿=别人的;接收用别人的,拒绝留我的",mergeEditAfterResolve:"冲突已处理完,可继续修改正文",mergeNoConflicts:"本地与远端正文一致,可直接发布。",mergeResultHint:"由冲突决议自动拼接,也可直接修改",mergeResultInlineHint:"相对祖先有改动的行均需在正文中点选确认",mergeBase:"祖先",mergeBaseMissing:"无法加载公共祖先,已退化为两方比对",pullBlockedConflict:"存在未解决的冲突,请先合并。",syncHeadMissing:"无法发布:缺少版本基准,请重新打开文档。",syncPullDone:"已拉取云端最新版本",unsavedChanges:"您有未保存的内容。",edit:"编辑",autoEdit:"自动编辑",autoEditDesc:"打开文档时自动进入编辑模式",saveDraft:"保存草稿",continue:"继续",draftDeleted:"草稿已删除",confirmDeleteDraft:"确定要永久删除这篇草稿吗?此操作不可恢复。",draftsEmptyState:"所有草稿已同步,当前无未发布内容。",localSnapshot:"本地快照",unknownTitle:"未命名文档",draftPublishFailedNotice:"草稿「{{name}}」发布失败:文档不存在",draftPublishFailedSyncHead:"草稿「{{name}}」发布失败:缺少版本基准,请重新打开文档",draftPublishFailedGeneric:"草稿「{{name}}」发布失败:{{reason}}",publishFailed:"发布失败",recoverDraft:"另存为新文档",recoverDraftDesc:"将「{{name}}」的草稿内容保存为一篇全新文档",recoverTargetFolder:"目标目录",cliToken:"CLI Token",cliTokenDesc:"用于命令行工具和 Agent 的身份令牌,继承你的所有权限",cliTokenCreate:"创建",cliTokenReset:"重置",cliTokenGenerated:"已生成新的 CLI Token",cliTokenCopy:"复制",cliTokenCopied:"已复制",cliTokenCopyFailed:"复制失败,请手动选中上方内容复制",cliTokenResetConfirm:"重置将吊销当前所有已有 Token,并生成新的 Token。确认重置?",cliTokenActive:"活跃",cliTokenRevoked:"已吊销",docInfo:"文档信息",docInfoCreator:"创建者",docInfoCreatedAt:"创建时间",docInfoSize:"大小",docInfoUpdatedAt:"上次编辑",docInfoChangePermission:"修改文章权限",docInfoInviteMember:"邀请成员",docInfoInviteSuccess:"已邀请 {{count}} 人",docInfoPermissionUpdated:"权限已更新",expandSidebar:"展开侧边栏",collapseSidebar:"收起侧边栏",bookmark:"收藏",bookmarkAdd:"添加收藏",bookmarkRemove:"取消收藏",bookmarkTitle:"我的收藏",bookmarkEmpty:"暂无收藏",bookmarkOpen:"打开",bookmarkAdded:"已添加收藏",bookmarkRemoved:"已取消收藏",bookmarkColTitle:"标题",bookmarkColDomain:"域",bookmarkColAuthor:"作者",bookmarkColTime:"收藏时间",bookmarkSearch:"搜索收藏",bookmarkFilterAll:"全部域",bookmarkNoMatch:"暂无匹配的收藏",myDocuments:"我的文章",myDocumentsEmpty:"暂无文章",myDocumentsColTitle:"标题",myDocumentsColDomain:"域",myDocumentsColUpdated:"更新时间",myDocumentsColCreated:"创建时间",myDocumentsNoMatch:"暂无匹配的文章",agentConfig:"AI",agentConfigDesc:"配置 DeepSeek 用于 mdocs 智能助手。仅本人可用,不会分享给其他访客。",agentConfigName:"配置名称",agentConfigNameDefault:"不填则:{{name}}的 ds 配置",agentConfigModel:"模型",agentConfigContextWindow:"上下文窗口",agentConfigContextWindowDesc:"助手可用的 token 上限(默认 128000),用于占用圆环显示。",agentConfigApiKey:"API Key",agentConfigApiKeyPlaceholder:"粘贴 DeepSeek API Key",agentConfigApiKeyConfigured:"已配置 {{masked}},留空不修改",agentConfigId:"配置 ID",agentConfigShowKey:"显示 API Key",agentConfigHideKey:"隐藏 API Key",agentFabOpen:"打开 mdocs 智能助手",agentFabReset:"重置位置",logout:"退出登录"},Zo="mdocs.lang",rs={en:ts,zh:ns};function os(){const e=window.localStorage.getItem(Zo);return e==="zh"||e==="en"?e:navigator.language.toLowerCase().startsWith("zh")?"zh":"en"}const Qo=_.createContext(null);function is({children:e}){const[n,r]=_.useState(os);_.useEffect(()=>{document.documentElement.lang=n==="zh"?"zh-CN":"en"},[n]);const o=_.useCallback(a=>{window.localStorage.setItem(Zo,a),r(a)},[]),i=_.useCallback((a,s)=>{let l=rs[n][a]??a;if(s)for(const[d,c]of Object.entries(s))l=l.replaceAll(`{{${d}}}`,c);return l},[n]);return f.jsx(Qo.Provider,{value:{lang:n,setLang:o,t:i},children:e})}function lt(){const e=_.useContext(Qo);if(!e)throw new Error("useI18n must be used within I18nProvider");return e}function Ht(e){const{content:n,contentHash:r,...o}=e;return o}function as(){let e=Promise.resolve();return{execute:r=>{const o=e.then(r);return e=o.then(()=>{},()=>{}),o}}}const Kr=new Map;function Jr(e){let n=Kr.get(e);return n||(n=as(),Kr.set(e,n)),n}const We={PRIVATE:0,DOMAIN_READ:1,DOMAIN_WRITE:2,PUBLIC_READ:3,PUBLIC_WRITE:4};function ss(e){return e===We.PUBLIC_WRITE}function Ku(e){return e==="public"?[We.PUBLIC_READ,We.PUBLIC_WRITE]:e==="restricted"?[We.DOMAIN_READ,We.DOMAIN_WRITE]:[We.PRIVATE,We.DOMAIN_READ,We.DOMAIN_WRITE,We.PUBLIC_READ,We.PUBLIC_WRITE]}const Xr="___desc___.md";function ls(e){const n=e.trim();return n?`${n}/${Xr}`:Xr}class pt extends Error{constructor(n){super(n),this.name="DocPathError"}}const cs=120,ds=200;function tr(e){let n=e.trim().replace(/\s+/g,"_");for(n=n.replace(/[^A-Za-z0-9_\-\.\u4e00-\u9fa5]/g,"_"),n=n.replace(/_+/g,"_"),n=n.replace(/^[._]+|[._]+$/g,"");n.includes("..");)n=n.replace(/\.\./g,"_");return n==="."||n===".."||!n?"":n}function us(e){const n=e.trim();return n?n.includes("/")||n.includes("\\")?{ok:!1,message:"use a single name, not a path"}:n==="."||n===".."?{ok:!1,message:"invalid folder name"}:n.length>cs?{ok:!1,message:"folder name is too long"}:{ok:!0,display:n}:{ok:!1,message:"enter a folder name"}}function fs(e){let n=e.trim();return n?n.includes("/")||n.includes("\\")?{ok:!1,message:"use a file name, not a path"}:n==="."||n===".."?{ok:!1,message:"invalid file name"}:(n.toLowerCase().endsWith(".md")||(n+=".md"),n.length>ds?{ok:!1,message:"file name is too long"}:{ok:!0,displayFile:n}):{ok:!1,message:"enter a file name"}}function ms(e){const n=e.trim().replace(/\\/g,"/");if(!n)throw new pt("relative path is required");if(n.startsWith("/"))throw new pt("path must be relative");if(n.includes(".."))throw new pt("path must not contain ..");const r=n.split("/").filter(d=>d.length>0);if(r.length===0)throw new pt("relative path is required");const o=[];for(let d=0;d<r.length-1;d+=1){const c=tr(r[d]);if(!c)throw new pt("invalid path segment");o.push(c)}const i=r[r.length-1];if(!i.toLowerCase().endsWith(".md"))throw new pt("document path must end with .md");const a=i.slice(0,-3),s=i.slice(-3),l=tr(a);if(!l)throw new pt("invalid file name");return o.push(l+s),o.join("/")}class Je extends Error{constructor(r,o,i,a){super(i);jt(this,"code");jt(this,"status");jt(this,"details");this.status=r,this.code=o,this.details=a}}const hs={children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"README",type:"text",version:1,id:"148"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h1",id:"147"},{children:[{detail:0,format:2,mode:"normal",style:"",text:"Hi",type:"text",version:1,id:"149"},{detail:0,format:0,mode:"normal",style:"",text:",",type:"text",version:1,id:"150"},{detail:0,format:1,mode:"normal",style:"",text:"你好",type:"text",version:1,id:"151"},{detail:0,format:0,mode:"normal",style:"",text:",欢迎使用 mdocs 文本。下面是一段用来",type:"text",version:1,id:"152"},{detail:0,format:1,mode:"normal",style:"",text:"展示 mdocs 特性",type:"text",version:1,id:"153"},{detail:0,format:0,mode:"normal",style:"",text:"的示例文档,你可以按需删改。",type:"text",version:1,id:"154"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:2,textStyle:"",id:"255"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"文本与排版",type:"text",version:1,id:"156"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"155"},{children:[{detail:0,format:1,mode:"normal",style:"",text:"粗体",type:"text",version:1,id:"157"},{detail:0,format:0,mode:"normal",style:"",text:"、",type:"text",version:1,id:"158"},{detail:0,format:2,mode:"normal",style:"",text:"斜体",type:"text",version:1,id:"159"},{detail:0,format:0,mode:"normal",style:"",text:"、",type:"text",version:1,id:"160"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"162"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"163"},{detail:0,format:0,mode:"normal",style:"",text:"行内代码",type:"text",version:1,id:"164"}],direction:"ltr",format:"",indent:0,type:"codeInline",version:1,id:"161"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"165"},{detail:0,format:0,mode:"normal",style:"",text:"、",type:"text",version:1,id:"166"},{detail:0,format:4,mode:"normal",style:"",text:"删除线",type:"text",version:1,id:"167"},{detail:0,format:0,mode:"normal",style:"",text:"。",type:"text",version:1,id:"168"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:1,textStyle:"",id:"256"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"引用块:适合写结论、提示或引用原文。",type:"text",version:1,id:"170"}],direction:"ltr",format:"",indent:0,type:"quote",version:1,id:"169"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"有序列表:",type:"text",version:1,id:"171"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"257"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"用 Markdown 记笔记",type:"text",version:1,id:"173"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:1,id:"174"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"用侧边栏管文档树",type:"text",version:1,id:"175"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:2,id:"176"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"需要时再发布或同步",type:"text",version:1,id:"177"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:3,id:"178"}],direction:"ltr",format:"",indent:0,type:"list",version:1,listType:"number",start:1,tag:"ol",id:"172"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"无序列表:",type:"text",version:1,id:"179"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"258"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"访客身份,无需单独注册账号(自建部署时由服务端配置)",type:"text",version:1,id:"181"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:1,id:"182"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"文档以 ",type:"text",version:1,id:"183"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:2,id:"184"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"186"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"187"},{detail:0,format:0,mode:"normal",style:"",text:".md",type:"text",version:1,id:"188"}],direction:"ltr",format:"",indent:0,type:"codeInline",version:1,id:"185"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:3,id:"189"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"190"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:4,id:"191"},{children:[{detail:0,format:0,mode:"normal",style:"",text:" 为主存储,结构清晰",type:"text",version:1,id:"192"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:5,id:"193"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"支持个人域与协作域等能力(视部署与权限而定)",type:"text",version:1,id:"194"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:6,id:"195"}],direction:"ltr",format:"",indent:0,type:"list",version:1,listType:"bullet",start:1,tag:"ul",id:"180"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"代码",type:"text",version:1,id:"197"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"196"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"行内常量如 ",type:"text",version:1,id:"198"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"200"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"201"},{detail:0,format:0,mode:"normal",style:"",text:"VITE_DEMO_MODE",type:"text",version:1,id:"202"}],direction:"ltr",format:"",indent:0,type:"codeInline",version:1,id:"199"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"203"},{detail:0,format:0,mode:"normal",style:"",text:",或小段示例:",type:"text",version:1,id:"204"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"259"},{type:"code",version:1,code:`// 伪代码:表达「内容即文档」
|
|
91
|
+
`,newDocumentTitle:"新建文档",newFolderTitle:"新建文件夹",fileNameLabel:"文件名",folderNameLabel:"文件夹名",fileNameHint:"名称按您输入的方式显示;存储路径会被规范化(例如空格 → 下划线)。请使用 .md 文件名。",folderNameHint:"名称按您输入的方式显示;存储路径会被规范化(例如 folder 1 → folder_1)。",untitledPlaceholder:"未命名.md",folderExamplePlaceholder:"例如 research",pathExists:"此路径已存在,请选择其他名称",folderExists:"此名称的文件夹已存在",deleteConfirm:"删除 {{name}}?",newDocIn:"在 {{name}} 中新建文档",newDocAtRoot:"在根目录新建文档",newDocBeside:"在同级新建文档",newFolderIn:"在 {{name}} 中新建文件夹",newFolderAtRoot:"在根目录新建文件夹",newFolderBeside:"在同级新建文件夹",deleteItem:"删除 {{name}}",deleteFolder:"删除「{{name}}」",editDiagram:"编辑图表",newDiagram:"新建图表",saveAndInsert:"保存并插入",deleteDiagram:"删除图表",openFailed:"打开失败:{{message}}",components:"组件",dragToCanvas:"拖拽到画布",shapeRectangle:"矩形",shapeRounded:"圆角矩形",shapeCircle:"圆形",shapeDiamond:"菱形",shapeTriangle:"三角形",shapePentagon:"五边形",shapeText:"文本",shapeLine:"线条",shapeData:"数据",shapeDatabase:"数据库",shapeDocument:"文档",shapeDisplay:"显示",shapeManual:"手动",shapeParallel:"并行",shapeComment:"注释",shapeSubprocess:"子流程",shapeQueue:"队列",shapeIntStorage:"内部存储",shapeExtStorage:"外部存储",errUnauthenticated:"请先注册",errBadRequest:"请求无效",errInvalidVisitorName:"访客名称无效",errDocExists:"文档已存在",errDocNotFound:"文档不存在",errForbidden:"您没有权限",errInternal:"内部错误",errInvalidPath:"路径无效",errUnknown:"未知错误",errUnknownVisitorIds:"部分访客 ID 无效或已停用。",errTemplateNotFound:"找不到该成员模板。",errDomainNotRestricted:"仅受限域可从模板导入成员。",pathRequired:"需要提供相对路径",pathMustBeRelative:"路径必须是相对路径",useForwardSlashes:"请使用正斜杠",pathNoDotDot:"路径不能包含 ..",pathMustEndWithMd:"文档路径必须以 .md 结尾",pathUnsupportedChars:"路径包含不支持的字符",pathEscapesRoot:"路径超出了文档根目录",enterFolderName:"请输入文件夹名称",singleNameNotPath:"请使用单个名称,而非路径",invalidFolderName:"文件夹名称无效",folderNameTooLong:"文件夹名称过长",enterFileName:"请输入文件名",singleFileNameNotPath:"请使用文件名,而非路径",invalidFileName:"文件名无效",fileNameTooLong:"文件名过长",permissionLabel:"权限",permissionPrivate:"私有",permissionInvite:"邀请",permissionDomainWrite:"域内可编辑",permissionPublicRead:"公开可读",permissionPublicEdit:"公开可编辑",invitePermissionRead:"只读",invitePermissionEdit:"可编辑",personalDomainSuffix:"个人域",settings:"设置",general:"通用",language:"语言",backToDocs:"返回文档",saveAndPublish:"保存与发布",domainManagement:"域管理",createDomain:"创建新域",domainName:"域名称",domainPermission:"权限",domainPublic:"公开",domainRestricted:"受限",domainPrivate:"私有",docCount:"{{count}} 篇文档",rename:"重命名",deleteDomain:"删除域",deleteDomainConfirm:"确定删除域 {{name}}?",domainLocked:"有文档,不可修改",noDomains:"暂无域",domainNameRequired:"请输入域名称",domainBuiltIn:"系统内置",domainNotCreator:"您不是创建者,无权修改域设置",domainSearchPlaceholder:"搜索域名…",domainFilterAll:"全部",domainColName:"域名",domainColType:"类型",domainColDocCount:"文档数",domainColActions:"操作",domainTypeBuiltinSuffix:"(内置)",domainChangeType:"改类型",domainNotModifiable:"—",domainTooltipTypeLocked:"已有 {{count}} 篇文档,不可修改类型",deleteDomainConfirmDetail:"确定删除域「{{name}}」吗?域内 {{count}} 篇文档将被永久删除。",domainNoMatch:"没有匹配的域",memberTemplates:"域成员模板",memberTemplateFormNew:"新建模板",memberTemplateSavedList:"已保存的模板",memberTemplateIntro:"把常用成员存成模板,供受限域复用。点「选择成员…」在弹窗里左侧勾选、右侧为已选,也可在弹窗内应用模板。选好后在此保存模板。",memberTemplateStepName:"1. 填写名称",memberTemplateStepMembers:"2. 选择成员",memberTemplateStepSave:"3. 保存",memberTemplateStep2Hint:"至少选择 1 名成员才能继续",memberTemplateNameLabel:"模板名称",memberTemplateNamePlaceholder:"例如:核心开发组",memberTemplateIdsLabel:"成员",memberTemplateIdsHint:"通过下方「选择成员…」在列表中勾选;支持在弹窗内从模板自动勾选。",memberTemplateCreate:"保存模板",memberTemplateUpdate:"更新模板",memberTemplateCancelEdit:"取消编辑",memberTemplateDelete:"删除",memberTemplateDeleteConfirm:"删除模板「{{name}}」?",memberTemplateConfirmDeleteCancel:"取消",memberTemplateConfirmDeleteDesc:"确定删除模板「{{name}}」?此操作不可恢复。",memberTemplateConfirmDeleteSubmit:"确认删除",memberTemplateEmpty:"尚无模板。先在此创建,再在「域管理」里对受限域管理成员。",memberTemplateEmptyAction:"创建第一个模板",memberTemplateCount:"{{count}} 人",memberTemplatePickerTitle:"本模板包含的成员",memberTemplatePickMembersButton:"选择成员…",memberTemplateSelectedSummary:"已选 {{count}} 人",memberTemplateWizardBack:"上一步",memberTemplateWizardNext:"下一步",domainMembersManageButton:"成员…",domainMembersPickerTitle:"受限域成员",domainMembersSaved:"已保存 {{count}} 名成员。",visitorPickerSearchPlaceholder:"按昵称或 visitor id 搜索…",visitorPickerColumnAll:"全部访客",visitorPickerColumnSelected:"已选成员",visitorPickerApplyTemplate:"套用模板",visitorPickerPickTemplate:"选择模板…",visitorPickerConfirm:"完成",visitorPickerLoadError:"无法加载访客列表。",visitorPickerEmptyDirectory:"暂无访客。",visitorPickerNoSelection:"尚未选择任何人。",visitorPickerColIdShort:"ID 前 6 位",visitorPickerColName:"昵称",visitorPickerColPick:"勾选",visitorPickerColIdFull:"Visitor ID(完整)",visitorPickerRemove:"从已选中移除",visitorPickerLockedHint:"域创建者不可移除。",visitorPickerUnknownVisitor:"未知 ID(不在当前访客列表)",visitorPickerMemberMissing:"已删除的访客(库中无记录)",visitorPickerDisabledTag:"已停用",visitorPickerSelfMarker:"(你)",domainMemberImportPickTemplate:"选择模板…",domainMemberImportSection:"域成员(从模板导入)",domainMgmtRestrictedMemberHint:"对你创建的受限域:在「操作」列点「成员…」,在弹窗中勾选成员或套用模板;创建者会始终保留在已选列表中。",domainMemberImportApply:"导入成员",domainMemberImportDone:"新加入 {{count}} 名成员。",domainMemberImportHint:"请先在「域成员模板」中创建模板。",shared:"共享",autoSave:"自动保存 (本地快照)",autoSaveDesc:"开启后,即使断网、崩溃或误刷新,内容也不会丢失。关闭此功能将面临极高的数据丢失风险。",autoSaveAlwaysOnDesc:"始终开启 — 内容会持续保存到本地快照,永不会丢失。",autoSaveBadge:"强烈推荐",autoSaveTurnOffTitle:"高风险操作",autoSaveTurnOffBody:"关闭自动保存后,编辑内容仅在手动保存或发布时才会被存储。一旦浏览器崩溃、误关闭或刷新页面,所有未保存的内容将永久丢失。",autoSaveTurnOffConfirm:"确认关闭",autoSaveTurnOffCancel:"保持开启",autoPublish:"自动同步至云端",autoPublishDesc:"实时推送到服务器。当网络不稳定或多端编辑冲突时,系统将暂停同步以保护数据完整性。",viewDrafts:"查看未发布草稿",unpublishedDrafts:"未发布草稿",noDrafts:"暂无未发布草稿",draftCount:"{{count}} 篇未发布",publishAll:"全部发布",conflictTitle:"发布冲突",conflictBody:"云端版本与本地版本冲突,请手动处理合并后重新发布。",conflictResolve:"解决冲突",conflictClose:"关闭",syncPull:"拉取更新",syncBehindHint:"云端有新版本",pullConfirmTitle:"拉取远端版本",pullConfirmBody:"无本地草稿时,用云端内容更新编辑区。",mergeTitle:"合并冲突",mergeLocal:"本地",mergeRemote:"远端",mergeResult:"合并结果",mergeSource:"源码",mergePreview:"预览",mergeComplete:"完成合并并发布",mergeLoadRemoteFailed:"加载远端内容失败",mergeLoadLocalFailed:"加载本地快照失败",mergeLoadingRemote:"加载中…",mergeConflictsUnresolved:"仍有 {{count}} 处冲突未解决,请处理后再发布",mergeConflictsPending:"冲突待处理 {{unresolved}} / {{total}}",mergeConflictsResolved:"冲突已全部处理({{total}})",mergeConflictsPanel:"冲突块",mergeConflictItem:"冲突 {{index}} / {{total}}",mergeConflictUnresolved:"待处理",mergeConflictResolved:"已处理",mergeAcceptLocal:"采用本地",mergeAcceptRemote:"采用远端",mergeAcceptBoth:"保留双方",mergeAcceptManual:"手动编辑",mergeReceive:"接收",mergeReject:"拒绝",mergeUseAllMine:"全部用我的",mergeUseAllTheirs:"全部用别人的",mergeReviewHint:"红=我的 · 绿=别人的;接收用别人的,拒绝留我的",mergeEditAfterResolve:"冲突已处理完,可继续修改正文",mergeNoConflicts:"本地与远端正文一致,可直接发布。",mergeResultHint:"由冲突决议自动拼接,也可直接修改",mergeResultInlineHint:"相对祖先有改动的行均需在正文中点选确认",mergeBase:"祖先",mergeBaseMissing:"无法加载公共祖先,已退化为两方比对",pullBlockedConflict:"存在未解决的冲突,请先合并。",pullBlockedDraft:"有未发布的本地草稿,无法覆盖拉取。可点「发布」或在落后时点「拉取更新」进入合并。",syncHeadMissing:"无法发布:缺少版本基准,请重新打开文档。",syncPullDone:"已拉取云端最新版本",unsavedChanges:"您有未保存的内容。",edit:"编辑",autoEdit:"自动编辑",autoEditDesc:"打开文档时自动进入编辑模式",saveDraft:"保存草稿",continue:"继续",draftDeleted:"草稿已删除",confirmDeleteDraft:"确定要永久删除这篇草稿吗?此操作不可恢复。",draftsEmptyState:"所有草稿已同步,当前无未发布内容。",localSnapshot:"本地快照",unknownTitle:"未命名文档",draftPublishFailedNotice:"草稿「{{name}}」发布失败:文档不存在",draftPublishFailedSyncHead:"草稿「{{name}}」发布失败:缺少版本基准,请重新打开文档",draftPublishFailedGeneric:"草稿「{{name}}」发布失败:{{reason}}",publishFailed:"发布失败",recoverDraft:"另存为新文档",recoverDraftDesc:"将「{{name}}」的草稿内容保存为一篇全新文档",recoverTargetFolder:"目标目录",cliToken:"CLI Token",cliTokenDesc:"用于命令行工具和 Agent 的身份令牌,继承你的所有权限",cliTokenCreate:"创建",cliTokenReset:"重置",cliTokenGenerated:"已生成新的 CLI Token",cliTokenCopy:"复制",cliTokenCopied:"已复制",cliTokenCopyFailed:"复制失败,请手动选中上方内容复制",cliTokenResetConfirm:"重置将吊销当前所有已有 Token,并生成新的 Token。确认重置?",cliTokenActive:"活跃",cliTokenRevoked:"已吊销",docInfo:"文档信息",docInfoCreator:"创建者",docInfoCreatedAt:"创建时间",docInfoSize:"大小",docInfoUpdatedAt:"上次编辑",docInfoChangePermission:"修改文章权限",docInfoInviteMember:"邀请成员",docInfoInviteSuccess:"已邀请 {{count}} 人",docInfoPermissionUpdated:"权限已更新",expandSidebar:"展开侧边栏",collapseSidebar:"收起侧边栏",bookmark:"收藏",bookmarkAdd:"添加收藏",bookmarkRemove:"取消收藏",bookmarkTitle:"我的收藏",bookmarkEmpty:"暂无收藏",bookmarkOpen:"打开",bookmarkAdded:"已添加收藏",bookmarkRemoved:"已取消收藏",bookmarkColTitle:"标题",bookmarkColDomain:"域",bookmarkColAuthor:"作者",bookmarkColTime:"收藏时间",bookmarkSearch:"搜索收藏",bookmarkFilterAll:"全部域",bookmarkNoMatch:"暂无匹配的收藏",myDocuments:"我的文章",myDocumentsEmpty:"暂无文章",myDocumentsColTitle:"标题",myDocumentsColDomain:"域",myDocumentsColUpdated:"更新时间",myDocumentsColCreated:"创建时间",myDocumentsNoMatch:"暂无匹配的文章",agentConfig:"AI",agentConfigDesc:"配置 DeepSeek 用于 mdocs 智能助手。仅本人可用,不会分享给其他访客。",agentConfigName:"配置名称",agentConfigNameDefault:"不填则:{{name}}的 ds 配置",agentConfigModel:"模型",agentConfigContextWindow:"上下文窗口",agentConfigContextWindowDesc:"助手可用的 token 上限(默认 128000),用于占用圆环显示。",agentConfigApiKey:"API Key",agentConfigApiKeyPlaceholder:"粘贴 DeepSeek API Key",agentConfigApiKeyConfigured:"已配置 {{masked}},留空不修改",agentConfigId:"配置 ID",agentConfigShowKey:"显示 API Key",agentConfigHideKey:"隐藏 API Key",agentFabOpen:"打开 mdocs 智能助手",agentFabReset:"重置位置",logout:"退出登录"},Zo="mdocs.lang",rs={en:ts,zh:ns};function os(){const e=window.localStorage.getItem(Zo);return e==="zh"||e==="en"?e:navigator.language.toLowerCase().startsWith("zh")?"zh":"en"}const Qo=_.createContext(null);function is({children:e}){const[n,r]=_.useState(os);_.useEffect(()=>{document.documentElement.lang=n==="zh"?"zh-CN":"en"},[n]);const o=_.useCallback(a=>{window.localStorage.setItem(Zo,a),r(a)},[]),i=_.useCallback((a,s)=>{let l=rs[n][a]??a;if(s)for(const[d,c]of Object.entries(s))l=l.replaceAll(`{{${d}}}`,c);return l},[n]);return f.jsx(Qo.Provider,{value:{lang:n,setLang:o,t:i},children:e})}function lt(){const e=_.useContext(Qo);if(!e)throw new Error("useI18n must be used within I18nProvider");return e}function Ht(e){const{content:n,contentHash:r,...o}=e;return o}function as(){let e=Promise.resolve();return{execute:r=>{const o=e.then(r);return e=o.then(()=>{},()=>{}),o}}}const Jr=new Map;function Xr(e){let n=Jr.get(e);return n||(n=as(),Jr.set(e,n)),n}const We={PRIVATE:0,DOMAIN_READ:1,DOMAIN_WRITE:2,PUBLIC_READ:3,PUBLIC_WRITE:4};function ss(e){return e===We.PUBLIC_WRITE}function Ju(e){return e==="public"?[We.PUBLIC_READ,We.PUBLIC_WRITE]:e==="restricted"?[We.DOMAIN_READ,We.DOMAIN_WRITE]:[We.PRIVATE,We.DOMAIN_READ,We.DOMAIN_WRITE,We.PUBLIC_READ,We.PUBLIC_WRITE]}const Zr="___desc___.md";function ls(e){const n=e.trim();return n?`${n}/${Zr}`:Zr}class yt extends Error{constructor(n){super(n),this.name="DocPathError"}}const cs=120,ds=200;function nr(e){let n=e.trim().replace(/\s+/g,"_");for(n=n.replace(/[^A-Za-z0-9_\-\.\u4e00-\u9fa5]/g,"_"),n=n.replace(/_+/g,"_"),n=n.replace(/^[._]+|[._]+$/g,"");n.includes("..");)n=n.replace(/\.\./g,"_");return n==="."||n===".."||!n?"":n}function us(e){const n=e.trim();return n?n.includes("/")||n.includes("\\")?{ok:!1,message:"use a single name, not a path"}:n==="."||n===".."?{ok:!1,message:"invalid folder name"}:n.length>cs?{ok:!1,message:"folder name is too long"}:{ok:!0,display:n}:{ok:!1,message:"enter a folder name"}}function fs(e){let n=e.trim();return n?n.includes("/")||n.includes("\\")?{ok:!1,message:"use a file name, not a path"}:n==="."||n===".."?{ok:!1,message:"invalid file name"}:(n.toLowerCase().endsWith(".md")||(n+=".md"),n.length>ds?{ok:!1,message:"file name is too long"}:{ok:!0,displayFile:n}):{ok:!1,message:"enter a file name"}}function ms(e){const n=e.trim().replace(/\\/g,"/");if(!n)throw new yt("relative path is required");if(n.startsWith("/"))throw new yt("path must be relative");if(n.includes(".."))throw new yt("path must not contain ..");const r=n.split("/").filter(d=>d.length>0);if(r.length===0)throw new yt("relative path is required");const o=[];for(let d=0;d<r.length-1;d+=1){const c=nr(r[d]);if(!c)throw new yt("invalid path segment");o.push(c)}const i=r[r.length-1];if(!i.toLowerCase().endsWith(".md"))throw new yt("document path must end with .md");const a=i.slice(0,-3),s=i.slice(-3),l=nr(a);if(!l)throw new yt("invalid file name");return o.push(l+s),o.join("/")}class Je extends Error{constructor(r,o,i,a){super(i);jt(this,"code");jt(this,"status");jt(this,"details");this.status=r,this.code=o,this.details=a}}const hs={children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"README",type:"text",version:1,id:"148"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h1",id:"147"},{children:[{detail:0,format:2,mode:"normal",style:"",text:"Hi",type:"text",version:1,id:"149"},{detail:0,format:0,mode:"normal",style:"",text:",",type:"text",version:1,id:"150"},{detail:0,format:1,mode:"normal",style:"",text:"你好",type:"text",version:1,id:"151"},{detail:0,format:0,mode:"normal",style:"",text:",欢迎使用 mdocs 文本。下面是一段用来",type:"text",version:1,id:"152"},{detail:0,format:1,mode:"normal",style:"",text:"展示 mdocs 特性",type:"text",version:1,id:"153"},{detail:0,format:0,mode:"normal",style:"",text:"的示例文档,你可以按需删改。",type:"text",version:1,id:"154"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:2,textStyle:"",id:"255"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"文本与排版",type:"text",version:1,id:"156"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"155"},{children:[{detail:0,format:1,mode:"normal",style:"",text:"粗体",type:"text",version:1,id:"157"},{detail:0,format:0,mode:"normal",style:"",text:"、",type:"text",version:1,id:"158"},{detail:0,format:2,mode:"normal",style:"",text:"斜体",type:"text",version:1,id:"159"},{detail:0,format:0,mode:"normal",style:"",text:"、",type:"text",version:1,id:"160"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"162"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"163"},{detail:0,format:0,mode:"normal",style:"",text:"行内代码",type:"text",version:1,id:"164"}],direction:"ltr",format:"",indent:0,type:"codeInline",version:1,id:"161"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"165"},{detail:0,format:0,mode:"normal",style:"",text:"、",type:"text",version:1,id:"166"},{detail:0,format:4,mode:"normal",style:"",text:"删除线",type:"text",version:1,id:"167"},{detail:0,format:0,mode:"normal",style:"",text:"。",type:"text",version:1,id:"168"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:1,textStyle:"",id:"256"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"引用块:适合写结论、提示或引用原文。",type:"text",version:1,id:"170"}],direction:"ltr",format:"",indent:0,type:"quote",version:1,id:"169"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"有序列表:",type:"text",version:1,id:"171"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"257"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"用 Markdown 记笔记",type:"text",version:1,id:"173"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:1,id:"174"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"用侧边栏管文档树",type:"text",version:1,id:"175"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:2,id:"176"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"需要时再发布或同步",type:"text",version:1,id:"177"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:3,id:"178"}],direction:"ltr",format:"",indent:0,type:"list",version:1,listType:"number",start:1,tag:"ol",id:"172"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"无序列表:",type:"text",version:1,id:"179"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"258"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"访客身份,无需单独注册账号(自建部署时由服务端配置)",type:"text",version:1,id:"181"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:1,id:"182"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"文档以 ",type:"text",version:1,id:"183"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:2,id:"184"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"186"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"187"},{detail:0,format:0,mode:"normal",style:"",text:".md",type:"text",version:1,id:"188"}],direction:"ltr",format:"",indent:0,type:"codeInline",version:1,id:"185"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:3,id:"189"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"190"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:4,id:"191"},{children:[{detail:0,format:0,mode:"normal",style:"",text:" 为主存储,结构清晰",type:"text",version:1,id:"192"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:5,id:"193"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"支持个人域与协作域等能力(视部署与权限而定)",type:"text",version:1,id:"194"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:6,id:"195"}],direction:"ltr",format:"",indent:0,type:"list",version:1,listType:"bullet",start:1,tag:"ul",id:"180"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"代码",type:"text",version:1,id:"197"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"196"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"行内常量如 ",type:"text",version:1,id:"198"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"200"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"201"},{detail:0,format:0,mode:"normal",style:"",text:"VITE_DEMO_MODE",type:"text",version:1,id:"202"}],direction:"ltr",format:"",indent:0,type:"codeInline",version:1,id:"199"},{detail:0,format:0,mode:"normal",style:"",text:"\uFEFF",type:"cursor",version:1,id:"203"},{detail:0,format:0,mode:"normal",style:"",text:",或小段示例:",type:"text",version:1,id:"204"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"259"},{type:"code",version:1,code:`// 伪代码:表达「内容即文档」
|
|
92
92
|
const doc = { path: "notes/demo.md", content: "# Hello" };`,codeTheme:"default",language:"typescript",options:{indentWithTabs:!1,lineNumbers:!1,tabSize:2},id:"205"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"表格",type:"text",version:1,id:"207"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"206"},{children:[{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"能力",type:"text",version:1,id:"211"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"210"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"说明",type:"text",version:1,id:"213"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"212"}],direction:"ltr",format:"",indent:0,type:"tablerow",version:1,height:33,id:"209"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"编辑",type:"text",version:1,id:"216"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"215"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"Markdown / 富文本流程按你们集成",type:"text",version:1,id:"218"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"217"}],direction:"ltr",format:"",indent:0,type:"tablerow",version:1,height:33,id:"214"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"图表",type:"text",version:1,id:"221"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"220"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"可按项目支持 Mermaid、meta2 等",type:"text",version:1,id:"223"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"222"}],direction:"ltr",format:"",indent:0,type:"tablerow",version:1,height:33,id:"219"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"草稿与发布",type:"text",version:1,id:"226"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"225"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"视前端与自建实例配置而定",type:"text",version:1,id:"228"}],direction:"ltr",format:"",indent:0,type:"tablecell",version:1,backgroundColor:null,colSpan:1,headerState:0,rowSpan:1,id:"227"}],direction:"ltr",format:"",indent:0,type:"tablerow",version:1,height:33,id:"224"}],direction:null,format:"",indent:0,type:"table",version:1,colWidths:[375,375],id:"208"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"链接与任务",type:"text",version:1,id:"230"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"229"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"仓库示例:",type:"text",version:1,id:"232"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:1,id:"233"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"https://github.com/xuhuafeifei/mdocs",type:"text",version:1,id:"235"}],direction:"ltr",format:"",indent:0,type:"link",version:1,rel:null,target:null,title:null,url:"https://github.com/xuhuafeifei/mdocs",id:"234"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:2,id:"236"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"站外链接用 Markdown 标注清楚即可,避免裸 URL 不易读。",type:"text",version:1,id:"237"}],direction:null,format:"",indent:0,type:"listitem",version:1,value:3,id:"238"}],direction:"ltr",format:"",indent:0,type:"list",version:1,listType:"bullet",start:1,tag:"ul",id:"231"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"任务清单:",type:"text",version:1,id:"239"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"260"},{children:[{children:[{detail:0,format:0,mode:"normal",style:"",text:"写好这段 README Demo",type:"text",version:1,id:"241"}],direction:null,format:"",indent:0,type:"listitem",version:1,checked:!1,value:1,id:"242"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"按团队习惯补一页「目录规范」",type:"text",version:1,id:"243"}],direction:null,format:"",indent:0,type:"listitem",version:1,checked:!1,value:2,id:"244"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"需要时再加架构图或流程图",type:"text",version:1,id:"245"}],direction:null,format:"",indent:0,type:"listitem",version:1,checked:!1,value:3,id:"246"}],direction:"ltr",format:"",indent:0,type:"list",version:1,listType:"check",start:1,tag:"ul",id:"240"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"示意图(若编辑器支持 Mermaid)",type:"text",version:1,id:"248"}],direction:"ltr",format:"",indent:0,type:"heading",version:1,tag:"h2",id:"247"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"若当前实例的编辑器打开了 Mermaid,可解开下面代码块使用:",type:"text",version:1,id:"249"}],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"261"},{type:"code",version:1,code:`flowchart LR
|
|
93
93
|
A[写 Markdown] --> B[整理知识库]
|
|
94
|
-
B --> C[团队共享 / 自建部署]`,codeTheme:"default",language:"mermaid",options:{indentWithTabs:!1,lineNumbers:!1,tabSize:2},id:"250"},{type:"horizontalrule",version:1,id:"251"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"你以为这就完了?还有呢!",type:"text",version:1,id:"266"}],direction:null,format:"",indent:0,type:"heading",version:1,tag:"h2",id:"264"},{type:"meta2d",version:1,diagram:'{"x":0,"y":0,"scale":1,"pens":[{"background":"#fff","color":"#1f1f1f","height":100,"lineWidth":1,"textColor":"#1f1f1f","width":100,"name":"square","text":"我是一个流程图demo","id":"50d7f95","children":[],"x":279,"y":125,"fontSize":12,"lineHeight":1.5,"anchors":[{"x":0.5,"y":0,"id":"0","penId":"50d7f95"},{"x":1,"y":0.5,"id":"1","penId":"50d7f95"},{"x":0.5,"y":1,"id":"2","penId":"50d7f95"},{"x":0,"y":0.5,"id":"3","penId":"50d7f95"}],"rotate":0,"lineAnimateImages":[],"globalAlpha":1,"connectedLines":[{"lineId":"1a57bb5","lineAnchor":"a9246ca","anchor":"3"}]},{"background":"#fff","color":"#1f1f1f","height":80,"lineWidth":1,"textColor":"#1f1f1f","width":80,"name":"circle","text":"Circle","id":"7fd209d8","children":[],"x":161,"y":244,"fontSize":12,"lineHeight":1.5,"anchors":[{"x":0.5,"y":0,"id":"0","penId":"7fd209d8"},{"x":1,"y":0.5,"id":"1","penId":"7fd209d8"},{"x":0.5,"y":1,"id":"2","penId":"7fd209d8"},{"x":0,"y":0.5,"id":"3","penId":"7fd209d8"}],"rotate":0,"lineAnimateImages":[],"globalAlpha":1,"connectedLines":[{"lineId":"1a57bb5","lineAnchor":"72da2094","anchor":"0"}]},{"id":"1a57bb5","name":"line","lineName":"curve","x":201,"y":175,"type":1,"lineWidth":1,"length":119.98519897460938,"ex":279,"ey":244,"width":78,"height":69,"fontSize":12,"lineHeight":1.5,"anchors":[{"id":"a9246ca","x":1,"y":0,"penId":"1a57bb5","connectTo":"50d7f95","anchorId":"3","next":{"penId":"1a57bb5","connectTo":"50d7f95","x":0.358974358974359,"y":0},"start":true,"lineLength":119.98519897460938,"curvePoints":[{"x":273.46745803928,"y":175.08080907361838,"step":0.037504625891000655},{"x":268.1224860178494,"y":175.325768481332,"step":0.07500925178200131},{"x":262.9669830758521,"y":175.73867650342868,"step":0.11251387767300197},{"x":258.002848353432,"y":176.32333142019604,"step":0.15001850356400262},{"x":253.23198099073284,"y":177.0835315119218,"step":0.18752312945500327},{"x":248.65628012789855,"y":178.0230750588937,"step":0.22502775534600392},{"x":244.277644905073,"y":179.14576034139955,"step":0.26253238123700456},{"x":240.0979744624002,"y":180.45538563972715,"step":0.30003700712800524},{"x":236.11916794002371,"y":181.9557492341639,"step":0.3375416330190059},{"x":232.34312447808767,"y":183.65064940499792,"step":0.3750462589100066},{"x":228.77174321673573,"y":185.54388443251662,"step":0.41255088480100727},{"x":225.40692329611198,"y":187.639252597008,"step":0.45005551069200794},{"x":222.25056385636003,"y":189.94055217875956,"step":0.4875601365830086},{"x":219.304564037624,"y":192.4515814580592,"step":0.5250647624740092},{"x":216.57082298004758,"y":195.17613871519453,"step":0.5625693883650099},{"x":214.05123982377472,"y":198.11802223045333,"step":0.6000740142560106},{"x":211.74771370894916,"y":201.28103028412335,"step":0.6375786401470113},{"x":209.66214377571495,"y":204.6689611564923,"step":0.6750832660380119},{"x":207.79642916421585,"y":208.28561312784788,"step":0.7125878919290126},{"x":206.1524690145957,"y":212.13478447847785,"step":0.7500925178200133},{"x":204.73216246699843,"y":216.22027348866996,"step":0.787597143711014},{"x":203.53740866156784,"y":220.5458784387119,"step":0.8251017696020146},{"x":202.57010673844786,"y":225.11539760889139,"step":0.8626063954930153},{"x":201.83215583778232,"y":229.9326292794962,"step":0.900111021384016},{"x":201.3254550997151,"y":235.00137173081404,"step":0.9376156472750167},{"x":201.05190366439007,"y":240.32542324313266,"step":0.9751202731660173}]},{"x":0,"y":1,"id":"72da2094","penId":"1a57bb5","connectTo":"7fd209d8","prev":{"penId":"1a57bb5","connectTo":"7fd209d8","x":0,"y":0.2753623188405797},"anchorId":"0"}],"globalAlpha":1,"rotate":0,"lineAnimateImages":[]}],"origin":{"x":0,"y":0},"center":{"x":0,"y":0},"paths":{},"template":"a77b626","lineAnimateDraws":{},"iot":{},"version":"1.1.19","dataPoints":[]}',svg:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="238" height="219"><defs/><g><g transform="translate(-151,-115)"><path fill="none" stroke="none"/><g><path fill="#fff" stroke="none" paint-order="stroke fill markers" d=" M 279 125 L 379 125 L 379 225 L 279 225 L 279 125 Z"/></g><path fill="none" stroke="#1f1f1f" paint-order="fill stroke markers" d=" M 279 125 L 379 125 L 379 225 L 279 225 L 279 125 Z" stroke-linecap="square" stroke-miterlimit="10"/><g><text fill="#1f1f1f" stroke="none" font-family=""Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" x="287" y="166.9" text-anchor="start" dominant-baseline="central">我是一个流程图</text><text fill="#1f1f1f" stroke="none" font-family=""Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" x="312.26000213623047" y="184.9" text-anchor="start" dominant-baseline="central">demo</text></g></g><g transform="translate(-151,-115)"><path fill="none" stroke="none"/><g><g transform="translate(-151,-115)"><path fill="none" stroke="none"/><g><path fill="none" stroke="none"/></g><path fill="none" stroke="#222222" paint-order="fill stroke markers" d=" M 279 175 C 229 175 201 194 201 244" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/></g></g></g></g></svg>',id:"269"},{children:[],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"270"},{children:[],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"271"},{children:[],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"272"}],direction:"ltr",format:"",type:"root",version:1,id:"root"},ps={root:hs},
|
|
94
|
+
B --> C[团队共享 / 自建部署]`,codeTheme:"default",language:"mermaid",options:{indentWithTabs:!1,lineNumbers:!1,tabSize:2},id:"250"},{type:"horizontalrule",version:1,id:"251"},{children:[{detail:0,format:0,mode:"normal",style:"",text:"你以为这就完了?还有呢!",type:"text",version:1,id:"266"}],direction:null,format:"",indent:0,type:"heading",version:1,tag:"h2",id:"264"},{type:"meta2d",version:1,diagram:'{"x":0,"y":0,"scale":1,"pens":[{"background":"#fff","color":"#1f1f1f","height":100,"lineWidth":1,"textColor":"#1f1f1f","width":100,"name":"square","text":"我是一个流程图demo","id":"50d7f95","children":[],"x":279,"y":125,"fontSize":12,"lineHeight":1.5,"anchors":[{"x":0.5,"y":0,"id":"0","penId":"50d7f95"},{"x":1,"y":0.5,"id":"1","penId":"50d7f95"},{"x":0.5,"y":1,"id":"2","penId":"50d7f95"},{"x":0,"y":0.5,"id":"3","penId":"50d7f95"}],"rotate":0,"lineAnimateImages":[],"globalAlpha":1,"connectedLines":[{"lineId":"1a57bb5","lineAnchor":"a9246ca","anchor":"3"}]},{"background":"#fff","color":"#1f1f1f","height":80,"lineWidth":1,"textColor":"#1f1f1f","width":80,"name":"circle","text":"Circle","id":"7fd209d8","children":[],"x":161,"y":244,"fontSize":12,"lineHeight":1.5,"anchors":[{"x":0.5,"y":0,"id":"0","penId":"7fd209d8"},{"x":1,"y":0.5,"id":"1","penId":"7fd209d8"},{"x":0.5,"y":1,"id":"2","penId":"7fd209d8"},{"x":0,"y":0.5,"id":"3","penId":"7fd209d8"}],"rotate":0,"lineAnimateImages":[],"globalAlpha":1,"connectedLines":[{"lineId":"1a57bb5","lineAnchor":"72da2094","anchor":"0"}]},{"id":"1a57bb5","name":"line","lineName":"curve","x":201,"y":175,"type":1,"lineWidth":1,"length":119.98519897460938,"ex":279,"ey":244,"width":78,"height":69,"fontSize":12,"lineHeight":1.5,"anchors":[{"id":"a9246ca","x":1,"y":0,"penId":"1a57bb5","connectTo":"50d7f95","anchorId":"3","next":{"penId":"1a57bb5","connectTo":"50d7f95","x":0.358974358974359,"y":0},"start":true,"lineLength":119.98519897460938,"curvePoints":[{"x":273.46745803928,"y":175.08080907361838,"step":0.037504625891000655},{"x":268.1224860178494,"y":175.325768481332,"step":0.07500925178200131},{"x":262.9669830758521,"y":175.73867650342868,"step":0.11251387767300197},{"x":258.002848353432,"y":176.32333142019604,"step":0.15001850356400262},{"x":253.23198099073284,"y":177.0835315119218,"step":0.18752312945500327},{"x":248.65628012789855,"y":178.0230750588937,"step":0.22502775534600392},{"x":244.277644905073,"y":179.14576034139955,"step":0.26253238123700456},{"x":240.0979744624002,"y":180.45538563972715,"step":0.30003700712800524},{"x":236.11916794002371,"y":181.9557492341639,"step":0.3375416330190059},{"x":232.34312447808767,"y":183.65064940499792,"step":0.3750462589100066},{"x":228.77174321673573,"y":185.54388443251662,"step":0.41255088480100727},{"x":225.40692329611198,"y":187.639252597008,"step":0.45005551069200794},{"x":222.25056385636003,"y":189.94055217875956,"step":0.4875601365830086},{"x":219.304564037624,"y":192.4515814580592,"step":0.5250647624740092},{"x":216.57082298004758,"y":195.17613871519453,"step":0.5625693883650099},{"x":214.05123982377472,"y":198.11802223045333,"step":0.6000740142560106},{"x":211.74771370894916,"y":201.28103028412335,"step":0.6375786401470113},{"x":209.66214377571495,"y":204.6689611564923,"step":0.6750832660380119},{"x":207.79642916421585,"y":208.28561312784788,"step":0.7125878919290126},{"x":206.1524690145957,"y":212.13478447847785,"step":0.7500925178200133},{"x":204.73216246699843,"y":216.22027348866996,"step":0.787597143711014},{"x":203.53740866156784,"y":220.5458784387119,"step":0.8251017696020146},{"x":202.57010673844786,"y":225.11539760889139,"step":0.8626063954930153},{"x":201.83215583778232,"y":229.9326292794962,"step":0.900111021384016},{"x":201.3254550997151,"y":235.00137173081404,"step":0.9376156472750167},{"x":201.05190366439007,"y":240.32542324313266,"step":0.9751202731660173}]},{"x":0,"y":1,"id":"72da2094","penId":"1a57bb5","connectTo":"7fd209d8","prev":{"penId":"1a57bb5","connectTo":"7fd209d8","x":0,"y":0.2753623188405797},"anchorId":"0"}],"globalAlpha":1,"rotate":0,"lineAnimateImages":[]}],"origin":{"x":0,"y":0},"center":{"x":0,"y":0},"paths":{},"template":"a77b626","lineAnimateDraws":{},"iot":{},"version":"1.1.19","dataPoints":[]}',svg:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="238" height="219"><defs/><g><g transform="translate(-151,-115)"><path fill="none" stroke="none"/><g><path fill="#fff" stroke="none" paint-order="stroke fill markers" d=" M 279 125 L 379 125 L 379 225 L 279 225 L 279 125 Z"/></g><path fill="none" stroke="#1f1f1f" paint-order="fill stroke markers" d=" M 279 125 L 379 125 L 379 225 L 279 225 L 279 125 Z" stroke-linecap="square" stroke-miterlimit="10"/><g><text fill="#1f1f1f" stroke="none" font-family=""Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" x="287" y="166.9" text-anchor="start" dominant-baseline="central">我是一个流程图</text><text fill="#1f1f1f" stroke="none" font-family=""Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" x="312.26000213623047" y="184.9" text-anchor="start" dominant-baseline="central">demo</text></g></g><g transform="translate(-151,-115)"><path fill="none" stroke="none"/><g><g transform="translate(-151,-115)"><path fill="none" stroke="none"/><g><path fill="none" stroke="none"/></g><path fill="none" stroke="#222222" paint-order="fill stroke markers" d=" M 279 175 C 229 175 201 194 201 244" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"/></g></g></g></g></svg>',id:"269"},{children:[],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"270"},{children:[],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"271"},{children:[],direction:null,format:"",indent:0,type:"paragraph",version:1,textFormat:0,textStyle:"",id:"272"}],direction:"ltr",format:"",type:"root",version:1,id:"root"},ps={root:hs},Qr=JSON.stringify(ps),qe="demo-visitor-001",Xu={visitorId:qe,visitorName:"Demo User",createdAt:new Date().toISOString(),lastSeenAt:new Date().toISOString(),disabledAt:null,mergedIntoVisitorId:null};function pn(e){let n=0;for(let r=0;r<e.length;r++){const o=e.charCodeAt(r);n=(n<<5)-n+o,n=n&n}return Math.abs(n).toString(16).padStart(64,"0")}const eo=`# Markdown 语法指南
|
|
95
95
|
|
|
96
96
|
## 基础格式
|
|
97
97
|
|
|
@@ -143,7 +143,7 @@ function hello(name: string): string {
|
|
|
143
143
|
$$
|
|
144
144
|
\\int_{-\\infty}^{\\infty} e^{-x^2} dx = \\sqrt{\\pi}
|
|
145
145
|
$$
|
|
146
|
-
`,
|
|
146
|
+
`,to=`# 图表支持示例
|
|
147
147
|
|
|
148
148
|
mdocs 集成了多种图表类型。
|
|
149
149
|
|
|
@@ -184,7 +184,7 @@ gantt
|
|
|
184
184
|
前端开发 :active, dev1, 2024-01-09, 10d
|
|
185
185
|
后端开发 : dev2, 2024-01-09, 10d
|
|
186
186
|
\`\`\`
|
|
187
|
-
`,
|
|
187
|
+
`,no=`# 个人笔记
|
|
188
188
|
|
|
189
189
|
这是我的私人域中的笔记,只有我能看到。
|
|
190
190
|
|
|
@@ -201,13 +201,13 @@ Demo 模式的核心设计:
|
|
|
201
201
|
2. 数据存储在 IndexedDB
|
|
202
202
|
3. 用户无感知切换
|
|
203
203
|
|
|
204
|
-
`,
|
|
205
|
-
`);l=m.pop()??"";for(const p of m){const g=p.trim();if(!g.startsWith("data:"))continue;const k=g.slice(5).trim();if(!(!k||k==="[DONE]"))try{n.onEvent(JSON.parse(k))}catch{}}}const d=l.trim();if(d.startsWith("data:")){const h=d.slice(5).trim();if(h&&h!=="[DONE]")try{n.onEvent(JSON.parse(h))}catch{}}}function oo(e){return H(`/api/graph/${e}`,{method:"GET"})}function Es(e){return H(`/api/graph/${e}/analyze`,{method:"POST"})}function io(e){return H(`/api/graph/domain/${e}`,{method:"GET"})}function js(e){return H(`/api/graph/domain/${e}/analyze`,{method:"POST"})}function Os(e){return H(`/api/graph/tasks/${encodeURIComponent(e)}`,{method:"GET"})}const Rs={domainId:wn,domainName:"Default",permission:"public",creatorVisitorId:"",docCount:0};async function ni(){try{return await _s()}catch{return[Rs]}}function Fs(e,n){var r,o,i;return((r=e.find(a=>a.domainId===n))==null?void 0:r.domainId)??((o=e.find(a=>a.domainId===wn))==null?void 0:o.domainId)??((i=e[0])==null?void 0:i.domainId)??wn}function Ls(e){const{t:n}=lt(),[r,o]=_.useState(!1),[i,a]=_.useState(null),[s,l]=_.useState("register"),[d,c]=_.useState(1),[h,u]=_.useState(""),[m,p]=_.useState(""),[g,k]=_.useState("password"),[b,v]=_.useState(""),[w,D]=_.useState(""),[I,S]=_.useState("");function N(F){if(F.preventDefault(),!h.trim()){a(n("nameRequired"));return}a(null),c(2)}async function P(F){F.preventDefault(),o(!0),a(null);try{const B=m.trim();await e.onSubmit(h.trim(),B||void 0)}catch(B){a(B instanceof Error?B.message:String(B)),c(1)}finally{o(!1)}}async function T(F){F.preventDefault();const B=b.trim(),A=w.trim();if(!B||!A){a("请输入用户名和密码");return}o(!0),a(null);try{const Y=await xs(B,A);_n(Y.visitor.visitorId),await e.onRecover(Y.visitor.visitorId)}catch(Y){a(Y instanceof Error?Y.message:String(Y))}finally{o(!1)}}async function U(F){F.preventDefault();const B=I.trim();if(!B){a("请输入恢复码");return}o(!0),a(null);try{const A=await bs(B);_n(A.visitor.visitorId),await e.onRecover(A.visitor.visitorId)}catch(A){a(A instanceof Error?A.message:String(A))}finally{o(!1)}}const E=i??e.error;function $(F){a(null),l(F)}return f.jsx("div",{className:"mdocs-dialog-backdrop",children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:420},children:[f.jsxs("div",{style:{display:"flex",borderBottom:"1px solid var(--mdocs-border)",marginBottom:16},children:[f.jsx("button",{type:"button",onClick:()=>$("register"),style:{flex:1,padding:"12px",border:"none",background:s==="register"?"var(--mdocs-bg)":"none",color:s==="register"?"var(--mdocs-text)":"var(--mdocs-text-secondary)",cursor:"pointer",fontWeight:s==="register"?600:400,borderBottom:s==="register"?"2px solid var(--mdocs-accent)":"none"},children:"注册"}),f.jsx("button",{type:"button",onClick:()=>$("login"),style:{flex:1,padding:"12px",border:"none",background:s==="login"?"var(--mdocs-bg)":"none",color:s==="login"?"var(--mdocs-text)":"var(--mdocs-text-secondary)",cursor:"pointer",fontWeight:s==="login"?600:400,borderBottom:s==="login"?"2px solid var(--mdocs-accent)":"none"},children:"登录"})]}),s==="register"&&f.jsx(f.Fragment,{children:d===1?f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:n("welcomeTitle")}),f.jsx("p",{children:n("welcomeDesc")}),f.jsxs("form",{onSubmit:N,children:[f.jsx("input",{autoFocus:!0,placeholder:n("visitorNamePlaceholder"),value:h,onChange:F=>u(F.target.value),maxLength:60}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,children:"下一步"})]}),f.jsx("p",{style:{marginTop:16,textAlign:"center"},children:f.jsx("button",{type:"button",style:{background:"none",border:"none",color:"var(--mdocs-accent)",cursor:"pointer",fontSize:"0.875rem",textDecoration:"underline",padding:0},onClick:()=>$("login"),children:"已有账号?点击登录"})})]}):f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:"设置密码(可选)"}),f.jsx("p",{style:{marginBottom:8},children:"设置密码后,你可以在其他浏览器或设备上使用「用户名+密码」登录。"}),f.jsx("p",{style:{color:"var(--mdocs-text-secondary)",fontSize:"0.875rem",marginBottom:16},children:"留空不设置密码也能正常使用,但只能在当前浏览器操作。"}),f.jsxs("form",{onSubmit:P,children:[f.jsx("input",{autoFocus:!0,type:"password",placeholder:"设置密码(至少 4 位)",value:m,onChange:F=>p(F.target.value),minLength:4}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,style:{marginTop:8},children:r?n("creating"):"完成注册"})]}),f.jsx("p",{style:{marginTop:16,textAlign:"center"},children:f.jsx("button",{type:"button",style:{background:"none",border:"none",color:"var(--mdocs-text-secondary)",cursor:"pointer",fontSize:"0.875rem",padding:0},onClick:()=>c(1),children:"← 返回上一步"})})]})}),s==="login"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{style:{display:"flex",gap:16,marginBottom:16,fontSize:"0.875rem"},children:[f.jsx("button",{type:"button",onClick:()=>{a(null),k("password")},style:{background:"none",border:"none",color:g==="password"?"var(--mdocs-accent)":"var(--mdocs-text-secondary)",cursor:"pointer",padding:"4px 0",borderBottom:g==="password"?"2px solid var(--mdocs-accent)":"none",fontWeight:g==="password"?600:400},children:"用户名+密码"}),f.jsx("button",{type:"button",onClick:()=>{a(null),k("recovery")},style:{background:"none",border:"none",color:g==="recovery"?"var(--mdocs-accent)":"var(--mdocs-text-secondary)",cursor:"pointer",padding:"4px 0",borderBottom:g==="recovery"?"2px solid var(--mdocs-accent)":"none",fontWeight:g==="recovery"?600:400},children:"恢复码"})]}),g==="password"?f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:"🔑 使用密码登录"}),f.jsx("p",{children:"输入用户名和密码,在其他设备上找回你的身份。"}),f.jsxs("form",{onSubmit:T,children:[f.jsx("input",{autoFocus:!0,placeholder:"用户名",value:b,onChange:F=>v(F.target.value),maxLength:60,style:{marginBottom:8}}),f.jsx("input",{type:"password",placeholder:"密码",value:w,onChange:F=>D(F.target.value)}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,children:r?"验证中…":"登录"})]}),f.jsx("p",{style:{marginTop:16,textAlign:"center"},children:f.jsx("button",{type:"button",style:{background:"none",border:"none",color:"var(--mdocs-accent)",cursor:"pointer",fontSize:"0.875rem",textDecoration:"underline",padding:0},onClick:()=>$("register"),children:"没有账号?去注册"})})]}):f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:"🔑 使用恢复码找回"}),f.jsx("p",{children:"输入注册时保存的恢复码,系统将为您生成新的身份令牌。"}),f.jsxs("form",{onSubmit:U,children:[f.jsx("input",{autoFocus:!0,placeholder:"ABCD-EFGH-IJKL-MNOP",value:I,onChange:F=>S(F.target.value),style:{fontFamily:"monospace",letterSpacing:"0.1em"},maxLength:30}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,children:r?"验证中…":"找回身份"})]})]})]})]})})}function zs(e){const{t:n}=lt();return f.jsxs("div",{className:"mdocs-notice card",children:[f.jsx("span",{children:n("visitorIdNotice",{id:e.visitorId})}),f.jsx("button",{type:"button",onClick:e.onDismiss,children:n("gotIt")})]})}const ri="application/x-mdocs-document-id",rr="mdocs-doc:";let St=null;function oi(e,n,r=[]){for(const o of e){if(o.type==="document"){if(o.documentId===n)return{forceOpenFolderIds:r,scrollTreeId:o.documentId};continue}if(o.descDocumentId===n)return{forceOpenFolderIds:r,scrollTreeId:o.documentId};const i=oi(o.children,n,[...r,o.documentId]);if(i)return i}return null}function vr(e){if(St)return St;try{const n=e.getData(ri);if(n)return n;const r=e.getData("text/plain")||e.getData("Text");if(r.startsWith(rr))return r.slice(rr.length)}catch{}return""}function vt(e){return!!(e&&St)}function $s(e){const{t:n}=lt(),r=_.useRef(null),[o,i]=_.useState(null),[a,s]=_.useState(null),l=_.useMemo(()=>{var v;const b=(v=e.activeDocumentId)==null?void 0:v.trim();return b?oi(e.nodes,b):null},[e.nodes,e.activeDocumentId]),d=_.useMemo(()=>new Set((l==null?void 0:l.forceOpenFolderIds)??[]),[l]);_.useEffect(()=>{if(!(l!=null&&l.scrollTreeId))return;const b=l.scrollTreeId,v=()=>{var I;const D=(I=r.current)==null?void 0:I.querySelector(`[data-tree-id="${CSS.escape(b)}"]`);D==null||D.scrollIntoView({block:"nearest",behavior:"smooth"})},w=requestAnimationFrame(()=>{requestAnimationFrame(v)});return()=>cancelAnimationFrame(w)},[l==null?void 0:l.scrollTreeId,d,e.nodes]);function c(){i(null)}function h(){St=null,s(null),c()}function u(b){St=b,s(b),c()}function m(b){if(!vt(e.onMoveDocument))return;b.preventDefault(),b.dataTransfer.dropEffect="move",b.target.closest(".mdocs-tree-row")||i({kind:"root"})}function p(b){const v=b.relatedTarget;v&&b.currentTarget.contains(v)||i(w=>(w==null?void 0:w.kind)==="root"?null:w)}function g(b){if(!e.onMoveDocument||!vt(e.onMoveDocument))return;b.preventDefault(),b.stopPropagation();const w=b.target.closest(".mdocs-tree-row"),D=vr(b.dataTransfer);h(),!w&&D&&e.onMoveDocument(D,null)}const k="mdocs-sidebar-list"+((o==null?void 0:o.kind)==="root"?" mdocs-tree-drop-root":"");return e.nodes.length===0?f.jsx("div",{ref:r,className:k,onDragOver:m,onDragLeave:p,onDrop:g,children:f.jsx("div",{className:"muted",style:{padding:"8px 10px",fontSize:12},children:n("noDocumentsYet")})}):f.jsx("div",{ref:r,className:k,onClick:b=>{var w;b.target.closest(".mdocs-tree-row")||(w=e.onDeselect)==null||w.call(e)},onContextMenu:b=>{b.preventDefault(),e.onContextMenu({x:b.clientX,y:b.clientY,node:{type:"folder",name:"",path:"",documentId:"",children:e.nodes},parentPath:""})},onDragOver:m,onDragLeave:p,onDrop:g,children:e.nodes.map(b=>f.jsx(ii,{node:b,depth:0,parentPath:"",parentFolderId:null,activeDocumentId:e.activeDocumentId,selectedParentPath:e.selectedParentPath,forceOpenFolderIds:d,dropHighlight:o,setDropHighlight:i,clearDropHighlight:c,beginDragSession:u,endDragSession:h,draggingId:a,onOpen:e.onOpen,onOpenFolder:e.onOpenFolder,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph},b.path))})}function ii(e){const n={paddingLeft:8+e.depth*16};return e.node.type==="folder"?f.jsx(Hs,{folder:e.node,depth:e.depth,indent:n,activeDocumentId:e.activeDocumentId,selectedParentPath:e.selectedParentPath,forceOpenFolderIds:e.forceOpenFolderIds,dropHighlight:e.dropHighlight,setDropHighlight:e.setDropHighlight,clearDropHighlight:e.clearDropHighlight,beginDragSession:e.beginDragSession,endDragSession:e.endDragSession,draggingId:e.draggingId,onOpen:e.onOpen,onOpenFolder:e.onOpenFolder,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph}):f.jsx(Us,{doc:e.node,indent:n,parentPath:e.parentPath,parentFolderId:e.parentFolderId,activeDocumentId:e.activeDocumentId,dropHighlight:e.dropHighlight,setDropHighlight:e.setDropHighlight,clearDropHighlight:e.clearDropHighlight,beginDragSession:e.beginDragSession,endDragSession:e.endDragSession,draggingId:e.draggingId,onOpen:e.onOpen,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph})}function Us(e){var h;const n=e.doc,r=n.documentId===e.activeDocumentId,o=!!e.onMoveDocument,i=e.draggingId===n.documentId,[a,s]=_.useState(!1),l=((h=e.dropHighlight)==null?void 0:h.kind)==="doc"&&e.dropHighlight.id===n.documentId,[d,c]=_.useState(!1);return f.jsxs("div",{role:"button",tabIndex:0,className:"mdocs-tree-row mdocs-tree-doc"+(r?" active":"")+(i?" mdocs-tree-dragging":"")+(l?" mdocs-tree-drop-target":""),"data-tree-id":n.documentId,style:{...e.indent,cursor:o?"grab":void 0},draggable:o,onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),onDragStart:u=>{e.onMoveDocument&&(c(!0),e.beginDragSession(n.documentId),u.dataTransfer.setData(ri,n.documentId),u.dataTransfer.setData("text/plain",rr+n.documentId),u.dataTransfer.effectAllowed="move")},onDragEnd:()=>{e.endDragSession(),queueMicrotask(()=>c(!1))},onDragEnter:u=>{!vt(e.onMoveDocument)||St===n.documentId||(u.preventDefault(),u.stopPropagation(),e.setDropHighlight({kind:"doc",id:n.documentId}))},onDragOver:u=>{!vt(e.onMoveDocument)||St===n.documentId||(u.preventDefault(),u.stopPropagation(),u.dataTransfer.dropEffect="move",e.setDropHighlight({kind:"doc",id:n.documentId}))},onDrop:u=>{if(!e.onMoveDocument||!vt(e.onMoveDocument))return;u.preventDefault(),u.stopPropagation();const m=vr(u.dataTransfer),p=e.parentFolderId;e.endDragSession(),!(!m||m===n.documentId)&&e.onMoveDocument(m,p)},onClick:()=>{d||e.onOpen(n)},onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),e.onOpen(n))},onContextMenu:u=>{u.preventDefault(),u.stopPropagation(),e.onContextMenu({x:u.clientX,y:u.clientY,node:n,parentPath:e.parentPath})},children:[f.jsx("span",{className:"mdocs-tree-caret-spacer","aria-hidden":!0}),f.jsx("span",{className:"mdocs-tree-icon",children:"md"}),f.jsx("span",{className:"mdocs-tree-label",title:n.displayName||n.name,children:n.displayName||n.name}),(e.onOpenGraph||e.onGenerateGraph)&&f.jsxs("span",{className:"mdocs-tree-hover-actions",onClick:u=>u.stopPropagation(),children:[e.onOpenGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"查看图谱",onClick:u=>{var m;u.stopPropagation(),(m=e.onOpenGraph)==null||m.call(e,e.doc,e.parentFolderId??void 0)},children:f.jsx(gr,{size:14,strokeWidth:1.75})}),e.onGenerateGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"生成图谱",onClick:u=>{var m;u.stopPropagation(),(m=e.onGenerateGraph)==null||m.call(e,e.doc,e.parentFolderId??void 0)},children:f.jsx(Xo,{size:14,strokeWidth:1.75})})]})]})}function Bs(){return f.jsx("span",{className:"mdocs-tree-icon mdocs-tree-icon-dir","aria-hidden":!0,children:f.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M2 4.5h4.2L7.3 6H14v8.5H2V4.5z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),f.jsx("path",{d:"M2 4.5V3h4l1.1 1.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})})}function Hs(e){var h,u,m;const{t:n}=lt(),r=e.forceOpenFolderIds.has(e.folder.documentId),[o,i]=_.useState(e.depth<1||r),a=o;_.useEffect(()=>{r&&i(!0)},[r,e.activeDocumentId]);const s=!!e.folder.descDocumentId&&e.folder.descDocumentId===e.activeDocumentId,l=e.selectedParentPath===e.folder.path,d=((h=e.dropHighlight)==null?void 0:h.kind)==="folder"&&e.dropHighlight.id===e.folder.documentId;function c(){e.onOpenFolder(e.folder.path,e.folder.descDocumentId)}return f.jsxs("div",{children:[f.jsxs("div",{className:"mdocs-tree-row mdocs-tree-folder mdocs-tree-folder-row"+(s?" active":l?" mdocs-tree-select-target":"")+(d?" mdocs-tree-drop-target":""),"data-tree-id":e.folder.documentId,style:e.indent,onClick:c,onContextMenu:p=>{p.preventDefault(),p.stopPropagation(),e.onContextMenu({x:p.clientX,y:p.clientY,node:e.folder,parentPath:e.folder.path})},onDragEnter:p=>{vt(e.onMoveDocument)&&(p.preventDefault(),p.stopPropagation(),e.setDropHighlight({kind:"folder",id:e.folder.documentId}),i(!0))},onDragOver:p=>{vt(e.onMoveDocument)&&(p.preventDefault(),p.stopPropagation(),p.dataTransfer.dropEffect="move",e.setDropHighlight({kind:"folder",id:e.folder.documentId}))},onDrop:p=>{if(!e.onMoveDocument||!vt(e.onMoveDocument))return;p.preventDefault(),p.stopPropagation();const g=vr(p.dataTransfer),k=e.folder.documentId;e.endDragSession(),g&&e.onMoveDocument(g,k)},children:[f.jsx("span",{className:"mdocs-tree-caret",role:"button",tabIndex:0,"aria-expanded":a,"aria-label":n(a?"collapseFolder":"expandFolder"),onClick:p=>{p.stopPropagation(),i(g=>!g),c()},onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),i(g=>!g),c())},children:a?"▾":"▸"}),f.jsx(Bs,{}),f.jsx("span",{className:"mdocs-tree-folder-select",children:f.jsx("span",{className:"mdocs-tree-label",title:((u=e.folder.folderDisplayName)==null?void 0:u.trim())||e.folder.name,children:((m=e.folder.folderDisplayName)==null?void 0:m.trim())||e.folder.name})}),(e.onOpenGraph||e.onGenerateGraph)&&f.jsxs("span",{className:"mdocs-tree-hover-actions",onClick:p=>p.stopPropagation(),children:[e.onOpenGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"查看图谱",onClick:p=>{var g;p.stopPropagation(),(g=e.onOpenGraph)==null||g.call(e,e.folder)},children:f.jsx(gr,{size:14,strokeWidth:1.75})}),e.onGenerateGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"生成图谱",onClick:p=>{var g;p.stopPropagation(),(g=e.onGenerateGraph)==null||g.call(e,e.folder)},children:f.jsx(Xo,{size:14,strokeWidth:1.75})})]})]}),a&&e.folder.children.map(p=>f.jsx(ii,{node:p,depth:e.depth+1,parentPath:e.folder.path,parentFolderId:e.folder.documentId,activeDocumentId:e.activeDocumentId,selectedParentPath:e.selectedParentPath,forceOpenFolderIds:e.forceOpenFolderIds,dropHighlight:e.dropHighlight,setDropHighlight:e.setDropHighlight,clearDropHighlight:e.clearDropHighlight,beginDragSession:e.beginDragSession,endDragSession:e.endDragSession,draggingId:e.draggingId,onOpen:e.onOpen,onOpenFolder:e.onOpenFolder,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph},p.path))]})}function Vs(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n===0){if(Object(r)!==r)return;d=!1}else for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function Gs(e,n,r){return n=Qs(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function ao(e,n){return Ys(e)||Vs(e,n)||ai(e,n)||Xs()}function Ws(e){return qs(e)||Ks(e)||ai(e)||Js()}function qs(e){if(Array.isArray(e))return or(e)}function Ys(e){if(Array.isArray(e))return e}function Ks(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ai(e,n){if(e){if(typeof e=="string")return or(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return or(e,n)}}function or(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=new Array(n);r<n;r++)o[r]=e[r];return o}function Js(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
204
|
+
`,Zu=[{documentId:"doc-welcome",relativePath:"README.md",displayName:"README",content:Qr,contentHash:pn(Qr),permission:1,ownerVisitorId:qe,domainId:"default",updatedBy:qe,updatedAt:new Date().toISOString(),createdAt:new Date().toISOString(),fileType:"md",parentId:null},{documentId:"doc-markdown-guide",relativePath:"指南/Markdown 语法.md",displayName:"Markdown 语法",content:eo,contentHash:pn(eo),permission:1,ownerVisitorId:qe,domainId:"default",updatedBy:qe,updatedAt:new Date().toISOString(),createdAt:new Date().toISOString(),fileType:"md",parentId:null},{documentId:"doc-diagram-guide",relativePath:"指南/图表支持.md",displayName:"图表支持",content:to,contentHash:pn(to),permission:1,ownerVisitorId:qe,domainId:"default",updatedBy:qe,updatedAt:new Date().toISOString(),createdAt:new Date().toISOString(),fileType:"md",parentId:null},{documentId:"doc-personal-note",relativePath:"个人笔记.md",displayName:"个人笔记",content:no,contentHash:pn(no),permission:0,ownerVisitorId:qe,domainId:qe,updatedBy:qe,updatedAt:new Date().toISOString(),createdAt:new Date().toISOString(),fileType:"md",parentId:null}];const vr="mdocs.visitorId",rr="mdocs-api-error";function gs(e){typeof window>"u"||window.dispatchEvent(new CustomEvent(rr,{detail:{status:e.status,code:e.code,message:e.message}}))}function ei(){return!1}function Qu(){return window.localStorage.getItem(vr)}function _n(e){window.localStorage.setItem(vr,e)}function ys(){window.localStorage.removeItem(vr)}async function H(e,n={}){try{ei();const r=new Headers(n.headers);!r.has("Content-Type")&&n.body&&r.set("Content-Type","application/json");const o=await fetch(e,{...n,headers:r});if(o.status===204)return;const i=await o.text();let a;try{a=i?JSON.parse(i):null}catch{throw new Je(o.status,"BAD_RESPONSE","response is not valid JSON")}if(!o.ok){const s=a==null?void 0:a.error;throw new Je(o.status,(s==null?void 0:s.code)??"UNKNOWN",(s==null?void 0:s.message)??"request failed",s==null?void 0:s.details)}return a.data}catch(r){throw r instanceof Je&&gs(r),r}}const wn="default",ef=["public","restricted","private"];function tf(e){return e===wn}function nf(e,n){return n!==null&&e.creatorVisitorId===n}function rf(e){return e.docCount>0}function vs(e,n){return H("/api/visitors/register",{method:"POST",body:JSON.stringify({visitorName:e,password:n})})}function bs(e){return H("/api/visitors/recover",{method:"POST",body:JSON.stringify({recoveryCode:e})})}function xs(e,n){return H("/api/visitors/login",{method:"POST",body:JSON.stringify({visitorName:e,password:n})})}function of(e){return H("/api/visitors/set-password",{method:"POST",body:JSON.stringify({password:e})})}function af(){return H("/api/visitors/recovery-code",{method:"POST"})}async function ro(){return(await H("/api/visitors/me")).visitor}function sf(){return H("/api/visitors").then(e=>e.visitors)}function _s(){return H("/api/domains")}function lf(e){return H("/api/domains",{method:"POST",body:JSON.stringify(e)})}function cf(e,n){return H(`/api/domains/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify({domainName:n})})}function df(e,n){return H(`/api/domains/${encodeURIComponent(e)}/permission`,{method:"PUT",body:JSON.stringify({permission:n})})}function uf(e){return H(`/api/domains/${encodeURIComponent(e)}`,{method:"DELETE"})}function ff(e){return H(`/api/domains/${encodeURIComponent(e)}/members`).then(n=>n.members)}function mf(e,n){return H(`/api/domains/${encodeURIComponent(e)}/members`,{method:"PUT",body:JSON.stringify({visitorIds:n})})}function hf(){return H("/api/domain-member-templates")}function pf(e){return H("/api/domain-member-templates",{method:"POST",body:JSON.stringify(e)})}function gf(e,n){return H(`/api/domain-member-templates/${encodeURIComponent(String(e))}`,{method:"PUT",body:JSON.stringify(n)})}function yf(e){return H(`/api/domain-member-templates/${encodeURIComponent(String(e))}`,{method:"DELETE"})}function ws(e){const n=e!=null&&e.trim()?`?domainId=${encodeURIComponent(e.trim())}`:"";return H(`/api/tree${n}`)}function Vt(e){return H(`/api/documents/${encodeURIComponent(e)}`)}function ti(e){return H("/api/documents",{method:"POST",body:JSON.stringify(e)})}function oo(e,n){return H(`/api/documents/${encodeURIComponent(e)}`,{method:"PUT",body:JSON.stringify(n)})}function ks(e,n){const r=n?`?localBaseCommitId=${encodeURIComponent(n)}`:"";return H(`/api/documents/${encodeURIComponent(e)}/sync-status${r}`)}function vf(e,n,r){const o=new URLSearchParams({localBaseCommitId:n,remoteCommitId:r});return H(`/api/documents/${encodeURIComponent(e)}/merge-context?${o}`)}function Un(e){return H("/api/documents/convert",{method:"POST",body:JSON.stringify(e)})}function Cs(e){return H(`/api/documents/${encodeURIComponent(e)}`,{method:"DELETE"})}function Is(e,n){return H(`/api/documents/${encodeURIComponent(e)}/move`,{method:"POST",body:JSON.stringify({parentId:n})})}function bf(e){return H(`/api/documents/${encodeURIComponent(e)}/invites`)}function xf(e,n,r){return H(`/api/documents/${encodeURIComponent(e)}/invites`,{method:"POST",body:JSON.stringify({targetVisitorId:n,targetPermission:r})})}function _f(e,n){return H(`/api/documents/${encodeURIComponent(e)}/invites/${encodeURIComponent(n)}`,{method:"DELETE"})}async function wf(e,n){var c;const r=new FormData;r.append("file[]",e),r.append("documentId",n);const o=new Headers,i=await fetch("/api/assets/upload",{method:"POST",headers:o,body:r}),a=await i.json(),s=a;if(!i.ok||s.code===1){const h=a==null?void 0:a.error;throw new Je(i.status,(h==null?void 0:h.code)??"UPLOAD_FAILED",(h==null?void 0:h.message)??s.msg??"upload failed")}const l=((c=s.data)==null?void 0:c.succMap)??{},d=Object.values(l);if(d.length===0)throw new Error("upload succeeded but no URL returned");return d[0]}function Ss(e){return H("/api/folders",{method:"POST",body:JSON.stringify(e)})}function Ds(e){return H(`/api/documents/folder/${encodeURIComponent(e)}`,{method:"DELETE"})}function kf(e){return H("/api/cli/tokens",{method:"POST",body:JSON.stringify({})})}function Cf(){return H("/api/cli/tokens")}function Ps(){return H("/api/bookmarks")}function If(e){return H(`/api/bookmarks/${encodeURIComponent(e)}`)}function Sf(e){return H(`/api/bookmarks/${encodeURIComponent(e)}`,{method:"POST"})}function Ns(e){return H(`/api/bookmarks/${encodeURIComponent(e)}`,{method:"DELETE"})}function Df(){return H("/api/visitors/me/documents")}function Ts(e){return H(`/api/documents/${encodeURIComponent(e)}/comments`)}function As(e,n){return H(`/api/documents/${encodeURIComponent(e)}/comments`,{method:"POST",body:JSON.stringify(n)})}function Ms(e,n){return H(`/api/documents/${encodeURIComponent(e)}/comments/${encodeURIComponent(n)}`,{method:"DELETE"})}function Pf(){return H("/api/agent/configs")}function Nf(e){return H("/api/agent/config",{method:"PUT",body:JSON.stringify(e)})}function Tf(e){return H(`/api/agent/config/${encodeURIComponent(e)}/default`,{method:"POST"})}function Af(e){return H(`/api/agent/config/${encodeURIComponent(e)}`,{method:"DELETE"})}function Mf(){return H("/api/agent/skills")}function Ef(e){return H("/api/agent/skills",{method:"POST",body:JSON.stringify(e)})}function jf(e,n){return H(`/api/agent/skills/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(n)})}function Of(e){return H(`/api/agent/skills/${encodeURIComponent(e)}`,{method:"DELETE"})}function Rf(){return H("/api/agent/status")}function Ff(){return H("/api/agent/context-usage")}function Lf(e="normal",n){const r=new URLSearchParams;e==="coding"&&(r.set("mode","coding"),n&&r.set("documentId",n));const o=r.toString();return H(`/api/agent/session${o?`?${o}`:""}`)}function zf(e="normal",n){const r=new URLSearchParams;e==="coding"&&(r.set("mode","coding"),n&&r.set("documentId",n));const o=r.toString();return H(`/api/agent/sessions${o?`?${o}`:""}`)}function $f(e="normal",n){return H("/api/agent/sessions",{method:"POST",body:JSON.stringify({mode:e,...e==="coding"?{documentId:n??null}:{}})})}function Uf(e,n="normal",r){return H("/api/agent/session/open",{method:"POST",body:JSON.stringify({sessionId:e,mode:n,...n==="coding"?{documentId:r??null}:{}})})}function Bf(e,n){return H("/api/agent/session/bind-document",{method:"POST",body:JSON.stringify({sessionId:e,documentId:n})})}function Hf(e,n){return H("/api/agent/choice",{method:"POST",body:JSON.stringify({requestId:e,choice:n})})}function Vf(e){return H("/api/agent/choice",{method:"POST",body:JSON.stringify({requestId:e,expire:!0})})}function Gf(e){return H("/api/agent/choice",{method:"POST",body:JSON.stringify({requestId:e,cancel:!0})})}function Wf(e,n){return H("/api/agent/skill-form",{method:"POST",body:JSON.stringify({requestId:e,...n})})}function qf(e){return H("/api/agent/skill-form",{method:"POST",body:JSON.stringify({requestId:e,expire:!0})})}function Yf(e){return H("/api/agent/skill-form",{method:"POST",body:JSON.stringify({requestId:e,cancel:!0})})}async function Kf(e,n){var c;const r={message:e,mode:n.mode==="coding"?"coding":"normal"},o=n.skillNames&&n.skillNames.length>0?n.skillNames:n.skillIds&&n.skillIds.length>0?n.skillIds:void 0;o&&(r.skillNames=o),n.mode==="coding"?(n.documentId!==void 0&&(r.documentId=n.documentId),typeof n.workingMarkdown=="string"&&(r.workingMarkdown=n.workingMarkdown),typeof n.baseMarkdown=="string"&&(r.baseMarkdown=n.baseMarkdown)):n.references&&(r.references=n.references);const i=await fetch("/api/agent/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r),signal:n.signal});if(!i.ok){let h=`HTTP ${i.status}`;try{const u=await i.json();(c=u.error)!=null&&c.message&&(h=u.error.message)}catch{}throw new Error(h)}if(!i.body)throw new Error("empty response body");const a=i.body.getReader(),s=new TextDecoder;let l="";for(;;){const{done:h,value:u}=await a.read();if(h)break;l+=s.decode(u,{stream:!0});const m=l.split(`
|
|
205
|
+
`);l=m.pop()??"";for(const p of m){const g=p.trim();if(!g.startsWith("data:"))continue;const k=g.slice(5).trim();if(!(!k||k==="[DONE]"))try{n.onEvent(JSON.parse(k))}catch{}}}const d=l.trim();if(d.startsWith("data:")){const h=d.slice(5).trim();if(h&&h!=="[DONE]")try{n.onEvent(JSON.parse(h))}catch{}}}function io(e){return H(`/api/graph/${e}`,{method:"GET"})}function Es(e){return H(`/api/graph/${e}/analyze`,{method:"POST"})}function ao(e){return H(`/api/graph/domain/${e}`,{method:"GET"})}function js(e){return H(`/api/graph/domain/${e}/analyze`,{method:"POST"})}function Os(e){return H(`/api/graph/tasks/${encodeURIComponent(e)}`,{method:"GET"})}const Rs={domainId:wn,domainName:"Default",permission:"public",creatorVisitorId:"",docCount:0};async function ni(){try{return await _s()}catch{return[Rs]}}function Fs(e,n){var r,o,i;return((r=e.find(a=>a.domainId===n))==null?void 0:r.domainId)??((o=e.find(a=>a.domainId===wn))==null?void 0:o.domainId)??((i=e[0])==null?void 0:i.domainId)??wn}function Ls(e){const{t:n}=lt(),[r,o]=_.useState(!1),[i,a]=_.useState(null),[s,l]=_.useState("register"),[d,c]=_.useState(1),[h,u]=_.useState(""),[m,p]=_.useState(""),[g,k]=_.useState("password"),[b,v]=_.useState(""),[w,D]=_.useState(""),[I,S]=_.useState("");function N(F){if(F.preventDefault(),!h.trim()){a(n("nameRequired"));return}a(null),c(2)}async function P(F){F.preventDefault(),o(!0),a(null);try{const B=m.trim();await e.onSubmit(h.trim(),B||void 0)}catch(B){a(B instanceof Error?B.message:String(B)),c(1)}finally{o(!1)}}async function T(F){F.preventDefault();const B=b.trim(),A=w.trim();if(!B||!A){a("请输入用户名和密码");return}o(!0),a(null);try{const Y=await xs(B,A);_n(Y.visitor.visitorId),await e.onRecover(Y.visitor.visitorId)}catch(Y){a(Y instanceof Error?Y.message:String(Y))}finally{o(!1)}}async function U(F){F.preventDefault();const B=I.trim();if(!B){a("请输入恢复码");return}o(!0),a(null);try{const A=await bs(B);_n(A.visitor.visitorId),await e.onRecover(A.visitor.visitorId)}catch(A){a(A instanceof Error?A.message:String(A))}finally{o(!1)}}const E=i??e.error;function $(F){a(null),l(F)}return f.jsx("div",{className:"mdocs-dialog-backdrop",children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:420},children:[f.jsxs("div",{style:{display:"flex",borderBottom:"1px solid var(--mdocs-border)",marginBottom:16},children:[f.jsx("button",{type:"button",onClick:()=>$("register"),style:{flex:1,padding:"12px",border:"none",background:s==="register"?"var(--mdocs-bg)":"none",color:s==="register"?"var(--mdocs-text)":"var(--mdocs-text-secondary)",cursor:"pointer",fontWeight:s==="register"?600:400,borderBottom:s==="register"?"2px solid var(--mdocs-accent)":"none"},children:"注册"}),f.jsx("button",{type:"button",onClick:()=>$("login"),style:{flex:1,padding:"12px",border:"none",background:s==="login"?"var(--mdocs-bg)":"none",color:s==="login"?"var(--mdocs-text)":"var(--mdocs-text-secondary)",cursor:"pointer",fontWeight:s==="login"?600:400,borderBottom:s==="login"?"2px solid var(--mdocs-accent)":"none"},children:"登录"})]}),s==="register"&&f.jsx(f.Fragment,{children:d===1?f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:n("welcomeTitle")}),f.jsx("p",{children:n("welcomeDesc")}),f.jsxs("form",{onSubmit:N,children:[f.jsx("input",{autoFocus:!0,placeholder:n("visitorNamePlaceholder"),value:h,onChange:F=>u(F.target.value),maxLength:60}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,children:"下一步"})]}),f.jsx("p",{style:{marginTop:16,textAlign:"center"},children:f.jsx("button",{type:"button",style:{background:"none",border:"none",color:"var(--mdocs-accent)",cursor:"pointer",fontSize:"0.875rem",textDecoration:"underline",padding:0},onClick:()=>$("login"),children:"已有账号?点击登录"})})]}):f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:"设置密码(可选)"}),f.jsx("p",{style:{marginBottom:8},children:"设置密码后,你可以在其他浏览器或设备上使用「用户名+密码」登录。"}),f.jsx("p",{style:{color:"var(--mdocs-text-secondary)",fontSize:"0.875rem",marginBottom:16},children:"留空不设置密码也能正常使用,但只能在当前浏览器操作。"}),f.jsxs("form",{onSubmit:P,children:[f.jsx("input",{autoFocus:!0,type:"password",placeholder:"设置密码(至少 4 位)",value:m,onChange:F=>p(F.target.value),minLength:4}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,style:{marginTop:8},children:r?n("creating"):"完成注册"})]}),f.jsx("p",{style:{marginTop:16,textAlign:"center"},children:f.jsx("button",{type:"button",style:{background:"none",border:"none",color:"var(--mdocs-text-secondary)",cursor:"pointer",fontSize:"0.875rem",padding:0},onClick:()=>c(1),children:"← 返回上一步"})})]})}),s==="login"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{style:{display:"flex",gap:16,marginBottom:16,fontSize:"0.875rem"},children:[f.jsx("button",{type:"button",onClick:()=>{a(null),k("password")},style:{background:"none",border:"none",color:g==="password"?"var(--mdocs-accent)":"var(--mdocs-text-secondary)",cursor:"pointer",padding:"4px 0",borderBottom:g==="password"?"2px solid var(--mdocs-accent)":"none",fontWeight:g==="password"?600:400},children:"用户名+密码"}),f.jsx("button",{type:"button",onClick:()=>{a(null),k("recovery")},style:{background:"none",border:"none",color:g==="recovery"?"var(--mdocs-accent)":"var(--mdocs-text-secondary)",cursor:"pointer",padding:"4px 0",borderBottom:g==="recovery"?"2px solid var(--mdocs-accent)":"none",fontWeight:g==="recovery"?600:400},children:"恢复码"})]}),g==="password"?f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:"🔑 使用密码登录"}),f.jsx("p",{children:"输入用户名和密码,在其他设备上找回你的身份。"}),f.jsxs("form",{onSubmit:T,children:[f.jsx("input",{autoFocus:!0,placeholder:"用户名",value:b,onChange:F=>v(F.target.value),maxLength:60,style:{marginBottom:8}}),f.jsx("input",{type:"password",placeholder:"密码",value:w,onChange:F=>D(F.target.value)}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,children:r?"验证中…":"登录"})]}),f.jsx("p",{style:{marginTop:16,textAlign:"center"},children:f.jsx("button",{type:"button",style:{background:"none",border:"none",color:"var(--mdocs-accent)",cursor:"pointer",fontSize:"0.875rem",textDecoration:"underline",padding:0},onClick:()=>$("register"),children:"没有账号?去注册"})})]}):f.jsxs(f.Fragment,{children:[f.jsx("h1",{children:"🔑 使用恢复码找回"}),f.jsx("p",{children:"输入注册时保存的恢复码,系统将为您生成新的身份令牌。"}),f.jsxs("form",{onSubmit:U,children:[f.jsx("input",{autoFocus:!0,placeholder:"ABCD-EFGH-IJKL-MNOP",value:I,onChange:F=>S(F.target.value),style:{fontFamily:"monospace",letterSpacing:"0.1em"},maxLength:30}),E&&f.jsx("div",{className:"mdocs-dialog-error",children:E}),f.jsx("button",{type:"submit",className:"primary",disabled:r,children:r?"验证中…":"找回身份"})]})]})]})]})})}function zs(e){const{t:n}=lt();return f.jsxs("div",{className:"mdocs-notice card",children:[f.jsx("span",{children:n("visitorIdNotice",{id:e.visitorId})}),f.jsx("button",{type:"button",onClick:e.onDismiss,children:n("gotIt")})]})}const ri="application/x-mdocs-document-id",or="mdocs-doc:";let Pt=null;function oi(e,n,r=[]){for(const o of e){if(o.type==="document"){if(o.documentId===n)return{forceOpenFolderIds:r,scrollTreeId:o.documentId};continue}if(o.descDocumentId===n)return{forceOpenFolderIds:r,scrollTreeId:o.documentId};const i=oi(o.children,n,[...r,o.documentId]);if(i)return i}return null}function br(e){if(Pt)return Pt;try{const n=e.getData(ri);if(n)return n;const r=e.getData("text/plain")||e.getData("Text");if(r.startsWith(or))return r.slice(or.length)}catch{}return""}function xt(e){return!!(e&&Pt)}function $s(e){const{t:n}=lt(),r=_.useRef(null),[o,i]=_.useState(null),[a,s]=_.useState(null),l=_.useMemo(()=>{var v;const b=(v=e.activeDocumentId)==null?void 0:v.trim();return b?oi(e.nodes,b):null},[e.nodes,e.activeDocumentId]),d=_.useMemo(()=>new Set((l==null?void 0:l.forceOpenFolderIds)??[]),[l]);_.useEffect(()=>{if(!(l!=null&&l.scrollTreeId))return;const b=l.scrollTreeId,v=()=>{var I;const D=(I=r.current)==null?void 0:I.querySelector(`[data-tree-id="${CSS.escape(b)}"]`);D==null||D.scrollIntoView({block:"nearest",behavior:"smooth"})},w=requestAnimationFrame(()=>{requestAnimationFrame(v)});return()=>cancelAnimationFrame(w)},[l==null?void 0:l.scrollTreeId,d,e.nodes]);function c(){i(null)}function h(){Pt=null,s(null),c()}function u(b){Pt=b,s(b),c()}function m(b){if(!xt(e.onMoveDocument))return;b.preventDefault(),b.dataTransfer.dropEffect="move",b.target.closest(".mdocs-tree-row")||i({kind:"root"})}function p(b){const v=b.relatedTarget;v&&b.currentTarget.contains(v)||i(w=>(w==null?void 0:w.kind)==="root"?null:w)}function g(b){if(!e.onMoveDocument||!xt(e.onMoveDocument))return;b.preventDefault(),b.stopPropagation();const w=b.target.closest(".mdocs-tree-row"),D=br(b.dataTransfer);h(),!w&&D&&e.onMoveDocument(D,null)}const k="mdocs-sidebar-list"+((o==null?void 0:o.kind)==="root"?" mdocs-tree-drop-root":"");return e.nodes.length===0?f.jsx("div",{ref:r,className:k,onDragOver:m,onDragLeave:p,onDrop:g,children:f.jsx("div",{className:"muted",style:{padding:"8px 10px",fontSize:12},children:n("noDocumentsYet")})}):f.jsx("div",{ref:r,className:k,onClick:b=>{var w;b.target.closest(".mdocs-tree-row")||(w=e.onDeselect)==null||w.call(e)},onContextMenu:b=>{b.preventDefault(),e.onContextMenu({x:b.clientX,y:b.clientY,node:{type:"folder",name:"",path:"",documentId:"",children:e.nodes},parentPath:""})},onDragOver:m,onDragLeave:p,onDrop:g,children:e.nodes.map(b=>f.jsx(ii,{node:b,depth:0,parentPath:"",parentFolderId:null,activeDocumentId:e.activeDocumentId,selectedParentPath:e.selectedParentPath,forceOpenFolderIds:d,dropHighlight:o,setDropHighlight:i,clearDropHighlight:c,beginDragSession:u,endDragSession:h,draggingId:a,onOpen:e.onOpen,onOpenFolder:e.onOpenFolder,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph},b.path))})}function ii(e){const n={paddingLeft:8+e.depth*16};return e.node.type==="folder"?f.jsx(Hs,{folder:e.node,depth:e.depth,indent:n,activeDocumentId:e.activeDocumentId,selectedParentPath:e.selectedParentPath,forceOpenFolderIds:e.forceOpenFolderIds,dropHighlight:e.dropHighlight,setDropHighlight:e.setDropHighlight,clearDropHighlight:e.clearDropHighlight,beginDragSession:e.beginDragSession,endDragSession:e.endDragSession,draggingId:e.draggingId,onOpen:e.onOpen,onOpenFolder:e.onOpenFolder,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph}):f.jsx(Us,{doc:e.node,indent:n,parentPath:e.parentPath,parentFolderId:e.parentFolderId,activeDocumentId:e.activeDocumentId,dropHighlight:e.dropHighlight,setDropHighlight:e.setDropHighlight,clearDropHighlight:e.clearDropHighlight,beginDragSession:e.beginDragSession,endDragSession:e.endDragSession,draggingId:e.draggingId,onOpen:e.onOpen,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph})}function Us(e){var h;const n=e.doc,r=n.documentId===e.activeDocumentId,o=!!e.onMoveDocument,i=e.draggingId===n.documentId,[a,s]=_.useState(!1),l=((h=e.dropHighlight)==null?void 0:h.kind)==="doc"&&e.dropHighlight.id===n.documentId,[d,c]=_.useState(!1);return f.jsxs("div",{role:"button",tabIndex:0,className:"mdocs-tree-row mdocs-tree-doc"+(r?" active":"")+(i?" mdocs-tree-dragging":"")+(l?" mdocs-tree-drop-target":""),"data-tree-id":n.documentId,style:{...e.indent,cursor:o?"grab":void 0},draggable:o,onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),onDragStart:u=>{e.onMoveDocument&&(c(!0),e.beginDragSession(n.documentId),u.dataTransfer.setData(ri,n.documentId),u.dataTransfer.setData("text/plain",or+n.documentId),u.dataTransfer.effectAllowed="move")},onDragEnd:()=>{e.endDragSession(),queueMicrotask(()=>c(!1))},onDragEnter:u=>{!xt(e.onMoveDocument)||Pt===n.documentId||(u.preventDefault(),u.stopPropagation(),e.setDropHighlight({kind:"doc",id:n.documentId}))},onDragOver:u=>{!xt(e.onMoveDocument)||Pt===n.documentId||(u.preventDefault(),u.stopPropagation(),u.dataTransfer.dropEffect="move",e.setDropHighlight({kind:"doc",id:n.documentId}))},onDrop:u=>{if(!e.onMoveDocument||!xt(e.onMoveDocument))return;u.preventDefault(),u.stopPropagation();const m=br(u.dataTransfer),p=e.parentFolderId;e.endDragSession(),!(!m||m===n.documentId)&&e.onMoveDocument(m,p)},onClick:()=>{d||e.onOpen(n)},onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),e.onOpen(n))},onContextMenu:u=>{u.preventDefault(),u.stopPropagation(),e.onContextMenu({x:u.clientX,y:u.clientY,node:n,parentPath:e.parentPath})},children:[f.jsx("span",{className:"mdocs-tree-caret-spacer","aria-hidden":!0}),f.jsx("span",{className:"mdocs-tree-icon",children:"md"}),f.jsx("span",{className:"mdocs-tree-label",title:n.displayName||n.name,children:n.displayName||n.name}),(e.onOpenGraph||e.onGenerateGraph)&&f.jsxs("span",{className:"mdocs-tree-hover-actions",onClick:u=>u.stopPropagation(),children:[e.onOpenGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"查看图谱",onClick:u=>{var m;u.stopPropagation(),(m=e.onOpenGraph)==null||m.call(e,e.doc,e.parentFolderId??void 0)},children:f.jsx(yr,{size:14,strokeWidth:1.75})}),e.onGenerateGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"生成图谱",onClick:u=>{var m;u.stopPropagation(),(m=e.onGenerateGraph)==null||m.call(e,e.doc,e.parentFolderId??void 0)},children:f.jsx(Xo,{size:14,strokeWidth:1.75})})]})]})}function Bs(){return f.jsx("span",{className:"mdocs-tree-icon mdocs-tree-icon-dir","aria-hidden":!0,children:f.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[f.jsx("path",{d:"M2 4.5h4.2L7.3 6H14v8.5H2V4.5z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"}),f.jsx("path",{d:"M2 4.5V3h4l1.1 1.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})})}function Hs(e){var h,u,m;const{t:n}=lt(),r=e.forceOpenFolderIds.has(e.folder.documentId),[o,i]=_.useState(e.depth<1||r),a=o;_.useEffect(()=>{r&&i(!0)},[r,e.activeDocumentId]);const s=!!e.folder.descDocumentId&&e.folder.descDocumentId===e.activeDocumentId,l=e.selectedParentPath===e.folder.path,d=((h=e.dropHighlight)==null?void 0:h.kind)==="folder"&&e.dropHighlight.id===e.folder.documentId;function c(){e.onOpenFolder(e.folder.path,e.folder.descDocumentId)}return f.jsxs("div",{children:[f.jsxs("div",{className:"mdocs-tree-row mdocs-tree-folder mdocs-tree-folder-row"+(s?" active":l?" mdocs-tree-select-target":"")+(d?" mdocs-tree-drop-target":""),"data-tree-id":e.folder.documentId,style:e.indent,onClick:c,onContextMenu:p=>{p.preventDefault(),p.stopPropagation(),e.onContextMenu({x:p.clientX,y:p.clientY,node:e.folder,parentPath:e.folder.path})},onDragEnter:p=>{xt(e.onMoveDocument)&&(p.preventDefault(),p.stopPropagation(),e.setDropHighlight({kind:"folder",id:e.folder.documentId}),i(!0))},onDragOver:p=>{xt(e.onMoveDocument)&&(p.preventDefault(),p.stopPropagation(),p.dataTransfer.dropEffect="move",e.setDropHighlight({kind:"folder",id:e.folder.documentId}))},onDrop:p=>{if(!e.onMoveDocument||!xt(e.onMoveDocument))return;p.preventDefault(),p.stopPropagation();const g=br(p.dataTransfer),k=e.folder.documentId;e.endDragSession(),g&&e.onMoveDocument(g,k)},children:[f.jsx("span",{className:"mdocs-tree-caret",role:"button",tabIndex:0,"aria-expanded":a,"aria-label":n(a?"collapseFolder":"expandFolder"),onClick:p=>{p.stopPropagation(),i(g=>!g),c()},onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),i(g=>!g),c())},children:a?"▾":"▸"}),f.jsx(Bs,{}),f.jsx("span",{className:"mdocs-tree-folder-select",children:f.jsx("span",{className:"mdocs-tree-label",title:((u=e.folder.folderDisplayName)==null?void 0:u.trim())||e.folder.name,children:((m=e.folder.folderDisplayName)==null?void 0:m.trim())||e.folder.name})}),(e.onOpenGraph||e.onGenerateGraph)&&f.jsxs("span",{className:"mdocs-tree-hover-actions",onClick:p=>p.stopPropagation(),children:[e.onOpenGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"查看图谱",onClick:p=>{var g;p.stopPropagation(),(g=e.onOpenGraph)==null||g.call(e,e.folder)},children:f.jsx(yr,{size:14,strokeWidth:1.75})}),e.onGenerateGraph&&f.jsx("button",{type:"button",className:"mdocs-tree-icon-btn",title:"生成图谱",onClick:p=>{var g;p.stopPropagation(),(g=e.onGenerateGraph)==null||g.call(e,e.folder)},children:f.jsx(Xo,{size:14,strokeWidth:1.75})})]})]}),a&&e.folder.children.map(p=>f.jsx(ii,{node:p,depth:e.depth+1,parentPath:e.folder.path,parentFolderId:e.folder.documentId,activeDocumentId:e.activeDocumentId,selectedParentPath:e.selectedParentPath,forceOpenFolderIds:e.forceOpenFolderIds,dropHighlight:e.dropHighlight,setDropHighlight:e.setDropHighlight,clearDropHighlight:e.clearDropHighlight,beginDragSession:e.beginDragSession,endDragSession:e.endDragSession,draggingId:e.draggingId,onOpen:e.onOpen,onOpenFolder:e.onOpenFolder,onContextMenu:e.onContextMenu,onMoveDocument:e.onMoveDocument,onOpenGraph:e.onOpenGraph,onGenerateGraph:e.onGenerateGraph},p.path))]})}function Vs(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n===0){if(Object(r)!==r)return;d=!1}else for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function Gs(e,n,r){return n=Qs(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function so(e,n){return Ys(e)||Vs(e,n)||ai(e,n)||Xs()}function Ws(e){return qs(e)||Ks(e)||ai(e)||Js()}function qs(e){if(Array.isArray(e))return ir(e)}function Ys(e){if(Array.isArray(e))return e}function Ks(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ai(e,n){if(e){if(typeof e=="string")return ir(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ir(e,n)}}function ir(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=new Array(n);r<n;r++)o[r]=e[r];return o}function Js(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
206
206
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xs(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
207
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zs(e,n){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function Qs(e){var n=Zs(e,"string");return typeof n=="symbol"?n:String(n)}var el=function(n,r){var o=new Set(r);return Object.assign.apply(Object,[{}].concat(Ws(Object.entries(n).filter(function(i){var a=ao(i,1),s=a[0];return!o.has(s)}).map(function(i){var a=ao(i,2),s=a[0],l=a[1];return Gs({},s,l)}))))};function tl(e,{wrapperElementType:n="div",nodeMapper:r=a=>a,methodNames:o=[],initPropNames:i=[]}={}){return _.forwardRef((a,s)=>{const l=_.useRef(),d=_.useMemo(()=>{const u=Object.fromEntries(i.filter(m=>a.hasOwnProperty(m)).map(m=>[m,a[m]]));return e(u)},[]);so(()=>{d(r(l.current))},_.useLayoutEffect),so(()=>d._destructor instanceof Function?d._destructor:void 0);const c=_.useCallback((u,...m)=>d[u]instanceof Function?d[u](...m):void 0,[d]),h=_.useRef({});return Object.keys(el(a,[...o,...i])).filter(u=>h.current[u]!==a[u]).forEach(u=>c(u,a[u])),h.current=a,_.useImperativeHandle(s,()=>Object.fromEntries(o.map(u=>[u,(...m)=>c(u,...m)])),[c]),Ko.createElement(n,{ref:l})})}function so(e,n=_.useEffect){const r=_.useRef(),o=_.useRef(!1),i=_.useRef(!1),[a,s]=_.useState(0);o.current&&(i.current=!0),n(()=>(o.current||(r.current=e(),o.current=!0),s(l=>l+1),()=>{i.current&&(r.current&&r.current(),r.current=void 0,o.current=!1,i.current=!1)}),[])}var It=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-It.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?It.Bounce.In(e*2)*.5:It.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),Jt=function(){return performance.now()},si=function(){function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,n)}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(r){return n._tweens[r]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(){for(var n,r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];for(var i=0,a=r;i<a.length;i++){var s=a[i];(n=s._group)===null||n===void 0||n.remove(s),s._group=this,this._tweens[s.getId()]=s,this._tweensAddedDuringUpdate[s.getId()]=s}},e.prototype.remove=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];a._group=void 0,delete this._tweens[a.getId()],delete this._tweensAddedDuringUpdate[a.getId()]}},e.prototype.allStopped=function(){return this.getAll().every(function(n){return!n.isPlaying()})},e.prototype.update=function(n,r){n===void 0&&(n=Jt()),r===void 0&&(r=!0);var o=Object.keys(this._tweens);if(o.length!==0)for(;o.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<o.length;i++){var a=this._tweens[o[i]],s=!r;a&&a.update(n,s)===!1&&!r&&this.remove(a)}o=Object.keys(this._tweensAddedDuringUpdate)}},e}(),ir={Linear:function(e,n){var r=e.length-1,o=r*n,i=Math.floor(o),a=ir.Utils.Linear;return n<0?a(e[0],e[1],o):n>1?a(e[r],e[r-1],r-o):a(e[i],e[i+1>r?r:i+1],o-i)},Utils:{Linear:function(e,n,r){return(n-e)*r+e}}},li=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),ar=new si,lo=function(){function e(n,r){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=It.Linear.None,this._interpolationFunction=ir.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=li.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=n,typeof r=="object"?(this._group=r,r.add(this)):r===!0&&(this._group=ar,ar.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,r){if(r===void 0&&(r=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=r<0?0:r,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,r){if(n===void 0&&(n=Jt()),r===void 0&&(r=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var o in this._valuesStartRepeat)this._swapEndStartRepeatValues(o),this._valuesStart[o]=this._valuesStartRepeat[o]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||r){if(this._propertiesAreSetUp=!0,!this._isDynamic){var i={};for(var a in this._valuesEnd)i[a]=this._valuesEnd[a];this._valuesEnd=i}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,r)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,r,o,i,a){for(var s in o){var l=n[s],d=Array.isArray(l),c=d?"array":typeof l,h=!d&&Array.isArray(o[s]);if(!(c==="undefined"||c==="function")){if(h){var u=o[s];if(u.length===0)continue;for(var m=[l],p=0,g=u.length;p<g;p+=1){var k=this._handleRelativeValue(l,u[p]);if(isNaN(k)){h=!1,console.warn("Found invalid interpolation list. Skipping.");break}m.push(k)}h&&(o[s]=m)}if((c==="object"||d)&&l&&!h){r[s]=d?[]:{};var b=l;for(var v in b)r[s][v]=b[v];i[s]=d?[]:{};var u=o[s];if(!this._isDynamic){var w={};for(var v in u)w[v]=u[v];o[s]=u=w}this._setupProperties(b,r[s],u,i[s],a)}else(typeof r[s]>"u"||a)&&(r[s]=l),d||(r[s]*=1),h?i[s]=o[s].slice().reverse():i[s]=r[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(n){return n===void 0&&(n=Jt()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this)},e.prototype.resume=function(n){return n===void 0&&(n=Jt()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var n=0,r=this._chainedTweens.length;n<r;n++)this._chainedTweens[n].stop();return this},e.prototype.group=function(n){return n?(n.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},e.prototype.remove=function(){var n;return(n=this._group)===null||n===void 0||n.remove(this),this},e.prototype.delay=function(n){return n===void 0&&(n=0),this._delayTime=n,this},e.prototype.repeat=function(n){return n===void 0&&(n=0),this._initialRepeat=n,this._repeat=n,this},e.prototype.repeatDelay=function(n){return this._repeatDelayTime=n,this},e.prototype.yoyo=function(n){return n===void 0&&(n=!1),this._yoyo=n,this},e.prototype.easing=function(n){return n===void 0&&(n=It.Linear.None),this._easingFunction=n,this},e.prototype.interpolation=function(n){return n===void 0&&(n=ir.Linear),this._interpolationFunction=n,this},e.prototype.chain=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._chainedTweens=n,this},e.prototype.onStart=function(n){return this._onStartCallback=n,this},e.prototype.onEveryStart=function(n){return this._onEveryStartCallback=n,this},e.prototype.onUpdate=function(n){return this._onUpdateCallback=n,this},e.prototype.onRepeat=function(n){return this._onRepeatCallback=n,this},e.prototype.onComplete=function(n){return this._onCompleteCallback=n,this},e.prototype.onStop=function(n){return this._onStopCallback=n,this},e.prototype.update=function(n,r){var o=this,i;if(n===void 0&&(n=Jt()),r===void 0&&(r=e.autoStartOnUpdate),this._isPaused)return!0;var a;if(!this._goToEnd&&!this._isPlaying)if(r)this.start(n,!0);else return!1;if(this._goToEnd=!1,n<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var s=n-this._startTime,l=this._duration+((i=this._repeatDelayTime)!==null&&i!==void 0?i:this._delayTime),d=this._duration+this._repeat*l,c=function(){if(o._duration===0||s>d)return 1;var k=Math.trunc(s/l),b=s-k*l,v=Math.min(b/o._duration,1);return v===0&&s===o._duration?1:v},h=c(),u=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,u),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),this._duration===0||s>=this._duration)if(this._repeat>0){var m=Math.min(Math.trunc((s-this._duration)/l)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=m);for(a in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[a]=="string"&&(this._valuesStartRepeat[a]=this._valuesStartRepeat[a]+parseFloat(this._valuesEnd[a])),this._yoyo&&this._swapEndStartRepeatValues(a),this._valuesStart[a]=this._valuesStartRepeat[a];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=l*m,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var p=0,g=this._chainedTweens.length;p<g;p++)this._chainedTweens[p].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(n,r,o,i){for(var a in o)if(r[a]!==void 0){var s=r[a]||0,l=o[a],d=Array.isArray(n[a]),c=Array.isArray(l),h=!d&&c;h?n[a]=this._interpolationFunction(l,i):typeof l=="object"&&l?this._updateProperties(n[a],s,l,i):(l=this._handleRelativeValue(s,l),typeof l=="number"&&(n[a]=s+(l-s)*i))}},e.prototype._handleRelativeValue=function(n,r){return typeof r!="string"?r:r.charAt(0)==="+"||r.charAt(0)==="-"?n+parseFloat(r):parseFloat(r)},e.prototype._swapEndStartRepeatValues=function(n){var r=this._valuesStartRepeat[n],o=this._valuesEnd[n];typeof o=="string"?this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(o):this._valuesStartRepeat[n]=this._valuesEnd[n],this._valuesEnd[n]=r},e.autoStartOnUpdate=!1,e}();li.nextId;var Xe=ar;Xe.getAll.bind(Xe);Xe.removeAll.bind(Xe);Xe.add.bind(Xe);Xe.remove.bind(Xe);Xe.update.bind(Xe);function co(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function nl(e){if(Array.isArray(e))return e}function rl(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function ol(e,n,r){return Object.defineProperty(e,"prototype",{writable:!1}),e}function il(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function al(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
208
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sl(e,n){return nl(e)||il(e,n)||ll(e,n)||al()}function ll(e,n){if(e){if(typeof e=="string")return co(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?co(e,n):void 0}}var cl=ol(function e(n,r){var o=r.default,i=o===void 0?null:o,a=r.triggerUpdate,s=a===void 0?!0:a,l=r.onChange,d=l===void 0?function(c,h){}:l;rl(this,e),this.name=n,this.defaultVal=i,this.triggerUpdate=s,this.onChange=d});function br(e){var n=e.stateInit,r=n===void 0?function(){return{}}:n,o=e.props,i=o===void 0?{}:o,a=e.methods,s=a===void 0?{}:a,l=e.aliases,d=l===void 0?{}:l,c=e.init,h=c===void 0?function(){}:c,u=e.update,m=u===void 0?function(){}:u,p=Object.keys(i).map(function(g){return new cl(g,i[g])});return function g(){for(var k=arguments.length,b=new Array(k),v=0;v<k;v++)b[v]=arguments[v];var w=!!(this instanceof g&&this.constructor),D=w?b.shift():void 0,I=b[0],S=I===void 0?{}:I,N=Object.assign({},r instanceof Function?r(S):r,{initialised:!1}),P={};function T($){return U($,S),E(),T}var U=function(F,B){h.call(T,F,N,B),N.initialised=!0},E=xa(function(){N.initialised&&(m.call(T,N,P),P={})},1);return p.forEach(function($){T[$.name]=F($);function F(B){var A=B.name,Y=B.triggerUpdate,te=Y===void 0?!1:Y,ie=B.onChange,ke=ie===void 0?function(ye,me){}:ie,De=B.defaultVal,Ae=De===void 0?null:De;return function(ye){var me=N[A];if(!arguments.length)return me;var ae=ye===void 0?Ae:ye;return N[A]=ae,ke.call(T,ae,N,me),!P.hasOwnProperty(A)&&(P[A]=me),te&&E(),T}}}),Object.keys(s).forEach(function($){T[$]=function(){for(var F,B=arguments.length,A=new Array(B),Y=0;Y<B;Y++)A[Y]=arguments[Y];return(F=s[$]).call.apply(F,[T,N].concat(A))}}),Object.entries(d).forEach(function($){var F=sl($,2),B=F[0],A=F[1];return T[B]=T[A]}),T.resetProps=function(){return p.forEach(function($){T[$.name]($.defaultVal)}),T},T.resetProps(),N._rerender=E,w&&D&&T(D),T}}var ee=function(e){return typeof e=="function"?e:typeof e=="string"?function(n){return n[e]}:function(n){return e}};function kn(e){"@babel/helpers - typeof";return kn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},kn(e)}var dl=/^\s+/,ul=/\s+$/;function W(e,n){if(e=e||"",n=n||{},e instanceof W)return e;if(!(this instanceof W))return new W(e,n);var r=fl(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}W.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var n=this.toRgb();return(n.r*299+n.g*587+n.b*114)/1e3},getLuminance:function(){var n=this.toRgb(),r,o,i,a,s,l;return r=n.r/255,o=n.g/255,i=n.b/255,r<=.03928?a=r/12.92:a=Math.pow((r+.055)/1.055,2.4),o<=.03928?s=o/12.92:s=Math.pow((o+.055)/1.055,2.4),i<=.03928?l=i/12.92:l=Math.pow((i+.055)/1.055,2.4),.2126*a+.7152*s+.0722*l},setAlpha:function(n){return this._a=ci(n),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var n=fo(this._r,this._g,this._b);return{h:n.h*360,s:n.s,v:n.v,a:this._a}},toHsvString:function(){var n=fo(this._r,this._g,this._b),r=Math.round(n.h*360),o=Math.round(n.s*100),i=Math.round(n.v*100);return this._a==1?"hsv("+r+", "+o+"%, "+i+"%)":"hsva("+r+", "+o+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var n=uo(this._r,this._g,this._b);return{h:n.h*360,s:n.s,l:n.l,a:this._a}},toHslString:function(){var n=uo(this._r,this._g,this._b),r=Math.round(n.h*360),o=Math.round(n.s*100),i=Math.round(n.l*100);return this._a==1?"hsl("+r+", "+o+"%, "+i+"%)":"hsla("+r+", "+o+"%, "+i+"%, "+this._roundA+")"},toHex:function(n){return mo(this._r,this._g,this._b,n)},toHexString:function(n){return"#"+this.toHex(n)},toHex8:function(n){return gl(this._r,this._g,this._b,this._a,n)},toHex8String:function(n){return"#"+this.toHex8(n)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(le(this._r,255)*100)+"%",g:Math.round(le(this._g,255)*100)+"%",b:Math.round(le(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(le(this._r,255)*100)+"%, "+Math.round(le(this._g,255)*100)+"%, "+Math.round(le(this._b,255)*100)+"%)":"rgba("+Math.round(le(this._r,255)*100)+"%, "+Math.round(le(this._g,255)*100)+"%, "+Math.round(le(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:Pl[mo(this._r,this._g,this._b,!0)]||!1},toFilter:function(n){var r="#"+ho(this._r,this._g,this._b,this._a),o=r,i=this._gradientType?"GradientType = 1, ":"";if(n){var a=W(n);o="#"+ho(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+r+",endColorstr="+o+")"},toString:function(n){var r=!!n;n=n||this._format;var o=!1,i=this._a<1&&this._a>=0,a=!r&&i&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return a?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(o=this.toRgbString()),n==="prgb"&&(o=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(o=this.toHexString()),n==="hex3"&&(o=this.toHexString(!0)),n==="hex4"&&(o=this.toHex8String(!0)),n==="hex8"&&(o=this.toHex8String()),n==="name"&&(o=this.toName()),n==="hsl"&&(o=this.toHslString()),n==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},clone:function(){return W(this.toString())},_applyModification:function(n,r){var o=n.apply(null,[this].concat([].slice.call(r)));return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this},lighten:function(){return this._applyModification(xl,arguments)},brighten:function(){return this._applyModification(_l,arguments)},darken:function(){return this._applyModification(wl,arguments)},desaturate:function(){return this._applyModification(yl,arguments)},saturate:function(){return this._applyModification(vl,arguments)},greyscale:function(){return this._applyModification(bl,arguments)},spin:function(){return this._applyModification(kl,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(Sl,arguments)},complement:function(){return this._applyCombination(Cl,arguments)},monochromatic:function(){return this._applyCombination(Dl,arguments)},splitcomplement:function(){return this._applyCombination(Il,arguments)},triad:function(){return this._applyCombination(po,[3])},tetrad:function(){return this._applyCombination(po,[4])}};W.fromRatio=function(e,n){if(kn(e)=="object"){var r={};for(var o in e)e.hasOwnProperty(o)&&(o==="a"?r[o]=e[o]:r[o]=Xt(e[o]));e=r}return W(e,n)};function fl(e){var n={r:0,g:0,b:0},r=1,o=null,i=null,a=null,s=!1,l=!1;return typeof e=="string"&&(e=Ml(e)),kn(e)=="object"&&(tt(e.r)&&tt(e.g)&&tt(e.b)?(n=ml(e.r,e.g,e.b),s=!0,l=String(e.r).substr(-1)==="%"?"prgb":"rgb"):tt(e.h)&&tt(e.s)&&tt(e.v)?(o=Xt(e.s),i=Xt(e.v),n=pl(e.h,o,i),s=!0,l="hsv"):tt(e.h)&&tt(e.s)&&tt(e.l)&&(o=Xt(e.s),a=Xt(e.l),n=hl(e.h,o,a),s=!0,l="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=ci(r),{ok:s,format:e.format||l,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:r}}function ml(e,n,r){return{r:le(e,255)*255,g:le(n,255)*255,b:le(r,255)*255}}function uo(e,n,r){e=le(e,255),n=le(n,255),r=le(r,255);var o=Math.max(e,n,r),i=Math.min(e,n,r),a,s,l=(o+i)/2;if(o==i)a=s=0;else{var d=o-i;switch(s=l>.5?d/(2-o-i):d/(o+i),o){case e:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-e)/d+2;break;case r:a=(e-n)/d+4;break}a/=6}return{h:a,s,l}}function hl(e,n,r){var o,i,a;e=le(e,360),n=le(n,100),r=le(r,100);function s(c,h,u){return u<0&&(u+=1),u>1&&(u-=1),u<1/6?c+(h-c)*6*u:u<1/2?h:u<2/3?c+(h-c)*(2/3-u)*6:c}if(n===0)o=i=a=r;else{var l=r<.5?r*(1+n):r+n-r*n,d=2*r-l;o=s(d,l,e+1/3),i=s(d,l,e),a=s(d,l,e-1/3)}return{r:o*255,g:i*255,b:a*255}}function fo(e,n,r){e=le(e,255),n=le(n,255),r=le(r,255);var o=Math.max(e,n,r),i=Math.min(e,n,r),a,s,l=o,d=o-i;if(s=o===0?0:d/o,o==i)a=0;else{switch(o){case e:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-e)/d+2;break;case r:a=(e-n)/d+4;break}a/=6}return{h:a,s,v:l}}function pl(e,n,r){e=le(e,360)*6,n=le(n,100),r=le(r,100);var o=Math.floor(e),i=e-o,a=r*(1-n),s=r*(1-i*n),l=r*(1-(1-i)*n),d=o%6,c=[r,s,a,a,l,r][d],h=[l,r,r,s,a,a][d],u=[a,a,l,r,r,s][d];return{r:c*255,g:h*255,b:u*255}}function mo(e,n,r,o){var i=[He(Math.round(e).toString(16)),He(Math.round(n).toString(16)),He(Math.round(r).toString(16))];return o&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function gl(e,n,r,o,i){var a=[He(Math.round(e).toString(16)),He(Math.round(n).toString(16)),He(Math.round(r).toString(16)),He(di(o))];return i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function ho(e,n,r,o){var i=[He(di(o)),He(Math.round(e).toString(16)),He(Math.round(n).toString(16)),He(Math.round(r).toString(16))];return i.join("")}W.equals=function(e,n){return!e||!n?!1:W(e).toRgbString()==W(n).toRgbString()};W.random=function(){return W.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function yl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.s-=n/100,r.s=Tn(r.s),W(r)}function vl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.s+=n/100,r.s=Tn(r.s),W(r)}function bl(e){return W(e).desaturate(100)}function xl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.l+=n/100,r.l=Tn(r.l),W(r)}function _l(e,n){n=n===0?0:n||10;var r=W(e).toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(n/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(n/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(n/100)))),W(r)}function wl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.l-=n/100,r.l=Tn(r.l),W(r)}function kl(e,n){var r=W(e).toHsl(),o=(r.h+n)%360;return r.h=o<0?360+o:o,W(r)}function Cl(e){var n=W(e).toHsl();return n.h=(n.h+180)%360,W(n)}function po(e,n){if(isNaN(n)||n<=0)throw new Error("Argument to polyad must be a positive number");for(var r=W(e).toHsl(),o=[W(e)],i=360/n,a=1;a<n;a++)o.push(W({h:(r.h+a*i)%360,s:r.s,l:r.l}));return o}function Il(e){var n=W(e).toHsl(),r=n.h;return[W(e),W({h:(r+72)%360,s:n.s,l:n.l}),W({h:(r+216)%360,s:n.s,l:n.l})]}function Sl(e,n,r){n=n||6,r=r||30;var o=W(e).toHsl(),i=360/r,a=[W(e)];for(o.h=(o.h-(i*n>>1)+720)%360;--n;)o.h=(o.h+i)%360,a.push(W(o));return a}function Dl(e,n){n=n||6;for(var r=W(e).toHsv(),o=r.h,i=r.s,a=r.v,s=[],l=1/n;n--;)s.push(W({h:o,s:i,v:a})),a=(a+l)%1;return s}W.mix=function(e,n,r){r=r===0?0:r||50;var o=W(e).toRgb(),i=W(n).toRgb(),a=r/100,s={r:(i.r-o.r)*a+o.r,g:(i.g-o.g)*a+o.g,b:(i.b-o.b)*a+o.b,a:(i.a-o.a)*a+o.a};return W(s)};W.readability=function(e,n){var r=W(e),o=W(n);return(Math.max(r.getLuminance(),o.getLuminance())+.05)/(Math.min(r.getLuminance(),o.getLuminance())+.05)};W.isReadable=function(e,n,r){var o=W.readability(e,n),i,a;switch(a=!1,i=El(r),i.level+i.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7;break}return a};W.mostReadable=function(e,n,r){var o=null,i=0,a,s,l,d;r=r||{},s=r.includeFallbackColors,l=r.level,d=r.size;for(var c=0;c<n.length;c++)a=W.readability(e,n[c]),a>i&&(i=a,o=W(n[c]));return W.isReadable(e,o,{level:l,size:d})||!s?o:(r.includeFallbackColors=!1,W.mostReadable(e,["#fff","#000"],r))};var sr=W.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Pl=W.hexNames=Nl(sr);function Nl(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function ci(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function le(e,n){Tl(e)&&(e="100%");var r=Al(e);return e=Math.min(n,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Tn(e){return Math.min(1,Math.max(0,e))}function je(e){return parseInt(e,16)}function Tl(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Al(e){return typeof e=="string"&&e.indexOf("%")!=-1}function He(e){return e.length==1?"0"+e:""+e}function Xt(e){return e<=1&&(e=e*100+"%"),e}function di(e){return Math.round(parseFloat(e)*255).toString(16)}function go(e){return je(e)/255}var Be=function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",r="(?:"+n+")|(?:"+e+")",o="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",i="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+o),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+o),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+o),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function tt(e){return!!Be.CSS_UNIT.exec(e)}function Ml(e){e=e.replace(dl,"").replace(ul,"").toLowerCase();var n=!1;if(sr[e])e=sr[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=Be.rgb.exec(e))?{r:r[1],g:r[2],b:r[3]}:(r=Be.rgba.exec(e))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=Be.hsl.exec(e))?{h:r[1],s:r[2],l:r[3]}:(r=Be.hsla.exec(e))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=Be.hsv.exec(e))?{h:r[1],s:r[2],v:r[3]}:(r=Be.hsva.exec(e))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=Be.hex8.exec(e))?{r:je(r[1]),g:je(r[2]),b:je(r[3]),a:go(r[4]),format:n?"name":"hex8"}:(r=Be.hex6.exec(e))?{r:je(r[1]),g:je(r[2]),b:je(r[3]),format:n?"name":"hex"}:(r=Be.hex4.exec(e))?{r:je(r[1]+""+r[1]),g:je(r[2]+""+r[2]),b:je(r[3]+""+r[3]),a:go(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=Be.hex3.exec(e))?{r:je(r[1]+""+r[1]),g:je(r[2]+""+r[2]),b:je(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function El(e){var n,r;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),r!=="small"&&r!=="large"&&(r="small"),{level:n,size:r}}function lr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function jl(e){if(Array.isArray(e))return lr(e)}function ui(e,n,r){if(typeof e=="function"?e===n:e.has(n))return arguments.length<3?n:r;throw new TypeError("Private element is not present on this object")}function Ol(e,n){if(n.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Rl(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function Fe(e,n){return e.get(ui(e,n))}function yo(e,n,r){Ol(e,n),n.set(e,r)}function vo(e,n,r){return e.set(ui(e,n),r),r}function Fl(e,n){for(var r=0;r<n.length;r++){var o=n[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,Hl(o.key),o)}}function Ll(e,n,r){return n&&Fl(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function zl(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $l(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
209
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ul(e){return jl(e)||zl(e)||Vl(e)||$l()}function Bl(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Hl(e){var n=Bl(e,"string");return typeof n=="symbol"?n:n+""}function Vl(e,n){if(e){if(typeof e=="string")return lr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?lr(e,n):void 0}}var Gl=123,Wl=function(n){return"#".concat(Math.min(n,Math.pow(2,24)).toString(16).padStart(6,"0"))},fi=function(n,r,o){return(n<<16)+(r<<8)+o},ql=function(n){var r=W(n).toRgb(),o=r.r,i=r.g,a=r.b;return fi(o,i,a)},bo=function(n,r){return n*Gl%Math.pow(2,r)},kt=new WeakMap,nt=new WeakMap,Yl=function(){function e(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:6;Rl(this,e),yo(this,kt,void 0),yo(this,nt,void 0),vo(nt,this,n),this.reset()}return Ll(e,[{key:"reset",value:function(){vo(kt,this,["__reserved for background__"])}},{key:"register",value:function(r){if(Fe(kt,this).length>=Math.pow(2,24-Fe(nt,this)))return null;var o=Fe(kt,this).length,i=bo(o,Fe(nt,this)),a=Wl(o+(i<<24-Fe(nt,this)));return Fe(kt,this).push(r),a}},{key:"lookup",value:function(r){if(!r)return null;var o=typeof r=="string"?ql(r):fi.apply(void 0,Ul(r));if(!o)return null;var i=o&Math.pow(2,24-Fe(nt,this))-1,a=o>>24-Fe(nt,this)&Math.pow(2,Fe(nt,this))-1;return bo(i,Fe(nt,this))!==a||i>=Fe(kt,this).length?null:Fe(kt,this)[i]}}])}(),on,ce,mi,hi,gt,xo,pi,gi,Bn,bn,Zt,yi,xr,cr,dr,Cn={},In=[],Kl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,An=Array.isArray;function Ye(e,n){for(var r in n)e[r]=n[r];return e}function _r(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Jl(e,n,r){var o,i,a,s={};for(a in n)a=="key"?o=n[a]:a=="ref"?i=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?on.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)s[a]===void 0&&(s[a]=e.defaultProps[a]);return Qt(e,s,o,i,null)}function Qt(e,n,r,o,i){var a={type:e,props:n,key:r,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++mi,__i:-1,__u:0};return i==null&&ce.vnode!=null&&ce.vnode(a),a}function Mn(e){return e.children}function xn(e,n){this.props=e,this.context=n}function Dt(e,n){if(n==null)return e.__?Dt(e.__,e.__i+1):null;for(var r;n<e.__k.length;n++)if((r=e.__k[n])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?Dt(e):null}function Xl(e){if(e.__P&&e.__d){var n=e.__v,r=n.__e,o=[],i=[],a=Ye({},n);a.__v=n.__v+1,ce.vnode&&ce.vnode(a),wr(e.__P,a,n,e.__n,e.__P.namespaceURI,32&n.__u?[r]:null,o,r??Dt(n),!!(32&n.__u),i),a.__v=n.__v,a.__.__k[a.__i]=a,wi(o,a,i),n.__e=n.__=null,a.__e!=r&&vi(a)}}function vi(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),vi(e)}function _o(e){(!e.__d&&(e.__d=!0)&>.push(e)&&!Sn.__r++||xo!=ce.debounceRendering)&&((xo=ce.debounceRendering)||pi)(Sn)}function Sn(){try{for(var e,n=1;gt.length;)gt.length>n&>.sort(gi),e=gt.shift(),n=gt.length,Xl(e)}finally{gt.length=Sn.__r=0}}function bi(e,n,r,o,i,a,s,l,d,c,h){var u,m,p,g,k,b,v=o&&o.__k||In,w=n.length;for(d=Zl(r,n,v,d,w),u=0;u<w;u++)(p=r.__k[u])!=null&&(m=p.__i!=-1&&v[p.__i]||Cn,p.__i=u,b=wr(e,p,m,i,a,s,l,d,c,h),g=p.__e,p.ref&&m.ref!=p.ref&&(m.ref&&kr(m.ref,null,p),h.push(p.ref,p.__c||g,p)),k==null&&g!=null&&(k=g),4&p.__u?(d=xi(p,d,e),m.__e&&(m.__e=null)):typeof p.type=="function"&&b!==void 0?d=b:g&&(d=g.nextSibling),p.__u&=-7);return r.__e=k,d}function Zl(e,n,r,o,i){var a,s,l,d,c,h=r.length,u=h,m=0;for(e.__k=new Array(i),a=0;a<i;a++)(s=n[a])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[a]=Qt(null,s,null,null,null):An(s)?s=e.__k[a]=Qt(Mn,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[a]=Qt(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[a]=s,d=a+m,s.__=e,s.__b=e.__b+1,l=null,(c=s.__i=Ql(s,r,d,u))!=-1&&(u--,(l=r[c])&&(l.__u|=2)),l==null||l.__v==null?(c==-1&&(i>h?m--:i<h&&m++),typeof s.type!="function"&&(s.__u|=4)):c!=d&&(c==d-1?m--:c==d+1?m++:(c>d?m--:m++,s.__u|=4))):e.__k[a]=null;if(u)for(a=0;a<h;a++)(l=r[a])!=null&&!(2&l.__u)&&(l.__e==o&&(o=Dt(l)),Ci(l,l));return o}function xi(e,n,r){var o,i;if(typeof e.type=="function"){for(o=e.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=e,n=xi(o[i],n,r));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=Dt(e)),n=r.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function Ql(e,n,r,o){var i,a,s,l=e.key,d=e.type,c=n[r],h=c!=null&&(2&c.__u)==0;if(c===null&&l==null||h&&l==c.key&&d==c.type)return r;if(o>(h?1:0)){for(i=r-1,a=r+1;i>=0||a<n.length;)if((c=n[s=i>=0?i--:a++])!=null&&!(2&c.__u)&&l==c.key&&d==c.type)return s}return-1}function wo(e,n,r){n[0]=="-"?e.setProperty(n,r??""):e[n]=r==null?"":typeof r!="number"||Kl.test(n)?r:r+"px"}function gn(e,n,r,o,i){var a,s;e:if(n=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(n in o)r&&n in r||wo(e.style,n,"");if(r)for(n in r)o&&r[n]==o[n]||wo(e.style,n,r[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(yi,"$1")),s=n.toLowerCase(),n=s in e||n=="onFocusOut"||n=="onFocusIn"?s.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=r,r?o?r[Zt]=o[Zt]:(r[Zt]=xr,e.addEventListener(n,a?dr:cr,a)):e.removeEventListener(n,a?dr:cr,a);else{if(i=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&r==1?"":r))}}function ko(e){return function(n){if(this.l){var r=this.l[n.type+e];if(n[bn]==null)n[bn]=xr++;else if(n[bn]<r[Zt])return;return r(ce.event?ce.event(n):n)}}}function wr(e,n,r,o,i,a,s,l,d,c){var h,u,m,p,g,k,b,v,w,D,I,S,N,P,T,U,E=n.type;if(n.constructor!==void 0)return null;128&r.__u&&(d=!!(32&r.__u),a=[l=n.__e=r.__e]),(h=ce.__b)&&h(n);e:if(typeof E=="function"){u=s.length;try{if(w=n.props,D=E.prototype&&E.prototype.render,I=(h=E.contextType)&&o[h.__c],S=h?I?I.props.value:h.__:o,r.__c?v=(m=n.__c=r.__c).__=m.__E:(D?n.__c=m=new E(w,S):(n.__c=m=new xn(w,S),m.constructor=E,m.render=tc),I&&I.sub(m),m.state||(m.state={}),m.__n=o,p=m.__d=!0,m.__h=[],m._sb=[]),D&&m.__s==null&&(m.__s=m.state),D&&E.getDerivedStateFromProps!=null&&(m.__s==m.state&&(m.__s=Ye({},m.__s)),Ye(m.__s,E.getDerivedStateFromProps(w,m.__s))),g=m.props,k=m.state,m.__v=n,p)D&&E.getDerivedStateFromProps==null&&m.componentWillMount!=null&&m.componentWillMount(),D&&m.componentDidMount!=null&&m.__h.push(m.componentDidMount);else{if(D&&E.getDerivedStateFromProps==null&&w!==g&&m.componentWillReceiveProps!=null&&m.componentWillReceiveProps(w,S),n.__v==r.__v||!m.__e&&m.shouldComponentUpdate!=null&&m.shouldComponentUpdate(w,m.__s,S)===!1){n.__v!=r.__v&&(m.props=w,m.state=m.__s,m.__d=!1),n.__e=r.__e,n.__k=r.__k,n.__k.some(function($){$&&($.__=n)}),In.push.apply(m.__h,m._sb),m._sb=[],m.__h.length&&s.push(m),l=Dt(r);break e}m.componentWillUpdate!=null&&m.componentWillUpdate(w,m.__s,S),D&&m.componentDidUpdate!=null&&m.__h.push(function(){m.componentDidUpdate(g,k,b)})}if(m.context=S,m.props=w,m.__P=e,m.__e=!1,N=ce.__r,P=0,D)m.state=m.__s,m.__d=!1,N&&N(n),h=m.render(m.props,m.state,m.context),In.push.apply(m.__h,m._sb),m._sb=[];else do m.__d=!1,N&&N(n),h=m.render(m.props,m.state,m.context),m.state=m.__s;while(m.__d&&++P<25);m.state=m.__s,m.getChildContext!=null&&(o=Ye(Ye({},o),m.getChildContext())),D&&!p&&m.getSnapshotBeforeUpdate!=null&&(b=m.getSnapshotBeforeUpdate(g,k)),T=h!=null&&h.type===Mn&&h.key==null?ki(h.props.children):h,l=bi(e,An(T)?T:[T],n,r,o,i,a,s,l,d,c),m.base=n.__e,n.__u&=-161,m.__h.length&&s.push(m),v&&(m.__E=m.__=null)}catch($){if(s.length=u,n.__v=null,d||a!=null){if($.then){for(n.__u|=d?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;a!=null&&(a[a.indexOf(l)]=null),n.__e=l}else if(a!=null)for(U=a.length;U--;)_r(a[U])}else n.__e=r.__e;n.__k==null&&(n.__k=r.__k||[]),$.then||_i(n),ce.__e($,n,r)}}else a==null&&n.__v==r.__v?(n.__k=r.__k,n.__e=r.__e):l=n.__e=ec(r.__e,n,r,o,i,a,s,d,c);return(h=ce.diffed)&&h(n),128&n.__u?void 0:l}function _i(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(_i))}function wi(e,n,r){for(var o=0;o<r.length;o++)kr(r[o],r[++o],r[++o]);ce.__c&&ce.__c(n,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(a){a.call(i)})}catch(a){ce.__e(a,i.__v)}})}function ki(e){return typeof e!="object"||e==null||e.__b>0?e:An(e)?e.map(ki):e.constructor!==void 0?null:Ye({},e)}function ec(e,n,r,o,i,a,s,l,d){var c,h,u,m,p,g,k,b=r.props||Cn,v=n.props,w=n.type;if(w=="svg"?i="http://www.w3.org/2000/svg":w=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),a!=null){for(c=0;c<a.length;c++)if((p=a[c])&&"setAttribute"in p==!!w&&(w?p.localName==w:p.nodeType==3)){e=p,a[c]=null;break}}if(e==null){if(w==null)return document.createTextNode(v);e=document.createElementNS(i,w,v.is&&v),l&&(ce.__m&&ce.__m(n,a),l=!1),a=null}if(w==null)b===v||l&&e.data==v||(e.data=v);else{if(a=w=="textarea"&&v.defaultValue!=null?null:a&&on.call(e.childNodes),!l&&a!=null)for(b={},c=0;c<e.attributes.length;c++)b[(p=e.attributes[c]).name]=p.value;for(c in b)p=b[c],c=="dangerouslySetInnerHTML"?u=p:c=="children"||c in v||c=="value"&&"defaultValue"in v||c=="checked"&&"defaultChecked"in v||gn(e,c,null,p,i);for(c in v)p=v[c],c=="children"?m=p:c=="dangerouslySetInnerHTML"?h=p:c=="value"?g=p:c=="checked"?k=p:l&&typeof p!="function"||b[c]===p||gn(e,c,p,b[c],i);if(h)l||u&&(h.__html==u.__html||h.__html==e.innerHTML)||(e.innerHTML=h.__html),n.__k=[];else if(u&&(e.innerHTML=""),bi(n.type=="template"?e.content:e,An(m)?m:[m],n,r,o,w=="foreignObject"?"http://www.w3.org/1999/xhtml":i,a,s,a?a[0]:r.__k&&Dt(r,0),l,d),a!=null)for(c=a.length;c--;)_r(a[c]);l&&w!="textarea"||(c="value",w=="progress"&&g==null?e.removeAttribute("value"):g!=null&&(g!==e[c]||w=="progress"&&!g||w=="option"&&g!=b[c])&&gn(e,c,g,b[c],i),c="checked",k!=null&&k!=e[c]&&gn(e,c,k,b[c],i))}return e}function kr(e,n,r){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&n==null||(e.__u=e(n))}else e.current=n}catch(i){ce.__e(i,r)}}function Ci(e,n,r){var o,i;if(ce.unmount&&ce.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||kr(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(a){ce.__e(a,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&Ci(o[i],n,r||typeof e.type!="function");r||_r(e.__e),e.__c=e.__=e.__e=void 0}function tc(e,n,r){return this.constructor(e,r)}function nc(e,n,r){var o,i,a,s;n==document&&(n=document.documentElement),ce.__&&ce.__(e,n),i=(o=!1)?null:n.__k,a=[],s=[],wr(n,e=n.__k=Jl(Mn,null,[e]),i||Cn,Cn,n.namespaceURI,i?null:n.firstChild?on.call(n.childNodes):null,a,i?i.__e:n.firstChild,o,s),wi(a,e,s),e.props.children=null}function Ii(e,n,r){var o,i,a,s,l=Ye({},e.props);for(a in e.type&&e.type.defaultProps&&(s=e.type.defaultProps),n)a=="key"?o=n[a]:a=="ref"?i=n[a]:l[a]=n[a]===void 0&&s!=null?s[a]:n[a];return arguments.length>2&&(l.children=arguments.length>3?on.call(arguments,2):r),Qt(e.type,l,o||e.key,i||e.ref,null)}on=In.slice,ce={__e:function(e,n,r,o){for(var i,a,s;n=n.__;)if((i=n.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),s=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,o||{}),s=i.__d),s)return i.__E=i}catch(l){e=l}throw e}},mi=0,hi=function(e){return e!=null&&e.constructor===void 0},xn.prototype.setState=function(e,n){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Ye({},this.state),typeof e=="function"&&(e=e(Ye({},r),this.props)),e&&Ye(r,e),e!=null&&this.__v&&(n&&this._sb.push(n),_o(this))},xn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),_o(this))},xn.prototype.render=Mn,gt=[],pi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,gi=function(e,n){return e.__v.__b-n.__v.__b},Sn.__r=0,Bn=Math.random().toString(8),bn="__d"+Bn,Zt="__a"+Bn,yi=/(PointerCapture)$|Capture$/i,xr=0,cr=ko(!1),dr=ko(!0);function Co(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function rc(e){if(Array.isArray(e))return e}function oc(e,n,r){return(n=dc(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function ic(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function ac(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
210
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function
|
|
207
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zs(e,n){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function Qs(e){var n=Zs(e,"string");return typeof n=="symbol"?n:String(n)}var el=function(n,r){var o=new Set(r);return Object.assign.apply(Object,[{}].concat(Ws(Object.entries(n).filter(function(i){var a=so(i,1),s=a[0];return!o.has(s)}).map(function(i){var a=so(i,2),s=a[0],l=a[1];return Gs({},s,l)}))))};function tl(e,{wrapperElementType:n="div",nodeMapper:r=a=>a,methodNames:o=[],initPropNames:i=[]}={}){return _.forwardRef((a,s)=>{const l=_.useRef(),d=_.useMemo(()=>{const u=Object.fromEntries(i.filter(m=>a.hasOwnProperty(m)).map(m=>[m,a[m]]));return e(u)},[]);lo(()=>{d(r(l.current))},_.useLayoutEffect),lo(()=>d._destructor instanceof Function?d._destructor:void 0);const c=_.useCallback((u,...m)=>d[u]instanceof Function?d[u](...m):void 0,[d]),h=_.useRef({});return Object.keys(el(a,[...o,...i])).filter(u=>h.current[u]!==a[u]).forEach(u=>c(u,a[u])),h.current=a,_.useImperativeHandle(s,()=>Object.fromEntries(o.map(u=>[u,(...m)=>c(u,...m)])),[c]),Ko.createElement(n,{ref:l})})}function lo(e,n=_.useEffect){const r=_.useRef(),o=_.useRef(!1),i=_.useRef(!1),[a,s]=_.useState(0);o.current&&(i.current=!0),n(()=>(o.current||(r.current=e(),o.current=!0),s(l=>l+1),()=>{i.current&&(r.current&&r.current(),r.current=void 0,o.current=!1,i.current=!1)}),[])}var Dt=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Dt.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Dt.Bounce.In(e*2)*.5:Dt.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),Jt=function(){return performance.now()},si=function(){function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,n)}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(r){return n._tweens[r]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(){for(var n,r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];for(var i=0,a=r;i<a.length;i++){var s=a[i];(n=s._group)===null||n===void 0||n.remove(s),s._group=this,this._tweens[s.getId()]=s,this._tweensAddedDuringUpdate[s.getId()]=s}},e.prototype.remove=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];a._group=void 0,delete this._tweens[a.getId()],delete this._tweensAddedDuringUpdate[a.getId()]}},e.prototype.allStopped=function(){return this.getAll().every(function(n){return!n.isPlaying()})},e.prototype.update=function(n,r){n===void 0&&(n=Jt()),r===void 0&&(r=!0);var o=Object.keys(this._tweens);if(o.length!==0)for(;o.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<o.length;i++){var a=this._tweens[o[i]],s=!r;a&&a.update(n,s)===!1&&!r&&this.remove(a)}o=Object.keys(this._tweensAddedDuringUpdate)}},e}(),ar={Linear:function(e,n){var r=e.length-1,o=r*n,i=Math.floor(o),a=ar.Utils.Linear;return n<0?a(e[0],e[1],o):n>1?a(e[r],e[r-1],r-o):a(e[i],e[i+1>r?r:i+1],o-i)},Utils:{Linear:function(e,n,r){return(n-e)*r+e}}},li=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),sr=new si,co=function(){function e(n,r){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Dt.Linear.None,this._interpolationFunction=ar.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=li.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=n,typeof r=="object"?(this._group=r,r.add(this)):r===!0&&(this._group=sr,sr.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,r){if(r===void 0&&(r=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=r<0?0:r,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,r){if(n===void 0&&(n=Jt()),r===void 0&&(r=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var o in this._valuesStartRepeat)this._swapEndStartRepeatValues(o),this._valuesStart[o]=this._valuesStartRepeat[o]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||r){if(this._propertiesAreSetUp=!0,!this._isDynamic){var i={};for(var a in this._valuesEnd)i[a]=this._valuesEnd[a];this._valuesEnd=i}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,r)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,r,o,i,a){for(var s in o){var l=n[s],d=Array.isArray(l),c=d?"array":typeof l,h=!d&&Array.isArray(o[s]);if(!(c==="undefined"||c==="function")){if(h){var u=o[s];if(u.length===0)continue;for(var m=[l],p=0,g=u.length;p<g;p+=1){var k=this._handleRelativeValue(l,u[p]);if(isNaN(k)){h=!1,console.warn("Found invalid interpolation list. Skipping.");break}m.push(k)}h&&(o[s]=m)}if((c==="object"||d)&&l&&!h){r[s]=d?[]:{};var b=l;for(var v in b)r[s][v]=b[v];i[s]=d?[]:{};var u=o[s];if(!this._isDynamic){var w={};for(var v in u)w[v]=u[v];o[s]=u=w}this._setupProperties(b,r[s],u,i[s],a)}else(typeof r[s]>"u"||a)&&(r[s]=l),d||(r[s]*=1),h?i[s]=o[s].slice().reverse():i[s]=r[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(n){return n===void 0&&(n=Jt()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this)},e.prototype.resume=function(n){return n===void 0&&(n=Jt()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var n=0,r=this._chainedTweens.length;n<r;n++)this._chainedTweens[n].stop();return this},e.prototype.group=function(n){return n?(n.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},e.prototype.remove=function(){var n;return(n=this._group)===null||n===void 0||n.remove(this),this},e.prototype.delay=function(n){return n===void 0&&(n=0),this._delayTime=n,this},e.prototype.repeat=function(n){return n===void 0&&(n=0),this._initialRepeat=n,this._repeat=n,this},e.prototype.repeatDelay=function(n){return this._repeatDelayTime=n,this},e.prototype.yoyo=function(n){return n===void 0&&(n=!1),this._yoyo=n,this},e.prototype.easing=function(n){return n===void 0&&(n=Dt.Linear.None),this._easingFunction=n,this},e.prototype.interpolation=function(n){return n===void 0&&(n=ar.Linear),this._interpolationFunction=n,this},e.prototype.chain=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._chainedTweens=n,this},e.prototype.onStart=function(n){return this._onStartCallback=n,this},e.prototype.onEveryStart=function(n){return this._onEveryStartCallback=n,this},e.prototype.onUpdate=function(n){return this._onUpdateCallback=n,this},e.prototype.onRepeat=function(n){return this._onRepeatCallback=n,this},e.prototype.onComplete=function(n){return this._onCompleteCallback=n,this},e.prototype.onStop=function(n){return this._onStopCallback=n,this},e.prototype.update=function(n,r){var o=this,i;if(n===void 0&&(n=Jt()),r===void 0&&(r=e.autoStartOnUpdate),this._isPaused)return!0;var a;if(!this._goToEnd&&!this._isPlaying)if(r)this.start(n,!0);else return!1;if(this._goToEnd=!1,n<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var s=n-this._startTime,l=this._duration+((i=this._repeatDelayTime)!==null&&i!==void 0?i:this._delayTime),d=this._duration+this._repeat*l,c=function(){if(o._duration===0||s>d)return 1;var k=Math.trunc(s/l),b=s-k*l,v=Math.min(b/o._duration,1);return v===0&&s===o._duration?1:v},h=c(),u=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,u),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),this._duration===0||s>=this._duration)if(this._repeat>0){var m=Math.min(Math.trunc((s-this._duration)/l)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=m);for(a in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[a]=="string"&&(this._valuesStartRepeat[a]=this._valuesStartRepeat[a]+parseFloat(this._valuesEnd[a])),this._yoyo&&this._swapEndStartRepeatValues(a),this._valuesStart[a]=this._valuesStartRepeat[a];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=l*m,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var p=0,g=this._chainedTweens.length;p<g;p++)this._chainedTweens[p].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(n,r,o,i){for(var a in o)if(r[a]!==void 0){var s=r[a]||0,l=o[a],d=Array.isArray(n[a]),c=Array.isArray(l),h=!d&&c;h?n[a]=this._interpolationFunction(l,i):typeof l=="object"&&l?this._updateProperties(n[a],s,l,i):(l=this._handleRelativeValue(s,l),typeof l=="number"&&(n[a]=s+(l-s)*i))}},e.prototype._handleRelativeValue=function(n,r){return typeof r!="string"?r:r.charAt(0)==="+"||r.charAt(0)==="-"?n+parseFloat(r):parseFloat(r)},e.prototype._swapEndStartRepeatValues=function(n){var r=this._valuesStartRepeat[n],o=this._valuesEnd[n];typeof o=="string"?this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(o):this._valuesStartRepeat[n]=this._valuesEnd[n],this._valuesEnd[n]=r},e.autoStartOnUpdate=!1,e}();li.nextId;var Xe=sr;Xe.getAll.bind(Xe);Xe.removeAll.bind(Xe);Xe.add.bind(Xe);Xe.remove.bind(Xe);Xe.update.bind(Xe);function uo(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function nl(e){if(Array.isArray(e))return e}function rl(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function ol(e,n,r){return Object.defineProperty(e,"prototype",{writable:!1}),e}function il(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function al(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
208
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sl(e,n){return nl(e)||il(e,n)||ll(e,n)||al()}function ll(e,n){if(e){if(typeof e=="string")return uo(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?uo(e,n):void 0}}var cl=ol(function e(n,r){var o=r.default,i=o===void 0?null:o,a=r.triggerUpdate,s=a===void 0?!0:a,l=r.onChange,d=l===void 0?function(c,h){}:l;rl(this,e),this.name=n,this.defaultVal=i,this.triggerUpdate=s,this.onChange=d});function xr(e){var n=e.stateInit,r=n===void 0?function(){return{}}:n,o=e.props,i=o===void 0?{}:o,a=e.methods,s=a===void 0?{}:a,l=e.aliases,d=l===void 0?{}:l,c=e.init,h=c===void 0?function(){}:c,u=e.update,m=u===void 0?function(){}:u,p=Object.keys(i).map(function(g){return new cl(g,i[g])});return function g(){for(var k=arguments.length,b=new Array(k),v=0;v<k;v++)b[v]=arguments[v];var w=!!(this instanceof g&&this.constructor),D=w?b.shift():void 0,I=b[0],S=I===void 0?{}:I,N=Object.assign({},r instanceof Function?r(S):r,{initialised:!1}),P={};function T($){return U($,S),E(),T}var U=function(F,B){h.call(T,F,N,B),N.initialised=!0},E=xa(function(){N.initialised&&(m.call(T,N,P),P={})},1);return p.forEach(function($){T[$.name]=F($);function F(B){var A=B.name,Y=B.triggerUpdate,te=Y===void 0?!1:Y,ie=B.onChange,ke=ie===void 0?function(ye,me){}:ie,De=B.defaultVal,Ae=De===void 0?null:De;return function(ye){var me=N[A];if(!arguments.length)return me;var ae=ye===void 0?Ae:ye;return N[A]=ae,ke.call(T,ae,N,me),!P.hasOwnProperty(A)&&(P[A]=me),te&&E(),T}}}),Object.keys(s).forEach(function($){T[$]=function(){for(var F,B=arguments.length,A=new Array(B),Y=0;Y<B;Y++)A[Y]=arguments[Y];return(F=s[$]).call.apply(F,[T,N].concat(A))}}),Object.entries(d).forEach(function($){var F=sl($,2),B=F[0],A=F[1];return T[B]=T[A]}),T.resetProps=function(){return p.forEach(function($){T[$.name]($.defaultVal)}),T},T.resetProps(),N._rerender=E,w&&D&&T(D),T}}var ee=function(e){return typeof e=="function"?e:typeof e=="string"?function(n){return n[e]}:function(n){return e}};function kn(e){"@babel/helpers - typeof";return kn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},kn(e)}var dl=/^\s+/,ul=/\s+$/;function W(e,n){if(e=e||"",n=n||{},e instanceof W)return e;if(!(this instanceof W))return new W(e,n);var r=fl(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=Math.round(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=r.ok}W.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var n=this.toRgb();return(n.r*299+n.g*587+n.b*114)/1e3},getLuminance:function(){var n=this.toRgb(),r,o,i,a,s,l;return r=n.r/255,o=n.g/255,i=n.b/255,r<=.03928?a=r/12.92:a=Math.pow((r+.055)/1.055,2.4),o<=.03928?s=o/12.92:s=Math.pow((o+.055)/1.055,2.4),i<=.03928?l=i/12.92:l=Math.pow((i+.055)/1.055,2.4),.2126*a+.7152*s+.0722*l},setAlpha:function(n){return this._a=ci(n),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var n=mo(this._r,this._g,this._b);return{h:n.h*360,s:n.s,v:n.v,a:this._a}},toHsvString:function(){var n=mo(this._r,this._g,this._b),r=Math.round(n.h*360),o=Math.round(n.s*100),i=Math.round(n.v*100);return this._a==1?"hsv("+r+", "+o+"%, "+i+"%)":"hsva("+r+", "+o+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var n=fo(this._r,this._g,this._b);return{h:n.h*360,s:n.s,l:n.l,a:this._a}},toHslString:function(){var n=fo(this._r,this._g,this._b),r=Math.round(n.h*360),o=Math.round(n.s*100),i=Math.round(n.l*100);return this._a==1?"hsl("+r+", "+o+"%, "+i+"%)":"hsla("+r+", "+o+"%, "+i+"%, "+this._roundA+")"},toHex:function(n){return ho(this._r,this._g,this._b,n)},toHexString:function(n){return"#"+this.toHex(n)},toHex8:function(n){return gl(this._r,this._g,this._b,this._a,n)},toHex8String:function(n){return"#"+this.toHex8(n)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(le(this._r,255)*100)+"%",g:Math.round(le(this._g,255)*100)+"%",b:Math.round(le(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(le(this._r,255)*100)+"%, "+Math.round(le(this._g,255)*100)+"%, "+Math.round(le(this._b,255)*100)+"%)":"rgba("+Math.round(le(this._r,255)*100)+"%, "+Math.round(le(this._g,255)*100)+"%, "+Math.round(le(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:Pl[ho(this._r,this._g,this._b,!0)]||!1},toFilter:function(n){var r="#"+po(this._r,this._g,this._b,this._a),o=r,i=this._gradientType?"GradientType = 1, ":"";if(n){var a=W(n);o="#"+po(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+i+"startColorstr="+r+",endColorstr="+o+")"},toString:function(n){var r=!!n;n=n||this._format;var o=!1,i=this._a<1&&this._a>=0,a=!r&&i&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return a?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(o=this.toRgbString()),n==="prgb"&&(o=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(o=this.toHexString()),n==="hex3"&&(o=this.toHexString(!0)),n==="hex4"&&(o=this.toHex8String(!0)),n==="hex8"&&(o=this.toHex8String()),n==="name"&&(o=this.toName()),n==="hsl"&&(o=this.toHslString()),n==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},clone:function(){return W(this.toString())},_applyModification:function(n,r){var o=n.apply(null,[this].concat([].slice.call(r)));return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this},lighten:function(){return this._applyModification(xl,arguments)},brighten:function(){return this._applyModification(_l,arguments)},darken:function(){return this._applyModification(wl,arguments)},desaturate:function(){return this._applyModification(yl,arguments)},saturate:function(){return this._applyModification(vl,arguments)},greyscale:function(){return this._applyModification(bl,arguments)},spin:function(){return this._applyModification(kl,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(Sl,arguments)},complement:function(){return this._applyCombination(Cl,arguments)},monochromatic:function(){return this._applyCombination(Dl,arguments)},splitcomplement:function(){return this._applyCombination(Il,arguments)},triad:function(){return this._applyCombination(go,[3])},tetrad:function(){return this._applyCombination(go,[4])}};W.fromRatio=function(e,n){if(kn(e)=="object"){var r={};for(var o in e)e.hasOwnProperty(o)&&(o==="a"?r[o]=e[o]:r[o]=Xt(e[o]));e=r}return W(e,n)};function fl(e){var n={r:0,g:0,b:0},r=1,o=null,i=null,a=null,s=!1,l=!1;return typeof e=="string"&&(e=Ml(e)),kn(e)=="object"&&(tt(e.r)&&tt(e.g)&&tt(e.b)?(n=ml(e.r,e.g,e.b),s=!0,l=String(e.r).substr(-1)==="%"?"prgb":"rgb"):tt(e.h)&&tt(e.s)&&tt(e.v)?(o=Xt(e.s),i=Xt(e.v),n=pl(e.h,o,i),s=!0,l="hsv"):tt(e.h)&&tt(e.s)&&tt(e.l)&&(o=Xt(e.s),a=Xt(e.l),n=hl(e.h,o,a),s=!0,l="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=ci(r),{ok:s,format:e.format||l,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:r}}function ml(e,n,r){return{r:le(e,255)*255,g:le(n,255)*255,b:le(r,255)*255}}function fo(e,n,r){e=le(e,255),n=le(n,255),r=le(r,255);var o=Math.max(e,n,r),i=Math.min(e,n,r),a,s,l=(o+i)/2;if(o==i)a=s=0;else{var d=o-i;switch(s=l>.5?d/(2-o-i):d/(o+i),o){case e:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-e)/d+2;break;case r:a=(e-n)/d+4;break}a/=6}return{h:a,s,l}}function hl(e,n,r){var o,i,a;e=le(e,360),n=le(n,100),r=le(r,100);function s(c,h,u){return u<0&&(u+=1),u>1&&(u-=1),u<1/6?c+(h-c)*6*u:u<1/2?h:u<2/3?c+(h-c)*(2/3-u)*6:c}if(n===0)o=i=a=r;else{var l=r<.5?r*(1+n):r+n-r*n,d=2*r-l;o=s(d,l,e+1/3),i=s(d,l,e),a=s(d,l,e-1/3)}return{r:o*255,g:i*255,b:a*255}}function mo(e,n,r){e=le(e,255),n=le(n,255),r=le(r,255);var o=Math.max(e,n,r),i=Math.min(e,n,r),a,s,l=o,d=o-i;if(s=o===0?0:d/o,o==i)a=0;else{switch(o){case e:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-e)/d+2;break;case r:a=(e-n)/d+4;break}a/=6}return{h:a,s,v:l}}function pl(e,n,r){e=le(e,360)*6,n=le(n,100),r=le(r,100);var o=Math.floor(e),i=e-o,a=r*(1-n),s=r*(1-i*n),l=r*(1-(1-i)*n),d=o%6,c=[r,s,a,a,l,r][d],h=[l,r,r,s,a,a][d],u=[a,a,l,r,r,s][d];return{r:c*255,g:h*255,b:u*255}}function ho(e,n,r,o){var i=[He(Math.round(e).toString(16)),He(Math.round(n).toString(16)),He(Math.round(r).toString(16))];return o&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function gl(e,n,r,o,i){var a=[He(Math.round(e).toString(16)),He(Math.round(n).toString(16)),He(Math.round(r).toString(16)),He(di(o))];return i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function po(e,n,r,o){var i=[He(di(o)),He(Math.round(e).toString(16)),He(Math.round(n).toString(16)),He(Math.round(r).toString(16))];return i.join("")}W.equals=function(e,n){return!e||!n?!1:W(e).toRgbString()==W(n).toRgbString()};W.random=function(){return W.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})};function yl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.s-=n/100,r.s=Tn(r.s),W(r)}function vl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.s+=n/100,r.s=Tn(r.s),W(r)}function bl(e){return W(e).desaturate(100)}function xl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.l+=n/100,r.l=Tn(r.l),W(r)}function _l(e,n){n=n===0?0:n||10;var r=W(e).toRgb();return r.r=Math.max(0,Math.min(255,r.r-Math.round(255*-(n/100)))),r.g=Math.max(0,Math.min(255,r.g-Math.round(255*-(n/100)))),r.b=Math.max(0,Math.min(255,r.b-Math.round(255*-(n/100)))),W(r)}function wl(e,n){n=n===0?0:n||10;var r=W(e).toHsl();return r.l-=n/100,r.l=Tn(r.l),W(r)}function kl(e,n){var r=W(e).toHsl(),o=(r.h+n)%360;return r.h=o<0?360+o:o,W(r)}function Cl(e){var n=W(e).toHsl();return n.h=(n.h+180)%360,W(n)}function go(e,n){if(isNaN(n)||n<=0)throw new Error("Argument to polyad must be a positive number");for(var r=W(e).toHsl(),o=[W(e)],i=360/n,a=1;a<n;a++)o.push(W({h:(r.h+a*i)%360,s:r.s,l:r.l}));return o}function Il(e){var n=W(e).toHsl(),r=n.h;return[W(e),W({h:(r+72)%360,s:n.s,l:n.l}),W({h:(r+216)%360,s:n.s,l:n.l})]}function Sl(e,n,r){n=n||6,r=r||30;var o=W(e).toHsl(),i=360/r,a=[W(e)];for(o.h=(o.h-(i*n>>1)+720)%360;--n;)o.h=(o.h+i)%360,a.push(W(o));return a}function Dl(e,n){n=n||6;for(var r=W(e).toHsv(),o=r.h,i=r.s,a=r.v,s=[],l=1/n;n--;)s.push(W({h:o,s:i,v:a})),a=(a+l)%1;return s}W.mix=function(e,n,r){r=r===0?0:r||50;var o=W(e).toRgb(),i=W(n).toRgb(),a=r/100,s={r:(i.r-o.r)*a+o.r,g:(i.g-o.g)*a+o.g,b:(i.b-o.b)*a+o.b,a:(i.a-o.a)*a+o.a};return W(s)};W.readability=function(e,n){var r=W(e),o=W(n);return(Math.max(r.getLuminance(),o.getLuminance())+.05)/(Math.min(r.getLuminance(),o.getLuminance())+.05)};W.isReadable=function(e,n,r){var o=W.readability(e,n),i,a;switch(a=!1,i=El(r),i.level+i.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7;break}return a};W.mostReadable=function(e,n,r){var o=null,i=0,a,s,l,d;r=r||{},s=r.includeFallbackColors,l=r.level,d=r.size;for(var c=0;c<n.length;c++)a=W.readability(e,n[c]),a>i&&(i=a,o=W(n[c]));return W.isReadable(e,o,{level:l,size:d})||!s?o:(r.includeFallbackColors=!1,W.mostReadable(e,["#fff","#000"],r))};var lr=W.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Pl=W.hexNames=Nl(lr);function Nl(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function ci(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function le(e,n){Tl(e)&&(e="100%");var r=Al(e);return e=Math.min(n,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Tn(e){return Math.min(1,Math.max(0,e))}function je(e){return parseInt(e,16)}function Tl(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Al(e){return typeof e=="string"&&e.indexOf("%")!=-1}function He(e){return e.length==1?"0"+e:""+e}function Xt(e){return e<=1&&(e=e*100+"%"),e}function di(e){return Math.round(parseFloat(e)*255).toString(16)}function yo(e){return je(e)/255}var Be=function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",r="(?:"+n+")|(?:"+e+")",o="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",i="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+o),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+o),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+o),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function tt(e){return!!Be.CSS_UNIT.exec(e)}function Ml(e){e=e.replace(dl,"").replace(ul,"").toLowerCase();var n=!1;if(lr[e])e=lr[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=Be.rgb.exec(e))?{r:r[1],g:r[2],b:r[3]}:(r=Be.rgba.exec(e))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=Be.hsl.exec(e))?{h:r[1],s:r[2],l:r[3]}:(r=Be.hsla.exec(e))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=Be.hsv.exec(e))?{h:r[1],s:r[2],v:r[3]}:(r=Be.hsva.exec(e))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=Be.hex8.exec(e))?{r:je(r[1]),g:je(r[2]),b:je(r[3]),a:yo(r[4]),format:n?"name":"hex8"}:(r=Be.hex6.exec(e))?{r:je(r[1]),g:je(r[2]),b:je(r[3]),format:n?"name":"hex"}:(r=Be.hex4.exec(e))?{r:je(r[1]+""+r[1]),g:je(r[2]+""+r[2]),b:je(r[3]+""+r[3]),a:yo(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=Be.hex3.exec(e))?{r:je(r[1]+""+r[1]),g:je(r[2]+""+r[2]),b:je(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function El(e){var n,r;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),r!=="small"&&r!=="large"&&(r="small"),{level:n,size:r}}function cr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function jl(e){if(Array.isArray(e))return cr(e)}function ui(e,n,r){if(typeof e=="function"?e===n:e.has(n))return arguments.length<3?n:r;throw new TypeError("Private element is not present on this object")}function Ol(e,n){if(n.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function Rl(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function Le(e,n){return e.get(ui(e,n))}function vo(e,n,r){Ol(e,n),n.set(e,r)}function bo(e,n,r){return e.set(ui(e,n),r),r}function Fl(e,n){for(var r=0;r<n.length;r++){var o=n[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,Hl(o.key),o)}}function Ll(e,n,r){return n&&Fl(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function zl(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $l(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
209
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ul(e){return jl(e)||zl(e)||Vl(e)||$l()}function Bl(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Hl(e){var n=Bl(e,"string");return typeof n=="symbol"?n:n+""}function Vl(e,n){if(e){if(typeof e=="string")return cr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?cr(e,n):void 0}}var Gl=123,Wl=function(n){return"#".concat(Math.min(n,Math.pow(2,24)).toString(16).padStart(6,"0"))},fi=function(n,r,o){return(n<<16)+(r<<8)+o},ql=function(n){var r=W(n).toRgb(),o=r.r,i=r.g,a=r.b;return fi(o,i,a)},xo=function(n,r){return n*Gl%Math.pow(2,r)},It=new WeakMap,nt=new WeakMap,Yl=function(){function e(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:6;Rl(this,e),vo(this,It,void 0),vo(this,nt,void 0),bo(nt,this,n),this.reset()}return Ll(e,[{key:"reset",value:function(){bo(It,this,["__reserved for background__"])}},{key:"register",value:function(r){if(Le(It,this).length>=Math.pow(2,24-Le(nt,this)))return null;var o=Le(It,this).length,i=xo(o,Le(nt,this)),a=Wl(o+(i<<24-Le(nt,this)));return Le(It,this).push(r),a}},{key:"lookup",value:function(r){if(!r)return null;var o=typeof r=="string"?ql(r):fi.apply(void 0,Ul(r));if(!o)return null;var i=o&Math.pow(2,24-Le(nt,this))-1,a=o>>24-Le(nt,this)&Math.pow(2,Le(nt,this))-1;return xo(i,Le(nt,this))!==a||i>=Le(It,this).length?null:Le(It,this)[i]}}])}(),on,ce,mi,hi,vt,_o,pi,gi,Bn,bn,Zt,yi,_r,dr,ur,Cn={},In=[],Kl=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,An=Array.isArray;function Ye(e,n){for(var r in n)e[r]=n[r];return e}function wr(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Jl(e,n,r){var o,i,a,s={};for(a in n)a=="key"?o=n[a]:a=="ref"?i=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?on.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)s[a]===void 0&&(s[a]=e.defaultProps[a]);return Qt(e,s,o,i,null)}function Qt(e,n,r,o,i){var a={type:e,props:n,key:r,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++mi,__i:-1,__u:0};return i==null&&ce.vnode!=null&&ce.vnode(a),a}function Mn(e){return e.children}function xn(e,n){this.props=e,this.context=n}function Nt(e,n){if(n==null)return e.__?Nt(e.__,e.__i+1):null;for(var r;n<e.__k.length;n++)if((r=e.__k[n])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?Nt(e):null}function Xl(e){if(e.__P&&e.__d){var n=e.__v,r=n.__e,o=[],i=[],a=Ye({},n);a.__v=n.__v+1,ce.vnode&&ce.vnode(a),kr(e.__P,a,n,e.__n,e.__P.namespaceURI,32&n.__u?[r]:null,o,r??Nt(n),!!(32&n.__u),i),a.__v=n.__v,a.__.__k[a.__i]=a,wi(o,a,i),n.__e=n.__=null,a.__e!=r&&vi(a)}}function vi(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),vi(e)}function wo(e){(!e.__d&&(e.__d=!0)&&vt.push(e)&&!Sn.__r++||_o!=ce.debounceRendering)&&((_o=ce.debounceRendering)||pi)(Sn)}function Sn(){try{for(var e,n=1;vt.length;)vt.length>n&&vt.sort(gi),e=vt.shift(),n=vt.length,Xl(e)}finally{vt.length=Sn.__r=0}}function bi(e,n,r,o,i,a,s,l,d,c,h){var u,m,p,g,k,b,v=o&&o.__k||In,w=n.length;for(d=Zl(r,n,v,d,w),u=0;u<w;u++)(p=r.__k[u])!=null&&(m=p.__i!=-1&&v[p.__i]||Cn,p.__i=u,b=kr(e,p,m,i,a,s,l,d,c,h),g=p.__e,p.ref&&m.ref!=p.ref&&(m.ref&&Cr(m.ref,null,p),h.push(p.ref,p.__c||g,p)),k==null&&g!=null&&(k=g),4&p.__u?(d=xi(p,d,e),m.__e&&(m.__e=null)):typeof p.type=="function"&&b!==void 0?d=b:g&&(d=g.nextSibling),p.__u&=-7);return r.__e=k,d}function Zl(e,n,r,o,i){var a,s,l,d,c,h=r.length,u=h,m=0;for(e.__k=new Array(i),a=0;a<i;a++)(s=n[a])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[a]=Qt(null,s,null,null,null):An(s)?s=e.__k[a]=Qt(Mn,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[a]=Qt(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[a]=s,d=a+m,s.__=e,s.__b=e.__b+1,l=null,(c=s.__i=Ql(s,r,d,u))!=-1&&(u--,(l=r[c])&&(l.__u|=2)),l==null||l.__v==null?(c==-1&&(i>h?m--:i<h&&m++),typeof s.type!="function"&&(s.__u|=4)):c!=d&&(c==d-1?m--:c==d+1?m++:(c>d?m--:m++,s.__u|=4))):e.__k[a]=null;if(u)for(a=0;a<h;a++)(l=r[a])!=null&&!(2&l.__u)&&(l.__e==o&&(o=Nt(l)),Ci(l,l));return o}function xi(e,n,r){var o,i;if(typeof e.type=="function"){for(o=e.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=e,n=xi(o[i],n,r));return n}e.__e!=n&&(n&&e.type&&!n.parentNode&&(n=Nt(e)),n=r.insertBefore(e.__e,n||null));do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function Ql(e,n,r,o){var i,a,s,l=e.key,d=e.type,c=n[r],h=c!=null&&(2&c.__u)==0;if(c===null&&l==null||h&&l==c.key&&d==c.type)return r;if(o>(h?1:0)){for(i=r-1,a=r+1;i>=0||a<n.length;)if((c=n[s=i>=0?i--:a++])!=null&&!(2&c.__u)&&l==c.key&&d==c.type)return s}return-1}function ko(e,n,r){n[0]=="-"?e.setProperty(n,r??""):e[n]=r==null?"":typeof r!="number"||Kl.test(n)?r:r+"px"}function gn(e,n,r,o,i){var a,s;e:if(n=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(n in o)r&&n in r||ko(e.style,n,"");if(r)for(n in r)o&&r[n]==o[n]||ko(e.style,n,r[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(yi,"$1")),s=n.toLowerCase(),n=s in e||n=="onFocusOut"||n=="onFocusIn"?s.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=r,r?o?r[Zt]=o[Zt]:(r[Zt]=_r,e.addEventListener(n,a?ur:dr,a)):e.removeEventListener(n,a?ur:dr,a);else{if(i=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&r==1?"":r))}}function Co(e){return function(n){if(this.l){var r=this.l[n.type+e];if(n[bn]==null)n[bn]=_r++;else if(n[bn]<r[Zt])return;return r(ce.event?ce.event(n):n)}}}function kr(e,n,r,o,i,a,s,l,d,c){var h,u,m,p,g,k,b,v,w,D,I,S,N,P,T,U,E=n.type;if(n.constructor!==void 0)return null;128&r.__u&&(d=!!(32&r.__u),a=[l=n.__e=r.__e]),(h=ce.__b)&&h(n);e:if(typeof E=="function"){u=s.length;try{if(w=n.props,D=E.prototype&&E.prototype.render,I=(h=E.contextType)&&o[h.__c],S=h?I?I.props.value:h.__:o,r.__c?v=(m=n.__c=r.__c).__=m.__E:(D?n.__c=m=new E(w,S):(n.__c=m=new xn(w,S),m.constructor=E,m.render=tc),I&&I.sub(m),m.state||(m.state={}),m.__n=o,p=m.__d=!0,m.__h=[],m._sb=[]),D&&m.__s==null&&(m.__s=m.state),D&&E.getDerivedStateFromProps!=null&&(m.__s==m.state&&(m.__s=Ye({},m.__s)),Ye(m.__s,E.getDerivedStateFromProps(w,m.__s))),g=m.props,k=m.state,m.__v=n,p)D&&E.getDerivedStateFromProps==null&&m.componentWillMount!=null&&m.componentWillMount(),D&&m.componentDidMount!=null&&m.__h.push(m.componentDidMount);else{if(D&&E.getDerivedStateFromProps==null&&w!==g&&m.componentWillReceiveProps!=null&&m.componentWillReceiveProps(w,S),n.__v==r.__v||!m.__e&&m.shouldComponentUpdate!=null&&m.shouldComponentUpdate(w,m.__s,S)===!1){n.__v!=r.__v&&(m.props=w,m.state=m.__s,m.__d=!1),n.__e=r.__e,n.__k=r.__k,n.__k.some(function($){$&&($.__=n)}),In.push.apply(m.__h,m._sb),m._sb=[],m.__h.length&&s.push(m),l=Nt(r);break e}m.componentWillUpdate!=null&&m.componentWillUpdate(w,m.__s,S),D&&m.componentDidUpdate!=null&&m.__h.push(function(){m.componentDidUpdate(g,k,b)})}if(m.context=S,m.props=w,m.__P=e,m.__e=!1,N=ce.__r,P=0,D)m.state=m.__s,m.__d=!1,N&&N(n),h=m.render(m.props,m.state,m.context),In.push.apply(m.__h,m._sb),m._sb=[];else do m.__d=!1,N&&N(n),h=m.render(m.props,m.state,m.context),m.state=m.__s;while(m.__d&&++P<25);m.state=m.__s,m.getChildContext!=null&&(o=Ye(Ye({},o),m.getChildContext())),D&&!p&&m.getSnapshotBeforeUpdate!=null&&(b=m.getSnapshotBeforeUpdate(g,k)),T=h!=null&&h.type===Mn&&h.key==null?ki(h.props.children):h,l=bi(e,An(T)?T:[T],n,r,o,i,a,s,l,d,c),m.base=n.__e,n.__u&=-161,m.__h.length&&s.push(m),v&&(m.__E=m.__=null)}catch($){if(s.length=u,n.__v=null,d||a!=null){if($.then){for(n.__u|=d?160:128;l&&l.nodeType==8&&l.nextSibling;)l=l.nextSibling;a!=null&&(a[a.indexOf(l)]=null),n.__e=l}else if(a!=null)for(U=a.length;U--;)wr(a[U])}else n.__e=r.__e;n.__k==null&&(n.__k=r.__k||[]),$.then||_i(n),ce.__e($,n,r)}}else a==null&&n.__v==r.__v?(n.__k=r.__k,n.__e=r.__e):l=n.__e=ec(r.__e,n,r,o,i,a,s,d,c);return(h=ce.diffed)&&h(n),128&n.__u?void 0:l}function _i(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(_i))}function wi(e,n,r){for(var o=0;o<r.length;o++)Cr(r[o],r[++o],r[++o]);ce.__c&&ce.__c(n,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(a){a.call(i)})}catch(a){ce.__e(a,i.__v)}})}function ki(e){return typeof e!="object"||e==null||e.__b>0?e:An(e)?e.map(ki):e.constructor!==void 0?null:Ye({},e)}function ec(e,n,r,o,i,a,s,l,d){var c,h,u,m,p,g,k,b=r.props||Cn,v=n.props,w=n.type;if(w=="svg"?i="http://www.w3.org/2000/svg":w=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),a!=null){for(c=0;c<a.length;c++)if((p=a[c])&&"setAttribute"in p==!!w&&(w?p.localName==w:p.nodeType==3)){e=p,a[c]=null;break}}if(e==null){if(w==null)return document.createTextNode(v);e=document.createElementNS(i,w,v.is&&v),l&&(ce.__m&&ce.__m(n,a),l=!1),a=null}if(w==null)b===v||l&&e.data==v||(e.data=v);else{if(a=w=="textarea"&&v.defaultValue!=null?null:a&&on.call(e.childNodes),!l&&a!=null)for(b={},c=0;c<e.attributes.length;c++)b[(p=e.attributes[c]).name]=p.value;for(c in b)p=b[c],c=="dangerouslySetInnerHTML"?u=p:c=="children"||c in v||c=="value"&&"defaultValue"in v||c=="checked"&&"defaultChecked"in v||gn(e,c,null,p,i);for(c in v)p=v[c],c=="children"?m=p:c=="dangerouslySetInnerHTML"?h=p:c=="value"?g=p:c=="checked"?k=p:l&&typeof p!="function"||b[c]===p||gn(e,c,p,b[c],i);if(h)l||u&&(h.__html==u.__html||h.__html==e.innerHTML)||(e.innerHTML=h.__html),n.__k=[];else if(u&&(e.innerHTML=""),bi(n.type=="template"?e.content:e,An(m)?m:[m],n,r,o,w=="foreignObject"?"http://www.w3.org/1999/xhtml":i,a,s,a?a[0]:r.__k&&Nt(r,0),l,d),a!=null)for(c=a.length;c--;)wr(a[c]);l&&w!="textarea"||(c="value",w=="progress"&&g==null?e.removeAttribute("value"):g!=null&&(g!==e[c]||w=="progress"&&!g||w=="option"&&g!=b[c])&&gn(e,c,g,b[c],i),c="checked",k!=null&&k!=e[c]&&gn(e,c,k,b[c],i))}return e}function Cr(e,n,r){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&n==null||(e.__u=e(n))}else e.current=n}catch(i){ce.__e(i,r)}}function Ci(e,n,r){var o,i;if(ce.unmount&&ce.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||Cr(o,null,n)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(a){ce.__e(a,n)}o.base=o.__P=o.__n=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&Ci(o[i],n,r||typeof e.type!="function");r||wr(e.__e),e.__c=e.__=e.__e=void 0}function tc(e,n,r){return this.constructor(e,r)}function nc(e,n,r){var o,i,a,s;n==document&&(n=document.documentElement),ce.__&&ce.__(e,n),i=(o=!1)?null:n.__k,a=[],s=[],kr(n,e=n.__k=Jl(Mn,null,[e]),i||Cn,Cn,n.namespaceURI,i?null:n.firstChild?on.call(n.childNodes):null,a,i?i.__e:n.firstChild,o,s),wi(a,e,s),e.props.children=null}function Ii(e,n,r){var o,i,a,s,l=Ye({},e.props);for(a in e.type&&e.type.defaultProps&&(s=e.type.defaultProps),n)a=="key"?o=n[a]:a=="ref"?i=n[a]:l[a]=n[a]===void 0&&s!=null?s[a]:n[a];return arguments.length>2&&(l.children=arguments.length>3?on.call(arguments,2):r),Qt(e.type,l,o||e.key,i||e.ref,null)}on=In.slice,ce={__e:function(e,n,r,o){for(var i,a,s;n=n.__;)if((i=n.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),s=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,o||{}),s=i.__d),s)return i.__E=i}catch(l){e=l}throw e}},mi=0,hi=function(e){return e!=null&&e.constructor===void 0},xn.prototype.setState=function(e,n){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Ye({},this.state),typeof e=="function"&&(e=e(Ye({},r),this.props)),e&&Ye(r,e),e!=null&&this.__v&&(n&&this._sb.push(n),wo(this))},xn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),wo(this))},xn.prototype.render=Mn,vt=[],pi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,gi=function(e,n){return e.__v.__b-n.__v.__b},Sn.__r=0,Bn=Math.random().toString(8),bn="__d"+Bn,Zt="__a"+Bn,yi=/(PointerCapture)$|Capture$/i,_r=0,dr=Co(!1),ur=Co(!0);function Io(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function rc(e){if(Array.isArray(e))return e}function oc(e,n,r){return(n=dc(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function ic(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function ac(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
210
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function So(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,o)}return r}function sc(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?So(Object(r),!0).forEach(function(o){oc(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):So(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function lc(e,n){return rc(e)||ic(e,n)||uc(e,n)||ac()}function cc(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function dc(e){var n=cc(e,"string");return typeof n=="symbol"?n:n+""}function Dn(e){"@babel/helpers - typeof";return Dn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Dn(e)}function uc(e,n){if(e){if(typeof e=="string")return Io(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Io(e,n):void 0}}var fr=function(n){if(Dn(n)!=="object")return n;var r=Ii(n);if(r.props){var o;r.props=sc({},r.props),r!=null&&(o=r.props)!==null&&o!==void 0&&o.children&&(r.props.children=Array.isArray(r.props.children)?r.props.children.map(fr):fr(r.props.children))}return r},fc=function(n){return hi(Ii(n))},mc=function(n,r){delete r.__k,nc(fr(n),r)};function hc(e,n){n===void 0&&(n={});var r=n.insertAt;if(!(typeof document>"u")){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",r==="top"&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var pc=`.float-tooltip-kap {
|
|
211
211
|
position: absolute;
|
|
212
212
|
width: max-content; /* prevent shrinking near right edge */
|
|
213
213
|
max-width: max(50%, 150px);
|
|
@@ -218,9 +218,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
218
218
|
background: rgba(0,0,0,0.6);
|
|
219
219
|
pointer-events: none;
|
|
220
220
|
}
|
|
221
|
-
`;hc(pc);var gc=br({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=o.style,a=i===void 0?{}:i,s=!!n&&Dn(n)==="object"&&!!n.node&&typeof n.node=="function",l=er(s?n.node():n);l.style("position")==="static"&&l.style("position","relative"),r.tooltipEl=l.append("div").attr("class","float-tooltip-kap"),Object.entries(a).forEach(function(c){var h=lc(c,2),u=h[0],m=h[1];return r.tooltipEl.style(u,m)}),r.tooltipEl.style("left","-10000px").style("display","none");var d="tooltip-".concat(Math.round(Math.random()*1e12));r.mouseInside=!1,l.on("mousemove.".concat(d),function(c){r.mouseInside=!0;var h=_a(c),u=l.node(),m=u.offsetWidth,p=u.offsetHeight,g=[r.offsetX===null||r.offsetX===void 0?"-".concat(h[0]/m*100,"%"):typeof r.offsetX=="number"?"calc(-50% + ".concat(r.offsetX,"px)"):r.offsetX,r.offsetY===null||r.offsetY===void 0?p>130&&p-h[1]<100?"calc(-100% - 6px)":"21px":typeof r.offsetY=="number"?r.offsetY<0?"calc(-100% - ".concat(Math.abs(r.offsetY),"px)"):"".concat(r.offsetY,"px"):r.offsetY];r.tooltipEl.style("left",h[0]+"px").style("top",h[1]+"px").style("transform","translate(".concat(g.join(","),")")),r.content&&r.tooltipEl.style("display","inline")}),l.on("mouseover.".concat(d),function(){r.mouseInside=!0,r.content&&r.tooltipEl.style("display","inline")}),l.on("mouseout.".concat(d),function(){r.mouseInside=!1,r.tooltipEl.style("display","none")})},update:function(n){n.tooltipEl.style("display",n.content&&n.mouseInside?"inline":"none"),n.content?n.content instanceof HTMLElement?(n.tooltipEl.text(""),n.tooltipEl.append(function(){return n.content})):typeof n.content=="string"?n.tooltipEl.html(n.content):fc(n.content)?(n.tooltipEl.text(""),mc(n.content,n.tooltipEl.node())):(n.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",n.content,n.content.toString())):n.tooltipEl.text("")}});function yc(e,n,r){var o,i=1;e==null&&(e=0),n==null&&(n=0),r==null&&(r=0);function a(){var s,l=o.length,d,c=0,h=0,u=0;for(s=0;s<l;++s)d=o[s],c+=d.x||0,h+=d.y||0,u+=d.z||0;for(c=(c/l-e)*i,h=(h/l-n)*i,u=(u/l-r)*i,s=0;s<l;++s)d=o[s],c&&(d.x-=c),h&&(d.y-=h),u&&(d.z-=u)}return a.initialize=function(s){o=s},a.x=function(s){return arguments.length?(e=+s,a):e},a.y=function(s){return arguments.length?(n=+s,a):n},a.z=function(s){return arguments.length?(r=+s,a):r},a.strength=function(s){return arguments.length?(i=+s,a):i},a}function vc(e){const n=+this._x.call(null,e);return Si(this.cover(n),n,e)}function Si(e,n,r){if(isNaN(n))return e;var o,i=e._root,a={data:r},s=e._x0,l=e._x1,d,c,h,u,m;if(!i)return e._root=a,e;for(;i.length;)if((h=n>=(d=(s+l)/2))?s=d:l=d,o=i,!(i=i[u=+h]))return o[u]=a,e;if(c=+e._x.call(null,i.data),n===c)return a.next=i,o?o[u]=a:e._root=a,e;do o=o?o[u]=new Array(2):e._root=new Array(2),(h=n>=(d=(s+l)/2))?s=d:l=d;while((u=+h)==(m=+(c>=d)));return o[m]=i,o[u]=a,e}function bc(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n);let o=1/0,i=-1/0;for(let a=0,s;a<n;++a)isNaN(s=+this._x.call(null,e[a]))||(r[a]=s,s<o&&(o=s),s>i&&(i=s));if(o>i)return this;this.cover(o).cover(i);for(let a=0;a<n;++a)Si(this,r[a],e[a]);return this}function xc(e){if(isNaN(e=+e))return this;var n=this._x0,r=this._x1;if(isNaN(n))r=(n=Math.floor(e))+1;else{for(var o=r-n||1,i=this._root,a,s;n>e||e>=r;)switch(s=+(e<n),a=new Array(2),a[s]=i,i=a,o*=2,s){case 0:r=n+o;break;case 1:n=r-o;break}this._root&&this._root.length&&(this._root=i)}return this._x0=n,this._x1=r,this}function _c(){var e=[];return this.visit(function(n){if(!n.length)do e.push(n.data);while(n=n.next)}),e}function wc(e){return arguments.length?this.cover(+e[0][0]).cover(+e[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]}function st(e,n,r){this.node=e,this.x0=n,this.x1=r}function kc(e,n){var r,o=this._x0,i,a,s=this._x1,l=[],d=this._root,c,h;for(d&&l.push(new st(d,o,s)),n==null?n=1/0:(o=e-n,s=e+n);c=l.pop();)if(!(!(d=c.node)||(i=c.x0)>s||(a=c.x1)<o))if(d.length){var u=(i+a)/2;l.push(new st(d[1],u,a),new st(d[0],i,u)),(h=+(e>=u))&&(c=l[l.length-1],l[l.length-1]=l[l.length-1-h],l[l.length-1-h]=c)}else{var m=Math.abs(e-+this._x.call(null,d.data));m<n&&(n=m,o=e-m,s=e+m,r=d.data)}return r}function Cc(e){if(isNaN(d=+this._x.call(null,e)))return this;var n,r=this._root,o,i,a,s=this._x0,l=this._x1,d,c,h,u,m;if(!r)return this;if(r.length)for(;;){if((h=d>=(c=(s+l)/2))?s=c:l=c,n=r,!(r=r[u=+h]))return this;if(!r.length)break;n[u+1&1]&&(o=n,m=u)}for(;r.data!==e;)if(i=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,i?(a?i.next=a:delete i.next,this):n?(a?n[u]=a:delete n[u],(r=n[0]||n[1])&&r===(n[1]||n[0])&&!r.length&&(o?o[m]=r:this._root=r),this):(this._root=a,this)}function Ic(e){for(var n=0,r=e.length;n<r;++n)this.remove(e[n]);return this}function Sc(){return this._root}function Dc(){var e=0;return this.visit(function(n){if(!n.length)do++e;while(n=n.next)}),e}function Pc(e){var n=[],r,o=this._root,i,a,s;for(o&&n.push(new st(o,this._x0,this._x1));r=n.pop();)if(!e(o=r.node,a=r.x0,s=r.x1)&&o.length){var l=(a+s)/2;(i=o[1])&&n.push(new st(i,l,s)),(i=o[0])&&n.push(new st(i,a,l))}return this}function Nc(e){var n=[],r=[],o;for(this._root&&n.push(new st(this._root,this._x0,this._x1));o=n.pop();){var i=o.node;if(i.length){var a,s=o.x0,l=o.x1,d=(s+l)/2;(a=i[0])&&n.push(new st(a,s,d)),(a=i[1])&&n.push(new st(a,d,l))}r.push(o)}for(;o=r.pop();)e(o.node,o.x0,o.x1);return this}function Tc(e){return e[0]}function Ac(e){return arguments.length?(this._x=e,this):this._x}function Di(e,n){var r=new Cr(n??Tc,NaN,NaN);return e==null?r:r.addAll(e)}function Cr(e,n,r){this._x=e,this._x0=n,this._x1=r,this._root=void 0}function So(e){for(var n={data:e.data},r=n;e=e.next;)r=r.next={data:e.data};return n}var Te=Di.prototype=Cr.prototype;Te.copy=function(){var e=new Cr(this._x,this._x0,this._x1),n=this._root,r,o;if(!n)return e;if(!n.length)return e._root=So(n),e;for(r=[{source:n,target:e._root=new Array(2)}];n=r.pop();)for(var i=0;i<2;++i)(o=n.source[i])&&(o.length?r.push({source:o,target:n.target[i]=new Array(2)}):n.target[i]=So(o));return e};Te.add=vc;Te.addAll=bc;Te.cover=xc;Te.data=_c;Te.extent=wc;Te.find=kc;Te.remove=Cc;Te.removeAll=Ic;Te.root=Sc;Te.size=Dc;Te.visit=Pc;Te.visitAfter=Nc;Te.x=Ac;function Mc(e){const n=+this._x.call(null,e),r=+this._y.call(null,e),o=+this._z.call(null,e);return Pi(this.cover(n,r,o),n,r,o,e)}function Pi(e,n,r,o,i){if(isNaN(n)||isNaN(r)||isNaN(o))return e;var a,s=e._root,l={data:i},d=e._x0,c=e._y0,h=e._z0,u=e._x1,m=e._y1,p=e._z1,g,k,b,v,w,D,I,S,N,P,T;if(!s)return e._root=l,e;for(;s.length;)if((I=n>=(g=(d+u)/2))?d=g:u=g,(S=r>=(k=(c+m)/2))?c=k:m=k,(N=o>=(b=(h+p)/2))?h=b:p=b,a=s,!(s=s[P=N<<2|S<<1|I]))return a[P]=l,e;if(v=+e._x.call(null,s.data),w=+e._y.call(null,s.data),D=+e._z.call(null,s.data),n===v&&r===w&&o===D)return l.next=s,a?a[P]=l:e._root=l,e;do a=a?a[P]=new Array(8):e._root=new Array(8),(I=n>=(g=(d+u)/2))?d=g:u=g,(S=r>=(k=(c+m)/2))?c=k:m=k,(N=o>=(b=(h+p)/2))?h=b:p=b;while((P=N<<2|S<<1|I)===(T=(D>=b)<<2|(w>=k)<<1|v>=g));return a[T]=s,a[P]=l,e}function Ec(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n),o=new Float64Array(n),i=new Float64Array(n);let a=1/0,s=1/0,l=1/0,d=-1/0,c=-1/0,h=-1/0;for(let u=0,m,p,g,k;u<n;++u)isNaN(p=+this._x.call(null,m=e[u]))||isNaN(g=+this._y.call(null,m))||isNaN(k=+this._z.call(null,m))||(r[u]=p,o[u]=g,i[u]=k,p<a&&(a=p),p>d&&(d=p),g<s&&(s=g),g>c&&(c=g),k<l&&(l=k),k>h&&(h=k));if(a>d||s>c||l>h)return this;this.cover(a,s,l).cover(d,c,h);for(let u=0;u<n;++u)Pi(this,r[u],o[u],i[u],e[u]);return this}function jc(e,n,r){if(isNaN(e=+e)||isNaN(n=+n)||isNaN(r=+r))return this;var o=this._x0,i=this._y0,a=this._z0,s=this._x1,l=this._y1,d=this._z1;if(isNaN(o))s=(o=Math.floor(e))+1,l=(i=Math.floor(n))+1,d=(a=Math.floor(r))+1;else{for(var c=s-o||1,h=this._root,u,m;o>e||e>=s||i>n||n>=l||a>r||r>=d;)switch(m=(r<a)<<2|(n<i)<<1|e<o,u=new Array(8),u[m]=h,h=u,c*=2,m){case 0:s=o+c,l=i+c,d=a+c;break;case 1:o=s-c,l=i+c,d=a+c;break;case 2:s=o+c,i=l-c,d=a+c;break;case 3:o=s-c,i=l-c,d=a+c;break;case 4:s=o+c,l=i+c,a=d-c;break;case 5:o=s-c,l=i+c,a=d-c;break;case 6:s=o+c,i=l-c,a=d-c;break;case 7:o=s-c,i=l-c,a=d-c;break}this._root&&this._root.length&&(this._root=h)}return this._x0=o,this._y0=i,this._z0=a,this._x1=s,this._y1=l,this._z1=d,this}function Oc(){var e=[];return this.visit(function(n){if(!n.length)do e.push(n.data);while(n=n.next)}),e}function Rc(e){return arguments.length?this.cover(+e[0][0],+e[0][1],+e[0][2]).cover(+e[1][0],+e[1][1],+e[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]}function ne(e,n,r,o,i,a,s){this.node=e,this.x0=n,this.y0=r,this.z0=o,this.x1=i,this.y1=a,this.z1=s}function Fc(e,n,r,o){var i,a=this._x0,s=this._y0,l=this._z0,d,c,h,u,m,p,g=this._x1,k=this._y1,b=this._z1,v=[],w=this._root,D,I;for(w&&v.push(new ne(w,a,s,l,g,k,b)),o==null?o=1/0:(a=e-o,s=n-o,l=r-o,g=e+o,k=n+o,b=r+o,o*=o);D=v.pop();)if(!(!(w=D.node)||(d=D.x0)>g||(c=D.y0)>k||(h=D.z0)>b||(u=D.x1)<a||(m=D.y1)<s||(p=D.z1)<l))if(w.length){var S=(d+u)/2,N=(c+m)/2,P=(h+p)/2;v.push(new ne(w[7],S,N,P,u,m,p),new ne(w[6],d,N,P,S,m,p),new ne(w[5],S,c,P,u,N,p),new ne(w[4],d,c,P,S,N,p),new ne(w[3],S,N,h,u,m,P),new ne(w[2],d,N,h,S,m,P),new ne(w[1],S,c,h,u,N,P),new ne(w[0],d,c,h,S,N,P)),(I=(r>=P)<<2|(n>=N)<<1|e>=S)&&(D=v[v.length-1],v[v.length-1]=v[v.length-1-I],v[v.length-1-I]=D)}else{var T=e-+this._x.call(null,w.data),U=n-+this._y.call(null,w.data),E=r-+this._z.call(null,w.data),$=T*T+U*U+E*E;if($<o){var F=Math.sqrt(o=$);a=e-F,s=n-F,l=r-F,g=e+F,k=n+F,b=r+F,i=w.data}}return i}const Lc=(e,n,r,o,i,a)=>Math.sqrt((e-o)**2+(n-i)**2+(r-a)**2);function zc(e,n,r,o){const i=[],a=e-o,s=n-o,l=r-o,d=e+o,c=n+o,h=r+o;return this.visit((u,m,p,g,k,b,v)=>{if(!u.length)do{const w=u.data;Lc(e,n,r,this._x(w),this._y(w),this._z(w))<=o&&i.push(w)}while(u=u.next);return m>d||p>c||g>h||k<a||b<s||v<l}),i}function $c(e){if(isNaN(m=+this._x.call(null,e))||isNaN(p=+this._y.call(null,e))||isNaN(g=+this._z.call(null,e)))return this;var n,r=this._root,o,i,a,s=this._x0,l=this._y0,d=this._z0,c=this._x1,h=this._y1,u=this._z1,m,p,g,k,b,v,w,D,I,S,N;if(!r)return this;if(r.length)for(;;){if((w=m>=(k=(s+c)/2))?s=k:c=k,(D=p>=(b=(l+h)/2))?l=b:h=b,(I=g>=(v=(d+u)/2))?d=v:u=v,n=r,!(r=r[S=I<<2|D<<1|w]))return this;if(!r.length)break;(n[S+1&7]||n[S+2&7]||n[S+3&7]||n[S+4&7]||n[S+5&7]||n[S+6&7]||n[S+7&7])&&(o=n,N=S)}for(;r.data!==e;)if(i=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,i?(a?i.next=a:delete i.next,this):n?(a?n[S]=a:delete n[S],(r=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&r===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!r.length&&(o?o[N]=r:this._root=r),this):(this._root=a,this)}function Uc(e){for(var n=0,r=e.length;n<r;++n)this.remove(e[n]);return this}function Bc(){return this._root}function Hc(){var e=0;return this.visit(function(n){if(!n.length)do++e;while(n=n.next)}),e}function Vc(e){var n=[],r,o=this._root,i,a,s,l,d,c,h;for(o&&n.push(new ne(o,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));r=n.pop();)if(!e(o=r.node,a=r.x0,s=r.y0,l=r.z0,d=r.x1,c=r.y1,h=r.z1)&&o.length){var u=(a+d)/2,m=(s+c)/2,p=(l+h)/2;(i=o[7])&&n.push(new ne(i,u,m,p,d,c,h)),(i=o[6])&&n.push(new ne(i,a,m,p,u,c,h)),(i=o[5])&&n.push(new ne(i,u,s,p,d,m,h)),(i=o[4])&&n.push(new ne(i,a,s,p,u,m,h)),(i=o[3])&&n.push(new ne(i,u,m,l,d,c,p)),(i=o[2])&&n.push(new ne(i,a,m,l,u,c,p)),(i=o[1])&&n.push(new ne(i,u,s,l,d,m,p)),(i=o[0])&&n.push(new ne(i,a,s,l,u,m,p))}return this}function Gc(e){var n=[],r=[],o;for(this._root&&n.push(new ne(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));o=n.pop();){var i=o.node;if(i.length){var a,s=o.x0,l=o.y0,d=o.z0,c=o.x1,h=o.y1,u=o.z1,m=(s+c)/2,p=(l+h)/2,g=(d+u)/2;(a=i[0])&&n.push(new ne(a,s,l,d,m,p,g)),(a=i[1])&&n.push(new ne(a,m,l,d,c,p,g)),(a=i[2])&&n.push(new ne(a,s,p,d,m,h,g)),(a=i[3])&&n.push(new ne(a,m,p,d,c,h,g)),(a=i[4])&&n.push(new ne(a,s,l,g,m,p,u)),(a=i[5])&&n.push(new ne(a,m,l,g,c,p,u)),(a=i[6])&&n.push(new ne(a,s,p,g,m,h,u)),(a=i[7])&&n.push(new ne(a,m,p,g,c,h,u))}r.push(o)}for(;o=r.pop();)e(o.node,o.x0,o.y0,o.z0,o.x1,o.y1,o.z1);return this}function Wc(e){return e[0]}function qc(e){return arguments.length?(this._x=e,this):this._x}function Yc(e){return e[1]}function Kc(e){return arguments.length?(this._y=e,this):this._y}function Jc(e){return e[2]}function Xc(e){return arguments.length?(this._z=e,this):this._z}function Ni(e,n,r,o){var i=new Ir(n??Wc,r??Yc,o??Jc,NaN,NaN,NaN,NaN,NaN,NaN);return e==null?i:i.addAll(e)}function Ir(e,n,r,o,i,a,s,l,d){this._x=e,this._y=n,this._z=r,this._x0=o,this._y0=i,this._z0=a,this._x1=s,this._y1=l,this._z1=d,this._root=void 0}function Do(e){for(var n={data:e.data},r=n;e=e.next;)r=r.next={data:e.data};return n}var xe=Ni.prototype=Ir.prototype;xe.copy=function(){var e=new Ir(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),n=this._root,r,o;if(!n)return e;if(!n.length)return e._root=Do(n),e;for(r=[{source:n,target:e._root=new Array(8)}];n=r.pop();)for(var i=0;i<8;++i)(o=n.source[i])&&(o.length?r.push({source:o,target:n.target[i]=new Array(8)}):n.target[i]=Do(o));return e};xe.add=Mc;xe.addAll=Ec;xe.cover=jc;xe.data=Oc;xe.extent=Rc;xe.find=Fc;xe.findAllWithinRadius=zc;xe.remove=$c;xe.removeAll=Uc;xe.root=Bc;xe.size=Hc;xe.visit=Vc;xe.visitAfter=Gc;xe.x=qc;xe.y=Kc;xe.z=Xc;function at(e){return function(){return e}}function it(e){return(e()-.5)*1e-6}function Zc(e){return e.index}function Po(e,n){var r=e.get(n);if(!r)throw new Error("node not found: "+n);return r}function Qc(e){var n=Zc,r=m,o,i=at(30),a,s,l,d,c,h,u=1;e==null&&(e=[]);function m(v){return 1/Math.min(d[v.source.index],d[v.target.index])}function p(v){for(var w=0,D=e.length;w<u;++w)for(var I=0,S,N,P,T=0,U=0,E=0,$,F;I<D;++I)S=e[I],N=S.source,P=S.target,T=P.x+P.vx-N.x-N.vx||it(h),l>1&&(U=P.y+P.vy-N.y-N.vy||it(h)),l>2&&(E=P.z+P.vz-N.z-N.vz||it(h)),$=Math.sqrt(T*T+U*U+E*E),$=($-a[I])/$*v*o[I],T*=$,U*=$,E*=$,P.vx-=T*(F=c[I]),l>1&&(P.vy-=U*F),l>2&&(P.vz-=E*F),N.vx+=T*(F=1-F),l>1&&(N.vy+=U*F),l>2&&(N.vz+=E*F)}function g(){if(s){var v,w=s.length,D=e.length,I=new Map(s.map((N,P)=>[n(N,P,s),N])),S;for(v=0,d=new Array(w);v<D;++v)S=e[v],S.index=v,typeof S.source!="object"&&(S.source=Po(I,S.source)),typeof S.target!="object"&&(S.target=Po(I,S.target)),d[S.source.index]=(d[S.source.index]||0)+1,d[S.target.index]=(d[S.target.index]||0)+1;for(v=0,c=new Array(D);v<D;++v)S=e[v],c[v]=d[S.source.index]/(d[S.source.index]+d[S.target.index]);o=new Array(D),k(),a=new Array(D),b()}}function k(){if(s)for(var v=0,w=e.length;v<w;++v)o[v]=+r(e[v],v,e)}function b(){if(s)for(var v=0,w=e.length;v<w;++v)a[v]=+i(e[v],v,e)}return p.initialize=function(v,...w){s=v,h=w.find(D=>typeof D=="function")||Math.random,l=w.find(D=>[1,2,3].includes(D))||2,g()},p.links=function(v){return arguments.length?(e=v,g(),p):e},p.id=function(v){return arguments.length?(n=v,p):n},p.iterations=function(v){return arguments.length?(u=+v,p):u},p.strength=function(v){return arguments.length?(r=typeof v=="function"?v:at(+v),k(),p):r},p.distance=function(v){return arguments.length?(i=typeof v=="function"?v:at(+v),b(),p):i},p}const ed=1664525,td=1013904223,No=4294967296;function nd(){let e=1;return()=>(e=(ed*e+td)%No)/No}var To=3;function Hn(e){return e.x}function Ao(e){return e.y}function rd(e){return e.z}var od=10,id=Math.PI*(3-Math.sqrt(5)),ad=Math.PI*20/(9+Math.sqrt(221));function sd(e,n){n=n||2;var r=Math.min(To,Math.max(1,Math.round(n))),o,i=1,a=.001,s=1-Math.pow(a,1/300),l=0,d=.6,c=new Map,h=wa(p),u=ka("tick","end"),m=nd();e==null&&(e=[]);function p(){g(),u.call("tick",o),i<a&&(h.stop(),u.call("end",o))}function g(v){var w,D=e.length,I;v===void 0&&(v=1);for(var S=0;S<v;++S)for(i+=(l-i)*s,c.forEach(function(N){N(i)}),w=0;w<D;++w)I=e[w],I.fx==null?I.x+=I.vx*=d:(I.x=I.fx,I.vx=0),r>1&&(I.fy==null?I.y+=I.vy*=d:(I.y=I.fy,I.vy=0)),r>2&&(I.fz==null?I.z+=I.vz*=d:(I.z=I.fz,I.vz=0));return o}function k(){for(var v=0,w=e.length,D;v<w;++v){if(D=e[v],D.index=v,D.fx!=null&&(D.x=D.fx),D.fy!=null&&(D.y=D.fy),D.fz!=null&&(D.z=D.fz),isNaN(D.x)||r>1&&isNaN(D.y)||r>2&&isNaN(D.z)){var I=od*(r>2?Math.cbrt(.5+v):r>1?Math.sqrt(.5+v):v),S=v*id,N=v*ad;r===1?D.x=I:r===2?(D.x=I*Math.cos(S),D.y=I*Math.sin(S)):(D.x=I*Math.sin(S)*Math.cos(N),D.y=I*Math.cos(S),D.z=I*Math.sin(S)*Math.sin(N))}(isNaN(D.vx)||r>1&&isNaN(D.vy)||r>2&&isNaN(D.vz))&&(D.vx=0,r>1&&(D.vy=0),r>2&&(D.vz=0))}}function b(v){return v.initialize&&v.initialize(e,m,r),v}return k(),o={tick:g,restart:function(){return h.restart(p),o},stop:function(){return h.stop(),o},numDimensions:function(v){return arguments.length?(r=Math.min(To,Math.max(1,Math.round(v))),c.forEach(b),o):r},nodes:function(v){return arguments.length?(e=v,k(),c.forEach(b),o):e},alpha:function(v){return arguments.length?(i=+v,o):i},alphaMin:function(v){return arguments.length?(a=+v,o):a},alphaDecay:function(v){return arguments.length?(s=+v,o):+s},alphaTarget:function(v){return arguments.length?(l=+v,o):l},velocityDecay:function(v){return arguments.length?(d=1-v,o):1-d},randomSource:function(v){return arguments.length?(m=v,c.forEach(b),o):m},force:function(v,w){return arguments.length>1?(w==null?c.delete(v):c.set(v,b(w)),o):c.get(v)},find:function(){var v=Array.prototype.slice.call(arguments),w=v.shift()||0,D=(r>1?v.shift():null)||0,I=(r>2?v.shift():null)||0,S=v.shift()||1/0,N=0,P=e.length,T,U,E,$,F,B;for(S*=S,N=0;N<P;++N)F=e[N],T=w-F.x,U=D-(F.y||0),E=I-(F.z||0),$=T*T+U*U+E*E,$<S&&(B=F,S=$);return B},on:function(v,w){return arguments.length>1?(u.on(v,w),o):u.on(v)}}}function ld(){var e,n,r,o,i,a=at(-30),s,l=1,d=1/0,c=.81;function h(g){var k,b=e.length,v=(n===1?Di(e,Hn):n===2?Ca(e,Hn,Ao):n===3?Ni(e,Hn,Ao,rd):null).visitAfter(m);for(i=g,k=0;k<b;++k)r=e[k],v.visit(p)}function u(){if(e){var g,k=e.length,b;for(s=new Array(k),g=0;g<k;++g)b=e[g],s[b.index]=+a(b,g,e)}}function m(g){var k=0,b,v,w=0,D,I,S,N,P=g.length;if(P){for(D=I=S=N=0;N<P;++N)(b=g[N])&&(v=Math.abs(b.value))&&(k+=b.value,w+=v,D+=v*(b.x||0),I+=v*(b.y||0),S+=v*(b.z||0));k*=Math.sqrt(4/P),g.x=D/w,n>1&&(g.y=I/w),n>2&&(g.z=S/w)}else{b=g,b.x=b.data.x,n>1&&(b.y=b.data.y),n>2&&(b.z=b.data.z);do k+=s[b.data.index];while(b=b.next)}g.value=k}function p(g,k,b,v,w){if(!g.value)return!0;var D=[b,v,w][n-1],I=g.x-r.x,S=n>1?g.y-r.y:0,N=n>2?g.z-r.z:0,P=D-k,T=I*I+S*S+N*N;if(P*P/c<T)return T<d&&(I===0&&(I=it(o),T+=I*I),n>1&&S===0&&(S=it(o),T+=S*S),n>2&&N===0&&(N=it(o),T+=N*N),T<l&&(T=Math.sqrt(l*T)),r.vx+=I*g.value*i/T,n>1&&(r.vy+=S*g.value*i/T),n>2&&(r.vz+=N*g.value*i/T)),!0;if(g.length||T>=d)return;(g.data!==r||g.next)&&(I===0&&(I=it(o),T+=I*I),n>1&&S===0&&(S=it(o),T+=S*S),n>2&&N===0&&(N=it(o),T+=N*N),T<l&&(T=Math.sqrt(l*T)));do g.data!==r&&(P=s[g.data.index]*i/T,r.vx+=I*P,n>1&&(r.vy+=S*P),n>2&&(r.vz+=N*P));while(g=g.next)}return h.initialize=function(g,...k){e=g,o=k.find(b=>typeof b=="function")||Math.random,n=k.find(b=>[1,2,3].includes(b))||2,u()},h.strength=function(g){return arguments.length?(a=typeof g=="function"?g:at(+g),u(),h):a},h.distanceMin=function(g){return arguments.length?(l=g*g,h):Math.sqrt(l)},h.distanceMax=function(g){return arguments.length?(d=g*g,h):Math.sqrt(d)},h.theta=function(g){return arguments.length?(c=g*g,h):Math.sqrt(c)},h}function cd(e,n,r,o){var i,a,s=at(.1),l,d;typeof e!="function"&&(e=at(+e)),n==null&&(n=0),r==null&&(r=0),o==null&&(o=0);function c(u){for(var m=0,p=i.length;m<p;++m){var g=i[m],k=g.x-n||1e-6,b=(g.y||0)-r||1e-6,v=(g.z||0)-o||1e-6,w=Math.sqrt(k*k+b*b+v*v),D=(d[m]-w)*l[m]*u/w;g.vx+=k*D,a>1&&(g.vy+=b*D),a>2&&(g.vz+=v*D)}}function h(){if(i){var u,m=i.length;for(l=new Array(m),d=new Array(m),u=0;u<m;++u)d[u]=+e(i[u],u,i),l[u]=isNaN(d[u])?0:+s(i[u],u,i)}}return c.initialize=function(u,...m){i=u,a=m.find(p=>[1,2,3].includes(p))||2,h()},c.strength=function(u){return arguments.length?(s=typeof u=="function"?u:at(+u),h(),c):s},c.radius=function(u){return arguments.length?(e=typeof u=="function"?u:at(+u),h(),c):e},c.x=function(u){return arguments.length?(n=+u,c):n},c.y=function(u){return arguments.length?(r=+u,c):r},c.z=function(u){return arguments.length?(o=+u,c):o},c}const{abs:Gt,cos:rt,sin:Ot,acos:dd,atan2:Wt,sqrt:mt,pow:Le}=Math;function qt(e){return e<0?-Le(-e,1/3):Le(e,1/3)}const Ti=Math.PI,yn=2*Ti,ht=Ti/2,ud=1e-6,Vn=Number.MAX_SAFE_INTEGER||9007199254740991,Gn=Number.MIN_SAFE_INTEGER||-9007199254740991,fd={x:0,y:0,z:0},z={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,n){const r=n(e);let o=r.x*r.x+r.y*r.y;return typeof r.z<"u"&&(o+=r.z*r.z),mt(o)},compute:function(e,n,r){if(e===0)return n[0].t=0,n[0];const o=n.length-1;if(e===1)return n[o].t=1,n[o];const i=1-e;let a=n;if(o===0)return n[0].t=e,n[0];if(o===1){const l={x:i*a[0].x+e*a[1].x,y:i*a[0].y+e*a[1].y,t:e};return r&&(l.z=i*a[0].z+e*a[1].z),l}if(o<4){let l=i*i,d=e*e,c,h,u,m=0;o===2?(a=[a[0],a[1],a[2],fd],c=l,h=i*e*2,u=d):o===3&&(c=l*i,h=l*e*3,u=i*d*3,m=e*d);const p={x:c*a[0].x+h*a[1].x+u*a[2].x+m*a[3].x,y:c*a[0].y+h*a[1].y+u*a[2].y+m*a[3].y,t:e};return r&&(p.z=c*a[0].z+h*a[1].z+u*a[2].z+m*a[3].z),p}const s=JSON.parse(JSON.stringify(n));for(;s.length>1;){for(let l=0;l<s.length-1;l++)s[l]={x:s[l].x+(s[l+1].x-s[l].x)*e,y:s[l].y+(s[l+1].y-s[l].y)*e},typeof s[l].z<"u"&&(s[l].z=s[l].z+(s[l+1].z-s[l].z)*e);s.splice(s.length-1,1)}return s[0].t=e,s[0]},computeWithRatios:function(e,n,r,o){const i=1-e,a=r,s=n;let l=a[0],d=a[1],c=a[2],h=a[3],u;if(l*=i,d*=e,s.length===2)return u=l+d,{x:(l*s[0].x+d*s[1].x)/u,y:(l*s[0].y+d*s[1].y)/u,z:o?(l*s[0].z+d*s[1].z)/u:!1,t:e};if(l*=i,d*=2*i,c*=e*e,s.length===3)return u=l+d+c,{x:(l*s[0].x+d*s[1].x+c*s[2].x)/u,y:(l*s[0].y+d*s[1].y+c*s[2].y)/u,z:o?(l*s[0].z+d*s[1].z+c*s[2].z)/u:!1,t:e};if(l*=i,d*=1.5*i,c*=3*i,h*=e*e*e,s.length===4)return u=l+d+c+h,{x:(l*s[0].x+d*s[1].x+c*s[2].x+h*s[3].x)/u,y:(l*s[0].y+d*s[1].y+c*s[2].y+h*s[3].y)/u,z:o?(l*s[0].z+d*s[1].z+c*s[2].z+h*s[3].z)/u:!1,t:e}},derive:function(e,n){const r=[];for(let o=e,i=o.length,a=i-1;i>1;i--,a--){const s=[];for(let l=0,d;l<a;l++)d={x:a*(o[l+1].x-o[l].x),y:a*(o[l+1].y-o[l].y)},n&&(d.z=a*(o[l+1].z-o[l].z)),s.push(d);r.push(s),o=s}return r},between:function(e,n,r){return n<=e&&e<=r||z.approximately(e,n)||z.approximately(e,r)},approximately:function(e,n,r){return Gt(e-n)<=(r||ud)},length:function(e){const r=z.Tvalues.length;let o=0;for(let i=0,a;i<r;i++)a=.5*z.Tvalues[i]+.5,o+=z.Cvalues[i]*z.arcfn(a,e);return .5*o},map:function(e,n,r,o,i){const a=r-n,s=i-o,l=e-n,d=l/a;return o+s*d},lerp:function(e,n,r){const o={x:n.x+e*(r.x-n.x),y:n.y+e*(r.y-n.y)};return n.z!==void 0&&r.z!==void 0&&(o.z=n.z+e*(r.z-n.z)),o},pointToString:function(e){let n=e.x+"/"+e.y;return typeof e.z<"u"&&(n+="/"+e.z),n},pointsToString:function(e){return"["+e.map(z.pointToString).join(", ")+"]"},copy:function(e){return JSON.parse(JSON.stringify(e))},angle:function(e,n,r){const o=n.x-e.x,i=n.y-e.y,a=r.x-e.x,s=r.y-e.y,l=o*s-i*a,d=o*a+i*s;return Wt(l,d)},round:function(e,n){const r=""+e,o=r.indexOf(".");return parseFloat(r.substring(0,o+1+n))},dist:function(e,n){const r=e.x-n.x,o=e.y-n.y;return mt(r*r+o*o)},closest:function(e,n){let r=Le(2,63),o,i;return e.forEach(function(a,s){i=z.dist(n,a),i<r&&(r=i,o=s)}),{mdist:r,mpos:o}},abcratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=Le(e,n)+Le(1-e,n),o=r-1;return Gt(o/r)},projectionratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=Le(1-e,n),o=Le(e,n)+r;return r/o},lli8:function(e,n,r,o,i,a,s,l){const d=(e*o-n*r)*(i-s)-(e-r)*(i*l-a*s),c=(e*o-n*r)*(a-l)-(n-o)*(i*l-a*s),h=(e-r)*(a-l)-(n-o)*(i-s);return h==0?!1:{x:d/h,y:c/h}},lli4:function(e,n,r,o){const i=e.x,a=e.y,s=n.x,l=n.y,d=r.x,c=r.y,h=o.x,u=o.y;return z.lli8(i,a,s,l,d,c,h,u)},lli:function(e,n){return z.lli4(e,e.c,n,n.c)},makeline:function(e,n){return new oe(e.x,e.y,(e.x+n.x)/2,(e.y+n.y)/2,n.x,n.y)},findbbox:function(e){let n=Vn,r=Vn,o=Gn,i=Gn;return e.forEach(function(a){const s=a.bbox();n>s.x.min&&(n=s.x.min),r>s.y.min&&(r=s.y.min),o<s.x.max&&(o=s.x.max),i<s.y.max&&(i=s.y.max)}),{x:{min:n,mid:(n+o)/2,max:o,size:o-n},y:{min:r,mid:(r+i)/2,max:i,size:i-r}}},shapeintersections:function(e,n,r,o,i){if(!z.bboxoverlap(n,o))return[];const a=[],s=[e.startcap,e.forward,e.back,e.endcap],l=[r.startcap,r.forward,r.back,r.endcap];return s.forEach(function(d){d.virtual||l.forEach(function(c){if(c.virtual)return;const h=d.intersects(c,i);h.length>0&&(h.c1=d,h.c2=c,h.s1=e,h.s2=r,a.push(h))})}),a},makeshape:function(e,n,r){const o=n.points.length,i=e.points.length,a=z.makeline(n.points[o-1],e.points[0]),s=z.makeline(e.points[i-1],n.points[0]),l={startcap:a,forward:e,back:n,endcap:s,bbox:z.findbbox([a,e,n,s])};return l.intersections=function(d){return z.shapeintersections(l,l.bbox,d,d.bbox,r)},l},getminmax:function(e,n,r){if(!r)return{min:0,max:0};let o=Vn,i=Gn,a,s;r.indexOf(0)===-1&&(r=[0].concat(r)),r.indexOf(1)===-1&&r.push(1);for(let l=0,d=r.length;l<d;l++)a=r[l],s=e.get(a),s[n]<o&&(o=s[n]),s[n]>i&&(i=s[n]);return{min:o,mid:(o+i)/2,max:i,size:i-o}},align:function(e,n){const r=n.p1.x,o=n.p1.y,i=-Wt(n.p2.y-o,n.p2.x-r),a=function(s){return{x:(s.x-r)*rt(i)-(s.y-o)*Ot(i),y:(s.x-r)*Ot(i)+(s.y-o)*rt(i)}};return e.map(a)},roots:function(e,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const r=e.length-1,o=z.align(e,n),i=function(P){return 0<=P&&P<=1};if(r===2){const P=o[0].y,T=o[1].y,U=o[2].y,E=P-2*T+U;if(E!==0){const $=-mt(T*T-P*U),F=-P+T,B=-($+F)/E,A=-(-$+F)/E;return[B,A].filter(i)}else if(T!==U&&E===0)return[(2*T-U)/(2*T-2*U)].filter(i);return[]}const a=o[0].y,s=o[1].y,l=o[2].y,d=o[3].y;let c=-a+3*s-3*l+d,h=3*a-6*s+3*l,u=-3*a+3*s,m=a;if(z.approximately(c,0)){if(z.approximately(h,0))return z.approximately(u,0)?[]:[-m/u].filter(i);const P=mt(u*u-4*h*m),T=2*h;return[(P-u)/T,(-u-P)/T].filter(i)}h/=c,u/=c,m/=c;const p=(3*u-h*h)/3,g=p/3,k=(2*h*h*h-9*h*u+27*m)/27,b=k/2,v=b*b+g*g*g;let w,D,I,S,N;if(v<0){const P=-p/3,T=P*P*P,U=mt(T),E=-k/(2*U),$=E<-1?-1:E>1?1:E,F=dd($),B=qt(U),A=2*B;return I=A*rt(F/3)-h/3,S=A*rt((F+yn)/3)-h/3,N=A*rt((F+2*yn)/3)-h/3,[I,S,N].filter(i)}else{if(v===0)return w=b<0?qt(-b):-qt(b),I=2*w-h/3,S=-w-h/3,[I,S].filter(i);{const P=mt(v);return w=qt(-b+P),D=qt(b+P),[w-D-h/3].filter(i)}}},droots:function(e){if(e.length===3){const n=e[0],r=e[1],o=e[2],i=n-2*r+o;if(i!==0){const a=-mt(r*r-n*o),s=-n+r,l=-(a+s)/i,d=-(-a+s)/i;return[l,d]}else if(r!==o&&i===0)return[(2*r-o)/(2*(r-o))];return[]}if(e.length===2){const n=e[0],r=e[1];return n!==r?[n/(n-r)]:[]}return[]},curvature:function(e,n,r,o,i){let a,s,l,d,c=0,h=0;const u=z.compute(e,n),m=z.compute(e,r),p=u.x*u.x+u.y*u.y;if(o?(a=mt(Le(u.y*m.z-m.y*u.z,2)+Le(u.z*m.x-m.z*u.x,2)+Le(u.x*m.y-m.x*u.y,2)),s=Le(p+u.z*u.z,3/2)):(a=u.x*m.y-u.y*m.x,s=Le(p,3/2)),a===0||s===0)return{k:0,r:0};if(c=a/s,h=s/a,!i){const g=z.curvature(e-.001,n,r,o,!0).k,k=z.curvature(e+.001,n,r,o,!0).k;d=(k-c+(c-g))/2,l=(Gt(k-c)+Gt(c-g))/2}return{k:c,r:h,dk:d,adk:l}},inflections:function(e){if(e.length<4)return[];const n=z.align(e,{p1:e[0],p2:e.slice(-1)[0]}),r=n[2].x*n[1].y,o=n[3].x*n[1].y,i=n[1].x*n[2].y,a=n[3].x*n[2].y,s=18*(-3*r+2*o+3*i-a),l=18*(3*r-o-3*i),d=18*(i-r);if(z.approximately(s,0)){if(!z.approximately(l,0)){let m=-d/l;if(0<=m&&m<=1)return[m]}return[]}const c=2*s;if(z.approximately(c,0))return[];const h=l*l-4*s*d;if(h<0)return[];const u=Math.sqrt(h);return[(u-l)/c,-(l+u)/c].filter(function(m){return 0<=m&&m<=1})},bboxoverlap:function(e,n){const r=["x","y"],o=r.length;for(let i=0,a,s,l,d;i<o;i++)if(a=r[i],s=e[a].mid,l=n[a].mid,d=(e[a].size+n[a].size)/2,Gt(s-l)>=d)return!1;return!0},expandbox:function(e,n){n.x.min<e.x.min&&(e.x.min=n.x.min),n.y.min<e.y.min&&(e.y.min=n.y.min),n.z&&n.z.min<e.z.min&&(e.z.min=n.z.min),n.x.max>e.x.max&&(e.x.max=n.x.max),n.y.max>e.y.max&&(e.y.max=n.y.max),n.z&&n.z.max>e.z.max&&(e.z.max=n.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,n,r){const o=e.bbox(),i=n.bbox(),a=1e5,s=r||.5;if(o.x.size+o.y.size<s&&i.x.size+i.y.size<s)return[(a*(e._t1+e._t2)/2|0)/a+"/"+(a*(n._t1+n._t2)/2|0)/a];let l=e.split(.5),d=n.split(.5),c=[{left:l.left,right:d.left},{left:l.left,right:d.right},{left:l.right,right:d.right},{left:l.right,right:d.left}];c=c.filter(function(u){return z.bboxoverlap(u.left.bbox(),u.right.bbox())});let h=[];return c.length===0||(c.forEach(function(u){h=h.concat(z.pairiteration(u.left,u.right,s))}),h=h.filter(function(u,m){return h.indexOf(u)===m})),h},getccenter:function(e,n,r){const o=n.x-e.x,i=n.y-e.y,a=r.x-n.x,s=r.y-n.y,l=o*rt(ht)-i*Ot(ht),d=o*Ot(ht)+i*rt(ht),c=a*rt(ht)-s*Ot(ht),h=a*Ot(ht)+s*rt(ht),u=(e.x+n.x)/2,m=(e.y+n.y)/2,p=(n.x+r.x)/2,g=(n.y+r.y)/2,k=u+l,b=m+d,v=p+c,w=g+h,D=z.lli8(u,m,k,b,p,g,v,w),I=z.dist(D,e);let S=Wt(e.y-D.y,e.x-D.x),N=Wt(n.y-D.y,n.x-D.x),P=Wt(r.y-D.y,r.x-D.x),T;return S<P?((S>N||N>P)&&(S+=yn),S>P&&(T=P,P=S,S=T)):P<N&&N<S?(T=P,P=S,S=T):P+=yn,D.s=S,D.e=P,D.r=I,D},numberSort:function(e,n){return e-n}};class en{constructor(n){this.curves=[],this._3d=!1,n&&(this.curves=n,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map(function(n){return z.pointsToString(n.points)}).join(", ")+"]"}addCurve(n){this.curves.push(n),this._3d=this._3d||n._3d}length(){return this.curves.map(function(n){return n.length()}).reduce(function(n,r){return n+r})}curve(n){return this.curves[n]}bbox(){const n=this.curves;for(var r=n[0].bbox(),o=1;o<n.length;o++)z.expandbox(r,n[o].bbox());return r}offset(n){const r=[];return this.curves.forEach(function(o){r.push(...o.offset(n))}),new en(r)}}const{abs:Yt,min:Mo,max:Eo,cos:md,sin:hd,acos:pd,sqrt:Kt}=Math,gd=Math.PI;class oe{constructor(n){let r=n&&n.forEach?n:Array.from(arguments).slice(),o=!1;if(typeof r[0]=="object"){o=r.length;const p=[];r.forEach(function(g){["x","y","z"].forEach(function(k){typeof g[k]<"u"&&p.push(g[k])})}),r=p}let i=!1;const a=r.length;if(o){if(o>4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const s=this._3d=!i&&(a===9||a===12)||n&&n[0]&&typeof n[0].z<"u",l=this.points=[];for(let p=0,g=s?3:2;p<a;p+=g){var d={x:r[p],y:r[p+1]};s&&(d.z=r[p+2]),l.push(d)}const c=this.order=l.length-1,h=this.dims=["x","y"];s&&h.push("z"),this.dimlen=h.length;const u=z.align(l,{p1:l[0],p2:l[c]}),m=z.dist(l[0],l[c]);this._linear=u.reduce((p,g)=>p+Yt(g.y),0)<m/50,this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(n,r,o,i){if(typeof i>"u"&&(i=.5),i===0)return new oe(r,r,o);if(i===1)return new oe(n,r,r);const a=oe.getABC(2,n,r,o,i);return new oe(n,a.A,o)}static cubicFromPoints(n,r,o,i,a){typeof i>"u"&&(i=.5);const s=oe.getABC(3,n,r,o,i);typeof a>"u"&&(a=z.dist(r,s.C));const l=a*(1-i)/i,d=z.dist(n,o),c=(o.x-n.x)/d,h=(o.y-n.y)/d,u=a*c,m=a*h,p=l*c,g=l*h,k={x:r.x-u,y:r.y-m},b={x:r.x+p,y:r.y+g},v=s.A,w={x:v.x+(k.x-v.x)/(1-i),y:v.y+(k.y-v.y)/(1-i)},D={x:v.x+(b.x-v.x)/i,y:v.y+(b.y-v.y)/i},I={x:n.x+(w.x-n.x)/i,y:n.y+(w.y-n.y)/i},S={x:o.x+(D.x-o.x)/(1-i),y:o.y+(D.y-o.y)/(1-i)};return new oe(n,I,S,o)}static getUtils(){return z}getUtils(){return oe.getUtils()}static get PolyBezier(){return en}valueOf(){return this.toString()}toString(){return z.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const n=this.points,r=n[0].x,o=n[0].y,i=["M",r,o,this.order===2?"Q":"C"];for(let a=1,s=n.length;a<s;a++)i.push(n[a].x),i.push(n[a].y);return i.join(" ")}setRatios(n){if(n.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=n,this._lut=[]}verify(){const n=this.coordDigest();n!==this._print&&(this._print=n,this.update())}coordDigest(){return this.points.map(function(n,r){return""+r+n.x+n.y+(n.z?n.z:0)}).join("")}update(){this._lut=[],this.dpoints=z.derive(this.points,this._3d),this.computedirection()}computedirection(){const n=this.points,r=z.angle(n[0],n[this.order],n[1]);this.clockwise=r>0}length(){return z.length(this.derivative.bind(this))}static getABC(n=2,r,o,i,a=.5){const s=z.projectionratio(a,n),l=1-s,d={x:s*r.x+l*i.x,y:s*r.y+l*i.y},c=z.abcratio(a,n);return{A:{x:o.x+(o.x-d.x)/c,y:o.y+(o.y-d.y)/c},B:o,C:d,S:r,E:i}}getABC(n,r){r=r||this.get(n);let o=this.points[0],i=this.points[this.order];return oe.getABC(this.order,o,r,i,n)}getLUT(n){if(this.verify(),n=n||100,this._lut.length===n+1)return this._lut;this._lut=[],n++,this._lut=[];for(let r=0,o,i;r<n;r++)i=r/(n-1),o=this.compute(i),o.t=i,this._lut.push(o);return this._lut}on(n,r){r=r||5;const o=this.getLUT(),i=[];for(let a=0,s,l=0;a<o.length;a++)s=o[a],z.dist(s,n)<r&&(i.push(s),l+=a/o.length);return i.length?t/=i.length:!1}project(n){const r=this.getLUT(),o=r.length-1,i=z.closest(r,n),a=i.mpos,s=(a-1)/o,l=(a+1)/o,d=.1/o;let c=i.mdist,h=s,u=h,m;c+=1;for(let p;h<l+d;h+=d)m=this.compute(h),p=z.dist(n,m),p<c&&(c=p,u=h);return u=u<0?0:u>1?1:u,m=this.compute(u),m.t=u,m.d=c,m}get(n){return this.compute(n)}point(n){return this.points[n]}compute(n){return this.ratios?z.computeWithRatios(n,this.points,this.ratios,this._3d):z.compute(n,this.points,this._3d,this.ratios)}raise(){const n=this.points,r=[n[0]],o=n.length;for(let i=1,a,s;i<o;i++)a=n[i],s=n[i-1],r[i]={x:(o-i)/o*a.x+i/o*s.x,y:(o-i)/o*a.y+i/o*s.y};return r[o]=n[o-1],new oe(r)}derivative(n){return z.compute(n,this.dpoints[0],this._3d)}dderivative(n){return z.compute(n,this.dpoints[1],this._3d)}align(){let n=this.points;return new oe(z.align(n,{p1:n[0],p2:n[n.length-1]}))}curvature(n){return z.curvature(n,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return z.inflections(this.points)}normal(n){return this._3d?this.__normal3(n):this.__normal2(n)}__normal2(n){const r=this.derivative(n),o=Kt(r.x*r.x+r.y*r.y);return{t:n,x:-r.y/o,y:r.x/o}}__normal3(n){const r=this.derivative(n),o=this.derivative(n+.01),i=Kt(r.x*r.x+r.y*r.y+r.z*r.z),a=Kt(o.x*o.x+o.y*o.y+o.z*o.z);r.x/=i,r.y/=i,r.z/=i,o.x/=a,o.y/=a,o.z/=a;const s={x:o.y*r.z-o.z*r.y,y:o.z*r.x-o.x*r.z,z:o.x*r.y-o.y*r.x},l=Kt(s.x*s.x+s.y*s.y+s.z*s.z);s.x/=l,s.y/=l,s.z/=l;const d=[s.x*s.x,s.x*s.y-s.z,s.x*s.z+s.y,s.x*s.y+s.z,s.y*s.y,s.y*s.z-s.x,s.x*s.z-s.y,s.y*s.z+s.x,s.z*s.z];return{t:n,x:d[0]*r.x+d[1]*r.y+d[2]*r.z,y:d[3]*r.x+d[4]*r.y+d[5]*r.z,z:d[6]*r.x+d[7]*r.y+d[8]*r.z}}hull(n){let r=this.points,o=[],i=[],a=0;for(i[a++]=r[0],i[a++]=r[1],i[a++]=r[2],this.order===3&&(i[a++]=r[3]);r.length>1;){o=[];for(let s=0,l,d=r.length-1;s<d;s++)l=z.lerp(n,r[s],r[s+1]),i[a++]=l,o.push(l);r=o}return i}split(n,r){if(n===0&&r)return this.split(r).left;if(r===1)return this.split(n).right;const o=this.hull(n),i={left:this.order===2?new oe([o[0],o[3],o[5]]):new oe([o[0],o[4],o[7],o[9]]),right:this.order===2?new oe([o[5],o[4],o[2]]):new oe([o[9],o[8],o[6],o[3]]),span:o};return i.left._t1=z.map(0,0,1,this._t1,this._t2),i.left._t2=z.map(n,0,1,this._t1,this._t2),i.right._t1=z.map(n,0,1,this._t1,this._t2),i.right._t2=z.map(1,0,1,this._t1,this._t2),r?(r=z.map(r,n,1,0,1),i.right.split(r).left):i}extrema(){const n={};let r=[];return this.dims.forEach((function(o){let i=function(s){return s[o]},a=this.dpoints[0].map(i);n[o]=z.droots(a),this.order===3&&(a=this.dpoints[1].map(i),n[o]=n[o].concat(z.droots(a))),n[o]=n[o].filter(function(s){return s>=0&&s<=1}),r=r.concat(n[o].sort(z.numberSort))}).bind(this)),n.values=r.sort(z.numberSort).filter(function(o,i){return r.indexOf(o)===i}),n}bbox(){const n=this.extrema(),r={};return this.dims.forEach((function(o){r[o]=z.getminmax(this,o,n[o])}).bind(this)),r}overlaps(n){const r=this.bbox(),o=n.bbox();return z.bboxoverlap(r,o)}offset(n,r){if(typeof r<"u"){const o=this.get(n),i=this.normal(n),a={c:o,n:i,x:o.x+i.x*r,y:o.y+i.y*r};return this._3d&&(a.z=o.z+i.z*r),a}if(this._linear){const o=this.normal(0),i=this.points.map(function(a){const s={x:a.x+n*o.x,y:a.y+n*o.y};return a.z&&o.z&&(s.z=a.z+n*o.z),s});return[new oe(i)]}return this.reduce().map(function(o){return o._linear?o.offset(n)[0]:o.scale(n)})}simple(){if(this.order===3){const i=z.angle(this.points[0],this.points[3],this.points[1]),a=z.angle(this.points[0],this.points[3],this.points[2]);if(i>0&&a<0||i<0&&a>0)return!1}const n=this.normal(0),r=this.normal(1);let o=n.x*r.x+n.y*r.y;return this._3d&&(o+=n.z*r.z),Yt(pd(o))<gd/3}reduce(){let n,r=0,o=0,i=.01,a,s=[],l=[],d=this.extrema().values;for(d.indexOf(0)===-1&&(d=[0].concat(d)),d.indexOf(1)===-1&&d.push(1),r=d[0],n=1;n<d.length;n++)o=d[n],a=this.split(r,o),a._t1=r,a._t2=o,s.push(a),r=o;return s.forEach(function(c){for(r=0,o=0;o<=1;)for(o=r+i;o<=1+i;o+=i)if(a=c.split(r,o),!a.simple()){if(o-=i,Yt(r-o)<i)return[];a=c.split(r,o),a._t1=z.map(r,0,1,c._t1,c._t2),a._t2=z.map(o,0,1,c._t1,c._t2),l.push(a),r=o;break}r<1&&(a=c.split(r,1),a._t1=z.map(r,0,1,c._t1,c._t2),a._t2=c._t2,l.push(a))}),l}translate(n,r,o){o=typeof o=="number"?o:r;const i=this.order;let a=this.points.map((s,l)=>(1-l/i)*r+l/i*o);return new oe(this.points.map((s,l)=>({x:s.x+n.x*a[l],y:s.y+n.y*a[l]})))}scale(n){const r=this.order;let o=!1;if(typeof n=="function"&&(o=n),o&&r===2)return this.raise().scale(o);const i=this.clockwise,a=this.points;if(this._linear)return this.translate(this.normal(0),o?o(0):n,o?o(1):n);const s=o?o(0):n,l=o?o(1):n,d=[this.offset(0,10),this.offset(1,10)],c=[],h=z.lli4(d[0],d[0].c,d[1],d[1].c);if(!h)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(u){const m=c[u*r]=z.copy(a[u*r]);m.x+=(u?l:s)*d[u].n.x,m.y+=(u?l:s)*d[u].n.y}),o?([0,1].forEach(function(u){if(!(r===2&&u)){var m=a[u+1],p={x:m.x-h.x,y:m.y-h.y},g=o?o((u+1)/r):n;o&&!i&&(g=-g);var k=Kt(p.x*p.x+p.y*p.y);p.x/=k,p.y/=k,c[u+1]={x:m.x+g*p.x,y:m.y+g*p.y}}}),new oe(c)):([0,1].forEach(u=>{if(r===2&&u)return;const m=c[u*r],p=this.derivative(u),g={x:m.x+p.x,y:m.y+p.y};c[u+1]=z.lli4(m,g,h,a[u+1])}),new oe(c))}outline(n,r,o,i){if(r=r===void 0?n:r,this._linear){const S=this.normal(0),N=this.points[0],P=this.points[this.points.length-1];let T,U,E;o===void 0&&(o=n,i=r),T={x:N.x+S.x*n,y:N.y+S.y*n},E={x:P.x+S.x*o,y:P.y+S.y*o},U={x:(T.x+E.x)/2,y:(T.y+E.y)/2};const $=[T,U,E];T={x:N.x-S.x*r,y:N.y-S.y*r},E={x:P.x-S.x*i,y:P.y-S.y*i},U={x:(T.x+E.x)/2,y:(T.y+E.y)/2};const F=[E,U,T],B=z.makeline(F[2],$[0]),A=z.makeline($[2],F[0]),Y=[B,new oe($),A,new oe(F)];return new en(Y)}const a=this.reduce(),s=a.length,l=[];let d=[],c,h=0,u=this.length();const m=typeof o<"u"&&typeof i<"u";function p(S,N,P,T,U){return function(E){const $=T/P,F=(T+U)/P,B=N-S;return z.map(E,0,1,S+$*B,S+F*B)}}a.forEach(function(S){const N=S.length();m?(l.push(S.scale(p(n,o,u,h,N))),d.push(S.scale(p(-r,-i,u,h,N)))):(l.push(S.scale(n)),d.push(S.scale(-r))),h+=N}),d=d.map(function(S){return c=S.points,c[3]?S.points=[c[3],c[2],c[1],c[0]]:S.points=[c[2],c[1],c[0]],S}).reverse();const g=l[0].points[0],k=l[s-1].points[l[s-1].points.length-1],b=d[s-1].points[d[s-1].points.length-1],v=d[0].points[0],w=z.makeline(b,g),D=z.makeline(k,v),I=[w].concat(l).concat([D]).concat(d);return new en(I)}outlineshapes(n,r,o){r=r||n;const i=this.outline(n,r).curves,a=[];for(let s=1,l=i.length;s<l/2;s++){const d=z.makeshape(i[s],i[l-s],o);d.startcap.virtual=s>1,d.endcap.virtual=s<l/2-1,a.push(d)}return a}intersects(n,r){return n?n.p1&&n.p2?this.lineIntersects(n):(n instanceof oe&&(n=n.reduce()),this.curveintersects(this.reduce(),n,r)):this.selfintersects(r)}lineIntersects(n){const r=Mo(n.p1.x,n.p2.x),o=Mo(n.p1.y,n.p2.y),i=Eo(n.p1.x,n.p2.x),a=Eo(n.p1.y,n.p2.y);return z.roots(this.points,n).filter(s=>{var l=this.get(s);return z.between(l.x,r,i)&&z.between(l.y,o,a)})}selfintersects(n){const r=this.reduce(),o=r.length-2,i=[];for(let a=0,s,l,d;a<o;a++)l=r.slice(a,a+1),d=r.slice(a+2),s=this.curveintersects(l,d,n),i.push(...s);return i}curveintersects(n,r,o){const i=[];n.forEach(function(s){r.forEach(function(l){s.overlaps(l)&&i.push({left:s,right:l})})});let a=[];return i.forEach(function(s){const l=z.pairiteration(s.left,s.right,o);l.length>0&&(a=a.concat(l))}),a}arcs(n){return n=n||.5,this._iterate(n,[])}_error(n,r,o,i){const a=(i-o)/4,s=this.get(o+a),l=this.get(i-a),d=z.dist(n,r),c=z.dist(n,s),h=z.dist(n,l);return Yt(c-d)+Yt(h-d)}_iterate(n,r){let o=0,i=1,a;do{a=0,i=1;let s=this.get(o),l,d,c,h,u=!1,m=!1,p,g=i,k=1;do if(m=u,h=c,g=(o+i)/2,l=this.get(g),d=this.get(i),c=z.getccenter(s,l,d),c.interval={start:o,end:i},u=this._error(c,s,o,i)<=n,p=m&&!u,p||(k=i),u){if(i>=1){if(c.interval.end=k=1,h=c,i>1){let v={x:c.x+c.r*md(c.e),y:c.y+c.r*hd(c.e)};c.e+=z.angle({x:c.x,y:c.y},v,this.get(1))}break}i=i+(i-o)/2}else i=g;while(!p&&a++<100);if(a>=100)break;h=h||c,r.push(h),o=k}while(i<1);return r}}function fr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function yd(e){if(Array.isArray(e))return e}function vd(e){if(Array.isArray(e))return fr(e)}function bd(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function xd(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function _d(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
221
|
+
`;hc(pc);var gc=xr({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=o.style,a=i===void 0?{}:i,s=!!n&&Dn(n)==="object"&&!!n.node&&typeof n.node=="function",l=tr(s?n.node():n);l.style("position")==="static"&&l.style("position","relative"),r.tooltipEl=l.append("div").attr("class","float-tooltip-kap"),Object.entries(a).forEach(function(c){var h=lc(c,2),u=h[0],m=h[1];return r.tooltipEl.style(u,m)}),r.tooltipEl.style("left","-10000px").style("display","none");var d="tooltip-".concat(Math.round(Math.random()*1e12));r.mouseInside=!1,l.on("mousemove.".concat(d),function(c){r.mouseInside=!0;var h=_a(c),u=l.node(),m=u.offsetWidth,p=u.offsetHeight,g=[r.offsetX===null||r.offsetX===void 0?"-".concat(h[0]/m*100,"%"):typeof r.offsetX=="number"?"calc(-50% + ".concat(r.offsetX,"px)"):r.offsetX,r.offsetY===null||r.offsetY===void 0?p>130&&p-h[1]<100?"calc(-100% - 6px)":"21px":typeof r.offsetY=="number"?r.offsetY<0?"calc(-100% - ".concat(Math.abs(r.offsetY),"px)"):"".concat(r.offsetY,"px"):r.offsetY];r.tooltipEl.style("left",h[0]+"px").style("top",h[1]+"px").style("transform","translate(".concat(g.join(","),")")),r.content&&r.tooltipEl.style("display","inline")}),l.on("mouseover.".concat(d),function(){r.mouseInside=!0,r.content&&r.tooltipEl.style("display","inline")}),l.on("mouseout.".concat(d),function(){r.mouseInside=!1,r.tooltipEl.style("display","none")})},update:function(n){n.tooltipEl.style("display",n.content&&n.mouseInside?"inline":"none"),n.content?n.content instanceof HTMLElement?(n.tooltipEl.text(""),n.tooltipEl.append(function(){return n.content})):typeof n.content=="string"?n.tooltipEl.html(n.content):fc(n.content)?(n.tooltipEl.text(""),mc(n.content,n.tooltipEl.node())):(n.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",n.content,n.content.toString())):n.tooltipEl.text("")}});function yc(e,n,r){var o,i=1;e==null&&(e=0),n==null&&(n=0),r==null&&(r=0);function a(){var s,l=o.length,d,c=0,h=0,u=0;for(s=0;s<l;++s)d=o[s],c+=d.x||0,h+=d.y||0,u+=d.z||0;for(c=(c/l-e)*i,h=(h/l-n)*i,u=(u/l-r)*i,s=0;s<l;++s)d=o[s],c&&(d.x-=c),h&&(d.y-=h),u&&(d.z-=u)}return a.initialize=function(s){o=s},a.x=function(s){return arguments.length?(e=+s,a):e},a.y=function(s){return arguments.length?(n=+s,a):n},a.z=function(s){return arguments.length?(r=+s,a):r},a.strength=function(s){return arguments.length?(i=+s,a):i},a}function vc(e){const n=+this._x.call(null,e);return Si(this.cover(n),n,e)}function Si(e,n,r){if(isNaN(n))return e;var o,i=e._root,a={data:r},s=e._x0,l=e._x1,d,c,h,u,m;if(!i)return e._root=a,e;for(;i.length;)if((h=n>=(d=(s+l)/2))?s=d:l=d,o=i,!(i=i[u=+h]))return o[u]=a,e;if(c=+e._x.call(null,i.data),n===c)return a.next=i,o?o[u]=a:e._root=a,e;do o=o?o[u]=new Array(2):e._root=new Array(2),(h=n>=(d=(s+l)/2))?s=d:l=d;while((u=+h)==(m=+(c>=d)));return o[m]=i,o[u]=a,e}function bc(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n);let o=1/0,i=-1/0;for(let a=0,s;a<n;++a)isNaN(s=+this._x.call(null,e[a]))||(r[a]=s,s<o&&(o=s),s>i&&(i=s));if(o>i)return this;this.cover(o).cover(i);for(let a=0;a<n;++a)Si(this,r[a],e[a]);return this}function xc(e){if(isNaN(e=+e))return this;var n=this._x0,r=this._x1;if(isNaN(n))r=(n=Math.floor(e))+1;else{for(var o=r-n||1,i=this._root,a,s;n>e||e>=r;)switch(s=+(e<n),a=new Array(2),a[s]=i,i=a,o*=2,s){case 0:r=n+o;break;case 1:n=r-o;break}this._root&&this._root.length&&(this._root=i)}return this._x0=n,this._x1=r,this}function _c(){var e=[];return this.visit(function(n){if(!n.length)do e.push(n.data);while(n=n.next)}),e}function wc(e){return arguments.length?this.cover(+e[0][0]).cover(+e[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]}function st(e,n,r){this.node=e,this.x0=n,this.x1=r}function kc(e,n){var r,o=this._x0,i,a,s=this._x1,l=[],d=this._root,c,h;for(d&&l.push(new st(d,o,s)),n==null?n=1/0:(o=e-n,s=e+n);c=l.pop();)if(!(!(d=c.node)||(i=c.x0)>s||(a=c.x1)<o))if(d.length){var u=(i+a)/2;l.push(new st(d[1],u,a),new st(d[0],i,u)),(h=+(e>=u))&&(c=l[l.length-1],l[l.length-1]=l[l.length-1-h],l[l.length-1-h]=c)}else{var m=Math.abs(e-+this._x.call(null,d.data));m<n&&(n=m,o=e-m,s=e+m,r=d.data)}return r}function Cc(e){if(isNaN(d=+this._x.call(null,e)))return this;var n,r=this._root,o,i,a,s=this._x0,l=this._x1,d,c,h,u,m;if(!r)return this;if(r.length)for(;;){if((h=d>=(c=(s+l)/2))?s=c:l=c,n=r,!(r=r[u=+h]))return this;if(!r.length)break;n[u+1&1]&&(o=n,m=u)}for(;r.data!==e;)if(i=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,i?(a?i.next=a:delete i.next,this):n?(a?n[u]=a:delete n[u],(r=n[0]||n[1])&&r===(n[1]||n[0])&&!r.length&&(o?o[m]=r:this._root=r),this):(this._root=a,this)}function Ic(e){for(var n=0,r=e.length;n<r;++n)this.remove(e[n]);return this}function Sc(){return this._root}function Dc(){var e=0;return this.visit(function(n){if(!n.length)do++e;while(n=n.next)}),e}function Pc(e){var n=[],r,o=this._root,i,a,s;for(o&&n.push(new st(o,this._x0,this._x1));r=n.pop();)if(!e(o=r.node,a=r.x0,s=r.x1)&&o.length){var l=(a+s)/2;(i=o[1])&&n.push(new st(i,l,s)),(i=o[0])&&n.push(new st(i,a,l))}return this}function Nc(e){var n=[],r=[],o;for(this._root&&n.push(new st(this._root,this._x0,this._x1));o=n.pop();){var i=o.node;if(i.length){var a,s=o.x0,l=o.x1,d=(s+l)/2;(a=i[0])&&n.push(new st(a,s,d)),(a=i[1])&&n.push(new st(a,d,l))}r.push(o)}for(;o=r.pop();)e(o.node,o.x0,o.x1);return this}function Tc(e){return e[0]}function Ac(e){return arguments.length?(this._x=e,this):this._x}function Di(e,n){var r=new Ir(n??Tc,NaN,NaN);return e==null?r:r.addAll(e)}function Ir(e,n,r){this._x=e,this._x0=n,this._x1=r,this._root=void 0}function Do(e){for(var n={data:e.data},r=n;e=e.next;)r=r.next={data:e.data};return n}var Te=Di.prototype=Ir.prototype;Te.copy=function(){var e=new Ir(this._x,this._x0,this._x1),n=this._root,r,o;if(!n)return e;if(!n.length)return e._root=Do(n),e;for(r=[{source:n,target:e._root=new Array(2)}];n=r.pop();)for(var i=0;i<2;++i)(o=n.source[i])&&(o.length?r.push({source:o,target:n.target[i]=new Array(2)}):n.target[i]=Do(o));return e};Te.add=vc;Te.addAll=bc;Te.cover=xc;Te.data=_c;Te.extent=wc;Te.find=kc;Te.remove=Cc;Te.removeAll=Ic;Te.root=Sc;Te.size=Dc;Te.visit=Pc;Te.visitAfter=Nc;Te.x=Ac;function Mc(e){const n=+this._x.call(null,e),r=+this._y.call(null,e),o=+this._z.call(null,e);return Pi(this.cover(n,r,o),n,r,o,e)}function Pi(e,n,r,o,i){if(isNaN(n)||isNaN(r)||isNaN(o))return e;var a,s=e._root,l={data:i},d=e._x0,c=e._y0,h=e._z0,u=e._x1,m=e._y1,p=e._z1,g,k,b,v,w,D,I,S,N,P,T;if(!s)return e._root=l,e;for(;s.length;)if((I=n>=(g=(d+u)/2))?d=g:u=g,(S=r>=(k=(c+m)/2))?c=k:m=k,(N=o>=(b=(h+p)/2))?h=b:p=b,a=s,!(s=s[P=N<<2|S<<1|I]))return a[P]=l,e;if(v=+e._x.call(null,s.data),w=+e._y.call(null,s.data),D=+e._z.call(null,s.data),n===v&&r===w&&o===D)return l.next=s,a?a[P]=l:e._root=l,e;do a=a?a[P]=new Array(8):e._root=new Array(8),(I=n>=(g=(d+u)/2))?d=g:u=g,(S=r>=(k=(c+m)/2))?c=k:m=k,(N=o>=(b=(h+p)/2))?h=b:p=b;while((P=N<<2|S<<1|I)===(T=(D>=b)<<2|(w>=k)<<1|v>=g));return a[T]=s,a[P]=l,e}function Ec(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n),o=new Float64Array(n),i=new Float64Array(n);let a=1/0,s=1/0,l=1/0,d=-1/0,c=-1/0,h=-1/0;for(let u=0,m,p,g,k;u<n;++u)isNaN(p=+this._x.call(null,m=e[u]))||isNaN(g=+this._y.call(null,m))||isNaN(k=+this._z.call(null,m))||(r[u]=p,o[u]=g,i[u]=k,p<a&&(a=p),p>d&&(d=p),g<s&&(s=g),g>c&&(c=g),k<l&&(l=k),k>h&&(h=k));if(a>d||s>c||l>h)return this;this.cover(a,s,l).cover(d,c,h);for(let u=0;u<n;++u)Pi(this,r[u],o[u],i[u],e[u]);return this}function jc(e,n,r){if(isNaN(e=+e)||isNaN(n=+n)||isNaN(r=+r))return this;var o=this._x0,i=this._y0,a=this._z0,s=this._x1,l=this._y1,d=this._z1;if(isNaN(o))s=(o=Math.floor(e))+1,l=(i=Math.floor(n))+1,d=(a=Math.floor(r))+1;else{for(var c=s-o||1,h=this._root,u,m;o>e||e>=s||i>n||n>=l||a>r||r>=d;)switch(m=(r<a)<<2|(n<i)<<1|e<o,u=new Array(8),u[m]=h,h=u,c*=2,m){case 0:s=o+c,l=i+c,d=a+c;break;case 1:o=s-c,l=i+c,d=a+c;break;case 2:s=o+c,i=l-c,d=a+c;break;case 3:o=s-c,i=l-c,d=a+c;break;case 4:s=o+c,l=i+c,a=d-c;break;case 5:o=s-c,l=i+c,a=d-c;break;case 6:s=o+c,i=l-c,a=d-c;break;case 7:o=s-c,i=l-c,a=d-c;break}this._root&&this._root.length&&(this._root=h)}return this._x0=o,this._y0=i,this._z0=a,this._x1=s,this._y1=l,this._z1=d,this}function Oc(){var e=[];return this.visit(function(n){if(!n.length)do e.push(n.data);while(n=n.next)}),e}function Rc(e){return arguments.length?this.cover(+e[0][0],+e[0][1],+e[0][2]).cover(+e[1][0],+e[1][1],+e[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]}function re(e,n,r,o,i,a,s){this.node=e,this.x0=n,this.y0=r,this.z0=o,this.x1=i,this.y1=a,this.z1=s}function Fc(e,n,r,o){var i,a=this._x0,s=this._y0,l=this._z0,d,c,h,u,m,p,g=this._x1,k=this._y1,b=this._z1,v=[],w=this._root,D,I;for(w&&v.push(new re(w,a,s,l,g,k,b)),o==null?o=1/0:(a=e-o,s=n-o,l=r-o,g=e+o,k=n+o,b=r+o,o*=o);D=v.pop();)if(!(!(w=D.node)||(d=D.x0)>g||(c=D.y0)>k||(h=D.z0)>b||(u=D.x1)<a||(m=D.y1)<s||(p=D.z1)<l))if(w.length){var S=(d+u)/2,N=(c+m)/2,P=(h+p)/2;v.push(new re(w[7],S,N,P,u,m,p),new re(w[6],d,N,P,S,m,p),new re(w[5],S,c,P,u,N,p),new re(w[4],d,c,P,S,N,p),new re(w[3],S,N,h,u,m,P),new re(w[2],d,N,h,S,m,P),new re(w[1],S,c,h,u,N,P),new re(w[0],d,c,h,S,N,P)),(I=(r>=P)<<2|(n>=N)<<1|e>=S)&&(D=v[v.length-1],v[v.length-1]=v[v.length-1-I],v[v.length-1-I]=D)}else{var T=e-+this._x.call(null,w.data),U=n-+this._y.call(null,w.data),E=r-+this._z.call(null,w.data),$=T*T+U*U+E*E;if($<o){var F=Math.sqrt(o=$);a=e-F,s=n-F,l=r-F,g=e+F,k=n+F,b=r+F,i=w.data}}return i}const Lc=(e,n,r,o,i,a)=>Math.sqrt((e-o)**2+(n-i)**2+(r-a)**2);function zc(e,n,r,o){const i=[],a=e-o,s=n-o,l=r-o,d=e+o,c=n+o,h=r+o;return this.visit((u,m,p,g,k,b,v)=>{if(!u.length)do{const w=u.data;Lc(e,n,r,this._x(w),this._y(w),this._z(w))<=o&&i.push(w)}while(u=u.next);return m>d||p>c||g>h||k<a||b<s||v<l}),i}function $c(e){if(isNaN(m=+this._x.call(null,e))||isNaN(p=+this._y.call(null,e))||isNaN(g=+this._z.call(null,e)))return this;var n,r=this._root,o,i,a,s=this._x0,l=this._y0,d=this._z0,c=this._x1,h=this._y1,u=this._z1,m,p,g,k,b,v,w,D,I,S,N;if(!r)return this;if(r.length)for(;;){if((w=m>=(k=(s+c)/2))?s=k:c=k,(D=p>=(b=(l+h)/2))?l=b:h=b,(I=g>=(v=(d+u)/2))?d=v:u=v,n=r,!(r=r[S=I<<2|D<<1|w]))return this;if(!r.length)break;(n[S+1&7]||n[S+2&7]||n[S+3&7]||n[S+4&7]||n[S+5&7]||n[S+6&7]||n[S+7&7])&&(o=n,N=S)}for(;r.data!==e;)if(i=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,i?(a?i.next=a:delete i.next,this):n?(a?n[S]=a:delete n[S],(r=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&r===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!r.length&&(o?o[N]=r:this._root=r),this):(this._root=a,this)}function Uc(e){for(var n=0,r=e.length;n<r;++n)this.remove(e[n]);return this}function Bc(){return this._root}function Hc(){var e=0;return this.visit(function(n){if(!n.length)do++e;while(n=n.next)}),e}function Vc(e){var n=[],r,o=this._root,i,a,s,l,d,c,h;for(o&&n.push(new re(o,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));r=n.pop();)if(!e(o=r.node,a=r.x0,s=r.y0,l=r.z0,d=r.x1,c=r.y1,h=r.z1)&&o.length){var u=(a+d)/2,m=(s+c)/2,p=(l+h)/2;(i=o[7])&&n.push(new re(i,u,m,p,d,c,h)),(i=o[6])&&n.push(new re(i,a,m,p,u,c,h)),(i=o[5])&&n.push(new re(i,u,s,p,d,m,h)),(i=o[4])&&n.push(new re(i,a,s,p,u,m,h)),(i=o[3])&&n.push(new re(i,u,m,l,d,c,p)),(i=o[2])&&n.push(new re(i,a,m,l,u,c,p)),(i=o[1])&&n.push(new re(i,u,s,l,d,m,p)),(i=o[0])&&n.push(new re(i,a,s,l,u,m,p))}return this}function Gc(e){var n=[],r=[],o;for(this._root&&n.push(new re(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));o=n.pop();){var i=o.node;if(i.length){var a,s=o.x0,l=o.y0,d=o.z0,c=o.x1,h=o.y1,u=o.z1,m=(s+c)/2,p=(l+h)/2,g=(d+u)/2;(a=i[0])&&n.push(new re(a,s,l,d,m,p,g)),(a=i[1])&&n.push(new re(a,m,l,d,c,p,g)),(a=i[2])&&n.push(new re(a,s,p,d,m,h,g)),(a=i[3])&&n.push(new re(a,m,p,d,c,h,g)),(a=i[4])&&n.push(new re(a,s,l,g,m,p,u)),(a=i[5])&&n.push(new re(a,m,l,g,c,p,u)),(a=i[6])&&n.push(new re(a,s,p,g,m,h,u)),(a=i[7])&&n.push(new re(a,m,p,g,c,h,u))}r.push(o)}for(;o=r.pop();)e(o.node,o.x0,o.y0,o.z0,o.x1,o.y1,o.z1);return this}function Wc(e){return e[0]}function qc(e){return arguments.length?(this._x=e,this):this._x}function Yc(e){return e[1]}function Kc(e){return arguments.length?(this._y=e,this):this._y}function Jc(e){return e[2]}function Xc(e){return arguments.length?(this._z=e,this):this._z}function Ni(e,n,r,o){var i=new Sr(n??Wc,r??Yc,o??Jc,NaN,NaN,NaN,NaN,NaN,NaN);return e==null?i:i.addAll(e)}function Sr(e,n,r,o,i,a,s,l,d){this._x=e,this._y=n,this._z=r,this._x0=o,this._y0=i,this._z0=a,this._x1=s,this._y1=l,this._z1=d,this._root=void 0}function Po(e){for(var n={data:e.data},r=n;e=e.next;)r=r.next={data:e.data};return n}var xe=Ni.prototype=Sr.prototype;xe.copy=function(){var e=new Sr(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),n=this._root,r,o;if(!n)return e;if(!n.length)return e._root=Po(n),e;for(r=[{source:n,target:e._root=new Array(8)}];n=r.pop();)for(var i=0;i<8;++i)(o=n.source[i])&&(o.length?r.push({source:o,target:n.target[i]=new Array(8)}):n.target[i]=Po(o));return e};xe.add=Mc;xe.addAll=Ec;xe.cover=jc;xe.data=Oc;xe.extent=Rc;xe.find=Fc;xe.findAllWithinRadius=zc;xe.remove=$c;xe.removeAll=Uc;xe.root=Bc;xe.size=Hc;xe.visit=Vc;xe.visitAfter=Gc;xe.x=qc;xe.y=Kc;xe.z=Xc;function at(e){return function(){return e}}function it(e){return(e()-.5)*1e-6}function Zc(e){return e.index}function No(e,n){var r=e.get(n);if(!r)throw new Error("node not found: "+n);return r}function Qc(e){var n=Zc,r=m,o,i=at(30),a,s,l,d,c,h,u=1;e==null&&(e=[]);function m(v){return 1/Math.min(d[v.source.index],d[v.target.index])}function p(v){for(var w=0,D=e.length;w<u;++w)for(var I=0,S,N,P,T=0,U=0,E=0,$,F;I<D;++I)S=e[I],N=S.source,P=S.target,T=P.x+P.vx-N.x-N.vx||it(h),l>1&&(U=P.y+P.vy-N.y-N.vy||it(h)),l>2&&(E=P.z+P.vz-N.z-N.vz||it(h)),$=Math.sqrt(T*T+U*U+E*E),$=($-a[I])/$*v*o[I],T*=$,U*=$,E*=$,P.vx-=T*(F=c[I]),l>1&&(P.vy-=U*F),l>2&&(P.vz-=E*F),N.vx+=T*(F=1-F),l>1&&(N.vy+=U*F),l>2&&(N.vz+=E*F)}function g(){if(s){var v,w=s.length,D=e.length,I=new Map(s.map((N,P)=>[n(N,P,s),N])),S;for(v=0,d=new Array(w);v<D;++v)S=e[v],S.index=v,typeof S.source!="object"&&(S.source=No(I,S.source)),typeof S.target!="object"&&(S.target=No(I,S.target)),d[S.source.index]=(d[S.source.index]||0)+1,d[S.target.index]=(d[S.target.index]||0)+1;for(v=0,c=new Array(D);v<D;++v)S=e[v],c[v]=d[S.source.index]/(d[S.source.index]+d[S.target.index]);o=new Array(D),k(),a=new Array(D),b()}}function k(){if(s)for(var v=0,w=e.length;v<w;++v)o[v]=+r(e[v],v,e)}function b(){if(s)for(var v=0,w=e.length;v<w;++v)a[v]=+i(e[v],v,e)}return p.initialize=function(v,...w){s=v,h=w.find(D=>typeof D=="function")||Math.random,l=w.find(D=>[1,2,3].includes(D))||2,g()},p.links=function(v){return arguments.length?(e=v,g(),p):e},p.id=function(v){return arguments.length?(n=v,p):n},p.iterations=function(v){return arguments.length?(u=+v,p):u},p.strength=function(v){return arguments.length?(r=typeof v=="function"?v:at(+v),k(),p):r},p.distance=function(v){return arguments.length?(i=typeof v=="function"?v:at(+v),b(),p):i},p}const ed=1664525,td=1013904223,To=4294967296;function nd(){let e=1;return()=>(e=(ed*e+td)%To)/To}var Ao=3;function Hn(e){return e.x}function Mo(e){return e.y}function rd(e){return e.z}var od=10,id=Math.PI*(3-Math.sqrt(5)),ad=Math.PI*20/(9+Math.sqrt(221));function sd(e,n){n=n||2;var r=Math.min(Ao,Math.max(1,Math.round(n))),o,i=1,a=.001,s=1-Math.pow(a,1/300),l=0,d=.6,c=new Map,h=wa(p),u=ka("tick","end"),m=nd();e==null&&(e=[]);function p(){g(),u.call("tick",o),i<a&&(h.stop(),u.call("end",o))}function g(v){var w,D=e.length,I;v===void 0&&(v=1);for(var S=0;S<v;++S)for(i+=(l-i)*s,c.forEach(function(N){N(i)}),w=0;w<D;++w)I=e[w],I.fx==null?I.x+=I.vx*=d:(I.x=I.fx,I.vx=0),r>1&&(I.fy==null?I.y+=I.vy*=d:(I.y=I.fy,I.vy=0)),r>2&&(I.fz==null?I.z+=I.vz*=d:(I.z=I.fz,I.vz=0));return o}function k(){for(var v=0,w=e.length,D;v<w;++v){if(D=e[v],D.index=v,D.fx!=null&&(D.x=D.fx),D.fy!=null&&(D.y=D.fy),D.fz!=null&&(D.z=D.fz),isNaN(D.x)||r>1&&isNaN(D.y)||r>2&&isNaN(D.z)){var I=od*(r>2?Math.cbrt(.5+v):r>1?Math.sqrt(.5+v):v),S=v*id,N=v*ad;r===1?D.x=I:r===2?(D.x=I*Math.cos(S),D.y=I*Math.sin(S)):(D.x=I*Math.sin(S)*Math.cos(N),D.y=I*Math.cos(S),D.z=I*Math.sin(S)*Math.sin(N))}(isNaN(D.vx)||r>1&&isNaN(D.vy)||r>2&&isNaN(D.vz))&&(D.vx=0,r>1&&(D.vy=0),r>2&&(D.vz=0))}}function b(v){return v.initialize&&v.initialize(e,m,r),v}return k(),o={tick:g,restart:function(){return h.restart(p),o},stop:function(){return h.stop(),o},numDimensions:function(v){return arguments.length?(r=Math.min(Ao,Math.max(1,Math.round(v))),c.forEach(b),o):r},nodes:function(v){return arguments.length?(e=v,k(),c.forEach(b),o):e},alpha:function(v){return arguments.length?(i=+v,o):i},alphaMin:function(v){return arguments.length?(a=+v,o):a},alphaDecay:function(v){return arguments.length?(s=+v,o):+s},alphaTarget:function(v){return arguments.length?(l=+v,o):l},velocityDecay:function(v){return arguments.length?(d=1-v,o):1-d},randomSource:function(v){return arguments.length?(m=v,c.forEach(b),o):m},force:function(v,w){return arguments.length>1?(w==null?c.delete(v):c.set(v,b(w)),o):c.get(v)},find:function(){var v=Array.prototype.slice.call(arguments),w=v.shift()||0,D=(r>1?v.shift():null)||0,I=(r>2?v.shift():null)||0,S=v.shift()||1/0,N=0,P=e.length,T,U,E,$,F,B;for(S*=S,N=0;N<P;++N)F=e[N],T=w-F.x,U=D-(F.y||0),E=I-(F.z||0),$=T*T+U*U+E*E,$<S&&(B=F,S=$);return B},on:function(v,w){return arguments.length>1?(u.on(v,w),o):u.on(v)}}}function ld(){var e,n,r,o,i,a=at(-30),s,l=1,d=1/0,c=.81;function h(g){var k,b=e.length,v=(n===1?Di(e,Hn):n===2?Ca(e,Hn,Mo):n===3?Ni(e,Hn,Mo,rd):null).visitAfter(m);for(i=g,k=0;k<b;++k)r=e[k],v.visit(p)}function u(){if(e){var g,k=e.length,b;for(s=new Array(k),g=0;g<k;++g)b=e[g],s[b.index]=+a(b,g,e)}}function m(g){var k=0,b,v,w=0,D,I,S,N,P=g.length;if(P){for(D=I=S=N=0;N<P;++N)(b=g[N])&&(v=Math.abs(b.value))&&(k+=b.value,w+=v,D+=v*(b.x||0),I+=v*(b.y||0),S+=v*(b.z||0));k*=Math.sqrt(4/P),g.x=D/w,n>1&&(g.y=I/w),n>2&&(g.z=S/w)}else{b=g,b.x=b.data.x,n>1&&(b.y=b.data.y),n>2&&(b.z=b.data.z);do k+=s[b.data.index];while(b=b.next)}g.value=k}function p(g,k,b,v,w){if(!g.value)return!0;var D=[b,v,w][n-1],I=g.x-r.x,S=n>1?g.y-r.y:0,N=n>2?g.z-r.z:0,P=D-k,T=I*I+S*S+N*N;if(P*P/c<T)return T<d&&(I===0&&(I=it(o),T+=I*I),n>1&&S===0&&(S=it(o),T+=S*S),n>2&&N===0&&(N=it(o),T+=N*N),T<l&&(T=Math.sqrt(l*T)),r.vx+=I*g.value*i/T,n>1&&(r.vy+=S*g.value*i/T),n>2&&(r.vz+=N*g.value*i/T)),!0;if(g.length||T>=d)return;(g.data!==r||g.next)&&(I===0&&(I=it(o),T+=I*I),n>1&&S===0&&(S=it(o),T+=S*S),n>2&&N===0&&(N=it(o),T+=N*N),T<l&&(T=Math.sqrt(l*T)));do g.data!==r&&(P=s[g.data.index]*i/T,r.vx+=I*P,n>1&&(r.vy+=S*P),n>2&&(r.vz+=N*P));while(g=g.next)}return h.initialize=function(g,...k){e=g,o=k.find(b=>typeof b=="function")||Math.random,n=k.find(b=>[1,2,3].includes(b))||2,u()},h.strength=function(g){return arguments.length?(a=typeof g=="function"?g:at(+g),u(),h):a},h.distanceMin=function(g){return arguments.length?(l=g*g,h):Math.sqrt(l)},h.distanceMax=function(g){return arguments.length?(d=g*g,h):Math.sqrt(d)},h.theta=function(g){return arguments.length?(c=g*g,h):Math.sqrt(c)},h}function cd(e,n,r,o){var i,a,s=at(.1),l,d;typeof e!="function"&&(e=at(+e)),n==null&&(n=0),r==null&&(r=0),o==null&&(o=0);function c(u){for(var m=0,p=i.length;m<p;++m){var g=i[m],k=g.x-n||1e-6,b=(g.y||0)-r||1e-6,v=(g.z||0)-o||1e-6,w=Math.sqrt(k*k+b*b+v*v),D=(d[m]-w)*l[m]*u/w;g.vx+=k*D,a>1&&(g.vy+=b*D),a>2&&(g.vz+=v*D)}}function h(){if(i){var u,m=i.length;for(l=new Array(m),d=new Array(m),u=0;u<m;++u)d[u]=+e(i[u],u,i),l[u]=isNaN(d[u])?0:+s(i[u],u,i)}}return c.initialize=function(u,...m){i=u,a=m.find(p=>[1,2,3].includes(p))||2,h()},c.strength=function(u){return arguments.length?(s=typeof u=="function"?u:at(+u),h(),c):s},c.radius=function(u){return arguments.length?(e=typeof u=="function"?u:at(+u),h(),c):e},c.x=function(u){return arguments.length?(n=+u,c):n},c.y=function(u){return arguments.length?(r=+u,c):r},c.z=function(u){return arguments.length?(o=+u,c):o},c}const{abs:Gt,cos:rt,sin:Ot,acos:dd,atan2:Wt,sqrt:pt,pow:ze}=Math;function qt(e){return e<0?-ze(-e,1/3):ze(e,1/3)}const Ti=Math.PI,yn=2*Ti,gt=Ti/2,ud=1e-6,Vn=Number.MAX_SAFE_INTEGER||9007199254740991,Gn=Number.MIN_SAFE_INTEGER||-9007199254740991,fd={x:0,y:0,z:0},z={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,n){const r=n(e);let o=r.x*r.x+r.y*r.y;return typeof r.z<"u"&&(o+=r.z*r.z),pt(o)},compute:function(e,n,r){if(e===0)return n[0].t=0,n[0];const o=n.length-1;if(e===1)return n[o].t=1,n[o];const i=1-e;let a=n;if(o===0)return n[0].t=e,n[0];if(o===1){const l={x:i*a[0].x+e*a[1].x,y:i*a[0].y+e*a[1].y,t:e};return r&&(l.z=i*a[0].z+e*a[1].z),l}if(o<4){let l=i*i,d=e*e,c,h,u,m=0;o===2?(a=[a[0],a[1],a[2],fd],c=l,h=i*e*2,u=d):o===3&&(c=l*i,h=l*e*3,u=i*d*3,m=e*d);const p={x:c*a[0].x+h*a[1].x+u*a[2].x+m*a[3].x,y:c*a[0].y+h*a[1].y+u*a[2].y+m*a[3].y,t:e};return r&&(p.z=c*a[0].z+h*a[1].z+u*a[2].z+m*a[3].z),p}const s=JSON.parse(JSON.stringify(n));for(;s.length>1;){for(let l=0;l<s.length-1;l++)s[l]={x:s[l].x+(s[l+1].x-s[l].x)*e,y:s[l].y+(s[l+1].y-s[l].y)*e},typeof s[l].z<"u"&&(s[l].z=s[l].z+(s[l+1].z-s[l].z)*e);s.splice(s.length-1,1)}return s[0].t=e,s[0]},computeWithRatios:function(e,n,r,o){const i=1-e,a=r,s=n;let l=a[0],d=a[1],c=a[2],h=a[3],u;if(l*=i,d*=e,s.length===2)return u=l+d,{x:(l*s[0].x+d*s[1].x)/u,y:(l*s[0].y+d*s[1].y)/u,z:o?(l*s[0].z+d*s[1].z)/u:!1,t:e};if(l*=i,d*=2*i,c*=e*e,s.length===3)return u=l+d+c,{x:(l*s[0].x+d*s[1].x+c*s[2].x)/u,y:(l*s[0].y+d*s[1].y+c*s[2].y)/u,z:o?(l*s[0].z+d*s[1].z+c*s[2].z)/u:!1,t:e};if(l*=i,d*=1.5*i,c*=3*i,h*=e*e*e,s.length===4)return u=l+d+c+h,{x:(l*s[0].x+d*s[1].x+c*s[2].x+h*s[3].x)/u,y:(l*s[0].y+d*s[1].y+c*s[2].y+h*s[3].y)/u,z:o?(l*s[0].z+d*s[1].z+c*s[2].z+h*s[3].z)/u:!1,t:e}},derive:function(e,n){const r=[];for(let o=e,i=o.length,a=i-1;i>1;i--,a--){const s=[];for(let l=0,d;l<a;l++)d={x:a*(o[l+1].x-o[l].x),y:a*(o[l+1].y-o[l].y)},n&&(d.z=a*(o[l+1].z-o[l].z)),s.push(d);r.push(s),o=s}return r},between:function(e,n,r){return n<=e&&e<=r||z.approximately(e,n)||z.approximately(e,r)},approximately:function(e,n,r){return Gt(e-n)<=(r||ud)},length:function(e){const r=z.Tvalues.length;let o=0;for(let i=0,a;i<r;i++)a=.5*z.Tvalues[i]+.5,o+=z.Cvalues[i]*z.arcfn(a,e);return .5*o},map:function(e,n,r,o,i){const a=r-n,s=i-o,l=e-n,d=l/a;return o+s*d},lerp:function(e,n,r){const o={x:n.x+e*(r.x-n.x),y:n.y+e*(r.y-n.y)};return n.z!==void 0&&r.z!==void 0&&(o.z=n.z+e*(r.z-n.z)),o},pointToString:function(e){let n=e.x+"/"+e.y;return typeof e.z<"u"&&(n+="/"+e.z),n},pointsToString:function(e){return"["+e.map(z.pointToString).join(", ")+"]"},copy:function(e){return JSON.parse(JSON.stringify(e))},angle:function(e,n,r){const o=n.x-e.x,i=n.y-e.y,a=r.x-e.x,s=r.y-e.y,l=o*s-i*a,d=o*a+i*s;return Wt(l,d)},round:function(e,n){const r=""+e,o=r.indexOf(".");return parseFloat(r.substring(0,o+1+n))},dist:function(e,n){const r=e.x-n.x,o=e.y-n.y;return pt(r*r+o*o)},closest:function(e,n){let r=ze(2,63),o,i;return e.forEach(function(a,s){i=z.dist(n,a),i<r&&(r=i,o=s)}),{mdist:r,mpos:o}},abcratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=ze(e,n)+ze(1-e,n),o=r-1;return Gt(o/r)},projectionratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=ze(1-e,n),o=ze(e,n)+r;return r/o},lli8:function(e,n,r,o,i,a,s,l){const d=(e*o-n*r)*(i-s)-(e-r)*(i*l-a*s),c=(e*o-n*r)*(a-l)-(n-o)*(i*l-a*s),h=(e-r)*(a-l)-(n-o)*(i-s);return h==0?!1:{x:d/h,y:c/h}},lli4:function(e,n,r,o){const i=e.x,a=e.y,s=n.x,l=n.y,d=r.x,c=r.y,h=o.x,u=o.y;return z.lli8(i,a,s,l,d,c,h,u)},lli:function(e,n){return z.lli4(e,e.c,n,n.c)},makeline:function(e,n){return new oe(e.x,e.y,(e.x+n.x)/2,(e.y+n.y)/2,n.x,n.y)},findbbox:function(e){let n=Vn,r=Vn,o=Gn,i=Gn;return e.forEach(function(a){const s=a.bbox();n>s.x.min&&(n=s.x.min),r>s.y.min&&(r=s.y.min),o<s.x.max&&(o=s.x.max),i<s.y.max&&(i=s.y.max)}),{x:{min:n,mid:(n+o)/2,max:o,size:o-n},y:{min:r,mid:(r+i)/2,max:i,size:i-r}}},shapeintersections:function(e,n,r,o,i){if(!z.bboxoverlap(n,o))return[];const a=[],s=[e.startcap,e.forward,e.back,e.endcap],l=[r.startcap,r.forward,r.back,r.endcap];return s.forEach(function(d){d.virtual||l.forEach(function(c){if(c.virtual)return;const h=d.intersects(c,i);h.length>0&&(h.c1=d,h.c2=c,h.s1=e,h.s2=r,a.push(h))})}),a},makeshape:function(e,n,r){const o=n.points.length,i=e.points.length,a=z.makeline(n.points[o-1],e.points[0]),s=z.makeline(e.points[i-1],n.points[0]),l={startcap:a,forward:e,back:n,endcap:s,bbox:z.findbbox([a,e,n,s])};return l.intersections=function(d){return z.shapeintersections(l,l.bbox,d,d.bbox,r)},l},getminmax:function(e,n,r){if(!r)return{min:0,max:0};let o=Vn,i=Gn,a,s;r.indexOf(0)===-1&&(r=[0].concat(r)),r.indexOf(1)===-1&&r.push(1);for(let l=0,d=r.length;l<d;l++)a=r[l],s=e.get(a),s[n]<o&&(o=s[n]),s[n]>i&&(i=s[n]);return{min:o,mid:(o+i)/2,max:i,size:i-o}},align:function(e,n){const r=n.p1.x,o=n.p1.y,i=-Wt(n.p2.y-o,n.p2.x-r),a=function(s){return{x:(s.x-r)*rt(i)-(s.y-o)*Ot(i),y:(s.x-r)*Ot(i)+(s.y-o)*rt(i)}};return e.map(a)},roots:function(e,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const r=e.length-1,o=z.align(e,n),i=function(P){return 0<=P&&P<=1};if(r===2){const P=o[0].y,T=o[1].y,U=o[2].y,E=P-2*T+U;if(E!==0){const $=-pt(T*T-P*U),F=-P+T,B=-($+F)/E,A=-(-$+F)/E;return[B,A].filter(i)}else if(T!==U&&E===0)return[(2*T-U)/(2*T-2*U)].filter(i);return[]}const a=o[0].y,s=o[1].y,l=o[2].y,d=o[3].y;let c=-a+3*s-3*l+d,h=3*a-6*s+3*l,u=-3*a+3*s,m=a;if(z.approximately(c,0)){if(z.approximately(h,0))return z.approximately(u,0)?[]:[-m/u].filter(i);const P=pt(u*u-4*h*m),T=2*h;return[(P-u)/T,(-u-P)/T].filter(i)}h/=c,u/=c,m/=c;const p=(3*u-h*h)/3,g=p/3,k=(2*h*h*h-9*h*u+27*m)/27,b=k/2,v=b*b+g*g*g;let w,D,I,S,N;if(v<0){const P=-p/3,T=P*P*P,U=pt(T),E=-k/(2*U),$=E<-1?-1:E>1?1:E,F=dd($),B=qt(U),A=2*B;return I=A*rt(F/3)-h/3,S=A*rt((F+yn)/3)-h/3,N=A*rt((F+2*yn)/3)-h/3,[I,S,N].filter(i)}else{if(v===0)return w=b<0?qt(-b):-qt(b),I=2*w-h/3,S=-w-h/3,[I,S].filter(i);{const P=pt(v);return w=qt(-b+P),D=qt(b+P),[w-D-h/3].filter(i)}}},droots:function(e){if(e.length===3){const n=e[0],r=e[1],o=e[2],i=n-2*r+o;if(i!==0){const a=-pt(r*r-n*o),s=-n+r,l=-(a+s)/i,d=-(-a+s)/i;return[l,d]}else if(r!==o&&i===0)return[(2*r-o)/(2*(r-o))];return[]}if(e.length===2){const n=e[0],r=e[1];return n!==r?[n/(n-r)]:[]}return[]},curvature:function(e,n,r,o,i){let a,s,l,d,c=0,h=0;const u=z.compute(e,n),m=z.compute(e,r),p=u.x*u.x+u.y*u.y;if(o?(a=pt(ze(u.y*m.z-m.y*u.z,2)+ze(u.z*m.x-m.z*u.x,2)+ze(u.x*m.y-m.x*u.y,2)),s=ze(p+u.z*u.z,3/2)):(a=u.x*m.y-u.y*m.x,s=ze(p,3/2)),a===0||s===0)return{k:0,r:0};if(c=a/s,h=s/a,!i){const g=z.curvature(e-.001,n,r,o,!0).k,k=z.curvature(e+.001,n,r,o,!0).k;d=(k-c+(c-g))/2,l=(Gt(k-c)+Gt(c-g))/2}return{k:c,r:h,dk:d,adk:l}},inflections:function(e){if(e.length<4)return[];const n=z.align(e,{p1:e[0],p2:e.slice(-1)[0]}),r=n[2].x*n[1].y,o=n[3].x*n[1].y,i=n[1].x*n[2].y,a=n[3].x*n[2].y,s=18*(-3*r+2*o+3*i-a),l=18*(3*r-o-3*i),d=18*(i-r);if(z.approximately(s,0)){if(!z.approximately(l,0)){let m=-d/l;if(0<=m&&m<=1)return[m]}return[]}const c=2*s;if(z.approximately(c,0))return[];const h=l*l-4*s*d;if(h<0)return[];const u=Math.sqrt(h);return[(u-l)/c,-(l+u)/c].filter(function(m){return 0<=m&&m<=1})},bboxoverlap:function(e,n){const r=["x","y"],o=r.length;for(let i=0,a,s,l,d;i<o;i++)if(a=r[i],s=e[a].mid,l=n[a].mid,d=(e[a].size+n[a].size)/2,Gt(s-l)>=d)return!1;return!0},expandbox:function(e,n){n.x.min<e.x.min&&(e.x.min=n.x.min),n.y.min<e.y.min&&(e.y.min=n.y.min),n.z&&n.z.min<e.z.min&&(e.z.min=n.z.min),n.x.max>e.x.max&&(e.x.max=n.x.max),n.y.max>e.y.max&&(e.y.max=n.y.max),n.z&&n.z.max>e.z.max&&(e.z.max=n.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,n,r){const o=e.bbox(),i=n.bbox(),a=1e5,s=r||.5;if(o.x.size+o.y.size<s&&i.x.size+i.y.size<s)return[(a*(e._t1+e._t2)/2|0)/a+"/"+(a*(n._t1+n._t2)/2|0)/a];let l=e.split(.5),d=n.split(.5),c=[{left:l.left,right:d.left},{left:l.left,right:d.right},{left:l.right,right:d.right},{left:l.right,right:d.left}];c=c.filter(function(u){return z.bboxoverlap(u.left.bbox(),u.right.bbox())});let h=[];return c.length===0||(c.forEach(function(u){h=h.concat(z.pairiteration(u.left,u.right,s))}),h=h.filter(function(u,m){return h.indexOf(u)===m})),h},getccenter:function(e,n,r){const o=n.x-e.x,i=n.y-e.y,a=r.x-n.x,s=r.y-n.y,l=o*rt(gt)-i*Ot(gt),d=o*Ot(gt)+i*rt(gt),c=a*rt(gt)-s*Ot(gt),h=a*Ot(gt)+s*rt(gt),u=(e.x+n.x)/2,m=(e.y+n.y)/2,p=(n.x+r.x)/2,g=(n.y+r.y)/2,k=u+l,b=m+d,v=p+c,w=g+h,D=z.lli8(u,m,k,b,p,g,v,w),I=z.dist(D,e);let S=Wt(e.y-D.y,e.x-D.x),N=Wt(n.y-D.y,n.x-D.x),P=Wt(r.y-D.y,r.x-D.x),T;return S<P?((S>N||N>P)&&(S+=yn),S>P&&(T=P,P=S,S=T)):P<N&&N<S?(T=P,P=S,S=T):P+=yn,D.s=S,D.e=P,D.r=I,D},numberSort:function(e,n){return e-n}};class en{constructor(n){this.curves=[],this._3d=!1,n&&(this.curves=n,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map(function(n){return z.pointsToString(n.points)}).join(", ")+"]"}addCurve(n){this.curves.push(n),this._3d=this._3d||n._3d}length(){return this.curves.map(function(n){return n.length()}).reduce(function(n,r){return n+r})}curve(n){return this.curves[n]}bbox(){const n=this.curves;for(var r=n[0].bbox(),o=1;o<n.length;o++)z.expandbox(r,n[o].bbox());return r}offset(n){const r=[];return this.curves.forEach(function(o){r.push(...o.offset(n))}),new en(r)}}const{abs:Yt,min:Eo,max:jo,cos:md,sin:hd,acos:pd,sqrt:Kt}=Math,gd=Math.PI;class oe{constructor(n){let r=n&&n.forEach?n:Array.from(arguments).slice(),o=!1;if(typeof r[0]=="object"){o=r.length;const p=[];r.forEach(function(g){["x","y","z"].forEach(function(k){typeof g[k]<"u"&&p.push(g[k])})}),r=p}let i=!1;const a=r.length;if(o){if(o>4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const s=this._3d=!i&&(a===9||a===12)||n&&n[0]&&typeof n[0].z<"u",l=this.points=[];for(let p=0,g=s?3:2;p<a;p+=g){var d={x:r[p],y:r[p+1]};s&&(d.z=r[p+2]),l.push(d)}const c=this.order=l.length-1,h=this.dims=["x","y"];s&&h.push("z"),this.dimlen=h.length;const u=z.align(l,{p1:l[0],p2:l[c]}),m=z.dist(l[0],l[c]);this._linear=u.reduce((p,g)=>p+Yt(g.y),0)<m/50,this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(n,r,o,i){if(typeof i>"u"&&(i=.5),i===0)return new oe(r,r,o);if(i===1)return new oe(n,r,r);const a=oe.getABC(2,n,r,o,i);return new oe(n,a.A,o)}static cubicFromPoints(n,r,o,i,a){typeof i>"u"&&(i=.5);const s=oe.getABC(3,n,r,o,i);typeof a>"u"&&(a=z.dist(r,s.C));const l=a*(1-i)/i,d=z.dist(n,o),c=(o.x-n.x)/d,h=(o.y-n.y)/d,u=a*c,m=a*h,p=l*c,g=l*h,k={x:r.x-u,y:r.y-m},b={x:r.x+p,y:r.y+g},v=s.A,w={x:v.x+(k.x-v.x)/(1-i),y:v.y+(k.y-v.y)/(1-i)},D={x:v.x+(b.x-v.x)/i,y:v.y+(b.y-v.y)/i},I={x:n.x+(w.x-n.x)/i,y:n.y+(w.y-n.y)/i},S={x:o.x+(D.x-o.x)/(1-i),y:o.y+(D.y-o.y)/(1-i)};return new oe(n,I,S,o)}static getUtils(){return z}getUtils(){return oe.getUtils()}static get PolyBezier(){return en}valueOf(){return this.toString()}toString(){return z.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const n=this.points,r=n[0].x,o=n[0].y,i=["M",r,o,this.order===2?"Q":"C"];for(let a=1,s=n.length;a<s;a++)i.push(n[a].x),i.push(n[a].y);return i.join(" ")}setRatios(n){if(n.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=n,this._lut=[]}verify(){const n=this.coordDigest();n!==this._print&&(this._print=n,this.update())}coordDigest(){return this.points.map(function(n,r){return""+r+n.x+n.y+(n.z?n.z:0)}).join("")}update(){this._lut=[],this.dpoints=z.derive(this.points,this._3d),this.computedirection()}computedirection(){const n=this.points,r=z.angle(n[0],n[this.order],n[1]);this.clockwise=r>0}length(){return z.length(this.derivative.bind(this))}static getABC(n=2,r,o,i,a=.5){const s=z.projectionratio(a,n),l=1-s,d={x:s*r.x+l*i.x,y:s*r.y+l*i.y},c=z.abcratio(a,n);return{A:{x:o.x+(o.x-d.x)/c,y:o.y+(o.y-d.y)/c},B:o,C:d,S:r,E:i}}getABC(n,r){r=r||this.get(n);let o=this.points[0],i=this.points[this.order];return oe.getABC(this.order,o,r,i,n)}getLUT(n){if(this.verify(),n=n||100,this._lut.length===n+1)return this._lut;this._lut=[],n++,this._lut=[];for(let r=0,o,i;r<n;r++)i=r/(n-1),o=this.compute(i),o.t=i,this._lut.push(o);return this._lut}on(n,r){r=r||5;const o=this.getLUT(),i=[];for(let a=0,s,l=0;a<o.length;a++)s=o[a],z.dist(s,n)<r&&(i.push(s),l+=a/o.length);return i.length?t/=i.length:!1}project(n){const r=this.getLUT(),o=r.length-1,i=z.closest(r,n),a=i.mpos,s=(a-1)/o,l=(a+1)/o,d=.1/o;let c=i.mdist,h=s,u=h,m;c+=1;for(let p;h<l+d;h+=d)m=this.compute(h),p=z.dist(n,m),p<c&&(c=p,u=h);return u=u<0?0:u>1?1:u,m=this.compute(u),m.t=u,m.d=c,m}get(n){return this.compute(n)}point(n){return this.points[n]}compute(n){return this.ratios?z.computeWithRatios(n,this.points,this.ratios,this._3d):z.compute(n,this.points,this._3d,this.ratios)}raise(){const n=this.points,r=[n[0]],o=n.length;for(let i=1,a,s;i<o;i++)a=n[i],s=n[i-1],r[i]={x:(o-i)/o*a.x+i/o*s.x,y:(o-i)/o*a.y+i/o*s.y};return r[o]=n[o-1],new oe(r)}derivative(n){return z.compute(n,this.dpoints[0],this._3d)}dderivative(n){return z.compute(n,this.dpoints[1],this._3d)}align(){let n=this.points;return new oe(z.align(n,{p1:n[0],p2:n[n.length-1]}))}curvature(n){return z.curvature(n,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return z.inflections(this.points)}normal(n){return this._3d?this.__normal3(n):this.__normal2(n)}__normal2(n){const r=this.derivative(n),o=Kt(r.x*r.x+r.y*r.y);return{t:n,x:-r.y/o,y:r.x/o}}__normal3(n){const r=this.derivative(n),o=this.derivative(n+.01),i=Kt(r.x*r.x+r.y*r.y+r.z*r.z),a=Kt(o.x*o.x+o.y*o.y+o.z*o.z);r.x/=i,r.y/=i,r.z/=i,o.x/=a,o.y/=a,o.z/=a;const s={x:o.y*r.z-o.z*r.y,y:o.z*r.x-o.x*r.z,z:o.x*r.y-o.y*r.x},l=Kt(s.x*s.x+s.y*s.y+s.z*s.z);s.x/=l,s.y/=l,s.z/=l;const d=[s.x*s.x,s.x*s.y-s.z,s.x*s.z+s.y,s.x*s.y+s.z,s.y*s.y,s.y*s.z-s.x,s.x*s.z-s.y,s.y*s.z+s.x,s.z*s.z];return{t:n,x:d[0]*r.x+d[1]*r.y+d[2]*r.z,y:d[3]*r.x+d[4]*r.y+d[5]*r.z,z:d[6]*r.x+d[7]*r.y+d[8]*r.z}}hull(n){let r=this.points,o=[],i=[],a=0;for(i[a++]=r[0],i[a++]=r[1],i[a++]=r[2],this.order===3&&(i[a++]=r[3]);r.length>1;){o=[];for(let s=0,l,d=r.length-1;s<d;s++)l=z.lerp(n,r[s],r[s+1]),i[a++]=l,o.push(l);r=o}return i}split(n,r){if(n===0&&r)return this.split(r).left;if(r===1)return this.split(n).right;const o=this.hull(n),i={left:this.order===2?new oe([o[0],o[3],o[5]]):new oe([o[0],o[4],o[7],o[9]]),right:this.order===2?new oe([o[5],o[4],o[2]]):new oe([o[9],o[8],o[6],o[3]]),span:o};return i.left._t1=z.map(0,0,1,this._t1,this._t2),i.left._t2=z.map(n,0,1,this._t1,this._t2),i.right._t1=z.map(n,0,1,this._t1,this._t2),i.right._t2=z.map(1,0,1,this._t1,this._t2),r?(r=z.map(r,n,1,0,1),i.right.split(r).left):i}extrema(){const n={};let r=[];return this.dims.forEach((function(o){let i=function(s){return s[o]},a=this.dpoints[0].map(i);n[o]=z.droots(a),this.order===3&&(a=this.dpoints[1].map(i),n[o]=n[o].concat(z.droots(a))),n[o]=n[o].filter(function(s){return s>=0&&s<=1}),r=r.concat(n[o].sort(z.numberSort))}).bind(this)),n.values=r.sort(z.numberSort).filter(function(o,i){return r.indexOf(o)===i}),n}bbox(){const n=this.extrema(),r={};return this.dims.forEach((function(o){r[o]=z.getminmax(this,o,n[o])}).bind(this)),r}overlaps(n){const r=this.bbox(),o=n.bbox();return z.bboxoverlap(r,o)}offset(n,r){if(typeof r<"u"){const o=this.get(n),i=this.normal(n),a={c:o,n:i,x:o.x+i.x*r,y:o.y+i.y*r};return this._3d&&(a.z=o.z+i.z*r),a}if(this._linear){const o=this.normal(0),i=this.points.map(function(a){const s={x:a.x+n*o.x,y:a.y+n*o.y};return a.z&&o.z&&(s.z=a.z+n*o.z),s});return[new oe(i)]}return this.reduce().map(function(o){return o._linear?o.offset(n)[0]:o.scale(n)})}simple(){if(this.order===3){const i=z.angle(this.points[0],this.points[3],this.points[1]),a=z.angle(this.points[0],this.points[3],this.points[2]);if(i>0&&a<0||i<0&&a>0)return!1}const n=this.normal(0),r=this.normal(1);let o=n.x*r.x+n.y*r.y;return this._3d&&(o+=n.z*r.z),Yt(pd(o))<gd/3}reduce(){let n,r=0,o=0,i=.01,a,s=[],l=[],d=this.extrema().values;for(d.indexOf(0)===-1&&(d=[0].concat(d)),d.indexOf(1)===-1&&d.push(1),r=d[0],n=1;n<d.length;n++)o=d[n],a=this.split(r,o),a._t1=r,a._t2=o,s.push(a),r=o;return s.forEach(function(c){for(r=0,o=0;o<=1;)for(o=r+i;o<=1+i;o+=i)if(a=c.split(r,o),!a.simple()){if(o-=i,Yt(r-o)<i)return[];a=c.split(r,o),a._t1=z.map(r,0,1,c._t1,c._t2),a._t2=z.map(o,0,1,c._t1,c._t2),l.push(a),r=o;break}r<1&&(a=c.split(r,1),a._t1=z.map(r,0,1,c._t1,c._t2),a._t2=c._t2,l.push(a))}),l}translate(n,r,o){o=typeof o=="number"?o:r;const i=this.order;let a=this.points.map((s,l)=>(1-l/i)*r+l/i*o);return new oe(this.points.map((s,l)=>({x:s.x+n.x*a[l],y:s.y+n.y*a[l]})))}scale(n){const r=this.order;let o=!1;if(typeof n=="function"&&(o=n),o&&r===2)return this.raise().scale(o);const i=this.clockwise,a=this.points;if(this._linear)return this.translate(this.normal(0),o?o(0):n,o?o(1):n);const s=o?o(0):n,l=o?o(1):n,d=[this.offset(0,10),this.offset(1,10)],c=[],h=z.lli4(d[0],d[0].c,d[1],d[1].c);if(!h)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(u){const m=c[u*r]=z.copy(a[u*r]);m.x+=(u?l:s)*d[u].n.x,m.y+=(u?l:s)*d[u].n.y}),o?([0,1].forEach(function(u){if(!(r===2&&u)){var m=a[u+1],p={x:m.x-h.x,y:m.y-h.y},g=o?o((u+1)/r):n;o&&!i&&(g=-g);var k=Kt(p.x*p.x+p.y*p.y);p.x/=k,p.y/=k,c[u+1]={x:m.x+g*p.x,y:m.y+g*p.y}}}),new oe(c)):([0,1].forEach(u=>{if(r===2&&u)return;const m=c[u*r],p=this.derivative(u),g={x:m.x+p.x,y:m.y+p.y};c[u+1]=z.lli4(m,g,h,a[u+1])}),new oe(c))}outline(n,r,o,i){if(r=r===void 0?n:r,this._linear){const S=this.normal(0),N=this.points[0],P=this.points[this.points.length-1];let T,U,E;o===void 0&&(o=n,i=r),T={x:N.x+S.x*n,y:N.y+S.y*n},E={x:P.x+S.x*o,y:P.y+S.y*o},U={x:(T.x+E.x)/2,y:(T.y+E.y)/2};const $=[T,U,E];T={x:N.x-S.x*r,y:N.y-S.y*r},E={x:P.x-S.x*i,y:P.y-S.y*i},U={x:(T.x+E.x)/2,y:(T.y+E.y)/2};const F=[E,U,T],B=z.makeline(F[2],$[0]),A=z.makeline($[2],F[0]),Y=[B,new oe($),A,new oe(F)];return new en(Y)}const a=this.reduce(),s=a.length,l=[];let d=[],c,h=0,u=this.length();const m=typeof o<"u"&&typeof i<"u";function p(S,N,P,T,U){return function(E){const $=T/P,F=(T+U)/P,B=N-S;return z.map(E,0,1,S+$*B,S+F*B)}}a.forEach(function(S){const N=S.length();m?(l.push(S.scale(p(n,o,u,h,N))),d.push(S.scale(p(-r,-i,u,h,N)))):(l.push(S.scale(n)),d.push(S.scale(-r))),h+=N}),d=d.map(function(S){return c=S.points,c[3]?S.points=[c[3],c[2],c[1],c[0]]:S.points=[c[2],c[1],c[0]],S}).reverse();const g=l[0].points[0],k=l[s-1].points[l[s-1].points.length-1],b=d[s-1].points[d[s-1].points.length-1],v=d[0].points[0],w=z.makeline(b,g),D=z.makeline(k,v),I=[w].concat(l).concat([D]).concat(d);return new en(I)}outlineshapes(n,r,o){r=r||n;const i=this.outline(n,r).curves,a=[];for(let s=1,l=i.length;s<l/2;s++){const d=z.makeshape(i[s],i[l-s],o);d.startcap.virtual=s>1,d.endcap.virtual=s<l/2-1,a.push(d)}return a}intersects(n,r){return n?n.p1&&n.p2?this.lineIntersects(n):(n instanceof oe&&(n=n.reduce()),this.curveintersects(this.reduce(),n,r)):this.selfintersects(r)}lineIntersects(n){const r=Eo(n.p1.x,n.p2.x),o=Eo(n.p1.y,n.p2.y),i=jo(n.p1.x,n.p2.x),a=jo(n.p1.y,n.p2.y);return z.roots(this.points,n).filter(s=>{var l=this.get(s);return z.between(l.x,r,i)&&z.between(l.y,o,a)})}selfintersects(n){const r=this.reduce(),o=r.length-2,i=[];for(let a=0,s,l,d;a<o;a++)l=r.slice(a,a+1),d=r.slice(a+2),s=this.curveintersects(l,d,n),i.push(...s);return i}curveintersects(n,r,o){const i=[];n.forEach(function(s){r.forEach(function(l){s.overlaps(l)&&i.push({left:s,right:l})})});let a=[];return i.forEach(function(s){const l=z.pairiteration(s.left,s.right,o);l.length>0&&(a=a.concat(l))}),a}arcs(n){return n=n||.5,this._iterate(n,[])}_error(n,r,o,i){const a=(i-o)/4,s=this.get(o+a),l=this.get(i-a),d=z.dist(n,r),c=z.dist(n,s),h=z.dist(n,l);return Yt(c-d)+Yt(h-d)}_iterate(n,r){let o=0,i=1,a;do{a=0,i=1;let s=this.get(o),l,d,c,h,u=!1,m=!1,p,g=i,k=1;do if(m=u,h=c,g=(o+i)/2,l=this.get(g),d=this.get(i),c=z.getccenter(s,l,d),c.interval={start:o,end:i},u=this._error(c,s,o,i)<=n,p=m&&!u,p||(k=i),u){if(i>=1){if(c.interval.end=k=1,h=c,i>1){let v={x:c.x+c.r*md(c.e),y:c.y+c.r*hd(c.e)};c.e+=z.angle({x:c.x,y:c.y},v,this.get(1))}break}i=i+(i-o)/2}else i=g;while(!p&&a++<100);if(a>=100)break;h=h||c,r.push(h),o=k}while(i<1);return r}}function mr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function yd(e){if(Array.isArray(e))return e}function vd(e){if(Array.isArray(e))return mr(e)}function bd(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function xd(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function _d(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
222
222
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wd(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
223
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kd(e,n){if(e==null)return{};var r,o,i=Cd(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],n.includes(r)||{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function Cd(e,n){if(e==null)return{};var r={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(n.includes(o))continue;r[o]=e[o]}return r}function Id(e,n){return yd(e)||xd(e,n)||Ai(e,n)||_d()}function Sd(e){return vd(e)||bd(e)||Ai(e)||wd()}function Dd(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Pd(e){var n=Dd(e,"string");return typeof n=="symbol"?n:n+""}function Ai(e,n){if(e){if(typeof e=="string")return
|
|
223
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kd(e,n){if(e==null)return{};var r,o,i=Cd(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],n.includes(r)||{}.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function Cd(e,n){if(e==null)return{};var r={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(n.includes(o))continue;r[o]=e[o]}return r}function Id(e,n){return yd(e)||xd(e,n)||Ai(e,n)||_d()}function Sd(e){return vd(e)||bd(e)||Ai(e)||wd()}function Dd(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Pd(e){var n=Dd(e,"string");return typeof n=="symbol"?n:n+""}function Ai(e,n){if(e){if(typeof e=="string")return mr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mr(e,n):void 0}}var Nd=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=(n instanceof Array?n.length?n:[void 0]:[n]).map(function(l){return{keyAccessor:l,isProp:!(l instanceof Function)}}),a=e.reduce(function(l,d){var c=l,h=d;return i.forEach(function(u,m){var p=u.keyAccessor,g=u.isProp,k;if(g){var b=h,v=b[p],w=kd(b,[p].map(Pd));k=v,h=w}else k=p(h,m);m+1<i.length?(c.hasOwnProperty(k)||(c[k]={}),c=c[k]):r?(c.hasOwnProperty(k)||(c[k]=[]),c[k].push(h)):c[k]=h}),l},{});r instanceof Function&&function l(d){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;c===i.length?Object.keys(d).forEach(function(h){return d[h]=r(d[h])}):Object.values(d).forEach(function(h){return l(h,c+1)})}(a);var s=a;return o&&(s=[],function l(d){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];c.length===i.length?s.push({keys:c,vals:d}):Object.entries(d).forEach(function(h){var u=Id(h,2),m=u[0],p=u[1];return l(p,[].concat(Sd(c),[m]))})}(a),n instanceof Array&&n.length===0&&s.length===1&&(s[0].keys=[])),s};function Td(e,n){n===void 0&&(n={});var r=n.insertAt;if(!(typeof document>"u")){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",r==="top"&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var Ad=`.force-graph-container canvas {
|
|
224
224
|
display: block;
|
|
225
225
|
user-select: none;
|
|
226
226
|
outline: none;
|
|
@@ -243,6 +243,6 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
243
243
|
cursor: -moz-grabbing;
|
|
244
244
|
cursor: -webkit-grabbing;
|
|
245
245
|
}
|
|
246
|
-
`;Td(Ad);function
|
|
246
|
+
`;Td(Ad);function hr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,o=Array(n);r<n;r++)o[r]=e[r];return o}function Md(e){if(Array.isArray(e))return e}function Ed(e){if(Array.isArray(e))return hr(e)}function Oo(e,n,r){if(Mi())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,n);var i=new(e.bind.apply(e,o));return i}function nn(e,n,r){return(n=zd(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function Mi(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Mi=function(){return!!e})()}function jd(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Od(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var o,i,a,s,l=[],d=!0,c=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(d=(o=a.call(r)).done)&&(l.push(o.value),l.length!==n);d=!0);}catch(h){c=!0,i=h}finally{try{if(!d&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw i}}return l}}function Rd(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
247
247
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fd(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
248
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oo(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,o)}return r}function Rt(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?Oo(Object(r),!0).forEach(function(o){nn(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Oo(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function tn(e,n){return Md(e)||Od(e,n)||Ei(e,n)||Rd()}function ze(e){return Ed(e)||jd(e)||Ei(e)||Fd()}function Ld(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function zd(e){var n=Ld(e,"string");return typeof n=="symbol"?n:n+""}function hr(e){"@babel/helpers - typeof";return hr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},hr(e)}function Ei(e,n){if(e){if(typeof e=="string")return mr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mr(e,n):void 0}}var $d=Ia(Sa);function Ro(e,n,r){!n||typeof r!="string"||e.filter(function(o){return!o[r]}).forEach(function(o){o[r]=$d(n(o))})}function Ud(e,n){var r=e.nodes,o=e.links,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.nodeFilter,s=a===void 0?function(){return!0}:a,l=i.onLoopError,d=l===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:l,c={};r.forEach(function(p){return c[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),o.forEach(function(p){var g=p.source,k=p.target,b=I(g),v=I(k);if(!c.hasOwnProperty(b))throw"Missing source node with id: ".concat(b);if(!c.hasOwnProperty(v))throw"Missing target node with id: ".concat(v);var w=c[b],D=c[v];w.out.push(D);function I(S){return hr(S)==="object"?n(S):S}});var h=[];m(Object.values(c));var u=Object.assign.apply(Object,[{}].concat(ze(Object.entries(c).filter(function(p){var g=tn(p,2),k=g[1];return!k.skip}).map(function(p){var g=tn(p,2),k=g[0],b=g[1];return nn({},k,b.depth)}))));return u;function m(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,b=function(){var I=p[v];if(g.indexOf(I)!==-1){var S=[].concat(ze(g.slice(g.indexOf(I))),[I]).map(function(N){return n(N.data)});return h.some(function(N){return N.length===S.length&&N.every(function(P,T){return P===S[T]})})||(h.push(S),d(S)),1}k>I.depth&&(I.depth=k,m(I.out,[].concat(ze(g),[I]),k+(I.skip?0:1)))},v=0,w=p.length;v<w;v++)b()}}var Bd=2,we=function(n,r){return r.onNeedsRedraw&&r.onNeedsRedraw()},Fo=function(n,r){if(!r.isShadow){var o=ee(r.linkDirectionalParticles);r.graphData.links.forEach(function(i){var a=Math.round(Math.abs(o(i)));a?i.__photons=ze(Array(a)).map(function(){return{}}):delete i.__photons})}},Pn=br({props:{graphData:{default:{nodes:[],links:[]},onChange:function(n,r){r.engineRunning=!1,Fo(n,r)}},dagMode:{onChange:function(n,r){!n&&(r.graphData.nodes||[]).forEach(function(o){return o.fx=o.fy=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(n){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:we},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:we},nodeColor:{default:"color",triggerUpdate:!1,onChange:we},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:we},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkColor:{default:"color",triggerUpdate:!1,onChange:we},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:we},linkWidth:{default:1,triggerUpdate:!1,onChange:we},linkCurvature:{default:0,triggerUpdate:!1,onChange:we},linkCanvasObject:{triggerUpdate:!1,onChange:we},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:we},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:we},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:we},linkDirectionalParticles:{default:0,triggerUpdate:!1,onChange:Fo},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},linkDirectionalParticleCanvasObject:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaDecay(n)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaTarget(n)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.velocityDecay(n)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(n,r,o){return o===void 0?n.forceLayout.force(r):(n.forceLayout.force(r,o),this)},d3ReheatSimulation:function(n){return n.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(n){return n.cntTicks=0,n.startTickTime=new Date,n.engineRunning=!0,this},isEngineRunning:function(n){return!!n.engineRunning},tickFrame:function(n){return!n.isShadow&&r(),i(),!n.isShadow&&a(),!n.isShadow&&s(),o(),this;function r(){n.engineRunning&&(++n.cntTicks>n.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin?(n.engineRunning=!1,n.onEngineStop()):(n.forceLayout.tick(),n.onEngineTick()))}function o(){var l=ee(n.nodeVisibility),d=ee(n.nodeVal),c=ee(n.nodeColor),h=ee(n.nodeCanvasObjectMode),u=n.ctx,m=n.isShadow/n.globalScale,p=n.graphData.nodes.filter(l);u.save(),p.forEach(function(g){var k=h(g);if(n.nodeCanvasObject&&(k==="before"||k==="replace")&&(n.nodeCanvasObject(g,u,n.globalScale),k==="replace")){u.restore();return}var b=Math.sqrt(Math.max(0,d(g)||1))*n.nodeRelSize+m;u.beginPath(),u.arc(g.x,g.y,b,0,2*Math.PI,!1),u.fillStyle=c(g)||"rgba(31, 120, 180, 0.92)",u.fill(),n.nodeCanvasObject&&k==="after"&&n.nodeCanvasObject(g,n.ctx,n.globalScale)}),u.restore()}function i(){var l=ee(n.linkVisibility),d=ee(n.linkColor),c=ee(n.linkWidth),h=ee(n.linkLineDash),u=ee(n.linkCurvature),m=ee(n.linkCanvasObjectMode),p=n.ctx,g=n.isShadow*2,k=n.graphData.links.filter(l);k.forEach(N);var b=[],v=[],w=k;if(n.linkCanvasObject){var D=[],I=[];k.forEach(function(P){return({before:b,after:v,replace:D}[m(P)]||I).push(P)}),w=[].concat(ze(b),v,I),b=b.concat(D)}p.save(),b.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();var S=Nd(w,[d,c,h]);p.save(),Object.entries(S).forEach(function(P){var T=tn(P,2),U=T[0],E=T[1],$=!U||U==="undefined"?"rgba(0,0,0,0.15)":U;Object.entries(E).forEach(function(F){var B=tn(F,2),A=B[0],Y=B[1],te=(A||1)/n.globalScale+g;Object.entries(Y).forEach(function(ie){var ke=tn(ie,2);ke[0];var De=ke[1],Ae=h(De[0]);p.beginPath(),De.forEach(function(ye){var me=ye.source,ae=ye.target;if(!(!me||!ae||!me.hasOwnProperty("x")||!ae.hasOwnProperty("x"))){p.moveTo(me.x,me.y);var q=ye.__controlPoints;q?p[q.length===2?"quadraticCurveTo":"bezierCurveTo"].apply(p,ze(q).concat([ae.x,ae.y])):p.lineTo(ae.x,ae.y)}}),p.strokeStyle=$,p.lineWidth=te,p.setLineDash(Ae||[]),p.stroke()})})}),p.restore(),p.save(),v.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();function N(P){var T=u(P);if(!T){P.__controlPoints=null;return}var U=P.source,E=P.target;if(!(!U||!E||!U.hasOwnProperty("x")||!E.hasOwnProperty("x"))){var $=Math.sqrt(Math.pow(E.x-U.x,2)+Math.pow(E.y-U.y,2));if($>0){var F=Math.atan2(E.y-U.y,E.x-U.x),B=$*T,A={x:(U.x+E.x)/2+B*Math.cos(F-Math.PI/2),y:(U.y+E.y)/2+B*Math.sin(F-Math.PI/2)};P.__controlPoints=[A.x,A.y]}else{var Y=T*70;P.__controlPoints=[E.x,E.y-Y,E.x+Y,E.y]}}}}function a(){var l=1.6,d=.2,c=ee(n.linkDirectionalArrowLength),h=ee(n.linkDirectionalArrowRelPos),u=ee(n.linkVisibility),m=ee(n.linkDirectionalArrowColor||n.linkColor),p=ee(n.nodeVal),g=n.ctx;g.save(),n.graphData.links.filter(u).forEach(function(k){var b=c(k);if(!(!b||b<0)){var v=k.source,w=k.target;if(!(!v||!w||!v.hasOwnProperty("x")||!w.hasOwnProperty("x"))){var D=Math.sqrt(Math.max(0,p(v)||1))*n.nodeRelSize,I=Math.sqrt(Math.max(0,p(w)||1))*n.nodeRelSize,S=Math.min(1,Math.max(0,h(k))),N=m(k)||"rgba(0,0,0,0.28)",P=b/l/2,T=k.__controlPoints&&jo(oe,[v.x,v.y].concat(ze(k.__controlPoints),[w.x,w.y])),U=T?function(te){return T.get(te)}:function(te){return{x:v.x+(w.x-v.x)*te||0,y:v.y+(w.y-v.y)*te||0}},E=T?T.length():Math.sqrt(Math.pow(w.x-v.x,2)+Math.pow(w.y-v.y,2)),$=D+b+(E-D-I-b)*S,F=U($/E),B=U(($-b)/E),A=U(($-b*(1-d))/E),Y=Math.atan2(F.y-B.y,F.x-B.x)-Math.PI/2;g.beginPath(),g.moveTo(F.x,F.y),g.lineTo(B.x+P*Math.cos(Y),B.y+P*Math.sin(Y)),g.lineTo(A.x,A.y),g.lineTo(B.x-P*Math.cos(Y),B.y-P*Math.sin(Y)),g.fillStyle=N,g.fill()}}}),g.restore()}function s(){var l=ee(n.linkDirectionalParticles),d=ee(n.linkDirectionalParticleSpeed),c=ee(n.linkDirectionalParticleOffset),h=ee(n.linkDirectionalParticleWidth),u=ee(n.linkVisibility),m=ee(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(u).forEach(function(g){var k=l(g);if(!(!g.hasOwnProperty("__photons")||!g.__photons.length)){var b=g.source,v=g.target;if(!(!b||!v||!b.hasOwnProperty("x")||!v.hasOwnProperty("x"))){var w=d(g),D=Math.abs(c(g)),I=g.__photons||[],S=Math.max(0,h(g)/2)/Math.sqrt(n.globalScale),N=m(g)||"rgba(0,0,0,0.28)";p.fillStyle=N;var P=g.__controlPoints?jo(oe,[b.x,b.y].concat(ze(g.__controlPoints),[v.x,v.y])):null,T=0,U=!1;I.forEach(function(E){var $=!!E.__singleHop;if(E.hasOwnProperty("__progressRatio")||(E.__progressRatio=$?w<0?1:0:(T+D)/k),!$&&T++,E.__progressRatio+=w,E.__progressRatio>=1||E.__progressRatio<0)if(!$)E.__progressRatio=E.__progressRatio%1,E.__progressRatio<0&&E.__progressRatio++;else{U=!0;return}var F=E.__progressRatio,B=P?P.get(F):{x:b.x+(v.x-b.x)*F||0,y:b.y+(v.y-b.y)*F||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(B.x,B.y,g,p,n.globalScale):(p.beginPath(),p.arc(B.x,B.y,S,0,2*Math.PI,!1),p.fill())}),U&&(g.__photons=g.__photons.filter(function(E){return!E.__singleHop||E.__progressRatio<=1&&E.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:sd().force("link",Qc()).force("charge",ld()).force("center",yc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Ro(n.graphData.nodes,ee(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Ro(n.graphData.links,ee(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(m){m.source=m[n.linkSource],m.target=m[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var o=n.forceLayout.force("link");o&&o.id(function(m){return m[n.nodeId]}).links(n.graphData.links);var i=n.dagMode&&Ud(n.graphData,function(m){return m[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,ze(Object.values(i||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*Bd*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var l=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return delete m[l]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var d=["rl","bu"].includes(n.dagMode),c=function(p){return(i[p[n.nodeId]]-a/2)*s*(d?-1:1)},h=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return m[h]=c(m)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?cd(function(m){var p=i[m[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(m){return n.dagNodeFilter(m)?1:0}):null);for(var u=0;u<n.warmupTicks&&!(n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin);u++)n.forceLayout.tick();this.resetCountdown(),n.onFinishUpdate()}});function ji(e,n){var r=e instanceof Array?e:[e],o=new n;return o._destructor&&o._destructor(),{linkProp:function(a){return{default:o[a](),onChange:function(l,d){r.forEach(function(c){return d[c][a](l)})},triggerUpdate:!1}},linkMethod:function(a){return function(s){for(var l=arguments.length,d=new Array(l>1?l-1:0),c=1;c<l;c++)d[c-1]=arguments[c];var h=[];return r.forEach(function(u){var m=s[u],p=m[a].apply(m,d);p!==m&&h.push(p)}),h.length?h[0]:this}}}}var Hd=800,Vd=4,Gd=5,Oi=ji("forceGraph",Pn),Wd=ji(["forceGraph","shadowGraph"],Pn),qd=Object.assign.apply(Object,ze(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleCanvasObject","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(e){return nn({},e,Oi.linkProp(e))})).concat(ze(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map(function(e){return nn({},e,Wd.linkProp(e))})))),Yd=Object.assign.apply(Object,ze(["d3Force","d3ReheatSimulation","emitParticle"].map(function(e){return nn({},e,Oi.linkMethod(e))})));function Wn(e){if(e.canvas){var n=e.canvas.width,r=e.canvas.height;n===300&&r===150&&(n=r=0);var o=window.devicePixelRatio;n/=o,r/=o,[e.canvas,e.shadowCanvas].forEach(function(a){a.style.width="".concat(e.width,"px"),a.style.height="".concat(e.height,"px"),a.width=e.width*o,a.height=e.height*o,!n&&!r&&a.getContext("2d").scale(o,o)});var i=ot(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-n)/2/i,(e.height-r)/2/i),e.needsRedraw=!0}}function Ri(e){var n=window.devicePixelRatio;e.setTransform(n,0,0,n,0,0)}function Lo(e,n,r){e.save(),Ri(e),e.clearRect(0,0,n,r),e.restore()}var Kd=br({props:Rt({width:{default:window.innerWidth,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(n,r){[n.nodes,n.links].every(function(i){return(i||[]).every(function(a){return!a.hasOwnProperty("__indexColor")})})&&r.colorTracker.reset(),[{type:"Node",objs:n.nodes},{type:"Link",objs:n.links}].forEach(o),r.forceGraph.graphData(n),r.shadowGraph.graphData(n);function o(i){var a=i.type,s=i.objs;s.filter(function(l){if(!l.hasOwnProperty("__indexColor"))return!0;var d=r.colorTracker.lookup(l.__indexColor);return!d||!d.hasOwnProperty("d")||d.d!==l}).forEach(function(l){l.__indexColor=r.colorTracker.register({type:a,d:l})})}},triggerUpdate:!1},backgroundColor:{onChange:function(n,r){r.canvas&&n&&(r.canvas.style.background=n)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(n,r){r.shadowGraph.nodeCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(n,r){r.shadowGraph.linkCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(n,r){r.zoom.scaleExtent([n,r.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(n,r){r.zoom.scaleExtent([r.zoom.scaleExtent()[0],n])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(n,r){r.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1},onZoom:{triggerUpdate:!1},onZoomEnd:{triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},qd),aliases:{stopAnimation:"pauseAnimation"},methods:Rt({graph2ScreenCoords:function(n,r,o){var i=ot(n.canvas);return{x:r*i.k+i.x,y:o*i.k+i.y}},screen2GraphCoords:function(n,r,o){var i=ot(n.canvas);return{x:(r-i.x)/i.k,y:(o-i.y)/i.k}},centerAt:function(n,r,o,i){if(!n.canvas)return null;if(r!==void 0||o!==void 0){var a=Object.assign({},r!==void 0?{x:r}:{},o!==void 0?{y:o}:{});return i?n.tweenGroup.add(new lo(s()).to(a,i).easing(It.Quadratic.Out).onUpdate(l).onComplete(function(){n.tweenGroup.remove(this)}).start()):l(a),this}return s();function s(){var d=ot(n.canvas);return{x:(n.width/2-d.x)/d.k,y:(n.height/2-d.y)/d.k}}function l(d){var c=d.x,h=d.y;n.zoom.translateTo(n.zoom.__baseElem,c===void 0?s().x:c,h===void 0?s().y:h),n.needsRedraw=!0}},zoom:function(n,r,o){if(!n.canvas)return null;if(r!==void 0)return o?n.tweenGroup.add(new lo({k:i()}).to({k:r},o).easing(It.Quadratic.Out).onUpdate(function(s){var l=s.k;return a(l)}).onComplete(function(){n.tweenGroup.remove(this)}).start()):a(r),this;return i();function i(){return ot(n.canvas).k}function a(s){n.zoom.scaleTo(n.zoom.__baseElem,s),n.needsRedraw=!0}},zoomToFit:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,i=arguments.length,a=new Array(i>3?i-3:0),s=3;s<i;s++)a[s-3]=arguments[s];var l=this.getGraphBbox.apply(this,a);if(l){var d={x:(l.x[0]+l.x[1])/2,y:(l.y[0]+l.y[1])/2},c=Math.max(1e-12,Math.min(1e12,(n.width-o*2)/(l.x[1]-l.x[0]),(n.height-o*2)/(l.y[1]-l.y[0])));this.centerAt(d.x,d.y,r),this.zoom(c,r)}return this},getGraphBbox:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},o=ee(n.nodeVal),i=function(l){return Math.sqrt(Math.max(0,o(l)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:i(s)}});return a.length?{x:[Br(a,function(s){return s.x-s.r}),Hr(a,function(s){return s.x+s.r})],y:[Br(a,function(s){return s.y-s.r}),Hr(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Yd),stateInit:function(){return{lastSetZoom:1,zoom:Ta(),forceGraph:new Pn,shadowGraph:new Pn().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Yl,tweenGroup:new si}},init:function(n,r){var o=this;n.innerHTML="";var i=document.createElement("div");i.classList.add("force-graph-container"),i.style.position="relative",n.appendChild(i),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),i.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),l={x:-1e12,y:-1e12},d=function(){var u=null,m=window.devicePixelRatio,p=l.x>0&&l.y>0?s.getImageData(l.x*m,l.y*m,1,1):null;return p&&(u=r.colorTracker.lookup(p.data)),u};er(r.canvas).call(Da().subject(function(){if(!r.enableNodeDrag)return null;var h=d();return h&&h.type==="Node"?h.d:null}).on("start",function(h){var u=h.subject;u.__initialDragPos={x:u.x,y:u.y,fx:u.fx,fy:u.fy},h.active||(u.fx=u.x,u.fy=u.y),r.canvas.classList.add("grabbable")}).on("drag",function(h){var u=h.subject,m=u.__initialDragPos,p=h,g=ot(r.canvas).k,k={x:m.x+(p.x-m.x)/g-u.x,y:m.y+(p.y-m.y)/g-u.y};["x","y"].forEach(function(b){return u["f".concat(b)]=u[b]=m[b]+(p[b]-m[b])/g}),!(!u.__dragged&&Gd>=Math.sqrt(Pa(["x","y"].map(function(b){return Math.pow(h[b]-m[b],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,u.__dragged=!0,r.onNodeDrag(u,k))}).on("end",function(h){var u=h.subject,m=u.__initialDragPos,p={x:u.x-m.x,y:u.y-m.y};m.fx===void 0&&(u.fx=void 0),m.fy===void 0&&(u.fy=void 0),delete u.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,u.__dragged&&(delete u.__dragged,r.onNodeDragEnd(u,p))})),r.zoom(r.zoom.__baseElem=er(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(h){return!h.button&&r.enableZoomPanInteraction&&(h.type!=="wheel"||ee(r.enableZoomInteraction)(h))&&(h.type==="wheel"||ee(r.enablePanInteraction)(h))}).on("zoom",function(h){var u=h.transform;[a,s].forEach(function(m){Ri(m),m.translate(u.x,u.y),m.scale(u.k,u.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Rt(Rt({},u),o.centerAt())),r.needsRedraw=!0}).on("end",function(h){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Rt(Rt({},h.transform),o.centerAt()))}),Wn(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){ot(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=Vd/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new gc(i),["pointermove","pointerdown"].forEach(function(h){return i.addEventListener(h,function(u){h==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=u),!r.isPointerDragging&&u.type==="pointermove"&&r.onBackgroundClick&&(u.pressure>0||r.isPointerPressed)&&(u.pointerType==="mouse"||u.movementX===void 0||[u.movementX,u.movementY].some(function(g){return Math.abs(g)>1}))&&(r.isPointerDragging=!0);var m=p(i);l.x=u.pageX-m.left,l.y=u.pageY-m.top;function p(g){var k=g.getBoundingClientRect(),b=window.pageXOffset||document.documentElement.scrollLeft,v=window.pageYOffset||document.documentElement.scrollTop;return{top:k.top+v,left:k.left+b}}},{passive:!0})}),i.addEventListener("pointerup",function(h){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var u=[h,r.pointerDownEvent];requestAnimationFrame(function(){if(h.button===0)if(r.hoverObj){var m=r["on".concat(r.hoverObj.type,"Click")];m&&m.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,u);if(h.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,u)})}},{passive:!0}),i.addEventListener("contextmenu",function(h){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(h.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var c=Na(function(){Lo(s,r.width,r.height),r.shadowGraph.linkWidth(function(u){return ee(r.linkWidth)(u)+r.linkHoverPrecision});var h=ot(r.canvas);r.shadowGraph.globalScale(h.k).tickFrame()},Hd);r.flushShadowCanvas=c.flush,(this._animationCycle=function h(){var u=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(D){return D.__photons&&D.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var m=r.isPointerDragging?null:d();if(m!==r.hoverObj){var p=r.hoverObj,g=p?p.type:null,k=m?m.type:null;if(g&&g!==k){var b=r["on".concat(g,"Hover")];b&&b(null,p.d)}if(k){var v=r["on".concat(k,"Hover")];v&&v(m.d,g===k?p.d:null)}r.tooltip.content(m&&ee(r["".concat(m.type.toLowerCase(),"Label")])(m.d)||null),r.canvas.classList[(m&&r["on".concat(k,"Click")]||!m&&r.onBackgroundClick)&&ee(r.showPointerCursor)(m==null?void 0:m.d)?"add":"remove"]("clickable"),r.hoverObj=m}u&&c()}if(u){Lo(a,r.width,r.height);var w=ot(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,w),r.forceGraph.globalScale(w).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,w)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(h)})()},update:function(n){}}),Fi={exports:{}},Jd="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Xd=Jd,Zd=Xd;function Li(){}function zi(){}zi.resetWarningCache=Li;var Qd=function(){function e(o,i,a,s,l,d){if(d!==Zd){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}e.isRequired=e;function n(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:zi,resetWarningCache:Li};return r.PropTypes=r,r};Fi.exports=Qd();var eu=Fi.exports;const x=fa(eu),En={width:x.number,height:x.number,graphData:x.shape({nodes:x.arrayOf(x.object).isRequired,links:x.arrayOf(x.object).isRequired}),backgroundColor:x.string,nodeRelSize:x.number,nodeId:x.string,nodeLabel:x.oneOfType([x.string,x.func]),nodeVal:x.oneOfType([x.number,x.string,x.func]),nodeVisibility:x.oneOfType([x.bool,x.string,x.func]),nodeColor:x.oneOfType([x.string,x.func]),nodeAutoColorBy:x.oneOfType([x.string,x.func]),onNodeHover:x.func,onNodeClick:x.func,linkSource:x.string,linkTarget:x.string,linkLabel:x.oneOfType([x.string,x.func]),linkVisibility:x.oneOfType([x.bool,x.string,x.func]),linkColor:x.oneOfType([x.string,x.func]),linkAutoColorBy:x.oneOfType([x.string,x.func]),linkWidth:x.oneOfType([x.number,x.string,x.func]),linkCurvature:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowLength:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowColor:x.oneOfType([x.string,x.func]),linkDirectionalArrowRelPos:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticles:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleSpeed:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleOffset:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleWidth:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleColor:x.oneOfType([x.string,x.func]),onLinkHover:x.func,onLinkClick:x.func,dagMode:x.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:x.number,dagNodeFilter:x.func,onDagError:x.func,d3AlphaMin:x.number,d3AlphaDecay:x.number,d3VelocityDecay:x.number,warmupTicks:x.number,cooldownTicks:x.number,cooldownTime:x.number,onEngineTick:x.func,onEngineStop:x.func,getGraphBbox:x.func},$i={zoomToFit:x.func,onNodeRightClick:x.func,onNodeDrag:x.func,onNodeDragEnd:x.func,onLinkRightClick:x.func,linkHoverPrecision:x.number,onBackgroundClick:x.func,onBackgroundRightClick:x.func,showPointerCursor:x.oneOfType([x.bool,x.func]),enablePointerInteraction:x.bool,enableNodeDrag:x.bool},Sr={showNavInfo:x.bool,nodeOpacity:x.number,nodeResolution:x.number,nodeThreeObject:x.oneOfType([x.object,x.string,x.func]),nodeThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),nodePositionUpdate:x.func,linkOpacity:x.number,linkResolution:x.number,linkCurveRotation:x.oneOfType([x.number,x.string,x.func]),linkMaterial:x.oneOfType([x.object,x.string,x.func]),linkThreeObject:x.oneOfType([x.object,x.string,x.func]),linkThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),linkPositionUpdate:x.func,linkDirectionalArrowResolution:x.number,linkDirectionalParticleResolution:x.number,linkDirectionalParticleThreeObject:x.oneOfType([x.object,x.string,x.func]),forceEngine:x.oneOf(["d3","ngraph"]),ngraphPhysics:x.object,numDimensions:x.oneOf([1,2,3])},tu=Object.assign({},En,$i,{linkLineDash:x.oneOfType([x.arrayOf(x.number),x.string,x.func]),nodeCanvasObjectMode:x.oneOfType([x.string,x.func]),nodeCanvasObject:x.func,nodePointerAreaPaint:x.func,linkCanvasObjectMode:x.oneOfType([x.string,x.func]),linkCanvasObject:x.func,linkPointerAreaPaint:x.func,linkDirectionalParticleCanvasObject:x.func,autoPauseRedraw:x.bool,minZoom:x.number,maxZoom:x.number,enableZoomInteraction:x.oneOfType([x.bool,x.func]),enablePanInteraction:x.oneOfType([x.bool,x.func]),onZoom:x.func,onZoomEnd:x.func,onRenderFramePre:x.func,onRenderFramePost:x.func});Object.assign({},En,$i,Sr,{enableNavigationControls:x.bool,controlType:x.oneOf(["trackball","orbit","fly"]),rendererConfig:x.object,extraRenderers:x.arrayOf(x.shape({render:x.func.isRequired}))});Object.assign({},En,Sr,{nodeDesc:x.oneOfType([x.string,x.func]),linkDesc:x.oneOfType([x.string,x.func])});Object.assign({},En,Sr,{markerAttrs:x.object,yOffset:x.number,glScale:x.number});const Dr=tl(Kd,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Dr.displayName="ForceGraph2D";Dr.propTypes=tu;function zo(e){return e==="contains"}function nu(e){return e==="related_to"||e==="part_of"||e==="depends_on"}function ru(e,n){var h,u;const r=new Set(e),o=new Map,i=new Map,a=new Map;for(const m of e)o.set(m,[]),i.set(m,[]),a.set(m,0);for(const m of n)!r.has(m.from)||!r.has(m.to)||m.from===m.to||(o.get(m.from).push(m.to),i.get(m.to).push(m.from),a.set(m.to,(a.get(m.to)??0)+1));let s=e.filter(m=>(a.get(m)??0)===0);if(s.length===0&&e.length>0){const m=new Map;for(const k of e)m.set(k,(((h=o.get(k))==null?void 0:h.length)??0)+(((u=i.get(k))==null?void 0:u.length)??0));const p=[...e].sort((k,b)=>(m.get(b)??0)-(m.get(k)??0)),g=m.get(p[0])??0;s=p.filter(k=>(m.get(k)??0)===g).slice(0,12)}const l=new Map,d=[];for(const m of s)l.set(m,0),d.push(m);let c=0;for(;c<d.length;){const m=d[c++],p=l.get(m)??0;for(const g of o.get(m)??[]){const k=p+1;(!l.has(g)||k<(l.get(g)??1/0))&&(l.set(g,k),d.push(g))}}for(const m of e)l.has(m)||l.set(m,0);return{childrenOf:o,parentsOf:i,roots:s,depthMap:l}}function qn(e,n,r,o,i){return i.has(e)?!1:(r.get(e)??0)<n?!0:o.has(e)}function ou(e,n,r){const o=new Set(e),i=[...e];let a=0;for(;a<i.length;){const s=i[a++];if(r(s))for(const l of n.get(s)??[])o.has(l)||(o.add(l),i.push(l))}return o}function iu(e,n){const r=[],o=new Set,i=[...n.get(e)??[]];for(;i.length>0;){const a=i.pop();if(!o.has(a)){o.add(a),r.push(a);for(const s of n.get(a)??[])i.push(s)}}return r}function au(e){const{event:n,data:r}=e;switch(n){case"task.started":return`🚀 开始生成,共 ${(r==null?void 0:r.totalDocs)??0} 篇文档`;case"doc.started":return`📄 处理中:${(r==null?void 0:r.docPath)??""}(${(r==null?void 0:r.index)??0}/${(r==null?void 0:r.total)??0})`;case"doc.completed":return`✅ ${(r==null?void 0:r.docPath)??""}(提取 ${(r==null?void 0:r.conceptsExtracted)??0} 个知识块)`;case"doc.failed":return`⚠️ ${(r==null?void 0:r.docPath)??""} 失败:${(r==null?void 0:r.error)??""}`;case"folder.started":return`📁 归纳目录:${(r==null?void 0:r.folderPath)??""}`;case"folder.completed":return`✅ 目录归纳完成:${(r==null?void 0:r.folderPath)??""}`;case"domain.started":return"🌐 开始 domain 级合成";case"domain.completed":return`✅ domain 合成完成(${(r==null?void 0:r.totalNodes)??0} 节点,${(r==null?void 0:r.totalEdges)??0} 边)`;case"task.yielded":return"⏸️ 让出资源,排队等待中...";case"task.progress":return`⏳ ${(r==null?void 0:r.phase)??"progress"} ${(r==null?void 0:r.current)??0}/${(r==null?void 0:r.total)??0}`;case"task.completed":return`🎉 生成完成!${(r==null?void 0:r.nodes)??0} 个节点,${(r==null?void 0:r.edges)??0} 条边`;case"task.failed":return`❌ 生成失败:${(r==null?void 0:r.error)??""}`;default:return`${n}${r?`: ${JSON.stringify(r)}`:""}`}}function $o(e){return e<=1?"排队中,即将开始…":`排队中,前面还有 ${e-1} 个任务`}function Yn(e,n,r){const o=Math.max(e,.2);return Math.max(r??n*.75,n)/o}function su({scope:e,resourceId:n,name:r,onOpenDocument:o}){const[i,a]=_.useState(null),[s,l]=_.useState(!0),[d,c]=_.useState(null),[h,u]=_.useState(!1),[m,p]=_.useState(!1),[g,k]=_.useState(0),[b,v]=_.useState(()=>new Set),[w,D]=_.useState(()=>new Set),[I,S]=_.useState(null),[N,P]=_.useState(null),[T,U]=_.useState(null),E=_.useRef(null),$=_.useRef(new Map),[F,B]=_.useState("not_found"),[A,Y]=_.useState([]),[te,ie]=_.useState(null),[ke,De]=_.useState(0),Ae=`graph:${e==="domain"?"domain":"dir"}:${n}`,ye=_.useRef(Ae),me=_.useRef(null),ae=F==="running"||F==="pending";_.useEffect(()=>{let C=!1;return l(!0),c(null),S(null),k(0),v(new Set),D(new Set),p(!1),U(null),$.current=new Map,(e==="domain"?io:oo)(n).then(O=>{C||(a(O),l(!1))}).catch(O=>{C||(c(O.message||"加载失败"),l(!1))}),()=>{C=!0}},[n,e]),_.useEffect(()=>(ye.current=Ae,ue(),q(),()=>ue()),[Ae]);async function q(){try{const C=await Os(ye.current);B(C.status),Y(C.logs),ie(C.progress??null),De(C.position),C.status==="completed"?(ue(),fe()):C.status==="failed"||C.status==="stale"?(ue(),C.error&&c(C.error)):(C.status==="running"||C.status==="pending")&&J()}catch{}}function J(){me.current||(me.current=window.setInterval(()=>{q()},2e3))}function ue(){me.current&&(clearInterval(me.current),me.current=null)}async function fe(){try{const M=await(e==="domain"?io:oo)(n);a(M)}catch(C){c(C.message||"加载失败")}}const Me=async()=>{if(!ae){c(null);try{const M=await(e==="domain"?js:Es)(n);ye.current=M.taskId,B(M.status),De(M.position),Y([]),ie(null),J()}catch(C){c(C.message||"生成失败")}}},Ve=_.useMemo(()=>i?h?i.nodes:i.nodes.filter(C=>C.type==="concept"):[],[i,h]),$e=_.useMemo(()=>{if(!i)return[];const C=new Set(Ve.map(M=>M.id));return i.edges.filter(M=>C.has(M.from)&&C.has(M.to))},[i,Ve]),ve=_.useMemo(()=>{const C=$e.filter(M=>zo(String(M.type))).map(M=>({from:M.from,to:M.to}));return ru(Ve.map(M=>M.id),C)},[Ve,$e]),Ue=_.useMemo(()=>ou(ve.roots,ve.childrenOf,C=>qn(C,g,ve.depthMap,b,w)),[ve,g,b,w]),{displayNodes:ct,displayEdges:Ze}=_.useMemo(()=>{const C=Ve.filter(O=>Ue.has(O.id)),M=$e.filter(O=>{if(!Ue.has(O.from)||!Ue.has(O.to))return!1;const L=String(O.type);return!!(zo(L)||m&&nu(L))});return{displayNodes:C,displayEdges:M}},[Ve,$e,Ue,m]),an=_.useMemo(()=>{const C=new Map;for(const M of Ve)C.set(M.id,M);return C},[Ve]);function bt(C){k(C),v(new Set),D(new Set)}function Pt(C){if((ve.childrenOf.get(C)??[]).length===0)return;qn(C,g,ve.depthMap,b,w)?(D(L=>new Set(L).add(C)),v(L=>{const V=new Set(L);return V.delete(C),V})):(D(L=>{const V=new Set(L);return V.delete(C),V}),v(L=>new Set(L).add(C)))}function Ut(C){const M=iu(C.id,ve.parentsOf);D(O=>{const L=new Set(O);for(const V of M)L.delete(V);return L}),v(O=>{const L=new Set(O);for(const V of M)L.add(V);return L}),S(C)}const Nt=_.useMemo(()=>{const C=ct.map(L=>{var Ee;const V=((Ee=ve.childrenOf.get(L.id))==null?void 0:Ee.length)??0,X=qn(L.id,g,ve.depthMap,b,w),K=$.current.get(L.id);let Q=K==null?void 0:K.x,de=K==null?void 0:K.y;if(Q==null||de==null){const Ne=(ve.parentsOf.get(L.id)??[]).map(be=>$.current.get(be)).find(be=>be!=null);Ne?(Q=Ne.x+(Math.random()-.5)*60,de=Ne.y+50+Math.random()*40):(Q=(Math.random()-.5)*240,de=(Math.random()-.5)*180),$.current.set(L.id,{x:Q,y:de})}return{id:L.id,name:L.label,type:L.type,val:L.type==="concept"?4:2,x:Q,y:de,__raw:L,__childCount:V,__expanded:X}}),M=new Map,O=Ze.map(L=>{const V=`${L.from}->${L.to}`,X=M.get(V)??0;M.set(V,X+1);const K=X===0?.08:.08+X*.14;return{source:L.from,target:L.to,type:L.type,curvature:K,__raw:L}});return{nodes:C,links:O}},[ct,Ze,ve,g,b,w]),Qe=_.useMemo(()=>{const C=Math.max(1,ct.length);return{linkDistance:Math.min(140,70+Math.sqrt(C)*8),chargeStrength:Math.max(-420,-120-C*6)}},[ct.length]),re=_.useRef(null),[xt,Pe]=_.useState({width:800,height:600});_.useEffect(()=>{if(!re.current)return;const C=()=>{re.current&&Pe({width:re.current.clientWidth,height:re.current.clientHeight})};C();const M=new ResizeObserver(C);return M.observe(re.current),()=>M.disconnect()},[]),_.useEffect(()=>{if(!i||s)return;const C=window.setTimeout(()=>{var M,O;(O=(M=E.current)==null?void 0:M.zoomToFit)==null||O.call(M,400,80)},450);return()=>window.clearTimeout(C)},[i,h,m,s,xt.width,xt.height,g,Ue]),_.useEffect(()=>{var L,V,X,K;if(!i||s)return;const C=E.current;if(!C)return;const M=C.d3Force("charge");(L=M==null?void 0:M.strength)==null||L.call(M,Qe.chargeStrength);const O=C.d3Force("link");(V=O==null?void 0:O.distance)==null||V.call(O,Qe.linkDistance),(X=O==null?void 0:O.strength)==null||X.call(O,.35),(K=C.d3ReheatSimulation)==null||K.call(C)},[Qe,i,s,h,Nt]);const pe=C=>(ve.childrenOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),dt=C=>(ve.parentsOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),ut=C=>{if(!i)return[];const M=new Set,O=[],L=[C];for(;L.length>0;){const V=L.shift();if(M.has(V))continue;M.add(V);const X=i.nodes.find(Q=>Q.id===V);(X==null?void 0:X.type)==="doc"&&O.push(X);const K=i.edges.filter(Q=>Q.from===V).map(Q=>Q.to);L.push(...K)}return O};return f.jsxs("div",{className:"graph-page",children:[f.jsxs("div",{className:"graph-toolbar",children:[f.jsxs("div",{className:"graph-title",children:[f.jsx("span",{className:"graph-icon",children:"🕸️"}),f.jsxs("span",{children:["知识图谱 — ",r]})]}),f.jsxs("div",{className:"graph-actions",children:[f.jsxs("div",{className:"graph-depth-btns",children:[f.jsx("button",{type:"button",className:`graph-btn ${g===1?"graph-btn-active":""}`,onClick:()=>bt(1),title:"展开到深度 1(顶层 + 直接子)",children:"展开一级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===2?"graph-btn-active":""}`,onClick:()=>bt(2),title:"展开到深度 2",children:"展开到二级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===0&&b.size===0?"graph-btn-active":""}`,onClick:()=>bt(0),title:"仅顶层",children:"全部收起"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:m,onChange:C=>p(C.target.checked)}),f.jsx("span",{children:"显示其它关系"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:h,onChange:C=>u(C.target.checked)}),f.jsx("span",{children:"显示 doc 节点"})]}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?f.jsxs(f.Fragment,{children:[f.jsx($n,{size:14,className:"spin"}),F==="pending"?$o(ke):"生成中..."]}):f.jsxs(f.Fragment,{children:[f.jsx(Ja,{size:14}),i?"重新生成":"生成图谱"]})})]})]}),f.jsxs("div",{className:"graph-canvas-container",ref:re,children:[s&&f.jsxs("div",{className:"graph-loading",children:[f.jsx($n,{size:32,className:"spin"}),f.jsx("p",{children:"加载图谱中..."})]}),d&&!s&&f.jsxs("div",{className:"graph-error",children:[f.jsxs("p",{children:["❌ ",d]}),f.jsx("button",{className:"graph-btn",onClick:Me,children:"重试生成"})]}),!s&&!d&&!i&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"🕸️"}),f.jsx("h3",{children:"还没有知识图谱"}),f.jsx("p",{className:"muted",children:"点击右上角「生成图谱」开始构建"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?"生成中...":"生成图谱"})]}),ae&&f.jsxs("div",{className:"graph-progress-panel",children:[f.jsxs("div",{className:"graph-progress-header",children:[f.jsx($n,{size:16,className:"spin"}),f.jsx("span",{children:F==="pending"?$o(ke):te?`正在生成(${te.current}/${te.total})`:"正在生成..."})]}),te&&te.total>0&&f.jsx("div",{className:"graph-progress-bar",children:f.jsx("div",{className:"graph-progress-bar-fill",style:{width:`${te.current/te.total*100}%`}})}),f.jsx("div",{className:"graph-progress-logs",children:A.slice(-10).map((C,M)=>f.jsx("div",{className:`graph-log-item graph-log-${C.level}`,children:f.jsx("span",{className:"graph-log-event",children:au(C)})},M))})]}),!s&&!d&&i&&i.nodes.length===0&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"📄"}),f.jsx("h3",{children:"图谱已生成"}),f.jsx("p",{className:"muted",children:"当前内容暂未提取到可关联的知识概念"}),f.jsx("p",{className:"muted",style:{fontSize:13,marginTop:4},children:"内容较少或结构较简单时可能出现这种情况,补充更多内容后可以重新生成"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,style:{marginTop:12},children:"重新生成"})]}),!s&&!d&&i&&i.nodes.length>0&&f.jsx(Dr,{ref:E,width:xt.width,height:xt.height,graphData:Nt,nodeId:"id",nodeVal:C=>C.type==="concept"?6:3,nodeColor:C=>C.type==="concept"?"#8b5cf6":"#06b6d4",nodeCanvasObjectMode:()=>"replace",nodeCanvasObject:(C,M,O)=>{const L=String(C.name??""),V=C.type==="concept",X=C.id===(I==null?void 0:I.id)||C.id===N,K=(V?9:5)/Math.max(O,.35);if(M.beginPath(),M.arc(C.x,C.y,K,0,2*Math.PI),M.fillStyle=V?"#8b5cf6":"#06b6d4",M.globalAlpha=X||!I?1:.35,M.fill(),M.strokeStyle="#ffffff",M.lineWidth=1.5/Math.max(O,.35),M.stroke(),M.globalAlpha=1,C.__childCount>0){const et=7/Math.max(O,.4),Ie=C.x+K+et*.9,Tt=C.y-K*.2;M.beginPath(),M.arc(Ie,Tt,et,0,2*Math.PI),M.fillStyle=C.__expanded?"#475569":"#6366f1",M.fill(),M.fillStyle="#ffffff";const ft=C.__expanded?"−":"+",_t=Math.max(10/O,9/O);M.font=`700 ${_t}px -apple-system, BlinkMacSystemFont, sans-serif`,M.textAlign="center",M.textBaseline="middle",M.fillText(ft,Ie,Tt+.5/O)}if(!(X||V&&O>=.55||!V&&O>=1.4))return;const de=Math.max(10/O,V?11/O:9/O),Ee=V?O<.9?8:16:10,Ne=L.length>Ee?L.slice(0,Ee)+"…":L;M.font=`${V?"600":"400"} ${de}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="top";const be=C.y+K+3/O,he=M.measureText(Ne).width,ge=4/O,Ce=2/O;M.fillStyle="rgba(255,255,255,0.88)",M.fillRect(C.x-he/2-ge,be-Ce,he+ge*2,de+Ce*2),M.fillStyle=V?"#1e1b4b":"#0c4a6e",M.fillText(Ne,C.x,be)},linkDirectionalArrowLength:C=>{var L,V,X,K,Q,de;const M=((V=(L=E.current)==null?void 0:L.zoom)==null?void 0:V.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?13:11,9)},linkDirectionalArrowRelPos:.86,linkDirectionalArrowColor:()=>"#475569",linkWidth:C=>{var L,V,X,K,Q,de;const M=((V=(L=E.current)==null?void 0:L.zoom)==null?void 0:V.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?3.5:3,2.25)},linkColor:C=>{var O,L,V,X;return((O=C.source)==null?void 0:O.id)===N||((L=C.target)==null?void 0:L.id)===N||((V=C.source)==null?void 0:V.id)===(I==null?void 0:I.id)||((X=C.target)==null?void 0:X.id)===(I==null?void 0:I.id)?"#334155":"#64748b"},linkCurvature:C=>C.curvature??.12,linkCanvasObjectMode:()=>"after",linkCanvasObject:(C,M,O)=>{if(O<.45)return;const L=C.source,V=C.target;if(L.x==null||L.y==null||V.x==null||V.y==null)return;const K={contains:"包含",related_to:"相关",part_of:"属于",depends_on:"依赖"}[C.type]||String(C.type??""),Q=typeof C.curvature=="number"?C.curvature:.12,de=(L.x+V.x)/2,Ee=(L.y+V.y)/2,Ne=de-(V.y-L.y)*Q,be=Ee+(V.x-L.x)*Q,he=.5,ge=1-he,Ce=ge*ge*L.x+2*ge*he*Ne+he*he*V.x,et=ge*ge*L.y+2*ge*he*be+he*he*V.y,Ie=2*ge*(Ne-L.x)+2*he*(V.x-Ne),Tt=2*ge*(be-L.y)+2*he*(V.y-be);let ft=Math.atan2(Tt,Ie);(ft>Math.PI/2||ft<-Math.PI/2)&&(ft+=Math.PI);const _t=Yn(O,11,9);M.save(),M.translate(Ce,et),M.rotate(ft),M.font=`500 ${_t}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="middle";const sn=M.measureText(K).width,ln=3/O,cn=1.5/O;M.fillStyle="rgba(255,255,255,0.92)",M.fillRect(-sn/2-ln,-_t/2-cn,sn+ln*2,_t+cn*2),M.fillStyle="#475569",M.fillText(K,0,0),M.restore()},onZoom:()=>{var C,M;(M=(C=E.current)==null?void 0:C.refresh)==null||M.call(C)},cooldownTicks:120,cooldownTime:4e3,d3AlphaDecay:.022,d3VelocityDecay:.3,onNodeClick:(C,M)=>{var L,V;const O=C.__childCount??0;if(O>0&&E.current&&re.current){const X=re.current.getBoundingClientRect(),K=E.current.screen2GraphCoords(M.clientX-X.left,M.clientY-X.top),Q=((V=(L=E.current).zoom)==null?void 0:V.call(L))??1,de=(C.type==="concept"?9:5)/Math.max(Q,.35),Ee=7/Math.max(Q,.4),Ne=C.x+de+Ee*.9,be=C.y-de*.2,he=K.x-Ne,ge=K.y-be;if(he*he+ge*ge<=(Ee+4/Q)**2){Pt(String(C.id)),S(C.__raw);return}}S(C.__raw),O>0&&!C.__expanded&&Pt(String(C.id))},onNodeHover:C=>{var O;if(!C){P(null),U(null);return}P(String(C.id));const M=String(C.name??((O=C.__raw)==null?void 0:O.label)??"");if(E.current&&M){const L=E.current.graph2ScreenCoords(C.x,C.y);U({text:M,x:L.x,y:L.y})}else U({text:M,x:0,y:0})},onBackgroundClick:()=>{S(null),P(null),U(null)},onEngineTick:()=>{var M,O;const C=(O=(M=E.current)==null?void 0:M.graphData)==null?void 0:O.call(M);if(C!=null&&C.nodes)for(const L of C.nodes)L.id!=null&&L.x!=null&&L.y!=null&&$.current.set(String(L.id),{x:L.x,y:L.y})},onEngineStop:()=>{var C,M;(M=(C=E.current)==null?void 0:C.zoomToFit)==null||M.call(C,300,72)},linkHoverPrecision:8,enableNodeDrag:!0,enableZoomInteraction:!0,enablePanInteraction:!0,nodePointerAreaPaint:(C,M,O,L)=>{const V=(C.type==="concept"?14:9)/Math.max(L,.35);if(O.fillStyle=M,O.beginPath(),O.arc(C.x,C.y,V,0,2*Math.PI),O.fill(),C.__childCount>0){const X=10/Math.max(L,.4),K=(C.type==="concept"?9:5)/Math.max(L,.35),Q=C.x+K+X*.7,de=C.y-K*.2;O.beginPath(),O.arc(Q,de,X,0,2*Math.PI),O.fill()}}}),T&&f.jsx("div",{className:"graph-node-tooltip",style:{left:T.x,top:T.y},children:T.text})]}),I&&f.jsxs("div",{className:"graph-detail-panel",children:[f.jsxs("div",{className:"graph-detail-header",children:[f.jsx("span",{className:`graph-node-type-badge ${I.type}`,children:I.type==="concept"?"概念":"知识要点"}),f.jsx("button",{type:"button",className:"graph-close-btn","aria-label":"关闭",onClick:()=>S(null),children:f.jsx(Ft,{size:18,strokeWidth:2.25})})]}),f.jsx("h3",{className:"graph-detail-title",children:I.label}),I.definition&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"定义"}),f.jsx("p",{children:I.definition})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"描述"}),f.jsx("p",{children:I.description})]}),f.jsx("div",{className:"graph-detail-meta",children:f.jsxs("span",{children:["置信度: ",(I.confidence*100).toFixed(0),"%"]})}),I.type==="concept"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["包含的子节点 (",pe(I.id).length,")"]}),f.jsxs("ul",{className:"graph-node-list",children:[pe(I.id).slice(0,20).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id)),pe(I.id).length>20&&f.jsxs("li",{className:"muted",children:["还有 ",pe(I.id).length-20," 个..."]})]})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["相关文章 (",ut(I.id).length,")"]}),f.jsx("ul",{className:"graph-doc-list",children:Array.from(new Set(ut(I.id).flatMap(C=>{var M;return((M=C.sources)==null?void 0:M.map(O=>({documentId:O.documentId,title:O.title||O.documentId,heading:O.heading})))||[]}))).slice(0,10).map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]})]}),I.type==="doc"&&I.sources&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"来源"}),f.jsx("ul",{className:"graph-doc-list",children:I.sources.map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title||C.documentId,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]}),dt(I.id).length>0&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["所属概念 (",dt(I.id).length,")"]}),f.jsx("ul",{className:"graph-node-list",children:dt(I.id).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id))})]})]})]})}function lu(e){var l;const{t:n}=lt(),r=_.useRef(null);_.useEffect(()=>{function d(h){r.current&&!r.current.contains(h.target)&&e.onClose()}function c(h){h.key==="Escape"&&e.onClose()}return window.addEventListener("mousedown",d),window.addEventListener("keydown",c),()=>{window.removeEventListener("mousedown",d),window.removeEventListener("keydown",c)}},[e.onClose]);const o=e.node.type==="folder";let i="";if(e.node.type==="folder"){const d=e.node;i=((l=d.folderDisplayName)==null?void 0:l.trim())||d.path||""}const a=o?i?n("newDocIn",{name:i}):n("newDocAtRoot"):n("newDocBeside"),s=o?i?n("newFolderIn",{name:i}):n("newFolderAtRoot"):n("newFolderBeside");return f.jsxs("div",{ref:r,className:"mdocs-context-menu card",style:{left:e.x,top:e.y},children:[f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateChild(d),e.onClose()},children:a}),f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateFolder(d),e.onClose()},children:s}),f.jsx("button",{type:"button",className:"mdocs-context-item danger",onClick:()=>{e.node.type==="document"?e.onDeleteDocument(e.node):e.onDeleteFolder(e.node),e.onClose()},children:e.node.type==="folder"?n("deleteFolder",{name:i||e.node.name}):n("deleteItem",{name:e.node.name})})]})}function cu({domains:e,value:n,onChange:r,ariaLabel:o,localizeName:i,onDomainsChange:a}){const[s,l]=_.useState(!1),[d,c]=_.useState(e),h=_.useRef(null),u=_.useRef(null);_.useEffect(()=>{c(e)},[e]);const m=d.find(b=>b.domainId===n),p=(m==null?void 0:m.permission)==="private";_.useEffect(()=>{if(!s)return;const b=v=>{var w,D;!((w=h.current)!=null&&w.contains(v.target))&&!((D=u.current)!=null&&D.contains(v.target))&&l(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s]),_.useEffect(()=>{if(!s)return;const b=v=>{var w;v.key==="Escape"&&(l(!1),(w=h.current)==null||w.focus())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[s]);function g(b){r(b),l(!1)}function k(){if(s){l(!1);return}l(!0),ni().then(b=>{c(b),a==null||a(b)})}return f.jsxs("div",{className:"mdocs-domain-select-wrapper",children:[f.jsxs("button",{ref:h,type:"button",className:"mdocs-domain-select-trigger","aria-label":o,"aria-expanded":s,"aria-haspopup":"listbox",onClick:k,children:[f.jsx("span",{className:"mdocs-domain-select-text",children:m?i(m.domainName):""}),p&&f.jsxs("svg",{className:"mdocs-domain-lock",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),f.jsx("svg",{className:"mdocs-domain-select-chevron"+(s?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"1.5",children:f.jsx("path",{d:"M1 1l4 4 4-4"})})]}),s&&f.jsx("div",{ref:u,className:"mdocs-domain-select-menu card",role:"listbox","aria-label":o,children:d.map(b=>f.jsxs("button",{type:"button",className:"mdocs-domain-select-option"+(b.domainId===n?" active":""),role:"option","aria-selected":b.domainId===n,onClick:()=>g(b.domainId),children:[f.jsx("span",{children:i(b.domainName)}),b.permission==="private"&&f.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})]},b.domainId))})]})}const Ui="data:image/svg+xml,%3csvg%20fill='%234D6BFE'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%3e%3c/path%3e%3c/svg%3e",Ke={left:12,bottom:64},Pr="mdocs.agentFabPosition",Nn=36,Uo=3;function Nr(e){const r=Math.max(8,window.innerWidth-Nn-8),o=Math.max(8,window.innerHeight-Nn-8);return{left:Math.min(r,Math.max(8,e.left)),bottom:Math.min(o,Math.max(8,e.bottom))}}function du(e,n,r,o){const i=e-r,a=n-o,s=window.innerHeight-a-Nn;return Nr({left:i,bottom:s})}function uu(){try{const e=localStorage.getItem(Pr);if(!e)return Ke;const n=JSON.parse(e);return typeof n.left!="number"||typeof n.bottom!="number"?Ke:Nr({left:n.left,bottom:n.bottom})}catch{return Ke}}function Bo(e){localStorage.setItem(Pr,JSON.stringify(e))}function fu(e){return e.left===Ke.left&&e.bottom===Ke.bottom}function mu(e){const r=Math.min(480,window.innerWidth-72);let o=e.left+Nn+8;o+r>window.innerWidth-8&&(o=e.left-8-r),o=Math.max(8,o);const i=Math.max(8,e.bottom-8);return{left:o,bottom:i}}function hu(e){const{t:n}=lt(),r=!!e.disableDrag,[o,i]=_.useState(!1),[a,s]=_.useState(e.position),l=_.useRef(null),d=_.useRef(null),c=_.useRef(a),h=_.useRef(e.onPositionChange),u=_.useRef(e.onToggle);c.current=a,h.current=e.onPositionChange,u.current=e.onToggle;const m=_.useRef(null),p=_.useRef(0),g=_.useRef(null);_.useEffect(()=>{m.current||(s(e.position),c.current=e.position)},[e.position]),_.useEffect(()=>{function D(){const I=Nr(c.current);I.left===c.current.left&&I.bottom===c.current.bottom||(c.current=I,s(I),h.current(I),Bo(I))}return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),_.useEffect(()=>{function D(){p.current=0;const N=g.current;if(!N)return;g.current=null,c.current=N,s(N);const P=d.current;P&&(P.style.left=`${N.left}px`,P.style.bottom=`${N.bottom}px`),h.current(N)}function I(N){const P=m.current;if(!P||N.pointerId!==P.pointerId)return;N.preventDefault();const T=N.clientX-P.startX,U=N.clientY-P.startY;!P.didMove&&T*T+U*U>=Uo*Uo&&(P.didMove=!0,i(!0)),P.didMove&&(g.current=du(N.clientX,N.clientY,P.offsetX,P.offsetY),p.current||(p.current=requestAnimationFrame(D)))}function S(N){var T;const P=m.current;if(!(!P||N.pointerId!==P.pointerId)){m.current=null,i(!1),p.current&&(cancelAnimationFrame(p.current),p.current=0),g.current&&(c.current=g.current,s(g.current),g.current=null);try{(T=l.current)==null||T.releasePointerCapture(N.pointerId)}catch{}if(P.didMove){const U=c.current;h.current(U),Bo(U);return}u.current()}}return window.addEventListener("pointermove",I,{passive:!1}),window.addEventListener("pointerup",S),window.addEventListener("pointercancel",S),()=>{window.removeEventListener("pointermove",I),window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),p.current&&cancelAnimationFrame(p.current)}},[]);function k(D){if(D.button!==0)return;if(r){D.preventDefault(),e.onToggle();return}D.preventDefault();const I=D.currentTarget.getBoundingClientRect();m.current={pointerId:D.pointerId,offsetX:D.clientX-I.left,offsetY:D.clientY-I.top,startX:D.clientX,startY:D.clientY,didMove:!1},D.currentTarget.setPointerCapture(D.pointerId)}function b(){c.current=Ke,s(Ke),e.onPositionChange(Ke),localStorage.removeItem(Pr)}const v=r?Ke:a,w=!r&&!fu(a);return f.jsxs("div",{ref:d,className:"mdocs-agent-fab-wrap"+(o?" dragging":""),style:{left:v.left,bottom:v.bottom},children:[f.jsx("button",{ref:l,type:"button",className:"mdocs-agent-fab"+(e.open?" open":"")+(o?" dragging":"")+(r?" mdocs-agent-fab--nodrag":""),"aria-label":n("agentFabOpen"),"aria-expanded":e.open,onPointerDown:k,children:f.jsx("img",{src:Ui,alt:"",draggable:!1})}),w&&f.jsx("button",{type:"button",className:"mdocs-agent-fab-reset",onClick:b,"aria-label":n("agentFabReset"),children:n("agentFabReset")})]})}function pu(){const[e,n]=_.useState(()=>typeof window>"u"?Ke:uu());return[e,n]}function gu({title:e,message:n,onClose:r}){const{t:o}=lt();return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:i=>{i.target===i.currentTarget&&r()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsx("div",{className:"mdocs-message-dialog-actions",children:f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("gotIt")})})]})})}function Bi({title:e,message:n,confirmLabel:r="确定",cancelLabel:o="取消",onConfirm:i,onCancel:a,busy:s=!1,danger:l=!1}){return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:d=>{d.target===d.currentTarget&&!s&&a()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsxs("div",{className:"mdocs-message-dialog-actions",style:{gap:8},children:[f.jsx("button",{type:"button",onClick:a,disabled:s,children:o}),f.jsx("button",{type:"button",className:l?"danger":"primary",onClick:i,disabled:s,children:s?"…":r})]})]})})}const Ho={"relative path is required":"pathRequired","path must be relative":"pathMustBeRelative","use forward slashes":"useForwardSlashes","path must not contain ..":"pathNoDotDot","document path must end with .md":"pathMustEndWithMd","path contains unsupported characters":"pathUnsupportedChars","path escapes docs root":"pathEscapesRoot"},Hi={"enter a folder name":"enterFolderName","use a single name, not a path":"singleNameNotPath","invalid folder name":"invalidFolderName","folder name is too long":"folderNameTooLong","enter a file name":"enterFileName","use a file name, not a path":"singleFileNameNotPath","invalid file name":"invalidFileName","file name is too long":"fileNameTooLong"};function yt(e,n){if(n instanceof Je)return n.message;if(n instanceof pt){const r=Ho[n.message];return r?e(r):n.message}if(n instanceof Error){const r=Ho[n.message]??Hi[n.message];return r?e(r):n.message}return String(n)}function yu(e,n,r){if(e==="Default")return r("defaultDomain");const o="个人域";return e.endsWith(o)?e.slice(0,-o.length)+r("personalDomainSuffix"):e}function Kf(e,n){return e==="public"?n("domainPublic"):e==="restricted"?n("domainRestricted"):e==="private"?n("domainPrivate"):e}function vn(e){const n=e.lastIndexOf("/");return n===-1?"":e.slice(0,n)}function vu(e){return JSON.stringify({root:{children:[{children:[{detail:0,format:0,mode:"normal",text:e,type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"heading",tag:"h1",version:1}],direction:"ltr",type:"root",version:1}})}function Vo(e,n){const r=e.trim(),o=n.trim();return o?r?`${r}/${o}`:o:r}function Vi(e,n=new Set){for(const r of e)r.type==="document"?n.add(r.path):(r.descDocumentId&&n.add(ls(r.path)),Vi(r.children,n));return n}function pr(e,n){for(const r of e){if(r.type==="folder"&&r.path===n)return r.documentId;if(r.type==="folder"){const o=pr(r.children,n);if(o)return o}}return null}function Go(e,n){const r=Hi[n];return r?e(r):n}function bu(e){const{tree:n,currentDomainId:r,selectedCreateParentPath:o,t:i,onDocCreated:a,refreshTree:s}=e,[l,d]=_.useState(null),[c,h]=_.useState(null),[u,m]=_.useState(!1),p=_.useRef(null);_.useEffect(()=>{if(!l)return;const v=window.setTimeout(()=>{var w;return(w=p.current)==null?void 0:w.focus()},0);return()=>window.clearTimeout(v)},[l]);function g(v){const w=v!==void 0;h(null),d({kind:"document",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:"untitled.md"})}function k(v){const w=v!==void 0;h(null),d({kind:"folder",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:""})}async function b(v){if(v.preventDefault(),!l)return;m(!0),h(null);const w=Vi(n),D=l.parentMode==="selection"?o:l.parentPath;try{if(l.kind==="document"){const T=fs(l.draft);if(!T.ok){h(Go(i,T.message));return}const U=T.displayFile,E=U.replace(/\.md$/i,"");let $;try{$=ms(Vo(D,U))}catch(A){h(yt(i,A));return}if(w.has($)){h(i("pathExists"));return}const F=D?pr(n,D)??void 0:void 0,B=await ti({fileName:U,displayName:E,content:vu(E),domainId:r,parentId:F});await s(),a(B),d(null);return}const I=us(l.draft);if(!I.ok){h(Go(i,I.message));return}const S=tr(I.display);if(!S){h(i("invalidFolderName"));return}const N=Vo(D,S);if(w.has(N)){h(i("folderExists"));return}const P=D?pr(n,D)??void 0:void 0;await Ss({name:S,parentId:P,domainId:r}),await s(),d(null)}catch(I){h(yt(i,I))}finally{m(!1)}}return{createModal:l,setCreateModal:d,createModalError:c,createModalBusy:u,createModalInputRef:p,openNewDocumentModal:g,openNewFolderModal:k,submitCreateModal:b}}const Wo="(max-width: 768px)";function xu(){const[e,n]=_.useState(()=>typeof window<"u"?window.matchMedia(Wo).matches:!1);return _.useEffect(()=>{const r=window.matchMedia(Wo),o=()=>n(r.matches);return o(),r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),e}function _u({open:e,onClose:n,onResolve:r}){const{t:o}=lt();return e?f.jsx("div",{className:"mdocs-conflict-modal-root",role:"alertdialog","aria-modal":"true",children:f.jsxs("div",{className:"mdocs-conflict-modal-panel",children:[f.jsx("h2",{className:"mdocs-conflict-modal-title",children:o("conflictTitle")}),f.jsx("p",{className:"mdocs-conflict-modal-body",children:o("conflictBody")}),f.jsxs("div",{className:"mdocs-conflict-modal-actions",children:[f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("conflictResolve")}),f.jsx("button",{type:"button",className:"secondary",onClick:n,children:o("conflictClose")})]})]})}):null}function wu({documentId:e,visitorId:n,visitorName:r,documentOwnerId:o,onClose:i}){const[a,s]=_.useState([]),[l,d]=_.useState(""),[c,h]=_.useState(null),[u,m]=_.useState(!0),[p,g]=_.useState(!1),[k,b]=_.useState(null),[v,w]=_.useState(null),[D,I]=_.useState(360),[S,N]=_.useState(80),P=_.useRef(!1),T=_.useRef(!1),U=300,E=80,$=_.useRef(null);function F(){const q=$.current;if(!q)return;q.style.height="auto";const J=q.scrollHeight,ue=Math.min(Math.max(J,E),U);q.style.height=`${ue}px`,N(ue)}_.useEffect(()=>{setTimeout(()=>F(),0)},[c]);function B(q){return n?q.visitorId===n||o===n:!1}const{rootComments:A,repliesByParentId:Y,totalCount:te}=_.useMemo(()=>{const q=[],J=new Map;let ue=0;for(const fe of a)fe.isDeleted||(ue++,fe.parentId?(J.has(fe.parentId)||J.set(fe.parentId,[]),J.get(fe.parentId).push(fe)):q.push(fe));return{rootComments:q,repliesByParentId:J,totalCount:ue}},[a]),ie=_.useRef(e);_.useEffect(()=>{ie.current=e,d(""),h(null),w(null),ke()},[e]);async function ke(){const q=ie.current;m(!0);try{const J=await Ts(e);if(ie.current!==q)return;s(J.comments)}catch(J){if(ie.current!==q)return;w("加载评论失败"),console.error("Failed to load comments:",J)}finally{ie.current===q&&m(!1)}}async function De(){var q;if(!(!l.trim()||!n)){g(!0),w(null);try{await As(e,{content:l,parentId:(c==null?void 0:c.commentId)||null,replyToVisitorId:c?((q=a.find(J=>J.commentId===c.commentId))==null?void 0:q.visitorId)??null:null,replyToVisitorName:(c==null?void 0:c.visitorName)||null}),d(""),h(null),setTimeout(()=>F(),0),await ke()}catch(J){w(J.message||"发表失败,请重试")}finally{g(!1)}}}async function Ae(q){w(null);try{await Ms(e,q),await ke()}catch(J){w(J.message||"删除失败,请重试")}finally{b(null)}}function ye(q){const J=Date.now()-new Date(q).getTime(),ue=Math.floor(J/6e4),fe=Math.floor(J/36e5),Me=Math.floor(J/864e5);return ue<1?"刚刚":ue<60?`${ue}分钟前`:fe<24?`${fe}小时前`:`${Me}天前`}function me(q){P.current=!0,q.preventDefault()}function ae(q){T.current=!0,q.preventDefault(),document.body.style.userSelect="none",document.body.style.cursor="row-resize"}return _.useEffect(()=>{function q(ue){if(P.current){const fe=Math.max(280,Math.min(600,window.innerWidth-ue.clientX));I(fe)}if(T.current){const fe=-ue.movementY;N(Me=>Math.max(60,Math.min(600,Me+fe)))}}function J(){P.current=!1,T.current=!1,document.body.style.userSelect="",document.body.style.cursor=""}return window.addEventListener("mousemove",q),window.addEventListener("mouseup",J),()=>{window.removeEventListener("mousemove",q),window.removeEventListener("mouseup",J)}},[]),f.jsxs("div",{className:"mdocs-comments-panel",style:{width:D},children:[f.jsx("div",{className:"mdocs-comments-resize-handle",onMouseDown:me}),f.jsxs("div",{className:"mdocs-comments-header",children:[f.jsxs("h3",{style:{margin:0,fontSize:"1rem",display:"flex",alignItems:"center",gap:6},children:[f.jsx(Ga,{size:18}),"评论 (",te,")"]}),f.jsx("button",{type:"button",onClick:i,className:"mdocs-comments-close-btn",children:f.jsx(Ft,{size:18})})]}),v&&f.jsxs("div",{className:"mdocs-comments-error",children:[v,f.jsx("button",{type:"button",onClick:()=>w(null),children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comments-list",children:u?f.jsx("div",{className:"mdocs-comments-empty",children:"加载中..."}):A.length===0?f.jsx("div",{className:"mdocs-comments-empty",children:"暂无评论,来发表第一条吧~"}):A.map(q=>f.jsxs("div",{className:"mdocs-comment-root",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar",children:q.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:q.visitorName}),f.jsx("span",{className:"mdocs-comment-time",children:ye(q.createdAt)}),B(q)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(q.commentId),title:"删除",children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comment-content",children:q.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:q.visitorName}),children:"回复"}),(Y.get(q.commentId)??[]).length>0&&f.jsx("div",{className:"mdocs-comment-replies",children:(Y.get(q.commentId)??[]).map(J=>f.jsxs("div",{className:"mdocs-comment-reply",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar mdocs-comment-avatar-small",children:J.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:J.visitorName}),J.replyToVisitorName&&f.jsxs("span",{className:"mdocs-comment-reply-to",children:["回复 ",J.replyToVisitorName]}),f.jsx("span",{className:"mdocs-comment-time",children:ye(J.createdAt)}),B(J)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(J.commentId),title:"删除",children:f.jsx(Ft,{size:12})})]}),f.jsx("div",{className:"mdocs-comment-content",children:J.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:J.visitorName}),children:"回复"})]},J.commentId))})]},q.commentId))}),n?f.jsxs("div",{className:"mdocs-comments-input-wrapper",children:[f.jsx("div",{className:"mdocs-comments-input-drag-handle",onMouseDown:ae}),c&&f.jsxs("div",{className:"mdocs-comment-reply-notice",children:[f.jsxs("span",{children:["回复 ",f.jsx("span",{className:"mdocs-comment-reply-to-name",children:c.visitorName})]}),f.jsxs("button",{type:"button",onClick:()=>h(null),children:[f.jsx(Ft,{size:14})," 取消"]})]}),f.jsx("textarea",{ref:$,value:l,onChange:q=>{d(q.target.value.slice(0,512)),setTimeout(()=>F(),0)},placeholder:c?`回复 ${c.visitorName}...`:"发表评论...",className:"mdocs-comments-input",style:{height:S},maxLength:512,onKeyDown:q=>{q.key==="Enter"&&(q.metaKey||q.ctrlKey)&&De()}}),f.jsxs("div",{className:`mdocs-comments-char-count${l.length>=460?" mdocs-char-count--warn":""}`,children:[l.length,"/512"]}),f.jsx("div",{className:"mdocs-comments-input-actions",children:f.jsx("button",{type:"button",className:"mdocs-btn-primary",onClick:De,disabled:p||!l.trim(),children:p?"发表中...":"发表"})})]}):f.jsx("div",{className:"mdocs-comments-input-wrapper",style:{textAlign:"center"},children:f.jsx("div",{style:{color:"#666",fontSize:"0.9rem"},children:"请先创建访客身份以发表评论"})}),k&&f.jsx(Bi,{title:"删除评论",message:"确定要删除这条评论吗?",confirmLabel:"删除",danger:!0,onConfirm:()=>Ae(k),onCancel:()=>b(null)})]})}const ku="mdocs-drafts",Cu=4,Se="drafts",Lt={DOC_NOT_FOUND:"DOC_NOT_FOUND",SYNC_HEAD_MISSING:"SYNC_HEAD_MISSING"};let Kn=null;function $t(){return Kn||(Kn=new Promise((e,n)=>{const r=indexedDB.open(ku,Cu);r.onupgradeneeded=o=>{const i=r.result;i.objectStoreNames.contains(Se)||i.createObjectStore(Se,{keyPath:"documentId"});const a=o.oldVersion;if(a>0&&a<4){const d=r.transaction.objectStore(Se).openCursor();d.onsuccess=()=>{const c=d.result;if(!c)return;const h=c.value;typeof h.baseCommitId=="string"&&!h.localBaseCommitId&&(h.localBaseCommitId=h.baseCommitId,delete h.baseCommitId);const u=h.conflict;u&&(typeof u.baseCommitId=="string"&&!u.localBaseCommitId&&(u.localBaseCommitId=u.baseCommitId,delete u.baseCommitId),typeof u.expectedHeadCommitId=="string"&&!u.remoteCommitId&&(u.remoteCommitId=u.expectedHeadCommitId,delete u.expectedHeadCommitId)),c.update(h),c.continue()}}},r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})),Kn}async function Iu(e){var o;const n=await Oe(e.documentId),r={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:Date.now(),published:!1};if(n!=null&&n.localBaseCommitId)r.localBaseCommitId=n.localBaseCommitId;else{const i=(o=e.localBaseCommitIdAtEditStart)==null?void 0:o.trim();i&&(r.localBaseCommitId=i)}(n==null?void 0:n.permission)!=null?r.permission=n.permission:e.snapshotMeta&&(r.permission=e.snapshotMeta.permission),n!=null&&n.ownerVisitorId?r.ownerVisitorId=n.ownerVisitorId:e.snapshotMeta&&(r.ownerVisitorId=e.snapshotMeta.ownerVisitorId),n!=null&&n.domainId?r.domainId=n.domainId:e.snapshotMeta&&(r.domainId=e.snapshotMeta.domainId),n!=null&&n.publishError&&(r.publishError=n.publishError,r.publishErrorAt=n.publishErrorAt),n!=null&&n.conflictStatus&&(r.conflictStatus=n.conflictStatus),n!=null&&n.conflict&&(r.conflict=n.conflict),await Ct(r)}function Tr(e){const n={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:e.updatedAt,published:e.published};return e.permission!=null&&(n.permission=e.permission),e.ownerVisitorId&&(n.ownerVisitorId=e.ownerVisitorId),e.domainId&&(n.domainId=e.domainId),e.publishError!=null&&(n.publishError=e.publishError),e.publishErrorAt!=null&&(n.publishErrorAt=e.publishErrorAt),e.localBaseCommitId&&(n.localBaseCommitId=e.localBaseCommitId),e.conflictStatus!=null&&(n.conflictStatus=e.conflictStatus),e.conflict!=null&&(n.conflict=e.conflict),n}async function Ct(e){const n=await $t(),r=Tr(e);return new Promise((o,i)=>{const a=n.transaction(Se,"readwrite");a.objectStore(Se).put(r),a.oncomplete=()=>o(),a.onerror=()=>i(a.error)})}async function Oe(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).get(e);a.onsuccess=()=>r(a.result),a.onerror=()=>o(a.error)})}async function Jn(e){const n=await $t();return new Promise((r,o)=>{const i=n.transaction(Se,"readwrite");i.objectStore(Se).delete(e),i.oncomplete=()=>r(),i.onerror=()=>o(i.error)})}async function Su(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).getAll();a.onsuccess=()=>{let s=a.result;e!=null&&e.skipFailed&&(s=s.filter(l=>!l.publishError)),r(s)},a.onerror=()=>o(a.error)})}async function Du(e,n){const r=await $t();return new Promise((o,i)=>{const s=r.transaction(Se,"readwrite").objectStore(Se),l=s.get(e);l.onsuccess=()=>{const d=l.result;d&&s.put(Tr({...d,publishError:n,publishErrorAt:Date.now()})),o()},l.onerror=()=>i(l.error)})}async function Xn(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readwrite").objectStore(Se),s=a.get(e);s.onsuccess=()=>{const l=s.result;l&&a.put(Tr({...l,publishError:void 0,publishErrorAt:void 0})),r()},s.onerror=()=>o(s.error)})}async function qo(e,n){const r=await Oe(e);r&&await Ct({...r,localBaseCommitId:n.localBaseCommitId,conflictStatus:n.conflictStatus,conflict:n.conflict})}async function Zn(e){const n=await Oe(e);n&&await Ct({...n,conflict:void 0,conflictStatus:"none"})}class rn extends Error{constructor(r,o){super(r);jt(this,"code");jt(this,"cause");this.name="DraftPublishAborted",this.code=r,this.cause=o==null?void 0:o.cause}}function Pu(e){return e instanceof rn?e.code:e instanceof Je?e.status===404?Lt.DOC_NOT_FOUND:e.code||`HTTP_${e.status}`:e instanceof Error&&e.message.trim()?e.message.trim().slice(0,120):"UNKNOWN"}function Nu(e,n,r,o){const i=(n==null?void 0:n.displayName)||e("unknownTitle");if(r===Lt.SYNC_HEAD_MISSING)return e("draftPublishFailedSyncHead",{name:i});if(r===Lt.DOC_NOT_FOUND)return e("draftPublishFailedNotice",{name:i});const a=o instanceof Je||o instanceof Error&&o.message?o.message:r;return e("draftPublishFailedGeneric",{name:i,reason:a})}async function Tu(e,n,r){const o=Pu(n);throw await Du(e,o),n instanceof rn?n:new rn(o,{cause:n})}function Au(e,n){const r=_.useRef(n);r.current=n,_.useEffect(()=>{if(!e)return;const o=3e4,i=1e4,a=async()=>{const l=await Su({skipFailed:!0}),d=Date.now();for(const c of l)if(!c.published&&!(d-c.updatedAt<o))try{await r.current(c.documentId)}catch(h){console.log("[autoPublish] scan publish failed:",h)}};a();const s=setInterval(a,i);return()=>clearInterval(s)},[e])}const Mu=1e4;function Eu(e,n){const[r,o]=_.useState(null),[i,a]=_.useState("up_to_date");return _.useEffect(()=>{if(!e){o(null),a("up_to_date");return}let l=!1;const d=e;async function c(){try{const u=await ks(d,n??void 0);if(l)return;o(u.headCommitId),a(u.status)}catch{}}c();const h=window.setInterval(()=>void c(),Mu);return()=>{l=!0,window.clearInterval(h)}},[e,n]),{remoteCommitId:r,syncStatus:i,syncBehind:!!(n&&r&&n!==r)||i==="behind"}}const ju="/assets/mdocs-logo-Dsv_2t6v.svg",Ou=_.lazy(()=>zt(()=>import("./DocumentEditor-B3Dsq02C.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(e=>({default:e.DocumentEditor}))),Ru=_.lazy(()=>zt(()=>import("./SettingsPage-D8HfepZ8.js"),__vite__mapDeps([11,1,10,2,3,6])).then(e=>({default:e.SettingsPage}))),Fu=_.lazy(()=>zt(()=>import("./AgentChatPanel-C8TMWDuE.js"),__vite__mapDeps([12,1,13,7,2,3,8,6])).then(e=>({default:e.AgentChatPanel}))),Lu=_.lazy(()=>zt(()=>import("./AiWriteWorkbench-ChCJt24m.js"),__vite__mapDeps([14,1,13,7,2,3,6])).then(e=>({default:e.AiWriteWorkbench}))),zu=_.lazy(()=>zt(()=>import("./MergeView-royv5YkB.js"),__vite__mapDeps([15,1,4,5,2,3,6,7,8])).then(e=>({default:e.MergeView})));function $u(e,n){try{const r=new Intl.RelativeTimeFormat(n,{numeric:"auto"}),o=Date.now()-new Date(e).getTime(),i=Math.floor(o/6e4),a=Math.floor(i/60),s=Math.floor(a/24);return s>30?r.format(-Math.floor(s/30),"month"):s>0?r.format(-s,"day"):a>0?r.format(-a,"hour"):i>0?r.format(-i,"minute"):r.format(-Math.floor(o/1e3),"second")}catch{return e.slice(0,10)}}async function Qn(e,n,r,o){const i=await ni();n(i);const a=localStorage.getItem("mdocs.currentDomainId"),l=a&&i.some(d=>d.domainId===a)?a:Fs(i,e);r(l),await o(l)}function Yo(){const{t:e,lang:n,setLang:r}=lt(),[o,i]=_.useState("loading"),[a,s]=_.useState(()=>localStorage.getItem("mdocs.sidebarCollapsed")==="true"),l=xu(),[d,c]=_.useState(!1),h=()=>{if(l){c(R=>!R);return}const y=!a;s(y),localStorage.setItem("mdocs.sidebarCollapsed",String(y))};_.useEffect(()=>{l||c(!1)},[l]);const[u,m]=_.useState(!1),[p,g]=_.useState(0),k=_.useRef(null),[b,v]=_.useState(null),[w,D]=_.useState(null),[I,S]=_.useState(null),[N,P]=_.useState([]),[T,U]=_.useState([]),[E,$]=_.useState("default"),{documentId:F}=ma(),B=ha(),[A,Y]=_.useState(null),[te,ie]=_.useState(null),[ke,De]=_.useState(null),[Ae,ye]=_.useState(null),[me,ae]=_.useState(null),q=_.useRef(te);q.current=te;const[J,ue]=_.useState(0),[fe,Me]=_.useState(null),[Ve,$e]=_.useState(!1),[ve,Ue]=_.useState(!1),[ct,Ze]=_.useState(!1),an=(A==null?void 0:A.documentId)??null,{syncBehind:bt,remoteCommitId:Pt}=Eu(an,fe),[Ut,Nt]=_.useState(null);_.useEffect(()=>{if(!ve||!A){Nt(null);return}(async()=>{const y=await Oe(A.documentId);if(y!=null&&y.conflict){Nt(y.conflict);return}if(y&&fe&&Pt){const R=y.localBaseCommitId??fe;if(!R)return;const j={localBaseCommitId:R,remoteCommitId:Pt,localSnapshotContent:y.content};await qo(A.documentId,{localBaseCommitId:j.localBaseCommitId,conflictStatus:"diverged",conflict:j}),Nt(j)}})()},[ve,A,fe,Pt]),_.useEffect(()=>{!A||!bt||!ct||Oe(A.documentId).then(async y=>{!y||y.conflict||y.conflictStatus==="publish_conflict"||y.conflictStatus!=="diverged"&&await Ct({...y,conflictStatus:"diverged"})})},[A==null?void 0:A.documentId,bt,ct]),_.useEffect(()=>{if(!A){Me(null);return}let y=!1;return Oe(A.documentId).then(R=>{y||(R&&!R.published&&R.localBaseCommitId?Me(R.localBaseCommitId):Me(A.headCommitId??null))}),()=>{y=!0}},[A==null?void 0:A.documentId,A==null?void 0:A.headCommitId,ct]);const[Qe,re]=_.useState(null),[xt,Pe]=_.useState(null),[pe,dt]=_.useState(null),[ut,C]=_.useState(null),[M,O]=_.useState(""),[L,V]=_.useState("docs"),[X,K]=_.useState(!1),[Q,de]=pu(),Ee=_.useRef(null),[Ne,be]=_.useState(!1),[he,ge]=_.useState(null),Ce=_.useRef(void 0),et=_.useRef(void 0);Au(localStorage.getItem("mdocs.autoPublish")==="true",zr);async function Ie(y){var R;await((R=Ce.current)==null?void 0:R.call(Ce)),y()}function Tt(y){const j=(y.trim()||"untitled").replace(/[\\/:*?"<>|]/g,"-").slice(0,80);return j.endsWith(".md")?j:`${j}.md`}async function ft(){var R,j;if(!A||!te)return;await((R=Ce.current)==null?void 0:R.call(Ce));let y=((j=et.current)==null?void 0:j.call(et))??"";if(!y.trim())try{y=(await Un({content:te.content,from:"lexical",to:"markdown"})).content}catch{y=""}ge({markdown:y,documentId:A.documentId,displayName:te.displayName||A.displayName||"未命名"}),be(!0),K(!1)}function _t(){ge({markdown:"",documentId:null,displayName:"未命名"}),be(!0),K(!1)}async function sn(y){var Z,se;const R=y.documentId.trim();if(!R)return;await((Z=Ce.current)==null?void 0:Z.call(Ce));let j="",G=y.displayName.trim()||"未命名";try{const Ge=await Vt(R);G=((se=Ge.displayName)==null?void 0:se.trim())||G;try{j=(await Un({content:Ge.content,from:"lexical",to:"markdown"})).content}catch{j=""}}catch{}ge({markdown:j,documentId:R,displayName:G}),be(!0),K(!1),V("docs"),Ie(()=>B(`/doc/${R}`))}async function ln(y){(A==null?void 0:A.documentId)===y.documentId&&await Lr()}async function cn(y){if(y.documentId){if(!window.confirm("将把帮写结果写入当前文档的本地草稿(不会自动发布)。继续?")){const se=new Error("cancelled");throw se.silent=!0,se}const G=await Un({content:y.markdown,from:"markdown",to:"lexical"}),Z=(A==null?void 0:A.documentId)===y.documentId?A:null;return await Iu({documentId:y.documentId,content:G.content,displayName:y.displayName,localBaseCommitIdAtEditStart:(Z==null?void 0:Z.headCommitId)??null,snapshotMeta:Z?{permission:Z.permission,ownerVisitorId:Z.ownerVisitorId,domainId:Z.domainId}:void 0}),(A==null?void 0:A.documentId)===y.documentId?(ie({documentId:y.documentId,content:G.content,displayName:y.displayName}),ue(se=>se+1),Ze(!0)):await At(y.documentId),re("帮写已写入草稿,可在编辑器中继续修改后发布"),{documentId:y.documentId}}const R=await ti({fileName:Tt(y.displayName),displayName:y.displayName,content:y.markdown,contentFormat:"markdown",domainId:E||void 0,parentId:void 0});return await _e(),await At(R.documentId),re("已创建文档"),{documentId:R.documentId}}_.useEffect(()=>{Wi()},[]),_.useEffect(()=>{if(!Qe)return;const y=()=>{re(null)};return window.addEventListener("pointerdown",y,!0),()=>window.removeEventListener("pointerdown",y,!0)},[Qe]),_.useEffect(()=>{const y=R=>{var Z,se;const j=R;if(((Z=j.detail)==null?void 0:Z.status)===409)return;const G=(se=j.detail)==null?void 0:se.message;G&&Pe(G)};return window.addEventListener(nr,y),()=>window.removeEventListener(nr,y)},[]);async function Wi(){try{const y=await no();v(y),_n(y.visitorId),await Qn(y.visitorId,U,$,_e),i("ready")}catch(y){if(y instanceof Je&&y.status===401){i("needsRegister");return}Pe(yt(e,y)),i("needsRegister")}}async function qi(y,R){const j=await vs(y,R);v(j.visitor),D(j.visitor.visitorId),S(j.recoveryCode),_n(j.visitor.visitorId),await Qn(j.visitor.visitorId,U,$,_e),i("ready")}async function Yi(y){const R=await no();v(R),await Qn(R.visitorId,U,$,_e),i("ready")}async function _e(y){const j=await ws(y??E);P(j)}function dn(y){ie({documentId:y.documentId,content:y.content,displayName:y.displayName}),ue(R=>R+1),Ze(!1)}function Ki(y,R){ie({documentId:y,content:R.content,displayName:R.displayName}),ue(j=>j+1),Ze(!0)}async function Ar(y,R){await Jn(y);const j=await Vt(y);if((A==null?void 0:A.documentId)===y&&k.current===y){Y(Ht(j)),Ze(!1);const G=q.current,Z=R!==void 0&&j.content===R,se=(G==null?void 0:G.documentId)===y&&G.content===j.content;Z||se?(G==null?void 0:G.documentId)===y&&G.displayName!==j.displayName&&ie({...G,displayName:j.displayName}):dn(j)}return j}function un(y,R,j="folder"){console.log("[openGraph]",j,y,R),De(j),ye(y),ae(R)}function fn(){De(null),ye(null),ae(null)}async function At(y){k.current=y;try{const R=await Oe(y);if(k.current!==y)return;const j=await Vt(y);if(k.current!==y||(j.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",j.domainId),$(j.domainId),_e(j.domainId)),O(vn(j.relativePath)),j.headCommitId&&R&&!R.published&&(R.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y),R.localBaseCommitId||await Ct({...R,localBaseCommitId:j.headCommitId})),Y(Ht(j)),k.current!==y))return;R&&!R.published?Ki(y,R):dn(j)}catch(R){if(k.current!==y)return;Pe(yt(e,R))}}_.useEffect(()=>{o==="ready"&&(F?At(F):(Y(null),ie(null),Me(null)))},[o,F]);const{createModal:Mt,setCreateModal:jn,createModalError:Mr,createModalBusy:Et,createModalInputRef:Ji,openNewDocumentModal:On,openNewFolderModal:Rn,submitCreateModal:Xi}=bu({tree:N,currentDomainId:E,selectedCreateParentPath:M,t:e,onDocCreated:y=>{Y(Ht(y)),dn(y),O(vn(y.relativePath)),B(`/doc/${y.documentId}`)},refreshTree:_e}),[Zi,mn]=_.useState(!1),[Qi,Bt]=_.useState(!1),[wt,Er]=_.useState([]),[Fn,jr]=_.useState(""),[hn,Or]=_.useState(""),[ea,Rr]=_.useState(new Set);async function ta(){try{const y=await Ps();Er(y)}catch(y){Pe(yt(e,y))}}const Ln=_.useMemo(()=>{const y={};for(const R of T)y[R.domainId]=R.domainName;return y},[T]),Fr=_.useMemo(()=>{let y=wt;const R=Fn.trim().toLowerCase();return R&&(y=y.filter(j=>{var G;return(G=j.displayName)==null?void 0:G.toLowerCase().includes(R)})),hn&&(y=y.filter(j=>j.domainId===hn)),y},[wt,Fn,hn]),na=_.useMemo(()=>{const y=new Set,R=[];for(const j of wt){const G=j.domainId;G&&!y.has(G)&&(y.add(G),R.push({id:G,name:Ln[G]??G}))}return R},[wt,Ln]);async function ra(y,R,j,G,Z){let se=await Oe(y);!se&&(A==null?void 0:A.documentId)===y&&(se={documentId:y,content:R,displayName:j,updatedAt:Date.now(),published:!1,localBaseCommitId:G,permission:A.permission,ownerVisitorId:A.ownerVisitorId,domainId:A.domainId},await Ct(se)),se&&await qo(y,{localBaseCommitId:G,conflictStatus:"publish_conflict",conflict:{localBaseCommitId:G,remoteCommitId:Z.headCommitId,localSnapshotContent:R}}),$e(!0)}async function oa(y,R,j,G){return Jr(j).execute(async()=>{const Z=await Oe(j),se=(Z==null?void 0:Z.localBaseCommitId)??(A==null?void 0:A.headCommitId);if(!se)throw Pe(e("syncHeadMissing")),new Error("missing localBaseCommitId");try{await ro(j,{content:y,displayName:R,permission:G,version:{localBaseCommitId:se}}),await Zn(j),await Ar(j,y),await _e(),$e(!1),re(e("published")),window.setTimeout(()=>re(null),1200)}catch(Ge){throw Ge instanceof Je&&Ge.status===409&&Ge.code==="VERSION_CONFLICT"&&Ge.details&&typeof Ge.details=="object"&&await ra(j,y,R,se,Ge.details),Ge}})}async function ia(){if(!A)return;const y=await Vt(A.documentId);y.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",y.domainId),$(y.domainId),_e(y.domainId)),O(vn(y.relativePath)),Y(Ht(y)),dn(y),re(e("syncPullDone")),window.setTimeout(()=>re(null),1200)}async function Lr(){if(!A)return;const y=await Oe(A.documentId);if(y&&!y.published)return;if((y==null?void 0:y.conflictStatus)==="publish_conflict"||(y==null?void 0:y.conflictStatus)==="diverged"||!!(y!=null&&y.conflict)){Ue(!0);return}await ia()}async function aa(y){await Zn(y.documentId),await Jn(y.documentId),Ze(!1),Ue(!1),$e(!1),await At(y.documentId),_e(y.domainId),re(e("published")),window.setTimeout(()=>re(null),1200)}async function sa(y,R,j){try{await Tu(y,R,j)}catch(G){if(!(G instanceof rn))throw G;const Z=j??await Oe(y);throw re(Nu(e,Z,G.code,G.cause??R)),window.setTimeout(()=>re(null),4e3),G}}async function zr(y){let R;try{await Jr(y).execute(async()=>{const j=await Oe(y);if(!j)return;R=j;let G=j.localBaseCommitId;if(G||(G=(await Vt(y)).headCommitId??void 0,G&&(await Ct({...j,localBaseCommitId:G}),j.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y))),!G)throw new rn(Lt.SYNC_HEAD_MISSING);const Z=await Oe(y);Z&&(await ro(y,{content:Z.content,displayName:Z.displayName,version:{localBaseCommitId:G}}),await Zn(y),await Xn(y),(A==null?void 0:A.documentId)===y?await Ar(y,Z.content):await Jn(y),await _e(),re(e("published")),window.setTimeout(()=>re(null),1200))})}catch(j){await sa(y,j,R)}}function $r(y,R){dt({type:"document",id:y,name:R})}function Ur(y,R){dt({type:"folder",id:y,name:R})}async function la(y,R){try{const j=await Is(y,R);await _e(j.domainId),(A==null?void 0:A.documentId)===y&&(Y(Ht(j)),O(vn(j.relativePath)))}catch(j){j instanceof Je?j.status===409&&Pe(j.message):Pe(yt(e,j))}}async function ca(){if(pe)try{pe.type==="document"?(await Cs(pe.id),(A==null?void 0:A.documentId)===pe.id&&(Y(null),ie(null),O(""),B("/"))):pe.type==="folder"&&(await Ds(pe.id),A&&(Y(null),ie(null),O(""),B("/"))),await _e(),re(pe.type==="folder"?`已删除「${pe.name}」及其下所有内容`:`已删除「${pe.name}」`),window.setTimeout(()=>re(null),2e3)}catch(y){Pe(yt(e,y))}finally{dt(null)}}return o==="loading"?f.jsx("div",{className:"mdocs-loading muted",children:e("loading")}):o==="needsRegister"?f.jsx(Ls,{onSubmit:qi,onRecover:Yi,error:Qe}):f.jsxs("div",{className:"mdocs-app-root",children:[ei(),f.jsxs("div",{className:"mdocs-shell",children:[w&&b&&f.jsx(zs,{visitorId:w,onDismiss:()=>D(null)}),I&&f.jsx("div",{className:"mdocs-dialog-backdrop",style:{position:"fixed",zIndex:9999},onClick:y=>{y.target===y.currentTarget&&S(null)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:480,textAlign:"center"},children:[f.jsx("h1",{style:{fontSize:"1.25rem",marginBottom:8},children:"🔑 保存你的恢复码"}),f.jsxs("p",{className:"muted",style:{marginBottom:16,lineHeight:1.5},children:["恢复码是你的唯一凭证,当 Token 丢失时可用它找回身份。",f.jsx("br",{}),f.jsx("strong",{children:"请立即复制保存,此弹窗关闭后不可再查看。"})]}),f.jsx("div",{style:{background:"#f5f5f5",borderRadius:8,padding:"12px 16px",fontFamily:"monospace",fontSize:"1.25rem",letterSpacing:"0.1em",marginBottom:20,userSelect:"all"},children:I}),f.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[f.jsx("button",{type:"button",className:"primary",onClick:()=>{navigator.clipboard.writeText(I)},children:"复制恢复码"}),f.jsx("button",{type:"button",onClick:()=>S(null),children:"已保存,关闭"})]})]})}),f.jsxs(f.Fragment,{children:[f.jsx(hu,{open:X,onToggle:()=>{var y;X?(y=Ee.current)==null||y.requestClose():K(!0)},position:Q,onPositionChange:de,disableDrag:l}),X?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Fu,{ref:Ee,open:X,onClose:()=>K(!1),visitorName:b==null?void 0:b.visitorName,fullscreen:l,domainId:E||null,documentId:(A==null?void 0:A.documentId)??null,documentTitle:(A==null?void 0:A.displayName)??null,documentPath:(A==null?void 0:A.relativePath)??null,anchorStyle:l?void 0:mu(Q),onOpenDocument:y=>{V("docs"),Ie(()=>B(`/doc/${y}`)),K(!1)},onTreeChanged:()=>void _e(),onDocumentOverwritten:y=>void ln(y),onOpenCoding:y=>void sn(y)})}):null]}),he?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Lu,{open:Ne,initialMarkdown:he.markdown,documentId:he.documentId,displayName:he.displayName,onClose:()=>{be(!1),ge(null)},onComplete:cn})}):null,L==="settings"?f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"mdocs-main muted",style:{padding:24},children:"加载设置…"}),children:f.jsx(Ru,{onBack:()=>V("docs"),onPublishDraft:zr,onOpenDocument:At,onRecoverDraft:()=>void _e()})}):f.jsxs("div",{className:"mdocs-layout"+(l?" mdocs-layout--reader":""),children:[l&&d?f.jsx("button",{type:"button",className:"mdocs-mobile-nav-scrim","aria-label":e("collapseSidebar"),onClick:()=>c(!1)}):null,f.jsxs("aside",{className:"mdocs-sidebar"+(l?d?" mdocs-sidebar--drawer-open":" mdocs-sidebar--drawer":a?" mdocs-sidebar-collapsed":""),children:[f.jsxs("header",{className:"mdocs-sidebar-header",children:[f.jsxs("div",{className:"mdocs-brand",children:[f.jsx("img",{src:ju,alt:e("brand"),className:"mdocs-brand-logo"}),f.jsx("span",{children:e("brand")})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-toggle",onClick:h,"aria-label":e(l?d?"collapseSidebar":"expandSidebar":a?"expandSidebar":"collapseSidebar"),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},onMouseEnter:y=>{y.currentTarget.style.background="var(--mdocs-hover-bg, #f0f0f0)"},onMouseLeave:y=>{y.currentTarget.style.background="none"},children:l?f.jsx(qr,{size:18}):a?f.jsx(Yr,{size:18}):f.jsx(qr,{size:18})})]}),f.jsxs("div",{className:"mdocs-sidebar-actions",children:[f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newDocument"),onClick:()=>On(),style:{color:"var(--mdocs-accent)"},children:f.jsx(Gr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newFolder"),onClick:()=>Rn(),children:f.jsx(Wr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":"知识图谱",onClick:()=>un(E,"知识图谱","domain"),style:{marginLeft:8},children:f.jsx(gr,{size:20,strokeWidth:1.75})})]}),f.jsx($s,{nodes:N,activeDocumentId:F??null,selectedParentPath:M,onOpen:y=>{fn(),l&&c(!1),Ie(()=>B(`/doc/${y.documentId}`))},onOpenFolder:(y,R)=>{Ie(()=>{O(y),R&&(fn(),l&&c(!1),B(`/doc/${R}`))})},onContextMenu:C,onMoveDocument:la,onDeselect:()=>{fn(),Ie(()=>{O(""),B("/")})},onOpenGraph:(y,R)=>{if(y.type==="folder")un(y.documentId,y.name);else if(R){const j=N.find(G=>G.documentId===R);un(R,(j==null?void 0:j.name)??"图谱")}},onGenerateGraph:async(y,R)=>{var Z;const j=y.type==="folder"?y.documentId:R;if(!j)return;const G=y.type==="folder"?y.name:((Z=N.find(se=>se.documentId===R))==null?void 0:Z.name)??"图谱";un(j,G)}}),f.jsxs("footer",{className:"mdocs-sidebar-footer",children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,cursor:"pointer"},onClick:()=>Ie(()=>V("settings")),children:[f.jsx("span",{className:"mdocs-visitor-avatar",children:b?b.visitorName.charAt(0).toUpperCase():"?"}),f.jsx("span",{className:"mdocs-visitor-footer-name",children:b?b.visitorName:""})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-bookmark mdocs-tooltip","data-tooltip":e("bookmark"),onClick:()=>{Bt(!0),jr(""),Or(""),ta()},style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4},children:f.jsx(Za,{size:16,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-sidebar-logout mdocs-tooltip","data-tooltip":e("logout"),onClick:()=>mn(!0),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4},children:f.jsx(Ha,{size:16,strokeWidth:1.5})})]})]}),f.jsxs("main",{className:"mdocs-main",children:[ke&&Ae&&me?f.jsx(su,{scope:ke,resourceId:Ae,name:me,onOpenDocument:y=>{fn(),At(y)}},`${ke}-${Ae}`):A&&te&&te.documentId===A.documentId?f.jsxs("div",{className:"mdocs-editor-with-comments",children:[f.jsx("div",{className:"mdocs-editor-container",children:f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"muted",style:{padding:24},children:"加载编辑器…"}),children:f.jsx(Ou,{meta:A,initialContent:te.content,initialDisplayName:te.displayName,contentRevision:J,canEdit:!!(b&&(A.ownerVisitorId===b.visitorId||ss(A.permission)||A.invitedEdit===!0)),domains:T,currentDomainId:E,onDomainChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,onPublish:oa,syncBehind:bt,onSyncClick:()=>void Lr(),onDraftExistsChange:Ze,onConflictModalRequest:()=>$e(!0),onMergeRequest:()=>Ue(!0),canManageInvites:!!(b&&b.visitorId===A.ownerVisitorId),onDelete:async()=>{if(A.relativePath.endsWith("/___desc___.md")){const y=A.relativePath.replace(/\/___desc___\.md$/,"");Ur(A.documentId,y)}else $r(A.documentId,A.relativePath)},saveBeforeNavRef:Ce,exportMarkdownRef:et,onShowToast:re,onShowError:Pe,onToggleComments:()=>m(!u),commentPanelOpen:u,commentCount:p,onAiWrite:()=>void ft(),readerChrome:l,onOpenMobileNav:()=>c(!0)},A.documentId)})}),u&&f.jsx(wu,{documentId:A.documentId,visitorId:b==null?void 0:b.visitorId,visitorName:b==null?void 0:b.visitorName,documentOwnerId:A.ownerVisitorId,onClose:()=>m(!1)})]}):f.jsxs("div",{className:"mdocs-welcome",children:[l?f.jsxs("button",{type:"button",className:"mdocs-reader-float-pill",onClick:()=>c(!0),"aria-label":e("expandSidebar"),children:[f.jsx(Yr,{size:18,strokeWidth:1.75}),f.jsx("span",{children:e("brand")})]}):null,f.jsx("h1",{children:e("brand")}),f.jsx("p",{className:"muted mdocs-welcome-lead",children:N.length===0?e("noDocsInDomain"):e("createDocToStart")}),f.jsxs("div",{className:"mdocs-welcome-domain",children:[f.jsx("label",{className:"muted mdocs-welcome-domain-label",children:e("domainLabel")}),f.jsx(cu,{domains:T.length?T:[{domainId:"default",domainName:e("defaultDomain"),permission:"",creatorVisitorId:"",docCount:0}],value:E,onChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,ariaLabel:e("domainLabel"),localizeName:y=>yu(y,n,e)})]}),f.jsxs("div",{className:"mdocs-welcome-actions",children:[f.jsxs("button",{type:"button",className:"primary",onClick:()=>On(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(Gr,{size:16,strokeWidth:1.5}),e("newDocument")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>Rn(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(Wr,{size:16,strokeWidth:1.5}),e("newFolder")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>_t(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx("img",{src:Ui,alt:"",width:16,height:16,style:{display:"block"}}),"AI 帮写"]})]})]}),f.jsx(_u,{open:Ve,onClose:()=>$e(!1),onResolve:()=>{$e(!1),Ue(!0)}}),ve&&A&&Ut&&f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"merge-view-loading",children:e("mergeLoadingRemote")}),children:f.jsx(zu,{documentId:A.documentId,displayName:A.displayName,conflict:Ut,onClose:()=>Ue(!1),onSuccess:aa,onError:y=>Pe(y)})}),Qe&&f.jsx("div",{className:"mdocs-toast",role:"status",children:Qe}),xt&&f.jsx(gu,{title:e("error"),message:xt,onClose:()=>Pe(null)})]}),Zi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&mn(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:440},children:[f.jsx("h1",{style:{fontSize:"1.125rem",marginBottom:8},children:"退出当前登录身份?"}),f.jsx("p",{style:{lineHeight:1.6,color:"var(--mdocs-text-secondary, #666)",marginBottom:20},children:"这将会导致您无法修改以前的文章。如果想找回账号,需要恢复码或联系管理员执行合并用户脚本。"}),f.jsxs("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",onClick:()=>mn(!1),children:"取消"}),f.jsx("button",{type:"button",className:"primary",style:{background:"#d32f2f"},onClick:()=>{ys(),Y(null),ie(null),v(null),P([]),mn(!1),i("needsRegister")},children:"确认退出"})]})]})}),Qi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&Bt(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:640,width:"min(640px, 100%)",maxHeight:"70vh",display:"flex",flexDirection:"column"},children:[f.jsxs("h1",{style:{fontSize:"1.125rem",marginBottom:16},children:[e("bookmarkTitle"),"(",wt.length,")"]}),wt.length>0&&f.jsxs("div",{className:"mdocs-bookmark-filterbar",children:[f.jsx("input",{type:"text",placeholder:e("bookmarkSearch"),value:Fn,onChange:y=>jr(y.target.value)}),f.jsxs("select",{value:hn,onChange:y=>Or(y.target.value),children:[f.jsx("option",{value:"",children:e("bookmarkFilterAll")}),na.map(y=>f.jsx("option",{value:y.id,children:y.name},y.id))]})]}),wt.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkEmpty")}):Fr.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkNoMatch")}):f.jsx("div",{style:{overflowY:"auto",flex:1,margin:"0 -1rem",padding:"0 1rem"},children:f.jsxs("table",{className:"mdocs-bookmark-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:e("bookmarkColTitle")}),f.jsx("th",{children:e("bookmarkColDomain")}),f.jsx("th",{children:e("bookmarkColAuthor")}),f.jsx("th",{children:e("bookmarkColTime")}),f.jsx("th",{className:"mdocs-bookmark-col-action"})]})}),f.jsx("tbody",{children:Fr.map(y=>{const R=ea.has(y.documentId);return f.jsxs("tr",{className:`${R?"mdocs-bookmark-removing":""}`,style:{opacity:y.isDeleted?.6:1},children:[f.jsx("td",{className:"mdocs-bookmark-col-title",children:f.jsxs("div",{style:{cursor:y.isDeleted?"default":"pointer",display:"flex",alignItems:"center",gap:6,overflow:"hidden"},onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},children:[f.jsx("span",{ref:j=>{if(j){const G=j.scrollWidth>j.clientWidth;j.title=G?y.displayName??"":""}},style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:y.displayName??"(无标题)"}),y.isDeleted&&f.jsx("span",{style:{fontSize:"0.7rem",color:"#d32f2f",background:"#ffebee",padding:"1px 6px",borderRadius:4,flexShrink:0},children:"已删除"})]})}),f.jsx("td",{children:y.isDeleted?"":Ln[y.domainId??""]??y.domainId??""}),f.jsx("td",{children:y.isDeleted?"":y.ownerVisitorName??"-"}),f.jsx("td",{children:y.isDeleted?"":$u(y.bookmarkedAt,n)}),f.jsx("td",{className:"mdocs-bookmark-col-action",children:f.jsxs("div",{style:{display:"flex",gap:2,alignItems:"center",justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkOpen"),onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},style:{background:"none",border:"none",cursor:y.isDeleted?"default":"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},children:f.jsx(La,{size:14,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkRemove"),onClick:async()=>{try{await Ns(y.documentId),Rr(j=>new Set(j).add(y.documentId)),setTimeout(()=>{Er(j=>j.filter(G=>G.documentId!==y.documentId)),Rr(j=>{const G=new Set(j);return G.delete(y.documentId),G})},300)}catch(j){Pe(yt(e,j))}},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},onMouseEnter:j=>{j.currentTarget.style.color="#d32f2f"},onMouseLeave:j=>{j.currentTarget.style.color="var(--mdocs-text-muted, #999)"},children:"✕"})]})})]},y.documentId)})})]})}),f.jsx("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end",marginTop:16,paddingTop:16,borderTop:"1px solid var(--mdocs-border, #eee)"},children:f.jsx("button",{type:"button",onClick:()=>Bt(!1),children:e("close")})})]})}),ut&&f.jsx(lu,{x:ut.x,y:ut.y,node:ut.node,parentPath:ut.parentPath,onClose:()=>C(null),onCreateChild:y=>On(y),onCreateFolder:y=>Rn(y),onDeleteDocument:y=>$r(y.documentId,y.path),onDeleteFolder:y=>Ur(y.documentId,y.folderDisplayName||y.name)}),pe&&f.jsx(Bi,{title:pe.type==="folder"?"删除文件夹":"删除文档",message:pe.type==="folder"?`确定要删除「${pe.name}」及其下的所有文档和子文件夹吗?此操作不可撤销。`:`确定要删除「${pe.name}」吗?`,confirmLabel:"删除",cancelLabel:"取消",onConfirm:ca,onCancel:()=>dt(null),danger:!0}),Mt&&f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:y=>{y.target===y.currentTarget&&!Et&&jn(null)},children:f.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[f.jsx("h1",{children:Mt.kind==="document"?e("newDocumentTitle"):e("newFolderTitle")}),f.jsx("p",{className:"muted",children:Mt.kind==="document"?e("fileNameHint"):e("folderNameHint")}),f.jsxs("form",{onSubmit:Xi,className:"mdocs-dialog-form",children:[f.jsxs("label",{className:"mdocs-dialog-label",children:[Mt.kind==="document"?e("fileNameLabel"):e("folderNameLabel"),f.jsx("input",{ref:Ji,value:Mt.draft,onChange:y=>jn(R=>R&&{...R,draft:y.target.value}),placeholder:Mt.kind==="document"?e("untitledPlaceholder"):e("folderExamplePlaceholder"),maxLength:200,disabled:Et})]}),Mr&&f.jsx("div",{className:"mdocs-dialog-error",children:Mr}),f.jsxs("div",{className:"mdocs-dialog-actions",children:[f.jsx("button",{type:"button",onClick:()=>!Et&&jn(null),disabled:Et,children:e("cancel")}),f.jsx("button",{type:"submit",className:"primary",disabled:Et,children:e(Et?"creating":"create")})]})]})]})})]})]})]})}const Uu=_.lazy(()=>zt(()=>import("./PlaygroundPage-B-_1l4Ix.js"),__vite__mapDeps([16,1,4,5,2,3,6,7,8,9])).then(e=>({default:e.PlaygroundPage})));function Bu(){return f.jsxs(pa,{children:[f.jsx(zn,{path:"/",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/doc/:documentId",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/playground",element:f.jsx(_.Suspense,{fallback:f.jsx("div",{style:{padding:24},children:"Loading playground…"}),children:f.jsx(Uu,{})})})]})}const Gi=document.getElementById("root");if(!Gi)throw new Error("root element missing");ga.createRoot(Gi).render(f.jsx(Ko.StrictMode,{children:f.jsx(va,{motion:Aa,children:f.jsx(ba,{children:f.jsx(is,{children:f.jsx(ya,{children:f.jsx(Bu,{})})})})})}));export{Nf as $,rn as A,Zu as B,_s as C,cu as D,Kf as E,Rs as F,df as G,cf as H,lf as I,sf as J,mf as K,Qu as L,Ga as M,gr as N,tf as O,Yr as P,ef as Q,nf as R,Za as S,ff as T,uf as U,hf as V,pf as W,gf as X,Df as Y,no as Z,Bi as _,Oe as a,Pf as a0,Tf as a1,Af as a2,Mf as a3,Ef as a4,jf as a5,xu as a6,kf as a7,Ps as a8,Sf as a9,ju as aa,qr as ab,ei as ac,of as ad,rf as ae,wf as af,Of as ag,Ff as ah,Ft as ai,Rf as aj,Lf as ak,zf as al,$f as am,Yf as an,Vf as ao,qf as ap,Hf as aq,Bf as ar,Uf as as,Wf as at,Gf as au,Vt as av,yf as aw,Un as ax,ro as ay,$n as az,lt as b,Re as c,Jn as d,Cf as e,af as f,Jr as g,Ku as h,Ui as i,If as j,vf as k,yu as l,We as m,xf as n,bf as o,_f as p,ni as q,Ns as r,ws as s,$s as t,Iu as u,ti as v,yt as w,Su as x,Nu as y,Xn as z};
|
|
248
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ro(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,o)}return r}function Rt(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?Ro(Object(r),!0).forEach(function(o){nn(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ro(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function tn(e,n){return Md(e)||Od(e,n)||Ei(e,n)||Rd()}function $e(e){return Ed(e)||jd(e)||Ei(e)||Fd()}function Ld(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function zd(e){var n=Ld(e,"string");return typeof n=="symbol"?n:n+""}function pr(e){"@babel/helpers - typeof";return pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},pr(e)}function Ei(e,n){if(e){if(typeof e=="string")return hr(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hr(e,n):void 0}}var $d=Ia(Sa);function Fo(e,n,r){!n||typeof r!="string"||e.filter(function(o){return!o[r]}).forEach(function(o){o[r]=$d(n(o))})}function Ud(e,n){var r=e.nodes,o=e.links,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.nodeFilter,s=a===void 0?function(){return!0}:a,l=i.onLoopError,d=l===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:l,c={};r.forEach(function(p){return c[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),o.forEach(function(p){var g=p.source,k=p.target,b=I(g),v=I(k);if(!c.hasOwnProperty(b))throw"Missing source node with id: ".concat(b);if(!c.hasOwnProperty(v))throw"Missing target node with id: ".concat(v);var w=c[b],D=c[v];w.out.push(D);function I(S){return pr(S)==="object"?n(S):S}});var h=[];m(Object.values(c));var u=Object.assign.apply(Object,[{}].concat($e(Object.entries(c).filter(function(p){var g=tn(p,2),k=g[1];return!k.skip}).map(function(p){var g=tn(p,2),k=g[0],b=g[1];return nn({},k,b.depth)}))));return u;function m(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,b=function(){var I=p[v];if(g.indexOf(I)!==-1){var S=[].concat($e(g.slice(g.indexOf(I))),[I]).map(function(N){return n(N.data)});return h.some(function(N){return N.length===S.length&&N.every(function(P,T){return P===S[T]})})||(h.push(S),d(S)),1}k>I.depth&&(I.depth=k,m(I.out,[].concat($e(g),[I]),k+(I.skip?0:1)))},v=0,w=p.length;v<w;v++)b()}}var Bd=2,we=function(n,r){return r.onNeedsRedraw&&r.onNeedsRedraw()},Lo=function(n,r){if(!r.isShadow){var o=ee(r.linkDirectionalParticles);r.graphData.links.forEach(function(i){var a=Math.round(Math.abs(o(i)));a?i.__photons=$e(Array(a)).map(function(){return{}}):delete i.__photons})}},Pn=xr({props:{graphData:{default:{nodes:[],links:[]},onChange:function(n,r){r.engineRunning=!1,Lo(n,r)}},dagMode:{onChange:function(n,r){!n&&(r.graphData.nodes||[]).forEach(function(o){return o.fx=o.fy=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(n){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:we},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:we},nodeColor:{default:"color",triggerUpdate:!1,onChange:we},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:we},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:we},linkColor:{default:"color",triggerUpdate:!1,onChange:we},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:we},linkWidth:{default:1,triggerUpdate:!1,onChange:we},linkCurvature:{default:0,triggerUpdate:!1,onChange:we},linkCanvasObject:{triggerUpdate:!1,onChange:we},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:we},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:we},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:we},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:we},linkDirectionalParticles:{default:0,triggerUpdate:!1,onChange:Lo},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},linkDirectionalParticleCanvasObject:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaDecay(n)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaTarget(n)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.velocityDecay(n)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(n,r,o){return o===void 0?n.forceLayout.force(r):(n.forceLayout.force(r,o),this)},d3ReheatSimulation:function(n){return n.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(n){return n.cntTicks=0,n.startTickTime=new Date,n.engineRunning=!0,this},isEngineRunning:function(n){return!!n.engineRunning},tickFrame:function(n){return!n.isShadow&&r(),i(),!n.isShadow&&a(),!n.isShadow&&s(),o(),this;function r(){n.engineRunning&&(++n.cntTicks>n.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin?(n.engineRunning=!1,n.onEngineStop()):(n.forceLayout.tick(),n.onEngineTick()))}function o(){var l=ee(n.nodeVisibility),d=ee(n.nodeVal),c=ee(n.nodeColor),h=ee(n.nodeCanvasObjectMode),u=n.ctx,m=n.isShadow/n.globalScale,p=n.graphData.nodes.filter(l);u.save(),p.forEach(function(g){var k=h(g);if(n.nodeCanvasObject&&(k==="before"||k==="replace")&&(n.nodeCanvasObject(g,u,n.globalScale),k==="replace")){u.restore();return}var b=Math.sqrt(Math.max(0,d(g)||1))*n.nodeRelSize+m;u.beginPath(),u.arc(g.x,g.y,b,0,2*Math.PI,!1),u.fillStyle=c(g)||"rgba(31, 120, 180, 0.92)",u.fill(),n.nodeCanvasObject&&k==="after"&&n.nodeCanvasObject(g,n.ctx,n.globalScale)}),u.restore()}function i(){var l=ee(n.linkVisibility),d=ee(n.linkColor),c=ee(n.linkWidth),h=ee(n.linkLineDash),u=ee(n.linkCurvature),m=ee(n.linkCanvasObjectMode),p=n.ctx,g=n.isShadow*2,k=n.graphData.links.filter(l);k.forEach(N);var b=[],v=[],w=k;if(n.linkCanvasObject){var D=[],I=[];k.forEach(function(P){return({before:b,after:v,replace:D}[m(P)]||I).push(P)}),w=[].concat($e(b),v,I),b=b.concat(D)}p.save(),b.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();var S=Nd(w,[d,c,h]);p.save(),Object.entries(S).forEach(function(P){var T=tn(P,2),U=T[0],E=T[1],$=!U||U==="undefined"?"rgba(0,0,0,0.15)":U;Object.entries(E).forEach(function(F){var B=tn(F,2),A=B[0],Y=B[1],te=(A||1)/n.globalScale+g;Object.entries(Y).forEach(function(ie){var ke=tn(ie,2);ke[0];var De=ke[1],Ae=h(De[0]);p.beginPath(),De.forEach(function(ye){var me=ye.source,ae=ye.target;if(!(!me||!ae||!me.hasOwnProperty("x")||!ae.hasOwnProperty("x"))){p.moveTo(me.x,me.y);var q=ye.__controlPoints;q?p[q.length===2?"quadraticCurveTo":"bezierCurveTo"].apply(p,$e(q).concat([ae.x,ae.y])):p.lineTo(ae.x,ae.y)}}),p.strokeStyle=$,p.lineWidth=te,p.setLineDash(Ae||[]),p.stroke()})})}),p.restore(),p.save(),v.forEach(function(P){return n.linkCanvasObject(P,p,n.globalScale)}),p.restore();function N(P){var T=u(P);if(!T){P.__controlPoints=null;return}var U=P.source,E=P.target;if(!(!U||!E||!U.hasOwnProperty("x")||!E.hasOwnProperty("x"))){var $=Math.sqrt(Math.pow(E.x-U.x,2)+Math.pow(E.y-U.y,2));if($>0){var F=Math.atan2(E.y-U.y,E.x-U.x),B=$*T,A={x:(U.x+E.x)/2+B*Math.cos(F-Math.PI/2),y:(U.y+E.y)/2+B*Math.sin(F-Math.PI/2)};P.__controlPoints=[A.x,A.y]}else{var Y=T*70;P.__controlPoints=[E.x,E.y-Y,E.x+Y,E.y]}}}}function a(){var l=1.6,d=.2,c=ee(n.linkDirectionalArrowLength),h=ee(n.linkDirectionalArrowRelPos),u=ee(n.linkVisibility),m=ee(n.linkDirectionalArrowColor||n.linkColor),p=ee(n.nodeVal),g=n.ctx;g.save(),n.graphData.links.filter(u).forEach(function(k){var b=c(k);if(!(!b||b<0)){var v=k.source,w=k.target;if(!(!v||!w||!v.hasOwnProperty("x")||!w.hasOwnProperty("x"))){var D=Math.sqrt(Math.max(0,p(v)||1))*n.nodeRelSize,I=Math.sqrt(Math.max(0,p(w)||1))*n.nodeRelSize,S=Math.min(1,Math.max(0,h(k))),N=m(k)||"rgba(0,0,0,0.28)",P=b/l/2,T=k.__controlPoints&&Oo(oe,[v.x,v.y].concat($e(k.__controlPoints),[w.x,w.y])),U=T?function(te){return T.get(te)}:function(te){return{x:v.x+(w.x-v.x)*te||0,y:v.y+(w.y-v.y)*te||0}},E=T?T.length():Math.sqrt(Math.pow(w.x-v.x,2)+Math.pow(w.y-v.y,2)),$=D+b+(E-D-I-b)*S,F=U($/E),B=U(($-b)/E),A=U(($-b*(1-d))/E),Y=Math.atan2(F.y-B.y,F.x-B.x)-Math.PI/2;g.beginPath(),g.moveTo(F.x,F.y),g.lineTo(B.x+P*Math.cos(Y),B.y+P*Math.sin(Y)),g.lineTo(A.x,A.y),g.lineTo(B.x-P*Math.cos(Y),B.y-P*Math.sin(Y)),g.fillStyle=N,g.fill()}}}),g.restore()}function s(){var l=ee(n.linkDirectionalParticles),d=ee(n.linkDirectionalParticleSpeed),c=ee(n.linkDirectionalParticleOffset),h=ee(n.linkDirectionalParticleWidth),u=ee(n.linkVisibility),m=ee(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(u).forEach(function(g){var k=l(g);if(!(!g.hasOwnProperty("__photons")||!g.__photons.length)){var b=g.source,v=g.target;if(!(!b||!v||!b.hasOwnProperty("x")||!v.hasOwnProperty("x"))){var w=d(g),D=Math.abs(c(g)),I=g.__photons||[],S=Math.max(0,h(g)/2)/Math.sqrt(n.globalScale),N=m(g)||"rgba(0,0,0,0.28)";p.fillStyle=N;var P=g.__controlPoints?Oo(oe,[b.x,b.y].concat($e(g.__controlPoints),[v.x,v.y])):null,T=0,U=!1;I.forEach(function(E){var $=!!E.__singleHop;if(E.hasOwnProperty("__progressRatio")||(E.__progressRatio=$?w<0?1:0:(T+D)/k),!$&&T++,E.__progressRatio+=w,E.__progressRatio>=1||E.__progressRatio<0)if(!$)E.__progressRatio=E.__progressRatio%1,E.__progressRatio<0&&E.__progressRatio++;else{U=!0;return}var F=E.__progressRatio,B=P?P.get(F):{x:b.x+(v.x-b.x)*F||0,y:b.y+(v.y-b.y)*F||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(B.x,B.y,g,p,n.globalScale):(p.beginPath(),p.arc(B.x,B.y,S,0,2*Math.PI,!1),p.fill())}),U&&(g.__photons=g.__photons.filter(function(E){return!E.__singleHop||E.__progressRatio<=1&&E.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:sd().force("link",Qc()).force("charge",ld()).force("center",yc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fo(n.graphData.nodes,ee(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fo(n.graphData.links,ee(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(m){m.source=m[n.linkSource],m.target=m[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var o=n.forceLayout.force("link");o&&o.id(function(m){return m[n.nodeId]}).links(n.graphData.links);var i=n.dagMode&&Ud(n.graphData,function(m){return m[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,$e(Object.values(i||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*Bd*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var l=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return delete m[l]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var d=["rl","bu"].includes(n.dagMode),c=function(p){return(i[p[n.nodeId]]-a/2)*s*(d?-1:1)},h=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(m){return m[h]=c(m)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?cd(function(m){var p=i[m[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(m){return n.dagNodeFilter(m)?1:0}):null);for(var u=0;u<n.warmupTicks&&!(n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin);u++)n.forceLayout.tick();this.resetCountdown(),n.onFinishUpdate()}});function ji(e,n){var r=e instanceof Array?e:[e],o=new n;return o._destructor&&o._destructor(),{linkProp:function(a){return{default:o[a](),onChange:function(l,d){r.forEach(function(c){return d[c][a](l)})},triggerUpdate:!1}},linkMethod:function(a){return function(s){for(var l=arguments.length,d=new Array(l>1?l-1:0),c=1;c<l;c++)d[c-1]=arguments[c];var h=[];return r.forEach(function(u){var m=s[u],p=m[a].apply(m,d);p!==m&&h.push(p)}),h.length?h[0]:this}}}}var Hd=800,Vd=4,Gd=5,Oi=ji("forceGraph",Pn),Wd=ji(["forceGraph","shadowGraph"],Pn),qd=Object.assign.apply(Object,$e(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleCanvasObject","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(e){return nn({},e,Oi.linkProp(e))})).concat($e(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map(function(e){return nn({},e,Wd.linkProp(e))})))),Yd=Object.assign.apply(Object,$e(["d3Force","d3ReheatSimulation","emitParticle"].map(function(e){return nn({},e,Oi.linkMethod(e))})));function Wn(e){if(e.canvas){var n=e.canvas.width,r=e.canvas.height;n===300&&r===150&&(n=r=0);var o=window.devicePixelRatio;n/=o,r/=o,[e.canvas,e.shadowCanvas].forEach(function(a){a.style.width="".concat(e.width,"px"),a.style.height="".concat(e.height,"px"),a.width=e.width*o,a.height=e.height*o,!n&&!r&&a.getContext("2d").scale(o,o)});var i=ot(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-n)/2/i,(e.height-r)/2/i),e.needsRedraw=!0}}function Ri(e){var n=window.devicePixelRatio;e.setTransform(n,0,0,n,0,0)}function zo(e,n,r){e.save(),Ri(e),e.clearRect(0,0,n,r),e.restore()}var Kd=xr({props:Rt({width:{default:window.innerWidth,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(n,r){return Wn(r)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(n,r){[n.nodes,n.links].every(function(i){return(i||[]).every(function(a){return!a.hasOwnProperty("__indexColor")})})&&r.colorTracker.reset(),[{type:"Node",objs:n.nodes},{type:"Link",objs:n.links}].forEach(o),r.forceGraph.graphData(n),r.shadowGraph.graphData(n);function o(i){var a=i.type,s=i.objs;s.filter(function(l){if(!l.hasOwnProperty("__indexColor"))return!0;var d=r.colorTracker.lookup(l.__indexColor);return!d||!d.hasOwnProperty("d")||d.d!==l}).forEach(function(l){l.__indexColor=r.colorTracker.register({type:a,d:l})})}},triggerUpdate:!1},backgroundColor:{onChange:function(n,r){r.canvas&&n&&(r.canvas.style.background=n)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(n,r){r.shadowGraph.nodeCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(n,r){r.shadowGraph.linkCanvasObject(n?function(o,i,a){return n(o,o.__indexColor,i,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(n,r){r.zoom.scaleExtent([n,r.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(n,r){r.zoom.scaleExtent([r.zoom.scaleExtent()[0],n])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(n,r){r.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1},onZoom:{triggerUpdate:!1},onZoomEnd:{triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},qd),aliases:{stopAnimation:"pauseAnimation"},methods:Rt({graph2ScreenCoords:function(n,r,o){var i=ot(n.canvas);return{x:r*i.k+i.x,y:o*i.k+i.y}},screen2GraphCoords:function(n,r,o){var i=ot(n.canvas);return{x:(r-i.x)/i.k,y:(o-i.y)/i.k}},centerAt:function(n,r,o,i){if(!n.canvas)return null;if(r!==void 0||o!==void 0){var a=Object.assign({},r!==void 0?{x:r}:{},o!==void 0?{y:o}:{});return i?n.tweenGroup.add(new co(s()).to(a,i).easing(Dt.Quadratic.Out).onUpdate(l).onComplete(function(){n.tweenGroup.remove(this)}).start()):l(a),this}return s();function s(){var d=ot(n.canvas);return{x:(n.width/2-d.x)/d.k,y:(n.height/2-d.y)/d.k}}function l(d){var c=d.x,h=d.y;n.zoom.translateTo(n.zoom.__baseElem,c===void 0?s().x:c,h===void 0?s().y:h),n.needsRedraw=!0}},zoom:function(n,r,o){if(!n.canvas)return null;if(r!==void 0)return o?n.tweenGroup.add(new co({k:i()}).to({k:r},o).easing(Dt.Quadratic.Out).onUpdate(function(s){var l=s.k;return a(l)}).onComplete(function(){n.tweenGroup.remove(this)}).start()):a(r),this;return i();function i(){return ot(n.canvas).k}function a(s){n.zoom.scaleTo(n.zoom.__baseElem,s),n.needsRedraw=!0}},zoomToFit:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,i=arguments.length,a=new Array(i>3?i-3:0),s=3;s<i;s++)a[s-3]=arguments[s];var l=this.getGraphBbox.apply(this,a);if(l){var d={x:(l.x[0]+l.x[1])/2,y:(l.y[0]+l.y[1])/2},c=Math.max(1e-12,Math.min(1e12,(n.width-o*2)/(l.x[1]-l.x[0]),(n.height-o*2)/(l.y[1]-l.y[0])));this.centerAt(d.x,d.y,r),this.zoom(c,r)}return this},getGraphBbox:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},o=ee(n.nodeVal),i=function(l){return Math.sqrt(Math.max(0,o(l)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:i(s)}});return a.length?{x:[Hr(a,function(s){return s.x-s.r}),Vr(a,function(s){return s.x+s.r})],y:[Hr(a,function(s){return s.y-s.r}),Vr(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Yd),stateInit:function(){return{lastSetZoom:1,zoom:Ta(),forceGraph:new Pn,shadowGraph:new Pn().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Yl,tweenGroup:new si}},init:function(n,r){var o=this;n.innerHTML="";var i=document.createElement("div");i.classList.add("force-graph-container"),i.style.position="relative",n.appendChild(i),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),i.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),l={x:-1e12,y:-1e12},d=function(){var u=null,m=window.devicePixelRatio,p=l.x>0&&l.y>0?s.getImageData(l.x*m,l.y*m,1,1):null;return p&&(u=r.colorTracker.lookup(p.data)),u};tr(r.canvas).call(Da().subject(function(){if(!r.enableNodeDrag)return null;var h=d();return h&&h.type==="Node"?h.d:null}).on("start",function(h){var u=h.subject;u.__initialDragPos={x:u.x,y:u.y,fx:u.fx,fy:u.fy},h.active||(u.fx=u.x,u.fy=u.y),r.canvas.classList.add("grabbable")}).on("drag",function(h){var u=h.subject,m=u.__initialDragPos,p=h,g=ot(r.canvas).k,k={x:m.x+(p.x-m.x)/g-u.x,y:m.y+(p.y-m.y)/g-u.y};["x","y"].forEach(function(b){return u["f".concat(b)]=u[b]=m[b]+(p[b]-m[b])/g}),!(!u.__dragged&&Gd>=Math.sqrt(Pa(["x","y"].map(function(b){return Math.pow(h[b]-m[b],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,u.__dragged=!0,r.onNodeDrag(u,k))}).on("end",function(h){var u=h.subject,m=u.__initialDragPos,p={x:u.x-m.x,y:u.y-m.y};m.fx===void 0&&(u.fx=void 0),m.fy===void 0&&(u.fy=void 0),delete u.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,u.__dragged&&(delete u.__dragged,r.onNodeDragEnd(u,p))})),r.zoom(r.zoom.__baseElem=tr(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(h){return!h.button&&r.enableZoomPanInteraction&&(h.type!=="wheel"||ee(r.enableZoomInteraction)(h))&&(h.type==="wheel"||ee(r.enablePanInteraction)(h))}).on("zoom",function(h){var u=h.transform;[a,s].forEach(function(m){Ri(m),m.translate(u.x,u.y),m.scale(u.k,u.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Rt(Rt({},u),o.centerAt())),r.needsRedraw=!0}).on("end",function(h){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Rt(Rt({},h.transform),o.centerAt()))}),Wn(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){ot(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=Vd/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new gc(i),["pointermove","pointerdown"].forEach(function(h){return i.addEventListener(h,function(u){h==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=u),!r.isPointerDragging&&u.type==="pointermove"&&r.onBackgroundClick&&(u.pressure>0||r.isPointerPressed)&&(u.pointerType==="mouse"||u.movementX===void 0||[u.movementX,u.movementY].some(function(g){return Math.abs(g)>1}))&&(r.isPointerDragging=!0);var m=p(i);l.x=u.pageX-m.left,l.y=u.pageY-m.top;function p(g){var k=g.getBoundingClientRect(),b=window.pageXOffset||document.documentElement.scrollLeft,v=window.pageYOffset||document.documentElement.scrollTop;return{top:k.top+v,left:k.left+b}}},{passive:!0})}),i.addEventListener("pointerup",function(h){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var u=[h,r.pointerDownEvent];requestAnimationFrame(function(){if(h.button===0)if(r.hoverObj){var m=r["on".concat(r.hoverObj.type,"Click")];m&&m.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,u);if(h.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(u))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,u)})}},{passive:!0}),i.addEventListener("contextmenu",function(h){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(h.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var c=Na(function(){zo(s,r.width,r.height),r.shadowGraph.linkWidth(function(u){return ee(r.linkWidth)(u)+r.linkHoverPrecision});var h=ot(r.canvas);r.shadowGraph.globalScale(h.k).tickFrame()},Hd);r.flushShadowCanvas=c.flush,(this._animationCycle=function h(){var u=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(D){return D.__photons&&D.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var m=r.isPointerDragging?null:d();if(m!==r.hoverObj){var p=r.hoverObj,g=p?p.type:null,k=m?m.type:null;if(g&&g!==k){var b=r["on".concat(g,"Hover")];b&&b(null,p.d)}if(k){var v=r["on".concat(k,"Hover")];v&&v(m.d,g===k?p.d:null)}r.tooltip.content(m&&ee(r["".concat(m.type.toLowerCase(),"Label")])(m.d)||null),r.canvas.classList[(m&&r["on".concat(k,"Click")]||!m&&r.onBackgroundClick)&&ee(r.showPointerCursor)(m==null?void 0:m.d)?"add":"remove"]("clickable"),r.hoverObj=m}u&&c()}if(u){zo(a,r.width,r.height);var w=ot(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,w),r.forceGraph.globalScale(w).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,w)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(h)})()},update:function(n){}}),Fi={exports:{}},Jd="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Xd=Jd,Zd=Xd;function Li(){}function zi(){}zi.resetWarningCache=Li;var Qd=function(){function e(o,i,a,s,l,d){if(d!==Zd){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}e.isRequired=e;function n(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:n,element:e,elementType:e,instanceOf:n,node:e,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:zi,resetWarningCache:Li};return r.PropTypes=r,r};Fi.exports=Qd();var eu=Fi.exports;const x=fa(eu),En={width:x.number,height:x.number,graphData:x.shape({nodes:x.arrayOf(x.object).isRequired,links:x.arrayOf(x.object).isRequired}),backgroundColor:x.string,nodeRelSize:x.number,nodeId:x.string,nodeLabel:x.oneOfType([x.string,x.func]),nodeVal:x.oneOfType([x.number,x.string,x.func]),nodeVisibility:x.oneOfType([x.bool,x.string,x.func]),nodeColor:x.oneOfType([x.string,x.func]),nodeAutoColorBy:x.oneOfType([x.string,x.func]),onNodeHover:x.func,onNodeClick:x.func,linkSource:x.string,linkTarget:x.string,linkLabel:x.oneOfType([x.string,x.func]),linkVisibility:x.oneOfType([x.bool,x.string,x.func]),linkColor:x.oneOfType([x.string,x.func]),linkAutoColorBy:x.oneOfType([x.string,x.func]),linkWidth:x.oneOfType([x.number,x.string,x.func]),linkCurvature:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowLength:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowColor:x.oneOfType([x.string,x.func]),linkDirectionalArrowRelPos:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticles:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleSpeed:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleOffset:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleWidth:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleColor:x.oneOfType([x.string,x.func]),onLinkHover:x.func,onLinkClick:x.func,dagMode:x.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:x.number,dagNodeFilter:x.func,onDagError:x.func,d3AlphaMin:x.number,d3AlphaDecay:x.number,d3VelocityDecay:x.number,warmupTicks:x.number,cooldownTicks:x.number,cooldownTime:x.number,onEngineTick:x.func,onEngineStop:x.func,getGraphBbox:x.func},$i={zoomToFit:x.func,onNodeRightClick:x.func,onNodeDrag:x.func,onNodeDragEnd:x.func,onLinkRightClick:x.func,linkHoverPrecision:x.number,onBackgroundClick:x.func,onBackgroundRightClick:x.func,showPointerCursor:x.oneOfType([x.bool,x.func]),enablePointerInteraction:x.bool,enableNodeDrag:x.bool},Dr={showNavInfo:x.bool,nodeOpacity:x.number,nodeResolution:x.number,nodeThreeObject:x.oneOfType([x.object,x.string,x.func]),nodeThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),nodePositionUpdate:x.func,linkOpacity:x.number,linkResolution:x.number,linkCurveRotation:x.oneOfType([x.number,x.string,x.func]),linkMaterial:x.oneOfType([x.object,x.string,x.func]),linkThreeObject:x.oneOfType([x.object,x.string,x.func]),linkThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),linkPositionUpdate:x.func,linkDirectionalArrowResolution:x.number,linkDirectionalParticleResolution:x.number,linkDirectionalParticleThreeObject:x.oneOfType([x.object,x.string,x.func]),forceEngine:x.oneOf(["d3","ngraph"]),ngraphPhysics:x.object,numDimensions:x.oneOf([1,2,3])},tu=Object.assign({},En,$i,{linkLineDash:x.oneOfType([x.arrayOf(x.number),x.string,x.func]),nodeCanvasObjectMode:x.oneOfType([x.string,x.func]),nodeCanvasObject:x.func,nodePointerAreaPaint:x.func,linkCanvasObjectMode:x.oneOfType([x.string,x.func]),linkCanvasObject:x.func,linkPointerAreaPaint:x.func,linkDirectionalParticleCanvasObject:x.func,autoPauseRedraw:x.bool,minZoom:x.number,maxZoom:x.number,enableZoomInteraction:x.oneOfType([x.bool,x.func]),enablePanInteraction:x.oneOfType([x.bool,x.func]),onZoom:x.func,onZoomEnd:x.func,onRenderFramePre:x.func,onRenderFramePost:x.func});Object.assign({},En,$i,Dr,{enableNavigationControls:x.bool,controlType:x.oneOf(["trackball","orbit","fly"]),rendererConfig:x.object,extraRenderers:x.arrayOf(x.shape({render:x.func.isRequired}))});Object.assign({},En,Dr,{nodeDesc:x.oneOfType([x.string,x.func]),linkDesc:x.oneOfType([x.string,x.func])});Object.assign({},En,Dr,{markerAttrs:x.object,yOffset:x.number,glScale:x.number});const Pr=tl(Kd,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Pr.displayName="ForceGraph2D";Pr.propTypes=tu;function $o(e){return e==="contains"}function nu(e){return e==="related_to"||e==="part_of"||e==="depends_on"}function ru(e,n){var h,u;const r=new Set(e),o=new Map,i=new Map,a=new Map;for(const m of e)o.set(m,[]),i.set(m,[]),a.set(m,0);for(const m of n)!r.has(m.from)||!r.has(m.to)||m.from===m.to||(o.get(m.from).push(m.to),i.get(m.to).push(m.from),a.set(m.to,(a.get(m.to)??0)+1));let s=e.filter(m=>(a.get(m)??0)===0);if(s.length===0&&e.length>0){const m=new Map;for(const k of e)m.set(k,(((h=o.get(k))==null?void 0:h.length)??0)+(((u=i.get(k))==null?void 0:u.length)??0));const p=[...e].sort((k,b)=>(m.get(b)??0)-(m.get(k)??0)),g=m.get(p[0])??0;s=p.filter(k=>(m.get(k)??0)===g).slice(0,12)}const l=new Map,d=[];for(const m of s)l.set(m,0),d.push(m);let c=0;for(;c<d.length;){const m=d[c++],p=l.get(m)??0;for(const g of o.get(m)??[]){const k=p+1;(!l.has(g)||k<(l.get(g)??1/0))&&(l.set(g,k),d.push(g))}}for(const m of e)l.has(m)||l.set(m,0);return{childrenOf:o,parentsOf:i,roots:s,depthMap:l}}function qn(e,n,r,o,i){return i.has(e)?!1:(r.get(e)??0)<n?!0:o.has(e)}function ou(e,n,r){const o=new Set(e),i=[...e];let a=0;for(;a<i.length;){const s=i[a++];if(r(s))for(const l of n.get(s)??[])o.has(l)||(o.add(l),i.push(l))}return o}function iu(e,n){const r=[],o=new Set,i=[...n.get(e)??[]];for(;i.length>0;){const a=i.pop();if(!o.has(a)){o.add(a),r.push(a);for(const s of n.get(a)??[])i.push(s)}}return r}function au(e){const{event:n,data:r}=e;switch(n){case"task.started":return`🚀 开始生成,共 ${(r==null?void 0:r.totalDocs)??0} 篇文档`;case"doc.started":return`📄 处理中:${(r==null?void 0:r.docPath)??""}(${(r==null?void 0:r.index)??0}/${(r==null?void 0:r.total)??0})`;case"doc.completed":return`✅ ${(r==null?void 0:r.docPath)??""}(提取 ${(r==null?void 0:r.conceptsExtracted)??0} 个知识块)`;case"doc.failed":return`⚠️ ${(r==null?void 0:r.docPath)??""} 失败:${(r==null?void 0:r.error)??""}`;case"folder.started":return`📁 归纳目录:${(r==null?void 0:r.folderPath)??""}`;case"folder.completed":return`✅ 目录归纳完成:${(r==null?void 0:r.folderPath)??""}`;case"domain.started":return"🌐 开始 domain 级合成";case"domain.completed":return`✅ domain 合成完成(${(r==null?void 0:r.totalNodes)??0} 节点,${(r==null?void 0:r.totalEdges)??0} 边)`;case"task.yielded":return"⏸️ 让出资源,排队等待中...";case"task.progress":return`⏳ ${(r==null?void 0:r.phase)??"progress"} ${(r==null?void 0:r.current)??0}/${(r==null?void 0:r.total)??0}`;case"task.completed":return`🎉 生成完成!${(r==null?void 0:r.nodes)??0} 个节点,${(r==null?void 0:r.edges)??0} 条边`;case"task.failed":return`❌ 生成失败:${(r==null?void 0:r.error)??""}`;default:return`${n}${r?`: ${JSON.stringify(r)}`:""}`}}function Uo(e){return e<=1?"排队中,即将开始…":`排队中,前面还有 ${e-1} 个任务`}function Yn(e,n,r){const o=Math.max(e,.2);return Math.max(r??n*.75,n)/o}function su({scope:e,resourceId:n,name:r,onOpenDocument:o}){const[i,a]=_.useState(null),[s,l]=_.useState(!0),[d,c]=_.useState(null),[h,u]=_.useState(!1),[m,p]=_.useState(!1),[g,k]=_.useState(0),[b,v]=_.useState(()=>new Set),[w,D]=_.useState(()=>new Set),[I,S]=_.useState(null),[N,P]=_.useState(null),[T,U]=_.useState(null),E=_.useRef(null),$=_.useRef(new Map),[F,B]=_.useState("not_found"),[A,Y]=_.useState([]),[te,ie]=_.useState(null),[ke,De]=_.useState(0),Ae=`graph:${e==="domain"?"domain":"dir"}:${n}`,ye=_.useRef(Ae),me=_.useRef(null),ae=F==="running"||F==="pending";_.useEffect(()=>{let C=!1;return l(!0),c(null),S(null),k(0),v(new Set),D(new Set),p(!1),U(null),$.current=new Map,(e==="domain"?ao:io)(n).then(O=>{C||(a(O),l(!1))}).catch(O=>{C||(c(O.message||"加载失败"),l(!1))}),()=>{C=!0}},[n,e]),_.useEffect(()=>(ye.current=Ae,fe(),q(),()=>fe()),[Ae]);async function q(){try{const C=await Os(ye.current);B(C.status),Y(C.logs),ie(C.progress??null),De(C.position),C.status==="completed"?(fe(),ue()):C.status==="failed"||C.status==="stale"?(fe(),C.error&&c(C.error)):(C.status==="running"||C.status==="pending")&&J()}catch{}}function J(){me.current||(me.current=window.setInterval(()=>{q()},2e3))}function fe(){me.current&&(clearInterval(me.current),me.current=null)}async function ue(){try{const M=await(e==="domain"?ao:io)(n);a(M)}catch(C){c(C.message||"加载失败")}}const Me=async()=>{if(!ae){c(null);try{const M=await(e==="domain"?js:Es)(n);ye.current=M.taskId,B(M.status),De(M.position),Y([]),ie(null),J()}catch(C){c(C.message||"生成失败")}}},Ve=_.useMemo(()=>i?h?i.nodes:i.nodes.filter(C=>C.type==="concept"):[],[i,h]),Ue=_.useMemo(()=>{if(!i)return[];const C=new Set(Ve.map(M=>M.id));return i.edges.filter(M=>C.has(M.from)&&C.has(M.to))},[i,Ve]),ve=_.useMemo(()=>{const C=Ue.filter(M=>$o(String(M.type))).map(M=>({from:M.from,to:M.to}));return ru(Ve.map(M=>M.id),C)},[Ve,Ue]),Fe=_.useMemo(()=>ou(ve.roots,ve.childrenOf,C=>qn(C,g,ve.depthMap,b,w)),[ve,g,b,w]),{displayNodes:ct,displayEdges:Ze}=_.useMemo(()=>{const C=Ve.filter(O=>Fe.has(O.id)),M=Ue.filter(O=>{if(!Fe.has(O.from)||!Fe.has(O.to))return!1;const L=String(O.type);return!!($o(L)||m&&nu(L))});return{displayNodes:C,displayEdges:M}},[Ve,Ue,Fe,m]),an=_.useMemo(()=>{const C=new Map;for(const M of Ve)C.set(M.id,M);return C},[Ve]);function dt(C){k(C),v(new Set),D(new Set)}function ut(C){if((ve.childrenOf.get(C)??[]).length===0)return;qn(C,g,ve.depthMap,b,w)?(D(L=>new Set(L).add(C)),v(L=>{const G=new Set(L);return G.delete(C),G})):(D(L=>{const G=new Set(L);return G.delete(C),G}),v(L=>new Set(L).add(C)))}function Ut(C){const M=iu(C.id,ve.parentsOf);D(O=>{const L=new Set(O);for(const G of M)L.delete(G);return L}),v(O=>{const L=new Set(O);for(const G of M)L.add(G);return L}),S(C)}const _t=_.useMemo(()=>{const C=ct.map(L=>{var Ee;const G=((Ee=ve.childrenOf.get(L.id))==null?void 0:Ee.length)??0,X=qn(L.id,g,ve.depthMap,b,w),K=$.current.get(L.id);let Q=K==null?void 0:K.x,de=K==null?void 0:K.y;if(Q==null||de==null){const Ne=(ve.parentsOf.get(L.id)??[]).map(be=>$.current.get(be)).find(be=>be!=null);Ne?(Q=Ne.x+(Math.random()-.5)*60,de=Ne.y+50+Math.random()*40):(Q=(Math.random()-.5)*240,de=(Math.random()-.5)*180),$.current.set(L.id,{x:Q,y:de})}return{id:L.id,name:L.label,type:L.type,val:L.type==="concept"?4:2,x:Q,y:de,__raw:L,__childCount:G,__expanded:X}}),M=new Map,O=Ze.map(L=>{const G=`${L.from}->${L.to}`,X=M.get(G)??0;M.set(G,X+1);const K=X===0?.08:.08+X*.14;return{source:L.from,target:L.to,type:L.type,curvature:K,__raw:L}});return{nodes:C,links:O}},[ct,Ze,ve,g,b,w]),Qe=_.useMemo(()=>{const C=Math.max(1,ct.length);return{linkDistance:Math.min(140,70+Math.sqrt(C)*8),chargeStrength:Math.max(-420,-120-C*6)}},[ct.length]),ne=_.useRef(null),[wt,Pe]=_.useState({width:800,height:600});_.useEffect(()=>{if(!ne.current)return;const C=()=>{ne.current&&Pe({width:ne.current.clientWidth,height:ne.current.clientHeight})};C();const M=new ResizeObserver(C);return M.observe(ne.current),()=>M.disconnect()},[]),_.useEffect(()=>{if(!i||s)return;const C=window.setTimeout(()=>{var M,O;(O=(M=E.current)==null?void 0:M.zoomToFit)==null||O.call(M,400,80)},450);return()=>window.clearTimeout(C)},[i,h,m,s,wt.width,wt.height,g,Fe]),_.useEffect(()=>{var L,G,X,K;if(!i||s)return;const C=E.current;if(!C)return;const M=C.d3Force("charge");(L=M==null?void 0:M.strength)==null||L.call(M,Qe.chargeStrength);const O=C.d3Force("link");(G=O==null?void 0:O.distance)==null||G.call(O,Qe.linkDistance),(X=O==null?void 0:O.strength)==null||X.call(O,.35),(K=C.d3ReheatSimulation)==null||K.call(C)},[Qe,i,s,h,_t]);const pe=C=>(ve.childrenOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),ft=C=>(ve.parentsOf.get(C)??[]).map(O=>an.get(O)??(i==null?void 0:i.nodes.find(L=>L.id===O))).filter(O=>!!O),mt=C=>{if(!i)return[];const M=new Set,O=[],L=[C];for(;L.length>0;){const G=L.shift();if(M.has(G))continue;M.add(G);const X=i.nodes.find(Q=>Q.id===G);(X==null?void 0:X.type)==="doc"&&O.push(X);const K=i.edges.filter(Q=>Q.from===G).map(Q=>Q.to);L.push(...K)}return O};return f.jsxs("div",{className:"graph-page",children:[f.jsxs("div",{className:"graph-toolbar",children:[f.jsxs("div",{className:"graph-title",children:[f.jsx("span",{className:"graph-icon",children:"🕸️"}),f.jsxs("span",{children:["知识图谱 — ",r]})]}),f.jsxs("div",{className:"graph-actions",children:[f.jsxs("div",{className:"graph-depth-btns",children:[f.jsx("button",{type:"button",className:`graph-btn ${g===1?"graph-btn-active":""}`,onClick:()=>dt(1),title:"展开到深度 1(顶层 + 直接子)",children:"展开一级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===2?"graph-btn-active":""}`,onClick:()=>dt(2),title:"展开到深度 2",children:"展开到二级"}),f.jsx("button",{type:"button",className:`graph-btn ${g===0&&b.size===0?"graph-btn-active":""}`,onClick:()=>dt(0),title:"仅顶层",children:"全部收起"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:m,onChange:C=>p(C.target.checked)}),f.jsx("span",{children:"显示其它关系"})]}),f.jsxs("label",{className:"graph-toggle",children:[f.jsx("input",{type:"checkbox",checked:h,onChange:C=>u(C.target.checked)}),f.jsx("span",{children:"显示 doc 节点"})]}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?f.jsxs(f.Fragment,{children:[f.jsx($n,{size:14,className:"spin"}),F==="pending"?Uo(ke):"生成中..."]}):f.jsxs(f.Fragment,{children:[f.jsx(Ja,{size:14}),i?"重新生成":"生成图谱"]})})]})]}),f.jsxs("div",{className:"graph-canvas-container",ref:ne,children:[s&&f.jsxs("div",{className:"graph-loading",children:[f.jsx($n,{size:32,className:"spin"}),f.jsx("p",{children:"加载图谱中..."})]}),d&&!s&&f.jsxs("div",{className:"graph-error",children:[f.jsxs("p",{children:["❌ ",d]}),f.jsx("button",{className:"graph-btn",onClick:Me,children:"重试生成"})]}),!s&&!d&&!i&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"🕸️"}),f.jsx("h3",{children:"还没有知识图谱"}),f.jsx("p",{className:"muted",children:"点击右上角「生成图谱」开始构建"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,children:ae?"生成中...":"生成图谱"})]}),ae&&f.jsxs("div",{className:"graph-progress-panel",children:[f.jsxs("div",{className:"graph-progress-header",children:[f.jsx($n,{size:16,className:"spin"}),f.jsx("span",{children:F==="pending"?Uo(ke):te?`正在生成(${te.current}/${te.total})`:"正在生成..."})]}),te&&te.total>0&&f.jsx("div",{className:"graph-progress-bar",children:f.jsx("div",{className:"graph-progress-bar-fill",style:{width:`${te.current/te.total*100}%`}})}),f.jsx("div",{className:"graph-progress-logs",children:A.slice(-10).map((C,M)=>f.jsx("div",{className:`graph-log-item graph-log-${C.level}`,children:f.jsx("span",{className:"graph-log-event",children:au(C)})},M))})]}),!s&&!d&&i&&i.nodes.length===0&&!ae&&f.jsxs("div",{className:"graph-empty",children:[f.jsx("p",{style:{fontSize:48,margin:0},children:"📄"}),f.jsx("h3",{children:"图谱已生成"}),f.jsx("p",{className:"muted",children:"当前内容暂未提取到可关联的知识概念"}),f.jsx("p",{className:"muted",style:{fontSize:13,marginTop:4},children:"内容较少或结构较简单时可能出现这种情况,补充更多内容后可以重新生成"}),f.jsx("button",{className:"graph-btn graph-btn-primary",onClick:Me,disabled:ae,style:{marginTop:12},children:"重新生成"})]}),!s&&!d&&i&&i.nodes.length>0&&f.jsx(Pr,{ref:E,width:wt.width,height:wt.height,graphData:_t,nodeId:"id",nodeVal:C=>C.type==="concept"?6:3,nodeColor:C=>C.type==="concept"?"#8b5cf6":"#06b6d4",nodeCanvasObjectMode:()=>"replace",nodeCanvasObject:(C,M,O)=>{const L=String(C.name??""),G=C.type==="concept",X=C.id===(I==null?void 0:I.id)||C.id===N,K=(G?9:5)/Math.max(O,.35);if(M.beginPath(),M.arc(C.x,C.y,K,0,2*Math.PI),M.fillStyle=G?"#8b5cf6":"#06b6d4",M.globalAlpha=X||!I?1:.35,M.fill(),M.strokeStyle="#ffffff",M.lineWidth=1.5/Math.max(O,.35),M.stroke(),M.globalAlpha=1,C.__childCount>0){const et=7/Math.max(O,.4),Ie=C.x+K+et*.9,Tt=C.y-K*.2;M.beginPath(),M.arc(Ie,Tt,et,0,2*Math.PI),M.fillStyle=C.__expanded?"#475569":"#6366f1",M.fill(),M.fillStyle="#ffffff";const ht=C.__expanded?"−":"+",kt=Math.max(10/O,9/O);M.font=`700 ${kt}px -apple-system, BlinkMacSystemFont, sans-serif`,M.textAlign="center",M.textBaseline="middle",M.fillText(ht,Ie,Tt+.5/O)}if(!(X||G&&O>=.55||!G&&O>=1.4))return;const de=Math.max(10/O,G?11/O:9/O),Ee=G?O<.9?8:16:10,Ne=L.length>Ee?L.slice(0,Ee)+"…":L;M.font=`${G?"600":"400"} ${de}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="top";const be=C.y+K+3/O,he=M.measureText(Ne).width,ge=4/O,Ce=2/O;M.fillStyle="rgba(255,255,255,0.88)",M.fillRect(C.x-he/2-ge,be-Ce,he+ge*2,de+Ce*2),M.fillStyle=G?"#1e1b4b":"#0c4a6e",M.fillText(Ne,C.x,be)},linkDirectionalArrowLength:C=>{var L,G,X,K,Q,de;const M=((G=(L=E.current)==null?void 0:L.zoom)==null?void 0:G.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?13:11,9)},linkDirectionalArrowRelPos:.86,linkDirectionalArrowColor:()=>"#475569",linkWidth:C=>{var L,G,X,K,Q,de;const M=((G=(L=E.current)==null?void 0:L.zoom)==null?void 0:G.call(L))??1,O=((X=C.source)==null?void 0:X.id)===N||((K=C.target)==null?void 0:K.id)===N||((Q=C.source)==null?void 0:Q.id)===(I==null?void 0:I.id)||((de=C.target)==null?void 0:de.id)===(I==null?void 0:I.id);return Yn(M,O?3.5:3,2.25)},linkColor:C=>{var O,L,G,X;return((O=C.source)==null?void 0:O.id)===N||((L=C.target)==null?void 0:L.id)===N||((G=C.source)==null?void 0:G.id)===(I==null?void 0:I.id)||((X=C.target)==null?void 0:X.id)===(I==null?void 0:I.id)?"#334155":"#64748b"},linkCurvature:C=>C.curvature??.12,linkCanvasObjectMode:()=>"after",linkCanvasObject:(C,M,O)=>{if(O<.45)return;const L=C.source,G=C.target;if(L.x==null||L.y==null||G.x==null||G.y==null)return;const K={contains:"包含",related_to:"相关",part_of:"属于",depends_on:"依赖"}[C.type]||String(C.type??""),Q=typeof C.curvature=="number"?C.curvature:.12,de=(L.x+G.x)/2,Ee=(L.y+G.y)/2,Ne=de-(G.y-L.y)*Q,be=Ee+(G.x-L.x)*Q,he=.5,ge=1-he,Ce=ge*ge*L.x+2*ge*he*Ne+he*he*G.x,et=ge*ge*L.y+2*ge*he*be+he*he*G.y,Ie=2*ge*(Ne-L.x)+2*he*(G.x-Ne),Tt=2*ge*(be-L.y)+2*he*(G.y-be);let ht=Math.atan2(Tt,Ie);(ht>Math.PI/2||ht<-Math.PI/2)&&(ht+=Math.PI);const kt=Yn(O,11,9);M.save(),M.translate(Ce,et),M.rotate(ht),M.font=`500 ${kt}px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,M.textAlign="center",M.textBaseline="middle";const sn=M.measureText(K).width,ln=3/O,cn=1.5/O;M.fillStyle="rgba(255,255,255,0.92)",M.fillRect(-sn/2-ln,-kt/2-cn,sn+ln*2,kt+cn*2),M.fillStyle="#475569",M.fillText(K,0,0),M.restore()},onZoom:()=>{var C,M;(M=(C=E.current)==null?void 0:C.refresh)==null||M.call(C)},cooldownTicks:120,cooldownTime:4e3,d3AlphaDecay:.022,d3VelocityDecay:.3,onNodeClick:(C,M)=>{var L,G;const O=C.__childCount??0;if(O>0&&E.current&&ne.current){const X=ne.current.getBoundingClientRect(),K=E.current.screen2GraphCoords(M.clientX-X.left,M.clientY-X.top),Q=((G=(L=E.current).zoom)==null?void 0:G.call(L))??1,de=(C.type==="concept"?9:5)/Math.max(Q,.35),Ee=7/Math.max(Q,.4),Ne=C.x+de+Ee*.9,be=C.y-de*.2,he=K.x-Ne,ge=K.y-be;if(he*he+ge*ge<=(Ee+4/Q)**2){ut(String(C.id)),S(C.__raw);return}}S(C.__raw),O>0&&!C.__expanded&&ut(String(C.id))},onNodeHover:C=>{var O;if(!C){P(null),U(null);return}P(String(C.id));const M=String(C.name??((O=C.__raw)==null?void 0:O.label)??"");if(E.current&&M){const L=E.current.graph2ScreenCoords(C.x,C.y);U({text:M,x:L.x,y:L.y})}else U({text:M,x:0,y:0})},onBackgroundClick:()=>{S(null),P(null),U(null)},onEngineTick:()=>{var M,O;const C=(O=(M=E.current)==null?void 0:M.graphData)==null?void 0:O.call(M);if(C!=null&&C.nodes)for(const L of C.nodes)L.id!=null&&L.x!=null&&L.y!=null&&$.current.set(String(L.id),{x:L.x,y:L.y})},onEngineStop:()=>{var C,M;(M=(C=E.current)==null?void 0:C.zoomToFit)==null||M.call(C,300,72)},linkHoverPrecision:8,enableNodeDrag:!0,enableZoomInteraction:!0,enablePanInteraction:!0,nodePointerAreaPaint:(C,M,O,L)=>{const G=(C.type==="concept"?14:9)/Math.max(L,.35);if(O.fillStyle=M,O.beginPath(),O.arc(C.x,C.y,G,0,2*Math.PI),O.fill(),C.__childCount>0){const X=10/Math.max(L,.4),K=(C.type==="concept"?9:5)/Math.max(L,.35),Q=C.x+K+X*.7,de=C.y-K*.2;O.beginPath(),O.arc(Q,de,X,0,2*Math.PI),O.fill()}}}),T&&f.jsx("div",{className:"graph-node-tooltip",style:{left:T.x,top:T.y},children:T.text})]}),I&&f.jsxs("div",{className:"graph-detail-panel",children:[f.jsxs("div",{className:"graph-detail-header",children:[f.jsx("span",{className:`graph-node-type-badge ${I.type}`,children:I.type==="concept"?"概念":"知识要点"}),f.jsx("button",{type:"button",className:"graph-close-btn","aria-label":"关闭",onClick:()=>S(null),children:f.jsx(Ft,{size:18,strokeWidth:2.25})})]}),f.jsx("h3",{className:"graph-detail-title",children:I.label}),I.definition&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"定义"}),f.jsx("p",{children:I.definition})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"描述"}),f.jsx("p",{children:I.description})]}),f.jsx("div",{className:"graph-detail-meta",children:f.jsxs("span",{children:["置信度: ",(I.confidence*100).toFixed(0),"%"]})}),I.type==="concept"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["包含的子节点 (",pe(I.id).length,")"]}),f.jsxs("ul",{className:"graph-node-list",children:[pe(I.id).slice(0,20).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id)),pe(I.id).length>20&&f.jsxs("li",{className:"muted",children:["还有 ",pe(I.id).length-20," 个..."]})]})]}),f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["相关文章 (",mt(I.id).length,")"]}),f.jsx("ul",{className:"graph-doc-list",children:Array.from(new Set(mt(I.id).flatMap(C=>{var M;return((M=C.sources)==null?void 0:M.map(O=>({documentId:O.documentId,title:O.title||O.documentId,heading:O.heading})))||[]}))).slice(0,10).map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]})]}),I.type==="doc"&&I.sources&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsx("h4",{children:"来源"}),f.jsx("ul",{className:"graph-doc-list",children:I.sources.map((C,M)=>f.jsx("li",{className:"graph-doc-item",children:f.jsxs("button",{onClick:()=>o(C.documentId),children:["📄 ",C.title||C.documentId,C.heading&&f.jsxs("span",{className:"muted",children:[" · ",C.heading]})]})},M))})]}),ft(I.id).length>0&&f.jsxs("div",{className:"graph-detail-section",children:[f.jsxs("h4",{children:["所属概念 (",ft(I.id).length,")"]}),f.jsx("ul",{className:"graph-node-list",children:ft(I.id).map(C=>f.jsxs("li",{className:`graph-node-item ${C.type}`,onClick:()=>Ut(C),children:[f.jsx("span",{className:"dot"}),C.label]},C.id))})]})]})]})}function lu(e){var l;const{t:n}=lt(),r=_.useRef(null);_.useEffect(()=>{function d(h){r.current&&!r.current.contains(h.target)&&e.onClose()}function c(h){h.key==="Escape"&&e.onClose()}return window.addEventListener("mousedown",d),window.addEventListener("keydown",c),()=>{window.removeEventListener("mousedown",d),window.removeEventListener("keydown",c)}},[e.onClose]);const o=e.node.type==="folder";let i="";if(e.node.type==="folder"){const d=e.node;i=((l=d.folderDisplayName)==null?void 0:l.trim())||d.path||""}const a=o?i?n("newDocIn",{name:i}):n("newDocAtRoot"):n("newDocBeside"),s=o?i?n("newFolderIn",{name:i}):n("newFolderAtRoot"):n("newFolderBeside");return f.jsxs("div",{ref:r,className:"mdocs-context-menu card",style:{left:e.x,top:e.y},children:[f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateChild(d),e.onClose()},children:a}),f.jsx("button",{type:"button",className:"mdocs-context-item",onClick:()=>{const d=o?e.node.path:e.parentPath;e.onCreateFolder(d),e.onClose()},children:s}),f.jsx("button",{type:"button",className:"mdocs-context-item danger",onClick:()=>{e.node.type==="document"?e.onDeleteDocument(e.node):e.onDeleteFolder(e.node),e.onClose()},children:e.node.type==="folder"?n("deleteFolder",{name:i||e.node.name}):n("deleteItem",{name:e.node.name})})]})}function cu({domains:e,value:n,onChange:r,ariaLabel:o,localizeName:i,onDomainsChange:a}){const[s,l]=_.useState(!1),[d,c]=_.useState(e),h=_.useRef(null),u=_.useRef(null);_.useEffect(()=>{c(e)},[e]);const m=d.find(b=>b.domainId===n),p=(m==null?void 0:m.permission)==="private";_.useEffect(()=>{if(!s)return;const b=v=>{var w,D;!((w=h.current)!=null&&w.contains(v.target))&&!((D=u.current)!=null&&D.contains(v.target))&&l(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[s]),_.useEffect(()=>{if(!s)return;const b=v=>{var w;v.key==="Escape"&&(l(!1),(w=h.current)==null||w.focus())};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[s]);function g(b){r(b),l(!1)}function k(){if(s){l(!1);return}l(!0),ni().then(b=>{c(b),a==null||a(b)})}return f.jsxs("div",{className:"mdocs-domain-select-wrapper",children:[f.jsxs("button",{ref:h,type:"button",className:"mdocs-domain-select-trigger","aria-label":o,"aria-expanded":s,"aria-haspopup":"listbox",onClick:k,children:[f.jsx("span",{className:"mdocs-domain-select-text",children:m?i(m.domainName):""}),p&&f.jsxs("svg",{className:"mdocs-domain-lock",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),f.jsx("svg",{className:"mdocs-domain-select-chevron"+(s?" open":""),width:"10",height:"6",viewBox:"0 0 10 6",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"1.5",children:f.jsx("path",{d:"M1 1l4 4 4-4"})})]}),s&&f.jsx("div",{ref:u,className:"mdocs-domain-select-menu card",role:"listbox","aria-label":o,children:d.map(b=>f.jsxs("button",{type:"button",className:"mdocs-domain-select-option"+(b.domainId===n?" active":""),role:"option","aria-selected":b.domainId===n,onClick:()=>g(b.domainId),children:[f.jsx("span",{children:i(b.domainName)}),b.permission==="private"&&f.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--mdocs-text-muted)",strokeWidth:"2",children:[f.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),f.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})]},b.domainId))})]})}const Ui="data:image/svg+xml,%3csvg%20fill='%234D6BFE'%20fill-rule='evenodd'%20height='1em'%20style='flex:none;line-height:1'%20viewBox='0%200%2024%2024'%20width='1em'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDeepSeek%3c/title%3e%3cpath%20d='M23.748%204.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434%201.202-.422%201.84.027%201.436.633%202.58%201.838%203.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526%205.526%200%2001-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365%2011.365%200%2000-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055%203.055%200%2001-.465.137%209.597%209.597%200%2000-2.883-.102c-1.885.21-3.39%201.102-4.497%202.623C.082%208.606-.231%2010.684.152%2012.85c.403%202.284%201.569%204.175%203.36%205.653%201.858%201.533%203.997%202.284%206.438%202.14%201.482-.085%203.133-.284%204.994-1.86.47.234.962.327%201.78.397.63.059%201.236-.03%201.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926%201.096-1.296%202.746-2.642%203.392-7.003.05-.347.007-.565%200-.845-.004-.17.035-.237.23-.256a4.173%204.173%200%20001.545-.475c1.396-.763%201.96-2.015%202.093-3.517.02-.23-.004-.467-.247-.588zM11.581%2018c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696%204.696%200%20011.529-.039c2.132.312%203.946%201.265%205.468%202.774.868.86%201.525%201.887%202.202%202.891.72%201.066%201.494%202.082%202.48%202.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306%200%2001.415-.287.302.302%200%2001.2.288.306.306%200%2001-.31.307.303.303%200%2001-.304-.308zm3.11%201.596c-.2.081-.399.151-.59.16a1.245%201.245%200%2001-.798-.254c-.274-.23-.47-.358-.552-.758a1.73%201.73%200%2001.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559%200%2001-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136%201.146.016.352.144.618.408%201.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z'%3e%3c/path%3e%3c/svg%3e",Ke={left:12,bottom:64},Nr="mdocs.agentFabPosition",Nn=36,Bo=3;function Tr(e){const r=Math.max(8,window.innerWidth-Nn-8),o=Math.max(8,window.innerHeight-Nn-8);return{left:Math.min(r,Math.max(8,e.left)),bottom:Math.min(o,Math.max(8,e.bottom))}}function du(e,n,r,o){const i=e-r,a=n-o,s=window.innerHeight-a-Nn;return Tr({left:i,bottom:s})}function uu(){try{const e=localStorage.getItem(Nr);if(!e)return Ke;const n=JSON.parse(e);return typeof n.left!="number"||typeof n.bottom!="number"?Ke:Tr({left:n.left,bottom:n.bottom})}catch{return Ke}}function Ho(e){localStorage.setItem(Nr,JSON.stringify(e))}function fu(e){return e.left===Ke.left&&e.bottom===Ke.bottom}function mu(e){const r=Math.min(480,window.innerWidth-72);let o=e.left+Nn+8;o+r>window.innerWidth-8&&(o=e.left-8-r),o=Math.max(8,o);const i=Math.max(8,e.bottom-8);return{left:o,bottom:i}}function hu(e){const{t:n}=lt(),r=!!e.disableDrag,[o,i]=_.useState(!1),[a,s]=_.useState(e.position),l=_.useRef(null),d=_.useRef(null),c=_.useRef(a),h=_.useRef(e.onPositionChange),u=_.useRef(e.onToggle);c.current=a,h.current=e.onPositionChange,u.current=e.onToggle;const m=_.useRef(null),p=_.useRef(0),g=_.useRef(null);_.useEffect(()=>{m.current||(s(e.position),c.current=e.position)},[e.position]),_.useEffect(()=>{function D(){const I=Tr(c.current);I.left===c.current.left&&I.bottom===c.current.bottom||(c.current=I,s(I),h.current(I),Ho(I))}return window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),_.useEffect(()=>{function D(){p.current=0;const N=g.current;if(!N)return;g.current=null,c.current=N,s(N);const P=d.current;P&&(P.style.left=`${N.left}px`,P.style.bottom=`${N.bottom}px`),h.current(N)}function I(N){const P=m.current;if(!P||N.pointerId!==P.pointerId)return;N.preventDefault();const T=N.clientX-P.startX,U=N.clientY-P.startY;!P.didMove&&T*T+U*U>=Bo*Bo&&(P.didMove=!0,i(!0)),P.didMove&&(g.current=du(N.clientX,N.clientY,P.offsetX,P.offsetY),p.current||(p.current=requestAnimationFrame(D)))}function S(N){var T;const P=m.current;if(!(!P||N.pointerId!==P.pointerId)){m.current=null,i(!1),p.current&&(cancelAnimationFrame(p.current),p.current=0),g.current&&(c.current=g.current,s(g.current),g.current=null);try{(T=l.current)==null||T.releasePointerCapture(N.pointerId)}catch{}if(P.didMove){const U=c.current;h.current(U),Ho(U);return}u.current()}}return window.addEventListener("pointermove",I,{passive:!1}),window.addEventListener("pointerup",S),window.addEventListener("pointercancel",S),()=>{window.removeEventListener("pointermove",I),window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S),p.current&&cancelAnimationFrame(p.current)}},[]);function k(D){if(D.button!==0)return;if(r){D.preventDefault(),e.onToggle();return}D.preventDefault();const I=D.currentTarget.getBoundingClientRect();m.current={pointerId:D.pointerId,offsetX:D.clientX-I.left,offsetY:D.clientY-I.top,startX:D.clientX,startY:D.clientY,didMove:!1},D.currentTarget.setPointerCapture(D.pointerId)}function b(){c.current=Ke,s(Ke),e.onPositionChange(Ke),localStorage.removeItem(Nr)}const v=r?Ke:a,w=!r&&!fu(a);return f.jsxs("div",{ref:d,className:"mdocs-agent-fab-wrap"+(o?" dragging":""),style:{left:v.left,bottom:v.bottom},children:[f.jsx("button",{ref:l,type:"button",className:"mdocs-agent-fab"+(e.open?" open":"")+(o?" dragging":"")+(r?" mdocs-agent-fab--nodrag":""),"aria-label":n("agentFabOpen"),"aria-expanded":e.open,onPointerDown:k,children:f.jsx("img",{src:Ui,alt:"",draggable:!1})}),w&&f.jsx("button",{type:"button",className:"mdocs-agent-fab-reset",onClick:b,"aria-label":n("agentFabReset"),children:n("agentFabReset")})]})}function pu(){const[e,n]=_.useState(()=>typeof window>"u"?Ke:uu());return[e,n]}function gu({title:e,message:n,onClose:r}){const{t:o}=lt();return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:i=>{i.target===i.currentTarget&&r()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsx("div",{className:"mdocs-message-dialog-actions",children:f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("gotIt")})})]})})}function Bi({title:e,message:n,confirmLabel:r="确定",cancelLabel:o="取消",onConfirm:i,onCancel:a,busy:s=!1,danger:l=!1}){return f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:d=>{d.target===d.currentTarget&&!s&&a()},children:f.jsxs("div",{className:"mdocs-dialog card mdocs-message-dialog",role:"alertdialog","aria-modal":"true",children:[e&&f.jsx("h2",{className:"mdocs-message-dialog-title",children:e}),f.jsx("p",{className:"mdocs-message-dialog-body",children:n}),f.jsxs("div",{className:"mdocs-message-dialog-actions",style:{gap:8},children:[f.jsx("button",{type:"button",onClick:a,disabled:s,children:o}),f.jsx("button",{type:"button",className:l?"danger":"primary",onClick:i,disabled:s,children:s?"…":r})]})]})})}const Vo={"relative path is required":"pathRequired","path must be relative":"pathMustBeRelative","use forward slashes":"useForwardSlashes","path must not contain ..":"pathNoDotDot","document path must end with .md":"pathMustEndWithMd","path contains unsupported characters":"pathUnsupportedChars","path escapes docs root":"pathEscapesRoot"},Hi={"enter a folder name":"enterFolderName","use a single name, not a path":"singleNameNotPath","invalid folder name":"invalidFolderName","folder name is too long":"folderNameTooLong","enter a file name":"enterFileName","use a file name, not a path":"singleFileNameNotPath","invalid file name":"invalidFileName","file name is too long":"fileNameTooLong"};function bt(e,n){if(n instanceof Je)return n.message;if(n instanceof yt){const r=Vo[n.message];return r?e(r):n.message}if(n instanceof Error){const r=Vo[n.message]??Hi[n.message];return r?e(r):n.message}return String(n)}function yu(e,n,r){if(e==="Default")return r("defaultDomain");const o="个人域";return e.endsWith(o)?e.slice(0,-o.length)+r("personalDomainSuffix"):e}function Jf(e,n){return e==="public"?n("domainPublic"):e==="restricted"?n("domainRestricted"):e==="private"?n("domainPrivate"):e}function vn(e){const n=e.lastIndexOf("/");return n===-1?"":e.slice(0,n)}function vu(e){return JSON.stringify({root:{children:[{children:[{detail:0,format:0,mode:"normal",text:e,type:"text",version:1}],direction:"ltr",format:"",indent:0,type:"heading",tag:"h1",version:1}],direction:"ltr",type:"root",version:1}})}function Go(e,n){const r=e.trim(),o=n.trim();return o?r?`${r}/${o}`:o:r}function Vi(e,n=new Set){for(const r of e)r.type==="document"?n.add(r.path):(r.descDocumentId&&n.add(ls(r.path)),Vi(r.children,n));return n}function gr(e,n){for(const r of e){if(r.type==="folder"&&r.path===n)return r.documentId;if(r.type==="folder"){const o=gr(r.children,n);if(o)return o}}return null}function Wo(e,n){const r=Hi[n];return r?e(r):n}function bu(e){const{tree:n,currentDomainId:r,selectedCreateParentPath:o,t:i,onDocCreated:a,refreshTree:s}=e,[l,d]=_.useState(null),[c,h]=_.useState(null),[u,m]=_.useState(!1),p=_.useRef(null);_.useEffect(()=>{if(!l)return;const v=window.setTimeout(()=>{var w;return(w=p.current)==null?void 0:w.focus()},0);return()=>window.clearTimeout(v)},[l]);function g(v){const w=v!==void 0;h(null),d({kind:"document",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:"untitled.md"})}function k(v){const w=v!==void 0;h(null),d({kind:"folder",parentMode:w?"fixed":"selection",parentPath:w?v:"",draft:""})}async function b(v){if(v.preventDefault(),!l)return;m(!0),h(null);const w=Vi(n),D=l.parentMode==="selection"?o:l.parentPath;try{if(l.kind==="document"){const T=fs(l.draft);if(!T.ok){h(Wo(i,T.message));return}const U=T.displayFile,E=U.replace(/\.md$/i,"");let $;try{$=ms(Go(D,U))}catch(A){h(bt(i,A));return}if(w.has($)){h(i("pathExists"));return}const F=D?gr(n,D)??void 0:void 0,B=await ti({fileName:U,displayName:E,content:vu(E),domainId:r,parentId:F});await s(),a(B),d(null);return}const I=us(l.draft);if(!I.ok){h(Wo(i,I.message));return}const S=nr(I.display);if(!S){h(i("invalidFolderName"));return}const N=Go(D,S);if(w.has(N)){h(i("folderExists"));return}const P=D?gr(n,D)??void 0:void 0;await Ss({name:S,parentId:P,domainId:r}),await s(),d(null)}catch(I){h(bt(i,I))}finally{m(!1)}}return{createModal:l,setCreateModal:d,createModalError:c,createModalBusy:u,createModalInputRef:p,openNewDocumentModal:g,openNewFolderModal:k,submitCreateModal:b}}const qo="(max-width: 768px)";function xu(){const[e,n]=_.useState(()=>typeof window<"u"?window.matchMedia(qo).matches:!1);return _.useEffect(()=>{const r=window.matchMedia(qo),o=()=>n(r.matches);return o(),r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),e}function _u({open:e,onClose:n,onResolve:r}){const{t:o}=lt();return e?f.jsx("div",{className:"mdocs-conflict-modal-root",role:"alertdialog","aria-modal":"true",children:f.jsxs("div",{className:"mdocs-conflict-modal-panel",children:[f.jsx("h2",{className:"mdocs-conflict-modal-title",children:o("conflictTitle")}),f.jsx("p",{className:"mdocs-conflict-modal-body",children:o("conflictBody")}),f.jsxs("div",{className:"mdocs-conflict-modal-actions",children:[f.jsx("button",{type:"button",className:"primary",onClick:r,children:o("conflictResolve")}),f.jsx("button",{type:"button",className:"secondary",onClick:n,children:o("conflictClose")})]})]})}):null}function wu({documentId:e,visitorId:n,visitorName:r,documentOwnerId:o,onClose:i}){const[a,s]=_.useState([]),[l,d]=_.useState(""),[c,h]=_.useState(null),[u,m]=_.useState(!0),[p,g]=_.useState(!1),[k,b]=_.useState(null),[v,w]=_.useState(null),[D,I]=_.useState(360),[S,N]=_.useState(80),P=_.useRef(!1),T=_.useRef(!1),U=300,E=80,$=_.useRef(null);function F(){const q=$.current;if(!q)return;q.style.height="auto";const J=q.scrollHeight,fe=Math.min(Math.max(J,E),U);q.style.height=`${fe}px`,N(fe)}_.useEffect(()=>{setTimeout(()=>F(),0)},[c]);function B(q){return n?q.visitorId===n||o===n:!1}const{rootComments:A,repliesByParentId:Y,totalCount:te}=_.useMemo(()=>{const q=[],J=new Map;let fe=0;for(const ue of a)ue.isDeleted||(fe++,ue.parentId?(J.has(ue.parentId)||J.set(ue.parentId,[]),J.get(ue.parentId).push(ue)):q.push(ue));return{rootComments:q,repliesByParentId:J,totalCount:fe}},[a]),ie=_.useRef(e);_.useEffect(()=>{ie.current=e,d(""),h(null),w(null),ke()},[e]);async function ke(){const q=ie.current;m(!0);try{const J=await Ts(e);if(ie.current!==q)return;s(J.comments)}catch(J){if(ie.current!==q)return;w("加载评论失败"),console.error("Failed to load comments:",J)}finally{ie.current===q&&m(!1)}}async function De(){var q;if(!(!l.trim()||!n)){g(!0),w(null);try{await As(e,{content:l,parentId:(c==null?void 0:c.commentId)||null,replyToVisitorId:c?((q=a.find(J=>J.commentId===c.commentId))==null?void 0:q.visitorId)??null:null,replyToVisitorName:(c==null?void 0:c.visitorName)||null}),d(""),h(null),setTimeout(()=>F(),0),await ke()}catch(J){w(J.message||"发表失败,请重试")}finally{g(!1)}}}async function Ae(q){w(null);try{await Ms(e,q),await ke()}catch(J){w(J.message||"删除失败,请重试")}finally{b(null)}}function ye(q){const J=Date.now()-new Date(q).getTime(),fe=Math.floor(J/6e4),ue=Math.floor(J/36e5),Me=Math.floor(J/864e5);return fe<1?"刚刚":fe<60?`${fe}分钟前`:ue<24?`${ue}小时前`:`${Me}天前`}function me(q){P.current=!0,q.preventDefault()}function ae(q){T.current=!0,q.preventDefault(),document.body.style.userSelect="none",document.body.style.cursor="row-resize"}return _.useEffect(()=>{function q(fe){if(P.current){const ue=Math.max(280,Math.min(600,window.innerWidth-fe.clientX));I(ue)}if(T.current){const ue=-fe.movementY;N(Me=>Math.max(60,Math.min(600,Me+ue)))}}function J(){P.current=!1,T.current=!1,document.body.style.userSelect="",document.body.style.cursor=""}return window.addEventListener("mousemove",q),window.addEventListener("mouseup",J),()=>{window.removeEventListener("mousemove",q),window.removeEventListener("mouseup",J)}},[]),f.jsxs("div",{className:"mdocs-comments-panel",style:{width:D},children:[f.jsx("div",{className:"mdocs-comments-resize-handle",onMouseDown:me}),f.jsxs("div",{className:"mdocs-comments-header",children:[f.jsxs("h3",{style:{margin:0,fontSize:"1rem",display:"flex",alignItems:"center",gap:6},children:[f.jsx(Ga,{size:18}),"评论 (",te,")"]}),f.jsx("button",{type:"button",onClick:i,className:"mdocs-comments-close-btn",children:f.jsx(Ft,{size:18})})]}),v&&f.jsxs("div",{className:"mdocs-comments-error",children:[v,f.jsx("button",{type:"button",onClick:()=>w(null),children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comments-list",children:u?f.jsx("div",{className:"mdocs-comments-empty",children:"加载中..."}):A.length===0?f.jsx("div",{className:"mdocs-comments-empty",children:"暂无评论,来发表第一条吧~"}):A.map(q=>f.jsxs("div",{className:"mdocs-comment-root",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar",children:q.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:q.visitorName}),f.jsx("span",{className:"mdocs-comment-time",children:ye(q.createdAt)}),B(q)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(q.commentId),title:"删除",children:f.jsx(Ft,{size:14})})]}),f.jsx("div",{className:"mdocs-comment-content",children:q.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:q.visitorName}),children:"回复"}),(Y.get(q.commentId)??[]).length>0&&f.jsx("div",{className:"mdocs-comment-replies",children:(Y.get(q.commentId)??[]).map(J=>f.jsxs("div",{className:"mdocs-comment-reply",children:[f.jsxs("div",{className:"mdocs-comment-header",children:[f.jsx("span",{className:"mdocs-comment-avatar mdocs-comment-avatar-small",children:J.visitorName.charAt(0).toUpperCase()}),f.jsx("span",{className:"mdocs-comment-author",children:J.visitorName}),J.replyToVisitorName&&f.jsxs("span",{className:"mdocs-comment-reply-to",children:["回复 ",J.replyToVisitorName]}),f.jsx("span",{className:"mdocs-comment-time",children:ye(J.createdAt)}),B(J)&&f.jsx("button",{type:"button",className:"mdocs-comment-delete",onClick:()=>b(J.commentId),title:"删除",children:f.jsx(Ft,{size:12})})]}),f.jsx("div",{className:"mdocs-comment-content",children:J.content}),n&&f.jsx("button",{type:"button",className:"mdocs-comment-reply-btn",onClick:()=>h({commentId:q.commentId,visitorName:J.visitorName}),children:"回复"})]},J.commentId))})]},q.commentId))}),n?f.jsxs("div",{className:"mdocs-comments-input-wrapper",children:[f.jsx("div",{className:"mdocs-comments-input-drag-handle",onMouseDown:ae}),c&&f.jsxs("div",{className:"mdocs-comment-reply-notice",children:[f.jsxs("span",{children:["回复 ",f.jsx("span",{className:"mdocs-comment-reply-to-name",children:c.visitorName})]}),f.jsxs("button",{type:"button",onClick:()=>h(null),children:[f.jsx(Ft,{size:14})," 取消"]})]}),f.jsx("textarea",{ref:$,value:l,onChange:q=>{d(q.target.value.slice(0,512)),setTimeout(()=>F(),0)},placeholder:c?`回复 ${c.visitorName}...`:"发表评论...",className:"mdocs-comments-input",style:{height:S},maxLength:512,onKeyDown:q=>{q.key==="Enter"&&(q.metaKey||q.ctrlKey)&&De()}}),f.jsxs("div",{className:`mdocs-comments-char-count${l.length>=460?" mdocs-char-count--warn":""}`,children:[l.length,"/512"]}),f.jsx("div",{className:"mdocs-comments-input-actions",children:f.jsx("button",{type:"button",className:"mdocs-btn-primary",onClick:De,disabled:p||!l.trim(),children:p?"发表中...":"发表"})})]}):f.jsx("div",{className:"mdocs-comments-input-wrapper",style:{textAlign:"center"},children:f.jsx("div",{style:{color:"#666",fontSize:"0.9rem"},children:"请先创建访客身份以发表评论"})}),k&&f.jsx(Bi,{title:"删除评论",message:"确定要删除这条评论吗?",confirmLabel:"删除",danger:!0,onConfirm:()=>Ae(k),onCancel:()=>b(null)})]})}const ku="mdocs-drafts",Cu=4,Se="drafts",Lt={DOC_NOT_FOUND:"DOC_NOT_FOUND",SYNC_HEAD_MISSING:"SYNC_HEAD_MISSING"};let Kn=null;function $t(){return Kn||(Kn=new Promise((e,n)=>{const r=indexedDB.open(ku,Cu);r.onupgradeneeded=o=>{const i=r.result;i.objectStoreNames.contains(Se)||i.createObjectStore(Se,{keyPath:"documentId"});const a=o.oldVersion;if(a>0&&a<4){const d=r.transaction.objectStore(Se).openCursor();d.onsuccess=()=>{const c=d.result;if(!c)return;const h=c.value;typeof h.baseCommitId=="string"&&!h.localBaseCommitId&&(h.localBaseCommitId=h.baseCommitId,delete h.baseCommitId);const u=h.conflict;u&&(typeof u.baseCommitId=="string"&&!u.localBaseCommitId&&(u.localBaseCommitId=u.baseCommitId,delete u.baseCommitId),typeof u.expectedHeadCommitId=="string"&&!u.remoteCommitId&&(u.remoteCommitId=u.expectedHeadCommitId,delete u.expectedHeadCommitId)),c.update(h),c.continue()}}},r.onsuccess=()=>e(r.result),r.onerror=()=>n(r.error)})),Kn}async function Iu(e){var o;const n=await Oe(e.documentId),r={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:Date.now(),published:!1};if(n!=null&&n.localBaseCommitId)r.localBaseCommitId=n.localBaseCommitId;else{const i=(o=e.localBaseCommitIdAtEditStart)==null?void 0:o.trim();i&&(r.localBaseCommitId=i)}(n==null?void 0:n.permission)!=null?r.permission=n.permission:e.snapshotMeta&&(r.permission=e.snapshotMeta.permission),n!=null&&n.ownerVisitorId?r.ownerVisitorId=n.ownerVisitorId:e.snapshotMeta&&(r.ownerVisitorId=e.snapshotMeta.ownerVisitorId),n!=null&&n.domainId?r.domainId=n.domainId:e.snapshotMeta&&(r.domainId=e.snapshotMeta.domainId),n!=null&&n.publishError&&(r.publishError=n.publishError,r.publishErrorAt=n.publishErrorAt),n!=null&&n.conflictStatus&&(r.conflictStatus=n.conflictStatus),n!=null&&n.conflict&&(r.conflict=n.conflict),await St(r)}function Ar(e){const n={documentId:e.documentId,content:e.content,displayName:e.displayName,updatedAt:e.updatedAt,published:e.published};return e.permission!=null&&(n.permission=e.permission),e.ownerVisitorId&&(n.ownerVisitorId=e.ownerVisitorId),e.domainId&&(n.domainId=e.domainId),e.publishError!=null&&(n.publishError=e.publishError),e.publishErrorAt!=null&&(n.publishErrorAt=e.publishErrorAt),e.localBaseCommitId&&(n.localBaseCommitId=e.localBaseCommitId),e.conflictStatus!=null&&(n.conflictStatus=e.conflictStatus),e.conflict!=null&&(n.conflict=e.conflict),n}async function St(e){const n=await $t(),r=Ar(e);return new Promise((o,i)=>{const a=n.transaction(Se,"readwrite");a.objectStore(Se).put(r),a.oncomplete=()=>o(),a.onerror=()=>i(a.error)})}async function Oe(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).get(e);a.onsuccess=()=>r(a.result),a.onerror=()=>o(a.error)})}async function Jn(e){const n=await $t();return new Promise((r,o)=>{const i=n.transaction(Se,"readwrite");i.objectStore(Se).delete(e),i.oncomplete=()=>r(),i.onerror=()=>o(i.error)})}async function Su(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readonly").objectStore(Se).getAll();a.onsuccess=()=>{let s=a.result;e!=null&&e.skipFailed&&(s=s.filter(l=>!l.publishError)),r(s)},a.onerror=()=>o(a.error)})}async function Du(e,n){const r=await $t();return new Promise((o,i)=>{const s=r.transaction(Se,"readwrite").objectStore(Se),l=s.get(e);l.onsuccess=()=>{const d=l.result;d&&s.put(Ar({...d,publishError:n,publishErrorAt:Date.now()})),o()},l.onerror=()=>i(l.error)})}async function Xn(e){const n=await $t();return new Promise((r,o)=>{const a=n.transaction(Se,"readwrite").objectStore(Se),s=a.get(e);s.onsuccess=()=>{const l=s.result;l&&a.put(Ar({...l,publishError:void 0,publishErrorAt:void 0})),r()},s.onerror=()=>o(s.error)})}async function Zn(e,n){const r=await Oe(e);r&&await St({...r,localBaseCommitId:n.localBaseCommitId,conflictStatus:n.conflictStatus,conflict:n.conflict})}async function Qn(e){const n=await Oe(e);n&&await St({...n,conflict:void 0,conflictStatus:"none"})}class rn extends Error{constructor(r,o){super(r);jt(this,"code");jt(this,"cause");this.name="DraftPublishAborted",this.code=r,this.cause=o==null?void 0:o.cause}}function Pu(e){return e instanceof rn?e.code:e instanceof Je?e.status===404?Lt.DOC_NOT_FOUND:e.code||`HTTP_${e.status}`:e instanceof Error&&e.message.trim()?e.message.trim().slice(0,120):"UNKNOWN"}function Nu(e,n,r,o){const i=(n==null?void 0:n.displayName)||e("unknownTitle");if(r===Lt.SYNC_HEAD_MISSING)return e("draftPublishFailedSyncHead",{name:i});if(r===Lt.DOC_NOT_FOUND)return e("draftPublishFailedNotice",{name:i});const a=o instanceof Je||o instanceof Error&&o.message?o.message:r;return e("draftPublishFailedGeneric",{name:i,reason:a})}async function Tu(e,n,r){const o=Pu(n);throw await Du(e,o),n instanceof rn?n:new rn(o,{cause:n})}function Au(e,n){const r=_.useRef(n);r.current=n,_.useEffect(()=>{if(!e)return;const o=3e4,i=1e4,a=async()=>{const l=await Su({skipFailed:!0}),d=Date.now();for(const c of l)if(!c.published&&!(d-c.updatedAt<o))try{await r.current(c.documentId)}catch(h){console.log("[autoPublish] scan publish failed:",h)}};a();const s=setInterval(a,i);return()=>clearInterval(s)},[e])}const Mu=1e4;function Eu(e,n){const[r,o]=_.useState(null),[i,a]=_.useState("up_to_date");return _.useEffect(()=>{if(!e){o(null),a("up_to_date");return}let l=!1;const d=e;async function c(){try{const u=await ks(d,n??void 0);if(l)return;o(u.headCommitId),a(u.status)}catch{}}c();const h=window.setInterval(()=>void c(),Mu);return()=>{l=!0,window.clearInterval(h)}},[e,n]),{remoteCommitId:r,syncStatus:i,syncBehind:!!(n&&r&&n!==r)||i==="behind"}}const ju="/assets/mdocs-logo-Dsv_2t6v.svg",Ou=_.lazy(()=>zt(()=>import("./DocumentEditor-1A6lpvV-.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])).then(e=>({default:e.DocumentEditor}))),Ru=_.lazy(()=>zt(()=>import("./SettingsPage-nlnmzNZK.js"),__vite__mapDeps([11,1,10,2,3,6])).then(e=>({default:e.SettingsPage}))),Fu=_.lazy(()=>zt(()=>import("./AgentChatPanel-Bt38gm3b.js"),__vite__mapDeps([12,1,13,7,2,3,8,6])).then(e=>({default:e.AgentChatPanel}))),Lu=_.lazy(()=>zt(()=>import("./AiWriteWorkbench-Boie5E_-.js"),__vite__mapDeps([14,1,13,7,2,3,6])).then(e=>({default:e.AiWriteWorkbench}))),zu=_.lazy(()=>zt(()=>import("./MergeView-Dip0aW7s.js"),__vite__mapDeps([15,1,4,5,2,3,6,7,8])).then(e=>({default:e.MergeView})));function $u(e,n){try{const r=new Intl.RelativeTimeFormat(n,{numeric:"auto"}),o=Date.now()-new Date(e).getTime(),i=Math.floor(o/6e4),a=Math.floor(i/60),s=Math.floor(a/24);return s>30?r.format(-Math.floor(s/30),"month"):s>0?r.format(-s,"day"):a>0?r.format(-a,"hour"):i>0?r.format(-i,"minute"):r.format(-Math.floor(o/1e3),"second")}catch{return e.slice(0,10)}}async function er(e,n,r,o){const i=await ni();n(i);const a=localStorage.getItem("mdocs.currentDomainId"),l=a&&i.some(d=>d.domainId===a)?a:Fs(i,e);r(l),await o(l)}function Yo(){const{t:e,lang:n,setLang:r}=lt(),[o,i]=_.useState("loading"),[a,s]=_.useState(()=>localStorage.getItem("mdocs.sidebarCollapsed")==="true"),l=xu(),[d,c]=_.useState(!1),h=()=>{if(l){c(R=>!R);return}const y=!a;s(y),localStorage.setItem("mdocs.sidebarCollapsed",String(y))};_.useEffect(()=>{l||c(!1)},[l]);const[u,m]=_.useState(!1),[p,g]=_.useState(0),k=_.useRef(null),[b,v]=_.useState(null),[w,D]=_.useState(null),[I,S]=_.useState(null),[N,P]=_.useState([]),[T,U]=_.useState([]),[E,$]=_.useState("default"),{documentId:F}=ma(),B=ha(),[A,Y]=_.useState(null),[te,ie]=_.useState(null),[ke,De]=_.useState(null),[Ae,ye]=_.useState(null),[me,ae]=_.useState(null),q=_.useRef(te);q.current=te;const[J,fe]=_.useState(0),[ue,Me]=_.useState(null),[Ve,Ue]=_.useState(!1),[ve,Fe]=_.useState(!1),[ct,Ze]=_.useState(!1),an=(A==null?void 0:A.documentId)??null,{syncBehind:dt,remoteCommitId:ut}=Eu(an,ue),[Ut,_t]=_.useState(null);_.useEffect(()=>{if(!ve||!A){_t(null);return}(async()=>{const y=await Oe(A.documentId);if(y!=null&&y.conflict){_t(y.conflict);return}if(y&&ue&&ut){const R=y.localBaseCommitId??ue;if(!R)return;const j={localBaseCommitId:R,remoteCommitId:ut,localSnapshotContent:y.content};await Zn(A.documentId,{localBaseCommitId:j.localBaseCommitId,conflictStatus:"diverged",conflict:j}),_t(j)}})()},[ve,A,ue,ut]),_.useEffect(()=>{!A||!dt||!ct||Oe(A.documentId).then(async y=>{!y||y.conflict||y.conflictStatus==="publish_conflict"||y.conflictStatus!=="diverged"&&await St({...y,conflictStatus:"diverged"})})},[A==null?void 0:A.documentId,dt,ct]),_.useEffect(()=>{if(!A){Me(null);return}let y=!1;return Oe(A.documentId).then(R=>{y||(R&&!R.published&&R.localBaseCommitId?Me(R.localBaseCommitId):Me(A.headCommitId??null))}),()=>{y=!0}},[A==null?void 0:A.documentId,A==null?void 0:A.headCommitId,ct]);const[Qe,ne]=_.useState(null),[wt,Pe]=_.useState(null),[pe,ft]=_.useState(null),[mt,C]=_.useState(null),[M,O]=_.useState(""),[L,G]=_.useState("docs"),[X,K]=_.useState(!1),[Q,de]=pu(),Ee=_.useRef(null),[Ne,be]=_.useState(!1),[he,ge]=_.useState(null),Ce=_.useRef(void 0),et=_.useRef(void 0);Au(localStorage.getItem("mdocs.autoPublish")==="true",$r);async function Ie(y){var R;await((R=Ce.current)==null?void 0:R.call(Ce)),y()}function Tt(y){const j=(y.trim()||"untitled").replace(/[\\/:*?"<>|]/g,"-").slice(0,80);return j.endsWith(".md")?j:`${j}.md`}async function ht(){var R,j;if(!A||!te)return;await((R=Ce.current)==null?void 0:R.call(Ce));let y=((j=et.current)==null?void 0:j.call(et))??"";if(!y.trim())try{y=(await Un({content:te.content,from:"lexical",to:"markdown"})).content}catch{y=""}ge({markdown:y,documentId:A.documentId,displayName:te.displayName||A.displayName||"未命名"}),be(!0),K(!1)}function kt(){ge({markdown:"",documentId:null,displayName:"未命名"}),be(!0),K(!1)}async function sn(y){var Z,se;const R=y.documentId.trim();if(!R)return;await((Z=Ce.current)==null?void 0:Z.call(Ce));let j="",V=y.displayName.trim()||"未命名";try{const Ge=await Vt(R);V=((se=Ge.displayName)==null?void 0:se.trim())||V;try{j=(await Un({content:Ge.content,from:"lexical",to:"markdown"})).content}catch{j=""}}catch{}ge({markdown:j,documentId:R,displayName:V}),be(!0),K(!1),G("docs"),Ie(()=>B(`/doc/${R}`))}async function ln(y){(A==null?void 0:A.documentId)===y.documentId&&await zr()}async function cn(y){if(y.documentId){if(!window.confirm("将把帮写结果写入当前文档的本地草稿(不会自动发布)。继续?")){const se=new Error("cancelled");throw se.silent=!0,se}const V=await Un({content:y.markdown,from:"markdown",to:"lexical"}),Z=(A==null?void 0:A.documentId)===y.documentId?A:null;return await Iu({documentId:y.documentId,content:V.content,displayName:y.displayName,localBaseCommitIdAtEditStart:(Z==null?void 0:Z.headCommitId)??null,snapshotMeta:Z?{permission:Z.permission,ownerVisitorId:Z.ownerVisitorId,domainId:Z.domainId}:void 0}),(A==null?void 0:A.documentId)===y.documentId?(ie({documentId:y.documentId,content:V.content,displayName:y.displayName}),fe(se=>se+1),Ze(!0)):await At(y.documentId),ne("帮写已写入草稿,可在编辑器中继续修改后发布"),{documentId:y.documentId}}const R=await ti({fileName:Tt(y.displayName),displayName:y.displayName,content:y.markdown,contentFormat:"markdown",domainId:E||void 0,parentId:void 0});return await _e(),await At(R.documentId),ne("已创建文档"),{documentId:R.documentId}}_.useEffect(()=>{Wi()},[]),_.useEffect(()=>{if(!Qe)return;const y=()=>{ne(null)};return window.addEventListener("pointerdown",y,!0),()=>window.removeEventListener("pointerdown",y,!0)},[Qe]),_.useEffect(()=>{const y=R=>{var Z,se;const j=R;if(((Z=j.detail)==null?void 0:Z.status)===409)return;const V=(se=j.detail)==null?void 0:se.message;V&&Pe(V)};return window.addEventListener(rr,y),()=>window.removeEventListener(rr,y)},[]);async function Wi(){try{const y=await ro();v(y),_n(y.visitorId),await er(y.visitorId,U,$,_e),i("ready")}catch(y){if(y instanceof Je&&y.status===401){i("needsRegister");return}Pe(bt(e,y)),i("needsRegister")}}async function qi(y,R){const j=await vs(y,R);v(j.visitor),D(j.visitor.visitorId),S(j.recoveryCode),_n(j.visitor.visitorId),await er(j.visitor.visitorId,U,$,_e),i("ready")}async function Yi(y){const R=await ro();v(R),await er(R.visitorId,U,$,_e),i("ready")}async function _e(y){const j=await ws(y??E);P(j)}function dn(y){ie({documentId:y.documentId,content:y.content,displayName:y.displayName}),fe(R=>R+1),Ze(!1)}function Ki(y,R){ie({documentId:y,content:R.content,displayName:R.displayName}),fe(j=>j+1),Ze(!0)}async function Mr(y,R){await Jn(y);const j=await Vt(y);if((A==null?void 0:A.documentId)===y&&k.current===y){Y(Ht(j)),Ze(!1);const V=q.current,Z=R!==void 0&&j.content===R,se=(V==null?void 0:V.documentId)===y&&V.content===j.content;Z||se?(V==null?void 0:V.documentId)===y&&V.displayName!==j.displayName&&ie({...V,displayName:j.displayName}):dn(j)}return j}function un(y,R,j="folder"){console.log("[openGraph]",j,y,R),De(j),ye(y),ae(R)}function fn(){De(null),ye(null),ae(null)}async function At(y){k.current=y;try{const R=await Oe(y);if(k.current!==y)return;const j=await Vt(y);if(k.current!==y||(j.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",j.domainId),$(j.domainId),_e(j.domainId)),O(vn(j.relativePath)),j.headCommitId&&R&&!R.published&&(R.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y),R.localBaseCommitId||await St({...R,localBaseCommitId:j.headCommitId})),Y(Ht(j)),k.current!==y))return;R&&!R.published?Ki(y,R):dn(j)}catch(R){if(k.current!==y)return;Pe(bt(e,R))}}_.useEffect(()=>{o==="ready"&&(F?At(F):(Y(null),ie(null),Me(null)))},[o,F]);const{createModal:Mt,setCreateModal:jn,createModalError:Er,createModalBusy:Et,createModalInputRef:Ji,openNewDocumentModal:On,openNewFolderModal:Rn,submitCreateModal:Xi}=bu({tree:N,currentDomainId:E,selectedCreateParentPath:M,t:e,onDocCreated:y=>{Y(Ht(y)),dn(y),O(vn(y.relativePath)),B(`/doc/${y.documentId}`)},refreshTree:_e}),[Zi,mn]=_.useState(!1),[Qi,Bt]=_.useState(!1),[Ct,jr]=_.useState([]),[Fn,Or]=_.useState(""),[hn,Rr]=_.useState(""),[ea,Fr]=_.useState(new Set);async function ta(){try{const y=await Ps();jr(y)}catch(y){Pe(bt(e,y))}}const Ln=_.useMemo(()=>{const y={};for(const R of T)y[R.domainId]=R.domainName;return y},[T]),Lr=_.useMemo(()=>{let y=Ct;const R=Fn.trim().toLowerCase();return R&&(y=y.filter(j=>{var V;return(V=j.displayName)==null?void 0:V.toLowerCase().includes(R)})),hn&&(y=y.filter(j=>j.domainId===hn)),y},[Ct,Fn,hn]),na=_.useMemo(()=>{const y=new Set,R=[];for(const j of Ct){const V=j.domainId;V&&!y.has(V)&&(y.add(V),R.push({id:V,name:Ln[V]??V}))}return R},[Ct,Ln]);async function ra(y,R,j,V,Z){let se=await Oe(y);!se&&(A==null?void 0:A.documentId)===y&&(se={documentId:y,content:R,displayName:j,updatedAt:Date.now(),published:!1,localBaseCommitId:V,permission:A.permission,ownerVisitorId:A.ownerVisitorId,domainId:A.domainId},await St(se)),se&&await Zn(y,{localBaseCommitId:V,conflictStatus:"publish_conflict",conflict:{localBaseCommitId:V,remoteCommitId:Z.headCommitId,localSnapshotContent:R}}),Ue(!0)}async function oa(y,R,j,V){return Xr(j).execute(async()=>{const Z=await Oe(j),se=(Z==null?void 0:Z.localBaseCommitId)??(A==null?void 0:A.headCommitId);if(!se)throw Pe(e("syncHeadMissing")),new Error("missing localBaseCommitId");try{await oo(j,{content:y,displayName:R,permission:V,version:{localBaseCommitId:se}}),await Qn(j),await Mr(j,y),await _e(),Ue(!1),ne(e("published")),window.setTimeout(()=>ne(null),1200)}catch(Ge){throw Ge instanceof Je&&Ge.status===409&&Ge.code==="VERSION_CONFLICT"&&Ge.details&&typeof Ge.details=="object"&&await ra(j,y,R,se,Ge.details),Ge}})}async function ia(){if(!A)return;const y=await Vt(A.documentId);y.domainId!==E&&(localStorage.setItem("mdocs.currentDomainId",y.domainId),$(y.domainId),_e(y.domainId)),O(vn(y.relativePath)),Y(Ht(y)),dn(y),ne(e("syncPullDone")),window.setTimeout(()=>ne(null),1200)}async function zr(){if(!A)return;const y=await Oe(A.documentId),R=!!(y&&!y.published);if((y==null?void 0:y.conflictStatus)==="publish_conflict"||(y==null?void 0:y.conflictStatus)==="diverged"||!!(y!=null&&y.conflict)){Fe(!0);return}if(R&&y){if(dt&&ut){const V=y.localBaseCommitId??ue;if(V){const Z={localBaseCommitId:V,remoteCommitId:ut,localSnapshotContent:y.content};await Zn(A.documentId,{localBaseCommitId:V,conflictStatus:"diverged",conflict:Z}),_t(Z)}Fe(!0);return}ne(e("pullBlockedDraft")),window.setTimeout(()=>ne(null),3e3);return}await ia()}async function aa(y){await Qn(y.documentId),await Jn(y.documentId),Ze(!1),Fe(!1),Ue(!1),await At(y.documentId),_e(y.domainId),ne(e("published")),window.setTimeout(()=>ne(null),1200)}async function sa(y,R,j){try{await Tu(y,R,j)}catch(V){if(!(V instanceof rn))throw V;const Z=j??await Oe(y);throw ne(Nu(e,Z,V.code,V.cause??R)),window.setTimeout(()=>ne(null),4e3),V}}async function $r(y){let R;try{await Xr(y).execute(async()=>{const j=await Oe(y);if(!j)return;R=j;let V=j.localBaseCommitId;if(V||(V=(await Vt(y)).headCommitId??void 0,V&&(await St({...j,localBaseCommitId:V}),j.publishError===Lt.SYNC_HEAD_MISSING&&await Xn(y))),!V)throw new rn(Lt.SYNC_HEAD_MISSING);const Z=await Oe(y);Z&&(await oo(y,{content:Z.content,displayName:Z.displayName,version:{localBaseCommitId:V}}),await Qn(y),await Xn(y),(A==null?void 0:A.documentId)===y?await Mr(y,Z.content):await Jn(y),await _e(),ne(e("published")),window.setTimeout(()=>ne(null),1200))})}catch(j){await sa(y,j,R)}}function Ur(y,R){ft({type:"document",id:y,name:R})}function Br(y,R){ft({type:"folder",id:y,name:R})}async function la(y,R){try{const j=await Is(y,R);await _e(j.domainId),(A==null?void 0:A.documentId)===y&&(Y(Ht(j)),O(vn(j.relativePath)))}catch(j){j instanceof Je?j.status===409&&Pe(j.message):Pe(bt(e,j))}}async function ca(){if(pe)try{pe.type==="document"?(await Cs(pe.id),(A==null?void 0:A.documentId)===pe.id&&(Y(null),ie(null),O(""),B("/"))):pe.type==="folder"&&(await Ds(pe.id),A&&(Y(null),ie(null),O(""),B("/"))),await _e(),ne(pe.type==="folder"?`已删除「${pe.name}」及其下所有内容`:`已删除「${pe.name}」`),window.setTimeout(()=>ne(null),2e3)}catch(y){Pe(bt(e,y))}finally{ft(null)}}return o==="loading"?f.jsx("div",{className:"mdocs-loading muted",children:e("loading")}):o==="needsRegister"?f.jsx(Ls,{onSubmit:qi,onRecover:Yi,error:Qe}):f.jsxs("div",{className:"mdocs-app-root",children:[ei(),f.jsxs("div",{className:"mdocs-shell",children:[w&&b&&f.jsx(zs,{visitorId:w,onDismiss:()=>D(null)}),I&&f.jsx("div",{className:"mdocs-dialog-backdrop",style:{position:"fixed",zIndex:9999},onClick:y=>{y.target===y.currentTarget&&S(null)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:480,textAlign:"center"},children:[f.jsx("h1",{style:{fontSize:"1.25rem",marginBottom:8},children:"🔑 保存你的恢复码"}),f.jsxs("p",{className:"muted",style:{marginBottom:16,lineHeight:1.5},children:["恢复码是你的唯一凭证,当 Token 丢失时可用它找回身份。",f.jsx("br",{}),f.jsx("strong",{children:"请立即复制保存,此弹窗关闭后不可再查看。"})]}),f.jsx("div",{style:{background:"#f5f5f5",borderRadius:8,padding:"12px 16px",fontFamily:"monospace",fontSize:"1.25rem",letterSpacing:"0.1em",marginBottom:20,userSelect:"all"},children:I}),f.jsxs("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[f.jsx("button",{type:"button",className:"primary",onClick:()=>{navigator.clipboard.writeText(I)},children:"复制恢复码"}),f.jsx("button",{type:"button",onClick:()=>S(null),children:"已保存,关闭"})]})]})}),f.jsxs(f.Fragment,{children:[f.jsx(hu,{open:X,onToggle:()=>{var y;X?(y=Ee.current)==null||y.requestClose():K(!0)},position:Q,onPositionChange:de,disableDrag:l}),X?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Fu,{ref:Ee,open:X,onClose:()=>K(!1),visitorName:b==null?void 0:b.visitorName,fullscreen:l,domainId:E||null,documentId:(A==null?void 0:A.documentId)??null,documentTitle:(A==null?void 0:A.displayName)??null,documentPath:(A==null?void 0:A.relativePath)??null,anchorStyle:l?void 0:mu(Q),onOpenDocument:y=>{G("docs"),Ie(()=>B(`/doc/${y}`)),K(!1)},onTreeChanged:()=>void _e(),onDocumentOverwritten:y=>void ln(y),onOpenCoding:y=>void sn(y)})}):null]}),he?f.jsx(_.Suspense,{fallback:null,children:f.jsx(Lu,{open:Ne,initialMarkdown:he.markdown,documentId:he.documentId,displayName:he.displayName,onClose:()=>{be(!1),ge(null)},onComplete:cn})}):null,L==="settings"?f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"mdocs-main muted",style:{padding:24},children:"加载设置…"}),children:f.jsx(Ru,{onBack:()=>G("docs"),onPublishDraft:$r,onOpenDocument:At,onRecoverDraft:()=>void _e()})}):f.jsxs("div",{className:"mdocs-layout"+(l?" mdocs-layout--reader":""),children:[l&&d?f.jsx("button",{type:"button",className:"mdocs-mobile-nav-scrim","aria-label":e("collapseSidebar"),onClick:()=>c(!1)}):null,f.jsxs("aside",{className:"mdocs-sidebar"+(l?d?" mdocs-sidebar--drawer-open":" mdocs-sidebar--drawer":a?" mdocs-sidebar-collapsed":""),children:[f.jsxs("header",{className:"mdocs-sidebar-header",children:[f.jsxs("div",{className:"mdocs-brand",children:[f.jsx("img",{src:ju,alt:e("brand"),className:"mdocs-brand-logo"}),f.jsx("span",{children:e("brand")})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-toggle",onClick:h,"aria-label":e(l?d?"collapseSidebar":"expandSidebar":a?"expandSidebar":"collapseSidebar"),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},onMouseEnter:y=>{y.currentTarget.style.background="var(--mdocs-hover-bg, #f0f0f0)"},onMouseLeave:y=>{y.currentTarget.style.background="none"},children:l?f.jsx(Yr,{size:18}):a?f.jsx(Kr,{size:18}):f.jsx(Yr,{size:18})})]}),f.jsxs("div",{className:"mdocs-sidebar-actions",children:[f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newDocument"),onClick:()=>On(),style:{color:"var(--mdocs-accent)"},children:f.jsx(Wr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":e("newFolder"),onClick:()=>Rn(),children:f.jsx(qr,{size:20})}),f.jsx("span",{className:"mdocs-sidebar-icon mdocs-tooltip","data-tooltip":"知识图谱",onClick:()=>un(E,"知识图谱","domain"),style:{marginLeft:8},children:f.jsx(yr,{size:20,strokeWidth:1.75})})]}),f.jsx($s,{nodes:N,activeDocumentId:F??null,selectedParentPath:M,onOpen:y=>{fn(),l&&c(!1),Ie(()=>B(`/doc/${y.documentId}`))},onOpenFolder:(y,R)=>{Ie(()=>{O(y),R&&(fn(),l&&c(!1),B(`/doc/${R}`))})},onContextMenu:C,onMoveDocument:la,onDeselect:()=>{fn(),Ie(()=>{O(""),B("/")})},onOpenGraph:(y,R)=>{if(y.type==="folder")un(y.documentId,y.name);else if(R){const j=N.find(V=>V.documentId===R);un(R,(j==null?void 0:j.name)??"图谱")}},onGenerateGraph:async(y,R)=>{var Z;const j=y.type==="folder"?y.documentId:R;if(!j)return;const V=y.type==="folder"?y.name:((Z=N.find(se=>se.documentId===R))==null?void 0:Z.name)??"图谱";un(j,V)}}),f.jsxs("footer",{className:"mdocs-sidebar-footer",children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,cursor:"pointer"},onClick:()=>Ie(()=>G("settings")),children:[f.jsx("span",{className:"mdocs-visitor-avatar",children:b?b.visitorName.charAt(0).toUpperCase():"?"}),f.jsx("span",{className:"mdocs-visitor-footer-name",children:b?b.visitorName:""})]}),f.jsx("button",{type:"button",className:"mdocs-sidebar-bookmark mdocs-tooltip","data-tooltip":e("bookmark"),onClick:()=>{Bt(!0),Or(""),Rr(""),ta()},style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4},children:f.jsx(Za,{size:16,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-sidebar-logout mdocs-tooltip","data-tooltip":e("logout"),onClick:()=>mn(!0),style:{background:"none",border:"none",cursor:"pointer",padding:"6px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4},children:f.jsx(Ha,{size:16,strokeWidth:1.5})})]})]}),f.jsxs("main",{className:"mdocs-main",children:[ke&&Ae&&me?f.jsx(su,{scope:ke,resourceId:Ae,name:me,onOpenDocument:y=>{fn(),At(y)}},`${ke}-${Ae}`):A&&te&&te.documentId===A.documentId?f.jsxs("div",{className:"mdocs-editor-with-comments",children:[f.jsx("div",{className:"mdocs-editor-container",children:f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"muted",style:{padding:24},children:"加载编辑器…"}),children:f.jsx(Ou,{meta:A,initialContent:te.content,initialDisplayName:te.displayName,contentRevision:J,canEdit:!!(b&&(A.ownerVisitorId===b.visitorId||ss(A.permission)||A.invitedEdit===!0)),domains:T,currentDomainId:E,onDomainChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,onPublish:oa,syncBehind:dt,onSyncClick:()=>void zr(),onDraftExistsChange:Ze,onConflictModalRequest:()=>Ue(!0),onMergeRequest:()=>Fe(!0),canManageInvites:!!(b&&b.visitorId===A.ownerVisitorId),onDelete:async()=>{if(A.relativePath.endsWith("/___desc___.md")){const y=A.relativePath.replace(/\/___desc___\.md$/,"");Br(A.documentId,y)}else Ur(A.documentId,A.relativePath)},saveBeforeNavRef:Ce,exportMarkdownRef:et,onShowToast:ne,onShowError:Pe,onToggleComments:()=>m(!u),commentPanelOpen:u,commentCount:p,onAiWrite:()=>void ht(),readerChrome:l,onOpenMobileNav:()=>c(!0)},A.documentId)})}),u&&f.jsx(wu,{documentId:A.documentId,visitorId:b==null?void 0:b.visitorId,visitorName:b==null?void 0:b.visitorName,documentOwnerId:A.ownerVisitorId,onClose:()=>m(!1)})]}):f.jsxs("div",{className:"mdocs-welcome",children:[l?f.jsxs("button",{type:"button",className:"mdocs-reader-float-pill",onClick:()=>c(!0),"aria-label":e("expandSidebar"),children:[f.jsx(Kr,{size:18,strokeWidth:1.75}),f.jsx("span",{children:e("brand")})]}):null,f.jsx("h1",{children:e("brand")}),f.jsx("p",{className:"muted mdocs-welcome-lead",children:N.length===0?e("noDocsInDomain"):e("createDocToStart")}),f.jsxs("div",{className:"mdocs-welcome-domain",children:[f.jsx("label",{className:"muted mdocs-welcome-domain-label",children:e("domainLabel")}),f.jsx(cu,{domains:T.length?T:[{domainId:"default",domainName:e("defaultDomain"),permission:"",creatorVisitorId:"",docCount:0}],value:E,onChange:y=>{Ie(()=>{localStorage.setItem("mdocs.currentDomainId",y),$(y),Y(null),ie(null),O(""),B("/"),_e(y)})},onDomainsChange:U,ariaLabel:e("domainLabel"),localizeName:y=>yu(y,n,e)})]}),f.jsxs("div",{className:"mdocs-welcome-actions",children:[f.jsxs("button",{type:"button",className:"primary",onClick:()=>On(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(Wr,{size:16,strokeWidth:1.5}),e("newDocument")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>Rn(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx(qr,{size:16,strokeWidth:1.5}),e("newFolder")]}),f.jsxs("button",{type:"button",className:"secondary",onClick:()=>kt(),style:{display:"flex",alignItems:"center",gap:6},children:[f.jsx("img",{src:Ui,alt:"",width:16,height:16,style:{display:"block"}}),"AI 帮写"]})]})]}),f.jsx(_u,{open:Ve,onClose:()=>Ue(!1),onResolve:()=>{Ue(!1),Fe(!0)}}),ve&&A&&Ut&&f.jsx(_.Suspense,{fallback:f.jsx("div",{className:"merge-view-loading",children:e("mergeLoadingRemote")}),children:f.jsx(zu,{documentId:A.documentId,displayName:A.displayName,conflict:Ut,onClose:()=>Fe(!1),onSuccess:aa,onError:y=>Pe(y)})}),Qe&&f.jsx("div",{className:"mdocs-toast",role:"status",children:Qe}),wt&&f.jsx(gu,{title:e("error"),message:wt,onClose:()=>Pe(null)})]}),Zi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&mn(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:440},children:[f.jsx("h1",{style:{fontSize:"1.125rem",marginBottom:8},children:"退出当前登录身份?"}),f.jsx("p",{style:{lineHeight:1.6,color:"var(--mdocs-text-secondary, #666)",marginBottom:20},children:"这将会导致您无法修改以前的文章。如果想找回账号,需要恢复码或联系管理员执行合并用户脚本。"}),f.jsxs("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",onClick:()=>mn(!1),children:"取消"}),f.jsx("button",{type:"button",className:"primary",style:{background:"#d32f2f"},onClick:()=>{ys(),Y(null),ie(null),v(null),P([]),mn(!1),i("needsRegister")},children:"确认退出"})]})]})}),Qi&&f.jsx("div",{className:"mdocs-dialog-backdrop",onClick:y=>{y.target===y.currentTarget&&Bt(!1)},children:f.jsxs("div",{className:"mdocs-dialog card",style:{maxWidth:640,width:"min(640px, 100%)",maxHeight:"70vh",display:"flex",flexDirection:"column"},children:[f.jsxs("h1",{style:{fontSize:"1.125rem",marginBottom:16},children:[e("bookmarkTitle"),"(",Ct.length,")"]}),Ct.length>0&&f.jsxs("div",{className:"mdocs-bookmark-filterbar",children:[f.jsx("input",{type:"text",placeholder:e("bookmarkSearch"),value:Fn,onChange:y=>Or(y.target.value)}),f.jsxs("select",{value:hn,onChange:y=>Rr(y.target.value),children:[f.jsx("option",{value:"",children:e("bookmarkFilterAll")}),na.map(y=>f.jsx("option",{value:y.id,children:y.name},y.id))]})]}),Ct.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkEmpty")}):Lr.length===0?f.jsx("p",{style:{color:"var(--mdocs-text-muted, #999)",textAlign:"center",padding:"2rem 0"},children:e("bookmarkNoMatch")}):f.jsx("div",{style:{overflowY:"auto",flex:1,margin:"0 -1rem",padding:"0 1rem"},children:f.jsxs("table",{className:"mdocs-bookmark-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:e("bookmarkColTitle")}),f.jsx("th",{children:e("bookmarkColDomain")}),f.jsx("th",{children:e("bookmarkColAuthor")}),f.jsx("th",{children:e("bookmarkColTime")}),f.jsx("th",{className:"mdocs-bookmark-col-action"})]})}),f.jsx("tbody",{children:Lr.map(y=>{const R=ea.has(y.documentId);return f.jsxs("tr",{className:`${R?"mdocs-bookmark-removing":""}`,style:{opacity:y.isDeleted?.6:1},children:[f.jsx("td",{className:"mdocs-bookmark-col-title",children:f.jsxs("div",{style:{cursor:y.isDeleted?"default":"pointer",display:"flex",alignItems:"center",gap:6,overflow:"hidden"},onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},children:[f.jsx("span",{ref:j=>{if(j){const V=j.scrollWidth>j.clientWidth;j.title=V?y.displayName??"":""}},style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:y.displayName??"(无标题)"}),y.isDeleted&&f.jsx("span",{style:{fontSize:"0.7rem",color:"#d32f2f",background:"#ffebee",padding:"1px 6px",borderRadius:4,flexShrink:0},children:"已删除"})]})}),f.jsx("td",{children:y.isDeleted?"":Ln[y.domainId??""]??y.domainId??""}),f.jsx("td",{children:y.isDeleted?"":y.ownerVisitorName??"-"}),f.jsx("td",{children:y.isDeleted?"":$u(y.bookmarkedAt,n)}),f.jsx("td",{className:"mdocs-bookmark-col-action",children:f.jsxs("div",{style:{display:"flex",gap:2,alignItems:"center",justifyContent:"flex-end"},children:[f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkOpen"),onClick:()=>{y.isDeleted||Ie(()=>{Bt(!1),B(`/doc/${y.documentId}`)})},style:{background:"none",border:"none",cursor:y.isDeleted?"default":"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},children:f.jsx(La,{size:14,strokeWidth:1.5})}),f.jsx("button",{type:"button",className:"mdocs-tooltip","data-tooltip":e("bookmarkRemove"),onClick:async()=>{try{await Ns(y.documentId),Fr(j=>new Set(j).add(y.documentId)),setTimeout(()=>{jr(j=>j.filter(V=>V.documentId!==y.documentId)),Fr(j=>{const V=new Set(j);return V.delete(y.documentId),V})},300)}catch(j){Pe(bt(e,j))}},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"var(--mdocs-text-muted, #999)",fontSize:"1rem",lineHeight:1,borderRadius:4,display:"inline-flex",alignItems:"center"},onMouseEnter:j=>{j.currentTarget.style.color="#d32f2f"},onMouseLeave:j=>{j.currentTarget.style.color="var(--mdocs-text-muted, #999)"},children:"✕"})]})})]},y.documentId)})})]})}),f.jsx("div",{className:"mdocs-dialog-actions",style:{justifyContent:"flex-end",marginTop:16,paddingTop:16,borderTop:"1px solid var(--mdocs-border, #eee)"},children:f.jsx("button",{type:"button",onClick:()=>Bt(!1),children:e("close")})})]})}),mt&&f.jsx(lu,{x:mt.x,y:mt.y,node:mt.node,parentPath:mt.parentPath,onClose:()=>C(null),onCreateChild:y=>On(y),onCreateFolder:y=>Rn(y),onDeleteDocument:y=>Ur(y.documentId,y.path),onDeleteFolder:y=>Br(y.documentId,y.folderDisplayName||y.name)}),pe&&f.jsx(Bi,{title:pe.type==="folder"?"删除文件夹":"删除文档",message:pe.type==="folder"?`确定要删除「${pe.name}」及其下的所有文档和子文件夹吗?此操作不可撤销。`:`确定要删除「${pe.name}」吗?`,confirmLabel:"删除",cancelLabel:"取消",onConfirm:ca,onCancel:()=>ft(null),danger:!0}),Mt&&f.jsx("div",{className:"mdocs-dialog-backdrop",role:"presentation",onMouseDown:y=>{y.target===y.currentTarget&&!Et&&jn(null)},children:f.jsxs("div",{className:"mdocs-dialog card",role:"dialog","aria-modal":"true",children:[f.jsx("h1",{children:Mt.kind==="document"?e("newDocumentTitle"):e("newFolderTitle")}),f.jsx("p",{className:"muted",children:Mt.kind==="document"?e("fileNameHint"):e("folderNameHint")}),f.jsxs("form",{onSubmit:Xi,className:"mdocs-dialog-form",children:[f.jsxs("label",{className:"mdocs-dialog-label",children:[Mt.kind==="document"?e("fileNameLabel"):e("folderNameLabel"),f.jsx("input",{ref:Ji,value:Mt.draft,onChange:y=>jn(R=>R&&{...R,draft:y.target.value}),placeholder:Mt.kind==="document"?e("untitledPlaceholder"):e("folderExamplePlaceholder"),maxLength:200,disabled:Et})]}),Er&&f.jsx("div",{className:"mdocs-dialog-error",children:Er}),f.jsxs("div",{className:"mdocs-dialog-actions",children:[f.jsx("button",{type:"button",onClick:()=>!Et&&jn(null),disabled:Et,children:e("cancel")}),f.jsx("button",{type:"submit",className:"primary",disabled:Et,children:e(Et?"creating":"create")})]})]})]})})]})]})]})}const Uu=_.lazy(()=>zt(()=>import("./PlaygroundPage-C4X6Lj-Q.js"),__vite__mapDeps([16,1,4,5,2,3,6,7,8,9])).then(e=>({default:e.PlaygroundPage})));function Bu(){return f.jsxs(pa,{children:[f.jsx(zn,{path:"/",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/doc/:documentId",element:f.jsx(Yo,{})}),f.jsx(zn,{path:"/playground",element:f.jsx(_.Suspense,{fallback:f.jsx("div",{style:{padding:24},children:"Loading playground…"}),children:f.jsx(Uu,{})})})]})}function Hu(){const{pathname:e,hash:n,search:r,origin:o}=window.location,i="/",a=i.endsWith("/")?i.slice(0,-1):i;let s=e;a&&s.startsWith(a)&&(s=s.slice(a.length)||"/");const l=s.match(/^\/doc\/([^/]+)\/?$/);if(!l)return;const d=n.match(/^#\/doc\/([^/?#]+)/),c=(d==null?void 0:d[1])??l[1];if(!c)return;const h=i.endsWith("/")?i:`${i}/`;window.location.replace(`${o}${h}${r}#/doc/${c}`)}Hu();const Gi=document.getElementById("root");if(!Gi)throw new Error("root element missing");ga.createRoot(Gi).render(f.jsx(Ko.StrictMode,{children:f.jsx(va,{motion:Aa,children:f.jsx(ba,{children:f.jsx(is,{children:f.jsx(ya,{children:f.jsx(Bu,{})})})})})}));export{Tf as $,rn as A,Qu as B,_s as C,cu as D,Jf as E,Rs as F,uf as G,df as H,cf as I,lf as J,hf as K,ef as L,Ga as M,yr as N,nf as O,Kr as P,tf as Q,rf as R,Za as S,mf as T,ff as U,pf as V,gf as W,yf as X,Pf as Y,ro as Z,Bi as _,Oe as a,Nf as a0,Af as a1,Mf as a2,Ef as a3,jf as a4,Of as a5,xu as a6,Cf as a7,Ps as a8,Df as a9,ju as aa,Yr as ab,ei as ac,af as ad,of as ae,kf as af,Rf as ag,Lf as ah,Ft as ai,Ff as aj,zf as ak,$f as al,Uf as am,Kf as an,Gf as ao,Yf as ap,Vf as aq,Hf as ar,Bf as as,qf as at,Wf as au,Vt as av,vf as aw,Un as ax,oo as ay,$n as az,lt as b,Re as c,Jn as d,If as e,sf as f,Xr as g,Ju as h,Ui as i,Sf as j,bf as k,yu as l,We as m,_f as n,xf as o,wf as p,ni as q,Ns as r,ws as s,$s as t,Iu as u,ti as v,bt as w,Su as x,Nu as y,Xn as z};
|