aitable-workflow-cli 0.1.13-beta.1
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/README.md +101 -0
- package/bin/aitable-workflow.mjs +21 -0
- package/dist/chunk-EI7MMDWY.js +1 -0
- package/dist/chunk-QUKPCNJA.js +38 -0
- package/dist/chunk-U773UWB7.js +1 -0
- package/dist/cli.js +69 -0
- package/dist/config-command-EPY7IOF2.js +1 -0
- package/dist/config-ui-server-JQMJSJHD.js +9 -0
- package/dist/pid-file-HPTFI54H.js +1 -0
- package/dist/web/assets/index-Dk4AmuGi.css +1 -0
- package/dist/web/assets/index-lH_EMWyt.js +318 -0
- package/dist/web/index.html +14 -0
- package/package.json +31 -0
- package/templates/aitable-handoff/.env.example +17 -0
- package/templates/aitable-handoff/aitable-workflow.config.yml +64 -0
- package/templates/aitable-handoff/coding-agents.config.json +17 -0
- package/templates/aitable-handoff/npmrc +1 -0
- package/templates/aitable-handoff/package.json +16 -0
- package/templates/aitable-handoff/roles/config-syncer.role.yml +4 -0
- package/templates/aitable-handoff/roles/daily-review.role.yml +4 -0
- package/templates/aitable-handoff/roles/faq-support.role.yml +9 -0
- package/templates/aitable-handoff/roles/faq-troubleshooter.role.yml +17 -0
- package/templates/aitable-handoff/roles/kb-editor.role.yml +19 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250/6/350/212/202/350/257/276/345/270/246/344/275/240/345/277/253/351/200/237/344/270/212/346/211/213AI/350/241/250/346/240/274.md +43 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250/AI/350/241/250/346/240/274/350/241/214/346/225/260/350/257/264/346/230/216.md +85 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//344/275/277/347/224/250/345/277/253/346/215/267/351/224/256.md +34 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//345/260/206Excel/346/226/207/344/273/266/345/257/274/345/205/245AI/350/241/250/346/240/274.md +48 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//345/270/270/350/247/201/351/227/256/351/242/230.md +88 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//346/250/241/346/235/277/344/270/255/345/277/203.md +59 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//351/222/211/351/222/211AI/350/241/250/346/240/274/345/270/270/350/247/201/344/270/212/351/231/220.md +181 -0
- package/templates/aitable-handoff/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//351/222/211/351/222/211AI/350/241/250/346/240/274/345/277/253/351/200/237/344/270/212/346/211/213.md +177 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234/AI/350/241/250/346/240/274/347/232/204/345/257/274/345/207/272.md +27 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/345/210/206/347/273/204.md +67 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/345/241/253/350/211/262.md +99 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/346/216/222/345/272/217.md +66 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/347/255/233/351/200/211/345/222/214/347/255/233/351/200/211/346/235/241/344/273/266/347/273/204.md +104 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//346/237/245/347/234/213/345/216/206/345/217/262/350/256/260/345/275/225.md +79 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257.md +94 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/345/220/215/347/247/260.md +35 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/350/257/246/346/203/205/351/241/265/345/222/214/345/241/253/345/206/231/351/241/265.md +141 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/260/203/346/225/264/345/210/227/345/256/275.md +42 -0
- package/templates/aitable-handoff/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/260/203/346/225/264/350/241/214/351/253/230.md +40 -0
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//344/270/272/350/241/250/346/240/274/346/267/273/345/212/240/345/255/227/346/256/265.md +188 -0
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/215/225/351/200/211/345/244/232/351/200/211/345/255/227/346/256/265/345/220/214/346/255/245/345/205/266/344/273/226/350/241/250/351/200/211/351/241/271.md +142 -0
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/256/241/347/220/206.md +44 -0
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/261/273/345/236/213/345/210/227/350/241/250.md +95 -0
- package/templates/aitable-handoff/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/274/226/347/273/204.md +138 -0
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/345/221/250/346/234/237/345/210/206/350/241/250.md +42 -0
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/345/237/272/347/241/200/346/223/215/344/275/234.md +344 -0
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/346/230/216/347/273/206/350/241/250-/344/270/200/346/254/241/345/241/253/345/206/231/345/244/232/346/235/241/346/217/220/344/272/244.md +174 -0
- package/templates/aitable-handoff/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/351/242/204/345/241/253/351/273/230/350/256/244/345/200/274.md +97 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250AI/347/224/237/346/210/220/345/205/254/345/274/217.md +26 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/205/254/345/274/217/345/207/275/346/225/260/345/270/270/350/247/201/351/227/256/351/242/230.md +179 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/205/254/345/274/217/345/255/227/346/256/265.md +81 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/207/275/346/225/260.md +21 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/345/207/275/346/225/260/345/244/247/345/205/250.md +433 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/346/224/257/346/214/201/346/230/276/347/244/272/346/240/274/345/274/217.md +126 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/351/224/231/350/257/257/344/273/243/347/240/201/345/210/227/350/241/250.md +30 -0
- package/templates/aitable-handoff/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/207/275/346/225/260/345/256/236/350/267/265.md +13 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203.md +169 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//347/273/204/347/273/207/345/206/205/345/205/261/344/272/253/346/225/260/346/215/256/346/272/220.md +106 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +176 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211AI/345/220/254/350/256/260/346/225/260/346/215/256/345/220/214/346/255/245.md +100 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211OA/345/256/241/346/211/271/346/225/260/346/215/256/345/220/214/346/255/245.md +194 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/345/276/205/345/212/236/346/225/260/346/215/256/345/220/214/346/255/245.md +87 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/346/227/245/347/250/213/346/225/260/346/215/256/345/220/214/346/255/245.md +92 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/350/200/203/345/213/244/346/211/223/345/215/241/346/225/260/346/215/256/345/220/214/346/255/245.md +129 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +229 -0
- package/templates/aitable-handoff/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/351/200/232/350/256/257/345/275/225/346/225/260/346/215/256/345/220/214/346/255/245.md +120 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//344/275/277/347/224/250AI/350/241/250/346/240/274/350/247/206/345/233/276.md +219 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//345/210/206/344/272/253/350/247/206/345/233/276.md +71 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/225/260/346/215/256/350/241/250/345/222/214/350/247/206/345/233/276/347/232/204/345/205/263/347/263/273.md +48 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/227/245/345/216/206/350/247/206/345/233/276.md +89 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/237/245/350/257/242/351/241/265/351/235/242.md +116 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/224/230/347/211/271/345/233/276.md +135 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/224/273/345/206/214/350/247/206/345/233/276.md +28 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/234/213/346/235/277/350/247/206/345/233/276.md +35 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//350/241/250/346/240/274/350/247/206/345/233/276.md +116 -0
- package/templates/aitable-handoff/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//351/200/217/350/247/206/350/241/250/350/247/206/345/233/276.md +123 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230/TOP_N/345/210/206/346/236/220.md +78 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/344/270/255/346/267/273/345/212/240/345/244/232/344/270/252/346/225/260/346/215/256/346/272/220.md +129 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/345/215/225/345/233/276/350/241/250/345/222/214AI/350/247/243/350/257/273/345/206/205/345/256/271/345/210/206/344/272/253.md +104 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/345/270/270/350/247/201/351/227/256/351/242/230.md +31 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/346/231/272/350/203/275/346/200/273/347/273/223/345/210/206/346/236/220.md +57 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/347/273/204/344/273/266.md +47 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/275/277/347/224/250AI/350/241/250/346/240/274/344/273/252/350/241/250/347/233/230.md +226 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/346/265/201/347/250/213/345/217/221/351/200/201/344/273/252/350/241/250/347/233/230.md +49 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//345/210/206/344/272/253/344/273/252/350/241/250/347/233/230.md +74 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//345/234/250/344/273/252/350/241/250/347/233/230/344/270/255/347/255/233/351/200/211/346/225/260/346/215/256.md +65 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//350/207/252/345/256/232/344/271/211/344/273/252/350/241/250/347/233/230/344/270/255/345/277/203.md +93 -0
- package/templates/aitable-handoff/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//350/267/237/351/232/217/350/256/277/351/227/256/350/200/205/346/235/203/351/231/220/347/273/237/350/256/241.md +48 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/205/250/346/226/260/345/272/224/347/224/250/346/250/241/345/274/217.md +155 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/210/227/350/241/250/347/273/204/344/273/266.md +228 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/233/276/347/211/207.md +93 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//346/214/211/351/222/256.md +86 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//346/240/207/347/255/276/351/241/265.md +97 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//350/247/206/345/233/276/347/273/204/344/273/266.md +125 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//350/277/207/346/273/244/345/231/250.md +110 -0
- package/templates/aitable-handoff/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//351/200/217/350/247/206/350/241/250/347/273/204/344/273/266.md +142 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201/Webhook/345/217/202/346/225/260/347/232/204/350/257/246/347/273/206/350/257/264/346/230/216.md +76 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/270/200/350/241/250/344/270/200/345/217/267Agent/346/224/257/346/214/201/347/276/244/346/224/266/351/233/206.md +150 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250webhook/350/247/246/345/217/221/350/207/252/345/212/250/345/214/226.md +163 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/344/270/215/345/220/214/350/272/253/344/273/275/345/217/221/351/200/201/351/222/211/351/222/211/346/266/210/346/201/257.md +60 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201.md +219 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/276/252/347/216/257/350/212/202/347/202/271.md +63 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//345/234/250/346/265/201/347/250/213/344/270/255/344/275/277/347/224/250AI/351/227/256/347/255/224.md +69 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//345/234/250/346/266/210/346/201/257/345/215/241/347/211/207/344/270/212/346/267/273/345/212/240/346/214/211/351/222/256.md +93 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//346/265/201/347/250/213/345/217/230/351/207/217/350/247/243/351/207/212/344/270/216/345/270/270/350/247/201/346/212/245/351/224/231.md +158 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//346/265/201/347/250/213/350/247/246/345/217/221/346/235/241/344/273/266/344/270/216/346/211/247/350/241/214/345/212/250/344/275/234/344/270/200/350/247/210.md +310 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257-/350/207/252/345/212/250/345/214/226.md +129 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//347/224/250/346/237/245/346/211/276/350/256/260/345/275/225/345/217/221/351/200/201/347/273/204/345/220/210/345/255/227/346/256/265/351/200/232/347/237/245.md +66 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/210/233/345/273/272/351/222/211/351/222/211/345/276/205/345/212/236/346/210/226/346/227/245/347/250/213.md +84 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267AI/347/224/265/350/257/235/345/244/226/345/221/274.md +322 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267OA/345/256/241/346/211/271.md +93 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/351/200/201HTTP/350/257/267/346/261/202.md +168 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/270/270/350/247/201/351/227/256/351/242/230.md +83 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/211/271/351/207/217/345/217/221/351/202/256/344/273/266.md +79 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/224/257/346/214/201/346/217/222/345/205/245/345/223/252/344/272/233/345/217/230/351/207/217/345/206/205/345/256/271.md +80 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/233/264/345/244/232/346/211/247/350/241/214/345/212/250/344/275/234/344/275/277/347/224/250/346/214/207/345/215/227.md +21 -0
- package/templates/aitable-handoff/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/260/203/347/224/250/344/270/211/346/226/271/345/267/245/344/275/234/346/265/201/345/272/224/347/224/250.md +161 -0
- package/templates/aitable-handoff/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/274/230/345/205/210/344/275/277/347/224/250/347/224/263/350/257/267.md +67 -0
- package/templates/aitable-handoff/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/275/277/347/224/250/350/257/264/346/230/216.md +63 -0
- package/templates/aitable-handoff/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/345/212/251/347/220/206.md +107 -0
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//344/275/277/347/224/250AI/350/241/250/346/240/274/351/253/230/347/272/247/346/235/203/351/231/220.md +194 -0
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//350/241/214/345/210/227/346/235/203/351/231/220/350/256/276/347/275/256/345/217/212/351/253/230/347/272/247/346/235/203/351/231/220/345/257/271/350/241/250/345/215/225/345/205/254/345/274/217/347/232/204/345/275/261/345/223/215.md +32 -0
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/242/204/350/247/210/351/253/230/347/272/247/346/235/203/351/231/220/347/273/223/346/236/234.md +43 -0
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/253/230/347/272/247/346/235/203/351/231/220/345/270/270/350/247/201/351/227/256/351/242/230.md +47 -0
- package/templates/aitable-handoff/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/253/230/347/272/247/346/235/203/351/231/220/347/232/204/351/273/230/350/256/244/350/247/222/350/211/262.md +36 -0
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/344/270/211/346/226/271/346/217/222/344/273/266/344/275/277/347/224/250/346/216/210/346/235/203.md +19 -0
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/204/232/346/234/254/346/217/222/344/273/266.md +42 -0
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/207/252/345/256/232/344/271/211/346/217/222/344/273/266.md +51 -0
- package/templates/aitable-handoff/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266/344/270/255/345/277/203-/344/275/277/347/224/250/346/214/207/345/215/227.md +97 -0
- package/templates/aitable-handoff/wiki/faq-support/14-/347/256/241/347/220/206/345/220/216/345/217/260//344/275/277/347/224/250/346/225/260/346/215/256/350/257/264/346/230/216.md +82 -0
- package/templates/aitable-handoff/wiki/faq-support/14-/347/256/241/347/220/206/345/220/216/345/217/260//346/235/203/347/233/212/346/225/260/346/215/256/350/257/264/346/230/216.md +111 -0
- package/templates/aitable-handoff/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265/AI/350/241/250/346/240/274/350/257/257/345/210/240/346/201/242/345/244/215/346/214/207/345/215/227.md +37 -0
- package/templates/aitable-handoff/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265//345/234/250/350/241/250/346/240/274/344/270/255/346/240/207/350/256/260/351/207/215/345/244/215/345/206/205/345/256/271.md +43 -0
- package/templates/aitable-handoff/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265//347/233/264/346/222/255/345/205/254/345/274/200/347/263/273/345/210/227/350/257/276.md +21 -0
- package/templates/aitable-handoff/wiki/faq-support/16-/344/273/230/350/264/271/346/235/203/347/233/212//351/222/211/351/222/211AI/350/241/250/346/240/274/344/273/230/350/264/271/346/235/203/347/233/212.md +144 -0
- package/templates/aitable-handoff/wiki/faq-support/16-/344/273/230/350/264/271/346/235/203/347/233/212//351/222/211/351/222/211AI/350/241/250/346/240/274/346/220/255/345/273/272/346/234/215/345/212/241.md +95 -0
- package/templates/aitable-handoff/wiki/faq-support/17-/345/205/254/345/221/212/AI/350/241/250/346/240/274-/346/216/222/347/211/210/346/211/223/345/215/260/345/215/207/347/272/247/350/257/264/346/230/216.md +40 -0
- package/templates/aitable-handoff/wiki/faq-support/17-/345/205/254/345/221/212/AI/350/241/250/346/240/274-/347/211/210/346/234/254/345/215/207/347/272/247/351/200/232/347/237/245.md +21 -0
- package/templates/aitable-handoff/wiki/faq-support/17-/345/205/254/345/221/212//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245/350/260/203/346/225/264/350/257/264/346/230/216.md +55 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI /350/241/250/346/240/274/346/217/222/344/273/266 - /344/274/201/344/270/232/345/206/205/346/217/222/344/273/266/345/217/221/345/270/203/346/214/207/345/215/227.md" +159 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210FaaS/347/211/210/357/274/211.md" +1362 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210/345/205/254/345/274/217/347/211/210/357/274/211.md" +556 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227.md" +15 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/AI /350/241/250/346/240/274 AI /345/255/227/346/256/265/345/270/270/350/247/201/346/212/245/351/224/231/350/257/264/346/230/216.md" +649 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/Dify/346/231/272/350/203/275/344/275/223.md" +55 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/GPTPro /345/255/227/346/256/265/346/215/267/345/276/204 /345/257/206/351/222/245/350/216/267/345/217/226/346/214/207/345/215/227.md" +23 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/OpenClaw /345/260/217/351/276/231/350/231/276/345/212/251/346/211/213/351/205/215/347/275/256/346/225/231/347/250/213.md" +27 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227//345/233/275/345/206/205/345/244/226/345/277/253/351/200/222/347/211/251/346/265/201/344/277/241/346/201/257/346/237/245/350/257/242/344/275/277/347/224/250/346/214/207/345/215/227.md" +907 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227//345/277/253/351/200/222/347/211/251/346/265/201/346/237/245/350/257/242/345/212/251/346/211/213/344/275/277/347/224/250/346/214/207/345/215/227.md" +1 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/AI/350/241/250/346/240/274JSAPI /347/261/273/345/236/213/346/217/217/350/277/260.xlsx +0 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Base /346/250/241/345/235/227.md" +391 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/AttachmentField /351/231/204/344/273/266/345/255/227/346/256/265.md" +200 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/AutoNumberField /350/207/252/345/212/250/347/274/226/345/217/267/345/255/227/346/256/265.md" +75 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/BarcodeField /346/235/241/347/240/201/345/255/227/346/256/265.md" +95 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/BidirectionalLinkField /345/217/214/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +294 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CheckboxField /345/244/215/351/200/211/346/241/206/345/255/227/346/256/265.md" +95 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CreatedTimeField /345/210/233/345/273/272/346/227/266/351/227/264/345/255/227/346/256/265.md" +134 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CurrencyField /350/264/247/345/270/201/345/255/227/346/256/265.md" +260 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/DateField /346/227/245/346/234/237/345/255/227/346/256/265.md" +183 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/DepartmentField /351/203/250/351/227/250/345/255/227/346/256/265.md" +111 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/EmailField /351/202/256/347/256/261/345/255/227/346/256/265.md" +99 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/FilterUpField /346/237/245/346/211/276/345/274/225/347/224/250/345/255/227/346/256/265.md" +73 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/FormulaField /345/205/254/345/274/217/345/255/227/346/256/265.md" +109 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/GeoLocationField /345/234/260/347/220/206/344/275/215/347/275/256/345/255/227/346/256/265.md" +33 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/GroupField /347/276/244/347/273/204/345/255/227/346/256/265.md" +111 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/LastModifiedTimeField /346/234/200/345/220/216/346/233/264/346/226/260/346/227/266/351/227/264/345/255/227/346/256/265.md" +134 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/LookupField /345/205/263/350/201/224/345/274/225/347/224/250/345/255/227/346/256/265.md" +71 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/MultiSelectField /345/244/232/351/200/211/345/255/227/346/256/265.md" +349 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/NumberField /346/225/260/345/255/227/345/255/227/346/256/265.md" +175 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/PrimaryField /344/270/273/351/224/256/346/226/207/346/241/243/345/255/227/346/256/265.md" +91 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/ProgressField /350/277/233/345/272/246/345/255/227/346/256/265.md" +324 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/RatingField /350/257/204/345/210/206/345/255/227/346/256/265.md" +320 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/RichTextField /345/257/214/346/226/207/346/234/254/345/255/227/346/256/265.md" +45 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/SingleSelectField /345/215/225/351/200/211/345/255/227/346/256/265.md" +336 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/TelephoneField /347/224/265/350/257/235/345/255/227/346/256/265.md" +99 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/TextField /346/226/207/346/234/254/345/255/227/346/256/265.md" +93 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UnidirectionalLinkFields /345/215/225/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +295 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UrlField /351/223/276/346/216/245/345/255/227/346/256/265.md" +163 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UserField /344/272/272/345/221/230/345/255/227/346/256/265.md" +266 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227.md" +379 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Record /346/250/241/345/235/227.md" +277 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Sheet /346/250/241/345/235/227.md" +1013 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/UI /346/250/241/345/235/227.md" +472 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/View /346/250/241/345/235/227/GridView /350/241/250/346/240/274/350/247/206/345/233/276.md" +835 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/View /346/250/241/345/235/227.md" +203 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md +65 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243//350/257/273/345/206/231AI /350/241/250/346/240/274/346/250/241/345/236/213.md" +29 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/346/225/260/346/215/256/346/272/220 /345/274/200/345/217/221/346/214/207/345/215/227.md" +607 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Base /346/250/241/345/235/227.md" +391 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Field /346/250/241/345/235/227.md" +379 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Input/346/250/241/345/235/227.md" +331 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Output/346/250/241/345/235/227.md" +197 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Record /346/250/241/345/235/227.md" +277 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Sheet /346/250/241/345/235/227.md" +1013 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/UI /346/250/241/345/235/227.md" +472 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/View /346/250/241/345/235/227.md" +203 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md" +65 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +142 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Base /346/250/241/345/235/227.md" +391 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Event/344/272/213/344/273/266/346/250/241/345/235/227.md" +182 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Field /346/250/241/345/235/227.md" +379 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Record /346/250/241/345/235/227.md" +277 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Sheet /346/250/241/345/235/227.md" +1013 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/UI /346/250/241/345/235/227.md" +472 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/View /346/250/241/345/235/227.md" +203 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/205/266/344/273/226/346/216/245/345/217/243.md" +146 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md" +65 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//346/240/270/345/277/203/347/237/245/350/257/206.md" +54 -0
- package/templates/aitable-handoff/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +192 -0
- package/templates/aitable-handoff/wiki/faq-support//351/222/211/351/222/211AI/350/241/250/346/240/274FAQ.md +611 -0
- package/templates/aitable-handoff/workflows/admin-kb-update/recipes/kb-refine.recipe.ts +131 -0
- package/templates/aitable-handoff/workflows/admin-kb-update/recipes/kb_sync_handler.recipe.ts +130 -0
- package/templates/aitable-handoff/workflows/admin-kb-update/workflow.yml +125 -0
- package/templates/aitable-handoff/workflows/config-sync/recipes/config_sync.recipe.ts +448 -0
- package/templates/aitable-handoff/workflows/config-sync/recipes/config_sync_handler.recipe.ts +16 -0
- package/templates/aitable-handoff/workflows/config-sync/workflow.yml +73 -0
- package/templates/aitable-handoff/workflows/daily-review/recipes/daily_review.recipe.ts +529 -0
- package/templates/aitable-handoff/workflows/daily-review/recipes/daily_review_handler.recipe.ts +26 -0
- package/templates/aitable-handoff/workflows/daily-review/recipes/memory-events.ts +56 -0
- package/templates/aitable-handoff/workflows/daily-review/workflow.yml +92 -0
- package/templates/aitable-handoff/workflows/group-qa/error-replies.json +53 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/answer.recipe.ts +197 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/conversation_handler.recipe.ts +294 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/issue-classifier.ts +120 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/known-error-match.recipe.ts +75 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/memory-events.ts +55 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/reply-to-group.recipe.ts +132 -0
- package/templates/aitable-handoff/workflows/group-qa/recipes/troubleshoot-issue.recipe.ts +195 -0
- package/templates/aitable-handoff/workflows/group-qa/workflow.yml +210 -0
- package/templates/aitable-handoff/workspaces/daily-review/AGENTS.md +189 -0
- package/templates/aitable-handoff/workspaces/faq-support/AGENTS.md +448 -0
- package/templates/aitable-handoff/workspaces/faq-support/contacts.json +14 -0
- package/templates/aitable-handoff/workspaces/faq-support/owner-map.json +18 -0
- package/templates/aitable-handoff/workspaces/faq-support/skills/bug-triage/SKILL.md +130 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/AGENTS.md +53 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/SKILL.md +58 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/aitable-import-troubleshooter/SKILL.md +485 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/aitable-openapi-troubleshooter/SKILL.md +183 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/import-openapi-e2e-troubleshooter/SKILL.md +459 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/notable-datasource-troubleshooter/SKILL.md +1286 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/notable-field-troubleshooter/SKILL.md +673 -0
- package/templates/aitable-handoff/workspaces/faq-troubleshooter/skills/troubleshooting/spreadsheet-datasync-troubleshooter/SKILL.md +322 -0
- package/templates/aitable-handoff/workspaces/kb-editor/AGENTS.md +32 -0
- package/templates/support-qa/.env.example +18 -0
- package/templates/support-qa/aitable-workflow.config.yml +46 -0
- package/templates/support-qa/coding-agents.config.json +17 -0
- package/templates/support-qa/lib/action-dispatch.ts +262 -0
- package/templates/support-qa/lib/assemble-cli.ts +30 -0
- package/templates/support-qa/lib/assemble.ts +279 -0
- package/templates/support-qa/lib/contract.ts +253 -0
- package/templates/support-qa/lib/echo-guard.ts +50 -0
- package/templates/support-qa/lib/fastpath.ts +227 -0
- package/templates/support-qa/lib/memory-events.ts +94 -0
- package/templates/support-qa/lib/owner-mention.ts +140 -0
- package/templates/support-qa/lib/owner-resolver.ts +94 -0
- package/templates/support-qa/lib/profile-guard.ts +55 -0
- package/templates/support-qa/lib/profile.ts +51 -0
- package/templates/support-qa/lib/send-failure-guard.ts +59 -0
- package/templates/support-qa/lib/troubleshoot.ts +236 -0
- package/templates/support-qa/npmrc +1 -0
- package/templates/support-qa/package.json +19 -0
- package/templates/support-qa/profiles/aitable/profile/escalation/contacts.json +37 -0
- package/templates/support-qa/profiles/aitable/profile/escalation/owner-map.json +18 -0
- package/templates/support-qa/profiles/aitable/profile/fastpath/known-answers.yml +570 -0
- package/templates/support-qa/profiles/aitable/profile/profile.yml +156 -0
- package/templates/support-qa/profiles/aitable/profile/prompts/kb-editor.md +3 -0
- package/templates/support-qa/profiles/aitable/profile/prompts/persona.md +49 -0
- package/templates/support-qa/profiles/aitable/profile/prompts/troubleshooter.md +5 -0
- package/templates/support-qa/profiles/aitable/profile/troubleshoot/classifiers.yml +36 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/SKILL.md +58 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/aitable-import-troubleshooter/SKILL.md +485 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/aitable-openapi-troubleshooter/SKILL.md +183 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/import-openapi-e2e-troubleshooter/SKILL.md +459 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/notable-datasource-troubleshooter/SKILL.md +1286 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/notable-field-troubleshooter/SKILL.md +673 -0
- package/templates/support-qa/profiles/aitable/skills/troubleshooting/spreadsheet-datasync-troubleshooter/SKILL.md +322 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/state.json +202 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/_compile-report.json +8 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/_index.md +197 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274-/346/216/222/347/211/210/346/211/223/345/215/260/345/215/207/347/272/247/350/257/264/346/230/216.md +53 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274-/347/211/210/346/234/254/345/215/207/347/272/247/351/200/232/347/237/245.md +36 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/274/230/345/205/210/344/275/277/347/224/250/347/224/263/350/257/267.md +51 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/275/277/347/224/250/350/257/264/346/230/216.md +51 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274/344/270/211/346/226/271/346/217/222/344/273/266/344/275/277/347/224/250/346/216/210/346/235/203.md +37 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274/345/212/251/347/220/206.md +107 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/204/232/346/234/254/346/217/222/344/273/266.md +59 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/207/252/345/256/232/344/271/211/346/217/222/344/273/266.md +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/TOP_N/345/210/206/346/236/220.md +82 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts/_index.md +60 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//344/270/200/350/241/250/344/270/200/345/217/267Agent/346/224/257/346/214/201/347/276/244/346/224/266/351/233/206.md +119 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//344/273/252/350/241/250/347/233/230/346/231/272/350/203/275/346/200/273/347/273/223/345/210/206/346/236/220.md +71 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//344/275/277/347/224/250AI/347/224/237/346/210/220/345/205/254/345/274/217.md +31 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//344/275/277/347/224/250/344/270/215/345/220/214/350/272/253/344/273/275/345/217/221/351/200/201/351/222/211/351/222/211/346/266/210/346/201/257.md +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/276/252/347/216/257/350/212/202/347/202/271.md +68 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/346/265/201/347/250/213/345/217/221/351/200/201/344/273/252/350/241/250/347/233/230.md +58 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/205/254/345/274/217/346/224/257/346/214/201/346/230/276/347/244/272/346/240/274/345/274/217.md +96 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/210/206/344/272/253/344/273/252/350/241/250/347/233/230.md +82 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/210/206/344/272/253/350/247/206/345/233/276.md +73 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/210/227/350/241/250/347/273/204/344/273/266.md +124 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/233/276/347/211/207.md +77 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/234/250/344/273/252/350/241/250/347/233/230/344/270/255/347/255/233/351/200/211/346/225/260/346/215/256.md +70 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//345/255/227/346/256/265/347/274/226/347/273/204.md +94 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/214/211/351/222/256.md +67 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/225/260/346/215/256/350/241/250/345/222/214/350/247/206/345/233/276/347/232/204/345/205/263/347/263/273.md +56 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/227/245/345/216/206/350/247/206/345/233/276.md +74 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/237/245/350/257/242/351/241/265/351/235/242.md +97 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/240/207/347/255/276/351/241/265.md +80 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/240/270/345/277/203/347/237/245/350/257/206.md +74 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//346/250/241/346/235/277/344/270/255/345/277/203.md +66 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//347/224/230/347/211/271/345/233/276.md +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//347/224/273/345/206/214/350/247/206/345/233/276.md +39 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//347/234/213/346/235/277/350/247/206/345/233/276.md +47 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//347/273/204/347/273/207/345/206/205/345/205/261/344/272/253/346/225/260/346/215/256/346/272/220.md +79 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/207/252/345/256/232/344/271/211/344/273/252/350/241/250/347/233/230/344/270/255/345/277/203.md +77 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/241/214/345/210/227/346/235/203/351/231/220/350/256/276/347/275/256/345/217/212/351/253/230/347/272/247/346/235/203/351/231/220/345/257/271/350/241/250/345/215/225/345/205/254/345/274/217/347/232/204/345/275/261/345/223/215.md +60 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/241/250/345/215/225/345/221/250/346/234/237/345/210/206/350/241/250.md +51 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/241/250/345/215/225/346/230/216/347/273/206/350/241/250-/344/270/200/346/254/241/345/241/253/345/206/231/345/244/232/346/235/241/346/217/220/344/272/244.md +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/241/250/345/215/225/351/242/204/345/241/253/351/273/230/350/256/244/345/200/274.md +81 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/241/250/346/240/274/350/247/206/345/233/276.md +86 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/247/206/345/233/276/347/273/204/344/273/266.md +84 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/257/273/345/206/231AI /350/241/250/346/240/274/346/250/241/345/236/213.md" +68 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/267/237/351/232/217/350/256/277/351/227/256/350/200/205/346/235/203/351/231/220/347/273/237/350/256/241.md +59 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +104 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245/350/260/203/346/225/264/350/257/264/346/230/216.md +62 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//350/277/207/346/273/244/345/231/250.md +79 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//351/200/217/350/247/206/350/241/250/347/273/204/344/273/266.md +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//351/200/217/350/247/206/350/241/250/350/247/206/345/233/276.md +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//351/222/211/351/222/211AI/345/220/254/350/256/260/346/225/260/346/215/256/345/220/214/346/255/245.md +92 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//351/242/204/350/247/210/351/253/230/347/272/247/346/235/203/351/231/220/347/273/223/346/236/234.md +51 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/concepts//351/253/230/347/272/247/346/235/203/351/231/220/347/232/204/351/273/230/350/256/244/350/247/222/350/211/262.md +50 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/log.md +4 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/AI /350/241/250/346/240/274 AI /345/255/227/346/256/265/345/270/270/350/247/201/346/212/245/351/224/231/350/257/264/346/230/216.md" +223 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/AI/350/241/250/346/240/274/350/241/214/346/225/260/350/257/264/346/230/216.md +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/AttachmentField /351/231/204/344/273/266/345/255/227/346/256/265.md" +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/AutoNumberField /350/207/252/345/212/250/347/274/226/345/217/267/345/255/227/346/256/265.md" +47 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/BarcodeField /346/235/241/347/240/201/345/255/227/346/256/265.md" +55 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Base /346/250/241/345/235/227.md" +158 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/BidirectionalLinkField /345/217/214/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +69 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/CheckboxField /345/244/215/351/200/211/346/241/206/345/255/227/346/256/265.md" +51 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/CreatedTimeField /345/210/233/345/273/272/346/227/266/351/227/264/345/255/227/346/256/265.md" +55 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/CurrencyField /350/264/247/345/270/201/345/255/227/346/256/265.md" +66 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/DateField /346/227/245/346/234/237/345/255/227/346/256/265.md" +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/DepartmentField /351/203/250/351/227/250/345/255/227/346/256/265.md" +60 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/EmailField /351/202/256/347/256/261/345/255/227/346/256/265.md" +54 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Event/344/272/213/344/273/266/346/250/241/345/235/227.md +113 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Field /346/250/241/345/235/227.md" +116 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/FilterUpField /346/237/245/346/211/276/345/274/225/347/224/250/345/255/227/346/256/265.md" +82 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/FormulaField /345/205/254/345/274/217/345/255/227/346/256/265.md" +92 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/GeoLocationField /345/234/260/347/220/206/344/275/215/347/275/256/345/255/227/346/256/265.md" +62 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/GridView /350/241/250/346/240/274/350/247/206/345/233/276.md" +138 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/GroupField /347/276/244/347/273/204/345/255/227/346/256/265.md" +86 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Input/346/250/241/345/235/227.md +110 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/LastModifiedTimeField /346/234/200/345/220/216/346/233/264/346/226/260/346/227/266/351/227/264/345/255/227/346/256/265.md" +96 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/LookupField /345/205/263/350/201/224/345/274/225/347/224/250/345/255/227/346/256/265.md" +72 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/MultiSelectField /345/244/232/351/200/211/345/255/227/346/256/265.md" +127 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/NumberField /346/225/260/345/255/227/345/255/227/346/256/265.md" +97 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Output/346/250/241/345/235/227.md +97 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/PrimaryField /344/270/273/351/224/256/346/226/207/346/241/243/345/255/227/346/256/265.md" +78 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/ProgressField /350/277/233/345/272/246/345/255/227/346/256/265.md" +80 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/RatingField /350/257/204/345/210/206/345/255/227/346/256/265.md" +89 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Record /346/250/241/345/235/227.md" +100 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/RichTextField /345/257/214/346/226/207/346/234/254/345/255/227/346/256/265.md" +62 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Sheet /346/250/241/345/235/227.md" +222 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/SingleSelectField /345/215/225/351/200/211/345/255/227/346/256/265.md" +106 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/TelephoneField /347/224/265/350/257/235/345/255/227/346/256/265.md" +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/TextField /346/226/207/346/234/254/345/255/227/346/256/265.md" +64 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/UI /346/250/241/345/235/227.md" +169 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/UnidirectionalLinkFields /345/215/225/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/UrlField /351/223/276/346/216/245/345/255/227/346/256/265.md" +86 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/UserField /344/272/272/345/221/230/345/255/227/346/256/265.md" +103 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/View /346/250/241/345/235/227.md" +112 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/Webhook/345/217/202/346/225/260/347/232/204/350/257/246/347/273/206/350/257/264/346/230/216.md +77 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references/_index.md +75 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//344/273/252/350/241/250/347/233/230/345/270/270/350/247/201/351/227/256/351/242/230.md +44 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//344/273/252/350/241/250/347/233/230/347/273/204/344/273/266.md +48 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//344/275/277/347/224/250/345/207/275/346/225/260.md +36 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//344/275/277/347/224/250/345/277/253/346/215/267/351/224/256.md +53 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//344/275/277/347/224/250/346/225/260/346/215/256/350/257/264/346/230/216.md +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/205/254/345/274/217/345/207/275/346/225/260/345/244/247/345/205/250.md +147 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/205/254/345/274/217/351/224/231/350/257/257/344/273/243/347/240/201/345/210/227/350/241/250.md +41 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/205/266/344/273/226/346/216/245/345/217/243.md +124 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/207/275/346/225/260/345/256/236/350/267/265.md +33 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/233/275/345/206/205/345/244/226/345/277/253/351/200/222/347/211/251/346/265/201/344/277/241/346/201/257/346/237/245/350/257/242/344/275/277/347/224/250/346/214/207/345/215/227.md +84 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md +175 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/255/227/346/256/265/347/261/273/345/236/213/345/210/227/350/241/250.md +56 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//345/270/270/350/247/201/351/227/256/351/242/230.md +90 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//346/235/203/347/233/212/346/225/260/346/215/256/350/257/264/346/230/216.md +90 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//346/265/201/347/250/213/345/217/230/351/207/217/350/247/243/351/207/212/344/270/216/345/270/270/350/247/201/346/212/245/351/224/231.md +149 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//346/265/201/347/250/213/350/247/246/345/217/221/346/235/241/344/273/266/344/270/216/346/211/247/350/241/214/345/212/250/344/275/234/344/270/200/350/247/210.md +147 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257-/350/207/252/345/212/250/345/214/226.md +105 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//347/233/264/346/222/255/345/205/254/345/274/200/347/263/273/345/210/227/350/257/276.md +35 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//350/207/252/345/212/250/345/214/226/345/270/270/350/247/201/351/227/256/351/242/230.md +118 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//350/207/252/345/212/250/345/214/226/346/224/257/346/214/201/346/217/222/345/205/245/345/223/252/344/272/233/345/217/230/351/207/217/345/206/205/345/256/271.md +82 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//350/207/252/345/212/250/345/214/226/346/233/264/345/244/232/346/211/247/350/241/214/345/212/250/344/275/234/344/275/277/347/224/250/346/214/207/345/215/227.md +36 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//351/222/211/351/222/211AI/350/241/250/346/240/274/344/273/230/350/264/271/346/235/203/347/233/212.md +133 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//351/222/211/351/222/211AI/350/241/250/346/240/274/345/270/270/350/247/201/344/270/212/351/231/220.md +110 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/references//351/253/230/347/272/247/346/235/203/351/231/220/345/270/270/350/247/201/351/227/256/351/242/230.md +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/6/350/212/202/350/257/276/345/270/246/344/275/240/345/277/253/351/200/237/344/270/212/346/211/213AI/350/241/250/346/240/274.md +62 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI /350/241/250/346/240/274/346/217/222/344/273/266 - /344/274/201/344/270/232/345/206/205/346/217/222/344/273/266/345/217/221/345/270/203/346/214/207/345/215/227.md" +137 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227.md" +37 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210FaaS/347/211/210/357/274/211.md" +215 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210/345/205/254/345/274/217/347/211/210/357/274/211.md" +131 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274/346/217/222/344/273/266/344/270/255/345/277/203-/344/275/277/347/224/250/346/214/207/345/215/227.md +106 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274/346/225/260/346/215/256/346/272/220 /345/274/200/345/217/221/346/214/207/345/215/227.md" +162 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274/347/232/204/345/257/274/345/207/272.md +35 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +114 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274/350/257/257/345/210/240/346/201/242/345/244/215/346/214/207/345/215/227.md +57 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +145 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/Dify/346/231/272/350/203/275/344/275/223.md +73 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/GPTPro /345/255/227/346/256/265/346/215/267/345/276/204 /345/257/206/351/222/245/350/216/267/345/217/226/346/214/207/345/215/227.md" +47 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/OpenClaw /345/260/217/351/276/231/350/231/276/345/212/251/346/211/213/351/205/215/347/275/256/346/225/231/347/250/213.md" +89 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics/_index.md +70 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/270/272/350/241/250/346/240/274/346/267/273/345/212/240/345/255/227/346/256/265.md +147 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/273/252/350/241/250/347/233/230/344/270/255/346/267/273/345/212/240/345/244/232/344/270/252/346/225/260/346/215/256/346/272/220.md +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/273/252/350/241/250/347/233/230/345/215/225/345/233/276/350/241/250/345/222/214AI/350/247/243/350/257/273/345/206/205/345/256/271/345/210/206/344/272/253.md +77 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250AI/350/241/250/346/240/274/344/273/252/350/241/250/347/233/230.md +124 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250AI/350/241/250/346/240/274/350/247/206/345/233/276.md +142 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250AI/350/241/250/346/240/274/351/253/230/347/272/247/346/235/203/351/231/220.md +127 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250webhook/350/247/246/345/217/221/350/207/252/345/212/250/345/214/226.md +115 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/345/205/254/345/274/217/345/207/275/346/225/260/345/270/270/350/247/201/351/227/256/351/242/230.md +114 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/345/205/254/345/274/217/345/255/227/346/256/265.md +75 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/345/210/206/347/273/204.md +70 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/345/241/253/350/211/262.md +80 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/346/216/222/345/272/217.md +69 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/347/255/233/351/200/211/345/222/214/347/255/233/351/200/211/346/235/241/344/273/266/347/273/204.md +90 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201.md +145 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/205/250/346/226/260/345/272/224/347/224/250/346/250/241/345/274/217.md +104 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/215/225/351/200/211/345/244/232/351/200/211/345/255/227/346/256/265/345/220/214/346/255/245/345/205/266/344/273/226/350/241/250/351/200/211/351/241/271.md +90 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/234/250/346/265/201/347/250/213/344/270/255/344/275/277/347/224/250AI/351/227/256/347/255/224.md +68 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/234/250/346/266/210/346/201/257/345/215/241/347/211/207/344/270/212/346/267/273/345/212/240/346/214/211/351/222/256.md +79 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/234/250/350/241/250/346/240/274/344/270/255/346/240/207/350/256/260/351/207/215/345/244/215/345/206/205/345/256/271.md +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/255/227/346/256/265/347/256/241/347/220/206.md +55 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/260/206Excel/346/226/207/344/273/266/345/257/274/345/205/245AI/350/241/250/346/240/274.md +59 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//345/277/253/351/200/222/347/211/251/346/265/201/346/237/245/350/257/242/345/212/251/346/211/213/344/275/277/347/224/250/346/214/207/345/215/227.md +26 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203.md +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//346/237/245/347/234/213/345/216/206/345/217/262/350/256/260/345/275/225.md +81 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257.md +84 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//347/224/250/346/237/245/346/211/276/350/256/260/345/275/225/345/217/221/351/200/201/347/273/204/345/220/210/345/255/227/346/256/265/351/200/232/347/237/245.md +64 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/212/250/345/214/226/345/210/233/345/273/272/351/222/211/351/222/211/345/276/205/345/212/236/346/210/226/346/227/245/347/250/213.md +76 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267AI/347/224/265/350/257/235/345/244/226/345/221/274.md +90 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267OA/345/256/241/346/211/271.md +96 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/212/250/345/214/226/345/217/221/351/200/201HTTP/350/257/267/346/261/202.md +111 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/212/250/345/214/226/346/211/271/351/207/217/345/217/221/351/202/256/344/273/266.md +85 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/345/220/215/347/247/260.md +45 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/350/257/246/346/203/205/351/241/265/345/222/214/345/241/253/345/206/231/351/241/265.md +130 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/241/250/345/215/225/345/237/272/347/241/200/346/223/215/344/275/234.md +149 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/260/203/346/225/264/345/210/227/345/256/275.md +54 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/260/203/346/225/264/350/241/214/351/253/230.md +45 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//350/260/203/347/224/250/344/270/211/346/226/271/345/267/245/344/275/234/346/265/201/345/272/224/347/224/250.md +116 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211AI/350/241/250/346/240/274FAQ.md +284 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211AI/350/241/250/346/240/274/345/277/253/351/200/237/344/270/212/346/211/213.md +134 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211AI/350/241/250/346/240/274/346/220/255/345/273/272/346/234/215/345/212/241.md +93 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211OA/345/256/241/346/211/271/346/225/260/346/215/256/345/220/214/346/255/245.md +140 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211/345/276/205/345/212/236/346/225/260/346/215/256/345/220/214/346/255/245.md +90 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211/346/227/245/347/250/213/346/225/260/346/215/256/345/220/214/346/255/245.md +88 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211/350/200/203/345/213/244/346/211/223/345/215/241/346/225/260/346/215/256/345/220/214/346/255/245.md +106 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +111 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/.kb/wiki/topics//351/222/211/351/222/211/351/200/232/350/256/257/345/275/225/346/225/260/346/215/256/345/220/214/346/255/245.md +109 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250/6/350/212/202/350/257/276/345/270/246/344/275/240/345/277/253/351/200/237/344/270/212/346/211/213AI/350/241/250/346/240/274.md +43 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250/AI/350/241/250/346/240/274/350/241/214/346/225/260/350/257/264/346/230/216.md +85 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//344/275/277/347/224/250/345/277/253/346/215/267/351/224/256.md +34 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//345/260/206Excel/346/226/207/344/273/266/345/257/274/345/205/245AI/350/241/250/346/240/274.md +48 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//345/270/270/350/247/201/351/227/256/351/242/230.md +88 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//346/250/241/346/235/277/344/270/255/345/277/203.md +59 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//351/222/211/351/222/211AI/350/241/250/346/240/274/345/270/270/350/247/201/344/270/212/351/231/220.md +181 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/01-/345/277/253/351/200/237/345/205/245/351/227/250//351/222/211/351/222/211AI/350/241/250/346/240/274/345/277/253/351/200/237/344/270/212/346/211/213.md +177 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234/AI/350/241/250/346/240/274/347/232/204/345/257/274/345/207/272.md +27 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/345/210/206/347/273/204.md +67 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/345/241/253/350/211/262.md +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/346/216/222/345/272/217.md +66 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//344/275/277/347/224/250/347/255/233/351/200/211/345/222/214/347/255/233/351/200/211/346/235/241/344/273/266/347/273/204.md +104 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//346/237/245/347/234/213/345/216/206/345/217/262/350/256/260/345/275/225.md +79 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257.md +94 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/345/220/215/347/247/260.md +35 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/207/252/345/256/232/344/271/211/350/256/260/345/275/225/350/257/246/346/203/205/351/241/265/345/222/214/345/241/253/345/206/231/351/241/265.md +141 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/260/203/346/225/264/345/210/227/345/256/275.md +42 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/02-/345/237/272/347/241/200/346/223/215/344/275/234//350/260/203/346/225/264/350/241/214/351/253/230.md +40 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//344/270/272/350/241/250/346/240/274/346/267/273/345/212/240/345/255/227/346/256/265.md +188 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/215/225/351/200/211/345/244/232/351/200/211/345/255/227/346/256/265/345/220/214/346/255/245/345/205/266/344/273/226/350/241/250/351/200/211/351/241/271.md +142 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/256/241/347/220/206.md +44 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/261/273/345/236/213/345/210/227/350/241/250.md +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/03-/344/275/277/347/224/250/345/255/227/346/256/265//345/255/227/346/256/265/347/274/226/347/273/204.md +138 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/345/221/250/346/234/237/345/210/206/350/241/250.md +42 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/345/237/272/347/241/200/346/223/215/344/275/234.md +344 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/346/230/216/347/273/206/350/241/250-/344/270/200/346/254/241/345/241/253/345/206/231/345/244/232/346/235/241/346/217/220/344/272/244.md +174 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/04-/344/275/277/347/224/250/350/241/250/345/215/225//350/241/250/345/215/225/351/242/204/345/241/253/351/273/230/350/256/244/345/200/274.md +97 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250AI/347/224/237/346/210/220/345/205/254/345/274/217.md +26 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/205/254/345/274/217/345/207/275/346/225/260/345/270/270/350/247/201/351/227/256/351/242/230.md +179 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/205/254/345/274/217/345/255/227/346/256/265.md +81 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//344/275/277/347/224/250/345/207/275/346/225/260.md +21 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/345/207/275/346/225/260/345/244/247/345/205/250.md +433 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/346/224/257/346/214/201/346/230/276/347/244/272/346/240/274/345/274/217.md +126 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/205/254/345/274/217/351/224/231/350/257/257/344/273/243/347/240/201/345/210/227/350/241/250.md +30 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/05-/345/205/254/345/274/217/345/207/275/346/225/260//345/207/275/346/225/260/345/256/236/350/267/265.md +13 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203.md +169 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//347/273/204/347/273/207/345/206/205/345/205/261/344/272/253/346/225/260/346/215/256/346/272/220.md +106 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +176 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211AI/345/220/254/350/256/260/346/225/260/346/215/256/345/220/214/346/255/245.md +100 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211OA/345/256/241/346/211/271/346/225/260/346/215/256/345/220/214/346/255/245.md +194 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/345/276/205/345/212/236/346/225/260/346/215/256/345/220/214/346/255/245.md +87 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/346/227/245/347/250/213/346/225/260/346/215/256/345/220/214/346/255/245.md +92 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/350/200/203/345/213/244/346/211/223/345/215/241/346/225/260/346/215/256/345/220/214/346/255/245.md +129 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245.md +229 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/06-/346/225/260/346/215/256/350/277/236/346/216/245/344/270/255/345/277/203//351/222/211/351/222/211/351/200/232/350/256/257/345/275/225/346/225/260/346/215/256/345/220/214/346/255/245.md +120 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//344/275/277/347/224/250AI/350/241/250/346/240/274/350/247/206/345/233/276.md +219 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//345/210/206/344/272/253/350/247/206/345/233/276.md +71 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/225/260/346/215/256/350/241/250/345/222/214/350/247/206/345/233/276/347/232/204/345/205/263/347/263/273.md +48 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/227/245/345/216/206/350/247/206/345/233/276.md +89 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//346/237/245/350/257/242/351/241/265/351/235/242.md +116 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/224/230/347/211/271/345/233/276.md +135 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/224/273/345/206/214/350/247/206/345/233/276.md +28 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//347/234/213/346/235/277/350/247/206/345/233/276.md +35 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//350/241/250/346/240/274/350/247/206/345/233/276.md +116 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/07-/344/275/277/347/224/250/350/247/206/345/233/276//351/200/217/350/247/206/350/241/250/350/247/206/345/233/276.md +123 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230/TOP_N/345/210/206/346/236/220.md +78 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/344/270/255/346/267/273/345/212/240/345/244/232/344/270/252/346/225/260/346/215/256/346/272/220.md +129 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/345/215/225/345/233/276/350/241/250/345/222/214AI/350/247/243/350/257/273/345/206/205/345/256/271/345/210/206/344/272/253.md +104 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/345/270/270/350/247/201/351/227/256/351/242/230.md +31 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/346/231/272/350/203/275/346/200/273/347/273/223/345/210/206/346/236/220.md +57 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/273/252/350/241/250/347/233/230/347/273/204/344/273/266.md +47 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/275/277/347/224/250AI/350/241/250/346/240/274/344/273/252/350/241/250/347/233/230.md +226 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/346/265/201/347/250/213/345/217/221/351/200/201/344/273/252/350/241/250/347/233/230.md +49 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//345/210/206/344/272/253/344/273/252/350/241/250/347/233/230.md +74 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//345/234/250/344/273/252/350/241/250/347/233/230/344/270/255/347/255/233/351/200/211/346/225/260/346/215/256.md +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//350/207/252/345/256/232/344/271/211/344/273/252/350/241/250/347/233/230/344/270/255/345/277/203.md +93 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/08-/344/275/277/347/224/250/344/273/252/350/241/250/347/233/230//350/267/237/351/232/217/350/256/277/351/227/256/350/200/205/346/235/203/351/231/220/347/273/237/350/256/241.md +48 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/205/250/346/226/260/345/272/224/347/224/250/346/250/241/345/274/217.md +155 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/210/227/350/241/250/347/273/204/344/273/266.md +228 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//345/233/276/347/211/207.md +93 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//346/214/211/351/222/256.md +86 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//346/240/207/347/255/276/351/241/265.md +97 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//350/247/206/345/233/276/347/273/204/344/273/266.md +125 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//350/277/207/346/273/244/345/231/250.md +110 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/09-/345/272/224/347/224/250/346/250/241/345/274/217//351/200/217/350/247/206/350/241/250/347/273/204/344/273/266.md +142 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201/Webhook/345/217/202/346/225/260/347/232/204/350/257/246/347/273/206/350/257/264/346/230/216.md +76 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/270/200/350/241/250/344/270/200/345/217/267Agent/346/224/257/346/214/201/347/276/244/346/224/266/351/233/206.md +150 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250webhook/350/247/246/345/217/221/350/207/252/345/212/250/345/214/226.md +163 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/344/270/215/345/220/214/350/272/253/344/273/275/345/217/221/351/200/201/351/222/211/351/222/211/346/266/210/346/201/257.md +60 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201.md +219 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//344/275/277/347/224/250/350/207/252/345/212/250/345/214/226/345/276/252/347/216/257/350/212/202/347/202/271.md +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//345/234/250/346/265/201/347/250/213/344/270/255/344/275/277/347/224/250AI/351/227/256/347/255/224.md +69 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//345/234/250/346/266/210/346/201/257/345/215/241/347/211/207/344/270/212/346/267/273/345/212/240/346/214/211/351/222/256.md +93 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//346/265/201/347/250/213/345/217/230/351/207/217/350/247/243/351/207/212/344/270/216/345/270/270/350/247/201/346/212/245/351/224/231.md +158 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//346/265/201/347/250/213/350/247/246/345/217/221/346/235/241/344/273/266/344/270/216/346/211/247/350/241/214/345/212/250/344/275/234/344/270/200/350/247/210.md +310 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//347/224/250AI/350/241/250/346/240/274/344/270/200/350/241/250/344/270/200/345/212/251/347/220/206/345/217/221/346/266/210/346/201/257-/350/207/252/345/212/250/345/214/226.md +129 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//347/224/250/346/237/245/346/211/276/350/256/260/345/275/225/345/217/221/351/200/201/347/273/204/345/220/210/345/255/227/346/256/265/351/200/232/347/237/245.md +66 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/210/233/345/273/272/351/222/211/351/222/211/345/276/205/345/212/236/346/210/226/346/227/245/347/250/213.md +84 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267AI/347/224/265/350/257/235/345/244/226/345/221/274.md +322 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/350/265/267OA/345/256/241/346/211/271.md +93 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/217/221/351/200/201HTTP/350/257/267/346/261/202.md +168 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/345/270/270/350/247/201/351/227/256/351/242/230.md +83 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/211/271/351/207/217/345/217/221/351/202/256/344/273/266.md +79 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/224/257/346/214/201/346/217/222/345/205/245/345/223/252/344/272/233/345/217/230/351/207/217/345/206/205/345/256/271.md +80 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/207/252/345/212/250/345/214/226/346/233/264/345/244/232/346/211/247/350/241/214/345/212/250/344/275/234/344/275/277/347/224/250/346/214/207/345/215/227.md +21 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/10-/350/207/252/345/212/250/345/214/226/345/267/245/344/275/234/346/265/201//350/260/203/347/224/250/344/270/211/346/226/271/345/267/245/344/275/234/346/265/201/345/272/224/347/224/250.md +161 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/274/230/345/205/210/344/275/277/347/224/250/347/224/263/350/257/267.md +67 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/344/270/207/350/203/275/350/264/264/344/275/277/347/224/250/350/257/264/346/230/216.md +63 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/11-AI/350/241/250/346/240/274/345/212/251/347/220/206/AI/350/241/250/346/240/274/345/212/251/347/220/206.md +107 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//344/275/277/347/224/250AI/350/241/250/346/240/274/351/253/230/347/272/247/346/235/203/351/231/220.md +194 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//350/241/214/345/210/227/346/235/203/351/231/220/350/256/276/347/275/256/345/217/212/351/253/230/347/272/247/346/235/203/351/231/220/345/257/271/350/241/250/345/215/225/345/205/254/345/274/217/347/232/204/345/275/261/345/223/215.md +32 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/242/204/350/247/210/351/253/230/347/272/247/346/235/203/351/231/220/347/273/223/346/236/234.md +43 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/253/230/347/272/247/346/235/203/351/231/220/345/270/270/350/247/201/351/227/256/351/242/230.md +47 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/12-/351/253/230/347/272/247/346/235/203/351/231/220//351/253/230/347/272/247/346/235/203/351/231/220/347/232/204/351/273/230/350/256/244/350/247/222/350/211/262.md +36 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/344/270/211/346/226/271/346/217/222/344/273/266/344/275/277/347/224/250/346/216/210/346/235/203.md +19 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/204/232/346/234/254/346/217/222/344/273/266.md +42 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266-/350/207/252/345/256/232/344/271/211/346/217/222/344/273/266.md +51 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/13-/346/217/222/344/273/266/344/270/255/345/277/203/AI/350/241/250/346/240/274/346/217/222/344/273/266/344/270/255/345/277/203-/344/275/277/347/224/250/346/214/207/345/215/227.md +97 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/14-/347/256/241/347/220/206/345/220/216/345/217/260//344/275/277/347/224/250/346/225/260/346/215/256/350/257/264/346/230/216.md +82 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/14-/347/256/241/347/220/206/345/220/216/345/217/260//346/235/203/347/233/212/346/225/260/346/215/256/350/257/264/346/230/216.md +111 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265/AI/350/241/250/346/240/274/350/257/257/345/210/240/346/201/242/345/244/215/346/214/207/345/215/227.md +37 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265//345/234/250/350/241/250/346/240/274/344/270/255/346/240/207/350/256/260/351/207/215/345/244/215/345/206/205/345/256/271.md +43 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/15-/345/234/272/346/231/257/345/256/236/350/267/265//347/233/264/346/222/255/345/205/254/345/274/200/347/263/273/345/210/227/350/257/276.md +21 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/16-/344/273/230/350/264/271/346/235/203/347/233/212//351/222/211/351/222/211AI/350/241/250/346/240/274/344/273/230/350/264/271/346/235/203/347/233/212.md +144 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/16-/344/273/230/350/264/271/346/235/203/347/233/212//351/222/211/351/222/211AI/350/241/250/346/240/274/346/220/255/345/273/272/346/234/215/345/212/241.md +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/17-/345/205/254/345/221/212/AI/350/241/250/346/240/274-/346/216/222/347/211/210/346/211/223/345/215/260/345/215/207/347/272/247/350/257/264/346/230/216.md +40 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/17-/345/205/254/345/221/212/AI/350/241/250/346/240/274-/347/211/210/346/234/254/345/215/207/347/272/247/351/200/232/347/237/245.md +21 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/17-/345/205/254/345/221/212//350/267/250AI/350/241/250/346/240/274/346/225/260/346/215/256/345/220/214/346/255/245/350/260/203/346/225/264/350/257/264/346/230/216.md +55 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI /350/241/250/346/240/274/346/217/222/344/273/266 - /344/274/201/344/270/232/345/206/205/346/217/222/344/273/266/345/217/221/345/270/203/346/214/207/345/215/227.md" +159 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210FaaS/347/211/210/357/274/211.md" +1362 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265/345/274/200/345/217/221/346/214/207/345/215/227/357/274/210/345/205/254/345/274/217/347/211/210/357/274/211.md" +556 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274 AI /345/255/227/346/256/265 /345/274/200/345/217/221/346/214/207/345/215/227.md" +15 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/AI /350/241/250/346/240/274 AI /345/255/227/346/256/265/345/270/270/350/247/201/346/212/245/351/224/231/350/257/264/346/230/216.md" +649 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/Dify/346/231/272/350/203/275/344/275/223.md" +55 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/GPTPro /345/255/227/346/256/265/346/215/267/345/276/204 /345/257/206/351/222/245/350/216/267/345/217/226/346/214/207/345/215/227.md" +23 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227/OpenClaw /345/260/217/351/276/231/350/231/276/345/212/251/346/211/213/351/205/215/347/275/256/346/225/231/347/250/213.md" +27 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227//345/233/275/345/206/205/345/244/226/345/277/253/351/200/222/347/211/251/346/265/201/344/277/241/346/201/257/346/237/245/350/257/242/344/275/277/347/224/250/346/214/207/345/215/227.md" +907 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/255/227/346/256/265/346/250/241/347/211/210 /344/275/277/347/224/250/346/214/207/345/215/227//345/277/253/351/200/222/347/211/251/346/265/201/346/237/245/350/257/242/345/212/251/346/211/213/344/275/277/347/224/250/346/214/207/345/215/227.md" +1 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/AI/350/241/250/346/240/274JSAPI /347/261/273/345/236/213/346/217/217/350/277/260.xlsx +0 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Base /346/250/241/345/235/227.md" +391 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/AttachmentField /351/231/204/344/273/266/345/255/227/346/256/265.md" +200 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/AutoNumberField /350/207/252/345/212/250/347/274/226/345/217/267/345/255/227/346/256/265.md" +75 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/BarcodeField /346/235/241/347/240/201/345/255/227/346/256/265.md" +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/BidirectionalLinkField /345/217/214/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +294 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CheckboxField /345/244/215/351/200/211/346/241/206/345/255/227/346/256/265.md" +95 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CreatedTimeField /345/210/233/345/273/272/346/227/266/351/227/264/345/255/227/346/256/265.md" +134 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/CurrencyField /350/264/247/345/270/201/345/255/227/346/256/265.md" +260 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/DateField /346/227/245/346/234/237/345/255/227/346/256/265.md" +183 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/DepartmentField /351/203/250/351/227/250/345/255/227/346/256/265.md" +111 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/EmailField /351/202/256/347/256/261/345/255/227/346/256/265.md" +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/FilterUpField /346/237/245/346/211/276/345/274/225/347/224/250/345/255/227/346/256/265.md" +73 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/FormulaField /345/205/254/345/274/217/345/255/227/346/256/265.md" +109 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/GeoLocationField /345/234/260/347/220/206/344/275/215/347/275/256/345/255/227/346/256/265.md" +33 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/GroupField /347/276/244/347/273/204/345/255/227/346/256/265.md" +111 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/LastModifiedTimeField /346/234/200/345/220/216/346/233/264/346/226/260/346/227/266/351/227/264/345/255/227/346/256/265.md" +134 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/LookupField /345/205/263/350/201/224/345/274/225/347/224/250/345/255/227/346/256/265.md" +71 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/MultiSelectField /345/244/232/351/200/211/345/255/227/346/256/265.md" +349 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/NumberField /346/225/260/345/255/227/345/255/227/346/256/265.md" +175 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/PrimaryField /344/270/273/351/224/256/346/226/207/346/241/243/345/255/227/346/256/265.md" +91 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/ProgressField /350/277/233/345/272/246/345/255/227/346/256/265.md" +324 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/RatingField /350/257/204/345/210/206/345/255/227/346/256/265.md" +320 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/RichTextField /345/257/214/346/226/207/346/234/254/345/255/227/346/256/265.md" +45 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/SingleSelectField /345/215/225/351/200/211/345/255/227/346/256/265.md" +336 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/TelephoneField /347/224/265/350/257/235/345/255/227/346/256/265.md" +99 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/TextField /346/226/207/346/234/254/345/255/227/346/256/265.md" +93 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UnidirectionalLinkFields /345/215/225/345/220/221/345/205/263/350/201/224/345/255/227/346/256/265.md" +295 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UrlField /351/223/276/346/216/245/345/255/227/346/256/265.md" +163 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227/UserField /344/272/272/345/221/230/345/255/227/346/256/265.md" +266 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Field /346/250/241/345/235/227.md" +379 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Record /346/250/241/345/235/227.md" +277 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/Sheet /346/250/241/345/235/227.md" +1013 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/UI /346/250/241/345/235/227.md" +472 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/View /346/250/241/345/235/227/GridView /350/241/250/346/240/274/350/247/206/345/233/276.md" +835 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243/View /346/250/241/345/235/227.md" +203 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/345/257/271/350/261/241/346/250/241/345/236/213API/345/217/202/350/200/203/346/226/207/346/241/243//350/257/273/345/206/231AI /350/241/250/346/240/274/346/250/241/345/236/213.md" +29 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/346/225/260/346/215/256/346/272/220 /345/274/200/345/217/221/346/214/207/345/215/227.md" +607 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Base /346/250/241/345/235/227.md" +391 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Field /346/250/241/345/235/227.md" +379 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Input/346/250/241/345/235/227.md" +331 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Output/346/250/241/345/235/227.md" +197 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Record /346/250/241/345/235/227.md" +277 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Sheet /346/250/241/345/235/227.md" +1013 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/UI /346/250/241/345/235/227.md" +472 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/View /346/250/241/345/235/227.md" +203 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md" +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/204/232/346/234/254/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +142 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Base /346/250/241/345/235/227.md" +391 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Event/344/272/213/344/273/266/346/250/241/345/235/227.md" +182 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Field /346/250/241/345/235/227.md" +379 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Record /346/250/241/345/235/227.md" +277 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/Sheet /346/250/241/345/235/227.md" +1013 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/UI /346/250/241/345/235/227.md" +472 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227/View /346/250/241/345/235/227.md" +203 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/205/266/344/273/226/346/216/245/345/217/243.md" +146 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//345/255/227/346/256/265/346/225/260/346/215/256/347/273/223/346/236/204.md" +65 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227//346/240/270/345/277/203/347/237/245/350/257/206.md" +54 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support/18-/345/274/200/345/217/221/350/200/205/346/214/207/345/215/227/AI/350/241/250/346/240/274/350/276/271/346/240/217/346/217/222/344/273/266 /345/274/200/345/217/221/346/214/207/345/215/227.md" +192 -0
- package/templates/support-qa/profiles/aitable/wiki/faq-support//351/222/211/351/222/211AI/350/241/250/346/240/274FAQ.md +593 -0
- package/templates/support-qa/profiles/default/profile/fastpath/known-answers.yml +32 -0
- package/templates/support-qa/profiles/default/profile/profile.yml +206 -0
- package/templates/support-qa/profiles/default/profile/troubleshoot/classifiers.yml +37 -0
- package/templates/support-qa/profiles/default/wiki/support//345/270/270/350/247/201/351/227/256/351/242/230.md +10 -0
- package/templates/support-qa/workflows/admin-kb-update/recipes/kb-refine.recipe.ts +137 -0
- package/templates/support-qa/workflows/admin-kb-update/recipes/kb_sync_handler.recipe.ts +119 -0
- package/templates/support-qa/workflows/admin-kb-update/workflow.yml +96 -0
- package/templates/support-qa/workflows/config-sync/recipes/config_sync.recipe.ts +569 -0
- package/templates/support-qa/workflows/config-sync/recipes/config_sync_handler.recipe.ts +16 -0
- package/templates/support-qa/workflows/config-sync/workflow.yml +62 -0
- package/templates/support-qa/workflows/daily-review/recipes/daily_review.recipe.ts +667 -0
- package/templates/support-qa/workflows/daily-review/recipes/daily_review_handler.recipe.ts +26 -0
- package/templates/support-qa/workflows/daily-review/workflow.yml +65 -0
- package/templates/support-qa/workflows/group-qa/recipes/answer.recipe.ts +223 -0
- package/templates/support-qa/workflows/group-qa/recipes/conversation_handler.recipe.ts +269 -0
- package/templates/support-qa/workflows/group-qa/recipes/fastpath.recipe.ts +78 -0
- package/templates/support-qa/workflows/group-qa/recipes/on-action.recipe.ts +156 -0
- package/templates/support-qa/workflows/group-qa/recipes/reply-to-group.recipe.ts +174 -0
- package/templates/support-qa/workflows/group-qa/recipes/troubleshoot.recipe.ts +278 -0
- package/templates/support-qa/workflows/group-qa/workflow.yml +258 -0
- package/templates/support-qa/workspaces/daily-review/AGENTS.md +233 -0
- package/templates/support-qa/workspaces/kb-editor/AGENTS.md +32 -0
- package/templates/support-qa/workspaces/support/AGENTS.md +148 -0
- package/templates/support-qa/workspaces/troubleshooter/AGENTS.md +71 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
var _N=Object.defineProperty;var kN=(e,t,n)=>t in e?_N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var $e=(e,t,n)=>kN(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function C0(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var T0={exports:{}},ac={},P0={exports:{}},ae={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var zo=Symbol.for("react.element"),jN=Symbol.for("react.portal"),SN=Symbol.for("react.fragment"),NN=Symbol.for("react.strict_mode"),bN=Symbol.for("react.profiler"),EN=Symbol.for("react.provider"),CN=Symbol.for("react.context"),TN=Symbol.for("react.forward_ref"),PN=Symbol.for("react.suspense"),AN=Symbol.for("react.memo"),MN=Symbol.for("react.lazy"),lm=Symbol.iterator;function IN(e){return e===null||typeof e!="object"?null:(e=lm&&e[lm]||e["@@iterator"],typeof e=="function"?e:null)}var A0={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},M0=Object.assign,I0={};function ii(e,t,n){this.props=e,this.context=t,this.refs=I0,this.updater=n||A0}ii.prototype.isReactComponent={};ii.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ii.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function R0(){}R0.prototype=ii.prototype;function Yf(e,t,n){this.props=e,this.context=t,this.refs=I0,this.updater=n||A0}var qf=Yf.prototype=new R0;qf.constructor=Yf;M0(qf,ii.prototype);qf.isPureReactComponent=!0;var cm=Array.isArray,$0=Object.prototype.hasOwnProperty,Gf={current:null},L0={key:!0,ref:!0,__self:!0,__source:!0};function D0(e,t,n){var s,r={},i=null,o=null;if(t!=null)for(s in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)$0.call(t,s)&&!L0.hasOwnProperty(s)&&(r[s]=t[s]);var l=arguments.length-2;if(l===1)r.children=n;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];r.children=c}if(e&&e.defaultProps)for(s in l=e.defaultProps,l)r[s]===void 0&&(r[s]=l[s]);return{$$typeof:zo,type:e,key:i,ref:o,props:r,_owner:Gf.current}}function RN(e,t){return{$$typeof:zo,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Xf(e){return typeof e=="object"&&e!==null&&e.$$typeof===zo}function $N(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var um=/\/+/g;function Xc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?$N(""+e.key):t.toString(36)}function Ba(e,t,n,s,r){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case zo:case jN:o=!0}}if(o)return o=e,r=r(o),e=s===""?"."+Xc(o,0):s,cm(r)?(n="",e!=null&&(n=e.replace(um,"$&/")+"/"),Ba(r,t,n,"",function(u){return u})):r!=null&&(Xf(r)&&(r=RN(r,n+(!r.key||o&&o.key===r.key?"":(""+r.key).replace(um,"$&/")+"/")+e)),t.push(r)),1;if(o=0,s=s===""?".":s+":",cm(e))for(var l=0;l<e.length;l++){i=e[l];var c=s+Xc(i,l);o+=Ba(i,t,n,c,r)}else if(c=IN(e),typeof c=="function")for(e=c.call(e),l=0;!(i=e.next()).done;)i=i.value,c=s+Xc(i,l++),o+=Ba(i,t,n,c,r);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return o}function ia(e,t,n){if(e==null)return e;var s=[],r=0;return Ba(e,s,"","",function(i){return t.call(n,i,r++)}),s}function LN(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var it={current:null},Ha={transition:null},DN={ReactCurrentDispatcher:it,ReactCurrentBatchConfig:Ha,ReactCurrentOwner:Gf};function z0(){throw Error("act(...) is not supported in production builds of React.")}ae.Children={map:ia,forEach:function(e,t,n){ia(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ia(e,function(){t++}),t},toArray:function(e){return ia(e,function(t){return t})||[]},only:function(e){if(!Xf(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ae.Component=ii;ae.Fragment=SN;ae.Profiler=bN;ae.PureComponent=Yf;ae.StrictMode=NN;ae.Suspense=PN;ae.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=DN;ae.act=z0;ae.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var s=M0({},e.props),r=e.key,i=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,o=Gf.current),t.key!==void 0&&(r=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)$0.call(t,c)&&!L0.hasOwnProperty(c)&&(s[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)s.children=n;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];s.children=l}return{$$typeof:zo,type:e.type,key:r,ref:i,props:s,_owner:o}};ae.createContext=function(e){return e={$$typeof:CN,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:EN,_context:e},e.Consumer=e};ae.createElement=D0;ae.createFactory=function(e){var t=D0.bind(null,e);return t.type=e,t};ae.createRef=function(){return{current:null}};ae.forwardRef=function(e){return{$$typeof:TN,render:e}};ae.isValidElement=Xf;ae.lazy=function(e){return{$$typeof:MN,_payload:{_status:-1,_result:e},_init:LN}};ae.memo=function(e,t){return{$$typeof:AN,type:e,compare:t===void 0?null:t}};ae.startTransition=function(e){var t=Ha.transition;Ha.transition={};try{e()}finally{Ha.transition=t}};ae.unstable_act=z0;ae.useCallback=function(e,t){return it.current.useCallback(e,t)};ae.useContext=function(e){return it.current.useContext(e)};ae.useDebugValue=function(){};ae.useDeferredValue=function(e){return it.current.useDeferredValue(e)};ae.useEffect=function(e,t){return it.current.useEffect(e,t)};ae.useId=function(){return it.current.useId()};ae.useImperativeHandle=function(e,t,n){return it.current.useImperativeHandle(e,t,n)};ae.useInsertionEffect=function(e,t){return it.current.useInsertionEffect(e,t)};ae.useLayoutEffect=function(e,t){return it.current.useLayoutEffect(e,t)};ae.useMemo=function(e,t){return it.current.useMemo(e,t)};ae.useReducer=function(e,t,n){return it.current.useReducer(e,t,n)};ae.useRef=function(e){return it.current.useRef(e)};ae.useState=function(e){return it.current.useState(e)};ae.useSyncExternalStore=function(e,t,n){return it.current.useSyncExternalStore(e,t,n)};ae.useTransition=function(){return it.current.useTransition()};ae.version="18.3.1";P0.exports=ae;var S=P0.exports;const Ds=C0(S);/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.production.min.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var zN=S,ON=Symbol.for("react.element"),FN=Symbol.for("react.fragment"),VN=Object.prototype.hasOwnProperty,BN=zN.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,HN={key:!0,ref:!0,__self:!0,__source:!0};function O0(e,t,n){var s,r={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(s in t)VN.call(t,s)&&!HN.hasOwnProperty(s)&&(r[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)r[s]===void 0&&(r[s]=t[s]);return{$$typeof:ON,type:e,key:i,ref:o,props:r,_owner:BN.current}}ac.Fragment=FN;ac.jsx=O0;ac.jsxs=O0;T0.exports=ac;var a=T0.exports,F0={exports:{}},jt={},V0={exports:{}},B0={};/**
|
|
18
|
+
* @license React
|
|
19
|
+
* scheduler.production.min.js
|
|
20
|
+
*
|
|
21
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/(function(e){function t(C,A){var z=C.length;C.push(A);e:for(;0<z;){var L=z-1>>>1,F=C[L];if(0<r(F,A))C[L]=A,C[z]=F,z=L;else break e}}function n(C){return C.length===0?null:C[0]}function s(C){if(C.length===0)return null;var A=C[0],z=C.pop();if(z!==A){C[0]=z;e:for(var L=0,F=C.length,U=F>>>1;L<U;){var W=2*(L+1)-1,K=C[W],G=W+1,Q=C[G];if(0>r(K,z))G<F&&0>r(Q,K)?(C[L]=Q,C[G]=z,L=G):(C[L]=K,C[W]=z,L=W);else if(G<F&&0>r(Q,z))C[L]=Q,C[G]=z,L=G;else break e}}return A}function r(C,A){var z=C.sortIndex-A.sortIndex;return z!==0?z:C.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,f=null,h=3,p=!1,v=!1,_=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function g(C){for(var A=n(u);A!==null;){if(A.callback===null)s(u);else if(A.startTime<=C)s(u),A.sortIndex=A.expirationTime,t(c,A);else break;A=n(u)}}function x(C){if(_=!1,g(C),!v)if(n(c)!==null)v=!0,M(k);else{var A=n(u);A!==null&&$(x,A.startTime-C)}}function k(C,A){v=!1,_&&(_=!1,m(b),b=-1),p=!0;var z=h;try{for(g(A),f=n(c);f!==null&&(!(f.expirationTime>A)||C&&!I());){var L=f.callback;if(typeof L=="function"){f.callback=null,h=f.priorityLevel;var F=L(f.expirationTime<=A);A=e.unstable_now(),typeof F=="function"?f.callback=F:f===n(c)&&s(c),g(A)}else s(c);f=n(c)}if(f!==null)var U=!0;else{var W=n(u);W!==null&&$(x,W.startTime-A),U=!1}return U}finally{f=null,h=z,p=!1}}var j=!1,E=null,b=-1,P=5,R=-1;function I(){return!(e.unstable_now()-R<P)}function O(){if(E!==null){var C=e.unstable_now();R=C;var A=!0;try{A=E(!0,C)}finally{A?V():(j=!1,E=null)}}else j=!1}var V;if(typeof y=="function")V=function(){y(O)};else if(typeof MessageChannel<"u"){var N=new MessageChannel,T=N.port2;N.port1.onmessage=O,V=function(){T.postMessage(null)}}else V=function(){w(O,0)};function M(C){E=C,j||(j=!0,V())}function $(C,A){b=w(function(){C(e.unstable_now())},A)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(C){C.callback=null},e.unstable_continueExecution=function(){v||p||(v=!0,M(k))},e.unstable_forceFrameRate=function(C){0>C||125<C?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<C?Math.floor(1e3/C):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(C){switch(h){case 1:case 2:case 3:var A=3;break;default:A=h}var z=h;h=A;try{return C()}finally{h=z}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(C,A){switch(C){case 1:case 2:case 3:case 4:case 5:break;default:C=3}var z=h;h=C;try{return A()}finally{h=z}},e.unstable_scheduleCallback=function(C,A,z){var L=e.unstable_now();switch(typeof z=="object"&&z!==null?(z=z.delay,z=typeof z=="number"&&0<z?L+z:L):z=L,C){case 1:var F=-1;break;case 2:F=250;break;case 5:F=1073741823;break;case 4:F=1e4;break;default:F=5e3}return F=z+F,C={id:d++,callback:A,priorityLevel:C,startTime:z,expirationTime:F,sortIndex:-1},z>L?(C.sortIndex=z,t(u,C),n(c)===null&&C===n(u)&&(_?(m(b),b=-1):_=!0,$(x,z-L))):(C.sortIndex=F,t(c,C),v||p||(v=!0,M(k))),C},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(C){var A=h;return function(){var z=h;h=A;try{return C.apply(this,arguments)}finally{h=z}}}})(B0);V0.exports=B0;var WN=V0.exports;/**
|
|
26
|
+
* @license React
|
|
27
|
+
* react-dom.production.min.js
|
|
28
|
+
*
|
|
29
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
30
|
+
*
|
|
31
|
+
* This source code is licensed under the MIT license found in the
|
|
32
|
+
* LICENSE file in the root directory of this source tree.
|
|
33
|
+
*/var UN=S,wt=WN;function Y(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var H0=new Set,no={};function er(e,t){Fr(e,t),Fr(e+"Capture",t)}function Fr(e,t){for(no[e]=t,e=0;e<t.length;e++)H0.add(t[e])}var $n=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),rd=Object.prototype.hasOwnProperty,KN=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,dm={},fm={};function YN(e){return rd.call(fm,e)?!0:rd.call(dm,e)?!1:KN.test(e)?fm[e]=!0:(dm[e]=!0,!1)}function qN(e,t,n,s){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function GN(e,t,n,s){if(t===null||typeof t>"u"||qN(e,t,n,s))return!0;if(s)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ot(e,t,n,s,r,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Ge={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ge[e]=new ot(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ge[t]=new ot(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ge[e]=new ot(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ge[e]=new ot(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ge[e]=new ot(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ge[e]=new ot(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ge[e]=new ot(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ge[e]=new ot(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ge[e]=new ot(e,5,!1,e.toLowerCase(),null,!1,!1)});var Qf=/[\-:]([a-z])/g;function Zf(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Qf,Zf);Ge[t]=new ot(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Qf,Zf);Ge[t]=new ot(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Qf,Zf);Ge[t]=new ot(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ge[e]=new ot(e,1,!1,e.toLowerCase(),null,!1,!1)});Ge.xlinkHref=new ot("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ge[e]=new ot(e,1,!1,e.toLowerCase(),null,!0,!0)});function Jf(e,t,n,s){var r=Ge.hasOwnProperty(t)?Ge[t]:null;(r!==null?r.type!==0:s||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(GN(t,n,r,s)&&(n=null),s||r===null?YN(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):r.mustUseProperty?e[r.propertyName]=n===null?r.type===3?!1:"":n:(t=r.attributeName,s=r.attributeNamespace,n===null?e.removeAttribute(t):(r=r.type,n=r===3||r===4&&n===!0?"":""+n,s?e.setAttributeNS(s,t,n):e.setAttribute(t,n))))}var Bn=UN.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,oa=Symbol.for("react.element"),ur=Symbol.for("react.portal"),dr=Symbol.for("react.fragment"),eh=Symbol.for("react.strict_mode"),id=Symbol.for("react.profiler"),W0=Symbol.for("react.provider"),U0=Symbol.for("react.context"),th=Symbol.for("react.forward_ref"),od=Symbol.for("react.suspense"),ad=Symbol.for("react.suspense_list"),nh=Symbol.for("react.memo"),Xn=Symbol.for("react.lazy"),K0=Symbol.for("react.offscreen"),hm=Symbol.iterator;function pi(e){return e===null||typeof e!="object"?null:(e=hm&&e[hm]||e["@@iterator"],typeof e=="function"?e:null)}var be=Object.assign,Qc;function Ci(e){if(Qc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Qc=t&&t[1]||""}return`
|
|
34
|
+
`+Qc+e}var Zc=!1;function Jc(e,t){if(!e||Zc)return"";Zc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var s=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){s=u}e.call(t.prototype)}else{try{throw Error()}catch(u){s=u}e()}}catch(u){if(u&&s&&typeof u.stack=="string"){for(var r=u.stack.split(`
|
|
35
|
+
`),i=s.stack.split(`
|
|
36
|
+
`),o=r.length-1,l=i.length-1;1<=o&&0<=l&&r[o]!==i[l];)l--;for(;1<=o&&0<=l;o--,l--)if(r[o]!==i[l]){if(o!==1||l!==1)do if(o--,l--,0>l||r[o]!==i[l]){var c=`
|
|
37
|
+
`+r[o].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{Zc=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Ci(e):""}function XN(e){switch(e.tag){case 5:return Ci(e.type);case 16:return Ci("Lazy");case 13:return Ci("Suspense");case 19:return Ci("SuspenseList");case 0:case 2:case 15:return e=Jc(e.type,!1),e;case 11:return e=Jc(e.type.render,!1),e;case 1:return e=Jc(e.type,!0),e;default:return""}}function ld(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case dr:return"Fragment";case ur:return"Portal";case id:return"Profiler";case eh:return"StrictMode";case od:return"Suspense";case ad:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case U0:return(e.displayName||"Context")+".Consumer";case W0:return(e._context.displayName||"Context")+".Provider";case th:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case nh:return t=e.displayName||null,t!==null?t:ld(e.type)||"Memo";case Xn:t=e._payload,e=e._init;try{return ld(e(t))}catch{}}return null}function QN(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ld(t);case 8:return t===eh?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function hs(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Y0(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ZN(e){var t=Y0(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(o){s=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(o){s=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function aa(e){e._valueTracker||(e._valueTracker=ZN(e))}function q0(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=Y0(e)?e.checked?"true":"false":e.value),e=s,e!==n?(t.setValue(e),!0):!1}function fl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function cd(e,t){var n=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function pm(e,t){var n=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;n=hs(t.value!=null?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function G0(e,t){t=t.checked,t!=null&&Jf(e,"checked",t,!1)}function ud(e,t){G0(e,t);var n=hs(t.value),s=t.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?dd(e,t.type,n):t.hasOwnProperty("defaultValue")&&dd(e,t.type,hs(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function mm(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function dd(e,t,n){(t!=="number"||fl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Ti=Array.isArray;function Pr(e,t,n,s){if(e=e.options,t){t={};for(var r=0;r<n.length;r++)t["$"+n[r]]=!0;for(n=0;n<e.length;n++)r=t.hasOwnProperty("$"+e[n].value),e[n].selected!==r&&(e[n].selected=r),r&&s&&(e[n].defaultSelected=!0)}else{for(n=""+hs(n),t=null,r=0;r<e.length;r++){if(e[r].value===n){e[r].selected=!0,s&&(e[r].defaultSelected=!0);return}t!==null||e[r].disabled||(t=e[r])}t!==null&&(t.selected=!0)}}function fd(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(Y(91));return be({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function gm(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(Y(92));if(Ti(n)){if(1<n.length)throw Error(Y(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:hs(n)}}function X0(e,t){var n=hs(t.value),s=hs(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),s!=null&&(e.defaultValue=""+s)}function ym(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Q0(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function hd(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Q0(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var la,Z0=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,s,r){MSApp.execUnsafeLocalFunction(function(){return e(t,n,s,r)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(la=la||document.createElement("div"),la.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=la.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function so(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Oi={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},JN=["Webkit","ms","Moz","O"];Object.keys(Oi).forEach(function(e){JN.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Oi[t]=Oi[e]})});function J0(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Oi.hasOwnProperty(e)&&Oi[e]?(""+t).trim():t+"px"}function ex(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var s=n.indexOf("--")===0,r=J0(n,t[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,r):e[n]=r}}var eb=be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function pd(e,t){if(t){if(eb[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Y(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Y(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Y(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Y(62))}}function md(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var gd=null;function sh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yd=null,Ar=null,Mr=null;function vm(e){if(e=Vo(e)){if(typeof yd!="function")throw Error(Y(280));var t=e.stateNode;t&&(t=fc(t),yd(e.stateNode,e.type,t))}}function tx(e){Ar?Mr?Mr.push(e):Mr=[e]:Ar=e}function nx(){if(Ar){var e=Ar,t=Mr;if(Mr=Ar=null,vm(e),t)for(e=0;e<t.length;e++)vm(t[e])}}function sx(e,t){return e(t)}function rx(){}var eu=!1;function ix(e,t,n){if(eu)return e(t,n);eu=!0;try{return sx(e,t,n)}finally{eu=!1,(Ar!==null||Mr!==null)&&(rx(),nx())}}function ro(e,t){var n=e.stateNode;if(n===null)return null;var s=fc(n);if(s===null)return null;n=s[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(Y(231,t,typeof n));return n}var vd=!1;if($n)try{var mi={};Object.defineProperty(mi,"passive",{get:function(){vd=!0}}),window.addEventListener("test",mi,mi),window.removeEventListener("test",mi,mi)}catch{vd=!1}function tb(e,t,n,s,r,i,o,l,c){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(d){this.onError(d)}}var Fi=!1,hl=null,pl=!1,xd=null,nb={onError:function(e){Fi=!0,hl=e}};function sb(e,t,n,s,r,i,o,l,c){Fi=!1,hl=null,tb.apply(nb,arguments)}function rb(e,t,n,s,r,i,o,l,c){if(sb.apply(this,arguments),Fi){if(Fi){var u=hl;Fi=!1,hl=null}else throw Error(Y(198));pl||(pl=!0,xd=u)}}function tr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function ox(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function xm(e){if(tr(e)!==e)throw Error(Y(188))}function ib(e){var t=e.alternate;if(!t){if(t=tr(e),t===null)throw Error(Y(188));return t!==e?null:e}for(var n=e,s=t;;){var r=n.return;if(r===null)break;var i=r.alternate;if(i===null){if(s=r.return,s!==null){n=s;continue}break}if(r.child===i.child){for(i=r.child;i;){if(i===n)return xm(r),e;if(i===s)return xm(r),t;i=i.sibling}throw Error(Y(188))}if(n.return!==s.return)n=r,s=i;else{for(var o=!1,l=r.child;l;){if(l===n){o=!0,n=r,s=i;break}if(l===s){o=!0,s=r,n=i;break}l=l.sibling}if(!o){for(l=i.child;l;){if(l===n){o=!0,n=i,s=r;break}if(l===s){o=!0,s=i,n=r;break}l=l.sibling}if(!o)throw Error(Y(189))}}if(n.alternate!==s)throw Error(Y(190))}if(n.tag!==3)throw Error(Y(188));return n.stateNode.current===n?e:t}function ax(e){return e=ib(e),e!==null?lx(e):null}function lx(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=lx(e);if(t!==null)return t;e=e.sibling}return null}var cx=wt.unstable_scheduleCallback,wm=wt.unstable_cancelCallback,ob=wt.unstable_shouldYield,ab=wt.unstable_requestPaint,Re=wt.unstable_now,lb=wt.unstable_getCurrentPriorityLevel,rh=wt.unstable_ImmediatePriority,ux=wt.unstable_UserBlockingPriority,ml=wt.unstable_NormalPriority,cb=wt.unstable_LowPriority,dx=wt.unstable_IdlePriority,lc=null,un=null;function ub(e){if(un&&typeof un.onCommitFiberRoot=="function")try{un.onCommitFiberRoot(lc,e,void 0,(e.current.flags&128)===128)}catch{}}var qt=Math.clz32?Math.clz32:hb,db=Math.log,fb=Math.LN2;function hb(e){return e>>>=0,e===0?32:31-(db(e)/fb|0)|0}var ca=64,ua=4194304;function Pi(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function gl(e,t){var n=e.pendingLanes;if(n===0)return 0;var s=0,r=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~r;l!==0?s=Pi(l):(i&=o,i!==0&&(s=Pi(i)))}else o=n&~r,o!==0?s=Pi(o):i!==0&&(s=Pi(i));if(s===0)return 0;if(t!==0&&t!==s&&!(t&r)&&(r=s&-s,i=t&-t,r>=i||r===16&&(i&4194240)!==0))return t;if(s&4&&(s|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0<t;)n=31-qt(t),r=1<<n,s|=e[n],t&=~r;return s}function pb(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function mb(e,t){for(var n=e.suspendedLanes,s=e.pingedLanes,r=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-qt(i),l=1<<o,c=r[o];c===-1?(!(l&n)||l&s)&&(r[o]=pb(l,t)):c<=t&&(e.expiredLanes|=l),i&=~l}}function wd(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function fx(){var e=ca;return ca<<=1,!(ca&4194240)&&(ca=64),e}function tu(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Oo(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-qt(t),e[t]=n}function gb(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<n;){var r=31-qt(n),i=1<<r;t[r]=0,s[r]=-1,e[r]=-1,n&=~i}}function ih(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var s=31-qt(n),r=1<<s;r&t|e[s]&t&&(e[s]|=t),n&=~r}}var he=0;function hx(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var px,oh,mx,gx,yx,_d=!1,da=[],rs=null,is=null,os=null,io=new Map,oo=new Map,Zn=[],yb="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function _m(e,t){switch(e){case"focusin":case"focusout":rs=null;break;case"dragenter":case"dragleave":is=null;break;case"mouseover":case"mouseout":os=null;break;case"pointerover":case"pointerout":io.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":oo.delete(t.pointerId)}}function gi(e,t,n,s,r,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:s,nativeEvent:i,targetContainers:[r]},t!==null&&(t=Vo(t),t!==null&&oh(t)),e):(e.eventSystemFlags|=s,t=e.targetContainers,r!==null&&t.indexOf(r)===-1&&t.push(r),e)}function vb(e,t,n,s,r){switch(t){case"focusin":return rs=gi(rs,e,t,n,s,r),!0;case"dragenter":return is=gi(is,e,t,n,s,r),!0;case"mouseover":return os=gi(os,e,t,n,s,r),!0;case"pointerover":var i=r.pointerId;return io.set(i,gi(io.get(i)||null,e,t,n,s,r)),!0;case"gotpointercapture":return i=r.pointerId,oo.set(i,gi(oo.get(i)||null,e,t,n,s,r)),!0}return!1}function vx(e){var t=Ms(e.target);if(t!==null){var n=tr(t);if(n!==null){if(t=n.tag,t===13){if(t=ox(n),t!==null){e.blockedOn=t,yx(e.priority,function(){mx(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Wa(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=kd(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var s=new n.constructor(n.type,n);gd=s,n.target.dispatchEvent(s),gd=null}else return t=Vo(n),t!==null&&oh(t),e.blockedOn=n,!1;t.shift()}return!0}function km(e,t,n){Wa(e)&&n.delete(t)}function xb(){_d=!1,rs!==null&&Wa(rs)&&(rs=null),is!==null&&Wa(is)&&(is=null),os!==null&&Wa(os)&&(os=null),io.forEach(km),oo.forEach(km)}function yi(e,t){e.blockedOn===t&&(e.blockedOn=null,_d||(_d=!0,wt.unstable_scheduleCallback(wt.unstable_NormalPriority,xb)))}function ao(e){function t(r){return yi(r,e)}if(0<da.length){yi(da[0],e);for(var n=1;n<da.length;n++){var s=da[n];s.blockedOn===e&&(s.blockedOn=null)}}for(rs!==null&&yi(rs,e),is!==null&&yi(is,e),os!==null&&yi(os,e),io.forEach(t),oo.forEach(t),n=0;n<Zn.length;n++)s=Zn[n],s.blockedOn===e&&(s.blockedOn=null);for(;0<Zn.length&&(n=Zn[0],n.blockedOn===null);)vx(n),n.blockedOn===null&&Zn.shift()}var Ir=Bn.ReactCurrentBatchConfig,yl=!0;function wb(e,t,n,s){var r=he,i=Ir.transition;Ir.transition=null;try{he=1,ah(e,t,n,s)}finally{he=r,Ir.transition=i}}function _b(e,t,n,s){var r=he,i=Ir.transition;Ir.transition=null;try{he=4,ah(e,t,n,s)}finally{he=r,Ir.transition=i}}function ah(e,t,n,s){if(yl){var r=kd(e,t,n,s);if(r===null)du(e,t,s,vl,n),_m(e,s);else if(vb(r,e,t,n,s))s.stopPropagation();else if(_m(e,s),t&4&&-1<yb.indexOf(e)){for(;r!==null;){var i=Vo(r);if(i!==null&&px(i),i=kd(e,t,n,s),i===null&&du(e,t,s,vl,n),i===r)break;r=i}r!==null&&s.stopPropagation()}else du(e,t,s,null,n)}}var vl=null;function kd(e,t,n,s){if(vl=null,e=sh(s),e=Ms(e),e!==null)if(t=tr(e),t===null)e=null;else if(n=t.tag,n===13){if(e=ox(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return vl=e,null}function xx(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(lb()){case rh:return 1;case ux:return 4;case ml:case cb:return 16;case dx:return 536870912;default:return 16}default:return 16}}var ns=null,lh=null,Ua=null;function wx(){if(Ua)return Ua;var e,t=lh,n=t.length,s,r="value"in ns?ns.value:ns.textContent,i=r.length;for(e=0;e<n&&t[e]===r[e];e++);var o=n-e;for(s=1;s<=o&&t[n-s]===r[i-s];s++);return Ua=r.slice(e,1<s?1-s:void 0)}function Ka(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function fa(){return!0}function jm(){return!1}function St(e){function t(n,s,r,i,o){this._reactName=n,this._targetInst=r,this.type=s,this.nativeEvent=i,this.target=o,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(i):i[l]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?fa:jm,this.isPropagationStopped=jm,this}return be(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=fa)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=fa)},persist:function(){},isPersistent:fa}),t}var oi={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ch=St(oi),Fo=be({},oi,{view:0,detail:0}),kb=St(Fo),nu,su,vi,cc=be({},Fo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:uh,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==vi&&(vi&&e.type==="mousemove"?(nu=e.screenX-vi.screenX,su=e.screenY-vi.screenY):su=nu=0,vi=e),nu)},movementY:function(e){return"movementY"in e?e.movementY:su}}),Sm=St(cc),jb=be({},cc,{dataTransfer:0}),Sb=St(jb),Nb=be({},Fo,{relatedTarget:0}),ru=St(Nb),bb=be({},oi,{animationName:0,elapsedTime:0,pseudoElement:0}),Eb=St(bb),Cb=be({},oi,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Tb=St(Cb),Pb=be({},oi,{data:0}),Nm=St(Pb),Ab={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Mb={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Ib={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Rb(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Ib[e])?!!t[e]:!1}function uh(){return Rb}var $b=be({},Fo,{key:function(e){if(e.key){var t=Ab[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Ka(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Mb[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:uh,charCode:function(e){return e.type==="keypress"?Ka(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Ka(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Lb=St($b),Db=be({},cc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),bm=St(Db),zb=be({},Fo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:uh}),Ob=St(zb),Fb=be({},oi,{propertyName:0,elapsedTime:0,pseudoElement:0}),Vb=St(Fb),Bb=be({},cc,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Hb=St(Bb),Wb=[9,13,27,32],dh=$n&&"CompositionEvent"in window,Vi=null;$n&&"documentMode"in document&&(Vi=document.documentMode);var Ub=$n&&"TextEvent"in window&&!Vi,_x=$n&&(!dh||Vi&&8<Vi&&11>=Vi),Em=" ",Cm=!1;function kx(e,t){switch(e){case"keyup":return Wb.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jx(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var fr=!1;function Kb(e,t){switch(e){case"compositionend":return jx(t);case"keypress":return t.which!==32?null:(Cm=!0,Em);case"textInput":return e=t.data,e===Em&&Cm?null:e;default:return null}}function Yb(e,t){if(fr)return e==="compositionend"||!dh&&kx(e,t)?(e=wx(),Ua=lh=ns=null,fr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return _x&&t.locale!=="ko"?null:t.data;default:return null}}var qb={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Tm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!qb[e.type]:t==="textarea"}function Sx(e,t,n,s){tx(s),t=xl(t,"onChange"),0<t.length&&(n=new ch("onChange","change",null,n,s),e.push({event:n,listeners:t}))}var Bi=null,lo=null;function Gb(e){$x(e,0)}function uc(e){var t=mr(e);if(q0(t))return e}function Xb(e,t){if(e==="change")return t}var Nx=!1;if($n){var iu;if($n){var ou="oninput"in document;if(!ou){var Pm=document.createElement("div");Pm.setAttribute("oninput","return;"),ou=typeof Pm.oninput=="function"}iu=ou}else iu=!1;Nx=iu&&(!document.documentMode||9<document.documentMode)}function Am(){Bi&&(Bi.detachEvent("onpropertychange",bx),lo=Bi=null)}function bx(e){if(e.propertyName==="value"&&uc(lo)){var t=[];Sx(t,lo,e,sh(e)),ix(Gb,t)}}function Qb(e,t,n){e==="focusin"?(Am(),Bi=t,lo=n,Bi.attachEvent("onpropertychange",bx)):e==="focusout"&&Am()}function Zb(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return uc(lo)}function Jb(e,t){if(e==="click")return uc(t)}function eE(e,t){if(e==="input"||e==="change")return uc(t)}function tE(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Xt=typeof Object.is=="function"?Object.is:tE;function co(e,t){if(Xt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(s=0;s<n.length;s++){var r=n[s];if(!rd.call(t,r)||!Xt(e[r],t[r]))return!1}return!0}function Mm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Im(e,t){var n=Mm(e);e=0;for(var s;n;){if(n.nodeType===3){if(s=e+n.textContent.length,e<=t&&s>=t)return{node:n,offset:t-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Mm(n)}}function Ex(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ex(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Cx(){for(var e=window,t=fl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=fl(e.document)}return t}function fh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function nE(e){var t=Cx(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ex(n.ownerDocument.documentElement,n)){if(s!==null&&fh(n)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var r=n.textContent.length,i=Math.min(s.start,r);s=s.end===void 0?i:Math.min(s.end,r),!e.extend&&i>s&&(r=s,s=i,i=r),r=Im(n,i);var o=Im(n,s);r&&o&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(r.node,r.offset),e.removeAllRanges(),i>s?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var sE=$n&&"documentMode"in document&&11>=document.documentMode,hr=null,jd=null,Hi=null,Sd=!1;function Rm(e,t,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Sd||hr==null||hr!==fl(s)||(s=hr,"selectionStart"in s&&fh(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Hi&&co(Hi,s)||(Hi=s,s=xl(jd,"onSelect"),0<s.length&&(t=new ch("onSelect","select",null,t,n),e.push({event:t,listeners:s}),t.target=hr)))}function ha(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var pr={animationend:ha("Animation","AnimationEnd"),animationiteration:ha("Animation","AnimationIteration"),animationstart:ha("Animation","AnimationStart"),transitionend:ha("Transition","TransitionEnd")},au={},Tx={};$n&&(Tx=document.createElement("div").style,"AnimationEvent"in window||(delete pr.animationend.animation,delete pr.animationiteration.animation,delete pr.animationstart.animation),"TransitionEvent"in window||delete pr.transitionend.transition);function dc(e){if(au[e])return au[e];if(!pr[e])return e;var t=pr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Tx)return au[e]=t[n];return e}var Px=dc("animationend"),Ax=dc("animationiteration"),Mx=dc("animationstart"),Ix=dc("transitionend"),Rx=new Map,$m="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ys(e,t){Rx.set(e,t),er(t,[e])}for(var lu=0;lu<$m.length;lu++){var cu=$m[lu],rE=cu.toLowerCase(),iE=cu[0].toUpperCase()+cu.slice(1);ys(rE,"on"+iE)}ys(Px,"onAnimationEnd");ys(Ax,"onAnimationIteration");ys(Mx,"onAnimationStart");ys("dblclick","onDoubleClick");ys("focusin","onFocus");ys("focusout","onBlur");ys(Ix,"onTransitionEnd");Fr("onMouseEnter",["mouseout","mouseover"]);Fr("onMouseLeave",["mouseout","mouseover"]);Fr("onPointerEnter",["pointerout","pointerover"]);Fr("onPointerLeave",["pointerout","pointerover"]);er("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));er("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));er("onBeforeInput",["compositionend","keypress","textInput","paste"]);er("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));er("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));er("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ai="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),oE=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ai));function Lm(e,t,n){var s=e.type||"unknown-event";e.currentTarget=n,rb(s,t,void 0,e),e.currentTarget=null}function $x(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var s=e[n],r=s.event;s=s.listeners;e:{var i=void 0;if(t)for(var o=s.length-1;0<=o;o--){var l=s[o],c=l.instance,u=l.currentTarget;if(l=l.listener,c!==i&&r.isPropagationStopped())break e;Lm(r,l,u),i=c}else for(o=0;o<s.length;o++){if(l=s[o],c=l.instance,u=l.currentTarget,l=l.listener,c!==i&&r.isPropagationStopped())break e;Lm(r,l,u),i=c}}}if(pl)throw e=xd,pl=!1,xd=null,e}function me(e,t){var n=t[Td];n===void 0&&(n=t[Td]=new Set);var s=e+"__bubble";n.has(s)||(Lx(t,e,2,!1),n.add(s))}function uu(e,t,n){var s=0;t&&(s|=4),Lx(n,e,s,t)}var pa="_reactListening"+Math.random().toString(36).slice(2);function uo(e){if(!e[pa]){e[pa]=!0,H0.forEach(function(n){n!=="selectionchange"&&(oE.has(n)||uu(n,!1,e),uu(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[pa]||(t[pa]=!0,uu("selectionchange",!1,t))}}function Lx(e,t,n,s){switch(xx(t)){case 1:var r=wb;break;case 4:r=_b;break;default:r=ah}n=r.bind(null,t,n,e),r=void 0,!vd||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(r=!0),s?r!==void 0?e.addEventListener(t,n,{capture:!0,passive:r}):e.addEventListener(t,n,!0):r!==void 0?e.addEventListener(t,n,{passive:r}):e.addEventListener(t,n,!1)}function du(e,t,n,s,r){var i=s;if(!(t&1)&&!(t&2)&&s!==null)e:for(;;){if(s===null)return;var o=s.tag;if(o===3||o===4){var l=s.stateNode.containerInfo;if(l===r||l.nodeType===8&&l.parentNode===r)break;if(o===4)for(o=s.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===r||c.nodeType===8&&c.parentNode===r))return;o=o.return}for(;l!==null;){if(o=Ms(l),o===null)return;if(c=o.tag,c===5||c===6){s=i=o;continue e}l=l.parentNode}}s=s.return}ix(function(){var u=i,d=sh(n),f=[];e:{var h=Rx.get(e);if(h!==void 0){var p=ch,v=e;switch(e){case"keypress":if(Ka(n)===0)break e;case"keydown":case"keyup":p=Lb;break;case"focusin":v="focus",p=ru;break;case"focusout":v="blur",p=ru;break;case"beforeblur":case"afterblur":p=ru;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":p=Sm;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":p=Sb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":p=Ob;break;case Px:case Ax:case Mx:p=Eb;break;case Ix:p=Vb;break;case"scroll":p=kb;break;case"wheel":p=Hb;break;case"copy":case"cut":case"paste":p=Tb;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":p=bm}var _=(t&4)!==0,w=!_&&e==="scroll",m=_?h!==null?h+"Capture":null:h;_=[];for(var y=u,g;y!==null;){g=y;var x=g.stateNode;if(g.tag===5&&x!==null&&(g=x,m!==null&&(x=ro(y,m),x!=null&&_.push(fo(y,x,g)))),w)break;y=y.return}0<_.length&&(h=new p(h,v,null,n,d),f.push({event:h,listeners:_}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",p=e==="mouseout"||e==="pointerout",h&&n!==gd&&(v=n.relatedTarget||n.fromElement)&&(Ms(v)||v[Ln]))break e;if((p||h)&&(h=d.window===d?d:(h=d.ownerDocument)?h.defaultView||h.parentWindow:window,p?(v=n.relatedTarget||n.toElement,p=u,v=v?Ms(v):null,v!==null&&(w=tr(v),v!==w||v.tag!==5&&v.tag!==6)&&(v=null)):(p=null,v=u),p!==v)){if(_=Sm,x="onMouseLeave",m="onMouseEnter",y="mouse",(e==="pointerout"||e==="pointerover")&&(_=bm,x="onPointerLeave",m="onPointerEnter",y="pointer"),w=p==null?h:mr(p),g=v==null?h:mr(v),h=new _(x,y+"leave",p,n,d),h.target=w,h.relatedTarget=g,x=null,Ms(d)===u&&(_=new _(m,y+"enter",v,n,d),_.target=g,_.relatedTarget=w,x=_),w=x,p&&v)t:{for(_=p,m=v,y=0,g=_;g;g=ir(g))y++;for(g=0,x=m;x;x=ir(x))g++;for(;0<y-g;)_=ir(_),y--;for(;0<g-y;)m=ir(m),g--;for(;y--;){if(_===m||m!==null&&_===m.alternate)break t;_=ir(_),m=ir(m)}_=null}else _=null;p!==null&&Dm(f,h,p,_,!1),v!==null&&w!==null&&Dm(f,w,v,_,!0)}}e:{if(h=u?mr(u):window,p=h.nodeName&&h.nodeName.toLowerCase(),p==="select"||p==="input"&&h.type==="file")var k=Xb;else if(Tm(h))if(Nx)k=eE;else{k=Zb;var j=Qb}else(p=h.nodeName)&&p.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(k=Jb);if(k&&(k=k(e,u))){Sx(f,k,n,d);break e}j&&j(e,h,u),e==="focusout"&&(j=h._wrapperState)&&j.controlled&&h.type==="number"&&dd(h,"number",h.value)}switch(j=u?mr(u):window,e){case"focusin":(Tm(j)||j.contentEditable==="true")&&(hr=j,jd=u,Hi=null);break;case"focusout":Hi=jd=hr=null;break;case"mousedown":Sd=!0;break;case"contextmenu":case"mouseup":case"dragend":Sd=!1,Rm(f,n,d);break;case"selectionchange":if(sE)break;case"keydown":case"keyup":Rm(f,n,d)}var E;if(dh)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else fr?kx(e,n)&&(b="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(b="onCompositionStart");b&&(_x&&n.locale!=="ko"&&(fr||b!=="onCompositionStart"?b==="onCompositionEnd"&&fr&&(E=wx()):(ns=d,lh="value"in ns?ns.value:ns.textContent,fr=!0)),j=xl(u,b),0<j.length&&(b=new Nm(b,e,null,n,d),f.push({event:b,listeners:j}),E?b.data=E:(E=jx(n),E!==null&&(b.data=E)))),(E=Ub?Kb(e,n):Yb(e,n))&&(u=xl(u,"onBeforeInput"),0<u.length&&(d=new Nm("onBeforeInput","beforeinput",null,n,d),f.push({event:d,listeners:u}),d.data=E))}$x(f,t)})}function fo(e,t,n){return{instance:e,listener:t,currentTarget:n}}function xl(e,t){for(var n=t+"Capture",s=[];e!==null;){var r=e,i=r.stateNode;r.tag===5&&i!==null&&(r=i,i=ro(e,n),i!=null&&s.unshift(fo(e,i,r)),i=ro(e,t),i!=null&&s.push(fo(e,i,r))),e=e.return}return s}function ir(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Dm(e,t,n,s,r){for(var i=t._reactName,o=[];n!==null&&n!==s;){var l=n,c=l.alternate,u=l.stateNode;if(c!==null&&c===s)break;l.tag===5&&u!==null&&(l=u,r?(c=ro(n,i),c!=null&&o.unshift(fo(n,c,l))):r||(c=ro(n,i),c!=null&&o.push(fo(n,c,l)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var aE=/\r\n?/g,lE=/\u0000|\uFFFD/g;function zm(e){return(typeof e=="string"?e:""+e).replace(aE,`
|
|
38
|
+
`).replace(lE,"")}function ma(e,t,n){if(t=zm(t),zm(e)!==t&&n)throw Error(Y(425))}function wl(){}var Nd=null,bd=null;function Ed(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Cd=typeof setTimeout=="function"?setTimeout:void 0,cE=typeof clearTimeout=="function"?clearTimeout:void 0,Om=typeof Promise=="function"?Promise:void 0,uE=typeof queueMicrotask=="function"?queueMicrotask:typeof Om<"u"?function(e){return Om.resolve(null).then(e).catch(dE)}:Cd;function dE(e){setTimeout(function(){throw e})}function fu(e,t){var n=t,s=0;do{var r=n.nextSibling;if(e.removeChild(n),r&&r.nodeType===8)if(n=r.data,n==="/$"){if(s===0){e.removeChild(r),ao(t);return}s--}else n!=="$"&&n!=="$?"&&n!=="$!"||s++;n=r}while(n);ao(t)}function as(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Fm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var ai=Math.random().toString(36).slice(2),ln="__reactFiber$"+ai,ho="__reactProps$"+ai,Ln="__reactContainer$"+ai,Td="__reactEvents$"+ai,fE="__reactListeners$"+ai,hE="__reactHandles$"+ai;function Ms(e){var t=e[ln];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ln]||n[ln]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Fm(e);e!==null;){if(n=e[ln])return n;e=Fm(e)}return t}e=n,n=e.parentNode}return null}function Vo(e){return e=e[ln]||e[Ln],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function mr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(Y(33))}function fc(e){return e[ho]||null}var Pd=[],gr=-1;function vs(e){return{current:e}}function ye(e){0>gr||(e.current=Pd[gr],Pd[gr]=null,gr--)}function pe(e,t){gr++,Pd[gr]=e.current,e.current=t}var ps={},tt=vs(ps),ut=vs(!1),Hs=ps;function Vr(e,t){var n=e.type.contextTypes;if(!n)return ps;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var r={},i;for(i in n)r[i]=t[i];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function dt(e){return e=e.childContextTypes,e!=null}function _l(){ye(ut),ye(tt)}function Vm(e,t,n){if(tt.current!==ps)throw Error(Y(168));pe(tt,t),pe(ut,n)}function Dx(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var r in s)if(!(r in t))throw Error(Y(108,QN(e)||"Unknown",r));return be({},n,s)}function kl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ps,Hs=tt.current,pe(tt,e),pe(ut,ut.current),!0}function Bm(e,t,n){var s=e.stateNode;if(!s)throw Error(Y(169));n?(e=Dx(e,t,Hs),s.__reactInternalMemoizedMergedChildContext=e,ye(ut),ye(tt),pe(tt,e)):ye(ut),pe(ut,n)}var jn=null,hc=!1,hu=!1;function zx(e){jn===null?jn=[e]:jn.push(e)}function pE(e){hc=!0,zx(e)}function xs(){if(!hu&&jn!==null){hu=!0;var e=0,t=he;try{var n=jn;for(he=1;e<n.length;e++){var s=n[e];do s=s(!0);while(s!==null)}jn=null,hc=!1}catch(r){throw jn!==null&&(jn=jn.slice(e+1)),cx(rh,xs),r}finally{he=t,hu=!1}}return null}var yr=[],vr=0,jl=null,Sl=0,Pt=[],At=0,Ws=null,Nn=1,bn="";function bs(e,t){yr[vr++]=Sl,yr[vr++]=jl,jl=e,Sl=t}function Ox(e,t,n){Pt[At++]=Nn,Pt[At++]=bn,Pt[At++]=Ws,Ws=e;var s=Nn;e=bn;var r=32-qt(s)-1;s&=~(1<<r),n+=1;var i=32-qt(t)+r;if(30<i){var o=r-r%5;i=(s&(1<<o)-1).toString(32),s>>=o,r-=o,Nn=1<<32-qt(t)+r|n<<r|s,bn=i+e}else Nn=1<<i|n<<r|s,bn=e}function hh(e){e.return!==null&&(bs(e,1),Ox(e,1,0))}function ph(e){for(;e===jl;)jl=yr[--vr],yr[vr]=null,Sl=yr[--vr],yr[vr]=null;for(;e===Ws;)Ws=Pt[--At],Pt[At]=null,bn=Pt[--At],Pt[At]=null,Nn=Pt[--At],Pt[At]=null}var vt=null,gt=null,we=!1,Wt=null;function Fx(e,t){var n=Mt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Hm(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,vt=e,gt=as(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,vt=e,gt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Ws!==null?{id:Nn,overflow:bn}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Mt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,vt=e,gt=null,!0):!1;default:return!1}}function Ad(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Md(e){if(we){var t=gt;if(t){var n=t;if(!Hm(e,t)){if(Ad(e))throw Error(Y(418));t=as(n.nextSibling);var s=vt;t&&Hm(e,t)?Fx(s,n):(e.flags=e.flags&-4097|2,we=!1,vt=e)}}else{if(Ad(e))throw Error(Y(418));e.flags=e.flags&-4097|2,we=!1,vt=e}}}function Wm(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;vt=e}function ga(e){if(e!==vt)return!1;if(!we)return Wm(e),we=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Ed(e.type,e.memoizedProps)),t&&(t=gt)){if(Ad(e))throw Vx(),Error(Y(418));for(;t;)Fx(e,t),t=as(t.nextSibling)}if(Wm(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Y(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){gt=as(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}gt=null}}else gt=vt?as(e.stateNode.nextSibling):null;return!0}function Vx(){for(var e=gt;e;)e=as(e.nextSibling)}function Br(){gt=vt=null,we=!1}function mh(e){Wt===null?Wt=[e]:Wt.push(e)}var mE=Bn.ReactCurrentBatchConfig;function xi(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(Y(309));var s=n.stateNode}if(!s)throw Error(Y(147,e));var r=s,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(o){var l=r.refs;o===null?delete l[i]:l[i]=o},t._stringRef=i,t)}if(typeof e!="string")throw Error(Y(284));if(!n._owner)throw Error(Y(290,e))}return e}function ya(e,t){throw e=Object.prototype.toString.call(t),Error(Y(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Um(e){var t=e._init;return t(e._payload)}function Bx(e){function t(m,y){if(e){var g=m.deletions;g===null?(m.deletions=[y],m.flags|=16):g.push(y)}}function n(m,y){if(!e)return null;for(;y!==null;)t(m,y),y=y.sibling;return null}function s(m,y){for(m=new Map;y!==null;)y.key!==null?m.set(y.key,y):m.set(y.index,y),y=y.sibling;return m}function r(m,y){return m=ds(m,y),m.index=0,m.sibling=null,m}function i(m,y,g){return m.index=g,e?(g=m.alternate,g!==null?(g=g.index,g<y?(m.flags|=2,y):g):(m.flags|=2,y)):(m.flags|=1048576,y)}function o(m){return e&&m.alternate===null&&(m.flags|=2),m}function l(m,y,g,x){return y===null||y.tag!==6?(y=wu(g,m.mode,x),y.return=m,y):(y=r(y,g),y.return=m,y)}function c(m,y,g,x){var k=g.type;return k===dr?d(m,y,g.props.children,x,g.key):y!==null&&(y.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Xn&&Um(k)===y.type)?(x=r(y,g.props),x.ref=xi(m,y,g),x.return=m,x):(x=Ja(g.type,g.key,g.props,null,m.mode,x),x.ref=xi(m,y,g),x.return=m,x)}function u(m,y,g,x){return y===null||y.tag!==4||y.stateNode.containerInfo!==g.containerInfo||y.stateNode.implementation!==g.implementation?(y=_u(g,m.mode,x),y.return=m,y):(y=r(y,g.children||[]),y.return=m,y)}function d(m,y,g,x,k){return y===null||y.tag!==7?(y=Os(g,m.mode,x,k),y.return=m,y):(y=r(y,g),y.return=m,y)}function f(m,y,g){if(typeof y=="string"&&y!==""||typeof y=="number")return y=wu(""+y,m.mode,g),y.return=m,y;if(typeof y=="object"&&y!==null){switch(y.$$typeof){case oa:return g=Ja(y.type,y.key,y.props,null,m.mode,g),g.ref=xi(m,null,y),g.return=m,g;case ur:return y=_u(y,m.mode,g),y.return=m,y;case Xn:var x=y._init;return f(m,x(y._payload),g)}if(Ti(y)||pi(y))return y=Os(y,m.mode,g,null),y.return=m,y;ya(m,y)}return null}function h(m,y,g,x){var k=y!==null?y.key:null;if(typeof g=="string"&&g!==""||typeof g=="number")return k!==null?null:l(m,y,""+g,x);if(typeof g=="object"&&g!==null){switch(g.$$typeof){case oa:return g.key===k?c(m,y,g,x):null;case ur:return g.key===k?u(m,y,g,x):null;case Xn:return k=g._init,h(m,y,k(g._payload),x)}if(Ti(g)||pi(g))return k!==null?null:d(m,y,g,x,null);ya(m,g)}return null}function p(m,y,g,x,k){if(typeof x=="string"&&x!==""||typeof x=="number")return m=m.get(g)||null,l(y,m,""+x,k);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case oa:return m=m.get(x.key===null?g:x.key)||null,c(y,m,x,k);case ur:return m=m.get(x.key===null?g:x.key)||null,u(y,m,x,k);case Xn:var j=x._init;return p(m,y,g,j(x._payload),k)}if(Ti(x)||pi(x))return m=m.get(g)||null,d(y,m,x,k,null);ya(y,x)}return null}function v(m,y,g,x){for(var k=null,j=null,E=y,b=y=0,P=null;E!==null&&b<g.length;b++){E.index>b?(P=E,E=null):P=E.sibling;var R=h(m,E,g[b],x);if(R===null){E===null&&(E=P);break}e&&E&&R.alternate===null&&t(m,E),y=i(R,y,b),j===null?k=R:j.sibling=R,j=R,E=P}if(b===g.length)return n(m,E),we&&bs(m,b),k;if(E===null){for(;b<g.length;b++)E=f(m,g[b],x),E!==null&&(y=i(E,y,b),j===null?k=E:j.sibling=E,j=E);return we&&bs(m,b),k}for(E=s(m,E);b<g.length;b++)P=p(E,m,b,g[b],x),P!==null&&(e&&P.alternate!==null&&E.delete(P.key===null?b:P.key),y=i(P,y,b),j===null?k=P:j.sibling=P,j=P);return e&&E.forEach(function(I){return t(m,I)}),we&&bs(m,b),k}function _(m,y,g,x){var k=pi(g);if(typeof k!="function")throw Error(Y(150));if(g=k.call(g),g==null)throw Error(Y(151));for(var j=k=null,E=y,b=y=0,P=null,R=g.next();E!==null&&!R.done;b++,R=g.next()){E.index>b?(P=E,E=null):P=E.sibling;var I=h(m,E,R.value,x);if(I===null){E===null&&(E=P);break}e&&E&&I.alternate===null&&t(m,E),y=i(I,y,b),j===null?k=I:j.sibling=I,j=I,E=P}if(R.done)return n(m,E),we&&bs(m,b),k;if(E===null){for(;!R.done;b++,R=g.next())R=f(m,R.value,x),R!==null&&(y=i(R,y,b),j===null?k=R:j.sibling=R,j=R);return we&&bs(m,b),k}for(E=s(m,E);!R.done;b++,R=g.next())R=p(E,m,b,R.value,x),R!==null&&(e&&R.alternate!==null&&E.delete(R.key===null?b:R.key),y=i(R,y,b),j===null?k=R:j.sibling=R,j=R);return e&&E.forEach(function(O){return t(m,O)}),we&&bs(m,b),k}function w(m,y,g,x){if(typeof g=="object"&&g!==null&&g.type===dr&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case oa:e:{for(var k=g.key,j=y;j!==null;){if(j.key===k){if(k=g.type,k===dr){if(j.tag===7){n(m,j.sibling),y=r(j,g.props.children),y.return=m,m=y;break e}}else if(j.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Xn&&Um(k)===j.type){n(m,j.sibling),y=r(j,g.props),y.ref=xi(m,j,g),y.return=m,m=y;break e}n(m,j);break}else t(m,j);j=j.sibling}g.type===dr?(y=Os(g.props.children,m.mode,x,g.key),y.return=m,m=y):(x=Ja(g.type,g.key,g.props,null,m.mode,x),x.ref=xi(m,y,g),x.return=m,m=x)}return o(m);case ur:e:{for(j=g.key;y!==null;){if(y.key===j)if(y.tag===4&&y.stateNode.containerInfo===g.containerInfo&&y.stateNode.implementation===g.implementation){n(m,y.sibling),y=r(y,g.children||[]),y.return=m,m=y;break e}else{n(m,y);break}else t(m,y);y=y.sibling}y=_u(g,m.mode,x),y.return=m,m=y}return o(m);case Xn:return j=g._init,w(m,y,j(g._payload),x)}if(Ti(g))return v(m,y,g,x);if(pi(g))return _(m,y,g,x);ya(m,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,y!==null&&y.tag===6?(n(m,y.sibling),y=r(y,g),y.return=m,m=y):(n(m,y),y=wu(g,m.mode,x),y.return=m,m=y),o(m)):n(m,y)}return w}var Hr=Bx(!0),Hx=Bx(!1),Nl=vs(null),bl=null,xr=null,gh=null;function yh(){gh=xr=bl=null}function vh(e){var t=Nl.current;ye(Nl),e._currentValue=t}function Id(e,t,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function Rr(e,t){bl=e,gh=xr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(lt=!0),e.firstContext=null)}function $t(e){var t=e._currentValue;if(gh!==e)if(e={context:e,memoizedValue:t,next:null},xr===null){if(bl===null)throw Error(Y(308));xr=e,bl.dependencies={lanes:0,firstContext:e}}else xr=xr.next=e;return t}var Is=null;function xh(e){Is===null?Is=[e]:Is.push(e)}function Wx(e,t,n,s){var r=t.interleaved;return r===null?(n.next=n,xh(t)):(n.next=r.next,r.next=n),t.interleaved=n,Dn(e,s)}function Dn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Qn=!1;function wh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ux(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Pn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ls(e,t,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,ce&2){var r=s.pending;return r===null?t.next=t:(t.next=r.next,r.next=t),s.pending=t,Dn(e,n)}return r=s.interleaved,r===null?(t.next=t,xh(s)):(t.next=r.next,r.next=t),s.interleaved=t,Dn(e,n)}function Ya(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,ih(e,n)}}function Km(e,t){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var r=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?r=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?r=i=t:i=i.next=t}else r=i=t;n={baseState:s.baseState,firstBaseUpdate:r,lastBaseUpdate:i,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function El(e,t,n,s){var r=e.updateQueue;Qn=!1;var i=r.firstBaseUpdate,o=r.lastBaseUpdate,l=r.shared.pending;if(l!==null){r.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?i=u:o.next=u,o=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(i!==null){var f=r.baseState;o=0,d=u=c=null,l=i;do{var h=l.lane,p=l.eventTime;if((s&h)===h){d!==null&&(d=d.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var v=e,_=l;switch(h=t,p=n,_.tag){case 1:if(v=_.payload,typeof v=="function"){f=v.call(p,f,h);break e}f=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=_.payload,h=typeof v=="function"?v.call(p,f,h):v,h==null)break e;f=be({},f,h);break e;case 2:Qn=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,h=r.effects,h===null?r.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=p,c=f):d=d.next=p,o|=h;if(l=l.next,l===null){if(l=r.shared.pending,l===null)break;h=l,l=h.next,h.next=null,r.lastBaseUpdate=h,r.shared.pending=null}}while(!0);if(d===null&&(c=f),r.baseState=c,r.firstBaseUpdate=u,r.lastBaseUpdate=d,t=r.shared.interleaved,t!==null){r=t;do o|=r.lane,r=r.next;while(r!==t)}else i===null&&(r.shared.lanes=0);Ks|=o,e.lanes=o,e.memoizedState=f}}function Ym(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var s=e[t],r=s.callback;if(r!==null){if(s.callback=null,s=n,typeof r!="function")throw Error(Y(191,r));r.call(s)}}}var Bo={},dn=vs(Bo),po=vs(Bo),mo=vs(Bo);function Rs(e){if(e===Bo)throw Error(Y(174));return e}function _h(e,t){switch(pe(mo,t),pe(po,e),pe(dn,Bo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:hd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=hd(t,e)}ye(dn),pe(dn,t)}function Wr(){ye(dn),ye(po),ye(mo)}function Kx(e){Rs(mo.current);var t=Rs(dn.current),n=hd(t,e.type);t!==n&&(pe(po,e),pe(dn,n))}function kh(e){po.current===e&&(ye(dn),ye(po))}var je=vs(0);function Cl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var pu=[];function jh(){for(var e=0;e<pu.length;e++)pu[e]._workInProgressVersionPrimary=null;pu.length=0}var qa=Bn.ReactCurrentDispatcher,mu=Bn.ReactCurrentBatchConfig,Us=0,Ne=null,ze=null,Ve=null,Tl=!1,Wi=!1,go=0,gE=0;function Xe(){throw Error(Y(321))}function Sh(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Xt(e[n],t[n]))return!1;return!0}function Nh(e,t,n,s,r,i){if(Us=i,Ne=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,qa.current=e===null||e.memoizedState===null?wE:_E,e=n(s,r),Wi){i=0;do{if(Wi=!1,go=0,25<=i)throw Error(Y(301));i+=1,Ve=ze=null,t.updateQueue=null,qa.current=kE,e=n(s,r)}while(Wi)}if(qa.current=Pl,t=ze!==null&&ze.next!==null,Us=0,Ve=ze=Ne=null,Tl=!1,t)throw Error(Y(300));return e}function bh(){var e=go!==0;return go=0,e}function sn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ve===null?Ne.memoizedState=Ve=e:Ve=Ve.next=e,Ve}function Lt(){if(ze===null){var e=Ne.alternate;e=e!==null?e.memoizedState:null}else e=ze.next;var t=Ve===null?Ne.memoizedState:Ve.next;if(t!==null)Ve=t,ze=e;else{if(e===null)throw Error(Y(310));ze=e,e={memoizedState:ze.memoizedState,baseState:ze.baseState,baseQueue:ze.baseQueue,queue:ze.queue,next:null},Ve===null?Ne.memoizedState=Ve=e:Ve=Ve.next=e}return Ve}function yo(e,t){return typeof t=="function"?t(e):t}function gu(e){var t=Lt(),n=t.queue;if(n===null)throw Error(Y(311));n.lastRenderedReducer=e;var s=ze,r=s.baseQueue,i=n.pending;if(i!==null){if(r!==null){var o=r.next;r.next=i.next,i.next=o}s.baseQueue=r=i,n.pending=null}if(r!==null){i=r.next,s=s.baseState;var l=o=null,c=null,u=i;do{var d=u.lane;if((Us&d)===d)c!==null&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),s=u.hasEagerState?u.eagerState:e(s,u.action);else{var f={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};c===null?(l=c=f,o=s):c=c.next=f,Ne.lanes|=d,Ks|=d}u=u.next}while(u!==null&&u!==i);c===null?o=s:c.next=l,Xt(s,t.memoizedState)||(lt=!0),t.memoizedState=s,t.baseState=o,t.baseQueue=c,n.lastRenderedState=s}if(e=n.interleaved,e!==null){r=e;do i=r.lane,Ne.lanes|=i,Ks|=i,r=r.next;while(r!==e)}else r===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function yu(e){var t=Lt(),n=t.queue;if(n===null)throw Error(Y(311));n.lastRenderedReducer=e;var s=n.dispatch,r=n.pending,i=t.memoizedState;if(r!==null){n.pending=null;var o=r=r.next;do i=e(i,o.action),o=o.next;while(o!==r);Xt(i,t.memoizedState)||(lt=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,s]}function Yx(){}function qx(e,t){var n=Ne,s=Lt(),r=t(),i=!Xt(s.memoizedState,r);if(i&&(s.memoizedState=r,lt=!0),s=s.queue,Eh(Qx.bind(null,n,s,e),[e]),s.getSnapshot!==t||i||Ve!==null&&Ve.memoizedState.tag&1){if(n.flags|=2048,vo(9,Xx.bind(null,n,s,r,t),void 0,null),Be===null)throw Error(Y(349));Us&30||Gx(n,t,r)}return r}function Gx(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Ne.updateQueue,t===null?(t={lastEffect:null,stores:null},Ne.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Xx(e,t,n,s){t.value=n,t.getSnapshot=s,Zx(t)&&Jx(e)}function Qx(e,t,n){return n(function(){Zx(t)&&Jx(e)})}function Zx(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Xt(e,n)}catch{return!0}}function Jx(e){var t=Dn(e,1);t!==null&&Gt(t,e,1,-1)}function qm(e){var t=sn();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:yo,lastRenderedState:e},t.queue=e,e=e.dispatch=xE.bind(null,Ne,e),[t.memoizedState,e]}function vo(e,t,n,s){return e={tag:e,create:t,destroy:n,deps:s,next:null},t=Ne.updateQueue,t===null?(t={lastEffect:null,stores:null},Ne.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(s=n.next,n.next=e,e.next=s,t.lastEffect=e)),e}function ew(){return Lt().memoizedState}function Ga(e,t,n,s){var r=sn();Ne.flags|=e,r.memoizedState=vo(1|t,n,void 0,s===void 0?null:s)}function pc(e,t,n,s){var r=Lt();s=s===void 0?null:s;var i=void 0;if(ze!==null){var o=ze.memoizedState;if(i=o.destroy,s!==null&&Sh(s,o.deps)){r.memoizedState=vo(t,n,i,s);return}}Ne.flags|=e,r.memoizedState=vo(1|t,n,i,s)}function Gm(e,t){return Ga(8390656,8,e,t)}function Eh(e,t){return pc(2048,8,e,t)}function tw(e,t){return pc(4,2,e,t)}function nw(e,t){return pc(4,4,e,t)}function sw(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function rw(e,t,n){return n=n!=null?n.concat([e]):null,pc(4,4,sw.bind(null,t,e),n)}function Ch(){}function iw(e,t){var n=Lt();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&Sh(t,s[1])?s[0]:(n.memoizedState=[e,t],e)}function ow(e,t){var n=Lt();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&Sh(t,s[1])?s[0]:(e=e(),n.memoizedState=[e,t],e)}function aw(e,t,n){return Us&21?(Xt(n,t)||(n=fx(),Ne.lanes|=n,Ks|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,lt=!0),e.memoizedState=n)}function yE(e,t){var n=he;he=n!==0&&4>n?n:4,e(!0);var s=mu.transition;mu.transition={};try{e(!1),t()}finally{he=n,mu.transition=s}}function lw(){return Lt().memoizedState}function vE(e,t,n){var s=us(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},cw(e))uw(t,n);else if(n=Wx(e,t,n,s),n!==null){var r=rt();Gt(n,e,s,r),dw(n,t,s)}}function xE(e,t,n){var s=us(e),r={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(cw(e))uw(t,r);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(r.hasEagerState=!0,r.eagerState=l,Xt(l,o)){var c=t.interleaved;c===null?(r.next=r,xh(t)):(r.next=c.next,c.next=r),t.interleaved=r;return}}catch{}finally{}n=Wx(e,t,r,s),n!==null&&(r=rt(),Gt(n,e,s,r),dw(n,t,s))}}function cw(e){var t=e.alternate;return e===Ne||t!==null&&t===Ne}function uw(e,t){Wi=Tl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function dw(e,t,n){if(n&4194240){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,ih(e,n)}}var Pl={readContext:$t,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useInsertionEffect:Xe,useLayoutEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useMutableSource:Xe,useSyncExternalStore:Xe,useId:Xe,unstable_isNewReconciler:!1},wE={readContext:$t,useCallback:function(e,t){return sn().memoizedState=[e,t===void 0?null:t],e},useContext:$t,useEffect:Gm,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ga(4194308,4,sw.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ga(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ga(4,2,e,t)},useMemo:function(e,t){var n=sn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=sn();return t=n!==void 0?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=vE.bind(null,Ne,e),[s.memoizedState,e]},useRef:function(e){var t=sn();return e={current:e},t.memoizedState=e},useState:qm,useDebugValue:Ch,useDeferredValue:function(e){return sn().memoizedState=e},useTransition:function(){var e=qm(!1),t=e[0];return e=yE.bind(null,e[1]),sn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=Ne,r=sn();if(we){if(n===void 0)throw Error(Y(407));n=n()}else{if(n=t(),Be===null)throw Error(Y(349));Us&30||Gx(s,t,n)}r.memoizedState=n;var i={value:n,getSnapshot:t};return r.queue=i,Gm(Qx.bind(null,s,i,e),[e]),s.flags|=2048,vo(9,Xx.bind(null,s,i,n,t),void 0,null),n},useId:function(){var e=sn(),t=Be.identifierPrefix;if(we){var n=bn,s=Nn;n=(s&~(1<<32-qt(s)-1)).toString(32)+n,t=":"+t+"R"+n,n=go++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=gE++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},_E={readContext:$t,useCallback:iw,useContext:$t,useEffect:Eh,useImperativeHandle:rw,useInsertionEffect:tw,useLayoutEffect:nw,useMemo:ow,useReducer:gu,useRef:ew,useState:function(){return gu(yo)},useDebugValue:Ch,useDeferredValue:function(e){var t=Lt();return aw(t,ze.memoizedState,e)},useTransition:function(){var e=gu(yo)[0],t=Lt().memoizedState;return[e,t]},useMutableSource:Yx,useSyncExternalStore:qx,useId:lw,unstable_isNewReconciler:!1},kE={readContext:$t,useCallback:iw,useContext:$t,useEffect:Eh,useImperativeHandle:rw,useInsertionEffect:tw,useLayoutEffect:nw,useMemo:ow,useReducer:yu,useRef:ew,useState:function(){return yu(yo)},useDebugValue:Ch,useDeferredValue:function(e){var t=Lt();return ze===null?t.memoizedState=e:aw(t,ze.memoizedState,e)},useTransition:function(){var e=yu(yo)[0],t=Lt().memoizedState;return[e,t]},useMutableSource:Yx,useSyncExternalStore:qx,useId:lw,unstable_isNewReconciler:!1};function Vt(e,t){if(e&&e.defaultProps){t=be({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Rd(e,t,n,s){t=e.memoizedState,n=n(s,t),n=n==null?t:be({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var mc={isMounted:function(e){return(e=e._reactInternals)?tr(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var s=rt(),r=us(e),i=Pn(s,r);i.payload=t,n!=null&&(i.callback=n),t=ls(e,i,r),t!==null&&(Gt(t,e,r,s),Ya(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var s=rt(),r=us(e),i=Pn(s,r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=ls(e,i,r),t!==null&&(Gt(t,e,r,s),Ya(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=rt(),s=us(e),r=Pn(n,s);r.tag=2,t!=null&&(r.callback=t),t=ls(e,r,s),t!==null&&(Gt(t,e,s,n),Ya(t,e,s))}};function Xm(e,t,n,s,r,i,o){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,i,o):t.prototype&&t.prototype.isPureReactComponent?!co(n,s)||!co(r,i):!0}function fw(e,t,n){var s=!1,r=ps,i=t.contextType;return typeof i=="object"&&i!==null?i=$t(i):(r=dt(t)?Hs:tt.current,s=t.contextTypes,i=(s=s!=null)?Vr(e,r):ps),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=mc,e.stateNode=t,t._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=i),t}function Qm(e,t,n,s){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,s),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,s),t.state!==e&&mc.enqueueReplaceState(t,t.state,null)}function $d(e,t,n,s){var r=e.stateNode;r.props=n,r.state=e.memoizedState,r.refs={},wh(e);var i=t.contextType;typeof i=="object"&&i!==null?r.context=$t(i):(i=dt(t)?Hs:tt.current,r.context=Vr(e,i)),r.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(Rd(e,t,i,n),r.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof r.getSnapshotBeforeUpdate=="function"||typeof r.UNSAFE_componentWillMount!="function"&&typeof r.componentWillMount!="function"||(t=r.state,typeof r.componentWillMount=="function"&&r.componentWillMount(),typeof r.UNSAFE_componentWillMount=="function"&&r.UNSAFE_componentWillMount(),t!==r.state&&mc.enqueueReplaceState(r,r.state,null),El(e,n,r,s),r.state=e.memoizedState),typeof r.componentDidMount=="function"&&(e.flags|=4194308)}function Ur(e,t){try{var n="",s=t;do n+=XN(s),s=s.return;while(s);var r=n}catch(i){r=`
|
|
39
|
+
Error generating stack: `+i.message+`
|
|
40
|
+
`+i.stack}return{value:e,source:t,stack:r,digest:null}}function vu(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ld(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var jE=typeof WeakMap=="function"?WeakMap:Map;function hw(e,t,n){n=Pn(-1,n),n.tag=3,n.payload={element:null};var s=t.value;return n.callback=function(){Ml||(Ml=!0,Kd=s),Ld(e,t)},n}function pw(e,t,n){n=Pn(-1,n),n.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var r=t.value;n.payload=function(){return s(r)},n.callback=function(){Ld(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){Ld(e,t),typeof s!="function"&&(cs===null?cs=new Set([this]):cs.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Zm(e,t,n){var s=e.pingCache;if(s===null){s=e.pingCache=new jE;var r=new Set;s.set(t,r)}else r=s.get(t),r===void 0&&(r=new Set,s.set(t,r));r.has(n)||(r.add(n),e=DE.bind(null,e,t,n),t.then(e,e))}function Jm(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function eg(e,t,n,s,r){return e.mode&1?(e.flags|=65536,e.lanes=r,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Pn(-1,1),t.tag=2,ls(n,t,1))),n.lanes|=1),e)}var SE=Bn.ReactCurrentOwner,lt=!1;function nt(e,t,n,s){t.child=e===null?Hx(t,null,n,s):Hr(t,e.child,n,s)}function tg(e,t,n,s,r){n=n.render;var i=t.ref;return Rr(t,r),s=Nh(e,t,n,s,i,r),n=bh(),e!==null&&!lt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~r,zn(e,t,r)):(we&&n&&hh(t),t.flags|=1,nt(e,t,s,r),t.child)}function ng(e,t,n,s,r){if(e===null){var i=n.type;return typeof i=="function"&&!Lh(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,mw(e,t,i,s,r)):(e=Ja(n.type,null,s,t,t.mode,r),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&r)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:co,n(o,s)&&e.ref===t.ref)return zn(e,t,r)}return t.flags|=1,e=ds(i,s),e.ref=t.ref,e.return=t,t.child=e}function mw(e,t,n,s,r){if(e!==null){var i=e.memoizedProps;if(co(i,s)&&e.ref===t.ref)if(lt=!1,t.pendingProps=s=i,(e.lanes&r)!==0)e.flags&131072&&(lt=!0);else return t.lanes=e.lanes,zn(e,t,r)}return Dd(e,t,n,s,r)}function gw(e,t,n){var s=t.pendingProps,r=s.children,i=e!==null?e.memoizedState:null;if(s.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},pe(_r,ht),ht|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,pe(_r,ht),ht|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=i!==null?i.baseLanes:n,pe(_r,ht),ht|=s}else i!==null?(s=i.baseLanes|n,t.memoizedState=null):s=n,pe(_r,ht),ht|=s;return nt(e,t,r,n),t.child}function yw(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Dd(e,t,n,s,r){var i=dt(n)?Hs:tt.current;return i=Vr(t,i),Rr(t,r),n=Nh(e,t,n,s,i,r),s=bh(),e!==null&&!lt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~r,zn(e,t,r)):(we&&s&&hh(t),t.flags|=1,nt(e,t,n,r),t.child)}function sg(e,t,n,s,r){if(dt(n)){var i=!0;kl(t)}else i=!1;if(Rr(t,r),t.stateNode===null)Xa(e,t),fw(t,n,s),$d(t,n,s,r),s=!0;else if(e===null){var o=t.stateNode,l=t.memoizedProps;o.props=l;var c=o.context,u=n.contextType;typeof u=="object"&&u!==null?u=$t(u):(u=dt(n)?Hs:tt.current,u=Vr(t,u));var d=n.getDerivedStateFromProps,f=typeof d=="function"||typeof o.getSnapshotBeforeUpdate=="function";f||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==s||c!==u)&&Qm(t,o,s,u),Qn=!1;var h=t.memoizedState;o.state=h,El(t,s,o,r),c=t.memoizedState,l!==s||h!==c||ut.current||Qn?(typeof d=="function"&&(Rd(t,n,d,s),c=t.memoizedState),(l=Qn||Xm(t,n,l,s,h,c,u))?(f||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=s,t.memoizedState=c),o.props=s,o.state=c,o.context=u,s=l):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),s=!1)}else{o=t.stateNode,Ux(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Vt(t.type,l),o.props=u,f=t.pendingProps,h=o.context,c=n.contextType,typeof c=="object"&&c!==null?c=$t(c):(c=dt(n)?Hs:tt.current,c=Vr(t,c));var p=n.getDerivedStateFromProps;(d=typeof p=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==f||h!==c)&&Qm(t,o,s,c),Qn=!1,h=t.memoizedState,o.state=h,El(t,s,o,r);var v=t.memoizedState;l!==f||h!==v||ut.current||Qn?(typeof p=="function"&&(Rd(t,n,p,s),v=t.memoizedState),(u=Qn||Xm(t,n,u,s,h,v,c)||!1)?(d||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(s,v,c),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(s,v,c)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=s,t.memoizedState=v),o.props=s,o.state=v,o.context=c,s=u):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),s=!1)}return zd(e,t,n,s,i,r)}function zd(e,t,n,s,r,i){yw(e,t);var o=(t.flags&128)!==0;if(!s&&!o)return r&&Bm(t,n,!1),zn(e,t,i);s=t.stateNode,SE.current=t;var l=o&&typeof n.getDerivedStateFromError!="function"?null:s.render();return t.flags|=1,e!==null&&o?(t.child=Hr(t,e.child,null,i),t.child=Hr(t,null,l,i)):nt(e,t,l,i),t.memoizedState=s.state,r&&Bm(t,n,!0),t.child}function vw(e){var t=e.stateNode;t.pendingContext?Vm(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Vm(e,t.context,!1),_h(e,t.containerInfo)}function rg(e,t,n,s,r){return Br(),mh(r),t.flags|=256,nt(e,t,n,s),t.child}var Od={dehydrated:null,treeContext:null,retryLane:0};function Fd(e){return{baseLanes:e,cachePool:null,transitions:null}}function xw(e,t,n){var s=t.pendingProps,r=je.current,i=!1,o=(t.flags&128)!==0,l;if((l=o)||(l=e!==null&&e.memoizedState===null?!1:(r&2)!==0),l?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(r|=1),pe(je,r&1),e===null)return Md(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=s.children,e=s.fallback,i?(s=t.mode,i=t.child,o={mode:"hidden",children:o},!(s&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=vc(o,s,0,null),e=Os(e,s,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Fd(n),t.memoizedState=Od,e):Th(t,o));if(r=e.memoizedState,r!==null&&(l=r.dehydrated,l!==null))return NE(e,t,o,s,l,r,n);if(i){i=s.fallback,o=t.mode,r=e.child,l=r.sibling;var c={mode:"hidden",children:s.children};return!(o&1)&&t.child!==r?(s=t.child,s.childLanes=0,s.pendingProps=c,t.deletions=null):(s=ds(r,c),s.subtreeFlags=r.subtreeFlags&14680064),l!==null?i=ds(l,i):(i=Os(i,o,n,null),i.flags|=2),i.return=t,s.return=t,s.sibling=i,t.child=s,s=i,i=t.child,o=e.child.memoizedState,o=o===null?Fd(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=Od,s}return i=e.child,e=i.sibling,s=ds(i,{mode:"visible",children:s.children}),!(t.mode&1)&&(s.lanes=n),s.return=t,s.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=s,t.memoizedState=null,s}function Th(e,t){return t=vc({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function va(e,t,n,s){return s!==null&&mh(s),Hr(t,e.child,null,n),e=Th(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function NE(e,t,n,s,r,i,o){if(n)return t.flags&256?(t.flags&=-257,s=vu(Error(Y(422))),va(e,t,o,s)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=s.fallback,r=t.mode,s=vc({mode:"visible",children:s.children},r,0,null),i=Os(i,r,o,null),i.flags|=2,s.return=t,i.return=t,s.sibling=i,t.child=s,t.mode&1&&Hr(t,e.child,null,o),t.child.memoizedState=Fd(o),t.memoizedState=Od,i);if(!(t.mode&1))return va(e,t,o,null);if(r.data==="$!"){if(s=r.nextSibling&&r.nextSibling.dataset,s)var l=s.dgst;return s=l,i=Error(Y(419)),s=vu(i,s,void 0),va(e,t,o,s)}if(l=(o&e.childLanes)!==0,lt||l){if(s=Be,s!==null){switch(o&-o){case 4:r=2;break;case 16:r=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:r=32;break;case 536870912:r=268435456;break;default:r=0}r=r&(s.suspendedLanes|o)?0:r,r!==0&&r!==i.retryLane&&(i.retryLane=r,Dn(e,r),Gt(s,e,r,-1))}return $h(),s=vu(Error(Y(421))),va(e,t,o,s)}return r.data==="$?"?(t.flags|=128,t.child=e.child,t=zE.bind(null,e),r._reactRetry=t,null):(e=i.treeContext,gt=as(r.nextSibling),vt=t,we=!0,Wt=null,e!==null&&(Pt[At++]=Nn,Pt[At++]=bn,Pt[At++]=Ws,Nn=e.id,bn=e.overflow,Ws=t),t=Th(t,s.children),t.flags|=4096,t)}function ig(e,t,n){e.lanes|=t;var s=e.alternate;s!==null&&(s.lanes|=t),Id(e.return,t,n)}function xu(e,t,n,s,r){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:r}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=s,i.tail=n,i.tailMode=r)}function ww(e,t,n){var s=t.pendingProps,r=s.revealOrder,i=s.tail;if(nt(e,t,s.children,n),s=je.current,s&2)s=s&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ig(e,n,t);else if(e.tag===19)ig(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(pe(je,s),!(t.mode&1))t.memoizedState=null;else switch(r){case"forwards":for(n=t.child,r=null;n!==null;)e=n.alternate,e!==null&&Cl(e)===null&&(r=n),n=n.sibling;n=r,n===null?(r=t.child,t.child=null):(r=n.sibling,n.sibling=null),xu(t,!1,r,n,i);break;case"backwards":for(n=null,r=t.child,t.child=null;r!==null;){if(e=r.alternate,e!==null&&Cl(e)===null){t.child=r;break}e=r.sibling,r.sibling=n,n=r,r=e}xu(t,!0,n,null,i);break;case"together":xu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Xa(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function zn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ks|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(Y(153));if(t.child!==null){for(e=t.child,n=ds(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ds(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function bE(e,t,n){switch(t.tag){case 3:vw(t),Br();break;case 5:Kx(t);break;case 1:dt(t.type)&&kl(t);break;case 4:_h(t,t.stateNode.containerInfo);break;case 10:var s=t.type._context,r=t.memoizedProps.value;pe(Nl,s._currentValue),s._currentValue=r;break;case 13:if(s=t.memoizedState,s!==null)return s.dehydrated!==null?(pe(je,je.current&1),t.flags|=128,null):n&t.child.childLanes?xw(e,t,n):(pe(je,je.current&1),e=zn(e,t,n),e!==null?e.sibling:null);pe(je,je.current&1);break;case 19:if(s=(n&t.childLanes)!==0,e.flags&128){if(s)return ww(e,t,n);t.flags|=128}if(r=t.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),pe(je,je.current),s)break;return null;case 22:case 23:return t.lanes=0,gw(e,t,n)}return zn(e,t,n)}var _w,Vd,kw,jw;_w=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Vd=function(){};kw=function(e,t,n,s){var r=e.memoizedProps;if(r!==s){e=t.stateNode,Rs(dn.current);var i=null;switch(n){case"input":r=cd(e,r),s=cd(e,s),i=[];break;case"select":r=be({},r,{value:void 0}),s=be({},s,{value:void 0}),i=[];break;case"textarea":r=fd(e,r),s=fd(e,s),i=[];break;default:typeof r.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=wl)}pd(n,s);var o;n=null;for(u in r)if(!s.hasOwnProperty(u)&&r.hasOwnProperty(u)&&r[u]!=null)if(u==="style"){var l=r[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(no.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in s){var c=s[u];if(l=r!=null?r[u]:void 0,s.hasOwnProperty(u)&&c!==l&&(c!=null||l!=null))if(u==="style")if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(u,n)),n=c;else u==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(i=i||[]).push(u,c)):u==="children"?typeof c!="string"&&typeof c!="number"||(i=i||[]).push(u,""+c):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(no.hasOwnProperty(u)?(c!=null&&u==="onScroll"&&me("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}};jw=function(e,t,n,s){n!==s&&(t.flags|=4)};function wi(e,t){if(!we)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function Qe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,s=0;if(t)for(var r=e.child;r!==null;)n|=r.lanes|r.childLanes,s|=r.subtreeFlags&14680064,s|=r.flags&14680064,r.return=e,r=r.sibling;else for(r=e.child;r!==null;)n|=r.lanes|r.childLanes,s|=r.subtreeFlags,s|=r.flags,r.return=e,r=r.sibling;return e.subtreeFlags|=s,e.childLanes=n,t}function EE(e,t,n){var s=t.pendingProps;switch(ph(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Qe(t),null;case 1:return dt(t.type)&&_l(),Qe(t),null;case 3:return s=t.stateNode,Wr(),ye(ut),ye(tt),jh(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(ga(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Wt!==null&&(Gd(Wt),Wt=null))),Vd(e,t),Qe(t),null;case 5:kh(t);var r=Rs(mo.current);if(n=t.type,e!==null&&t.stateNode!=null)kw(e,t,n,s,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!s){if(t.stateNode===null)throw Error(Y(166));return Qe(t),null}if(e=Rs(dn.current),ga(t)){s=t.stateNode,n=t.type;var i=t.memoizedProps;switch(s[ln]=t,s[ho]=i,e=(t.mode&1)!==0,n){case"dialog":me("cancel",s),me("close",s);break;case"iframe":case"object":case"embed":me("load",s);break;case"video":case"audio":for(r=0;r<Ai.length;r++)me(Ai[r],s);break;case"source":me("error",s);break;case"img":case"image":case"link":me("error",s),me("load",s);break;case"details":me("toggle",s);break;case"input":pm(s,i),me("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!i.multiple},me("invalid",s);break;case"textarea":gm(s,i),me("invalid",s)}pd(n,i),r=null;for(var o in i)if(i.hasOwnProperty(o)){var l=i[o];o==="children"?typeof l=="string"?s.textContent!==l&&(i.suppressHydrationWarning!==!0&&ma(s.textContent,l,e),r=["children",l]):typeof l=="number"&&s.textContent!==""+l&&(i.suppressHydrationWarning!==!0&&ma(s.textContent,l,e),r=["children",""+l]):no.hasOwnProperty(o)&&l!=null&&o==="onScroll"&&me("scroll",s)}switch(n){case"input":aa(s),mm(s,i,!0);break;case"textarea":aa(s),ym(s);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(s.onclick=wl)}s=r,t.updateQueue=s,s!==null&&(t.flags|=4)}else{o=r.nodeType===9?r:r.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Q0(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=o.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=o.createElement(n,{is:s.is}):(e=o.createElement(n),n==="select"&&(o=e,s.multiple?o.multiple=!0:s.size&&(o.size=s.size))):e=o.createElementNS(e,n),e[ln]=t,e[ho]=s,_w(e,t,!1,!1),t.stateNode=e;e:{switch(o=md(n,s),n){case"dialog":me("cancel",e),me("close",e),r=s;break;case"iframe":case"object":case"embed":me("load",e),r=s;break;case"video":case"audio":for(r=0;r<Ai.length;r++)me(Ai[r],e);r=s;break;case"source":me("error",e),r=s;break;case"img":case"image":case"link":me("error",e),me("load",e),r=s;break;case"details":me("toggle",e),r=s;break;case"input":pm(e,s),r=cd(e,s),me("invalid",e);break;case"option":r=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},r=be({},s,{value:void 0}),me("invalid",e);break;case"textarea":gm(e,s),r=fd(e,s),me("invalid",e);break;default:r=s}pd(n,r),l=r;for(i in l)if(l.hasOwnProperty(i)){var c=l[i];i==="style"?ex(e,c):i==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Z0(e,c)):i==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&so(e,c):typeof c=="number"&&so(e,""+c):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(no.hasOwnProperty(i)?c!=null&&i==="onScroll"&&me("scroll",e):c!=null&&Jf(e,i,c,o))}switch(n){case"input":aa(e),mm(e,s,!1);break;case"textarea":aa(e),ym(e);break;case"option":s.value!=null&&e.setAttribute("value",""+hs(s.value));break;case"select":e.multiple=!!s.multiple,i=s.value,i!=null?Pr(e,!!s.multiple,i,!1):s.defaultValue!=null&&Pr(e,!!s.multiple,s.defaultValue,!0);break;default:typeof r.onClick=="function"&&(e.onclick=wl)}switch(n){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Qe(t),null;case 6:if(e&&t.stateNode!=null)jw(e,t,e.memoizedProps,s);else{if(typeof s!="string"&&t.stateNode===null)throw Error(Y(166));if(n=Rs(mo.current),Rs(dn.current),ga(t)){if(s=t.stateNode,n=t.memoizedProps,s[ln]=t,(i=s.nodeValue!==n)&&(e=vt,e!==null))switch(e.tag){case 3:ma(s.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&ma(s.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else s=(n.nodeType===9?n:n.ownerDocument).createTextNode(s),s[ln]=t,t.stateNode=s}return Qe(t),null;case 13:if(ye(je),s=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(we&>!==null&&t.mode&1&&!(t.flags&128))Vx(),Br(),t.flags|=98560,i=!1;else if(i=ga(t),s!==null&&s.dehydrated!==null){if(e===null){if(!i)throw Error(Y(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(Y(317));i[ln]=t}else Br(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Qe(t),i=!1}else Wt!==null&&(Gd(Wt),Wt=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(t.child.flags|=8192,t.mode&1&&(e===null||je.current&1?Oe===0&&(Oe=3):$h())),t.updateQueue!==null&&(t.flags|=4),Qe(t),null);case 4:return Wr(),Vd(e,t),e===null&&uo(t.stateNode.containerInfo),Qe(t),null;case 10:return vh(t.type._context),Qe(t),null;case 17:return dt(t.type)&&_l(),Qe(t),null;case 19:if(ye(je),i=t.memoizedState,i===null)return Qe(t),null;if(s=(t.flags&128)!==0,o=i.rendering,o===null)if(s)wi(i,!1);else{if(Oe!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Cl(e),o!==null){for(t.flags|=128,wi(i,!1),s=o.updateQueue,s!==null&&(t.updateQueue=s,t.flags|=4),t.subtreeFlags=0,s=n,n=t.child;n!==null;)i=n,e=s,i.flags&=14680066,o=i.alternate,o===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,e=o.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return pe(je,je.current&1|2),t.child}e=e.sibling}i.tail!==null&&Re()>Kr&&(t.flags|=128,s=!0,wi(i,!1),t.lanes=4194304)}else{if(!s)if(e=Cl(o),e!==null){if(t.flags|=128,s=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),wi(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!we)return Qe(t),null}else 2*Re()-i.renderingStartTime>Kr&&n!==1073741824&&(t.flags|=128,s=!0,wi(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Re(),t.sibling=null,n=je.current,pe(je,s?n&1|2:n&1),t):(Qe(t),null);case 22:case 23:return Rh(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&t.mode&1?ht&1073741824&&(Qe(t),t.subtreeFlags&6&&(t.flags|=8192)):Qe(t),null;case 24:return null;case 25:return null}throw Error(Y(156,t.tag))}function CE(e,t){switch(ph(t),t.tag){case 1:return dt(t.type)&&_l(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wr(),ye(ut),ye(tt),jh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return kh(t),null;case 13:if(ye(je),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Y(340));Br()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ye(je),null;case 4:return Wr(),null;case 10:return vh(t.type._context),null;case 22:case 23:return Rh(),null;case 24:return null;default:return null}}var xa=!1,Je=!1,TE=typeof WeakSet=="function"?WeakSet:Set,Z=null;function wr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){Pe(e,t,s)}else n.current=null}function Bd(e,t,n){try{n()}catch(s){Pe(e,t,s)}}var og=!1;function PE(e,t){if(Nd=yl,e=Cx(),fh(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var r=s.anchorOffset,i=s.focusNode;s=s.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,f=e,h=null;t:for(;;){for(var p;f!==n||r!==0&&f.nodeType!==3||(l=o+r),f!==i||s!==0&&f.nodeType!==3||(c=o+s),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===e)break t;if(h===n&&++u===r&&(l=o),h===i&&++d===s&&(c=o),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(bd={focusedElem:e,selectionRange:n},yl=!1,Z=t;Z!==null;)if(t=Z,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Z=e;else for(;Z!==null;){t=Z;try{var v=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var _=v.memoizedProps,w=v.memoizedState,m=t.stateNode,y=m.getSnapshotBeforeUpdate(t.elementType===t.type?_:Vt(t.type,_),w);m.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var g=t.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Y(163))}}catch(x){Pe(t,t.return,x)}if(e=t.sibling,e!==null){e.return=t.return,Z=e;break}Z=t.return}return v=og,og=!1,v}function Ui(e,t,n){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var r=s=s.next;do{if((r.tag&e)===e){var i=r.destroy;r.destroy=void 0,i!==void 0&&Bd(t,n,i)}r=r.next}while(r!==s)}}function gc(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function Hd(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Sw(e){var t=e.alternate;t!==null&&(e.alternate=null,Sw(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ln],delete t[ho],delete t[Td],delete t[fE],delete t[hE])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Nw(e){return e.tag===5||e.tag===3||e.tag===4}function ag(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Nw(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Wd(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=wl));else if(s!==4&&(e=e.child,e!==null))for(Wd(e,t,n),e=e.sibling;e!==null;)Wd(e,t,n),e=e.sibling}function Ud(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Ud(e,t,n),e=e.sibling;e!==null;)Ud(e,t,n),e=e.sibling}var He=null,Bt=!1;function Hn(e,t,n){for(n=n.child;n!==null;)bw(e,t,n),n=n.sibling}function bw(e,t,n){if(un&&typeof un.onCommitFiberUnmount=="function")try{un.onCommitFiberUnmount(lc,n)}catch{}switch(n.tag){case 5:Je||wr(n,t);case 6:var s=He,r=Bt;He=null,Hn(e,t,n),He=s,Bt=r,He!==null&&(Bt?(e=He,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):He.removeChild(n.stateNode));break;case 18:He!==null&&(Bt?(e=He,n=n.stateNode,e.nodeType===8?fu(e.parentNode,n):e.nodeType===1&&fu(e,n),ao(e)):fu(He,n.stateNode));break;case 4:s=He,r=Bt,He=n.stateNode.containerInfo,Bt=!0,Hn(e,t,n),He=s,Bt=r;break;case 0:case 11:case 14:case 15:if(!Je&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){r=s=s.next;do{var i=r,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Bd(n,t,o),r=r.next}while(r!==s)}Hn(e,t,n);break;case 1:if(!Je&&(wr(n,t),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(l){Pe(n,t,l)}Hn(e,t,n);break;case 21:Hn(e,t,n);break;case 22:n.mode&1?(Je=(s=Je)||n.memoizedState!==null,Hn(e,t,n),Je=s):Hn(e,t,n);break;default:Hn(e,t,n)}}function lg(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new TE),t.forEach(function(s){var r=OE.bind(null,e,s);n.has(s)||(n.add(s),s.then(r,r))})}}function zt(e,t){var n=t.deletions;if(n!==null)for(var s=0;s<n.length;s++){var r=n[s];try{var i=e,o=t,l=o;e:for(;l!==null;){switch(l.tag){case 5:He=l.stateNode,Bt=!1;break e;case 3:He=l.stateNode.containerInfo,Bt=!0;break e;case 4:He=l.stateNode.containerInfo,Bt=!0;break e}l=l.return}if(He===null)throw Error(Y(160));bw(i,o,r),He=null,Bt=!1;var c=r.alternate;c!==null&&(c.return=null),r.return=null}catch(u){Pe(r,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Ew(t,e),t=t.sibling}function Ew(e,t){var n=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(zt(t,e),tn(e),s&4){try{Ui(3,e,e.return),gc(3,e)}catch(_){Pe(e,e.return,_)}try{Ui(5,e,e.return)}catch(_){Pe(e,e.return,_)}}break;case 1:zt(t,e),tn(e),s&512&&n!==null&&wr(n,n.return);break;case 5:if(zt(t,e),tn(e),s&512&&n!==null&&wr(n,n.return),e.flags&32){var r=e.stateNode;try{so(r,"")}catch(_){Pe(e,e.return,_)}}if(s&4&&(r=e.stateNode,r!=null)){var i=e.memoizedProps,o=n!==null?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&i.type==="radio"&&i.name!=null&&G0(r,i),md(l,o);var u=md(l,i);for(o=0;o<c.length;o+=2){var d=c[o],f=c[o+1];d==="style"?ex(r,f):d==="dangerouslySetInnerHTML"?Z0(r,f):d==="children"?so(r,f):Jf(r,d,f,u)}switch(l){case"input":ud(r,i);break;case"textarea":X0(r,i);break;case"select":var h=r._wrapperState.wasMultiple;r._wrapperState.wasMultiple=!!i.multiple;var p=i.value;p!=null?Pr(r,!!i.multiple,p,!1):h!==!!i.multiple&&(i.defaultValue!=null?Pr(r,!!i.multiple,i.defaultValue,!0):Pr(r,!!i.multiple,i.multiple?[]:"",!1))}r[ho]=i}catch(_){Pe(e,e.return,_)}}break;case 6:if(zt(t,e),tn(e),s&4){if(e.stateNode===null)throw Error(Y(162));r=e.stateNode,i=e.memoizedProps;try{r.nodeValue=i}catch(_){Pe(e,e.return,_)}}break;case 3:if(zt(t,e),tn(e),s&4&&n!==null&&n.memoizedState.isDehydrated)try{ao(t.containerInfo)}catch(_){Pe(e,e.return,_)}break;case 4:zt(t,e),tn(e);break;case 13:zt(t,e),tn(e),r=e.child,r.flags&8192&&(i=r.memoizedState!==null,r.stateNode.isHidden=i,!i||r.alternate!==null&&r.alternate.memoizedState!==null||(Mh=Re())),s&4&&lg(e);break;case 22:if(d=n!==null&&n.memoizedState!==null,e.mode&1?(Je=(u=Je)||d,zt(t,e),Je=u):zt(t,e),tn(e),s&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!d&&e.mode&1)for(Z=e,d=e.child;d!==null;){for(f=Z=d;Z!==null;){switch(h=Z,p=h.child,h.tag){case 0:case 11:case 14:case 15:Ui(4,h,h.return);break;case 1:wr(h,h.return);var v=h.stateNode;if(typeof v.componentWillUnmount=="function"){s=h,n=h.return;try{t=s,v.props=t.memoizedProps,v.state=t.memoizedState,v.componentWillUnmount()}catch(_){Pe(s,n,_)}}break;case 5:wr(h,h.return);break;case 22:if(h.memoizedState!==null){ug(f);continue}}p!==null?(p.return=h,Z=p):ug(f)}d=d.sibling}e:for(d=null,f=e;;){if(f.tag===5){if(d===null){d=f;try{r=f.stateNode,u?(i=r.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(l=f.stateNode,c=f.memoizedProps.style,o=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=J0("display",o))}catch(_){Pe(e,e.return,_)}}}else if(f.tag===6){if(d===null)try{f.stateNode.nodeValue=u?"":f.memoizedProps}catch(_){Pe(e,e.return,_)}}else if((f.tag!==22&&f.tag!==23||f.memoizedState===null||f===e)&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===e)break e;for(;f.sibling===null;){if(f.return===null||f.return===e)break e;d===f&&(d=null),f=f.return}d===f&&(d=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:zt(t,e),tn(e),s&4&&lg(e);break;case 21:break;default:zt(t,e),tn(e)}}function tn(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(Nw(n)){var s=n;break e}n=n.return}throw Error(Y(160))}switch(s.tag){case 5:var r=s.stateNode;s.flags&32&&(so(r,""),s.flags&=-33);var i=ag(e);Ud(e,i,r);break;case 3:case 4:var o=s.stateNode.containerInfo,l=ag(e);Wd(e,l,o);break;default:throw Error(Y(161))}}catch(c){Pe(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function AE(e,t,n){Z=e,Cw(e)}function Cw(e,t,n){for(var s=(e.mode&1)!==0;Z!==null;){var r=Z,i=r.child;if(r.tag===22&&s){var o=r.memoizedState!==null||xa;if(!o){var l=r.alternate,c=l!==null&&l.memoizedState!==null||Je;l=xa;var u=Je;if(xa=o,(Je=c)&&!u)for(Z=r;Z!==null;)o=Z,c=o.child,o.tag===22&&o.memoizedState!==null?dg(r):c!==null?(c.return=o,Z=c):dg(r);for(;i!==null;)Z=i,Cw(i),i=i.sibling;Z=r,xa=l,Je=u}cg(e)}else r.subtreeFlags&8772&&i!==null?(i.return=r,Z=i):cg(e)}}function cg(e){for(;Z!==null;){var t=Z;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Je||gc(5,t);break;case 1:var s=t.stateNode;if(t.flags&4&&!Je)if(n===null)s.componentDidMount();else{var r=t.elementType===t.type?n.memoizedProps:Vt(t.type,n.memoizedProps);s.componentDidUpdate(r,n.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&Ym(t,i,s);break;case 3:var o=t.updateQueue;if(o!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Ym(t,o,n)}break;case 5:var l=t.stateNode;if(n===null&&t.flags&4){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var d=u.memoizedState;if(d!==null){var f=d.dehydrated;f!==null&&ao(f)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(Y(163))}Je||t.flags&512&&Hd(t)}catch(h){Pe(t,t.return,h)}}if(t===e){Z=null;break}if(n=t.sibling,n!==null){n.return=t.return,Z=n;break}Z=t.return}}function ug(e){for(;Z!==null;){var t=Z;if(t===e){Z=null;break}var n=t.sibling;if(n!==null){n.return=t.return,Z=n;break}Z=t.return}}function dg(e){for(;Z!==null;){var t=Z;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{gc(4,t)}catch(c){Pe(t,n,c)}break;case 1:var s=t.stateNode;if(typeof s.componentDidMount=="function"){var r=t.return;try{s.componentDidMount()}catch(c){Pe(t,r,c)}}var i=t.return;try{Hd(t)}catch(c){Pe(t,i,c)}break;case 5:var o=t.return;try{Hd(t)}catch(c){Pe(t,o,c)}}}catch(c){Pe(t,t.return,c)}if(t===e){Z=null;break}var l=t.sibling;if(l!==null){l.return=t.return,Z=l;break}Z=t.return}}var ME=Math.ceil,Al=Bn.ReactCurrentDispatcher,Ph=Bn.ReactCurrentOwner,It=Bn.ReactCurrentBatchConfig,ce=0,Be=null,Le=null,qe=0,ht=0,_r=vs(0),Oe=0,xo=null,Ks=0,yc=0,Ah=0,Ki=null,at=null,Mh=0,Kr=1/0,kn=null,Ml=!1,Kd=null,cs=null,wa=!1,ss=null,Il=0,Yi=0,Yd=null,Qa=-1,Za=0;function rt(){return ce&6?Re():Qa!==-1?Qa:Qa=Re()}function us(e){return e.mode&1?ce&2&&qe!==0?qe&-qe:mE.transition!==null?(Za===0&&(Za=fx()),Za):(e=he,e!==0||(e=window.event,e=e===void 0?16:xx(e.type)),e):1}function Gt(e,t,n,s){if(50<Yi)throw Yi=0,Yd=null,Error(Y(185));Oo(e,n,s),(!(ce&2)||e!==Be)&&(e===Be&&(!(ce&2)&&(yc|=n),Oe===4&&Jn(e,qe)),ft(e,s),n===1&&ce===0&&!(t.mode&1)&&(Kr=Re()+500,hc&&xs()))}function ft(e,t){var n=e.callbackNode;mb(e,t);var s=gl(e,e===Be?qe:0);if(s===0)n!==null&&wm(n),e.callbackNode=null,e.callbackPriority=0;else if(t=s&-s,e.callbackPriority!==t){if(n!=null&&wm(n),t===1)e.tag===0?pE(fg.bind(null,e)):zx(fg.bind(null,e)),uE(function(){!(ce&6)&&xs()}),n=null;else{switch(hx(s)){case 1:n=rh;break;case 4:n=ux;break;case 16:n=ml;break;case 536870912:n=dx;break;default:n=ml}n=Lw(n,Tw.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function Tw(e,t){if(Qa=-1,Za=0,ce&6)throw Error(Y(327));var n=e.callbackNode;if($r()&&e.callbackNode!==n)return null;var s=gl(e,e===Be?qe:0);if(s===0)return null;if(s&30||s&e.expiredLanes||t)t=Rl(e,s);else{t=s;var r=ce;ce|=2;var i=Aw();(Be!==e||qe!==t)&&(kn=null,Kr=Re()+500,zs(e,t));do try{$E();break}catch(l){Pw(e,l)}while(!0);yh(),Al.current=i,ce=r,Le!==null?t=0:(Be=null,qe=0,t=Oe)}if(t!==0){if(t===2&&(r=wd(e),r!==0&&(s=r,t=qd(e,r))),t===1)throw n=xo,zs(e,0),Jn(e,s),ft(e,Re()),n;if(t===6)Jn(e,s);else{if(r=e.current.alternate,!(s&30)&&!IE(r)&&(t=Rl(e,s),t===2&&(i=wd(e),i!==0&&(s=i,t=qd(e,i))),t===1))throw n=xo,zs(e,0),Jn(e,s),ft(e,Re()),n;switch(e.finishedWork=r,e.finishedLanes=s,t){case 0:case 1:throw Error(Y(345));case 2:Es(e,at,kn);break;case 3:if(Jn(e,s),(s&130023424)===s&&(t=Mh+500-Re(),10<t)){if(gl(e,0)!==0)break;if(r=e.suspendedLanes,(r&s)!==s){rt(),e.pingedLanes|=e.suspendedLanes&r;break}e.timeoutHandle=Cd(Es.bind(null,e,at,kn),t);break}Es(e,at,kn);break;case 4:if(Jn(e,s),(s&4194240)===s)break;for(t=e.eventTimes,r=-1;0<s;){var o=31-qt(s);i=1<<o,o=t[o],o>r&&(r=o),s&=~i}if(s=r,s=Re()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*ME(s/1960))-s,10<s){e.timeoutHandle=Cd(Es.bind(null,e,at,kn),s);break}Es(e,at,kn);break;case 5:Es(e,at,kn);break;default:throw Error(Y(329))}}}return ft(e,Re()),e.callbackNode===n?Tw.bind(null,e):null}function qd(e,t){var n=Ki;return e.current.memoizedState.isDehydrated&&(zs(e,t).flags|=256),e=Rl(e,t),e!==2&&(t=at,at=n,t!==null&&Gd(t)),e}function Gd(e){at===null?at=e:at.push.apply(at,e)}function IE(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var s=0;s<n.length;s++){var r=n[s],i=r.getSnapshot;r=r.value;try{if(!Xt(i(),r))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Jn(e,t){for(t&=~Ah,t&=~yc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),s=1<<n;e[n]=-1,t&=~s}}function fg(e){if(ce&6)throw Error(Y(327));$r();var t=gl(e,0);if(!(t&1))return ft(e,Re()),null;var n=Rl(e,t);if(e.tag!==0&&n===2){var s=wd(e);s!==0&&(t=s,n=qd(e,s))}if(n===1)throw n=xo,zs(e,0),Jn(e,t),ft(e,Re()),n;if(n===6)throw Error(Y(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Es(e,at,kn),ft(e,Re()),null}function Ih(e,t){var n=ce;ce|=1;try{return e(t)}finally{ce=n,ce===0&&(Kr=Re()+500,hc&&xs())}}function Ys(e){ss!==null&&ss.tag===0&&!(ce&6)&&$r();var t=ce;ce|=1;var n=It.transition,s=he;try{if(It.transition=null,he=1,e)return e()}finally{he=s,It.transition=n,ce=t,!(ce&6)&&xs()}}function Rh(){ht=_r.current,ye(_r)}function zs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,cE(n)),Le!==null)for(n=Le.return;n!==null;){var s=n;switch(ph(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&_l();break;case 3:Wr(),ye(ut),ye(tt),jh();break;case 5:kh(s);break;case 4:Wr();break;case 13:ye(je);break;case 19:ye(je);break;case 10:vh(s.type._context);break;case 22:case 23:Rh()}n=n.return}if(Be=e,Le=e=ds(e.current,null),qe=ht=t,Oe=0,xo=null,Ah=yc=Ks=0,at=Ki=null,Is!==null){for(t=0;t<Is.length;t++)if(n=Is[t],s=n.interleaved,s!==null){n.interleaved=null;var r=s.next,i=n.pending;if(i!==null){var o=i.next;i.next=r,s.next=o}n.pending=s}Is=null}return e}function Pw(e,t){do{var n=Le;try{if(yh(),qa.current=Pl,Tl){for(var s=Ne.memoizedState;s!==null;){var r=s.queue;r!==null&&(r.pending=null),s=s.next}Tl=!1}if(Us=0,Ve=ze=Ne=null,Wi=!1,go=0,Ph.current=null,n===null||n.return===null){Oe=1,xo=t,Le=null;break}e:{var i=e,o=n.return,l=n,c=t;if(t=qe,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var u=c,d=l,f=d.tag;if(!(d.mode&1)&&(f===0||f===11||f===15)){var h=d.alternate;h?(d.updateQueue=h.updateQueue,d.memoizedState=h.memoizedState,d.lanes=h.lanes):(d.updateQueue=null,d.memoizedState=null)}var p=Jm(o);if(p!==null){p.flags&=-257,eg(p,o,l,i,t),p.mode&1&&Zm(i,u,t),t=p,c=u;var v=t.updateQueue;if(v===null){var _=new Set;_.add(c),t.updateQueue=_}else v.add(c);break e}else{if(!(t&1)){Zm(i,u,t),$h();break e}c=Error(Y(426))}}else if(we&&l.mode&1){var w=Jm(o);if(w!==null){!(w.flags&65536)&&(w.flags|=256),eg(w,o,l,i,t),mh(Ur(c,l));break e}}i=c=Ur(c,l),Oe!==4&&(Oe=2),Ki===null?Ki=[i]:Ki.push(i),i=o;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var m=hw(i,c,t);Km(i,m);break e;case 1:l=c;var y=i.type,g=i.stateNode;if(!(i.flags&128)&&(typeof y.getDerivedStateFromError=="function"||g!==null&&typeof g.componentDidCatch=="function"&&(cs===null||!cs.has(g)))){i.flags|=65536,t&=-t,i.lanes|=t;var x=pw(i,l,t);Km(i,x);break e}}i=i.return}while(i!==null)}Iw(n)}catch(k){t=k,Le===n&&n!==null&&(Le=n=n.return);continue}break}while(!0)}function Aw(){var e=Al.current;return Al.current=Pl,e===null?Pl:e}function $h(){(Oe===0||Oe===3||Oe===2)&&(Oe=4),Be===null||!(Ks&268435455)&&!(yc&268435455)||Jn(Be,qe)}function Rl(e,t){var n=ce;ce|=2;var s=Aw();(Be!==e||qe!==t)&&(kn=null,zs(e,t));do try{RE();break}catch(r){Pw(e,r)}while(!0);if(yh(),ce=n,Al.current=s,Le!==null)throw Error(Y(261));return Be=null,qe=0,Oe}function RE(){for(;Le!==null;)Mw(Le)}function $E(){for(;Le!==null&&!ob();)Mw(Le)}function Mw(e){var t=$w(e.alternate,e,ht);e.memoizedProps=e.pendingProps,t===null?Iw(e):Le=t,Ph.current=null}function Iw(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=CE(n,t),n!==null){n.flags&=32767,Le=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Oe=6,Le=null;return}}else if(n=EE(n,t,ht),n!==null){Le=n;return}if(t=t.sibling,t!==null){Le=t;return}Le=t=e}while(t!==null);Oe===0&&(Oe=5)}function Es(e,t,n){var s=he,r=It.transition;try{It.transition=null,he=1,LE(e,t,n,s)}finally{It.transition=r,he=s}return null}function LE(e,t,n,s){do $r();while(ss!==null);if(ce&6)throw Error(Y(327));n=e.finishedWork;var r=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(Y(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(gb(e,i),e===Be&&(Le=Be=null,qe=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||wa||(wa=!0,Lw(ml,function(){return $r(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=It.transition,It.transition=null;var o=he;he=1;var l=ce;ce|=4,Ph.current=null,PE(e,n),Ew(n,e),nE(bd),yl=!!Nd,bd=Nd=null,e.current=n,AE(n),ab(),ce=l,he=o,It.transition=i}else e.current=n;if(wa&&(wa=!1,ss=e,Il=r),i=e.pendingLanes,i===0&&(cs=null),ub(n.stateNode),ft(e,Re()),t!==null)for(s=e.onRecoverableError,n=0;n<t.length;n++)r=t[n],s(r.value,{componentStack:r.stack,digest:r.digest});if(Ml)throw Ml=!1,e=Kd,Kd=null,e;return Il&1&&e.tag!==0&&$r(),i=e.pendingLanes,i&1?e===Yd?Yi++:(Yi=0,Yd=e):Yi=0,xs(),null}function $r(){if(ss!==null){var e=hx(Il),t=It.transition,n=he;try{if(It.transition=null,he=16>e?16:e,ss===null)var s=!1;else{if(e=ss,ss=null,Il=0,ce&6)throw Error(Y(331));var r=ce;for(ce|=4,Z=e.current;Z!==null;){var i=Z,o=i.child;if(Z.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c<l.length;c++){var u=l[c];for(Z=u;Z!==null;){var d=Z;switch(d.tag){case 0:case 11:case 15:Ui(8,d,i)}var f=d.child;if(f!==null)f.return=d,Z=f;else for(;Z!==null;){d=Z;var h=d.sibling,p=d.return;if(Sw(d),d===u){Z=null;break}if(h!==null){h.return=p,Z=h;break}Z=p}}}var v=i.alternate;if(v!==null){var _=v.child;if(_!==null){v.child=null;do{var w=_.sibling;_.sibling=null,_=w}while(_!==null)}}Z=i}}if(i.subtreeFlags&2064&&o!==null)o.return=i,Z=o;else e:for(;Z!==null;){if(i=Z,i.flags&2048)switch(i.tag){case 0:case 11:case 15:Ui(9,i,i.return)}var m=i.sibling;if(m!==null){m.return=i.return,Z=m;break e}Z=i.return}}var y=e.current;for(Z=y;Z!==null;){o=Z;var g=o.child;if(o.subtreeFlags&2064&&g!==null)g.return=o,Z=g;else e:for(o=y;Z!==null;){if(l=Z,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:gc(9,l)}}catch(k){Pe(l,l.return,k)}if(l===o){Z=null;break e}var x=l.sibling;if(x!==null){x.return=l.return,Z=x;break e}Z=l.return}}if(ce=r,xs(),un&&typeof un.onPostCommitFiberRoot=="function")try{un.onPostCommitFiberRoot(lc,e)}catch{}s=!0}return s}finally{he=n,It.transition=t}}return!1}function hg(e,t,n){t=Ur(n,t),t=hw(e,t,1),e=ls(e,t,1),t=rt(),e!==null&&(Oo(e,1,t),ft(e,t))}function Pe(e,t,n){if(e.tag===3)hg(e,e,n);else for(;t!==null;){if(t.tag===3){hg(t,e,n);break}else if(t.tag===1){var s=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(cs===null||!cs.has(s))){e=Ur(n,e),e=pw(t,e,1),t=ls(t,e,1),e=rt(),t!==null&&(Oo(t,1,e),ft(t,e));break}}t=t.return}}function DE(e,t,n){var s=e.pingCache;s!==null&&s.delete(t),t=rt(),e.pingedLanes|=e.suspendedLanes&n,Be===e&&(qe&n)===n&&(Oe===4||Oe===3&&(qe&130023424)===qe&&500>Re()-Mh?zs(e,0):Ah|=n),ft(e,t)}function Rw(e,t){t===0&&(e.mode&1?(t=ua,ua<<=1,!(ua&130023424)&&(ua=4194304)):t=1);var n=rt();e=Dn(e,t),e!==null&&(Oo(e,t,n),ft(e,n))}function zE(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Rw(e,n)}function OE(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,r=e.memoizedState;r!==null&&(n=r.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(Y(314))}s!==null&&s.delete(t),Rw(e,n)}var $w;$w=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ut.current)lt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return lt=!1,bE(e,t,n);lt=!!(e.flags&131072)}else lt=!1,we&&t.flags&1048576&&Ox(t,Sl,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;Xa(e,t),e=t.pendingProps;var r=Vr(t,tt.current);Rr(t,n),r=Nh(null,t,s,e,r,n);var i=bh();return t.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,dt(s)?(i=!0,kl(t)):i=!1,t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,wh(t),r.updater=mc,t.stateNode=r,r._reactInternals=t,$d(t,s,e,n),t=zd(null,t,s,!0,i,n)):(t.tag=0,we&&i&&hh(t),nt(null,t,r,n),t=t.child),t;case 16:s=t.elementType;e:{switch(Xa(e,t),e=t.pendingProps,r=s._init,s=r(s._payload),t.type=s,r=t.tag=VE(s),e=Vt(s,e),r){case 0:t=Dd(null,t,s,e,n);break e;case 1:t=sg(null,t,s,e,n);break e;case 11:t=tg(null,t,s,e,n);break e;case 14:t=ng(null,t,s,Vt(s.type,e),n);break e}throw Error(Y(306,s,""))}return t;case 0:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Vt(s,r),Dd(e,t,s,r,n);case 1:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Vt(s,r),sg(e,t,s,r,n);case 3:e:{if(vw(t),e===null)throw Error(Y(387));s=t.pendingProps,i=t.memoizedState,r=i.element,Ux(e,t),El(t,s,null,n);var o=t.memoizedState;if(s=o.element,i.isDehydrated)if(i={element:s,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){r=Ur(Error(Y(423)),t),t=rg(e,t,s,n,r);break e}else if(s!==r){r=Ur(Error(Y(424)),t),t=rg(e,t,s,n,r);break e}else for(gt=as(t.stateNode.containerInfo.firstChild),vt=t,we=!0,Wt=null,n=Hx(t,null,s,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Br(),s===r){t=zn(e,t,n);break e}nt(e,t,s,n)}t=t.child}return t;case 5:return Kx(t),e===null&&Md(t),s=t.type,r=t.pendingProps,i=e!==null?e.memoizedProps:null,o=r.children,Ed(s,r)?o=null:i!==null&&Ed(s,i)&&(t.flags|=32),yw(e,t),nt(e,t,o,n),t.child;case 6:return e===null&&Md(t),null;case 13:return xw(e,t,n);case 4:return _h(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=Hr(t,null,s,n):nt(e,t,s,n),t.child;case 11:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Vt(s,r),tg(e,t,s,r,n);case 7:return nt(e,t,t.pendingProps,n),t.child;case 8:return nt(e,t,t.pendingProps.children,n),t.child;case 12:return nt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,r=t.pendingProps,i=t.memoizedProps,o=r.value,pe(Nl,s._currentValue),s._currentValue=o,i!==null)if(Xt(i.value,o)){if(i.children===r.children&&!ut.current){t=zn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===s){if(i.tag===1){c=Pn(-1,n&-n),c.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),Id(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(Y(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Id(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}nt(e,t,r.children,n),t=t.child}return t;case 9:return r=t.type,s=t.pendingProps.children,Rr(t,n),r=$t(r),s=s(r),t.flags|=1,nt(e,t,s,n),t.child;case 14:return s=t.type,r=Vt(s,t.pendingProps),r=Vt(s.type,r),ng(e,t,s,r,n);case 15:return mw(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Vt(s,r),Xa(e,t),t.tag=1,dt(s)?(e=!0,kl(t)):e=!1,Rr(t,n),fw(t,s,r),$d(t,s,r,n),zd(null,t,s,!0,e,n);case 19:return ww(e,t,n);case 22:return gw(e,t,n)}throw Error(Y(156,t.tag))};function Lw(e,t){return cx(e,t)}function FE(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mt(e,t,n,s){return new FE(e,t,n,s)}function Lh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function VE(e){if(typeof e=="function")return Lh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===th)return 11;if(e===nh)return 14}return 2}function ds(e,t){var n=e.alternate;return n===null?(n=Mt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ja(e,t,n,s,r,i){var o=2;if(s=e,typeof e=="function")Lh(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case dr:return Os(n.children,r,i,t);case eh:o=8,r|=8;break;case id:return e=Mt(12,n,t,r|2),e.elementType=id,e.lanes=i,e;case od:return e=Mt(13,n,t,r),e.elementType=od,e.lanes=i,e;case ad:return e=Mt(19,n,t,r),e.elementType=ad,e.lanes=i,e;case K0:return vc(n,r,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case W0:o=10;break e;case U0:o=9;break e;case th:o=11;break e;case nh:o=14;break e;case Xn:o=16,s=null;break e}throw Error(Y(130,e==null?e:typeof e,""))}return t=Mt(o,n,t,r),t.elementType=e,t.type=s,t.lanes=i,t}function Os(e,t,n,s){return e=Mt(7,e,s,t),e.lanes=n,e}function vc(e,t,n,s){return e=Mt(22,e,s,t),e.elementType=K0,e.lanes=n,e.stateNode={isHidden:!1},e}function wu(e,t,n){return e=Mt(6,e,null,t),e.lanes=n,e}function _u(e,t,n){return t=Mt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function BE(e,t,n,s,r){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=tu(0),this.expirationTimes=tu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=tu(0),this.identifierPrefix=s,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Dh(e,t,n,s,r,i,o,l,c){return e=new BE(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Mt(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},wh(i),e}function HE(e,t,n){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ur,key:s==null?null:""+s,children:e,containerInfo:t,implementation:n}}function Dw(e){if(!e)return ps;e=e._reactInternals;e:{if(tr(e)!==e||e.tag!==1)throw Error(Y(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(dt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(Y(171))}if(e.tag===1){var n=e.type;if(dt(n))return Dx(e,n,t)}return t}function zw(e,t,n,s,r,i,o,l,c){return e=Dh(n,s,!0,e,r,i,o,l,c),e.context=Dw(null),n=e.current,s=rt(),r=us(n),i=Pn(s,r),i.callback=t??null,ls(n,i,r),e.current.lanes=r,Oo(e,r,s),ft(e,s),e}function xc(e,t,n,s){var r=t.current,i=rt(),o=us(r);return n=Dw(n),t.context===null?t.context=n:t.pendingContext=n,t=Pn(i,o),t.payload={element:e},s=s===void 0?null:s,s!==null&&(t.callback=s),e=ls(r,t,o),e!==null&&(Gt(e,r,o,i),Ya(e,r,o)),o}function $l(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function pg(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function zh(e,t){pg(e,t),(e=e.alternate)&&pg(e,t)}function WE(){return null}var Ow=typeof reportError=="function"?reportError:function(e){console.error(e)};function Oh(e){this._internalRoot=e}wc.prototype.render=Oh.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(Y(409));xc(e,t,null,null)};wc.prototype.unmount=Oh.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Ys(function(){xc(null,e,null,null)}),t[Ln]=null}};function wc(e){this._internalRoot=e}wc.prototype.unstable_scheduleHydration=function(e){if(e){var t=gx();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Zn.length&&t!==0&&t<Zn[n].priority;n++);Zn.splice(n,0,e),n===0&&vx(e)}};function Fh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function _c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function mg(){}function UE(e,t,n,s,r){if(r){if(typeof s=="function"){var i=s;s=function(){var u=$l(o);i.call(u)}}var o=zw(t,s,e,0,null,!1,!1,"",mg);return e._reactRootContainer=o,e[Ln]=o.current,uo(e.nodeType===8?e.parentNode:e),Ys(),o}for(;r=e.lastChild;)e.removeChild(r);if(typeof s=="function"){var l=s;s=function(){var u=$l(c);l.call(u)}}var c=Dh(e,0,!1,null,null,!1,!1,"",mg);return e._reactRootContainer=c,e[Ln]=c.current,uo(e.nodeType===8?e.parentNode:e),Ys(function(){xc(t,c,n,s)}),c}function kc(e,t,n,s,r){var i=n._reactRootContainer;if(i){var o=i;if(typeof r=="function"){var l=r;r=function(){var c=$l(o);l.call(c)}}xc(t,o,e,r)}else o=UE(n,t,e,r,s);return $l(o)}px=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Pi(t.pendingLanes);n!==0&&(ih(t,n|1),ft(t,Re()),!(ce&6)&&(Kr=Re()+500,xs()))}break;case 13:Ys(function(){var s=Dn(e,1);if(s!==null){var r=rt();Gt(s,e,1,r)}}),zh(e,1)}};oh=function(e){if(e.tag===13){var t=Dn(e,134217728);if(t!==null){var n=rt();Gt(t,e,134217728,n)}zh(e,134217728)}};mx=function(e){if(e.tag===13){var t=us(e),n=Dn(e,t);if(n!==null){var s=rt();Gt(n,e,t,s)}zh(e,t)}};gx=function(){return he};yx=function(e,t){var n=he;try{return he=e,t()}finally{he=n}};yd=function(e,t,n){switch(t){case"input":if(ud(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var s=n[t];if(s!==e&&s.form===e.form){var r=fc(s);if(!r)throw Error(Y(90));q0(s),ud(s,r)}}}break;case"textarea":X0(e,n);break;case"select":t=n.value,t!=null&&Pr(e,!!n.multiple,t,!1)}};sx=Ih;rx=Ys;var KE={usingClientEntryPoint:!1,Events:[Vo,mr,fc,tx,nx,Ih]},_i={findFiberByHostInstance:Ms,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},YE={bundleType:_i.bundleType,version:_i.version,rendererPackageName:_i.rendererPackageName,rendererConfig:_i.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Bn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=ax(e),e===null?null:e.stateNode},findFiberByHostInstance:_i.findFiberByHostInstance||WE,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var _a=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!_a.isDisabled&&_a.supportsFiber)try{lc=_a.inject(YE),un=_a}catch{}}jt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=KE;jt.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Fh(t))throw Error(Y(200));return HE(e,t,null,n)};jt.createRoot=function(e,t){if(!Fh(e))throw Error(Y(299));var n=!1,s="",r=Ow;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(s=t.identifierPrefix),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=Dh(e,1,!1,null,null,n,!1,s,r),e[Ln]=t.current,uo(e.nodeType===8?e.parentNode:e),new Oh(t)};jt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(Y(188)):(e=Object.keys(e).join(","),Error(Y(268,e)));return e=ax(t),e=e===null?null:e.stateNode,e};jt.flushSync=function(e){return Ys(e)};jt.hydrate=function(e,t,n){if(!_c(t))throw Error(Y(200));return kc(null,e,t,!0,n)};jt.hydrateRoot=function(e,t,n){if(!Fh(e))throw Error(Y(405));var s=n!=null&&n.hydratedSources||null,r=!1,i="",o=Ow;if(n!=null&&(n.unstable_strictMode===!0&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(o=n.onRecoverableError)),t=zw(t,null,e,1,n??null,r,!1,i,o),e[Ln]=t.current,uo(e),s)for(e=0;e<s.length;e++)n=s[e],r=n._getVersion,r=r(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,r]:t.mutableSourceEagerHydrationData.push(n,r);return new wc(t)};jt.render=function(e,t,n){if(!_c(t))throw Error(Y(200));return kc(null,e,t,!1,n)};jt.unmountComponentAtNode=function(e){if(!_c(e))throw Error(Y(40));return e._reactRootContainer?(Ys(function(){kc(null,null,e,!1,function(){e._reactRootContainer=null,e[Ln]=null})}),!0):!1};jt.unstable_batchedUpdates=Ih;jt.unstable_renderSubtreeIntoContainer=function(e,t,n,s){if(!_c(n))throw Error(Y(200));if(e==null||e._reactInternals===void 0)throw Error(Y(38));return kc(e,t,n,!1,s)};jt.version="18.3.1-next-f1338f8080-20240426";function Fw(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Fw)}catch(e){console.error(e)}}Fw(),F0.exports=jt;var qE=F0.exports,Vw,gg=qE;Vw=gg.createRoot,gg.hydrateRoot;const Vh=S.createContext({});function Bh(e){const t=S.useRef(null);return t.current===null&&(t.current=e()),t.current}const jc=S.createContext(null),Hh=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class GE extends S.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const s=this.props.sizeRef.current;s.height=n.offsetHeight||0,s.width=n.offsetWidth||0,s.top=n.offsetTop,s.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function XE({children:e,isPresent:t}){const n=S.useId(),s=S.useRef(null),r=S.useRef({width:0,height:0,top:0,left:0}),{nonce:i}=S.useContext(Hh);return S.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:u}=r.current;if(t||!s.current||!o||!l)return;s.current.dataset.motionPopId=n;const d=document.createElement("style");return i&&(d.nonce=i),document.head.appendChild(d),d.sheet&&d.sheet.insertRule(`
|
|
41
|
+
[data-motion-pop-id="${n}"] {
|
|
42
|
+
position: absolute !important;
|
|
43
|
+
width: ${o}px !important;
|
|
44
|
+
height: ${l}px !important;
|
|
45
|
+
top: ${c}px !important;
|
|
46
|
+
left: ${u}px !important;
|
|
47
|
+
}
|
|
48
|
+
`),()=>{document.head.removeChild(d)}},[t]),a.jsx(GE,{isPresent:t,childRef:s,sizeRef:r,children:S.cloneElement(e,{ref:s})})}const QE=({children:e,initial:t,isPresent:n,onExitComplete:s,custom:r,presenceAffectsLayout:i,mode:o})=>{const l=Bh(ZE),c=S.useId(),u=S.useCallback(f=>{l.set(f,!0);for(const h of l.values())if(!h)return;s&&s()},[l,s]),d=S.useMemo(()=>({id:c,initial:t,isPresent:n,custom:r,onExitComplete:u,register:f=>(l.set(f,!1),()=>l.delete(f))}),i?[Math.random(),u]:[n,u]);return S.useMemo(()=>{l.forEach((f,h)=>l.set(h,!1))},[n]),S.useEffect(()=>{!n&&!l.size&&s&&s()},[n]),o==="popLayout"&&(e=a.jsx(XE,{isPresent:n,children:e})),a.jsx(jc.Provider,{value:d,children:e})};function ZE(){return new Map}function Bw(e=!0){const t=S.useContext(jc);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:s,register:r}=t,i=S.useId();S.useEffect(()=>{e&&r(i)},[e]);const o=S.useCallback(()=>e&&s&&s(i),[i,s,e]);return!n&&s?[!1,o]:[!0]}const ka=e=>e.key||"";function yg(e){const t=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&t.push(n)}),t}const Wh=typeof window<"u",Hw=Wh?S.useLayoutEffect:S.useEffect,qi=({children:e,custom:t,initial:n=!0,onExitComplete:s,presenceAffectsLayout:r=!0,mode:i="sync",propagate:o=!1})=>{const[l,c]=Bw(o),u=S.useMemo(()=>yg(e),[e]),d=o&&!l?[]:u.map(ka),f=S.useRef(!0),h=S.useRef(u),p=Bh(()=>new Map),[v,_]=S.useState(u),[w,m]=S.useState(u);Hw(()=>{f.current=!1,h.current=u;for(let x=0;x<w.length;x++){const k=ka(w[x]);d.includes(k)?p.delete(k):p.get(k)!==!0&&p.set(k,!1)}},[w,d.length,d.join("-")]);const y=[];if(u!==v){let x=[...u];for(let k=0;k<w.length;k++){const j=w[k],E=ka(j);d.includes(E)||(x.splice(k,0,j),y.push(j))}i==="wait"&&y.length&&(x=y),m(yg(x)),_(u);return}const{forceRender:g}=S.useContext(Vh);return a.jsx(a.Fragment,{children:w.map(x=>{const k=ka(x),j=o&&!l?!1:u===w||d.includes(k),E=()=>{if(p.has(k))p.set(k,!0);else return;let b=!0;p.forEach(P=>{P||(b=!1)}),b&&(g==null||g(),m(h.current),o&&(c==null||c()),s&&s())};return a.jsx(QE,{isPresent:j,initial:!f.current||n?void 0:!1,custom:j?void 0:t,presenceAffectsLayout:r,mode:i,onExitComplete:j?void 0:E,children:x},k)})})},xt=e=>e;let Ww=xt;const JE={useManualTiming:!1};function eC(e){let t=new Set,n=new Set,s=!1,r=!1;const i=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(u){i.has(u)&&(c.schedule(u),e()),u(o)}const c={schedule:(u,d=!1,f=!1)=>{const p=f&&s?t:n;return d&&i.add(u),p.has(u)||p.add(u),u},cancel:u=>{n.delete(u),i.delete(u)},process:u=>{if(o=u,s){r=!0;return}s=!0,[t,n]=[n,t],t.forEach(l),t.clear(),s=!1,r&&(r=!1,c.process(u))}};return c}const ja=["read","resolveKeyframes","update","preRender","render","postRender"],tC=40;function Uw(e,t){let n=!1,s=!0;const r={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,o=ja.reduce((m,y)=>(m[y]=eC(i),m),{}),{read:l,resolveKeyframes:c,update:u,preRender:d,render:f,postRender:h}=o,p=()=>{const m=performance.now();n=!1,r.delta=s?1e3/60:Math.max(Math.min(m-r.timestamp,tC),1),r.timestamp=m,r.isProcessing=!0,l.process(r),c.process(r),u.process(r),d.process(r),f.process(r),h.process(r),r.isProcessing=!1,n&&t&&(s=!1,e(p))},v=()=>{n=!0,s=!0,r.isProcessing||e(p)};return{schedule:ja.reduce((m,y)=>{const g=o[y];return m[y]=(x,k=!1,j=!1)=>(n||v(),g.schedule(x,k,j)),m},{}),cancel:m=>{for(let y=0;y<ja.length;y++)o[ja[y]].cancel(m)},state:r,steps:o}}const{schedule:ve,cancel:ms,state:Ue,steps:ku}=Uw(typeof requestAnimationFrame<"u"?requestAnimationFrame:xt,!0),Kw=S.createContext({strict:!1}),vg={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Yr={};for(const e in vg)Yr[e]={isEnabled:t=>vg[e].some(n=>!!t[n])};function nC(e){for(const t in e)Yr[t]={...Yr[t],...e[t]}}const sC=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Ll(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||sC.has(e)}let Yw=e=>!Ll(e);function rC(e){e&&(Yw=t=>t.startsWith("on")?!Ll(t):e(t))}try{rC(require("@emotion/is-prop-valid").default)}catch{}function iC(e,t,n){const s={};for(const r in e)r==="values"&&typeof e.values=="object"||(Yw(r)||n===!0&&Ll(r)||!t&&!Ll(r)||e.draggable&&r.startsWith("onDrag"))&&(s[r]=e[r]);return s}function oC(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...s)=>e(...s);return new Proxy(n,{get:(s,r)=>r==="create"?e:(t.has(r)||t.set(r,e(r)),t.get(r))})}const Sc=S.createContext({});function wo(e){return typeof e=="string"||Array.isArray(e)}function Nc(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Uh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Kh=["initial",...Uh];function bc(e){return Nc(e.animate)||Kh.some(t=>wo(e[t]))}function qw(e){return!!(bc(e)||e.variants)}function aC(e,t){if(bc(e)){const{initial:n,animate:s}=e;return{initial:n===!1||wo(n)?n:void 0,animate:wo(s)?s:void 0}}return e.inherit!==!1?t:{}}function lC(e){const{initial:t,animate:n}=aC(e,S.useContext(Sc));return S.useMemo(()=>({initial:t,animate:n}),[xg(t),xg(n)])}function xg(e){return Array.isArray(e)?e.join(" "):e}const cC=Symbol.for("motionComponentSymbol");function kr(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function uC(e,t,n){return S.useCallback(s=>{s&&e.onMount&&e.onMount(s),t&&(s?t.mount(s):t.unmount()),n&&(typeof n=="function"?n(s):kr(n)&&(n.current=s))},[t])}const Yh=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),dC="framerAppearId",Gw="data-"+Yh(dC),{schedule:qh}=Uw(queueMicrotask,!1),Xw=S.createContext({});function fC(e,t,n,s,r){var i,o;const{visualElement:l}=S.useContext(Sc),c=S.useContext(Kw),u=S.useContext(jc),d=S.useContext(Hh).reducedMotion,f=S.useRef(null);s=s||c.renderer,!f.current&&s&&(f.current=s(e,{visualState:t,parent:l,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:d}));const h=f.current,p=S.useContext(Xw);h&&!h.projection&&r&&(h.type==="html"||h.type==="svg")&&hC(f.current,n,r,p);const v=S.useRef(!1);S.useInsertionEffect(()=>{h&&v.current&&h.update(n,u)});const _=n[Gw],w=S.useRef(!!_&&!(!((i=window.MotionHandoffIsComplete)===null||i===void 0)&&i.call(window,_))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,_)));return Hw(()=>{h&&(v.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),qh.render(h.render),w.current&&h.animationState&&h.animationState.animateChanges())}),S.useEffect(()=>{h&&(!w.current&&h.animationState&&h.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var m;(m=window.MotionHandoffMarkAsComplete)===null||m===void 0||m.call(window,_)}),w.current=!1))}),h}function hC(e,t,n,s){const{layoutId:r,layout:i,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Qw(e.parent)),e.projection.setOptions({layoutId:r,layout:i,alwaysMeasureLayout:!!o||l&&kr(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:s,layoutScroll:c,layoutRoot:u})}function Qw(e){if(e)return e.options.allowProjection!==!1?e.projection:Qw(e.parent)}function pC({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:s,Component:r}){var i,o;e&&nC(e);function l(u,d){let f;const h={...S.useContext(Hh),...u,layoutId:mC(u)},{isStatic:p}=h,v=lC(u),_=s(u,p);if(!p&&Wh){gC();const w=yC(h);f=w.MeasureLayout,v.visualElement=fC(r,_,h,t,w.ProjectionNode)}return a.jsxs(Sc.Provider,{value:v,children:[f&&v.visualElement?a.jsx(f,{visualElement:v.visualElement,...h}):null,n(r,u,uC(_,v.visualElement,d),_,p,v.visualElement)]})}l.displayName=`motion.${typeof r=="string"?r:`create(${(o=(i=r.displayName)!==null&&i!==void 0?i:r.name)!==null&&o!==void 0?o:""})`}`;const c=S.forwardRef(l);return c[cC]=r,c}function mC({layoutId:e}){const t=S.useContext(Vh).id;return t&&e!==void 0?t+"-"+e:e}function gC(e,t){S.useContext(Kw).strict}function yC(e){const{drag:t,layout:n}=Yr;if(!t&&!n)return{};const s={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}const vC=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Gh(e){return typeof e!="string"||e.includes("-")?!1:!!(vC.indexOf(e)>-1||/[A-Z]/u.test(e))}function wg(e){const t=[{},{}];return e==null||e.values.forEach((n,s)=>{t[0][s]=n.get(),t[1][s]=n.getVelocity()}),t}function Xh(e,t,n,s){if(typeof t=="function"){const[r,i]=wg(s);t=t(n!==void 0?n:e.custom,r,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[r,i]=wg(s);t=t(n!==void 0?n:e.custom,r,i)}return t}const Xd=e=>Array.isArray(e),xC=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),wC=e=>Xd(e)?e[e.length-1]||0:e,et=e=>!!(e&&e.getVelocity);function el(e){const t=et(e)?e.get():e;return xC(t)?t.toValue():t}function _C({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},s,r,i){const o={latestValues:kC(s,r,i,e),renderState:t()};return n&&(o.onMount=l=>n({props:s,current:l,...o}),o.onUpdate=l=>n(l)),o}const Zw=e=>(t,n)=>{const s=S.useContext(Sc),r=S.useContext(jc),i=()=>_C(e,t,s,r);return n?i():Bh(i)};function kC(e,t,n,s){const r={},i=s(e,{});for(const h in i)r[h]=el(i[h]);let{initial:o,animate:l}=e;const c=bc(e),u=qw(e);t&&u&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const f=d?l:o;if(f&&typeof f!="boolean"&&!Nc(f)){const h=Array.isArray(f)?f:[f];for(let p=0;p<h.length;p++){const v=Xh(e,h[p]);if(v){const{transitionEnd:_,transition:w,...m}=v;for(const y in m){let g=m[y];if(Array.isArray(g)){const x=d?g.length-1:0;g=g[x]}g!==null&&(r[y]=g)}for(const y in _)r[y]=_[y]}}}return r}const li=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],nr=new Set(li),Jw=e=>t=>typeof t=="string"&&t.startsWith(e),e_=Jw("--"),jC=Jw("var(--"),Qh=e=>jC(e)?SC.test(e.split("/*")[0].trim()):!1,SC=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,t_=(e,t)=>t&&typeof e=="number"?t.transform(e):e,On=(e,t,n)=>n>t?t:n<e?e:n,ci={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},_o={...ci,transform:e=>On(0,1,e)},Sa={...ci,default:1},Ho=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),qn=Ho("deg"),fn=Ho("%"),ie=Ho("px"),NC=Ho("vh"),bC=Ho("vw"),_g={...fn,parse:e=>fn.parse(e)/100,transform:e=>fn.transform(e*100)},EC={borderWidth:ie,borderTopWidth:ie,borderRightWidth:ie,borderBottomWidth:ie,borderLeftWidth:ie,borderRadius:ie,radius:ie,borderTopLeftRadius:ie,borderTopRightRadius:ie,borderBottomRightRadius:ie,borderBottomLeftRadius:ie,width:ie,maxWidth:ie,height:ie,maxHeight:ie,top:ie,right:ie,bottom:ie,left:ie,padding:ie,paddingTop:ie,paddingRight:ie,paddingBottom:ie,paddingLeft:ie,margin:ie,marginTop:ie,marginRight:ie,marginBottom:ie,marginLeft:ie,backgroundPositionX:ie,backgroundPositionY:ie},CC={rotate:qn,rotateX:qn,rotateY:qn,rotateZ:qn,scale:Sa,scaleX:Sa,scaleY:Sa,scaleZ:Sa,skew:qn,skewX:qn,skewY:qn,distance:ie,translateX:ie,translateY:ie,translateZ:ie,x:ie,y:ie,z:ie,perspective:ie,transformPerspective:ie,opacity:_o,originX:_g,originY:_g,originZ:ie},kg={...ci,transform:Math.round},Zh={...EC,...CC,zIndex:kg,size:ie,fillOpacity:_o,strokeOpacity:_o,numOctaves:kg},TC={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},PC=li.length;function AC(e,t,n){let s="",r=!0;for(let i=0;i<PC;i++){const o=li[i],l=e[o];if(l===void 0)continue;let c=!0;if(typeof l=="number"?c=l===(o.startsWith("scale")?1:0):c=parseFloat(l)===0,!c||n){const u=t_(l,Zh[o]);if(!c){r=!1;const d=TC[o]||o;s+=`${d}(${u}) `}n&&(t[o]=u)}}return s=s.trim(),n?s=n(t,r?"":s):r&&(s="none"),s}function Jh(e,t,n){const{style:s,vars:r,transformOrigin:i}=e;let o=!1,l=!1;for(const c in t){const u=t[c];if(nr.has(c)){o=!0;continue}else if(e_(c)){r[c]=u;continue}else{const d=t_(u,Zh[c]);c.startsWith("origin")?(l=!0,i[c]=d):s[c]=d}}if(t.transform||(o||n?s.transform=AC(t,e.transform,n):s.transform&&(s.transform="none")),l){const{originX:c="50%",originY:u="50%",originZ:d=0}=i;s.transformOrigin=`${c} ${u} ${d}`}}const MC={offset:"stroke-dashoffset",array:"stroke-dasharray"},IC={offset:"strokeDashoffset",array:"strokeDasharray"};function RC(e,t,n=1,s=0,r=!0){e.pathLength=1;const i=r?MC:IC;e[i.offset]=ie.transform(-s);const o=ie.transform(t),l=ie.transform(n);e[i.array]=`${o} ${l}`}function jg(e,t,n){return typeof e=="string"?e:ie.transform(t+n*e)}function $C(e,t,n){const s=jg(t,e.x,e.width),r=jg(n,e.y,e.height);return`${s} ${r}`}function ep(e,{attrX:t,attrY:n,attrScale:s,originX:r,originY:i,pathLength:o,pathSpacing:l=1,pathOffset:c=0,...u},d,f){if(Jh(e,u,f),d){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:h,style:p,dimensions:v}=e;h.transform&&(v&&(p.transform=h.transform),delete h.transform),v&&(r!==void 0||i!==void 0||p.transform)&&(p.transformOrigin=$C(v,r!==void 0?r:.5,i!==void 0?i:.5)),t!==void 0&&(h.x=t),n!==void 0&&(h.y=n),s!==void 0&&(h.scale=s),o!==void 0&&RC(h,o,l,c,!1)}const tp=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),n_=()=>({...tp(),attrs:{}}),np=e=>typeof e=="string"&&e.toLowerCase()==="svg";function s_(e,{style:t,vars:n},s,r){Object.assign(e.style,t,r&&r.getProjectionStyles(s));for(const i in n)e.style.setProperty(i,n[i])}const r_=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function i_(e,t,n,s){s_(e,t,void 0,s);for(const r in t.attrs)e.setAttribute(r_.has(r)?r:Yh(r),t.attrs[r])}const Dl={};function LC(e){Object.assign(Dl,e)}function o_(e,{layout:t,layoutId:n}){return nr.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Dl[e]||e==="opacity")}function sp(e,t,n){var s;const{style:r}=e,i={};for(const o in r)(et(r[o])||t.style&&et(t.style[o])||o_(o,e)||((s=n==null?void 0:n.getValue(o))===null||s===void 0?void 0:s.liveStyle)!==void 0)&&(i[o]=r[o]);return i}function a_(e,t,n){const s=sp(e,t,n);for(const r in e)if(et(e[r])||et(t[r])){const i=li.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;s[i]=e[r]}return s}function DC(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const Sg=["x","y","width","height","cx","cy","r"],zC={useVisualState:Zw({scrapeMotionValuesFromProps:a_,createRenderState:n_,onUpdate:({props:e,prevProps:t,current:n,renderState:s,latestValues:r})=>{if(!n)return;let i=!!e.drag;if(!i){for(const l in r)if(nr.has(l)){i=!0;break}}if(!i)return;let o=!t;if(t)for(let l=0;l<Sg.length;l++){const c=Sg[l];e[c]!==t[c]&&(o=!0)}o&&ve.read(()=>{DC(n,s),ve.render(()=>{ep(s,r,np(n.tagName),e.transformTemplate),i_(n,s)})})}})},OC={useVisualState:Zw({scrapeMotionValuesFromProps:sp,createRenderState:tp})};function l_(e,t,n){for(const s in t)!et(t[s])&&!o_(s,n)&&(e[s]=t[s])}function FC({transformTemplate:e},t){return S.useMemo(()=>{const n=tp();return Jh(n,t,e),Object.assign({},n.vars,n.style)},[t])}function VC(e,t){const n=e.style||{},s={};return l_(s,n,e),Object.assign(s,FC(e,t)),s}function BC(e,t){const n={},s=VC(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=s,n}function HC(e,t,n,s){const r=S.useMemo(()=>{const i=n_();return ep(i,t,np(s),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};l_(i,e.style,e),r.style={...i,...r.style}}return r}function WC(e=!1){return(n,s,r,{latestValues:i},o)=>{const c=(Gh(n)?HC:BC)(s,i,o,n),u=iC(s,typeof n=="string",e),d=n!==S.Fragment?{...u,...c,ref:r}:{},{children:f}=s,h=S.useMemo(()=>et(f)?f.get():f,[f]);return S.createElement(n,{...d,children:h})}}function UC(e,t){return function(s,{forwardMotionProps:r}={forwardMotionProps:!1}){const o={...Gh(s)?zC:OC,preloadedFeatures:e,useRender:WC(r),createVisualElement:t,Component:s};return pC(o)}}function c_(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let s=0;s<n;s++)if(t[s]!==e[s])return!1;return!0}function Ec(e,t,n){const s=e.getProps();return Xh(s,t,n!==void 0?n:s.custom,e)}function rp(e,t){return e?e[t]||e.default||e:void 0}const u_=new Set(["width","height","top","left","right","bottom",...li]);let tl;function KC(){tl=void 0}const hn={now:()=>(tl===void 0&&hn.set(Ue.isProcessing||JE.useManualTiming?Ue.timestamp:performance.now()),tl),set:e=>{tl=e,queueMicrotask(KC)}};function ip(e,t){e.indexOf(t)===-1&&e.push(t)}function op(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class ap{constructor(){this.subscriptions=[]}add(t){return ip(this.subscriptions,t),()=>op(this.subscriptions,t)}notify(t,n,s){const r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](t,n,s);else for(let i=0;i<r;i++){const o=this.subscriptions[i];o&&o(t,n,s)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function d_(e,t){return t?e*(1e3/t):0}const Ng=30,YC=e=>!isNaN(parseFloat(e));class qC{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(s,r=!0)=>{const i=hn.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(s),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),r&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=hn.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=YC(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new ap);const s=this.events[t].add(n);return t==="change"?()=>{s(),ve.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,s){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-s}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=hn.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Ng)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Ng);return d_(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ko(e,t){return new qC(e,t)}function GC(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ko(n))}function XC(e,t){const n=Ec(e,t);let{transitionEnd:s={},transition:r={},...i}=n||{};i={...i,...s};for(const o in i){const l=wC(i[o]);GC(e,o,l)}}function QC(e){return!!(et(e)&&e.add)}function Qd(e,t){const n=e.getValue("willChange");if(QC(n))return n.add(t)}function f_(e){return e.props[Gw]}function lp(e){let t;return()=>(t===void 0&&(t=e()),t)}const ZC=lp(()=>window.ScrollTimeline!==void 0);class JC{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let s=0;s<this.animations.length;s++)this.animations[s][t]=n}attachTimeline(t,n){const s=this.animations.map(r=>{if(ZC()&&r.attachTimeline)return r.attachTimeline(t);if(typeof n=="function")return n(r)});return()=>{s.forEach((r,i)=>{r&&r(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;n<this.animations.length;n++)t=Math.max(t,this.animations[n].duration);return t}runAll(t){this.animations.forEach(n=>n[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class eT extends JC{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}const An=e=>e*1e3,Mn=e=>e/1e3;function cp(e){return typeof e=="function"}function bg(e,t){e.timeline=t,e.onfinish=null}const up=e=>Array.isArray(e)&&typeof e[0]=="number",tT={linearEasing:void 0};function nT(e,t){const n=lp(e);return()=>{var s;return(s=tT[t])!==null&&s!==void 0?s:n()}}const zl=nT(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),qr=(e,t,n)=>{const s=t-e;return s===0?1:(n-e)/s},h_=(e,t,n=10)=>{let s="";const r=Math.max(Math.round(t/n),2);for(let i=0;i<r;i++)s+=e(qr(0,r-1,i))+", ";return`linear(${s.substring(0,s.length-2)})`};function p_(e){return!!(typeof e=="function"&&zl()||!e||typeof e=="string"&&(e in Zd||zl())||up(e)||Array.isArray(e)&&e.every(p_))}const Mi=([e,t,n,s])=>`cubic-bezier(${e}, ${t}, ${n}, ${s})`,Zd={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Mi([0,.65,.55,1]),circOut:Mi([.55,0,1,.45]),backIn:Mi([.31,.01,.66,-.59]),backOut:Mi([.33,1.53,.69,.99])};function m_(e,t){if(e)return typeof e=="function"&&zl()?h_(e,t):up(e)?Mi(e):Array.isArray(e)?e.map(n=>m_(n,t)||Zd.easeOut):Zd[e]}const g_=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,sT=1e-7,rT=12;function iT(e,t,n,s,r){let i,o,l=0;do o=t+(n-t)/2,i=g_(o,s,r)-e,i>0?n=o:t=o;while(Math.abs(i)>sT&&++l<rT);return o}function Wo(e,t,n,s){if(e===t&&n===s)return xt;const r=i=>iT(i,0,1,e,n);return i=>i===0||i===1?i:g_(r(i),t,s)}const y_=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,v_=e=>t=>1-e(1-t),x_=Wo(.33,1.53,.69,.99),dp=v_(x_),w_=y_(dp),__=e=>(e*=2)<1?.5*dp(e):.5*(2-Math.pow(2,-10*(e-1))),fp=e=>1-Math.sin(Math.acos(e)),k_=v_(fp),j_=y_(fp),S_=e=>/^0[^.\s]+$/u.test(e);function oT(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||S_(e):!0}const Gi=e=>Math.round(e*1e5)/1e5,hp=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function aT(e){return e==null}const lT=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,pp=(e,t)=>n=>!!(typeof n=="string"&&lT.test(n)&&n.startsWith(e)||t&&!aT(n)&&Object.prototype.hasOwnProperty.call(n,t)),N_=(e,t,n)=>s=>{if(typeof s!="string")return s;const[r,i,o,l]=s.match(hp);return{[e]:parseFloat(r),[t]:parseFloat(i),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},cT=e=>On(0,255,e),ju={...ci,transform:e=>Math.round(cT(e))},$s={test:pp("rgb","red"),parse:N_("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:s=1})=>"rgba("+ju.transform(e)+", "+ju.transform(t)+", "+ju.transform(n)+", "+Gi(_o.transform(s))+")"};function uT(e){let t="",n="",s="",r="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),s=e.substring(5,7),r=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),s=e.substring(3,4),r=e.substring(4,5),t+=t,n+=n,s+=s,r+=r),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(s,16),alpha:r?parseInt(r,16)/255:1}}const Jd={test:pp("#"),parse:uT,transform:$s.transform},jr={test:pp("hsl","hue"),parse:N_("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:s=1})=>"hsla("+Math.round(e)+", "+fn.transform(Gi(t))+", "+fn.transform(Gi(n))+", "+Gi(_o.transform(s))+")"},Ze={test:e=>$s.test(e)||Jd.test(e)||jr.test(e),parse:e=>$s.test(e)?$s.parse(e):jr.test(e)?jr.parse(e):Jd.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?$s.transform(e):jr.transform(e)},dT=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function fT(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(hp))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(dT))===null||n===void 0?void 0:n.length)||0)>0}const b_="number",E_="color",hT="var",pT="var(",Eg="${}",mT=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function jo(e){const t=e.toString(),n=[],s={color:[],number:[],var:[]},r=[];let i=0;const l=t.replace(mT,c=>(Ze.test(c)?(s.color.push(i),r.push(E_),n.push(Ze.parse(c))):c.startsWith(pT)?(s.var.push(i),r.push(hT),n.push(c)):(s.number.push(i),r.push(b_),n.push(parseFloat(c))),++i,Eg)).split(Eg);return{values:n,split:l,indexes:s,types:r}}function C_(e){return jo(e).values}function T_(e){const{split:t,types:n}=jo(e),s=t.length;return r=>{let i="";for(let o=0;o<s;o++)if(i+=t[o],r[o]!==void 0){const l=n[o];l===b_?i+=Gi(r[o]):l===E_?i+=Ze.transform(r[o]):i+=r[o]}return i}}const gT=e=>typeof e=="number"?0:e;function yT(e){const t=C_(e);return T_(e)(t.map(gT))}const gs={test:fT,parse:C_,createTransformer:T_,getAnimatableNone:yT},vT=new Set(["brightness","contrast","saturate","opacity"]);function xT(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[s]=n.match(hp)||[];if(!s)return e;const r=n.replace(s,"");let i=vT.has(t)?1:0;return s!==n&&(i*=100),t+"("+i+r+")"}const wT=/\b([a-z-]*)\(.*?\)/gu,ef={...gs,getAnimatableNone:e=>{const t=e.match(wT);return t?t.map(xT).join(" "):e}},_T={...Zh,color:Ze,backgroundColor:Ze,outlineColor:Ze,fill:Ze,stroke:Ze,borderColor:Ze,borderTopColor:Ze,borderRightColor:Ze,borderBottomColor:Ze,borderLeftColor:Ze,filter:ef,WebkitFilter:ef},mp=e=>_T[e];function P_(e,t){let n=mp(e);return n!==ef&&(n=gs),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const kT=new Set(["auto","none","0"]);function jT(e,t,n){let s=0,r;for(;s<e.length&&!r;){const i=e[s];typeof i=="string"&&!kT.has(i)&&jo(i).values.length&&(r=e[s]),s++}if(r&&n)for(const i of t)e[i]=P_(n,r)}const Cg=e=>e===ci||e===ie,Tg=(e,t)=>parseFloat(e.split(", ")[t]),Pg=(e,t)=>(n,{transform:s})=>{if(s==="none"||!s)return 0;const r=s.match(/^matrix3d\((.+)\)$/u);if(r)return Tg(r[1],t);{const i=s.match(/^matrix\((.+)\)$/u);return i?Tg(i[1],e):0}},ST=new Set(["x","y","z"]),NT=li.filter(e=>!ST.has(e));function bT(e){const t=[];return NT.forEach(n=>{const s=e.getValue(n);s!==void 0&&(t.push([n,s.get()]),s.set(n.startsWith("scale")?1:0))}),t}const Gr={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:Pg(4,13),y:Pg(5,14)};Gr.translateX=Gr.x;Gr.translateY=Gr.y;const Fs=new Set;let tf=!1,nf=!1;function A_(){if(nf){const e=Array.from(Fs).filter(s=>s.needsMeasurement),t=new Set(e.map(s=>s.element)),n=new Map;t.forEach(s=>{const r=bT(s);r.length&&(n.set(s,r),s.render())}),e.forEach(s=>s.measureInitialState()),t.forEach(s=>{s.render();const r=n.get(s);r&&r.forEach(([i,o])=>{var l;(l=s.getValue(i))===null||l===void 0||l.set(o)})}),e.forEach(s=>s.measureEndState()),e.forEach(s=>{s.suspendedScrollY!==void 0&&window.scrollTo(0,s.suspendedScrollY)})}nf=!1,tf=!1,Fs.forEach(e=>e.complete()),Fs.clear()}function M_(){Fs.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(nf=!0)})}function ET(){M_(),A_()}class gp{constructor(t,n,s,r,i,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=s,this.motionValue=r,this.element=i,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Fs.add(this),tf||(tf=!0,ve.read(M_),ve.resolveKeyframes(A_))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:s,motionValue:r}=this;for(let i=0;i<t.length;i++)if(t[i]===null)if(i===0){const o=r==null?void 0:r.get(),l=t[t.length-1];if(o!==void 0)t[0]=o;else if(s&&n){const c=s.readValue(n,l);c!=null&&(t[0]=c)}t[0]===void 0&&(t[0]=l),r&&o===void 0&&r.set(t[0])}else t[i]=t[i-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Fs.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Fs.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const I_=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),CT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function TT(e){const t=CT.exec(e);if(!t)return[,];const[,n,s,r]=t;return[`--${n??s}`,r]}function R_(e,t,n=1){const[s,r]=TT(e);if(!s)return;const i=window.getComputedStyle(t).getPropertyValue(s);if(i){const o=i.trim();return I_(o)?parseFloat(o):o}return Qh(r)?R_(r,t,n+1):r}const $_=e=>t=>t.test(e),PT={test:e=>e==="auto",parse:e=>e},L_=[ci,ie,fn,qn,bC,NC,PT],Ag=e=>L_.find($_(e));class D_ extends gp{constructor(t,n,s,r,i){super(t,n,s,r,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:s}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c<t.length;c++){let u=t[c];if(typeof u=="string"&&(u=u.trim(),Qh(u))){const d=R_(u,n.current);d!==void 0&&(t[c]=d),c===t.length-1&&(this.finalKeyframe=u)}}if(this.resolveNoneKeyframes(),!u_.has(s)||t.length!==2)return;const[r,i]=t,o=Ag(r),l=Ag(i);if(o!==l)if(Cg(o)&&Cg(l))for(let c=0;c<t.length;c++){const u=t[c];typeof u=="string"&&(t[c]=parseFloat(u))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,s=[];for(let r=0;r<t.length;r++)oT(t[r])&&s.push(r);s.length&&jT(t,s,n)}measureInitialState(){const{element:t,unresolvedKeyframes:n,name:s}=this;if(!t||!t.current)return;s==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Gr[s](t.measureViewportBox(),window.getComputedStyle(t.current)),n[0]=this.measuredOrigin;const r=n[n.length-1];r!==void 0&&t.getValue(s,r).jump(r,!1)}measureEndState(){var t;const{element:n,name:s,unresolvedKeyframes:r}=this;if(!n||!n.current)return;const i=n.getValue(s);i&&i.jump(this.measuredOrigin,!1);const o=r.length-1,l=r[o];r[o]=Gr[s](n.measureViewportBox(),window.getComputedStyle(n.current)),l!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=l),!((t=this.removedTransforms)===null||t===void 0)&&t.length&&this.removedTransforms.forEach(([c,u])=>{n.getValue(c).set(u)}),this.resolveNoneKeyframes()}}const Mg=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(gs.test(e)||e==="0")&&!e.startsWith("url("));function AT(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function MT(e,t,n,s){const r=e[0];if(r===null)return!1;if(t==="display"||t==="visibility")return!0;const i=e[e.length-1],o=Mg(r,t),l=Mg(i,t);return!o||!l?!1:AT(e)||(n==="spring"||cp(n))&&s}const IT=e=>e!==null;function Cc(e,{repeat:t,repeatType:n="loop"},s){const r=e.filter(IT),i=t&&n!=="loop"&&t%2===1?0:r.length-1;return!i||s===void 0?r[i]:s}const RT=40;class z_{constructor({autoplay:t=!0,delay:n=0,type:s="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=hn.now(),this.options={autoplay:t,delay:n,type:s,repeat:r,repeatDelay:i,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>RT?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&ET(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=hn.now(),this.hasAttemptedResolve=!0;const{name:s,type:r,velocity:i,delay:o,onComplete:l,onUpdate:c,isGenerator:u}=this.options;if(!u&&!MT(t,s,r,i))if(o)this.options.duration=0;else{c&&c(Cc(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const d=this.initPlayback(t,n);d!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...d},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const sf=2e4;function O_(e){let t=0;const n=50;let s=e.next(t);for(;!s.done&&t<sf;)t+=n,s=e.next(t);return t>=sf?1/0:t}const Se=(e,t,n)=>e+(t-e)*n;function Su(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function $T({hue:e,saturation:t,lightness:n,alpha:s}){e/=360,t/=100,n/=100;let r=0,i=0,o=0;if(!t)r=i=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;r=Su(c,l,e+1/3),i=Su(c,l,e),o=Su(c,l,e-1/3)}return{red:Math.round(r*255),green:Math.round(i*255),blue:Math.round(o*255),alpha:s}}function Ol(e,t){return n=>n>0?t:e}const Nu=(e,t,n)=>{const s=e*e,r=n*(t*t-s)+s;return r<0?0:Math.sqrt(r)},LT=[Jd,$s,jr],DT=e=>LT.find(t=>t.test(e));function Ig(e){const t=DT(e);if(!t)return!1;let n=t.parse(e);return t===jr&&(n=$T(n)),n}const Rg=(e,t)=>{const n=Ig(e),s=Ig(t);if(!n||!s)return Ol(e,t);const r={...n};return i=>(r.red=Nu(n.red,s.red,i),r.green=Nu(n.green,s.green,i),r.blue=Nu(n.blue,s.blue,i),r.alpha=Se(n.alpha,s.alpha,i),$s.transform(r))},zT=(e,t)=>n=>t(e(n)),Uo=(...e)=>e.reduce(zT),rf=new Set(["none","hidden"]);function OT(e,t){return rf.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function FT(e,t){return n=>Se(e,t,n)}function yp(e){return typeof e=="number"?FT:typeof e=="string"?Qh(e)?Ol:Ze.test(e)?Rg:HT:Array.isArray(e)?F_:typeof e=="object"?Ze.test(e)?Rg:VT:Ol}function F_(e,t){const n=[...e],s=n.length,r=e.map((i,o)=>yp(i)(i,t[o]));return i=>{for(let o=0;o<s;o++)n[o]=r[o](i);return n}}function VT(e,t){const n={...e,...t},s={};for(const r in n)e[r]!==void 0&&t[r]!==void 0&&(s[r]=yp(e[r])(e[r],t[r]));return r=>{for(const i in s)n[i]=s[i](r);return n}}function BT(e,t){var n;const s=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){const o=t.types[i],l=e.indexes[o][r[o]],c=(n=e.values[l])!==null&&n!==void 0?n:0;s[i]=c,r[o]++}return s}const HT=(e,t)=>{const n=gs.createTransformer(t),s=jo(e),r=jo(t);return s.indexes.var.length===r.indexes.var.length&&s.indexes.color.length===r.indexes.color.length&&s.indexes.number.length>=r.indexes.number.length?rf.has(e)&&!r.values.length||rf.has(t)&&!s.values.length?OT(e,t):Uo(F_(BT(s,r),r.values),n):Ol(e,t)};function V_(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Se(e,t,n):yp(e)(e,t)}const WT=5;function B_(e,t,n){const s=Math.max(t-WT,0);return d_(n-e(s),t-s)}const Te={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},bu=.001;function UT({duration:e=Te.duration,bounce:t=Te.bounce,velocity:n=Te.velocity,mass:s=Te.mass}){let r,i,o=1-t;o=On(Te.minDamping,Te.maxDamping,o),e=On(Te.minDuration,Te.maxDuration,Mn(e)),o<1?(r=u=>{const d=u*o,f=d*e,h=d-n,p=of(u,o),v=Math.exp(-f);return bu-h/p*v},i=u=>{const f=u*o*e,h=f*n+n,p=Math.pow(o,2)*Math.pow(u,2)*e,v=Math.exp(-f),_=of(Math.pow(u,2),o);return(-r(u)+bu>0?-1:1)*((h-p)*v)/_}):(r=u=>{const d=Math.exp(-u*e),f=(u-n)*e+1;return-bu+d*f},i=u=>{const d=Math.exp(-u*e),f=(n-u)*(e*e);return d*f});const l=5/e,c=YT(r,i,l);if(e=An(e),isNaN(c))return{stiffness:Te.stiffness,damping:Te.damping,duration:e};{const u=Math.pow(c,2)*s;return{stiffness:u,damping:o*2*Math.sqrt(s*u),duration:e}}}const KT=12;function YT(e,t,n){let s=n;for(let r=1;r<KT;r++)s=s-e(s)/t(s);return s}function of(e,t){return e*Math.sqrt(1-t*t)}const qT=["duration","bounce"],GT=["stiffness","damping","mass"];function $g(e,t){return t.some(n=>e[n]!==void 0)}function XT(e){let t={velocity:Te.velocity,stiffness:Te.stiffness,damping:Te.damping,mass:Te.mass,isResolvedFromDuration:!1,...e};if(!$g(e,GT)&&$g(e,qT))if(e.visualDuration){const n=e.visualDuration,s=2*Math.PI/(n*1.2),r=s*s,i=2*On(.05,1,1-(e.bounce||0))*Math.sqrt(r);t={...t,mass:Te.mass,stiffness:r,damping:i}}else{const n=UT(e);t={...t,...n,mass:Te.mass},t.isResolvedFromDuration=!0}return t}function H_(e=Te.visualDuration,t=Te.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:s,restDelta:r}=n;const i=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:f,velocity:h,isResolvedFromDuration:p}=XT({...n,velocity:-Mn(n.velocity||0)}),v=h||0,_=u/(2*Math.sqrt(c*d)),w=o-i,m=Mn(Math.sqrt(c/d)),y=Math.abs(w)<5;s||(s=y?Te.restSpeed.granular:Te.restSpeed.default),r||(r=y?Te.restDelta.granular:Te.restDelta.default);let g;if(_<1){const k=of(m,_);g=j=>{const E=Math.exp(-_*m*j);return o-E*((v+_*m*w)/k*Math.sin(k*j)+w*Math.cos(k*j))}}else if(_===1)g=k=>o-Math.exp(-m*k)*(w+(v+m*w)*k);else{const k=m*Math.sqrt(_*_-1);g=j=>{const E=Math.exp(-_*m*j),b=Math.min(k*j,300);return o-E*((v+_*m*w)*Math.sinh(b)+k*w*Math.cosh(b))/k}}const x={calculatedDuration:p&&f||null,next:k=>{const j=g(k);if(p)l.done=k>=f;else{let E=0;_<1&&(E=k===0?An(v):B_(g,k,j));const b=Math.abs(E)<=s,P=Math.abs(o-j)<=r;l.done=b&&P}return l.value=l.done?o:j,l},toString:()=>{const k=Math.min(O_(x),sf),j=h_(E=>x.next(k*E).value,k,30);return k+"ms "+j}};return x}function Lg({keyframes:e,velocity:t=0,power:n=.8,timeConstant:s=325,bounceDamping:r=10,bounceStiffness:i=500,modifyTarget:o,min:l,max:c,restDelta:u=.5,restSpeed:d}){const f=e[0],h={done:!1,value:f},p=b=>l!==void 0&&b<l||c!==void 0&&b>c,v=b=>l===void 0?c:c===void 0||Math.abs(l-b)<Math.abs(c-b)?l:c;let _=n*t;const w=f+_,m=o===void 0?w:o(w);m!==w&&(_=m-f);const y=b=>-_*Math.exp(-b/s),g=b=>m+y(b),x=b=>{const P=y(b),R=g(b);h.done=Math.abs(P)<=u,h.value=h.done?m:R};let k,j;const E=b=>{p(h.value)&&(k=b,j=H_({keyframes:[h.value,v(h.value)],velocity:B_(g,b,h.value),damping:r,stiffness:i,restDelta:u,restSpeed:d}))};return E(0),{calculatedDuration:null,next:b=>{let P=!1;return!j&&k===void 0&&(P=!0,x(b),E(b)),k!==void 0&&b>=k?j.next(b-k):(!P&&x(b),h)}}}const QT=Wo(.42,0,1,1),ZT=Wo(0,0,.58,1),W_=Wo(.42,0,.58,1),JT=e=>Array.isArray(e)&&typeof e[0]!="number",e2={linear:xt,easeIn:QT,easeInOut:W_,easeOut:ZT,circIn:fp,circInOut:j_,circOut:k_,backIn:dp,backInOut:w_,backOut:x_,anticipate:__},Dg=e=>{if(up(e)){Ww(e.length===4);const[t,n,s,r]=e;return Wo(t,n,s,r)}else if(typeof e=="string")return e2[e];return e};function t2(e,t,n){const s=[],r=n||V_,i=e.length-1;for(let o=0;o<i;o++){let l=r(e[o],e[o+1]);if(t){const c=Array.isArray(t)?t[o]||xt:t;l=Uo(c,l)}s.push(l)}return s}function n2(e,t,{clamp:n=!0,ease:s,mixer:r}={}){const i=e.length;if(Ww(i===t.length),i===1)return()=>t[0];if(i===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=t2(t,s,r),c=l.length,u=d=>{if(o&&d<e[0])return t[0];let f=0;if(c>1)for(;f<e.length-2&&!(d<e[f+1]);f++);const h=qr(e[f],e[f+1],d);return l[f](h)};return n?d=>u(On(e[0],e[i-1],d)):u}function s2(e,t){const n=e[e.length-1];for(let s=1;s<=t;s++){const r=qr(0,t,s);e.push(Se(n,1,r))}}function r2(e){const t=[0];return s2(t,e.length-1),t}function i2(e,t){return e.map(n=>n*t)}function o2(e,t){return e.map(()=>t||W_).splice(0,e.length-1)}function Fl({duration:e=300,keyframes:t,times:n,ease:s="easeInOut"}){const r=JT(s)?s.map(Dg):Dg(s),i={done:!1,value:t[0]},o=i2(n&&n.length===t.length?n:r2(t),e),l=n2(o,t,{ease:Array.isArray(r)?r:o2(t,r)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const a2=e=>{const t=({timestamp:n})=>e(n);return{start:()=>ve.update(t,!0),stop:()=>ms(t),now:()=>Ue.isProcessing?Ue.timestamp:hn.now()}},l2={decay:Lg,inertia:Lg,tween:Fl,keyframes:Fl,spring:H_},c2=e=>e/100;class vp extends z_{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:s,element:r,keyframes:i}=this.options,o=(r==null?void 0:r.KeyframeResolver)||gp,l=(c,u)=>this.onKeyframesResolved(c,u);this.resolver=new o(i,l,n,s,r),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:s=0,repeatDelay:r=0,repeatType:i,velocity:o=0}=this.options,l=cp(n)?n:l2[n]||Fl;let c,u;l!==Fl&&typeof t[0]!="number"&&(c=Uo(c2,V_(t[0],t[1])),t=[0,100]);const d=l({...this.options,keyframes:t});i==="mirror"&&(u=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=O_(d));const{calculatedDuration:f}=d,h=f+r,p=h*(s+1)-r;return{generator:d,mirroredGenerator:u,mapPercentToKeyframes:c,calculatedDuration:f,resolvedDuration:h,totalDuration:p}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:s}=this;if(!s){const{keyframes:b}=this.options;return{done:!0,value:b[b.length-1]}}const{finalKeyframe:r,generator:i,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:u,totalDuration:d,resolvedDuration:f}=s;if(this.startTime===null)return i.next(0);const{delay:h,repeat:p,repeatType:v,repeatDelay:_,onUpdate:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-d/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const m=this.currentTime-h*(this.speed>=0?1:-1),y=this.speed>=0?m<0:m>d;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=d);let g=this.currentTime,x=i;if(p){const b=Math.min(this.currentTime,d)/f;let P=Math.floor(b),R=b%1;!R&&b>=1&&(R=1),R===1&&P--,P=Math.min(P,p+1),!!(P%2)&&(v==="reverse"?(R=1-R,_&&(R-=_/f)):v==="mirror"&&(x=o)),g=On(0,1,R)*f}const k=y?{done:!1,value:c[0]}:x.next(g);l&&(k.value=l(k.value));let{done:j}=k;!y&&u!==null&&(j=this.speed>=0?this.currentTime>=d:this.currentTime<=0);const E=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&j);return E&&r!==void 0&&(k.value=Cc(c,this.options,r)),w&&w(k.value),E&&this.finish(),k}get duration(){const{resolved:t}=this;return t?Mn(t.calculatedDuration):0}get time(){return Mn(this.currentTime)}set time(t){t=An(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Mn(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=a2,onPlay:n,startTime:s}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const r=this.driver.now();this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=r):this.startTime=s??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const u2=new Set(["opacity","clipPath","filter","transform"]);function d2(e,t,n,{delay:s=0,duration:r=300,repeat:i=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const u={[t]:n};c&&(u.offset=c);const d=m_(l,r);return Array.isArray(d)&&(u.easing=d),e.animate(u,{delay:s,duration:r,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:o==="reverse"?"alternate":"normal"})}const f2=lp(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Vl=10,h2=2e4;function p2(e){return cp(e.type)||e.type==="spring"||!p_(e.ease)}function m2(e,t){const n=new vp({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let s={done:!1,value:e[0]};const r=[];let i=0;for(;!s.done&&i<h2;)s=n.sample(i),r.push(s.value),i+=Vl;return{times:void 0,keyframes:r,duration:i-Vl,ease:"linear"}}const U_={anticipate:__,backInOut:w_,circInOut:j_};function g2(e){return e in U_}class zg extends z_{constructor(t){super(t);const{name:n,motionValue:s,element:r,keyframes:i}=this.options;this.resolver=new D_(i,(o,l)=>this.onKeyframesResolved(o,l),n,s,r),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:s=300,times:r,ease:i,type:o,motionValue:l,name:c,startTime:u}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof i=="string"&&zl()&&g2(i)&&(i=U_[i]),p2(this.options)){const{onComplete:f,onUpdate:h,motionValue:p,element:v,..._}=this.options,w=m2(t,_);t=w.keyframes,t.length===1&&(t[1]=t[0]),s=w.duration,r=w.times,i=w.ease,o="keyframes"}const d=d2(l.owner.current,c,t,{...this.options,duration:s,times:r,ease:i});return d.startTime=u??this.calcStartTime(),this.pendingTimeline?(bg(d,this.pendingTimeline),this.pendingTimeline=void 0):d.onfinish=()=>{const{onComplete:f}=this.options;l.set(Cc(t,this.options,n)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:d,duration:s,times:r,type:o,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return Mn(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return Mn(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:s}=n;s.currentTime=An(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:s}=n;s.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return xt;const{animation:s}=n;bg(s,t)}return xt}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:s,duration:r,type:i,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:d,onComplete:f,element:h,...p}=this.options,v=new vp({...p,keyframes:s,duration:r,type:i,ease:o,times:l,isGenerator:!0}),_=An(this.time);u.setWithVelocity(v.sample(_-Vl).value,v.sample(_).value,Vl)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:s,repeatDelay:r,repeatType:i,damping:o,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=n.owner.getProps();return f2()&&s&&u2.has(s)&&!c&&!u&&!r&&i!=="mirror"&&o!==0&&l!=="inertia"}}const y2={type:"spring",stiffness:500,damping:25,restSpeed:10},v2=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),x2={type:"keyframes",duration:.8},w2={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},_2=(e,{keyframes:t})=>t.length>2?x2:nr.has(e)?e.startsWith("scale")?v2(t[1]):y2:w2;function k2({when:e,delay:t,delayChildren:n,staggerChildren:s,staggerDirection:r,repeat:i,repeatType:o,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const xp=(e,t,n,s={},r,i)=>o=>{const l=rp(s,e)||{},c=l.delay||s.delay||0;let{elapsed:u=0}=s;u=u-An(c);let d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:h=>{t.set(h),l.onUpdate&&l.onUpdate(h)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:i?void 0:r};k2(l)||(d={...d,..._2(e,d)}),d.duration&&(d.duration=An(d.duration)),d.repeatDelay&&(d.repeatDelay=An(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let f=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(d.duration=0,d.delay===0&&(f=!0)),f&&!i&&t.get()!==void 0){const h=Cc(d.keyframes,l);if(h!==void 0)return ve.update(()=>{d.onUpdate(h),d.onComplete()}),new eT([])}return!i&&zg.supports(d)?new zg(d):new vp(d)};function j2({protectedKeys:e,needsAnimating:t},n){const s=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,s}function K_(e,t,{delay:n=0,transitionOverride:s,type:r}={}){var i;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;s&&(o=s);const u=[],d=r&&e.animationState&&e.animationState.getState()[r];for(const f in c){const h=e.getValue(f,(i=e.latestValues[f])!==null&&i!==void 0?i:null),p=c[f];if(p===void 0||d&&j2(d,f))continue;const v={delay:n,...rp(o||{},f)};let _=!1;if(window.MotionHandoffAnimation){const m=f_(e);if(m){const y=window.MotionHandoffAnimation(m,f,ve);y!==null&&(v.startTime=y,_=!0)}}Qd(e,f),h.start(xp(f,h,p,e.shouldReduceMotion&&u_.has(f)?{type:!1}:v,e,_));const w=h.animation;w&&u.push(w)}return l&&Promise.all(u).then(()=>{ve.update(()=>{l&&XC(e,l)})}),u}function af(e,t,n={}){var s;const r=Ec(e,t,n.type==="exit"?(s=e.presenceContext)===null||s===void 0?void 0:s.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const o=r?()=>Promise.all(K_(e,r,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:f,staggerDirection:h}=i;return S2(e,t,d+u,f,h,n)}:()=>Promise.resolve(),{when:c}=i;if(c){const[u,d]=c==="beforeChildren"?[o,l]:[l,o];return u().then(()=>d())}else return Promise.all([o(),l(n.delay)])}function S2(e,t,n=0,s=0,r=1,i){const o=[],l=(e.variantChildren.size-1)*s,c=r===1?(u=0)=>u*s:(u=0)=>l-u*s;return Array.from(e.variantChildren).sort(N2).forEach((u,d)=>{u.notify("AnimationStart",t),o.push(af(u,t,{...i,delay:n+c(d)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function N2(e,t){return e.sortNodePosition(t)}function b2(e,t,n={}){e.notify("AnimationStart",t);let s;if(Array.isArray(t)){const r=t.map(i=>af(e,i,n));s=Promise.all(r)}else if(typeof t=="string")s=af(e,t,n);else{const r=typeof t=="function"?Ec(e,t,n.custom):t;s=Promise.all(K_(e,r,n))}return s.then(()=>{e.notify("AnimationComplete",t)})}const E2=Kh.length;function Y_(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Y_(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<E2;n++){const s=Kh[n],r=e.props[s];(wo(r)||r===!1)&&(t[s]=r)}return t}const C2=[...Uh].reverse(),T2=Uh.length;function P2(e){return t=>Promise.all(t.map(({animation:n,options:s})=>b2(e,n,s)))}function A2(e){let t=P2(e),n=Og(),s=!0;const r=c=>(u,d)=>{var f;const h=Ec(e,d,c==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(h){const{transition:p,transitionEnd:v,..._}=h;u={...u,..._,...v}}return u};function i(c){t=c(e)}function o(c){const{props:u}=e,d=Y_(e.parent)||{},f=[],h=new Set;let p={},v=1/0;for(let w=0;w<T2;w++){const m=C2[w],y=n[m],g=u[m]!==void 0?u[m]:d[m],x=wo(g),k=m===c?y.isActive:null;k===!1&&(v=w);let j=g===d[m]&&g!==u[m]&&x;if(j&&s&&e.manuallyAnimateOnMount&&(j=!1),y.protectedKeys={...p},!y.isActive&&k===null||!g&&!y.prevProp||Nc(g)||typeof g=="boolean")continue;const E=M2(y.prevProp,g);let b=E||m===c&&y.isActive&&!j&&x||w>v&&x,P=!1;const R=Array.isArray(g)?g:[g];let I=R.reduce(r(m),{});k===!1&&(I={});const{prevResolvedValues:O={}}=y,V={...O,...I},N=$=>{b=!0,h.has($)&&(P=!0,h.delete($)),y.needsAnimating[$]=!0;const C=e.getValue($);C&&(C.liveStyle=!1)};for(const $ in V){const C=I[$],A=O[$];if(p.hasOwnProperty($))continue;let z=!1;Xd(C)&&Xd(A)?z=!c_(C,A):z=C!==A,z?C!=null?N($):h.add($):C!==void 0&&h.has($)?N($):y.protectedKeys[$]=!0}y.prevProp=g,y.prevResolvedValues=I,y.isActive&&(p={...p,...I}),s&&e.blockInitialAnimation&&(b=!1),b&&(!(j&&E)||P)&&f.push(...R.map($=>({animation:$,options:{type:m}})))}if(h.size){const w={};h.forEach(m=>{const y=e.getBaseTarget(m),g=e.getValue(m);g&&(g.liveStyle=!0),w[m]=y??null}),f.push({animation:w})}let _=!!f.length;return s&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(_=!1),s=!1,_?t(f):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)===null||d===void 0||d.forEach(h=>{var p;return(p=h.animationState)===null||p===void 0?void 0:p.setActive(c,u)}),n[c].isActive=u;const f=o(c);for(const h in n)n[h].protectedKeys={};return f}return{animateChanges:o,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=Og(),s=!0}}}function M2(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!c_(t,e):!1}function Ss(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Og(){return{animate:Ss(!0),whileInView:Ss(),whileHover:Ss(),whileTap:Ss(),whileDrag:Ss(),whileFocus:Ss(),exit:Ss()}}class ws{constructor(t){this.isMounted=!1,this.node=t}update(){}}class I2 extends ws{constructor(t){super(t),t.animationState||(t.animationState=A2(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Nc(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let R2=0;class $2 extends ws{constructor(){super(...arguments),this.id=R2++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===s)return;const r=this.node.animationState.setActive("exit",!t);n&&!t&&r.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const L2={animation:{Feature:I2},exit:{Feature:$2}},Ft={x:!1,y:!1};function q_(){return Ft.x||Ft.y}function D2(e){return e==="x"||e==="y"?Ft[e]?null:(Ft[e]=!0,()=>{Ft[e]=!1}):Ft.x||Ft.y?null:(Ft.x=Ft.y=!0,()=>{Ft.x=Ft.y=!1})}const wp=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;function So(e,t,n,s={passive:!0}){return e.addEventListener(t,n,s),()=>e.removeEventListener(t,n)}function Ko(e){return{point:{x:e.pageX,y:e.pageY}}}const z2=e=>t=>wp(t)&&e(t,Ko(t));function Xi(e,t,n,s){return So(e,t,z2(n),s)}const Fg=(e,t)=>Math.abs(e-t);function O2(e,t){const n=Fg(e.x,t.x),s=Fg(e.y,t.y);return Math.sqrt(n**2+s**2)}class G_{constructor(t,n,{transformPagePoint:s,contextWindow:r,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=Cu(this.lastMoveEventInfo,this.history),h=this.startEvent!==null,p=O2(f.offset,{x:0,y:0})>=3;if(!h&&!p)return;const{point:v}=f,{timestamp:_}=Ue;this.history.push({...v,timestamp:_});const{onStart:w,onMove:m}=this.handlers;h||(w&&w(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),m&&m(this.lastMoveEvent,f)},this.handlePointerMove=(f,h)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=Eu(h,this.transformPagePoint),ve.update(this.updatePoint,!0)},this.handlePointerUp=(f,h)=>{this.end();const{onEnd:p,onSessionEnd:v,resumeAnimation:_}=this.handlers;if(this.dragSnapToOrigin&&_&&_(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const w=Cu(f.type==="pointercancel"?this.lastMoveEventInfo:Eu(h,this.transformPagePoint),this.history);this.startEvent&&p&&p(f,w),v&&v(f,w)},!wp(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=s,this.contextWindow=r||window;const o=Ko(t),l=Eu(o,this.transformPagePoint),{point:c}=l,{timestamp:u}=Ue;this.history=[{...c,timestamp:u}];const{onSessionStart:d}=n;d&&d(t,Cu(l,this.history)),this.removeListeners=Uo(Xi(this.contextWindow,"pointermove",this.handlePointerMove),Xi(this.contextWindow,"pointerup",this.handlePointerUp),Xi(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),ms(this.updatePoint)}}function Eu(e,t){return t?{point:t(e.point)}:e}function Vg(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Cu({point:e},t){return{point:e,delta:Vg(e,X_(t)),offset:Vg(e,F2(t)),velocity:V2(t,.1)}}function F2(e){return e[0]}function X_(e){return e[e.length-1]}function V2(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,s=null;const r=X_(e);for(;n>=0&&(s=e[n],!(r.timestamp-s.timestamp>An(t)));)n--;if(!s)return{x:0,y:0};const i=Mn(r.timestamp-s.timestamp);if(i===0)return{x:0,y:0};const o={x:(r.x-s.x)/i,y:(r.y-s.y)/i};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const Q_=1e-4,B2=1-Q_,H2=1+Q_,Z_=.01,W2=0-Z_,U2=0+Z_;function _t(e){return e.max-e.min}function K2(e,t,n){return Math.abs(e-t)<=n}function Bg(e,t,n,s=.5){e.origin=s,e.originPoint=Se(t.min,t.max,e.origin),e.scale=_t(n)/_t(t),e.translate=Se(n.min,n.max,e.origin)-e.originPoint,(e.scale>=B2&&e.scale<=H2||isNaN(e.scale))&&(e.scale=1),(e.translate>=W2&&e.translate<=U2||isNaN(e.translate))&&(e.translate=0)}function Qi(e,t,n,s){Bg(e.x,t.x,n.x,s?s.originX:void 0),Bg(e.y,t.y,n.y,s?s.originY:void 0)}function Hg(e,t,n){e.min=n.min+t.min,e.max=e.min+_t(t)}function Y2(e,t,n){Hg(e.x,t.x,n.x),Hg(e.y,t.y,n.y)}function Wg(e,t,n){e.min=t.min-n.min,e.max=e.min+_t(t)}function Zi(e,t,n){Wg(e.x,t.x,n.x),Wg(e.y,t.y,n.y)}function q2(e,{min:t,max:n},s){return t!==void 0&&e<t?e=s?Se(t,e,s.min):Math.max(e,t):n!==void 0&&e>n&&(e=s?Se(n,e,s.max):Math.min(e,n)),e}function Ug(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function G2(e,{top:t,left:n,bottom:s,right:r}){return{x:Ug(e.x,n,r),y:Ug(e.y,t,s)}}function Kg(e,t){let n=t.min-e.min,s=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,s]=[s,n]),{min:n,max:s}}function X2(e,t){return{x:Kg(e.x,t.x),y:Kg(e.y,t.y)}}function Q2(e,t){let n=.5;const s=_t(e),r=_t(t);return r>s?n=qr(t.min,t.max-s,e.min):s>r&&(n=qr(e.min,e.max-r,t.min)),On(0,1,n)}function Z2(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const lf=.35;function J2(e=lf){return e===!1?e=0:e===!0&&(e=lf),{x:Yg(e,"left","right"),y:Yg(e,"top","bottom")}}function Yg(e,t,n){return{min:qg(e,t),max:qg(e,n)}}function qg(e,t){return typeof e=="number"?e:e[t]||0}const Gg=()=>({translate:0,scale:1,origin:0,originPoint:0}),Sr=()=>({x:Gg(),y:Gg()}),Xg=()=>({min:0,max:0}),Ae=()=>({x:Xg(),y:Xg()});function Ct(e){return[e("x"),e("y")]}function J_({top:e,left:t,right:n,bottom:s}){return{x:{min:t,max:n},y:{min:e,max:s}}}function eP({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function tP(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),s=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:s.y,right:s.x}}function Tu(e){return e===void 0||e===1}function cf({scale:e,scaleX:t,scaleY:n}){return!Tu(e)||!Tu(t)||!Tu(n)}function Cs(e){return cf(e)||e1(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function e1(e){return Qg(e.x)||Qg(e.y)}function Qg(e){return e&&e!=="0%"}function Bl(e,t,n){const s=e-n,r=t*s;return n+r}function Zg(e,t,n,s,r){return r!==void 0&&(e=Bl(e,r,s)),Bl(e,n,s)+t}function uf(e,t=0,n=1,s,r){e.min=Zg(e.min,t,n,s,r),e.max=Zg(e.max,t,n,s,r)}function t1(e,{x:t,y:n}){uf(e.x,t.translate,t.scale,t.originPoint),uf(e.y,n.translate,n.scale,n.originPoint)}const Jg=.999999999999,ey=1.0000000000001;function nP(e,t,n,s=!1){const r=n.length;if(!r)return;t.x=t.y=1;let i,o;for(let l=0;l<r;l++){i=n[l],o=i.projectionDelta;const{visualElement:c}=i.options;c&&c.props.style&&c.props.style.display==="contents"||(s&&i.options.layoutScroll&&i.scroll&&i!==i.root&&br(e,{x:-i.scroll.offset.x,y:-i.scroll.offset.y}),o&&(t.x*=o.x.scale,t.y*=o.y.scale,t1(e,o)),s&&Cs(i.latestValues)&&br(e,i.latestValues))}t.x<ey&&t.x>Jg&&(t.x=1),t.y<ey&&t.y>Jg&&(t.y=1)}function Nr(e,t){e.min=e.min+t,e.max=e.max+t}function ty(e,t,n,s,r=.5){const i=Se(e.min,e.max,r);uf(e,t,n,i,s)}function br(e,t){ty(e.x,t.x,t.scaleX,t.scale,t.originX),ty(e.y,t.y,t.scaleY,t.scale,t.originY)}function n1(e,t){return J_(tP(e.getBoundingClientRect(),t))}function sP(e,t,n){const s=n1(e,n),{scroll:r}=t;return r&&(Nr(s.x,r.offset.x),Nr(s.y,r.offset.y)),s}const s1=({current:e})=>e?e.ownerDocument.defaultView:null,rP=new WeakMap;class iP{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Ae(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const r=d=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Ko(d).point)},i=(d,f)=>{const{drag:h,dragPropagation:p,onDragStart:v}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=D2(h),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ct(w=>{let m=this.getAxisMotionValue(w).get()||0;if(fn.test(m)){const{projection:y}=this.visualElement;if(y&&y.layout){const g=y.layout.layoutBox[w];g&&(m=_t(g)*(parseFloat(m)/100))}}this.originPoint[w]=m}),v&&ve.postRender(()=>v(d,f)),Qd(this.visualElement,"transform");const{animationState:_}=this.visualElement;_&&_.setActive("whileDrag",!0)},o=(d,f)=>{const{dragPropagation:h,dragDirectionLock:p,onDirectionLock:v,onDrag:_}=this.getProps();if(!h&&!this.openDragLock)return;const{offset:w}=f;if(p&&this.currentDirection===null){this.currentDirection=oP(w),this.currentDirection!==null&&v&&v(this.currentDirection);return}this.updateAxis("x",f.point,w),this.updateAxis("y",f.point,w),this.visualElement.render(),_&&_(d,f)},l=(d,f)=>this.stop(d,f),c=()=>Ct(d=>{var f;return this.getAnimationState(d)==="paused"&&((f=this.getAxisMotionValue(d).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new G_(t,{onSessionStart:r,onStart:i,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:s1(this.visualElement)})}stop(t,n){const s=this.isDragging;if(this.cancel(),!s)return;const{velocity:r}=n;this.startAnimation(r);const{onDragEnd:i}=this.getProps();i&&ve.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:s}=this.getProps();!s&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,s){const{drag:r}=this.getProps();if(!s||!Na(t,r,this.currentDirection))return;const i=this.getAxisMotionValue(t);let o=this.originPoint[t]+s[t];this.constraints&&this.constraints[t]&&(o=q2(o,this.constraints[t],this.elastic[t])),i.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:s}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,i=this.constraints;n&&kr(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&r?this.constraints=G2(r.layoutBox,n):this.constraints=!1,this.elastic=J2(s),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Ct(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=Z2(r.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!kr(t))return!1;const s=t.current,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;const i=sP(s,r.root,this.visualElement.getTransformPagePoint());let o=X2(r.layout.layoutBox,i);if(n){const l=n(eP(o));this.hasMutatedConstraints=!!l,l&&(o=J_(l))}return o}startAnimation(t){const{drag:n,dragMomentum:s,dragElastic:r,dragTransition:i,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=Ct(d=>{if(!Na(d,n,this.currentDirection))return;let f=c&&c[d]||{};o&&(f={min:0,max:0});const h=r?200:1e6,p=r?40:1e7,v={type:"inertia",velocity:s?t[d]:0,bounceStiffness:h,bounceDamping:p,timeConstant:750,restDelta:1,restSpeed:10,...i,...f};return this.startAxisValueAnimation(d,v)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const s=this.getAxisMotionValue(t);return Qd(this.visualElement,t),s.start(xp(t,s,0,n,this.visualElement,!1))}stopAnimation(){Ct(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){Ct(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,s=this.visualElement.getProps(),r=s[n];return r||this.visualElement.getValue(t,(s.initial?s.initial[t]:void 0)||0)}snapToCursor(t){Ct(n=>{const{drag:s}=this.getProps();if(!Na(n,s,this.currentDirection))return;const{projection:r}=this.visualElement,i=this.getAxisMotionValue(n);if(r&&r.layout){const{min:o,max:l}=r.layout.layoutBox[n];i.set(t[n]-Se(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:s}=this.visualElement;if(!kr(n)||!s||!this.constraints)return;this.stopAnimation();const r={x:0,y:0};Ct(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();r[o]=Q2({min:c,max:c},this.constraints[o])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.resolveConstraints(),Ct(o=>{if(!Na(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:u}=this.constraints[o];l.set(Se(c,u,r[o]))})}addListeners(){if(!this.visualElement.current)return;rP.set(this.visualElement,this);const t=this.visualElement.current,n=Xi(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),s=()=>{const{dragConstraints:c}=this.getProps();kr(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:r}=this.visualElement,i=r.addEventListener("measure",s);r&&!r.layout&&(r.root&&r.root.updateScroll(),r.updateLayout()),ve.read(s);const o=So(window,"resize",()=>this.scalePositionWithinConstraints()),l=r.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(Ct(d=>{const f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=c[d].translate,f.set(f.get()+c[d].translate))}),this.visualElement.render())});return()=>{o(),n(),i(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:s=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:o=lf,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:s,dragPropagation:r,dragConstraints:i,dragElastic:o,dragMomentum:l}}}function Na(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function oP(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class aP extends ws{constructor(t){super(t),this.removeGroupControls=xt,this.removeListeners=xt,this.controls=new iP(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||xt}unmount(){this.removeGroupControls(),this.removeListeners()}}const ny=e=>(t,n)=>{e&&ve.postRender(()=>e(t,n))};class lP extends ws{constructor(){super(...arguments),this.removePointerDownListener=xt}onPointerDown(t){this.session=new G_(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:s1(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:s,onPanEnd:r}=this.node.getProps();return{onSessionStart:ny(t),onStart:ny(n),onMove:s,onEnd:(i,o)=>{delete this.session,r&&ve.postRender(()=>r(i,o))}}}mount(){this.removePointerDownListener=Xi(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const nl={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function sy(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const ki={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(ie.test(e))e=parseFloat(e);else return e;const n=sy(e,t.target.x),s=sy(e,t.target.y);return`${n}% ${s}%`}},cP={correct:(e,{treeScale:t,projectionDelta:n})=>{const s=e,r=gs.parse(e);if(r.length>5)return s;const i=gs.createTransformer(e),o=typeof r[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;r[0+o]/=l,r[1+o]/=c;const u=Se(l,c,.5);return typeof r[2+o]=="number"&&(r[2+o]/=u),typeof r[3+o]=="number"&&(r[3+o]/=u),i(r)}};class uP extends S.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s,layoutId:r}=this.props,{projection:i}=t;LC(dP),i&&(n.group&&n.group.add(i),s&&s.register&&r&&s.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),nl.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:s,drag:r,isPresent:i}=this.props,o=s.projection;return o&&(o.isPresent=i,r||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?o.promote():o.relegate()||ve.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),qh.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:s}=this.props,{projection:r}=t;r&&(r.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(r),s&&s.deregister&&s.deregister(r))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function r1(e){const[t,n]=Bw(),s=S.useContext(Vh);return a.jsx(uP,{...e,layoutGroup:s,switchLayoutGroup:S.useContext(Xw),isPresent:t,safeToRemove:n})}const dP={borderRadius:{...ki,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ki,borderTopRightRadius:ki,borderBottomLeftRadius:ki,borderBottomRightRadius:ki,boxShadow:cP};function fP(e,t,n){const s=et(e)?e:ko(e);return s.start(xp("",s,t,n)),s.animation}function hP(e){return e instanceof SVGElement&&e.tagName!=="svg"}const pP=(e,t)=>e.depth-t.depth;class mP{constructor(){this.children=[],this.isDirty=!1}add(t){ip(this.children,t),this.isDirty=!0}remove(t){op(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(pP),this.isDirty=!1,this.children.forEach(t)}}function gP(e,t){const n=hn.now(),s=({timestamp:r})=>{const i=r-n;i>=t&&(ms(s),e(i-t))};return ve.read(s,!0),()=>ms(s)}const i1=["TopLeft","TopRight","BottomLeft","BottomRight"],yP=i1.length,ry=e=>typeof e=="string"?parseFloat(e):e,iy=e=>typeof e=="number"||ie.test(e);function vP(e,t,n,s,r,i){r?(e.opacity=Se(0,n.opacity!==void 0?n.opacity:1,xP(s)),e.opacityExit=Se(t.opacity!==void 0?t.opacity:1,0,wP(s))):i&&(e.opacity=Se(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,s));for(let o=0;o<yP;o++){const l=`border${i1[o]}Radius`;let c=oy(t,l),u=oy(n,l);if(c===void 0&&u===void 0)continue;c||(c=0),u||(u=0),c===0||u===0||iy(c)===iy(u)?(e[l]=Math.max(Se(ry(c),ry(u),s),0),(fn.test(u)||fn.test(c))&&(e[l]+="%")):e[l]=u}(t.rotate||n.rotate)&&(e.rotate=Se(t.rotate||0,n.rotate||0,s))}function oy(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const xP=o1(0,.5,k_),wP=o1(.5,.95,xt);function o1(e,t,n){return s=>s<e?0:s>t?1:n(qr(e,t,s))}function ay(e,t){e.min=t.min,e.max=t.max}function bt(e,t){ay(e.x,t.x),ay(e.y,t.y)}function ly(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function cy(e,t,n,s,r){return e-=t,e=Bl(e,1/n,s),r!==void 0&&(e=Bl(e,1/r,s)),e}function _P(e,t=0,n=1,s=.5,r,i=e,o=e){if(fn.test(t)&&(t=parseFloat(t),t=Se(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=Se(i.min,i.max,s);e===i&&(l-=t),e.min=cy(e.min,t,n,l,r),e.max=cy(e.max,t,n,l,r)}function uy(e,t,[n,s,r],i,o){_P(e,t[n],t[s],t[r],t.scale,i,o)}const kP=["x","scaleX","originX"],jP=["y","scaleY","originY"];function dy(e,t,n,s){uy(e.x,t,kP,n?n.x:void 0,s?s.x:void 0),uy(e.y,t,jP,n?n.y:void 0,s?s.y:void 0)}function fy(e){return e.translate===0&&e.scale===1}function a1(e){return fy(e.x)&&fy(e.y)}function hy(e,t){return e.min===t.min&&e.max===t.max}function SP(e,t){return hy(e.x,t.x)&&hy(e.y,t.y)}function py(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function l1(e,t){return py(e.x,t.x)&&py(e.y,t.y)}function my(e){return _t(e.x)/_t(e.y)}function gy(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class NP{constructor(){this.members=[]}add(t){ip(this.members,t),t.scheduleRender()}remove(t){if(op(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(r=>t===r);if(n===0)return!1;let s;for(let r=n;r>=0;r--){const i=this.members[r];if(i.isPresent!==!1){s=i;break}}return s?(this.promote(s),!0):!1}promote(t,n){const s=this.lead;if(t!==s&&(this.prevLead=s,this.lead=t,t.show(),s)){s.instance&&s.scheduleRender(),t.scheduleRender(),t.resumeFrom=s,n&&(t.resumeFrom.preserveOpacity=!0),s.snapshot&&(t.snapshot=s.snapshot,t.snapshot.latestValues=s.animationValues||s.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:r}=t.options;r===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:s}=t;n.onExitComplete&&n.onExitComplete(),s&&s.options.onExitComplete&&s.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function bP(e,t,n){let s="";const r=e.x.translate/t.x,i=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((r||i||o)&&(s=`translate3d(${r}px, ${i}px, ${o}px) `),(t.x!==1||t.y!==1)&&(s+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:f,rotateY:h,skewX:p,skewY:v}=n;u&&(s=`perspective(${u}px) ${s}`),d&&(s+=`rotate(${d}deg) `),f&&(s+=`rotateX(${f}deg) `),h&&(s+=`rotateY(${h}deg) `),p&&(s+=`skewX(${p}deg) `),v&&(s+=`skewY(${v}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(s+=`scale(${l}, ${c})`),s||"none"}const Ts={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Ii=typeof window<"u"&&window.MotionDebug!==void 0,Pu=["","X","Y","Z"],EP={visibility:"hidden"},yy=1e3;let CP=0;function Au(e,t,n,s){const{latestValues:r}=t;r[e]&&(n[e]=r[e],t.setStaticValue(e,0),s&&(s[e]=0))}function c1(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=f_(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:r,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",ve,!(r||i))}const{parent:s}=e;s&&!s.hasCheckedOptimisedAppear&&c1(s)}function u1({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:s,resetTransform:r}){return class{constructor(o={},l=t==null?void 0:t()){this.id=CP++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Ii&&(Ts.totalNodes=Ts.resolvedTargetDeltas=Ts.recalculatedProjection=0),this.nodes.forEach(AP),this.nodes.forEach(LP),this.nodes.forEach(DP),this.nodes.forEach(MP),Ii&&window.MotionDebug.record(Ts)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;c<this.path.length;c++)this.path[c].shouldResetTransform=!0;this.root===this&&(this.nodes=new mP)}addEventListener(o,l){return this.eventHandlers.has(o)||this.eventHandlers.set(o,new ap),this.eventHandlers.get(o).add(l)}notifyListeners(o,...l){const c=this.eventHandlers.get(o);c&&c.notify(...l)}hasListeners(o){return this.eventHandlers.has(o)}mount(o,l=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=hP(o),this.instance=o;const{layoutId:c,layout:u,visualElement:d}=this.options;if(d&&!d.current&&d.mount(o),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),l&&(u||c)&&(this.isLayoutDirty=!0),e){let f;const h=()=>this.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=gP(h,250),nl.hasAnimatedSinceResize&&(nl.hasAnimatedSinceResize=!1,this.nodes.forEach(xy))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:h,hasRelativeTargetChanged:p,layout:v})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const _=this.options.transition||d.getDefaultTransition()||BP,{onLayoutAnimationStart:w,onLayoutAnimationComplete:m}=d.getProps(),y=!this.targetLayout||!l1(this.targetLayout,v)||p,g=!h&&p;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||g||h&&(y||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,g);const x={...rp(_,"layout"),onPlay:w,onComplete:m};(d.shouldReduceMotion||this.options.layoutRoot)&&(x.delay=0,x.type=!1),this.startAnimation(x)}else h||xy(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=v})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ms(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(zP),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&c1(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d<this.path.length;d++){const f=this.path[d];f.shouldResetTransform=!0,f.updateScroll("snapshot"),f.options.layoutRoot&&f.willUpdate(!1)}const{layoutId:l,layout:c}=this.options;if(l===void 0&&!c)return;const u=this.getTransformTemplate();this.prevTransformTemplateValue=u?u(this.latestValues,""):void 0,this.updateSnapshot(),o&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(vy);return}this.isUpdating||this.nodes.forEach(RP),this.isUpdating=!1,this.nodes.forEach($P),this.nodes.forEach(TP),this.nodes.forEach(PP),this.clearAllSnapshots();const l=hn.now();Ue.delta=On(0,1e3/60,l-Ue.timestamp),Ue.timestamp=l,Ue.isProcessing=!0,ku.update.process(Ue),ku.preRender.process(Ue),ku.render.process(Ue),Ue.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,qh.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(IP),this.sharedNodes.forEach(OP)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,ve.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){ve.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c<this.path.length;c++)this.path[c].updateScroll();const o=this.layout;this.layout=this.measure(!1),this.layoutCorrected=Ae(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:l}=this.options;l&&l.notify("LayoutMeasure",this.layout.layoutBox,o?o.layoutBox:void 0)}updateScroll(o="measure"){let l=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===o&&(l=!1),l){const c=s(this.instance);this.scroll={animationId:this.root.animationId,phase:o,isRoot:c,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:c}}}resetTransform(){if(!r)return;const o=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,l=this.projectionDelta&&!a1(this.projectionDelta),c=this.getTransformTemplate(),u=c?c(this.latestValues,""):void 0,d=u!==this.prevTransformTemplateValue;o&&(l||Cs(this.latestValues)||d)&&(r(this.instance,u),this.shouldResetTransform=!1,this.scheduleRender())}measure(o=!0){const l=this.measurePageBox();let c=this.removeElementScroll(l);return o&&(c=this.removeTransform(c)),HP(c),{animationId:this.root.animationId,measuredBox:l,layoutBox:c,latestValues:{},source:this.id}}measurePageBox(){var o;const{visualElement:l}=this.options;if(!l)return Ae();const c=l.measureViewportBox();if(!(((o=this.scroll)===null||o===void 0?void 0:o.wasRoot)||this.path.some(WP))){const{scroll:d}=this.root;d&&(Nr(c.x,d.offset.x),Nr(c.y,d.offset.y))}return c}removeElementScroll(o){var l;const c=Ae();if(bt(c,o),!((l=this.scroll)===null||l===void 0)&&l.wasRoot)return c;for(let u=0;u<this.path.length;u++){const d=this.path[u],{scroll:f,options:h}=d;d!==this.root&&f&&h.layoutScroll&&(f.wasRoot&&bt(c,o),Nr(c.x,f.offset.x),Nr(c.y,f.offset.y))}return c}applyTransform(o,l=!1){const c=Ae();bt(c,o);for(let u=0;u<this.path.length;u++){const d=this.path[u];!l&&d.options.layoutScroll&&d.scroll&&d!==d.root&&br(c,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),Cs(d.latestValues)&&br(c,d.latestValues)}return Cs(this.latestValues)&&br(c,this.latestValues),c}removeTransform(o){const l=Ae();bt(l,o);for(let c=0;c<this.path.length;c++){const u=this.path[c];if(!u.instance||!Cs(u.latestValues))continue;cf(u.latestValues)&&u.updateSnapshot();const d=Ae(),f=u.measurePageBox();bt(d,f),dy(l,u.latestValues,u.snapshot?u.snapshot.layoutBox:void 0,d)}return Cs(this.latestValues)&&dy(l,this.latestValues),l}setTargetDelta(o){this.targetDelta=o,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(o){this.options={...this.options,...o,crossfade:o.crossfade!==void 0?o.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Ue.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(o=!1){var l;const c=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=c.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=c.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=c.isSharedProjectionDirty);const u=!!this.resumingFrom||this!==c;if(!(o||u&&this.isSharedProjectionDirty||this.isProjectionDirty||!((l=this.parent)===null||l===void 0)&&l.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:f,layoutId:h}=this.options;if(!(!this.layout||!(f||h))){if(this.resolvedRelativeTargetAt=Ue.timestamp,!this.targetDelta&&!this.relativeTarget){const p=this.getClosestProjectingParent();p&&p.layout&&this.animationProgress!==1?(this.relativeParent=p,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Ae(),this.relativeTargetOrigin=Ae(),Zi(this.relativeTargetOrigin,this.layout.layoutBox,p.layout.layoutBox),bt(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=Ae(),this.targetWithTransforms=Ae()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),Y2(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):bt(this.target,this.layout.layoutBox),t1(this.target,this.targetDelta)):bt(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const p=this.getClosestProjectingParent();p&&!!p.resumingFrom==!!this.resumingFrom&&!p.options.layoutScroll&&p.target&&this.animationProgress!==1?(this.relativeParent=p,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Ae(),this.relativeTargetOrigin=Ae(),Zi(this.relativeTargetOrigin,this.target,p.target),bt(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}Ii&&Ts.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||cf(this.parent.latestValues)||e1(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var o;const l=this.getLead(),c=!!this.resumingFrom||this!==l;let u=!0;if((this.isProjectionDirty||!((o=this.parent)===null||o===void 0)&&o.isProjectionDirty)&&(u=!1),c&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(u=!1),this.resolvedRelativeTargetAt===Ue.timestamp&&(u=!1),u)return;const{layout:d,layoutId:f}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||f))return;bt(this.layoutCorrected,this.layout.layoutBox);const h=this.treeScale.x,p=this.treeScale.y;nP(this.layoutCorrected,this.treeScale,this.path,c),l.layout&&!l.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(l.target=l.layout.layoutBox,l.targetWithTransforms=Ae());const{target:v}=l;if(!v){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(ly(this.prevProjectionDelta.x,this.projectionDelta.x),ly(this.prevProjectionDelta.y,this.projectionDelta.y)),Qi(this.projectionDelta,this.layoutCorrected,v,this.latestValues),(this.treeScale.x!==h||this.treeScale.y!==p||!gy(this.projectionDelta.x,this.prevProjectionDelta.x)||!gy(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",v)),Ii&&Ts.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(o=!0){var l;if((l=this.options.visualElement)===null||l===void 0||l.scheduleRender(),o){const c=this.getStack();c&&c.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Sr(),this.projectionDelta=Sr(),this.projectionDeltaWithTransform=Sr()}setAnimationOrigin(o,l=!1){const c=this.snapshot,u=c?c.latestValues:{},d={...this.latestValues},f=Sr();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!l;const h=Ae(),p=c?c.source:void 0,v=this.layout?this.layout.source:void 0,_=p!==v,w=this.getStack(),m=!w||w.members.length<=1,y=!!(_&&!m&&this.options.crossfade===!0&&!this.path.some(VP));this.animationProgress=0;let g;this.mixTargetDelta=x=>{const k=x/1e3;wy(f.x,o.x,k),wy(f.y,o.y,k),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Zi(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),FP(this.relativeTarget,this.relativeTargetOrigin,h,k),g&&SP(this.relativeTarget,g)&&(this.isProjectionDirty=!1),g||(g=Ae()),bt(g,this.relativeTarget)),_&&(this.animationValues=d,vP(d,u,this.latestValues,k,y,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=k},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ms(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ve.update(()=>{nl.hasAnimatedSinceResize=!0,this.currentAnimation=fP(0,yy,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(yy),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=o;if(!(!l||!c||!u)){if(this!==o&&this.layout&&u&&d1(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Ae();const f=_t(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+f;const h=_t(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+h}bt(l,c),br(l,d),Qi(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new NP),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&Au("z",o,u,this.animationValues);for(let d=0;d<Pu.length;d++)Au(`rotate${Pu[d]}`,o,u,this.animationValues),Au(`skew${Pu[d]}`,o,u,this.animationValues);o.render();for(const d in u)o.setStaticValue(d,u[d]),this.animationValues&&(this.animationValues[d]=u[d]);o.scheduleRender()}getProjectionStyles(o){var l,c;if(!this.instance||this.isSVG)return;if(!this.isVisible)return EP;const u={visibility:""},d=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,u.opacity="",u.pointerEvents=el(o==null?void 0:o.pointerEvents)||"",u.transform=d?d(this.latestValues,""):"none",u;const f=this.getLead();if(!this.projectionDelta||!this.layout||!f.target){const _={};return this.options.layoutId&&(_.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,_.pointerEvents=el(o==null?void 0:o.pointerEvents)||""),this.hasProjected&&!Cs(this.latestValues)&&(_.transform=d?d({},""):"none",this.hasProjected=!1),_}const h=f.animationValues||f.latestValues;this.applyTransformsToTarget(),u.transform=bP(this.projectionDeltaWithTransform,this.treeScale,h),d&&(u.transform=d(h,u.transform));const{x:p,y:v}=this.projectionDelta;u.transformOrigin=`${p.origin*100}% ${v.origin*100}% 0`,f.animationValues?u.opacity=f===this?(c=(l=h.opacity)!==null&&l!==void 0?l:this.latestValues.opacity)!==null&&c!==void 0?c:1:this.preserveOpacity?this.latestValues.opacity:h.opacityExit:u.opacity=f===this?h.opacity!==void 0?h.opacity:"":h.opacityExit!==void 0?h.opacityExit:0;for(const _ in Dl){if(h[_]===void 0)continue;const{correct:w,applyTo:m}=Dl[_],y=u.transform==="none"?h[_]:w(h[_],f);if(m){const g=m.length;for(let x=0;x<g;x++)u[m[x]]=y}else u[_]=y}return this.options.layoutId&&(u.pointerEvents=f===this?el(o==null?void 0:o.pointerEvents)||"":"none"),u}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(o=>{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(vy),this.root.sharedNodes.clear()}}}function TP(e){e.updateLayout()}function PP(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:r}=e.layout,{animationType:i}=e.options,o=n.source!==e.layout.source;i==="size"?Ct(f=>{const h=o?n.measuredBox[f]:n.layoutBox[f],p=_t(h);h.min=s[f].min,h.max=h.min+p}):d1(i,n.layoutBox,s)&&Ct(f=>{const h=o?n.measuredBox[f]:n.layoutBox[f],p=_t(s[f]);h.max=h.min+p,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+p)});const l=Sr();Qi(l,s,n.layoutBox);const c=Sr();o?Qi(c,e.applyTransform(r,!0),n.measuredBox):Qi(c,s,n.layoutBox);const u=!a1(l);let d=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:h,layout:p}=f;if(h&&p){const v=Ae();Zi(v,n.layoutBox,h.layoutBox);const _=Ae();Zi(_,s,p.layoutBox),l1(v,_)||(d=!0),f.options.layoutRoot&&(e.relativeTarget=_,e.relativeTargetOrigin=v,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:s,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeTargetChanged:d})}else if(e.isLead()){const{onExitComplete:s}=e.options;s&&s()}e.options.transition=void 0}function AP(e){Ii&&Ts.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function MP(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function IP(e){e.clearSnapshot()}function vy(e){e.clearMeasurements()}function RP(e){e.isLayoutDirty=!1}function $P(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function xy(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function LP(e){e.resolveTargetDelta()}function DP(e){e.calcProjection()}function zP(e){e.resetSkewAndRotation()}function OP(e){e.removeLeadSnapshot()}function wy(e,t,n){e.translate=Se(t.translate,0,n),e.scale=Se(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function _y(e,t,n,s){e.min=Se(t.min,n.min,s),e.max=Se(t.max,n.max,s)}function FP(e,t,n,s){_y(e.x,t.x,n.x,s),_y(e.y,t.y,n.y,s)}function VP(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const BP={duration:.45,ease:[.4,0,.1,1]},ky=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),jy=ky("applewebkit/")&&!ky("chrome/")?Math.round:xt;function Sy(e){e.min=jy(e.min),e.max=jy(e.max)}function HP(e){Sy(e.x),Sy(e.y)}function d1(e,t,n){return e==="position"||e==="preserve-aspect"&&!K2(my(t),my(n),.2)}function WP(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const UP=u1({attachResizeListener:(e,t)=>So(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Mu={current:void 0},f1=u1({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Mu.current){const e=new UP({});e.mount(window),e.setOptions({layoutScroll:!0}),Mu.current=e}return Mu.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),KP={pan:{Feature:lP},drag:{Feature:aP,ProjectionNode:f1,MeasureLayout:r1}};function YP(e,t,n){var s;if(e instanceof Element)return[e];if(typeof e=="string"){let r=document;const i=(s=void 0)!==null&&s!==void 0?s:r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function h1(e,t){const n=YP(e),s=new AbortController,r={passive:!0,...t,signal:s.signal};return[n,r,()=>s.abort()]}function Ny(e){return t=>{t.pointerType==="touch"||q_()||e(t)}}function qP(e,t,n={}){const[s,r,i]=h1(e,n),o=Ny(l=>{const{target:c}=l,u=t(l);if(typeof u!="function"||!c)return;const d=Ny(f=>{u(f),c.removeEventListener("pointerleave",d)});c.addEventListener("pointerleave",d,r)});return s.forEach(l=>{l.addEventListener("pointerenter",o,r)}),i}function by(e,t,n){const{props:s}=e;e.animationState&&s.whileHover&&e.animationState.setActive("whileHover",n==="Start");const r="onHover"+n,i=s[r];i&&ve.postRender(()=>i(t,Ko(t)))}class GP extends ws{mount(){const{current:t}=this.node;t&&(this.unmount=qP(t,n=>(by(this.node,n,"Start"),s=>by(this.node,s,"End"))))}unmount(){}}class XP extends ws{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Uo(So(this.node.current,"focus",()=>this.onFocus()),So(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const p1=(e,t)=>t?e===t?!0:p1(e,t.parentElement):!1,QP=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function ZP(e){return QP.has(e.tagName)||e.tabIndex!==-1}const Ri=new WeakSet;function Ey(e){return t=>{t.key==="Enter"&&e(t)}}function Iu(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const JP=(e,t)=>{const n=e.currentTarget;if(!n)return;const s=Ey(()=>{if(Ri.has(n))return;Iu(n,"down");const r=Ey(()=>{Iu(n,"up")}),i=()=>Iu(n,"cancel");n.addEventListener("keyup",r,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",s,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",s),t)};function Cy(e){return wp(e)&&!q_()}function eA(e,t,n={}){const[s,r,i]=h1(e,n),o=l=>{const c=l.currentTarget;if(!Cy(l)||Ri.has(c))return;Ri.add(c);const u=t(l),d=(p,v)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",h),!(!Cy(p)||!Ri.has(c))&&(Ri.delete(c),typeof u=="function"&&u(p,{success:v}))},f=p=>{d(p,n.useGlobalTarget||p1(c,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",f,r),window.addEventListener("pointercancel",h,r)};return s.forEach(l=>{!ZP(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,r),l.addEventListener("focus",u=>JP(u,r),r)}),i}function Ty(e,t,n){const{props:s}=e;e.animationState&&s.whileTap&&e.animationState.setActive("whileTap",n==="Start");const r="onTap"+(n==="End"?"":n),i=s[r];i&&ve.postRender(()=>i(t,Ko(t)))}class tA extends ws{mount(){const{current:t}=this.node;t&&(this.unmount=eA(t,n=>(Ty(this.node,n,"Start"),(s,{success:r})=>Ty(this.node,s,r?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const df=new WeakMap,Ru=new WeakMap,nA=e=>{const t=df.get(e.target);t&&t(e)},sA=e=>{e.forEach(nA)};function rA({root:e,...t}){const n=e||document;Ru.has(n)||Ru.set(n,{});const s=Ru.get(n),r=JSON.stringify(t);return s[r]||(s[r]=new IntersectionObserver(sA,{root:e,...t})),s[r]}function iA(e,t,n){const s=rA(t);return df.set(e,n),s.observe(e),()=>{df.delete(e),s.unobserve(e)}}const oA={some:0,all:1};class aA extends ws{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:s,amount:r="some",once:i}=t,o={root:n?n.current:void 0,rootMargin:s,threshold:typeof r=="number"?r:oA[r]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:f}=this.node.getProps(),h=u?d:f;h&&h(c)};return iA(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(lA(t,n))&&this.startObserver()}unmount(){}}function lA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const cA={inView:{Feature:aA},tap:{Feature:tA},focus:{Feature:XP},hover:{Feature:GP}},uA={layout:{ProjectionNode:f1,MeasureLayout:r1}},ff={current:null},m1={current:!1};function dA(){if(m1.current=!0,!!Wh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>ff.current=e.matches;e.addListener(t),t()}else ff.current=!1}const fA=[...L_,Ze,gs],hA=e=>fA.find($_(e)),Py=new WeakMap;function pA(e,t,n){for(const s in t){const r=t[s],i=n[s];if(et(r))e.addValue(s,r);else if(et(i))e.addValue(s,ko(r,{owner:e}));else if(i!==r)if(e.hasValue(s)){const o=e.getValue(s);o.liveStyle===!0?o.jump(r):o.hasAnimated||o.set(r)}else{const o=e.getStaticValue(s);e.addValue(s,ko(o!==void 0?o:r,{owner:e}))}}for(const s in n)t[s]===void 0&&e.removeValue(s);return t}const Ay=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class mA{scrapeMotionValuesFromProps(t,n,s){return{}}constructor({parent:t,props:n,presenceContext:s,reducedMotionConfig:r,blockInitialAnimation:i,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=gp,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const p=hn.now();this.renderScheduledAt<p&&(this.renderScheduledAt=p,ve.render(this.render,!1,!0))};const{latestValues:c,renderState:u,onUpdate:d}=o;this.onUpdate=d,this.latestValues=c,this.baseTarget={...c},this.initialValues=n.initial?{...c}:{},this.renderState=u,this.parent=t,this.props=n,this.presenceContext=s,this.depth=t?t.depth+1:0,this.reducedMotionConfig=r,this.options=l,this.blockInitialAnimation=!!i,this.isControllingVariants=bc(n),this.isVariantNode=qw(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:f,...h}=this.scrapeMotionValuesFromProps(n,{},this);for(const p in h){const v=h[p];c[p]!==void 0&&et(v)&&v.set(c[p],!1)}}mount(t){this.current=t,Py.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,s)=>this.bindToMotionValue(s,n)),m1.current||dA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:ff.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Py.delete(this.current),this.projection&&this.projection.unmount(),ms(this.notifyUpdate),ms(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const s=nr.has(t),r=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&ve.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{r(),i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Yr){const n=Yr[t];if(!n)continue;const{isEnabled:s,Feature:r}=n;if(!this.features[t]&&r&&s(this.props)&&(this.features[t]=new r(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Ae()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let s=0;s<Ay.length;s++){const r=Ay[s];this.propEventSubscriptions[r]&&(this.propEventSubscriptions[r](),delete this.propEventSubscriptions[r]);const i="on"+r,o=t[i];o&&(this.propEventSubscriptions[r]=this.on(r,o))}this.prevMotionValues=pA(this,this.scrapeMotionValuesFromProps(t,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(t),()=>n.variantChildren.delete(t)}addValue(t,n){const s=this.values.get(t);n!==s&&(s&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let s=this.values.get(t);return s===void 0&&n!==void 0&&(s=ko(n===null?void 0:n,{owner:this}),this.addValue(t,s)),s}readValue(t,n){var s;let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(s=this.getBaseTargetFromProps(this.props,t))!==null&&s!==void 0?s:this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(I_(r)||S_(r))?r=parseFloat(r):!hA(r)&&gs.test(n)&&(r=P_(t,n)),this.setBaseTarget(t,et(r)?r.get():r)),et(r)?r.get():r}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:s}=this.props;let r;if(typeof s=="string"||typeof s=="object"){const o=Xh(this.props,s,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(r=o[t])}if(s&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!et(i)?i:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new ap),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class g1 extends mA{constructor(){super(...arguments),this.KeyframeResolver=D_}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:s}){delete n[t],delete s[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;et(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function gA(e){return window.getComputedStyle(e)}class yA extends g1{constructor(){super(...arguments),this.type="html",this.renderInstance=s_}readValueFromInstance(t,n){if(nr.has(n)){const s=mp(n);return s&&s.default||0}else{const s=gA(t),r=(e_(n)?s.getPropertyValue(n):s[n])||0;return typeof r=="string"?r.trim():r}}measureInstanceViewportBox(t,{transformPagePoint:n}){return n1(t,n)}build(t,n,s){Jh(t,n,s.transformTemplate)}scrapeMotionValuesFromProps(t,n,s){return sp(t,n,s)}}class vA extends g1{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Ae}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(nr.has(n)){const s=mp(n);return s&&s.default||0}return n=r_.has(n)?n:Yh(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,s){return a_(t,n,s)}build(t,n,s){ep(t,n,this.isSVGTag,s.transformTemplate)}renderInstance(t,n,s,r){i_(t,n,s,r)}mount(t){this.isSVGTag=np(t.tagName),super.mount(t)}}const xA=(e,t)=>Gh(e)?new vA(t):new yA(t,{allowProjection:e!==S.Fragment}),wA=UC({...L2,...cA,...KP,...uA},xA),Ye=oC(wA),ba="local".toLowerCase(),y1=ba==="mock"||ba==="app"||ba==="local"?ba:"local",le=y1!=="mock",Me=y1==="app",My={init:{status:"idle",message:"尚未开始配置"},design:{status:"idle",message:"尚未开始设计"},setup:{status:"idle",message:"尚未开始搭建"},adjust:{status:"idle",message:"尚未开始参数调整"},test:{status:"idle",message:"尚未开始试运行"},run:{status:"idle",message:"尚未开始运行"}};function _A(e){return{version:2,stage:e.stage,theme:e.theme,layout:e.layout,projectId:e.projectId,currentWorkflowId:e.currentWorkflowId}}function kA(e,t){if(!mn(t))return e;const n=IA(t.stage)?t.stage:e.stage,s=t.theme==="dark"||t.theme==="light"?t.theme:e.theme,r=typeof t.projectId=="string"&&t.projectId.trim()?t.projectId:null,i=typeof t.currentWorkflowId=="string"&&t.currentWorkflowId.trim()?t.currentWorkflowId:null;return{...e,stage:n!=="home"&&n!=="account"&&n!=="engines"&&!r?"home":n,theme:s,projectId:r,currentWorkflowId:i,layout:{...e.layout,...mn(t.layout)?t.layout:{}}}}function Tc(e){var _,w,m,y,g,x,k,j,E,b,P;const t=((_=e.projectState)==null?void 0:_.stageRuntime)??My,n=e.files.some(R=>R.path==="workflow.yml"),s=n&&!!e.workflow,r=t.design.status!=="idle"||!!((w=e.projectState)!=null&&w.lastTasks.design)||n||e.files.some(R=>R.path==="views.yml"||R.path.startsWith("recipes/")),i={...My,...t,init:r&&t.init.status==="idle"?{status:"succeeded",message:"配置已完成",retryable:!1}:t.init,design:t.design},o=i.setup.status==="blocked"||i.setup.status==="failed",l=i.design.status==="succeeded"&&s,c=o||((m=e.projectState)==null?void 0:m.stage)==="design"&&l?"setup":((y=e.projectState)==null?void 0:y.stage)??e.fallbackStage??"init",u=NA(e.projectState,i.design),d=(x=(g=e.projectState)==null?void 0:g.lastTasks.setup)==null?void 0:x.outputs,f=jA(d),h=(k=e.projectState)==null?void 0:k.runSnapshot,p=i.design.status==="failed",v=bA(e.files);return v&&((j=e.engineBinding)!=null&&j.machineId)&&(v.selectedMachineId=e.engineBinding.machineId),{projectId:e.projectId,...v?{init:v}:{},projectFiles:e.files,workflows:e.workflows??[],currentWorkflowId:SA(e),workflowFiles:e.workflowFiles??[],stageRuntime:i,stage:c,steps:((E=e.workflow)==null?void 0:E.steps)??[],edges:((b=e.workflow)==null?void 0:b.edges)??[],fields:(f==null?void 0:f.fields)??[],views:(f==null?void 0:f.views)??[],tableUrl:TA(d,"tableUrl"),tickets:(h==null?void 0:h.records.map(R=>({id:R.id,title:R.title,customer:R.id,category:"真实记录",priority:R.state,status:R.status,currentStepId:R.currentStepId,doneStepIds:R.doneStepIds,createdAt:R.createdAt})))??[],logs:(h==null?void 0:h.logs.map(R=>({id:R.id,ts:R.ts,ticketId:R.itemId,stepId:R.stepId,level:R.level,text:R.text})))??[],designDiscovery:u,designStatus:l?{phase:"done",round:null,rounds:null,agentEvents:0,message:`已从后端恢复真实工作流 ${e.projectId}`}:p?{phase:"error",round:null,rounds:null,agentEvents:0,message:((P=i.design.error)==null?void 0:P.message)??i.design.message??`已恢复失败的真实项目 ${e.projectId}`}:{phase:"idle",round:null,rounds:null,agentEvents:0,message:`已恢复真实项目 ${e.projectId}`}}}function jA(e){if(!mn(e)||!mn(e.schema))return null;const t=Array.isArray(e.schema.fields)?e.schema.fields.filter(PA):[],n=Array.isArray(e.schema.views)?e.schema.views.filter(AA):[];return{fields:t,views:n}}function SA(e){var s;const t=e.workflows??[];if(t.length===0)return null;const n=e.currentWorkflowId??null;return n&&t.some(r=>r.id===n)?n:((s=t[0])==null?void 0:s.id)??null}function v1(e,t,n){return e===t?n:null}function NA(e,t){var r;const n=e==null?void 0:e.lastTasks.design;if(t.status!=="blocked"||t.checkpoint!=="discovery_waiting_user"||(n==null?void 0:n.status)!=="blocked")return null;const s=(r=n.outputs)==null?void 0:r.discovery;return!mn(s)||!MA(s.form)||typeof s.summary!="string"||!mn(s.answers)||typeof s.confirmed!="boolean"?null:{form:s.form,answers:s.answers,summary:s.summary,confirmed:s.confirmed,clarifications:typeof s.clarifications=="string"?s.clarifications:void 0}}function bA(e){var u;const t=(u=e.find(d=>d.path==="aitable-workflow.config.yml"))==null?void 0:u.content;if(!t)return null;const n=Sn(t,"name")??"",s=Sn(t,"base_id"),r=Sn(t,"table_id")??"",i=Sn(t,"provider"),o=Sn(t,"model"),l=Sn(t,"engine"),c=CA(t,"scene")??"";return!s&&!i&&!o?null:{name:n,agentsSelected:l==="qoder"||l==="codex"?[l]:["claude"],selectedMachineId:"",tableConnected:!!s,tableBaseId:s??"",tableId:r,llmProvider:i??"",llmModel:o??"",roles:EA(e),sop:c}}function EA(e){return e.filter(t=>t.path.startsWith("roles/")&&t.path.endsWith(".role.yml")&&t.content).map(t=>{const n=Sn(t.content,"id")??"",s=Sn(t.content,"name")??"",r=Sn(t.content,"persona")??"";return{id:n,name:s,persona:r,skills:[],knowledge:[]}}).filter(t=>t.id&&t.name)}function Sn(e,t){const n=new RegExp(`^\\s*${t}:\\s*(?:"([^"]*)"|'([^']*)'|([^#\\n]*))`,"m"),s=e.match(n),r=(s==null?void 0:s[1])??(s==null?void 0:s[2])??(s==null?void 0:s[3]),i=r==null?void 0:r.trim();return i||null}function CA(e,t){const n=new RegExp(`^${t}:\\s*\\|\\n([\\s\\S]*?)(?=\\n\\S|$)`,"m"),s=e.match(n);return s!=null&&s[1]&&s[1].split(`
|
|
49
|
+
`).map(i=>i.replace(/^ /,"")).join(`
|
|
50
|
+
`).trim()||null}function TA(e,t){if(!mn(e))return null;const n=e[t];return typeof n=="string"&&n.trim()?n:null}function PA(e){return mn(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.type=="string"&&(e.group==="business"||e.group==="process")}function AA(e){return mn(e)&&typeof e.id=="string"&&typeof e.name=="string"&&(e.kind==="grid"||e.kind==="kanban"||e.kind==="calendar"||e.kind==="form"||e.kind==="gantt")&&typeof e.desc=="string"}function mn(e){return typeof e=="object"&&e!==null}function MA(e){return mn(e)&&typeof e.id=="string"&&typeof e.title=="string"&&Array.isArray(e.questions)}function IA(e){return e==="home"||e==="init"||e==="design"||e==="setup"||e==="adjust"||e==="test"||e==="run"||e==="account"||e==="engines"}const Iy={"workflow.yml":"流程编排","aitable-workflow.config.yml":"运行配置","coding-agents.config.json":"执行引擎","views.yml":"视图方案",".gitkeep":"目录占位"};function x1(e){return{label:RA(e.toolName,e.toolInput),detail:$A(e.toolName,e.toolInput,e.projectId)}}function RA(e,t){if(!e)return"处理生成进度";const n=e.toLowerCase();if(n==="bash")return LA(hf(t));if(n.includes("write")||n.includes("edit")){const s=Pc(hf(t));return s?s.name:"更新生成文件"}return n.includes("read")?"读取上下文":n.includes("mkdir")?"创建目录":n.includes("grep")||n.includes("search")?"检索项目内容":"执行生成动作"}function $A(e,t,n){const s=hf(t);if((e==null?void 0:e.toLowerCase())==="bash"&&s)return DA(s,n);const r=s?Pc(s):null;return r?r.purpose:t?_p(t.replace(/\s+/g," "),64):void 0}function Pc(e){var l;const t=e.indexOf("recipes/");if(t>=0){const c=(l=e.slice(t).match(/^[^\s'\"]+/))==null?void 0:l[0];if(c)return{name:c.split("/").pop()??c,purpose:"步骤脚本"}}const n=e.match(/(?:^|[/\\])([^/\\\s'"]+\.(?:yml|yaml|json|ts|tsx|md))$/);if(n!=null&&n[1]){const c=n[1];return{name:c,purpose:Iy[c]??"项目文件"}}const s=e.match(/(?:^|\s)(?:[~./\w-]+\/)?((?:recipes\/)?[^\s'\"]+\.(?:yml|yaml|json|ts|tsx|md))/);if(!(s!=null&&s[1]))return null;const r=s[1].replace(/^.*?(recipes\/)/u,"$1"),i=r.split("/").pop()??r,o=r.startsWith("recipes/")?"步骤脚本":Iy[i]??"项目文件";return{name:i,purpose:o}}function _p(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}function LA(e){const t=e.trim().toLowerCase();return/^mkdir\b/.test(t)?"创建目录":/^(install|touch)\b/.test(t)?"准备生成文件":/^(ls|find|test|cat|pwd)\b/.test(t)?"检查生成结果":/\b(pnpm|npm|tsx|tsc|node|vitest)\b/.test(t)?"校验生成文件":"执行生成命令"}function DA(e,t){const n=e.replace(/\s+/g," ").trim(),s=t?zA(n,t):null;if(s)return s;const r=Pc(n);return r?`${r.purpose} · ${r.name}`:`命令 · ${_p(OA(n),72)}`}function hf(e){if(!e)return"";const t=e.trim();try{const n=JSON.parse(t);for(const s of["file_path","path","command","cmd"]){const r=n[s];if(typeof r=="string"&&r.trim())return r}}catch{}return t}function zA(e,t){var i;const n=FA(t),s=e.match(new RegExp(`(?:^|[\\s'"])(?:[^\\s'"]*/)?${n}(?:/([^\\s'"]+))?`));if(!s)return null;const r=((i=s[1])==null?void 0:i.replace(/^\/+/,""))??"";return r?`${t}/${r}`:t}function OA(e){return e.replace(/\/Users\/[^/\s]+\/Documents\/Work\/code\/[^\s]+\/?/g,"").replace(/\/private\/var\/folders\/[^\s]+\/?/g,"").replace(/\/var\/folders\/[^\s]+\/?/g,"")}function FA(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const VA=300,pf=200,BA=4e3;function Ry(e,t=pf){return e.length>t?`${e.slice(0,t)}…`:e}function $y(e,t=BA){return e.length>t?`${e.slice(0,t)}…`:e}function HA(e,t,n=VA){if(!t.length)return e;const s=[...e,...t];return s.length>n?s.slice(s.length-n):s}function WA(e,t){var n,s,r,i,o,l,c,u;switch(e.type){case"text":{const d=(n=e.content)==null?void 0:n.trim();return d?{kind:"text",text:d,round:t}:null}case"thinking":{const d=(s=e.content)==null?void 0:s.trim();return d?{kind:"thinking",text:d,round:t}:null}case"tool_use":{const d=x1({toolName:e.toolName,toolInput:e.toolInput});return{kind:"tool",text:d.detail?`${d.label} — ${d.detail}`:d.label,toolName:e.toolName,round:t}}case"tool_result":{const d=(r=e.content)==null?void 0:r.trim(),f=((i=e.toolName)==null?void 0:i.trim())||void 0,h=d?`↩ ${Ry(d)}`:f?`↩ ${f} 返回结果`:"↩ 工具返回结果",p=d&&d.length>pf?$y(d):void 0;return p?{kind:"tool_result",text:h,toolName:f,round:t,fullText:p}:{kind:"tool_result",text:h,toolName:f,round:t}}case"permission_request":{const d=((o=e.toolName)==null?void 0:o.trim())||void 0,f=(l=e.content)==null?void 0:l.trim(),h=d?`${d} 待授权`:"待授权请求",p=f?`${h} — ${Ry(f)}`:h,v=f&&f.length>pf?$y(f):void 0;return v?{kind:"permission",text:p,toolName:d,round:t,fullText:v}:{kind:"permission",text:p,toolName:d,round:t}}case"result":{const d=(c=e.content)==null?void 0:c.trim();return d?{kind:"status",text:d,round:t}:null}case"error":return{kind:"status",text:((u=e.content)==null?void 0:u.trim())||"执行出错",round:t};default:return null}}function UA(e){var t,n,s;switch(e.type){case"setup.progress":{const r=(t=e.message)==null?void 0:t.trim();return r?{kind:"status",text:`[setup] ${r}`}:null}case"setup.done":return{kind:"status",text:"[setup] 完成",boundary:!0};case"error":return{kind:"status",text:`[setup] 错误: ${((s=(n=e.error)==null?void 0:n.message)==null?void 0:s.trim())||"未知错误"}`};default:return null}}function KA(e){var t,n,s,r,i,o,l,c,u,d,f;switch(e.type){case"run.step.started":{const h=((t=e.stepName)==null?void 0:t.trim())||e.stepId||"步骤";return{kind:"tool",text:`[run] ▶ ${h}`,toolName:h}}case"run.step.succeeded":return{kind:"status",text:`[run] ✓ ${((n=e.stepName)==null?void 0:n.trim())||e.stepId||"步骤"}`};case"run.step.failed":{const h=((s=e.stepName)==null?void 0:s.trim())||e.stepId||"步骤",p=(r=e.error)==null?void 0:r.trim();return{kind:"status",text:p?`[run] ✗ ${h}:${p}`:`[run] ✗ ${h}`}}case"run.record.blocked":{const h=((i=e.stepName)==null?void 0:i.trim())||e.stepId||"步骤",p=(o=e.reason)==null?void 0:o.trim();return{kind:"status",text:p?`[run] ✗ ${h}:${p}`:`[run] ✗ ${h}`}}case"run.record.detected":return{kind:"status",text:`[run] 记录: ${((c=(l=e.record)==null?void 0:l.title)==null?void 0:c.trim())||((u=e.record)==null?void 0:u.id)||"记录"}`};case"run.stopped":return{kind:"status",text:"[run] 停止",boundary:!0};case"error":return{kind:"status",text:`[run] 错误: ${((f=(d=e.error)==null?void 0:d.message)==null?void 0:f.trim())||"未知错误"}`};default:return null}}function YA(e){const t=[];let n=!1,s,r=!1;for(const i of e){if(i.boundary){n=!0;continue}const o=i.round!==s;(!r||n||o)&&(t.push({round:i.round,items:[]}),n=!1,s=i.round,r=!0);const l=t[t.length-1].items;if(i.kind==="text"||i.kind==="thinking"){const u=l[l.length-1];if(u&&u.kind===i.kind){u.text+=i.text;continue}l.push({kind:i.kind,text:i.text});continue}const c={kind:i.kind,text:i.text,toolName:i.toolName};i.fullText!==void 0&&(c.fullText=i.fullText),l.push(c)}return t}const w1="aitable-workflow:shell-state:v2",qA="aitable-workflow:state:v1",En={stage:"home",theme:"light",mode:le?"live":"mock",layout:{railCollapsed:!1,chatCollapsed:!1,chatWidth:460},projectId:null,projectSource:"new",projects:[],workflows:[],currentWorkflowId:null,workflowFiles:[],init:{name:"",agentsSelected:[],selectedMachineId:"",tableConnected:!1,tableBaseId:"",tableId:"",llmProvider:"",llmModel:"",roles:[],sop:""},steps:[],edges:[],fields:[],views:[],tableUrl:null,projectFiles:[],stageRuntime:{init:{status:"idle",message:"尚未开始配置"},design:{status:"idle",message:"尚未开始设计"},setup:{status:"idle",message:"尚未开始搭建"},adjust:{status:"idle",message:"尚未开始参数调整"},test:{status:"idle",message:"尚未开始试运行"},run:{status:"idle",message:"尚未开始运行"}},designDiscovery:null,designStatus:{phase:"idle",round:null,rounds:null,agentEvents:0,message:"尚未开始设计"},agentTraceLog:[],agentTraceOpen:!1,tickets:[],logs:[],validation:{}};function GA(){if(typeof window>"u")return En;try{const e=window.localStorage.getItem(w1)??window.localStorage.getItem(qA);return e?kA(En,JSON.parse(e)):En}catch{return En}}function XA(){if(!(typeof window>"u"))try{window.localStorage.setItem(w1,JSON.stringify(_A(re)))}catch{}}let re=GA();const mf=new Set;function Fe(){XA();for(const e of mf)e()}const B={get(){return re},set(e){re={...re,...e},Fe()},update(e){re={...re,...e(re)},Fe()},setStage(e){re={...re,stage:e},Fe()},setRailCollapsed(e){re={...re,layout:{...re.layout,railCollapsed:e}},Fe()},setChatCollapsed(e){re={...re,layout:{...re.layout,chatCollapsed:e}},Fe()},setChatWidth(e){re={...re,layout:{...re.layout,chatWidth:e,chatCollapsed:!1}},Fe()},toggleTheme(){const e=re.theme==="light"?"dark":"light";document.documentElement.setAttribute("data-theme",e),re={...re,theme:e},Fe()},addTicket(e){re={...re,tickets:[e,...re.tickets]},Fe()},updateTicket(e,t){re={...re,tickets:re.tickets.map(n=>n.id===e?{...n,...t}:n)},Fe()},appendLog(e){re={...re,logs:[...re.logs,e]},Fe()},appendAgentTrace(e){const t=Array.isArray(e)?e:[e],n=HA(re.agentTraceLog,t);n!==re.agentTraceLog&&(re={...re,agentTraceLog:n},Fe())},clearAgentTrace(){re.agentTraceLog.length!==0&&(re={...re,agentTraceLog:[]},Fe())},setAgentTraceOpen(e){re.agentTraceOpen!==e&&(re={...re,agentTraceOpen:e},Fe())},toggleAgentTrace(){re={...re,agentTraceOpen:!re.agentTraceOpen},Fe()},setStepStatus(e,t){re={...re,steps:re.steps.map(n=>n.id===e?{...n,status:t}:n)},Fe()},reset(){re={...En,theme:re.theme,projects:re.projects,stageRuntime:En.stageRuntime},Fe()},startNewWorkflow(){re={...En,theme:re.theme,projects:re.projects,projectId:re.projectId,stage:"init",stageRuntime:En.stageRuntime},Fe()},setCurrentWorkflow(e,t){re={...re,currentWorkflowId:e,workflowFiles:t},Fe()},subscribe(e){return mf.add(e),()=>mf.delete(e)}};function ee(e){return S.useSyncExternalStore(B.subscribe,()=>e(B.get()),()=>e(En))}const QA={sparkle:"M12 2l1.9 5.8L20 9.7l-5.1 3.7L16 20l-4-3.6L8 20l1.1-6.6L4 9.7l6.1-1.9z",check:"M4 12l5 5L20 6","chevron-right":"M9 6l6 6-6 6","chevron-down":"M6 9l6 6 6-6","chevron-left":"M15 6l-6 6 6 6","chevron-up":"M6 15l6-6 6 6",plus:"M12 5v14M5 12h14",play:"M7 5v14l12-7z",pause:"M8 5v14M16 5v14",refresh:"M23 4v6h-6 M1 20v-6h6 M3.51 9a9 9 0 0114.85-3.36L23 10 M1 14l4.64 4.36A9 9 0 0020.49 15",moon:"M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z",sun:"M12 4V2M12 22v-2M4 12H2M22 12h-2M5.6 5.6L4.2 4.2M19.8 19.8l-1.4-1.4M18.4 5.6l1.4-1.4M4.2 19.8l1.4-1.4M12 8a4 4 0 100 8 4 4 0 000-8z",table:"M3 5h18v14H3zM3 10h18M9 10v9M15 10v9",flow:"M5 5h5v5H5zM14 14h5v5h-5zM10 7h4M12 10v4",robot:"M12 3v3M7 6h10a2 2 0 012 2v9a2 2 0 01-2 2H7a2 2 0 01-2-2V8a2 2 0 012-2zM9 12h.01M15 12h.01",lock:"M6 11V8a6 6 0 0112 0v3M5 11h14v9H5z",bolt:"M13 2L4 14h6l-1 8 9-12h-6z",file:"M6 2h8l4 4v16H6zM14 2v4h4",folder:"M3 6h6l2 2h10v12H3z",link:"M10 13a5 5 0 007 0l2-2a5 5 0 00-7-7l-1 1M14 11a5 5 0 00-7 0l-2 2a5 5 0 007 7l1-1",send:"M22 2L11 13M22 2l-7 20-4-9-9-4z",user:"M12 12a4 4 0 100-8 4 4 0 000 8zM4 21a8 8 0 0116 0",warn:"M12 3l10 18H2zM12 10v5M12 18h.01",close:"M6 6l12 12M18 6L6 18",dot:"M12 12h.01"};function D({name:e,size:t=16,color:n="currentColor",style:s}){const r=e==="play"||e==="pause"||e==="sparkle"||e==="bolt";return a.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:r?n:"none",stroke:r?"none":n,strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round",style:s,"aria-hidden":!0,children:a.jsx("path",{d:QA[e]})})}const ZA="";async function JA(e,t){return await(await _1("/api/auth/register",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({username:e,password:t})})).json()}async function eM(e,t){return await(await _1("/api/auth/login",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({username:e,password:t})})).json()}async function _1(e,t){var s;let n;try{n=await fetch(`${ZA}${e}`,t)}catch(r){const i=r instanceof Error?r.message:String(r);throw new Error(`无法连接后端服务(当前站点):${i}`)}if(!n.ok){const r=await n.text();try{const i=JSON.parse(r);if((s=i.error)!=null&&s.message)throw new Error(i.error.message)}catch(i){if(i instanceof Error&&i.message!==r)throw i}throw new Error(r||`HTTP ${n.status}`)}return n}const gf="aitable-auth:v1";function tM(){if(typeof window>"u")return{token:null,user:null};try{const e=window.localStorage.getItem(gf);if(!e)return{token:null,user:null};const t=JSON.parse(e);return{token:typeof t.token=="string"?t.token:null,user:t.user??null}}catch{return{token:null,user:null}}}function nM(e){if(!(typeof window>"u"))try{e.token?window.localStorage.setItem(gf,JSON.stringify(e)):window.localStorage.removeItem(gf)}catch{}}let Gn=tM();const yf=new Set;function $u(){nM(Gn);for(const e of yf)e()}const qs={get(){return Gn},isLoggedIn(){return Gn.token!==null&&Gn.user!==null},async login(e,t){const n=await eM(e,t);Gn={token:n.token,user:n.user},$u()},async register(e,t){const n=await JA(e,t);Gn={token:n.token,user:n.user},$u()},logout(){Gn={token:null,user:null},$u()},getToken(){return Gn.token},subscribe(e){return yf.add(e),()=>{yf.delete(e)}}},sM={token:null,user:null};function kp(){return S.useSyncExternalStore(qs.subscribe,()=>qs.get(),()=>sM)}let Hl=null;function rM(e){Hl=e}function iM(){return Hl!==null}function oM(){const t=new URLSearchParams(window.location.search).get("token");if(t){rM(t);const n=new URL(window.location.href);return n.searchParams.delete("token"),window.history.replaceState({},"",n.toString()),!0}return!1}async function sr(e,t){if(!Hl)throw new Error("Dev token not set");const n=await fetch(e,{...t,headers:{...t==null?void 0:t.headers,Authorization:`Bearer ${Hl}`}});if(!n.ok){const s=await n.text();try{const r=JSON.parse(s);if(r.error)throw new Error(r.error)}catch(r){if(r instanceof Error&&r.message!==s)throw r}throw new Error(s||`HTTP ${n.status}`)}return n}async function Ly(e){return await(await sr("/dev/config/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({updates:e})})).json()}async function aM(){await sr("/dev/setup/complete",{method:"POST"})}async function lM(e,t){return await(await sr("/dev/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({roleId:e,files:t})})).json()}async function cM(e,t){return await(await sr("/dev/kb/ingest",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({roleId:e,source:t})})).json()}async function uM(){return await(await sr("/dev/config/enriched")).json()}async function dM(e){return await(await sr(`/dev/file/read?path=${encodeURIComponent(e)}`)).json()}async function fM(e,t){return await(await sr("/dev/file/write",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,content:t})})).json()}const hM=[{id:"init",label:"配置"},{id:"design",label:"设计"},{id:"setup",label:"搭建"},{id:"test",label:"试运行"},{id:"run",label:"运行"}],pM=[{id:"adjust",label:"参数调整"}];function mM(){const e=ee(r=>r.stage),t=ee(r=>r.stageRuntime),n=ee(r=>r.projectSource),s=iM()?pM:hM;return a.jsx("nav",{className:"stepper","aria-label":"阶段进度",children:s.map((r,i)=>{const o=r.id===e,l=t[r.id].status==="succeeded",c=n==="imported"&&(r.id==="init"||r.id==="design"||r.id==="setup");return a.jsxs(S.Fragment,{children:[i>0&&a.jsx("span",{className:"stepper__sep"}),a.jsxs("button",{type:"button",className:"stepper__item"+(o?" is-active":"")+(l||c?" is-done":""),onClick:()=>B.setStage(r.id),title:c?"已随包导入":void 0,children:[a.jsx("span",{className:"stepper__num",children:l||c?a.jsx(D,{name:"check",size:12}):i+1}),r.label]})]},r.id)})})}function k1({onConfirm:e,onCancel:t}){const[n,s]=S.useState("未命名项目");return a.jsx("div",{className:"modal-overlay",onClick:t,children:a.jsxs("div",{className:"import-panel",style:{maxWidth:400},onClick:r=>r.stopPropagation(),children:[a.jsxs("div",{className:"import-panel__head",children:[a.jsx("span",{className:"import-panel__title",children:"新建项目"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:t,children:a.jsx(D,{name:"close",size:14})})]}),a.jsx("div",{className:"import-panel__body",children:a.jsxs("div",{className:"role-field",children:[a.jsx("label",{className:"role-field__label",children:"项目名称"}),a.jsx("input",{className:"import-confirm__input",value:n,onChange:r=>s(r.target.value),placeholder:"输入项目名称",autoFocus:!0,onKeyDown:r=>{r.key==="Enter"&&n.trim()&&e(n.trim())}})]})}),a.jsxs("div",{className:"import-panel__foot",children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:t,children:"取消"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:!n.trim(),onClick:()=>e(n.trim()),children:"创建项目"})]})]})})}const gM="";async function j1(){return(await(await ke("/api/projects",{method:"POST"})).json()).project}async function yM(e,t){const n={};return e&&e.trim()&&(n.title=e.trim()),t&&t.length>0&&(n.files=t),await(await ke("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)})).json()}async function vM(e){return await(await ke(`/api/projects/${e}`,{method:"DELETE"})).json()}async function xM(e){return await(await ke(`/api/projects/${e}/export`)).json()}async function wM(e){return await(await ke(`/api/projects/${e}/validate`,{method:"POST"})).json()}async function vf(e){return(await(await ke(`/api/projects/${e}/workflows`)).json()).workflows}async function _M(e,t){const n={name:t.name};return t.templatePath&&(n.templatePath=t.templatePath),t.files&&t.files.length>0&&(n.files=t.files),await(await ke(`/api/projects/${e}/workflows`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n)})).json()}async function xf(e,t){return await(await ke(`/api/projects/${e}/workflows/${t}`)).json()}async function kM(e,t){return await(await ke(`/api/projects/${e}/workflows/${t}`,{method:"DELETE"})).json()}async function S1(){await ke("/api/health")}async function jM(){return await(await ke("/api/agents")).json()}async function Wl(){return(await(await ke("/api/projects")).json()).projects}async function SM(e,t){return(await(await ke(`/api/projects/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({title:t})})).json()).project}async function jp(e){return await(await ke(`/api/projects/${e}/state`)).json()}async function NM(e,t){return await(await ke(`/api/projects/${e}/init`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)})).json()}async function bM(e,t){return await(await ke(`/api/projects/${e}/table-id`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({tableId:t})})).json()}async function EM(e){return await(await ke(`/api/projects/${e}/design/discovery`,{method:"POST"})).json()}async function CM(e,t){return await(await ke(`/api/projects/${e}/design/discovery/confirm`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({answers:t})})).json()}async function Yo(e){const n=await(await ke(`/api/projects/${e}/workflow`)).json();return LM(n.workflow)}async function qo(e){return(await(await ke(`/api/projects/${e}/files`)).json()).files}async function TM(e,t){await Sp(`/api/projects/${e}/design`,t)}async function PM(e,t){await Sp(`/api/projects/${e}/setup`,t)}async function AM(e,t){await Sp(`/api/projects/${e}/run`,t)}async function MM(e,t,n){return(await(await ke(`/api/projects/${e}/run/records/${t}/human-action`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:n})})).json()).state}async function Lr(e){return await(await ke(`/api/projects/${e}/engine`)).json()}async function N1(e,t){await ke(`/api/projects/${e}/engine`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({machineId:t})})}async function ke(e,t){var r;const n=qs.getToken();if(n){const i=new Headers(t==null?void 0:t.headers);i.set("Authorization",`Bearer ${n}`),t={...t,headers:i}}let s;try{s=await fetch(`${gM}${e}`,t)}catch(i){const o=i instanceof Error?i.message:String(i);throw new Error(`无法连接真实后端服务(当前站点):${o}`)}if(!s.ok){const i=await s.text();try{const o=JSON.parse(i);if((r=o.error)!=null&&r.message)throw new Error(o.error.message)}catch(o){if(o instanceof Error&&o.message!==i)throw o}throw new Error(i||`HTTP ${s.status}`)}return s}const IM=5,RM=500,$M=8e3;async function Sp(e,t){let n=null,s=0;for(;;)try{const r=n?`${e}${e.includes("?")?"&":"?"}cursor=${encodeURIComponent(n)}`:e,i=await ke(r,{method:"POST"});if(!i.body)return;const o=i.body.getReader(),l=new TextDecoder;let c="";for(;;){const{done:u,value:d}=await o.read();if(u)return;s=0,c+=l.decode(d,{stream:!0});const f=c.split(`
|
|
51
|
+
|
|
52
|
+
`);c=f.pop()??"";for(const h of f){const p=h.split(`
|
|
53
|
+
`),v=p.find(w=>w.startsWith("id: "));v&&(n=v.slice(4).trim());const _=p.find(w=>w.startsWith("data: "));_&&await t(JSON.parse(_.slice(6)))}}}catch(r){if(s+=1,s>IM)throw r;const i=Math.min($M,RM*2**(s-1));await new Promise(o=>setTimeout(o,i))}}function LM(e){return{steps:e.steps.map(t=>({id:t.id,name:t.name,recipe:t.recipe??"",engine:DM(t.engine),auto:t.auto,requiresAgent:!!t.requires_agent,needsHuman:!!t.needs_human,inputs:Object.values(t.input_mapping??{}),outputs:Object.values(t.output_mapping??{}),status:"idle"})),edges:e.edges.filter(t=>t.from!=="__start__"&&t.to!=="__end__")}}function DM(e){return e==="claude"||e==="codex"||e==="qoder"||e==="llm_only"?e:"llm_only"}var Dy={},zM=function(e,t,n,s,r){var i=new Worker(Dy[t]||(Dy[t]=URL.createObjectURL(new Blob([e+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return i.onmessage=function(o){var l=o.data,c=l.$e$;if(c){var u=new Error(c[0]);u.code=c[1],u.stack=c[2],r(u,null)}else r(null,l)},i.postMessage(n,s),i},_e=Uint8Array,st=Uint16Array,Go=Int32Array,ui=new _e([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),di=new _e([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),No=new _e([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),b1=function(e,t){for(var n=new st(31),s=0;s<31;++s)n[s]=t+=1<<e[s-1];for(var r=new Go(n[30]),s=1;s<30;++s)for(var i=n[s];i<n[s+1];++i)r[i]=i-n[s]<<5|s;return{b:n,r}},E1=b1(ui,2),Np=E1.b,Ul=E1.r;Np[28]=258,Ul[258]=28;var C1=b1(di,0),T1=C1.b,wf=C1.r,bo=new st(32768);for(var ge=0;ge<32768;++ge){var Wn=(ge&43690)>>1|(ge&21845)<<1;Wn=(Wn&52428)>>2|(Wn&13107)<<2,Wn=(Wn&61680)>>4|(Wn&3855)<<4,bo[ge]=((Wn&65280)>>8|(Wn&255)<<8)>>1}var Rt=function(e,t,n){for(var s=e.length,r=0,i=new st(t);r<s;++r)e[r]&&++i[e[r]-1];var o=new st(t);for(r=1;r<t;++r)o[r]=o[r-1]+i[r-1]<<1;var l;if(n){l=new st(1<<t);var c=15-t;for(r=0;r<s;++r)if(e[r])for(var u=r<<4|e[r],d=t-e[r],f=o[e[r]-1]++<<d,h=f|(1<<d)-1;f<=h;++f)l[bo[f]>>c]=u}else for(l=new st(s),r=0;r<s;++r)e[r]&&(l[r]=bo[o[e[r]-1]++]>>15-e[r]);return l},Fn=new _e(288);for(var ge=0;ge<144;++ge)Fn[ge]=8;for(var ge=144;ge<256;++ge)Fn[ge]=9;for(var ge=256;ge<280;++ge)Fn[ge]=7;for(var ge=280;ge<288;++ge)Fn[ge]=8;var Xr=new _e(32);for(var ge=0;ge<32;++ge)Xr[ge]=5;var P1=Rt(Fn,9,0),A1=Rt(Fn,9,1),M1=Rt(Xr,5,0),I1=Rt(Xr,5,1),sl=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Et=function(e,t,n){var s=t/8|0;return(e[s]|e[s+1]<<8)>>(t&7)&n},rl=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Xo=function(e){return(e+7)/8|0},rr=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new _e(e.subarray(t,n))},R1=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Ie=function(e,t,n){var s=new Error(t||R1[e]);if(s.code=e,Error.captureStackTrace&&Error.captureStackTrace(s,Ie),!n)throw s;return s},$1=function(e,t,n,s){var r=e.length,i=s?s.length:0;if(!r||t.f&&!t.l)return n||new _e(0);var o=!n,l=o||t.i!=2,c=t.i;o&&(n=new _e(r*3));var u=function(ne){var J=n.length;if(ne>J){var X=new _e(Math.max(J*2,ne));X.set(n),n=X}},d=t.f||0,f=t.p||0,h=t.b||0,p=t.l,v=t.d,_=t.m,w=t.n,m=r*8;do{if(!p){d=Et(e,f,1);var y=Et(e,f+1,3);if(f+=3,y)if(y==1)p=A1,v=I1,_=9,w=5;else if(y==2){var j=Et(e,f,31)+257,E=Et(e,f+10,15)+4,b=j+Et(e,f+5,31)+1;f+=14;for(var P=new _e(b),R=new _e(19),I=0;I<E;++I)R[No[I]]=Et(e,f+I*3,7);f+=E*3;for(var O=sl(R),V=(1<<O)-1,N=Rt(R,O,1),I=0;I<b;){var T=N[Et(e,f,V)];f+=T&15;var g=T>>4;if(g<16)P[I++]=g;else{var M=0,$=0;for(g==16?($=3+Et(e,f,3),f+=2,M=P[I-1]):g==17?($=3+Et(e,f,7),f+=3):g==18&&($=11+Et(e,f,127),f+=7);$--;)P[I++]=M}}var C=P.subarray(0,j),A=P.subarray(j);_=sl(C),w=sl(A),p=Rt(C,_,1),v=Rt(A,w,1)}else Ie(1);else{var g=Xo(f)+4,x=e[g-4]|e[g-3]<<8,k=g+x;if(k>r){c&&Ie(0);break}l&&u(h+x),n.set(e.subarray(g,k),h),t.b=h+=x,t.p=f=k*8,t.f=d;continue}if(f>m){c&&Ie(0);break}}l&&u(h+131072);for(var z=(1<<_)-1,L=(1<<w)-1,F=f;;F=f){var M=p[rl(e,f)&z],U=M>>4;if(f+=M&15,f>m){c&&Ie(0);break}if(M||Ie(2),U<256)n[h++]=U;else if(U==256){F=f,p=null;break}else{var W=U-254;if(U>264){var I=U-257,K=ui[I];W=Et(e,f,(1<<K)-1)+Np[I],f+=K}var G=v[rl(e,f)&L],Q=G>>4;G||Ie(3),f+=G&15;var A=T1[Q];if(Q>3){var K=di[Q];A+=rl(e,f)&(1<<K)-1,f+=K}if(f>m){c&&Ie(0);break}l&&u(h+131072);var H=h+W;if(h<A){var q=i-A,te=Math.min(A,H);for(q+h<0&&Ie(3);h<te;++h)n[h]=s[q+h]}for(;h<H;++h)n[h]=n[h-A]}}t.l=p,t.p=F,t.b=h,t.f=d,p&&(d=1,t.m=_,t.d=v,t.n=w)}while(!d);return h!=n.length&&o?rr(n,0,h):n.subarray(0,h)},nn=function(e,t,n){n<<=t&7;var s=t/8|0;e[s]|=n,e[s+1]|=n>>8},lr=function(e,t,n){n<<=t&7;var s=t/8|0;e[s]|=n,e[s+1]|=n>>8,e[s+2]|=n>>16},il=function(e,t){for(var n=[],s=0;s<e.length;++s)e[s]&&n.push({s,f:e[s]});var r=n.length,i=n.slice();if(!r)return{t:Ep,l:0};if(r==1){var o=new _e(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(k,j){return k.f-j.f}),n.push({s:-1,f:25001});var l=n[0],c=n[1],u=0,d=1,f=2;for(n[0]={s:-1,f:l.f+c.f,l,r:c};d!=r-1;)l=n[n[u].f<n[f].f?u++:f++],c=n[u!=d&&n[u].f<n[f].f?u++:f++],n[d++]={s:-1,f:l.f+c.f,l,r:c};for(var h=i[0].s,s=1;s<r;++s)i[s].s>h&&(h=i[s].s);var p=new st(h+1),v=Kl(n[d-1],p,0);if(v>t){var s=0,_=0,w=v-t,m=1<<w;for(i.sort(function(j,E){return p[E.s]-p[j.s]||j.f-E.f});s<r;++s){var y=i[s].s;if(p[y]>t)_+=m-(1<<v-p[y]),p[y]=t;else break}for(_>>=w;_>0;){var g=i[s].s;p[g]<t?_-=1<<t-p[g]++-1:++s}for(;s>=0&&_;--s){var x=i[s].s;p[x]==t&&(--p[x],++_)}v=t}return{t:new _e(p),l:v}},Kl=function(e,t,n){return e.s==-1?Math.max(Kl(e.l,t,n+1),Kl(e.r,t,n+1)):t[e.s]=n},_f=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new st(++t),s=0,r=e[0],i=1,o=function(c){n[s++]=c},l=1;l<=t;++l)if(e[l]==r&&l!=t)++i;else{if(!r&&i>2){for(;i>138;i-=138)o(32754);i>2&&(o(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(o(r),--i;i>6;i-=6)o(8304);i>2&&(o(i-3<<5|8208),i=0)}for(;i--;)o(r);i=1,r=e[l]}return{c:n.subarray(0,s),n:t}},cr=function(e,t){for(var n=0,s=0;s<t.length;++s)n+=e[s]*t[s];return n},bp=function(e,t,n){var s=n.length,r=Xo(t+2);e[r]=s&255,e[r+1]=s>>8,e[r+2]=e[r]^255,e[r+3]=e[r+1]^255;for(var i=0;i<s;++i)e[r+i+4]=n[i];return(r+4+s)*8},kf=function(e,t,n,s,r,i,o,l,c,u,d){nn(t,d++,n),++r[256];for(var f=il(r,15),h=f.t,p=f.l,v=il(i,15),_=v.t,w=v.l,m=_f(h),y=m.c,g=m.n,x=_f(_),k=x.c,j=x.n,E=new st(19),b=0;b<y.length;++b)++E[y[b]&31];for(var b=0;b<k.length;++b)++E[k[b]&31];for(var P=il(E,7),R=P.t,I=P.l,O=19;O>4&&!R[No[O-1]];--O);var V=u+5<<3,N=cr(r,Fn)+cr(i,Xr)+o,T=cr(r,h)+cr(i,_)+o+14+3*O+cr(E,R)+2*E[16]+3*E[17]+7*E[18];if(c>=0&&V<=N&&V<=T)return bp(t,d,e.subarray(c,c+u));var M,$,C,A;if(nn(t,d,1+(T<N)),d+=2,T<N){M=Rt(h,p,0),$=h,C=Rt(_,w,0),A=_;var z=Rt(R,I,0);nn(t,d,g-257),nn(t,d+5,j-1),nn(t,d+10,O-4),d+=14;for(var b=0;b<O;++b)nn(t,d+3*b,R[No[b]]);d+=3*O;for(var L=[y,k],F=0;F<2;++F)for(var U=L[F],b=0;b<U.length;++b){var W=U[b]&31;nn(t,d,z[W]),d+=R[W],W>15&&(nn(t,d,U[b]>>5&127),d+=U[b]>>12)}}else M=P1,$=Fn,C=M1,A=Xr;for(var b=0;b<l;++b){var K=s[b];if(K>255){var W=K>>18&31;lr(t,d,M[W+257]),d+=$[W+257],W>7&&(nn(t,d,K>>23&31),d+=ui[W]);var G=K&31;lr(t,d,C[G]),d+=A[G],G>3&&(lr(t,d,K>>5&8191),d+=di[G])}else lr(t,d,M[K]),d+=$[K]}return lr(t,d,M[256]),d+$[256]},L1=new Go([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ep=new _e(0),D1=function(e,t,n,s,r,i){var o=i.z||e.length,l=new _e(s+o+5*(1+Math.ceil(o/7e3))+r),c=l.subarray(s,l.length-r),u=i.l,d=(i.r||0)&7;if(t){d&&(c[0]=i.r>>3);for(var f=L1[t-1],h=f>>13,p=f&8191,v=(1<<n)-1,_=i.p||new st(32768),w=i.h||new st(v+1),m=Math.ceil(n/3),y=2*m,g=function(oe){return(e[oe]^e[oe+1]<<m^e[oe+2]<<y)&v},x=new Go(25e3),k=new st(288),j=new st(32),E=0,b=0,P=i.i||0,R=0,I=i.w||0,O=0;P+2<o;++P){var V=g(P),N=P&32767,T=w[V];if(_[N]=T,w[V]=N,I<=P){var M=o-P;if((E>7e3||R>24576)&&(M>423||!u)){d=kf(e,c,0,x,k,j,b,R,O,P-O,d),R=E=b=0,O=P;for(var $=0;$<286;++$)k[$]=0;for(var $=0;$<30;++$)j[$]=0}var C=2,A=0,z=p,L=N-T&32767;if(M>2&&V==g(P-L))for(var F=Math.min(h,M)-1,U=Math.min(32767,P),W=Math.min(258,M);L<=U&&--z&&N!=T;){if(e[P+C]==e[P+C-L]){for(var K=0;K<W&&e[P+K]==e[P+K-L];++K);if(K>C){if(C=K,A=L,K>F)break;for(var G=Math.min(L,K-2),Q=0,$=0;$<G;++$){var H=P-L+$&32767,q=_[H],te=H-q&32767;te>Q&&(Q=te,T=H)}}}N=T,T=_[N],L+=N-T&32767}if(A){x[R++]=268435456|Ul[C]<<18|wf[A];var ne=Ul[C]&31,J=wf[A]&31;b+=ui[ne]+di[J],++k[257+ne],++j[J],I=P+C,++E}else x[R++]=e[P],++k[e[P]]}}for(P=Math.max(P,I);P<o;++P)x[R++]=e[P],++k[e[P]];d=kf(e,c,u,x,k,j,b,R,O,P-O,d),u||(i.r=d&7|c[d/8|0]<<3,d-=7,i.h=w,i.p=_,i.i=P,i.w=I)}else{for(var P=i.w||0;P<o+u;P+=65535){var X=P+65535;X>=o&&(c[d/8|0]=u,X=o),d=bp(c,d+1,e.subarray(P,X))}i.i=o}return rr(l,0,s+Xo(d)+r)},OM=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var n=t,s=9;--s;)n=(n&1&&-306674912)^n>>>1;e[t]=n}return e}(),FM=function(){var e=-1;return{p:function(t){for(var n=e,s=0;s<t.length;++s)n=OM[n&255^t[s]]^n>>>8;e=n},d:function(){return~e}}},z1=function(e,t,n,s,r){if(!r&&(r={l:1},t.dictionary)){var i=t.dictionary.subarray(-32768),o=new _e(i.length+e.length);o.set(i),o.set(e,i.length),e=o,r.w=i.length}return D1(e,t.level==null?6:t.level,t.mem==null?r.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,s,r)},Cp=function(e,t){var n={};for(var s in e)n[s]=e[s];for(var s in t)n[s]=t[s];return n},zy=function(e,t,n){for(var s=e(),r=e.toString(),i=r.slice(r.indexOf("[")+1,r.lastIndexOf("]")).replace(/\s+/g,"").split(","),o=0;o<s.length;++o){var l=s[o],c=i[o];if(typeof l=="function"){t+=";"+c+"=";var u=l.toString();if(l.prototype)if(u.indexOf("[native code]")!=-1){var d=u.indexOf(" ",8)+1;t+=u.slice(d,u.indexOf("(",d))}else{t+=u;for(var f in l.prototype)t+=";"+c+".prototype."+f+"="+l.prototype[f].toString()}else t+=u}else n[c]=l}return t},Ea=[],VM=function(e){var t=[];for(var n in e)e[n].buffer&&t.push((e[n]=new e[n].constructor(e[n])).buffer);return t},BM=function(e,t,n,s){if(!Ea[n]){for(var r="",i={},o=e.length-1,l=0;l<o;++l)r=zy(e[l],r,i);Ea[n]={c:zy(e[o],r,i),e:i}}var c=Cp({},Ea[n].e);return zM(Ea[n].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+t.toString()+"}",n,c,VM(c),s)},HM=function(){return[_e,st,Go,ui,di,No,Np,T1,A1,I1,bo,R1,Rt,sl,Et,rl,Xo,rr,Ie,$1,Pp,Ac,O1]},WM=function(){return[_e,st,Go,ui,di,No,Ul,wf,P1,Fn,M1,Xr,bo,L1,Ep,Rt,nn,lr,il,Kl,_f,cr,bp,kf,Xo,rr,D1,z1,Tp,Ac]},Ac=function(e){return postMessage(e,[e.buffer])},O1=function(e){return e&&{out:e.size&&new _e(e.size),dictionary:e.dictionary}},F1=function(e,t,n,s,r,i){var o=BM(n,s,r,function(l,c){o.terminate(),i(l,c)});return o.postMessage([e,t],t.consume?[e.buffer]:[]),function(){o.terminate()}},cn=function(e,t){return e[t]|e[t+1]<<8},Tt=function(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0},Lu=function(e,t){return Tt(e,t)+Tt(e,t+4)*4294967296},We=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function UM(e,t,n){return n||(n=t,t={}),typeof n!="function"&&Ie(7),F1(e,t,[WM],function(s){return Ac(Tp(s.data[0],s.data[1]))},0,n)}function Tp(e,t){return z1(e,t||{},0,0)}function KM(e,t,n){return n||(n=t,t={}),typeof n!="function"&&Ie(7),F1(e,t,[HM],function(s){return Ac(Pp(s.data[0],O1(s.data[1])))},1,n)}function Pp(e,t){return $1(e,{i:2},t&&t.out,t&&t.dictionary)}var V1=function(e,t,n,s){for(var r in e){var i=e[r],o=t+r,l=s;Array.isArray(i)&&(l=Cp(s,i[1]),i=i[0]),ArrayBuffer.isView(i)?n[o]=[i,l]:(n[o+="/"]=[new _e(0),l],V1(i,o,n,s))}},Oy=typeof TextEncoder<"u"&&new TextEncoder,jf=typeof TextDecoder<"u"&&new TextDecoder,YM=0;try{jf.decode(Ep,{stream:!0}),YM=1}catch{}var qM=function(e){for(var t="",n=0;;){var s=e[n++],r=(s>127)+(s>223)+(s>239);if(n+r>e.length)return{s:t,r:rr(e,n-1)};r?r==3?(s=((s&15)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63)-65536,t+=String.fromCharCode(55296|s>>10,56320|s&1023)):r&1?t+=String.fromCharCode((s&31)<<6|e[n++]&63):t+=String.fromCharCode((s&15)<<12|(e[n++]&63)<<6|e[n++]&63):t+=String.fromCharCode(s)}};function Sf(e,t){var n;if(Oy)return Oy.encode(e);for(var s=e.length,r=new _e(e.length+(e.length>>1)),i=0,o=function(u){r[i++]=u},n=0;n<s;++n){if(i+5>r.length){var l=new _e(i+8+(s-n<<1));l.set(r),r=l}var c=e.charCodeAt(n);c<128||t?o(c):c<2048?(o(192|c>>6),o(128|c&63)):c>55295&&c<57344?(c=65536+(c&1047552)|e.charCodeAt(++n)&1023,o(240|c>>18),o(128|c>>12&63),o(128|c>>6&63),o(128|c&63)):(o(224|c>>12),o(128|c>>6&63),o(128|c&63))}return rr(r,0,i)}function B1(e,t){if(t){for(var n="",s=0;s<e.length;s+=16384)n+=String.fromCharCode.apply(null,e.subarray(s,s+16384));return n}else{if(jf)return jf.decode(e);var r=qM(e),i=r.s,n=r.r;return n.length&&Ie(8),i}}var GM=function(e,t){return t+30+cn(e,t+26)+cn(e,t+28)},XM=function(e,t,n){var s=cn(e,t+28),r=cn(e,t+30),i=B1(e.subarray(t+46,t+46+s),!(cn(e,t+8)&2048)),o=t+46+s,l=QM(e,o,r,n,Tt(e,t+20),Tt(e,t+24),Tt(e,t+42)),c=l[0],u=l[1],d=l[2];return[cn(e,t+10),c,u,i,o+r+cn(e,t+32),d]},QM=function(e,t,n,s,r,i,o){var l=r==4294967295,c=i==4294967295,u=o==4294967295,d=t+n,f=l+c+u;if(s&&f){for(;t+4<d;t+=4+cn(e,t+2))if(cn(e,t)==1)return[l?Lu(e,t+4+8*c):r,c?Lu(e,t+4):i,u?Lu(e,t+4+8*(c+l)):o,1];s<2&&Ie(13)}return[r,i,o,0]},Nf=function(e){var t=0;if(e)for(var n in e){var s=e[n].length;s>65535&&Ie(9),t+=s+4}return t},Fy=function(e,t,n,s,r,i,o,l){var c=s.length,u=n.extra,d=l&&l.length,f=Nf(u);We(e,t,o!=null?33639248:67324752),t+=4,o!=null&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(i<0&&8),e[t++]=r&&8,e[t++]=n.compression&255,e[t++]=n.compression>>8;var h=new Date(n.mtime==null?Date.now():n.mtime),p=h.getFullYear()-1980;if((p<0||p>119)&&Ie(10),We(e,t,p<<25|h.getMonth()+1<<21|h.getDate()<<16|h.getHours()<<11|h.getMinutes()<<5|h.getSeconds()>>1),t+=4,i!=-1&&(We(e,t,n.crc),We(e,t+4,i<0?-i-2:i),We(e,t+8,n.size)),We(e,t+12,c),We(e,t+14,f),t+=16,o!=null&&(We(e,t,d),We(e,t+6,n.attrs),We(e,t+10,o),t+=14),e.set(s,t),t+=c,f)for(var v in u){var _=u[v],w=_.length;We(e,t,+v),We(e,t+2,w),e.set(_,t+4),t+=4+w}return d&&(e.set(l,t),t+=d),t},ZM=function(e,t,n,s,r){We(e,t,101010256),We(e,t+8,n),We(e,t+10,n),We(e,t+12,s),We(e,t+16,r)};function JM(e,t,n){n||(n=t,t={}),typeof n!="function"&&Ie(7);var s={};V1(e,"",s,t);var r=Object.keys(s),i=r.length,o=0,l=0,c=i,u=new Array(i),d=[],f=function(){for(var w=0;w<d.length;++w)d[w]()},h=function(w,m){Yl(function(){n(w,m)})};Yl(function(){h=n});var p=function(){var w=new _e(l+22),m=o,y=l-o;l=0;for(var g=0;g<c;++g){var x=u[g];try{var k=x.c.length;Fy(w,l,x,x.f,x.u,k);var j=30+x.f.length+Nf(x.extra),E=l+j;w.set(x.c,E),Fy(w,o,x,x.f,x.u,k,l,x.m),o+=16+j+(x.m?x.m.length:0),l=E+k}catch(b){return h(b,null)}}ZM(w,o,u.length,y,m),h(null,w)};i||p();for(var v=function(w){var m=r[w],y=s[m],g=y[0],x=y[1],k=FM(),j=g.length;k.p(g);var E=Sf(m),b=E.length,P=x.comment,R=P&&Sf(P),I=R&&R.length,O=Nf(x.extra),V=x.level==0?0:8,N=function(T,M){if(T)f(),h(T,null);else{var $=M.length;u[w]=Cp(x,{size:j,crc:k.d(),c:M,f:E,m:R,u:b!=m.length||R&&P.length!=I,compression:V}),o+=30+b+O+$,l+=76+2*(b+O)+(I||0)+$,--i||p()}};if(b>65535&&N(Ie(11,0,1),null),!V)N(null,g);else if(j<16e4)try{N(null,Tp(g,x))}catch(T){N(T,null)}else d.push(UM(g,x,N))},_=0;_<c;++_)v(_);return f}var Yl=typeof queueMicrotask=="function"?queueMicrotask:typeof setTimeout=="function"?setTimeout:function(e){e()};function eI(e,t,n){n||(n=t,t={}),typeof n!="function"&&Ie(7);var s=[],r=function(){for(var w=0;w<s.length;++w)s[w]()},i={},o=function(w,m){Yl(function(){n(w,m)})};Yl(function(){o=n});for(var l=e.length-22;Tt(e,l)!=101010256;--l)if(!l||e.length-l>65558)return o(Ie(13,0,1),null),r;var c=cn(e,l+8);if(c){var u=c,d=Tt(e,l+16),f=Tt(e,l-20)==117853008;if(f){var h=Tt(e,l-12);f=Tt(e,h)==101075792,f&&(u=c=Tt(e,h+32),d=Tt(e,h+48))}for(var p=t&&t.filter,v=function(w){var m=XM(e,d,f),y=m[0],g=m[1],x=m[2],k=m[3],j=m[4],E=m[5],b=GM(e,E);d=j;var P=function(I,O){I?(r(),o(I,null)):(O&&(i[k]=O),--c||o(null,i))};if(!p||p({name:k,size:g,originalSize:x,compression:y}))if(!y)P(null,rr(e,b,b+g));else if(y==8){var R=e.subarray(b,b+g);if(x<524288||g>.8*x)try{P(null,Pp(R,{out:new _e(x)}))}catch(I){P(I,null)}else s.push(KM(R,{size:x},P))}else P(Ie(14,"unknown compression type "+y,1),null);else P(null,null)},_=0;_<u;++_)v(_)}else o(null,{});return r}const bf="project-manifest.json",tI=".aitable-workflow.zip",nI=/\.(json|ya?ml|ts|js|md|txt)$/i,sI=new Set(["runtime","traces","node_modules"]),H1=/(^|\/)\.(_|DS_Store)/;async function rI(e){const{project:t,files:n,checksums:s,exportedAt:r}=e,i={};for(const l of n)U1(l.path)||H1.test(l.path)||(i[l.path]=l.content);const o={version:1,title:t.title??"",scene:uI(n),checksums:s,exportedAt:r,projectId:t.id};return i[bf]=JSON.stringify(o,null,2),iI(i)}function iI(e){const t={};for(const[n,s]of Object.entries(e))t[n]=Sf(s);return new Promise((n,s)=>{JM(t,{level:6},(r,i)=>{r?s(r):n(new Blob([i.slice()],{type:"application/zip"}))})})}async function W1(e){let t;e instanceof Uint8Array?t=e:e instanceof ArrayBuffer?t=new Uint8Array(e):t=new Uint8Array(await e.arrayBuffer());const n=await new Promise((r,i)=>{eI(t,(o,l)=>o?i(o):r(l))}),s={};for(const[r,i]of Object.entries(n))r.endsWith("/")||(s[r]=B1(i));return s}function oI(e,t){const n=URL.createObjectURL(e),s=document.createElement("a");s.href=n,s.download=t,s.rel="noopener",document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(n),0)}async function aI(e){const t=await W1(e);let n;const s=t[bf];if(s!==void 0)try{n=JSON.parse(s)}catch{n=void 0}const r=[];for(const[o,l]of Object.entries(t)){if(o===bf)continue;const c=o.replace(/^\/+/,"");!c||H1.test(c)||U1(c)||!nI.test(c)||r.push({path:c,content:l})}r.sort((o,l)=>o.path.localeCompare(l.path));const i=await cI(n,r);return{title:(n==null?void 0:n.title)??"",files:r,manifest:n,checksumWarnings:i}}async function lI(e){try{const t=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("")}catch{return null}}async function cI(e,t){if(!(e!=null&&e.checksums)||e.checksums.length===0)return[];const n=[],s=new Map(t.map(r=>[r.path,r.content]));for(const r of e.checksums){const i=s.get(r.path);if(i===void 0){n.push(`manifest 记录的文件缺失:${r.path}`);continue}const o=await lI(i);o&&o!==r.sha256&&n.push(`checksum 不一致:${r.path}`)}return n}function uI(e){const t=e.find(s=>s.path==="aitable-workflow.config.yml"||s.path.endsWith(".config.yml"));if(!t)return;const n=/^[ \t]*scene[ \t]*:[ \t]*(.+)$/m.exec(t.content);if(n)return n[1].trim().replace(/^['"]/,"").replace(/['"]$/,"").replace(/\s+#.*$/,"")||void 0}function U1(e){const t=e.split("/")[0]??"";return sI.has(t)}function dI(e){return e.trim().replace(/[^\w一-龥.\- ]+/g,"_").replace(/_{2,}/g,"_")||"project"}function fI(e){return`${dI(e)}${tI}`}function Eo(e,t){const n=e.filter(s=>s.id!==t.id);return[t,...n].sort((s,r)=>r.updatedAt.localeCompare(s.updatedAt))}function Vy(e,t){var n;return(n=e.title)!=null&&n.trim()?e.title.trim():`工作流 #${t+1} · ${e.id.slice(-6)}`}async function K1(e,t){if(!Me)return{workflows:[],currentWorkflowId:null,workflowFiles:[]};const n=await vf(e);if(n.length===0)return{workflows:[],currentWorkflowId:null,workflowFiles:[]};const s=t&&n.some(i=>i.id===t)?t:n[0].id;let r=[];try{r=(await xf(e,s)).files}catch{}return{workflows:n,currentWorkflowId:s,workflowFiles:r}}function hI(){const e=ee(w=>w.workflows),t=ee(w=>w.currentWorkflowId),n=ee(w=>w.workflowFiles),s=ee(w=>w.projectId),[r,i]=S.useState(!1),[o,l]=S.useState(null),[c,u]=S.useState(!1),[d,f]=S.useState(null),h=w=>{if(!w)return null;const m=e.find(y=>y.id===w);return(m==null?void 0:m.fileCount)!=null?m.fileCount:w!==t?null:n.length};async function p(w){if(!(!Me||!s||w===t)){u(!0),f(null);try{const m=await xf(s,w);B.setCurrentWorkflow(w,m.files)}catch(m){f(m instanceof Error?m.message:String(m))}finally{u(!1)}}}async function v(){if(!(!Me||!s))try{const w=await vf(s);B.set({workflows:w})}catch{}}async function _(){if(!(!o||!s)){u(!0),f(null);try{await kM(s,o);const w=await vf(s);if(o===t){const y=w[0];if(y)try{const g=await xf(s,y.id);B.set({workflows:w,currentWorkflowId:y.id,workflowFiles:g.files})}catch{B.set({workflows:w,currentWorkflowId:y.id,workflowFiles:[]})}else B.set({workflows:w,currentWorkflowId:null,workflowFiles:[]})}else B.set({workflows:w});l(null)}catch(w){const m=w instanceof Error?w.message:String(w);f(/运行中|project_busy|活跃|无法删除/i.test(m)?"项目运行中,无法删除工作流":m)}finally{u(!1)}}}return Me?e.length===0?a.jsxs("div",{className:"rail__workflow-empty",children:[a.jsxs("button",{type:"button",className:"rail__item rail__item--workflow rail__workflow-new",onClick:()=>i(!0),children:[a.jsx(D,{name:"plus",size:14,style:{flex:"0 0 auto"}}),a.jsx("span",{children:"新建工作流"})]}),d&&a.jsx("div",{className:"rail__workflow-error",children:d}),r&&a.jsx(By,{onCancel:()=>i(!1),onCreated:async()=>{i(!1),await v()}})]}):a.jsxs("div",{className:"rail__workflow-list",children:[e.map(w=>{const m=w.id===t,y=h(w.id);return a.jsxs("div",{className:"rail__workflow-card-wrap",children:[a.jsxs("button",{type:"button",className:"rail__item rail__item--workflow"+(m?" is-active":""),onClick:()=>void p(w.id),disabled:c,title:`${w.name}${w.domain?" · "+w.domain:""}${w.tableId?" · "+w.tableId:""}`,children:[a.jsx(D,{name:"flow",size:14,style:{flex:"0 0 auto"}}),a.jsxs("span",{className:"rail__item-copy",children:[a.jsx("span",{className:"rail__item-title",children:w.name}),a.jsx("span",{className:"rail__item-sub",children:[w.domain,w.tableId].filter(Boolean).join(" · ")||w.id})]}),y!==null&&a.jsx("span",{className:"rail__badge",children:y})]}),a.jsx("button",{type:"button",className:"rail__item-delete",title:"删除工作流","aria-label":"删除工作流",disabled:c,onClick:()=>{l(w.id),f(null)},children:a.jsx(D,{name:"close",size:12})})]},w.id)}),a.jsxs("button",{type:"button",className:"rail__item rail__workflow-add",onClick:()=>i(!0),children:[a.jsx(D,{name:"plus",size:14,style:{flex:"0 0 auto"}}),a.jsx("span",{children:"新建工作流"})]}),d&&a.jsx("div",{className:"rail__workflow-error",children:d}),r&&a.jsx(By,{onCancel:()=>i(!1),onCreated:async()=>{i(!1),await v()}}),o&&a.jsx("div",{className:"modal-overlay",onClick:()=>!c&&l(null),children:a.jsxs("div",{className:"modal-card",onClick:w=>w.stopPropagation(),children:[a.jsxs("div",{className:"modal-card__head",children:[a.jsx("span",{className:"modal-card__title",children:"删除工作流?"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:()=>l(null),disabled:c,children:a.jsx(D,{name:"close",size:14})})]}),a.jsxs("div",{className:"modal-card__body",children:[a.jsx("p",{className:"cfg-muted",children:"删除后该工作流的 workflow.yml / recipes / views 将一并移除,且不可恢复。"}),d&&a.jsxs("div",{className:"import-env-warn",children:[a.jsx(D,{name:"warn",size:13}),d]})]}),a.jsxs("div",{className:"modal-card__foot",children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:()=>l(null),disabled:c,children:"取消"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:c,onClick:()=>void _(),children:c?"删除中...":"确认删除"})]})]})})]}):a.jsxs("button",{type:"button",className:"rail__item rail__item--workflow is-active",children:[a.jsx(D,{name:"flow",size:14,style:{flex:"0 0 auto"}}),a.jsx("span",{className:"rail__item-copy",children:a.jsx("span",{className:"rail__item-title",children:"主工作流"})})]})}function By({onCancel:e,onCreated:t}){const n=ee(w=>w.projectId),[s,r]=S.useState(""),[i,o]=S.useState(""),[l,c]=S.useState(""),[u,d]=S.useState(!1),[f,h]=S.useState(null),p=S.useRef(null);async function v(w){if(!w||w.length===0)return[];const m=Array.from(w),y=[];for(const g of m){const x=g.webkitRelativePath||g.name,k=await g.text();y.push({path:Y1(x),content:k})}return y}function _(){if(!Me||!n)return;const w=s.trim();if(!w){h("工作流名称不能为空");return}d(!0),h(null),(async()=>{var m;try{const y=[];if(i.trim()&&y.push({path:"workflow.yml",content:i}),l.trim()){const x=pI(l);y.push(...x)}if((m=p.current)!=null&&m.files){const x=await v(p.current.files);y.push(...x)}const g=await _M(n,{name:w,files:y.length>0?y:void 0});await t(g.workflow)}catch(y){h(y instanceof Error?y.message:String(y))}finally{d(!1)}})()}return a.jsx("div",{className:"modal-overlay",onClick:()=>!u&&e(),children:a.jsxs("div",{className:"modal-card",onClick:w=>w.stopPropagation(),style:{maxWidth:560},children:[a.jsxs("div",{className:"modal-card__head",children:[a.jsx("span",{className:"modal-card__title",children:"新建工作流"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:e,disabled:u,children:a.jsx(D,{name:"close",size:14})})]}),a.jsxs("div",{className:"modal-card__body",children:[a.jsxs("label",{className:"cfg-label",children:["工作流名称",a.jsx("input",{className:"cfg-input",value:s,placeholder:"例如:合同审批流程",onChange:w=>r(w.target.value),disabled:u})]}),a.jsxs("label",{className:"cfg-label",style:{marginTop:12},children:["workflow.yml(可选,留空则后端用默认模板)",a.jsx("textarea",{className:"cfg-textarea",rows:8,value:i,placeholder:`workflow:
|
|
54
|
+
name: ...`,onChange:w=>o(w.target.value),disabled:u})]}),a.jsxs("label",{className:"cfg-label",style:{marginTop:12},children:["recipes 脚本(可选,按 --- 文件名 --- 分段)",a.jsx("textarea",{className:"cfg-textarea",rows:5,value:l,placeholder:`--- recipes/fetch.recipe.ts ---
|
|
55
|
+
export default ...`,onChange:w=>c(w.target.value),disabled:u})]}),a.jsxs("label",{className:"cfg-label",style:{marginTop:12},children:["上传工作流文件(可选,支持选目录)",a.jsx("input",{ref:p,type:"file",multiple:!0,webkitdirectory:"",directory:"",disabled:u})]}),f&&a.jsxs("div",{className:"import-env-warn",style:{marginTop:12},children:[a.jsx(D,{name:"warn",size:13}),f]})]}),a.jsxs("div",{className:"modal-card__foot",children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:e,disabled:u,children:"取消"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:u,onClick:()=>_(),children:u?"创建中...":"创建"})]})]})})}function pI(e){var i,o;const t=e.trim();if(!t)return[];const n=[],s=t.split(/^---\s+(.+?)\s+---\s*$/m);if(s.length<=1)return[{path:"recipes/_inline.recipe.ts",content:t}];let r=0;for(s[0].trim()&&n.push({path:"recipes/_inline.recipe.ts",content:s[0].trim()}),r=1;r<s.length;r+=2){const l=(i=s[r])==null?void 0:i.trim(),c=((o=s[r+1])==null?void 0:o.trim())??"";l&&n.push({path:Y1(l),content:c})}return n}function Y1(e){let t=e.replace(/^\.\//,"");const n=/^workflows\/[^/]+\//;return n.test(t)&&(t=t.replace(n,"")),t}function mI(){const e=ee(I=>I.stage),t=ee(I=>I.projectId),n=ee(I=>I.projects),s=ee(I=>I.steps.length),r=ee(I=>I.fields.length),i=ee(I=>I.views.length),o=s>0,[l,c]=S.useState(!1),[u,d]=S.useState(null),[f,h]=S.useState(!1),[p,v]=S.useState(null),[_,w]=S.useState(null),[m,y]=S.useState(null),g=[`${s} 步工作流`,r>0?`${r} 字段`:null,i>0?`${i} 视图`:null].filter(Boolean).join(" · "),x=t?[{id:t,title:B.get().init.name||(B.get().projectSource==="imported"?"导入项目":"新建项目"),dir:"",createdAt:"",updatedAt:""}]:[],k=le?n:x;async function j(I){if(!le){B.setStage(o?"design":"init");return}try{const O=await Wl().catch(()=>B.get().projects),V=await qo(I),N=await jp(I).catch(()=>null),T=N==null?void 0:N.stageRuntime,M=(T==null?void 0:T.design.status)==="succeeded"&&V.some(F=>F.path==="workflow.yml");let $=null;if(M)try{$=await Yo(I)}catch{}const C=Me?await Lr(I).catch(()=>null):null,A=B.get().currentWorkflowId,z=await K1(I,A).catch(()=>({workflows:[],currentWorkflowId:null,workflowFiles:[]})),L=Tc({projectId:I,files:V,projectState:N,workflow:$,engineBinding:C,workflows:z.workflows,currentWorkflowId:z.currentWorkflowId,workflowFiles:z.workflowFiles});B.set({projects:O,...L})}catch{B.set({projectId:I,stage:"init"})}}async function E(I){if(!le){B.set({projectId:`mock-${Date.now()}`,projectSource:"new"}),B.startNewWorkflow(),B.update(V=>({init:{...V.init,name:I}}));return}const O=await j1();B.startNewWorkflow(),B.set({projects:Eo(B.get().projects,O),projectId:O.id,stage:"init"}),B.update(V=>({init:{...V.init,name:I}}))}async function b(){if(!le||!t)return;const I=n.find(N=>N.id===t),O=window.prompt("项目名称",(I==null?void 0:I.title)??"");if(!(O!=null&&O.trim()))return;const V=await SM(t,O.trim());B.set({projects:Eo(B.get().projects,V)})}async function P(){if(u){h(!0),v(null);try{await vM(u);const I=await Wl().catch(()=>B.get().projects.filter(V=>V.id!==u));(u===t?null:t)?B.set({projects:I}):B.set({projects:I,projectId:null,projectSource:"new",projectFiles:[],workflows:[],currentWorkflowId:null,workflowFiles:[],steps:[],edges:[],fields:[],views:[],stage:"home"}),d(null)}catch(I){const O=I instanceof Error?I.message:String(I);v(/运行中|project_busy|活跃|无法删除/i.test(O)?"项目运行中,无法删除":O)}finally{h(!1)}}}async function R(I){if(le){w(I),y(null);try{const O=await xM(I),V=await rI(O),N=fI(O.project.title??I);oI(V,N)}catch(O){y(O instanceof Error?O.message:String(O))}finally{w(null)}}}return a.jsxs("aside",{className:"rail",children:[a.jsxs("div",{className:"rail__head",children:[a.jsx("div",{className:"rail__title",children:"我的项目"}),a.jsx("button",{type:"button",className:"rail__collapse",onClick:()=>B.setRailCollapsed(!0),title:"收起项目列表","aria-label":"收起项目列表",children:a.jsx(D,{name:"chevron-left",size:14})})]}),a.jsx("div",{className:"rail__list",children:k.map((I,O)=>{const V=le?I.id===t:e!=="home";return a.jsxs("div",{className:"rail__project",children:[a.jsxs("button",{type:"button",className:"rail__item rail__item--project"+(V?" is-active":""),onClick:()=>void j(I.id),onDoubleClick:()=>void b(),title:le?`${Vy(I,O)} · ${I.id}`:void 0,children:[a.jsx(D,{name:"file",size:15,style:{flex:"0 0 auto"}}),a.jsxs("span",{className:"rail__item-copy",children:[a.jsx("span",{className:"rail__item-title",children:Vy(I,O)}),le&&a.jsx("span",{className:"rail__item-sub",children:I.id})]})]}),le&&a.jsx("button",{type:"button",className:"rail__item-delete",style:{right:30},title:_===I.id?"导出中...":"导出项目包","aria-label":"导出项目包",disabled:_===I.id,onClick:()=>void R(I.id),children:a.jsx("svg",{width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:a.jsx("path",{d:"M12 3v12M7 10l5 5 5-5M5 21h14"})})}),le&&a.jsx("button",{type:"button",className:"rail__item-delete",title:"删除项目","aria-label":"删除项目",onClick:()=>{d(I.id),v(null)},children:a.jsx(D,{name:"close",size:12})}),V&&a.jsx(hI,{})]},I.id)})}),u&&a.jsx("div",{className:"modal-overlay",onClick:()=>!f&&d(null),children:a.jsxs("div",{className:"modal-card",onClick:I=>I.stopPropagation(),children:[a.jsxs("div",{className:"modal-card__head",children:[a.jsx("span",{className:"modal-card__title",children:"删除项目?"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:()=>d(null),disabled:f,children:a.jsx(D,{name:"close",size:14})})]}),a.jsxs("div",{className:"modal-card__body",children:[a.jsx("p",{className:"cfg-muted",children:"删除后项目配置与工作流文件将一并移除,且不可恢复。"}),p&&a.jsxs("div",{className:"import-env-warn",children:[a.jsx(D,{name:"warn",size:13}),p]})]}),a.jsxs("div",{className:"modal-card__foot",children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:()=>d(null),disabled:f,children:"取消"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:f,onClick:()=>void P(),children:f?"删除中...":"确认删除"})]})]})}),a.jsxs("button",{type:"button",className:"rail__item rail__new",onClick:()=>c(!0),children:[a.jsx(D,{name:"plus",size:17,style:{flex:"0 0 auto"}}),a.jsx("span",{children:"新建项目"})]}),l&&a.jsx(k1,{onConfirm:I=>{E(I),c(!1)},onCancel:()=>c(!1)}),a.jsx("div",{className:"rail__spacer"}),le&&a.jsxs("button",{type:"button",className:"rail__item rail__machines",onClick:()=>B.toggleAgentTrace(),title:"查看 Agent 执行记录",children:[a.jsx(D,{name:"bolt",size:17,style:{flex:"0 0 auto"}}),a.jsx("span",{children:"执行记录"})]}),a.jsxs("div",{className:"rail__foot",children:[o?g:"尚未创建工作流",a.jsx("br",{}),"aitable-workflow 原型"]}),m&&a.jsx("div",{className:"modal-overlay",onClick:()=>y(null),children:a.jsxs("div",{className:"modal-card",onClick:I=>I.stopPropagation(),children:[a.jsxs("div",{className:"modal-card__head",children:[a.jsx("span",{className:"modal-card__title",children:"导出失败"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:()=>y(null),children:a.jsx(D,{name:"close",size:14})})]}),a.jsx("div",{className:"modal-card__body",children:a.jsxs("div",{className:"import-env-warn",children:[a.jsx(D,{name:"warn",size:13}),m]})}),a.jsx("div",{className:"modal-card__foot",children:a.jsx("button",{type:"button",className:"primary modal-card__btn",onClick:()=>y(null),children:"知道了"})})]})})]})}function gI(e){return e!=="idle"&&e!=="done"&&e!=="error"}const yI=300,vI=80,xI=48;function wI(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=xI}function _I({groups:e,live:t,onClose:n,bodyRef:s,onScroll:r}){return a.jsx("div",{className:"trace-backdrop",onClick:n,children:a.jsxs("aside",{className:"trace-panel",role:"dialog","aria-label":"Agent 执行记录",onClick:i=>i.stopPropagation(),children:[a.jsxs("div",{className:"trace-panel__head",children:[a.jsx("h2",{className:"trace-panel__title",children:"Agent 执行记录"}),a.jsx("button",{type:"button",className:"trace-panel__close",onClick:n,title:"关闭","aria-label":"关闭",children:a.jsx(D,{name:"close",size:14})})]}),a.jsx("div",{className:"trace-panel__body",ref:s,onScroll:r,children:e.length===0?a.jsx("div",{className:"trace-empty",children:"还没有 Agent 执行记录。运行设计后,这里会实时显示 Agent 的思考、正文与工具调用。"}):e.map((i,o)=>{const l=o===e.length-1;return a.jsxs("div",{className:"trace-grp",children:[a.jsx("span",{className:"trace-av","aria-hidden":!0,children:a.jsx(D,{name:"robot",size:16})}),a.jsxs("div",{className:"trace-body",children:[a.jsx("div",{className:"trace-head",children:i.round!=null?`第 ${i.round} 轮`:"执行过程"}),i.items.map((c,u)=>{const d=u===i.items.length-1;if(c.kind==="tool")return a.jsxs("div",{className:"trace-tool",children:[a.jsx(D,{name:"bolt",size:12}),a.jsx("span",{className:"trace-tool__label",children:c.text})]},u);if(c.kind==="tool_result")return c.fullText?a.jsxs("details",{className:"trace-toolret trace-toolret--expandable",children:[a.jsxs("summary",{className:"trace-toolret__summary",children:[a.jsx(D,{name:"dot",size:12}),a.jsx("span",{className:"trace-toolret__label",children:c.text})]}),a.jsx("pre",{className:"trace-toolret__full",children:c.fullText})]},u):a.jsxs("div",{className:"trace-toolret",children:[a.jsx(D,{name:"dot",size:12}),a.jsx("span",{className:"trace-toolret__label",children:c.text})]},u);if(c.kind==="permission")return c.fullText?a.jsxs("details",{className:"trace-perm trace-perm--expandable",children:[a.jsxs("summary",{className:"trace-perm__summary",children:[a.jsx(D,{name:"lock",size:12}),a.jsx("span",{className:"trace-perm__label",children:c.text})]}),a.jsx("pre",{className:"trace-perm__full",children:c.fullText})]},u):a.jsxs("div",{className:"trace-perm",children:[a.jsx(D,{name:"lock",size:12}),a.jsx("span",{className:"trace-perm__label",children:c.text})]},u);if(c.kind==="status")return a.jsxs("div",{className:"trace-status",children:[a.jsx(D,{name:"dot",size:12}),a.jsx("span",{children:c.text})]},u);if(c.kind==="thinking"&&c.text.length>yI)return a.jsxs("details",{className:"trace-text trace-text--thinking trace-text--foldable",children:[a.jsx("summary",{className:"trace-text__summary",children:`${c.text.slice(0,vI)}…`}),a.jsx("div",{className:"trace-text__full",children:c.text})]},u);const f=t&&l&&d,h=c.kind==="thinking"?"trace-text trace-text--thinking":"trace-text";return a.jsxs("div",{className:h,children:[c.text,f?a.jsx("span",{className:"trace-cursor"}):null]},u)})]})]},o)})})]})})}function kI(){const e=ee(c=>c.agentTraceOpen),t=ee(c=>c.agentTraceLog),n=ee(c=>c.designStatus.phase),s=S.useMemo(()=>YA(t),[t]),r=gI(n),i=S.useRef(null),o=S.useRef(!0);S.useEffect(()=>{const c=i.current;!c||!o.current||(c.scrollTop=c.scrollHeight)},[s,e]);function l(){const c=i.current;c&&(o.current=wI(c))}return S.useEffect(()=>{if(!e)return;function c(u){u.key==="Escape"&&B.setAgentTraceOpen(!1)}return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[e]),e?a.jsx(_I,{groups:s,live:r,onClose:()=>B.setAgentTraceOpen(!1),bodyRef:i,onScroll:l}):null}function jI(){const e=kp(),[t,n]=S.useState(!1),s=S.useRef(null);return S.useEffect(()=>{if(!t)return;function r(i){s.current&&!s.current.contains(i.target)&&n(!1)}return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[t]),e.user?a.jsxs("div",{className:"user-menu",ref:s,children:[a.jsxs("button",{type:"button",className:"user-menu__trigger",onClick:()=>n(r=>!r),title:"用户菜单",children:[a.jsx(D,{name:"user",size:15}),a.jsx("span",{className:"user-menu__name",children:e.user.username}),a.jsx(D,{name:"chevron-down",size:12})]}),t&&a.jsxs("div",{className:"user-menu__dropdown",children:[a.jsxs("button",{type:"button",className:"user-menu__item",onClick:()=>{B.setStage("account"),n(!1)},children:[a.jsx(D,{name:"user",size:14}),"用户中心"]}),a.jsxs("button",{type:"button",className:"user-menu__item",onClick:()=>{B.setStage("engines"),n(!1)},children:[a.jsx(D,{name:"bolt",size:14}),"执行引擎"]}),a.jsx("div",{className:"user-menu__divider"}),a.jsxs("button",{type:"button",className:"user-menu__item user-menu__item--danger",onClick:()=>{qs.logout(),n(!1)},children:[a.jsx(D,{name:"close",size:14}),"退出登录"]})]})]}):null}function SI({children:e}){const t=ee(i=>i.stage),n=ee(i=>i.theme),s=t==="home"||t==="account"||t==="engines"||t==="adjust",r=ee(i=>i.layout.railCollapsed);return a.jsxs("div",{className:"app-root",children:[a.jsxs("header",{className:"chrome",children:[a.jsxs("button",{type:"button",className:"chrome__brand",onClick:()=>B.setStage("home"),title:"返回首页",children:[a.jsx("span",{className:"chrome__brand-mark",children:a.jsx(D,{name:"sparkle",size:15,color:"#fff"})}),"aitable-workflow"]}),t!=="home"&&t!=="account"&&t!=="engines"&&a.jsx(mM,{}),a.jsx("div",{className:"chrome__spacer"}),a.jsx("button",{type:"button",className:"chrome__theme",onClick:()=>B.toggleTheme(),title:n==="light"?"切换到暗色":"切换到亮色","aria-label":"切换主题",children:a.jsx(D,{name:n==="light"?"moon":"sun",size:17})}),a.jsx(jI,{})]}),a.jsxs("div",{className:"body"+(s?" body--norail":"")+(r?" body--rail-collapsed":""),children:[!s&&(r?a.jsx("button",{type:"button",className:"rail-peek",onClick:()=>B.setRailCollapsed(!1),title:"展开工作流列表","aria-label":"展开工作流列表",children:a.jsx(D,{name:"chevron-right",size:14})}):a.jsx(mI,{})),e]}),a.jsx(kI,{})]})}const Ap={type:"spring",stiffness:500,damping:30,mass:.8};({...Ap});const NI={hidden:{opacity:0,scale:.95},visible:{opacity:1,scale:1,transition:Ap},exit:{opacity:0,scale:.97,transition:{duration:.15}}},yt={hidden:{opacity:0,y:8},visible:{opacity:1,y:0},exit:{opacity:0,y:-4,transition:{duration:.1}}},q1={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06,delayChildren:.02}}},bI={hidden:{opacity:0,scale:.9},visible:{opacity:1,scale:1,transition:{...Ap,stiffness:420,damping:26}}};function EI(e){if(!e)return;const t=e.map(n=>typeof n=="string"?{label:n,value:n}:n);return t.length>0?t:void 0}function Mc(e){return{id:e.id,title:e.title,...e.description?{description:e.description}:{},...e.submitLabel?{submitLabel:e.submitLabel}:{},questions:e.questions.map(t=>({...t,options:EI(t.options)}))}}function CI(e,t){var s;const n=(s=e.options)==null?void 0:s.find(r=>r.value===t||r.label===t);return(n==null?void 0:n.label)??t}function Hy(e,t){var s;const n=(s=e.options)==null?void 0:s.find(r=>r.value===t||r.label===t);return(n==null?void 0:n.value)??t}function Wy(e,t){return CI(e,t)}function Ef(e,t){const n=[`[表单答复 · ${e.title}]`];for(const s of e.questions){const r=t[s.id];let i;Array.isArray(r)?i=r.length>0?r.map(o=>Wy(s,o)).join("、"):"(跳过)":typeof r=="string"&&r.trim().length>0?i=Wy(s,r.trim()):typeof r=="boolean"?i=r?"是":"否":i="(跳过)",n.push(`· ${s.label}:${i}`)}return n.join(`
|
|
56
|
+
`)}let TI=0;const Ot=e=>`${e}_${(TI++).toString(36)}`,Ns=e=>new Promise(t=>setTimeout(t,e));class Mp{constructor(){$e(this,"state",{messages:[],busy:!1,pendingForm:null,formTransitioning:!1});$e(this,"listeners",new Set);$e(this,"formResolver",null);$e(this,"currentAssistantId",null);$e(this,"currentTextId",null);$e(this,"agentTextMsgId",null);$e(this,"agentTextSegId",null);$e(this,"agentThinkingMsgId",null);$e(this,"agentThinkingSegId",null);$e(this,"animQueue",[]);$e(this,"consuming",!1);$e(this,"onFormSubmit",null);$e(this,"subscribe",t=>(this.listeners.add(t),()=>this.listeners.delete(t)));$e(this,"getState",()=>this.state)}emit(){this.listeners.forEach(t=>t())}set(t){this.state={...this.state,...t},this.emit()}pushMessage(t){this.set({messages:[...this.state.messages,t]})}patchMessage(t,n){this.set({messages:this.state.messages.map(s=>s.id===t?n(s):s)})}ensureAssistant(){if(this.currentAssistantId)return this.currentAssistantId;const t=Ot("a");return this.currentAssistantId=t,this.currentTextId=null,this.pushMessage({id:t,role:"assistant",segments:[]}),t}addSegment(t){const n=this.ensureAssistant();this.patchMessage(n,s=>({...s,segments:[...s.segments,t]}))}patchSegment(t,n,s){this.patchMessage(t,r=>({...r,segments:r.segments.map(i=>i.id===n?s(i):i)}))}addUserMessage(t){this.pushMessage({id:Ot("u"),role:"user",segments:[{kind:"text",id:Ot("t"),text:t}]})}run(t){return new Promise(n=>{this.animQueue.push({script:t,resolve:n}),this.ensureConsumer()})}enqueue(t){this.animQueue.push({script:t}),this.ensureConsumer()}ensureConsumer(){this.consuming||(this.consuming=!0,this.state.busy||this.set({busy:!0}),this.consume())}async consume(){var t;for(;this.animQueue.length>0;){const n=this.animQueue.shift();for(const s of n.script)await this.step(s);this.currentAssistantId=null,this.currentTextId=null,(t=n.resolve)==null||t.call(n)}this.consuming=!1,this.set({busy:!1,formTransitioning:!1})}pendingBeats(){let t=0;for(const n of this.animQueue)t+=n.script.length;return t}async pace(t){const n=this.pendingBeats();if(!(n>=24)){if(n>=8){await Ns(Math.min(t,6));return}await Ns(t)}}async step(t){var n;switch(t.kind){case"wait":await Ns(t.ms);return;case"do":t.run();return;case"say":this.resetAgentStream(),await this.streamText(t.text);return;case"agent-text":this.appendAgentText(t.content),await this.pace(24);return;case"agent-thinking":this.appendAgentThinking(t.content),await this.pace(24);return;case"todo":{const s=t.items.map((r,i)=>({id:Ot("td"),text:r,status:i===0?"active":"pending"}));this.addSegment({kind:"todo",id:Ot("todo"),items:s}),await Ns(240);return}case"todo-advance":this.advanceTodo(),await Ns(300);return;case"tool":{this.resetAgentStream();const s=this.ensureAssistant(),r=Ot("tool"),i={id:Ot("tr"),label:t.label,detail:t.detail,status:"running"};this.addSegment({kind:"tool",id:r,tool:i}),await this.pace(t.ms??700),this.patchSegment(s,r,o=>o.kind==="tool"?{...o,tool:{...o.tool,status:"done"}}:o),this.currentTextId=null,await this.pace(160);return}case"form":{if(((n=this.state.pendingForm)==null?void 0:n.form.id)===t.form.id)return;const s=this.ensureAssistant(),r=Ot("form");this.addSegment({kind:"form",id:r,form:t.form}),this.set({pendingForm:{messageId:s,segmentId:r,form:t.form},formTransitioning:!1}),await new Promise(i=>{this.formResolver=i}),this.currentAssistantId=null,this.currentTextId=null;return}}}advanceTodo(){const t=this.state.messages.map(n=>{let s=!1;const r=n.segments.map(i=>{if(s||i.kind!=="todo")return i;const o=i.items.findIndex(c=>c.status==="active");if(o===-1)return i;s=!0;const l=i.items.map((c,u)=>u===o?{...c,status:"done"}:u===o+1?{...c,status:"active"}:c);return{...i,items:l}});return s?{...n,segments:r}:n});this.set({messages:t})}resetAgentStream(){this.agentTextMsgId=null,this.agentTextSegId=null,this.agentThinkingMsgId=null,this.agentThinkingSegId=null}appendAgentText(t){if(this.agentTextMsgId&&this.agentTextSegId){this.patchSegment(this.agentTextMsgId,this.agentTextSegId,r=>r.kind==="agent-text"?{...r,text:r.text+t}:r);return}this.currentTextId=null;const n=this.ensureAssistant(),s=Ot("atext");this.agentTextMsgId=n,this.agentTextSegId=s,this.addSegment({kind:"agent-text",id:s,text:t})}appendAgentThinking(t){if(this.agentThinkingMsgId&&this.agentThinkingSegId){this.patchSegment(this.agentThinkingMsgId,this.agentThinkingSegId,r=>r.kind==="agent-thinking"?{...r,text:r.text+t}:r);return}this.currentTextId=null;const n=this.ensureAssistant(),s=Ot("athink");this.agentThinkingMsgId=n,this.agentThinkingSegId=s,this.addSegment({kind:"agent-thinking",id:s,text:t})}async streamText(t){const n=this.ensureAssistant(),s=Ot("t");this.currentTextId=s,this.addSegment({kind:"text",id:s,text:""});const r=2;for(let i=0;i<t.length;i+=r){const o=t.slice(0,i+r);this.patchSegment(n,s,l=>l.kind==="text"?{...l,text:o}:l),await Ns(12)}this.patchSegment(n,s,i=>i.kind==="text"?{...i,text:t}:i),await Ns(80)}submitForm(t){var r;const n=this.state.pendingForm;if(!n)return;this.patchSegment(n.messageId,n.segmentId,i=>i.kind==="form"?{...i,answers:t}:i),this.addUserMessage(Ef(n.form,t)),(r=this.onFormSubmit)==null||r.call(this,n.form.id,t),this.set({pendingForm:null,formTransitioning:!0});const s=this.formResolver;this.formResolver=null,s==null||s()}reset(){var t;for(const n of this.animQueue)(t=n.resolve)==null||t.call(n);this.animQueue=[],this.consuming=!1,this.currentAssistantId=null,this.currentTextId=null,this.resetAgentStream(),this.formResolver=null,this.set({messages:[],busy:!1,pendingForm:null,formTransitioning:!1})}}function G1(e){return S.useSyncExternalStore(e.subscribe,e.getState,e.getState)}function PI({items:e}){const t=e.filter(n=>n.status==="done").length;return a.jsxs("div",{className:"todo-card",children:[a.jsxs("div",{className:"todo-card__head",children:[a.jsx(D,{name:"check",size:14}),a.jsx("span",{children:"执行清单"}),a.jsxs("span",{className:"todo-card__count",children:[t,"/",e.length]})]}),a.jsx(Ye.ul,{className:"todo-card__list",variants:q1,initial:"hidden",animate:"visible",children:e.map(n=>a.jsxs(Ye.li,{className:`todo-item is-${n.status}`,variants:yt,children:[a.jsx("span",{className:"todo-item__mark",children:n.status==="done"?a.jsx(D,{name:"check",size:12}):n.status==="active"?a.jsx("span",{className:"todo-item__spinner"}):a.jsx("span",{className:"todo-item__dot"})}),a.jsx("span",{className:"todo-item__text",children:n.text})]},n.id))})]})}function AI({tool:e}){return a.jsxs("div",{className:`tool-card is-${e.status}`,children:[a.jsx("span",{className:"tool-card__icon",children:e.status==="running"?a.jsx("span",{className:"tool-card__spinner"}):e.status==="error"?a.jsx(D,{name:"warn",size:14}):a.jsx(D,{name:"check",size:14})}),a.jsx("span",{className:"tool-card__label",children:e.label}),e.detail?a.jsx("span",{className:"tool-card__detail",children:e.detail}):null]})}const X1=S.forwardRef(function({form:t,interactive:n,submittedAnswers:s,hideInternalSubmit:r=!1,onReadyChange:i,onSubmit:o},l){const c=S.useMemo(()=>MI(t,s),[t,s]),[u,d]=S.useState(c),f=!n||!o||s!==void 0,h=s??u;S.useEffect(()=>{d(x=>{let k=!1;const j={...x};for(const E of t.questions)j[E.id]===void 0&&(k=!0,j[E.id]=E.defaultValue!==void 0?Cf(E,E.defaultValue):Q1(E));return k?j:x})},[t]);function p(x,k){f||d(j=>({...j,[x]:k}))}function v(x,k,j){f||d(E=>{const b=Array.isArray(E[x])?E[x]:[],P=b.includes(k);if(!P&&j!==void 0&&b.length>=j)return E;const R=P?b.filter(I=>I!==k):[...b,k];return{...E,[x]:R}})}const _=t.questions.every(x=>{if(x.type!=="checkbox"||x.maxSelections===void 0)return!0;const k=h[x.id];return!Array.isArray(k)||k.length<=x.maxSelections}),w=t.questions.every(x=>{if(x.required!==!0)return!0;const k=h[x.id];return Array.isArray(k)?k.length>0:typeof k=="boolean"?!0:typeof k=="string"&&k.trim().length>0}),m=_&&w;function y(){f||!o||!m||o(Ef(t,u),u)}function g(){f||!o||o(Ef(t,{}),{})}return S.useImperativeHandle(l,()=>({submit:y,skipAll:g})),S.useEffect(()=>{i==null||i(!f&&m)},[i,f,m]),a.jsxs("div",{className:`question-form${f?" question-form-locked":""}`,"data-form-id":t.id,children:[a.jsxs("div",{className:"question-form-head",children:[a.jsx("span",{className:"question-form-icon","aria-hidden":!0,children:"?"}),a.jsxs("div",{className:"question-form-titles",children:[a.jsx("div",{className:"question-form-title",children:t.title}),t.description?a.jsx("div",{className:"question-form-desc",children:t.description}):null]}),f?a.jsx("span",{className:"question-form-pill",children:"已回答"}):null]}),a.jsx("div",{className:"question-form-body",children:t.questions.map(x=>{const k=h[x.id];return a.jsxs("div",{className:"qf-field",children:[a.jsxs("label",{className:"qf-label",children:[a.jsx("span",{children:x.label}),x.required?a.jsx("span",{className:"qf-required",children:"*"}):null]}),x.help?a.jsx("div",{className:"qf-help",children:x.help}):null,x.type==="radio"&&x.options?a.jsx("div",{className:"qf-choices",role:"radiogroup",children:x.options.map(j=>a.jsxs("label",{className:`qf-choice${k===j.value?" is-on":""}${f?" is-disabled":""}`,title:j.description,children:[a.jsx("input",{type:"radio",name:`${t.id}-${x.id}`,checked:k===j.value,disabled:f,onChange:()=>p(x.id,j.value)}),a.jsx(Uy,{option:j})]},j.value))}):null,x.type==="checkbox"&&x.options?a.jsx("div",{className:"qf-choices",children:x.options.map(j=>{const E=Array.isArray(k)?k:[],b=E.includes(j.value),P=x.maxSelections!==void 0&&!b&&E.length>=x.maxSelections;return a.jsxs("label",{title:j.description,className:`qf-choice${b?" is-on":""}${P||f?" is-disabled":""}`,children:[a.jsx("input",{type:"checkbox",checked:b,disabled:f||P,onChange:()=>v(x.id,j.value,x.maxSelections)}),a.jsx(Uy,{option:j})]},j.value)})}):null,x.type==="select"&&x.options?a.jsxs("select",{className:"qf-select",value:typeof k=="string"?k:"",disabled:f,onChange:j=>p(x.id,j.target.value),children:[a.jsx("option",{value:"",disabled:!0,children:x.placeholder??"请选择…"}),x.options.map(j=>a.jsx("option",{value:j.value,children:j.label},j.value))]}):null,x.type==="text"?a.jsx("input",{type:"text",className:"qf-input",value:typeof k=="string"?k:"",placeholder:x.placeholder,disabled:f,onChange:j=>p(x.id,j.target.value)}):null,x.type==="number"?a.jsx("input",{type:"number",className:"qf-input",value:typeof k=="string"?k:"",placeholder:x.placeholder,min:x.min,max:x.max,step:x.step,disabled:f,onChange:j=>p(x.id,j.target.value)}):null,x.type==="textarea"?a.jsx("textarea",{className:"qf-textarea",value:typeof k=="string"?k:"",placeholder:x.placeholder,rows:3,disabled:f,onChange:j=>p(x.id,j.target.value)}):null,x.type==="range"?a.jsxs("div",{className:"qf-range-wrap",children:[a.jsx("input",{type:"range",className:"qf-range",value:typeof k=="string"&&k.trim()?k:String(x.min??0),min:x.min,max:x.max,step:x.step,disabled:f,onChange:j=>p(x.id,j.target.value)}),a.jsx("output",{className:"qf-range-value",children:typeof k=="string"&&k.trim()?k:String(x.min??0)})]}):null,x.type==="color"?a.jsx("input",{type:"color",className:"qf-color",value:II(k),disabled:f,onChange:j=>p(x.id,j.target.value)}):null,x.type==="switch"?a.jsxs("label",{className:"qf-switch",children:[a.jsx("input",{type:"checkbox",role:"switch",checked:k===!0||k==="true",disabled:f,onChange:j=>p(x.id,j.target.checked?"true":"false")}),a.jsx("span",{"aria-hidden":!0})]}):null]},x.id)})}),r?null:a.jsxs("div",{className:"question-form-foot",children:[f?a.jsx("span",{className:"qf-locked-note",children:"已提交答复"}):a.jsx("span",{className:"qf-hint",children:"选择或填写后提交,未答项将记为跳过"}),f?null:a.jsx("button",{type:"button",className:"primary",onClick:y,disabled:!m,children:t.submitLabel??"提交"})]})]})});function Uy({option:e}){return a.jsxs("span",{className:"qf-chip-copy",children:[a.jsx("span",{children:e.label}),e.description?a.jsx("span",{className:"qf-chip-desc",children:e.description}):null]})}function MI(e,t){const n={};for(const s of e.questions)t&&t[s.id]!==void 0?n[s.id]=Cf(s,t[s.id]):s.defaultValue!==void 0?n[s.id]=Cf(s,s.defaultValue):n[s.id]=Q1(s);return n}function Q1(e){return e.type==="checkbox"?[]:e.type==="switch"?!1:e.type==="range"?String(e.min??0):e.type==="color"?"#000000":""}function Cf(e,t){return typeof t=="boolean"?t:Array.isArray(t)?t.map(n=>Hy(e,n)):Hy(e,t)}function II(e){return typeof e=="string"&&/^#[0-9a-fA-F]{6}$/.test(e)?e:"#000000"}function RI({msg:e}){if(e.role==="user"){const t=e.segments.map(n=>n.kind==="text"?n.text:"").join("");return a.jsx(Ye.div,{className:"msg msg--user",variants:yt,initial:"hidden",animate:"visible",children:a.jsx("div",{className:"msg__bubble",children:t})})}return a.jsxs(Ye.div,{className:"msg msg--assistant",variants:yt,initial:"hidden",animate:"visible",children:[a.jsx("div",{className:"msg__avatar","aria-hidden":!0,children:a.jsx(D,{name:"sparkle",size:13,color:"#fff"})}),a.jsx("div",{className:"msg__content",children:e.segments.map(t=>{switch(t.kind){case"text":return a.jsx("p",{className:"msg__text",children:t.text},t.id);case"agent-text":return a.jsx("p",{className:"msg__text msg__text--agent",children:t.text},t.id);case"agent-thinking":return a.jsx($I,{text:t.text},t.id);case"todo":return a.jsx(PI,{items:t.items},t.id);case"tool":return a.jsx(AI,{tool:t.tool},t.id);case"form":return t.answers?a.jsx(X1,{form:t.form,interactive:!1,submittedAnswers:t.answers},t.id):a.jsxs("div",{className:"msg__form-hint",children:[a.jsx(D,{name:"chevron-right",size:14}),"请在右侧「问题」面板作答"]},t.id)}})})]})}function $I({text:e}){return a.jsxs("details",{className:"think-block",children:[a.jsxs("summary",{className:"think-block__summary",children:[a.jsx(D,{name:"sparkle",size:12}),"思考过程"]}),a.jsx("div",{className:"think-block__body",children:e})]})}function LI({chat:e,placeholder:t,emptyHint:n,onSend:s,title:r,subtitle:i}){const{messages:o,busy:l}=G1(e),[c,u]=S.useState(""),d=S.useRef(null);S.useEffect(()=>{const h=d.current;h&&(h.scrollTop=h.scrollHeight)},[o,l]);function f(){const h=c.trim();!h||l||!s||(u(""),s(h))}return a.jsxs("div",{className:"chat",children:[r?a.jsxs("div",{className:"chat__head",children:[a.jsx("div",{className:"chat__head-title",children:r}),i?a.jsx("div",{className:"chat__head-sub",children:i}):null]}):null,a.jsxs("div",{className:"chat__body",ref:d,children:[o.length===0?a.jsx("div",{className:"chat__empty",children:n??"开始对话,agent 将引导你完成配置。"}):a.jsx(qi,{initial:!1,children:o.map(h=>a.jsx(RI,{msg:h},h.id))}),l?a.jsxs("div",{className:"chat__typing","aria-hidden":!0,children:[a.jsx("span",{}),a.jsx("span",{}),a.jsx("span",{})]}):null]}),s?a.jsxs("div",{className:"chat__composer",children:[a.jsx("textarea",{className:"chat__input",rows:1,value:c,placeholder:t??"输入消息…",disabled:l,onChange:h=>u(h.target.value),onKeyDown:h=>{h.key==="Enter"&&!h.shiftKey&&(h.preventDefault(),f())}}),a.jsx("button",{type:"button",className:"primary chat__send",disabled:l||!c.trim(),onClick:f,"aria-label":"发送",children:a.jsx(D,{name:"send",size:16,color:"#fff"})})]}):null]})}const DI=280;function zI({form:e,formKey:t=null,interactive:n,submittedAnswers:s,onSubmit:r}){const i=S.useRef(null),[o,l]=S.useState(!1),c=(e==null?void 0:e.questions.length)??0,u=s!==void 0,[d,f]=S.useState(0);S.useEffect(()=>{f(u?c:0)},[t,u,c]),S.useEffect(()=>{if(u){f(c);return}if(d>=c)return;const y=window.setTimeout(()=>f(g=>Math.min(g+1,c)),DI);return()=>window.clearTimeout(y)},[u,c,d]);const h=d>=c,p=u?c:Math.min(d,c),v=e?{...e,questions:e.questions.slice(0,p)}:null,_=!u&&!h,w=!!e&&n&&!_,m=w&&o;return a.jsxs("div",{className:"questions-panel",children:[a.jsx("div",{className:"questions-panel-body",children:v?a.jsxs(a.Fragment,{children:[a.jsx(X1,{ref:i,form:v,interactive:n,submittedAnswers:s,hideInternalSubmit:!0,onReadyChange:l,onSubmit:r}),_?a.jsxs("div",{className:"questions-panel-typing","aria-hidden":!0,children:[a.jsx("span",{className:"questions-panel-dot"}),a.jsx("span",{className:"questions-panel-dot"}),a.jsx("span",{className:"questions-panel-dot"})]}):null]}):a.jsx("div",{className:"questions-panel-skeleton",children:"正在生成问题…"})}),u?null:a.jsxs("div",{className:"questions-panel-foot",children:[a.jsx("span",{className:"questions-panel-status",children:_?"正在生成问题…":"选择或填写后继续"}),a.jsx("button",{type:"button",className:"ghost questions-skip",disabled:!w,onClick:()=>{var y;return(y=i.current)==null?void 0:y.skipAll()},children:"全部跳过"}),a.jsx("button",{type:"button",className:"primary questions-continue",disabled:!m,onClick:()=>{var y;return(y=i.current)==null?void 0:y.submit()},children:"继续"})]})]})}function ql({chat:e,work:t,workHead:n,onSend:s,chatTitle:r,chatSubtitle:i,chatPlaceholder:o,chatEmptyHint:l}){const{pendingForm:c,formTransitioning:u}=G1(e),d=ee(p=>p.layout);function f(p){p.preventDefault();const v=p.clientX,_=d.chatWidth,w=p.pointerId;p.currentTarget.setPointerCapture(w);function m(g){const x=Math.max(280,Math.min(720,_+g.clientX-v));B.setChatWidth(x)}function y(g){_+g.clientX-v<340&&B.setChatCollapsed(!0),window.removeEventListener("pointermove",m),window.removeEventListener("pointerup",y)}window.addEventListener("pointermove",m),window.addEventListener("pointerup",y,{once:!0})}const h={"--chat-width":`${d.chatWidth}px`};return a.jsxs("div",{className:"split"+(d.chatCollapsed?" split--chat-collapsed":""),style:h,children:[d.chatCollapsed?a.jsx("button",{type:"button",className:"split-chat-peek",onClick:()=>B.setChatCollapsed(!1),title:"展开对话","aria-label":"展开对话",children:a.jsx(OI,{})}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"split__chat",children:a.jsx(LI,{chat:e,onSend:s,title:r,subtitle:i,placeholder:o,emptyHint:l})}),a.jsx("button",{type:"button",className:"split-resizer",onPointerDown:f,title:"拖拽调整对话宽度;拖到较窄会自动收起","aria-label":"拖拽调整对话宽度"})]}),a.jsx("div",{className:"split__work",children:c?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"work-head",children:[a.jsx("div",{className:"work-head__title",children:"问题"}),a.jsx("div",{className:"work-head__sub",children:"回答后继续"})]}),a.jsx(zI,{form:c.form,formKey:c.segmentId,interactive:!0,onSubmit:(p,v)=>e.submitForm(v)})]}):u?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"work-head",children:[a.jsx("div",{className:"work-head__title",children:"问题"}),a.jsx("div",{className:"work-head__sub",children:"生成下一步"})]}),a.jsx("div",{className:"work-body",children:a.jsx("div",{className:"empty-hint",children:"正在生成下一步配置问题…"})})]}):a.jsxs(a.Fragment,{children:[n,t]})})]})}function OI(){return a.jsx("span",{"aria-hidden":!0,children:"›"})}const Z1="";async function FI(){return await(await fi("/api/account/profile")).json()}async function Ip(){return(await(await fi("/api/account/machines")).json()).machines}async function VI(e){await fi(`/api/account/machines/${e}`,{method:"DELETE"})}async function BI(e,t){await fi(`/api/account/machines/${e}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)})}async function HI(e){return(await(await fi(`/api/account/machines/${e}/regenerate-key`,{method:"POST"})).json()).key}async function J1(){return(await(await fi("/api/account/owner-token")).json()).token}let Tf;async function WI(){try{const e=await fetch(`${Z1}/api/public-config`);if(e.ok){const t=await e.json();t.relayGatewayUrl&&(Tf=t.relayGatewayUrl)}}catch{}}function ek(){return Tf||(typeof window<"u"?window.location.origin.replace(/^http/,"ws"):"ws://your-server:8787")}const Ky="@ali/aitable-workflow@latest",UI="";function KI(e){return e?`npm i -g --registry=${e} ${Ky}`:`npm i -g ${Ky}`}function YI(e=UI){return KI(e)}function qI(e,t=ek()){return["aitable-workflow connect",` --server-url ${t}`,` --key ${e}`," --name <此机器名>"].join(` \\
|
|
57
|
+
`)}function GI(e,t="<此机器名>",n=ek()){return["aitable-workflow connect",` --server-url ${n}`,` --token ${e}`,` --name ${t}`].join(` \\
|
|
58
|
+
`)}async function fi(e,t){var i;const n=qs.getToken(),s=new Headers(t==null?void 0:t.headers);n&&s.set("Authorization",`Bearer ${n}`);let r;try{r=await fetch(`${Z1}${e}`,{...t,headers:s})}catch(o){const l=o instanceof Error?o.message:String(o);throw new Error(`无法连接后端服务(当前站点):${l}`)}if(!r.ok){const o=await r.text();try{const l=JSON.parse(o);if((i=l.error)!=null&&i.message)throw new Error(l.error.message)}catch(l){if(l instanceof Error&&l.message!==o)throw l}throw new Error(o||`HTTP ${r.status}`)}return r}const Yy={claudecode:"Claude",codex:"Codex",qoder:"Qoder"};function XI({projectId:e}){var w,m,y;const[t,n]=S.useState(null),[s,r]=S.useState(!1),[i,o]=S.useState([]),[l,c]=S.useState(!1);if(S.useEffect(()=>{!Me||!e||Lr(e).then(g=>n(g)).catch(()=>{})},[e]),!t||!t.machineId)return null;const u=t.status==="online",d=((w=t.machine)==null?void 0:w.runtimes)??[],f=((m=t.machine)==null?void 0:m.hasDws)??!1,h=((y=t.machine)==null?void 0:y.hostname)??t.machineId.slice(0,8);async function p(){if(!e)return;c(!0);let g=0;const x=setInterval(async()=>{g++;try{const k=await Lr(e);k.status==="online"?(clearInterval(x),n(k),c(!1)):g>=12&&(clearInterval(x),c(!1))}catch{g>=12&&(clearInterval(x),c(!1))}},5e3)}async function v(){try{const g=await Ip();o(g.filter(x=>x.status==="online"))}catch{}r(!0)}async function _(g){e&&(await N1(e,g),n(await Lr(e)),r(!1))}return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:`engine-bar${u?"":" engine-bar--offline"}`,children:[a.jsx("span",{className:`machine-status ${u?"machine-status--online":"machine-status--offline"}`}),a.jsxs("span",{className:"engine-bar__name",children:["⚡ ",h]}),u?a.jsxs("span",{className:"engine-bar__caps",children:[d.map(g=>Yy[g]??g).join(" · "),f?" · dws ✓":""]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"engine-bar__offline-text",children:"离线"}),l?a.jsx("span",{className:"engine-bar__waiting",children:"等待重连中..."}):a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"engine-bar__action",onClick:()=>void p(),children:"等待重连"}),a.jsx("button",{type:"button",className:"engine-bar__action",onClick:()=>void v(),children:"切换引擎"}),a.jsx("button",{type:"button",className:"engine-bar__action",onClick:()=>B.setStage("engines"),children:"管理引擎"})]})]})]}),s&&a.jsx("div",{className:"engine-switch-overlay",onClick:()=>r(!1),children:a.jsxs("div",{className:"engine-switch-dialog",onClick:g=>g.stopPropagation(),children:[a.jsx("div",{className:"engine-switch-dialog__title",children:"切换执行引擎"}),i.length===0?a.jsx("div",{className:"engine-switch-dialog__empty",children:"没有其他在线引擎"}):i.map(g=>a.jsxs("button",{type:"button",className:"engine-switch-dialog__option",onClick:()=>void _(g.machineId),children:[a.jsx("span",{className:"machine-status machine-status--online"}),a.jsx("span",{children:g.displayName||g.name}),a.jsx("span",{className:"engine-switch-dialog__caps",children:g.runtimes.map(x=>Yy[x]??x).join(" · ")})]},g.machineId)),a.jsx("button",{type:"button",className:"engine-switch-dialog__cancel",onClick:()=>r(!1),children:"取消"})]})})]})}function tk({title:e,missing:t,warnings:n=[],onClose:s,onLocate:r}){return a.jsx("div",{className:"modal-overlay",onClick:s,children:a.jsxs("div",{className:"modal-card",onClick:i=>i.stopPropagation(),children:[a.jsxs("div",{className:"modal-card__head",children:[a.jsx("span",{className:"modal-card__icon",children:a.jsx(D,{name:"warn",size:16})}),a.jsx("span",{className:"modal-card__title",children:e??"无法进入下一步"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:s,children:a.jsx(D,{name:"close",size:14})})]}),a.jsxs("div",{className:"modal-card__body",children:[t.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"modal-card__section-label",children:"当前阶段还缺少以下必填配置:"}),a.jsx("ul",{className:"modal-card__list",children:t.map((i,o)=>a.jsxs("li",{className:"modal-card__item modal-card__item--error",children:[a.jsxs("span",{className:"modal-card__item-scope",children:["[",qy(i.scope),"]"]}),a.jsx("span",{className:"modal-card__item-target",children:i.target}),a.jsx("span",{className:"modal-card__item-label",children:i.label}),a.jsx("button",{type:"button",className:"modal-card__locate",onClick:()=>r(i),children:"定位 →"})]},`${i.code}-${i.target}-${o}`))})]}),n.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"modal-card__section-label modal-card__section-label--warn",children:"以下为建议项(不阻断):"}),a.jsx("ul",{className:"modal-card__list",children:n.map((i,o)=>a.jsxs("li",{className:"modal-card__item modal-card__item--warn",children:[a.jsxs("span",{className:"modal-card__item-scope",children:["[",qy(i.scope),"]"]}),a.jsx("span",{className:"modal-card__item-label",children:i.label})]},`${i.code}-${i.target}-${o}`))})]})]}),a.jsxs("div",{className:"modal-card__foot",children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:s,children:"稍后处理"}),t.length>0&&a.jsx("button",{type:"button",className:"primary modal-card__btn",onClick:()=>r(t[0]),children:"去补齐第一项 →"})]})]})})}function qy(e){switch(e){case"project":return"项目";case"workflow":return"工作流";case"step":return"步骤";case"env":return"环境变量"}}const QI=[{id:"claude",name:"Claude Code",vendor:"Anthropic",detected:!0,selected:!0,capabilities:["编码","推理","长上下文"],desc:"本地已检测到 CLI,可作为工作流设计与复杂步骤执行引擎"},{id:"qoder",name:"Qoder",vendor:"Qoder",detected:!0,selected:!0,capabilities:["编码","仓库理解"],desc:"适合把业务流程落成配置、脚本与可审查产物"},{id:"codex",name:"Codex",vendor:"OpenAI",detected:!1,selected:!1,capabilities:["编码","自动修复"],desc:"未检测到,安装 CLI 后可作为候选执行引擎"}],nk=[{id:"classify",name:"信息校验",recipe:"validate-onboarding",engine:"llm_only",auto:!0,inputs:["员工姓名","身份证号","入职日期"],outputs:["校验结论","异常项"]},{id:"investigate",name:"权限准备",recipe:"prepare-access",engine:"qoder",auto:!0,inputs:["员工姓名","部门","岗位","校验结论"],outputs:["权限清单"]},{id:"draft_reply",name:"入职指引草拟",recipe:"draft-onboarding-guide",engine:"llm_only",auto:!0,inputs:["员工姓名","部门","岗位","权限清单"],outputs:["入职指引"]},{id:"quality_check",name:"法务与 HR 复核",recipe:"hr-legal-review",engine:"llm_only",auto:!1,needsHuman:!0,inputs:["入职指引","异常项"],outputs:["复核结论"]},{id:"send_reply",name:"发送入职通知",recipe:"send-onboarding-notice",engine:"llm_only",auto:!0,inputs:["员工姓名","入职指引","复核结论"],outputs:["发送状态"]}],ZI=[{from:"classify",to:"investigate"},{from:"investigate",to:"draft_reply"},{from:"draft_reply",to:"quality_check"},{from:"quality_check",to:"send_reply"}],sk=[{id:"fld_employee_name",name:"员工姓名",type:"text",required:!0,group:"business"},{id:"fld_department",name:"部门",type:"text",required:!0,group:"business"},{id:"fld_position",name:"岗位",type:"text",group:"business"},{id:"fld_priority",name:"入职紧急度",type:"single_select",options:["P0-紧急","P1-高","P2-中","P3-低"],group:"business"},{id:"fld_category",name:"事项类型",type:"single_select",options:["入职办理","合同确认","设备申领","权限开通","其他"],group:"business"},{id:"fld_reply_content",name:"入职指引",type:"text",group:"business"},{id:"fld_resolution",name:"权限清单",type:"text",group:"business"},{id:"fld_satisfaction",name:"复核结论",type:"single_select",options:["通过","需补充材料","需法务复核"],group:"business"},{id:"fld_status",name:"状态",type:"single_select",options:["待处理","校验中","权限准备中","草拟指引中","复核中","发送中","已完成"],group:"process"},{id:"fld_current_step",name:"当前步骤",type:"text",group:"process"},{id:"fld_assignee",name:"处理人",type:"user",group:"process"},{id:"fld_sla_deadline",name:"SLA截止时间",type:"datetime",group:"process"},{id:"fld_event_log",name:"事件日志",type:"text",group:"process"}],rk=[{id:"v_grid",name:"全部入职事项",kind:"grid",desc:"全量入职事项列表视图"},{id:"v_kanban",name:"入职进度看板",kind:"kanban",desc:"按状态分列的看板"},{id:"v_form",name:"入职信息提交",kind:"form",desc:"给 HR 或用人团队的提交表单"},{id:"v_calendar",name:"入职日历",kind:"calendar",desc:"按入职日期查看事项"}],Rp="ZQYprEoWoPLkorKyuBeBDRd9V1waOeDk",ik="1HixpC7",JI="epHNF75";function ok(e,t,n){const s=new URLSearchParams({entrance:"data",sheetId:t});return n!=null&&n.trim()&&s.set("viewId",n.trim()),`https://alidocs.dingtalk.com/i/nodes/${e}?iframeQuery=${encodeURIComponent(s.toString())}`}ok(Rp,ik,JI);const eR=[{id:"hr_partner",name:"HR 业务伙伴",persona:"你是谨慎、温和且注重证据的 HR 业务伙伴。你负责把员工相关流程转化为可执行步骤,先核对制度和人员条件,再给出清晰的处理建议。涉及员工权益、绩效、离职、纪律处分等敏感事项时,必须标出风险点、建议人工复核,并避免使用带倾向性的判断语言。",skills:["policy_interpretation","eligibility_check","document_draft","handoff_summary"],knowledge:["kb_hr_policy","kb_org_people"]},{id:"legal_counsel",name:"法务顾问",persona:"你是业务友好型法务顾问,负责识别合同、合规和隐私风险,并把复杂法务意见转成业务能执行的下一步动作。你不会直接替业务做最终法律承诺;对高风险条款、责任限制、数据出境、劳动争议和监管风险,需要给出风险等级、修改建议和升级路径。",skills:["risk_review","approval_gate","document_draft","handoff_summary"],knowledge:["kb_contract_templates","kb_legal_playbook"]}],tR=`# HR 入职协同 — 工作流模板
|
|
59
|
+
meta:
|
|
60
|
+
name: "HR 入职协同"
|
|
61
|
+
version: "1.0.0"
|
|
62
|
+
domain: hr_onboarding
|
|
63
|
+
|
|
64
|
+
steps:
|
|
65
|
+
- id: classify
|
|
66
|
+
name: "信息校验"
|
|
67
|
+
recipe: validate-onboarding
|
|
68
|
+
engine: llm_only
|
|
69
|
+
auto: true
|
|
70
|
+
input_mapping: { employee: 员工姓名, start_date: 入职日期 }
|
|
71
|
+
output_mapping: { result: 校验结论, issues: 异常项 }
|
|
72
|
+
|
|
73
|
+
- id: investigate
|
|
74
|
+
name: "权限准备"
|
|
75
|
+
recipe: prepare-access
|
|
76
|
+
engine: qoder
|
|
77
|
+
auto: true
|
|
78
|
+
output_mapping: { access: 权限清单 }
|
|
79
|
+
|
|
80
|
+
- id: draft_reply
|
|
81
|
+
name: "入职指引草拟"
|
|
82
|
+
recipe: draft-onboarding-guide
|
|
83
|
+
engine: llm_only
|
|
84
|
+
auto: true
|
|
85
|
+
output_mapping: { guide: 入职指引 }
|
|
86
|
+
|
|
87
|
+
- id: quality_check
|
|
88
|
+
name: "法务与 HR 复核"
|
|
89
|
+
recipe: hr-legal-review
|
|
90
|
+
engine: llm_only
|
|
91
|
+
auto: false # 人工审批节点
|
|
92
|
+
compliance: true
|
|
93
|
+
|
|
94
|
+
- id: send_reply
|
|
95
|
+
name: "发送入职通知"
|
|
96
|
+
recipe: send-onboarding-notice
|
|
97
|
+
engine: llm_only
|
|
98
|
+
auto: true
|
|
99
|
+
|
|
100
|
+
edges:
|
|
101
|
+
- { from: __start__, to: classify }
|
|
102
|
+
- { from: classify, to: investigate }
|
|
103
|
+
- { from: investigate, to: draft_reply }
|
|
104
|
+
- { from: draft_reply, to: quality_check }
|
|
105
|
+
- { from: quality_check, to: send_reply }
|
|
106
|
+
- { from: send_reply, to: __end__ }
|
|
107
|
+
`,nR=`# aitable-workflow.config.yml
|
|
108
|
+
name: "HR 入职协同"
|
|
109
|
+
agent:
|
|
110
|
+
engines: [claude, qoder]
|
|
111
|
+
table:
|
|
112
|
+
space: "人力协同"
|
|
113
|
+
base: "入职流程"
|
|
114
|
+
llm:
|
|
115
|
+
provider: dashscope
|
|
116
|
+
model: qwen-max
|
|
117
|
+
roles:
|
|
118
|
+
- HR 业务伙伴
|
|
119
|
+
- 法务顾问
|
|
120
|
+
sop: |
|
|
121
|
+
1. 入职通知需经 HR 确认后再发送
|
|
122
|
+
2. 合同、隐私或跨境事项需法务复核
|
|
123
|
+
`,sR={"validate-onboarding.recipe.ts":`/**
|
|
124
|
+
* Recipe: 信息校验 — 校验入职员工的基本信息与材料完整性
|
|
125
|
+
*/
|
|
126
|
+
import type { RecipeDefinition, RecipeContext, RecipeResult } from '../runtime/types';
|
|
127
|
+
|
|
128
|
+
const recipe: RecipeDefinition = {
|
|
129
|
+
meta: {
|
|
130
|
+
id: 'validate-onboarding',
|
|
131
|
+
name: '信息校验',
|
|
132
|
+
role: 'HR 业务伙伴',
|
|
133
|
+
engine: 'llm_only',
|
|
134
|
+
requiresAgent: false,
|
|
135
|
+
timeoutMs: 60_000,
|
|
136
|
+
},
|
|
137
|
+
inputs: [
|
|
138
|
+
{ name: 'employee', type: 'string', required: true },
|
|
139
|
+
{ name: 'id_number', type: 'string', required: true },
|
|
140
|
+
{ name: 'start_date', type: 'string', required: true },
|
|
141
|
+
],
|
|
142
|
+
outputs: [
|
|
143
|
+
{ name: 'result', type: 'string' },
|
|
144
|
+
{ name: 'issues', type: 'string' },
|
|
145
|
+
],
|
|
146
|
+
|
|
147
|
+
async execute(ctx: RecipeContext): Promise<RecipeResult> {
|
|
148
|
+
const { employee, id_number, start_date } = ctx.input;
|
|
149
|
+
ctx.log(\`校验入职信息: \${employee}\`);
|
|
150
|
+
const result = await ctx.toolkit.ai.chatJSON(
|
|
151
|
+
\`你是 HR 信息校验专员。请核对以下入职员工信息是否完整且合规。
|
|
152
|
+
员工姓名: \${employee}
|
|
153
|
+
身份证号: \${id_number}
|
|
154
|
+
入职日期: \${start_date}
|
|
155
|
+
检查项: 身份信息/学历证明/体检报告/劳动合同/银行账户
|
|
156
|
+
输出: 校验结论(通过/需补充材料)、异常项列表\`,
|
|
157
|
+
{ type: 'object', properties: { result: {}, issues: {} } }
|
|
158
|
+
);
|
|
159
|
+
return { status: 'success', output: result };
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export default recipe;
|
|
164
|
+
`,"prepare-access.recipe.ts":`/**
|
|
165
|
+
* Recipe: 权限准备 — 调用 coding agent 根据岗位自动开通系统权限
|
|
166
|
+
*/
|
|
167
|
+
import type { RecipeDefinition, RecipeContext, RecipeResult } from '../runtime/types';
|
|
168
|
+
|
|
169
|
+
const recipe: RecipeDefinition = {
|
|
170
|
+
meta: {
|
|
171
|
+
id: 'prepare-access',
|
|
172
|
+
name: '权限准备',
|
|
173
|
+
role: 'HR 业务伙伴',
|
|
174
|
+
engine: 'qoder',
|
|
175
|
+
requiresAgent: true,
|
|
176
|
+
timeoutMs: 1_800_000,
|
|
177
|
+
},
|
|
178
|
+
inputs: [
|
|
179
|
+
{ name: 'employee', type: 'string', required: true },
|
|
180
|
+
{ name: 'department', type: 'string' },
|
|
181
|
+
{ name: 'position', type: 'string' },
|
|
182
|
+
{ name: 'result', type: 'string' },
|
|
183
|
+
],
|
|
184
|
+
outputs: [{ name: 'access', type: 'string' }],
|
|
185
|
+
|
|
186
|
+
async execute(ctx: RecipeContext): Promise<RecipeResult> {
|
|
187
|
+
ctx.log('根据岗位查询权限模板并开通…');
|
|
188
|
+
const template = await ctx.toolkit.kb.search(\`\${ctx.input.position} 权限模板\`);
|
|
189
|
+
const access = await ctx.toolkit.coding.run({
|
|
190
|
+
prompt: \`根据岗位「\${ctx.input.position}」和部门「\${ctx.input.department}」,生成权限开通清单。\\n员工: \${ctx.input.employee}\`,
|
|
191
|
+
context: template,
|
|
192
|
+
});
|
|
193
|
+
return { status: 'success', output: { access } };
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
export default recipe;
|
|
198
|
+
`,"draft-onboarding-guide.recipe.ts":`/**
|
|
199
|
+
* Recipe: 入职指引草拟 — 基于权限清单生成个性化入职指引文档
|
|
200
|
+
*/
|
|
201
|
+
import type { RecipeDefinition, RecipeContext, RecipeResult } from '../runtime/types';
|
|
202
|
+
|
|
203
|
+
const recipe: RecipeDefinition = {
|
|
204
|
+
meta: { id: 'draft-onboarding-guide', name: '入职指引草拟', engine: 'llm_only', timeoutMs: 60_000 },
|
|
205
|
+
inputs: [
|
|
206
|
+
{ name: 'employee', type: 'string' },
|
|
207
|
+
{ name: 'department', type: 'string' },
|
|
208
|
+
{ name: 'position', type: 'string' },
|
|
209
|
+
{ name: 'access', type: 'string' },
|
|
210
|
+
],
|
|
211
|
+
outputs: [{ name: 'guide', type: 'string' }],
|
|
212
|
+
|
|
213
|
+
async execute(ctx: RecipeContext): Promise<RecipeResult> {
|
|
214
|
+
const guide = await ctx.toolkit.ai.chat(
|
|
215
|
+
\`为新员工 \${ctx.input.employee}(\${ctx.input.department} · \${ctx.input.position})草拟入职指引。
|
|
216
|
+
包含: 报到流程、系统账号与权限说明、团队介绍、首周安排。
|
|
217
|
+
权限清单: \${ctx.input.access}\`
|
|
218
|
+
);
|
|
219
|
+
return { status: 'success', output: { guide } };
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
export default recipe;
|
|
224
|
+
`,"hr-legal-review.recipe.ts":`/**
|
|
225
|
+
* Recipe: 法务与 HR 复核 — 人工审批节点(auto: false)
|
|
226
|
+
* AI 先给出合规风险评估,等待法务或 HR 确认后放行
|
|
227
|
+
*/
|
|
228
|
+
import type { RecipeDefinition, RecipeContext, RecipeResult } from '../runtime/types';
|
|
229
|
+
|
|
230
|
+
const recipe: RecipeDefinition = {
|
|
231
|
+
meta: { id: 'hr-legal-review', name: '法务与 HR 复核', engine: 'llm_only', needsHuman: true },
|
|
232
|
+
inputs: [
|
|
233
|
+
{ name: 'guide', type: 'string' },
|
|
234
|
+
{ name: 'issues', type: 'string' },
|
|
235
|
+
],
|
|
236
|
+
outputs: [{ name: 'approved', type: 'boolean' }],
|
|
237
|
+
|
|
238
|
+
async execute(ctx: RecipeContext): Promise<RecipeResult> {
|
|
239
|
+
const review = await ctx.toolkit.ai.chatJSON(
|
|
240
|
+
\`审核入职指引和校验异常项,评估合规风险(0-1)并给出复核结论。
|
|
241
|
+
入职指引: \${ctx.input.guide}
|
|
242
|
+
异常项: \${ctx.input.issues ?? '无'}\`,
|
|
243
|
+
{ type: 'object', properties: { risk_score: {}, conclusion: {}, advice: {} } }
|
|
244
|
+
);
|
|
245
|
+
ctx.log(\`合规风险评分: \${review.risk_score},等待法务/HR 审批\`);
|
|
246
|
+
return { status: 'pending_human', output: review };
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
export default recipe;
|
|
251
|
+
`,"send-onboarding-notice.recipe.ts":`/**
|
|
252
|
+
* Recipe: 发送入职通知 — 通过 IM 通道把审核通过的入职指引发给新员工
|
|
253
|
+
*/
|
|
254
|
+
import type { RecipeDefinition, RecipeContext, RecipeResult } from '../runtime/types';
|
|
255
|
+
|
|
256
|
+
const recipe: RecipeDefinition = {
|
|
257
|
+
meta: { id: 'send-onboarding-notice', name: '发送入职通知', engine: 'llm_only' },
|
|
258
|
+
inputs: [
|
|
259
|
+
{ name: 'employee', type: 'string' },
|
|
260
|
+
{ name: 'guide', type: 'string' },
|
|
261
|
+
{ name: 'conclusion', type: 'string' },
|
|
262
|
+
],
|
|
263
|
+
outputs: [{ name: 'sent', type: 'boolean' }],
|
|
264
|
+
|
|
265
|
+
async execute(ctx: RecipeContext): Promise<RecipeResult> {
|
|
266
|
+
await ctx.toolkit.messaging.send({ to: ctx.input.employee, text: ctx.input.guide });
|
|
267
|
+
ctx.log('入职通知已发送至新员工');
|
|
268
|
+
return { status: 'success', output: { sent: true } };
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
export default recipe;
|
|
273
|
+
`},rR={classify:"validate-onboarding.recipe.ts",investigate:"prepare-access.recipe.ts",draft_reply:"draft-onboarding-guide.recipe.ts",quality_check:"hr-legal-review.recipe.ts",send_reply:"send-onboarding-notice.recipe.ts"},iR=[{title:"张三入职办理",customer:"张三 · 产品研发部",category:"入职办理",priority:"P0-紧急"},{title:"李四合同确认",customer:"李四 · 市场营销部",category:"合同确认",priority:"P2-中"},{title:"王五设备申领",customer:"王五 · 数据分析部",category:"设备申领",priority:"P1-高"},{title:"赵六权限开通",customer:"赵六 · 财务部",category:"权限开通",priority:"P1-高"}];function oR(){return le?null:{workflowYml:tR,configYml:nR,recipeFiles:sR,stepToRecipeFile:rR}}function ak(){return le?null:{steps:nk,incomingTickets:iR}}function Du(){return le?null:{fieldCount:sk.length,viewCount:rk.length}}function lk(){return le?[]:QI}const aR=[{id:"claude",type:"claudecode",name:"Claude Code",vendor:"Anthropic"},{id:"codex",type:"codex",name:"Codex CLI",vendor:"OpenAI"},{id:"qoder",type:"qoder",name:"Qoder CLI",vendor:"Alibaba"}];async function lR(){let e=new Map;try{const t=await jM();e=new Map(t.available.map(n=>[n.type,{version:n.version,cmd:n.cmd}]))}catch{}return aR.map(({id:t,type:n,name:s,vendor:r})=>{const i=e.get(n);return{id:t,name:s,vendor:r,detected:!!i,selected:!!i,capabilities:i?[i.version?`已安装 ${i.version}`:"已安装"]:["未安装"],desc:i?`本地已检测到 CLI(${i.cmd}),可作为工作流设计与执行引擎`:"未检测到本地 CLI,需先安装后使用"}})}function cR(){return le?[]:eR}function uR(){return le?"":Rp}function dR(){return le?null:{steps:nk,edges:ZI}}function fR(){return le?null:{fields:sk,views:rk,tableBaseId:Rp,tableSheetId:ik}}const hR=Mc({id:"discovery",title:"确认几点后开始生成",description:"以下是我根据配置阶段的角色、SOP 和表格信息预填的,改一改、勾一勾即可;真实模式下会先自动理解你的 SOP,再形成需求摘要。",submitLabel:"开始生成",questions:[{id:"triggers",label:"这个流程怎么被触发?(可多选)",type:"checkbox",options:[{label:"群消息触发",value:"im_message"},{label:"定时触发",value:"cron_schedule"},{label:"手动新建",value:"manual_create"},{label:"系统事件",value:"event_driven"}],defaultValue:["manual_create"],help:"真实模式下,这里会根据你的 SOP 自动预选。"},{id:"humanGates",label:"哪些环节需要人工把关后才能继续?",type:"checkbox",options:[{label:"HR 制度适用性确认",value:"HR 制度适用性确认"},{label:"法务风险复核",value:"法务风险复核"},{label:"最终发送 / 归档前确认",value:"最终发送 / 归档前确认"}],defaultValue:["法务风险复核"]},{id:"trackFields",label:"这个流程要记录 / 沉淀哪些关键信息?",type:"checkbox",options:[{label:"申请人 / 员工信息",value:"申请人 / 员工信息"},{label:"事项类型",value:"事项类型"},{label:"风险等级",value:"风险等级"},{label:"处理结论",value:"处理结论"},{label:"审批记录",value:"审批记录"}],defaultValue:["事项类型","风险等级","处理结论"]},{id:"onFailure",label:"出错、超时或卡住时怎么处理?通知谁?",type:"text",placeholder:"例:超时 30 分钟通知 HRBP;命中高风险条款时升级法务负责人"},{id:"constraints",label:"还有什么必须遵守的规则或要避免的做法?(可跳过)",type:"textarea",placeholder:"例:不得自动发送法律结论;涉及员工处分必须人工审批;对外口径需使用模板话术…"}]}),or=dR(),pR=[{kind:"say",text:"我先根据配置阶段的角色、SOP 和表格信息做一次需求预理解,再用一张确认卡片让你校正。"},{kind:"tool",label:"预填确认问题",detail:"触发方式 / 把关点 / 关键信息",ms:900},{kind:"say",text:"已理解——跨 HR 与法务协作的业务流程、以人工新建或系统事件触发。确认几点后我就开始生成:"},{kind:"form",form:hR},{kind:"say",text:"收到。我会先把这些答案整理成自然语言需求摘要,再生成工作流方案和处理动作配置。"},{kind:"todo",items:["整理需求摘要","规划步骤与依赖","生成 HR / 法务处理动作","插入人工把关卡点","连接步骤形成流程图"]},{kind:"tool",label:"生成需求摘要",detail:"确认答案 → 自然语言约束",ms:700},{kind:"todo-advance"},{kind:"tool",label:"分析流程阶段与字段",detail:"人工把关 / 风险复核",ms:800},{kind:"todo-advance"},{kind:"tool",label:"生成工作流与处理动作",detail:"流程配置 + 动作配置",ms:900},{kind:"todo-advance"},{kind:"tool",label:"插入人工把关卡点",detail:"HR / 法务复核",ms:700},{kind:"todo-advance"},{kind:"do",run:()=>{or&&B.set({steps:or.steps,edges:or.edges})}},{kind:"tool",label:"连接步骤 · 构建流程图",detail:`${(or==null?void 0:or.steps.length)??0} 个步骤`,ms:800},{kind:"todo-advance"},{kind:"say",text:"工作流已生成:右侧画布展示演示流程图。若要调用真实设计,请确认后端服务已启动,并用 local/app 形态启动前端(默认 pnpm dev 即为 local)。"}],mR=300;function gR(e,t,n={}){var r;const s=yR(n);if(t.type==="run.record.detected")return{records:vR(e.records,{id:t.record.id,title:t.record.title||t.record.id,state:t.record.state,status:t.record.currentStep?"running":"todo",currentStepId:t.record.currentStep,doneStepIds:[],createdAt:s.now(),updatedAt:s.now()}),logs:Ps(e.logs,t.record.id,t.record.currentStep??"run","info",`发现待处理记录:${t.record.title||t.record.id}`,s)};if(t.type==="run.step.started"){const i=((r=n.stepLevel)==null?void 0:r.call(n,t.stepId,t))??"ai";return{records:ji(e.records,t.itemId,o=>({...o,status:o.status==="done"?o.status:"running",currentStepId:o.status==="done"?o.currentStepId:t.stepId,updatedAt:s.now()})),logs:Ps(e.logs,t.itemId,t.stepId,i,`开始执行步骤:${t.stepName}`,s)}}return t.type==="run.step.succeeded"?{records:ji(e.records,t.itemId,i=>({...i,doneStepIds:Gy(i.doneStepIds,t.stepId),updatedAt:s.now()})),logs:zu(Ps(e.logs,t.itemId,t.stepId,"ok",`步骤完成:${t.stepName}`,s),t.itemId,t.stepId,"info",t.logs,s)}:t.type==="run.step.failed"?{records:ji(e.records,t.itemId,i=>({...i,status:i.status==="done"?i.status:"blocked",currentStepId:i.status==="done"?i.currentStepId:t.stepId,updatedAt:s.now()})),logs:zu(Ps(e.logs,t.itemId,t.stepId,"error",`步骤失败:${t.stepName} · ${t.error}`,s),t.itemId,t.stepId,"error",t.logs,s)}:t.type==="run.record.blocked"?{records:ji(e.records,t.itemId,i=>({...i,status:i.status==="done"?i.status:t.reason.includes("人工")?"review":"blocked",currentStepId:i.status==="done"?i.currentStepId:t.stepId,doneStepIds:Gy(i.doneStepIds,t.stepId),updatedAt:s.now()})),logs:zu(Ps(e.logs,t.itemId,t.stepId,"warn",`${t.stepName}:${t.reason}`,s),t.itemId,t.stepId,"info",t.logs,s)}:t.type==="run.record.completed"?{records:ji(e.records,t.itemId,i=>({...i,status:"done",currentStepId:null,updatedAt:s.now()})),logs:Ps(e.logs,t.itemId,"run","ok","流程完成",s)}:e}function yR(e){return{now:e.now??Date.now,id:e.id??xR,maxLogs:e.maxLogs??mR}}function vR(e,t){return e.findIndex(s=>s.id===t.id)<0?[...e,t]:e.map(s=>s.id===t.id?{...s,...t,doneStepIds:s.doneStepIds,status:s.status==="done"?s.status:t.status,currentStepId:s.status==="done"?s.currentStepId:t.currentStepId,createdAt:s.createdAt}:s)}function ji(e,t,n){return e.map(s=>s.id===t?n(s):s)}function Gy(e,t){return e.includes(t)?e:[...e,t]}function Ps(e,t,n,s,r,i){return e.some(l=>l.itemId===t&&l.stepId===n&&l.level===s&&l.text===r)?e:[...e,{id:i.id(),ts:i.now(),itemId:t,stepId:n,level:s,text:r}].slice(-i.maxLogs)}function zu(e,t,n,s,r,i){return r!=null&&r.length?r.reduce((o,l)=>Ps(o,t,n,s,l,i),e):e}function xR(){return`run_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,7)}`}function wR(e,t){var n,s;if(t.type==="task.started"||t.type==="task.snapshot")return{stageRuntime:Un(e,{status:t.task.status,taskId:t.task.id,checkpoint:t.task.checkpoint,message:t.task.currentAction??"真实运行任务已启动",retryable:t.task.status==="failed"||t.task.status==="blocked",block:t.task.block,error:t.task.error})};if(t.type==="task.progress")return{stageRuntime:Un(e,{...e.stageRuntime.run,status:"running",checkpoint:t.checkpoint,message:t.message})};if(t.type==="task.failed"){const r=((n=t.task.error)==null?void 0:n.message)??t.task.currentAction??"真实运行失败";return{stageRuntime:Un(e,{status:"failed",taskId:t.task.id,checkpoint:t.task.checkpoint,message:r,retryable:!0,error:t.task.error}),logs:Si(e.logs,Ni("error",r))}}if(t.type==="task.succeeded")return{stageRuntime:Un(e,{status:"succeeded",taskId:t.task.id,checkpoint:t.task.checkpoint,message:t.task.currentAction??"真实运行已停止",retryable:!1})};if(t.type==="task.blocked")return{stageRuntime:Un(e,{status:"blocked",taskId:t.task.id,checkpoint:t.task.checkpoint,message:((s=t.task.block)==null?void 0:s.message)??t.task.currentAction??"真实运行等待处理",retryable:!0,block:t.task.block})};if(t.type==="run.started")return{stageRuntime:{...e.stageRuntime,run:{status:"running",checkpoint:"started",message:`${t.workflowName} 已启动,${t.stepCount} 个步骤,监听间隔 ${Math.round(t.intervalMs/1e3)} 秒`,retryable:!1}},logs:Si(e.logs,Ni("ok",`${t.workflowName} 已启动,${t.stepCount} 个步骤,监听间隔 ${Math.round(t.intervalMs/1e3)} 秒`))};if(t.type==="run.progress")return{stageRuntime:Un(e,{status:"running",checkpoint:"listening",message:t.message,retryable:!1}),logs:Si(e.logs,Ni("ai",t.message))};if(t.type==="run.stopped")return{stageRuntime:Un(e,{status:"succeeded",checkpoint:"stopped",message:t.message,retryable:!1}),logs:Si(e.logs,Ni("ok",t.message))};if(_R(t)){const r=gR(kR(e),t,{stepLevel:i=>{var o;return(o=e.steps.find(l=>l.id===i))!=null&&o.requiresAgent?"ai":"info"}});return jR(r)}return{stageRuntime:Un(e,{status:"failed",checkpoint:"failed",message:t.error.message,retryable:!0,error:{code:t.error.code,message:t.error.message,retryable:!0,details:t.error.details}}),logs:Si(e.logs,Ni("error",t.error.message))}}function _R(e){return e.type==="run.record.detected"||e.type==="run.step.started"||e.type==="run.step.succeeded"||e.type==="run.step.failed"||e.type==="run.record.blocked"||e.type==="run.record.completed"}function kR(e){return{records:e.tickets.map(t=>({id:t.id,title:t.title,state:t.priority,status:t.status,currentStepId:t.currentStepId,doneStepIds:t.doneStepIds,createdAt:t.createdAt,updatedAt:t.createdAt})),logs:e.logs.map(t=>({id:t.id,ts:t.ts,itemId:t.ticketId,stepId:t.stepId,level:t.level,text:t.text}))}}function jR(e){return{tickets:e.records.map(t=>({id:t.id,title:t.title,customer:t.id,category:"真实记录",priority:t.state,status:t.status,currentStepId:t.currentStepId,doneStepIds:t.doneStepIds,createdAt:t.createdAt})),logs:e.logs.map(t=>({id:t.id,ts:t.ts,ticketId:t.itemId,stepId:t.stepId,level:t.level,text:t.text}))}}function Un(e,t){return{...e.stageRuntime,run:t}}function Si(e,t){return e.some(s=>s.ticketId===t.ticketId&&s.stepId===t.stepId&&s.level===t.level&&s.text===t.text)?e:[...e,t]}function Ni(e,t,n="run",s="run"){return{id:`run_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,7)}`,ts:Date.now(),ticketId:n,stepId:s,level:e,text:t}}function on(e){return B.get().projectId===e}function rn(e,t){const n=v1(B.get().projectId,e,t);return n?(B.set(n),!0):!1}function Ke(e,t){return on(e)?(B.update(n=>v1(n.projectId,e,t(n))??{}),!0):!1}async function Xy(e,t){let n=0,s="";const r=new Set,i=async o=>{r.has(o)||(r.add(o),await e.run([{kind:"todo-advance"}]))};await e.run([{kind:"say",text:"我会调用真实设计服务,先理解你的 SOP 与角色配置,再生成可落地的工作流方案。主要耗时在真实 Agent 生成阶段。"},{kind:"todo",items:["理解业务目标与 SOP","生成流程方案","校验配置完整性","渲染真实画布与配置"]}]);try{await TM(t,async o=>{var l,c;if(o.type==="task.started"||o.type==="task.snapshot"){Ke(t,u=>({stageRuntime:{...u.stageRuntime,design:{status:o.task.status,taskId:o.task.id,checkpoint:o.task.checkpoint,message:o.task.currentAction??"真实设计任务运行中",block:o.task.block,error:o.task.error,retryable:o.task.status==="failed"||o.task.status==="blocked"}}}));return}if(o.type==="task.blocked"){if(!Ke(t,d=>{var f,h;return{stageRuntime:{...d.stageRuntime,design:{status:"blocked",taskId:o.task.id,checkpoint:o.task.checkpoint,message:((f=o.task.block)==null?void 0:f.message)??o.task.currentAction??"等待确认后继续设计",block:o.task.block,error:o.task.error,retryable:!0}},designStatus:{...d.designStatus,phase:"discovering",message:((h=o.task.block)==null?void 0:h.message)??"等待确认需求澄清"}}}))return;await e.run([{kind:"say",text:((l=o.task.block)==null?void 0:l.message)??"请先确认需求澄清卡片,再开始生成。"}]);return}if(o.type==="task.failed"){if(!Ke(t,d=>{var f,h;return{stageRuntime:{...d.stageRuntime,design:{status:"failed",taskId:o.task.id,checkpoint:o.task.checkpoint,message:((f=o.task.error)==null?void 0:f.message)??o.task.currentAction??"真实设计失败",block:o.task.block,error:o.task.error,retryable:!0}},designStatus:{...d.designStatus,phase:"error",message:((h=o.task.error)==null?void 0:h.message)??"真实设计失败,可重新生成"}}}))return;await Ca(t),await e.run([{kind:"say",text:`${((c=o.task.error)==null?void 0:c.message)??"真实设计失败"}。已保留当前生成文件,可重新确认后再生成。`}]);return}if(o.type==="task.succeeded"){Ke(t,u=>({stageRuntime:{...u.stageRuntime,design:{status:"succeeded",taskId:o.task.id,checkpoint:o.task.checkpoint,message:o.task.currentAction??"工作流设计完成",retryable:!1}}}));return}if(o.type==="error"){if(!rn(t,{designStatus:{phase:"error",round:null,rounds:null,agentEvents:n,message:`真实设计中断:${o.error.message}`}}))return;await Ca(t),await e.run([{kind:"say",text:`真实设计中断:${o.error.message}。已保留当前生成文件,右侧可查看并继续重试。`}]);return}if(o.type==="design.started"){if(!rn(t,{designStatus:{phase:"starting",round:null,rounds:null,agentEvents:n,message:"真实设计服务已连接,等待需求摘要"}}))return;await e.run([{kind:"tool",label:"连接真实设计服务",detail:t,ms:80}]);return}if(o.type==="design.discovery"){if(!rn(t,{designStatus:{phase:"discovering",round:null,rounds:null,agentEvents:n,message:"已形成需求摘要,准备启动 Coding Agent"}}))return;await e.run([{kind:"tool",label:"形成需求摘要",detail:SR(o.summary),ms:120}]),await i("discovery");return}if(o.type==="design.progress"){if(!Ke(t,d=>({designStatus:{...d.designStatus,message:`${o.message}(累计 ${Ou(o.elapsedMs)})`},stageRuntime:{...d.stageRuntime,design:{...d.stageRuntime.design,status:d.stageRuntime.design.status==="idle"?"running":d.stageRuntime.design.status,checkpoint:o.phase,message:o.message}}}))||bR(o.phase))return;await e.run([{kind:"tool",label:o.message,detail:`累计 ${Ou(o.elapsedMs)} · 本段 ${Ou(o.deltaMs)}`,ms:80}]);return}if(o.type==="design.round_start"){if(o.round===1&&on(t)&&B.clearAgentTrace(),!rn(t,{designStatus:{phase:"round",round:o.round,rounds:null,agentEvents:n,message:`第 ${o.round} 轮真实 Agent 执行中`}}))return;await e.run([{kind:"tool",label:o.isFix?"完善流程方案":"生成流程方案",detail:`第 ${o.round} 轮 · 真实 Agent 执行中`,ms:100}]);return}if(o.type==="design.agent_event"&&(n+=1,Ke(t,u=>({designStatus:{...u.designStatus,agentEvents:n,message:o.event.type==="tool_use"?`第 ${u.designStatus.round??1} 轮收到工具调用`:`第 ${u.designStatus.round??1} 轮收到 Agent 输出`}})),on(t))){const u=B.get().designStatus.round??void 0,d=WA(o.event,u);d&&B.appendAgentTrace(d)}if(o.type==="design.agent_event"&&o.event.type==="text"&&o.event.content){if(!on(t))return;e.enqueue([{kind:"agent-text",content:o.event.content}]);return}if(o.type==="design.agent_event"&&o.event.type==="thinking"&&o.event.content){if(!on(t))return;e.enqueue([{kind:"agent-thinking",content:o.event.content}]);return}if(o.type==="design.agent_event"&&o.event.type==="tool_use"){if(!on(t))return;const u=x1({toolName:o.event.toolName,toolInput:o.event.toolInput,projectId:t});e.enqueue([{kind:"tool",label:u.label,detail:u.detail,ms:80}]);return}if(o.type==="design.validation"){if(!rn(t,{designStatus:{phase:"validating",round:o.round,rounds:null,agentEvents:n,message:o.validation.valid?"流程方案校验通过":`校验发现 ${o.validation.errors.length} 个问题,等待修复轮`}}))return;await i("design"),await e.run([{kind:"tool",label:"校验流程方案",detail:o.validation.valid?"通过":`${o.validation.errors.length} 个问题`,ms:100}]),await i("validation");return}if(o.type==="design.files"){if(!Ke(t,f=>({designStatus:{...f.designStatus,phase:"rendering",message:`同步 ${o.files.length} 个生成文件`}})))return;rn(t,{projectFiles:o.files}),await ck(t,o.files);const d=NR(o.files);d!==s&&(s=d,await e.run([{kind:"tool",label:"同步生成文件",detail:d,ms:80}]));return}if(o.type==="design.done")if(on(t)&&B.appendAgentTrace({kind:"status",text:"",boundary:!0}),o.success){const[u,d]=await Promise.all([Yo(t),qo(t)]);if(!rn(t,{...u,projectFiles:d,designStatus:{phase:"done",round:null,rounds:o.rounds,agentEvents:n,message:`真实设计完成:${o.rounds} 轮,${n} 个 Agent 事件`}}))return;await i("design"),await i("validation"),await i("render"),await e.run([{kind:"say",text:`真实工作流已生成:${u.steps.length} 个步骤;实际执行 ${o.rounds} 轮,收到 ${n} 个 Agent 事件。右侧画布和配置面板已切换为真实产物。`}])}else{if(!Ke(t,d=>({designStatus:{...d.designStatus,phase:"error",rounds:o.rounds,agentEvents:n,message:`真实设计未通过:${o.rounds} 轮,${n} 个 Agent 事件`}})))return;await Ca(t),await e.run([{kind:"say",text:`真实设计未通过校验:实际执行 ${o.rounds} 轮,收到 ${n} 个 Agent 事件。已保留当前生成文件,右侧可以先查看文件内容,再重试生成。`}])}})}catch(o){const l=o instanceof Error?o.message:String(o);if(!Ke(t,u=>({designStatus:{...u.designStatus,phase:"error",agentEvents:n,message:`真实设计请求失败:${l}`}})))return;await Ca(t),await e.run([{kind:"say",text:`真实设计请求失败:${l}。已保留当前生成文件,右侧可查看并重新进入设计。`}])}}function SR(e){const n=e.replace(/^用户已确认[::]?\s*/u,"").split(/[\n。;;]/u).map(r=>r.replace(/^[-•\s]+/u,"").trim()).filter(Boolean).filter(r=>!r.toLowerCase().includes("skipped")).slice(0,3).map(r=>r.replace(/\s+/g," ")),s=n.length>0?n.join(" · "):e.replace(/\s+/g," ").trim();return _p(s,96)}function NR(e){return e.filter(n=>!n.path.endsWith("project.json")).map(n=>{var s;return((s=Pc(n.path))==null?void 0:s.name)??n.path.split("/").pop()??n.path}).join(" · ")}function bR(e){return e==="agent_tool"||e==="file_snapshot"||e==="agent_round"}function Ou(e){return e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}async function Ca(e){try{const t=await qo(e);if(!rn(e,{projectFiles:t}))return;await ck(e,t)}catch{}}async function ck(e,t){if(t.some(n=>n.path==="workflow.yml"))try{const n=await Yo(e);rn(e,n)}catch{}}async function Qy(e,t){await e.run([{kind:"say",text:"开始搭建真实 AI 表格结构。该步骤会通过 dws 对目标 AI 表格产生真实字段/视图变更。"},{kind:"todo",items:["加载配置","读取 workflow","创建字段与视图","生成 AI 表格链接"]}]),await PM(t,async n=>{var r,i;const s=UA(n);if(s&&B.appendAgentTrace(s),n.type==="task.started"||n.type==="task.snapshot"){Ke(t,o=>({stageRuntime:{...o.stageRuntime,setup:{status:n.task.status,taskId:n.task.id,checkpoint:n.task.checkpoint,message:n.task.currentAction??"AI 表格搭建任务已启动",retryable:n.task.status==="blocked"||n.task.status==="failed",block:n.task.block,error:n.task.error}}}));return}if(n.type==="task.progress"){Ke(t,o=>({stageRuntime:{...o.stageRuntime,setup:{...o.stageRuntime.setup,status:"running",checkpoint:n.checkpoint,message:n.message}}}));return}if(n.type==="task.blocked"){if(!Ke(t,l=>{var c;return{stageRuntime:{...l.stageRuntime,setup:{status:"blocked",taskId:n.task.id,checkpoint:n.task.checkpoint,message:((c=n.task.block)==null?void 0:c.message)??n.task.currentAction??"等待授权后继续搭建",retryable:!0,block:n.task.block,error:n.task.error}}}}))return;await e.run([{kind:"say",text:((r=n.task.block)==null?void 0:r.message)??"真实 setup 已暂停,完成授权后可以继续搭建。"}]);return}if(n.type==="task.failed"){if(!Ke(t,l=>{var c,u;return{stageRuntime:{...l.stageRuntime,setup:{status:"failed",taskId:n.task.id,checkpoint:n.task.checkpoint,message:((c=n.task.error)==null?void 0:c.message)??"真实 setup 失败,可重试",retryable:((u=n.task.error)==null?void 0:u.retryable)??!0,block:n.task.block,error:n.task.error}}}}))return;await e.run([{kind:"say",text:`真实 setup 失败:${((i=n.task.error)==null?void 0:i.message)??"未知错误"}`}]);return}if(n.type==="task.succeeded"){Ke(t,o=>({stageRuntime:{...o.stageRuntime,setup:{status:"succeeded",taskId:n.task.id,checkpoint:"done",message:"AI 表格搭建完成"}}}));return}if(n.type==="error"){if(!Ke(t,l=>({stageRuntime:{...l.stageRuntime,setup:{...l.stageRuntime.setup,status:"failed",message:n.error.message,retryable:!0,error:{code:n.error.code,message:n.error.message,retryable:!0,details:n.error.details}}}})))return;await e.run([{kind:"say",text:`真实 setup 失败:${n.error.message}`}]);return}if(n.type==="setup.progress"){if(!on(t))return;await e.run([{kind:"say",text:n.message}]);return}if(n.type==="setup.done"){if(!Ke(t,l=>({tableUrl:n.tableUrl,fields:n.schema.fields,views:n.schema.views,init:{...l.init,tableConnected:!0,tableBaseId:n.baseId,tableId:n.tableId},stageRuntime:{...l.stageRuntime,setup:{status:"succeeded",message:`AI 表格已就绪:${n.tableId}`,checkpoint:"done"}}})))return;await e.run([{kind:"todo-advance"},{kind:"todo-advance"},{kind:"todo-advance"},{kind:"todo-advance"},{kind:"say",text:`真实 setup 已完成,AI 表格链接已生成,Table Id 已写回:${n.tableId}。`}])}})}async function Zy(e,t){on(e)&&(rn(e,{tickets:[],logs:[],stageRuntime:{...B.get().stageRuntime,run:{status:"running",checkpoint:"connecting",message:"正在连接真实运行服务",retryable:!1}}}),await AM(e,async n=>{if(!on(e))return;const s=KA(n);s&&B.appendAgentTrace(s),Ke(e,r=>wR(r,n))}))}function De(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,s;n<e.length;n++)(s=De(e[n]))!==""&&(t+=(t&&" ")+s);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var ER={value:()=>{}};function Ic(){for(var e=0,t=arguments.length,n={},s;e<t;++e){if(!(s=arguments[e]+"")||s in n||/[\s.]/.test(s))throw new Error("illegal type: "+s);n[s]=[]}return new ol(n)}function ol(e){this._=e}function CR(e,t){return e.trim().split(/^|\s+/).map(function(n){var s="",r=n.indexOf(".");if(r>=0&&(s=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:s}})}ol.prototype=Ic.prototype={constructor:ol,on:function(e,t){var n=this._,s=CR(e+"",n),r,i=-1,o=s.length;if(arguments.length<2){for(;++i<o;)if((r=(e=s[i]).type)&&(r=TR(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<o;)if(r=(e=s[i]).type)n[r]=Jy(n[r],e.name,t);else if(t==null)for(r in n)n[r]=Jy(n[r],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ol(e)},call:function(e,t){if((r=arguments.length-2)>0)for(var n=new Array(r),s=0,r,i;s<r;++s)n[s]=arguments[s+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],s=0,r=i.length;s<r;++s)i[s].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var s=this._[e],r=0,i=s.length;r<i;++r)s[r].value.apply(t,n)}};function TR(e,t){for(var n=0,s=e.length,r;n<s;++n)if((r=e[n]).name===t)return r.value}function Jy(e,t,n){for(var s=0,r=e.length;s<r;++s)if(e[s].name===t){e[s]=ER,e=e.slice(0,s).concat(e.slice(s+1));break}return n!=null&&e.push({name:t,value:n}),e}var Pf="http://www.w3.org/1999/xhtml";const ev={svg:"http://www.w3.org/2000/svg",xhtml:Pf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Rc(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),ev.hasOwnProperty(t)?{space:ev[t],local:e}:e}function PR(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Pf&&t.documentElement.namespaceURI===Pf?t.createElement(e):t.createElementNS(n,e)}}function AR(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function uk(e){var t=Rc(e);return(t.local?AR:PR)(t)}function MR(){}function $p(e){return e==null?MR:function(){return this.querySelector(e)}}function IR(e){typeof e!="function"&&(e=$p(e));for(var t=this._groups,n=t.length,s=new Array(n),r=0;r<n;++r)for(var i=t[r],o=i.length,l=s[r]=new Array(o),c,u,d=0;d<o;++d)(c=i[d])&&(u=e.call(c,c.__data__,d,i))&&("__data__"in c&&(u.__data__=c.__data__),l[d]=u);return new kt(s,this._parents)}function RR(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function $R(){return[]}function dk(e){return e==null?$R:function(){return this.querySelectorAll(e)}}function LR(e){return function(){return RR(e.apply(this,arguments))}}function DR(e){typeof e=="function"?e=LR(e):e=dk(e);for(var t=this._groups,n=t.length,s=[],r=[],i=0;i<n;++i)for(var o=t[i],l=o.length,c,u=0;u<l;++u)(c=o[u])&&(s.push(e.call(c,c.__data__,u,o)),r.push(c));return new kt(s,r)}function fk(e){return function(){return this.matches(e)}}function hk(e){return function(t){return t.matches(e)}}var zR=Array.prototype.find;function OR(e){return function(){return zR.call(this.children,e)}}function FR(){return this.firstElementChild}function VR(e){return this.select(e==null?FR:OR(typeof e=="function"?e:hk(e)))}var BR=Array.prototype.filter;function HR(){return Array.from(this.children)}function WR(e){return function(){return BR.call(this.children,e)}}function UR(e){return this.selectAll(e==null?HR:WR(typeof e=="function"?e:hk(e)))}function KR(e){typeof e!="function"&&(e=fk(e));for(var t=this._groups,n=t.length,s=new Array(n),r=0;r<n;++r)for(var i=t[r],o=i.length,l=s[r]=[],c,u=0;u<o;++u)(c=i[u])&&e.call(c,c.__data__,u,i)&&l.push(c);return new kt(s,this._parents)}function pk(e){return new Array(e.length)}function YR(){return new kt(this._enter||this._groups.map(pk),this._parents)}function Gl(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Gl.prototype={constructor:Gl,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function qR(e){return function(){return e}}function GR(e,t,n,s,r,i){for(var o=0,l,c=t.length,u=i.length;o<u;++o)(l=t[o])?(l.__data__=i[o],s[o]=l):n[o]=new Gl(e,i[o]);for(;o<c;++o)(l=t[o])&&(r[o]=l)}function XR(e,t,n,s,r,i,o){var l,c,u=new Map,d=t.length,f=i.length,h=new Array(d),p;for(l=0;l<d;++l)(c=t[l])&&(h[l]=p=o.call(c,c.__data__,l,t)+"",u.has(p)?r[l]=c:u.set(p,c));for(l=0;l<f;++l)p=o.call(e,i[l],l,i)+"",(c=u.get(p))?(s[l]=c,c.__data__=i[l],u.delete(p)):n[l]=new Gl(e,i[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(h[l])===c&&(r[l]=c)}function QR(e){return e.__data__}function ZR(e,t){if(!arguments.length)return Array.from(this,QR);var n=t?XR:GR,s=this._parents,r=this._groups;typeof e!="function"&&(e=qR(e));for(var i=r.length,o=new Array(i),l=new Array(i),c=new Array(i),u=0;u<i;++u){var d=s[u],f=r[u],h=f.length,p=JR(e.call(d,d&&d.__data__,u,s)),v=p.length,_=l[u]=new Array(v),w=o[u]=new Array(v),m=c[u]=new Array(h);n(d,f,_,w,m,p,t);for(var y=0,g=0,x,k;y<v;++y)if(x=_[y]){for(y>=g&&(g=y+1);!(k=w[g])&&++g<v;);x._next=k||null}}return o=new kt(o,s),o._enter=l,o._exit=c,o}function JR(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function e$(){return new kt(this._exit||this._groups.map(pk),this._parents)}function t$(e,t,n){var s=this.enter(),r=this,i=this.exit();return typeof e=="function"?(s=e(s),s&&(s=s.selection())):s=s.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?i.remove():n(i),s&&r?s.merge(r).order():r}function n$(e){for(var t=e.selection?e.selection():e,n=this._groups,s=t._groups,r=n.length,i=s.length,o=Math.min(r,i),l=new Array(r),c=0;c<o;++c)for(var u=n[c],d=s[c],f=u.length,h=l[c]=new Array(f),p,v=0;v<f;++v)(p=u[v]||d[v])&&(h[v]=p);for(;c<r;++c)l[c]=n[c];return new kt(l,this._parents)}function s$(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var s=e[t],r=s.length-1,i=s[r],o;--r>=0;)(o=s[r])&&(i&&o.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(o,i),i=o);return this}function r$(e){e||(e=i$);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!h}for(var n=this._groups,s=n.length,r=new Array(s),i=0;i<s;++i){for(var o=n[i],l=o.length,c=r[i]=new Array(l),u,d=0;d<l;++d)(u=o[d])&&(c[d]=u);c.sort(t)}return new kt(r,this._parents).order()}function i$(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function o$(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function a$(){return Array.from(this)}function l$(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var s=e[t],r=0,i=s.length;r<i;++r){var o=s[r];if(o)return o}return null}function c$(){let e=0;for(const t of this)++e;return e}function u$(){return!this.node()}function d$(e){for(var t=this._groups,n=0,s=t.length;n<s;++n)for(var r=t[n],i=0,o=r.length,l;i<o;++i)(l=r[i])&&e.call(l,l.__data__,i,r);return this}function f$(e){return function(){this.removeAttribute(e)}}function h$(e){return function(){this.removeAttributeNS(e.space,e.local)}}function p$(e,t){return function(){this.setAttribute(e,t)}}function m$(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function g$(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function y$(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function v$(e,t){var n=Rc(e);if(arguments.length<2){var s=this.node();return n.local?s.getAttributeNS(n.space,n.local):s.getAttribute(n)}return this.each((t==null?n.local?h$:f$:typeof t=="function"?n.local?y$:g$:n.local?m$:p$)(n,t))}function mk(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function x$(e){return function(){this.style.removeProperty(e)}}function w$(e,t,n){return function(){this.style.setProperty(e,t,n)}}function _$(e,t,n){return function(){var s=t.apply(this,arguments);s==null?this.style.removeProperty(e):this.style.setProperty(e,s,n)}}function k$(e,t,n){return arguments.length>1?this.each((t==null?x$:typeof t=="function"?_$:w$)(e,t,n??"")):Qr(this.node(),e)}function Qr(e,t){return e.style.getPropertyValue(t)||mk(e).getComputedStyle(e,null).getPropertyValue(t)}function j$(e){return function(){delete this[e]}}function S$(e,t){return function(){this[e]=t}}function N$(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function b$(e,t){return arguments.length>1?this.each((t==null?j$:typeof t=="function"?N$:S$)(e,t)):this.node()[e]}function gk(e){return e.trim().split(/^|\s+/)}function Lp(e){return e.classList||new yk(e)}function yk(e){this._node=e,this._names=gk(e.getAttribute("class")||"")}yk.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function vk(e,t){for(var n=Lp(e),s=-1,r=t.length;++s<r;)n.add(t[s])}function xk(e,t){for(var n=Lp(e),s=-1,r=t.length;++s<r;)n.remove(t[s])}function E$(e){return function(){vk(this,e)}}function C$(e){return function(){xk(this,e)}}function T$(e,t){return function(){(t.apply(this,arguments)?vk:xk)(this,e)}}function P$(e,t){var n=gk(e+"");if(arguments.length<2){for(var s=Lp(this.node()),r=-1,i=n.length;++r<i;)if(!s.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?T$:t?E$:C$)(n,t))}function A$(){this.textContent=""}function M$(e){return function(){this.textContent=e}}function I$(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function R$(e){return arguments.length?this.each(e==null?A$:(typeof e=="function"?I$:M$)(e)):this.node().textContent}function $$(){this.innerHTML=""}function L$(e){return function(){this.innerHTML=e}}function D$(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function z$(e){return arguments.length?this.each(e==null?$$:(typeof e=="function"?D$:L$)(e)):this.node().innerHTML}function O$(){this.nextSibling&&this.parentNode.appendChild(this)}function F$(){return this.each(O$)}function V$(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function B$(){return this.each(V$)}function H$(e){var t=typeof e=="function"?e:uk(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function W$(){return null}function U$(e,t){var n=typeof e=="function"?e:uk(e),s=t==null?W$:typeof t=="function"?t:$p(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),s.apply(this,arguments)||null)})}function K$(){var e=this.parentNode;e&&e.removeChild(this)}function Y$(){return this.each(K$)}function q$(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function G$(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function X$(e){return this.select(e?G$:q$)}function Q$(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Z$(e){return function(t){e.call(this,t,this.__data__)}}function J$(e){return e.trim().split(/^|\s+/).map(function(t){var n="",s=t.indexOf(".");return s>=0&&(n=t.slice(s+1),t=t.slice(0,s)),{type:t,name:n}})}function eL(e){return function(){var t=this.__on;if(t){for(var n=0,s=-1,r=t.length,i;n<r;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++s]=i;++s?t.length=s:delete this.__on}}}function tL(e,t,n){return function(){var s=this.__on,r,i=Z$(t);if(s){for(var o=0,l=s.length;o<l;++o)if((r=s[o]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},s?s.push(r):this.__on=[r]}}function nL(e,t,n){var s=J$(e+""),r,i=s.length,o;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,d;c<u;++c)for(r=0,d=l[c];r<i;++r)if((o=s[r]).type===d.type&&o.name===d.name)return d.value}return}for(l=t?tL:eL,r=0;r<i;++r)this.each(l(s[r],t,n));return this}function wk(e,t,n){var s=mk(e),r=s.CustomEvent;typeof r=="function"?r=new r(t,n):(r=s.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function sL(e,t){return function(){return wk(this,e,t)}}function rL(e,t){return function(){return wk(this,e,t.apply(this,arguments))}}function iL(e,t){return this.each((typeof t=="function"?rL:sL)(e,t))}function*oL(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var s=e[t],r=0,i=s.length,o;r<i;++r)(o=s[r])&&(yield o)}var _k=[null];function kt(e,t){this._groups=e,this._parents=t}function Qo(){return new kt([[document.documentElement]],_k)}function aL(){return this}kt.prototype=Qo.prototype={constructor:kt,select:IR,selectAll:DR,selectChild:VR,selectChildren:UR,filter:KR,data:ZR,enter:YR,exit:e$,join:t$,merge:n$,selection:aL,order:s$,sort:r$,call:o$,nodes:a$,node:l$,size:c$,empty:u$,each:d$,attr:v$,style:k$,property:b$,classed:P$,text:R$,html:z$,raise:F$,lower:B$,append:H$,insert:U$,remove:Y$,clone:X$,datum:Q$,on:nL,dispatch:iL,[Symbol.iterator]:oL};function mt(e){return typeof e=="string"?new kt([[document.querySelector(e)]],[document.documentElement]):new kt([[e]],_k)}function lL(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ht(e,t){if(e=lL(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var s=n.createSVGPoint();return s.x=e.clientX,s.y=e.clientY,s=s.matrixTransform(t.getScreenCTM().inverse()),[s.x,s.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}const cL={passive:!1},Co={capture:!0,passive:!1};function Fu(e){e.stopImmediatePropagation()}function Dr(e){e.preventDefault(),e.stopImmediatePropagation()}function kk(e){var t=e.document.documentElement,n=mt(e).on("dragstart.drag",Dr,Co);"onselectstart"in t?n.on("selectstart.drag",Dr,Co):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function jk(e,t){var n=e.document.documentElement,s=mt(e).on("dragstart.drag",null);t&&(s.on("click.drag",Dr,Co),setTimeout(function(){s.on("click.drag",null)},0)),"onselectstart"in n?s.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Ta=e=>()=>e;function Af(e,{sourceEvent:t,subject:n,target:s,identifier:r,active:i,x:o,y:l,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}Af.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function uL(e){return!e.ctrlKey&&!e.button}function dL(){return this.parentNode}function fL(e,t){return t??{x:e.x,y:e.y}}function hL(){return navigator.maxTouchPoints||"ontouchstart"in this}function Sk(){var e=uL,t=dL,n=fL,s=hL,r={},i=Ic("start","drag","end"),o=0,l,c,u,d,f=0;function h(x){x.on("mousedown.drag",p).filter(s).on("touchstart.drag",w).on("touchmove.drag",m,cL).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(x,k){if(!(d||!e.call(this,x,k))){var j=g(this,t.call(this,x,k),x,k,"mouse");j&&(mt(x.view).on("mousemove.drag",v,Co).on("mouseup.drag",_,Co),kk(x.view),Fu(x),u=!1,l=x.clientX,c=x.clientY,j("start",x))}}function v(x){if(Dr(x),!u){var k=x.clientX-l,j=x.clientY-c;u=k*k+j*j>f}r.mouse("drag",x)}function _(x){mt(x.view).on("mousemove.drag mouseup.drag",null),jk(x.view,u),Dr(x),r.mouse("end",x)}function w(x,k){if(e.call(this,x,k)){var j=x.changedTouches,E=t.call(this,x,k),b=j.length,P,R;for(P=0;P<b;++P)(R=g(this,E,x,k,j[P].identifier,j[P]))&&(Fu(x),R("start",x,j[P]))}}function m(x){var k=x.changedTouches,j=k.length,E,b;for(E=0;E<j;++E)(b=r[k[E].identifier])&&(Dr(x),b("drag",x,k[E]))}function y(x){var k=x.changedTouches,j=k.length,E,b;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<j;++E)(b=r[k[E].identifier])&&(Fu(x),b("end",x,k[E]))}function g(x,k,j,E,b,P){var R=i.copy(),I=Ht(P||j,k),O,V,N;if((N=n.call(x,new Af("beforestart",{sourceEvent:j,target:h,identifier:b,active:o,x:I[0],y:I[1],dx:0,dy:0,dispatch:R}),E))!=null)return O=N.x-I[0]||0,V=N.y-I[1]||0,function T(M,$,C){var A=I,z;switch(M){case"start":r[b]=T,z=o++;break;case"end":delete r[b],--o;case"drag":I=Ht(C||$,k),z=o;break}R.call(M,x,new Af(M,{sourceEvent:$,subject:N,target:h,identifier:b,active:z,x:I[0]+O,y:I[1]+V,dx:I[0]-A[0],dy:I[1]-A[1],dispatch:R}),E)}}return h.filter=function(x){return arguments.length?(e=typeof x=="function"?x:Ta(!!x),h):e},h.container=function(x){return arguments.length?(t=typeof x=="function"?x:Ta(x),h):t},h.subject=function(x){return arguments.length?(n=typeof x=="function"?x:Ta(x),h):n},h.touchable=function(x){return arguments.length?(s=typeof x=="function"?x:Ta(!!x),h):s},h.on=function(){var x=i.on.apply(i,arguments);return x===i?h:x},h.clickDistance=function(x){return arguments.length?(f=(x=+x)*x,h):Math.sqrt(f)},h}function Dp(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Nk(e,t){var n=Object.create(e.prototype);for(var s in t)n[s]=t[s];return n}function Zo(){}var To=.7,Xl=1/To,zr="\\s*([+-]?\\d+)\\s*",Po="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",pn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",pL=/^#([0-9a-f]{3,8})$/,mL=new RegExp(`^rgb\\(${zr},${zr},${zr}\\)$`),gL=new RegExp(`^rgb\\(${pn},${pn},${pn}\\)$`),yL=new RegExp(`^rgba\\(${zr},${zr},${zr},${Po}\\)$`),vL=new RegExp(`^rgba\\(${pn},${pn},${pn},${Po}\\)$`),xL=new RegExp(`^hsl\\(${Po},${pn},${pn}\\)$`),wL=new RegExp(`^hsla\\(${Po},${pn},${pn},${Po}\\)$`),tv={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Dp(Zo,Gs,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:nv,formatHex:nv,formatHex8:_L,formatHsl:kL,formatRgb:sv,toString:sv});function nv(){return this.rgb().formatHex()}function _L(){return this.rgb().formatHex8()}function kL(){return bk(this).formatHsl()}function sv(){return this.rgb().formatRgb()}function Gs(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=pL.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?rv(t):n===3?new ct(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Pa(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Pa(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=mL.exec(e))?new ct(t[1],t[2],t[3],1):(t=gL.exec(e))?new ct(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=yL.exec(e))?Pa(t[1],t[2],t[3],t[4]):(t=vL.exec(e))?Pa(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=xL.exec(e))?av(t[1],t[2]/100,t[3]/100,1):(t=wL.exec(e))?av(t[1],t[2]/100,t[3]/100,t[4]):tv.hasOwnProperty(e)?rv(tv[e]):e==="transparent"?new ct(NaN,NaN,NaN,0):null}function rv(e){return new ct(e>>16&255,e>>8&255,e&255,1)}function Pa(e,t,n,s){return s<=0&&(e=t=n=NaN),new ct(e,t,n,s)}function jL(e){return e instanceof Zo||(e=Gs(e)),e?(e=e.rgb(),new ct(e.r,e.g,e.b,e.opacity)):new ct}function Mf(e,t,n,s){return arguments.length===1?jL(e):new ct(e,t,n,s??1)}function ct(e,t,n,s){this.r=+e,this.g=+t,this.b=+n,this.opacity=+s}Dp(ct,Mf,Nk(Zo,{brighter(e){return e=e==null?Xl:Math.pow(Xl,e),new ct(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?To:Math.pow(To,e),new ct(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ct(Vs(this.r),Vs(this.g),Vs(this.b),Ql(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:iv,formatHex:iv,formatHex8:SL,formatRgb:ov,toString:ov}));function iv(){return`#${Ls(this.r)}${Ls(this.g)}${Ls(this.b)}`}function SL(){return`#${Ls(this.r)}${Ls(this.g)}${Ls(this.b)}${Ls((isNaN(this.opacity)?1:this.opacity)*255)}`}function ov(){const e=Ql(this.opacity);return`${e===1?"rgb(":"rgba("}${Vs(this.r)}, ${Vs(this.g)}, ${Vs(this.b)}${e===1?")":`, ${e})`}`}function Ql(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Vs(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ls(e){return e=Vs(e),(e<16?"0":"")+e.toString(16)}function av(e,t,n,s){return s<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ut(e,t,n,s)}function bk(e){if(e instanceof Ut)return new Ut(e.h,e.s,e.l,e.opacity);if(e instanceof Zo||(e=Gs(e)),!e)return new Ut;if(e instanceof Ut)return e;e=e.rgb();var t=e.r/255,n=e.g/255,s=e.b/255,r=Math.min(t,n,s),i=Math.max(t,n,s),o=NaN,l=i-r,c=(i+r)/2;return l?(t===i?o=(n-s)/l+(n<s)*6:n===i?o=(s-t)/l+2:o=(t-n)/l+4,l/=c<.5?i+r:2-i-r,o*=60):l=c>0&&c<1?0:o,new Ut(o,l,c,e.opacity)}function NL(e,t,n,s){return arguments.length===1?bk(e):new Ut(e,t,n,s??1)}function Ut(e,t,n,s){this.h=+e,this.s=+t,this.l=+n,this.opacity=+s}Dp(Ut,NL,Nk(Zo,{brighter(e){return e=e==null?Xl:Math.pow(Xl,e),new Ut(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?To:Math.pow(To,e),new Ut(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,s=n+(n<.5?n:1-n)*t,r=2*n-s;return new ct(Vu(e>=240?e-240:e+120,r,s),Vu(e,r,s),Vu(e<120?e+240:e-120,r,s),this.opacity)},clamp(){return new Ut(lv(this.h),Aa(this.s),Aa(this.l),Ql(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ql(this.opacity);return`${e===1?"hsl(":"hsla("}${lv(this.h)}, ${Aa(this.s)*100}%, ${Aa(this.l)*100}%${e===1?")":`, ${e})`}`}}));function lv(e){return e=(e||0)%360,e<0?e+360:e}function Aa(e){return Math.max(0,Math.min(1,e||0))}function Vu(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const zp=e=>()=>e;function bL(e,t){return function(n){return e+n*t}}function EL(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(s){return Math.pow(e+s*t,n)}}function CL(e){return(e=+e)==1?Ek:function(t,n){return n-t?EL(t,n,e):zp(isNaN(t)?n:t)}}function Ek(e,t){var n=t-e;return n?bL(e,n):zp(isNaN(e)?t:e)}const Zl=function e(t){var n=CL(t);function s(r,i){var o=n((r=Mf(r)).r,(i=Mf(i)).r),l=n(r.g,i.g),c=n(r.b,i.b),u=Ek(r.opacity,i.opacity);return function(d){return r.r=o(d),r.g=l(d),r.b=c(d),r.opacity=u(d),r+""}}return s.gamma=e,s}(1);function TL(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,s=t.slice(),r;return function(i){for(r=0;r<n;++r)s[r]=e[r]*(1-i)+t[r]*i;return s}}function PL(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function AL(e,t){var n=t?t.length:0,s=e?Math.min(n,e.length):0,r=new Array(s),i=new Array(n),o;for(o=0;o<s;++o)r[o]=Ji(e[o],t[o]);for(;o<n;++o)i[o]=t[o];return function(l){for(o=0;o<s;++o)i[o]=r[o](l);return i}}function ML(e,t){var n=new Date;return e=+e,t=+t,function(s){return n.setTime(e*(1-s)+t*s),n}}function an(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function IL(e,t){var n={},s={},r;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(r in t)r in e?n[r]=Ji(e[r],t[r]):s[r]=t[r];return function(i){for(r in n)s[r]=n[r](i);return s}}var If=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Bu=new RegExp(If.source,"g");function RL(e){return function(){return e}}function $L(e){return function(t){return e(t)+""}}function Ck(e,t){var n=If.lastIndex=Bu.lastIndex=0,s,r,i,o=-1,l=[],c=[];for(e=e+"",t=t+"";(s=If.exec(e))&&(r=Bu.exec(t));)(i=r.index)>n&&(i=t.slice(n,i),l[o]?l[o]+=i:l[++o]=i),(s=s[0])===(r=r[0])?l[o]?l[o]+=r:l[++o]=r:(l[++o]=null,c.push({i:o,x:an(s,r)})),n=Bu.lastIndex;return n<t.length&&(i=t.slice(n),l[o]?l[o]+=i:l[++o]=i),l.length<2?c[0]?$L(c[0].x):RL(t):(t=c.length,function(u){for(var d=0,f;d<t;++d)l[(f=c[d]).i]=f.x(u);return l.join("")})}function Ji(e,t){var n=typeof t,s;return t==null||n==="boolean"?zp(t):(n==="number"?an:n==="string"?(s=Gs(t))?(t=s,Zl):Ck:t instanceof Gs?Zl:t instanceof Date?ML:PL(t)?TL:Array.isArray(t)?AL:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?IL:an)(e,t)}var cv=180/Math.PI,Rf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tk(e,t,n,s,r,i){var o,l,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*s)&&(n-=e*c,s-=t*c),(l=Math.sqrt(n*n+s*s))&&(n/=l,s/=l,c/=l),e*s<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*cv,skewX:Math.atan(c)*cv,scaleX:o,scaleY:l}}var Ma;function LL(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Rf:Tk(t.a,t.b,t.c,t.d,t.e,t.f)}function DL(e){return e==null||(Ma||(Ma=document.createElementNS("http://www.w3.org/2000/svg","g")),Ma.setAttribute("transform",e),!(e=Ma.transform.baseVal.consolidate()))?Rf:(e=e.matrix,Tk(e.a,e.b,e.c,e.d,e.e,e.f))}function Pk(e,t,n,s){function r(u){return u.length?u.pop()+" ":""}function i(u,d,f,h,p,v){if(u!==f||d!==h){var _=p.push("translate(",null,t,null,n);v.push({i:_-4,x:an(u,f)},{i:_-2,x:an(d,h)})}else(f||h)&&p.push("translate("+f+t+h+n)}function o(u,d,f,h){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),h.push({i:f.push(r(f)+"rotate(",null,s)-2,x:an(u,d)})):d&&f.push(r(f)+"rotate("+d+s)}function l(u,d,f,h){u!==d?h.push({i:f.push(r(f)+"skewX(",null,s)-2,x:an(u,d)}):d&&f.push(r(f)+"skewX("+d+s)}function c(u,d,f,h,p,v){if(u!==f||d!==h){var _=p.push(r(p)+"scale(",null,",",null,")");v.push({i:_-4,x:an(u,f)},{i:_-2,x:an(d,h)})}else(f!==1||h!==1)&&p.push(r(p)+"scale("+f+","+h+")")}return function(u,d){var f=[],h=[];return u=e(u),d=e(d),i(u.translateX,u.translateY,d.translateX,d.translateY,f,h),o(u.rotate,d.rotate,f,h),l(u.skewX,d.skewX,f,h),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,h),u=d=null,function(p){for(var v=-1,_=h.length,w;++v<_;)f[(w=h[v]).i]=w.x(p);return f.join("")}}}var zL=Pk(LL,"px, ","px)","deg)"),OL=Pk(DL,", ",")",")"),FL=1e-12;function uv(e){return((e=Math.exp(e))+1/e)/2}function VL(e){return((e=Math.exp(e))-1/e)/2}function BL(e){return((e=Math.exp(2*e))-1)/(e+1)}const al=function e(t,n,s){function r(i,o){var l=i[0],c=i[1],u=i[2],d=o[0],f=o[1],h=o[2],p=d-l,v=f-c,_=p*p+v*v,w,m;if(_<FL)m=Math.log(h/u)/t,w=function(E){return[l+E*p,c+E*v,u*Math.exp(t*E*m)]};else{var y=Math.sqrt(_),g=(h*h-u*u+s*_)/(2*u*n*y),x=(h*h-u*u-s*_)/(2*h*n*y),k=Math.log(Math.sqrt(g*g+1)-g),j=Math.log(Math.sqrt(x*x+1)-x);m=(j-k)/t,w=function(E){var b=E*m,P=uv(k),R=u/(n*y)*(P*BL(t*b+k)-VL(k));return[l+R*p,c+R*v,u*P/uv(t*b+k)]}}return w.duration=m*1e3*t/Math.SQRT2,w}return r.rho=function(i){var o=Math.max(.001,+i),l=o*o,c=l*l;return e(o,l,c)},r}(Math.SQRT2,2,4);var Zr=0,$i=0,bi=0,Ak=1e3,Jl,Li,ec=0,Xs=0,$c=0,Ao=typeof performance=="object"&&performance.now?performance:Date,Mk=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Op(){return Xs||(Mk(HL),Xs=Ao.now()+$c)}function HL(){Xs=0}function tc(){this._call=this._time=this._next=null}tc.prototype=Ik.prototype={constructor:tc,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Op():+n)+(t==null?0:+t),!this._next&&Li!==this&&(Li?Li._next=this:Jl=this,Li=this),this._call=e,this._time=n,$f()},stop:function(){this._call&&(this._call=null,this._time=1/0,$f())}};function Ik(e,t,n){var s=new tc;return s.restart(e,t,n),s}function WL(){Op(),++Zr;for(var e=Jl,t;e;)(t=Xs-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Zr}function dv(){Xs=(ec=Ao.now())+$c,Zr=$i=0;try{WL()}finally{Zr=0,KL(),Xs=0}}function UL(){var e=Ao.now(),t=e-ec;t>Ak&&($c-=t,ec=e)}function KL(){for(var e,t=Jl,n,s=1/0;t;)t._call?(s>t._time&&(s=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Jl=n);Li=e,$f(s)}function $f(e){if(!Zr){$i&&($i=clearTimeout($i));var t=e-Xs;t>24?(e<1/0&&($i=setTimeout(dv,e-Ao.now()-$c)),bi&&(bi=clearInterval(bi))):(bi||(ec=Ao.now(),bi=setInterval(UL,Ak)),Zr=1,Mk(dv))}}function fv(e,t,n){var s=new tc;return t=t==null?0:+t,s.restart(r=>{s.stop(),e(r+t)},t,n),s}var YL=Ic("start","end","cancel","interrupt"),qL=[],Rk=0,hv=1,Lf=2,ll=3,pv=4,Df=5,cl=6;function Lc(e,t,n,s,r,i){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;GL(e,n,{name:t,index:s,group:r,on:YL,tween:qL,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Rk})}function Fp(e,t){var n=Zt(e,t);if(n.state>Rk)throw new Error("too late; already scheduled");return n}function gn(e,t){var n=Zt(e,t);if(n.state>ll)throw new Error("too late; already running");return n}function Zt(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function GL(e,t,n){var s=e.__transition,r;s[t]=n,n.timer=Ik(i,0,n.time);function i(u){n.state=hv,n.timer.restart(o,n.delay,n.time),n.delay<=u&&o(u-n.delay)}function o(u){var d,f,h,p;if(n.state!==hv)return c();for(d in s)if(p=s[d],p.name===n.name){if(p.state===ll)return fv(o);p.state===pv?(p.state=cl,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete s[d]):+d<t&&(p.state=cl,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete s[d])}if(fv(function(){n.state===ll&&(n.state=pv,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Lf,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Lf){for(n.state=ll,r=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(p=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(r[++f]=p);r.length=f+1}}function l(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=Df,1),f=-1,h=r.length;++f<h;)r[f].call(e,d);n.state===Df&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=cl,n.timer.stop(),delete s[t];for(var u in s)return;delete e.__transition}}function ul(e,t){var n=e.__transition,s,r,i=!0,o;if(n){t=t==null?null:t+"";for(o in n){if((s=n[o]).name!==t){i=!1;continue}r=s.state>Lf&&s.state<Df,s.state=cl,s.timer.stop(),s.on.call(r?"interrupt":"cancel",e,e.__data__,s.index,s.group),delete n[o]}i&&delete e.__transition}}function XL(e){return this.each(function(){ul(this,e)})}function QL(e,t){var n,s;return function(){var r=gn(this,e),i=r.tween;if(i!==n){s=n=i;for(var o=0,l=s.length;o<l;++o)if(s[o].name===t){s=s.slice(),s.splice(o,1);break}}r.tween=s}}function ZL(e,t,n){var s,r;if(typeof n!="function")throw new Error;return function(){var i=gn(this,e),o=i.tween;if(o!==s){r=(s=o).slice();for(var l={name:t,value:n},c=0,u=r.length;c<u;++c)if(r[c].name===t){r[c]=l;break}c===u&&r.push(l)}i.tween=r}}function JL(e,t){var n=this._id;if(e+="",arguments.length<2){for(var s=Zt(this.node(),n).tween,r=0,i=s.length,o;r<i;++r)if((o=s[r]).name===e)return o.value;return null}return this.each((t==null?QL:ZL)(n,e,t))}function Vp(e,t,n){var s=e._id;return e.each(function(){var r=gn(this,s);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return Zt(r,s).value[t]}}function $k(e,t){var n;return(typeof t=="number"?an:t instanceof Gs?Zl:(n=Gs(t))?(t=n,Zl):Ck)(e,t)}function eD(e){return function(){this.removeAttribute(e)}}function tD(e){return function(){this.removeAttributeNS(e.space,e.local)}}function nD(e,t,n){var s,r=n+"",i;return function(){var o=this.getAttribute(e);return o===r?null:o===s?i:i=t(s=o,n)}}function sD(e,t,n){var s,r=n+"",i;return function(){var o=this.getAttributeNS(e.space,e.local);return o===r?null:o===s?i:i=t(s=o,n)}}function rD(e,t,n){var s,r,i;return function(){var o,l=n(this),c;return l==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=l+"",o===c?null:o===s&&c===r?i:(r=c,i=t(s=o,l)))}}function iD(e,t,n){var s,r,i;return function(){var o,l=n(this),c;return l==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=l+"",o===c?null:o===s&&c===r?i:(r=c,i=t(s=o,l)))}}function oD(e,t){var n=Rc(e),s=n==="transform"?OL:$k;return this.attrTween(e,typeof t=="function"?(n.local?iD:rD)(n,s,Vp(this,"attr."+e,t)):t==null?(n.local?tD:eD)(n):(n.local?sD:nD)(n,s,t))}function aD(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function lD(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function cD(e,t){var n,s;function r(){var i=t.apply(this,arguments);return i!==s&&(n=(s=i)&&lD(e,i)),n}return r._value=t,r}function uD(e,t){var n,s;function r(){var i=t.apply(this,arguments);return i!==s&&(n=(s=i)&&aD(e,i)),n}return r._value=t,r}function dD(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var s=Rc(e);return this.tween(n,(s.local?cD:uD)(s,t))}function fD(e,t){return function(){Fp(this,e).delay=+t.apply(this,arguments)}}function hD(e,t){return t=+t,function(){Fp(this,e).delay=t}}function pD(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?fD:hD)(t,e)):Zt(this.node(),t).delay}function mD(e,t){return function(){gn(this,e).duration=+t.apply(this,arguments)}}function gD(e,t){return t=+t,function(){gn(this,e).duration=t}}function yD(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?mD:gD)(t,e)):Zt(this.node(),t).duration}function vD(e,t){if(typeof t!="function")throw new Error;return function(){gn(this,e).ease=t}}function xD(e){var t=this._id;return arguments.length?this.each(vD(t,e)):Zt(this.node(),t).ease}function wD(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;gn(this,e).ease=n}}function _D(e){if(typeof e!="function")throw new Error;return this.each(wD(this._id,e))}function kD(e){typeof e!="function"&&(e=fk(e));for(var t=this._groups,n=t.length,s=new Array(n),r=0;r<n;++r)for(var i=t[r],o=i.length,l=s[r]=[],c,u=0;u<o;++u)(c=i[u])&&e.call(c,c.__data__,u,i)&&l.push(c);return new Vn(s,this._parents,this._name,this._id)}function jD(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,s=t.length,r=n.length,i=Math.min(s,r),o=new Array(s),l=0;l<i;++l)for(var c=t[l],u=n[l],d=c.length,f=o[l]=new Array(d),h,p=0;p<d;++p)(h=c[p]||u[p])&&(f[p]=h);for(;l<s;++l)o[l]=t[l];return new Vn(o,this._parents,this._name,this._id)}function SD(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function ND(e,t,n){var s,r,i=SD(t)?Fp:gn;return function(){var o=i(this,e),l=o.on;l!==s&&(r=(s=l).copy()).on(t,n),o.on=r}}function bD(e,t){var n=this._id;return arguments.length<2?Zt(this.node(),n).on.on(e):this.each(ND(n,e,t))}function ED(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function CD(){return this.on("end.remove",ED(this._id))}function TD(e){var t=this._name,n=this._id;typeof e!="function"&&(e=$p(e));for(var s=this._groups,r=s.length,i=new Array(r),o=0;o<r;++o)for(var l=s[o],c=l.length,u=i[o]=new Array(c),d,f,h=0;h<c;++h)(d=l[h])&&(f=e.call(d,d.__data__,h,l))&&("__data__"in d&&(f.__data__=d.__data__),u[h]=f,Lc(u[h],t,n,h,u,Zt(d,n)));return new Vn(i,this._parents,t,n)}function PD(e){var t=this._name,n=this._id;typeof e!="function"&&(e=dk(e));for(var s=this._groups,r=s.length,i=[],o=[],l=0;l<r;++l)for(var c=s[l],u=c.length,d,f=0;f<u;++f)if(d=c[f]){for(var h=e.call(d,d.__data__,f,c),p,v=Zt(d,n),_=0,w=h.length;_<w;++_)(p=h[_])&&Lc(p,t,n,_,h,v);i.push(h),o.push(d)}return new Vn(i,o,t,n)}var AD=Qo.prototype.constructor;function MD(){return new AD(this._groups,this._parents)}function ID(e,t){var n,s,r;return function(){var i=Qr(this,e),o=(this.style.removeProperty(e),Qr(this,e));return i===o?null:i===n&&o===s?r:r=t(n=i,s=o)}}function Lk(e){return function(){this.style.removeProperty(e)}}function RD(e,t,n){var s,r=n+"",i;return function(){var o=Qr(this,e);return o===r?null:o===s?i:i=t(s=o,n)}}function $D(e,t,n){var s,r,i;return function(){var o=Qr(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),Qr(this,e))),o===c?null:o===s&&c===r?i:(r=c,i=t(s=o,l))}}function LD(e,t){var n,s,r,i="style."+t,o="end."+i,l;return function(){var c=gn(this,e),u=c.on,d=c.value[i]==null?l||(l=Lk(t)):void 0;(u!==n||r!==d)&&(s=(n=u).copy()).on(o,r=d),c.on=s}}function DD(e,t,n){var s=(e+="")=="transform"?zL:$k;return t==null?this.styleTween(e,ID(e,s)).on("end.style."+e,Lk(e)):typeof t=="function"?this.styleTween(e,$D(e,s,Vp(this,"style."+e,t))).each(LD(this._id,e)):this.styleTween(e,RD(e,s,t),n).on("end.style."+e,null)}function zD(e,t,n){return function(s){this.style.setProperty(e,t.call(this,s),n)}}function OD(e,t,n){var s,r;function i(){var o=t.apply(this,arguments);return o!==r&&(s=(r=o)&&zD(e,o,n)),s}return i._value=t,i}function FD(e,t,n){var s="style."+(e+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(t==null)return this.tween(s,null);if(typeof t!="function")throw new Error;return this.tween(s,OD(e,t,n??""))}function VD(e){return function(){this.textContent=e}}function BD(e){return function(){var t=e(this);this.textContent=t??""}}function HD(e){return this.tween("text",typeof e=="function"?BD(Vp(this,"text",e)):VD(e==null?"":e+""))}function WD(e){return function(t){this.textContent=e.call(this,t)}}function UD(e){var t,n;function s(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&WD(r)),t}return s._value=e,s}function KD(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,UD(e))}function YD(){for(var e=this._name,t=this._id,n=Dk(),s=this._groups,r=s.length,i=0;i<r;++i)for(var o=s[i],l=o.length,c,u=0;u<l;++u)if(c=o[u]){var d=Zt(c,t);Lc(c,e,n,u,o,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Vn(s,this._parents,e,n)}function qD(){var e,t,n=this,s=n._id,r=n.size();return new Promise(function(i,o){var l={value:o},c={value:function(){--r===0&&i()}};n.each(function(){var u=gn(this,s),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),r===0&&i()})}var GD=0;function Vn(e,t,n,s){this._groups=e,this._parents=t,this._name=n,this._id=s}function Dk(){return++GD}var _n=Qo.prototype;Vn.prototype={constructor:Vn,select:TD,selectAll:PD,selectChild:_n.selectChild,selectChildren:_n.selectChildren,filter:kD,merge:jD,selection:MD,transition:YD,call:_n.call,nodes:_n.nodes,node:_n.node,size:_n.size,empty:_n.empty,each:_n.each,on:bD,attr:oD,attrTween:dD,style:DD,styleTween:FD,text:HD,textTween:KD,remove:CD,tween:JL,delay:pD,duration:yD,ease:xD,easeVarying:_D,end:qD,[Symbol.iterator]:_n[Symbol.iterator]};function XD(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var QD={time:null,delay:0,duration:250,ease:XD};function ZD(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function JD(e){var t,n;e instanceof Vn?(t=e._id,e=e._name):(t=Dk(),(n=QD).time=Op(),e=e==null?null:e+"");for(var s=this._groups,r=s.length,i=0;i<r;++i)for(var o=s[i],l=o.length,c,u=0;u<l;++u)(c=o[u])&&Lc(c,e,t,u,o,n||ZD(c,t));return new Vn(s,this._parents,e,t)}Qo.prototype.interrupt=XL;Qo.prototype.transition=JD;const Ia=e=>()=>e;function e3(e,{sourceEvent:t,target:n,transform:s,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:r}})}function Cn(e,t,n){this.k=e,this.x=t,this.y=n}Cn.prototype={constructor:Cn,scale:function(e){return e===1?this:new Cn(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Cn(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Dc=new Cn(1,0,0);zk.prototype=Cn.prototype;function zk(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Dc;return e.__zoom}function Hu(e){e.stopImmediatePropagation()}function Ei(e){e.preventDefault(),e.stopImmediatePropagation()}function t3(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function n3(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function mv(){return this.__zoom||Dc}function s3(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function r3(){return navigator.maxTouchPoints||"ontouchstart"in this}function i3(e,t,n){var s=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(r>s?(s+r)/2:Math.min(0,s)||Math.max(0,r),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function Ok(){var e=t3,t=n3,n=i3,s=s3,r=r3,i=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],l=250,c=al,u=Ic("start","zoom","end"),d,f,h,p=500,v=150,_=0,w=10;function m(N){N.property("__zoom",mv).on("wheel.zoom",b,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",R).filter(r).on("touchstart.zoom",I).on("touchmove.zoom",O).on("touchend.zoom touchcancel.zoom",V).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(N,T,M,$){var C=N.selection?N.selection():N;C.property("__zoom",mv),N!==C?k(N,T,M,$):C.interrupt().each(function(){j(this,arguments).event($).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},m.scaleBy=function(N,T,M,$){m.scaleTo(N,function(){var C=this.__zoom.k,A=typeof T=="function"?T.apply(this,arguments):T;return C*A},M,$)},m.scaleTo=function(N,T,M,$){m.transform(N,function(){var C=t.apply(this,arguments),A=this.__zoom,z=M==null?x(C):typeof M=="function"?M.apply(this,arguments):M,L=A.invert(z),F=typeof T=="function"?T.apply(this,arguments):T;return n(g(y(A,F),z,L),C,o)},M,$)},m.translateBy=function(N,T,M,$){m.transform(N,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),o)},null,$)},m.translateTo=function(N,T,M,$,C){m.transform(N,function(){var A=t.apply(this,arguments),z=this.__zoom,L=$==null?x(A):typeof $=="function"?$.apply(this,arguments):$;return n(Dc.translate(L[0],L[1]).scale(z.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof M=="function"?-M.apply(this,arguments):-M),A,o)},$,C)};function y(N,T){return T=Math.max(i[0],Math.min(i[1],T)),T===N.k?N:new Cn(T,N.x,N.y)}function g(N,T,M){var $=T[0]-M[0]*N.k,C=T[1]-M[1]*N.k;return $===N.x&&C===N.y?N:new Cn(N.k,$,C)}function x(N){return[(+N[0][0]+ +N[1][0])/2,(+N[0][1]+ +N[1][1])/2]}function k(N,T,M,$){N.on("start.zoom",function(){j(this,arguments).event($).start()}).on("interrupt.zoom end.zoom",function(){j(this,arguments).event($).end()}).tween("zoom",function(){var C=this,A=arguments,z=j(C,A).event($),L=t.apply(C,A),F=M==null?x(L):typeof M=="function"?M.apply(C,A):M,U=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),W=C.__zoom,K=typeof T=="function"?T.apply(C,A):T,G=c(W.invert(F).concat(U/W.k),K.invert(F).concat(U/K.k));return function(Q){if(Q===1)Q=K;else{var H=G(Q),q=U/H[2];Q=new Cn(q,F[0]-H[0]*q,F[1]-H[1]*q)}z.zoom(null,Q)}})}function j(N,T,M){return!M&&N.__zooming||new E(N,T)}function E(N,T){this.that=N,this.args=T,this.active=0,this.sourceEvent=null,this.extent=t.apply(N,T),this.taps=0}E.prototype={event:function(N){return N&&(this.sourceEvent=N),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(N,T){return this.mouse&&N!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&N!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&N!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(N){var T=mt(this.that).datum();u.call(N,this.that,new e3(N,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:u}),T)}};function b(N,...T){if(!e.apply(this,arguments))return;var M=j(this,T).event(N),$=this.__zoom,C=Math.max(i[0],Math.min(i[1],$.k*Math.pow(2,s.apply(this,arguments)))),A=Ht(N);if(M.wheel)(M.mouse[0][0]!==A[0]||M.mouse[0][1]!==A[1])&&(M.mouse[1]=$.invert(M.mouse[0]=A)),clearTimeout(M.wheel);else{if($.k===C)return;M.mouse=[A,$.invert(A)],ul(this),M.start()}Ei(N),M.wheel=setTimeout(z,v),M.zoom("mouse",n(g(y($,C),M.mouse[0],M.mouse[1]),M.extent,o));function z(){M.wheel=null,M.end()}}function P(N,...T){if(h||!e.apply(this,arguments))return;var M=N.currentTarget,$=j(this,T,!0).event(N),C=mt(N.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",U,!0),A=Ht(N,M),z=N.clientX,L=N.clientY;kk(N.view),Hu(N),$.mouse=[A,this.__zoom.invert(A)],ul(this),$.start();function F(W){if(Ei(W),!$.moved){var K=W.clientX-z,G=W.clientY-L;$.moved=K*K+G*G>_}$.event(W).zoom("mouse",n(g($.that.__zoom,$.mouse[0]=Ht(W,M),$.mouse[1]),$.extent,o))}function U(W){C.on("mousemove.zoom mouseup.zoom",null),jk(W.view,$.moved),Ei(W),$.event(W).end()}}function R(N,...T){if(e.apply(this,arguments)){var M=this.__zoom,$=Ht(N.changedTouches?N.changedTouches[0]:N,this),C=M.invert($),A=M.k*(N.shiftKey?.5:2),z=n(g(y(M,A),$,C),t.apply(this,T),o);Ei(N),l>0?mt(this).transition().duration(l).call(k,z,$,N):mt(this).call(m.transform,z,$,N)}}function I(N,...T){if(e.apply(this,arguments)){var M=N.touches,$=M.length,C=j(this,T,N.changedTouches.length===$).event(N),A,z,L,F;for(Hu(N),z=0;z<$;++z)L=M[z],F=Ht(L,this),F=[F,this.__zoom.invert(F),L.identifier],C.touch0?!C.touch1&&C.touch0[2]!==F[2]&&(C.touch1=F,C.taps=0):(C.touch0=F,A=!0,C.taps=1+!!d);d&&(d=clearTimeout(d)),A&&(C.taps<2&&(f=F[0],d=setTimeout(function(){d=null},p)),ul(this),C.start())}}function O(N,...T){if(this.__zooming){var M=j(this,T).event(N),$=N.changedTouches,C=$.length,A,z,L,F;for(Ei(N),A=0;A<C;++A)z=$[A],L=Ht(z,this),M.touch0&&M.touch0[2]===z.identifier?M.touch0[0]=L:M.touch1&&M.touch1[2]===z.identifier&&(M.touch1[0]=L);if(z=M.that.__zoom,M.touch1){var U=M.touch0[0],W=M.touch0[1],K=M.touch1[0],G=M.touch1[1],Q=(Q=K[0]-U[0])*Q+(Q=K[1]-U[1])*Q,H=(H=G[0]-W[0])*H+(H=G[1]-W[1])*H;z=y(z,Math.sqrt(Q/H)),L=[(U[0]+K[0])/2,(U[1]+K[1])/2],F=[(W[0]+G[0])/2,(W[1]+G[1])/2]}else if(M.touch0)L=M.touch0[0],F=M.touch0[1];else return;M.zoom("touch",n(g(z,L,F),M.extent,o))}}function V(N,...T){if(this.__zooming){var M=j(this,T).event(N),$=N.changedTouches,C=$.length,A,z;for(Hu(N),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),A=0;A<C;++A)z=$[A],M.touch0&&M.touch0[2]===z.identifier?delete M.touch0:M.touch1&&M.touch1[2]===z.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(z=Ht(z,this),Math.hypot(f[0]-z[0],f[1]-z[1])<w)){var L=mt(this).on("dblclick.zoom");L&&L.apply(this,arguments)}}}return m.wheelDelta=function(N){return arguments.length?(s=typeof N=="function"?N:Ia(+N),m):s},m.filter=function(N){return arguments.length?(e=typeof N=="function"?N:Ia(!!N),m):e},m.touchable=function(N){return arguments.length?(r=typeof N=="function"?N:Ia(!!N),m):r},m.extent=function(N){return arguments.length?(t=typeof N=="function"?N:Ia([[+N[0][0],+N[0][1]],[+N[1][0],+N[1][1]]]),m):t},m.scaleExtent=function(N){return arguments.length?(i[0]=+N[0],i[1]=+N[1],m):[i[0],i[1]]},m.translateExtent=function(N){return arguments.length?(o[0][0]=+N[0][0],o[1][0]=+N[1][0],o[0][1]=+N[0][1],o[1][1]=+N[1][1],m):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},m.constrain=function(N){return arguments.length?(n=N,m):n},m.duration=function(N){return arguments.length?(l=+N,m):l},m.interpolate=function(N){return arguments.length?(c=N,m):c},m.on=function(){var N=u.on.apply(u,arguments);return N===u?m:N},m.clickDistance=function(N){return arguments.length?(_=(N=+N)*N,m):Math.sqrt(_)},m.tapDistance=function(N){return arguments.length?(w=+N,m):w},m}const Qt={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:s})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:s}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Mo=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Fk=["Enter"," ","Escape"],Vk={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Jr;(function(e){e.Strict="strict",e.Loose="loose"})(Jr||(Jr={}));var Bs;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Bs||(Bs={}));var Io;(function(e){e.Partial="partial",e.Full="full"})(Io||(Io={}));const Bk={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var es;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(es||(es={}));var nc;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(nc||(nc={}));var se;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(se||(se={}));const gv={[se.Left]:se.Right,[se.Right]:se.Left,[se.Top]:se.Bottom,[se.Bottom]:se.Top};function Hk(e){return e===null?null:e?"valid":"invalid"}const Wk=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,o3=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Bp=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Jo=(e,t=[0,0])=>{const{width:n,height:s}=yn(e),r=e.origin??t,i=n*r[0],o=s*r[1];return{x:e.position.x-i,y:e.position.y-o}},a3=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((s,r)=>{const i=typeof r=="string";let o=!t.nodeLookup&&!i?r:void 0;t.nodeLookup&&(o=i?t.nodeLookup.get(r):Bp(r)?r:t.nodeLookup.get(r.id));const l=o?sc(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return zc(s,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Oc(n)},ea=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},s=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=zc(n,sc(r)),s=!0)}),s?Oc(n):{x:0,y:0,width:0,height:0}},Hp=(e,t,[n,s,r]=[0,0,1],i=!1,o=!1)=>{const l=(t.x-n)/r,c=(t.y-s)/r,u=t.width/r,d=t.height/r,f=[];for(const h of e.values()){const{measured:p,selectable:v=!0,hidden:_=!1}=h;if(o&&!v||_)continue;const w=p.width??h.width??h.initialWidth??0,m=p.height??h.height??h.initialHeight??0,{x:y,y:g}=h.internals.positionAbsolute,x=qk(l,c,u,d,y,g,w,m),k=w*m,j=i&&x>0;(!h.internals.handleBounds||j||x>=k||h.dragging)&&f.push(h)}return f},l3=(e,t)=>{const n=new Set;return e.forEach(s=>{n.add(s.id)}),t.filter(s=>n.has(s.source)||n.has(s.target))};function c3(e,t){const n=new Map,s=t!=null&&t.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{let i;if(t!=null&&t.includeHiddenNodes){const{width:o,height:l}=yn(r);i=o>0&&l>0}else i=!!(r.measured.width&&r.measured.height&&!r.hidden);i&&(!s||s.has(r.id))&&n.set(r.id,r)}),n}async function u3({nodes:e,width:t,height:n,panZoom:s,minZoom:r,maxZoom:i},o){if(e.size===0)return!0;const l=c3(e,o),c=ea(l),u=Up(c,t,n,(o==null?void 0:o.minZoom)??r,(o==null?void 0:o.maxZoom)??i,(o==null?void 0:o.padding)??.1);return await s.setViewport(u,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),!0}function Uk({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:s=[0,0],nodeExtent:r,onError:i}){const o=n.get(e),l=o.parentId?n.get(o.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=o.origin??s;let f=o.extent||r;if(o.extent==="parent"&&!o.expandParent)if(!l)i==null||i("005",Qt.error005());else{const p=l.measured.width,v=l.measured.height;p&&v&&(f=[[c,u],[c+p,u+v]])}else l&&Zs(o.extent)&&(f=[[o.extent[0][0]+c,o.extent[0][1]+u],[o.extent[1][0]+c,o.extent[1][1]+u]]);const h=Zs(f)?Qs(t,f,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(i==null||i("015",Qt.error015())),{position:{x:h.x-c+(o.measured.width??0)*d[0],y:h.y-u+(o.measured.height??0)*d[1]},positionAbsolute:h}}async function d3({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:s,onBeforeDelete:r}){const i=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=i.has(h.id),v=!p&&h.parentId&&o.find(_=>_.id===h.parentId);(p||v)&&o.push(h)}const l=new Set(t.map(h=>h.id)),c=s.filter(h=>h.deletable!==!1),d=l3(o,c);for(const h of c)l.has(h.id)&&!d.find(v=>v.id===h.id)&&d.push(h);if(!r)return{edges:d,nodes:o};const f=await r({nodes:o,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:o}:{edges:[],nodes:[]}:f}const ei=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Qs=(e={x:0,y:0},t,n)=>({x:ei(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:ei(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Kk(e,t,n){const{width:s,height:r}=yn(n),{x:i,y:o}=n.internals.positionAbsolute;return Qs(e,[[i,o],[i+s,o+r]],t)}const yv=(e,t,n)=>e<t?ei(Math.abs(e-t),1,t)/t:e>n?-ei(Math.abs(e-n),1,t)/t:0,Wp=(e,t,n=15,s=40)=>{const r=yv(e.x,s,t.width-s)*n,i=yv(e.y,s,t.height-s)*n;return[r,i]},zc=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),zf=({x:e,y:t,width:n,height:s})=>({x:e,y:t,x2:e+n,y2:t+s}),Oc=({x:e,y:t,x2:n,y2:s})=>({x:e,y:t,width:n-e,height:s-t}),Ro=(e,t=[0,0])=>{var r,i;const{x:n,y:s}=Bp(e)?e.internals.positionAbsolute:Jo(e,t);return{x:n,y:s,width:((r=e.measured)==null?void 0:r.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},sc=(e,t=[0,0])=>{var r,i;const{x:n,y:s}=Bp(e)?e.internals.positionAbsolute:Jo(e,t);return{x:n,y:s,x2:n+(((r=e.measured)==null?void 0:r.width)??e.width??e.initialWidth??0),y2:s+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},Yk=(e,t)=>Oc(zc(zf(e),zf(t))),qk=(e,t,n,s,r,i,o,l)=>{const c=Math.max(0,Math.min(e+n,r+o)-Math.max(e,r)),u=Math.max(0,Math.min(t+s,i+l)-Math.max(t,i));return Math.ceil(c*u)},rc=(e,t)=>qk(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),vv=e=>Kt(e.width)&&Kt(e.height)&&Kt(e.x)&&Kt(e.y),Kt=e=>!isNaN(e)&&isFinite(e),Gk=(e,t)=>(n,s)=>{},ta=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),na=({x:e,y:t},[n,s,r],i=!1,o=[1,1])=>{const l={x:(e-n)/r,y:(t-s)/r};return i?ta(l,o):l},ti=({x:e,y:t},[n,s,r])=>({x:e*r+n,y:t*r+s});function ar(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function f3(e,t,n){if(typeof e=="string"||typeof e=="number"){const s=ar(e,n),r=ar(e,t);return{top:s,right:r,bottom:s,left:r,x:r*2,y:s*2}}if(typeof e=="object"){const s=ar(e.top??e.y??0,n),r=ar(e.bottom??e.y??0,n),i=ar(e.left??e.x??0,t),o=ar(e.right??e.x??0,t);return{top:s,right:o,bottom:r,left:i,x:i+o,y:s+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function h3(e,t,n,s,r,i){const{x:o,y:l}=ti(e,[t,n,s]),{x:c,y:u}=ti({x:e.x+e.width,y:e.y+e.height},[t,n,s]),d=r-c,f=i-u;return{left:Math.floor(o),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(f)}}const Up=(e,t,n,s,r,i)=>{const o=f3(i,t,n),l=(t-o.x)/e.width,c=(n-o.y)/e.height,u=Math.min(l,c),d=ei(u,s,r),f=e.x+e.width/2,h=e.y+e.height/2,p=t/2-f*d,v=n/2-h*d,_=h3(e,p,v,d,t,n),w={left:Math.min(_.left-o.left,0),top:Math.min(_.top-o.top,0),right:Math.min(_.right-o.right,0),bottom:Math.min(_.bottom-o.bottom,0)};return{x:p-w.left+w.right,y:v-w.top+w.bottom,zoom:d}},$o=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Zs(e){return e!=null&&e!=="parent"}function yn(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function Xk(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function Qk(e,t={width:0,height:0},n,s,r){const i={...e},o=s.get(n);if(o){const l=o.origin||r;i.x+=o.internals.positionAbsolute.x-(t.width??0)*l[0],i.y+=o.internals.positionAbsolute.y-(t.height??0)*l[1]}return i}function xv(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function p3(){let e,t;return{promise:new Promise((s,r)=>{e=s,t=r}),resolve:e,reject:t}}function m3(e){return{...Vk,...e||{}}}function eo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:s,containerBounds:r}){const{x:i,y:o}=Yt(e),l=na({x:i-((r==null?void 0:r.left)??0),y:o-((r==null?void 0:r.top)??0)},s),{x:c,y:u}=n?ta(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const Kp=e=>({width:e.offsetWidth,height:e.offsetHeight}),Zk=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},g3=["INPUT","SELECT","TEXTAREA"];function Jk(e){var s,r;const t=((r=(s=e.composedPath)==null?void 0:s.call(e))==null?void 0:r[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:g3.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ej=e=>"clientX"in e,Yt=(e,t)=>{var i,o;const n=ej(e),s=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,r=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:s-((t==null?void 0:t.left)??0),y:r-((t==null?void 0:t.top)??0)}},wv=(e,t,n,s,r)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(o=>{const l=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:r,position:o.getAttribute("data-handlepos"),x:(l.left-n.left)/s,y:(l.top-n.top)/s,...Kp(o)}})};function tj({sourceX:e,sourceY:t,targetX:n,targetY:s,sourceControlX:r,sourceControlY:i,targetControlX:o,targetControlY:l}){const c=e*.125+r*.375+o*.375+n*.125,u=t*.125+i*.375+l*.375+s*.125,d=Math.abs(c-e),f=Math.abs(u-t);return[c,u,d,f]}function Ra(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function _v({pos:e,x1:t,y1:n,x2:s,y2:r,c:i}){switch(e){case se.Left:return[t-Ra(t-s,i),n];case se.Right:return[t+Ra(s-t,i),n];case se.Top:return[t,n-Ra(n-r,i)];case se.Bottom:return[t,n+Ra(r-n,i)]}}function nj({sourceX:e,sourceY:t,sourcePosition:n=se.Bottom,targetX:s,targetY:r,targetPosition:i=se.Top,curvature:o=.25}){const[l,c]=_v({pos:n,x1:e,y1:t,x2:s,y2:r,c:o}),[u,d]=_v({pos:i,x1:s,y1:r,x2:e,y2:t,c:o}),[f,h,p,v]=tj({sourceX:e,sourceY:t,targetX:s,targetY:r,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${t} C${l},${c} ${u},${d} ${s},${r}`,f,h,p,v]}function sj({sourceX:e,sourceY:t,targetX:n,targetY:s}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,o=Math.abs(s-t)/2,l=s<t?s+o:s-o;return[i,l,r,o]}function y3({sourceNode:e,targetNode:t,selected:n=!1,zIndex:s=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if(i==="manual")return s;const o=r&&n?s+1e3:s,l=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return o+l}function v3({sourceNode:e,targetNode:t,width:n,height:s,transform:r}){const i=zc(sc(e),sc(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const o={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:s/r[2]};return rc(o,Oc(i))>0}const x3=({source:e,sourceHandle:t,target:n,targetHandle:s})=>`xy-edge__${e}${t||""}-${n}${s||""}`,w3=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),_3=(e,t,n={})=>{var i;if(!e.source||!e.target)return(i=n.onError)==null||i.call(n,"006",Qt.error006()),t;const s=n.getEdgeId||x3;let r;return Wk(e)?r={...e}:r={...e,id:s(e)},w3(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function rj({sourceX:e,sourceY:t,targetX:n,targetY:s}){const[r,i,o,l]=sj({sourceX:e,sourceY:t,targetX:n,targetY:s});return[`M ${e},${t}L ${n},${s}`,r,i,o,l]}const kv={[se.Left]:{x:-1,y:0},[se.Right]:{x:1,y:0},[se.Top]:{x:0,y:-1},[se.Bottom]:{x:0,y:1}},k3=({source:e,sourcePosition:t=se.Bottom,target:n})=>t===se.Left||t===se.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},jv=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function j3({source:e,sourcePosition:t=se.Bottom,target:n,targetPosition:s=se.Top,center:r,offset:i,stepPosition:o}){const l=kv[t],c=kv[s],u={x:e.x+l.x*i,y:e.y+l.y*i},d={x:n.x+c.x*i,y:n.y+c.y*i},f=k3({source:u,sourcePosition:t,target:d}),h=f.x!==0?"x":"y",p=f[h];let v=[],_,w;const m={x:0,y:0},y={x:0,y:0},[,,g,x]=sj({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[h]*c[h]===-1){h==="x"?(_=r.x??u.x+(d.x-u.x)*o,w=r.y??(u.y+d.y)/2):(_=r.x??(u.x+d.x)/2,w=r.y??u.y+(d.y-u.y)*o);const b=[{x:_,y:u.y},{x:_,y:d.y}],P=[{x:u.x,y:w},{x:d.x,y:w}];l[h]===p?v=h==="x"?b:P:v=h==="x"?P:b}else{const b=[{x:u.x,y:d.y}],P=[{x:d.x,y:u.y}];if(h==="x"?v=l.x===p?P:b:v=l.y===p?b:P,t===s){const N=Math.abs(e[h]-n[h]);if(N<=i){const T=Math.min(i-1,i-N);l[h]===p?m[h]=(u[h]>e[h]?-1:1)*T:y[h]=(d[h]>n[h]?-1:1)*T}}if(t!==s){const N=h==="x"?"y":"x",T=l[h]===c[N],M=u[N]>d[N],$=u[N]<d[N];(l[h]===1&&(!T&&M||T&&$)||l[h]!==1&&(!T&&$||T&&M))&&(v=h==="x"?b:P)}const R={x:u.x+m.x,y:u.y+m.y},I={x:d.x+y.x,y:d.y+y.y},O=Math.max(Math.abs(R.x-v[0].x),Math.abs(I.x-v[0].x)),V=Math.max(Math.abs(R.y-v[0].y),Math.abs(I.y-v[0].y));O>=V?(_=(R.x+I.x)/2,w=v[0].y):(_=v[0].x,w=(R.y+I.y)/2)}const k={x:u.x+m.x,y:u.y+m.y},j={x:d.x+y.x,y:d.y+y.y};return[[e,...k.x!==v[0].x||k.y!==v[0].y?[k]:[],...v,...j.x!==v[v.length-1].x||j.y!==v[v.length-1].y?[j]:[],n],_,w,g,x]}function S3(e,t,n,s){const r=Math.min(jv(e,t)/2,jv(t,n)/2,s),{x:i,y:o}=t;if(e.x===i&&i===n.x||e.y===o&&o===n.y)return`L${i} ${o}`;if(e.y===o){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${i+r*u},${o}Q ${i},${o} ${i},${o+r*d}`}const l=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${i},${o+r*c}Q ${i},${o} ${i+r*l},${o}`}function Of({sourceX:e,sourceY:t,sourcePosition:n=se.Bottom,targetX:s,targetY:r,targetPosition:i=se.Top,borderRadius:o=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,h,p,v,_]=j3({source:{x:e,y:t},sourcePosition:n,target:{x:s,y:r},targetPosition:i,center:{x:l,y:c},offset:u,stepPosition:d});let w=`M${f[0].x} ${f[0].y}`;for(let m=1;m<f.length-1;m++)w+=S3(f[m-1],f[m],f[m+1],o);return w+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[w,h,p,v,_]}function Sv(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function N3(e){var f;const{sourceNode:t,targetNode:n}=e;if(!Sv(t)||!Sv(n))return null;const s=t.internals.handleBounds||Nv(t.handles),r=n.internals.handleBounds||Nv(n.handles),i=bv((s==null?void 0:s.source)??[],e.sourceHandle),o=bv(e.connectionMode===Jr.Strict?(r==null?void 0:r.target)??[]:((r==null?void 0:r.target)??[]).concat((r==null?void 0:r.source)??[]),e.targetHandle);if(!i||!o)return(f=e.onError)==null||f.call(e,"008",Qt.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=(i==null?void 0:i.position)||se.Bottom,c=(o==null?void 0:o.position)||se.Top,u=Js(t,i,l),d=Js(n,o,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function Nv(e){if(!e)return null;const t=[],n=[];for(const s of e)s.width=s.width??1,s.height=s.height??1,s.type==="source"?t.push(s):s.type==="target"&&n.push(s);return{source:t,target:n}}function Js(e,t,n=se.Left,s=!1){const r=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:o,height:l}=t??yn(e);if(s)return{x:r+o/2,y:i+l/2};switch((t==null?void 0:t.position)??n){case se.Top:return{x:r+o/2,y:i};case se.Right:return{x:r+o,y:i+l/2};case se.Bottom:return{x:r+o/2,y:i+l};case se.Left:return{x:r,y:i+l/2}}}function bv(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Ff(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(s=>`${s}=${e[s]}`).join("&")}`:""}function b3(e,{id:t,defaultColor:n,defaultMarkerStart:s,defaultMarkerEnd:r}){const i=new Set;return e.reduce((o,l)=>([l.markerStart||s,l.markerEnd||r].forEach(c=>{if(c&&typeof c=="object"){const u=Ff(c,t);i.has(u)||(o.push({id:u,color:c.color||n,...c}),i.add(u))}}),o),[]).sort((o,l)=>o.id.localeCompare(l.id))}const ij=1e3,E3=10,Yp={nodeOrigin:[0,0],nodeExtent:Mo,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},C3={...Yp,checkEquality:!0};function qp(e,t){const n={...e};for(const s in t)t[s]!==void 0&&(n[s]=t[s]);return n}function T3(e,t,n){const s=qp(Yp,n);for(const r of e.values())if(r.parentId)Xp(r,e,t,s);else{const i=Jo(r,s.nodeOrigin),o=Zs(r.extent)?r.extent:s.nodeExtent,l=Qs(i,o,yn(r));r.internals.positionAbsolute=l}}function P3(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],s=[];for(const r of e.handles){const i={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(i):r.type==="target"&&s.push(i)}return{source:n,target:s}}function Gp(e){return e==="manual"}function Vf(e,t,n,s={}){var d,f;const r=qp(C3,s),i={i:0},o=new Map(t),l=r!=null&&r.elevateNodesOnSelect&&!Gp(r.zIndexMode)?ij:0;let c=e.length>0,u=!1;t.clear(),n.clear();for(const h of e){let p=o.get(h.id);if(r.checkEquality&&h===(p==null?void 0:p.internals.userNode))t.set(h.id,p);else{const v=Jo(h,r.nodeOrigin),_=Zs(h.extent)?h.extent:r.nodeExtent,w=Qs(v,_,yn(h));p={...r.defaults,...h,measured:{width:(d=h.measured)==null?void 0:d.width,height:(f=h.measured)==null?void 0:f.height},internals:{positionAbsolute:w,handleBounds:P3(h,p),z:oj(h,l,r.zIndexMode),userNode:h}},t.set(h.id,p)}(p.measured===void 0||p.measured.width===void 0||p.measured.height===void 0)&&!p.hidden&&(c=!1),h.parentId&&Xp(p,t,n,s,i),u||(u=h.selected??!1)}return{nodesInitialized:c,hasSelectedNodes:u}}function A3(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Xp(e,t,n,s,r){const{elevateNodesOnSelect:i,nodeOrigin:o,nodeExtent:l,zIndexMode:c}=qp(Yp,s),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}A3(e,n),r&&!d.parentId&&d.internals.rootParentIndex===void 0&&c==="auto"&&(d.internals.rootParentIndex=++r.i,d.internals.z=d.internals.z+r.i*E3),r&&d.internals.rootParentIndex!==void 0&&(r.i=d.internals.rootParentIndex);const f=i&&!Gp(c)?ij:0,{x:h,y:p,z:v}=M3(e,d,o,l,f,c),{positionAbsolute:_}=e.internals,w=h!==_.x||p!==_.y;(w||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:h,y:p}:_,z:v}})}function oj(e,t,n){const s=Kt(e.zIndex)?e.zIndex:0;return Gp(n)?s:s+(e.selected?t:0)}function M3(e,t,n,s,r,i){const{x:o,y:l}=t.internals.positionAbsolute,c=yn(e),u=Jo(e,n),d=Zs(e.extent)?Qs(u,e.extent,c):u;let f=Qs({x:o+d.x,y:l+d.y},s,c);e.extent==="parent"&&(f=Kk(f,c,t));const h=oj(e,r,i),p=t.internals.z??0;return{x:f.x,y:f.y,z:p>=h?p+1:h}}function Qp(e,t,n,s=[0,0]){var o;const r=[],i=new Map;for(const l of e){const c=t.get(l.parentId);if(!c)continue;const u=((o=i.get(l.parentId))==null?void 0:o.expandedRect)??Ro(c),d=Yk(u,l.rect);i.set(l.parentId,{expandedRect:d,parent:c})}return i.size>0&&i.forEach(({expandedRect:l,parent:c},u)=>{var g;const d=c.internals.positionAbsolute,f=yn(c),h=c.origin??s,p=l.x<d.x?Math.round(Math.abs(d.x-l.x)):0,v=l.y<d.y?Math.round(Math.abs(d.y-l.y)):0,_=Math.max(f.width,Math.round(l.width)),w=Math.max(f.height,Math.round(l.height)),m=(_-f.width)*h[0],y=(w-f.height)*h[1];(p>0||v>0||m||y)&&(r.push({id:u,type:"position",position:{x:c.position.x-p+m,y:c.position.y-v+y}}),(g=n.get(u))==null||g.forEach(x=>{e.some(k=>k.id===x.id)||r.push({id:x.id,type:"position",position:{x:x.position.x+p,y:x.position.y+v}})})),(f.width<l.width||f.height<l.height||p||v)&&r.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:_+(p?h[0]*p-m:0),height:w+(v?h[1]*v-y:0)}})}),r}function I3(e,t,n,s,r,i,o){const l=s==null?void 0:s.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),h=[];for(const p of e.values()){const v=t.get(p.id);if(!v)continue;if(v.hidden){t.set(v.id,{...v,internals:{...v.internals,handleBounds:void 0}}),c=!0;continue}const _=Kp(p.nodeElement),w=v.measured.width!==_.width||v.measured.height!==_.height;if(!!(_.width&&_.height&&(w||!v.internals.handleBounds||p.force))){const y=p.nodeElement.getBoundingClientRect(),g=Zs(v.extent)?v.extent:i;let{positionAbsolute:x}=v.internals;if(v.parentId&&v.extent==="parent"){const j=t.get(v.parentId);j&&(x=Kk(x,_,j))}else g&&(x=Qs(x,g,_));const k={...v,measured:_,internals:{...v.internals,positionAbsolute:x,handleBounds:{source:wv("source",p.nodeElement,y,f,v.id),target:wv("target",p.nodeElement,y,f,v.id)}}};t.set(v.id,k),v.parentId&&Xp(k,t,n,{nodeOrigin:r,zIndexMode:o}),c=!0,w&&(u.push({id:v.id,type:"dimensions",dimensions:_}),v.expandParent&&v.parentId&&h.push({id:v.id,parentId:v.parentId,rect:Ro(k,r)}))}}if(h.length>0){const p=Qp(h,t,n,r);u.push(...p)}return{changes:u,updatedInternals:c}}async function R3({delta:e,panZoom:t,transform:n,translateExtent:s,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],s);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Ev(e,t,n,s,r,i){let o=r;const l=s.get(o)||new Map;s.set(o,l.set(n,t)),o=`${r}-${e}`;const c=s.get(o)||new Map;if(s.set(o,c.set(n,t)),i){o=`${r}-${e}-${i}`;const u=s.get(o)||new Map;s.set(o,u.set(n,t))}}function aj(e,t,n){e.clear(),t.clear();for(const s of n){const{source:r,target:i,sourceHandle:o=null,targetHandle:l=null}=s,c={edgeId:s.id,source:r,target:i,sourceHandle:o,targetHandle:l},u=`${r}-${o}--${i}-${l}`,d=`${i}-${l}--${r}-${o}`;Ev("source",c,d,e,r,o),Ev("target",c,u,e,i,l),t.set(s.id,s)}}function lj(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:lj(n,t):!1}function Cv(e,t,n){var r;let s=e;do{if((r=s==null?void 0:s.matches)!=null&&r.call(s,t))return!0;if(s===n)return!1;s=s==null?void 0:s.parentElement}while(s);return!1}function $3(e,t,n,s){const r=new Map;for(const[i,o]of e)if((o.selected||o.id===s)&&(!o.parentId||!lj(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const l=e.get(i);l&&r.set(i,{id:i,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return r}function Wu({nodeId:e,dragItems:t,nodeLookup:n,dragging:s=!0}){var o,l,c;const r=[];for(const[u,d]of t){const f=(o=n.get(u))==null?void 0:o.internals.userNode;f&&r.push({...f,position:d.position,dragging:s})}if(!e)return[r[0],r];const i=(l=n.get(e))==null?void 0:l.internals.userNode;return[i?{...i,position:((c=t.get(e))==null?void 0:c.position)||i.position,dragging:s}:r[0],r]}function L3({dragItems:e,snapGrid:t,x:n,y:s}){const r=e.values().next().value;if(!r)return null;const i={x:n-r.distance.x,y:s-r.distance.y},o=ta(i,t);return{x:o.x-i.x,y:o.y-i.y}}function D3({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:s,onDragStop:r}){let i={x:null,y:null},o=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,h=null,p=!1,v=!1,_=null;function w({noDragClassName:y,handleSelector:g,domNode:x,isSelectable:k,nodeId:j,nodeClickDistance:E=0}){h=mt(x);function b({x:O,y:V}){const{nodeLookup:N,nodeExtent:T,snapGrid:M,snapToGrid:$,nodeOrigin:C,onNodeDrag:A,onSelectionDrag:z,onError:L,updateNodePositions:F}=t();i={x:O,y:V};let U=!1;const W=l.size>1,K=W&&T?zf(ea(l)):null,G=W&&$?L3({dragItems:l,snapGrid:M,x:O,y:V}):null;for(const[Q,H]of l){if(!N.has(Q))continue;let q={x:O-H.distance.x,y:V-H.distance.y};$&&(q=G?{x:Math.round(q.x+G.x),y:Math.round(q.y+G.y)}:ta(q,M));let te=null;if(W&&T&&!H.extent&&K){const{positionAbsolute:X}=H.internals,oe=X.x-K.x+T[0][0],de=X.x+H.measured.width-K.x2+T[1][0],fe=X.y-K.y+T[0][1],Ce=X.y+H.measured.height-K.y2+T[1][1];te=[[oe,fe],[de,Ce]]}const{position:ne,positionAbsolute:J}=Uk({nodeId:Q,nextPosition:q,nodeLookup:N,nodeExtent:te||T,nodeOrigin:C,onError:L});U=U||H.position.x!==ne.x||H.position.y!==ne.y,H.position=ne,H.internals.positionAbsolute=J}if(v=v||U,!!U&&(F(l,!0),_&&(s||A||!j&&z))){const[Q,H]=Wu({nodeId:j,dragItems:l,nodeLookup:N});s==null||s(_,l,Q,H),A==null||A(_,Q,H),j||z==null||z(_,H)}}async function P(){if(!d)return;const{transform:O,panBy:V,autoPanSpeed:N,autoPanOnNodeDrag:T}=t();if(!T){c=!1,cancelAnimationFrame(o);return}const[M,$]=Wp(u,d,N);(M!==0||$!==0)&&(i.x=(i.x??0)-M/O[2],i.y=(i.y??0)-$/O[2],await V({x:M,y:$})&&b(i)),o=requestAnimationFrame(P)}function R(O){var W;const{nodeLookup:V,multiSelectionActive:N,nodesDraggable:T,transform:M,snapGrid:$,snapToGrid:C,selectNodesOnDrag:A,onNodeDragStart:z,onSelectionDragStart:L,unselectNodesAndEdges:F}=t();f=!0,(!A||!k)&&!N&&j&&((W=V.get(j))!=null&&W.selected||F()),k&&A&&j&&(e==null||e(j));const U=eo(O.sourceEvent,{transform:M,snapGrid:$,snapToGrid:C,containerBounds:d});if(i=U,l=$3(V,T,U,j),l.size>0&&(n||z||!j&&L)){const[K,G]=Wu({nodeId:j,dragItems:l,nodeLookup:V});n==null||n(O.sourceEvent,l,K,G),z==null||z(O.sourceEvent,K,G),j||L==null||L(O.sourceEvent,G)}}const I=Sk().clickDistance(E).on("start",O=>{const{domNode:V,nodeDragThreshold:N,transform:T,snapGrid:M,snapToGrid:$}=t();d=(V==null?void 0:V.getBoundingClientRect())||null,p=!1,v=!1,_=O.sourceEvent,N===0&&R(O),i=eo(O.sourceEvent,{transform:T,snapGrid:M,snapToGrid:$,containerBounds:d}),u=Yt(O.sourceEvent,d)}).on("drag",O=>{const{autoPanOnNodeDrag:V,transform:N,snapGrid:T,snapToGrid:M,nodeDragThreshold:$,nodeLookup:C}=t(),A=eo(O.sourceEvent,{transform:N,snapGrid:T,snapToGrid:M,containerBounds:d});if(_=O.sourceEvent,(O.sourceEvent.type==="touchmove"&&O.sourceEvent.touches.length>1||j&&!C.has(j))&&(p=!0),!p){if(!c&&V&&f&&(c=!0,P()),!f){const z=Yt(O.sourceEvent,d),L=z.x-u.x,F=z.y-u.y;Math.sqrt(L*L+F*F)>$&&R(O)}(i.x!==A.xSnapped||i.y!==A.ySnapped)&&l&&f&&(u=Yt(O.sourceEvent,d),b(A))}}).on("end",O=>{if(!f||p){p&&l.size>0&&t().updateNodePositions(l,!1);return}if(c=!1,f=!1,cancelAnimationFrame(o),l.size>0){const{nodeLookup:V,updateNodePositions:N,onNodeDragStop:T,onSelectionDragStop:M}=t();if(v&&(N(l,!1),v=!1),r||T||!j&&M){const[$,C]=Wu({nodeId:j,dragItems:l,nodeLookup:V,dragging:!1});r==null||r(O.sourceEvent,l,$,C),T==null||T(O.sourceEvent,$,C),j||M==null||M(O.sourceEvent,C)}}}).filter(O=>{const V=O.target;return!O.button&&(!y||!Cv(V,`.${y}`,x))&&(!g||Cv(V,g,x))});h.call(I)}function m(){h==null||h.on(".drag",null)}return{update:w,destroy:m}}function z3(e,t,n){const s=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())rc(r,Ro(i))>0&&s.push(i);return s}const O3=250;function F3(e,t,n,s){var l,c;let r=[],i=1/0;const o=z3(e,n,t+O3);for(const u of o){const d=[...((l=u.internals.handleBounds)==null?void 0:l.source)??[],...((c=u.internals.handleBounds)==null?void 0:c.target)??[]];for(const f of d){if(s.nodeId===f.nodeId&&s.type===f.type&&s.id===f.id)continue;const{x:h,y:p}=Js(u,f,f.position,!0),v=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));v>t||(v<i?(r=[{...f,x:h,y:p}],i=v):v===i&&r.push({...f,x:h,y:p}))}}if(!r.length)return null;if(r.length>1){const u=s.type==="source"?"target":"source";return r.find(d=>d.type===u)??r[0]}return r[0]}function cj(e,t,n,s,r,i=!1){var u,d,f;const o=s.get(e);if(!o)return null;const l=r==="strict"?(u=o.internals.handleBounds)==null?void 0:u[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((f=o.internals.handleBounds)==null?void 0:f.target)??[]],c=(n?l==null?void 0:l.find(h=>h.id===n):l==null?void 0:l[0])??null;return c&&i?{...c,...Js(o,c,c.position,!0)}:c}function uj(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function V3(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const dj=()=>!0;function B3(e,{connectionMode:t,connectionRadius:n,handleId:s,nodeId:r,edgeUpdaterType:i,isTarget:o,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:p,onConnectStart:v,onConnect:_,onConnectEnd:w,isValidConnection:m=dj,onReconnectEnd:y,updateConnection:g,getTransform:x,getFromHandle:k,autoPanSpeed:j,dragThreshold:E=1,handleDomNode:b}){const P=Zk(e.target);let R=0,I;const{x:O,y:V}=Yt(e),N=uj(i,b),T=l==null?void 0:l.getBoundingClientRect();let M=!1;if(!T||!N)return;const $=cj(r,N,s,c,t);if(!$)return;let C=Yt(e,T),A=!1,z=null,L=!1,F=null;function U(){if(!d||!T)return;const[ne,J]=Wp(C,T,j);h({x:ne,y:J}),R=requestAnimationFrame(U)}const W={...$,nodeId:r,type:N,position:$.position},K=c.get(r);let Q={inProgress:!0,isValid:null,from:Js(K,W,se.Left,!0),fromHandle:W,fromPosition:W.position,fromNode:K,to:C,toHandle:null,toPosition:gv[W.position],toNode:null,pointer:C};function H(){M=!0,g(Q),v==null||v(e,{nodeId:r,handleId:s,handleType:N})}E===0&&H();function q(ne){if(!M){const{x:Ce,y:Nt}=Yt(ne),Jt=Ce-O,en=Nt-V;if(!(Jt*Jt+en*en>E*E))return;H()}if(!k()||!W){te(ne);return}const J=x();C=Yt(ne,T),I=F3(na(C,J,!1,[1,1]),n,c,W),A||(U(),A=!0);const X=fj(ne,{handle:I,connectionMode:t,fromNodeId:r,fromHandleId:s,fromType:o?"target":"source",isValidConnection:m,doc:P,lib:u,flowId:f,nodeLookup:c});F=X.handleDomNode,z=X.connection,L=V3(!!I,X.isValid);const oe=c.get(r),de=oe?Js(oe,W,se.Left,!0):Q.from,fe={...Q,from:de,isValid:L,to:X.toHandle&&L?ti({x:X.toHandle.x,y:X.toHandle.y},J):C,toHandle:X.toHandle,toPosition:L&&X.toHandle?X.toHandle.position:gv[W.position],toNode:X.toHandle?c.get(X.toHandle.nodeId):null,pointer:C};g(fe),Q=fe}function te(ne){if(!("touches"in ne&&ne.touches.length>0)){if(M){(I||F)&&z&&L&&(_==null||_(z));const{inProgress:J,...X}=Q,oe={...X,toPosition:Q.toHandle?Q.toPosition:null};w==null||w(ne,oe),i&&(y==null||y(ne,oe))}p(),cancelAnimationFrame(R),A=!1,L=!1,z=null,F=null,P.removeEventListener("mousemove",q),P.removeEventListener("mouseup",te),P.removeEventListener("touchmove",q),P.removeEventListener("touchend",te)}}P.addEventListener("mousemove",q),P.addEventListener("mouseup",te),P.addEventListener("touchmove",q),P.addEventListener("touchend",te)}function fj(e,{handle:t,connectionMode:n,fromNodeId:s,fromHandleId:r,fromType:i,doc:o,lib:l,flowId:c,isValidConnection:u=dj,nodeLookup:d}){const f=i==="target",h=t?o.querySelector(`.${l}-flow__handle[data-id="${c}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:p,y:v}=Yt(e),_=o.elementFromPoint(p,v),w=_!=null&&_.classList.contains(`${l}-flow__handle`)?_:h,m={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const y=uj(void 0,w),g=w.getAttribute("data-nodeid"),x=w.getAttribute("data-handleid"),k=w.classList.contains("connectable"),j=w.classList.contains("connectableend");if(!g||!y)return m;const E={source:f?g:s,sourceHandle:f?x:r,target:f?s:g,targetHandle:f?r:x};m.connection=E;const P=k&&j&&(n===Jr.Strict?f&&y==="source"||!f&&y==="target":g!==s||x!==r);m.isValid=P&&u(E),m.toHandle=cj(g,y,x,d,n,!0)}return m}const Bf={onPointerDown:B3,isValid:fj};function H3({domNode:e,panZoom:t,getTransform:n,getViewScale:s}){const r=mt(e);function i({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:h=!0,inversePan:p=!1}){const v=g=>{if(g.sourceEvent.type!=="wheel"||!t)return;const x=n(),k=g.sourceEvent.ctrlKey&&$o()?10:1,j=-g.sourceEvent.deltaY*(g.sourceEvent.deltaMode===1?.05:g.sourceEvent.deltaMode?1:.002)*d,E=x[2]*Math.pow(2,j*k);t.scaleTo(E)};let _=[0,0];const w=g=>{(g.sourceEvent.type==="mousedown"||g.sourceEvent.type==="touchstart")&&(_=[g.sourceEvent.clientX??g.sourceEvent.touches[0].clientX,g.sourceEvent.clientY??g.sourceEvent.touches[0].clientY])},m=g=>{const x=n();if(g.sourceEvent.type!=="mousemove"&&g.sourceEvent.type!=="touchmove"||!t)return;const k=[g.sourceEvent.clientX??g.sourceEvent.touches[0].clientX,g.sourceEvent.clientY??g.sourceEvent.touches[0].clientY],j=[k[0]-_[0],k[1]-_[1]];_=k;const E=s()*Math.max(x[2],Math.log(x[2]))*(p?-1:1),b={x:x[0]-j[0]*E,y:x[1]-j[1]*E},P=[[0,0],[c,u]];t.setViewportConstrained({x:b.x,y:b.y,zoom:x[2]},P,l)},y=Ok().on("start",w).on("zoom",f?m:null).on("zoom.wheel",h?v:null);r.call(y,{})}function o(){r.on("zoom",null)}return{update:i,destroy:o,pointer:Ht}}const Fc=e=>({x:e.x,y:e.y,zoom:e.k}),Uu=({x:e,y:t,zoom:n})=>Dc.translate(e,t).scale(n),Er=(e,t)=>e.target.closest(`.${t}`),hj=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),W3=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Ku=(e,t=0,n=W3,s=()=>{})=>{const r=typeof t=="number"&&t>0;return r||s(),r?e.transition().duration(t).ease(n).on("end",s):e},pj=e=>{const t=e.ctrlKey&&$o()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function U3({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:s,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:o,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(Er(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&o){const w=Ht(d),m=pj(d),y=f*Math.pow(2,m);s.scaleTo(n,y,w,d);return}const h=d.deltaMode===1?20:1;let p=r===Bs.Vertical?0:d.deltaX*h,v=r===Bs.Horizontal?0:d.deltaY*h;!$o()&&d.shiftKey&&r!==Bs.Vertical&&(p=d.deltaY*h,v=0),s.translateBy(n,-(p/f)*i,-(v/f)*i,{internal:!0});const _=Fc(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c==null||c(d,_):(e.isPanScrolling=!0,l==null||l(d,_)),e.panScrollTimeout=setTimeout(()=>{u==null||u(d,_),e.isPanScrolling=!1},150)}}function K3({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(s,r){const i=s.type==="wheel",o=!t&&i&&!s.ctrlKey,l=Er(s,e);if(s.ctrlKey&&i&&l&&s.preventDefault(),o||l)return null;s.preventDefault(),n.call(this,s,r)}}function Y3({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return s=>{var i,o,l;if((i=s.sourceEvent)!=null&&i.internal)return;const r=Fc(s.transform);e.mouseButton=((o=s.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=r,((l=s.sourceEvent)==null?void 0:l.type)==="mousedown"&&t(!0),n&&(n==null||n(s.sourceEvent,r))}}function q3({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:s,onPanZoom:r}){return i=>{var o,l;e.usedRightMouseButton=!!(n&&hj(t,e.mouseButton??0)),(o=i.sourceEvent)!=null&&o.sync||s([i.transform.x,i.transform.y,i.transform.k]),r&&!((l=i.sourceEvent)!=null&&l.internal)&&(r==null||r(i.sourceEvent,Fc(i.transform)))}}function G3({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:s,onPanZoomEnd:r,onPaneContextMenu:i}){return o=>{var l;if(!((l=o.sourceEvent)!=null&&l.internal)&&(e.isZoomingOrPanning=!1,i&&hj(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&i(o.sourceEvent),e.usedRightMouseButton=!1,s(!1),r)){const c=Fc(o.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r==null||r(o.sourceEvent,c)},n?150:0)}}}function X3({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:s,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:o,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{var w;const h=e||t,p=n&&f.ctrlKey,v=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(Er(f,`${u}-flow__node`)||Er(f,`${u}-flow__edge`)))return!0;if(!s&&!h&&!r&&!i&&!n||o||d&&!v||Er(f,l)&&v||Er(f,c)&&(!v||r&&v&&!e)||!n&&f.ctrlKey&&v)return!1;if(!n&&f.type==="touchstart"&&((w=f.touches)==null?void 0:w.length)>1)return f.preventDefault(),!1;if(!h&&!r&&!p&&v||!s&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(s)&&!s.includes(f.button)&&f.type==="mousedown")return!1;const _=Array.isArray(s)&&s.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||v)&&_}}function Q3({domNode:e,minZoom:t,maxZoom:n,translateExtent:s,viewport:r,onPanZoom:i,onPanZoomStart:o,onPanZoomEnd:l,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect();let f=[[0,0],[d.width,d.height]];const h=typeof ResizeObserver<"u"?new ResizeObserver(V=>{const N=V[0];N&&(f=[[0,0],[N.contentRect.width,N.contentRect.height]])}):null;h==null||h.observe(e);const p=Ok().extent(()=>f).scaleExtent([t,n]).translateExtent(s),v=mt(e).call(p);x({x:r.x,y:r.y,zoom:ei(r.zoom,t,n)},[[0,0],[d.width,d.height]],s);const _=v.on("wheel.zoom"),w=v.on("dblclick.zoom");p.wheelDelta(pj);async function m(V,N){return v?new Promise(T=>{p==null||p.interpolate((N==null?void 0:N.interpolate)==="linear"?Ji:al).transform(Ku(v,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>T(!0)),V)}):!1}function y({noWheelClassName:V,noPanClassName:N,onPaneContextMenu:T,userSelectionActive:M,panOnScroll:$,panOnDrag:C,panOnScrollMode:A,panOnScrollSpeed:z,preventScrolling:L,zoomOnPinch:F,zoomOnScroll:U,zoomOnDoubleClick:W,zoomActivationKeyPressed:K,lib:G,onTransformChange:Q,connectionInProgress:H,paneClickDistance:q,selectionOnDrag:te}){M&&!u.isZoomingOrPanning&&g();const ne=$&&!K&&!M;p.clickDistance(te?1/0:!Kt(q)||q<0?0:q);const J=ne?U3({zoomPanValues:u,noWheelClassName:V,d3Selection:v,d3Zoom:p,panOnScrollMode:A,panOnScrollSpeed:z,zoomOnPinch:F,onPanZoomStart:o,onPanZoom:i,onPanZoomEnd:l}):K3({noWheelClassName:V,preventScrolling:L,d3ZoomHandler:_});v.on("wheel.zoom",J,{passive:!1});const X=Y3({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:o});p.on("start",X);const oe=q3({zoomPanValues:u,panOnDrag:C,onPaneContextMenu:!!T,onPanZoom:i,onTransformChange:Q});p.on("zoom",oe);const de=G3({zoomPanValues:u,panOnDrag:C,panOnScroll:$,onPaneContextMenu:T,onPanZoomEnd:l,onDraggingChange:c});p.on("end",de);const fe=X3({zoomActivationKeyPressed:K,panOnDrag:C,zoomOnScroll:U,panOnScroll:$,zoomOnDoubleClick:W,zoomOnPinch:F,userSelectionActive:M,noPanClassName:N,noWheelClassName:V,lib:G,connectionInProgress:H});p.filter(fe),W?v.on("dblclick.zoom",w):v.on("dblclick.zoom",null)}function g(){p.on("zoom",null)}async function x(V,N,T){const M=Uu(V),$=p==null?void 0:p.constrain()(M,N,T);return $&&await m($),$}async function k(V,N){const T=Uu(V);return await m(T,N),T}function j(V){if(v){const N=Uu(V),T=v.property("__zoom");(T.k!==V.zoom||T.x!==V.x||T.y!==V.y)&&(p==null||p.transform(v,N,null,{sync:!0}))}}function E(){const V=v?zk(v.node()):{x:0,y:0,k:1};return{x:V.x,y:V.y,zoom:V.k}}async function b(V,N){return v?new Promise(T=>{p==null||p.interpolate((N==null?void 0:N.interpolate)==="linear"?Ji:al).scaleTo(Ku(v,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>T(!0)),V)}):!1}async function P(V,N){return v?new Promise(T=>{p==null||p.interpolate((N==null?void 0:N.interpolate)==="linear"?Ji:al).scaleBy(Ku(v,N==null?void 0:N.duration,N==null?void 0:N.ease,()=>T(!0)),V)}):!1}function R(V){p==null||p.scaleExtent(V)}function I(V){p==null||p.translateExtent(V)}function O(V){const N=!Kt(V)||V<0?0:V;p==null||p.clickDistance(N)}return{update:y,destroy:g,setViewport:k,setViewportConstrained:x,getViewport:E,scaleTo:b,scaleBy:P,setScaleExtent:R,setTranslateExtent:I,syncViewport:j,setClickDistance:O}}var ni;(function(e){e.Line="line",e.Handle="handle"})(ni||(ni={}));function Z3({width:e,prevWidth:t,height:n,prevHeight:s,affectsX:r,affectsY:i}){const o=e-t,l=n-s,c=[o>0?1:o<0?-1:0,l>0?1:l<0?-1:0];return o&&r&&(c[0]=c[0]*-1),l&&i&&(c[1]=c[1]*-1),c}function Tv(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),s=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:s,affectsY:r}}function Kn(e,t){return Math.max(0,t-e)}function Yn(e,t){return Math.max(0,e-t)}function $a(e,t,n){return Math.max(0,t-e,e-n)}function Pv(e,t){return e?!t:t}function J3(e,t,n,s,r,i,o,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:p,ySnapped:v}=n,{minWidth:_,maxWidth:w,minHeight:m,maxHeight:y}=s,{x:g,y:x,width:k,height:j,aspectRatio:E}=e;let b=Math.floor(d?p-e.pointerX:0),P=Math.floor(f?v-e.pointerY:0);const R=k+(c?-b:b),I=j+(u?-P:P),O=-i[0]*k,V=-i[1]*j;let N=$a(R,_,w),T=$a(I,m,y);if(o){let C=0,A=0;c&&b<0?C=Kn(g+b+O,o[0][0]):!c&&b>0&&(C=Yn(g+R+O,o[1][0])),u&&P<0?A=Kn(x+P+V,o[0][1]):!u&&P>0&&(A=Yn(x+I+V,o[1][1])),N=Math.max(N,C),T=Math.max(T,A)}if(l){let C=0,A=0;c&&b>0?C=Yn(g+b,l[0][0]):!c&&b<0&&(C=Kn(g+R,l[1][0])),u&&P>0?A=Yn(x+P,l[0][1]):!u&&P<0&&(A=Kn(x+I,l[1][1])),N=Math.max(N,C),T=Math.max(T,A)}if(r){if(d){const C=$a(R/E,m,y)*E;if(N=Math.max(N,C),o){let A=0;!c&&!u||c&&!u&&h?A=Yn(x+V+R/E,o[1][1])*E:A=Kn(x+V+(c?b:-b)/E,o[0][1])*E,N=Math.max(N,A)}if(l){let A=0;!c&&!u||c&&!u&&h?A=Kn(x+R/E,l[1][1])*E:A=Yn(x+(c?b:-b)/E,l[0][1])*E,N=Math.max(N,A)}}if(f){const C=$a(I*E,_,w)/E;if(T=Math.max(T,C),o){let A=0;!c&&!u||u&&!c&&h?A=Yn(g+I*E+O,o[1][0])/E:A=Kn(g+(u?P:-P)*E+O,o[0][0])/E,T=Math.max(T,A)}if(l){let A=0;!c&&!u||u&&!c&&h?A=Kn(g+I*E,l[1][0])/E:A=Yn(g+(u?P:-P)*E,l[0][0])/E,T=Math.max(T,A)}}}P=P+(P<0?T:-T),b=b+(b<0?N:-N),r&&(h?R>I*E?P=(Pv(c,u)?-b:b)/E:b=(Pv(c,u)?-P:P)*E:d?(P=b/E,u=c):(b=P*E,c=u));const M=c?g+b:g,$=u?x+P:x;return{width:k+(c?-b:b),height:j+(u?-P:P),x:i[0]*b*(c?-1:1)+M,y:i[1]*P*(u?-1:1)+$}}const mj={width:0,height:0,x:0,y:0},ez={...mj,pointerX:0,pointerY:0,aspectRatio:1};function tz(e,t,n){const s=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,o=e.measured.height??0,l=n[0]*i,c=n[1]*o;return[[s-l,r-c],[s+i-l,r+o-c]]}function nz({domNode:e,nodeId:t,getStoreItems:n,onChange:s,onEnd:r}){const i=mt(e);let o={controlDirection:Tv("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:h,onResizeStart:p,onResize:v,onResizeEnd:_,shouldResize:w}){let m={...mj},y={...ez};o={boundaries:d,resizeDirection:h,keepAspectRatio:f,controlDirection:Tv(u)};let g,x=null,k=[],j,E,b,P=!1;const R=Sk().on("start",I=>{const{nodeLookup:O,transform:V,snapGrid:N,snapToGrid:T,nodeOrigin:M,paneDomNode:$}=n();if(g=O.get(t),!g)return;x=($==null?void 0:$.getBoundingClientRect())??null;const{xSnapped:C,ySnapped:A}=eo(I.sourceEvent,{transform:V,snapGrid:N,snapToGrid:T,containerBounds:x});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},y={...m,pointerX:C,pointerY:A,aspectRatio:m.width/m.height},j=void 0,E=Zs(g.extent)?g.extent:void 0,g.parentId&&(g.extent==="parent"||g.expandParent)&&(j=O.get(g.parentId)),j&&g.extent==="parent"&&(E=[[0,0],[j.measured.width,j.measured.height]]),k=[],b=void 0;for(const[z,L]of O)if(L.parentId===t&&(k.push({id:z,position:{...L.position},extent:L.extent}),L.extent==="parent"||L.expandParent)){const F=tz(L,g,L.origin??M);b?b=[[Math.min(F[0][0],b[0][0]),Math.min(F[0][1],b[0][1])],[Math.max(F[1][0],b[1][0]),Math.max(F[1][1],b[1][1])]]:b=F}p==null||p(I,{...m})}).on("drag",I=>{const{transform:O,snapGrid:V,snapToGrid:N,nodeOrigin:T}=n(),M=eo(I.sourceEvent,{transform:O,snapGrid:V,snapToGrid:N,containerBounds:x}),$=[];if(!g)return;const{x:C,y:A,width:z,height:L}=m,F={},U=g.origin??T,{width:W,height:K,x:G,y:Q}=J3(y,o.controlDirection,M,o.boundaries,o.keepAspectRatio,U,E,b),H=W!==z,q=K!==L,te=G!==C&&H,ne=Q!==A&&q;if(!te&&!ne&&!H&&!q)return;if((te||ne||U[0]===1||U[1]===1)&&(F.x=te?G:m.x,F.y=ne?Q:m.y,m.x=F.x,m.y=F.y,k.length>0)){const de=G-C,fe=Q-A;for(const Ce of k)Ce.position={x:Ce.position.x-de+U[0]*(W-z),y:Ce.position.y-fe+U[1]*(K-L)},$.push(Ce)}if((H||q)&&(F.width=H&&(!o.resizeDirection||o.resizeDirection==="horizontal")?W:m.width,F.height=q&&(!o.resizeDirection||o.resizeDirection==="vertical")?K:m.height,m.width=F.width,m.height=F.height),j&&g.expandParent){const de=U[0]*(F.width??0);F.x&&F.x<de&&(m.x=de,y.x=y.x-(F.x-de));const fe=U[1]*(F.height??0);F.y&&F.y<fe&&(m.y=fe,y.y=y.y-(F.y-fe))}const J=Z3({width:m.width,prevWidth:z,height:m.height,prevHeight:L,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),X={...m,direction:J};(w==null?void 0:w(I,X))!==!1&&(P=!0,v==null||v(I,X),s(F,$))}).on("end",I=>{P&&(_==null||_(I,{...m}),r==null||r({...m}),P=!1)});i.call(R)}function c(){i.on(".drag",null)}return{update:l,destroy:c}}var gj={exports:{}},yj={},vj={exports:{}},xj={};/**
|
|
274
|
+
* @license React
|
|
275
|
+
* use-sync-external-store-shim.production.js
|
|
276
|
+
*
|
|
277
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
278
|
+
*
|
|
279
|
+
* This source code is licensed under the MIT license found in the
|
|
280
|
+
* LICENSE file in the root directory of this source tree.
|
|
281
|
+
*/var si=S;function sz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var rz=typeof Object.is=="function"?Object.is:sz,iz=si.useState,oz=si.useEffect,az=si.useLayoutEffect,lz=si.useDebugValue;function cz(e,t){var n=t(),s=iz({inst:{value:n,getSnapshot:t}}),r=s[0].inst,i=s[1];return az(function(){r.value=n,r.getSnapshot=t,Yu(r)&&i({inst:r})},[e,n,t]),oz(function(){return Yu(r)&&i({inst:r}),e(function(){Yu(r)&&i({inst:r})})},[e]),lz(n),n}function Yu(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!rz(e,n)}catch{return!0}}function uz(e,t){return t()}var dz=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?uz:cz;xj.useSyncExternalStore=si.useSyncExternalStore!==void 0?si.useSyncExternalStore:dz;vj.exports=xj;var fz=vj.exports;/**
|
|
282
|
+
* @license React
|
|
283
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
284
|
+
*
|
|
285
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
286
|
+
*
|
|
287
|
+
* This source code is licensed under the MIT license found in the
|
|
288
|
+
* LICENSE file in the root directory of this source tree.
|
|
289
|
+
*/var Vc=S,hz=fz;function pz(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var mz=typeof Object.is=="function"?Object.is:pz,gz=hz.useSyncExternalStore,yz=Vc.useRef,vz=Vc.useEffect,xz=Vc.useMemo,wz=Vc.useDebugValue;yj.useSyncExternalStoreWithSelector=function(e,t,n,s,r){var i=yz(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=xz(function(){function c(p){if(!u){if(u=!0,d=p,p=s(p),r!==void 0&&o.hasValue){var v=o.value;if(r(v,p))return f=v}return f=p}if(v=f,mz(d,p))return v;var _=s(p);return r!==void 0&&r(v,_)?(d=p,v):(d=p,f=_)}var u=!1,d,f,h=n===void 0?null:n;return[function(){return c(t())},h===null?void 0:function(){return c(h())}]},[t,n,s,r]);var l=gz(e,i[0],i[1]);return vz(function(){o.hasValue=!0,o.value=l},[l]),wz(l),l};gj.exports=yj;var _z=gj.exports;const kz=C0(_z),jz={},Av=e=>{let t;const n=new Set,s=(d,f)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=f??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(v=>v(t,p))}},r=()=>t,c={setState:s,getState:r,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(jz?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(s,r,c);return c},Sz=e=>e?Av(e):Av,{useDebugValue:Nz}=Ds,{useSyncExternalStoreWithSelector:bz}=kz,Ez=e=>e;function wj(e,t=Ez,n){const s=bz(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Nz(s),s}const Mv=(e,t)=>{const n=Sz(e),s=(r,i=t)=>wj(n,r,i);return Object.assign(s,n),s},Cz=(e,t)=>e?Mv(e,t):Mv;function Ee(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[s,r]of e)if(!Object.is(r,t.get(s)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const s of e)if(!t.has(s))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const s of n)if(!Object.prototype.hasOwnProperty.call(t,s)||!Object.is(e[s],t[s]))return!1;return!0}const Bc=S.createContext(null),Tz=Bc.Provider,_j=Qt.error001("react");function ue(e,t){const n=S.useContext(Bc);if(n===null)throw new Error(_j);return wj(n,e,t)}function xe(){const e=S.useContext(Bc);if(e===null)throw new Error(_j);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Iv={display:"none"},Pz={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},kj="react-flow__node-desc",jj="react-flow__edge-desc",Az="react-flow__aria-live",Mz=e=>e.ariaLiveMessage,Iz=e=>e.ariaLabelConfig;function Rz({rfId:e}){const t=ue(Mz);return a.jsx("div",{id:`${Az}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Pz,children:t})}function $z({rfId:e,disableKeyboardA11y:t}){const n=ue(Iz);return a.jsxs(a.Fragment,{children:[a.jsx("div",{id:`${kj}-${e}`,style:Iv,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),a.jsx("div",{id:`${jj}-${e}`,style:Iv,children:n["edge.a11yDescription.default"]}),!t&&a.jsx(Rz,{rfId:e})]})}const Hc=S.forwardRef(({position:e="top-left",children:t,className:n,style:s,...r},i)=>{const o=`${e}`.split("-");return a.jsx("div",{className:De(["react-flow__panel",n,...o]),style:s,ref:i,...r,children:t})});Hc.displayName="Panel";const Rv="https://reactflow.dev?utm_source=attribution";function Lz({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:a.jsx(Hc,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Rv}`,children:a.jsx("a",{href:Rv,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Dz=e=>{const t=[],n=[];for(const[,s]of e.nodeLookup)s.selected&&t.push(s.internals.userNode);for(const[,s]of e.edgeLookup)s.selected&&n.push(s);return{selectedNodes:t,selectedEdges:n}},La=e=>e.id;function zz(e,t){return Ee(e.selectedNodes.map(La),t.selectedNodes.map(La))&&Ee(e.selectedEdges.map(La),t.selectedEdges.map(La))}function Oz({onSelectionChange:e}){const t=xe(),{selectedNodes:n,selectedEdges:s}=ue(Dz,zz);return S.useEffect(()=>{const r={nodes:n,edges:s};e==null||e(r),t.getState().onSelectionChangeHandlers.forEach(i=>i(r))},[n,s,e]),null}const Fz=e=>!!e.onSelectionChangeHandlers;function Vz({onSelectionChange:e}){const t=ue(Fz);return e||t?a.jsx(Oz,{onSelectionChange:e}):null}const Sj=[0,0],Bz={x:0,y:0,zoom:1},Hz=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],$v=[...Hz,"rfId"],Wz=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Lv={translateExtent:Mo,nodeOrigin:Sj,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Uz(e){const{setNodes:t,setEdges:n,setMinZoom:s,setMaxZoom:r,setTranslateExtent:i,setNodeExtent:o,reset:l,setDefaultNodesAndEdges:c}=ue(Wz,Ee),u=xe();S.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Lv,l()}),[]);const d=S.useRef(Lv);return S.useEffect(()=>{for(const f of $v){const h=e[f],p=d.current[f];h!==p&&(typeof e[f]>"u"||(f==="nodes"?t(h):f==="edges"?n(h):f==="minZoom"?s(h):f==="maxZoom"?r(h):f==="translateExtent"?i(h):f==="nodeExtent"?o(h):f==="ariaLabelConfig"?u.setState({ariaLabelConfig:m3(h)}):f==="fitView"?u.setState({fitViewQueued:h}):f==="fitViewOptions"?u.setState({fitViewOptions:h}):u.setState({[f]:h})))}d.current=e},$v.map(f=>e[f])),null}function Dv(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Kz(e){var s;const[t,n]=S.useState(e==="system"?null:e);return S.useEffect(()=>{if(e!=="system"){n(e);return}const r=Dv(),i=()=>n(r!=null&&r.matches?"dark":"light");return i(),r==null||r.addEventListener("change",i),()=>{r==null||r.removeEventListener("change",i)}},[e]),t!==null?t:(s=Dv())!=null&&s.matches?"dark":"light"}const zv=typeof document<"u"?document:null;function Lo(e=null,t={target:zv,actInsideInputWithModifier:!0}){const[n,s]=S.useState(!1),r=S.useRef(!1),i=S.useRef(new Set([])),[o,l]=S.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
290
|
+
`).replace(`
|
|
291
|
+
|
|
292
|
+
`,`
|
|
293
|
+
+`).split(`
|
|
294
|
+
`)),d=u.reduce((f,h)=>f.concat(...h),[]);return[u,d]}return[[],[]]},[e]);return S.useEffect(()=>{const c=(t==null?void 0:t.target)??zv,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=p=>{var w,m;if(r.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!r.current||r.current&&!u)&&Jk(p))return!1;const _=Fv(p.code,l);if(i.current.add(p[_]),Ov(o,i.current,!1)){const y=((m=(w=p.composedPath)==null?void 0:w.call(p))==null?void 0:m[0])||p.target,g=(y==null?void 0:y.nodeName)==="BUTTON"||(y==null?void 0:y.nodeName)==="A";t.preventDefault!==!1&&(r.current||!g)&&p.preventDefault(),s(!0)}},f=p=>{const v=Fv(p.code,l);Ov(o,i.current,!0)?(s(!1),i.current.clear()):i.current.delete(p[v]),p.key==="Meta"&&i.current.clear(),r.current=!1},h=()=>{i.current.clear(),s(!1)};return c==null||c.addEventListener("keydown",d),c==null||c.addEventListener("keyup",f),window.addEventListener("blur",h),window.addEventListener("contextmenu",h),()=>{c==null||c.removeEventListener("keydown",d),c==null||c.removeEventListener("keyup",f),window.removeEventListener("blur",h),window.removeEventListener("contextmenu",h)}}},[e,s]),n}function Ov(e,t,n){return e.filter(s=>n||s.length===t.size).some(s=>s.every(r=>t.has(r)))}function Fv(e,t){return t.includes(e)?"code":"key"}const Yz=()=>{const e=xe();return S.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:s}=e.getState();return s?s.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[s,r,i],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??s,y:t.y??r,zoom:t.zoom??i},n),!0):!1},getViewport:()=>{const[t,n,s]=e.getState().transform;return{x:t,y:n,zoom:s}},setCenter:async(t,n,s)=>e.getState().setCenter(t,n,s),fitBounds:async(t,n)=>{const{width:s,height:r,minZoom:i,maxZoom:o,panZoom:l}=e.getState(),c=Up(t,s,r,i,o,(n==null?void 0:n.padding)??.1);return l?(await l.setViewport(c,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:s,snapGrid:r,snapToGrid:i,domNode:o}=e.getState();if(!o)return t;const{x:l,y:c}=o.getBoundingClientRect(),u={x:t.x-l,y:t.y-c},d=n.snapGrid??r,f=n.snapToGrid??i;return na(u,s,f,d)},flowToScreenPosition:t=>{const{transform:n,domNode:s}=e.getState();if(!s)return t;const{x:r,y:i}=s.getBoundingClientRect(),o=ti(t,n);return{x:o.x+r,y:o.y+i}}}),[])};function Nj(e,t){const n=[],s=new Map,r=[];for(const i of e)if(i.type==="add"){r.push(i);continue}else if(i.type==="remove"||i.type==="replace")s.set(i.id,[i]);else{const o=s.get(i.id);o?o.push(i):s.set(i.id,[i])}for(const i of t){const o=s.get(i.id);if(!o){n.push(i);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const l={...i};for(const c of o)qz(c,l);n.push(l)}return r.length&&r.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function qz(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Gz(e,t){return Nj(e,t)}function Xz(e,t){return Nj(e,t)}function As(e,t){return{id:e,type:"select",selected:t}}function Cr(e,t=new Set,n=!1){const s=[];for(const[r,i]of e){const o=t.has(r);!(i.selected===void 0&&!o)&&i.selected!==o&&(n&&(i.selected=o),s.push(As(i.id,o)))}return s}function Vv({items:e=[],lookup:t}){var r;const n=[],s=new Map(e.map(i=>[i.id,i]));for(const[i,o]of e.entries()){const l=t.get(o.id),c=((r=l==null?void 0:l.internals)==null?void 0:r.userNode)??l;c!==void 0&&c!==o&&n.push({id:o.id,item:o,type:"replace"}),c===void 0&&n.push({item:o,type:"add",index:i})}for(const[i]of t)s.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function Bv(e){return{id:e.id,type:"remove"}}const Qz=Gk();function Zz(e,t,n={}){return _3(e,t,{...n,onError:n.onError??Qz})}const Hv=e=>o3(e),Jz=e=>Wk(e);function bj(e){return S.forwardRef(e)}const Ej=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Wv(e){const[t,n]=S.useState(BigInt(0)),[s]=S.useState(()=>e4(()=>n(r=>r+BigInt(1))));return Ej(()=>{const r=s.get();r.length&&(e(r),s.reset())},[t]),s}function e4(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Cj=S.createContext(null);function t4({children:e}){const t=xe(),n=S.useCallback(l=>{const{nodes:c=[],setNodes:u,hasDefaultNodes:d,onNodesChange:f,nodeLookup:h,fitViewQueued:p,onNodesChangeMiddlewareMap:v}=t.getState();let _=c;for(const m of l)_=typeof m=="function"?m(_):m;let w=Vv({items:_,lookup:h});for(const m of v.values())w=m(w);d&&u(_),w.length>0?f==null||f(w):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:y,setNodes:g}=t.getState();m&&g(y)})},[]),s=Wv(n),r=S.useCallback(l=>{const{edges:c=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:h}=t.getState();let p=c;for(const v of l)p=typeof v=="function"?v(p):v;d?u(p):f&&f(Vv({items:p,lookup:h}))},[]),i=Wv(r),o=S.useMemo(()=>({nodeQueue:s,edgeQueue:i}),[]);return a.jsx(Cj.Provider,{value:o,children:e})}function n4(){const e=S.useContext(Cj);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const s4=e=>!!e.panZoom;function Zp(){const e=Yz(),t=xe(),n=n4(),s=ue(s4),r=S.useMemo(()=>{const i=f=>t.getState().nodeLookup.get(f),o=f=>{n.nodeQueue.push(f)},l=f=>{n.edgeQueue.push(f)},c=f=>{var m,y;const{nodeLookup:h,nodeOrigin:p}=t.getState(),v=Hv(f)?f:h.get(f.id),_=v.parentId?Qk(v.position,v.measured,v.parentId,h,p):v.position,w={...v,position:_,width:((m=v.measured)==null?void 0:m.width)??v.width,height:((y=v.measured)==null?void 0:y.height)??v.height};return Ro(w)},u=(f,h,p={replace:!1})=>{o(v=>v.map(_=>{if(_.id===f){const w=typeof h=="function"?h(_):h;return p.replace&&Hv(w)?w:{..._,...w}}return _}))},d=(f,h,p={replace:!1})=>{l(v=>v.map(_=>{if(_.id===f){const w=typeof h=="function"?h(_):h;return p.replace&&Jz(w)?w:{..._,...w}}return _}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>{var h;return(h=i(f))==null?void 0:h.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(h=>({...h}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:o,setEdges:l,addNodes:f=>{const h=Array.isArray(f)?f:[f];n.nodeQueue.push(p=>[...p,...h])},addEdges:f=>{const h=Array.isArray(f)?f:[f];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:f=[],edges:h=[],transform:p}=t.getState(),[v,_,w]=p;return{nodes:f.map(m=>({...m})),edges:h.map(m=>({...m})),viewport:{x:v,y:_,zoom:w}}},deleteElements:async({nodes:f=[],edges:h=[]})=>{const{nodes:p,edges:v,onNodesDelete:_,onEdgesDelete:w,triggerNodeChanges:m,triggerEdgeChanges:y,onDelete:g,onBeforeDelete:x}=t.getState(),{nodes:k,edges:j}=await d3({nodesToRemove:f,edgesToRemove:h,nodes:p,edges:v,onBeforeDelete:x}),E=j.length>0,b=k.length>0;if(E){const P=j.map(Bv);w==null||w(j),y(P)}if(b){const P=k.map(Bv);_==null||_(k),m(P)}return(b||E)&&(g==null||g({nodes:k,edges:j})),{deletedNodes:k,deletedEdges:j}},getIntersectingNodes:(f,h=!0,p)=>{const v=vv(f),_=v?f:c(f),w=p!==void 0;return _?(p||t.getState().nodes).filter(m=>{const y=t.getState().nodeLookup.get(m.id);if(y&&!v&&(m.id===f.id||!y.internals.positionAbsolute))return!1;const g=Ro(w?m:y),x=rc(g,_);return h&&x>0||x>=g.width*g.height||x>=_.width*_.height}):[]},isNodeIntersecting:(f,h,p=!0)=>{const _=vv(f)?f:c(f);if(!_)return!1;const w=rc(_,h);return p&&w>0||w>=h.width*h.height||w>=_.width*_.height},updateNode:u,updateNodeData:(f,h,p={replace:!1})=>{u(f,v=>{const _=typeof h=="function"?h(v):h;return p.replace?{...v,data:_}:{...v,data:{...v.data,..._}}},p)},updateEdge:d,updateEdgeData:(f,h,p={replace:!1})=>{d(f,v=>{const _=typeof h=="function"?h(v):h;return p.replace?{...v,data:_}:{...v,data:{...v.data,..._}}},p)},getNodesBounds:f=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return a3(f,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:f,id:h,nodeId:p})=>{var v;return Array.from(((v=t.getState().connectionLookup.get(`${p}-${f}${h?`-${h}`:""}`))==null?void 0:v.values())??[])},getNodeConnections:({type:f,handleId:h,nodeId:p})=>{var v;return Array.from(((v=t.getState().connectionLookup.get(`${p}${f?h?`-${f}-${h}`:`-${f}`:""}`))==null?void 0:v.values())??[])},fitView:async f=>{const h=t.getState().fitViewResolver??p3();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:h}),n.nodeQueue.push(p=>[...p]),h.promise}}},[]);return S.useMemo(()=>({...r,...e,viewportInitialized:s}),[s])}const Uv=e=>e.selected,r4=typeof window<"u"?window:void 0;function i4({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=xe(),{deleteElements:s}=Zp(),r=Lo(e,{actInsideInputWithModifier:!1}),i=Lo(t,{target:r4});S.useEffect(()=>{if(r){const{edges:o,nodes:l}=n.getState();s({nodes:l.filter(Uv),edges:o.filter(Uv)}),n.setState({nodesSelectionActive:!1})}},[r]),S.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function o4(e){const t=xe();S.useEffect(()=>{const n=()=>{var r,i,o,l;if(!e.current||!(((i=(r=e.current).checkVisibility)==null?void 0:i.call(r))??!0))return!1;const s=Kp(e.current);(s.height===0||s.width===0)&&((l=(o=t.getState()).onError)==null||l.call(o,"004",Qt.error004())),t.setState({width:s.width||500,height:s.height||500})};if(e.current){n(),window.addEventListener("resize",n);const s=new ResizeObserver(()=>n());return s.observe(e.current),()=>{window.removeEventListener("resize",n),s&&e.current&&s.unobserve(e.current)}}},[])}const Wc={position:"absolute",width:"100%",height:"100%",top:0,left:0},a4=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function l4({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:s=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=Bs.Free,zoomOnDoubleClick:o=!0,panOnDrag:l=!0,defaultViewport:c,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:h,preventScrolling:p=!0,children:v,noWheelClassName:_,noPanClassName:w,onViewportChange:m,isControlledViewport:y,paneClickDistance:g,selectionOnDrag:x}){const k=xe(),j=S.useRef(null),{userSelectionActive:E,lib:b,connectionInProgress:P}=ue(a4,Ee),R=Lo(h),I=S.useRef();o4(j);const O=S.useCallback(V=>{m==null||m({x:V[0],y:V[1],zoom:V[2]}),y||k.setState({transform:V})},[m,y]);return S.useEffect(()=>{if(j.current){I.current=Q3({domNode:j.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:c,onDraggingChange:M=>k.setState($=>$.paneDragging===M?$:{paneDragging:M}),onPanZoomStart:(M,$)=>{const{onViewportChangeStart:C,onMoveStart:A}=k.getState();A==null||A(M,$),C==null||C($)},onPanZoom:(M,$)=>{const{onViewportChange:C,onMove:A}=k.getState();A==null||A(M,$),C==null||C($)},onPanZoomEnd:(M,$)=>{const{onViewportChangeEnd:C,onMoveEnd:A}=k.getState();A==null||A(M,$),C==null||C($)}});const{x:V,y:N,zoom:T}=I.current.getViewport();return k.setState({panZoom:I.current,transform:[V,N,T],domNode:j.current.closest(".react-flow")}),()=>{var M;(M=I.current)==null||M.destroy()}}},[]),S.useEffect(()=>{var V;(V=I.current)==null||V.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:s,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:o,panOnDrag:l,zoomActivationKeyPressed:R,preventScrolling:p,noPanClassName:w,userSelectionActive:E,noWheelClassName:_,lib:b,onTransformChange:O,connectionInProgress:P,selectionOnDrag:x,paneClickDistance:g})},[e,t,n,s,r,i,o,l,R,p,w,E,_,b,O,P,x,g]),a.jsx("div",{className:"react-flow__renderer",ref:j,style:Wc,children:v})}const c4=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function u4(){const{userSelectionActive:e,userSelectionRect:t}=ue(c4,Ee);return e&&t?a.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const qu=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},d4=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function f4({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Io.Full,panOnDrag:s,autoPanOnSelection:r,paneClickDistance:i,selectionOnDrag:o,onSelectionStart:l,onSelectionEnd:c,onPaneClick:u,onPaneContextMenu:d,onPaneScroll:f,onPaneMouseEnter:h,onPaneMouseMove:p,onPaneMouseLeave:v,children:_}){const w=S.useRef(0),m=xe(),{userSelectionActive:y,elementsSelectable:g,dragging:x,panBy:k,autoPanSpeed:j}=ue(d4,Ee),E=g&&(e||y),b=S.useRef(null),P=S.useRef(),R=S.useRef(new Set),I=S.useRef(new Set),O=S.useRef(!1),V=S.useRef(!1),N=S.useRef({x:0,y:0}),T=S.useRef(!1),M=H=>{if(V.current||O.current||m.getState().connection.inProgress){V.current=!1,O.current=!1;return}u==null||u(H),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},$=H=>{if(Array.isArray(s)&&(s!=null&&s.includes(2))){H.preventDefault();return}d==null||d(H)},C=f?H=>f(H):void 0,A=H=>{V.current&&(H.stopPropagation(),V.current=!1)},z=H=>{var Ce,Nt;const{domNode:q,transform:te}=m.getState();if(P.current=q==null?void 0:q.getBoundingClientRect(),!P.current)return;const ne=H.target===b.current;if(!ne&&!!H.target.closest(".nokey")||!e||!(o&&ne||t)||H.button!==0||!H.isPrimary)return;(Nt=(Ce=H.target)==null?void 0:Ce.setPointerCapture)==null||Nt.call(Ce,H.pointerId),V.current=!1;const{x:oe,y:de}=Yt(H.nativeEvent,P.current),fe=na({x:oe,y:de},te);m.setState({userSelectionRect:{width:0,height:0,startX:fe.x,startY:fe.y,x:oe,y:de}}),ne||(H.stopPropagation(),H.preventDefault())};function L(H,q){const{userSelectionRect:te}=m.getState();if(!te)return;const{transform:ne,nodeLookup:J,edgeLookup:X,connectionLookup:oe,triggerNodeChanges:de,triggerEdgeChanges:fe,defaultEdgeOptions:Ce}=m.getState(),Nt={x:te.startX,y:te.startY},{x:Jt,y:en}=ti(Nt,ne),vn={startX:Nt.x,startY:Nt.y,x:H<Jt?H:Jt,y:q<en?q:en,width:Math.abs(H-Jt),height:Math.abs(q-en)},hi=R.current,_s=I.current;R.current=new Set(Hp(J,vn,ne,n===Io.Partial,!0).map(Dt=>Dt.id)),I.current=new Set;const ks=(Ce==null?void 0:Ce.selectable)??!0;for(const Dt of R.current){const xn=oe.get(Dt);if(xn)for(const{edgeId:wn}of xn.values()){const js=X.get(wn);js&&(js.selectable??ks)&&I.current.add(wn)}}if(!xv(hi,R.current)){const Dt=Cr(J,R.current,!0);de(Dt)}if(!xv(_s,I.current)){const Dt=Cr(X,I.current);fe(Dt)}m.setState({userSelectionRect:vn,userSelectionActive:!0,nodesSelectionActive:!1})}function F(){if(!r||!P.current)return;const[H,q]=Wp(N.current,P.current,j);k({x:H,y:q}).then(te=>{if(!V.current||!te){w.current=requestAnimationFrame(F);return}const{x:ne,y:J}=N.current;L(ne,J),w.current=requestAnimationFrame(F)})}const U=()=>{cancelAnimationFrame(w.current),w.current=0,T.current=!1};S.useEffect(()=>()=>U(),[]);const W=H=>{const{userSelectionRect:q,transform:te,resetSelectedElements:ne}=m.getState();if(!P.current||!q)return;const{x:J,y:X}=Yt(H.nativeEvent,P.current);N.current={x:J,y:X};const oe=ti({x:q.startX,y:q.startY},te);if(!V.current){const de=t?0:i;if(Math.hypot(J-oe.x,X-oe.y)<=de)return;ne(),l==null||l(H)}V.current=!0,T.current||(F(),T.current=!0),L(J,X)},K=H=>{var q,te;if(!E){H.target===b.current&&m.getState().connection.inProgress&&(O.current=!0);return}H.button===0&&((te=(q=H.target)==null?void 0:q.releasePointerCapture)==null||te.call(q,H.pointerId),!y&&H.target===b.current&&m.getState().userSelectionRect&&(M==null||M(H)),m.setState({userSelectionActive:!1,userSelectionRect:null}),V.current&&(c==null||c(H),m.setState({nodesSelectionActive:R.current.size>0})),U())},G=H=>{var q,te;(te=(q=H.target)==null?void 0:q.releasePointerCapture)==null||te.call(q,H.pointerId),U()},Q=s===!0||Array.isArray(s)&&s.includes(0);return a.jsxs("div",{className:De(["react-flow__pane",{draggable:Q,dragging:x,selection:e}]),onClick:E?void 0:qu(M,b),onContextMenu:qu($,b),onWheel:qu(C,b),onPointerEnter:E?void 0:h,onPointerMove:E?W:p,onPointerUp:K,onPointerCancel:E?G:void 0,onPointerDownCapture:E?z:void 0,onClickCapture:E?A:void 0,onPointerLeave:v,ref:b,style:Wc,children:[_,a.jsx(u4,{})]})}function Hf({id:e,store:t,unselect:n=!1,nodeRef:s}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:o,nodeLookup:l,onError:c}=t.getState(),u=l.get(e);if(!u){c==null||c("012",Qt.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&o)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var d;return(d=s==null?void 0:s.current)==null?void 0:d.blur()})):r([e])}function Tj({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:s,nodeId:r,isSelectable:i,nodeClickDistance:o}){const l=xe(),[c,u]=S.useState(!1),d=S.useRef();return S.useEffect(()=>{if(!t)return d.current=D3({getStoreItems:()=>l.getState(),onNodeMouseDown:f=>{Hf({id:f,store:l,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}}),()=>{var f;(f=d.current)==null||f.destroy(),d.current=void 0}},[t,l,e]),S.useEffect(()=>{t||!e.current||!d.current||d.current.update({noDragClassName:n,handleSelector:s,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:o})},[n,s,t,i,e,r,o]),c}const h4=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Pj(){const e=xe();return S.useCallback(n=>{const{nodeExtent:s,snapToGrid:r,snapGrid:i,nodesDraggable:o,onError:l,updateNodePositions:c,nodeLookup:u,nodeOrigin:d}=e.getState(),f=new Map,h=h4(o),p=r?i[0]:5,v=r?i[1]:5,_=n.direction.x*p*n.factor,w=n.direction.y*v*n.factor;for(const[,m]of u){if(!h(m))continue;let y={x:m.internals.positionAbsolute.x+_,y:m.internals.positionAbsolute.y+w};r&&(y=ta(y,i));const{position:g,positionAbsolute:x}=Uk({nodeId:m.id,nextPosition:y,nodeLookup:u,nodeExtent:s,nodeOrigin:d,onError:l});m.position=g,m.internals.positionAbsolute=x,f.set(m.id,m)}c(f)},[])}const Jp=S.createContext(null),p4=Jp.Provider;Jp.Consumer;const Aj=()=>S.useContext(Jp),m4=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Mj=S.createContext(null);function g4({children:e}){const t=ue(m4,Ee);return a.jsx(Mj.Provider,{value:t,children:e})}function y4(){const e=S.useContext(Mj);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const v4={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},x4=(e,t,n)=>s=>{const{connectionClickStartHandle:r,connectionMode:i,connection:o}=s,{fromHandle:l,toHandle:c,isValid:u}=o;if(!l&&!r)return v4;const d=(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.id)===t&&(c==null?void 0:c.type)===n;return{connectingFrom:(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n,connectingTo:d,clickConnecting:(r==null?void 0:r.nodeId)===e&&(r==null?void 0:r.id)===t&&(r==null?void 0:r.type)===n,isPossibleEndHandle:i===Jr.Strict?(l==null?void 0:l.type)!==n:e!==(l==null?void 0:l.nodeId)||t!==(l==null?void 0:l.id),connectionInProcess:!!l,clickConnectionInProcess:!!r,valid:d&&u}};function w4({type:e="source",position:t=se.Top,isValidConnection:n,isConnectable:s=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:o,onConnect:l,children:c,className:u,onMouseDown:d,onTouchStart:f,...h},p){var T,M;const v=o||null,_=e==="target",w=xe(),m=Aj(),{connectOnClick:y,noPanClassName:g,rfId:x}=y4(),{connectingFrom:k,connectingTo:j,clickConnecting:E,isPossibleEndHandle:b,connectionInProcess:P,clickConnectionInProcess:R,valid:I}=ue(x4(m,v,e),Ee);m||(M=(T=w.getState()).onError)==null||M.call(T,"010",Qt.error010());const O=$=>{const{defaultEdgeOptions:C,onConnect:A,hasDefaultEdges:z}=w.getState(),L={...C,...$};if(z){const{edges:F,setEdges:U,onError:W}=w.getState();U(Zz(L,F,{onError:W}))}A==null||A(L),l==null||l(L)},V=$=>{if(!m)return;const C=ej($.nativeEvent);if(r&&(C&&$.button===0||!C)){const A=w.getState();Bf.onPointerDown($.nativeEvent,{handleDomNode:$.currentTarget,autoPanOnConnect:A.autoPanOnConnect,connectionMode:A.connectionMode,connectionRadius:A.connectionRadius,domNode:A.domNode,nodeLookup:A.nodeLookup,lib:A.lib,isTarget:_,handleId:v,nodeId:m,flowId:A.rfId,panBy:A.panBy,cancelConnection:A.cancelConnection,onConnectStart:A.onConnectStart,onConnectEnd:(...z)=>{var L,F;return(F=(L=w.getState()).onConnectEnd)==null?void 0:F.call(L,...z)},updateConnection:A.updateConnection,onConnect:O,isValidConnection:n||((...z)=>{var L,F;return((F=(L=w.getState()).isValidConnection)==null?void 0:F.call(L,...z))??!0}),getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:A.autoPanSpeed,dragThreshold:A.connectionDragThreshold})}C?d==null||d($):f==null||f($)},N=$=>{const{onClickConnectStart:C,onClickConnectEnd:A,connectionClickStartHandle:z,connectionMode:L,isValidConnection:F,lib:U,rfId:W,nodeLookup:K,connection:G}=w.getState();if(!m||!z&&!r)return;if(!z){C==null||C($.nativeEvent,{nodeId:m,handleId:v,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:m,type:e,id:v}});return}const Q=Zk($.target),H=n||F,{connection:q,isValid:te}=Bf.isValid($.nativeEvent,{handle:{nodeId:m,id:v,type:e},connectionMode:L,fromNodeId:z.nodeId,fromHandleId:z.id||null,fromType:z.type,isValidConnection:H,flowId:W,doc:Q,lib:U,nodeLookup:K});te&&q&&O(q);const ne=structuredClone(G);delete ne.inProgress,ne.toPosition=ne.toHandle?ne.toHandle.position:null,A==null||A($,ne),w.setState({connectionClickStartHandle:null})};return a.jsx("div",{"data-handleid":v,"data-nodeid":m,"data-handlepos":t,"data-id":`${x}-${m}-${v}-${e}`,className:De(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",g,u,{source:!_,target:_,connectable:s,connectablestart:r,connectableend:i,clickconnecting:E,connectingfrom:k,connectingto:j,valid:I,connectionindicator:s&&(!P||b)&&(P||R?i:r)}]),onMouseDown:V,onTouchStart:V,onClick:y?N:void 0,ref:p,...h,children:c})}const ri=S.memo(bj(w4));function _4({data:e,isConnectable:t,sourcePosition:n=se.Bottom}){return a.jsxs(a.Fragment,{children:[e==null?void 0:e.label,a.jsx(ri,{type:"source",position:n,isConnectable:t})]})}function k4({data:e,isConnectable:t,targetPosition:n=se.Top,sourcePosition:s=se.Bottom}){return a.jsxs(a.Fragment,{children:[a.jsx(ri,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,a.jsx(ri,{type:"source",position:s,isConnectable:t})]})}function j4(){return null}function S4({data:e,isConnectable:t,targetPosition:n=se.Top}){return a.jsxs(a.Fragment,{children:[a.jsx(ri,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const ic={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Kv={input:_4,default:k4,output:S4,group:j4};function N4(e){var t,n,s,r;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((s=e.style)==null?void 0:s.width),height:e.height??((r=e.style)==null?void 0:r.height)}}const b4=e=>{const{width:t,height:n,x:s,y:r}=ea(e.nodeLookup,{filter:i=>!!i.selected});return{width:Kt(t)?t:null,height:Kt(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${s}px,${r}px)`}};function E4({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const s=xe(),{width:r,height:i,transformString:o,userSelectionActive:l}=ue(b4,Ee),c=Pj(),u=S.useRef(null);S.useEffect(()=>{var p;n||(p=u.current)==null||p.focus({preventScroll:!0})},[n]);const d=!l&&r!==null&&i!==null;if(Tj({nodeRef:u,disabled:!d}),!d)return null;const f=e?p=>{const v=s.getState().nodes.filter(_=>_.selected);e(p,v)}:void 0,h=p=>{Object.prototype.hasOwnProperty.call(ic,p.key)&&(p.preventDefault(),c({direction:ic[p.key],factor:p.shiftKey?4:1}))};return a.jsx("div",{className:De(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:a.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:r,height:i}})})}const Yv=typeof window<"u"?window:void 0,C4=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Ij({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:s,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:o,paneClickDistance:l,deleteKeyCode:c,selectionKeyCode:u,selectionOnDrag:d,selectionMode:f,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:v,panActivationKeyCode:_,zoomActivationKeyCode:w,elementsSelectable:m,zoomOnScroll:y,zoomOnPinch:g,panOnScroll:x,panOnScrollSpeed:k,panOnScrollMode:j,zoomOnDoubleClick:E,panOnDrag:b,autoPanOnSelection:P,defaultViewport:R,translateExtent:I,minZoom:O,maxZoom:V,preventScrolling:N,onSelectionContextMenu:T,noWheelClassName:M,noPanClassName:$,disableKeyboardA11y:C,onViewportChange:A,isControlledViewport:z}){const{nodesSelectionActive:L,userSelectionActive:F}=ue(C4,Ee),U=Lo(u,{target:Yv}),W=Lo(_,{target:Yv}),K=W||b,G=W||x,Q=d&&K!==!0,H=U||F||Q;return i4({deleteKeyCode:c,multiSelectionKeyCode:v}),a.jsx(l4,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:y,zoomOnPinch:g,panOnScroll:G,panOnScrollSpeed:k,panOnScrollMode:j,zoomOnDoubleClick:E,panOnDrag:!U&&K,defaultViewport:R,translateExtent:I,minZoom:O,maxZoom:V,zoomActivationKeyCode:w,preventScrolling:N,noWheelClassName:M,noPanClassName:$,onViewportChange:A,isControlledViewport:z,paneClickDistance:l,selectionOnDrag:Q,children:a.jsxs(f4,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:s,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:o,panOnDrag:K,autoPanOnSelection:P,isSelecting:!!H,selectionMode:f,selectionKeyPressed:U,paneClickDistance:l,selectionOnDrag:Q,children:[e,L&&a.jsx(E4,{onSelectionContextMenu:T,noPanClassName:$,disableKeyboardA11y:C})]})})}Ij.displayName="FlowRenderer";const T4=S.memo(Ij),P4=e=>t=>e?Hp(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function A4(e){return ue(S.useCallback(P4(e),[e]),Ee)}const M4=e=>e.updateNodeInternals;function I4(){const e=ue(M4),[t]=S.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const s=new Map;n.forEach(r=>{const i=r.target.getAttribute("data-id");s.set(i,{id:i,nodeElement:r.target,force:!0})}),e(s)}));return S.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function R4({node:e,nodeType:t,hasDimensions:n,resizeObserver:s}){const r=xe(),i=S.useRef(null),o=S.useRef(null),l=S.useRef(e.sourcePosition),c=S.useRef(e.targetPosition),u=S.useRef(t),d=n&&!!e.internals.handleBounds;return S.useEffect(()=>{i.current&&!e.hidden&&(!d||o.current!==i.current)&&(o.current&&(s==null||s.unobserve(o.current)),s==null||s.observe(i.current),o.current=i.current)},[d,e.hidden]),S.useEffect(()=>()=>{o.current&&(s==null||s.unobserve(o.current),o.current=null)},[]),S.useEffect(()=>{if(i.current){const f=u.current!==t,h=l.current!==e.sourcePosition,p=c.current!==e.targetPosition;(f||h||p)&&(u.current=t,l.current=e.sourcePosition,c.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function $4({id:e,onClick:t,onMouseEnter:n,onMouseMove:s,onMouseLeave:r,onContextMenu:i,onDoubleClick:o,nodesDraggable:l,elementsSelectable:c,nodesConnectable:u,nodesFocusable:d,resizeObserver:f,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:v,rfId:_,nodeTypes:w,nodeClickDistance:m,onError:y}){const{node:g,internals:x,isParent:k}=ue(H=>{const q=H.nodeLookup.get(e),te=H.parentLookup.has(e);return{node:q,internals:q.internals,isParent:te}},Ee);let j=g.type||"default",E=(w==null?void 0:w[j])||Kv[j];E===void 0&&(y==null||y("003",Qt.error003(j)),j="default",E=(w==null?void 0:w.default)||Kv.default);const b=!!(g.draggable||l&&typeof g.draggable>"u"),P=!!(g.selectable||c&&typeof g.selectable>"u"),R=!!(g.connectable||u&&typeof g.connectable>"u"),I=!!(g.focusable||d&&typeof g.focusable>"u"),O=xe(),V=Xk(g),N=R4({node:g,nodeType:j,hasDimensions:V,resizeObserver:f}),T=Tj({nodeRef:N,disabled:g.hidden||!b,noDragClassName:h,handleSelector:g.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:m}),M=Pj();if(g.hidden)return null;const $=yn(g),C=N4(g),A=P||b||t||n||s||r,z=n?H=>n(H,{...x.userNode}):void 0,L=s?H=>s(H,{...x.userNode}):void 0,F=r?H=>r(H,{...x.userNode}):void 0,U=i?H=>i(H,{...x.userNode}):void 0,W=o?H=>o(H,{...x.userNode}):void 0,K=H=>{const{selectNodesOnDrag:q,nodeDragThreshold:te}=O.getState();P&&(!q||!b||te>0)&&Hf({id:e,store:O,nodeRef:N}),t&&t(H,{...x.userNode})},G=H=>{if(!(Jk(H.nativeEvent)||v)){if(Fk.includes(H.key)&&P){const q=H.key==="Escape";Hf({id:e,store:O,unselect:q,nodeRef:N})}else if(b&&g.selected&&Object.prototype.hasOwnProperty.call(ic,H.key)){H.preventDefault();const{ariaLabelConfig:q}=O.getState();O.setState({ariaLiveMessage:q["node.a11yDescription.ariaLiveMessage"]({direction:H.key.replace("Arrow","").toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),M({direction:ic[H.key],factor:H.shiftKey?4:1})}}},Q=()=>{var oe;if(v||!((oe=N.current)!=null&&oe.matches(":focus-visible")))return;const{transform:H,width:q,height:te,autoPanOnNodeFocus:ne,setCenter:J}=O.getState();if(!ne)return;Hp(new Map([[e,g]]),{x:0,y:0,width:q,height:te},H,!0).length>0||J(g.position.x+$.width/2,g.position.y+$.height/2,{zoom:H[2]})};return a.jsx("div",{className:De(["react-flow__node",`react-flow__node-${j}`,{[p]:b},g.className,{selected:g.selected,selectable:P,parent:k,draggable:b,dragging:T}]),ref:N,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:A?"all":"none",visibility:V?"visible":"hidden",...g.style,...C},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:z,onMouseMove:L,onMouseLeave:F,onContextMenu:U,onClick:K,onDoubleClick:W,onKeyDown:I?G:void 0,tabIndex:I?0:void 0,onFocus:I?Q:void 0,role:g.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${kj}-${_}`,"aria-label":g.ariaLabel,...g.domAttributes,children:a.jsx(p4,{value:e,children:a.jsx(E,{id:e,data:g.data,type:j,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:g.selected??!1,selectable:P,draggable:b,deletable:g.deletable??!0,isConnectable:R,sourcePosition:g.sourcePosition,targetPosition:g.targetPosition,dragging:T,dragHandle:g.dragHandle,zIndex:x.z,parentId:g.parentId,...$})})})}var L4=S.memo($4);const D4=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Rj(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:s,onError:r}=ue(D4,Ee),i=A4(e.onlyRenderVisibleElements),o=I4();return a.jsx("div",{className:"react-flow__nodes",style:Wc,children:i.map(l=>a.jsx(L4,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:s,nodeClickDistance:e.nodeClickDistance,onError:r},l))})}Rj.displayName="NodeRenderer";const z4=S.memo(Rj);function O4(e){return ue(S.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const s=[];if(n.width&&n.height)for(const r of n.edges){const i=n.nodeLookup.get(r.source),o=n.nodeLookup.get(r.target);i&&o&&v3({sourceNode:i,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&s.push(r.id)}return s},[e]),Ee)}const F4=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return a.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},V4=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return a.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},qv={[nc.Arrow]:F4,[nc.ArrowClosed]:V4};function B4(e){const t=xe();return S.useMemo(()=>{var r,i;return Object.prototype.hasOwnProperty.call(qv,e)?qv[e]:((i=(r=t.getState()).onError)==null||i.call(r,"009",Qt.error009(e)),null)},[e])}const H4=({id:e,type:t,color:n,width:s=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:o,orient:l="auto-start-reverse"})=>{const c=B4(t);return c?a.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${s}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:l,refX:"0",refY:"0",children:a.jsx(c,{color:n,strokeWidth:o})}):null},$j=({defaultColor:e,rfId:t})=>{const n=ue(i=>i.edges),s=ue(i=>i.defaultEdgeOptions),r=S.useMemo(()=>b3(n,{id:t,defaultColor:e,defaultMarkerStart:s==null?void 0:s.markerStart,defaultMarkerEnd:s==null?void 0:s.markerEnd}),[n,s,t,e]);return r.length?a.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:a.jsx("defs",{children:r.map(i=>a.jsx(H4,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};$j.displayName="MarkerDefinitions";var W4=S.memo($j);function Lj({x:e,y:t,label:n,labelStyle:s,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:o=[2,4],labelBgBorderRadius:l=2,children:c,className:u,...d}){const[f,h]=S.useState({x:1,y:0,width:0,height:0}),p=De(["react-flow__edge-textwrapper",u]),v=S.useRef(null);return S.useEffect(()=>{if(v.current){const _=v.current.getBBox();h({x:_.x,y:_.y,width:_.width,height:_.height})}},[n]),n?a.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:p,visibility:f.width?"visible":"hidden",...d,children:[r&&a.jsx("rect",{width:f.width+2*o[0],x:-o[0],y:-o[1],height:f.height+2*o[1],className:"react-flow__edge-textbg",style:i,rx:l,ry:l}),a.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:v,style:s,children:n}),c]}):null}Lj.displayName="EdgeText";const U4=S.memo(Lj);function Uc({path:e,labelX:t,labelY:n,label:s,labelStyle:r,labelShowBg:i,labelBgStyle:o,labelBgPadding:l,labelBgBorderRadius:c,interactionWidth:u=20,...d}){return a.jsxs(a.Fragment,{children:[a.jsx("path",{...d,d:e,fill:"none",className:De(["react-flow__edge-path",d.className])}),u?a.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,s&&Kt(t)&&Kt(n)?a.jsx(U4,{x:t,y:n,label:s,labelStyle:r,labelShowBg:i,labelBgStyle:o,labelBgPadding:l,labelBgBorderRadius:c}):null]})}function Gv({pos:e,x1:t,y1:n,x2:s,y2:r}){return e===se.Left||e===se.Right?[.5*(t+s),n]:[t,.5*(n+r)]}function Dj({sourceX:e,sourceY:t,sourcePosition:n=se.Bottom,targetX:s,targetY:r,targetPosition:i=se.Top}){const[o,l]=Gv({pos:n,x1:e,y1:t,x2:s,y2:r}),[c,u]=Gv({pos:i,x1:s,y1:r,x2:e,y2:t}),[d,f,h,p]=tj({sourceX:e,sourceY:t,targetX:s,targetY:r,sourceControlX:o,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${o},${l} ${c},${u} ${s},${r}`,d,f,h,p]}function zj(e){return S.memo(({id:t,sourceX:n,sourceY:s,targetX:r,targetY:i,sourcePosition:o,targetPosition:l,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:v,markerEnd:_,markerStart:w,interactionWidth:m})=>{const[y,g,x]=Dj({sourceX:n,sourceY:s,sourcePosition:o,targetX:r,targetY:i,targetPosition:l}),k=e.isInternal?void 0:t;return a.jsx(Uc,{id:k,path:y,labelX:g,labelY:x,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:v,markerEnd:_,markerStart:w,interactionWidth:m})})}const K4=zj({isInternal:!1}),Oj=zj({isInternal:!0});K4.displayName="SimpleBezierEdge";Oj.displayName="SimpleBezierEdgeInternal";function Fj(e){return S.memo(({id:t,sourceX:n,sourceY:s,targetX:r,targetY:i,label:o,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,sourcePosition:p=se.Bottom,targetPosition:v=se.Top,markerEnd:_,markerStart:w,pathOptions:m,interactionWidth:y})=>{const[g,x,k]=Of({sourceX:n,sourceY:s,sourcePosition:p,targetX:r,targetY:i,targetPosition:v,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),j=e.isInternal?void 0:t;return a.jsx(Uc,{id:j,path:g,labelX:x,labelY:k,label:o,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:_,markerStart:w,interactionWidth:y})})}const Vj=Fj({isInternal:!1}),Bj=Fj({isInternal:!0});Vj.displayName="SmoothStepEdge";Bj.displayName="SmoothStepEdgeInternal";function Hj(e){return S.memo(({id:t,...n})=>{var r;const s=e.isInternal?void 0:t;return a.jsx(Vj,{...n,id:s,pathOptions:S.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(r=n.pathOptions)==null?void 0:r.offset])})})}const Y4=Hj({isInternal:!1}),Wj=Hj({isInternal:!0});Y4.displayName="StepEdge";Wj.displayName="StepEdgeInternal";function Uj(e){return S.memo(({id:t,sourceX:n,sourceY:s,targetX:r,targetY:i,label:o,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:v,interactionWidth:_})=>{const[w,m,y]=rj({sourceX:n,sourceY:s,targetX:r,targetY:i}),g=e.isInternal?void 0:t;return a.jsx(Uc,{id:g,path:w,labelX:m,labelY:y,label:o,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:v,interactionWidth:_})})}const q4=Uj({isInternal:!1}),Kj=Uj({isInternal:!0});q4.displayName="StraightEdge";Kj.displayName="StraightEdgeInternal";function Yj(e){return S.memo(({id:t,sourceX:n,sourceY:s,targetX:r,targetY:i,sourcePosition:o=se.Bottom,targetPosition:l=se.Top,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:v,markerEnd:_,markerStart:w,pathOptions:m,interactionWidth:y})=>{const[g,x,k]=nj({sourceX:n,sourceY:s,sourcePosition:o,targetX:r,targetY:i,targetPosition:l,curvature:m==null?void 0:m.curvature}),j=e.isInternal?void 0:t;return a.jsx(Uc,{id:j,path:g,labelX:x,labelY:k,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:v,markerEnd:_,markerStart:w,interactionWidth:y})})}const G4=Yj({isInternal:!1}),qj=Yj({isInternal:!0});G4.displayName="BezierEdge";qj.displayName="BezierEdgeInternal";const Xv={default:qj,straight:Kj,step:Wj,smoothstep:Bj,simplebezier:Oj},Qv={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},X4=(e,t,n)=>n===se.Left?e-t:n===se.Right?e+t:e,Q4=(e,t,n)=>n===se.Top?e-t:n===se.Bottom?e+t:e,Zv="react-flow__edgeupdater";function Jv({position:e,centerX:t,centerY:n,radius:s=10,onMouseDown:r,onMouseEnter:i,onMouseOut:o,type:l}){return a.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:o,className:De([Zv,`${Zv}-${l}`]),cx:X4(t,s,e),cy:Q4(n,s,e),r:s,stroke:"transparent",fill:"transparent"})}function Z4({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:s,sourceY:r,targetX:i,targetY:o,sourcePosition:l,targetPosition:c,onReconnect:u,onReconnectStart:d,onReconnectEnd:f,setReconnecting:h,setUpdateHover:p}){const v=xe(),_=(x,k)=>{if(x.button!==0)return;const{autoPanOnConnect:j,domNode:E,connectionMode:b,connectionRadius:P,lib:R,onConnectStart:I,cancelConnection:O,nodeLookup:V,rfId:N,panBy:T,updateConnection:M}=v.getState(),$=k.type==="target",C=(L,F)=>{h(!1),f==null||f(L,n,k.type,F)},A=L=>u==null?void 0:u(n,L),z=(L,F)=>{h(!0),d==null||d(x,n,k.type),I==null||I(L,F)};Bf.onPointerDown(x.nativeEvent,{autoPanOnConnect:j,connectionMode:b,connectionRadius:P,domNode:E,handleId:k.id,nodeId:k.nodeId,nodeLookup:V,isTarget:$,edgeUpdaterType:k.type,lib:R,flowId:N,cancelConnection:O,panBy:T,isValidConnection:(...L)=>{var F,U;return((U=(F=v.getState()).isValidConnection)==null?void 0:U.call(F,...L))??!0},onConnect:A,onConnectStart:z,onConnectEnd:(...L)=>{var F,U;return(U=(F=v.getState()).onConnectEnd)==null?void 0:U.call(F,...L)},onReconnectEnd:C,updateConnection:M,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:x.currentTarget})},w=x=>_(x,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=x=>_(x,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),y=()=>p(!0),g=()=>p(!1);return a.jsxs(a.Fragment,{children:[(e===!0||e==="source")&&a.jsx(Jv,{position:l,centerX:s,centerY:r,radius:t,onMouseDown:w,onMouseEnter:y,onMouseOut:g,type:"source"}),(e===!0||e==="target")&&a.jsx(Jv,{position:c,centerX:i,centerY:o,radius:t,onMouseDown:m,onMouseEnter:y,onMouseOut:g,type:"target"})]})}function J4({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:s,onClick:r,onDoubleClick:i,onContextMenu:o,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,rfId:v,edgeTypes:_,noPanClassName:w,onError:m,disableKeyboardA11y:y}){let g=ue(J=>J.edgeLookup.get(e));const x=ue(J=>J.defaultEdgeOptions);g=x?{...x,...g}:g;let k=g.type||"default",j=(_==null?void 0:_[k])||Xv[k];j===void 0&&(m==null||m("011",Qt.error011(k)),k="default",j=(_==null?void 0:_.default)||Xv.default);const E=!!(g.focusable||t&&typeof g.focusable>"u"),b=typeof f<"u"&&(g.reconnectable||n&&typeof g.reconnectable>"u"),P=!!(g.selectable||s&&typeof g.selectable>"u"),R=S.useRef(null),[I,O]=S.useState(!1),[V,N]=S.useState(!1),T=xe(),{zIndex:M=g.zIndex,sourceX:$,sourceY:C,targetX:A,targetY:z,sourcePosition:L,targetPosition:F}=ue(S.useCallback(J=>{const X=J.nodeLookup.get(g.source),oe=J.nodeLookup.get(g.target);if(!X||!oe)return Qv;const de=N3({id:e,sourceNode:X,targetNode:oe,sourceHandle:g.sourceHandle||null,targetHandle:g.targetHandle||null,connectionMode:J.connectionMode,onError:m}),fe=y3({selected:g.selected,zIndex:g.zIndex,sourceNode:X,targetNode:oe,elevateOnSelect:J.elevateEdgesOnSelect,zIndexMode:J.zIndexMode});return{...de||Qv,zIndex:fe}},[g.source,g.target,g.sourceHandle,g.targetHandle,g.selected,g.zIndex]),Ee),U=S.useMemo(()=>g.markerStart?`url('#${Ff(g.markerStart,v)}')`:void 0,[g.markerStart,v]),W=S.useMemo(()=>g.markerEnd?`url('#${Ff(g.markerEnd,v)}')`:void 0,[g.markerEnd,v]);if(g.hidden||$===null||C===null||A===null||z===null)return null;const K=J=>{var fe;const{addSelectedEdges:X,unselectNodesAndEdges:oe,multiSelectionActive:de}=T.getState();P&&(T.setState({nodesSelectionActive:!1}),g.selected&&de?(oe({nodes:[],edges:[g]}),(fe=R.current)==null||fe.blur()):X([e])),r&&r(J,g)},G=i?J=>{i(J,{...g})}:void 0,Q=o?J=>{o(J,{...g})}:void 0,H=l?J=>{l(J,{...g})}:void 0,q=c?J=>{c(J,{...g})}:void 0,te=u?J=>{u(J,{...g})}:void 0,ne=J=>{var X;if(!y&&Fk.includes(J.key)&&P){const{unselectNodesAndEdges:oe,addSelectedEdges:de}=T.getState();J.key==="Escape"?((X=R.current)==null||X.blur(),oe({edges:[g]})):de([e])}};return a.jsx("svg",{style:{zIndex:M},children:a.jsxs("g",{className:De(["react-flow__edge",`react-flow__edge-${k}`,g.className,w,{selected:g.selected,animated:g.animated,inactive:!P&&!r,updating:I,selectable:P}]),onClick:K,onDoubleClick:G,onContextMenu:Q,onMouseEnter:H,onMouseMove:q,onMouseLeave:te,onKeyDown:E?ne:void 0,tabIndex:E?0:void 0,role:g.ariaRole??(E?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":g.ariaLabel===null?void 0:g.ariaLabel||`Edge from ${g.source} to ${g.target}`,"aria-describedby":E?`${jj}-${v}`:void 0,ref:R,...g.domAttributes,children:[!V&&a.jsx(j,{id:e,source:g.source,target:g.target,type:g.type,selected:g.selected,animated:g.animated,selectable:P,deletable:g.deletable??!0,label:g.label,labelStyle:g.labelStyle,labelShowBg:g.labelShowBg,labelBgStyle:g.labelBgStyle,labelBgPadding:g.labelBgPadding,labelBgBorderRadius:g.labelBgBorderRadius,sourceX:$,sourceY:C,targetX:A,targetY:z,sourcePosition:L,targetPosition:F,data:g.data,style:g.style,sourceHandleId:g.sourceHandle,targetHandleId:g.targetHandle,markerStart:U,markerEnd:W,pathOptions:"pathOptions"in g?g.pathOptions:void 0,interactionWidth:g.interactionWidth}),b&&a.jsx(Z4,{edge:g,isReconnectable:b,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,sourceX:$,sourceY:C,targetX:A,targetY:z,sourcePosition:L,targetPosition:F,setUpdateHover:O,setReconnecting:N})]})})}var eO=S.memo(J4);const tO=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Gj({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:s,noPanClassName:r,onReconnect:i,onEdgeContextMenu:o,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:v,disableKeyboardA11y:_}){const{edgesFocusable:w,edgesReconnectable:m,elementsSelectable:y,onError:g}=ue(tO,Ee),x=O4(t);return a.jsxs("div",{className:"react-flow__edges",children:[a.jsx(W4,{defaultColor:e,rfId:n}),x.map(k=>a.jsx(eO,{id:k,edgesFocusable:w,edgesReconnectable:m,elementsSelectable:y,noPanClassName:r,onReconnect:i,onContextMenu:o,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,reconnectRadius:f,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:v,rfId:n,onError:g,edgeTypes:s,disableKeyboardA11y:_},k))]})}Gj.displayName="EdgeRenderer";const nO=S.memo(Gj),e0=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function sO({children:e}){const t=xe(),n=S.useRef(null),[s]=S.useState(()=>t.getState().transform);return Ej(()=>{let r=null;const i=()=>{const o=t.getState().transform;r&&o[0]===r[0]&&o[1]===r[1]&&o[2]===r[2]||(r=o,n.current&&(n.current.style.transform=e0(o)))};return i(),t.subscribe(i)},[t]),a.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:e0(s)},children:e})}function rO(e){const t=Zp(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const iO=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function oO(e){const t=ue(iO),n=xe();return S.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function aO(e){return e.connection.inProgress?{...e.connection,to:na(e.connection.to,e.transform)}:{...e.connection}}function lO(e){return aO}function cO(e){const t=lO();return ue(t,Ee)}const uO=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function dO({containerStyle:e,style:t,type:n,component:s}){const{nodesConnectable:r,width:i,height:o,isValid:l,inProgress:c}=ue(uO,Ee);return!(i&&r&&c)?null:a.jsx("svg",{style:e,width:i,height:o,className:"react-flow__connectionline react-flow__container",children:a.jsx("g",{className:De(["react-flow__connection",Hk(l)]),children:a.jsx(Xj,{style:t,type:n,CustomComponent:s,isValid:l})})})}const Xj=({style:e,type:t=es.Bezier,CustomComponent:n,isValid:s})=>{const{inProgress:r,from:i,fromNode:o,fromHandle:l,fromPosition:c,to:u,toNode:d,toHandle:f,toPosition:h,pointer:p}=cO();if(!r)return;if(n)return a.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:l,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:c,toPosition:h,connectionStatus:Hk(s),toNode:d,toHandle:f,pointer:p});let v="";const _={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:u.x,targetY:u.y,targetPosition:h};switch(t){case es.Bezier:[v]=nj(_);break;case es.SimpleBezier:[v]=Dj(_);break;case es.Step:[v]=Of({..._,borderRadius:0});break;case es.SmoothStep:[v]=Of(_);break;default:[v]=rj(_)}return a.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};Xj.displayName="ConnectionLine";const fO={};function t0(e=fO){S.useRef(e),xe(),S.useEffect(()=>{},[e])}function hO(){xe(),S.useRef(!1),S.useEffect(()=>{},[])}function Qj({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:s,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:o,onNodeMouseEnter:l,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:h,onSelectionEnd:p,connectionLineType:v,connectionLineStyle:_,connectionLineComponent:w,connectionLineContainerStyle:m,selectionKeyCode:y,selectionOnDrag:g,selectionMode:x,multiSelectionKeyCode:k,panActivationKeyCode:j,zoomActivationKeyCode:E,deleteKeyCode:b,onlyRenderVisibleElements:P,elementsSelectable:R,defaultViewport:I,translateExtent:O,minZoom:V,maxZoom:N,preventScrolling:T,defaultMarkerColor:M,zoomOnScroll:$,zoomOnPinch:C,panOnScroll:A,panOnScrollSpeed:z,panOnScrollMode:L,zoomOnDoubleClick:F,panOnDrag:U,autoPanOnSelection:W,onPaneClick:K,onPaneMouseEnter:G,onPaneMouseMove:Q,onPaneMouseLeave:H,onPaneScroll:q,onPaneContextMenu:te,paneClickDistance:ne,nodeClickDistance:J,onEdgeContextMenu:X,onEdgeMouseEnter:oe,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:Ce,onReconnect:Nt,onReconnectStart:Jt,onReconnectEnd:en,noDragClassName:vn,noWheelClassName:hi,noPanClassName:_s,disableKeyboardA11y:ks,nodeExtent:Dt,rfId:xn,viewport:wn,onViewportChange:js,nodesDraggable:Yc}){return t0(e),t0(t),hO(),rO(n),oO(wn),a.jsx(T4,{onPaneClick:K,onPaneMouseEnter:G,onPaneMouseMove:Q,onPaneMouseLeave:H,onPaneContextMenu:te,onPaneScroll:q,paneClickDistance:ne,deleteKeyCode:b,selectionKeyCode:y,selectionOnDrag:g,selectionMode:x,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:k,panActivationKeyCode:j,zoomActivationKeyCode:E,elementsSelectable:R,zoomOnScroll:$,zoomOnPinch:C,zoomOnDoubleClick:F,panOnScroll:A,panOnScrollSpeed:z,panOnScrollMode:L,panOnDrag:U,autoPanOnSelection:W,defaultViewport:I,translateExtent:O,minZoom:V,maxZoom:N,onSelectionContextMenu:f,preventScrolling:T,noDragClassName:vn,noWheelClassName:hi,noPanClassName:_s,disableKeyboardA11y:ks,onViewportChange:js,isControlledViewport:!!wn,children:a.jsxs(sO,{children:[a.jsx(nO,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:o,onReconnect:Nt,onReconnectStart:Jt,onReconnectEnd:en,onlyRenderVisibleElements:P,onEdgeContextMenu:X,onEdgeMouseEnter:oe,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:Ce,defaultMarkerColor:M,noPanClassName:_s,disableKeyboardA11y:ks,rfId:xn}),a.jsx(dO,{style:_,type:v,component:w,containerStyle:m}),a.jsx("div",{className:"react-flow__edgelabel-renderer"}),a.jsx(z4,{nodeTypes:e,onNodeClick:s,onNodeDoubleClick:i,onNodeMouseEnter:l,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:J,onlyRenderVisibleElements:P,noPanClassName:_s,noDragClassName:vn,disableKeyboardA11y:ks,nodeExtent:Dt,rfId:xn,nodesDraggable:Yc}),a.jsx("div",{className:"react-flow__viewport-portal"})]})})}Qj.displayName="GraphView";const pO=S.memo(Qj),mO=Gk(),n0=({nodes:e,edges:t,defaultNodes:n,defaultEdges:s,width:r,height:i,fitView:o,fitViewOptions:l,minZoom:c=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:f,zIndexMode:h="basic"}={})=>{const p=new Map,v=new Map,_=new Map,w=new Map,m=s??t??[],y=n??e??[],g=d??[0,0],x=f??Mo;aj(_,w,m);const{nodesInitialized:k}=Vf(y,p,v,{nodeOrigin:g,nodeExtent:x,zIndexMode:h});let j=[0,0,1];if(o&&r&&i){const E=ea(p,{filter:I=>!!((I.width||I.initialWidth)&&(I.height||I.initialHeight))}),{x:b,y:P,zoom:R}=Up(E,r,i,c,u,(l==null?void 0:l.padding)??.1);j=[b,P,R]}return{rfId:"1",width:r??0,height:i??0,transform:j,nodes:y,nodesInitialized:k,nodeLookup:p,parentLookup:v,edges:m,edgeLookup:w,connectionLookup:_,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:s!==void 0,panZoom:null,minZoom:c,maxZoom:u,translateExtent:Mo,nodeExtent:x,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Jr.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:g,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:l,fitViewResolver:null,connection:{...Bk},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:mO,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Vk,zIndexMode:h,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},gO=({nodes:e,edges:t,defaultNodes:n,defaultEdges:s,width:r,height:i,fitView:o,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:h})=>Cz((p,v)=>{async function _(){const{nodeLookup:w,panZoom:m,fitViewOptions:y,fitViewResolver:g,width:x,height:k,minZoom:j,maxZoom:E}=v();m&&(await u3({nodes:w,width:x,height:k,panZoom:m,minZoom:j,maxZoom:E},y),g==null||g.resolve(!0),p({fitViewResolver:null}))}return{...n0({nodes:e,edges:t,width:r,height:i,fitView:o,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:f,defaultNodes:n,defaultEdges:s,zIndexMode:h}),setNodes:w=>{const{nodeLookup:m,parentLookup:y,nodeOrigin:g,elevateNodesOnSelect:x,fitViewQueued:k,zIndexMode:j,nodesSelectionActive:E}=v(),{nodesInitialized:b,hasSelectedNodes:P}=Vf(w,m,y,{nodeOrigin:g,nodeExtent:f,elevateNodesOnSelect:x,checkEquality:!0,zIndexMode:j}),R=E&&P;k&&b?(_(),p({nodes:w,nodesInitialized:b,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:R})):p({nodes:w,nodesInitialized:b,nodesSelectionActive:R})},setEdges:w=>{const{connectionLookup:m,edgeLookup:y}=v();aj(m,y,w),p({edges:w})},setDefaultNodesAndEdges:(w,m)=>{if(w){const{setNodes:y}=v();y(w),p({hasDefaultNodes:!0})}if(m){const{setEdges:y}=v();y(m),p({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:m,nodeLookup:y,parentLookup:g,domNode:x,nodeOrigin:k,nodeExtent:j,debug:E,fitViewQueued:b,zIndexMode:P}=v(),{changes:R,updatedInternals:I}=I3(w,y,g,x,k,j,P);I&&(T3(y,g,{nodeOrigin:k,nodeExtent:j,zIndexMode:P}),b?(_(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),(R==null?void 0:R.length)>0&&(E&&console.log("React Flow: trigger node changes",R),m==null||m(R)))},updateNodePositions:(w,m=!1)=>{const y=[];let g=[];const{nodeLookup:x,triggerNodeChanges:k,connection:j,updateConnection:E,onNodesChangeMiddlewareMap:b}=v();for(const[P,R]of w){const I=x.get(P),O=!!(I!=null&&I.expandParent&&(I!=null&&I.parentId)&&(R!=null&&R.position)),V={id:P,type:"position",position:O?{x:Math.max(0,R.position.x),y:Math.max(0,R.position.y)}:R.position,dragging:m};if(I&&j.inProgress&&j.fromNode.id===I.id){const N=Js(I,j.fromHandle,se.Left,!0);E({...j,from:N})}O&&I.parentId&&y.push({id:P,parentId:I.parentId,rect:{...R.internals.positionAbsolute,width:R.measured.width??0,height:R.measured.height??0}}),g.push(V)}if(y.length>0){const{parentLookup:P,nodeOrigin:R}=v(),I=Qp(y,x,P,R);g.push(...I)}for(const P of b.values())g=P(g);k(g)},triggerNodeChanges:w=>{const{onNodesChange:m,setNodes:y,nodes:g,hasDefaultNodes:x,debug:k}=v();if(w!=null&&w.length){if(x){const j=Gz(w,g);y(j)}k&&console.log("React Flow: trigger node changes",w),m==null||m(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:m,setEdges:y,edges:g,hasDefaultEdges:x,debug:k}=v();if(w!=null&&w.length){if(x){const j=Xz(w,g);y(j)}k&&console.log("React Flow: trigger edge changes",w),m==null||m(w)}},addSelectedNodes:w=>{const{multiSelectionActive:m,edgeLookup:y,nodeLookup:g,triggerNodeChanges:x,triggerEdgeChanges:k}=v();if(m){const j=w.map(E=>As(E,!0));x(j);return}x(Cr(g,new Set([...w]),!0)),k(Cr(y))},addSelectedEdges:w=>{const{multiSelectionActive:m,edgeLookup:y,nodeLookup:g,triggerNodeChanges:x,triggerEdgeChanges:k}=v();if(m){const j=w.map(E=>As(E,!0));k(j);return}k(Cr(y,new Set([...w]))),x(Cr(g,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:m}={})=>{const{edges:y,nodes:g,nodeLookup:x,triggerNodeChanges:k,triggerEdgeChanges:j}=v(),E=w||g,b=m||y,P=[];for(const I of E){if(!I.selected)continue;const O=x.get(I.id);O&&(O.selected=!1),P.push(As(I.id,!1))}const R=[];for(const I of b)I.selected&&R.push(As(I.id,!1));k(P),j(R)},setMinZoom:w=>{const{panZoom:m,maxZoom:y}=v();m==null||m.setScaleExtent([w,y]),p({minZoom:w})},setMaxZoom:w=>{const{panZoom:m,minZoom:y}=v();m==null||m.setScaleExtent([y,w]),p({maxZoom:w})},setTranslateExtent:w=>{var m;(m=v().panZoom)==null||m.setTranslateExtent(w),p({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:m,triggerNodeChanges:y,triggerEdgeChanges:g,elementsSelectable:x}=v();if(!x)return;const k=m.reduce((E,b)=>b.selected?[...E,As(b.id,!1)]:E,[]),j=w.reduce((E,b)=>b.selected?[...E,As(b.id,!1)]:E,[]);y(k),g(j)},setNodeExtent:w=>{const{nodes:m,nodeLookup:y,parentLookup:g,nodeOrigin:x,elevateNodesOnSelect:k,nodeExtent:j,zIndexMode:E}=v();w[0][0]===j[0][0]&&w[0][1]===j[0][1]&&w[1][0]===j[1][0]&&w[1][1]===j[1][1]||(Vf(m,y,g,{nodeOrigin:x,nodeExtent:w,elevateNodesOnSelect:k,checkEquality:!1,zIndexMode:E}),p({nodeExtent:w}))},panBy:w=>{const{transform:m,width:y,height:g,panZoom:x,translateExtent:k}=v();return R3({delta:w,panZoom:x,transform:m,translateExtent:k,width:y,height:g})},setCenter:async(w,m,y)=>{const{width:g,height:x,maxZoom:k,panZoom:j}=v();if(!j)return!1;const E=typeof(y==null?void 0:y.zoom)<"u"?y.zoom:k;return await j.setViewport({x:g/2-w*E,y:x/2-m*E,zoom:E},{duration:y==null?void 0:y.duration,ease:y==null?void 0:y.ease,interpolate:y==null?void 0:y.interpolate}),!0},cancelConnection:()=>{p({connection:{...Bk}})},updateConnection:w=>{p({connection:w})},reset:()=>p({...n0()})}},Object.is);function yO({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:s,initialWidth:r,initialHeight:i,initialMinZoom:o,initialMaxZoom:l,initialFitViewOptions:c,fitView:u,nodeOrigin:d,nodeExtent:f,zIndexMode:h,children:p}){const[v]=S.useState(()=>gO({nodes:e,edges:t,defaultNodes:n,defaultEdges:s,width:r,height:i,fitView:u,minZoom:o,maxZoom:l,fitViewOptions:c,nodeOrigin:d,nodeExtent:f,zIndexMode:h}));return a.jsx(Tz,{value:v,children:a.jsx(t4,{children:a.jsx(g4,{children:p})})})}function vO({children:e,nodes:t,edges:n,defaultNodes:s,defaultEdges:r,width:i,height:o,fitView:l,fitViewOptions:c,minZoom:u,maxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:p}){return S.useContext(Bc)?a.jsx(a.Fragment,{children:e}):a.jsx(yO,{initialNodes:t,initialEdges:n,defaultNodes:s,defaultEdges:r,initialWidth:i,initialHeight:o,fitView:l,initialFitViewOptions:c,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:f,nodeExtent:h,zIndexMode:p,children:e})}const xO={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function wO({nodes:e,edges:t,defaultNodes:n,defaultEdges:s,className:r,nodeTypes:i,edgeTypes:o,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:f,onMoveEnd:h,onConnect:p,onConnectStart:v,onConnectEnd:_,onClickConnectStart:w,onClickConnectEnd:m,onNodeMouseEnter:y,onNodeMouseMove:g,onNodeMouseLeave:x,onNodeContextMenu:k,onNodeDoubleClick:j,onNodeDragStart:E,onNodeDrag:b,onNodeDragStop:P,onNodesDelete:R,onEdgesDelete:I,onDelete:O,onSelectionChange:V,onSelectionDragStart:N,onSelectionDrag:T,onSelectionDragStop:M,onSelectionContextMenu:$,onSelectionStart:C,onSelectionEnd:A,onBeforeDelete:z,connectionMode:L,connectionLineType:F=es.Bezier,connectionLineStyle:U,connectionLineComponent:W,connectionLineContainerStyle:K,deleteKeyCode:G="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:H=!1,selectionMode:q=Io.Full,panActivationKeyCode:te="Space",multiSelectionKeyCode:ne=$o()?"Meta":"Control",zoomActivationKeyCode:J=$o()?"Meta":"Control",snapToGrid:X,snapGrid:oe,onlyRenderVisibleElements:de=!1,selectNodesOnDrag:fe,nodesDraggable:Ce,autoPanOnNodeFocus:Nt,nodesConnectable:Jt,nodesFocusable:en,nodeOrigin:vn=Sj,edgesFocusable:hi,edgesReconnectable:_s,elementsSelectable:ks=!0,defaultViewport:Dt=Bz,minZoom:xn=.5,maxZoom:wn=2,translateExtent:js=Mo,preventScrolling:Yc=!0,nodeExtent:qc,defaultMarkerColor:vS="#b1b1b7",zoomOnScroll:xS=!0,zoomOnPinch:wS=!0,panOnScroll:_S=!1,panOnScrollSpeed:kS=.5,panOnScrollMode:jS=Bs.Free,zoomOnDoubleClick:SS=!0,panOnDrag:NS=!0,onPaneClick:bS,onPaneMouseEnter:ES,onPaneMouseMove:CS,onPaneMouseLeave:TS,onPaneScroll:PS,onPaneContextMenu:AS,paneClickDistance:MS=1,nodeClickDistance:IS=0,children:RS,onReconnect:$S,onReconnectStart:LS,onReconnectEnd:DS,onEdgeContextMenu:zS,onEdgeDoubleClick:OS,onEdgeMouseEnter:FS,onEdgeMouseMove:VS,onEdgeMouseLeave:BS,reconnectRadius:HS=10,onNodesChange:WS,onEdgesChange:US,noDragClassName:KS="nodrag",noWheelClassName:YS="nowheel",noPanClassName:tm="nopan",fitView:nm,fitViewOptions:sm,connectOnClick:qS,attributionPosition:GS,proOptions:XS,defaultEdgeOptions:QS,elevateNodesOnSelect:ZS=!0,elevateEdgesOnSelect:JS=!1,disableKeyboardA11y:rm=!1,autoPanOnConnect:eN,autoPanOnNodeDrag:tN,autoPanOnSelection:nN=!0,autoPanSpeed:sN,connectionRadius:rN,isValidConnection:iN,onError:oN,style:aN,id:im,nodeDragThreshold:lN,connectionDragThreshold:cN,viewport:uN,onViewportChange:dN,width:fN,height:hN,colorMode:pN="light",debug:mN,onScroll:ra,ariaLabelConfig:gN,zIndexMode:om="basic",...yN},vN){const Gc=im||"1",xN=Kz(pN),wN=S.useCallback(am=>{am.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ra==null||ra(am)},[ra]);return a.jsx("div",{"data-testid":"rf__wrapper",...yN,onScroll:wN,style:{...aN,...xO},ref:vN,className:De(["react-flow",r,xN]),id:im,role:"application",children:a.jsxs(vO,{nodes:e,edges:t,width:fN,height:hN,fitView:nm,fitViewOptions:sm,minZoom:xn,maxZoom:wn,nodeOrigin:vn,nodeExtent:qc,zIndexMode:om,children:[a.jsx(Uz,{nodes:e,edges:t,defaultNodes:n,defaultEdges:s,onConnect:p,onConnectStart:v,onConnectEnd:_,onClickConnectStart:w,onClickConnectEnd:m,nodesDraggable:Ce,autoPanOnNodeFocus:Nt,nodesConnectable:Jt,nodesFocusable:en,edgesFocusable:hi,edgesReconnectable:_s,elementsSelectable:ks,elevateNodesOnSelect:ZS,elevateEdgesOnSelect:JS,minZoom:xn,maxZoom:wn,nodeExtent:qc,onNodesChange:WS,onEdgesChange:US,snapToGrid:X,snapGrid:oe,connectionMode:L,translateExtent:js,connectOnClick:qS,defaultEdgeOptions:QS,fitView:nm,fitViewOptions:sm,onNodesDelete:R,onEdgesDelete:I,onDelete:O,onNodeDragStart:E,onNodeDrag:b,onNodeDragStop:P,onSelectionDrag:T,onSelectionDragStart:N,onSelectionDragStop:M,onMove:d,onMoveStart:f,onMoveEnd:h,noPanClassName:tm,nodeOrigin:vn,rfId:Gc,autoPanOnConnect:eN,autoPanOnNodeDrag:tN,autoPanSpeed:sN,onError:oN,connectionRadius:rN,isValidConnection:iN,selectNodesOnDrag:fe,nodeDragThreshold:lN,connectionDragThreshold:cN,onBeforeDelete:z,debug:mN,ariaLabelConfig:gN,zIndexMode:om}),a.jsx(pO,{onInit:u,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:g,onNodeMouseLeave:x,onNodeContextMenu:k,onNodeDoubleClick:j,nodeTypes:i,edgeTypes:o,connectionLineType:F,connectionLineStyle:U,connectionLineComponent:W,connectionLineContainerStyle:K,selectionKeyCode:Q,selectionOnDrag:H,selectionMode:q,deleteKeyCode:G,multiSelectionKeyCode:ne,panActivationKeyCode:te,zoomActivationKeyCode:J,onlyRenderVisibleElements:de,defaultViewport:Dt,translateExtent:js,minZoom:xn,maxZoom:wn,preventScrolling:Yc,zoomOnScroll:xS,zoomOnPinch:wS,zoomOnDoubleClick:SS,panOnScroll:_S,panOnScrollSpeed:kS,panOnScrollMode:jS,panOnDrag:NS,autoPanOnSelection:nN,onPaneClick:bS,onPaneMouseEnter:ES,onPaneMouseMove:CS,onPaneMouseLeave:TS,onPaneScroll:PS,onPaneContextMenu:AS,paneClickDistance:MS,nodeClickDistance:IS,onSelectionContextMenu:$,onSelectionStart:C,onSelectionEnd:A,onReconnect:$S,onReconnectStart:LS,onReconnectEnd:DS,onEdgeContextMenu:zS,onEdgeDoubleClick:OS,onEdgeMouseEnter:FS,onEdgeMouseMove:VS,onEdgeMouseLeave:BS,reconnectRadius:HS,defaultMarkerColor:vS,noDragClassName:KS,noWheelClassName:YS,noPanClassName:tm,rfId:Gc,disableKeyboardA11y:rm,nodeExtent:qc,viewport:uN,onViewportChange:dN,nodesDraggable:Ce}),a.jsx(Vz,{onSelectionChange:V}),RS,a.jsx(Lz,{proOptions:XS,position:GS}),a.jsx($z,{rfId:Gc,disableKeyboardA11y:rm})]})})}var _O=bj(wO);function kO({dimensions:e,lineWidth:t,variant:n,className:s}){return a.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:De(["react-flow__background-pattern",n,s])})}function jO({radius:e,className:t}){return a.jsx("circle",{cx:e,cy:e,r:e,className:De(["react-flow__background-pattern","dots",t])})}var In;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(In||(In={}));const SO={[In.Dots]:1,[In.Lines]:1,[In.Cross]:6},NO=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Zj({id:e,variant:t=In.Dots,gap:n=20,size:s,lineWidth:r=1,offset:i=0,color:o,bgColor:l,style:c,className:u,patternClassName:d}){const f=S.useRef(null),{transform:h,patternId:p}=ue(NO,Ee),v=s||SO[t],_=t===In.Dots,w=t===In.Cross,m=Array.isArray(n)?n:[n,n],y=[m[0]*h[2]||1,m[1]*h[2]||1],g=v*h[2],x=Array.isArray(i)?i:[i,i],k=w?[g,g]:y,j=[x[0]*h[2]||1+k[0]/2,x[1]*h[2]||1+k[1]/2],E=`${p}${e||""}`;return a.jsxs("svg",{className:De(["react-flow__background",u]),style:{...c,...Wc,"--xy-background-color-props":l,"--xy-background-pattern-color-props":o},ref:f,"data-testid":"rf__background",children:[a.jsx("pattern",{id:E,x:h[0]%y[0],y:h[1]%y[1],width:y[0],height:y[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${j[0]},-${j[1]})`,children:_?a.jsx(jO,{radius:g/2,className:d}):a.jsx(kO,{dimensions:k,lineWidth:r,variant:t,className:d})}),a.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${E})`})]})}Zj.displayName="Background";const bO=S.memo(Zj);function EO(){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:a.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function CO(){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:a.jsx("path",{d:"M0 0h32v4.2H0z"})})}function TO(){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:a.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function PO(){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:a.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function AO(){return a.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:a.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Da({children:e,className:t,...n}){return a.jsx("button",{type:"button",className:De(["react-flow__controls-button",t]),...n,children:e})}const MO=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Jj({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:s=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:o,onFitView:l,onInteractiveChange:c,className:u,children:d,position:f="bottom-left",orientation:h="vertical","aria-label":p}){const v=xe(),{isInteractive:_,minZoomReached:w,maxZoomReached:m,ariaLabelConfig:y}=ue(MO,Ee),{zoomIn:g,zoomOut:x,fitView:k}=Zp(),j=()=>{g(),i==null||i()},E=()=>{x(),o==null||o()},b=()=>{k(r),l==null||l()},P=()=>{v.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),c==null||c(!_)},R=h==="horizontal"?"horizontal":"vertical";return a.jsxs(Hc,{className:De(["react-flow__controls",R,u]),position:f,style:e,"data-testid":"rf__controls","aria-label":p??y["controls.ariaLabel"],children:[t&&a.jsxs(a.Fragment,{children:[a.jsx(Da,{onClick:j,className:"react-flow__controls-zoomin",title:y["controls.zoomIn.ariaLabel"],"aria-label":y["controls.zoomIn.ariaLabel"],disabled:m,children:a.jsx(EO,{})}),a.jsx(Da,{onClick:E,className:"react-flow__controls-zoomout",title:y["controls.zoomOut.ariaLabel"],"aria-label":y["controls.zoomOut.ariaLabel"],disabled:w,children:a.jsx(CO,{})})]}),n&&a.jsx(Da,{className:"react-flow__controls-fitview",onClick:b,title:y["controls.fitView.ariaLabel"],"aria-label":y["controls.fitView.ariaLabel"],children:a.jsx(TO,{})}),s&&a.jsx(Da,{className:"react-flow__controls-interactive",onClick:P,title:y["controls.interactive.ariaLabel"],"aria-label":y["controls.interactive.ariaLabel"],children:_?a.jsx(AO,{}):a.jsx(PO,{})}),d]})}Jj.displayName="Controls";const IO=S.memo(Jj);function RO({id:e,x:t,y:n,width:s,height:r,style:i,color:o,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:f,selected:h,onClick:p}){const{background:v,backgroundColor:_}=i||{},w=o||v||_;return a.jsx("rect",{className:De(["react-flow__minimap-node",{selected:h},u]),x:t,y:n,rx:d,ry:d,width:s,height:r,style:{fill:w,stroke:l,strokeWidth:c},shapeRendering:f,onClick:p?m=>p(m,e):void 0})}const $O=S.memo(RO),LO=e=>e.nodes.map(t=>t.id),Gu=e=>e instanceof Function?e:()=>e;function DO({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:s=5,nodeStrokeWidth:r,nodeComponent:i=$O,onClick:o}){const l=ue(LO,Ee),c=Gu(t),u=Gu(e),d=Gu(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return a.jsx(a.Fragment,{children:l.map(h=>a.jsx(OO,{id:h,nodeColorFunc:c,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:s,nodeStrokeWidth:r,NodeComponent:i,onClick:o,shapeRendering:f},h))})}function zO({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:s,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:o,NodeComponent:l,onClick:c}){const{node:u,x:d,y:f,width:h,height:p}=ue(v=>{const _=v.nodeLookup.get(e);if(!_)return{node:void 0,x:0,y:0,width:0,height:0};const w=_.internals.userNode,{x:m,y}=_.internals.positionAbsolute,{width:g,height:x}=yn(w);return{node:w,x:m,y,width:g,height:x}},Ee);return!u||u.hidden||!Xk(u)?null:a.jsx(l,{x:d,y:f,width:h,height:p,style:u.style,selected:!!u.selected,className:s(u),color:t(u),borderRadius:r,strokeColor:n(u),strokeWidth:i,shapeRendering:o,onClick:c,id:u.id})}const OO=S.memo(zO);var FO=S.memo(DO);const VO=200,BO=150,HO=e=>!e.hidden,WO=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Yk(ea(e.nodeLookup,{filter:HO}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},s0=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,UO=(e,t)=>s0(e.viewBB,t.viewBB)&&s0(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,KO="react-flow__minimap-desc";function eS({style:e,className:t,nodeStrokeColor:n,nodeColor:s,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:o,nodeComponent:l,bgColor:c,maskColor:u,maskStrokeColor:d,maskStrokeWidth:f,position:h="bottom-right",onClick:p,onNodeClick:v,pannable:_=!1,zoomable:w=!1,ariaLabel:m,inversePan:y,zoomStep:g=1,offsetScale:x=5}){const k=xe(),j=S.useRef(null),{boundingRect:E,viewBB:b,rfId:P,panZoom:R,translateExtent:I,flowWidth:O,flowHeight:V,ariaLabelConfig:N}=ue(WO,UO),T=(e==null?void 0:e.width)??VO,M=(e==null?void 0:e.height)??BO,$=E.width/T,C=E.height/M,A=Math.max($,C),z=A*T,L=A*M,F=x*A,U=E.x-(z-E.width)/2-F,W=E.y-(L-E.height)/2-F,K=z+F*2,G=L+F*2,Q=`${KO}-${P}`,H=S.useRef(0),q=S.useRef();H.current=A,S.useEffect(()=>{if(j.current&&R)return q.current=H3({domNode:j.current,panZoom:R,getTransform:()=>k.getState().transform,getViewScale:()=>H.current}),()=>{var X;(X=q.current)==null||X.destroy()}},[R]),S.useEffect(()=>{var X;(X=q.current)==null||X.update({translateExtent:I,width:O,height:V,inversePan:y,pannable:_,zoomStep:g,zoomable:w})},[_,w,y,g,I,O,V]);const te=p?X=>{var fe;const[oe,de]=((fe=q.current)==null?void 0:fe.pointer(X))||[0,0];p(X,{x:oe,y:de})}:void 0,ne=v?S.useCallback((X,oe)=>{const de=k.getState().nodeLookup.get(oe).internals.userNode;v(X,de)},[]):void 0,J=m??N["minimap.ariaLabel"];return a.jsx(Hc,{position:h,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*A:void 0,"--xy-minimap-node-background-color-props":typeof s=="string"?s:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:De(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:a.jsxs("svg",{width:T,height:M,viewBox:`${U} ${W} ${K} ${G}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Q,ref:j,onClick:te,children:[J&&a.jsx("title",{id:Q,children:J}),a.jsx(FO,{onClick:ne,nodeColor:s,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:o,nodeComponent:l}),a.jsx("path",{className:"react-flow__minimap-mask",d:`M${U-F},${W-F}h${K+F*2}v${G+F*2}h${-K-F*2}z
|
|
295
|
+
M${b.x},${b.y}h${b.width}v${b.height}h${-b.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}eS.displayName="MiniMap";S.memo(eS);const YO=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,qO={[ni.Line]:"right",[ni.Handle]:"bottom-right"};function GO({nodeId:e,position:t,variant:n=ni.Handle,className:s,style:r=void 0,children:i,color:o,minWidth:l=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:h,autoScale:p=!0,shouldResize:v,onResizeStart:_,onResize:w,onResizeEnd:m}){const y=Aj(),g=typeof e=="string"?e:y,x=xe(),k=S.useRef(null),j=n===ni.Handle,E=ue(S.useCallback(YO(j&&p),[j,p]),Ee),b=S.useRef(null),P=t??qO[n];S.useEffect(()=>{if(!(!k.current||!g))return b.current||(b.current=nz({domNode:k.current,nodeId:g,getStoreItems:()=>{const{nodeLookup:I,transform:O,snapGrid:V,snapToGrid:N,nodeOrigin:T,domNode:M}=x.getState();return{nodeLookup:I,transform:O,snapGrid:V,snapToGrid:N,nodeOrigin:T,paneDomNode:M}},onChange:(I,O)=>{const{triggerNodeChanges:V,nodeLookup:N,parentLookup:T,nodeOrigin:M}=x.getState(),$=[],C={x:I.x,y:I.y},A=N.get(g);if(A&&A.expandParent&&A.parentId){const z=A.origin??M,L=I.width??A.measured.width??0,F=I.height??A.measured.height??0,U={id:A.id,parentId:A.parentId,rect:{width:L,height:F,...Qk({x:I.x??A.position.x,y:I.y??A.position.y},{width:L,height:F},A.parentId,N,z)}},W=Qp([U],N,T,M);$.push(...W),C.x=I.x?Math.max(z[0]*L,I.x):void 0,C.y=I.y?Math.max(z[1]*F,I.y):void 0}if(C.x!==void 0&&C.y!==void 0){const z={id:g,type:"position",position:{...C}};$.push(z)}if(I.width!==void 0&&I.height!==void 0){const L={id:g,type:"dimensions",resizing:!0,setAttributes:h?h==="horizontal"?"width":"height":!0,dimensions:{width:I.width,height:I.height}};$.push(L)}for(const z of O){const L={...z,type:"position"};$.push(L)}V($)},onEnd:({width:I,height:O})=>{const V={id:g,type:"dimensions",resizing:!1,dimensions:{width:I,height:O}};x.getState().triggerNodeChanges([V])}})),b.current.update({controlPosition:P,boundaries:{minWidth:l,minHeight:c,maxWidth:u,maxHeight:d},keepAspectRatio:f,resizeDirection:h,onResizeStart:_,onResize:w,onResizeEnd:m,shouldResize:v}),()=>{var I;(I=b.current)==null||I.destroy()}},[P,l,c,u,d,f,_,w,m,v]);const R=P.split("-");return a.jsx("div",{className:De(["react-flow__resize-control","nodrag",...R,n,s]),ref:k,style:{...r,scale:E,...o&&{[j?"backgroundColor":"borderColor"]:o}},children:i})}S.memo(GO);const XO={llm_only:"AI",claude:"Claude",codex:"Codex",qoder:"Qoder"};function QO(e){return e.requiresAgent?{key:e.engine==="llm_only"?"llm":e.engine,label:XO[e.engine]}:null}function ZO({data:e,selected:t}){var l;const n=e.step,s=QO(n),r=n.status??"idle",i=n.configStatus==="missing",o=((l=n.missingConfigKeys)==null?void 0:l.length)??0;return a.jsxs(Ye.div,{variants:bI,initial:"hidden",animate:"visible",className:`wf-node is-${r}${t?" is-selected":""}`+(i?" is-config-missing":""),style:{"--engine":s?`var(--agent-${s.key})`:"var(--border-strong)"},children:[a.jsx(ri,{type:"target",position:se.Top,className:"wf-node__handle"}),a.jsx("div",{className:"wf-node__bar"}),a.jsxs("div",{className:"wf-node__body",children:[a.jsxs("div",{className:"wf-node__top",children:[s?a.jsx("span",{className:"wf-node__engine",children:s.label}):a.jsx("span",{}),a.jsxs("div",{className:"wf-node__top-right",children:[i&&a.jsxs("span",{className:"wf-node__config-badge",title:`缺 ${o} 项配置`,children:["⚠ ",o]}),n.needsHuman?a.jsx("span",{className:"wf-node__flag wf-node__flag--human",title:"人工审批",children:a.jsx(D,{name:"user",size:11})}):a.jsx("span",{className:"wf-node__flag",title:"自动",children:a.jsx(D,{name:"bolt",size:11})})]})]}),a.jsx("div",{className:"wf-node__name",children:n.name}),a.jsx("div",{className:"wf-node__recipe",children:n.recipe}),i&&a.jsx("div",{className:"wf-node__config-warn",children:"⚠ 缺少参数 · 点击补齐"})]}),a.jsx(ri,{type:"source",position:se.Bottom,className:"wf-node__handle"})]})}const JO={step:ZO};function tS({steps:e,edges:t,selectedId:n,onSelect:s}){const r=S.useMemo(()=>e.map((o,l)=>({id:o.id,type:"step",position:{x:60,y:l*128},data:{step:o},selected:o.id===n,draggable:!0})),[e,n]),i=S.useMemo(()=>t.map(o=>{const l=o.from===n||o.to===n;return{id:`${o.from}-${o.to}`,source:o.from,target:o.to,type:"smoothstep",animated:l,style:{stroke:l?"var(--accent)":"var(--border-strong)",strokeWidth:l?2:1.5}}}),[t,n]);return a.jsx("div",{className:"wf-canvas",children:a.jsxs(_O,{nodes:r,edges:i,nodeTypes:JO,fitView:!0,fitViewOptions:{padding:.25},minZoom:.4,maxZoom:1.5,proOptions:{hideAttribution:!0},onNodeClick:(o,l)=>s(l.id),onPaneClick:()=>s(null),children:[a.jsx(bO,{variant:In.Dots,gap:16,size:1}),a.jsx(IO,{showInteractive:!1})]})})}function r0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,s=Array(t);n<t;n++)s[n]=e[n];return s}function e5(e){if(Array.isArray(e))return e}function t5(e,t,n){return(t=l5(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n5(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var s,r,i,o,l=[],c=!0,u=!1;try{if(i=(n=n.call(e)).next,t!==0)for(;!(c=(s=i.call(n)).done)&&(l.push(s.value),l.length!==t);c=!0);}catch(d){u=!0,r=d}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw r}}return l}}function s5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
296
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function i0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,s)}return n}function o0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?i0(Object(n),!0).forEach(function(s){t5(e,s,n[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i0(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))})}return e}function r5(e,t){if(e==null)return{};var n,s,r=i5(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s<i.length;s++)n=i[s],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function i5(e,t){if(e==null)return{};var n={};for(var s in e)if({}.hasOwnProperty.call(e,s)){if(t.indexOf(s)!==-1)continue;n[s]=e[s]}return n}function o5(e,t){return e5(e)||n5(e,t)||c5(e,t)||s5()}function a5(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var s=n.call(e,t);if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function l5(e){var t=a5(e,"string");return typeof t=="symbol"?t:t+""}function c5(e,t){if(e){if(typeof e=="string")return r0(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r0(e,t):void 0}}function u5(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,s)}return n}function l0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?a0(Object(n),!0).forEach(function(s){u5(e,s,n[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a0(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))})}return e}function d5(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(s){return t.reduceRight(function(r,i){return i(r)},s)}}function Di(e){return function t(){for(var n=this,s=arguments.length,r=new Array(s),i=0;i<s;i++)r[i]=arguments[i];return r.length>=e.length?e.apply(this,r):function(){for(var o=arguments.length,l=new Array(o),c=0;c<o;c++)l[c]=arguments[c];return t.apply(n,[].concat(r,l))}}}function oc(e){return{}.toString.call(e).includes("Object")}function f5(e){return!Object.keys(e).length}function Do(e){return typeof e=="function"}function h5(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function p5(e,t){return oc(t)||fs("changeType"),Object.keys(t).some(function(n){return!h5(e,n)})&&fs("changeField"),t}function m5(e){Do(e)||fs("selectorType")}function g5(e){Do(e)||oc(e)||fs("handlerType"),oc(e)&&Object.values(e).some(function(t){return!Do(t)})&&fs("handlersType")}function y5(e){e||fs("initialIsRequired"),oc(e)||fs("initialType"),f5(e)&&fs("initialContent")}function v5(e,t){throw new Error(e[t]||e.default)}var x5={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},fs=Di(v5)(x5),za={changes:p5,selector:m5,handler:g5,initial:y5};function w5(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};za.initial(e),za.handler(t);var n={current:e},s=Di(j5)(n,t),r=Di(k5)(n),i=Di(za.changes)(e),o=Di(_5)(n);function l(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return za.selector(u),u(n.current)}function c(u){d5(s,r,i,o)(u)}return[l,c]}function _5(e,t){return Do(t)?t(e.current):t}function k5(e,t){return e.current=l0(l0({},e.current),t),t}function j5(e,t,n){return Do(t)?t(e.current):Object.keys(n).forEach(function(s){var r;return(r=t[s])===null||r===void 0?void 0:r.call(t,e.current[s])}),n}var S5={create:w5},N5={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function b5(e){return function t(){for(var n=this,s=arguments.length,r=new Array(s),i=0;i<s;i++)r[i]=arguments[i];return r.length>=e.length?e.apply(this,r):function(){for(var o=arguments.length,l=new Array(o),c=0;c<o;c++)l[c]=arguments[c];return t.apply(n,[].concat(r,l))}}}function E5(e){return{}.toString.call(e).includes("Object")}function C5(e){return e||c0("configIsRequired"),E5(e)||c0("configType"),e.urls?(T5(),{paths:{vs:e.urls.monacoBase}}):e}function T5(){console.warn(nS.deprecation)}function P5(e,t){throw new Error(e[t]||e.default)}var nS={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
297
|
+
You are using deprecated way of configuration.
|
|
298
|
+
|
|
299
|
+
Instead of using
|
|
300
|
+
monaco.config({ urls: { monacoBase: '...' } })
|
|
301
|
+
use
|
|
302
|
+
monaco.config({ paths: { vs: '...' } })
|
|
303
|
+
|
|
304
|
+
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
305
|
+
`},c0=b5(P5)(nS),A5={config:C5},M5=function(){for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return function(r){return n.reduceRight(function(i,o){return o(i)},r)}};function sS(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],sS(e[n],t[n]))}),o0(o0({},e),t)}var I5={type:"cancelation",msg:"operation is manually canceled"};function Xu(e){var t=!1,n=new Promise(function(s,r){e.then(function(i){return t?r(I5):s(i)}),e.catch(r)});return n.cancel=function(){return t=!0},n}var R5=["monaco"],$5=S5.create({config:N5,isInitialized:!1,resolve:null,reject:null,monaco:null}),rS=o5($5,2),sa=rS[0],Kc=rS[1];function L5(e){var t=A5.config(e),n=t.monaco,s=r5(t,R5);Kc(function(r){return{config:sS(r.config,s),monaco:n}})}function D5(){var e=sa(function(t){var n=t.monaco,s=t.isInitialized,r=t.resolve;return{monaco:n,isInitialized:s,resolve:r}});if(!e.isInitialized){if(Kc({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Xu(Qu);if(window.monaco&&window.monaco.editor)return iS(window.monaco),e.resolve(window.monaco),Xu(Qu);M5(z5,F5)(V5)}return Xu(Qu)}function z5(e){return document.body.appendChild(e)}function O5(e){var t=document.createElement("script");return e&&(t.src=e),t}function F5(e){var t=sa(function(s){var r=s.config,i=s.reject;return{config:r,reject:i}}),n=O5("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function V5(){var e=sa(function(n){var s=n.config,r=n.resolve,i=n.reject;return{config:s,resolve:r,reject:i}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var s=n.m||n;iS(s),e.resolve(s)},function(n){e.reject(n)})}function iS(e){sa().monaco||Kc({monaco:e})}function B5(){return sa(function(e){var t=e.monaco;return t})}var Qu=new Promise(function(e,t){return Kc({resolve:e,reject:t})}),oS={config:L5,init:D5,__getMonacoInstance:B5},H5={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},Zu=H5,W5={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},U5=W5;function K5({children:e}){return Ds.createElement("div",{style:U5.container},e)}var Y5=K5,q5=Y5;function G5({width:e,height:t,isEditorReady:n,loading:s,_ref:r,className:i,wrapperProps:o}){return Ds.createElement("section",{style:{...Zu.wrapper,width:e,height:t},...o},!n&&Ds.createElement(q5,null,s),Ds.createElement("div",{ref:r,style:{...Zu.fullWidth,...!n&&Zu.hide},className:i}))}var X5=G5,aS=S.memo(X5);function Q5(e){S.useEffect(e,[])}var lS=Q5;function Z5(e,t,n=!0){let s=S.useRef(!0);S.useEffect(s.current||!n?()=>{s.current=!1}:e,t)}var pt=Z5;function to(){}function Tr(e,t,n,s){return J5(e,s)||eF(e,t,n,s)}function J5(e,t){return e.editor.getModel(cS(e,t))}function eF(e,t,n,s){return e.editor.createModel(t,n,s?cS(e,s):void 0)}function cS(e,t){return e.Uri.parse(t)}function tF({original:e,modified:t,language:n,originalLanguage:s,modifiedLanguage:r,originalModelPath:i,modifiedModelPath:o,keepCurrentOriginalModel:l=!1,keepCurrentModifiedModel:c=!1,theme:u="light",loading:d="Loading...",options:f={},height:h="100%",width:p="100%",className:v,wrapperProps:_={},beforeMount:w=to,onMount:m=to}){let[y,g]=S.useState(!1),[x,k]=S.useState(!0),j=S.useRef(null),E=S.useRef(null),b=S.useRef(null),P=S.useRef(m),R=S.useRef(w),I=S.useRef(!1);lS(()=>{let T=oS.init();return T.then(M=>(E.current=M)&&k(!1)).catch(M=>(M==null?void 0:M.type)!=="cancelation"&&console.error("Monaco initialization: error:",M)),()=>j.current?N():T.cancel()}),pt(()=>{if(j.current&&E.current){let T=j.current.getOriginalEditor(),M=Tr(E.current,e||"",s||n||"text",i||"");M!==T.getModel()&&T.setModel(M)}},[i],y),pt(()=>{if(j.current&&E.current){let T=j.current.getModifiedEditor(),M=Tr(E.current,t||"",r||n||"text",o||"");M!==T.getModel()&&T.setModel(M)}},[o],y),pt(()=>{let T=j.current.getModifiedEditor();T.getOption(E.current.editor.EditorOption.readOnly)?T.setValue(t||""):t!==T.getValue()&&(T.executeEdits("",[{range:T.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),T.pushUndoStop())},[t],y),pt(()=>{var T,M;(M=(T=j.current)==null?void 0:T.getModel())==null||M.original.setValue(e||"")},[e],y),pt(()=>{let{original:T,modified:M}=j.current.getModel();E.current.editor.setModelLanguage(T,s||n||"text"),E.current.editor.setModelLanguage(M,r||n||"text")},[n,s,r],y),pt(()=>{var T;(T=E.current)==null||T.editor.setTheme(u)},[u],y),pt(()=>{var T;(T=j.current)==null||T.updateOptions(f)},[f],y);let O=S.useCallback(()=>{var $;if(!E.current)return;R.current(E.current);let T=Tr(E.current,e||"",s||n||"text",i||""),M=Tr(E.current,t||"",r||n||"text",o||"");($=j.current)==null||$.setModel({original:T,modified:M})},[n,t,r,e,s,i,o]),V=S.useCallback(()=>{var T;!I.current&&b.current&&(j.current=E.current.editor.createDiffEditor(b.current,{automaticLayout:!0,...f}),O(),(T=E.current)==null||T.editor.setTheme(u),g(!0),I.current=!0)},[f,u,O]);S.useEffect(()=>{y&&P.current(j.current,E.current)},[y]),S.useEffect(()=>{!x&&!y&&V()},[x,y,V]);function N(){var M,$,C,A;let T=(M=j.current)==null?void 0:M.getModel();l||(($=T==null?void 0:T.original)==null||$.dispose()),c||((C=T==null?void 0:T.modified)==null||C.dispose()),(A=j.current)==null||A.dispose()}return Ds.createElement(aS,{width:p,height:h,isEditorReady:y,loading:d,_ref:b,className:v,wrapperProps:_})}var nF=tF;S.memo(nF);function sF(e){let t=S.useRef();return S.useEffect(()=>{t.current=e},[e]),t.current}var rF=sF,Oa=new Map;function iF({defaultValue:e,defaultLanguage:t,defaultPath:n,value:s,language:r,path:i,theme:o="light",line:l,loading:c="Loading...",options:u={},overrideServices:d={},saveViewState:f=!0,keepCurrentModel:h=!1,width:p="100%",height:v="100%",className:_,wrapperProps:w={},beforeMount:m=to,onMount:y=to,onChange:g,onValidate:x=to}){let[k,j]=S.useState(!1),[E,b]=S.useState(!0),P=S.useRef(null),R=S.useRef(null),I=S.useRef(null),O=S.useRef(y),V=S.useRef(m),N=S.useRef(),T=S.useRef(s),M=rF(i),$=S.useRef(!1),C=S.useRef(!1);lS(()=>{let L=oS.init();return L.then(F=>(P.current=F)&&b(!1)).catch(F=>(F==null?void 0:F.type)!=="cancelation"&&console.error("Monaco initialization: error:",F)),()=>R.current?z():L.cancel()}),pt(()=>{var F,U,W,K;let L=Tr(P.current,e||s||"",t||r||"",i||n||"");L!==((F=R.current)==null?void 0:F.getModel())&&(f&&Oa.set(M,(U=R.current)==null?void 0:U.saveViewState()),(W=R.current)==null||W.setModel(L),f&&((K=R.current)==null||K.restoreViewState(Oa.get(i))))},[i],k),pt(()=>{var L;(L=R.current)==null||L.updateOptions(u)},[u],k),pt(()=>{!R.current||s===void 0||(R.current.getOption(P.current.editor.EditorOption.readOnly)?R.current.setValue(s):s!==R.current.getValue()&&(C.current=!0,R.current.executeEdits("",[{range:R.current.getModel().getFullModelRange(),text:s,forceMoveMarkers:!0}]),R.current.pushUndoStop(),C.current=!1))},[s],k),pt(()=>{var F,U;let L=(F=R.current)==null?void 0:F.getModel();L&&r&&((U=P.current)==null||U.editor.setModelLanguage(L,r))},[r],k),pt(()=>{var L;l!==void 0&&((L=R.current)==null||L.revealLine(l))},[l],k),pt(()=>{var L;(L=P.current)==null||L.editor.setTheme(o)},[o],k);let A=S.useCallback(()=>{var L;if(!(!I.current||!P.current)&&!$.current){V.current(P.current);let F=i||n,U=Tr(P.current,s||e||"",t||r||"",F||"");R.current=(L=P.current)==null?void 0:L.editor.create(I.current,{model:U,automaticLayout:!0,...u},d),f&&R.current.restoreViewState(Oa.get(F)),P.current.editor.setTheme(o),l!==void 0&&R.current.revealLine(l),j(!0),$.current=!0}},[e,t,n,s,r,i,u,d,f,o,l]);S.useEffect(()=>{k&&O.current(R.current,P.current)},[k]),S.useEffect(()=>{!E&&!k&&A()},[E,k,A]),T.current=s,S.useEffect(()=>{var L,F;k&&g&&((L=N.current)==null||L.dispose(),N.current=(F=R.current)==null?void 0:F.onDidChangeModelContent(U=>{C.current||g(R.current.getValue(),U)}))},[k,g]),S.useEffect(()=>{if(k){let L=P.current.editor.onDidChangeMarkers(F=>{var W;let U=(W=R.current.getModel())==null?void 0:W.uri;if(U&&F.find(K=>K.path===U.path)){let K=P.current.editor.getModelMarkers({resource:U});x==null||x(K)}});return()=>{L==null||L.dispose()}}return()=>{}},[k,x]);function z(){var L,F;(L=N.current)==null||L.dispose(),h?f&&Oa.set(i,R.current.saveViewState()):(F=R.current.getModel())==null||F.dispose(),R.current.dispose()}return Ds.createElement(aS,{width:p,height:v,isEditorReady:k,loading:c,_ref:I,className:_,wrapperProps:w})}var oF=iF,aF=S.memo(oF),lF=aF;const cF={"workflow.yml":"流程编排","aitable-workflow.config.yml":"运行配置","config.yml":"运行配置","coding-agents.config.json":"执行引擎","views.yml":"视图方案"},Tn=oR(),u0=Tn?[{path:"workflow.yml",label:"workflow.yml",lang:"yaml",content:Tn.workflowYml,summary:"流程编排"},{path:"config.yml",label:"config.yml",lang:"yaml",content:Tn.configYml,summary:"运行配置"},...Object.entries(Tn.recipeFiles).map(([e,t])=>({path:`recipes/${e}`,label:e,lang:"typescript",content:t,folder:"recipes",summary:"步骤脚本"}))]:[],uF=Tn?Object.fromEntries(Object.entries(Tn.stepToRecipeFile).map(([e,t])=>[`recipes/${t}`,e])):{};function dF({selectedStepId:e,onPickStep:t}){const n=ee(y=>y.theme),s=ee(y=>y.projectFiles),r=ee(y=>y.workflowFiles),i=ee(y=>y.steps),[o,l]=S.useState("workflow.yml"),[c,u]=S.useState(!1),d=r.length>0?r:s,f=S.useMemo(()=>d.length===0?u0:d.map(y=>{const g=y.path.split("/").pop()??y.path;return{path:y.path,label:g,lang:y.path.endsWith(".ts")?"typescript":"yaml",content:y.content,folder:y.path.includes("/recipes/")||y.path.startsWith("recipes/")?"recipes":void 0,summary:y.path.includes("/recipes/")||y.path.startsWith("recipes/")?"步骤脚本":cF[g]??"项目文件"}}),[d]),h=S.useMemo(()=>d.length===0?(Tn==null?void 0:Tn.stepToRecipeFile)??{}:Object.fromEntries(i.filter(y=>y.recipe).map(y=>{var x;const g=(x=d.find(k=>k.path.endsWith(`${y.recipe}.recipe.ts`)))==null?void 0:x.path;return[y.id,(g==null?void 0:g.replace(/^recipes\//,""))??`${y.recipe}.recipe.ts`]})),[d,i]),p=S.useMemo(()=>d.length===0?uF:Object.fromEntries(Object.entries(h).map(([y,g])=>[g.startsWith("recipes/")?g:`recipes/${g}`,y])),[d.length,h]);S.useEffect(()=>{e&&h[e]&&l(`recipes/${h[e]}`)},[e,h]);const v=S.useMemo(()=>f.find(y=>y.path===o)??f[0]??u0[0],[o,f]),_=f.filter(y=>!y.folder),w=f.filter(y=>y.folder==="recipes");function m(y){l(y),t(p[y]??null)}return a.jsxs("div",{className:`code-panel${c?" tree-collapsed":""}`,children:[!c&&a.jsxs("div",{className:"code-tree",children:[a.jsxs("div",{className:"code-tree__bar",children:[a.jsx("span",{className:"code-tree__heading",children:"文件"}),a.jsx("button",{type:"button",className:"code-tree__toggle",onClick:()=>u(!0),title:"收起文件树",children:a.jsx(D,{name:"chevron-left",size:14})})]}),_.map(y=>a.jsxs("button",{type:"button",className:`code-tree__file${o===y.path?" is-active":""}`,onClick:()=>m(y.path),children:[a.jsx(D,{name:"file",size:13}),a.jsxs("span",{className:"code-tree__file-text",children:[a.jsx("span",{className:"code-tree__file-name",children:y.label}),y.summary?a.jsx("span",{className:"code-tree__file-summary",children:y.summary}):null]})]},y.path)),a.jsxs("div",{className:"code-tree__folder",children:[a.jsx(D,{name:"folder",size:13}),"步骤脚本 recipes"]}),w.map(y=>{const g=p[y.path],x=g&&g===e;return a.jsxs("button",{type:"button",className:`code-tree__file is-nested${o===y.path?" is-active":""}${x?" is-linked":""}`,onClick:()=>m(y.path),children:[a.jsx(D,{name:"file",size:13}),a.jsxs("span",{className:"code-tree__file-text",children:[a.jsx("span",{className:"code-tree__file-name",children:y.label}),y.summary?a.jsx("span",{className:"code-tree__file-summary",children:y.summary}):null]})]},y.path)})]}),c&&a.jsx("button",{type:"button",className:"code-tree__expand",onClick:()=>u(!1),title:"展开文件树",children:a.jsx(D,{name:"chevron-right",size:14})}),a.jsxs("div",{className:"code-editor",children:[a.jsxs("div",{className:"code-editor__head",children:[a.jsx(D,{name:"file",size:13}),a.jsx("span",{children:v.path}),a.jsx("span",{className:"code-editor__lang",children:v.lang})]}),a.jsx("div",{className:"code-editor__body",children:a.jsx(lF,{height:"100%",language:v.lang,value:v.content,theme:n==="dark"?"vs-dark":"light",options:{readOnly:!0,minimap:{enabled:!1},fontSize:12.5,lineHeight:20,scrollBeyondLastLine:!1,renderLineHighlight:"none",padding:{top:10},fontFamily:"ui-monospace, 'SF Mono', Menlo, monospace"},loading:a.jsx("div",{className:"code-editor__loading",children:"加载编辑器…"})},v.path)})]})]})}function fF({step:e,fields:t,values:n,onSave:s,onReset:r}){const[i,o]=S.useState({...n});function l(h,p){o(v=>({...v,[h]:p}))}const c=new Map;for(const h of t){const p=h.group??"通用";c.has(p)||c.set(p,[]),c.get(p).push(h)}const u=t.filter(h=>h.isEnvRef),d=new Map;for(const[h,p]of c){const v=p.filter(_=>!_.isEnvRef);v.length>0&&d.set(h,v)}function f(){s(i)}return a.jsxs("div",{className:"step-config-form",children:[a.jsxs("div",{className:"step-config-form__head",children:[a.jsx(D,{name:"bolt",size:14}),a.jsxs("span",{className:"step-config-form__title",children:["步骤配置 · ",e.name]})]}),a.jsx("div",{className:"step-config-form__meta",children:a.jsxs("span",{className:"step-config-form__recipe",children:["recipe: ",e.recipe]})}),a.jsxs("div",{className:"step-config-form__body",children:[Array.from(d.entries()).map(([h,p])=>a.jsxs("fieldset",{className:"step-config-form__group",children:[a.jsx("legend",{className:"step-config-form__group-title",children:h}),p.map(v=>a.jsx(d0,{field:v,value:i[v.key]??"",onChange:_=>l(v.key,_)},v.key))]},h)),u.length>0&&a.jsxs("fieldset",{className:"step-config-form__group",children:[a.jsx("legend",{className:"step-config-form__group-title",children:"环境变量引用"}),u.map(h=>a.jsxs("div",{className:"step-config-form__env-ref",children:[a.jsxs("span",{className:"step-config-form__env-mapping",children:[h.key," = ","${env.",h.envKey??h.key.toUpperCase(),"}"]}),a.jsx(d0,{field:{...h,label:h.envKey??h.key.toUpperCase(),type:"secret"},value:i[h.envKey??h.key]??"",onChange:p=>l(h.envKey??h.key,p)})]},h.key))]})]}),a.jsxs("div",{className:"step-config-form__foot",children:[r&&a.jsx("button",{type:"button",className:"step-config-form__btn",onClick:r,children:"恢复默认"}),a.jsx("button",{type:"button",className:"primary step-config-form__btn",onClick:f,children:"保存配置"})]})]})}function d0({field:e,value:t,onChange:n}){const s=e.required&&!t.trim(),r=`qf-input${s?" is-required-empty":""}`;return a.jsxs("div",{className:"step-config-form__field",children:[a.jsxs("label",{className:"step-config-form__label",children:[e.label,e.required&&a.jsx("span",{className:"qf-required",children:"*"})]}),e.description&&a.jsx("div",{className:"step-config-form__help",children:e.description}),e.type==="select"&&e.options?a.jsxs("select",{className:`qf-select${s?" is-required-empty":""}`,value:t,onChange:i=>n(i.target.value),children:[a.jsx("option",{value:"",children:"请选择…"}),e.options.map(i=>a.jsx("option",{value:i.value,children:i.label},i.value))]}):e.type==="number"?a.jsx("input",{type:"number",className:r,value:t,placeholder:e.defaultValue,onChange:i=>n(i.target.value)}):e.type==="switch"?a.jsxs("label",{className:"qf-switch",children:[a.jsx("input",{type:"checkbox",role:"switch",checked:t==="true",onChange:i=>n(i.target.checked?"true":"false")}),a.jsx("span",{"aria-hidden":!0})]}):e.type==="secret"?a.jsx("input",{type:"password",className:r,value:t,placeholder:"••••••••",onChange:i=>n(i.target.value)}):a.jsx("input",{type:"text",className:r,value:t,placeholder:e.defaultValue??"",onChange:i=>n(i.target.value)}),s&&a.jsx("span",{className:"step-config-form__required-hint",children:"必填"})]})}function hF(){const e=ee(c=>c.steps),t=ee(c=>c.edges),[n,s]=S.useState(null),[r,i]=S.useState("preview"),o=e.find(c=>c.id===n)??null,l=o?[{key:"model",label:"model",type:"select",group:"AI (ai)",options:[{label:"Qwen3-Mini",value:"qwen3-mini"},{label:"Qwen3.7-Max",value:"qwen3.7-max"},{label:"DeepSeek-V3",value:"deepseek-v3"}]},{key:"engine",label:"engine",type:"select",required:!0,group:"编程引擎 (coding)",options:[{label:"qoder",value:"qoder"},{label:"codex",value:"codex"},{label:"claude",value:"claude"}]},{key:"target_branch",label:"target_branch",type:"text",group:"业务参数",defaultValue:"master"},{key:"api_key",label:"API Key",type:"secret",required:!0,isEnvRef:!0,envKey:"IDEALAB_API_KEY",group:"环境变量引用"}]:[];return a.jsxs("div",{className:"design-workspace design-workspace--tabbed",children:[a.jsxs("div",{className:"dw-tabs",children:[a.jsxs("button",{type:"button",className:`dw-tabs__tab${r==="preview"?" is-active":""}`,onClick:()=>i("preview"),children:[a.jsx(D,{name:"flow",size:13}),"预览"]}),a.jsxs("button",{type:"button",className:`dw-tabs__tab${r==="code"?" is-active":""}`,onClick:()=>i("code"),children:[a.jsx(D,{name:"file",size:13}),"代码"]})]}),r==="preview"?a.jsxs("div",{className:"dw-preview",children:[a.jsx("section",{className:"dw-panel dw-panel--canvas",style:{flex:1,borderRight:o?"1px solid var(--border)":"none"},children:a.jsx(tS,{steps:e,edges:t,selectedId:n,onSelect:s})}),o&&a.jsx(fF,{step:o,fields:l,values:{},onSave:c=>{console.log("保存配置",o.id,c)},onReset:()=>{}})]}):a.jsx("div",{className:"dw-code-view",children:a.jsx(dF,{selectedStepId:n,onPickStep:s})})]})}function uS(e,t){switch(t){case"init":return pF(e);case"design":return dS(e);case"setup":return mF(e);case"adjust":return gF(e);case"test":return yF(e);default:return{ok:!0,missing:[],warnings:[]}}}function pF(e){const t=[],n=[];return Me&&!e.init.selectedMachineId&&t.push({code:"ENGINE_NOT_SELECTED",scope:"project",target:"engine",label:"未选择执行引擎",locate:{stage:"init",panel:"engine",focusField:"selectedMachineId"}}),!Me&&e.init.agentsSelected.length===0&&t.push({code:"AGENT_NOT_SELECTED",scope:"project",target:"agent",label:"未选择 Agent 引擎",locate:{stage:"init",panel:"agent"}}),e.init.roles.length===0&&t.push({code:"NO_ROLE",scope:"project",target:"role",label:"至少配置一个角色,Design 阶段的 recipe 需要绑定 role",locate:{stage:"init",panel:"role"}}),e.init.sop.trim()||n.push({code:"NO_SOP",scope:"project",target:"sop",label:"未填写 SOP,Design 澄清问题会更多",locate:{stage:"init",panel:"sop"}}),{ok:t.length===0,missing:t,warnings:n}}function dS(e){const t=[],n=[];for(const s of e.steps)if(s.configStatus==="missing"&&s.missingConfigKeys)for(const r of s.missingConfigKeys)t.push({code:"STEP_CONFIG_MISSING",scope:"step",target:s.id,label:`${s.name} 缺 ${r}`,locate:{stage:"design",panel:"step-config",focusField:r}});else s.configStatus==="warning"&&n.push({code:"STEP_CONFIG_WARNING",scope:"step",target:s.id,label:`${s.name} 有可选配置未填写`,locate:{stage:"design",panel:"step-config"}});return{ok:t.length===0,missing:t,warnings:n}}function mF(e){const t=[],n=[];return e.stageRuntime.setup.status!=="succeeded"&&t.push({code:"SETUP_NOT_COMPLETE",scope:"project",target:"setup",label:"搭建阶段尚未完成",locate:{stage:"setup",panel:"setup"}}),{ok:t.length===0,missing:t,warnings:n}}function gF(e){return e.stageRuntime.adjust.status==="succeeded"?{ok:!0,missing:[],warnings:[]}:{ok:!1,missing:[{code:"ADJUST_NOT_COMPLETE",scope:"project",target:"adjust",label:"参数调整尚未完成",locate:{stage:"adjust",panel:"adjust"}}],warnings:[]}}function yF(e){const t=[],n=[];return e.stageRuntime.test.status!=="succeeded"&&t.push({code:"TEST_NOT_PASSED",scope:"project",target:"test",label:"试运行尚未通过",locate:{stage:"test",panel:"test"}}),{ok:t.length===0,missing:t,warnings:n}}async function vF(e,t){const n=dS(t),s=await wM(e).catch(()=>null);if(!s)return{ok:n.ok,missing:n.missing,warnings:[...n.warnings,{code:"BACKEND_VALIDATE_UNAVAILABLE",scope:"project",target:"validate",label:"后端校验不可用,仅以前端配置检查为准",locate:{stage:"design",panel:"validate"}}]};const r=[...n.missing];for(const o of s.errors??[])r.push({code:"DESIGN_FILE_INVALID",scope:"workflow",target:"workflow.yml",label:o,locate:{stage:"design",panel:"files"}});const i=[...n.warnings];for(const o of s.warnings??[])i.push({code:"DESIGN_FILE_WARNING",scope:"workflow",target:"workflow.yml",label:o,locate:{stage:"design",panel:"files"}});return{ok:r.length===0,missing:r,warnings:i}}function xF(){var w,m;const e=S.useRef();e.current||(e.current=new Mp);const t=e.current,n=S.useRef(new Set),s=ee(y=>y.steps),r=ee(y=>y.projectFiles),i=ee(y=>y.mode),o=ee(y=>y.projectId),l=ee(y=>y.designStatus),c=ee(y=>y.stageRuntime.design),[u,d]=S.useState(null);async function f(){const y=i==="live"&&o?await vF(o,B.get()):uS(B.get(),"design");if(B.update(g=>({validation:{...g.validation,design:y}})),!y.ok){d(y);return}B.setStage("setup")}function h(){i!=="live"||!o||(B.update(y=>({stageRuntime:{...y.stageRuntime,design:{...y.stageRuntime.design,status:"running",message:"重新生成工作流设计",error:void 0}},designStatus:{phase:"starting",round:null,rounds:null,agentEvents:0,message:"重新连接真实设计服务"}})),Xy(t,o))}S.useEffect(()=>(t.onFormSubmit=(y,g)=>{i!=="live"||y!=="discovery"||!o||(async()=>{try{const x=await CM(o,g);B.update(k=>({designDiscovery:null,stageRuntime:{...k.stageRuntime,design:{status:x.task.status,taskId:x.task.id,checkpoint:x.task.checkpoint,message:x.task.currentAction??"需求澄清已确认,开始生成工作流方案",retryable:!1}}})),await t.run([{kind:"say",text:"收到。我会把这些答案整理成需求摘要,再启动真实 Agent 生成工作流方案。"}]),Xy(t,o)}catch(x){await t.run([{kind:"say",text:`确认需求失败:${x instanceof Error?x.message:String(x)}`}])}})()},()=>{t.onFormSubmit=null}),[t,i,o]),S.useEffect(()=>{var g,x,k;const y=i==="live"?o?`live:${o}:${c.status}:${c.checkpoint??""}`:null:"mock";if(!y||n.current.has(y)){i==="live"&&!o&&!n.current.has("missing-project")&&(n.current.add("missing-project"),t.run([{kind:"say",text:"缺少真实项目工作区,请先返回 Init 阶段完成真实配置。"}]));return}if(n.current.add(y),i==="live"){const j=B.get();if(c.status==="succeeded"||c.checkpoint==="done"){(j.designStatus.phase!=="done"||c.status!=="succeeded")&&(B.update(P=>({designStatus:{phase:"done",round:null,rounds:P.designStatus.rounds,agentEvents:P.designStatus.agentEvents,message:`已恢复当前流程 ${o} 的设计产物`},stageRuntime:{...P.stageRuntime,design:P.stageRuntime.design.status!=="succeeded"?{...P.stageRuntime.design,status:"succeeded",message:"工作流设计完成",retryable:!1}:P.stageRuntime.design}})),t.run([{kind:"say",text:`已恢复当前流程 ${o} 的设计产物,不会重复启动生成任务。右侧可继续查看流程与配置。`}]));return}if(c.status==="blocked"&&c.checkpoint==="discovery_waiting_user"&&j.designDiscovery){t.run([{kind:"say",text:`${j.designDiscovery.summary||c.message||"请确认以下设计约束"}。确认后我会继续生成工作流方案。`},{kind:"form",form:{...j.designDiscovery.form,submitLabel:((g=c.recoveryAction)==null?void 0:g.label)??j.designDiscovery.form.submitLabel??"确认并开始生成"}}]);return}if(c.status==="running"){(j.designDiscovery||j.designStatus.phase==="discovering")&&B.update(b=>({designDiscovery:null,designStatus:b.designStatus.phase==="discovering"?{phase:"starting",round:null,rounds:null,agentEvents:b.designStatus.agentEvents,message:c.message||"真实 Agent 正在生成工作流方案"}:b.designStatus}));return}if(c.status==="failed"){B.set({designDiscovery:null,designStatus:{phase:"error",round:null,rounds:null,agentEvents:0,message:((x=c.error)==null?void 0:x.message)??"真实设计失败,可重新确认后生成"}}),t.run([{kind:"say",text:`${((k=c.error)==null?void 0:k.message)||"真实设计失败"}。请重新生成 Design,系统会保留当前可查看的文件。`}]);return}B.set({designStatus:{phase:"discovering",round:null,rounds:null,agentEvents:0,message:"正在准备需求澄清卡片"}}),(async()=>{try{await t.run([{kind:"say",text:"我会先根据你的 SOP、角色和表格信息预填一张确认卡片,你确认后再启动真实生成。"},{kind:"tool",label:"预填确认问题",detail:"触发方式 / 把关点 / 关键信息",ms:160}]);const b=await EM(o);n.current.add(`live:${o}:${b.task.status}:${b.task.checkpoint??""}`),B.update(P=>{var R;return{designDiscovery:b.discovery,stageRuntime:{...P.stageRuntime,design:{status:b.task.status,taskId:b.task.id,checkpoint:b.task.checkpoint,message:((R=b.task.block)==null?void 0:R.message)??b.task.currentAction??"等待确认需求澄清",block:b.task.block,error:b.task.error,retryable:!0}},designStatus:{phase:"discovering",round:null,rounds:null,agentEvents:0,message:"等待确认需求澄清卡片"}}}),await t.run([{kind:"say",text:`已理解——${b.discovery.summary||"请确认以下设计约束"}。确认后我再开始生成:`},{kind:"form",form:{...b.discovery.form,submitLabel:"确认并开始生成"}}])}catch(b){B.set({designStatus:{phase:"error",round:null,rounds:null,agentEvents:0,message:`需求澄清准备失败:${b instanceof Error?b.message:String(b)}`}}),await t.run([{kind:"say",text:`需求澄清准备失败:${b instanceof Error?b.message:String(b)}`}])}})()}else B.set({designStatus:{phase:"starting",round:null,rounds:null,agentEvents:0,message:"演示设计流程启动中"}}),t.run(pR)},[t,i,o,c.status,c.checkpoint]);const p=r.length>0,v=a.jsxs(a.Fragment,{children:[le&&a.jsx(XI,{projectId:o}),s.length>0||p?a.jsx(hF,{}):i==="live"&&c.status==="failed"?a.jsx("div",{className:"work-body",children:a.jsxs("div",{className:"empty-hint",children:[((w=c.error)==null?void 0:w.message)??c.message,a.jsx("br",{}),a.jsxs("button",{type:"button",className:"primary",style:{marginTop:14},onClick:h,children:[a.jsx(D,{name:"refresh",size:14,color:"#fff"}),((m=c.recoveryAction)==null?void 0:m.label)??"重新生成工作流设计"]})]})}):a.jsx("div",{className:"work-body",children:a.jsx("div",{className:"empty-hint",children:i==="live"?"先确认需求澄清卡片,确认后将启动真实设计生成。":"当前是演示模式:完成左侧确认问题后,将展示示例流程图。"})}),u&&!u.ok&&a.jsx(tk,{title:"无法进入搭建阶段",missing:u.missing,warnings:u.warnings,onClose:()=>d(null),onLocate:y=>{d(null)}})]}),_=()=>l.phase==="done"&&l.rounds!==null?`完成 ${l.rounds} 轮 · ${l.agentEvents} 个 Agent 事件`:l.phase==="round"&&l.round!==null?`第 ${l.round} 轮进行中 · ${l.agentEvents} 个 Agent 事件`:l.phase!=="idle"?l.message:s.length?`${s.length} 步 · ${i==="live"?"真实方案":"演示方案"}`:p?`${r.length} 个文件 · 等待真实设计启动`:i==="live"?"真实生成待启动":"演示待生成";return a.jsx(ql,{chat:t,chatTitle:"工作流设计",chatSubtitle:`需求对齐 → 可视化编排 · ${i==="live"?"真实模式":"演示模式"}`,chatEmptyHint:"agent 正在准备开场问题…",onSend:y=>{t.addUserMessage(y),t.run([{kind:"say",text:"收到,我会据此调整工作流细节。"}])},workHead:a.jsxs("div",{className:"work-head",children:[a.jsx(D,{name:"flow",size:16}),a.jsx("div",{className:"work-head__title",children:"工作流"}),a.jsx("div",{className:"work-head__sub",children:_()}),s.length>0&&a.jsxs("button",{type:"button",className:"primary work-head__cta",onClick:f,children:["进入搭建阶段",a.jsx(D,{name:"chevron-right",size:14,color:"#fff"})]}),i==="live"&&c.status==="failed"&&(s.length>0||p)&&a.jsxs("button",{type:"button",className:"primary work-head__cta",onClick:h,style:{marginLeft:8},children:[a.jsx(D,{name:"refresh",size:14,color:"#fff"}),"重新生成"]})]}),work:v})}const wF=lk();function fS(e){return Mc({id:"init-agents",title:"选择执行引擎",description:"本地已扫描到以下执行引擎,勾选后用于生成和执行工作流。",submitLabel:"确认引擎",questions:[{id:"agents",label:"可用执行引擎",type:"checkbox",required:!0,options:e.map(t=>({label:`${t.name}${t.detected?"":"(未检测)"}`,value:t.id,description:`${t.vendor} · ${t.capabilities.join(" / ")}`})),defaultValue:e.filter(t=>t.selected).map(t=>t.id),help:"未检测到的引擎需先安装 CLI。"}]})}const _F=fS(wF),kF=Mc({id:"init-table",title:"连接 AI 表格",description:"填写目标 Base Id;Table Id 可选,留空将自动新建一张 table。",submitLabel:"连接",questions:[{id:"baseId",label:"Base Id",type:"text",required:!0,placeholder:"如:ZQYprEoWoPLkorKyuBeBDRd9V1waOeDk",defaultValue:uR(),help:"AI 表格所在多维表格(Base)的节点 Id。"},{id:"tableId",label:"Table Id(可选)",type:"text",placeholder:"留空则新建 table",help:"不填时将在该 Base 下新建一张 table。"}]});Mc({id:"init-sop",title:"补充 SOP 指引",description:"SOP 不是越长越好,建议写清楚触发条件、处理步骤、人工把关点、异常升级规则。",submitLabel:"完成配置",questions:[{id:"sop",label:"用户 SOP / 处理规则",type:"textarea",placeholder:`建议格式:
|
|
306
|
+
1. 什么时候触发流程?
|
|
307
|
+
2. 每一步输入什么、产出什么?
|
|
308
|
+
3. 哪些情况必须人工审核?
|
|
309
|
+
4. 超时、失败、风险命中时通知谁?
|
|
310
|
+
5. 哪些话术、动作或自动化行为必须避免?`,help:"可以先写要点,不需要一次写完;后续 design 阶段会再基于场景做澄清。"}]});const Fa=cR(),Wf=[{kind:"say",text:"欢迎!我们先做一次性配置,之后就能反复复用。第一步:扫描本地可用的执行引擎。"},{kind:"tool",label:"扫描本地执行引擎",detail:"Claude Code · Qoder · Codex",ms:900},{kind:"form",form:_F},{kind:"say",text:"引擎已就绪。接下来连接你的 AI 表格 —— 这是工作流读写数据的地方。"},{kind:"form",form:kF},{kind:"tool",label:"校验表格连接",detail:"connected",ms:800},{kind:"say",text:Fa.length>0?"表格已连接。接下来先构建角色。右侧已预置 HR 业务伙伴和法务顾问,你可以直接编辑人设、技能与共享知识库;确认角色后再补充 SOP。":"表格已连接。接下来构建角色。请在右侧添加角色并定义人设与共享知识库。参考示例:HR 业务伙伴、法务顾问。"},{kind:"do",run:()=>{Fa.length!==0&&B.update(e=>{const t=e.init.roles.some(n=>n.name.includes("客服")||n.name.includes("排查")||n.name.includes("质检"));return{init:{...e.init,roles:e.init.roles.length&&!t?e.init.roles:Fa}}})}},{kind:"say",text:Fa.length>0?"角色已预置。请在右侧同一个界面里确认角色人设、技能、知识库,并按需补充 SOP;准备好后点击进入设计阶段。":"准备好后点击「下一步:设计 →」进入设计阶段。"}];function jF(e){const t=e.filter(n=>n.detected).map(n=>n.name);return[{kind:"say",text:"欢迎!我们先做一次性配置,之后就能反复复用。第一步:扫描本机可用的 coding agent。"},{kind:"tool",label:"扫描本机 coding agent",detail:t.join(" · ")||"未检测到已安装的 CLI",ms:400},{kind:"form",form:fS(e)},...Wf.slice(3)]}function SF({roles:e,onChange:t}){var p;const[n,s]=S.useState(((p=e[0])==null?void 0:p.id)??null),r=S.useRef(null),[i,o]=S.useState(null);function l(v,_){t(e.map(w=>w.id===v?{...w,..._}:w))}function c(){const v=`role_${Date.now().toString(36)}`,_={id:v,name:"新角色",persona:"",skills:[],knowledge:[]};t([...e,_]),s(v)}function u(v){t(e.filter(_=>_.id!==v)),n===v&&s(null)}function d(v,_){const w=e.find(m=>m.id===v);w&&l(v,{knowledge:w.knowledge.filter(m=>m!==_)})}function f(v){var _;o(v),(_=r.current)==null||_.click()}function h(v){if(!i||!v.target.files)return;const _=e.find(m=>m.id===i);if(!_)return;const w=new Set(_.knowledge);for(const m of Array.from(v.target.files)){const y=m.webkitRelativePath.split("/");y.length>=1&&w.add(y[0])}l(i,{knowledge:Array.from(w)}),o(null),v.target.value=""}return a.jsxs("div",{className:"role-panel",children:[a.jsx("input",{ref:r,type:"file",style:{display:"none"},webkitdirectory:"",directory:"",multiple:!0,onChange:h}),e.length===0&&a.jsxs("div",{style:{padding:"8px 0"},children:[a.jsx("span",{className:"cfg-muted",children:"暂无角色。点击下方「添加角色」开始配置。"}),a.jsxs("div",{className:"cfg-muted",style:{marginTop:8,fontSize:12,lineHeight:1.6},children:[a.jsx("div",{children:"参考示例:"}),a.jsxs("div",{children:["· ",a.jsx("b",{children:"HR 业务伙伴"})," — 负责员工流程转化、制度核对、入职管理"]}),a.jsxs("div",{children:["· ",a.jsx("b",{children:"法务顾问"})," — 负责合同合规、风险识别、审批把关"]})]})]}),e.map(v=>{const _=n===v.id;return a.jsxs(Ye.div,{className:`role-item${_?" is-open":""}`,variants:yt,initial:"hidden",animate:"visible",layout:!0,children:[a.jsxs("div",{className:"role-item__head",children:[a.jsxs("button",{type:"button",className:"role-item__toggle",onClick:()=>s(_?null:v.id),children:[a.jsx(D,{name:_?"chevron-down":"chevron-right",size:14}),a.jsx("span",{className:"role-item__avatar",children:a.jsx(D,{name:"user",size:13})}),a.jsx("input",{className:"role-item__name",value:v.name,onClick:w=>w.stopPropagation(),onChange:w=>l(v.id,{name:w.target.value}),placeholder:"角色名称"})]}),a.jsxs("span",{className:"role-item__summary",children:[v.knowledge.length," 知识库"]}),a.jsx("button",{type:"button",className:"role-item__remove",title:"删除角色",onClick:()=>u(v.id),children:a.jsx(D,{name:"close",size:13})})]}),_&&a.jsxs("div",{className:"role-item__body",children:[a.jsxs("div",{className:"role-field",children:[a.jsx("label",{className:"role-field__label",children:"人设(Persona)"}),a.jsx("textarea",{className:"qf-textarea role-persona",rows:3,value:v.persona,placeholder:"描述角色定位、职责与语气…",onChange:w=>l(v.id,{persona:w.target.value})})]}),a.jsxs("div",{className:"role-field",children:[a.jsx("label",{className:"role-field__label",children:"共享知识库"}),v.knowledge.length>0&&a.jsx("div",{className:"kb-folder-list",children:v.knowledge.map(w=>a.jsxs("span",{className:"kb-folder-chip",children:[a.jsx(D,{name:"file",size:12}),w,a.jsx("button",{type:"button",className:"kb-folder-chip__remove",onClick:()=>d(v.id,w),children:a.jsx(D,{name:"close",size:10})})]},w))}),a.jsxs("button",{type:"button",className:"kb-folder-pick",onClick:()=>f(v.id),children:[a.jsx(D,{name:"plus",size:14}),"选择本地文件夹"]})]})]})]},v.id)}),a.jsxs("button",{type:"button",className:"role-add",onClick:c,children:[a.jsx(D,{name:"plus",size:14})," 添加角色"]})]})}const NF={claude:"Claude",qoder:"Qoder",codex:"Codex",llm:"LLM"},Uf={claudecode:"Claude",codex:"Codex",qoder:"Qoder",codebuddy:"Codebuddy",opencode:"OpenCode",qwen:"Qwen",deepseek:"DeepSeek",trae:"Trae"};function bF(e){return e==="claudecode"?"claude":e==="codex"?"codex":e==="qoder"?"qoder":null}function Va({icon:e,title:t,done:n,wide:s,children:r}){return a.jsxs("div",{className:`cfg-card${n?" is-done":""}${s?" cfg-card--wide":""}`,children:[a.jsxs("div",{className:"cfg-card__head",children:[a.jsx("span",{className:"cfg-card__icon",children:a.jsx(D,{name:e,size:15})}),a.jsx("span",{className:"cfg-card__title",children:t}),a.jsx("span",{className:`cfg-card__status${n?" is-done":""}`,children:n?a.jsxs(a.Fragment,{children:[a.jsx(D,{name:"check",size:12})," 已配置"]}):"待配置"})]}),a.jsx("div",{className:"cfg-card__body",children:r})]})}function EF({machines:e,selectedId:t,onSelect:n,loading:s,error:r,onRetry:i}){const o=e.filter(c=>c.status==="online"),l=e.filter(c=>c.status==="offline");return s?a.jsx("span",{className:"cfg-muted",children:"正在获取执行引擎列表..."}):r?a.jsxs("div",{className:"engine-empty",children:[a.jsx("div",{className:"engine-empty__text",children:"⚠️ 获取执行引擎列表失败,请检查网络或稍后重试。"}),a.jsx("button",{type:"button",className:"engine-empty__link",onClick:i,children:"重试"})]}):e.length===0?a.jsx("div",{className:"engine-empty",children:a.jsxs("div",{className:"engine-empty__text",children:["⚠️ 没有注册的执行引擎。请先前往",a.jsx("button",{type:"button",className:"engine-empty__link",onClick:()=>B.setStage("engines"),children:"执行引擎管理"}),"注册 daemon 机器。"]})}):o.length===0?a.jsxs("div",{className:"engine-empty",children:[a.jsxs("div",{className:"engine-empty__text",children:["⚠️ 没有在线的执行引擎(共 ",e.length," 台已注册)。请启动 daemon 反连。"]}),a.jsx("button",{type:"button",className:"engine-empty__link",onClick:()=>B.setStage("engines"),children:"前往执行引擎管理"})]}):a.jsxs("div",{className:"engine-selector",children:[o.length>0&&a.jsxs("div",{className:"engine-selector__group",children:[a.jsxs("div",{className:"engine-selector__label",children:["在线 (",o.length,")"]}),o.map(c=>{const u=(c.runtimes??[]).map(bF).filter(d=>d!==null);return a.jsxs("button",{type:"button",className:`engine-option${t===c.machineId?" is-selected":""}`,onClick:()=>n(c.machineId,u),children:[a.jsx("span",{className:"machine-status machine-status--online"}),a.jsxs("span",{className:"engine-option__info",children:[a.jsx("span",{className:"engine-option__name",children:c.displayName||c.name}),a.jsxs("span",{className:"engine-option__caps",children:[c.runtimes.map(d=>Uf[d]??d).join(" · "),c.hasDws&&" · dws ✓"]})]}),t===c.machineId&&a.jsx(D,{name:"check",size:14,color:"var(--accent)"})]},c.machineId)})]}),l.length>0&&a.jsxs("div",{className:"engine-selector__group",children:[a.jsxs("div",{className:"engine-selector__label",children:["离线 (",l.length,")"]}),l.map(c=>a.jsxs("div",{className:"engine-option engine-option--disabled",children:[a.jsx("span",{className:"machine-status machine-status--offline"}),a.jsxs("span",{className:"engine-option__info",children:[a.jsx("span",{className:"engine-option__name",children:c.displayName||c.name}),a.jsx("span",{className:"engine-option__caps",children:"离线 · 不可选"})]})]},c.machineId))]})]})}function CF(){const e=S.useRef();e.current||(e.current=new Mp);const t=e.current,n=S.useRef(!1),s=ee(N=>N.init);ee(N=>N.mode);const r=ee(N=>N.projectId),[i,o]=S.useState(!1),[l,c]=S.useState(!1),u=ee(N=>N.stageRuntime.init.status==="succeeded"),[d,f]=S.useState([]),[h,p]=S.useState(Me),[v,_]=S.useState(!1),[w,m]=S.useState(lk()),y=S.useCallback(async()=>{p(!0);try{const N=await Ip();f(N),_(!1)}catch{_(!0)}finally{p(!1)}},[]);S.useEffect(()=>{Me&&y()},[y]);const g=d.find(N=>N.machineId===s.selectedMachineId&&N.status==="online"),x=Me&&!h&&!!s.selectedMachineId&&!g,k=Me?!h&&!!g&&s.agentsSelected.length>0:!0;S.useEffect(()=>{if(t.onFormSubmit=(N,T)=>{N==="init-agents"?B.update(M=>({init:{...M.init,agentsSelected:T.agents??[]}})):N==="init-table"?B.update(M=>({init:{...M.init,tableConnected:!0,tableBaseId:String(T.baseId??""),tableId:String(T.tableId??"")}})):N==="init-sop"&&B.update(M=>({init:{...M.init,sop:String(T.sop??"")}}))},!n.current){n.current=!0;const N=B.get().stageRuntime.init.status==="succeeded";le&&N?t.run([{kind:"say",text:"配置已完成,可直接进入设计阶段。"}]):Me?t.run([{kind:"say",text:"请在右侧选择执行引擎,然后继续完成后续配置。"}]):le?(async()=>{const T=await lR();m(T),await t.run(jF(T))})():t.run(Wf)}return()=>{t.onFormSubmit=null}},[t]);const j=S.useRef("");S.useEffect(()=>{if(!Me||!k||!g||j.current===g.machineId)return;j.current=g.machineId;const N=Wf.slice(3),T=`${g.displayName||g.name}(${g.runtimes.map(M=>Uf[M]??M).join(" · ")}${g.hasDws?" · dws ✓":""})`;t.run([{kind:"say",text:`✅ 执行引擎已选定:${T}
|
|
311
|
+
|
|
312
|
+
接下来配置 AI 表格、模型服务、角色和 SOP。`},...N])},[k,g,t]);const E=s.agentsSelected.length>0,b=le?k&&E&&s.roles.length>0:s.roles.length>0,[P,R]=S.useState(null);function I(N,T){B.update($=>({init:{...$.init,selectedMachineId:N,agentsSelected:T}}));const M=B.get().projectId;M&&N1(M,N)}async function O(){const N=uS(B.get(),"init");if(B.update(T=>({validation:{...T.validation,init:N}})),!N.ok){R(N);return}if(c(!0),le){o(!0);try{await S1();let T=r;T||(await t.run([{kind:"tool",label:"创建真实项目工作区",detail:".sandbox/projects",ms:360}]),T=(await j1()).id,B.set({projectId:T,steps:[],edges:[],fields:[],views:[],tableUrl:null,projectFiles:[],designDiscovery:null,tickets:[],logs:[]})),await t.run([{kind:"tool",label:"写入真实配置",detail:"config / roles / recipes",ms:420}]);const M={...B.get().init,machineId:B.get().init.selectedMachineId||void 0},$=await NM(T,M);B.set({projects:Eo(B.get().projects,$.project),projectId:$.project.id,projectFiles:$.files,steps:[],edges:[],fields:[],views:[],tableUrl:null,designDiscovery:null,tickets:[],logs:[]}),B.update(C=>({stageRuntime:{...C.stageRuntime,init:{status:"succeeded",message:"配置已完成",retryable:!1}}})),await t.run([{kind:"say",text:$.warnings.length?`真实配置已生成。注意:${$.warnings[0]}`:"真实配置已生成:config、coding agent 配置和 roles 都已落盘。"}])}catch(T){await t.run([{kind:"say",text:`真实 init 失败:${T instanceof Error?T.message:String(T)}`}]),o(!1),c(!1);return}o(!1)}B.setStage("design")}const V=l?a.jsx("div",{className:"work-body",style:{padding:16},children:a.jsx("div",{className:"empty-hint",children:le?"正在写入真实配置并准备进入设计阶段…":"正在进入设计阶段…"})}):a.jsxs("div",{className:"work-body",style:{padding:16},children:[a.jsxs("div",{className:"cfg-grid",children:[Me&&a.jsx(Va,{icon:"bolt",title:"执行引擎",done:k,children:k&&g?a.jsxs("div",{className:"engine-selected",children:[a.jsx("span",{className:"machine-status machine-status--online"}),a.jsx("span",{children:g.displayName||g.name}),a.jsx("span",{className:"cfg-muted",style:{marginLeft:8},children:g.runtimes.map(N=>Uf[N]??N).join(" · ")}),a.jsx("button",{type:"button",className:"engine-change-btn",onClick:()=>{B.update(N=>({init:{...N.init,selectedMachineId:"",agentsSelected:[]}})),j.current=""},children:"更换"})]}):a.jsxs(a.Fragment,{children:[x&&a.jsx("div",{className:"engine-empty",children:a.jsxs("div",{className:"engine-empty__text",children:["⚠️ 此前绑定的执行引擎当前不可用(已离线或被移除),请重新选择或前往",a.jsx("button",{type:"button",className:"engine-empty__link",onClick:()=>B.setStage("engines"),children:"执行引擎管理"}),"。"]})}),a.jsx(EF,{machines:d,selectedId:s.selectedMachineId,onSelect:I,loading:h,error:v,onRetry:()=>void y()})]})}),!Me&&a.jsx(Va,{icon:"robot",title:"Agent 引擎",done:E,children:E?a.jsx("div",{className:"agent-chips",children:s.agentsSelected.map(N=>a.jsxs("span",{className:"agent-chip",style:{"--c":`var(--agent-${N})`},children:[a.jsx("span",{className:"agent-chip__dot"}),NF[N]]},N))}):a.jsxs("span",{className:"cfg-muted",children:["待扫描 · ",w.filter(N=>N.detected).length," 个已检测"]})}),a.jsx(Va,{icon:"user",title:"角色",done:s.roles.length>0,wide:!0,children:a.jsx(SF,{roles:s.roles,onChange:N=>B.update(T=>({init:{...T.init,roles:N}}))})}),a.jsx(Va,{icon:"file",title:"SOP 指引",done:!!s.sop,wide:!0,children:a.jsxs("div",{className:"role-field",children:[a.jsx("label",{className:"role-field__label",children:"用户 SOP / 处理规则(可选)"}),a.jsx("textarea",{className:"qf-textarea role-persona",rows:5,value:s.sop,placeholder:`建议格式:
|
|
313
|
+
1. 什么时候触发流程?
|
|
314
|
+
2. 每一步输入什么、产出什么?
|
|
315
|
+
3. 哪些情况必须人工审核?
|
|
316
|
+
4. 超时、失败、风险命中时通知谁?
|
|
317
|
+
5. 哪些话术、动作或自动化行为必须避免?`,onChange:N=>B.update(T=>({init:{...T.init,sop:N.target.value}}))}),a.jsx("span",{className:"cfg-muted",children:"可以先写要点,不需要一次写完;Design 阶段会继续澄清。"})]})}),b||u?a.jsxs("div",{className:"cfg-cta",children:[a.jsxs("div",{className:"cfg-cta__text",children:[a.jsx(D,{name:"check",size:16}),"配置完成,可以进入设计阶段"]}),a.jsx("button",{type:"button",className:"primary cfg-cta__btn",onClick:()=>void O(),disabled:i,children:i?"写入配置中...":"下一步:设计 →"})]}):a.jsxs("div",{className:"cfg-cta cfg-cta--pending",children:[a.jsxs("div",{className:"cfg-cta__text cfg-cta__text--pending",children:[a.jsx(D,{name:"warn",size:16}),s.roles.length===0?"请至少添加一个角色后继续":"请完成上方配置后继续"]}),a.jsx("button",{type:"button",className:"primary cfg-cta__btn",disabled:!0,children:"下一步:设计 →"})]})]}),P&&!P.ok&&a.jsx(tk,{title:"无法进入设计阶段",missing:P.missing,warnings:P.warnings,onClose:()=>R(null),onLocate:N=>{R(null)}})]});return a.jsx(ql,{chat:t,chatTitle:"一次性配置向导",chatSubtitle:`${Me?"执行引擎 · ":""}角色 · SOP · ${le?"真实模式":"演示模式"}`,work:V})}const Rn=fR(),em=(Rn==null?void 0:Rn.fields)??[],Ju=(Rn==null?void 0:Rn.views)??[],f0=em.filter(e=>e.group==="business"),h0=em.filter(e=>e.group==="process");function p0(e){return[{kind:"do",run:()=>B.update(t=>({fields:[...t.fields,e]}))},{kind:"wait",ms:130}]}function TF(e){return[{kind:"do",run:()=>B.update(t=>({views:[...t.views,e]}))},{kind:"wait",ms:260}]}const PF=[{kind:"say",text:"开始搭建演示 AI 表格。我会依次创建字段、视图,并绑定事件源。"},{kind:"todo",items:["创建业务字段","创建流程字段","创建视图","绑定事件源 · 生成链接"]},{kind:"tool",label:"创建业务字段",detail:`${f0.length} 个`,ms:520},...f0.flatMap(p0),{kind:"todo-advance"},{kind:"tool",label:"创建流程字段",detail:`${h0.length} 个`,ms:520},...h0.flatMap(p0),{kind:"todo-advance"},{kind:"tool",label:"创建视图",detail:`${Ju.length} 个`,ms:520},...Ju.flatMap(TF),{kind:"todo-advance"},{kind:"tool",label:"绑定事件源 · 新记录触发",detail:"on_record_created",ms:760},{kind:"do",run:()=>{if(!Rn)return;const e=B.get().init,t=e.tableBaseId||Rn.tableBaseId,n=e.tableId||Rn.tableSheetId;B.set({tableUrl:ok(t,n)})}},{kind:"todo-advance"},{kind:"say",text:`搭建完成:${em.length} 字段 · ${Ju.length} 视图已就绪,事件源已绑定。可打开 AI 表格,或进入「运行」阶段启动工作流。`}];function m0(e){return e.isLive?String(e.current):`${e.current}/${e.mockTotal}`}const AF={grid:"表格",kanban:"看板",calendar:"日历",form:"表单",gantt:"甘特"},g0={text:"文本",single_select:"单选",user:"成员",datetime:"日期",number:"数字"};function MF(){var O,V,N,T,M,$;const e=S.useRef();e.current||(e.current=new Mp);const t=e.current,n=S.useRef(!1),[s,r]=S.useState(!1),[i,o]=S.useState(""),[l,c]=S.useState(!1),u=ee(C=>C.fields),d=ee(C=>C.views),f=ee(C=>C.tableUrl),h=ee(C=>C.mode),p=ee(C=>C.projectId),v=ee(C=>C.stageRuntime.design),_=ee(C=>C.stageRuntime.setup),w=ee(C=>C.projectFiles.some(A=>A.path==="workflow.yml")),m=ee(C=>C.steps.length>0),y=h==="live",g=!y||v.status==="succeeded"||w||m;S.useEffect(()=>{n.current||!g||(n.current=!0,t.run([{kind:"say",text:"工作流已就绪。准备好后点击右侧「开始搭建」,我会自动创建 AI 表格的字段与视图。"}]))},[t,g]),S.useEffect(()=>{(_.status==="blocked"||_.status==="failed"||_.status==="succeeded")&&r(!1)},[_.status]);function x(){if(h==="live"&&!g){t.run([{kind:"say",text:"当前流程还没有完成设计,请先回到设计阶段生成 workflow 和 recipes。"}]);return}const C=_.status==="blocked"||_.status==="failed";if(!(_.status==="running"||s&&!C)){if(r(!0),h==="live"){p?(B.update(A=>({stageRuntime:{...A.stageRuntime,setup:{...A.stageRuntime.setup,status:"running",message:_.status==="blocked"?"重新检查授权并继续搭建":"开始搭建真实 AI 表格结构"}}})),Qy(t,p).finally(()=>r(!1))):(r(!1),t.run([{kind:"say",text:"缺少真实项目工作区,请先返回 Init 阶段完成真实配置。"}]));return}t.run(PF).finally(()=>r(!1))}}async function k(){const C=i.trim();if(!(!p||!C||l||s&&_.status==="running")){c(!0);try{const A=await bM(p,C);B.update(z=>({projectFiles:A.files,init:{...z.init,tableConnected:!0,tableId:C},stageRuntime:{...z.stageRuntime,setup:{...A.state.stageRuntime.setup,status:"running",message:`已写回 Table Id:${C},继续创建字段与视图`}}})),await t.run([{kind:"say",text:`已写回 Table Id:${C},继续搭建字段与视图。`}]),r(!0),await Qy(t,p)}catch(A){const z=A instanceof Error?A.message:String(A);await t.run([{kind:"say",text:`写回 Table Id 失败:${z}`}]),B.update(L=>({stageRuntime:{...L.stageRuntime,setup:{...L.stageRuntime.setup,status:"failed",message:z,retryable:!0,error:{code:"TABLE_ID_UPDATE_FAILED",message:z,retryable:!0}}}}))}finally{c(!1),r(!1)}}}const j=u.filter(C=>C.group==="business"),E=u.filter(C=>C.group==="process"),b=h==="live"?_.status==="succeeded":!!f||_.status==="succeeded",P=s||_.status!=="idle"||b,R=h==="live"&&_.status==="failed"&&((O=_.error)==null?void 0:O.code)==="TABLE_ID_NOT_RETURNED";if(!g)return a.jsx(ql,{chat:t,chatTitle:"AI 表格搭建",chatSubtitle:"创建字段 · 视图 · 绑定事件源",chatEmptyHint:"当前流程尚未到达搭建阶段",onSend:C=>{t.addUserMessage(C),t.run([{kind:"say",text:"当前流程还没有完成设计,请先回到设计阶段生成工作流。"}])},workHead:a.jsxs("div",{className:"work-head",children:[a.jsx(D,{name:"table",size:16}),a.jsx("div",{className:"work-head__title",children:"AI 表格"}),a.jsx("div",{className:"work-head__sub",children:"未到达"})]}),work:a.jsx("div",{className:"work-body setup-theater",children:a.jsxs("div",{className:"setup-intro",children:[a.jsx("div",{className:"setup-intro__icon",children:a.jsx(D,{name:"flow",size:30,color:"#fff"})}),a.jsx("h3",{className:"setup-intro__title",children:"当前流程尚未完成设计"}),a.jsx("p",{className:"setup-intro__desc",children:"搭建阶段必须使用当前流程实例生成的 workflow 和 recipes。请先回到设计阶段完成真实工作流生成。"}),a.jsxs("button",{type:"button",className:"primary setup-intro__cta",onClick:()=>B.setStage("design"),children:[a.jsx(D,{name:"chevron-right",size:15,color:"#fff"}),"返回设计阶段"]})]})})});const I=a.jsx("div",{className:"work-body setup-theater",children:P?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"setup-section",children:[a.jsxs("div",{className:"setup-section__head",children:[a.jsx(D,{name:_.status==="blocked"||_.status==="failed"?"sparkle":"table",size:14}),_.status==="blocked"?"等待授权":_.status==="failed"?"搭建失败":_.status==="succeeded"?"搭建完成":"搭建进度"]}),a.jsx("p",{className:"setup-intro__desc",children:_.message}),((V=_.block)==null?void 0:V.help)&&a.jsx("p",{className:"setup-intro__desc",children:_.block.help}),R&&a.jsxs("div",{className:"setup-recovery-card",children:[a.jsx("div",{className:"setup-recovery-card__title",children:"如果数据表已创建,请填入 Table Id 后继续"}),a.jsx("p",{className:"setup-recovery-card__desc",children:"当前失败点在建表返回值解析,直接重试可能会重复失败。请先到 AI 表格确认目标数据表,复制 table_id 后继续创建字段与视图。"}),a.jsxs("div",{className:"setup-recovery-card__form",children:[a.jsx("input",{value:i,onChange:C=>o(C.target.value),placeholder:"例如:tblxxxxxxxxxxxx","aria-label":"Table Id"}),a.jsxs("button",{type:"button",className:"primary",onClick:()=>{k()},disabled:!i.trim()||l||s&&_.status==="running",children:[a.jsx(D,{name:"play",size:15,color:"#fff"}),l?"保存中…":"保存并继续搭建"]})]})]}),(_.status==="blocked"||_.status==="failed")&&a.jsxs("button",{type:"button",className:"primary setup-intro__cta",onClick:x,children:[a.jsx(D,{name:"play",size:15,color:"#fff"}),((N=_.recoveryAction)==null?void 0:N.label)??((T=_.block)==null?void 0:T.actionLabel)??"重试搭建"]})]}),b&&a.jsxs(Ye.div,{className:"table-link-card",variants:yt,initial:"hidden",animate:"visible",children:[a.jsxs("div",{className:"table-link-card__info",children:[a.jsx("span",{className:"table-link-card__badge",children:a.jsx(D,{name:"check",size:13,color:"#fff"})}),a.jsxs("div",{children:[a.jsx("div",{className:"table-link-card__title",children:"AI 表格已就绪"}),a.jsxs("div",{className:"table-link-card__sub",children:[u.length," 字段 · ",d.length," 视图 · 事件源已绑定"]})]})]}),a.jsxs("a",{className:"primary table-link-card__open",href:f??"#",target:"_blank",rel:"noreferrer",children:[a.jsx(D,{name:"link",size:14,color:"#fff"}),"打开 AI 表格"]})]}),a.jsxs("div",{className:"setup-section",children:[a.jsxs("div",{className:"setup-section__head",children:[a.jsx(D,{name:"table",size:14}),"字段",a.jsx("span",{className:"setup-section__count",children:m0({current:u.length,mockTotal:((M=Du())==null?void 0:M.fieldCount)??0,isLive:y})})]}),j.length>0&&a.jsx("div",{className:"setup-group-label",children:"业务字段"}),a.jsx("div",{className:"field-grid",children:j.map(C=>a.jsxs(Ye.div,{className:"field-chip",variants:yt,initial:"hidden",animate:"visible",children:[a.jsx("span",{className:"field-chip__name",children:C.name}),a.jsx("span",{className:"field-chip__type",children:g0[C.type]??C.type})]},C.id))}),E.length>0&&a.jsx("div",{className:"setup-group-label",children:"流程字段"}),a.jsx("div",{className:"field-grid",children:E.map(C=>a.jsxs(Ye.div,{className:"field-chip field-chip--process",variants:yt,initial:"hidden",animate:"visible",children:[a.jsx("span",{className:"field-chip__name",children:C.name}),a.jsx("span",{className:"field-chip__type",children:g0[C.type]??C.type})]},C.id))})]}),d.length>0&&a.jsxs("div",{className:"setup-section",children:[a.jsxs("div",{className:"setup-section__head",children:[a.jsx(D,{name:"flow",size:14}),"视图",a.jsx("span",{className:"setup-section__count",children:m0({current:d.length,mockTotal:(($=Du())==null?void 0:$.viewCount)??0,isLive:y})})]}),a.jsx("div",{className:"view-grid",children:d.map(C=>a.jsxs(Ye.div,{className:"view-card",variants:yt,initial:"hidden",animate:"visible",children:[a.jsx("span",{className:`view-card__kind view-card__kind--${C.kind}`,children:AF[C.kind]}),a.jsx("div",{className:"view-card__name",children:C.name}),a.jsx("div",{className:"view-card__desc",children:C.desc})]},C.id))})]}),b&&a.jsxs("div",{className:"cfg-cta",children:[a.jsxs("div",{className:"cfg-cta__text",children:[a.jsx(D,{name:"check",size:16}),"表格搭建完成,可进入试运行验证流程。"]}),a.jsxs("button",{type:"button",className:"primary",onClick:()=>B.setStage("test"),children:["进入试运行",a.jsx(D,{name:"chevron-right",size:15,color:"#fff"})]})]})]}):a.jsxs("div",{className:"setup-intro",children:[a.jsx("div",{className:"setup-intro__icon",children:a.jsx(D,{name:"table",size:30,color:"#fff"})}),a.jsx("h3",{className:"setup-intro__title",children:h==="live"?"搭建真实 AI 表格结构":"搭建演示 AI 表格结构"}),a.jsx("p",{className:"setup-intro__desc",children:h==="live"?"将根据真实工作流方案创建字段与视图,并绑定新记录触发方式。":(()=>{const C=Du();return`将创建 ${(C==null?void 0:C.fieldCount)??0} 个示例字段、${(C==null?void 0:C.viewCount)??0} 个示例视图,并绑定新记录触发方式。`})()}),a.jsxs("button",{type:"button",className:"primary setup-intro__cta",onClick:x,children:[a.jsx(D,{name:"play",size:15,color:"#fff"}),"开始搭建"]})]})});return a.jsx(ql,{chat:t,chatTitle:"AI 表格搭建",chatSubtitle:"创建字段 · 视图 · 绑定事件源",chatEmptyHint:"agent 正在准备建表…",onSend:C=>{t.addUserMessage(C),t.run([{kind:"say",text:"好的,我会据此调整表结构。"}])},workHead:a.jsxs("div",{className:"work-head",children:[a.jsx(D,{name:"table",size:16}),a.jsx("div",{className:"work-head__title",children:"AI 表格"}),a.jsx("div",{className:"work-head__sub",children:b?"已就绪":_.status==="blocked"?"等待授权":_.status==="failed"?"可重试":P?"搭建中":"待搭建"})]}),work:I})}const ed=e=>new Promise(t=>setTimeout(t,e));async function IF(e,t,n){for(let s=0;s<e.length;s++){if(n!=null&&n.aborted)return;const r=e[s];if(t({type:"step-start",stepIndex:s,step:r}),await ed(300),n!=null&&n.aborted||(t({type:"step-ai",stepIndex:s,step:r}),await ed(500),n!=null&&n.aborted)||(t({type:"step-done",stepIndex:s,step:r}),s<e.length-1&&(await ed(400),n!=null&&n.aborted)))return}t({type:"all-done",stepIndex:e.length-1})}const RF={info:"dot",ai:"sparkle",ok:"check",warn:"warn",error:"close"};function $F(){const e=ee(w=>w.steps),t=ee(w=>w.mode);ee(w=>w.projectId);const n=ee(w=>w.stageRuntime.setup);ee(w=>w.stageRuntime.test);const s=ee(w=>w.tableUrl),i=!(t==="live")||n.status==="succeeded",[o,l]=S.useState("guide"),[c,u]=S.useState([]),[d,f]=S.useState(-1),[h,p]=S.useState(null),v=S.useRef(null);if(!i)return a.jsx("div",{className:"split split--chatonly",children:a.jsxs("div",{className:"split__work",children:[a.jsxs("div",{className:"work-head",children:[a.jsx(D,{name:"sparkle",size:16}),a.jsx("div",{className:"work-head__title",children:"试运行"}),a.jsx("div",{className:"work-head__sub",children:"未到达"})]}),a.jsx("div",{className:"work-body",children:a.jsxs("div",{className:"test-intro",children:[a.jsx("div",{className:"test-intro__icon",children:a.jsx(D,{name:"table",size:28,color:"#fff"})}),a.jsx("h3",{className:"test-intro__title",children:"当前流程尚未完成搭建"}),a.jsx("p",{className:"test-intro__desc",children:"试运行阶段必须基于已搭建完成的 AI 表格。请先完成搭建阶段。"}),a.jsxs("button",{type:"button",className:"primary test-intro__cta",onClick:()=>B.setStage("setup"),children:[a.jsx(D,{name:"chevron-right",size:15,color:"#fff"}),"返回搭建阶段"]})]})})]})});async function _(){var m;l("running"),u([]),f(0),p(null),(m=v.current)==null||m.abort();const w=new AbortController;v.current=w,await IF(e,y=>{y.type==="step-start"?(f(y.stepIndex),u(g=>[...g,{id:`log_${y.step.id}_start_${Date.now().toString(36)}`,ts:Date.now(),ticketId:"test",stepId:y.step.id,level:"info",text:`开始执行步骤: ${y.step.name}`}])):y.type==="step-ai"?u(g=>[...g,{id:`log_${y.step.id}_ai_${Date.now().toString(36)}`,ts:Date.now(),ticketId:"test",stepId:y.step.id,level:y.step.requiresAgent?"ai":"info",text:y.step.requiresAgent?`AI Agent 执行 ${y.step.recipe}...`:`自动处理 ${y.step.recipe}...`}]):y.type==="step-done"?u(g=>[...g,{id:`log_${y.step.id}_done_${Date.now().toString(36)}`,ts:Date.now(),ticketId:"test",stepId:y.step.id,level:"ok",text:`步骤 ${y.step.name} 完成`}]):y.type==="all-done"&&(l("success"),f(-1),B.update(g=>({stageRuntime:{...g.stageRuntime,test:{status:"succeeded",message:"试运行通过",retryable:!1}}})),u(g=>[...g,{id:`log_test_done_${Date.now().toString(36)}`,ts:Date.now(),ticketId:"test",stepId:"test",level:"ok",text:"全部步骤执行成功,试运行通过!"}]))},w.signal)}return a.jsxs("div",{className:"test-stage",children:[a.jsxs("div",{className:"test-main",children:[a.jsxs("div",{className:"test-main__head",children:[a.jsx(D,{name:"sparkle",size:16}),a.jsx("div",{className:"work-head__title",children:"试运行"}),a.jsx("div",{className:"work-head__sub",children:o==="guide"?"待开始":o==="running"?"执行中":o==="success"?"通过":"失败"}),o==="success"&&a.jsxs("button",{type:"button",className:"primary work-head__cta",onClick:()=>B.setStage("run"),children:["进入正式运行",a.jsx(D,{name:"chevron-right",size:14,color:"#fff"})]})]}),o==="guide"&&a.jsxs("div",{className:"test-guide",children:[a.jsx("div",{className:"test-guide__icon",children:a.jsx(D,{name:"sparkle",size:30,color:"#fff"})}),a.jsx("h3",{className:"test-guide__title",children:"用一条真实记录验证整条流程"}),a.jsxs("div",{className:"test-guide__steps",children:[a.jsxs("div",{className:"test-guide__step",children:[a.jsx("span",{className:"test-guide__step-num",children:"1"}),a.jsx("span",{children:"打开 AI 表格"}),a.jsxs("a",{className:"test-guide__link",href:s??"#",target:"_blank",rel:"noreferrer",children:[a.jsx(D,{name:"link",size:12})," 打开表格"]})]}),a.jsxs("div",{className:"test-guide__step",children:[a.jsx("span",{className:"test-guide__step-num",children:"2"}),a.jsx("span",{children:"新增一条记录,填写必选字段"})]}),a.jsxs("div",{className:"test-guide__step",children:[a.jsx("span",{className:"test-guide__step-num",children:"3"}),a.jsx("span",{children:"回到这里点「开始试运行」"})]})]}),a.jsxs("button",{type:"button",className:"primary test-guide__cta",onClick:()=>void _(),children:[a.jsx(D,{name:"play",size:15,color:"#fff"}),"开始试运行"]})]}),o==="success"&&a.jsxs("div",{className:"test-result test-result--success",children:[a.jsx("span",{className:"test-result__icon test-result__icon--success",children:a.jsx(D,{name:"check",size:24,color:"#fff"})}),a.jsx("h3",{className:"test-result__title",children:"试运行通过"}),a.jsxs("p",{className:"test-result__desc",children:["全部 ",e.length," 个步骤执行成功。可以进入正式运行阶段。"]}),a.jsxs("button",{type:"button",className:"primary test-result__cta",onClick:()=>B.setStage("run"),children:["进入正式运行",a.jsx(D,{name:"chevron-right",size:14,color:"#fff"})]})]}),o==="failed"&&h&&a.jsxs("div",{className:"test-result test-result--failed",children:[a.jsx("span",{className:"test-result__icon test-result__icon--failed",children:a.jsx(D,{name:"close",size:24,color:"#fff"})}),a.jsxs("h3",{className:"test-result__title",children:["试运行在「",h.step.name,"」步骤失败"]}),a.jsx("p",{className:"test-result__desc",children:h.reason}),a.jsxs("div",{className:"test-result__actions",children:[a.jsx("button",{type:"button",className:"test-result__btn",onClick:()=>{l("guide")},children:"查看完整日志"}),a.jsx("button",{type:"button",className:"primary test-result__btn",onClick:()=>B.setStage("design"),children:"去修正该步骤配置 →"})]})]})]}),a.jsxs("div",{className:"test-flow",children:[a.jsx("div",{className:"test-flow__head",children:"步骤流转"}),a.jsx("div",{className:"step-chain",children:e.map((w,m)=>{const y=o==="success"||m<d?"done":m===d?"active":"pending";return a.jsxs("div",{className:`chain-node is-${y}`,children:[m>0&&a.jsx("div",{className:`chain-node__line is-${y}`}),a.jsxs("div",{className:"chain-node__row",children:[a.jsx("span",{className:"chain-node__dot",children:y==="done"?a.jsx(D,{name:"check",size:12,color:"#fff"}):y==="active"?a.jsx("span",{className:"chain-node__pulse"}):a.jsx("span",{className:"chain-node__idle"})}),a.jsxs("div",{className:"chain-node__body",children:[a.jsxs("div",{className:"chain-node__name",children:[a.jsx("span",{className:"chain-node__label",children:w.name}),w.requiresAgent&&a.jsx("span",{className:"chain-node__engine",style:{"--c":"var(--agent-llm)"},children:"AI"}),!w.requiresAgent&&a.jsx("span",{className:"pill pill--muted",children:"自动"})]}),a.jsx("div",{className:"chain-node__recipe",children:w.recipe})]})]})]},w.id)})})]}),a.jsxs("div",{className:"test-logs",children:[a.jsxs("div",{className:"test-logs__head",children:[a.jsx(D,{name:"file",size:14}),"试运行日志"]}),a.jsx("div",{className:"test-logs__body",children:c.length===0?a.jsx("div",{className:"empty-hint",style:{padding:20},children:"点击「开始试运行」后,这里会显示实时执行日志"}):a.jsx(qi,{initial:!1,children:c.map(w=>{var m;return a.jsxs(Ye.div,{layout:!0,variants:yt,initial:"hidden",animate:"visible",className:`log-line log-line--${w.level}`,children:[a.jsx("span",{className:"log-line__icon",children:a.jsx(D,{name:RF[w.level],size:11})}),a.jsxs("div",{className:"log-line__content",children:[a.jsx("span",{className:"log-line__step",children:((m=e.find(y=>y.id===w.stepId))==null?void 0:m.name)??w.stepId}),a.jsx("span",{className:"log-line__text",children:w.text})]})]},w.id)})})})]})]})}const LF={classify:[{level:"info",text:"读取工单「{title}」标题与问题描述"},{level:"ai",text:"调用分类模型判定问题类型与紧急程度…"},{level:"ok",text:"判定为「{category}」· {priority}"}],investigate:[{level:"info",text:"检索知识库与历史相似工单"},{level:"ai",text:"Qoder 分析根因,生成排查路径…"},{level:"ok",text:"定位可能原因,产出解决方案草案"}],draft_reply:[{level:"info",text:"载入解决方案与客户「{customer}」信息"},{level:"ai",text:"以「亲和友好」语气生成回复草稿…"},{level:"ok",text:"回复草稿已生成,进入质检"}],quality_check:[{level:"warn",text:"命中人工审核卡点,暂停等待复核"},{level:"info",text:"请在步骤卡片点击「通过」或「驳回」"}],send_reply:[{level:"ai",text:"渲染最终回复并校验敏感词…"},{level:"ok",text:"已发送给客户「{customer}」,工单关闭"}]},DF=[{level:"warn",text:"人工驳回,退回「草拟回复」重写"},{level:"ai",text:"参考驳回意见重新生成回复…"},{level:"ok",text:"新草稿已生成,再次送审"}],zF={classify:1400,investigate:2e3,draft_reply:1700,quality_check:0,send_reply:1400},OF=3200,FF=520;function VF(e,t){return e.replace("{title}",t.title).replace("{customer}",t.customer).replace("{category}",t.category).replace("{priority}",t.priority)}const Or=ak(),BF=(Or==null?void 0:Or.steps)??[],td=(Or==null?void 0:Or.incomingTickets)??[],nd=e=>new Promise(t=>setTimeout(t,e));let HF=0;const y0=e=>`${e}_${(HF++).toString(36)}`;class WF{constructor(){$e(this,"state",{running:!1,arrived:0,total:td.length});$e(this,"listeners",new Set);$e(this,"approvals",new Map);$e(this,"subscribe",t=>(this.listeners.add(t),()=>this.listeners.delete(t)));$e(this,"getState",()=>this.state)}emit(){this.listeners.forEach(t=>t())}set(t){this.state={...this.state,...t},this.emit()}log(t,n,s,r){B.appendLog({id:y0("log"),ts:Date.now(),ticketId:t,stepId:n,level:s,text:r})}start(){this.state.running||(this.set({running:!0}),this.spawn())}isAwaiting(t){return this.approvals.has(t)}approve(t){var n;(n=this.approvals.get(t))==null||n(!0)}reject(t){var n;(n=this.approvals.get(t))==null||n(!1)}async spawn(){for(let t=0;t<td.length;t++){if(!this.state.running)return;const n=td[t],s={id:y0("tk"),title:n.title,customer:n.customer,category:n.category,priority:n.priority,status:"todo",currentStepId:null,doneStepIds:[],createdAt:Date.now()};B.addTicket(s),this.set({arrived:this.state.arrived+1}),this.process(s.id,n),await nd(OF)}}markDone(t,n){const s=B.get().tickets.find(r=>r.id===t);s&&B.updateTicket(t,{doneStepIds:[...s.doneStepIds,n]})}async streamLogs(t,n,s,r){for(const i of r){if(!this.state.running)return;this.log(t,n,i.level,VF(i.text,s)),await nd(FF)}}async process(t,n){for(const s of BF){if(!this.state.running)return;const r=s.needsHuman?"review":"running";if(B.updateTicket(t,{currentStepId:s.id,status:r}),await this.streamLogs(t,s.id,n,LF[s.id]??[]),s.needsHuman){let i=!1;for(;!i&&this.state.running;)if(i=await this.awaitApproval(t),!i){B.updateTicket(t,{currentStepId:"draft_reply",status:"running"});const o=B.get().tickets.find(l=>l.id===t);o&&B.updateTicket(t,{doneStepIds:o.doneStepIds.filter(l=>l!=="draft_reply")}),await this.streamLogs(t,"draft_reply",n,DF),this.markDone(t,"draft_reply"),B.updateTicket(t,{currentStepId:s.id,status:"review"})}if(!this.state.running)return}else await nd(zF[s.id]??1200);this.markDone(t,s.id)}B.updateTicket(t,{status:"done",currentStepId:null})}awaitApproval(t){return new Promise(n=>{this.approvals.set(t,s=>{this.approvals.delete(t),this.emit(),n(s)}),this.emit()})}stop(){this.set({running:!1}),this.approvals.forEach(t=>t(!0)),this.approvals.clear()}}function UF(e){return S.useSyncExternalStore(e.subscribe,e.getState,e.getState)}const v0={todo:{label:"待处理",cls:"muted"},running:{label:"处理中",cls:"blue"},review:{label:"审核中",cls:"amber"},done:{label:"已完成",cls:"green"},blocked:{label:"受阻",cls:"red"}},x0={info:"dot",ai:"sparkle",ok:"check",warn:"warn",error:"close"};function w0(e,t){return e.doneStepIds.includes(t)?"done":e.currentStepId===t?"active":"pending"}function KF(){const e=S.useRef();e.current||(e.current=new WF);const t=e.current,n=UF(t),s=S.useRef(null),r=ee(N=>N.tickets),i=ee(N=>N.logs),o=ee(N=>N.steps),l=ee(N=>N.mode),c=ee(N=>N.projectId),u=ee(N=>N.projectFiles),d=ee(N=>N.edges),f=ee(N=>N.stageRuntime.setup),h=ee(N=>N.stageRuntime.run),[p,v]=S.useState(null),[_,w]=S.useState(!1),[m,y]=S.useState(null),g=l==="live",x=!g||f.status==="succeeded",k=ak(),j=g||o.length>0?o:(k==null?void 0:k.steps)??[],E=g?h.status==="running"||_:n.running;S.useEffect(()=>{!p&&r.length>0&&v(r[r.length-1].id)},[r,p]);const b=r.find(N=>N.id===p)??null,P=i.filter(N=>N.ticketId===p),R=S.useRef(null);S.useEffect(()=>{var N;(N=R.current)==null||N.scrollIntoView({behavior:"smooth",block:"end"})},[P.length]),S.useEffect(()=>{if(!g||!x||!c||h.status!=="running"||_)return;const N=`${c}:${h.taskId??"run"}`;s.current!==N&&(s.current=N,w(!0),Zy(c).finally(()=>w(!1)))},[j,g,_,c,h.status,h.taskId,x]);const I={running:r.filter(N=>N.status==="running").length,review:r.filter(N=>N.status==="review").length,done:r.filter(N=>N.status==="done").length};function O(){if(g){if(!x)return;if(!c){B.set({stageRuntime:{...B.get().stageRuntime,run:{status:"failed",checkpoint:"preflight",message:"缺少真实项目工作区,请先从配置阶段重新进入真实设计。",retryable:!0}},logs:[{id:"log_missing_project",ts:Date.now(),ticketId:"run",stepId:"run",level:"error",text:"缺少真实项目工作区,请先从配置阶段重新进入真实设计。"}]});return}if(j.length===0){B.set({stageRuntime:{...B.get().stageRuntime,run:{status:"failed",checkpoint:"preflight",message:"当前流程没有可运行的真实 workflow,请先返回设计阶段重新生成。",retryable:!0}},logs:[{id:"log_missing_workflow",ts:Date.now(),ticketId:"run",stepId:"run",level:"error",text:"当前流程没有可运行的真实 workflow,请先返回设计阶段重新生成。"}]});return}w(!0),Zy(c).finally(()=>w(!1));return}t.start()}async function V(N,T){if(!(!c||m)){y(T);try{const M=await MM(c,N,T);B.update($=>({...Tc({projectId:c,files:u,projectState:M,workflow:{steps:j,edges:d},fallbackStage:"run"}),stage:$.stage}))}catch(M){const $=M instanceof Error?M.message:String(M);B.appendLog({id:`human_action_${Date.now().toString(36)}`,ts:Date.now(),ticketId:N,stepId:(b==null?void 0:b.currentStepId)??"run",level:"error",text:$})}finally{y(null)}}}if(g&&x){const N=i.filter(A=>A.ticketId==="run"),T=b??r[0]??null,M=T?i.filter(A=>A.ticketId===T.id):N,$=h.status==="running"?"blue":h.status==="succeeded"?"green":h.status==="failed"?"red":"muted",C=h.status==="running"?"监听中":h.status==="failed"?"启动失败":h.status==="succeeded"?"已停止":"待启动";return a.jsxs("div",{className:"run-stage run-stage--live",children:[a.jsxs("div",{className:"run-board",children:[a.jsxs("div",{className:"run-board__head",children:[a.jsx("span",{children:"运行记录"}),a.jsx("span",{className:"run-board__stat",children:r.length?`${r.length} 条`:C})]}),a.jsx("div",{className:"run-board__list",children:r.length===0?a.jsxs("button",{type:"button",className:"ticket-card is-selected",children:[a.jsxs("div",{className:"ticket-card__top",children:[a.jsx("span",{className:`pill pill--${$}`,children:C}),a.jsx("span",{className:"ticket-card__prio",children:h.checkpoint??"run"})]}),a.jsx("div",{className:"ticket-card__title",children:"真实 AI 表格监听"}),a.jsx("div",{className:"ticket-card__meta",children:h.message}),a.jsxs("div",{className:"ticket-card__progress",children:[j.length," 个步骤 · ",N.length," 条服务日志"]})]}):r.map(A=>{const z=v0[A.status];return a.jsxs("button",{type:"button",className:`ticket-card${A.id===(T==null?void 0:T.id)?" is-selected":""}`,onClick:()=>v(A.id),children:[a.jsxs("div",{className:"ticket-card__top",children:[a.jsx("span",{className:`pill pill--${z.cls}`,children:z.label}),a.jsx("span",{className:"ticket-card__prio",children:A.priority})]}),a.jsx("div",{className:"ticket-card__title",children:A.title}),a.jsxs("div",{className:"ticket-card__meta",children:[A.customer," · ",A.category]}),a.jsxs("div",{className:"ticket-card__progress",children:[A.doneStepIds.length,"/",j.length," 步",A.status==="review"&&a.jsx("span",{className:"ticket-card__await",children:"待人工"})]})]},A.id)})}),a.jsx("div",{className:"run-board__foot",children:a.jsxs("button",{type:"button",className:"primary run-live-start",onClick:O,disabled:E,children:[a.jsx(D,{name:"play",size:15,color:"#fff"}),h.status==="failed"?"重试运行":E?"运行中":"启动运行"]})})]}),a.jsxs("div",{className:"run-flow",children:[a.jsxs("div",{className:"run-flow__head",children:[a.jsx("div",{className:"run-flow__title",children:T?T.title:"当前 workflow"}),a.jsx("div",{className:"run-flow__sub",children:T?`${T.customer} · ${T.status}`:`${j.length} 个真实步骤 · ${h.checkpoint??"未启动"}`})]}),a.jsx("div",{className:"step-chain",children:j.map((A,z)=>{const L=!!T&&T.status==="review"&&T.currentStepId===A.id&&!!A.needsHuman,F=T?L?"active":w0(T,A.id):h.status==="succeeded"?"done":h.status==="running"&&z===0?"active":"pending";return a.jsxs("div",{className:`chain-node is-${F}`,children:[z>0&&a.jsx("div",{className:`chain-node__line is-${F}`}),a.jsxs("div",{className:"chain-node__row",children:[a.jsx("span",{className:"chain-node__dot",children:F==="done"?a.jsx(D,{name:"check",size:12,color:"#fff"}):F==="active"?a.jsx("span",{className:"chain-node__pulse"}):a.jsx("span",{className:"chain-node__idle"})}),a.jsxs("div",{className:"chain-node__body",children:[a.jsxs("div",{className:"chain-node__name",children:[a.jsx("span",{className:"chain-node__label",children:A.name}),A.requiresAgent&&a.jsx("span",{className:"chain-node__engine",style:{"--c":"var(--agent-llm)"},children:"AI"}),A.needsHuman&&a.jsx("span",{className:"pill pill--amber",children:"人工"}),!A.requiresAgent&&!A.needsHuman&&a.jsx("span",{className:"pill pill--muted",children:"自动"})]}),a.jsx("div",{className:"chain-node__recipe",children:A.recipe||"自动处理"}),L&&a.jsxs("div",{className:"chain-node__approve",children:[a.jsxs("button",{type:"button",className:"primary btn-approve",disabled:m!==null,onClick:()=>void V(T.id,"confirm"),children:[a.jsx(D,{name:"check",size:13,color:"#fff"})," 确认发送"]}),a.jsxs("button",{type:"button",className:"btn-reject",disabled:m!==null,onClick:()=>void V(T.id,"terminate"),children:[a.jsx(D,{name:"close",size:13})," 终止流程"]})]})]})]})]},A.id)})})]}),a.jsxs("div",{className:"run-logs",children:[a.jsxs("div",{className:"run-logs__head",children:[a.jsx(D,{name:"file",size:14}),T?"记录执行日志":"真实运行日志",a.jsx("span",{className:"run-logs__sub",children:(T==null?void 0:T.title)??h.checkpoint??"run"})]}),a.jsx("div",{className:"run-logs__body",children:M.length===0?a.jsx("div",{className:"empty-hint",style:{padding:20},children:T?"等待该记录的执行日志…":"启动后这里会显示服务端 SSE 返回的真实运行日志"}):a.jsx(qi,{initial:!1,children:M.map(A=>{var z;return a.jsxs(Ye.div,{layout:!0,variants:yt,initial:"hidden",animate:"visible",className:`log-line log-line--${A.level}`,children:[a.jsx("span",{className:"log-line__icon",children:a.jsx(D,{name:x0[A.level],size:11})}),a.jsxs("div",{className:"log-line__content",children:[a.jsx("span",{className:"log-line__step",children:((z=j.find(L=>L.id===A.stepId))==null?void 0:z.name)??A.stepId}),a.jsx("span",{className:"log-line__text",children:A.text})]})]},A.id)})})})]})]})}return x?!E&&r.length===0?a.jsx("div",{className:"split split--chatonly",children:a.jsxs("div",{className:"split__work",children:[a.jsxs("div",{className:"work-head",children:[a.jsx(D,{name:"play",size:16}),a.jsx("div",{className:"work-head__title",children:"运行监控"}),a.jsx("div",{className:"work-head__sub",children:"待启动"})]}),a.jsx("div",{className:"work-body",children:a.jsxs("div",{className:"run-intro",children:[a.jsx("div",{className:"run-intro__icon",children:a.jsx(D,{name:"play",size:28,color:"#fff"})}),a.jsx("h3",{className:"run-intro__title",children:g?"启动真实工作流":"启动模拟工作流"}),a.jsx("p",{className:"run-intro__desc",children:g?"启动后会连接真实运行服务,监听 AI 表格中的待处理记录,并按当前流程方案执行。":"启动后记录将陆续进入,系统自动执行分类、处理、审核与发送,人工把关环节会等待确认。"}),a.jsxs("button",{type:"button",className:"primary run-intro__cta",onClick:O,children:[a.jsx(D,{name:"play",size:15,color:"#fff"}),g?"启动真实运行":"启动模拟运行"]})]})})]})}):a.jsxs("div",{className:"run-stage",children:[a.jsxs("div",{className:"run-board",children:[a.jsxs("div",{className:"run-board__head",children:[a.jsx("span",{children:"工单队列"}),a.jsx("span",{className:"run-board__stat",children:g?E?"1/1 已连接":"0/1 待连接":`${n.arrived}/${n.total} 进入`})]}),a.jsx("div",{className:"run-board__list",children:a.jsx(qi,{initial:!1,children:r.map(N=>{const T=v0[N.status];return a.jsxs(Ye.button,{type:"button",layout:!0,variants:yt,initial:"hidden",animate:"visible",exit:"exit",className:`ticket-card${N.id===p?" is-selected":""}`,onClick:()=>v(N.id),children:[a.jsxs("div",{className:"ticket-card__top",children:[a.jsx("span",{className:`pill pill--${T.cls}`,children:T.label}),a.jsx("span",{className:"ticket-card__prio",children:N.priority})]}),a.jsx("div",{className:"ticket-card__title",children:N.title}),a.jsxs("div",{className:"ticket-card__meta",children:[N.customer," · ",N.category]}),a.jsxs("div",{className:"ticket-card__progress",children:[N.doneStepIds.length,"/",j.length," 步",!g&&t.isAwaiting(N.id)&&a.jsx("span",{className:"ticket-card__await",children:"待审批"})]})]},N.id)})})}),a.jsxs("div",{className:"run-board__foot",children:["处理中 ",I.running," · 审核中 ",I.review," · 已完成 ",I.done]})]}),a.jsxs("div",{className:"run-flow",children:[a.jsx("div",{className:"run-flow__head",children:b?a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"run-flow__title",children:b.title}),a.jsx("div",{className:"run-flow__sub",children:b.customer})]}):a.jsx("div",{className:"run-flow__sub",children:"选择左侧工单查看步骤流转"})}),b&&a.jsx("div",{className:"step-chain",children:j.map((N,T)=>{const M=w0(b,N.id),$=!g&&M==="active"&&N.needsHuman&&t.isAwaiting(b.id);return a.jsxs("div",{className:`chain-node is-${M}`,children:[T>0&&a.jsx("div",{className:`chain-node__line is-${M}`}),a.jsxs("div",{className:"chain-node__row",children:[a.jsx("span",{className:"chain-node__dot",children:M==="done"?a.jsx(D,{name:"check",size:12,color:"#fff"}):M==="active"?a.jsx("span",{className:"chain-node__pulse"}):a.jsx("span",{className:"chain-node__idle"})}),a.jsxs("div",{className:"chain-node__body",children:[a.jsxs("div",{className:"chain-node__name",children:[a.jsx("span",{className:"chain-node__label",children:N.name}),N.requiresAgent&&a.jsx("span",{className:"chain-node__engine",style:{"--c":"var(--agent-llm)"},children:"AI"}),N.needsHuman&&a.jsx("span",{className:"pill pill--amber",children:"人工"}),!N.requiresAgent&&!N.needsHuman&&a.jsx("span",{className:"pill pill--muted",children:"自动"})]}),a.jsx("div",{className:"chain-node__recipe",children:N.recipe||"自动处理"}),$&&a.jsxs("div",{className:"chain-node__approve",children:[a.jsxs("button",{type:"button",className:"primary btn-approve",onClick:()=>t.approve(b.id),children:[a.jsx(D,{name:"check",size:13,color:"#fff"})," 通过"]}),a.jsxs("button",{type:"button",className:"btn-reject",onClick:()=>t.reject(b.id),children:[a.jsx(D,{name:"close",size:13})," 驳回"]})]})]})]})]},N.id)})})]}),a.jsxs("div",{className:"run-logs",children:[a.jsxs("div",{className:"run-logs__head",children:[a.jsx(D,{name:"file",size:14}),"执行日志",b&&a.jsx("span",{className:"run-logs__sub",children:b.title})]}),a.jsxs("div",{className:"run-logs__body",children:[P.length===0?a.jsx("div",{className:"empty-hint",style:{padding:20},children:b?"等待执行日志…":"选择工单查看日志"}):a.jsx(qi,{initial:!1,children:P.map(N=>{const T=j.find(M=>M.id===N.stepId);return a.jsxs(Ye.div,{layout:!0,variants:yt,initial:"hidden",animate:"visible",className:`log-line log-line--${N.level}`,children:[a.jsx("span",{className:"log-line__icon",children:a.jsx(D,{name:x0[N.level],size:11})}),a.jsxs("div",{className:"log-line__content",children:[a.jsx("span",{className:"log-line__step",children:(T==null?void 0:T.name)??N.stepId}),a.jsx("span",{className:"log-line__text",children:N.text})]})]},N.id)})}),a.jsx("div",{ref:R})]})]})]}):a.jsx("div",{className:"split split--chatonly",children:a.jsxs("div",{className:"split__work",children:[a.jsxs("div",{className:"work-head",children:[a.jsx(D,{name:"play",size:16}),a.jsx("div",{className:"work-head__title",children:"运行监控"}),a.jsx("div",{className:"work-head__sub",children:"未到达"})]}),a.jsx("div",{className:"work-body",children:a.jsxs("div",{className:"run-intro",children:[a.jsx("div",{className:"run-intro__icon",children:a.jsx(D,{name:"table",size:28,color:"#fff"})}),a.jsx("h3",{className:"run-intro__title",children:"当前流程尚未完成搭建"}),a.jsx("p",{className:"run-intro__desc",children:"运行阶段必须基于当前流程实例已搭建完成的 AI 表格。请先完成搭建阶段,再启动真实运行监听。"}),a.jsxs("button",{type:"button",className:"primary run-intro__cta",onClick:()=>B.setStage("setup"),children:[a.jsx(D,{name:"chevron-right",size:15,color:"#fff"}),"返回搭建阶段"]})]})})]})})}const _0=[{id:"hr-onboarding",name:"HR 入职协同",steps:[{id:"classify",name:"信息校验",recipe:"validate-onboarding",engine:"llm_only",auto:!0,inputs:["员工姓名","身份证号","入职日期"],outputs:["校验结论","异常项"]},{id:"investigate",name:"权限准备",recipe:"prepare-access",engine:"qoder",auto:!0,inputs:["员工姓名","部门","岗位","校验结论"],outputs:["权限清单"]},{id:"draft_reply",name:"入职指引草拟",recipe:"draft-onboarding-guide",engine:"llm_only",auto:!0,inputs:["员工姓名","部门","岗位","权限清单"],outputs:["入职指引"]},{id:"quality_check",name:"法务与 HR 复核",recipe:"hr-legal-review",engine:"llm_only",auto:!1,needsHuman:!0,inputs:["入职指引","异常项"],outputs:["复核结论"]},{id:"send_reply",name:"发送入职通知",recipe:"send-onboarding-notice",engine:"llm_only",auto:!0,inputs:["员工姓名","入职指引","复核结论"],outputs:["发送状态"]}],edges:[{from:"classify",to:"investigate"},{from:"investigate",to:"draft_reply"},{from:"draft_reply",to:"quality_check"},{from:"quality_check",to:"send_reply"}]},{id:"customer-service",name:"客服工单处理",steps:[{id:"classify",name:"工单分类",recipe:"classify-ticket",engine:"llm_only",auto:!0,inputs:["标题","描述"],outputs:["类型","紧急度"]},{id:"investigate",name:"问题排查",recipe:"investigate",engine:"qoder",auto:!0,inputs:["标题","类型"],outputs:["解决方案"]},{id:"draft_reply",name:"草拟回复",recipe:"draft-reply",engine:"llm_only",auto:!0,inputs:["客户","解决方案"],outputs:["回复内容"]},{id:"quality_check",name:"质量审核",recipe:"quality-check",engine:"llm_only",auto:!1,needsHuman:!0,inputs:["回复内容"],outputs:["审核结论"]},{id:"send_reply",name:"发送回复",recipe:"send-reply",engine:"llm_only",auto:!0,inputs:["客户","回复内容"],outputs:["发送状态"]}],edges:[{from:"classify",to:"investigate"},{from:"investigate",to:"draft_reply"},{from:"draft_reply",to:"quality_check"},{from:"quality_check",to:"send_reply"}]},{id:"message-triage",name:"消息分诊",steps:[{id:"investigate",name:"深度调查",recipe:"investigate",engine:"qoder",auto:!0,inputs:["消息内容","发送人"],outputs:["调查结论"]},{id:"reply",name:"群内回复",recipe:"reply-to-group",engine:"llm_only",auto:!0,inputs:["调查结论","对话ID"],outputs:["回复状态"]}],edges:[{from:"investigate",to:"reply"}]},{id:"daily-digest",name:"每日摘要",steps:[{id:"collect",name:"收集当日数据",recipe:"collect-daily",engine:"llm_only",auto:!0,inputs:["日期"],outputs:["统计数据"]},{id:"generate",name:"生成摘要",recipe:"generate-digest",engine:"llm_only",auto:!0,inputs:["统计数据"],outputs:["摘要内容"]},{id:"send",name:"发送到群",recipe:"send-to-group",engine:"llm_only",auto:!0,inputs:["摘要内容"],outputs:["发送状态"]}],edges:[{from:"collect",to:"generate"},{from:"generate",to:"send"}]},{id:"kb-im",name:"知识库问答",steps:[{id:"check_relevance",name:"判断问题相关性",recipe:"check-relevance",engine:"llm_only",auto:!0,inputs:["消息内容"],outputs:["是否相关"]},{id:"generate_answer",name:"生成回答",recipe:"generate-answer",engine:"qoder",auto:!0,inputs:["消息内容","知识库文章"],outputs:["回答内容"]},{id:"reply_to_group",name:"回复群消息",recipe:"reply-to-group",engine:"llm_only",auto:!0,inputs:["回答内容","群ID"],outputs:["发送状态"]}],edges:[{from:"check_relevance",to:"generate_answer"},{from:"generate_answer",to:"reply_to_group"}]},{id:"discovery-demo",name:"需求发现演示",steps:[{id:"classify",name:"工单分类",recipe:"classify",engine:"llm_only",auto:!0,inputs:["消息内容"],outputs:["问题类型","紧急程度"]},{id:"enrich",name:"信息补全",recipe:"enrich",engine:"qoder",auto:!0,inputs:["消息内容","订单号"],outputs:["客户记录","历史工单"]},{id:"draft",name:"回复草拟",recipe:"draft-reply",engine:"llm_only",auto:!0,inputs:["客户记录","历史工单"],outputs:["回复内容"]},{id:"review",name:"质检审核",recipe:"quality-check",engine:"llm_only",auto:!1,needsHuman:!0,inputs:["回复内容"],outputs:["审核结果"]},{id:"send",name:"发送回复",recipe:"send-reply",engine:"llm_only",auto:!0,inputs:["回复内容"],outputs:["发送状态"]}],edges:[{from:"classify",to:"enrich"},{from:"enrich",to:"draft"},{from:"draft",to:"review"},{from:"review",to:"send"}]},{id:"plugin-i18n-upgrade",name:"插件国际化升级",steps:[{id:"prepare_workspace",name:"准备工作空间",recipe:"prepare-workspace",engine:"qoder",auto:!0,inputs:["插件名称","仓库地址"],outputs:["目标分支"]},{id:"upgrade_i18n",name:"国际化升级",recipe:"upgrade-i18n",engine:"qoder",auto:!0,inputs:["插件名称","目标分支"],outputs:["升级日志"]},{id:"submit_review",name:"提交代码评审",recipe:"submit-review",engine:"qoder",auto:!0,inputs:["目标分支"],outputs:["MR链接"]}],edges:[{from:"prepare_workspace",to:"upgrade_i18n"},{from:"upgrade_i18n",to:"submit_review"}]}];function hS(){return _0}function sd(e){return hS().find(n=>n.id===e)??null}const k0=/\.(json|ya?ml|ts|js|md|txt)$/i,YF=new Set(["runtime","traces","node_modules"]),j0=/(^|\/)\.(_|DS_Store)/;function S0(e){const t=e.split("/")[0]??"";return YF.has(t)}async function qF(e){const t=Array.from(e),n=[];for(const r of t)if(r.name.toLowerCase().endsWith(".zip")){const o=await W1(r),l=XF(Object.keys(o));for(const[c,u]of Object.entries(o)){const d=l(c).replace(/^\/+/,"");!d||j0.test(d)||S0(d)||!k0.test(d)||n.push({path:d,content:u})}}else{const o=GF(r);if(!o||j0.test(o)||S0(o)||!k0.test(o))continue;const l=await r.text();n.push({path:o,content:l})}const s=new Map;for(const r of n)s.set(r.path,r);return Array.from(s.values()).sort((r,i)=>r.path.localeCompare(i.path))}function GF(e){var n;const t=(n=e.webkitRelativePath)==null?void 0:n.trim();return t&&t.includes("/")?pS(t):e.name}function XF(e){if(e.length===0)return r=>r;const t=e.map(r=>r.split("/")).filter(r=>r.length>1).map(r=>r[0]);if(t.length===0)return r=>r;const n=t[0];return t.every(r=>r===n)?r=>pS(r):r=>r}function pS(e){const t=e.split("/");return t.length>1?t.slice(1).join("/"):e}function QF(e){const t=[],n=[];for(const o of e)t.push({path:o.path,status:"ok"});if(!e.some(o=>o.path==="aitable-workflow.config.yml"||o.path.endsWith(".config.yml")))t.push({path:"aitable-workflow.config.yml",status:"warning",detail:"缺失主配置文件,导入后可在「配置」阶段补齐"});else{const o=e.find(c=>c.path==="aitable-workflow.config.yml"||c.path.endsWith(".config.yml"));o&&!/^[ \t]*scene[ \t]*:[ \t]*\S/m.test(o.content)&&!/^[ \t]*scene[ \t]*:[ \t]*\|/m.test(o.content)&&t.push({path:"scene",status:"warning",detail:"config 缺少 scene 字段(业务场景描述)"})}return e.some(o=>o.path.startsWith("roles/")&&o.path.endsWith(".role.yml"))||t.push({path:"roles/",status:"warning",detail:"未检测到角色定义,可后续添加"}),e.some(o=>o.path==="workflow.yml"||o.path.endsWith("/workflow.yml"))||t.push({path:"workflow.yml",status:"warning",detail:"未包含工作流,导入后可在「设计」阶段生成"}),{items:t,envMissing:n}}function ZF({onClose:e}){const t=hS(),n=S.useRef(null),[s,r]=S.useState("upload"),[i,o]=S.useState(!1),[l,c]=S.useState(!1),[u,d]=S.useState(null),[f,h]=S.useState([]),[p,v]=S.useState([]),[_,w]=S.useState([]),[m,y]=S.useState(null),[g,x]=S.useState(!1),[k,j]=S.useState(!1),[E,b]=S.useState(null),[P,R]=S.useState("");async function I(C){var A,z,L,F,U;c(!0),d(null);try{const W=Array.from(C),K=W.length>=1&&W.every(X=>/\.aitable-workflow\.zip$|\.zip$/i.test(X.name))?await O(W).catch(()=>null):null,G=(K==null?void 0:K.files)??await qF(C);if(G.length===0){d("未解析到可导入的文件(仅支持 .json/.yml/.yaml/.ts/.js/.md/.txt,且不能位于 runtime/traces/node_modules)"),o(!1),h([]),v([]),w([]);return}const{items:Q,envMissing:H}=QF(G);for(const X of(K==null?void 0:K.checksumWarnings)??[])Q.push({path:X,status:"warning",detail:"checksum 校验"});h(G),v(Q),w(H),o(!0);const q=(A=K==null?void 0:K.title)==null?void 0:A.trim(),te=(z=G.find(X=>X.path==="aitable-workflow.config.yml"||X.path.endsWith(".config.yml")))==null?void 0:z.content,ne=te?((L=/^name:\s*(?:"([^"]*)"|'([^']*)'|([^#\n]*))/m.exec(te))==null?void 0:L[1])??((F=/^name:\s*(?:"([^"]*)"|'([^']*)'|([^#\n]*))/m.exec(te))==null?void 0:F[3]):null,J=q||(ne!=null&&ne.trim()?ne.trim():"")||((U=W.find(X=>/\.zip$/i.test(X.name)))==null?void 0:U.name.replace(/\.aitable-workflow\.zip$|\.zip$/i,""))||"导入项目";R(J)}catch(W){d(W instanceof Error?W.message:String(W)),o(!1)}finally{c(!1)}}async function O(C){const A=[];let z;const L=[];let F=!1;const U=new Map;for(const W of C)try{const K=await aI(W);if(!K.manifest)continue;F=!0,!z&&K.title&&(z=K.title);for(const G of K.checksumWarnings)L.push(G);for(const G of K.files)U.set(G.path,G)}catch{}if(!F)return null;for(const W of U.values())A.push(W);return A.sort((W,K)=>W.path.localeCompare(K.path)),{files:A,title:z,checksumWarnings:L}}function V(C){!C.target.files||C.target.files.length===0||(I(C.target.files),C.target.value="")}function N(C){y(C);const A=sd(C);R((A==null?void 0:A.name)??C),h([]),d(null),v([{path:`examples/${C}/config.yml`,status:"ok"},{path:`examples/${C}/workflow.yml`,status:"ok"},{path:`examples/${C}/recipes/`,status:"ok"},{path:`examples/${C}/roles/`,status:"ok"}]),w([]),o(!0)}function T(){if(!P){const C=m?sd(m):null;R((C==null?void 0:C.name)??"导入项目")}x(!0)}async function M(){if(j(!0),b(null),le)try{const{project:L,files:F}=await yM(P,f),U=await Wl().catch(()=>B.get().projects),W=F&&F.length>0?F:await qo(L.id).catch(()=>[]),K=await jp(L.id).catch(()=>null),G=W.some(te=>te.path==="workflow.yml"||te.path.endsWith("/workflow.yml"));let Q=null;if(G)try{Q=await Yo(L.id)}catch{}const H=Me?await Lr(L.id).catch(()=>null):null,q=Tc({projectId:L.id,files:W,projectState:K,workflow:Q,engineBinding:H,fallbackStage:"init"});B.set({projects:Eo(U,L),projectSource:"imported",...q}),e();return}catch(L){b(L instanceof Error?L.message:String(L)),j(!1);return}const C=`mock-imported-${Date.now()}`,A=m?sd(m):null,z=((A==null?void 0:A.steps.length)??0)>0;B.set({projects:Eo(B.get().projects,{id:C,title:P,dir:"",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),projectId:C,projectSource:"imported",steps:(A==null?void 0:A.steps)??[],edges:(A==null?void 0:A.edges)??[],fields:[],views:[],tableUrl:null,projectFiles:f,init:{name:P,agentsSelected:[],selectedMachineId:"",tableConnected:!1,tableBaseId:"",tableId:"",llmProvider:"",llmModel:"",roles:[],sop:""},stageRuntime:{init:{status:"succeeded",message:"已随包导入"},design:z?{status:"succeeded",message:"已随包导入"}:{status:"idle",message:"尚未开始设计"},setup:{status:"idle",message:"尚未开始搭建"},adjust:{status:"idle",message:"尚未开始参数调整"},test:{status:"idle",message:"尚未开始试运行"},run:{status:"idle",message:"尚未开始运行"}}}),B.setStage(z?"setup":"design"),e()}const $=i&&(s==="upload"||m);return a.jsx("div",{className:"modal-overlay",onClick:e,children:a.jsxs("div",{className:"import-panel",onClick:C=>C.stopPropagation(),children:[a.jsxs("div",{className:"import-panel__head",children:[a.jsx("span",{className:"import-panel__title",children:"导入已有项目"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:e,children:a.jsx(D,{name:"close",size:14})})]}),a.jsx("div",{className:"import-panel__body",children:g?a.jsxs("div",{className:"import-confirm",children:[a.jsx("div",{className:"import-confirm__icon",children:a.jsx(D,{name:"file",size:22})}),a.jsx("h4",{className:"import-confirm__title",children:"确认导入到我的项目?"}),a.jsxs("p",{className:"import-confirm__desc",children:["将在你的账号下新建项目,并导入已解析的工作流配置。",m&&a.jsxs(a.Fragment,{children:[a.jsx("br",{}),a.jsx("span",{className:"cfg-muted",children:"导入后需在「搭建」阶段配置 AI 表格。"})]})]}),a.jsxs("div",{className:"role-field",children:[a.jsx("label",{className:"role-field__label",children:"项目名称"}),a.jsx("input",{className:"import-confirm__input",value:P,onChange:C=>R(C.target.value),placeholder:"输入项目名称"})]}),E&&a.jsxs("div",{className:"import-env-warn",children:[a.jsx(D,{name:"warn",size:13}),E]})]}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"import-panel__sources",children:[a.jsxs("label",{className:`import-source${s==="upload"?" is-selected":""}`,children:[a.jsx("input",{type:"radio",name:"source",checked:s==="upload",onChange:()=>{r("upload"),o(!1),y(null),d(null),h([]),v([])}}),"上传项目包"]}),a.jsxs("label",{className:`import-source${s==="template"?" is-selected":""}`,children:[a.jsx("input",{type:"radio",name:"source",checked:s==="template",onChange:()=>{r("template"),o(!1),d(null),h([])}}),"从模板库选择"]})]}),s==="upload"&&a.jsxs(a.Fragment,{children:[a.jsx("input",{ref:n,type:"file",multiple:!0,accept:".zip,.json,.yml,.yaml,.ts,.js,.md,.txt",style:{display:"none"},onChange:V}),a.jsxs("button",{type:"button",className:"import-drop",disabled:l,onClick:()=>{var C;return(C=n.current)==null?void 0:C.click()},children:[a.jsx(D,{name:"plus",size:20}),a.jsx("span",{children:l?"解析中...":i?"重新选择文件 (.zip / 多选 / 目录)":"拖拽或点击上传 (.zip / 多选)"})]}),u&&a.jsxs("div",{className:"import-env-warn",children:[a.jsx(D,{name:"warn",size:13}),u]})]}),s==="template"&&a.jsx("div",{className:"import-templates",children:t.map(C=>a.jsxs("button",{type:"button",className:`import-template${m===C.id?" is-selected":""}`,onClick:()=>N(C.id),children:[a.jsx("span",{className:"import-template__icon",children:a.jsx(D,{name:"flow",size:14})}),a.jsx("span",{className:"import-template__name",children:C.name}),a.jsxs("span",{className:"cfg-muted",children:["examples/",C.id]})]},C.id))}),i&&a.jsxs("div",{className:"import-preview",children:[a.jsxs("div",{className:"import-preview__title",children:["解析结果预览(",f.length||p.length," 项):"]}),a.jsx("ul",{className:"import-preview__list",children:p.map(C=>a.jsxs("li",{className:`import-preview__item import-preview__item--${C.status}`,children:[a.jsx("span",{className:"import-preview__icon",children:C.status==="ok"?"✓":C.status==="warning"?"⚠":"✗"}),a.jsx("span",{className:"import-preview__path",children:C.path}),C.detail&&a.jsx("span",{className:"import-preview__detail",children:C.detail})]},C.path))}),_.length>0&&a.jsxs("div",{className:"import-env-warn",children:[a.jsx(D,{name:"warn",size:13}),"需要补齐 ",_.length," 个环境变量"]})]})]})}),a.jsx("div",{className:"import-panel__foot",children:g?a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:()=>x(!1),children:"返回"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:!P.trim()||k,onClick:()=>void M(),children:k?"导入中...":"确认导入"})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:e,children:"取消"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:!$,onClick:T,children:"下一步 →"})]})})]})})}function JF({summary:e,allPassed:t,saving:n,onComplete:s}){return a.jsxs("div",{className:`cfg-summary${t?" cfg-summary--ok":""}`,children:[a.jsxs("div",{className:"cfg-summary__stats",children:[a.jsxs("span",{className:"cfg-summary__stat",children:[a.jsx(D,{name:"check",size:14,color:"var(--green)"}),e.passedModules,"/",e.totalModules," 模块通过"]}),e.errors>0&&a.jsxs("span",{className:"cfg-summary__stat cfg-summary__stat--error",children:[e.errors," 错误"]}),e.warnings>0&&a.jsxs("span",{className:"cfg-summary__stat cfg-summary__stat--warn",children:[e.warnings," 警告"]})]}),a.jsx("button",{type:"button",className:"primary cfg-summary__btn",disabled:!t||n,onClick:s,children:n?"完成中…":t?"保存配置,继续搭建 →":"请先修复所有错误"})]})}const eV=".md,.txt,.text,.rst,.csv,.json,.yaml,.yml,.xml,.html,.htm,.docx,.pdf,.xlsx",tV=new Set([".docx",".pdf",".xlsx"]);let nV=0;function sV(e){const t=new Uint8Array(e);let n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return btoa(n)}function rV(e){const t=e.lastIndexOf(".");return t>=0?e.slice(t).toLowerCase():""}function iV({roleId:e,onIngestUrl:t,onUploadFiles:n}){const[s,r]=S.useState([]),[i,o]=S.useState([]),[l,c]=S.useState(!1),u=S.useRef(null),d=S.useRef(null),f=S.useRef(null),h=S.useCallback(()=>{r(x=>[...x,{id:++nV,type:"file",url:"",files:[]}])},[]),p=S.useCallback(x=>{r(k=>k.filter(j=>j.id!==x))},[]),v=S.useCallback((x,k)=>{r(j=>j.map(E=>E.id===x?{...E,type:k,url:"",files:[]}:E))},[]),_=S.useCallback((x,k)=>{r(j=>j.map(E=>E.id===x?{...E,url:k}:E))},[]),w=S.useCallback((x,k)=>{var j,E;f.current=x,k==="folder"?(j=d.current)==null||j.click():(E=u.current)==null||E.click()},[]),m=S.useCallback(x=>{const k=f.current;if(k===null)return;const j=Array.from(x.target.files??[]);j.length>0&&r(E=>E.map(b=>b.id===k?{...b,files:j}:b)),x.target.value=""},[]),y=S.useCallback(async()=>{if(l)return;c(!0);const x=[];for(const k of s)if(k.type==="url"){if(!k.url.trim())continue;try{const j=await t(e,k.url.trim());x.push({ok:j.ok,message:j.message??(j.ok?"导入成功":"导入失败")})}catch(j){x.push({ok:!1,message:j instanceof Error?j.message:"导入失败"})}}else{if(k.files.length===0)continue;try{const j=[];for(const b of k.files){const P=rV(b.name),R=b.webkitRelativePath||b.name;if(tV.has(P)){const I=await b.arrayBuffer();j.push({name:b.name,relativePath:R,content:sV(I),encoding:"base64"})}else{const I=await b.text();j.push({name:b.name,relativePath:R,content:I,encoding:"utf8"})}}const E=await n(e,j);x.push({ok:E.ok,message:E.message??(E.ok?`导入成功 (${k.files.length} 个文件)`:"导入失败")})}catch(j){x.push({ok:!1,message:j instanceof Error?j.message:"文件上传失败"})}}o(k=>[...k,...x]),r([]),c(!1)},[l,s,e,t,n]),g=s.some(x=>x.type==="url"&&x.url.trim()||x.type==="file"&&x.files.length>0);return a.jsxs("div",{className:"kb-panel",children:[a.jsx("input",{ref:u,type:"file",multiple:!0,accept:eV,style:{display:"none"},onChange:m}),a.jsx("input",{ref:d,type:"file",webkitdirectory:"",directory:"",multiple:!0,style:{display:"none"},onChange:m}),i.length>0&&a.jsx("div",{className:"kb-panel__results",children:i.map((x,k)=>a.jsxs("div",{className:`kb-panel__result ${x.ok?"is-ok":"is-error"}`,children:[a.jsx(D,{name:x.ok?"check":"warn",size:12,color:x.ok?"var(--green)":"var(--red)"}),a.jsx("span",{children:x.message})]},k))}),s.length>0&&a.jsx("div",{className:"kb-panel__rows",children:s.map(x=>a.jsxs("div",{className:"kb-panel__row",children:[a.jsxs("select",{className:"kb-panel__type-select",value:x.type,onChange:k=>v(x.id,k.target.value),disabled:l,children:[a.jsx("option",{value:"file",children:"本地文件"}),a.jsx("option",{value:"url",children:"在线文档链接"})]}),x.type==="file"?a.jsxs("div",{className:"kb-panel__file-area",children:[x.files.length>0?a.jsxs("span",{className:"kb-panel__file-info",title:x.files.map(k=>k.name).join(`
|
|
318
|
+
`),children:["已选 ",x.files.length," 个文件"]}):a.jsx("span",{className:"kb-panel__file-placeholder",children:"未选择文件"}),a.jsx("button",{type:"button",className:"kb-panel__file-btn",onClick:()=>w(x.id,"file"),disabled:l,children:"选择文件"}),a.jsx("button",{type:"button",className:"kb-panel__file-btn",onClick:()=>w(x.id,"folder"),disabled:l,children:"选择文件夹"})]}):a.jsx("input",{type:"text",className:"qf-input kb-panel__url-input",value:x.url,placeholder:"输入在线文档链接",onChange:k=>_(x.id,k.target.value),disabled:l}),a.jsx("button",{type:"button",className:"kb-panel__row-remove",onClick:()=>p(x.id),disabled:l,title:"删除此行",children:a.jsx(D,{name:"close",size:12})})]},x.id))}),a.jsxs("div",{className:"kb-panel__actions",children:[a.jsx("button",{type:"button",className:"cfg-item__edit-btn cfg-item__kb-btn",onClick:h,disabled:l,children:s.length>0||i.length>0?"继续添加知识库":"添加知识库"}),s.length>0&&a.jsx("button",{type:"button",className:"primary kb-panel__import-btn",onClick:()=>void y(),disabled:l||!g,children:l?"导入中…":"导入"})]})]})}function oV({fileRef:e}){const[t,n]=S.useState(!1),[s,r]=S.useState(null),[i,o]=S.useState(""),[l,c]=S.useState(!1),[u,d]=S.useState(!1),[f,h]=S.useState(!1),[p,v]=S.useState(null),[_,w]=S.useState(!1);async function m(){if(t){n(!1);return}if(n(!0),s===null){d(!0),v(null);try{const x=await dM(e.path);r(x.content),o(x.content)}catch(x){v(x instanceof Error?x.message:String(x))}finally{d(!1)}}}async function y(){h(!0),v(null);try{await fM(e.path,i),r(i),c(!1),w(!0),setTimeout(()=>w(!1),2400)}catch(x){v(x instanceof Error?x.message:String(x))}finally{h(!1)}}const g=(e.summary??[]).map(x=>x.count!==void 0?`${x.key} ${x.count}`:x.key).join(" · ");return a.jsxs("div",{className:"file-ref",children:[a.jsxs("button",{type:"button",className:"file-ref__toggle",onClick:()=>void m(),children:[a.jsx("span",{className:`file-ref__chevron${t?" is-open":""}`,children:a.jsx(D,{name:"chevron-right",size:11})}),a.jsx(D,{name:"file",size:12,color:"var(--text-muted)"}),a.jsx("code",{className:"file-ref__path",children:e.path}),e.exists?g&&a.jsx("span",{className:"file-ref__summary",children:g}):a.jsx("span",{className:"file-ref__missing",children:"文件不存在,展开可创建"})]}),e.exists&&a.jsxs("div",{className:"file-ref__locked-hint",children:[a.jsx(D,{name:"lock",size:11,color:"var(--text-muted)"}),a.jsx("span",{children:"该配置指向上方文件,路径不可改;展开文件编辑其内容"})]}),t&&a.jsxs("div",{className:"file-ref__body",children:[u&&a.jsx("div",{className:"file-ref__hint",children:"读取中…"}),p&&a.jsxs("div",{className:"file-ref__error",children:[a.jsx(D,{name:"warn",size:13,color:"var(--red)"}),a.jsx("span",{children:p})]}),!u&&s!==null&&!l&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:"file-ref__pre",children:s||"(空文件)"}),a.jsxs("div",{className:"file-ref__actions",children:[a.jsx("button",{type:"button",className:"file-ref__btn",onClick:()=>{o(s),c(!0),v(null)},children:"编辑内容"}),_&&a.jsxs("span",{className:"file-ref__saved",children:[a.jsx(D,{name:"check",size:12,color:"var(--green)"})," 已保存"]})]})]}),!u&&l&&a.jsxs(a.Fragment,{children:[a.jsx("textarea",{className:"qf-textarea file-ref__editor",value:i,spellCheck:!1,onChange:x=>o(x.target.value),autoFocus:!0}),a.jsxs("div",{className:"file-ref__actions",children:[a.jsx("button",{type:"button",className:"primary file-ref__btn",onClick:()=>void y(),disabled:f,children:f?"保存中…":`保存${e.format==="json"?" JSON":" YAML"}`}),a.jsx("button",{type:"button",className:"file-ref__btn",onClick:()=>{o(s??""),c(!1),v(null)},disabled:f,children:"取消"}),a.jsxs("span",{className:"file-ref__hint file-ref__hint--inline",children:["保存前会校验",e.format==="json"?" JSON":" YAML","语法,语法错误不会写入"]})]})]})]})]})}const aV=/secret|token|password|api_key/i;let mS=1;function lV(e,t){if(!e.trim())return[];try{const n=JSON.parse(e);return!n||typeof n!="object"||Array.isArray(n)?[]:Object.entries(n).map(([s,r])=>{const i={},o=[...t.valueFields];for(const l of Object.keys(r??{}))o.includes(l)||o.push(l);for(const l of o){const c=(r??{})[l];i[l]=c==null?"":String(c)}return{id:mS++,name:s,fields:i}})}catch{return[]}}function N0(e){const t={};for(const n of e.valueFields)t[n]="";return{id:mS++,name:"",fields:t}}function cV({spec:e,initialValue:t,saving:n,onSave:s,onCancel:r}){const[i,o]=S.useState(()=>{const p=lV(t,e);return p.length>0?p:[N0(e)]}),l=e.keyLabel??"名称",c=S.useMemo(()=>{const p=i.map(v=>v.name.trim());return p.some(v=>!v)?`每一项都需要填写「${l}」`:new Set(p).size!==p.length?`「${l}」不能重复`:null},[i,l]);function u(p,v){o(_=>_.map(w=>w.id===p?{...w,...v}:w))}function d(p,v,_){o(w=>w.map(m=>m.id===p?{...m,fields:{...m.fields,[v]:_}}:m))}function f(p){o(v=>v.filter(_=>_.id!==p))}async function h(){if(c)return;const p={};for(const v of i)p[v.name.trim()]=v.fields;await s(JSON.stringify(p))}return a.jsxs("div",{className:"env-map",children:[a.jsxs("p",{className:"env-map__hint",children:["按项填写,每项包含 ",e.valueFields.map(p=>a.jsx("code",{children:p},p)),",保存后自动写回配置。"]}),i.map((p,v)=>a.jsxs("div",{className:"env-map__entry",children:[a.jsxs("div",{className:"env-map__entry-head",children:[a.jsxs("span",{className:"env-map__entry-index",children:["#",v+1]}),a.jsx("input",{type:"text",className:"qf-input env-map__key-input",placeholder:l,value:p.name,onChange:_=>u(p.id,{name:_.target.value}),autoFocus:!p.name}),a.jsx("button",{type:"button",className:"env-map__remove-btn",title:"删除此项",onClick:()=>f(p.id),disabled:n,children:a.jsx(D,{name:"close",size:13})})]}),a.jsx("div",{className:"env-map__fields",children:Object.keys(p.fields).map(_=>a.jsxs("label",{className:"env-map__field",children:[a.jsx("span",{className:"env-map__field-name",children:_}),a.jsx("input",{type:aV.test(_)?"password":"text",className:"qf-input env-map__field-input",placeholder:`输入 ${_}`,value:p.fields[_]??"",onChange:w=>d(p.id,_,w.target.value)})]},_))})]},p.id)),a.jsxs("button",{type:"button",className:"env-map__add-btn",onClick:()=>o(p=>[...p,N0(e)]),disabled:n,children:[a.jsx(D,{name:"plus",size:13}),"添加一项"]}),c&&i.length>0&&a.jsx("div",{className:"env-map__error",children:c}),a.jsxs("div",{className:"cfg-item__edit-actions",children:[a.jsx("button",{type:"button",className:"primary cfg-item__save-btn",onClick:()=>void h(),disabled:n||!!c||i.length===0,children:n?"保存中…":"保存"}),a.jsx("button",{type:"button",className:"cfg-item__cancel-btn",onClick:r,disabled:n,children:"取消"})]})]})}const b0={ok:{icon:"check",color:"var(--green)"},error:{icon:"warn",color:"var(--red)"},warn:{icon:"warn",color:"var(--amber)"},suggestion:{icon:"dot",color:"var(--blue)"}},E0=".knowledge_scope.kb_collections";function uV(e){if(!e.endsWith(E0))return null;const t=e.slice(0,-E0.length),n=t.lastIndexOf(".");return n>=0?t.slice(n+1):t}function ts({item:e,onSave:t,onKbIngest:n,onKbUpload:s,suggestedDefault:r}){var j,E,b,P,R,I,O,V,N,T,M,$;const[i,o]=S.useState(!1),[l,c]=S.useState(zi(e)),[u,d]=S.useState(!1),f=((j=e.surface)==null?void 0:j.label)??e.key,h=((E=e.surface)==null?void 0:E.description)??e.message,p=e.writeTarget&&((b=e.surface)==null?void 0:b.editable)!==!1,v=e.sensitive,_=b0[e.status]??b0.suggestion,w=uV(e.key),y=w!==null&&n&&s,g=(P=e.surface)==null?void 0:P.envJsonSpec;async function x(C){if(!(!e.writeTarget||!C.trim())){d(!0);try{await t(e.writeTarget,C),o(!1)}finally{d(!1)}}}async function k(){await x(l)}return a.jsxs("div",{className:`cfg-item cfg-item--${e.status}`,children:[a.jsxs("div",{className:"cfg-item__head",children:[a.jsx("span",{className:"cfg-item__status",children:a.jsx(D,{name:_.icon,size:14,color:_.color})}),a.jsx("span",{className:"cfg-item__label",children:f}),v&&a.jsx("span",{className:"cfg-item__badge cfg-item__badge--sensitive",children:"敏感"}),((R=e.surface)==null?void 0:R.required)&&a.jsx("span",{className:"cfg-item__badge cfg-item__badge--required",children:"必填"})]}),h&&!i&&a.jsx("div",{className:"cfg-item__desc",children:h}),!i&&a.jsxs("div",{className:"cfg-item__value-row",children:[a.jsx("span",{className:`cfg-item__value${((I=e.surface)==null?void 0:I.valueType)==="text"?" cfg-item__value--multiline":""}`,children:g?dV(e,g.keyLabel):v&&e.value?"***":e.value!==void 0&&String(e.value)!==""?String(e.value):"—"}),p&&a.jsx("button",{type:"button",className:"cfg-item__edit-btn",onClick:()=>{c(v?"":zi(e)||r||""),o(!0)},children:"编辑"})]}),!i&&p&&r&&!zi(e)&&a.jsxs("div",{className:"cfg-item__suggest",children:["默认沿用已配置的 Base ID:",a.jsx("code",{children:r}),"(点“编辑”已自动预填,直接保存即可)"]}),!i&&((O=e.surface)==null?void 0:O.fileRef)&&a.jsx(oV,{fileRef:e.surface.fileRef}),i&&g&&a.jsx("div",{className:"cfg-item__edit",children:a.jsx(cV,{spec:g,initialValue:v?"":zi(e),saving:u,onSave:x,onCancel:()=>o(!1)})}),i&&!g&&a.jsxs("div",{className:"cfg-item__edit",children:[((V=e.surface)==null?void 0:V.valueType)==="string[]"||((N=e.surface)==null?void 0:N.valueType)==="text"?a.jsx("textarea",{className:"qf-textarea cfg-item__input",rows:((T=e.surface)==null?void 0:T.valueType)==="text"?10:3,value:l,placeholder:((M=e.surface)==null?void 0:M.valueType)==="text"?`输入 ${f}`:"每行一个值,或用逗号分隔",onChange:C=>c(C.target.value),autoFocus:!0}):a.jsx("input",{type:v?"password":"text",className:"qf-input cfg-item__input",value:l,placeholder:(($=e.surface)==null?void 0:$.description)??`输入 ${f}`,onChange:C=>c(C.target.value),onKeyDown:C=>{C.key==="Enter"&&k()},autoFocus:!0}),a.jsxs("div",{className:"cfg-item__edit-actions",children:[a.jsx("button",{type:"button",className:"primary cfg-item__save-btn",onClick:()=>void k(),disabled:u||!l.trim(),children:u?"保存中…":"保存"}),a.jsx("button",{type:"button",className:"cfg-item__cancel-btn",onClick:()=>o(!1),disabled:u,children:"取消"})]})]}),y&&!p&&a.jsx(iV,{roleId:w,onIngestUrl:n,onUploadFiles:s})]})}function zi(e){return e.value===void 0||e.value===null?"":Array.isArray(e.value)?e.value.join(", "):String(e.value)}function dV(e,t){const n=zi(e);if(!n.trim())return"—";try{const s=JSON.parse(n),r=Object.keys(s);return r.length===0?"—":`已配 ${r.length} 项(${t??"名称"}: ${r.join(", ")})`}catch{return n}}const fV=new Set(["workflow","agent.engine"]);function hV({config:e,engines:t,projectEnvRefs:n,onSave:s,onBatchSave:r}){const i=e.modules.find(m=>m.id==="project"),o=e.modules.find(m=>m.id==="coding_agent"),l=e.modules.find(m=>m.id==="env"),c=o==null?void 0:o.items.find(m=>m.key==="coding_agent.engine"),u=o==null?void 0:o.items.find(m=>m.key==="coding_agent.config.enabled"),d=c==null?void 0:c.value,[f,h]=S.useState(!1),p=S.useRef(!1),v=S.useCallback(async m=>{if(!(!(c!=null&&c.writeTarget)||!m)){h(!0);try{const y=[{writeTarget:c.writeTarget,value:m}];(u==null?void 0:u.status)==="error"&&u.writeTarget&&y.push({writeTarget:u.writeTarget,value:"true"}),await r(y)}finally{h(!1)}}},[c,u,r]);S.useEffect(()=>{p.current||(c==null?void 0:c.status)==="error"&&d&&t.available.some(m=>m.engine===d)&&c.writeTarget&&(p.current=!0,v(d))},[c,d,t.available,v]);const _=((i==null?void 0:i.items)??[]).filter(m=>!fV.has(m.key)&&(m.status!=="ok"||m.writeTarget)),w=((l==null?void 0:l.items)??[]).filter(m=>m.writeTarget&&(!n||n.includes(m.key)));return a.jsxs("div",{className:"adjust__tab-inner",children:[a.jsxs("section",{className:"adjust__section",children:[a.jsxs("h3",{className:"adjust__section-title",children:[a.jsx(D,{name:"robot",size:15}),"编码引擎"]}),a.jsxs("div",{className:"adjust__engine-row",children:[a.jsxs("select",{className:"qf-select adjust__engine-select",value:d??"",onChange:m=>void v(m.target.value),disabled:f,children:[a.jsx("option",{value:"",children:"请选择…"}),t.available.map(m=>a.jsxs("option",{value:m.engine,children:[m.engine," (",m.cmd,m.version?` v${m.version}`:"",")"]},m.engine)),!t.available.some(m=>m.engine==="llm_only")&&a.jsx("option",{value:"llm_only",children:"llm_only (无需本地 CLI)"})]}),(c==null?void 0:c.status)==="error"&&a.jsxs("span",{className:"adjust__engine-warn",children:[a.jsx(D,{name:"warn",size:13,color:"var(--red)"}),c.message]}),(c==null?void 0:c.status)==="ok"&&a.jsx("span",{className:"adjust__engine-ok",children:a.jsx(D,{name:"check",size:13,color:"var(--green)"})}),f&&a.jsx("span",{className:"adjust__engine-saving",children:"保存中…"})]}),t.recommended&&d!==t.recommended&&a.jsxs("p",{className:"adjust__hint-text",children:["推荐:",t.recommended]})]}),(_.length>0||w.length>0)&&a.jsxs("section",{className:"adjust__section",children:[a.jsxs("h3",{className:"adjust__section-title",children:[a.jsx(D,{name:"folder",size:15}),"项目参数"]}),_.map(m=>a.jsx(ts,{item:m,onSave:s},m.key)),w.map(m=>a.jsx(ts,{item:m,onSave:s},m.key))]}),_.length===0&&w.length===0&&(c==null?void 0:c.status)==="ok"&&a.jsxs("div",{className:"adjust__empty",children:[a.jsx(D,{name:"check",size:20,color:"var(--green)"}),a.jsx("span",{children:"项目参数已完整"})]})]})}const gS=new Set(["roles.enabled","roles_dir","roles"]);function pV(e){const t=new Map;for(const n of e){if(gS.has(n.key))continue;const s=n.key.match(/^role\.([^.]+)/);if(!s)continue;const r=s[1];t.has(r)||t.set(r,[]),t.get(r).push(n)}return Array.from(t.entries()).map(([n,s])=>({roleId:n,items:s}))}function mV({config:e,onSave:t,onKbIngest:n,onKbUpload:s}){const r=e.modules.find(c=>c.id==="roles");if(!r)return a.jsx("div",{className:"adjust__empty",children:"角色系统未启用"});const o=r.items.filter(c=>gS.has(c.key)).find(c=>c.status==="error");if(o)return a.jsx("div",{className:"adjust__tab-inner",children:a.jsxs("div",{className:"adjust__error",children:[a.jsx(D,{name:"warn",size:16,color:"var(--red)"}),a.jsx("span",{children:o.message})]})});const l=pV(r.items);return l.length===0?a.jsx("div",{className:"adjust__tab-inner",children:a.jsxs("div",{className:"adjust__empty",children:[a.jsx(D,{name:"user",size:20,color:"var(--text-muted)"}),a.jsx("span",{children:"暂无角色配置"})]})}):a.jsx("div",{className:"adjust__tab-inner",children:l.map(c=>a.jsx(gV,{role:c,onSave:t,onKbIngest:n,onKbUpload:s},c.roleId))})}function gV({role:e,onSave:t,onKbIngest:n,onKbUpload:s}){const r=e.items.find(l=>l.key===`role.${e.roleId}`),i=(r==null?void 0:r.status)==="ok",o=e.items.filter(l=>l.key!==`role.${e.roleId}`);return a.jsxs("div",{className:`role-card${i?" is-ok":""}`,children:[a.jsxs("div",{className:"role-card__head",children:[a.jsx(D,{name:"user",size:15}),a.jsx("span",{className:"role-card__name",children:e.roleId}),a.jsx("span",{className:`role-card__status${i?" is-ok":""}`,children:i?a.jsxs(a.Fragment,{children:[a.jsx(D,{name:"check",size:12})," 通过"]}):"需配置"})]}),o.length>0&&a.jsx("div",{className:"role-card__body",children:o.map(l=>a.jsx(ts,{item:l,onSave:t,onKbIngest:n,onKbUpload:s},l.key))})]})}function dl(e){const t=e.slice(e.lastIndexOf(".")+1);return t==="base_id"||t==="baseId"}function yV({config:e,workflowTopology:t,onSave:n}){const s=e.modules.find(u=>u.id==="workflow"),r=e.modules.find(u=>u.id==="env"),[i,o]=S.useState(null),l=(s==null?void 0:s.workflows)??[],c=S.useMemo(()=>{for(const u of l)for(const d of u.items)if(dl(d.key)&&typeof d.value=="string"&&d.value.trim())return d.value.trim()},[l]);return l.length===0?a.jsx("div",{className:"adjust__tab-inner",children:a.jsxs("div",{className:"adjust__empty",children:[a.jsx(D,{name:"flow",size:20,color:"var(--text-muted)"}),a.jsx("span",{children:"暂无工作流"})]})}):a.jsx("div",{className:"adjust__tab-inner",children:l.map(u=>a.jsx(vV,{workflow:u,topology:t[u.id],envItems:(r==null?void 0:r.items)??[],suggestedBaseId:c,isOpen:i===u.id,onToggle:()=>o(d=>d===u.id?null:u.id),onSave:n},u.id))})}function vV({workflow:e,topology:t,envItems:n,suggestedBaseId:s,isOpen:r,onToggle:i,onSave:o}){const[l,c]=S.useState(null),u=e.items.filter(k=>k.key==="tracker.base_id"||k.key==="tracker.table_id"),d=e.items.filter(k=>k.key.startsWith("event_source.")&&k.writeTarget),f=S.useMemo(()=>((t==null?void 0:t.envRefs)??[]).map(j=>n.find(E=>E.key===j)).filter(j=>!!j&&!!j.writeTarget),[t,n]),h=S.useMemo(()=>{const k=new Set((t==null?void 0:t.envRefs)??[]);for(const j of Object.values((t==null?void 0:t.stepEnvRefs)??{}))for(const E of j)k.add(E);return n.filter(j=>k.has(j.key)&&j.status==="error").length},[t,n]),p=e.ok&&h===0,v=e.items.filter(k=>k.status==="error").length+h,_=S.useMemo(()=>t?t.steps.map(k=>{const j=e.items.filter(E=>E.key.startsWith(`step.${k.id}.config.`)&&E.status==="error");return{id:k.id,name:k.name,recipe:k.recipe??"",engine:k.engine??"llm_only",auto:k.auto,inputs:[],outputs:[],configStatus:j.length>0?"missing":"ok",missingConfigKeys:j.map(E=>E.key)}}):[],[t,e.items]),w=S.useMemo(()=>t?t.edges:[],[t]),m=S.useMemo(()=>l?e.items.filter(k=>k.key.startsWith(`step.${l}.config.`)&&k.writeTarget):[],[l,e.items]),y=S.useMemo(()=>!l||!t?[]:(t.stepEnvRefs[l]??[]).map(j=>n.find(E=>E.key===j)).filter(j=>!!j&&j.status!=="ok"),[l,t,n]),g=t==null?void 0:t.steps.find(k=>k.id===l),x=l&&(m.length>0||y.length>0);return a.jsxs("div",{className:`wf-card${p?" is-done":""}`,children:[a.jsxs("button",{type:"button",className:"wf-card__head",onClick:i,children:[a.jsx("span",{className:"wf-card__icon",children:a.jsx(D,{name:"flow",size:15})}),a.jsx("span",{className:"wf-card__name",children:e.name}),v>0&&a.jsxs("span",{className:"wf-card__badge",children:[v," 项需配置"]}),a.jsx("span",{className:`wf-card__status${p?" is-ok":""}`,children:p?a.jsxs(a.Fragment,{children:[a.jsx(D,{name:"check",size:12})," 通过"]}):"需配置"}),a.jsx("span",{className:`wf-card__chevron${r?" is-open":""}`,children:a.jsx(D,{name:"chevron-right",size:12})})]}),r&&a.jsxs("div",{className:"wf-card__body",children:[u.length>0&&a.jsx("div",{className:"wf-card__tracker",children:u.map(k=>a.jsx(ts,{item:k,onSave:o,suggestedDefault:dl(k.key)?s:void 0},k.key))}),t&&_.length>0&&a.jsxs("div",{className:`wf-card__canvas-row${x?" has-panel":""}`,children:[a.jsx("div",{className:"wf-card__canvas",children:a.jsx(tS,{steps:_,edges:w,selectedId:l,onSelect:c})}),x&&g&&a.jsxs("div",{className:"wf-card__panel",children:[a.jsxs("div",{className:"wf-card__panel-head",children:[a.jsx(D,{name:"bolt",size:14}),a.jsxs("span",{children:["步骤配置 · ",g.name]}),a.jsx("button",{type:"button",className:"wf-card__panel-close",onClick:()=>c(null),children:a.jsx(D,{name:"close",size:14})})]}),a.jsxs("div",{className:"wf-card__panel-body",children:[m.map(k=>a.jsx(ts,{item:k,onSave:o,suggestedDefault:dl(k.key)?s:void 0},k.key)),y.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"wf-card__panel-divider",children:"参数与凭据"}),y.map(k=>a.jsx(ts,{item:k,onSave:o},k.key))]})]})]}),l&&!x&&g&&a.jsxs("div",{className:"wf-card__panel",children:[a.jsxs("div",{className:"wf-card__panel-head",children:[a.jsx(D,{name:"bolt",size:14}),a.jsxs("span",{children:["步骤配置 · ",g.name]}),a.jsx("button",{type:"button",className:"wf-card__panel-close",onClick:()=>c(null),children:a.jsx(D,{name:"close",size:14})})]}),a.jsx("div",{className:"wf-card__panel-body",children:a.jsxs("div",{className:"adjust__empty",style:{padding:"24px 16px"},children:[a.jsx(D,{name:"check",size:16,color:"var(--green)"}),a.jsx("span",{children:"此步骤配置完整"})]})})]})]}),d.length>0&&a.jsxs("div",{className:"wf-card__events",children:[a.jsxs("div",{className:"wf-card__events-title",children:[a.jsx(D,{name:"bolt",size:13,color:"var(--text-muted)"}),"事件源配置"]}),d.map(k=>a.jsx(ts,{item:k,onSave:o,suggestedDefault:dl(k.key)?s:void 0},k.key))]}),f.length>0&&a.jsxs("div",{className:"wf-card__events",children:[a.jsxs("div",{className:"wf-card__events-title",children:[a.jsx(D,{name:"lock",size:13,color:"var(--text-muted)"}),"参数与凭据"]}),f.map(k=>a.jsx(ts,{item:k,onSave:o},k.key))]})]})]})}const xV=[{id:"project",label:"项目配置",icon:"folder"},{id:"roles",label:"角色配置",icon:"user"},{id:"workflows",label:"工作流配置",icon:"flow"}];function wV(){const[e,t]=S.useState(null),[n,s]=S.useState(!0),[r,i]=S.useState(null),[o,l]=S.useState(!1),[c,u]=S.useState(!1),[d,f]=S.useState("project"),[h,p]=S.useState(!1),v=S.useRef(!1),_=S.useCallback(async()=>{var k,j,E;s(!0),i(null);try{const b=await uM();if(t(b),!b.config.ok){const P=((k=b.config.modules.find(O=>O.id==="project"))==null?void 0:k.ok)??!0,R=((j=b.config.modules.find(O=>O.id==="coding_agent"))==null?void 0:j.ok)??!0,I=((E=b.config.modules.find(O=>O.id==="roles"))==null?void 0:E.ok)??!0;f(!P||!R?"project":I?"workflows":"roles")}}catch(b){i(b instanceof Error?b.message:String(b))}finally{s(!1)}},[]);S.useEffect(()=>{_()},[_]),S.useEffect(()=>{if(e&&!c){const k=j=>{j.preventDefault()};return window.addEventListener("beforeunload",k),()=>window.removeEventListener("beforeunload",k)}},[e,c]);const w=S.useCallback(async()=>{if(!(v.current||c)){v.current=!0,l(!0);try{await aM(),u(!0)}catch(k){i(k instanceof Error?k.message:String(k))}finally{l(!1),v.current=!1}}},[c]),m=S.useCallback(async(k,j)=>{const E=await Ly([{writeTarget:k,value:j}]);t(b=>b&&{...b,config:E.recheck})},[]),y=S.useCallback(async k=>{const j=await Ly(k);t(E=>E&&{...E,config:j.recheck})},[]),g=S.useCallback(async(k,j)=>{try{const E=await cM(k,j);return t(b=>b&&{...b,config:E.recheck}),{ok:E.ok,message:E.message}}catch(E){const b=E instanceof Error?E.message:"知识库导入失败";return i(b),{ok:!1,message:b}}},[]),x=S.useCallback(async(k,j)=>{try{const E=await lM(k,j);return t(b=>b&&{...b,config:E.recheck}),{ok:E.ok,message:E.message}}catch(E){const b=E instanceof Error?E.message:"文件上传失败";return i(b),{ok:!1,message:b}}},[]);return c?a.jsx("div",{className:"adjust",children:a.jsxs("div",{className:"adjust__done",children:[a.jsx("span",{className:"adjust__done-icon",children:a.jsx(D,{name:"check",size:32,color:"var(--green)"})}),a.jsx("h2",{className:"adjust__done-title",children:"配置完成"}),a.jsx("p",{className:"adjust__done-text",children:"所有配置项已保存到本地文件,CLI 将继续 setup 流程。"}),a.jsx("p",{className:"adjust__done-hint",children:"可以关闭此页面。"})]})}):a.jsxs("div",{className:"adjust",children:[a.jsxs("div",{className:"adjust__head",children:[a.jsx("h1",{className:"adjust__title",children:"参数调整"}),a.jsx("p",{className:"adjust__sub",children:"配置项目参数、角色和工作流"})]}),n&&a.jsx("div",{className:"adjust__loading",children:"正在加载配置状态…"}),r&&a.jsxs("div",{className:"adjust__error",children:[a.jsx(D,{name:"warn",size:16,color:"var(--red)"}),a.jsx("span",{children:r}),a.jsx("button",{type:"button",className:"adjust__retry",onClick:()=>void _(),children:"重试"})]}),e&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"adjust__hint",children:[a.jsx(D,{name:"folder",size:14,color:"var(--text-muted)"}),a.jsx("code",{children:e.config.projectPath})]}),a.jsxs("div",{className:"adjust__tab-area",children:[a.jsx("div",{className:"adjust__tabs",children:xV.map(k=>{var I,O,V,N,T;const j=((I=e.config.modules.find(M=>M.id==="env"))==null?void 0:I.items)??[],E=new Set(e.projectEnvRefs??j.map(M=>M.key)),b=new Set(Object.values(e.workflowTopology).flatMap(M=>M.envRefs??[])),P=M=>j.some($=>$.status==="error"&&M.has($.key)),R=k.id==="project"?(((O=e.config.modules.find(M=>M.id==="project"))==null?void 0:O.ok)??!0)&&(((V=e.config.modules.find(M=>M.id==="coding_agent"))==null?void 0:V.ok)??!0)&&!P(E):k.id==="roles"?((N=e.config.modules.find(M=>M.id==="roles"))==null?void 0:N.ok)??!0:(((T=e.config.modules.find(M=>M.id==="workflow"))==null?void 0:T.ok)??!0)&&!P(b);return a.jsxs("button",{type:"button",className:`adjust__tab${d===k.id?" is-active":""}${R?"":" has-error"}`,onClick:()=>f(k.id),children:[a.jsx(D,{name:k.icon,size:13}),k.label,!R&&a.jsx("span",{className:"adjust__tab-dot"})]},k.id)})}),a.jsxs("div",{className:"adjust__tab-content",children:[d==="project"&&a.jsx(hV,{config:e.config,engines:e.engines,projectEnvRefs:e.projectEnvRefs,onSave:m,onBatchSave:y}),d==="roles"&&a.jsx(mV,{config:e.config,onSave:m,onKbIngest:g,onKbUpload:x}),d==="workflows"&&a.jsx(yV,{config:e.config,workflowTopology:e.workflowTopology,onSave:m})]})]}),a.jsx(JF,{summary:e.config.summary,allPassed:e.config.ok,saving:o,onComplete:()=>p(!0)}),h&&a.jsx("div",{className:"modal-overlay",onClick:()=>p(!1),children:a.jsxs("div",{className:"modal-card",onClick:k=>k.stopPropagation(),children:[a.jsxs("div",{className:"modal-card__head",children:[a.jsx("span",{className:"modal-card__icon",style:{background:"var(--accent-tint)",color:"var(--accent)"},children:a.jsx(D,{name:"check",size:16})}),a.jsx("span",{className:"modal-card__title",children:"确认进入搭建"}),a.jsx("button",{type:"button",className:"modal-card__close",onClick:()=>p(!1),children:a.jsx(D,{name:"close",size:14})})]}),a.jsx("div",{className:"modal-card__body",children:a.jsx("p",{style:{margin:0,fontSize:14,color:"var(--text)"},children:"确认不再修改配置,进入下一步搭建流程?"})}),a.jsxs("div",{className:"modal-card__foot",children:[a.jsx("button",{type:"button",className:"modal-card__btn",onClick:()=>p(!1),children:"继续修改"}),a.jsx("button",{type:"button",className:"primary modal-card__btn",disabled:o,onClick:()=>{p(!1),w()},children:o?"完成中…":"确认,继续搭建"})]})]})})]})]})}function _V({onSwitchToRegister:e}){const[t,n]=S.useState(""),[s,r]=S.useState(""),[i,o]=S.useState(""),[l,c]=S.useState(!1);async function u(d){if(d.preventDefault(),!(!t||!s)){o(""),c(!0);try{await qs.login(t,s)}catch(f){o(f instanceof Error?f.message:String(f))}finally{c(!1)}}}return a.jsx("div",{className:"auth-page",children:a.jsxs("form",{className:"auth-card",onSubmit:u,children:[a.jsxs("div",{className:"auth-card__brand",children:[a.jsx("span",{className:"auth-card__brand-mark",children:a.jsx(D,{name:"sparkle",size:18,color:"#fff"})}),a.jsx("span",{className:"auth-card__brand-name",children:"AITable Agent"})]}),a.jsx("h2",{className:"auth-card__title",children:"登录"}),i&&a.jsx("div",{className:"auth-error",children:i}),a.jsxs("div",{className:"auth-field",children:[a.jsx("label",{className:"auth-field__label",children:"用户名"}),a.jsx("input",{className:"auth-field__input",type:"text",placeholder:"请输入用户名",value:t,onChange:d=>n(d.target.value),autoComplete:"username",autoFocus:!0})]}),a.jsxs("div",{className:"auth-field",children:[a.jsx("label",{className:"auth-field__label",children:"密码"}),a.jsx("input",{className:"auth-field__input",type:"password",placeholder:"请输入密码",value:s,onChange:d=>r(d.target.value),autoComplete:"current-password"})]}),a.jsxs("button",{type:"submit",className:"primary auth-submit",disabled:l||!t||!s,children:[l&&a.jsx("span",{className:"auth-spinner"}),l?"登录中...":"登录"]}),a.jsxs("div",{className:"auth-footer",children:["没有账号?",a.jsx("button",{type:"button",className:"auth-footer__link",onClick:e,children:"注册"})]})]})})}function kV({onSwitchToLogin:e}){const[t,n]=S.useState(""),[s,r]=S.useState(""),[i,o]=S.useState(""),[l,c]=S.useState(""),[u,d]=S.useState({}),[f,h]=S.useState(!1);function p(){const _={};return(t.length<3||t.length>32)&&(_.username="用户名长度需在 3-32 个字符之间"),s.length<6&&(_.password="密码长度至少 6 个字符"),s!==i&&(_.confirm="两次输入的密码不一致"),d(_),Object.keys(_).length===0}async function v(_){if(_.preventDefault(),c(""),!!p()){h(!0);try{await qs.register(t,s)}catch(w){c(w instanceof Error?w.message:String(w))}finally{h(!1)}}}return a.jsx("div",{className:"auth-page",children:a.jsxs("form",{className:"auth-card",onSubmit:v,children:[a.jsxs("div",{className:"auth-card__brand",children:[a.jsx("span",{className:"auth-card__brand-mark",children:a.jsx(D,{name:"sparkle",size:18,color:"#fff"})}),a.jsx("span",{className:"auth-card__brand-name",children:"AITable Agent"})]}),a.jsx("h2",{className:"auth-card__title",children:"注册"}),l&&a.jsx("div",{className:"auth-error",children:l}),a.jsxs("div",{className:"auth-field",children:[a.jsx("label",{className:"auth-field__label",children:"用户名"}),a.jsx("input",{className:`auth-field__input${u.username?" is-error":""}`,type:"text",placeholder:"3-32 个字符",value:t,onChange:_=>{n(_.target.value),u.username&&d(w=>({...w,username:void 0}))},autoComplete:"username",autoFocus:!0}),u.username&&a.jsx("div",{className:"auth-field__hint",children:u.username})]}),a.jsxs("div",{className:"auth-field",children:[a.jsx("label",{className:"auth-field__label",children:"密码"}),a.jsx("input",{className:`auth-field__input${u.password?" is-error":""}`,type:"password",placeholder:"至少 6 个字符",value:s,onChange:_=>{r(_.target.value),u.password&&d(w=>({...w,password:void 0}))},autoComplete:"new-password"}),u.password&&a.jsx("div",{className:"auth-field__hint",children:u.password})]}),a.jsxs("div",{className:"auth-field",children:[a.jsx("label",{className:"auth-field__label",children:"确认密码"}),a.jsx("input",{className:`auth-field__input${u.confirm?" is-error":""}`,type:"password",placeholder:"再次输入密码",value:i,onChange:_=>{o(_.target.value),u.confirm&&d(w=>({...w,confirm:void 0}))},autoComplete:"new-password"}),u.confirm&&a.jsx("div",{className:"auth-field__hint",children:u.confirm})]}),a.jsxs("button",{type:"submit",className:"primary auth-submit",disabled:f||!t||!s||!i,children:[f&&a.jsx("span",{className:"auth-spinner"}),f?"注册中...":"注册"]}),a.jsxs("div",{className:"auth-footer",children:["已有账号?",a.jsx("button",{type:"button",className:"auth-footer__link",onClick:e,children:"登录"})]})]})})}function Kf({machineKey:e,ownerToken:t,machineName:n,title:s,persistent:r,onClose:i}){const[o,l]=S.useState(!1),[c,u]=S.useState(!1),[d,f]=S.useState(!1),h=!!t,p=t??e??"",v=h?"Owner Token":"Machine Key",_=YI(),w=h?GI(t,n||void 0):qI(e??"");function m(y,g){navigator.clipboard.writeText(y).then(()=>{g(!0),setTimeout(()=>g(!1),2e3)})}return a.jsxs("div",{className:"daemon-connect-card",children:[a.jsxs("div",{className:"daemon-connect-card__header",children:[a.jsx(D,{name:"check",size:16,color:"var(--green)"}),a.jsx("span",{className:"daemon-connect-card__title",children:s??(h?"添加执行引擎":`机器「${n??""}」创建成功`)})]}),a.jsxs("div",{className:"daemon-connect-card__warn",children:[a.jsx(D,{name:"warn",size:14}),h?"该 owner-token 是账号级长期凭证,请妥善保管勿外泄(可在账号中心轮换)":r?"该命令含接入密钥,请妥善保管勿外泄":"密钥仅此一次展示,请立即复制保管"]}),a.jsxs("div",{className:"daemon-connect-card__section",children:[a.jsx("div",{className:"daemon-connect-card__label",children:v}),a.jsxs("div",{className:"daemon-connect-card__copyable",children:[a.jsx("code",{className:"daemon-connect-card__code",children:p}),a.jsxs("button",{type:"button",className:"daemon-connect-card__copy-btn",onClick:()=>m(p,l),title:"复制凭证",children:[o?a.jsx(D,{name:"check",size:12}):a.jsx(D,{name:"link",size:12}),o?"已复制":"复制"]})]})]}),a.jsxs("div",{className:"daemon-connect-card__section",children:[a.jsx("div",{className:"daemon-connect-card__label",children:"首次安装(一次性)"}),a.jsxs("div",{className:"daemon-connect-card__copyable daemon-connect-card__copyable--cmd",children:[a.jsx("pre",{className:"daemon-connect-card__pre",children:_}),a.jsxs("button",{type:"button",className:"daemon-connect-card__copy-btn",onClick:()=>m(_,f),title:"复制安装命令",children:[d?a.jsx(D,{name:"check",size:12}):a.jsx(D,{name:"link",size:12}),d?"已复制":"复制"]})]}),a.jsx("div",{className:"daemon-connect-card__hint",children:"仅首次安装或升级 CLI 时执行一次,之后无需重复。"})]}),a.jsxs("div",{className:"daemon-connect-card__section",children:[a.jsx("div",{className:"daemon-connect-card__label",children:"Daemon 接入命令(后台运行)"}),a.jsxs("div",{className:"daemon-connect-card__copyable daemon-connect-card__copyable--cmd",children:[a.jsx("pre",{className:"daemon-connect-card__pre",children:w}),a.jsxs("button",{type:"button",className:"daemon-connect-card__copy-btn",onClick:()=>m(w,u),title:"复制命令",children:[c?a.jsx(D,{name:"check",size:12}):a.jsx(D,{name:"link",size:12}),c?"已复制":"复制"]})]}),a.jsx("div",{className:"daemon-connect-card__hint",children:h?a.jsxs(a.Fragment,{children:["将 ",a.jsx("code",{children:"<此机器名>"})," 改为该机器的稳定名称(相同名字复用同一台,不同名字新增一台), 在目标机器上执行即可:保存凭证 → ",a.jsx("strong",{children:"后台启动 daemon"}),", 终端随后打印 status / logs / stop 等常用命令指引。工作区默认为"," ",a.jsx("code",{children:"~/.aitable-workflow/workspaces/<机器名>"}),",如需自定义可加"," ",a.jsx("code",{children:"--workspace-root <目录>"}),"。",a.jsx("br",{}),"多网关 / 多台机器请为每台使用",a.jsxs("strong",{children:["不同的 ",a.jsx("code",{children:"--name"})]}),"(相同 name 连不同 gateway 会覆盖本机凭证)。"]}):a.jsxs(a.Fragment,{children:["在目标机器上执行即可:保存凭证 → ",a.jsx("strong",{children:"后台启动 daemon"}),", 终端随后打印 status / logs / stop 等常用命令指引。工作区默认为"," ",a.jsx("code",{children:"~/.aitable-workflow/workspaces/<机器名>"}),",如需自定义可加"," ",a.jsx("code",{children:"--workspace-root <目录>"}),"。",a.jsx("br",{}),"多网关 / 多台机器请为每台使用",a.jsxs("strong",{children:["不同的 ",a.jsx("code",{children:"--name"})]}),"(相同 name 连不同 gateway 会覆盖本机凭证)。"]})})]}),a.jsx("div",{className:"daemon-connect-card__actions",children:a.jsx("button",{type:"button",className:"daemon-connect-card__close",onClick:i,children:"我已复制,关闭"})})]})}function jV(e){const t=Date.now(),n=new Date(e).getTime(),s=t-n;if(Number.isNaN(s))return e;const r=Math.floor(s/1e3);if(r<60)return"刚刚";const i=Math.floor(r/60);if(i<60)return`${i}分钟前`;const o=Math.floor(i/60);if(o<24)return`${o}小时前`;const l=Math.floor(o/24);if(l<30)return`${l}天前`;const c=Math.floor(l/30);return c<12?`${c}个月前`:`${Math.floor(c/12)}年前`}function SV(e){return e.length<=12?e:e.slice(0,6)+"..."+e.slice(-4)}const NV={claudecode:"Claude",codex:"Codex",qoder:"Qoder",codebuddy:"Codebuddy",opencode:"OpenCode",qwen:"Qwen",deepseek:"DeepSeek",trae:"Trae"};function bV({machine:e,onRevoke:t,onUpdated:n}){const[s,r]=S.useState(!1),[i,o]=S.useState(!1),[l,c]=S.useState(""),[u,d]=S.useState(!1),[f,h]=S.useState(null),[p,v]=S.useState(null);function _(){navigator.clipboard.writeText(e.machineId).then(()=>{r(!0),setTimeout(()=>r(!1),1500)})}async function w(){d(!0);try{const b=await J1();h(b)}catch(b){window.alert("获取接入指令失败:"+(b instanceof Error?b.message:String(b)))}finally{d(!1)}}async function m(){if(window.confirm(`确定要为「${e.displayName||e.name}」重新生成密钥吗?旧密钥将立即失效,需用新密钥重新接入。`)){d(!0);try{const P=await HI(e.machineId);v(P)}catch(P){window.alert("重新生成失败:"+(P instanceof Error?P.message:String(P)))}finally{d(!1)}}}function y(){window.confirm(`确定要撤销执行引擎「${e.displayName||e.name}」吗?撤销后该机器将无法连接。`)&&t(e.machineId)}function g(){c(e.displayName||e.name),o(!0)}async function x(){const b=l.trim();if(b){try{await BI(e.machineId,{displayName:b}),n==null||n(e.machineId,{displayName:b})}catch(P){window.alert("修改失败:"+(P instanceof Error?P.message:String(P)))}o(!1)}}const k=e.displayName||e.name,j=e.status==="online",E=e.runtimes??[];return a.jsxs("div",{className:"machine-card",children:[a.jsxs("div",{className:"machine-card__header",children:[a.jsx("span",{className:`machine-status ${j?"machine-status--online":"machine-status--offline"}`}),i?a.jsxs("span",{className:"machine-card__edit-row",children:[a.jsx("input",{className:"machine-card__edit-input",type:"text",value:l,onChange:b=>c(b.target.value),onKeyDown:b=>{b.key==="Enter"&&x(),b.key==="Escape"&&o(!1)},autoFocus:!0}),a.jsx("button",{type:"button",className:"machine-card__edit-save",onClick:()=>void x(),title:"保存",children:a.jsx(D,{name:"check",size:12})}),a.jsx("button",{type:"button",className:"machine-card__edit-cancel",onClick:()=>o(!1),title:"取消",children:a.jsx(D,{name:"close",size:12})})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"machine-card__name",onDoubleClick:g,title:"双击编辑名称",children:k}),e.displayName&&e.name!==e.displayName&&a.jsx("span",{className:"machine-card__slug",children:e.name})]})]}),e.description&&a.jsx("div",{className:"machine-card__desc",children:e.description}),E.length>0?a.jsxs("div",{className:`machine-card__runtimes${j?"":" machine-card__runtimes--offline"}`,children:[E.map(b=>a.jsx("span",{className:"machine-card__runtime-tag",children:NV[b]??b},b)),e.hasDws&&a.jsx("span",{className:"machine-card__runtime-tag machine-card__runtime-tag--dws",children:"dws"})]}):a.jsx("div",{className:"machine-card__runtimes machine-card__runtimes--offline",children:a.jsx("span",{className:"machine-card__runtime-hint",children:"未探测到引擎"})}),a.jsxs("div",{className:"machine-card__meta",children:[a.jsxs("span",{className:"machine-card__id",title:e.machineId,children:["ID: ",SV(e.machineId),a.jsx("button",{type:"button",className:"machine-card__copy",onClick:_,title:"复制 Machine ID",children:s?a.jsx(D,{name:"check",size:12}):a.jsx(D,{name:"link",size:12})})]}),a.jsx("span",{className:"machine-card__seen",children:j?"在线":e.lastSeen?`最后在线 ${jV(e.lastSeen)}`:"从未连接"})]}),a.jsxs("div",{className:"machine-card__actions",children:[a.jsxs("button",{type:"button",className:"machine-card__action-btn",onClick:g,title:"编辑名称",children:[a.jsx(D,{name:"file",size:12})," 编辑"]}),a.jsxs("button",{type:"button",className:"machine-card__action-btn",onClick:()=>void w(),disabled:u,title:"查看该机器的接入指令(Key + 启动命令)",children:[a.jsx(D,{name:"link",size:12})," 查看指令"]}),a.jsxs("button",{type:"button",className:"machine-card__action-btn",onClick:()=>void m(),disabled:u,title:"重新生成密钥(旧密钥失效)",children:[a.jsx(D,{name:"refresh",size:12})," 重生成密钥"]}),a.jsx("button",{type:"button",className:"machine-card__revoke",onClick:y,children:"撤销"})]}),f&&a.jsx(Kf,{ownerToken:f,machineName:e.name,title:`「${k}」接入指令`,onClose:()=>h(null)}),p&&a.jsx(Kf,{machineKey:p,machineName:k,title:`「${k}」新密钥已生成`,onClose:()=>v(null)})]})}function yS(){const[e,t]=S.useState([]),[n,s]=S.useState(!0),[r,i]=S.useState(""),[o,l]=S.useState(!1),[c,u]=S.useState(null);async function d(){s(!0),i("");try{const w=await Ip();t(w)}catch(w){i(w instanceof Error?w.message:String(w))}finally{s(!1)}}S.useEffect(()=>{d()},[]);async function f(){l(!0);try{const w=await J1();u(w)}catch(w){window.alert("获取接入指令失败:"+(w instanceof Error?w.message:String(w)))}finally{l(!1)}}async function h(w){try{await VI(w),t(m=>m.filter(y=>y.machineId!==w))}catch(m){window.alert("撤销失败:"+(m instanceof Error?m.message:String(m)))}}function p(w,m){t(y=>y.map(g=>g.machineId===w?{...g,...m}:g))}if(n)return a.jsx("div",{className:"machine-list__loading",children:"加载中..."});if(r)return a.jsxs("div",{className:"machine-list__error",children:[a.jsx("span",{children:r}),a.jsx("button",{type:"button",className:"machine-list__retry",onClick:()=>void d(),children:"重试"})]});const v=e.filter(w=>w.status==="online"||w.lastSeen),_=v.filter(w=>w.status==="online").length;return a.jsxs("div",{className:"machine-list",children:[a.jsxs("div",{className:"machine-list__header",children:[a.jsxs("span",{className:"machine-list__count",children:["已接入 ",v.length," 台 · 在线 ",_," 台"]}),a.jsxs("div",{className:"machine-list__header-actions",children:[a.jsxs("button",{type:"button",className:"machine-list__refresh",onClick:()=>void d(),title:"刷新(daemon 接入后点此更新列表)",children:[a.jsx(D,{name:"refresh",size:14}),"刷新"]}),a.jsxs("button",{type:"button",className:"primary machine-list__add",onClick:()=>void f(),disabled:o,children:[a.jsx(D,{name:"plus",size:14}),o?"获取中...":"添加引擎"]})]})]}),c&&a.jsx(Kf,{ownerToken:c,title:"添加执行引擎",onClose:()=>u(null)}),v.length===0&&!c?a.jsx("div",{className:"machine-list__empty",children:"暂无已接入的执行引擎。点击「添加引擎」获取自注册接入指令,在目标机器上执行 daemon 启动命令(填入机器名);接入成功后点「刷新」即可看到。"}):a.jsx("div",{className:"machine-list__grid",children:v.map(w=>a.jsx(bV,{machine:w,onRevoke:h,onUpdated:p},w.machineId))})]})}const EV={admin:"管理员",user:"普通用户"};function CV(e){try{return new Date(e).toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric"})}catch{return e}}function TV(){var c,u;const e=kp(),[t,n]=S.useState(null),[s,r]=S.useState(!0);S.useEffect(()=>{(async()=>{try{const d=await FI();n(d)}catch{}finally{r(!1)}})()},[]);const i=(t==null?void 0:t.username)??((c=e.user)==null?void 0:c.username)??"---",o=(t==null?void 0:t.role)??((u=e.user)==null?void 0:u.role)??"user",l=(t==null?void 0:t.createdAt)??null;return a.jsx("div",{className:"split split--chatonly",children:a.jsxs("div",{className:"split__work",children:[a.jsx("div",{className:"work-head",children:a.jsxs("div",{className:"work-head__left",children:[a.jsxs("button",{type:"button",className:"account-back-btn",onClick:()=>B.setStage("home"),title:"返回首页",children:[a.jsx(D,{name:"chevron-left",size:16}),"返回"]}),a.jsxs("div",{children:[a.jsx("div",{className:"work-head__title",children:"用户中心"}),a.jsx("div",{className:"work-head__sub",children:"管理账号信息与执行引擎"})]})]})}),a.jsx("div",{className:"work-body",children:a.jsxs("div",{className:"account-page",children:[a.jsxs("section",{className:"account-section",children:[a.jsx("h3",{className:"account-section__title",children:"账号信息"}),a.jsx("div",{className:"account-card",children:s?a.jsx("div",{className:"account-card__loading",children:"加载中..."}):a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"account-card__row",children:[a.jsx("span",{className:"account-card__avatar",children:a.jsx(D,{name:"user",size:24})}),a.jsxs("div",{className:"account-card__info",children:[a.jsx("span",{className:"account-card__username",children:i}),a.jsx("span",{className:`account-card__role account-card__role--${o}`,children:EV[o]??o})]})]}),l&&a.jsxs("div",{className:"account-card__detail",children:[a.jsx("span",{className:"account-card__label",children:"注册时间"}),a.jsx("span",{className:"account-card__value",children:CV(l)})]})]})})]}),a.jsxs("section",{className:"account-section",children:[a.jsx("h3",{className:"account-section__title",children:"执行引擎管理"}),a.jsx(yS,{})]})]})})]})})}function PV(){return a.jsx("div",{className:"split split--chatonly",children:a.jsxs("div",{className:"split__work",children:[a.jsx("div",{className:"work-head",children:a.jsxs("div",{className:"work-head__left",children:[a.jsxs("button",{type:"button",className:"account-back-btn",onClick:()=>B.setStage("home"),title:"返回首页",children:[a.jsx(D,{name:"chevron-left",size:16}),"返回"]}),a.jsxs("div",{children:[a.jsx("div",{className:"work-head__title",children:"执行引擎"}),a.jsx("div",{className:"work-head__sub",children:"生成接入密钥、查看启动命令,管理已接入的引擎"})]})]})}),a.jsx("div",{className:"work-body",children:a.jsx("div",{className:"account-page",children:a.jsx("section",{className:"account-section",children:a.jsx(yS,{})})})})]})})}const AV={init:{title:"一次性配置",sub:"Agent · 角色 · SOP"},design:{title:"工作流设计",sub:"需求对齐后可视化编排流程方案"},setup:{title:"AI 表格搭建",sub:"自动创建字段与视图"},adjust:{title:"参数调整",sub:"确认并补全项目配置"},test:{title:"试运行",sub:"用一条真实记录验证整条流程"},run:{title:"运行监控",sub:"任务流转 · 步骤日志 · 人工审批"}};function MV({stage:e}){const t=AV[e];return a.jsx("div",{className:"split split--chatonly",children:a.jsxs("div",{className:"split__work",children:[a.jsx("div",{className:"work-head",children:a.jsxs("div",{children:[a.jsx("div",{className:"work-head__title",children:t.title}),a.jsx("div",{className:"work-head__sub",children:t.sub})]})}),a.jsx("div",{className:"work-body",children:a.jsxs("div",{className:"empty-hint",children:["「",t.title,"」阶段将在后续任务中实现。",a.jsx("br",{}),"当前用于验证外壳布局、主题与阶段导航。"]})})]})})}const IV=[{icon:"robot",label:"配置",stage:"init",desc:"发现并接入 Agent、角色、SOP"},{icon:"flow",label:"设计",stage:"design",desc:"问答对齐后可视化编排工作流"},{icon:"table",label:"搭建",stage:"setup",desc:"自动创建字段与视图"},{icon:"sparkle",label:"试运行",stage:"test",desc:"用一条真实记录验证流程"}];function RV(){const[e,t]=S.useState(!1),[n,s]=S.useState(!1);return a.jsxs("div",{className:"home-hero",children:[a.jsx(Ye.span,{className:"home-hero__mark",variants:NI,initial:"hidden",animate:"visible",children:a.jsx(D,{name:"sparkle",size:28,color:"#fff"})}),a.jsx("h1",{className:"home-hero__title",children:"用对话搭建你的 AI 表格工作流"}),a.jsxs("p",{className:"home-hero__desc",children:["从配置、设计、搭建到试运行,全程对话式引导。",a.jsx("br",{}),"以 HR、法务等专业岗位协作为例,四步落地一条可运行的业务流程。"]}),a.jsxs("div",{className:"home-hero__ctas",children:[a.jsxs("button",{type:"button",className:"primary home-hero__cta",onClick:()=>s(!0),children:[a.jsx(D,{name:"play",size:16,color:"#fff"}),"新建项目"]}),a.jsxs("button",{type:"button",className:"home-hero__cta home-hero__cta--ghost",onClick:()=>t(!0),children:[a.jsx(D,{name:"plus",size:16}),"导入已有项目"]})]}),a.jsx(Ye.div,{className:"home-beats",variants:q1,initial:"hidden",animate:"visible",children:IV.map((r,i)=>a.jsxs(Ye.button,{type:"button",className:"home-beat",variants:yt,onClick:()=>B.setStage(r.stage),children:[a.jsx("span",{className:"home-beat__idx",children:i+1}),a.jsx("span",{className:"home-beat__icon",children:a.jsx(D,{name:r.icon,size:18})}),a.jsx("span",{className:"home-beat__label",children:r.label}),a.jsx("span",{className:"home-beat__desc",children:r.desc})]},r.stage))}),e&&a.jsx(ZF,{onClose:()=>t(!1)}),n&&a.jsx(k1,{onConfirm:r=>{const i=le?null:`mock-${Date.now()}`;B.set({projectId:i,projectSource:"new"}),B.startNewWorkflow(),B.update(o=>({init:{...o.init,name:r}})),s(!1)},onCancel:()=>s(!1)})]})}function $V(){const e=ee(i=>i.stage),t=kp(),[n,s]=S.useState("login"),[r]=S.useState(()=>oM());return S.useEffect(()=>{r&&B.setStage("adjust")},[r]),Me&&!t.token&&!r?n==="register"?a.jsx(kV,{onSwitchToLogin:()=>s("login")}):a.jsx(_V,{onSwitchToRegister:()=>s("register")}):a.jsx(LV,{stage:e})}function LV({stage:e}){const t=ee(n=>n.projectId);return S.useEffect(()=>{if(!le)return;const n=B.get(),s=n.projectId;if(!s&&n.stage!=="home")return;let r=!1;return(async()=>{try{await S1();const i=await Wl();if(r)return;if(B.set({projects:i}),s&&!i.some(h=>h.id===s)){B.reset();return}const o=s?i.find(h=>h.id===s):i[0];if(!o||r)return;const l=await qo(o.id),c=await jp(o.id).catch(()=>null),u=(c==null?void 0:c.stageRuntime)??n.stageRuntime,d=l.some(h=>h.path==="workflow.yml");let f=null;if(d)try{f=await Yo(o.id)}catch{}if(!r){const h=Me?await Lr(o.id).catch(()=>null):null,p=await K1(o.id,n.currentWorkflowId).catch(()=>({workflows:[],currentWorkflowId:null,workflowFiles:[]}));B.set(Tc({projectId:o.id,files:l,projectState:c,workflow:f,engineBinding:h,workflows:p.workflows,currentWorkflowId:p.currentWorkflowId,workflowFiles:p.workflowFiles,fallbackStage:n.stage==="home"?void 0:n.stage}))}}catch{}})(),()=>{r=!0}},[]),a.jsx(SI,{children:e==="home"?a.jsx(RV,{}):e==="init"?a.jsx(CF,{}):e==="design"?a.jsx(xF,{},t??"__no_project__"):e==="setup"?a.jsx(MF,{}):e==="adjust"?a.jsx(wV,{}):e==="test"?a.jsx($F,{}):e==="run"?a.jsx(KF,{}):e==="account"?a.jsx(TV,{}):e==="engines"?a.jsx(PV,{}):a.jsx(MV,{stage:e})})}WI();Vw(document.getElementById("root")).render(a.jsx(S.StrictMode,{children:a.jsx($V,{})}));
|