cross-seed 7.0.0-16 → 7.0.0-17

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.
Files changed (36) hide show
  1. package/dist/jobs.d.ts +0 -1
  2. package/dist/jobs.js +2 -10
  3. package/dist/jobs.js.map +1 -1
  4. package/dist/routes/baseApi.js +2 -11
  5. package/dist/routes/baseApi.js.map +1 -1
  6. package/dist/trpc/routers/jobs.js +2 -13
  7. package/dist/trpc/routers/jobs.js.map +1 -1
  8. package/dist/webui/assets/{array-field-Ct1CGaaA.js → array-field-Dsp_siKw.js} +1 -1
  9. package/dist/webui/assets/{clients-fpoysCAg.js → clients-hnNa6Pun.js} +1 -1
  10. package/dist/webui/assets/connect-D-F0ikwr.js +2 -0
  11. package/dist/webui/assets/{debug-DF0WP2xd.js → debug-B0ShNhHk.js} +1 -1
  12. package/dist/webui/assets/directories-RFIEOIAy.js +1 -0
  13. package/dist/webui/assets/{duration-field-CAoKtbPP.js → duration-field-CsoFnZri.js} +1 -1
  14. package/dist/webui/assets/{form-context-D2DkKajN.js → form-context-BnI-Tfp9.js} +1 -1
  15. package/dist/webui/assets/{general-DWA6gI_M.js → general-CV69d1JF.js} +1 -1
  16. package/dist/webui/assets/{health-C5vTEheg.js → health-DRS5mlQk.js} +1 -1
  17. package/dist/webui/assets/{index-DupFqisC.js → index-B0MwZW7U.js} +2 -2
  18. package/dist/webui/assets/{jobs-D77_NL2V.js → jobs-BnlT9dp4.js} +1 -1
  19. package/dist/webui/assets/{library-HRYzPt0b.js → library-OuGsc5Wh.js} +1 -1
  20. package/dist/webui/assets/{logs-DUZhHNRp.js → logs-CN5JZHyf.js} +1 -1
  21. package/dist/webui/assets/{number-field-D0KzOtk2.js → number-field-BYzBpDq9.js} +1 -1
  22. package/dist/webui/assets/{routes-DMT2wurH.js → routes-CkWbGNc3.js} +1 -1
  23. package/dist/webui/assets/search-Ebv3KQle.js +1 -0
  24. package/dist/webui/assets/{select-field-BRpJtfgG.js → select-field-MtWDnp2I.js} +1 -1
  25. package/dist/webui/assets/settings-KugdxI0o.js +1 -0
  26. package/dist/webui/assets/{submit-button-1vGDzh9R.js → submit-button-lTWRIpu1.js} +1 -1
  27. package/dist/webui/assets/{switch-field-CebmlmyS.js → switch-field-DEfuyX9y.js} +1 -1
  28. package/dist/webui/assets/{text-field-BV9USgWh.js → text-field-Ccb6Otvd.js} +1 -1
  29. package/dist/webui/assets/{trackers-Btkkj--X.js → trackers-D2nxoOs2.js} +1 -1
  30. package/dist/webui/assets/{use-settings-form-submit-B6Rt0uK0.js → use-settings-form-submit-DyXR3etD.js} +3 -3
  31. package/dist/webui/index.html +1 -1
  32. package/package.json +1 -1
  33. package/dist/webui/assets/connect-CLFbw4YY.js +0 -2
  34. package/dist/webui/assets/directories-JsO-FQBY.js +0 -1
  35. package/dist/webui/assets/search-DaZGfBcE.js +0 -1
  36. package/dist/webui/assets/settings-BnfSFoOK.js +0 -1
package/dist/jobs.d.ts CHANGED
@@ -12,7 +12,6 @@ declare class Job {
12
12
  exec: () => Promise<void>;
13
13
  isActive: boolean;
14
14
  runAheadOfSchedule: boolean;
15
- delayNextRun: boolean;
16
15
  configOverride: Partial<RuntimeConfig>;
17
16
  shouldRunFn: () => boolean;
18
17
  constructor(name: JobName, cadence: number, exec: () => Promise<void>, shouldRunFn?: () => boolean);
package/dist/jobs.js CHANGED
@@ -22,7 +22,6 @@ class Job {
22
22
  exec;
23
23
  isActive;
24
24
  runAheadOfSchedule;
25
- delayNextRun;
26
25
  configOverride;
27
26
  shouldRunFn;
28
27
  constructor(name, cadence, exec, shouldRunFn = () => true) {
@@ -31,7 +30,6 @@ class Job {
31
30
  this.exec = exec;
32
31
  this.isActive = false;
33
32
  this.runAheadOfSchedule = false;
34
- this.delayNextRun = false;
35
33
  this.configOverride = {};
36
34
  this.shouldRunFn = shouldRunFn;
37
35
  }
@@ -123,17 +121,11 @@ export async function checkJobs(options = { isFirstRun: false, useQueue: false }
123
121
  .then(async (didRun) => {
124
122
  if (!didRun)
125
123
  return; // upon success, update the log
126
- const toDelay = job.delayNextRun;
127
- job.delayNextRun = false;
128
- const last_run = toDelay ? now + job.cadence : now;
129
124
  await db("job_log")
130
- .insert({ name: job.name, last_run })
125
+ .insert({ name: job.name, last_run: now })
131
126
  .onConflict("name")
132
127
  .merge();
133
- const cadence = toDelay
134
- ? job.cadence * 2
135
- : job.cadence;
136
- logNextRun(job.name, cadence, now);
128
+ logNextRun(job.name, job.cadence, now);
137
129
  })
138
130
  .catch(exitOnCrossSeedErrors)
139
131
  .catch((e) => void logger.error(e));
package/dist/jobs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,12 @@ import { parse as qsParse } from "querystring";
5
5
  import { inspect } from "util";
6
6
  import { z } from "zod";
7
7
  import { Decision, InjectionResult, SaveResult, } from "../constants.js";
8
- import { checkJobs, getJobLastRun, getJobs, JobName } from "../jobs.js";
8
+ import { checkJobs, getJobs, JobName } from "../jobs.js";
9
9
  import { Label, logger } from "../logger.js";
10
10
  import { checkNewCandidateMatch, searchForLocalTorrentByCriteria, } from "../pipeline.js";
11
11
  import { getRuntimeConfig } from "../runtimeConfig.js";
12
12
  import { indexTorrentsAndDataDirs } from "../torrent.js";
13
- import { formatAsList, humanReadableDate, sanitizeInfoHash } from "../utils.js";
13
+ import { formatAsList, sanitizeInfoHash } from "../utils.js";
14
14
  import { authorize } from "../utils/authUtils.js";
15
15
  const ANNOUNCE_SCHEMA = z
16
16
  .object({
@@ -326,16 +326,7 @@ export async function baseApiPlugin(app) {
326
326
  logger.error({ label: Label.SCHEDULER, message });
327
327
  return reply.code(409).send(message);
328
328
  }
329
- const lastRun = (await getJobLastRun(job.name)) ?? 0;
330
- if (Date.now() < lastRun) {
331
- const message = `${job.name}: not eligible to run ahead of schedule, next scheduled run is at ${humanReadableDate(lastRun + job.cadence)} (triggering an early run is allowed after ${humanReadableDate(lastRun)})`;
332
- logger.error({ label: Label.SCHEDULER, message });
333
- return reply.code(409).send(message);
334
- }
335
329
  job.runAheadOfSchedule = true;
336
- if (job.name === JobName.SEARCH || job.name === JobName.RSS) {
337
- job.delayNextRun = true;
338
- }
339
330
  job.configOverride = {
340
331
  excludeRecentSearch: data.ignoreExcludeRecentSearch ? 1 : undefined,
341
332
  excludeOlder: data.ignoreExcludeOlder
@@ -1 +1 @@
1
- {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../src/routes/baseApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../src/routes/baseApi.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { z } from "zod";
2
2
  import ms from "ms";
3
3
  import { router, authedProcedure } from "../index.js";
4
- import { getJobs, getJobLastRun, JobName, checkJobs } from "../../jobs.js";
4
+ import { getJobs, JobName, checkJobs } from "../../jobs.js";
5
5
  import { Label, logger } from "../../logger.js";
6
- import { humanReadableDate } from "../../utils.js";
7
6
  import { db } from "../../db.js";
8
7
  export const jobsRouter = router({
9
8
  // Get all job statuses
@@ -30,10 +29,7 @@ export const jobsRouter = router({
30
29
  const nextExecution = now >= eligibilityTs
31
30
  ? "now"
32
31
  : new Date(eligibilityTs).toISOString();
33
- // Check if job can run now (not active and eligible for early run)
34
- // Jobs can run "ahead of schedule" if current time >= lastRun time
35
- // Note: lastRun can be in the future when delayNextRun was used
36
- const canRunNow = !job.isActive && (lastRun === undefined || now >= lastRun);
32
+ const canRunNow = !job.isActive;
37
33
  return {
38
34
  name: job.name,
39
35
  interval,
@@ -60,14 +56,7 @@ export const jobsRouter = router({
60
56
  if (job.isActive) {
61
57
  throw new Error(`${job.name}: already running`);
62
58
  }
63
- const lastRun = (await getJobLastRun(job.name)) ?? 0;
64
- if (Date.now() < lastRun) {
65
- throw new Error(`${job.name}: not eligible to run ahead of schedule, next scheduled run is at ${humanReadableDate(lastRun + job.cadence)} (triggering an early run is allowed after ${humanReadableDate(lastRun)})`);
66
- }
67
59
  job.runAheadOfSchedule = true;
68
- if (job.name === JobName.SEARCH || job.name === JobName.RSS) {
69
- job.delayNextRun = true;
70
- }
71
60
  // Clear any config overrides for manual runs
72
61
  job.configOverride = {};
73
62
  void checkJobs({ isFirstRun: false, useQueue: true });
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/trpc/routers/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/trpc/routers/jobs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{n as e}from"./useStore-CusP06SD.js";import{a as t}from"./dist-DhH_lYkz.js";import{t as n}from"./input-CsfmMUT5.js";import{t as r}from"./DeleteOption-dxKSbv6N.js";import{r as i}from"./form-context-D2DkKajN.js";var a=e(),o=({className:e,showDelete:o=!1,onDelete:s})=>{let c=i();return(0,a.jsxs)(`div`,{className:t(`flex items-center gap-2`,e),children:[(0,a.jsx)(n,{type:`text`,id:`${c.name}`,className:`form-input`,value:c.state.value?String(c.state.value):``,"aria-invalid":!!(c.state.meta.isTouched&&c.state.meta.errorMap.onBlur?.length>0),onBlur:c.handleBlur,onChange:e=>c.handleChange(e.target.value)}),o&&(0,a.jsx)(r,{onClick:s})]})};export{o as default};
1
+ import{n as e}from"./useStore-CusP06SD.js";import{a as t}from"./dist-DhH_lYkz.js";import{t as n}from"./input-CsfmMUT5.js";import{t as r}from"./DeleteOption-dxKSbv6N.js";import{r as i}from"./form-context-BnI-Tfp9.js";var a=e(),o=({className:e,showDelete:o=!1,onDelete:s})=>{let c=i();return(0,a.jsxs)(`div`,{className:t(`flex items-center gap-2`,e),children:[(0,a.jsx)(n,{type:`text`,id:`${c.name}`,className:`form-input`,value:c.state.value?String(c.state.value):``,"aria-invalid":!!(c.state.meta.isTouched&&c.state.meta.errorMap.onBlur?.length>0),onBlur:c.handleBlur,onChange:e=>c.handleChange(e.target.value)}),o&&(0,a.jsx)(r,{onClick:s})]})};export{o as default};
@@ -1 +1 @@
1
- import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{I as r,L as i,S as a,_ as o,b as s,g as c,v as l,x as u,y as d}from"./sidebar-y9WJu7Jw.js";import{a as f,i as p,n as m,r as h,s as g,t as _}from"./Page-C7KClZ28.js";import{t as v}from"./button-1cIaa9Lf.js";import{a as y,i as b,n as x,r as S,t as C}from"./trash-D083IWKI.js";import{t as w}from"./loader-circle-BQbzoYGJ.js";import{t as T}from"./test-tube-CbcievIk.js";import{f as E,i as D,t as O}from"./index-DupFqisC.js";import{S as ee,_ as k,a as A,d as j,f as te,i as M,m as N,n as P,r as F,t as I,u as L}from"./use-settings-form-submit-B6Rt0uK0.js";import{a as R,i as z,n as ne,o as B,r as V,t as re}from"./table-B1Y18B60.js";var H=e(n(),1),U=t();function ie({open:e,onOpenChange:t,client:n,onEdit:r}){return(0,U.jsx)(c,{open:e,onOpenChange:t,children:(0,U.jsxs)(l,{className:`sm:max-w-md`,children:[(0,U.jsxs)(u,{children:[(0,U.jsx)(a,{children:`View Torrent Client`}),(0,U.jsx)(d,{children:`View torrent client details.`})]}),(0,U.jsxs)(`div`,{className:`grid flex-1 auto-rows-min gap-6 px-4`,children:[(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(D,{children:`URL`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.url||`N/A`})]}),(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(D,{children:`Username`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.user||`N/A`})]}),(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(D,{children:`Password`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.password?`********`:`N/A`})]}),(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(D,{children:`Read only`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.readOnly?`Yes`:`No`})]})]}),(0,U.jsxs)(s,{children:[r&&(0,U.jsxs)(v,{type:`button`,onClick:()=>r(n),className:`flex-1`,children:[(0,U.jsx)(S,{className:`mr-2 h-4 w-4`}),`Edit`]}),(0,U.jsx)(o,{asChild:!0,className:`flex-1`,children:(0,U.jsx)(v,{type:`button`,variant:`outline`,className:`flex-1`,children:`Close`})})]})]})})}var W=e=>{try{return decodeURIComponent(e)}catch{return e}},G=e=>{let t=e.indexOf(`://`);if(t===-1)return e;let n=t+3,r=e.lastIndexOf(`@`);if(r<=n)return e;let i=e.slice(n,r),a=i.indexOf(`:`);if(a===-1)return e;let o=i.slice(0,a),s=i.slice(a+1),c=encodeURIComponent(W(o)),l=encodeURIComponent(W(s));return`${e.slice(0,n)}${c}:${l}${e.slice(r)}`},K=e=>new URL(G(e));function ae(e){return W(K(e).username)}function oe(e){return W(K(e).password)}var q=e=>{try{let t=K(e);return`${t.protocol}//${t.host}${t.pathname}${t.search}${t.hash}`}catch(t){let n=e.indexOf(`://`),r=n===-1?-1:n+3,i=e.lastIndexOf(`@`);if(r!==-1&&i>r){let t=`${e.slice(0,r)}${e.slice(i+1)}`;try{let e=new URL(t);return`${e.protocol}//${e.host}`}catch{return t}}return console.warn(`Unable to strip credentials from client URL`,t),e}};function J({endpointUrl:e,username:t=``,password:n=``,includeUsername:r=!0}){let i=K(q(e));return i.username=r?t:``,i.password=n,i.toString()}function Y({client:e,endpointUrl:t,username:n=``,password:r=``,readonly:i=!1}){let a=J({endpointUrl:t,username:n,password:r,includeUsername:e.toLowerCase()!==`deluge`});return`${e.toLowerCase()}:${i?`readonly:`:``}${a}`}function X({client:e,endpointUrl:t,username:n=``,password:r=``}){return J({endpointUrl:t,username:n,password:r,includeUsername:e.toLowerCase()!==`deluge`})}var Z=async({client:e,url:t,username:n=``,password:i})=>{try{return{success:(await r.clients.testConnection.mutate({client:e.toLowerCase(),url:t,username:n,password:i,readonly:!1})).success}}catch(e){return console.error(`Error testing connection:`,e),{success:!1}}},Q={qbittorrent:`qBittorrent`,rtorrent:`rTorrent`,transmission:`Transmission`,deluge:`Deluge`};function se({open:e,onOpenChange:t,mode:n,client:r}){let[f,p]=(0,H.useState)(!1),{isFieldRequired:m}=j(N),{data:h}=E(i().settings.get.queryOptions(void 0,{select:e=>e.config.torrentClients||[]})),{saveConfig:g,isLoading:_}=P(),y=A({...L,defaultValues:r??{},onSubmit:async({value:e})=>{try{let i={...e,readOnly:e?.readOnly??!1},a=N.safeParse(i);if(a.success){let e=a.data,i=Y({client:e.client,endpointUrl:e.url,username:e.user??``,password:e.password??``,readonly:e.readOnly}),o;n===`edit`&&r&&r.index!==void 0?(o=[...h||[]],o[r.index]=i):o=[...h||[],i],g({torrentClients:o}),t(!1)}else throw console.error(`FULL VALIDATION FAILED:`,a.error.format()),Error(`Validation failed`)}catch(e){return console.error(`Exception during full validation:`,e),{status:`error`,error:{_form:`An unexpected error occurred during validation`}}}},validators:{onSubmit:N}}),b=async()=>{p(!0);let e=String(y.getFieldValue(`client`)),t=String(y.getFieldValue(`url`)),n=String(y.getFieldValue(`user`)||``),r=String(y.getFieldValue(`password`)||``);(await Z({client:e,url:X({client:e,endpointUrl:t,username:n,password:r}),username:n,password:r})).success?(O.success(`Connection successful!`,{description:`The torrent client connection was successful.`}),p(!1)):(O.error(`Connection failed`,{description:`Failed to connect to the torrent client.`}),p(!1))},x=_||f;return(0,U.jsx)(c,{open:e,onOpenChange:t,children:(0,U.jsx)(l,{className:`sm:max-w-md`,children:(0,U.jsx)(M,{isFieldRequired:m,children:(0,U.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),e.stopPropagation(),y.handleSubmit()},children:[(0,U.jsxs)(u,{children:[(0,U.jsx)(a,{children:n===`edit`?`Edit Client`:`Create Client`}),(0,U.jsx)(d,{children:n===`edit`?`Edit the details of the torrent client.`:`Create a new torrent client.`})]}),(0,U.jsxs)(`div`,{className:`grid flex-1 auto-rows-min gap-6 px-4`,children:[(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`client`,children:e=>(0,U.jsx)(e.SelectField,{label:`Client`,options:Q})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`url`,children:e=>(0,U.jsx)(e.TextField,{label:`Endpoint URL`})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`user`,children:e=>(0,U.jsx)(e.TextField,{label:`User`})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`password`,children:e=>(0,U.jsx)(e.TextField,{label:`Password`,type:`password`})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`readOnly`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Read only`})})}),(0,U.jsx)(y.Subscribe,{selector:e=>({urlValue:e.values.url,urlMeta:e.fieldMeta.url,userValue:e.values.user,userMeta:e.fieldMeta.user,passwordValue:e.values.password,passwordMeta:e.fieldMeta.password,clientValue:e.values.client}),children:({urlValue:e,urlMeta:t,userValue:n,userMeta:r,passwordValue:i,passwordMeta:a,clientValue:o})=>{let s=e&&!t?.errors?.length,c=o===`transmission`&&i===void 0?!0:i&&!a?.errors?.length,l=o===`deluge`||o===`transmission`?!0:n&&!r?.errors?.length;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(v,{type:`button`,variant:`outline`,onClick:b,disabled:!(s&&c&&l),className:`w-full`,children:f?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(w,{className:`animate-spin`}),`Testing connection...`]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(T,{className:`mr-2`}),`Test Connection`]})}),o===`qbittorrent`&&(0,U.jsxs)(`p`,{className:`text-muted-foreground -mt-4 px-2 text-sm italic`,children:[`Note: Testing connections can return false positives if`,` `,(0,U.jsx)(`code`,{className:`bg-yellow-100 px-1`,children:`Bypass auth on localhost`}),` `,`is enabled in qBittorrent.`]})]})}})]}),(0,U.jsxs)(s,{className:`mt-6`,children:[(0,U.jsx)(y.AppForm,{children:(0,U.jsx)(y.SubmitButton,{label:n===`edit`?`Update`:`Create`,actionLabel:n===`edit`?`Updating...`:`Creating...`})}),(0,U.jsx)(o,{asChild:!0,children:(0,U.jsx)(v,{type:`button`,variant:`outline`,disabled:x,children:`Cancel`})})]})]})})})})}function $(){let e=i(),{saveConfig:t}=P(),[n,r]=(0,H.useState)(void 0),[a,o]=(0,H.useState)(null),[s,c]=(0,H.useState)(null),[l,u]=(0,H.useState)(!1),[d,w]=(0,H.useState)(!1),[T,D]=(0,H.useState)(`create`),{isFieldRequired:O}=j(k),{data:N}=E(e.settings.get.queryOptions(void 0,{select:e=>F(k,te(e.config),{includeUndefined:!0})})),W=I(),G=A({...L,defaultValues:N??L.defaultValues,onSubmit:W,validators:{onSubmit:k}}),[K,J]=(0,H.useState)(null);(0,H.useEffect)(()=>{K&&(document.getElementById(K)?.focus(),J(null))},[K]),(0,H.useEffect)(()=>{let e=N?.torrentClients??[];if(!e.length){r([]);return}r(e.map((e,t)=>{if(!e)return null;let n=``,r=``,i=!1,a=``,o=``;if(typeof e==`object`)n=e.client,i=e.readOnly||!1,r=e.url,a=e.user||``,o=e.password||``;else if(typeof e==`string`){let t=String(e);n=t.split(`:`)[0];let s=`${n}:readonly:`,c=`${n}:`;i=t.startsWith(s);let l=t.startsWith(s)?t.slice(s.length):t.slice(c.length);if(!l)return null;let u=q(l);if(!u)return null;r=u,a=ae(l),o=oe(l)}return!n||!r?null:{index:t,client:n,url:r,user:a,password:o,readOnly:i}}).filter(Boolean))},[N]);let X=e=>{e.preventDefault(),e.stopPropagation(),c(null),D(`create`),w(!0)},Z=e=>{u(e),e||o(null)},Q=(e,t)=>{e.preventDefault(),e.stopPropagation(),o(null),c(t),u(!0)},$=e=>{o(null),c(e),D(`edit`),u(!1),w(!0)},ce=e=>{o(null);let i=e.index===void 0?n?.filter(t=>t.url!==e.url):n?.filter(t=>t.index!==e.index);r(i),t({torrentClients:(i||[]).map(e=>Y({client:e.client,endpointUrl:e.url,username:e.user??``,password:e.password??``,readonly:e.readOnly??!1}))})};return(0,U.jsxs)(_,{breadcrumbs:[`Settings`,`Torrent Clients`],actions:(0,U.jsxs)(v,{onClick:X,type:`button`,size:`sm`,children:[(0,U.jsx)(x,{className:`mr-2 h-4 w-4`}),`Add Torrent Client`]}),children:[(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Torrent Clients`}),(0,U.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage your torrent clients`})]}),n?(0,U.jsx)(`div`,{className:`mt-4 mb-7 overflow-x-auto rounded-lg border`,children:(0,U.jsxs)(re,{children:[(0,U.jsx)(R,{className:`bg-muted sticky top-0 z-10`,children:(0,U.jsxs)(B,{className:`border-b`,children:[(0,U.jsx)(z,{children:`Client`}),(0,U.jsx)(z,{children:`RPC URL`}),(0,U.jsx)(z,{children:`Read only`}),(0,U.jsx)(z,{className:`text-right`,children:`Actions`})]})}),(0,U.jsxs)(ne,{children:[n?.length===0&&(0,U.jsx)(B,{children:(0,U.jsx)(V,{colSpan:6,className:`text-center`,children:(0,U.jsx)(`p`,{className:`text-muted-foreground`,children:`No torrent clients configured. Add a client to start downloading.`})})}),n?.map(e=>(0,U.jsxs)(B,{className:`hover:bg-muted/50 cursor-pointer`,onClick:t=>Q(t,e),children:[(0,U.jsx)(V,{className:`font-medium`,children:e.client}),(0,U.jsx)(V,{className:`font-mono text-sm`,children:e.url}),(0,U.jsx)(V,{children:e.readOnly?`Yes`:`No`}),(0,U.jsx)(V,{className:`text-right`,children:(0,U.jsxs)(m,{open:a===e.url,onOpenChange:t=>o(t?e.url:null),children:[(0,U.jsx)(g,{asChild:!0,children:(0,U.jsxs)(v,{variant:`ghost`,className:`h-8 w-8 p-0`,type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:[(0,U.jsx)(`span`,{className:`sr-only`,children:`Actions`}),(0,U.jsx)(y,{className:`h-4 w-4`})]})}),(0,U.jsxs)(h,{align:`end`,children:[(0,U.jsx)(f,{children:`Actions`}),(0,U.jsxs)(p,{onClick:t=>{Q(t,e)},children:[(0,U.jsx)(b,{className:`mr-2 h-4 w-4`}),`View Details`]}),(0,U.jsxs)(p,{onClick:t=>{t.stopPropagation(),$(e)},children:[(0,U.jsx)(S,{className:`mr-2 h-4 w-4`}),`Edit`]}),(0,U.jsxs)(p,{variant:`destructive`,onClick:t=>{t.stopPropagation(),ce(e)},children:[(0,U.jsx)(C,{className:`mr-2 h-4 w-4`}),`Delete`]})]})]})})]},e.url))]})]})}):(0,U.jsx)(`p`,{className:`mb-4 text-lg`,children:`No torrent clients configured. Add a client`}),(0,U.jsx)(M,{isFieldRequired:O,children:(0,U.jsx)(`form`,{className:`form flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),e.stopPropagation(),G.handleSubmit()},noValidate:!0,children:(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,U.jsx)(`h2`,{className:`text-xl font-bold`,children:`Torrent Client Options`}),(0,U.jsxs)(`fieldset`,{className:`form-fieldset w-full gap-6 rounded-md`,children:[(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`action`,children:e=>(0,U.jsx)(e.SelectField,{label:`Action`,options:ee})})}),(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`linkCategory`,validators:{},children:e=>(0,U.jsx)(e.TextField,{label:`Link Category`,required:!1})})}),(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`torrentDir`,validators:{},children:e=>(0,U.jsx)(e.TextField,{label:`Torrent Directory`,required:!1})})}),(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`outputDir`,validators:{},children:e=>(0,U.jsx)(e.TextField,{label:`Output Directory`,required:!1})})}),(0,U.jsxs)(`div`,{className:`form-field-switches col-span-2 gap-x-12`,children:[(0,U.jsx)(G.AppField,{name:`skipRecheck`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Skip Recheck`})}),(0,U.jsx)(G.AppField,{name:`useClientTorrents`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Use Client Torrents`})}),(0,U.jsx)(G.AppField,{name:`duplicateCategories`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Duplicate Categories`})})]})]}),(0,U.jsx)(G.AppForm,{children:(0,U.jsx)(G.SubmitButton,{})})]})})})]}),(0,U.jsx)(ie,{open:l,onOpenChange:Z,client:s,onEdit:$}),(0,U.jsx)(se,{open:d,onOpenChange:e=>{w(e),e||o(null)},client:s,mode:T})]})}export{$ as component};
1
+ import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{I as r,L as i,S as a,_ as o,b as s,g as c,v as l,x as u,y as d}from"./sidebar-y9WJu7Jw.js";import{a as f,i as p,n as m,r as h,s as g,t as _}from"./Page-C7KClZ28.js";import{t as v}from"./button-1cIaa9Lf.js";import{a as y,i as b,n as x,r as S,t as ee}from"./trash-D083IWKI.js";import{t as C}from"./loader-circle-BQbzoYGJ.js";import{t as w}from"./test-tube-CbcievIk.js";import{f as T,i as E,t as D}from"./index-B0MwZW7U.js";import{a as O,d as k,f as te,g as A,i as j,n as M,p as N,r as P,t as F,u as I,x as L}from"./use-settings-form-submit-DyXR3etD.js";import{a as R,i as z,n as ne,o as B,r as V,t as re}from"./table-B1Y18B60.js";var H=e(n(),1),U=t();function ie({open:e,onOpenChange:t,client:n,onEdit:r}){return(0,U.jsx)(c,{open:e,onOpenChange:t,children:(0,U.jsxs)(l,{className:`sm:max-w-md`,children:[(0,U.jsxs)(u,{children:[(0,U.jsx)(a,{children:`View Torrent Client`}),(0,U.jsx)(d,{children:`View torrent client details.`})]}),(0,U.jsxs)(`div`,{className:`grid flex-1 auto-rows-min gap-6 px-4`,children:[(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(E,{children:`URL`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.url||`N/A`})]}),(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(E,{children:`Username`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.user||`N/A`})]}),(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(E,{children:`Password`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.password?`********`:`N/A`})]}),(0,U.jsxs)(`div`,{className:`grid gap-3`,children:[(0,U.jsx)(E,{children:`Read only`}),(0,U.jsx)(`div`,{className:`bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all`,children:n?.readOnly?`Yes`:`No`})]})]}),(0,U.jsxs)(s,{children:[r&&(0,U.jsxs)(v,{type:`button`,onClick:()=>r(n),className:`flex-1`,children:[(0,U.jsx)(S,{className:`mr-2 h-4 w-4`}),`Edit`]}),(0,U.jsx)(o,{asChild:!0,className:`flex-1`,children:(0,U.jsx)(v,{type:`button`,variant:`outline`,className:`flex-1`,children:`Close`})})]})]})})}var W=e=>{try{return decodeURIComponent(e)}catch{return e}},G=e=>{let t=e.indexOf(`://`);if(t===-1)return e;let n=t+3,r=e.lastIndexOf(`@`);if(r<=n)return e;let i=e.slice(n,r),a=i.indexOf(`:`);if(a===-1)return e;let o=i.slice(0,a),s=i.slice(a+1),c=encodeURIComponent(W(o)),l=encodeURIComponent(W(s));return`${e.slice(0,n)}${c}:${l}${e.slice(r)}`},K=e=>new URL(G(e));function ae(e){return W(K(e).username)}function oe(e){return W(K(e).password)}var q=e=>{try{let t=K(e);return`${t.protocol}//${t.host}${t.pathname}${t.search}${t.hash}`}catch(t){let n=e.indexOf(`://`),r=n===-1?-1:n+3,i=e.lastIndexOf(`@`);if(r!==-1&&i>r){let t=`${e.slice(0,r)}${e.slice(i+1)}`;try{let e=new URL(t);return`${e.protocol}//${e.host}`}catch{return t}}return console.warn(`Unable to strip credentials from client URL`,t),e}};function J({endpointUrl:e,username:t=``,password:n=``,includeUsername:r=!0}){let i=K(q(e));return i.username=r?t:``,i.password=n,i.toString()}function Y({client:e,endpointUrl:t,username:n=``,password:r=``,readonly:i=!1}){let a=J({endpointUrl:t,username:n,password:r,includeUsername:e.toLowerCase()!==`deluge`});return`${e.toLowerCase()}:${i?`readonly:`:``}${a}`}function X({client:e,endpointUrl:t,username:n=``,password:r=``}){return J({endpointUrl:t,username:n,password:r,includeUsername:e.toLowerCase()!==`deluge`})}var Z=async({client:e,url:t,username:n=``,password:i})=>{try{return{success:(await r.clients.testConnection.mutate({client:e.toLowerCase(),url:t,username:n,password:i,readonly:!1})).success}}catch(e){return console.error(`Error testing connection:`,e),{success:!1}}},Q={qbittorrent:`qBittorrent`,rtorrent:`rTorrent`,transmission:`Transmission`,deluge:`Deluge`};function se({open:e,onOpenChange:t,mode:n,client:r}){let[f,p]=(0,H.useState)(!1),{isFieldRequired:m}=k(N),{data:h}=T(i().settings.get.queryOptions(void 0,{select:e=>e.config.torrentClients||[]})),{saveConfig:g,isLoading:_}=M(),y=O({...I,defaultValues:r??{},onSubmit:async({value:e})=>{try{let i={...e,readOnly:e?.readOnly??!1},a=N.safeParse(i);if(a.success){let e=a.data,i=Y({client:e.client,endpointUrl:e.url,username:e.user??``,password:e.password??``,readonly:e.readOnly}),o;n===`edit`&&r&&r.index!==void 0?(o=[...h||[]],o[r.index]=i):o=[...h||[],i],g({torrentClients:o}),t(!1)}else throw console.error(`FULL VALIDATION FAILED:`,a.error.format()),Error(`Validation failed`)}catch(e){return console.error(`Exception during full validation:`,e),{status:`error`,error:{_form:`An unexpected error occurred during validation`}}}},validators:{onSubmit:N}}),b=async()=>{p(!0);let e=String(y.getFieldValue(`client`)),t=String(y.getFieldValue(`url`)),n=String(y.getFieldValue(`user`)||``),r=String(y.getFieldValue(`password`)||``);(await Z({client:e,url:X({client:e,endpointUrl:t,username:n,password:r}),username:n,password:r})).success?(D.success(`Connection successful!`,{description:`The torrent client connection was successful.`}),p(!1)):(D.error(`Connection failed`,{description:`Failed to connect to the torrent client.`}),p(!1))},x=_||f;return(0,U.jsx)(c,{open:e,onOpenChange:t,children:(0,U.jsx)(l,{className:`sm:max-w-md`,children:(0,U.jsx)(j,{isFieldRequired:m,children:(0,U.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),e.stopPropagation(),y.handleSubmit()},children:[(0,U.jsxs)(u,{children:[(0,U.jsx)(a,{children:n===`edit`?`Edit Client`:`Create Client`}),(0,U.jsx)(d,{children:n===`edit`?`Edit the details of the torrent client.`:`Create a new torrent client.`})]}),(0,U.jsxs)(`div`,{className:`grid flex-1 auto-rows-min gap-6 px-4`,children:[(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`client`,children:e=>(0,U.jsx)(e.SelectField,{label:`Client`,options:Q})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`url`,children:e=>(0,U.jsx)(e.TextField,{label:`Endpoint URL`})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`user`,children:e=>(0,U.jsx)(e.TextField,{label:`User`})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`password`,children:e=>(0,U.jsx)(e.TextField,{label:`Password`,type:`password`})})}),(0,U.jsx)(`div`,{className:`grid gap-3`,children:(0,U.jsx)(y.AppField,{name:`readOnly`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Read only`})})}),(0,U.jsx)(y.Subscribe,{selector:e=>({urlValue:e.values.url,urlMeta:e.fieldMeta.url,userValue:e.values.user,userMeta:e.fieldMeta.user,passwordValue:e.values.password,passwordMeta:e.fieldMeta.password,clientValue:e.values.client}),children:({urlValue:e,urlMeta:t,userValue:n,userMeta:r,passwordValue:i,passwordMeta:a,clientValue:o})=>{let s=e&&!t?.errors?.length,c=o===`transmission`&&i===void 0?!0:i&&!a?.errors?.length,l=o===`deluge`||o===`transmission`?!0:n&&!r?.errors?.length;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(v,{type:`button`,variant:`outline`,onClick:b,disabled:!(s&&c&&l),className:`w-full`,children:f?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(C,{className:`animate-spin`}),`Testing connection...`]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(w,{className:`mr-2`}),`Test Connection`]})}),o===`qbittorrent`&&(0,U.jsxs)(`p`,{className:`text-muted-foreground -mt-4 px-2 text-sm italic`,children:[`Note: Testing connections can return false positives if`,` `,(0,U.jsx)(`code`,{className:`bg-yellow-100 px-1`,children:`Bypass auth on localhost`}),` `,`is enabled in qBittorrent.`]})]})}})]}),(0,U.jsxs)(s,{className:`mt-6`,children:[(0,U.jsx)(y.AppForm,{children:(0,U.jsx)(y.SubmitButton,{label:n===`edit`?`Update`:`Create`,actionLabel:n===`edit`?`Updating...`:`Creating...`})}),(0,U.jsx)(o,{asChild:!0,children:(0,U.jsx)(v,{type:`button`,variant:`outline`,disabled:x,children:`Cancel`})})]})]})})})})}function $(){let e=i(),{saveConfig:t}=M(),[n,r]=(0,H.useState)(void 0),[a,o]=(0,H.useState)(null),[s,c]=(0,H.useState)(null),[l,u]=(0,H.useState)(!1),[d,C]=(0,H.useState)(!1),[w,E]=(0,H.useState)(`create`),{isFieldRequired:D}=k(A),{data:N}=T(e.settings.get.queryOptions(void 0,{select:e=>P(A,te(e.config),{includeUndefined:!0})})),W=F(),G=O({...I,defaultValues:N??I.defaultValues,onSubmit:W,validators:{onSubmit:A}}),[K,J]=(0,H.useState)(null);(0,H.useEffect)(()=>{K&&(document.getElementById(K)?.focus(),J(null))},[K]),(0,H.useEffect)(()=>{let e=N?.torrentClients??[];if(!e.length){r([]);return}r(e.map((e,t)=>{if(!e)return null;let n=``,r=``,i=!1,a=``,o=``;if(typeof e==`object`)n=e.client,i=e.readOnly||!1,r=e.url,a=e.user||``,o=e.password||``;else if(typeof e==`string`){let t=String(e);n=t.split(`:`)[0];let s=`${n}:readonly:`,c=`${n}:`;i=t.startsWith(s);let l=t.startsWith(s)?t.slice(s.length):t.slice(c.length);if(!l)return null;let u=q(l);if(!u)return null;r=u,a=ae(l),o=oe(l)}return!n||!r?null:{index:t,client:n,url:r,user:a,password:o,readOnly:i}}).filter(Boolean))},[N]);let X=e=>{e.preventDefault(),e.stopPropagation(),c(null),E(`create`),C(!0)},Z=e=>{u(e),e||o(null)},Q=(e,t)=>{e.preventDefault(),e.stopPropagation(),o(null),c(t),u(!0)},$=e=>{o(null),c(e),E(`edit`),u(!1),C(!0)},ce=e=>{o(null);let i=e.index===void 0?n?.filter(t=>t.url!==e.url):n?.filter(t=>t.index!==e.index);r(i),t({torrentClients:(i||[]).map(e=>Y({client:e.client,endpointUrl:e.url,username:e.user??``,password:e.password??``,readonly:e.readOnly??!1}))})};return(0,U.jsxs)(_,{breadcrumbs:[`Settings`,`Torrent Clients`],actions:(0,U.jsxs)(v,{onClick:X,type:`button`,size:`sm`,children:[(0,U.jsx)(x,{className:`mr-2 h-4 w-4`}),`Add Torrent Client`]}),children:[(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Torrent Clients`}),(0,U.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage your torrent clients`})]}),n?(0,U.jsx)(`div`,{className:`mt-4 mb-7 overflow-x-auto rounded-lg border`,children:(0,U.jsxs)(re,{children:[(0,U.jsx)(R,{className:`bg-muted sticky top-0 z-10`,children:(0,U.jsxs)(B,{className:`border-b`,children:[(0,U.jsx)(z,{children:`Client`}),(0,U.jsx)(z,{children:`RPC URL`}),(0,U.jsx)(z,{children:`Read only`}),(0,U.jsx)(z,{className:`text-right`,children:`Actions`})]})}),(0,U.jsxs)(ne,{children:[n?.length===0&&(0,U.jsx)(B,{children:(0,U.jsx)(V,{colSpan:6,className:`text-center`,children:(0,U.jsx)(`p`,{className:`text-muted-foreground`,children:`No torrent clients configured. Add a client to start downloading.`})})}),n?.map(e=>(0,U.jsxs)(B,{className:`hover:bg-muted/50 cursor-pointer`,onClick:t=>Q(t,e),children:[(0,U.jsx)(V,{className:`font-medium`,children:e.client}),(0,U.jsx)(V,{className:`font-mono text-sm`,children:e.url}),(0,U.jsx)(V,{children:e.readOnly?`Yes`:`No`}),(0,U.jsx)(V,{className:`text-right`,children:(0,U.jsxs)(m,{open:a===e.url,onOpenChange:t=>o(t?e.url:null),children:[(0,U.jsx)(g,{asChild:!0,children:(0,U.jsxs)(v,{variant:`ghost`,className:`h-8 w-8 p-0`,type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:[(0,U.jsx)(`span`,{className:`sr-only`,children:`Actions`}),(0,U.jsx)(y,{className:`h-4 w-4`})]})}),(0,U.jsxs)(h,{align:`end`,children:[(0,U.jsx)(f,{children:`Actions`}),(0,U.jsxs)(p,{onClick:t=>{Q(t,e)},children:[(0,U.jsx)(b,{className:`mr-2 h-4 w-4`}),`View Details`]}),(0,U.jsxs)(p,{onClick:t=>{t.stopPropagation(),$(e)},children:[(0,U.jsx)(S,{className:`mr-2 h-4 w-4`}),`Edit`]}),(0,U.jsxs)(p,{variant:`destructive`,onClick:t=>{t.stopPropagation(),ce(e)},children:[(0,U.jsx)(ee,{className:`mr-2 h-4 w-4`}),`Delete`]})]})]})})]},e.url))]})]})}):(0,U.jsx)(`p`,{className:`mb-4 text-lg`,children:`No torrent clients configured. Add a client`}),(0,U.jsx)(j,{isFieldRequired:D,children:(0,U.jsx)(`form`,{className:`form flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),e.stopPropagation(),G.handleSubmit()},noValidate:!0,children:(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,U.jsx)(`h2`,{className:`text-xl font-bold`,children:`Torrent Client Options`}),(0,U.jsxs)(`fieldset`,{className:`form-fieldset w-full gap-6 rounded-md`,children:[(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`action`,children:e=>(0,U.jsx)(e.SelectField,{label:`Action`,options:L})})}),(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`linkCategory`,validators:{},children:e=>(0,U.jsx)(e.TextField,{label:`Link Category`,required:!1})})}),(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`torrentDir`,validators:{},children:e=>(0,U.jsx)(e.TextField,{label:`Torrent Directory`,required:!1})})}),(0,U.jsx)(`div`,{className:``,children:(0,U.jsx)(G.AppField,{name:`outputDir`,validators:{},children:e=>(0,U.jsx)(e.TextField,{label:`Output Directory`,required:!1})})}),(0,U.jsxs)(`div`,{className:`form-field-switches col-span-2 gap-x-12`,children:[(0,U.jsx)(G.AppField,{name:`skipRecheck`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Skip Recheck`})}),(0,U.jsx)(G.AppField,{name:`useClientTorrents`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Use Client Torrents`})}),(0,U.jsx)(G.AppField,{name:`duplicateCategories`,children:e=>(0,U.jsx)(e.SwitchField,{label:`Duplicate Categories`})})]})]}),(0,U.jsx)(G.AppForm,{children:(0,U.jsx)(G.SubmitButton,{})})]})})})]}),(0,U.jsx)(ie,{open:l,onOpenChange:Z,client:s,onEdit:$}),(0,U.jsx)(se,{open:d,onOpenChange:e=>{C(e),e||o(null)},client:s,mode:w})]})}export{$ as component};
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{L as r}from"./sidebar-y9WJu7Jw.js";import{t as i}from"./Page-C7KClZ28.js";import{a}from"./dist-DhH_lYkz.js";import{t as o}from"./button-1cIaa9Lf.js";import{t as s}from"./input-CsfmMUT5.js";import{t as c}from"./loader-circle-BQbzoYGJ.js";import{t as l}from"./test-tube-CbcievIk.js";import{t as u}from"./DeleteOption-dxKSbv6N.js";import{f as d,i as f,t as p,u as m}from"./index-B0MwZW7U.js";import{a as h,b as g,d as _,f as v,i as y,m as b,o as x,r as S,t as C,y as w}from"./use-settings-form-submit-DyXR3etD.js";import{t as T}from"./FieldInfo-FLjtPgL4.js";import{t as E}from"./switch-D4S9As9u.js";var D=e(n(),1),O=t();function k({className:e,...t}){return(0,O.jsx)(`textarea`,{"data-slot":`textarea`,className:a(`placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex w-full min-w-0 rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,e),...t})}function A(e){return e.filter(e=>e.url!==``).map(e=>{if(!e.payload&&!e.headers)return e.url;let t={url:e.url};if(e.payload)try{t.payload=JSON.parse(e.payload)}catch{}if(e.headers)try{t.headers=JSON.parse(e.headers)}catch{}return t})}function j(){let{isFieldRequired:e}=_(b),t=r(),n=(0,D.useCallback)(e=>S(b,v(e.config),{includeUndefined:!0}),[]),{data:a}=d(t.settings.get.queryOptions(void 0,{select:n})),j=C(),M=(0,D.useCallback)(async({value:e})=>j({value:{...e,notificationWebhookUrls:A(e.notificationWebhookUrls)}}),[j]),N=h({defaultValues:a??x,onSubmit:M,validators:{onSubmit:b}}),{mutate:P,isPending:F}=m(t.settings.testNotification.mutationOptions({onSuccess:e=>{let t=e.results,n=t.filter(e=>!e.ok),r=t.length===1?``:`s`;if(n.length===0)p.success(`All ${t.length} webhook${r} sent successfully!`);else{let e=n.map(e=>`${e.url.replace(/:\/\/[^@/]*@/,`://***@`)} — ${e.error}`).join(`
2
+ `);p.error(`${n.length} of ${t.length} webhook${r} failed:\n${e}`)}},onError:e=>{p.error(`Test failed: ${e.message}`)}})),[I,L]=(0,D.useState)(null);return(0,D.useEffect)(()=>{I&&(document.getElementById(I)?.focus(),L(null))},[I]),(0,O.jsx)(i,{children:(0,O.jsxs)(`div`,{className:`space-y-4`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Connected App Settings`}),(0,O.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage apps connected to Cross-seed.`})]}),(0,O.jsx)(y,{isFieldRequired:e,children:(0,O.jsx)(`form`,{className:`form flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),e.stopPropagation(),N.handleSubmit()},noValidate:!0,children:(0,O.jsxs)(`div`,{className:`flex flex-wrap gap-6`,children:[(0,O.jsxs)(`fieldset`,{className:`form-fieldset w-full gap-6`,children:[(0,O.jsx)(`div`,{children:(0,O.jsx)(N.AppField,{name:`host`,validators:{},children:e=>(0,O.jsx)(e.TextField,{label:`Host`})})}),(0,O.jsx)(`div`,{className:``,children:(0,O.jsx)(N.AppField,{name:`port`,validators:{},children:e=>(0,O.jsx)(e.NumberField,{label:`port`})})}),(0,O.jsx)(`div`,{children:(0,O.jsx)(N.AppField,{name:`apiKey`,validators:{},children:e=>(0,O.jsx)(e.TextField,{label:`API Key`})})})]}),(0,O.jsxs)(`fieldset`,{className:`form-fieldset border-border w-full gap-6 rounded-md border`,children:[(0,O.jsx)(`legend`,{children:`Connect to Other Apps`}),(0,O.jsx)(`div`,{className:``,children:(0,O.jsx)(N.Field,{name:`sonarr`,mode:`array`,validators:{},children:t=>(0,O.jsxs)(`div`,{className:`space-y-3`,children:[(0,O.jsxs)(f,{htmlFor:t.name,className:`block w-full`,children:[`Sonarr URL(s)`,e(t.name)&&(0,O.jsx)(`span`,{className:`pl-1 text-red-500`,children:`*`})]}),t.state.value&&t.state.value.map((e,n)=>(0,O.jsxs)(`div`,{className:`gap-y- mb-3 flex flex-col`,children:[(0,O.jsx)(N.AppField,{name:`sonarr[${n}]`,validators:{onBlur:g().url().or(w(``))},children:e=>(0,O.jsx)(e.ArrayField,{showDelete:t.state.value&&t.state.value?.length>1,index:n,onDelete:()=>{t.removeValue(n)}})}),(0,O.jsx)(N.Subscribe,{selector:e=>e.fieldMeta[`${t.name}[${n}]`],children:e=>(0,O.jsx)(T,{fieldMeta:e})})]},n)),(0,O.jsx)(o,{variant:`secondary`,type:`button`,onClick:()=>{t.pushValue(``),L(`${t.name}-${t.state.value?.length?t.state.value.length-1:0}`)},title:`Add ${t.name}`,children:`Add`})]})})}),(0,O.jsx)(`div`,{children:(0,O.jsx)(N.Field,{name:`radarr`,mode:`array`,validators:{},children:t=>(0,O.jsxs)(`div`,{className:`space-y-3`,children:[(0,O.jsxs)(f,{htmlFor:t.name,className:`block w-full`,children:[`Radarr URL(s)`,e(t.name)&&(0,O.jsx)(`span`,{className:`pl-1 text-red-500`,children:`*`})]}),t.state.value&&t.state.value.map((e,n)=>(0,O.jsxs)(`div`,{className:`gap-y- mb-3 flex flex-col`,children:[(0,O.jsx)(N.AppField,{name:`radarr[${n}]`,validators:{onBlur:g().url().or(w(``))},children:e=>(0,O.jsx)(e.ArrayField,{showDelete:t.state.value&&t.state.value?.length>1,index:n,onDelete:()=>{t.removeValue(n)}})}),(0,O.jsx)(N.Subscribe,{selector:e=>e.fieldMeta[`${t.name}[${n}]`],children:e=>(0,O.jsx)(T,{fieldMeta:e})})]},n)),(0,O.jsx)(o,{variant:`secondary`,type:`button`,onClick:()=>{t.pushValue(``),L(`${t.name}-${t.state.value?.length?t.state.value.length-1:0}`)},title:`Add ${t.name}`,children:`Add`})]})})}),(0,O.jsx)(`div`,{children:(0,O.jsx)(N.Field,{name:`notificationWebhookUrls`,mode:`array`,validators:{},children:t=>(0,O.jsxs)(`div`,{className:`space-y-3`,children:[(0,O.jsxs)(f,{htmlFor:t.name,className:`block w-full`,children:[`Notification Webhook(s)`,e(t.name)&&(0,O.jsx)(`span`,{className:`pl-1 text-red-500`,children:`*`})]}),t.state.value?.map((e,n)=>(0,O.jsxs)(`fieldset`,{className:`border-border space-y-2 rounded-md border p-3`,children:[(0,O.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(N.Field,{name:`notificationWebhookUrls[${n}].url`,validators:{onBlur:g().url().or(w(``))},children:e=>(0,O.jsx)(s,{id:`notificationWebhookUrls-${n}-url`,name:e.name,value:e.state.value,onChange:t=>e.handleChange(t.target.value),onBlur:e.handleBlur,placeholder:`https://example.com/webhook`,className:`flex-1`})}),(t.state.value?.length??0)>1&&(0,O.jsx)(u,{onClick:()=>t.removeValue(n)})]}),(0,O.jsx)(N.Subscribe,{selector:e=>e.fieldMeta[`notificationWebhookUrls[${n}].url`],children:e=>(0,O.jsx)(T,{fieldMeta:e})}),(0,O.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,O.jsx)(N.Field,{name:`notificationWebhookUrls[${n}].advancedOpen`,children:e=>(0,O.jsx)(E,{id:`notificationWebhookUrls-${n}-advanced`,checked:e.state.value,onCheckedChange:t=>e.handleChange(t)})}),(0,O.jsx)(f,{htmlFor:`notificationWebhookUrls-${n}-advanced`,className:`text-muted-foreground text-xs`,children:`Custom headers & payload`})]}),(0,O.jsx)(N.Subscribe,{selector:e=>e.values.notificationWebhookUrls?.[n]?.advancedOpen,children:e=>e?(0,O.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(f,{className:`text-muted-foreground text-xs`,children:`Headers (JSON)`}),(0,O.jsx)(N.Field,{name:`notificationWebhookUrls[${n}].headers`,children:e=>(0,O.jsx)(k,{name:e.name,value:e.state.value,onChange:t=>e.handleChange(t.target.value),onBlur:e.handleBlur,placeholder:`{"Authorization": "Bearer token"}`,rows:2,className:`resize-y font-mono text-xs`})}),(0,O.jsx)(N.Subscribe,{selector:e=>e.fieldMeta[`notificationWebhookUrls[${n}].headers`],children:e=>(0,O.jsx)(T,{fieldMeta:e})})]}),(0,O.jsxs)(`div`,{children:[(0,O.jsx)(f,{className:`text-muted-foreground text-xs`,children:`Payload (JSON)`}),(0,O.jsx)(N.Field,{name:`notificationWebhookUrls[${n}].payload`,children:e=>(0,O.jsx)(k,{name:e.name,value:e.state.value,onChange:t=>e.handleChange(t.target.value),onBlur:e.handleBlur,placeholder:`{"topic": "cross-seed", "priority": 3, "tags": ["seedbox"]}`,rows:2,className:`resize-y font-mono text-xs`})}),(0,O.jsx)(N.Subscribe,{selector:e=>e.fieldMeta[`notificationWebhookUrls[${n}].payload`],children:e=>(0,O.jsx)(T,{fieldMeta:e})})]})]}):null})]},n)),(0,O.jsxs)(`div`,{className:`flex gap-2`,children:[(0,O.jsx)(o,{variant:`secondary`,type:`button`,onClick:()=>{t.pushValue({url:``,payload:``,headers:``,advancedOpen:!1}),L(`notificationWebhookUrls-${t.state.value?.length??0}-url`)},title:`Add webhook`,children:`Add`}),(0,O.jsx)(o,{variant:`secondary`,type:`button`,disabled:F||!t.state.value?.some(e=>e.url),onClick:()=>{let e=t.state.value??[];if(e.some(e=>[e.headers,e.payload].some(e=>{if(!e)return!1;try{return JSON.parse(e),!1}catch{return!0}}))){p.error(`Fix invalid headers/payload JSON before testing.`);return}let n=A(e);if(n.length===0){p.error(`No webhooks to test.`);return}P({webhooks:n})},title:`Test all configured webhooks`,children:F?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(c,{className:`h-4 w-4 animate-spin`}),`Testing…`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(l,{className:`h-4 w-4`}),`Test Webhooks`]})})]})]})})})]}),(0,O.jsx)(N.AppForm,{children:(0,O.jsx)(N.SubmitButton,{})})]})})})]})})}export{j as component};
@@ -1 +1 @@
1
- import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{L as r}from"./sidebar-y9WJu7Jw.js";import{i}from"./useBaseQuery-BvrWhgOK.js";import{t as a}from"./Page-C7KClZ28.js";import{t as o}from"./button-1cIaa9Lf.js";import{f as s,t as c,u as l}from"./index-DupFqisC.js";var u=e(n()),d=t();function f(){let[e,t]=(0,u.useState)(``),[n,f]=(0,u.useState)(!0),[p,m]=(0,u.useState)(``),h=(0,u.useRef)(null),g=r(),_=i(),{data:v,isLoading:y}=s(g.settings.get.queryOptions()),b=l(g.settings.replace.mutationOptions({onSuccess:()=>{c.success(`Settings saved successfully!`,{description:`Your changes will take effect on the next restart.`}),_.invalidateQueries({queryKey:[`settings.get`]})},onError:e=>{let t=e instanceof Error?e.message:`An unknown error occurred`;c.error(`Failed to save settings`,{description:t})}})),x=()=>{let e=h.current;if(e){let t=window.pageYOffset||document.documentElement.scrollTop;e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`,requestAnimationFrame(()=>{window.scrollTo(0,t)})}};(0,u.useEffect)(()=>{v?.config&&t(JSON.stringify(v.config,null,2))},[v]),(0,u.useEffect)(()=>{x()},[e]);let S=e=>{try{return JSON.parse(e),f(!0),m(``),!0}catch(e){return f(!1),m(e instanceof Error?e.message:`Invalid JSON`),!1}},C=e=>{t(e),S(e),setTimeout(x,0)};return y?(0,d.jsx)(a,{breadcrumbs:[`Diagnostics`,`Debug`],children:(0,d.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,d.jsx)(`div`,{children:`Loading settings...`})})}):(0,d.jsx)(a,{breadcrumbs:[`Diagnostics`,`Debug`],actions:(0,d.jsxs)(`div`,{className:`flex gap-2`,children:[(0,d.jsx)(o,{variant:`outline`,onClick:()=>{v?.config&&(t(JSON.stringify(v.config,null,2)),f(!0),m(``),setTimeout(x,0))},disabled:b.isPending,children:`Reset`}),(0,d.jsx)(o,{onClick:()=>{if(!n){c.error(`Cannot save invalid JSON`);return}try{let t=JSON.parse(e);b.mutate(t)}catch{c.error(`Failed to parse JSON`)}},disabled:!n||b.isPending,children:b.isPending?`Saving...`:`Save`})]}),children:(0,d.jsxs)(`div`,{className:`space-y-4`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Debug Settings`}),(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Raw JSON editor for debugging configuration issues`})]}),(0,d.jsx)(`div`,{className:`relative`,children:(0,d.jsx)(`textarea`,{ref:h,value:e,onChange:e=>C(e.target.value),className:`min-h-96 w-full resize-none overflow-hidden rounded-md border p-3 font-mono text-sm ${n?`border-gray-300 dark:border-gray-600`:`border-red-500 dark:border-red-400`} bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100`,spellCheck:!1,placeholder:`Loading settings...`})}),!n&&(0,d.jsxs)(`div`,{className:`rounded-md bg-red-50 p-3 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-400`,children:[(0,d.jsx)(`strong`,{children:`JSON Error:`}),` `,p]})]})})}export{f as component};
1
+ import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{L as r}from"./sidebar-y9WJu7Jw.js";import{i}from"./useBaseQuery-BvrWhgOK.js";import{t as a}from"./Page-C7KClZ28.js";import{t as o}from"./button-1cIaa9Lf.js";import{f as s,t as c,u as l}from"./index-B0MwZW7U.js";var u=e(n()),d=t();function f(){let[e,t]=(0,u.useState)(``),[n,f]=(0,u.useState)(!0),[p,m]=(0,u.useState)(``),h=(0,u.useRef)(null),g=r(),_=i(),{data:v,isLoading:y}=s(g.settings.get.queryOptions()),b=l(g.settings.replace.mutationOptions({onSuccess:()=>{c.success(`Settings saved successfully!`,{description:`Your changes will take effect on the next restart.`}),_.invalidateQueries({queryKey:[`settings.get`]})},onError:e=>{let t=e instanceof Error?e.message:`An unknown error occurred`;c.error(`Failed to save settings`,{description:t})}})),x=()=>{let e=h.current;if(e){let t=window.pageYOffset||document.documentElement.scrollTop;e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`,requestAnimationFrame(()=>{window.scrollTo(0,t)})}};(0,u.useEffect)(()=>{v?.config&&t(JSON.stringify(v.config,null,2))},[v]),(0,u.useEffect)(()=>{x()},[e]);let S=e=>{try{return JSON.parse(e),f(!0),m(``),!0}catch(e){return f(!1),m(e instanceof Error?e.message:`Invalid JSON`),!1}},C=e=>{t(e),S(e),setTimeout(x,0)};return y?(0,d.jsx)(a,{breadcrumbs:[`Diagnostics`,`Debug`],children:(0,d.jsx)(`div`,{className:`flex items-center justify-center p-8`,children:(0,d.jsx)(`div`,{children:`Loading settings...`})})}):(0,d.jsx)(a,{breadcrumbs:[`Diagnostics`,`Debug`],actions:(0,d.jsxs)(`div`,{className:`flex gap-2`,children:[(0,d.jsx)(o,{variant:`outline`,onClick:()=>{v?.config&&(t(JSON.stringify(v.config,null,2)),f(!0),m(``),setTimeout(x,0))},disabled:b.isPending,children:`Reset`}),(0,d.jsx)(o,{onClick:()=>{if(!n){c.error(`Cannot save invalid JSON`);return}try{let t=JSON.parse(e);b.mutate(t)}catch{c.error(`Failed to parse JSON`)}},disabled:!n||b.isPending,children:b.isPending?`Saving...`:`Save`})]}),children:(0,d.jsxs)(`div`,{className:`space-y-4`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Debug Settings`}),(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Raw JSON editor for debugging configuration issues`})]}),(0,d.jsx)(`div`,{className:`relative`,children:(0,d.jsx)(`textarea`,{ref:h,value:e,onChange:e=>C(e.target.value),className:`min-h-96 w-full resize-none overflow-hidden rounded-md border p-3 font-mono text-sm ${n?`border-gray-300 dark:border-gray-600`:`border-red-500 dark:border-red-400`} bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100`,spellCheck:!1,placeholder:`Loading settings...`})}),!n&&(0,d.jsxs)(`div`,{className:`rounded-md bg-red-50 p-3 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-400`,children:[(0,d.jsx)(`strong`,{children:`JSON Error:`}),` `,p]})]})})}export{f as component};
@@ -0,0 +1 @@
1
+ import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{L as r}from"./sidebar-y9WJu7Jw.js";import{t as i}from"./Page-C7KClZ28.js";import{t as a}from"./button-1cIaa9Lf.js";import{t as o}from"./input-CsfmMUT5.js";import{t as s}from"./DeleteOption-dxKSbv6N.js";import{f as c,i as l}from"./index-B0MwZW7U.js";import{S as u,a as d,b as f,d as p,f as m,h,i as g,r as _,s as v,t as y}from"./use-settings-form-submit-DyXR3etD.js";import{t as b}from"./FieldInfo-FLjtPgL4.js";var x=e(n()),S=t();function C(){let{isFieldRequired:e}=p(h),{data:t}=c(r().settings.get.queryOptions(void 0,{select:e=>_(h,m(e.config),{includeUndefined:!0})})),n=y(),C=d({defaultValues:t??v,onSubmit:n,validators:{onSubmit:h}}),[w,T]=(0,x.useState)(null);return(0,x.useEffect)(()=>{w&&(document.getElementById(w)?.focus(),T(null))},[w]),(0,S.jsx)(i,{children:(0,S.jsxs)(`div`,{className:`space-y-4`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Directory & Path Settings`}),(0,S.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage the directories and paths used by cross-seed.`})]}),(0,S.jsx)(g,{isFieldRequired:e,children:(0,S.jsx)(`form`,{className:`form flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),e.stopPropagation(),C.handleSubmit()},noValidate:!0,children:(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-6`,children:[(0,S.jsxs)(`fieldset`,{className:`form-fieldset w-full gap-6`,children:[(0,S.jsx)(`div`,{className:``,children:(0,S.jsx)(C.Field,{name:`dataDirs`,mode:`array`,children:t=>(0,S.jsxs)(`div`,{className:`space-y-3`,children:[(0,S.jsxs)(l,{htmlFor:t.name,className:`block w-full`,children:[`Data Directories`,e(t.name)&&(0,S.jsx)(`span`,{className:`pl-1 text-red-500`,children:`*`})]}),t.state.value.map((e,n)=>(0,S.jsx)(C.Field,{name:`dataDirs[${n}]`,validators:{onBlur:f()},children:e=>(0,S.jsxs)(`div`,{className:`mb-3 flex flex-col gap-y-1`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,S.jsx)(o,{type:`text`,className:`form-input`,value:e.state.value,"aria-invalid":!!(e.state.meta.isTouched&&e.state.meta.errorMap.onBlur),onBlur:e.handleBlur,onChange:t=>e.handleChange(t.target.value)}),t.state.value.length>1&&(0,S.jsx)(s,{onClick:()=>{t.removeValue(n)}})]}),e.state.meta.isTouched&&e.state.meta.errors&&(0,S.jsx)(b,{fieldMeta:e.state.meta})]})},`${t.name}-${n}`)),(0,S.jsx)(a,{variant:`secondary`,type:`button`,onClick:()=>{t.pushValue(``),T(`${t.name}-${t.state.value.length-1}`)},title:`Add ${t.name}`,children:`Add`})]})})}),(0,S.jsx)(C.AppField,{name:`flatLinking`,children:e=>(0,S.jsx)(e.SwitchField,{label:`Flat Linking`,className:`form-field__switch flex flex-col items-start gap-5`})}),(0,S.jsx)(`div`,{className:``,children:(0,S.jsx)(C.AppField,{name:`linkType`,children:e=>(0,S.jsx)(e.SelectField,{label:`Link Type`,options:u})})}),(0,S.jsx)(`div`,{className:``,children:(0,S.jsx)(C.Field,{name:`linkDirs`,mode:`array`,children:t=>(0,S.jsxs)(`div`,{className:`space-y-3`,children:[(0,S.jsxs)(l,{htmlFor:t.name,className:`block w-full`,children:[`Link Directories`,e(t.name)&&(0,S.jsx)(`span`,{className:`pl-1 text-red-500`,children:`*`})]}),t.state.value?.map((e,n)=>(0,S.jsxs)(`div`,{className:`gap-y- mb-3 flex flex-col`,children:[(0,S.jsx)(C.AppField,{name:`linkDirs[${n}]`,validators:{onBlur:f()},children:e=>(0,S.jsx)(e.ArrayField,{showDelete:(t.state.value&&t.state.value?.length>1)??void 0,index:n,onDelete:()=>{t.removeValue(n)}})}),(0,S.jsx)(C.Subscribe,{selector:e=>e.fieldMeta[`${t.name}[${n}]`],children:e=>(0,S.jsx)(b,{fieldMeta:e})})]},n)),(0,S.jsx)(a,{variant:`secondary`,type:`button`,onClick:()=>{t.pushValue(``),T(`${t.name}-${t.state.value?.length?t.state.value.length-1:0}`)},title:`Add ${t.name}`,children:`Add`})]})})}),(0,S.jsx)(`div`,{className:``,children:(0,S.jsx)(C.AppField,{name:`maxDataDepth`,children:e=>(0,S.jsx)(e.NumberField,{label:`Max Data Depth`})})})]}),(0,S.jsx)(C.AppForm,{children:(0,S.jsx)(C.SubmitButton,{})})]})})})]})})}export{C as component};
@@ -1 +1 @@
1
- import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{a as r}from"./dist-DhH_lYkz.js";import{t as i}from"./input-CsfmMUT5.js";import{a,i as o,n as s,r as c,t as l}from"./select-CZn10WME.js";import{i as u}from"./index-DupFqisC.js";import{r as d}from"./form-context-D2DkKajN.js";import{n as f,t as p}from"./required-indicator-BXf2UzTH.js";import{t as m}from"./FieldInfo-FLjtPgL4.js";var h=e(n(),1),g=t(),_=[{label:`Millisecond`,labelPlural:`Milliseconds`,value:`milliseconds`,ms:1},{label:`Second`,labelPlural:`Seconds`,value:`seconds`,ms:1e3},{label:`Minute`,labelPlural:`Minutes`,value:`minutes`,ms:60*1e3},{label:`Hour`,labelPlural:`Hours`,value:`hours`,ms:3600*1e3},{label:`Day`,labelPlural:`Days`,value:`days`,ms:1440*60*1e3}];function v({id:e,className:t,value:n,onChange:u,onBlur:d,units:f=_,disabled:p=!1}){let m=(0,h.useMemo)(()=>f,[f]),v=(0,h.useMemo)(()=>C(n),[n]),[S,T]=(0,h.useState)(()=>v==null?m[2]?.value??m[0].value:y(v,m).value),[E,D]=(0,h.useState)(``),[O,k]=(0,h.useState)(!1),A=m.find(e=>e.value===S)??m[0],j=w(A,b(E));(0,h.useEffect)(()=>{if(!O&&v!=null){let e=y(v,m);e.value!==S&&T(e.value)}},[O,v,S,m]),(0,h.useEffect)(()=>{if(v==null){D(``);return}D(x(v,(m.find(e=>e.value===S)??m[0]).ms))},[v,S,m]);let M=e=>{k(!0),D(e);let t=b(e);if(t==null){u(null);return}u(t*A.ms)};return(0,g.jsxs)(`div`,{className:r(`flex items-center gap-3`,t),children:[(0,g.jsx)(i,{id:e,name:e,type:`number`,min:0,step:`any`,className:`flex-1 shadow-none`,value:E,onBlur:d,inputMode:`decimal`,disabled:p,onChange:e=>M(e.target.value)}),(0,g.jsxs)(l,{value:A.value,onValueChange:e=>{k(!0),T(e)},disabled:p,children:[(0,g.jsx)(o,{className:`w-32 shadow-none`,children:(0,g.jsx)(a,{"aria-label":j,children:j})}),(0,g.jsx)(s,{children:m.map(e=>(0,g.jsx)(c,{value:e.value,children:e.labelPlural??`${e.label}s`},e.value))})]})]})}function y(e,t){if(!Number.isFinite(e)||e<=0)return t[0];for(let n=t.length-1;n>=0;--n){let r=t[n];if(e>=r.ms)return r}return t[0]}function b(e){if(!e||e.trim()===``)return null;let t=Number(e);return!Number.isFinite(t)||t<0?null:t}function x(e,t){if(t===0)return``;let n=e/t;return Number.isInteger(n)?n.toString():S(n.toFixed(6))}function S(e){return e.includes(`.`)?e.replace(/\.?0+$/,``):e}function C(e){if(e==null)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;let t=Number(e);return Number.isFinite(t)?t:null}function w(e,t){return t==null||t!==1?e.labelPlural??`${e.label}s`:e.label}var T=({label:e,className:t,hideLabel:n=!1})=>{let i=d(),{isFieldRequired:a}=f();return(0,g.jsxs)(`div`,{className:r(`space-y-3`,t),children:[!n&&(0,g.jsxs)(u,{htmlFor:i.name,className:`block w-full`,children:[e,a(i.name)&&(0,g.jsx)(p,{})]}),(0,g.jsx)(v,{id:i.name,value:i.state.value??null,onBlur:i.handleBlur,onChange:e=>i.handleChange(e)}),(0,g.jsx)(m,{fieldMeta:i.state.meta})]})};export{T as default};
1
+ import{a as e,n as t,r as n}from"./useStore-CusP06SD.js";import{a as r}from"./dist-DhH_lYkz.js";import{t as i}from"./input-CsfmMUT5.js";import{a,i as o,n as s,r as c,t as l}from"./select-CZn10WME.js";import{i as u}from"./index-B0MwZW7U.js";import{r as d}from"./form-context-BnI-Tfp9.js";import{n as f,t as p}from"./required-indicator-BXf2UzTH.js";import{t as m}from"./FieldInfo-FLjtPgL4.js";var h=e(n(),1),g=t(),_=[{label:`Millisecond`,labelPlural:`Milliseconds`,value:`milliseconds`,ms:1},{label:`Second`,labelPlural:`Seconds`,value:`seconds`,ms:1e3},{label:`Minute`,labelPlural:`Minutes`,value:`minutes`,ms:60*1e3},{label:`Hour`,labelPlural:`Hours`,value:`hours`,ms:3600*1e3},{label:`Day`,labelPlural:`Days`,value:`days`,ms:1440*60*1e3}];function v({id:e,className:t,value:n,onChange:u,onBlur:d,units:f=_,disabled:p=!1}){let m=(0,h.useMemo)(()=>f,[f]),v=(0,h.useMemo)(()=>C(n),[n]),[S,T]=(0,h.useState)(()=>v==null?m[2]?.value??m[0].value:y(v,m).value),[E,D]=(0,h.useState)(``),[O,k]=(0,h.useState)(!1),A=m.find(e=>e.value===S)??m[0],j=w(A,b(E));(0,h.useEffect)(()=>{if(!O&&v!=null){let e=y(v,m);e.value!==S&&T(e.value)}},[O,v,S,m]),(0,h.useEffect)(()=>{if(v==null){D(``);return}D(x(v,(m.find(e=>e.value===S)??m[0]).ms))},[v,S,m]);let M=e=>{k(!0),D(e);let t=b(e);if(t==null){u(null);return}u(t*A.ms)};return(0,g.jsxs)(`div`,{className:r(`flex items-center gap-3`,t),children:[(0,g.jsx)(i,{id:e,name:e,type:`number`,min:0,step:`any`,className:`flex-1 shadow-none`,value:E,onBlur:d,inputMode:`decimal`,disabled:p,onChange:e=>M(e.target.value)}),(0,g.jsxs)(l,{value:A.value,onValueChange:e=>{k(!0),T(e)},disabled:p,children:[(0,g.jsx)(o,{className:`w-32 shadow-none`,children:(0,g.jsx)(a,{"aria-label":j,children:j})}),(0,g.jsx)(s,{children:m.map(e=>(0,g.jsx)(c,{value:e.value,children:e.labelPlural??`${e.label}s`},e.value))})]})]})}function y(e,t){if(!Number.isFinite(e)||e<=0)return t[0];for(let n=t.length-1;n>=0;--n){let r=t[n];if(e>=r.ms)return r}return t[0]}function b(e){if(!e||e.trim()===``)return null;let t=Number(e);return!Number.isFinite(t)||t<0?null:t}function x(e,t){if(t===0)return``;let n=e/t;return Number.isInteger(n)?n.toString():S(n.toFixed(6))}function S(e){return e.includes(`.`)?e.replace(/\.?0+$/,``):e}function C(e){if(e==null)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;let t=Number(e);return Number.isFinite(t)?t:null}function w(e,t){return t==null||t!==1?e.labelPlural??`${e.label}s`:e.label}var T=({label:e,className:t,hideLabel:n=!1})=>{let i=d(),{isFieldRequired:a}=f();return(0,g.jsxs)(`div`,{className:r(`space-y-3`,t),children:[!n&&(0,g.jsxs)(u,{htmlFor:i.name,className:`block w-full`,children:[e,a(i.name)&&(0,g.jsx)(p,{})]}),(0,g.jsx)(v,{id:i.name,value:i.state.value??null,onBlur:i.handleBlur,onChange:e=>i.handleChange(e)}),(0,g.jsx)(m,{fieldMeta:i.state.meta})]})};export{T as default};
@@ -1 +1 @@
1
- import{a as e,n as t,r as n,t as r}from"./useStore-CusP06SD.js";import{c as i,l as a}from"./index-DupFqisC.js";var o=class{constructor(e,t){this.fn=e,this.options=t,this.lastExecutionTime=0,this.isPending=!1,this.maybeExecute=(...e)=>{let t=Date.now()-this.lastExecutionTime;if(this.options.leading&&t>=this.options.wait)this.execute(...e);else if(this.lastArgs=e,!this.timeoutId&&this.options.trailing){let e=this.options.wait-t;this.isPending=!0,this.timeoutId=setTimeout(()=>{this.lastArgs!==void 0&&this.execute(...this.lastArgs)},e)}},this.execute=(...e)=>{this.fn(...e),this.options.onExecute?.(e,this),this.lastExecutionTime=Date.now(),this.clearTimeout(),this.lastArgs=void 0,this.isPending=!1},this.flush=()=>{this.isPending&&this.lastArgs&&this.execute(...this.lastArgs)},this.cancel=()=>{this.clearTimeout(),this.lastArgs=void 0,this.isPending=!1},this.clearTimeout=()=>{this.timeoutId&&=(clearTimeout(this.timeoutId),void 0)},this.options.leading===void 0&&this.options.trailing===void 0&&(this.options.leading=!0,this.options.trailing=!0)}};function s(e,t){return new o(e,t).maybeExecute}var c=class{#e=!0;#t;#n;#r;#i;#a;#o;#s;#c=0;#l=5;#u=!1;#d=!1;#f=null;#p=()=>{this.debugLog(`Connected to event bus`),this.#a=!0,this.#u=!1,this.debugLog(`Emitting queued events`,this.#i),this.#i.forEach(e=>this.emitEventToBus(e)),this.#i=[],this.stopConnectLoop(),this.#n().removeEventListener(`tanstack-connect-success`,this.#p)};#m=()=>{if(this.#c<this.#l){this.#c++,this.dispatchCustomEvent(`tanstack-connect`,{});return}this.#n().removeEventListener(`tanstack-connect`,this.#m),this.#d=!0,this.debugLog(`Max retries reached, giving up on connection`),this.stopConnectLoop()};#h=()=>{this.#u||(this.#u=!0,this.#n().addEventListener(`tanstack-connect-success`,this.#p),this.#m())};constructor({pluginId:e,debug:t=!1,enabled:n=!0,reconnectEveryMs:r=300}){this.#t=e,this.#e=n,this.#n=this.getGlobalTarget,this.#r=t,this.debugLog(` Initializing event subscription for plugin`,this.#t),this.#i=[],this.#a=!1,this.#d=!1,this.#o=null,this.#s=r}startConnectLoop(){this.#o!==null||this.#a||(this.debugLog(`Starting connect loop (every ${this.#s}ms)`),this.#o=setInterval(this.#m,this.#s))}stopConnectLoop(){this.#u=!1,this.#o!==null&&(clearInterval(this.#o),this.#o=null,this.#i=[],this.debugLog(`Stopped connect loop`))}debugLog(...e){this.#r&&console.log(`🌴 [tanstack-devtools:${this.#t}-plugin]`,...e)}getGlobalTarget(){if(typeof globalThis<`u`&&globalThis.__TANSTACK_EVENT_TARGET__)return this.debugLog(`Using global event target`),globalThis.__TANSTACK_EVENT_TARGET__;if(typeof window<`u`&&window.addEventListener!==void 0)return this.debugLog(`Using window as event target`),window;let e=typeof EventTarget<`u`?new EventTarget:void 0;return e===void 0||e.addEventListener===void 0?(this.debugLog(`No event mechanism available, running in non-web environment`),{addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:()=>!1}):(this.debugLog(`Using new EventTarget as fallback`),e)}getPluginId(){return this.#t}dispatchCustomEventShim(e,t){try{let n=new Event(e,{detail:t});this.#n().dispatchEvent(n)}catch{this.debugLog(`Failed to dispatch shim event`)}}dispatchCustomEvent(e,t){try{this.#n().dispatchEvent(new CustomEvent(e,{detail:t}))}catch{this.dispatchCustomEventShim(e,t)}}emitEventToBus(e){this.debugLog(`Emitting event to client bus`,e),this.dispatchCustomEvent(`tanstack-dispatch-event`,e)}createEventPayload(e,t){return{type:`${this.#t}:${e}`,payload:t,pluginId:this.#t}}emit(e,t){if(!this.#e){this.debugLog(`Event bus client is disabled, not emitting event`,e,t);return}if(this.#f&&(this.debugLog(`Emitting event to internal event target`,e,t),this.#f.dispatchEvent(new CustomEvent(`${this.#t}:${e}`,{detail:this.createEventPayload(e,t)}))),this.#d){this.debugLog(`Previously failed to connect, not emitting to bus`);return}if(!this.#a){this.debugLog(`Bus not available, will be pushed as soon as connected`),this.#i.push(this.createEventPayload(e,t)),typeof CustomEvent<`u`&&!this.#u&&(this.#h(),this.startConnectLoop());return}return this.emitEventToBus(this.createEventPayload(e,t))}on(e,t,n){let r=n?.withEventTarget??!1,i=`${this.#t}:${e}`;if(r&&(this.#f||=new EventTarget,this.#f.addEventListener(i,e=>{t(e.detail)})),!this.#e)return this.debugLog(`Event bus client is disabled, not registering event`,i),()=>{};let a=e=>{this.debugLog(`Received event from bus`,e.detail),t(e.detail)};return this.#n().addEventListener(i,a),this.debugLog(`Registered event to bus`,i),()=>{r&&this.#f?.removeEventListener(i,a),this.#n().removeEventListener(i,a)}}onAll(e){if(!this.#e)return this.debugLog(`Event bus client is disabled, not registering event`),()=>{};let t=t=>{let n=t.detail;e(n)};return this.#n().addEventListener(`tanstack-devtools-global`,t),()=>this.#n().removeEventListener(`tanstack-devtools-global`,t)}onAllPluginEvents(e){if(!this.#e)return this.debugLog(`Event bus client is disabled, not registering event`),()=>{};let t=t=>{let n=t.detail;this.#t&&n.pluginId!==this.#t||e(n)};return this.#n().addEventListener(`tanstack-devtools-global`,t),()=>this.#n().removeEventListener(`tanstack-devtools-global`,t)}},l=new class extends c{constructor(){super({pluginId:`form-devtools`,reconnectEveryMs:1e3})}};function u(e,t){return typeof e==`function`?e(t):e}function d(e,t){return x(t).reduce((e,t)=>{if(e===null)return null;if(e!==void 0)return e[t]},e)}function f(e,t,n){let r=x(t);function i(e){if(!r.length)return u(n,e);let t=r.shift();if(typeof t==`string`||typeof t==`number`&&!Array.isArray(e))return typeof e==`object`?(e===null&&(e={}),{...e,[t]:i(e[t])}):{[t]:i()};if(Array.isArray(e)&&typeof t==`number`){let n=e.slice(0,t);return[...n.length?n:Array(t),i(e[t]),...e.slice(t+1)]}return[...Array(t),i()]}return i(e)}function p(e,t){let n=x(t);function r(e){if(!e)return;if(n.length===1){let t=n[0];if(Array.isArray(e)&&typeof t==`number`)return e.filter((e,n)=>n!==t);let{[t]:r,...i}=e;return i}let t=n.shift();if((typeof t==`string`||typeof t==`number`&&!Array.isArray(e))&&typeof e==`object`)return{...e,[t]:r(e[t])};if(typeof t==`number`&&Array.isArray(e)){if(t>=e.length)return e;let n=e.slice(0,t);return[...n.length?n:Array(t),r(e[t]),...e.slice(t+1)]}throw Error(`It seems we have created an infinite loop in deleteBy. `)}return r(e)}var m=/^(\d+)$/gm,h=/\.(\d+)(?=\.)/gm,g=/^(\d+)\./gm,_=/\.(\d+$)/gm,v=/\.{2,}/gm,y=`__int__`,b=`${y}$1`;function x(e){if(Array.isArray(e))return[...e];if(typeof e!=`string`)throw Error(`Path must be a string.`);return e.replace(/(^\[)|]/gm,``).replace(/\[/g,`.`).replace(m,b).replace(h,`.${b}.`).replace(g,`${b}.`).replace(_,`.${b}`).replace(v,`.`).split(`.`).map(e=>{if(e.startsWith(y)){let t=e.substring(7),n=parseInt(t,10);return String(n)===t?n:t}return e})}function S(e,t){return e.length===0?t:t.length===0?e:t.startsWith(`[`)||t.startsWith(`.`)?e+t:`${e}.${t}`}function ee(e){return!(Array.isArray(e)&&e.length===0)}function C(e,t){return t.validationLogic({form:t.form,validators:t.validators,event:{type:e,async:!1},runValidation:e=>e.validators.filter(Boolean).map(e=>({cause:e.cause,validate:e.fn}))})}function w(e,t){let{asyncDebounceMs:n}=t,{onBlurAsyncDebounceMs:r,onChangeAsyncDebounceMs:i,onDynamicAsyncDebounceMs:a}=t.validators||{},o=n??0;return t.validationLogic({form:t.form,validators:t.validators,event:{type:e,async:!0},runValidation:t=>t.validators.filter(Boolean).map(t=>{let n=t?.cause||e,s=o;switch(n){case`change`:s=i??o;break;case`blur`:s=r??o;break;case`dynamic`:s=a??o;break;case`submit`:s=0;break}return e===`submit`&&(s=0),{cause:n,validate:t.fn,debounceMs:s}})})}var T=e=>!!e&&typeof e==`object`&&`fields`in e;function E(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i of n)if(!r.includes(i)||!E(e[i],t[i]))return!1;return!0}var D=({newFormValidatorError:e,isPreviousErrorFromFormValidator:t,previousErrorValue:n})=>e?{newErrorValue:e,newSource:`form`}:t?{newErrorValue:void 0,newSource:void 0}:n?{newErrorValue:n,newSource:`field`}:{newErrorValue:void 0,newSource:void 0},O=({formLevelError:e,fieldLevelError:t})=>t?{newErrorValue:t,newSource:`field`}:e?{newErrorValue:e,newSource:`form`}:{newErrorValue:void 0,newSource:void 0};function k(e,t){return e==null?t:{...e,...t}}for(var A=256,j=[],M;A--;)j[A]=(A+256).toString(16).substring(1);function N(){let e=0,t,n=``;if(!M||A+16>256){for(M=Array(256),e=256;e--;)M[e]=256*Math.random()|0;e=0,A=0}for(;e<16;e++)t=M[A+e],e===6?n+=j[t&15|64]:e===8?n+=j[t&63|128]:n+=j[t],e&1&&e>1&&e<11&&(n+=`-`);return A++,n}var te=s(e=>l.emit(`form-state`,{id:e.formId,state:e.store.state}),{wait:300});function P(e){if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++)t[n]=P(e[n]);return t}if(e instanceof Map){let t=new Map;return e.forEach((e,n)=>{t.set(n,P(e))}),t}if(e instanceof Set){let t=new Set;return e.forEach(e=>{t.add(P(e))}),t}let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=P(e[n]));return t}var F=e=>{if(!e.validators)return e.runValidation({validators:[],form:e.form});let t=e.event.async,n=t?void 0:{fn:e.validators.onMount,cause:`mount`},r={fn:t?e.validators.onChangeAsync:e.validators.onChange,cause:`change`},i={fn:t?e.validators.onBlurAsync:e.validators.onBlur,cause:`blur`},a={fn:t?e.validators.onSubmitAsync:e.validators.onSubmit,cause:`submit`},o=t?void 0:{fn:()=>void 0,cause:`server`};switch(e.event.type){case`mount`:return e.runValidation({validators:[n],form:e.form});case`submit`:return e.runValidation({validators:[r,i,a,o],form:e.form});case`server`:return e.runValidation({validators:[],form:e.form});case`blur`:return e.runValidation({validators:[i,o],form:e.form});case`change`:return e.runValidation({validators:[r,o],form:e.form});default:throw Error(`Unknown validation event type: ${e.event.type}`)}};function ne(e,t){let n=new Map;for(let r of e){let e=r.path??[],i=t,a=``;for(let t=0;t<e.length;t++){let n=e[t];if(n===void 0)continue;let r=typeof n==`object`?n.key:n,o=Number(r);Array.isArray(i)&&!Number.isNaN(o)?a+=`[${o}]`:a+=(t>0?`.`:``)+String(r),i=typeof i==`object`&&i?i[r]:void 0}n.set(a,(n.get(a)??[]).concat(r))}return Object.fromEntries(n)}var I=(e,t)=>{let n=ne(e,t);return{form:n,fields:n}},L={validate({value:e,validationSource:t},n){let r=n[`~standard`].validate(e);if(r instanceof Promise)throw Error(`async function passed to sync validator`);if(r.issues)return t===`field`?r.issues:I(r.issues,e)},async validateAsync({value:e,validationSource:t},n){let r=await n[`~standard`].validate(e);if(r.issues)return t===`field`?r.issues:I(r.issues,e)}},re=e=>!!e&&`~standard`in e,R={isValidating:!1,isTouched:!1,isBlurred:!1,isDirty:!1,isPristine:!0,isValid:!0,isDefaultValue:!0,errors:[],errorMap:{},errorSourceMap:{}};function z(e){function t(t,n,r){let i=o(t,n,`move`,r),s=Math.min(n,r),l=Math.max(n,r);for(let e=s;e<=l;e++)i.push(a(t,e));let u=Object.keys(e.fieldInfo).reduce((r,i)=>(i.startsWith(a(t,n))&&r.set(i,e.getFieldMeta(i)),r),new Map);c(i,n<r?`up`:`down`),Object.keys(e.fieldInfo).filter(e=>e.startsWith(a(t,r))).forEach(i=>{let o=i.replace(a(t,r),a(t,n)),s=u.get(o);s&&e.setFieldMeta(i,s)})}function n(e,t){c(o(e,t,`remove`),`up`)}function r(t,n,r){o(t,n,`swap`,r).forEach(i=>{if(!i.toString().startsWith(a(t,n)))return;let o=i.toString().replace(a(t,n),a(t,r)),[s,c]=[e.getFieldMeta(i),e.getFieldMeta(o)];s&&e.setFieldMeta(o,s),c&&e.setFieldMeta(i,c)})}function i(t,n){let r=o(t,n,`insert`);c(r,`down`),r.forEach(r=>{r.toString().startsWith(a(t,n))&&e.setFieldMeta(r,l())})}function a(e,t){return`${e}[${t}]`}function o(t,n,r,i){let o=[a(t,n)];switch(r){case`swap`:o.push(a(t,i));break;case`move`:{let[e,r]=[Math.min(n,i),Math.max(n,i)];for(let n=e;n<=r;n++)o.push(a(t,n));break}default:{let r=e.getFieldValue(t),i=Array.isArray(r)?r.length:0;for(let e=n+1;e<i;e++)o.push(a(t,e));break}}return Object.keys(e.fieldInfo).filter(e=>o.some(t=>e.startsWith(t)))}function s(e,t){return e.replace(/\[(\d+)\]/,(e,n)=>{let r=parseInt(n,10);return`[${t===`up`?r+1:Math.max(0,r-1)}]`})}function c(t,n){(n===`up`?t:[...t].reverse()).forEach(t=>{let r=s(t.toString(),n),i=e.getFieldMeta(r);i?e.setFieldMeta(t,i):e.setFieldMeta(t,l())})}let l=()=>R;return{handleArrayMove:t,handleArrayRemove:n,handleArraySwap:r,handleArrayInsert:i}}function B(e){return{values:e.values??{},errorMap:e.errorMap??{},fieldMetaBase:e.fieldMetaBase??{},isSubmitted:e.isSubmitted??!1,isSubmitting:e.isSubmitting??!1,isValidating:e.isValidating??!1,submissionAttempts:e.submissionAttempts??0,isSubmitSuccessful:e.isSubmitSuccessful??!1,validationMetaMap:e.validationMetaMap??{onChange:void 0,onBlur:void 0,onSubmit:void 0,onMount:void 0,onServer:void 0,onDynamic:void 0}}}var V=class{constructor(e){this.options={},this.fieldInfo={},this.mount=()=>{let e=this.store.subscribe(()=>{te(this)}),t=l.on(`request-form-state`,e=>{e.payload.id===this._formId&&l.emit(`form-api`,{id:this._formId,state:this.store.state,options:this.options})}),n=l.on(`request-form-reset`,e=>{e.payload.id===this._formId&&this.reset()}),r=l.on(`request-form-force-submit`,e=>{e.payload.id===this._formId&&(this._devtoolsSubmissionOverride=!0,this.handleSubmit(),this._devtoolsSubmissionOverride=!1)}),i=()=>{r(),n(),t(),e.unsubscribe(),l.emit(`form-unmounted`,{id:this._formId})};this.options.listeners?.onMount?.({formApi:this});let{onMount:a}=this.options.validators||{};return l.emit(`form-api`,{id:this._formId,state:this.store.state,options:this.options}),a&&this.validateSync(`mount`),i},this.update=e=>{if(!e)return;let t=this.options;this.options=e;let n=e.defaultValues&&!E(e.defaultValues,t.defaultValues)&&!this.state.isTouched,r=!E(e.defaultState,t.defaultState)&&!this.state.isTouched;!n&&!r||(i(()=>{this.baseStore.setState(()=>B(Object.assign({},this.state,r?e.defaultState:{},n?{values:e.defaultValues}:{})))}),l.emit(`form-api`,{id:this._formId,state:this.store.state,options:this.options}))},this.reset=(e,t)=>{let{fieldMeta:n}=this.state,r=this.resetFieldMeta(n);e&&!t?.keepDefaultValues&&(this.options={...this.options,defaultValues:e}),this.baseStore.setState(()=>B({...this.options.defaultState,values:e??this.options.defaultValues??this.options.defaultState?.values,fieldMetaBase:r}))},this.validateAllFields=async e=>{let t=[];return i(()=>{Object.values(this.fieldInfo).forEach(n=>{if(!n.instance)return;let r=n.instance;t.push(Promise.resolve().then(()=>r.validate(e,{skipFormValidation:!0}))),n.instance.state.meta.isTouched||n.instance.setMeta(e=>({...e,isTouched:!0}))})}),(await Promise.all(t)).flat()},this.validateArrayFieldsStartingFrom=async(e,t,n)=>{let r=this.getFieldValue(e),a=Array.isArray(r)?Math.max(r.length-1,0):null,o=[`${e}[${t}]`];for(let n=t+1;n<=(a??0);n++)o.push(`${e}[${n}]`);let s=Object.keys(this.fieldInfo).filter(e=>o.some(t=>e.startsWith(t))),c=[];return i(()=>{s.forEach(e=>{c.push(Promise.resolve().then(()=>this.validateField(e,n)))})}),(await Promise.all(c)).flat()},this.validateField=(e,t)=>{let n=this.fieldInfo[e]?.instance;if(!n){let{hasErrored:n}=this.validateSync(t);return n&&!this.options.asyncAlways?this.getFieldMeta(e)?.errors??[]:this.validateAsync(t).then(()=>this.getFieldMeta(e)?.errors??[])}return n.state.meta.isTouched||n.setMeta(e=>({...e,isTouched:!0})),n.validate(t)},this.validateSync=e=>{let t=C(e,{...this.options,form:this,validationLogic:this.options.validationLogic||F}),n=!1,r={};return i(()=>{for(let e of t){if(!e.validate)continue;let{formError:t,fieldErrors:i}=H(this.runValidator({validate:e.validate,value:{value:this.state.values,formApi:this,validationSource:`form`},type:`validate`})),a=U(e.cause),o=new Set([...Object.keys(this.state.fieldMeta),...Object.keys(i||{})]);for(let e of o){if(this.baseStore.state.fieldMetaBase[e]===void 0&&!i?.[e])continue;let{errorMap:t,errorSourceMap:n}=this.getFieldMeta(e)??R,o=i?.[e],{newErrorValue:s,newSource:c}=D({newFormValidatorError:o,isPreviousErrorFromFormValidator:n?.[a]===`form`,previousErrorValue:t?.[a]});c===`form`&&(r[e]={...r[e],[a]:o}),t?.[a]!==s&&this.setFieldMeta(e,(e=R)=>({...e,errorMap:{...e.errorMap,[a]:s},errorSourceMap:{...e.errorSourceMap,[a]:c}}))}this.state.errorMap?.[a]!==t&&this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[a]:t}})),(t||i)&&(n=!0)}let i=U(`submit`);this.state.errorMap?.[i]&&e!==`submit`&&!n&&this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[i]:void 0}}));let a=U(`server`);this.state.errorMap?.[a]&&e!==`server`&&!n&&this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[a]:void 0}}))}),{hasErrored:n,fieldsErrorMap:r}},this.validateAsync=async e=>{let t=w(e,{...this.options,form:this,validationLogic:this.options.validationLogic||F});this.state.isFormValidating||this.baseStore.setState(e=>({...e,isFormValidating:!0}));let n=[],r;for(let e of t){if(!e.validate)continue;let t=U(e.cause);this.state.validationMetaMap[t]?.lastAbortController.abort();let i=new AbortController;this.state.validationMetaMap[t]={lastAbortController:i},n.push(new Promise(async t=>{let n;try{n=await new Promise((t,n)=>{setTimeout(async()=>{if(i.signal.aborted)return t(void 0);try{t(await this.runValidator({validate:e.validate,value:{value:this.state.values,formApi:this,validationSource:`form`,signal:i.signal},type:`validateAsync`}))}catch(e){n(e)}},e.debounceMs)})}catch(e){n=e}let{formError:a,fieldErrors:o}=H(n);o&&(r=r?{...r,...o}:o);let s=U(e.cause);for(let e of Object.keys(this.state.fieldMeta)){if(this.baseStore.state.fieldMetaBase[e]===void 0)continue;let t=this.getFieldMeta(e);if(!t)continue;let{errorMap:n,errorSourceMap:i}=t,a=r?.[e],{newErrorValue:o,newSource:c}=D({newFormValidatorError:a,isPreviousErrorFromFormValidator:i?.[s]===`form`,previousErrorValue:n?.[s]});n?.[s]!==o&&this.setFieldMeta(e,e=>({...e,errorMap:{...e.errorMap,[s]:o},errorSourceMap:{...e.errorSourceMap,[s]:c}}))}this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[s]:a}})),t(r?{fieldErrors:r,errorMapKey:s}:void 0)}))}let i=[],a={};if(n.length){i=await Promise.all(n);for(let e of i)if(e?.fieldErrors){let{errorMapKey:t}=e;for(let[n,r]of Object.entries(e.fieldErrors))a[n]={...a[n]||{},[t]:r}}}return this.baseStore.setState(e=>({...e,isFormValidating:!1})),a},this.validate=e=>{let{hasErrored:t,fieldsErrorMap:n}=this.validateSync(e);return t&&!this.options.asyncAlways?n:this.validateAsync(e)},this._handleSubmit=async e=>{this.baseStore.setState(e=>({...e,isSubmitted:!1,submissionAttempts:e.submissionAttempts+1,isSubmitSuccessful:!1})),i(()=>{Object.values(this.fieldInfo).forEach(e=>{e.instance&&(e.instance.state.meta.isTouched||e.instance.setMeta(e=>({...e,isTouched:!0})))})});let t=e??this.options.onSubmitMeta;if(!this.state.canSubmit&&!this._devtoolsSubmissionOverride){this.options.onSubmitInvalid?.({value:this.state.values,formApi:this,meta:t});return}this.baseStore.setState(e=>({...e,isSubmitting:!0}));let n=()=>{this.baseStore.setState(e=>({...e,isSubmitting:!1}))};if(await this.validateAllFields(`submit`),!this.state.isFieldsValid){n(),this.options.onSubmitInvalid?.({value:this.state.values,formApi:this,meta:t}),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!1,stage:`validateAllFields`,errors:Object.values(this.state.fieldMeta).map(e=>e.errors).flat()});return}if(await this.validate(`submit`),!this.state.isValid){n(),this.options.onSubmitInvalid?.({value:this.state.values,formApi:this,meta:t}),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!1,stage:`validate`,errors:this.state.errors});return}i(()=>{Object.values(this.fieldInfo).forEach(e=>{e.instance?.options.listeners?.onSubmit?.({value:e.instance.state.value,fieldApi:e.instance})})}),this.options.listeners?.onSubmit?.({formApi:this,meta:t});try{await this.options.onSubmit?.({value:this.state.values,formApi:this,meta:t}),i(()=>{this.baseStore.setState(e=>({...e,isSubmitted:!0,isSubmitSuccessful:!0})),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!0}),n()})}catch(e){throw this.baseStore.setState(e=>({...e,isSubmitSuccessful:!1})),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!1,stage:`inflight`,onError:e}),n(),e}},this.getFieldValue=e=>d(this.state.values,e),this.getFieldMeta=e=>this.state.fieldMeta[e],this.getFieldInfo=e=>this.fieldInfo[e]||={instance:null,validationMetaMap:{onChange:void 0,onBlur:void 0,onSubmit:void 0,onMount:void 0,onServer:void 0,onDynamic:void 0}},this.setFieldMeta=(e,t)=>{this.baseStore.setState(n=>({...n,fieldMetaBase:{...n.fieldMetaBase,[e]:u(t,n.fieldMetaBase[e])}}))},this.resetFieldMeta=e=>Object.keys(e).reduce((e,t)=>{let n=t;return e[n]=R,e},{}),this.setFieldValue=(e,t,n)=>{let r=n?.dontUpdateMeta??!1,a=n?.dontRunListeners??!1,o=n?.dontValidate??!1;i(()=>{r||this.setFieldMeta(e,e=>({...e,isTouched:!0,isDirty:!0,errorMap:{...e?.errorMap,onMount:void 0}})),this.baseStore.setState(n=>({...n,values:f(n.values,e,t)}))}),a||this.getFieldInfo(e).instance?.triggerOnChangeListener(),o||this.validateField(e,`change`)},this.deleteField=e=>{let t=[...Object.keys(this.fieldInfo).filter(t=>{let n=e.toString();return t!==n&&t.startsWith(n)}),e];this.baseStore.setState(e=>{let n={...e};return t.forEach(e=>{n.values=p(n.values,e),delete this.fieldInfo[e],delete n.fieldMetaBase[e]}),n})},this.pushFieldValue=(e,t,n)=>{this.setFieldValue(e,e=>[...Array.isArray(e)?e:[],t],n)},this.insertFieldValue=async(e,t,n,r)=>{this.setFieldValue(e,e=>[...e.slice(0,t),n,...e.slice(t)],k(r,{dontValidate:!0}));let i=r?.dontValidate??!1;i||await this.validateField(e,`change`),z(this).handleArrayInsert(e,t),i||await this.validateArrayFieldsStartingFrom(e,t,`change`)},this.replaceFieldValue=async(e,t,n,r)=>{this.setFieldValue(e,e=>e.map((e,r)=>r===t?n:e),k(r,{dontValidate:!0})),(r?.dontValidate??!1)||(await this.validateField(e,`change`),await this.validateArrayFieldsStartingFrom(e,t,`change`))},this.removeFieldValue=async(e,t,n)=>{let r=this.getFieldValue(e),i=Array.isArray(r)?Math.max(r.length-1,0):null;if(this.setFieldValue(e,e=>e.filter((e,n)=>n!==t),k(n,{dontValidate:!0})),z(this).handleArrayRemove(e,t),i!==null){let t=`${e}[${i}]`;this.deleteField(t)}(n?.dontValidate??!1)||(await this.validateField(e,`change`),await this.validateArrayFieldsStartingFrom(e,t,`change`))},this.swapFieldValues=(e,t,n,r)=>{this.setFieldValue(e,e=>{let r=e[t],i=e[n];return f(f(e,`${t}`,i),`${n}`,r)},k(r,{dontValidate:!0})),z(this).handleArraySwap(e,t,n),(r?.dontValidate??!1)||(this.validateField(e,`change`),this.validateField(`${e}[${t}]`,`change`),this.validateField(`${e}[${n}]`,`change`))},this.moveFieldValues=(e,t,n,r)=>{this.setFieldValue(e,e=>{let r=[...e];return r.splice(n,0,r.splice(t,1)[0]),r},k(r,{dontValidate:!0})),z(this).handleArrayMove(e,t,n),(r?.dontValidate??!1)||(this.validateField(e,`change`),this.validateField(`${e}[${t}]`,`change`),this.validateField(`${e}[${n}]`,`change`))},this.clearFieldValues=(e,t)=>{let n=this.getFieldValue(e),r=Array.isArray(n)?Math.max(n.length-1,0):null;if(this.setFieldValue(e,[],k(t,{dontValidate:!0})),r!==null)for(let t=0;t<=r;t++){let n=`${e}[${t}]`;this.deleteField(n)}(t?.dontValidate??!1)||this.validateField(e,`change`)},this.resetField=e=>{this.baseStore.setState(t=>({...t,fieldMetaBase:{...t.fieldMetaBase,[e]:R},values:this.options.defaultValues?f(t.values,e,d(this.options.defaultValues,e)):t.values}))},this.setErrorMap=e=>{i(()=>{Object.entries(e).forEach(([e,t])=>{let n=e;if(T(t)){let{formError:e,fieldErrors:r}=H(t);for(let e of Object.keys(this.fieldInfo))this.getFieldMeta(e)&&this.setFieldMeta(e,t=>({...t,errorMap:{...t.errorMap,[n]:r?.[e]},errorSourceMap:{...t.errorSourceMap,[n]:`form`}}));this.baseStore.setState(t=>({...t,errorMap:{...t.errorMap,[n]:e}}))}else this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[n]:t}}))})})},this.getAllErrors=()=>({form:{errors:this.state.errors,errorMap:this.state.errorMap},fields:Object.entries(this.state.fieldMeta).reduce((e,[t,n])=>(Object.keys(n).length&&n.errors.length&&(e[t]={errors:n.errors,errorMap:n.errorMap}),e),{})}),this.parseValuesWithSchema=e=>L.validate({value:this.state.values,validationSource:`form`},e),this.parseValuesWithSchemaAsync=e=>L.validateAsync({value:this.state.values,validationSource:`form`},e),this.timeoutIds={validations:{},listeners:{},formListeners:{}},this._formId=e?.formId??N(),this._devtoolsSubmissionOverride=!1;let t=B({...e?.defaultState,values:e?.defaultValues??e?.defaultState?.values});if(e?.transform){t=e.transform({state:t}).state;for(let e of Object.keys(t.errorMap)){let n=t.errorMap[e];if(!(n===void 0||!T(n)))for(let r of Object.keys(n.fields)){let i=n.fields[r];if(i===void 0)continue;let a=t.fieldMetaBase[r];t.fieldMetaBase[r]={isTouched:!1,isValidating:!1,isBlurred:!1,isDirty:!1,...a??{},errorSourceMap:{...a?.errorSourceMap??{},onChange:`form`},errorMap:{...a?.errorMap??{},[e]:i}}}}}this.baseStore=a(t);let n;this.fieldMetaDerived=a(e=>{let t=this.baseStore.get(),r=0,i={};for(let a of Object.keys(t.fieldMetaBase)){let o=t.fieldMetaBase[a],s=n?.fieldMetaBase[a],c=e?.[a],l=d(t.values,a),u=c?.errors;if(!s||o.errorMap!==s.errorMap){u=Object.values(o.errorMap??{}).filter(e=>e!==void 0);let e=this.getFieldInfo(a)?.instance;(!e||!e.options.disableErrorFlat)&&(u=u.flat(1))}let f=!ee(u),p=!o.isDirty,m=E(l,d(this.options.defaultValues,a))||E(l,this.getFieldInfo(a)?.instance?.options.defaultValue);if(c&&c.isPristine===p&&c.isValid===f&&c.isDefaultValue===m&&c.errors===u&&o===s){i[a]=c,r++;continue}i[a]={...o,errors:u??[],isPristine:p,isValid:f,isDefaultValue:m}}return Object.keys(t.fieldMetaBase).length?e&&r===Object.keys(t.fieldMetaBase).length?e:(n=this.baseStore.get(),i):i});let r;this.store=a(e=>{let t=this.baseStore.get(),n=this.fieldMetaDerived.get(),i=Object.values(n).filter(Boolean),a=i.some(e=>e.isValidating),o=i.every(e=>e.isValid),s=i.some(e=>e.isTouched),c=i.some(e=>e.isBlurred),l=i.every(e=>e.isDefaultValue),u=s&&t.errorMap?.onMount,d=i.some(e=>e.isDirty),f=!d,p=!!(t.errorMap?.onMount||i.some(e=>e?.errorMap?.onMount)),m=!!a,h=e?.errors??[];(!r||t.errorMap!==r.errorMap)&&(h=Object.values(t.errorMap).reduce((e,t)=>t===void 0?e:t&&T(t)?(e.push(t.form),e):(e.push(t),e),[]));let g=h.length===0,_=o&&g,v=this.options.canSubmitWhenInvalid??!1,y=t.submissionAttempts===0&&!s&&!p||!m&&!t.isSubmitting&&_||v,b=t.errorMap;if(u&&(h=h.filter(e=>e!==t.errorMap.onMount),b=Object.assign(b,{onMount:void 0})),e&&r&&e.errorMap===b&&e.fieldMeta===this.fieldMetaDerived.state&&e.errors===h&&e.isFieldsValidating===a&&e.isFieldsValid===o&&e.isFormValid===g&&e.isValid===_&&e.canSubmit===y&&e.isTouched===s&&e.isBlurred===c&&e.isPristine===f&&e.isDefaultValue===l&&e.isDirty===d&&E(r,t))return e;let x={...t,errorMap:b,fieldMeta:this.fieldMetaDerived.state,errors:h,isFieldsValidating:a,isFieldsValid:o,isFormValid:g,isValid:_,canSubmit:y,isTouched:s,isBlurred:c,isPristine:f,isDefaultValue:l,isDirty:d};return r=this.baseStore.get(),x}),this.handleSubmit=this.handleSubmit.bind(this),this.update(e||{})}get state(){return this.store.state}get formId(){return this._formId}runValidator(e){return re(e.validate)?L[e.type](e.value,e.validate):e.validate(e.value)}handleSubmit(e){return this._handleSubmit(e)}};function H(e){return e?T(e)?{formError:H(e.form).formError,fieldErrors:e.fields}:{formError:e}:{formError:void 0}}function U(e){switch(e){case`submit`:return`onSubmit`;case`blur`:return`onBlur`;case`mount`:return`onMount`;case`server`:return`onServer`;case`dynamic`:return`onDynamic`;default:return`onChange`}}var W=class{constructor(e){this.options={},this.mount=()=>{this.options.defaultValue!==void 0&&!this.getMeta().isTouched&&this.form.setFieldValue(this.name,this.options.defaultValue,{dontUpdateMeta:!0});let e=this.getInfo();e.instance=this,this.update(this.options);let{onMount:t}=this.options.validators||{};if(t){let e=this.runValidator({validate:t,value:{value:this.state.value,fieldApi:this,validationSource:`field`},type:`validate`});e&&this.setMeta(t=>({...t,errorMap:{...t?.errorMap,onMount:e},errorSourceMap:{...t?.errorSourceMap,onMount:`field`}}))}return this.options.listeners?.onMount?.({value:this.state.value,fieldApi:this}),()=>{}},this.update=e=>{this.options=e,this.name=e.name,!this.state.meta.isTouched&&this.options.defaultValue!==void 0&&(E(this.form.getFieldValue(this.name),e.defaultValue)||this.form.setFieldValue(this.name,e.defaultValue,{dontUpdateMeta:!0,dontValidate:!0,dontRunListeners:!0})),this.form.getFieldMeta(this.name)||this.form.setFieldMeta(this.name,this.state.meta)},this.getValue=()=>this.form.getFieldValue(this.name),this.setValue=(e,t)=>{this.form.setFieldValue(this.name,e,k(t,{dontRunListeners:!0,dontValidate:!0})),t?.dontRunListeners||this.triggerOnChangeListener(),t?.dontValidate||this.validate(`change`)},this.getMeta=()=>this.store.state.meta,this.setMeta=e=>this.form.setFieldMeta(this.name,e),this.getInfo=()=>this.form.getFieldInfo(this.name),this.pushValue=(e,t)=>{this.form.pushFieldValue(this.name,e,k(t,{dontRunListeners:!0})),t?.dontRunListeners||this.triggerOnChangeListener()},this.insertValue=(e,t,n)=>{this.form.insertFieldValue(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.replaceValue=(e,t,n)=>{this.form.replaceFieldValue(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.removeValue=(e,t)=>{this.form.removeFieldValue(this.name,e,k(t,{dontRunListeners:!0})),t?.dontRunListeners||this.triggerOnChangeListener()},this.swapValues=(e,t,n)=>{this.form.swapFieldValues(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.moveValue=(e,t,n)=>{this.form.moveFieldValues(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.clearValues=e=>{this.form.clearFieldValues(this.name,k(e,{dontRunListeners:!0})),e?.dontRunListeners||this.triggerOnChangeListener()},this.getLinkedFields=e=>{let t=Object.values(this.form.fieldInfo),n=[];for(let r of t){if(!r.instance)continue;let{onChangeListenTo:t,onBlurListenTo:i}=r.instance.options.validators||{};e===`change`&&t?.includes(this.name)&&n.push(r.instance),e===`blur`&&i?.includes(this.name)&&n.push(r.instance)}return n},this.validateSync=(e,t)=>{let n=C(e,{...this.options,form:this.form,validationLogic:this.form.options.validationLogic||F}),r=this.getLinkedFields(e).reduce((t,n)=>{let r=C(e,{...n.options,form:n.form,validationLogic:n.form.options.validationLogic||F});return r.forEach(e=>{e.field=n}),t.concat(r)},[]),a=!1;i(()=>{let e=(e,n)=>{let r=K(n.cause),i=n.validate?G(e.runValidator({validate:n.validate,value:{value:e.store.state.value,validationSource:`field`,fieldApi:e},type:`validate`})):void 0,o=t[r],{newErrorValue:s,newSource:c}=O({formLevelError:o,fieldLevelError:i});e.state.meta.errorMap?.[r]!==s&&e.setMeta(e=>({...e,errorMap:{...e.errorMap,[r]:s},errorSourceMap:{...e.errorSourceMap,[r]:c}})),s&&(a=!0)};for(let t of n)e(this,t);for(let t of r)t.validate&&e(t.field,t)});let o=K(`submit`);return this.state.meta.errorMap?.[o]&&e!==`submit`&&!a&&this.setMeta(e=>({...e,errorMap:{...e.errorMap,[o]:void 0},errorSourceMap:{...e.errorSourceMap,[o]:void 0}})),{hasErrored:a}},this.validateAsync=async(e,t)=>{let n=w(e,{...this.options,form:this.form,validationLogic:this.form.options.validationLogic||F}),r=await t,i=this.getLinkedFields(e),a=i.reduce((t,n)=>{let r=w(e,{...n.options,form:n.form,validationLogic:n.form.options.validationLogic||F});return r.forEach(e=>{e.field=n}),t.concat(r)},[]),o=[],s=[],c=n.some(e=>e.validate)||a.some(e=>e.validate);if(c){this.state.meta.isValidating||this.setMeta(e=>({...e,isValidating:!0}));for(let e of i)e.setMeta(e=>({...e,isValidating:!0}))}let l=(e,t,n)=>{let i=K(t.cause);e.getInfo().validationMetaMap[i]?.lastAbortController.abort();let a=new AbortController;this.getInfo().validationMetaMap[i]={lastAbortController:a},n.push(new Promise(async n=>{let o;try{o=await new Promise((n,r)=>{this.timeoutIds.validations[t.cause]&&clearTimeout(this.timeoutIds.validations[t.cause]),this.timeoutIds.validations[t.cause]=setTimeout(async()=>{if(a.signal.aborted)return n(void 0);try{n(await this.runValidator({validate:t.validate,value:{value:e.store.state.value,fieldApi:e,signal:a.signal,validationSource:`field`},type:`validateAsync`}))}catch(e){r(e)}},t.debounceMs)})}catch(e){o=e}if(a.signal.aborted)return n(void 0);let s=G(o),c=r[this.name]?.[i],{newErrorValue:l,newSource:u}=O({formLevelError:c,fieldLevelError:s});e.setMeta(e=>({...e,errorMap:{...e?.errorMap,[i]:l},errorSourceMap:{...e.errorSourceMap,[i]:u}})),n(l)}))};for(let e of n)e.validate&&l(this,e,o);for(let e of a)e.validate&&l(e.field,e,s);let u=[];if((o.length||s.length)&&(u=await Promise.all(o),await Promise.all(s)),c){this.setMeta(e=>({...e,isValidating:!1}));for(let e of i)e.setMeta(e=>({...e,isValidating:!1}))}return u.filter(Boolean)},this.validate=(e,t)=>{if(!this.state.meta.isTouched)return[];let{fieldsErrorMap:n}=t?.skipFormValidation?{fieldsErrorMap:{}}:this.form.validateSync(e),{hasErrored:r}=this.validateSync(e,n[this.name]??{});if(r&&!this.options.asyncAlways)return this.getInfo().validationMetaMap[K(e)]?.lastAbortController.abort(),this.state.meta.errors;let i=t?.skipFormValidation?Promise.resolve({}):this.form.validateAsync(e);return this.validateAsync(e,i)},this.handleChange=e=>{this.setValue(e)},this.handleBlur=()=>{this.state.meta.isTouched||this.setMeta(e=>({...e,isTouched:!0})),this.state.meta.isBlurred||this.setMeta(e=>({...e,isBlurred:!0})),this.validate(`blur`),this.triggerOnBlurListener()},this.setErrorMap=e=>{this.setMeta(t=>({...t,errorMap:{...t.errorMap,...e}}))},this.parseValueWithSchema=e=>L.validate({value:this.state.value,validationSource:`field`},e),this.parseValueWithSchemaAsync=e=>L.validateAsync({value:this.state.value,validationSource:`field`},e),this.triggerOnChangeListener=()=>{let e=this.form.options.listeners?.onChangeDebounceMs;e&&e>0?(this.timeoutIds.formListeners.change&&clearTimeout(this.timeoutIds.formListeners.change),this.timeoutIds.formListeners.change=setTimeout(()=>{this.form.options.listeners?.onChange?.({formApi:this.form,fieldApi:this})},e)):this.form.options.listeners?.onChange?.({formApi:this.form,fieldApi:this});let t=this.options.listeners?.onChangeDebounceMs;t&&t>0?(this.timeoutIds.listeners.change&&clearTimeout(this.timeoutIds.listeners.change),this.timeoutIds.listeners.change=setTimeout(()=>{this.options.listeners?.onChange?.({value:this.state.value,fieldApi:this})},t)):this.options.listeners?.onChange?.({value:this.state.value,fieldApi:this})},this.form=e.form,this.name=e.name,this.options=e,this.timeoutIds={validations:{},listeners:{},formListeners:{}},this.store=a(t=>{this.form.store.get();let n=this.form.getFieldMeta(this.name)??{...R,...e.defaultMeta},r=this.form.getFieldValue(this.name);return!n.isTouched&&r===void 0&&this.options.defaultValue!==void 0&&!E(r,this.options.defaultValue)&&(r=this.options.defaultValue),t&&t.value===r&&t.meta===n?t:{value:r,meta:n}})}get state(){return this.store.state}runValidator(e){return re(e.validate)?L[e.type](e.value,e.validate):e.validate(e.value)}triggerOnBlurListener(){let e=this.form.options.listeners?.onBlurDebounceMs;e&&e>0?(this.timeoutIds.formListeners.blur&&clearTimeout(this.timeoutIds.formListeners.blur),this.timeoutIds.formListeners.blur=setTimeout(()=>{this.form.options.listeners?.onBlur?.({formApi:this.form,fieldApi:this})},e)):this.form.options.listeners?.onBlur?.({formApi:this.form,fieldApi:this});let t=this.options.listeners?.onBlurDebounceMs;t&&t>0?(this.timeoutIds.listeners.blur&&clearTimeout(this.timeoutIds.listeners.blur),this.timeoutIds.listeners.blur=setTimeout(()=>{this.options.listeners?.onBlur?.({value:this.state.value,fieldApi:this})},t)):this.options.listeners?.onBlur?.({value:this.state.value,fieldApi:this})}};function G(e){if(e)return e}function K(e){switch(e){case`submit`:return`onSubmit`;case`blur`:return`onBlur`;case`mount`:return`onMount`;case`server`:return`onServer`;case`dynamic`:return`onDynamic`;default:return`onChange`}}var q=class e{constructor(t){if(this.getFormFieldName=e=>{if(typeof this.fieldsMap==`string`)return S(this.fieldsMap,e);let t=x(e)[0];if(typeof t!=`string`)return``;let n=e.slice(t.length),r=this.fieldsMap[t];return S(r,n)},this.getFormFieldOptions=e=>{let t={...e},n=t.validators;if(t.name=this.getFormFieldName(e.name),n&&(n.onChangeListenTo||n.onBlurListenTo)){let e={...n},r=e=>{if(e)return e.map(e=>this.getFormFieldName(e))};e.onChangeListenTo=r(n.onChangeListenTo),e.onBlurListenTo=r(n.onBlurListenTo),t.validators=e}return t},this.mount=()=>()=>{},this.validateArrayFieldsStartingFrom=async(e,t,n)=>this.form.validateArrayFieldsStartingFrom(this.getFormFieldName(e),t,n),this.validateField=(e,t)=>this.form.validateField(this.getFormFieldName(e),t),this.getFieldValue=e=>this.form.getFieldValue(this.getFormFieldName(e)),this.getFieldMeta=e=>this.form.getFieldMeta(this.getFormFieldName(e)),this.setFieldMeta=(e,t)=>this.form.setFieldMeta(this.getFormFieldName(e),t),this.setFieldValue=(e,t,n)=>this.form.setFieldValue(this.getFormFieldName(e),t,n),this.deleteField=e=>this.form.deleteField(this.getFormFieldName(e)),this.pushFieldValue=(e,t,n)=>this.form.pushFieldValue(this.getFormFieldName(e),t,n),this.insertFieldValue=async(e,t,n,r)=>this.form.insertFieldValue(this.getFormFieldName(e),t,n,r),this.replaceFieldValue=async(e,t,n,r)=>this.form.replaceFieldValue(this.getFormFieldName(e),t,n,r),this.removeFieldValue=async(e,t,n)=>this.form.removeFieldValue(this.getFormFieldName(e),t,n),this.swapFieldValues=(e,t,n,r)=>this.form.swapFieldValues(this.getFormFieldName(e),t,n,r),this.moveFieldValues=(e,t,n,r)=>this.form.moveFieldValues(this.getFormFieldName(e),t,n,r),this.clearFieldValues=(e,t)=>this.form.clearFieldValues(this.getFormFieldName(e),t),this.resetField=e=>this.form.resetField(this.getFormFieldName(e)),this.validateAllFields=e=>this.form.validateAllFields(e),t.form instanceof e){let e=t.form;if(this.form=e.form,typeof t.fields==`string`)this.fieldsMap=e.getFormFieldName(t.fields);else{let n={...t.fields};for(let t in n)n[t]=e.getFormFieldName(n[t]);this.fieldsMap=n}}else this.form=t.form,this.fieldsMap=t.fields;this.store=a(()=>{let e=this.form.store.get(),t;if(typeof this.fieldsMap==`string`)t=d(e.values,this.fieldsMap);else{t={};let n=this.fieldsMap;for(let r in n)t[r]=d(e.values,n[r])}return{values:t}})}get state(){return this.store.state}async handleSubmit(e){return this.form.handleSubmit(e)}};function ie(e,t){if(!t)return;let n=Object.assign({},e,{state:P(e.state)});t(n),n.fieldInfo!==e.fieldInfo&&(e.fieldInfo=n.fieldInfo),n.options!==e.options&&(e.options=n.options);let r=Object.keys({values:null,validationMetaMap:null,fieldMetaBase:null,isSubmitting:null,isSubmitted:null,isValidating:null,submissionAttempts:null,isSubmitSuccessful:null,_force_re_eval:null}).reduce((t,r)=>(e.state[r]!==n.state[r]&&(t[r]=n.state[r]),t),{});return i(()=>{Object.keys(r).length&&e.baseStore.setState(e=>({...e,...r})),n.state.errorMap!==e.state.errorMap&&e.setErrorMap(n.state.errorMap)}),n}var J=e(n(),1),Y=typeof window<`u`?J.useLayoutEffect:J.useEffect,X=t();function ae(e){let[t,n]=(0,J.useState)(()=>({form:e.form,name:e.name})),[i,a]=(0,J.useState)(()=>new W({...e}));(t.form!==e.form||t.name!==e.name)&&(a(new W({...e})),n({form:e.form,name:e.name}));let o=r(i.store,e.mode===`array`?e=>Object.keys(e.value??[]).length:e=>e.value),s=r(i.store,e=>e.meta.isTouched),c=r(i.store,e=>e.meta.isBlurred),l=r(i.store,e=>e.meta.isDirty),u=r(i.store,e=>e.meta.errorMap),d=r(i.store,e=>e.meta.errorSourceMap),f=r(i.store,e=>e.meta.isValidating),p=(0,J.useMemo)(()=>{let t={...i,get state(){return{value:e.mode===`array`?i.state.value:o,get meta(){return{...i.state.meta,isTouched:s,isBlurred:c,isDirty:l,errorMap:u,errorSourceMap:d,isValidating:f}}}}};return t.Field=Z,t},[i,e.mode,o,s,c,l,u,d,f]);return Y(i.mount,[i]),Y(()=>{i.update(e)}),p}var Z=(({children:e,...t})=>{let n=ae(t);return(0,X.jsx)(X.Fragment,{children:(0,J.useMemo)(()=>u(e,n),[e,n])})});function oe(){return(0,J.useState)(()=>N())[0]}var se=J,ce=`19.2.4`.split(`.`)[0]===`17`?oe:se.useId;function le({form:e,selector:t=e=>e,children:n}){return(0,X.jsx)(X.Fragment,{children:u(n,r(e.store,t))})}function ue(e){let t=ce(),[n,r]=(0,J.useState)(e?.formId),[i,a]=(0,J.useState)(()=>new V({...e,formId:e?.formId??t}));if(n!==e?.formId){let n=e?.formId??t;a(new V({...e,formId:n})),r(n)}let o=(0,J.useMemo)(()=>{let e={...i,handleSubmit:((...e)=>i._handleSubmit(...e)),get formId(){return i._formId},get state(){return i.store.state}};return e.Field=function(e){return(0,X.jsx)(Z,{...e,form:i})},e.Subscribe=function(e){return(0,X.jsx)(le,{form:i,selector:e.selector,children:e.children})},e},[i]);Y(i.mount,[]),Y(()=>{i.update(e)});let s=(0,J.useRef)(!1);return Y(()=>{s.current&&e?.transform&&ie(i,e.transform)},[i,e?.transform]),Y(()=>{s.current=!0}),o}function de({lens:e,selector:t=e=>e,children:n}){return(0,X.jsx)(X.Fragment,{children:u(n,r(e.store,t))})}function fe(e){let[t]=(0,J.useState)(()=>{let n=new q(e),r=e.form instanceof q?e.form.form:e.form,i=n;return i.AppForm=function(e){return(0,X.jsx)(r.AppForm,{...e})},i.AppField=function(e){return(0,X.jsx)(r.AppField,{...t.getFormFieldOptions(e)})},i.Field=function(e){return(0,X.jsx)(r.Field,{...t.getFormFieldOptions(e)})},i.Subscribe=function(e){return(0,X.jsx)(de,{lens:t,selector:e.selector,children:e.children})},Object.assign(i,{...e.formComponents})});return Y(t.mount,[t]),t}var Q=(0,J.createContext)(null),pe=(0,J.createContext)(null);function $(){let e=(0,J.useContext)(pe);if(!e)throw Error("`formContext` only works when within a `formComponent` passed to `createFormHook`");return e}function me(){function e(){let e=(0,J.useContext)(Q);if(!e)throw Error("`fieldContext` only works when within a `fieldComponent` passed to `createFormHook`");return e}return{fieldContext:Q,useFieldContext:e,useFormContext:$,formContext:pe}}function he({fieldComponents:e,fieldContext:t,formContext:n,formComponents:r}){function i(i){let a=ue(i),o=(0,J.useMemo)(()=>({children:e})=>(0,X.jsx)(n.Provider,{value:a,children:e}),[a]),s=(0,J.useMemo)(()=>(({children:n,...r})=>(0,X.jsx)(a.Field,{...r,children:r=>(0,X.jsx)(t.Provider,{value:r,children:n(Object.assign(r,e))})})),[a]);return(0,J.useMemo)(()=>Object.assign(a,{AppField:s,AppForm:o,...r}),[a,s,o])}function a({render:e,props:t}){return function(n){return e({...t,...n})}}function o({render:e,props:t,defaultValues:n}){return function(i){let a=fe((0,J.useMemo)(()=>({form:i.form,fields:i.fields,defaultValues:n,formComponents:r}),[i.form,i.fields]));return e({...t,...i,group:a})}}function s(e){return $()}return{useAppForm:i,withForm:a,withFieldGroup:o,useTypedAppFormContext:s}}var{fieldContext:ge,useFieldContext:_e,formContext:ve,useFormContext:ye}=me();export{he as a,ye as i,ve as n,_e as r,ge as t};
1
+ import{a as e,n as t,r as n,t as r}from"./useStore-CusP06SD.js";import{c as i,l as a}from"./index-B0MwZW7U.js";var o=class{constructor(e,t){this.fn=e,this.options=t,this.lastExecutionTime=0,this.isPending=!1,this.maybeExecute=(...e)=>{let t=Date.now()-this.lastExecutionTime;if(this.options.leading&&t>=this.options.wait)this.execute(...e);else if(this.lastArgs=e,!this.timeoutId&&this.options.trailing){let e=this.options.wait-t;this.isPending=!0,this.timeoutId=setTimeout(()=>{this.lastArgs!==void 0&&this.execute(...this.lastArgs)},e)}},this.execute=(...e)=>{this.fn(...e),this.options.onExecute?.(e,this),this.lastExecutionTime=Date.now(),this.clearTimeout(),this.lastArgs=void 0,this.isPending=!1},this.flush=()=>{this.isPending&&this.lastArgs&&this.execute(...this.lastArgs)},this.cancel=()=>{this.clearTimeout(),this.lastArgs=void 0,this.isPending=!1},this.clearTimeout=()=>{this.timeoutId&&=(clearTimeout(this.timeoutId),void 0)},this.options.leading===void 0&&this.options.trailing===void 0&&(this.options.leading=!0,this.options.trailing=!0)}};function s(e,t){return new o(e,t).maybeExecute}var c=class{#e=!0;#t;#n;#r;#i;#a;#o;#s;#c=0;#l=5;#u=!1;#d=!1;#f=null;#p=()=>{this.debugLog(`Connected to event bus`),this.#a=!0,this.#u=!1,this.debugLog(`Emitting queued events`,this.#i),this.#i.forEach(e=>this.emitEventToBus(e)),this.#i=[],this.stopConnectLoop(),this.#n().removeEventListener(`tanstack-connect-success`,this.#p)};#m=()=>{if(this.#c<this.#l){this.#c++,this.dispatchCustomEvent(`tanstack-connect`,{});return}this.#n().removeEventListener(`tanstack-connect`,this.#m),this.#d=!0,this.debugLog(`Max retries reached, giving up on connection`),this.stopConnectLoop()};#h=()=>{this.#u||(this.#u=!0,this.#n().addEventListener(`tanstack-connect-success`,this.#p),this.#m())};constructor({pluginId:e,debug:t=!1,enabled:n=!0,reconnectEveryMs:r=300}){this.#t=e,this.#e=n,this.#n=this.getGlobalTarget,this.#r=t,this.debugLog(` Initializing event subscription for plugin`,this.#t),this.#i=[],this.#a=!1,this.#d=!1,this.#o=null,this.#s=r}startConnectLoop(){this.#o!==null||this.#a||(this.debugLog(`Starting connect loop (every ${this.#s}ms)`),this.#o=setInterval(this.#m,this.#s))}stopConnectLoop(){this.#u=!1,this.#o!==null&&(clearInterval(this.#o),this.#o=null,this.#i=[],this.debugLog(`Stopped connect loop`))}debugLog(...e){this.#r&&console.log(`🌴 [tanstack-devtools:${this.#t}-plugin]`,...e)}getGlobalTarget(){if(typeof globalThis<`u`&&globalThis.__TANSTACK_EVENT_TARGET__)return this.debugLog(`Using global event target`),globalThis.__TANSTACK_EVENT_TARGET__;if(typeof window<`u`&&window.addEventListener!==void 0)return this.debugLog(`Using window as event target`),window;let e=typeof EventTarget<`u`?new EventTarget:void 0;return e===void 0||e.addEventListener===void 0?(this.debugLog(`No event mechanism available, running in non-web environment`),{addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:()=>!1}):(this.debugLog(`Using new EventTarget as fallback`),e)}getPluginId(){return this.#t}dispatchCustomEventShim(e,t){try{let n=new Event(e,{detail:t});this.#n().dispatchEvent(n)}catch{this.debugLog(`Failed to dispatch shim event`)}}dispatchCustomEvent(e,t){try{this.#n().dispatchEvent(new CustomEvent(e,{detail:t}))}catch{this.dispatchCustomEventShim(e,t)}}emitEventToBus(e){this.debugLog(`Emitting event to client bus`,e),this.dispatchCustomEvent(`tanstack-dispatch-event`,e)}createEventPayload(e,t){return{type:`${this.#t}:${e}`,payload:t,pluginId:this.#t}}emit(e,t){if(!this.#e){this.debugLog(`Event bus client is disabled, not emitting event`,e,t);return}if(this.#f&&(this.debugLog(`Emitting event to internal event target`,e,t),this.#f.dispatchEvent(new CustomEvent(`${this.#t}:${e}`,{detail:this.createEventPayload(e,t)}))),this.#d){this.debugLog(`Previously failed to connect, not emitting to bus`);return}if(!this.#a){this.debugLog(`Bus not available, will be pushed as soon as connected`),this.#i.push(this.createEventPayload(e,t)),typeof CustomEvent<`u`&&!this.#u&&(this.#h(),this.startConnectLoop());return}return this.emitEventToBus(this.createEventPayload(e,t))}on(e,t,n){let r=n?.withEventTarget??!1,i=`${this.#t}:${e}`;if(r&&(this.#f||=new EventTarget,this.#f.addEventListener(i,e=>{t(e.detail)})),!this.#e)return this.debugLog(`Event bus client is disabled, not registering event`,i),()=>{};let a=e=>{this.debugLog(`Received event from bus`,e.detail),t(e.detail)};return this.#n().addEventListener(i,a),this.debugLog(`Registered event to bus`,i),()=>{r&&this.#f?.removeEventListener(i,a),this.#n().removeEventListener(i,a)}}onAll(e){if(!this.#e)return this.debugLog(`Event bus client is disabled, not registering event`),()=>{};let t=t=>{let n=t.detail;e(n)};return this.#n().addEventListener(`tanstack-devtools-global`,t),()=>this.#n().removeEventListener(`tanstack-devtools-global`,t)}onAllPluginEvents(e){if(!this.#e)return this.debugLog(`Event bus client is disabled, not registering event`),()=>{};let t=t=>{let n=t.detail;this.#t&&n.pluginId!==this.#t||e(n)};return this.#n().addEventListener(`tanstack-devtools-global`,t),()=>this.#n().removeEventListener(`tanstack-devtools-global`,t)}},l=new class extends c{constructor(){super({pluginId:`form-devtools`,reconnectEveryMs:1e3})}};function u(e,t){return typeof e==`function`?e(t):e}function d(e,t){return x(t).reduce((e,t)=>{if(e===null)return null;if(e!==void 0)return e[t]},e)}function f(e,t,n){let r=x(t);function i(e){if(!r.length)return u(n,e);let t=r.shift();if(typeof t==`string`||typeof t==`number`&&!Array.isArray(e))return typeof e==`object`?(e===null&&(e={}),{...e,[t]:i(e[t])}):{[t]:i()};if(Array.isArray(e)&&typeof t==`number`){let n=e.slice(0,t);return[...n.length?n:Array(t),i(e[t]),...e.slice(t+1)]}return[...Array(t),i()]}return i(e)}function p(e,t){let n=x(t);function r(e){if(!e)return;if(n.length===1){let t=n[0];if(Array.isArray(e)&&typeof t==`number`)return e.filter((e,n)=>n!==t);let{[t]:r,...i}=e;return i}let t=n.shift();if((typeof t==`string`||typeof t==`number`&&!Array.isArray(e))&&typeof e==`object`)return{...e,[t]:r(e[t])};if(typeof t==`number`&&Array.isArray(e)){if(t>=e.length)return e;let n=e.slice(0,t);return[...n.length?n:Array(t),r(e[t]),...e.slice(t+1)]}throw Error(`It seems we have created an infinite loop in deleteBy. `)}return r(e)}var m=/^(\d+)$/gm,h=/\.(\d+)(?=\.)/gm,g=/^(\d+)\./gm,_=/\.(\d+$)/gm,v=/\.{2,}/gm,y=`__int__`,b=`${y}$1`;function x(e){if(Array.isArray(e))return[...e];if(typeof e!=`string`)throw Error(`Path must be a string.`);return e.replace(/(^\[)|]/gm,``).replace(/\[/g,`.`).replace(m,b).replace(h,`.${b}.`).replace(g,`${b}.`).replace(_,`.${b}`).replace(v,`.`).split(`.`).map(e=>{if(e.startsWith(y)){let t=e.substring(7),n=parseInt(t,10);return String(n)===t?n:t}return e})}function S(e,t){return e.length===0?t:t.length===0?e:t.startsWith(`[`)||t.startsWith(`.`)?e+t:`${e}.${t}`}function ee(e){return!(Array.isArray(e)&&e.length===0)}function C(e,t){return t.validationLogic({form:t.form,validators:t.validators,event:{type:e,async:!1},runValidation:e=>e.validators.filter(Boolean).map(e=>({cause:e.cause,validate:e.fn}))})}function w(e,t){let{asyncDebounceMs:n}=t,{onBlurAsyncDebounceMs:r,onChangeAsyncDebounceMs:i,onDynamicAsyncDebounceMs:a}=t.validators||{},o=n??0;return t.validationLogic({form:t.form,validators:t.validators,event:{type:e,async:!0},runValidation:t=>t.validators.filter(Boolean).map(t=>{let n=t?.cause||e,s=o;switch(n){case`change`:s=i??o;break;case`blur`:s=r??o;break;case`dynamic`:s=a??o;break;case`submit`:s=0;break}return e===`submit`&&(s=0),{cause:n,validate:t.fn,debounceMs:s}})})}var T=e=>!!e&&typeof e==`object`&&`fields`in e;function E(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i of n)if(!r.includes(i)||!E(e[i],t[i]))return!1;return!0}var D=({newFormValidatorError:e,isPreviousErrorFromFormValidator:t,previousErrorValue:n})=>e?{newErrorValue:e,newSource:`form`}:t?{newErrorValue:void 0,newSource:void 0}:n?{newErrorValue:n,newSource:`field`}:{newErrorValue:void 0,newSource:void 0},O=({formLevelError:e,fieldLevelError:t})=>t?{newErrorValue:t,newSource:`field`}:e?{newErrorValue:e,newSource:`form`}:{newErrorValue:void 0,newSource:void 0};function k(e,t){return e==null?t:{...e,...t}}for(var A=256,j=[],M;A--;)j[A]=(A+256).toString(16).substring(1);function N(){let e=0,t,n=``;if(!M||A+16>256){for(M=Array(256),e=256;e--;)M[e]=256*Math.random()|0;e=0,A=0}for(;e<16;e++)t=M[A+e],e===6?n+=j[t&15|64]:e===8?n+=j[t&63|128]:n+=j[t],e&1&&e>1&&e<11&&(n+=`-`);return A++,n}var te=s(e=>l.emit(`form-state`,{id:e.formId,state:e.store.state}),{wait:300});function P(e){if(typeof e!=`object`||!e)return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++)t[n]=P(e[n]);return t}if(e instanceof Map){let t=new Map;return e.forEach((e,n)=>{t.set(n,P(e))}),t}if(e instanceof Set){let t=new Set;return e.forEach(e=>{t.add(P(e))}),t}let t={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=P(e[n]));return t}var F=e=>{if(!e.validators)return e.runValidation({validators:[],form:e.form});let t=e.event.async,n=t?void 0:{fn:e.validators.onMount,cause:`mount`},r={fn:t?e.validators.onChangeAsync:e.validators.onChange,cause:`change`},i={fn:t?e.validators.onBlurAsync:e.validators.onBlur,cause:`blur`},a={fn:t?e.validators.onSubmitAsync:e.validators.onSubmit,cause:`submit`},o=t?void 0:{fn:()=>void 0,cause:`server`};switch(e.event.type){case`mount`:return e.runValidation({validators:[n],form:e.form});case`submit`:return e.runValidation({validators:[r,i,a,o],form:e.form});case`server`:return e.runValidation({validators:[],form:e.form});case`blur`:return e.runValidation({validators:[i,o],form:e.form});case`change`:return e.runValidation({validators:[r,o],form:e.form});default:throw Error(`Unknown validation event type: ${e.event.type}`)}};function ne(e,t){let n=new Map;for(let r of e){let e=r.path??[],i=t,a=``;for(let t=0;t<e.length;t++){let n=e[t];if(n===void 0)continue;let r=typeof n==`object`?n.key:n,o=Number(r);Array.isArray(i)&&!Number.isNaN(o)?a+=`[${o}]`:a+=(t>0?`.`:``)+String(r),i=typeof i==`object`&&i?i[r]:void 0}n.set(a,(n.get(a)??[]).concat(r))}return Object.fromEntries(n)}var I=(e,t)=>{let n=ne(e,t);return{form:n,fields:n}},L={validate({value:e,validationSource:t},n){let r=n[`~standard`].validate(e);if(r instanceof Promise)throw Error(`async function passed to sync validator`);if(r.issues)return t===`field`?r.issues:I(r.issues,e)},async validateAsync({value:e,validationSource:t},n){let r=await n[`~standard`].validate(e);if(r.issues)return t===`field`?r.issues:I(r.issues,e)}},re=e=>!!e&&`~standard`in e,R={isValidating:!1,isTouched:!1,isBlurred:!1,isDirty:!1,isPristine:!0,isValid:!0,isDefaultValue:!0,errors:[],errorMap:{},errorSourceMap:{}};function z(e){function t(t,n,r){let i=o(t,n,`move`,r),s=Math.min(n,r),l=Math.max(n,r);for(let e=s;e<=l;e++)i.push(a(t,e));let u=Object.keys(e.fieldInfo).reduce((r,i)=>(i.startsWith(a(t,n))&&r.set(i,e.getFieldMeta(i)),r),new Map);c(i,n<r?`up`:`down`),Object.keys(e.fieldInfo).filter(e=>e.startsWith(a(t,r))).forEach(i=>{let o=i.replace(a(t,r),a(t,n)),s=u.get(o);s&&e.setFieldMeta(i,s)})}function n(e,t){c(o(e,t,`remove`),`up`)}function r(t,n,r){o(t,n,`swap`,r).forEach(i=>{if(!i.toString().startsWith(a(t,n)))return;let o=i.toString().replace(a(t,n),a(t,r)),[s,c]=[e.getFieldMeta(i),e.getFieldMeta(o)];s&&e.setFieldMeta(o,s),c&&e.setFieldMeta(i,c)})}function i(t,n){let r=o(t,n,`insert`);c(r,`down`),r.forEach(r=>{r.toString().startsWith(a(t,n))&&e.setFieldMeta(r,l())})}function a(e,t){return`${e}[${t}]`}function o(t,n,r,i){let o=[a(t,n)];switch(r){case`swap`:o.push(a(t,i));break;case`move`:{let[e,r]=[Math.min(n,i),Math.max(n,i)];for(let n=e;n<=r;n++)o.push(a(t,n));break}default:{let r=e.getFieldValue(t),i=Array.isArray(r)?r.length:0;for(let e=n+1;e<i;e++)o.push(a(t,e));break}}return Object.keys(e.fieldInfo).filter(e=>o.some(t=>e.startsWith(t)))}function s(e,t){return e.replace(/\[(\d+)\]/,(e,n)=>{let r=parseInt(n,10);return`[${t===`up`?r+1:Math.max(0,r-1)}]`})}function c(t,n){(n===`up`?t:[...t].reverse()).forEach(t=>{let r=s(t.toString(),n),i=e.getFieldMeta(r);i?e.setFieldMeta(t,i):e.setFieldMeta(t,l())})}let l=()=>R;return{handleArrayMove:t,handleArrayRemove:n,handleArraySwap:r,handleArrayInsert:i}}function B(e){return{values:e.values??{},errorMap:e.errorMap??{},fieldMetaBase:e.fieldMetaBase??{},isSubmitted:e.isSubmitted??!1,isSubmitting:e.isSubmitting??!1,isValidating:e.isValidating??!1,submissionAttempts:e.submissionAttempts??0,isSubmitSuccessful:e.isSubmitSuccessful??!1,validationMetaMap:e.validationMetaMap??{onChange:void 0,onBlur:void 0,onSubmit:void 0,onMount:void 0,onServer:void 0,onDynamic:void 0}}}var V=class{constructor(e){this.options={},this.fieldInfo={},this.mount=()=>{let e=this.store.subscribe(()=>{te(this)}),t=l.on(`request-form-state`,e=>{e.payload.id===this._formId&&l.emit(`form-api`,{id:this._formId,state:this.store.state,options:this.options})}),n=l.on(`request-form-reset`,e=>{e.payload.id===this._formId&&this.reset()}),r=l.on(`request-form-force-submit`,e=>{e.payload.id===this._formId&&(this._devtoolsSubmissionOverride=!0,this.handleSubmit(),this._devtoolsSubmissionOverride=!1)}),i=()=>{r(),n(),t(),e.unsubscribe(),l.emit(`form-unmounted`,{id:this._formId})};this.options.listeners?.onMount?.({formApi:this});let{onMount:a}=this.options.validators||{};return l.emit(`form-api`,{id:this._formId,state:this.store.state,options:this.options}),a&&this.validateSync(`mount`),i},this.update=e=>{if(!e)return;let t=this.options;this.options=e;let n=e.defaultValues&&!E(e.defaultValues,t.defaultValues)&&!this.state.isTouched,r=!E(e.defaultState,t.defaultState)&&!this.state.isTouched;!n&&!r||(i(()=>{this.baseStore.setState(()=>B(Object.assign({},this.state,r?e.defaultState:{},n?{values:e.defaultValues}:{})))}),l.emit(`form-api`,{id:this._formId,state:this.store.state,options:this.options}))},this.reset=(e,t)=>{let{fieldMeta:n}=this.state,r=this.resetFieldMeta(n);e&&!t?.keepDefaultValues&&(this.options={...this.options,defaultValues:e}),this.baseStore.setState(()=>B({...this.options.defaultState,values:e??this.options.defaultValues??this.options.defaultState?.values,fieldMetaBase:r}))},this.validateAllFields=async e=>{let t=[];return i(()=>{Object.values(this.fieldInfo).forEach(n=>{if(!n.instance)return;let r=n.instance;t.push(Promise.resolve().then(()=>r.validate(e,{skipFormValidation:!0}))),n.instance.state.meta.isTouched||n.instance.setMeta(e=>({...e,isTouched:!0}))})}),(await Promise.all(t)).flat()},this.validateArrayFieldsStartingFrom=async(e,t,n)=>{let r=this.getFieldValue(e),a=Array.isArray(r)?Math.max(r.length-1,0):null,o=[`${e}[${t}]`];for(let n=t+1;n<=(a??0);n++)o.push(`${e}[${n}]`);let s=Object.keys(this.fieldInfo).filter(e=>o.some(t=>e.startsWith(t))),c=[];return i(()=>{s.forEach(e=>{c.push(Promise.resolve().then(()=>this.validateField(e,n)))})}),(await Promise.all(c)).flat()},this.validateField=(e,t)=>{let n=this.fieldInfo[e]?.instance;if(!n){let{hasErrored:n}=this.validateSync(t);return n&&!this.options.asyncAlways?this.getFieldMeta(e)?.errors??[]:this.validateAsync(t).then(()=>this.getFieldMeta(e)?.errors??[])}return n.state.meta.isTouched||n.setMeta(e=>({...e,isTouched:!0})),n.validate(t)},this.validateSync=e=>{let t=C(e,{...this.options,form:this,validationLogic:this.options.validationLogic||F}),n=!1,r={};return i(()=>{for(let e of t){if(!e.validate)continue;let{formError:t,fieldErrors:i}=H(this.runValidator({validate:e.validate,value:{value:this.state.values,formApi:this,validationSource:`form`},type:`validate`})),a=U(e.cause),o=new Set([...Object.keys(this.state.fieldMeta),...Object.keys(i||{})]);for(let e of o){if(this.baseStore.state.fieldMetaBase[e]===void 0&&!i?.[e])continue;let{errorMap:t,errorSourceMap:n}=this.getFieldMeta(e)??R,o=i?.[e],{newErrorValue:s,newSource:c}=D({newFormValidatorError:o,isPreviousErrorFromFormValidator:n?.[a]===`form`,previousErrorValue:t?.[a]});c===`form`&&(r[e]={...r[e],[a]:o}),t?.[a]!==s&&this.setFieldMeta(e,(e=R)=>({...e,errorMap:{...e.errorMap,[a]:s},errorSourceMap:{...e.errorSourceMap,[a]:c}}))}this.state.errorMap?.[a]!==t&&this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[a]:t}})),(t||i)&&(n=!0)}let i=U(`submit`);this.state.errorMap?.[i]&&e!==`submit`&&!n&&this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[i]:void 0}}));let a=U(`server`);this.state.errorMap?.[a]&&e!==`server`&&!n&&this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[a]:void 0}}))}),{hasErrored:n,fieldsErrorMap:r}},this.validateAsync=async e=>{let t=w(e,{...this.options,form:this,validationLogic:this.options.validationLogic||F});this.state.isFormValidating||this.baseStore.setState(e=>({...e,isFormValidating:!0}));let n=[],r;for(let e of t){if(!e.validate)continue;let t=U(e.cause);this.state.validationMetaMap[t]?.lastAbortController.abort();let i=new AbortController;this.state.validationMetaMap[t]={lastAbortController:i},n.push(new Promise(async t=>{let n;try{n=await new Promise((t,n)=>{setTimeout(async()=>{if(i.signal.aborted)return t(void 0);try{t(await this.runValidator({validate:e.validate,value:{value:this.state.values,formApi:this,validationSource:`form`,signal:i.signal},type:`validateAsync`}))}catch(e){n(e)}},e.debounceMs)})}catch(e){n=e}let{formError:a,fieldErrors:o}=H(n);o&&(r=r?{...r,...o}:o);let s=U(e.cause);for(let e of Object.keys(this.state.fieldMeta)){if(this.baseStore.state.fieldMetaBase[e]===void 0)continue;let t=this.getFieldMeta(e);if(!t)continue;let{errorMap:n,errorSourceMap:i}=t,a=r?.[e],{newErrorValue:o,newSource:c}=D({newFormValidatorError:a,isPreviousErrorFromFormValidator:i?.[s]===`form`,previousErrorValue:n?.[s]});n?.[s]!==o&&this.setFieldMeta(e,e=>({...e,errorMap:{...e.errorMap,[s]:o},errorSourceMap:{...e.errorSourceMap,[s]:c}}))}this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[s]:a}})),t(r?{fieldErrors:r,errorMapKey:s}:void 0)}))}let i=[],a={};if(n.length){i=await Promise.all(n);for(let e of i)if(e?.fieldErrors){let{errorMapKey:t}=e;for(let[n,r]of Object.entries(e.fieldErrors))a[n]={...a[n]||{},[t]:r}}}return this.baseStore.setState(e=>({...e,isFormValidating:!1})),a},this.validate=e=>{let{hasErrored:t,fieldsErrorMap:n}=this.validateSync(e);return t&&!this.options.asyncAlways?n:this.validateAsync(e)},this._handleSubmit=async e=>{this.baseStore.setState(e=>({...e,isSubmitted:!1,submissionAttempts:e.submissionAttempts+1,isSubmitSuccessful:!1})),i(()=>{Object.values(this.fieldInfo).forEach(e=>{e.instance&&(e.instance.state.meta.isTouched||e.instance.setMeta(e=>({...e,isTouched:!0})))})});let t=e??this.options.onSubmitMeta;if(!this.state.canSubmit&&!this._devtoolsSubmissionOverride){this.options.onSubmitInvalid?.({value:this.state.values,formApi:this,meta:t});return}this.baseStore.setState(e=>({...e,isSubmitting:!0}));let n=()=>{this.baseStore.setState(e=>({...e,isSubmitting:!1}))};if(await this.validateAllFields(`submit`),!this.state.isFieldsValid){n(),this.options.onSubmitInvalid?.({value:this.state.values,formApi:this,meta:t}),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!1,stage:`validateAllFields`,errors:Object.values(this.state.fieldMeta).map(e=>e.errors).flat()});return}if(await this.validate(`submit`),!this.state.isValid){n(),this.options.onSubmitInvalid?.({value:this.state.values,formApi:this,meta:t}),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!1,stage:`validate`,errors:this.state.errors});return}i(()=>{Object.values(this.fieldInfo).forEach(e=>{e.instance?.options.listeners?.onSubmit?.({value:e.instance.state.value,fieldApi:e.instance})})}),this.options.listeners?.onSubmit?.({formApi:this,meta:t});try{await this.options.onSubmit?.({value:this.state.values,formApi:this,meta:t}),i(()=>{this.baseStore.setState(e=>({...e,isSubmitted:!0,isSubmitSuccessful:!0})),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!0}),n()})}catch(e){throw this.baseStore.setState(e=>({...e,isSubmitSuccessful:!1})),l.emit(`form-submission`,{id:this._formId,submissionAttempt:this.state.submissionAttempts,successful:!1,stage:`inflight`,onError:e}),n(),e}},this.getFieldValue=e=>d(this.state.values,e),this.getFieldMeta=e=>this.state.fieldMeta[e],this.getFieldInfo=e=>this.fieldInfo[e]||={instance:null,validationMetaMap:{onChange:void 0,onBlur:void 0,onSubmit:void 0,onMount:void 0,onServer:void 0,onDynamic:void 0}},this.setFieldMeta=(e,t)=>{this.baseStore.setState(n=>({...n,fieldMetaBase:{...n.fieldMetaBase,[e]:u(t,n.fieldMetaBase[e])}}))},this.resetFieldMeta=e=>Object.keys(e).reduce((e,t)=>{let n=t;return e[n]=R,e},{}),this.setFieldValue=(e,t,n)=>{let r=n?.dontUpdateMeta??!1,a=n?.dontRunListeners??!1,o=n?.dontValidate??!1;i(()=>{r||this.setFieldMeta(e,e=>({...e,isTouched:!0,isDirty:!0,errorMap:{...e?.errorMap,onMount:void 0}})),this.baseStore.setState(n=>({...n,values:f(n.values,e,t)}))}),a||this.getFieldInfo(e).instance?.triggerOnChangeListener(),o||this.validateField(e,`change`)},this.deleteField=e=>{let t=[...Object.keys(this.fieldInfo).filter(t=>{let n=e.toString();return t!==n&&t.startsWith(n)}),e];this.baseStore.setState(e=>{let n={...e};return t.forEach(e=>{n.values=p(n.values,e),delete this.fieldInfo[e],delete n.fieldMetaBase[e]}),n})},this.pushFieldValue=(e,t,n)=>{this.setFieldValue(e,e=>[...Array.isArray(e)?e:[],t],n)},this.insertFieldValue=async(e,t,n,r)=>{this.setFieldValue(e,e=>[...e.slice(0,t),n,...e.slice(t)],k(r,{dontValidate:!0}));let i=r?.dontValidate??!1;i||await this.validateField(e,`change`),z(this).handleArrayInsert(e,t),i||await this.validateArrayFieldsStartingFrom(e,t,`change`)},this.replaceFieldValue=async(e,t,n,r)=>{this.setFieldValue(e,e=>e.map((e,r)=>r===t?n:e),k(r,{dontValidate:!0})),(r?.dontValidate??!1)||(await this.validateField(e,`change`),await this.validateArrayFieldsStartingFrom(e,t,`change`))},this.removeFieldValue=async(e,t,n)=>{let r=this.getFieldValue(e),i=Array.isArray(r)?Math.max(r.length-1,0):null;if(this.setFieldValue(e,e=>e.filter((e,n)=>n!==t),k(n,{dontValidate:!0})),z(this).handleArrayRemove(e,t),i!==null){let t=`${e}[${i}]`;this.deleteField(t)}(n?.dontValidate??!1)||(await this.validateField(e,`change`),await this.validateArrayFieldsStartingFrom(e,t,`change`))},this.swapFieldValues=(e,t,n,r)=>{this.setFieldValue(e,e=>{let r=e[t],i=e[n];return f(f(e,`${t}`,i),`${n}`,r)},k(r,{dontValidate:!0})),z(this).handleArraySwap(e,t,n),(r?.dontValidate??!1)||(this.validateField(e,`change`),this.validateField(`${e}[${t}]`,`change`),this.validateField(`${e}[${n}]`,`change`))},this.moveFieldValues=(e,t,n,r)=>{this.setFieldValue(e,e=>{let r=[...e];return r.splice(n,0,r.splice(t,1)[0]),r},k(r,{dontValidate:!0})),z(this).handleArrayMove(e,t,n),(r?.dontValidate??!1)||(this.validateField(e,`change`),this.validateField(`${e}[${t}]`,`change`),this.validateField(`${e}[${n}]`,`change`))},this.clearFieldValues=(e,t)=>{let n=this.getFieldValue(e),r=Array.isArray(n)?Math.max(n.length-1,0):null;if(this.setFieldValue(e,[],k(t,{dontValidate:!0})),r!==null)for(let t=0;t<=r;t++){let n=`${e}[${t}]`;this.deleteField(n)}(t?.dontValidate??!1)||this.validateField(e,`change`)},this.resetField=e=>{this.baseStore.setState(t=>({...t,fieldMetaBase:{...t.fieldMetaBase,[e]:R},values:this.options.defaultValues?f(t.values,e,d(this.options.defaultValues,e)):t.values}))},this.setErrorMap=e=>{i(()=>{Object.entries(e).forEach(([e,t])=>{let n=e;if(T(t)){let{formError:e,fieldErrors:r}=H(t);for(let e of Object.keys(this.fieldInfo))this.getFieldMeta(e)&&this.setFieldMeta(e,t=>({...t,errorMap:{...t.errorMap,[n]:r?.[e]},errorSourceMap:{...t.errorSourceMap,[n]:`form`}}));this.baseStore.setState(t=>({...t,errorMap:{...t.errorMap,[n]:e}}))}else this.baseStore.setState(e=>({...e,errorMap:{...e.errorMap,[n]:t}}))})})},this.getAllErrors=()=>({form:{errors:this.state.errors,errorMap:this.state.errorMap},fields:Object.entries(this.state.fieldMeta).reduce((e,[t,n])=>(Object.keys(n).length&&n.errors.length&&(e[t]={errors:n.errors,errorMap:n.errorMap}),e),{})}),this.parseValuesWithSchema=e=>L.validate({value:this.state.values,validationSource:`form`},e),this.parseValuesWithSchemaAsync=e=>L.validateAsync({value:this.state.values,validationSource:`form`},e),this.timeoutIds={validations:{},listeners:{},formListeners:{}},this._formId=e?.formId??N(),this._devtoolsSubmissionOverride=!1;let t=B({...e?.defaultState,values:e?.defaultValues??e?.defaultState?.values});if(e?.transform){t=e.transform({state:t}).state;for(let e of Object.keys(t.errorMap)){let n=t.errorMap[e];if(!(n===void 0||!T(n)))for(let r of Object.keys(n.fields)){let i=n.fields[r];if(i===void 0)continue;let a=t.fieldMetaBase[r];t.fieldMetaBase[r]={isTouched:!1,isValidating:!1,isBlurred:!1,isDirty:!1,...a??{},errorSourceMap:{...a?.errorSourceMap??{},onChange:`form`},errorMap:{...a?.errorMap??{},[e]:i}}}}}this.baseStore=a(t);let n;this.fieldMetaDerived=a(e=>{let t=this.baseStore.get(),r=0,i={};for(let a of Object.keys(t.fieldMetaBase)){let o=t.fieldMetaBase[a],s=n?.fieldMetaBase[a],c=e?.[a],l=d(t.values,a),u=c?.errors;if(!s||o.errorMap!==s.errorMap){u=Object.values(o.errorMap??{}).filter(e=>e!==void 0);let e=this.getFieldInfo(a)?.instance;(!e||!e.options.disableErrorFlat)&&(u=u.flat(1))}let f=!ee(u),p=!o.isDirty,m=E(l,d(this.options.defaultValues,a))||E(l,this.getFieldInfo(a)?.instance?.options.defaultValue);if(c&&c.isPristine===p&&c.isValid===f&&c.isDefaultValue===m&&c.errors===u&&o===s){i[a]=c,r++;continue}i[a]={...o,errors:u??[],isPristine:p,isValid:f,isDefaultValue:m}}return Object.keys(t.fieldMetaBase).length?e&&r===Object.keys(t.fieldMetaBase).length?e:(n=this.baseStore.get(),i):i});let r;this.store=a(e=>{let t=this.baseStore.get(),n=this.fieldMetaDerived.get(),i=Object.values(n).filter(Boolean),a=i.some(e=>e.isValidating),o=i.every(e=>e.isValid),s=i.some(e=>e.isTouched),c=i.some(e=>e.isBlurred),l=i.every(e=>e.isDefaultValue),u=s&&t.errorMap?.onMount,d=i.some(e=>e.isDirty),f=!d,p=!!(t.errorMap?.onMount||i.some(e=>e?.errorMap?.onMount)),m=!!a,h=e?.errors??[];(!r||t.errorMap!==r.errorMap)&&(h=Object.values(t.errorMap).reduce((e,t)=>t===void 0?e:t&&T(t)?(e.push(t.form),e):(e.push(t),e),[]));let g=h.length===0,_=o&&g,v=this.options.canSubmitWhenInvalid??!1,y=t.submissionAttempts===0&&!s&&!p||!m&&!t.isSubmitting&&_||v,b=t.errorMap;if(u&&(h=h.filter(e=>e!==t.errorMap.onMount),b=Object.assign(b,{onMount:void 0})),e&&r&&e.errorMap===b&&e.fieldMeta===this.fieldMetaDerived.state&&e.errors===h&&e.isFieldsValidating===a&&e.isFieldsValid===o&&e.isFormValid===g&&e.isValid===_&&e.canSubmit===y&&e.isTouched===s&&e.isBlurred===c&&e.isPristine===f&&e.isDefaultValue===l&&e.isDirty===d&&E(r,t))return e;let x={...t,errorMap:b,fieldMeta:this.fieldMetaDerived.state,errors:h,isFieldsValidating:a,isFieldsValid:o,isFormValid:g,isValid:_,canSubmit:y,isTouched:s,isBlurred:c,isPristine:f,isDefaultValue:l,isDirty:d};return r=this.baseStore.get(),x}),this.handleSubmit=this.handleSubmit.bind(this),this.update(e||{})}get state(){return this.store.state}get formId(){return this._formId}runValidator(e){return re(e.validate)?L[e.type](e.value,e.validate):e.validate(e.value)}handleSubmit(e){return this._handleSubmit(e)}};function H(e){return e?T(e)?{formError:H(e.form).formError,fieldErrors:e.fields}:{formError:e}:{formError:void 0}}function U(e){switch(e){case`submit`:return`onSubmit`;case`blur`:return`onBlur`;case`mount`:return`onMount`;case`server`:return`onServer`;case`dynamic`:return`onDynamic`;default:return`onChange`}}var W=class{constructor(e){this.options={},this.mount=()=>{this.options.defaultValue!==void 0&&!this.getMeta().isTouched&&this.form.setFieldValue(this.name,this.options.defaultValue,{dontUpdateMeta:!0});let e=this.getInfo();e.instance=this,this.update(this.options);let{onMount:t}=this.options.validators||{};if(t){let e=this.runValidator({validate:t,value:{value:this.state.value,fieldApi:this,validationSource:`field`},type:`validate`});e&&this.setMeta(t=>({...t,errorMap:{...t?.errorMap,onMount:e},errorSourceMap:{...t?.errorSourceMap,onMount:`field`}}))}return this.options.listeners?.onMount?.({value:this.state.value,fieldApi:this}),()=>{}},this.update=e=>{this.options=e,this.name=e.name,!this.state.meta.isTouched&&this.options.defaultValue!==void 0&&(E(this.form.getFieldValue(this.name),e.defaultValue)||this.form.setFieldValue(this.name,e.defaultValue,{dontUpdateMeta:!0,dontValidate:!0,dontRunListeners:!0})),this.form.getFieldMeta(this.name)||this.form.setFieldMeta(this.name,this.state.meta)},this.getValue=()=>this.form.getFieldValue(this.name),this.setValue=(e,t)=>{this.form.setFieldValue(this.name,e,k(t,{dontRunListeners:!0,dontValidate:!0})),t?.dontRunListeners||this.triggerOnChangeListener(),t?.dontValidate||this.validate(`change`)},this.getMeta=()=>this.store.state.meta,this.setMeta=e=>this.form.setFieldMeta(this.name,e),this.getInfo=()=>this.form.getFieldInfo(this.name),this.pushValue=(e,t)=>{this.form.pushFieldValue(this.name,e,k(t,{dontRunListeners:!0})),t?.dontRunListeners||this.triggerOnChangeListener()},this.insertValue=(e,t,n)=>{this.form.insertFieldValue(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.replaceValue=(e,t,n)=>{this.form.replaceFieldValue(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.removeValue=(e,t)=>{this.form.removeFieldValue(this.name,e,k(t,{dontRunListeners:!0})),t?.dontRunListeners||this.triggerOnChangeListener()},this.swapValues=(e,t,n)=>{this.form.swapFieldValues(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.moveValue=(e,t,n)=>{this.form.moveFieldValues(this.name,e,t,k(n,{dontRunListeners:!0})),n?.dontRunListeners||this.triggerOnChangeListener()},this.clearValues=e=>{this.form.clearFieldValues(this.name,k(e,{dontRunListeners:!0})),e?.dontRunListeners||this.triggerOnChangeListener()},this.getLinkedFields=e=>{let t=Object.values(this.form.fieldInfo),n=[];for(let r of t){if(!r.instance)continue;let{onChangeListenTo:t,onBlurListenTo:i}=r.instance.options.validators||{};e===`change`&&t?.includes(this.name)&&n.push(r.instance),e===`blur`&&i?.includes(this.name)&&n.push(r.instance)}return n},this.validateSync=(e,t)=>{let n=C(e,{...this.options,form:this.form,validationLogic:this.form.options.validationLogic||F}),r=this.getLinkedFields(e).reduce((t,n)=>{let r=C(e,{...n.options,form:n.form,validationLogic:n.form.options.validationLogic||F});return r.forEach(e=>{e.field=n}),t.concat(r)},[]),a=!1;i(()=>{let e=(e,n)=>{let r=K(n.cause),i=n.validate?G(e.runValidator({validate:n.validate,value:{value:e.store.state.value,validationSource:`field`,fieldApi:e},type:`validate`})):void 0,o=t[r],{newErrorValue:s,newSource:c}=O({formLevelError:o,fieldLevelError:i});e.state.meta.errorMap?.[r]!==s&&e.setMeta(e=>({...e,errorMap:{...e.errorMap,[r]:s},errorSourceMap:{...e.errorSourceMap,[r]:c}})),s&&(a=!0)};for(let t of n)e(this,t);for(let t of r)t.validate&&e(t.field,t)});let o=K(`submit`);return this.state.meta.errorMap?.[o]&&e!==`submit`&&!a&&this.setMeta(e=>({...e,errorMap:{...e.errorMap,[o]:void 0},errorSourceMap:{...e.errorSourceMap,[o]:void 0}})),{hasErrored:a}},this.validateAsync=async(e,t)=>{let n=w(e,{...this.options,form:this.form,validationLogic:this.form.options.validationLogic||F}),r=await t,i=this.getLinkedFields(e),a=i.reduce((t,n)=>{let r=w(e,{...n.options,form:n.form,validationLogic:n.form.options.validationLogic||F});return r.forEach(e=>{e.field=n}),t.concat(r)},[]),o=[],s=[],c=n.some(e=>e.validate)||a.some(e=>e.validate);if(c){this.state.meta.isValidating||this.setMeta(e=>({...e,isValidating:!0}));for(let e of i)e.setMeta(e=>({...e,isValidating:!0}))}let l=(e,t,n)=>{let i=K(t.cause);e.getInfo().validationMetaMap[i]?.lastAbortController.abort();let a=new AbortController;this.getInfo().validationMetaMap[i]={lastAbortController:a},n.push(new Promise(async n=>{let o;try{o=await new Promise((n,r)=>{this.timeoutIds.validations[t.cause]&&clearTimeout(this.timeoutIds.validations[t.cause]),this.timeoutIds.validations[t.cause]=setTimeout(async()=>{if(a.signal.aborted)return n(void 0);try{n(await this.runValidator({validate:t.validate,value:{value:e.store.state.value,fieldApi:e,signal:a.signal,validationSource:`field`},type:`validateAsync`}))}catch(e){r(e)}},t.debounceMs)})}catch(e){o=e}if(a.signal.aborted)return n(void 0);let s=G(o),c=r[this.name]?.[i],{newErrorValue:l,newSource:u}=O({formLevelError:c,fieldLevelError:s});e.setMeta(e=>({...e,errorMap:{...e?.errorMap,[i]:l},errorSourceMap:{...e.errorSourceMap,[i]:u}})),n(l)}))};for(let e of n)e.validate&&l(this,e,o);for(let e of a)e.validate&&l(e.field,e,s);let u=[];if((o.length||s.length)&&(u=await Promise.all(o),await Promise.all(s)),c){this.setMeta(e=>({...e,isValidating:!1}));for(let e of i)e.setMeta(e=>({...e,isValidating:!1}))}return u.filter(Boolean)},this.validate=(e,t)=>{if(!this.state.meta.isTouched)return[];let{fieldsErrorMap:n}=t?.skipFormValidation?{fieldsErrorMap:{}}:this.form.validateSync(e),{hasErrored:r}=this.validateSync(e,n[this.name]??{});if(r&&!this.options.asyncAlways)return this.getInfo().validationMetaMap[K(e)]?.lastAbortController.abort(),this.state.meta.errors;let i=t?.skipFormValidation?Promise.resolve({}):this.form.validateAsync(e);return this.validateAsync(e,i)},this.handleChange=e=>{this.setValue(e)},this.handleBlur=()=>{this.state.meta.isTouched||this.setMeta(e=>({...e,isTouched:!0})),this.state.meta.isBlurred||this.setMeta(e=>({...e,isBlurred:!0})),this.validate(`blur`),this.triggerOnBlurListener()},this.setErrorMap=e=>{this.setMeta(t=>({...t,errorMap:{...t.errorMap,...e}}))},this.parseValueWithSchema=e=>L.validate({value:this.state.value,validationSource:`field`},e),this.parseValueWithSchemaAsync=e=>L.validateAsync({value:this.state.value,validationSource:`field`},e),this.triggerOnChangeListener=()=>{let e=this.form.options.listeners?.onChangeDebounceMs;e&&e>0?(this.timeoutIds.formListeners.change&&clearTimeout(this.timeoutIds.formListeners.change),this.timeoutIds.formListeners.change=setTimeout(()=>{this.form.options.listeners?.onChange?.({formApi:this.form,fieldApi:this})},e)):this.form.options.listeners?.onChange?.({formApi:this.form,fieldApi:this});let t=this.options.listeners?.onChangeDebounceMs;t&&t>0?(this.timeoutIds.listeners.change&&clearTimeout(this.timeoutIds.listeners.change),this.timeoutIds.listeners.change=setTimeout(()=>{this.options.listeners?.onChange?.({value:this.state.value,fieldApi:this})},t)):this.options.listeners?.onChange?.({value:this.state.value,fieldApi:this})},this.form=e.form,this.name=e.name,this.options=e,this.timeoutIds={validations:{},listeners:{},formListeners:{}},this.store=a(t=>{this.form.store.get();let n=this.form.getFieldMeta(this.name)??{...R,...e.defaultMeta},r=this.form.getFieldValue(this.name);return!n.isTouched&&r===void 0&&this.options.defaultValue!==void 0&&!E(r,this.options.defaultValue)&&(r=this.options.defaultValue),t&&t.value===r&&t.meta===n?t:{value:r,meta:n}})}get state(){return this.store.state}runValidator(e){return re(e.validate)?L[e.type](e.value,e.validate):e.validate(e.value)}triggerOnBlurListener(){let e=this.form.options.listeners?.onBlurDebounceMs;e&&e>0?(this.timeoutIds.formListeners.blur&&clearTimeout(this.timeoutIds.formListeners.blur),this.timeoutIds.formListeners.blur=setTimeout(()=>{this.form.options.listeners?.onBlur?.({formApi:this.form,fieldApi:this})},e)):this.form.options.listeners?.onBlur?.({formApi:this.form,fieldApi:this});let t=this.options.listeners?.onBlurDebounceMs;t&&t>0?(this.timeoutIds.listeners.blur&&clearTimeout(this.timeoutIds.listeners.blur),this.timeoutIds.listeners.blur=setTimeout(()=>{this.options.listeners?.onBlur?.({value:this.state.value,fieldApi:this})},t)):this.options.listeners?.onBlur?.({value:this.state.value,fieldApi:this})}};function G(e){if(e)return e}function K(e){switch(e){case`submit`:return`onSubmit`;case`blur`:return`onBlur`;case`mount`:return`onMount`;case`server`:return`onServer`;case`dynamic`:return`onDynamic`;default:return`onChange`}}var q=class e{constructor(t){if(this.getFormFieldName=e=>{if(typeof this.fieldsMap==`string`)return S(this.fieldsMap,e);let t=x(e)[0];if(typeof t!=`string`)return``;let n=e.slice(t.length),r=this.fieldsMap[t];return S(r,n)},this.getFormFieldOptions=e=>{let t={...e},n=t.validators;if(t.name=this.getFormFieldName(e.name),n&&(n.onChangeListenTo||n.onBlurListenTo)){let e={...n},r=e=>{if(e)return e.map(e=>this.getFormFieldName(e))};e.onChangeListenTo=r(n.onChangeListenTo),e.onBlurListenTo=r(n.onBlurListenTo),t.validators=e}return t},this.mount=()=>()=>{},this.validateArrayFieldsStartingFrom=async(e,t,n)=>this.form.validateArrayFieldsStartingFrom(this.getFormFieldName(e),t,n),this.validateField=(e,t)=>this.form.validateField(this.getFormFieldName(e),t),this.getFieldValue=e=>this.form.getFieldValue(this.getFormFieldName(e)),this.getFieldMeta=e=>this.form.getFieldMeta(this.getFormFieldName(e)),this.setFieldMeta=(e,t)=>this.form.setFieldMeta(this.getFormFieldName(e),t),this.setFieldValue=(e,t,n)=>this.form.setFieldValue(this.getFormFieldName(e),t,n),this.deleteField=e=>this.form.deleteField(this.getFormFieldName(e)),this.pushFieldValue=(e,t,n)=>this.form.pushFieldValue(this.getFormFieldName(e),t,n),this.insertFieldValue=async(e,t,n,r)=>this.form.insertFieldValue(this.getFormFieldName(e),t,n,r),this.replaceFieldValue=async(e,t,n,r)=>this.form.replaceFieldValue(this.getFormFieldName(e),t,n,r),this.removeFieldValue=async(e,t,n)=>this.form.removeFieldValue(this.getFormFieldName(e),t,n),this.swapFieldValues=(e,t,n,r)=>this.form.swapFieldValues(this.getFormFieldName(e),t,n,r),this.moveFieldValues=(e,t,n,r)=>this.form.moveFieldValues(this.getFormFieldName(e),t,n,r),this.clearFieldValues=(e,t)=>this.form.clearFieldValues(this.getFormFieldName(e),t),this.resetField=e=>this.form.resetField(this.getFormFieldName(e)),this.validateAllFields=e=>this.form.validateAllFields(e),t.form instanceof e){let e=t.form;if(this.form=e.form,typeof t.fields==`string`)this.fieldsMap=e.getFormFieldName(t.fields);else{let n={...t.fields};for(let t in n)n[t]=e.getFormFieldName(n[t]);this.fieldsMap=n}}else this.form=t.form,this.fieldsMap=t.fields;this.store=a(()=>{let e=this.form.store.get(),t;if(typeof this.fieldsMap==`string`)t=d(e.values,this.fieldsMap);else{t={};let n=this.fieldsMap;for(let r in n)t[r]=d(e.values,n[r])}return{values:t}})}get state(){return this.store.state}async handleSubmit(e){return this.form.handleSubmit(e)}};function ie(e,t){if(!t)return;let n=Object.assign({},e,{state:P(e.state)});t(n),n.fieldInfo!==e.fieldInfo&&(e.fieldInfo=n.fieldInfo),n.options!==e.options&&(e.options=n.options);let r=Object.keys({values:null,validationMetaMap:null,fieldMetaBase:null,isSubmitting:null,isSubmitted:null,isValidating:null,submissionAttempts:null,isSubmitSuccessful:null,_force_re_eval:null}).reduce((t,r)=>(e.state[r]!==n.state[r]&&(t[r]=n.state[r]),t),{});return i(()=>{Object.keys(r).length&&e.baseStore.setState(e=>({...e,...r})),n.state.errorMap!==e.state.errorMap&&e.setErrorMap(n.state.errorMap)}),n}var J=e(n(),1),Y=typeof window<`u`?J.useLayoutEffect:J.useEffect,X=t();function ae(e){let[t,n]=(0,J.useState)(()=>({form:e.form,name:e.name})),[i,a]=(0,J.useState)(()=>new W({...e}));(t.form!==e.form||t.name!==e.name)&&(a(new W({...e})),n({form:e.form,name:e.name}));let o=r(i.store,e.mode===`array`?e=>Object.keys(e.value??[]).length:e=>e.value),s=r(i.store,e=>e.meta.isTouched),c=r(i.store,e=>e.meta.isBlurred),l=r(i.store,e=>e.meta.isDirty),u=r(i.store,e=>e.meta.errorMap),d=r(i.store,e=>e.meta.errorSourceMap),f=r(i.store,e=>e.meta.isValidating),p=(0,J.useMemo)(()=>{let t={...i,get state(){return{value:e.mode===`array`?i.state.value:o,get meta(){return{...i.state.meta,isTouched:s,isBlurred:c,isDirty:l,errorMap:u,errorSourceMap:d,isValidating:f}}}}};return t.Field=Z,t},[i,e.mode,o,s,c,l,u,d,f]);return Y(i.mount,[i]),Y(()=>{i.update(e)}),p}var Z=(({children:e,...t})=>{let n=ae(t);return(0,X.jsx)(X.Fragment,{children:(0,J.useMemo)(()=>u(e,n),[e,n])})});function oe(){return(0,J.useState)(()=>N())[0]}var se=J,ce=`19.2.4`.split(`.`)[0]===`17`?oe:se.useId;function le({form:e,selector:t=e=>e,children:n}){return(0,X.jsx)(X.Fragment,{children:u(n,r(e.store,t))})}function ue(e){let t=ce(),[n,r]=(0,J.useState)(e?.formId),[i,a]=(0,J.useState)(()=>new V({...e,formId:e?.formId??t}));if(n!==e?.formId){let n=e?.formId??t;a(new V({...e,formId:n})),r(n)}let o=(0,J.useMemo)(()=>{let e={...i,handleSubmit:((...e)=>i._handleSubmit(...e)),get formId(){return i._formId},get state(){return i.store.state}};return e.Field=function(e){return(0,X.jsx)(Z,{...e,form:i})},e.Subscribe=function(e){return(0,X.jsx)(le,{form:i,selector:e.selector,children:e.children})},e},[i]);Y(i.mount,[]),Y(()=>{i.update(e)});let s=(0,J.useRef)(!1);return Y(()=>{s.current&&e?.transform&&ie(i,e.transform)},[i,e?.transform]),Y(()=>{s.current=!0}),o}function de({lens:e,selector:t=e=>e,children:n}){return(0,X.jsx)(X.Fragment,{children:u(n,r(e.store,t))})}function fe(e){let[t]=(0,J.useState)(()=>{let n=new q(e),r=e.form instanceof q?e.form.form:e.form,i=n;return i.AppForm=function(e){return(0,X.jsx)(r.AppForm,{...e})},i.AppField=function(e){return(0,X.jsx)(r.AppField,{...t.getFormFieldOptions(e)})},i.Field=function(e){return(0,X.jsx)(r.Field,{...t.getFormFieldOptions(e)})},i.Subscribe=function(e){return(0,X.jsx)(de,{lens:t,selector:e.selector,children:e.children})},Object.assign(i,{...e.formComponents})});return Y(t.mount,[t]),t}var Q=(0,J.createContext)(null),pe=(0,J.createContext)(null);function $(){let e=(0,J.useContext)(pe);if(!e)throw Error("`formContext` only works when within a `formComponent` passed to `createFormHook`");return e}function me(){function e(){let e=(0,J.useContext)(Q);if(!e)throw Error("`fieldContext` only works when within a `fieldComponent` passed to `createFormHook`");return e}return{fieldContext:Q,useFieldContext:e,useFormContext:$,formContext:pe}}function he({fieldComponents:e,fieldContext:t,formContext:n,formComponents:r}){function i(i){let a=ue(i),o=(0,J.useMemo)(()=>({children:e})=>(0,X.jsx)(n.Provider,{value:a,children:e}),[a]),s=(0,J.useMemo)(()=>(({children:n,...r})=>(0,X.jsx)(a.Field,{...r,children:r=>(0,X.jsx)(t.Provider,{value:r,children:n(Object.assign(r,e))})})),[a]);return(0,J.useMemo)(()=>Object.assign(a,{AppField:s,AppForm:o,...r}),[a,s,o])}function a({render:e,props:t}){return function(n){return e({...t,...n})}}function o({render:e,props:t,defaultValues:n}){return function(i){let a=fe((0,J.useMemo)(()=>({form:i.form,fields:i.fields,defaultValues:n,formComponents:r}),[i.form,i.fields]));return e({...t,...i,group:a})}}function s(e){return $()}return{useAppForm:i,withForm:a,withFieldGroup:o,useTypedAppFormContext:s}}var{fieldContext:ge,useFieldContext:_e,formContext:ve,useFormContext:ye}=me();export{he as a,ye as i,ve as n,_e as r,ge as t};