@scbt-ecom/ui 0.104.2 → 0.104.3

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 (20) hide show
  1. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js +1 -1
  2. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js.map +1 -1
  3. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js +1 -1
  4. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js.map +1 -1
  5. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js +1 -1
  6. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js.map +1 -1
  7. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js +1 -1
  8. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js.map +1 -1
  9. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js +1 -1
  10. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js.map +1 -1
  11. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js +1 -1
  12. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
  13. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
  14. package/dist/node_modules/react-hook-form/dist/index.esm.js +1 -1
  15. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
  16. package/dist/stats.html +1 -1
  17. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.d.ts +7 -2
  18. package/dist/types/lib/shared/ui/formElements/uncontrolled/combobox/combobox.d.ts +1 -1
  19. package/dist/types/lib/shared/ui/loader/model/helpers.d.ts +1 -1
  20. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{jsx as l}from"react/jsx-runtime";import{AutocompleteControl as e}from"../../autocomplete/Autocomplete.js";import{useDadataQueryAddress as n}from"./query.js";const t=r=>({value:(r==null?void 0:r.value)||"",label:(r==null?void 0:r.value)||"",data:r}),v=({formatter:r=t,dadataBaseUrl:o,queryClient:a,...s})=>{const d=n;return l(e,{query:u=>d(u,o,{},a),formatter:r,...s})};export{v as DadataAddress};
1
+ import{jsx as e}from"react/jsx-runtime";import{AutocompleteControl as n}from"../../autocomplete/Autocomplete.js";import{useDadataQueryAddress as t}from"./query.js";const p=r=>({value:(r==null?void 0:r.value)||"",label:(r==null?void 0:r.value)||"",data:r}),y=({formatter:r=p,dadataBaseUrl:o,queryClient:a,...s})=>{const d=t;return e(n,{query:(u,l)=>d(u,o,l,a),formatter:r,...s})};export{y as DadataAddress};
2
2
  //# sourceMappingURL=DadataAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataAddress.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCacheOption } from '../types'\nimport { useDadataQueryAddress } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst addressFormatter = (item: IDadataCacheOption<unknown>): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || '',\n data: item\n})\n\nexport type DadataAddressProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCacheOption<unknown>) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataAddress = <TFieldValues extends FieldValues>({\n formatter = addressFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataAddressProps<TFieldValues>) => {\n const queryFn = useDadataQueryAddress\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["addressFormatter","item","DadataAddress","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryAddress","jsx","AutocompleteControl","query"],"mappings":"oKAOA,MAAMA,EAAoBC,IAA4E,CACpG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,KAAMA,CACR,GAcaC,EAAgB,CAAmC,CAC9D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataAddress.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCacheOption } from '../types'\nimport { useDadataQueryAddress } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst addressFormatter = (item: IDadataCacheOption<unknown>): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || '',\n data: item\n})\n\nexport type DadataAddressProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCacheOption<unknown>) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataAddress = <TFieldValues extends FieldValues>({\n formatter = addressFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataAddressProps<TFieldValues>) => {\n const queryFn = useDadataQueryAddress\n\n return (\n <AutocompleteControl\n query={(query, options) => queryFn(query, dadataBaseUrl, options, queryClient)}\n formatter={formatter}\n {...props}\n />\n )\n}\n"],"names":["addressFormatter","item","DadataAddress","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryAddress","jsx","AutocompleteControl","query","options"],"mappings":"oKAOA,MAAMA,EAAoBC,IAA4E,CACpG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,KAAMA,CACR,GAcaC,EAAgB,CAAmC,CAC9D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CACC,MAAO,CAACC,EAAOC,IAAYL,EAAQI,EAAOP,EAAeQ,EAASP,CAAW,EAC7E,UAAAF,EACC,GAAGG,CAAA,CAAA,CAGV"}
@@ -1,2 +1,2 @@
1
- import{jsx as n}from"react/jsx-runtime";import{AutocompleteControl as d}from"../../autocomplete/Autocomplete.js";import{useDadataQueryAuto as p}from"./query.js";const s=o=>({value:(o==null?void 0:o.model_mark)||"",label:(o==null?void 0:o.model_mark)||"",data:o}),y=({formatter:o=s,dadataBaseUrl:r,queryClient:a,...u})=>{const t=p;return n(d,{query:l=>t(l,r,{},a),formatter:o,...u})};export{y as DadataAuto};
1
+ import{jsx as d}from"react/jsx-runtime";import{AutocompleteControl as p}from"../../autocomplete/Autocomplete.js";import{useDadataQueryAuto as s}from"./query.js";const c=o=>({value:(o==null?void 0:o.model_mark)||"",label:(o==null?void 0:o.model_mark)||"",data:o}),A=({formatter:o=c,dadataBaseUrl:r,queryClient:a,...u})=>{const t=s;return d(p,{query:(l,n)=>t(l,r,n,a),formatter:o,...u})};export{A as DadataAuto};
2
2
  //# sourceMappingURL=DadataAuto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataAuto.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataAutoOption } from '../types'\nimport { useDadataQueryAuto } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst autoFormatter = (item: IDadataAutoOption): AutocompleteItemOption<typeof item> => ({\n value: item?.model_mark || '',\n label: item?.model_mark || '',\n data: item\n})\n\nexport type DadataAutoProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataAutoOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataAutoOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataAuto = <TFieldValues extends FieldValues>({\n formatter = autoFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataAutoProps<TFieldValues>) => {\n const queryFn = useDadataQueryAuto\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["autoFormatter","item","DadataAuto","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryAuto","jsx","AutocompleteControl","query"],"mappings":"iKAOA,MAAMA,EAAiBC,IAAkE,CACvF,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,KAAMA,CACR,GAcaC,EAAa,CAAmC,CAC3D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAqC,CACnC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataAuto.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataAutoOption } from '../types'\nimport { useDadataQueryAuto } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst autoFormatter = (item: IDadataAutoOption): AutocompleteItemOption<typeof item> => ({\n value: item?.model_mark || '',\n label: item?.model_mark || '',\n data: item\n})\n\nexport type DadataAutoProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataAutoOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataAutoOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataAuto = <TFieldValues extends FieldValues>({\n formatter = autoFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataAutoProps<TFieldValues>) => {\n const queryFn = useDadataQueryAuto\n\n return (\n <AutocompleteControl\n query={(query, options) => queryFn(query, dadataBaseUrl, options, queryClient)}\n formatter={formatter}\n {...props}\n />\n )\n}\n"],"names":["autoFormatter","item","DadataAuto","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryAuto","jsx","AutocompleteControl","query","options"],"mappings":"iKAOA,MAAMA,EAAiBC,IAAkE,CACvF,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,OAAOA,GAAA,YAAAA,EAAM,aAAc,GAC3B,KAAMA,CACR,GAcaC,EAAa,CAAmC,CAC3D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAqC,CACnC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CACC,MAAO,CAACC,EAAOC,IAAYL,EAAQI,EAAOP,EAAeQ,EAASP,CAAW,EAC7E,UAAAF,EACC,GAAGG,CAAA,CAAA,CAGV"}
@@ -1,2 +1,2 @@
1
- import{jsx as y}from"react/jsx-runtime";import{AutocompleteControl as c}from"../../autocomplete/Autocomplete.js";import{useDadataQueryCountry as l}from"./query.js";const p=o=>({value:(o==null?void 0:o.country_name)||"",label:(o==null?void 0:o.country_name)||"",data:o}),f=({formatter:o=p,dadataBaseUrl:r,queryClient:a,...n})=>{const u=l;return y(c,{query:t=>u(t,r,{},a),formatter:o,...n})};export{f as DadataCountry};
1
+ import{jsx as c}from"react/jsx-runtime";import{AutocompleteControl as l}from"../../autocomplete/Autocomplete.js";import{useDadataQueryCountry as p}from"./query.js";const s=o=>({value:(o==null?void 0:o.country_name)||"",label:(o==null?void 0:o.country_name)||"",data:o}),C=({formatter:o=s,dadataBaseUrl:r,queryClient:a,...n})=>{const u=p;return c(l,{query:(t,y)=>u(t,r,y,a),formatter:o,...n})};export{C as DadataCountry};
2
2
  //# sourceMappingURL=DadataCountry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataCountry.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCountryOption } from '../types'\nimport { useDadataQueryCountry } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst countryFormatter = (item: IDadataCountryOption): AutocompleteItemOption<typeof item> => ({\n value: item?.country_name || '',\n label: item?.country_name || '',\n data: item\n})\n\nexport type DadataCountryProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCountryOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCountryOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataCountry = <TFieldValues extends FieldValues>({\n formatter = countryFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataCountryProps<TFieldValues>) => {\n const queryFn = useDadataQueryCountry\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["countryFormatter","item","DadataCountry","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryCountry","jsx","AutocompleteControl","query"],"mappings":"oKAOA,MAAMA,EAAoBC,IAAqE,CAC7F,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,KAAMA,CACR,GAcaC,EAAgB,CAAmC,CAC9D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataCountry.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCountryOption } from '../types'\nimport { useDadataQueryCountry } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst countryFormatter = (item: IDadataCountryOption): AutocompleteItemOption<typeof item> => ({\n value: item?.country_name || '',\n label: item?.country_name || '',\n data: item\n})\n\nexport type DadataCountryProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCountryOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCountryOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CONSTANTS_URL - нужно использовать этот url\n */\nexport const DadataCountry = <TFieldValues extends FieldValues>({\n formatter = countryFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataCountryProps<TFieldValues>) => {\n const queryFn = useDadataQueryCountry\n\n return (\n <AutocompleteControl\n query={(query, options) => queryFn(query, dadataBaseUrl, options, queryClient)}\n formatter={formatter}\n {...props}\n />\n )\n}\n"],"names":["countryFormatter","item","DadataCountry","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryCountry","jsx","AutocompleteControl","query","options"],"mappings":"oKAOA,MAAMA,EAAoBC,IAAqE,CAC7F,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,OAAOA,GAAA,YAAAA,EAAM,eAAgB,GAC7B,KAAMA,CACR,GAcaC,EAAgB,CAAmC,CAC9D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CACC,MAAO,CAACC,EAAOC,IAAYL,EAAQI,EAAOP,EAAeQ,EAASP,CAAW,EAC7E,UAAAF,EACC,GAAGG,CAAA,CAAA,CAGV"}
@@ -1,2 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import{AutocompleteControl as p}from"../../autocomplete/Autocomplete.js";import{useDadataQueryFio as s}from"./query.js";const c=o=>({value:(o==null?void 0:o.value)||"",label:(o==null?void 0:o.value)||"",data:o}),e=({formatter:o=c,dadataBaseUrl:r,queryClient:a,...u})=>{const l=s;return t(p,{query:n=>l(n,r,{},a),formatter:o,...u})};export{e as DadataFio};
1
+ import{jsx as p}from"react/jsx-runtime";import{AutocompleteControl as s}from"../../autocomplete/Autocomplete.js";import{useDadataQueryFio as c}from"./query.js";const f=o=>({value:(o==null?void 0:o.value)||"",label:(o==null?void 0:o.value)||"",data:o}),v=({formatter:o=f,dadataBaseUrl:r,queryClient:a,...u})=>{const l=c;return p(s,{query:(n,t)=>l(n,r,t,a),formatter:o,...u})};export{v as DadataFio};
2
2
  //# sourceMappingURL=DadataFio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataFio.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCacheOption } from '../types'\nimport { useDadataQueryFio } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst fioFormatter = (item: IDadataCacheOption<unknown>): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || '',\n data: item\n})\n\nexport type DadataFioProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCacheOption<unknown>) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataFio = <TFieldValues extends FieldValues>({\n formatter = fioFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataFioProps<TFieldValues>) => {\n const queryFn = useDadataQueryFio\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["fioFormatter","item","DadataFio","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryFio","jsx","AutocompleteControl","query"],"mappings":"gKAOA,MAAMA,EAAgBC,IAA4E,CAChG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,KAAMA,CACR,GAcaC,EAAY,CAAmC,CAC1D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAoC,CAClC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataFio.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataCacheOption } from '../types'\nimport { useDadataQueryFio } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst fioFormatter = (item: IDadataCacheOption<unknown>): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || '',\n data: item\n})\n\nexport type DadataFioProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataCacheOption<unknown>>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataCacheOption<unknown>) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataFio = <TFieldValues extends FieldValues>({\n formatter = fioFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataFioProps<TFieldValues>) => {\n const queryFn = useDadataQueryFio\n\n return (\n <AutocompleteControl\n query={(query, options) => queryFn(query, dadataBaseUrl, options, queryClient)}\n formatter={formatter}\n {...props}\n />\n )\n}\n"],"names":["fioFormatter","item","DadataFio","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryFio","jsx","AutocompleteControl","query","options"],"mappings":"gKAOA,MAAMA,EAAgBC,IAA4E,CAChG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,KAAMA,CACR,GAcaC,EAAY,CAAmC,CAC1D,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAAoC,CAClC,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CACC,MAAO,CAACC,EAAOC,IAAYL,EAAQI,EAAOP,EAAeQ,EAASP,CAAW,EAC7E,UAAAF,EACC,GAAGG,CAAA,CAAA,CAGV"}
@@ -1,2 +1,2 @@
1
- import{jsx as l}from"react/jsx-runtime";import{AutocompleteControl as p}from"../../autocomplete/Autocomplete.js";import{useDadataQueryParty as s}from"./query.js";const c=o=>({value:(o==null?void 0:o.value)||"",label:(o==null?void 0:o.value)||""}),v=({formatter:o=c,dadataBaseUrl:r,queryClient:a,...n})=>{const t=s;return l(p,{query:u=>t(u,r,{},a),formatter:o,...n})};export{v as DadataOrganization};
1
+ import{jsx as p}from"react/jsx-runtime";import{AutocompleteControl as s}from"../../autocomplete/Autocomplete.js";import{useDadataQueryParty as c}from"./query.js";const e=o=>({value:(o==null?void 0:o.value)||"",label:(o==null?void 0:o.value)||""}),d=({formatter:o=e,dadataBaseUrl:r,queryClient:a,...n})=>{const t=c;return p(s,{query:(u,l)=>t(u,r,l,a),formatter:o,...n})};export{d as DadataOrganization};
2
2
  //# sourceMappingURL=DadataOrganization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DadataOrganization.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataOrganizationOption } from '../types'\nimport { useDadataQueryParty } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst organizationFormatter = (item: IDadataOrganizationOption): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || ''\n})\n\nexport type DadataOrganizationProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataOrganizationOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataOrganizationOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataOrganization = <TFieldValues extends FieldValues>({\n formatter = organizationFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataOrganizationProps<TFieldValues>) => {\n const queryFn = useDadataQueryParty\n\n return (\n <AutocompleteControl query={(query) => queryFn(query, dadataBaseUrl, {}, queryClient)} formatter={formatter} {...props} />\n )\n}\n"],"names":["organizationFormatter","item","DadataOrganization","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryParty","jsx","AutocompleteControl","query"],"mappings":"kKAOA,MAAMA,EAAyBC,IAA0E,CACvG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,EACxB,GAcaC,EAAqB,CAAmC,CACnE,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAA6C,CAC3C,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CAAoB,MAAQC,GAAUJ,EAAQI,EAAOP,EAAe,CAAA,EAAIC,CAAW,EAAG,UAAAF,EAAuB,GAAGG,CAAA,CAAO,CAE5H"}
1
+ {"version":3,"file":"DadataOrganization.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { type QueryClient } from '@tanstack/react-query'\nimport { AutocompleteControl, type AutocompleteControlProps } from '../../autocomplete'\nimport { type IDadataOrganizationOption } from '../types'\nimport { useDadataQueryParty } from './query'\nimport { type AutocompleteItemOption } from '$/shared/ui'\n\nconst organizationFormatter = (item: IDadataOrganizationOption): AutocompleteItemOption<typeof item> => ({\n value: item?.value || '',\n label: item?.value || ''\n})\n\nexport type DadataOrganizationProps<TFieldValues extends FieldValues> = Omit<\n AutocompleteControlProps<TFieldValues, IDadataOrganizationOption>,\n 'query' | 'formatter'\n> & {\n dadataBaseUrl: string\n formatter?: (item: IDadataOrganizationOption) => AutocompleteItemOption<typeof item>\n queryClient?: QueryClient\n}\n\n/**\n * DADATA_BASE_CACHE_URL - нужно использовать этот url\n */\nexport const DadataOrganization = <TFieldValues extends FieldValues>({\n formatter = organizationFormatter,\n dadataBaseUrl,\n queryClient,\n ...props\n}: DadataOrganizationProps<TFieldValues>) => {\n const queryFn = useDadataQueryParty\n\n return (\n <AutocompleteControl\n query={(query, options) => queryFn(query, dadataBaseUrl, options, queryClient)}\n formatter={formatter}\n {...props}\n />\n )\n}\n"],"names":["organizationFormatter","item","DadataOrganization","formatter","dadataBaseUrl","queryClient","props","queryFn","useDadataQueryParty","jsx","AutocompleteControl","query","options"],"mappings":"kKAOA,MAAMA,EAAyBC,IAA0E,CACvG,OAAOA,GAAA,YAAAA,EAAM,QAAS,GACtB,OAAOA,GAAA,YAAAA,EAAM,QAAS,EACxB,GAcaC,EAAqB,CAAmC,CACnE,UAAAC,EAAYH,EACZ,cAAAI,EACA,YAAAC,EACA,GAAGC,CACL,IAA6C,CAC3C,MAAMC,EAAUC,EAEhB,OACEC,EAACC,EAAA,CACC,MAAO,CAACC,EAAOC,IAAYL,EAAQI,EAAOP,EAAeQ,EAASP,CAAW,EAC7E,UAAAF,EACC,GAAGG,CAAA,CAAA,CAGV"}
@@ -1,2 +1,2 @@
1
- import{jsx as x}from"react/jsx-runtime";import{forwardRef as C,useState as S}from"react";import{useDebounceValue as d}from"../../../../hooks/useDebounce.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../checkbox/Checkbox.js";import{Combobox as D}from"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const $=C(({formatter:n,query:s,value:i,displayValue:t,onChange:o,strategy:m="input-first",...c},u)=>{const[f,a]=S(i??""),p=m==="input-first"?i??"":f,b=m==="input-first"?o:a,h=d(p,100),{data:e}=s(h),l=e?e.map(n):[];return x(D,{...c,ref:u,options:l,searchable:!0,filterDisabled:!0,inputValue:p,onInputChange:b,multiple:!1,displayValue:t,onChange:r=>{r&&o&&o(t?t(r):r.label)}})});export{$ as AutocompleteBase};
1
+ import{jsx as C}from"react/jsx-runtime";import{forwardRef as S,useState as q}from"react";import{useDebounceValue as D}from"../../../../hooks/useDebounce.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../checkbox/Checkbox.js";import{Combobox as O}from"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const tt=S(({formatter:u,query:c,queryOptions:a,value:e,displayValue:o,limit:t=0,onChange:r,strategy:m="input-first",...f},b)=>{const[h,l]=q(e??""),n=m==="input-first"?e??"":h,d=m==="input-first"?r:l,p=D(n,100),g={enabled:t>0?p.length>=t:!0,...a},{data:s}=c(p,g),x=s?s.map(u):[];return C(O,{...f,ref:b,options:x,searchable:!0,filterDisabled:!0,inputValue:n,onInputChange:d,multiple:!1,displayValue:o,onChange:i=>{i&&r&&r(o?o(i):i.label)},empty:p.length<t?`Введите более ${t} символов для поиска`:void 0})});export{tt as AutocompleteBase};
2
2
  //# sourceMappingURL=Autocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef, useState } from 'react'\nimport { type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { Combobox, type ComboboxProps, type ComboboxValue } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n ComboboxProps<false>,\n 'options' | 'inputValue' | 'onInputChange' | 'searchable' | 'multiple' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string) => UseQueryResult<TData[]>\n /**\n * Позволяет форматировать данные\n */\n formatter: (item: TData, index: number, array: TData[]) => AutocompleteItemOption<TData>\n /**\n * Значение инпута\n */\n value?: string\n /**\n * Handler инпута\n */\n onChange?: (value: string) => void\n /**\n * Стратегия управления полем\n * @variation `input-first` - источником правды является инпут\n * @variation `select-first` - источником правды является список\n * @default input-first\n */\n strategy?: 'input-first' | 'select-first'\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n { formatter, query, value, displayValue, onChange, strategy = 'input-first', ...props }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const [search, setSearch] = useState<string>(value ?? '')\n\n const inputValue = strategy === 'input-first' ? (value ?? '') : search\n const onInputChange = strategy === 'input-first' ? onChange : setSearch\n\n const debounceSearch = useDebounceValue(inputValue, 100)\n\n const { data } = query(debounceSearch)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value: ComboboxValue<false>) => {\n if (!value) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <Combobox\n {...props}\n ref={ref}\n options={options}\n searchable\n filterDisabled\n inputValue={inputValue}\n onInputChange={onInputChange}\n multiple={false}\n displayValue={displayValue}\n onChange={onValueChange}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","value","displayValue","onChange","strategy","props","ref","search","setSearch","useState","inputValue","onInputChange","debounceSearch","useDebounceValue","data","options","jsx","Combobox"],"mappings":"2pCAoCO,MAAMA,EAAmBC,EAC9B,CACE,CAAE,UAAAC,EAAW,MAAAC,EAAO,MAAAC,EAAO,aAAAC,EAAc,SAAAC,EAAU,SAAAC,EAAW,cAAe,GAAGC,CAAA,EAChFC,IACG,CACH,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAiBR,GAAS,EAAE,EAElDS,EAAaN,IAAa,cAAiBH,GAAS,GAAMM,EAC1DI,EAAgBP,IAAa,cAAgBD,EAAWK,EAExDI,EAAiBC,EAAiBH,EAAY,GAAG,EAEjD,CAAE,KAAAI,CAAA,EAASd,EAAMY,CAAc,EAE/BG,EAAUD,EAAOA,EAAK,IAAIf,CAAS,EAAI,CAAA,EAQ7C,OACEiB,EAACC,EAAA,CACE,GAAGZ,EACJ,IAAAC,EACA,QAAAS,EACA,WAAU,GACV,eAAc,GACd,WAAAL,EACA,cAAAC,EACA,SAAU,GACV,aAAAT,EACA,SAjBmBD,GAAgC,CAChDA,GAEDE,GAAUA,EAASD,EAAeA,EAAaD,CAAK,EAAIA,EAAM,KAAK,CACzE,CAac,CAAA,CAGhB,CACF"}
1
+ {"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef, useState } from 'react'\nimport { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { Combobox, type ComboboxProps, type ComboboxValue } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n ComboboxProps<false>,\n 'options' | 'inputValue' | 'onInputChange' | 'searchable' | 'multiple' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string, options?: Partial<UseQueryOptions<TData[]>>) => UseQueryResult<TData[]>\n /**\n * Параметры запроса\n */\n queryOptions?: Partial<UseQueryOptions<TData[]>>\n /**\n * Позволяет форматировать данные\n */\n formatter: (item: TData, index: number, array: TData[]) => AutocompleteItemOption<TData>\n /**\n * Значение инпута\n */\n value?: string\n /**\n * Handler инпута\n */\n onChange?: (value: string) => void\n /**\n * Стратегия управления полем\n * @variation `input-first` - источником правды является инпут\n * @variation `select-first` - источником правды является список\n * @default input-first\n */\n strategy?: 'input-first' | 'select-first'\n limit?: number\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n {\n formatter,\n query,\n queryOptions: initialQueryOptions,\n value,\n displayValue,\n limit = 0,\n onChange,\n strategy = 'input-first',\n ...props\n }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const [search, setSearch] = useState<string>(value ?? '')\n\n const inputValue = strategy === 'input-first' ? (value ?? '') : search\n const onInputChange = strategy === 'input-first' ? onChange : setSearch\n\n const debounceSearch = useDebounceValue(inputValue, 100)\n\n const queryOptions: Partial<UseQueryOptions<TData[]>> = {\n enabled: limit > 0 ? debounceSearch.length >= limit : true,\n ...initialQueryOptions\n }\n\n const { data } = query(debounceSearch, queryOptions)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value: ComboboxValue<false>) => {\n if (!value) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <Combobox\n {...props}\n ref={ref}\n options={options}\n searchable\n filterDisabled\n inputValue={inputValue}\n onInputChange={onInputChange}\n multiple={false}\n displayValue={displayValue}\n onChange={onValueChange}\n empty={debounceSearch.length < limit ? `Введите более ${limit} символов для поиска` : undefined}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","initialQueryOptions","value","displayValue","limit","onChange","strategy","props","ref","search","setSearch","useState","inputValue","onInputChange","debounceSearch","useDebounceValue","queryOptions","data","options","jsx","Combobox"],"mappings":"2pCAyCO,MAAMA,GAAmBC,EAC9B,CACE,CACE,UAAAC,EACA,MAAAC,EACA,aAAcC,EACd,MAAAC,EACA,aAAAC,EACA,MAAAC,EAAQ,EACR,SAAAC,EACA,SAAAC,EAAW,cACX,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAiBT,GAAS,EAAE,EAElDU,EAAaN,IAAa,cAAiBJ,GAAS,GAAMO,EAC1DI,EAAgBP,IAAa,cAAgBD,EAAWK,EAExDI,EAAiBC,EAAiBH,EAAY,GAAG,EAEjDI,EAAkD,CACtD,QAASZ,EAAQ,EAAIU,EAAe,QAAUV,EAAQ,GACtD,GAAGH,CAAA,EAGC,CAAE,KAAAgB,CAAA,EAASjB,EAAMc,EAAgBE,CAAY,EAE7CE,EAAUD,EAAOA,EAAK,IAAIlB,CAAS,EAAI,CAAA,EAQ7C,OACEoB,EAACC,EAAA,CACE,GAAGb,EACJ,IAAAC,EACA,QAAAU,EACA,WAAU,GACV,eAAc,GACd,WAAAN,EACA,cAAAC,EACA,SAAU,GACV,aAAAV,EACA,SAjBmBD,GAAgC,CAChDA,GAEDG,GAAUA,EAASF,EAAeA,EAAaD,CAAK,EAAIA,EAAM,KAAK,CACzE,EAcI,MAAOY,EAAe,OAASV,EAAQ,iBAAiBA,CAAK,uBAAyB,MAAA,CAAA,CAG5F,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox, useKeyboardNavigation } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n empty,\n classes\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange, comboboxDisplayValue } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(ref, refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen(true)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","empty","classes","ref","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","_a","Icon","prev","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"yjEA+FA,MAAMA,GAAiB,CACrB,CACE,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,eAAAC,EACA,cAAeC,EACf,MAAAC,EACA,QAAAC,CACF,EACAC,IACG,OACH,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBH,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDI,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,GAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,EAAe,qBAAAC,CAAA,EAAyBC,EAAY,CAChH,SAAArC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAG,EACA,YAAAF,EACA,aAAAI,EACA,eAAAR,EACA,eAAAe,EACA,iBAAAF,EACA,mBAAoBC,EACpB,sBAAuBE,CAAA,CACxB,EAEDuB,EAAsB,CAAE,IAAKf,EAAK,aAAc,kBAAmBO,EAAS,EAE5E,MAAMS,EAAW,IACVtC,EAEDD,GAAYK,EACP+B,EAAqBnC,CAAK,EACxBI,EACF6B,EAEAE,EAAqBnC,CAAK,EAPhB,GAWrB,OAAAuC,EAAgBnB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDW,EAAC,MAAA,CAAI,IAAKpB,EAAc,UAAWqB,EAAG,kBAAmBzB,GAAA,YAAAA,EAAS,KAAMN,CAAS,EAC/E,SAAA,CAAAgC,EAACC,EAAA,CACC,IAAKC,EAAU3B,EAAKK,EAAK,YAAY,EACrC,MAAAf,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOQ,GAAc0B,EAAA,EACrB,SAAUJ,EACV,SAAA1B,EACA,QAAUqC,GAAU,OAClBhB,EAAQ,EAAI,GACZiB,EAAAnC,GAAA,YAAAA,EAAkB,eAAlB,MAAAmC,EAAA,KAAAnC,EAAiCkC,EACnC,EACA,OAAQlC,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAO8B,EAAG,CACR,iBAAkB,CAACrC,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGO,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACE0B,EAACK,EAAA,CACC,KAAK,oBACL,UAAWN,EAAG,yDAA0D,CACtE,aAAcb,CAAA,CACf,CAAA,CAAA,EAGL,YAAa,IAAMC,EAASmB,GAAS,CAACA,CAAI,EAC1C,GAAG7C,CAAA,CACL,CAAA,EAGFuC,EAACO,GACE,SAAArB,GACCc,EAACQ,EAAO,IAAP,CACC,IAAK5B,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWmB,EAAG,WAAYvB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOuB,EAAA1B,EAAa,UAAb,YAAA0B,EAAsB,wBAAwB,KAAA,EAEjF,SAAAJ,EAACS,EAAA,CACC,MAAApC,EACA,QAAAiB,EACA,SAAAjC,EACA,OAAQgC,EACR,MAAOD,EACP,aAAAxB,EACA,QAASa,EACT,OAAQG,EAAK,YAAA,CAAA,CACf,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ,EAEa8B,GAAWC,EAAWxD,EAAc"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox, useKeyboardNavigation } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n empty,\n classes\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange, comboboxDisplayValue } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(ref, refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen(true)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","empty","classes","ref","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","_a","Icon","prev","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"yjEAiGA,MAAMA,GAAiB,CACrB,CACE,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,eAAAC,EACA,cAAeC,EACf,MAAAC,EACA,QAAAC,CACF,EACAC,IACG,OACH,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBH,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDI,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,GAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,EAAe,qBAAAC,CAAA,EAAyBC,EAAY,CAChH,SAAArC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAG,EACA,YAAAF,EACA,aAAAI,EACA,eAAAR,EACA,eAAAe,EACA,iBAAAF,EACA,mBAAoBC,EACpB,sBAAuBE,CAAA,CACxB,EAEDuB,EAAsB,CAAE,IAAKf,EAAK,aAAc,kBAAmBO,EAAS,EAE5E,MAAMS,EAAW,IACVtC,EAEDD,GAAYK,EACP+B,EAAqBnC,CAAK,EACxBI,EACF6B,EAEAE,EAAqBnC,CAAK,EAPhB,GAWrB,OAAAuC,EAAgBnB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDW,EAAC,MAAA,CAAI,IAAKpB,EAAc,UAAWqB,EAAG,kBAAmBzB,GAAA,YAAAA,EAAS,KAAMN,CAAS,EAC/E,SAAA,CAAAgC,EAACC,EAAA,CACC,IAAKC,EAAU3B,EAAKK,EAAK,YAAY,EACrC,MAAAf,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOQ,GAAc0B,EAAA,EACrB,SAAUJ,EACV,SAAA1B,EACA,QAAUqC,GAAU,OAClBhB,EAAQ,EAAI,GACZiB,EAAAnC,GAAA,YAAAA,EAAkB,eAAlB,MAAAmC,EAAA,KAAAnC,EAAiCkC,EACnC,EACA,OAAQlC,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAO8B,EAAG,CACR,iBAAkB,CAACrC,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGO,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACE0B,EAACK,EAAA,CACC,KAAK,oBACL,UAAWN,EAAG,yDAA0D,CACtE,aAAcb,CAAA,CACf,CAAA,CAAA,EAGL,YAAa,IAAMC,EAASmB,GAAS,CAACA,CAAI,EAC1C,GAAG7C,CAAA,CACL,CAAA,EAGFuC,EAACO,GACE,SAAArB,GACCc,EAACQ,EAAO,IAAP,CACC,IAAK5B,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWmB,EAAG,WAAYvB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOuB,EAAA1B,EAAa,UAAb,YAAA0B,EAAsB,wBAAwB,KAAA,EAEjF,SAAAJ,EAACS,EAAA,CACC,MAAApC,EACA,QAAAiB,EACA,SAAAjC,EACA,OAAQgC,EACR,MAAOD,EACP,aAAAxB,EACA,QAASa,EACT,OAAQG,EAAK,YAAA,CAAA,CACf,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ,EAEa8B,GAAWC,EAAWxD,EAAc"}
@@ -1,2 +1,2 @@
1
- import V from"react";var ye=e=>e.type==="checkbox",ie=e=>e instanceof Date,I=e=>e==null;const at=e=>typeof e=="object";var T=e=>!I(e)&&!Array.isArray(e)&&at(e)&&!ie(e),lt=e=>T(e)&&e.target?ye(e.target)?e.target.checked:e.target.value:e,kt=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,ut=(e,s)=>e.has(kt(s)),Et=e=>{const s=e.constructor&&e.constructor.prototype;return T(s)&&s.hasOwnProperty("isPrototypeOf")},Re=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function O(e){let s;const t=Array.isArray(e),a=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)s=new Date(e);else if(!(Re&&(e instanceof Blob||a))&&(t||T(e)))if(s=t?[]:{},!t&&!Et(e))s=e;else for(const l in e)e.hasOwnProperty(l)&&(s[l]=O(e[l]));else return e;return s}var Fe=e=>/^\w*$/.test(e),L=e=>e===void 0,Le=e=>Array.isArray(e)?e.filter(Boolean):[],Te=e=>Le(e.replace(/["|']|\]/g,"").split(/\.|\[/)),y=(e,s,t)=>{if(!s||!T(e))return t;const a=(Fe(s)?[s]:Te(s)).reduce((l,n)=>I(l)?l:l[n],e);return L(a)||a===e?L(e[s])?t:e[s]:a},p=e=>typeof e=="boolean",D=(e,s,t)=>{let a=-1;const l=Fe(s)?[s]:Te(s),n=l.length,c=n-1;for(;++a<n;){const d=l[a];let E=t;if(a!==c){const S=e[d];E=T(S)||Array.isArray(S)?S:isNaN(+l[a+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=E,e=e[d]}};const _e={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},G={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Z={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Me=V.createContext(null);Me.displayName="HookFormContext";const Oe=()=>V.useContext(Me),zt=e=>{const{children:s,...t}=e;return V.createElement(Me.Provider,{value:t},s)};var nt=(e,s,t,a=!0)=>{const l={defaultValues:s._defaultValues};for(const n in e)Object.defineProperty(l,n,{get:()=>{const c=n;return s._proxyFormState[c]!==G.all&&(s._proxyFormState[c]=!a||G.all),t&&(t[c]=!0),e[c]}});return l};const Ue=typeof window<"u"?V.useLayoutEffect:V.useEffect;function St(e){const s=Oe(),{control:t=s.control,disabled:a,name:l,exact:n}=e||{},[c,d]=V.useState(t._formState),E=V.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Ue(()=>t._subscribe({name:l,formState:E.current,exact:n,callback:S=>{!a&&d({...t._formState,...S})}}),[l,a,n]),V.useEffect(()=>{E.current.isValid&&t._setValid(!0)},[t]),V.useMemo(()=>nt(c,t,E.current,!1),[c,t])}var X=e=>typeof e=="string",ot=(e,s,t,a,l)=>X(e)?(a&&s.watch.add(e),y(t,e,l)):Array.isArray(e)?e.map(n=>(a&&s.watch.add(n),y(t,n))):(a&&(s.watchAll=!0),t),Ce=e=>I(e)||!at(e);function j(e,s,t=new WeakSet){if(Ce(e)||Ce(s))return e===s;if(ie(e)&&ie(s))return e.getTime()===s.getTime();const a=Object.keys(e),l=Object.keys(s);if(a.length!==l.length)return!1;if(t.has(e)||t.has(s))return!0;t.add(e),t.add(s);for(const n of a){const c=e[n];if(!l.includes(n))return!1;if(n!=="ref"){const d=s[n];if(ie(c)&&ie(d)||T(c)&&T(d)||Array.isArray(c)&&Array.isArray(d)?!j(c,d,t):c!==d)return!1}}return!0}function Ct(e){const s=Oe(),{control:t=s.control,name:a,defaultValue:l,disabled:n,exact:c,compute:d}=e||{},E=V.useRef(l),S=V.useRef(d),b=V.useRef(void 0);S.current=d;const A=V.useMemo(()=>t._getWatch(a,E.current),[t,a]),[_,K]=V.useState(S.current?S.current(A):A);return Ue(()=>t._subscribe({name:a,formState:{values:!0},exact:c,callback:H=>{if(!n){const k=ot(a,t._names,H.values||t._formValues,!1,E.current);if(S.current){const N=S.current(k);j(N,b.current)||(K(N),b.current=N)}else K(k)}}}),[t,n,a,c]),V.useEffect(()=>t._removeUnmounted()),_}function Gt(e){const s=Oe(),{name:t,disabled:a,control:l=s.control,shouldUnregister:n,defaultValue:c}=e,d=ut(l._names.array,t),E=V.useMemo(()=>y(l._formValues,t,y(l._defaultValues,t,c)),[l,t,c]),S=Ct({control:l,name:t,defaultValue:E,exact:!0}),b=St({control:l,name:t,exact:!0}),A=V.useRef(e),_=V.useRef(l.register(t,{...e.rules,value:S,...p(e.disabled)?{disabled:e.disabled}:{}}));A.current=e;const K=V.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!y(b.errors,t)},isDirty:{enumerable:!0,get:()=>!!y(b.dirtyFields,t)},isTouched:{enumerable:!0,get:()=>!!y(b.touchedFields,t)},isValidating:{enumerable:!0,get:()=>!!y(b.validatingFields,t)},error:{enumerable:!0,get:()=>y(b.errors,t)}}),[b,t]),H=V.useCallback(v=>_.current.onChange({target:{value:lt(v),name:t},type:_e.CHANGE}),[t]),k=V.useCallback(()=>_.current.onBlur({target:{value:y(l._formValues,t),name:t},type:_e.BLUR}),[t,l._formValues]),N=V.useCallback(v=>{const B=y(l._fields,t);B&&v&&(B._f.ref={focus:()=>v.focus&&v.focus(),select:()=>v.select&&v.select(),setCustomValidity:U=>v.setCustomValidity(U),reportValidity:()=>v.reportValidity()})},[l._fields,t]),ae=V.useMemo(()=>({name:t,value:S,...p(a)||b.disabled?{disabled:b.disabled||a}:{},onChange:H,onBlur:k,ref:N}),[t,a,b.disabled,H,k,N,S]);return V.useEffect(()=>{const v=l._options.shouldUnregister||n;l.register(t,{...A.current.rules,...p(A.current.disabled)?{disabled:A.current.disabled}:{}});const B=(U,C)=>{const ee=y(l._fields,U);ee&&ee._f&&(ee._f.mount=C)};if(B(t,!0),v){const U=O(y(l._options.defaultValues,t));D(l._defaultValues,t,U),L(y(l._formValues,t))&&D(l._formValues,t,U)}return!d&&l.register(t),()=>{(d?v&&!l._state.action:v)?l.unregister(t):B(t,!1)}},[t,l,d,n]),V.useEffect(()=>{l._setDisabledField({disabled:a,name:t})},[a,t,l]),V.useMemo(()=>({field:ae,formState:b,fieldState:K}),[ae,b,K])}var Rt=(e,s,t,a,l)=>s?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[a]:l||!0}}:{},de=e=>Array.isArray(e)?e:[e],Ye=()=>{let e=[];return{get observers(){return e},next:l=>{for(const n of e)n.next&&n.next(l)},subscribe:l=>(e.push(l),{unsubscribe:()=>{e=e.filter(n=>n!==l)}}),unsubscribe:()=>{e=[]}}},q=e=>T(e)&&!Object.keys(e).length,Ne=e=>e.type==="file",Y=e=>typeof e=="function",be=e=>{if(!Re)return!1;const s=e?e.ownerDocument:0;return e instanceof(s&&s.defaultView?s.defaultView.HTMLElement:HTMLElement)},ft=e=>e.type==="select-multiple",Be=e=>e.type==="radio",Lt=e=>Be(e)||ye(e),Se=e=>be(e)&&e.isConnected;function Tt(e,s){const t=s.slice(0,-1).length;let a=0;for(;a<t;)e=L(e)?a++:e[s[a++]];return e}function Mt(e){for(const s in e)if(e.hasOwnProperty(s)&&!L(e[s]))return!1;return!0}function M(e,s){const t=Array.isArray(s)?s:Fe(s)?[s]:Te(s),a=t.length===1?e:Tt(e,t),l=t.length-1,n=t[l];return a&&delete a[n],l!==0&&(T(a)&&q(a)||Array.isArray(a)&&Mt(a))&&M(e,t.slice(0,-1)),e}var dt=e=>{for(const s in e)if(Y(e[s]))return!0;return!1};function Ve(e,s={}){const t=Array.isArray(e);if(T(e)||t)for(const a in e)Array.isArray(e[a])||T(e[a])&&!dt(e[a])?(s[a]=Array.isArray(e[a])?[]:{},Ve(e[a],s[a])):I(e[a])||(s[a]=!0);return s}function ct(e,s,t){const a=Array.isArray(e);if(T(e)||a)for(const l in e)Array.isArray(e[l])||T(e[l])&&!dt(e[l])?L(s)||Ce(t[l])?t[l]=Array.isArray(e[l])?Ve(e[l],[]):{...Ve(e[l])}:ct(e[l],I(s)?{}:s[l],t[l]):t[l]=!j(e[l],s[l]);return t}var oe=(e,s)=>ct(e,s,Ve(s));const Je={value:!1,isValid:!1},Qe={value:!0,isValid:!0};var yt=e=>{if(Array.isArray(e)){if(e.length>1){const s=e.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:s,isValid:!!s.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!L(e[0].attributes.value)?L(e[0].value)||e[0].value===""?Qe:{value:e[0].value,isValid:!0}:Qe:Je}return Je},gt=(e,{valueAsNumber:s,valueAsDate:t,setValueAs:a})=>L(e)?e:s?e===""?NaN:e&&+e:t&&X(e)?new Date(e):a?a(e):e;const Xe={isValid:!1,value:null};var ht=e=>Array.isArray(e)?e.reduce((s,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:s,Xe):Xe;function Ze(e){const s=e.ref;return Ne(s)?s.files:Be(s)?ht(e.refs).value:ft(s)?[...s.selectedOptions].map(({value:t})=>t):ye(s)?yt(e.refs).value:gt(L(s.value)?e.ref.value:s.value,e)}var Ot=(e,s,t,a)=>{const l={};for(const n of e){const c=y(s,n);c&&D(l,n,c._f)}return{criteriaMode:t,names:[...e],fields:l,shouldUseNativeValidation:a}},me=e=>e instanceof RegExp,fe=e=>L(e)?e:me(e)?e.source:T(e)?me(e.value)?e.value.source:e.value:e,je=e=>({isOnSubmit:!e||e===G.onSubmit,isOnBlur:e===G.onBlur,isOnChange:e===G.onChange,isOnAll:e===G.all,isOnTouch:e===G.onTouched});const et="AsyncFunction";var Ut=e=>!!e&&!!e.validate&&!!(Y(e.validate)&&e.validate.constructor.name===et||T(e.validate)&&Object.values(e.validate).find(s=>s.constructor.name===et)),Nt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),tt=(e,s,t)=>!t&&(s.watchAll||s.watch.has(e)||[...s.watch].some(a=>e.startsWith(a)&&/^\.\w+/.test(e.slice(a.length))));const ce=(e,s,t,a)=>{for(const l of t||Object.keys(e)){const n=y(e,l);if(n){const{_f:c,...d}=n;if(c){if(c.refs&&c.refs[0]&&s(c.refs[0],l)&&!a)return!0;if(c.ref&&s(c.ref,c.name)&&!a)return!0;if(ce(d,s))break}else if(T(d)&&ce(d,s))break}}};function rt(e,s,t){const a=y(e,t);if(a||Fe(t))return{error:a,name:t};const l=t.split(".");for(;l.length;){const n=l.join("."),c=y(s,n),d=y(e,n);if(c&&!Array.isArray(c)&&t!==n)return{name:t};if(d&&d.type)return{name:n,error:d};if(d&&d.root&&d.root.type)return{name:`${n}.root`,error:d.root};l.pop()}return{name:t}}var Bt=(e,s,t,a)=>{t(e);const{name:l,...n}=e;return q(n)||Object.keys(n).length>=Object.keys(s).length||Object.keys(n).find(c=>s[c]===(!a||G.all))},Pt=(e,s,t)=>!e||!s||e===s||de(e).some(a=>a&&(t?a===s:a.startsWith(s)||s.startsWith(a))),It=(e,s,t,a,l)=>l.isOnAll?!1:!t&&l.isOnTouch?!(s||e):(t?a.isOnBlur:l.isOnBlur)?!e:(t?a.isOnChange:l.isOnChange)?e:!0,Wt=(e,s)=>!Le(y(e,s)).length&&M(e,s),qt=(e,s,t)=>{const a=de(y(e,t));return D(a,"root",s[t]),D(e,t,a),e},ve=e=>X(e);function st(e,s,t="validate"){if(ve(e)||Array.isArray(e)&&e.every(ve)||p(e)&&!e)return{type:t,message:ve(e)?e:"",ref:s}}var ue=e=>T(e)&&!me(e)?e:{value:e,message:""},it=async(e,s,t,a,l,n)=>{const{ref:c,refs:d,required:E,maxLength:S,minLength:b,min:A,max:_,pattern:K,validate:H,name:k,valueAsNumber:N,mount:ae}=e._f,v=y(t,k);if(!ae||s.has(k))return{};const B=d?d[0]:c,U=m=>{l&&B.reportValidity&&(B.setCustomValidity(p(m)?"":m||""),B.reportValidity())},C={},ee=Be(c),te=ye(c),Ae=ee||te,z=(N||Ne(c))&&L(c.value)&&L(v)||be(c)&&c.value===""||v===""||Array.isArray(v)&&!v.length,se=Rt.bind(null,k,a,C),J=(m,x,R,P=Z.maxLength,W=Z.minLength)=>{const Q=m?x:R;C[k]={type:m?P:W,message:Q,ref:c,...se(m?P:W,Q)}};if(n?!Array.isArray(v)||!v.length:E&&(!Ae&&(z||I(v))||p(v)&&!v||te&&!yt(d).isValid||ee&&!ht(d).isValid)){const{value:m,message:x}=ve(E)?{value:!!E,message:E}:ue(E);if(m&&(C[k]={type:Z.required,message:x,ref:B,...se(Z.required,x)},!a))return U(x),C}if(!z&&(!I(A)||!I(_))){let m,x;const R=ue(_),P=ue(A);if(!I(v)&&!isNaN(v)){const W=c.valueAsNumber||v&&+v;I(R.value)||(m=W>R.value),I(P.value)||(x=W<P.value)}else{const W=c.valueAsDate||new Date(v),Q=ge=>new Date(new Date().toDateString()+" "+ge),ne=c.type=="time",le=c.type=="week";X(R.value)&&v&&(m=ne?Q(v)>Q(R.value):le?v>R.value:W>new Date(R.value)),X(P.value)&&v&&(x=ne?Q(v)<Q(P.value):le?v<P.value:W<new Date(P.value))}if((m||x)&&(J(!!m,R.message,P.message,Z.max,Z.min),!a))return U(C[k].message),C}if((S||b)&&!z&&(X(v)||n&&Array.isArray(v))){const m=ue(S),x=ue(b),R=!I(m.value)&&v.length>+m.value,P=!I(x.value)&&v.length<+x.value;if((R||P)&&(J(R,m.message,x.message),!a))return U(C[k].message),C}if(K&&!z&&X(v)){const{value:m,message:x}=ue(K);if(me(m)&&!v.match(m)&&(C[k]={type:Z.pattern,message:x,ref:c,...se(Z.pattern,x)},!a))return U(x),C}if(H){if(Y(H)){const m=await H(v,t),x=st(m,B);if(x&&(C[k]={...x,...se(Z.validate,x.message)},!a))return U(x.message),C}else if(T(H)){let m={};for(const x in H){if(!q(m)&&!a)break;const R=st(await H[x](v,t),B,x);R&&(m={...R,...se(x,R.message)},U(R.message),a&&(C[k]=m))}if(!q(m)&&(C[k]={ref:B,...m},!a))return C}}return U(!0),C};const Ht={mode:G.onSubmit,reValidateMode:G.onChange,shouldFocusError:!0};function pt(e={}){let s={...Ht,...e},t={submitCount:0,isDirty:!1,isReady:!1,isLoading:Y(s.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:s.errors||{},disabled:s.disabled||!1},a={},l=T(s.defaultValues)||T(s.values)?O(s.defaultValues||s.values)||{}:{},n=s.shouldUnregister?{}:O(l),c={action:!1,mount:!1,watch:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},E,S=0;const b={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let A={...b};const _={array:Ye(),state:Ye()},K=s.criteriaMode===G.all,H=r=>i=>{clearTimeout(S),S=setTimeout(r,i)},k=async r=>{if(!s.disabled&&(b.isValid||A.isValid||r)){const i=s.resolver?q((await te()).errors):await z(a,!0);i!==t.isValid&&_.state.next({isValid:i})}},N=(r,i)=>{!s.disabled&&(b.isValidating||b.validatingFields||A.isValidating||A.validatingFields)&&((r||Array.from(d.mount)).forEach(u=>{u&&(i?D(t.validatingFields,u,i):M(t.validatingFields,u))}),_.state.next({validatingFields:t.validatingFields,isValidating:!q(t.validatingFields)}))},ae=(r,i=[],u,g,f=!0,o=!0)=>{if(g&&u&&!s.disabled){if(c.action=!0,o&&Array.isArray(y(a,r))){const h=u(y(a,r),g.argA,g.argB);f&&D(a,r,h)}if(o&&Array.isArray(y(t.errors,r))){const h=u(y(t.errors,r),g.argA,g.argB);f&&D(t.errors,r,h),Wt(t.errors,r)}if((b.touchedFields||A.touchedFields)&&o&&Array.isArray(y(t.touchedFields,r))){const h=u(y(t.touchedFields,r),g.argA,g.argB);f&&D(t.touchedFields,r,h)}(b.dirtyFields||A.dirtyFields)&&(t.dirtyFields=oe(l,n)),_.state.next({name:r,isDirty:J(r,i),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else D(n,r,i)},v=(r,i)=>{D(t.errors,r,i),_.state.next({errors:t.errors})},B=r=>{t.errors=r,_.state.next({errors:t.errors,isValid:!1})},U=(r,i,u,g)=>{const f=y(a,r);if(f){const o=y(n,r,L(u)?y(l,r):u);L(o)||g&&g.defaultChecked||i?D(n,r,i?o:Ze(f._f)):R(r,o),c.mount&&k()}},C=(r,i,u,g,f)=>{let o=!1,h=!1;const F={name:r};if(!s.disabled){if(!u||g){(b.isDirty||A.isDirty)&&(h=t.isDirty,t.isDirty=F.isDirty=J(),o=h!==F.isDirty);const w=j(y(l,r),i);h=!!y(t.dirtyFields,r),w?M(t.dirtyFields,r):D(t.dirtyFields,r,!0),F.dirtyFields=t.dirtyFields,o=o||(b.dirtyFields||A.dirtyFields)&&h!==!w}if(u){const w=y(t.touchedFields,r);w||(D(t.touchedFields,r,u),F.touchedFields=t.touchedFields,o=o||(b.touchedFields||A.touchedFields)&&w!==u)}o&&f&&_.state.next(F)}return o?F:{}},ee=(r,i,u,g)=>{const f=y(t.errors,r),o=(b.isValid||A.isValid)&&p(i)&&t.isValid!==i;if(s.delayError&&u?(E=H(()=>v(r,u)),E(s.delayError)):(clearTimeout(S),E=null,u?D(t.errors,r,u):M(t.errors,r)),(u?!j(f,u):f)||!q(g)||o){const h={...g,...o&&p(i)?{isValid:i}:{},errors:t.errors,name:r};t={...t,...h},_.state.next(h)}},te=async r=>{N(r,!0);const i=await s.resolver(n,s.context,Ot(r||d.mount,a,s.criteriaMode,s.shouldUseNativeValidation));return N(r),i},Ae=async r=>{const{errors:i}=await te(r);if(r)for(const u of r){const g=y(i,u);g?D(t.errors,u,g):M(t.errors,u)}else t.errors=i;return i},z=async(r,i,u={valid:!0})=>{for(const g in r){const f=r[g];if(f){const{_f:o,...h}=f;if(o){const F=d.array.has(o.name),w=f._f&&Ut(f._f);w&&b.validatingFields&&N([g],!0);const $=await it(f,d.disabled,n,K,s.shouldUseNativeValidation&&!i,F);if(w&&b.validatingFields&&N([g]),$[o.name]&&(u.valid=!1,i))break;!i&&(y($,o.name)?F?qt(t.errors,$,o.name):D(t.errors,o.name,$[o.name]):M(t.errors,o.name))}!q(h)&&await z(h,i,u)}}return u.valid},se=()=>{for(const r of d.unMount){const i=y(a,r);i&&(i._f.refs?i._f.refs.every(u=>!Se(u)):!Se(i._f.ref))&&xe(r)}d.unMount=new Set},J=(r,i)=>!s.disabled&&(r&&i&&D(n,r,i),!j(ge(),l)),m=(r,i,u)=>ot(r,d,{...c.mount?n:L(i)?l:X(r)?{[r]:i}:i},u,i),x=r=>Le(y(c.mount?n:l,r,s.shouldUnregister?y(l,r,[]):[])),R=(r,i,u={})=>{const g=y(a,r);let f=i;if(g){const o=g._f;o&&(!o.disabled&&D(n,r,gt(i,o)),f=be(o.ref)&&I(i)?"":i,ft(o.ref)?[...o.ref.options].forEach(h=>h.selected=f.includes(h.value)):o.refs?ye(o.ref)?o.refs.forEach(h=>{(!h.defaultChecked||!h.disabled)&&(Array.isArray(f)?h.checked=!!f.find(F=>F===h.value):h.checked=f===h.value||!!f)}):o.refs.forEach(h=>h.checked=h.value===f):Ne(o.ref)?o.ref.value="":(o.ref.value=f,o.ref.type||_.state.next({name:r,values:O(n)})))}(u.shouldDirty||u.shouldTouch)&&C(r,f,u.shouldTouch,u.shouldDirty,!0),u.shouldValidate&&le(r)},P=(r,i,u)=>{for(const g in i){if(!i.hasOwnProperty(g))return;const f=i[g],o=r+"."+g,h=y(a,o);(d.array.has(r)||T(f)||h&&!h._f)&&!ie(f)?P(o,f,u):R(o,f,u)}},W=(r,i,u={})=>{const g=y(a,r),f=d.array.has(r),o=O(i);D(n,r,o),f?(_.array.next({name:r,values:O(n)}),(b.isDirty||b.dirtyFields||A.isDirty||A.dirtyFields)&&u.shouldDirty&&_.state.next({name:r,dirtyFields:oe(l,n),isDirty:J(r,o)})):g&&!g._f&&!I(o)?P(r,o,u):R(r,o,u),tt(r,d)&&_.state.next({...t,name:r}),_.state.next({name:c.mount?r:void 0,values:O(n)})},Q=async r=>{c.mount=!0;const i=r.target;let u=i.name,g=!0;const f=y(a,u),o=w=>{g=Number.isNaN(w)||ie(w)&&isNaN(w.getTime())||j(w,y(n,u,w))},h=je(s.mode),F=je(s.reValidateMode);if(f){let w,$;const he=i.type?Ze(f._f):lt(r),re=r.type===_e.BLUR||r.type===_e.FOCUS_OUT,xt=!Nt(f._f)&&!s.resolver&&!y(t.errors,u)&&!f._f.deps||It(re,y(t.touchedFields,u),t.isSubmitted,F,h),ke=tt(u,d,re);D(n,u,he),re?(f._f.onBlur&&f._f.onBlur(r),E&&E(0)):f._f.onChange&&f._f.onChange(r);const Ee=C(u,he,re),wt=!q(Ee)||ke;if(!re&&_.state.next({name:u,type:r.type,values:O(n)}),xt)return(b.isValid||A.isValid)&&(s.mode==="onBlur"?re&&k():re||k()),wt&&_.state.next({name:u,...ke?{}:Ee});if(!re&&ke&&_.state.next({...t}),s.resolver){const{errors:ze}=await te([u]);if(o(he),g){const Dt=rt(t.errors,a,u),Ge=rt(ze,a,Dt.name||u);w=Ge.error,u=Ge.name,$=q(ze)}}else N([u],!0),w=(await it(f,d.disabled,n,K,s.shouldUseNativeValidation))[u],N([u]),o(he),g&&(w?$=!1:(b.isValid||A.isValid)&&($=await z(a,!0)));g&&(f._f.deps&&le(f._f.deps),ee(u,$,w,Ee))}},ne=(r,i)=>{if(y(t.errors,i)&&r.focus)return r.focus(),1},le=async(r,i={})=>{let u,g;const f=de(r);if(s.resolver){const o=await Ae(L(r)?r:f);u=q(o),g=r?!f.some(h=>y(o,h)):u}else r?(g=(await Promise.all(f.map(async o=>{const h=y(a,o);return await z(h&&h._f?{[o]:h}:h)}))).every(Boolean),!(!g&&!t.isValid)&&k()):g=u=await z(a);return _.state.next({...!X(r)||(b.isValid||A.isValid)&&u!==t.isValid?{}:{name:r},...s.resolver||!r?{isValid:u}:{},errors:t.errors}),i.shouldFocus&&!g&&ce(a,ne,r?f:d.mount),g},ge=r=>{const i={...c.mount?n:l};return L(r)?i:X(r)?y(i,r):r.map(u=>y(i,u))},Pe=(r,i)=>({invalid:!!y((i||t).errors,r),isDirty:!!y((i||t).dirtyFields,r),error:y((i||t).errors,r),isValidating:!!y(t.validatingFields,r),isTouched:!!y((i||t).touchedFields,r)}),vt=r=>{r&&de(r).forEach(i=>M(t.errors,i)),_.state.next({errors:r?t.errors:{}})},Ie=(r,i,u)=>{const g=(y(a,r,{_f:{}})._f||{}).ref,f=y(t.errors,r)||{},{ref:o,message:h,type:F,...w}=f;D(t.errors,r,{...w,...i,ref:g}),_.state.next({name:r,errors:t.errors,isValid:!1}),u&&u.shouldFocus&&g&&g.focus&&g.focus()},_t=(r,i)=>Y(r)?_.state.subscribe({next:u=>"values"in u&&r(m(void 0,i),u)}):m(r,i,!0),We=r=>_.state.subscribe({next:i=>{Pt(r.name,i.name,r.exact)&&Bt(i,r.formState||b,At,r.reRenderRoot)&&r.callback({values:{...n},...t,...i,defaultValues:l})}}).unsubscribe,bt=r=>(c.mount=!0,A={...A,...r.formState},We({...r,formState:A})),xe=(r,i={})=>{for(const u of r?de(r):d.mount)d.mount.delete(u),d.array.delete(u),i.keepValue||(M(a,u),M(n,u)),!i.keepError&&M(t.errors,u),!i.keepDirty&&M(t.dirtyFields,u),!i.keepTouched&&M(t.touchedFields,u),!i.keepIsValidating&&M(t.validatingFields,u),!s.shouldUnregister&&!i.keepDefaultValue&&M(l,u);_.state.next({values:O(n)}),_.state.next({...t,...i.keepDirty?{isDirty:J()}:{}}),!i.keepIsValid&&k()},qe=({disabled:r,name:i})=>{(p(r)&&c.mount||r||d.disabled.has(i))&&(r?d.disabled.add(i):d.disabled.delete(i))},we=(r,i={})=>{let u=y(a,r);const g=p(i.disabled)||p(s.disabled);return D(a,r,{...u||{},_f:{...u&&u._f?u._f:{ref:{name:r}},name:r,mount:!0,...i}}),d.mount.add(r),u?qe({disabled:p(i.disabled)?i.disabled:s.disabled,name:r}):U(r,!0,i.value),{...g?{disabled:i.disabled||s.disabled}:{},...s.progressive?{required:!!i.required,min:fe(i.min),max:fe(i.max),minLength:fe(i.minLength),maxLength:fe(i.maxLength),pattern:fe(i.pattern)}:{},name:r,onChange:Q,onBlur:Q,ref:f=>{if(f){we(r,i),u=y(a,r);const o=L(f.value)&&f.querySelectorAll&&f.querySelectorAll("input,select,textarea")[0]||f,h=Lt(o),F=u._f.refs||[];if(h?F.find(w=>w===o):o===u._f.ref)return;D(a,r,{_f:{...u._f,...h?{refs:[...F.filter(Se),o,...Array.isArray(y(l,r))?[{}]:[]],ref:{type:o.type,name:r}}:{ref:o}}}),U(r,!1,void 0,o)}else u=y(a,r,{}),u._f&&(u._f.mount=!1),(s.shouldUnregister||i.shouldUnregister)&&!(ut(d.array,r)&&c.action)&&d.unMount.add(r)}}},De=()=>s.shouldFocusError&&ce(a,ne,d.mount),Vt=r=>{p(r)&&(_.state.next({disabled:r}),ce(a,(i,u)=>{const g=y(a,u);g&&(i.disabled=g._f.disabled||r,Array.isArray(g._f.refs)&&g._f.refs.forEach(f=>{f.disabled=g._f.disabled||r}))},0,!1))},He=(r,i)=>async u=>{let g;u&&(u.preventDefault&&u.preventDefault(),u.persist&&u.persist());let f=O(n);if(_.state.next({isSubmitting:!0}),s.resolver){const{errors:o,values:h}=await te();t.errors=o,f=O(h)}else await z(a);if(d.disabled.size)for(const o of d.disabled)M(f,o);if(M(t.errors,"root"),q(t.errors)){_.state.next({errors:{}});try{await r(f,u)}catch(o){g=o}}else i&&await i({...t.errors},u),De(),setTimeout(De);if(_.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:q(t.errors)&&!g,submitCount:t.submitCount+1,errors:t.errors}),g)throw g},mt=(r,i={})=>{y(a,r)&&(L(i.defaultValue)?W(r,O(y(l,r))):(W(r,i.defaultValue),D(l,r,O(i.defaultValue))),i.keepTouched||M(t.touchedFields,r),i.keepDirty||(M(t.dirtyFields,r),t.isDirty=i.defaultValue?J(r,O(y(l,r))):J()),i.keepError||(M(t.errors,r),b.isValid&&k()),_.state.next({...t}))},pe=(r,i={})=>{const u=r?O(r):l,g=O(u),f=q(r),o=f?l:g;if(i.keepDefaultValues||(l=u),!i.keepValues){if(i.keepDirtyValues){const h=new Set([...d.mount,...Object.keys(oe(l,n))]);for(const F of Array.from(h))y(t.dirtyFields,F)?D(o,F,y(n,F)):W(F,y(o,F))}else{if(Re&&L(r))for(const h of d.mount){const F=y(a,h);if(F&&F._f){const w=Array.isArray(F._f.refs)?F._f.refs[0]:F._f.ref;if(be(w)){const $=w.closest("form");if($){$.reset();break}}}}if(i.keepFieldsRef)for(const h of d.mount)W(h,y(o,h));else a={}}n=s.shouldUnregister?i.keepDefaultValues?O(l):{}:O(o),_.array.next({values:{...o}}),_.state.next({values:{...o}})}d={mount:i.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!b.isValid||!!i.keepIsValid||!!i.keepDirtyValues,c.watch=!!s.shouldUnregister,_.state.next({submitCount:i.keepSubmitCount?t.submitCount:0,isDirty:f?!1:i.keepDirty?t.isDirty:!!(i.keepDefaultValues&&!j(r,l)),isSubmitted:i.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:f?{}:i.keepDirtyValues?i.keepDefaultValues&&n?oe(l,n):t.dirtyFields:i.keepDefaultValues&&r?oe(l,r):i.keepDirty?t.dirtyFields:{},touchedFields:i.keepTouched?t.touchedFields:{},errors:i.keepErrors?t.errors:{},isSubmitSuccessful:i.keepIsSubmitSuccessful?t.isSubmitSuccessful:!1,isSubmitting:!1})},$e=(r,i)=>pe(Y(r)?r(n):r,i),Ft=(r,i={})=>{const u=y(a,r),g=u&&u._f;if(g){const f=g.refs?g.refs[0]:g.ref;f.focus&&(f.focus(),i.shouldSelect&&Y(f.select)&&f.select())}},At=r=>{t={...t,...r}},Ke={control:{register:we,unregister:xe,getFieldState:Pe,handleSubmit:He,setError:Ie,_subscribe:We,_runSchema:te,_focusError:De,_getWatch:m,_getDirty:J,_setValid:k,_setFieldArray:ae,_setDisabledField:qe,_setErrors:B,_getFieldArray:x,_reset:pe,_resetDefaultValues:()=>Y(s.defaultValues)&&s.defaultValues().then(r=>{$e(r,s.resetOptions),_.state.next({isLoading:!1})}),_removeUnmounted:se,_disableForm:Vt,_subjects:_,_proxyFormState:b,get _fields(){return a},get _formValues(){return n},get _state(){return c},set _state(r){c=r},get _defaultValues(){return l},get _names(){return d},set _names(r){d=r},get _formState(){return t},get _options(){return s},set _options(r){s={...s,...r}}},subscribe:bt,trigger:le,register:we,handleSubmit:He,watch:_t,setValue:W,getValues:ge,reset:$e,resetField:mt,clearErrors:vt,unregister:xe,setError:Ie,setFocus:Ft,getFieldState:Pe};return{...Ke,formControl:Ke}}function Yt(e={}){const s=V.useRef(void 0),t=V.useRef(void 0),[a,l]=V.useState({isDirty:!1,isValidating:!1,isLoading:Y(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:Y(e.defaultValues)?void 0:e.defaultValues});if(!s.current)if(e.formControl)s.current={...e.formControl,formState:a},e.defaultValues&&!Y(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...d}=pt(e);s.current={...d,formState:a}}const n=s.current.control;return n._options=e,Ue(()=>{const c=n._subscribe({formState:n._proxyFormState,callback:()=>l({...n._formState}),reRenderRoot:!0});return l(d=>({...d,isReady:!0})),n._formState.isReady=!0,c},[n]),V.useEffect(()=>n._disableForm(e.disabled),[n,e.disabled]),V.useEffect(()=>{e.mode&&(n._options.mode=e.mode),e.reValidateMode&&(n._options.reValidateMode=e.reValidateMode)},[n,e.mode,e.reValidateMode]),V.useEffect(()=>{e.errors&&(n._setErrors(e.errors),n._focusError())},[n,e.errors]),V.useEffect(()=>{e.shouldUnregister&&n._subjects.state.next({values:n._getWatch()})},[n,e.shouldUnregister]),V.useEffect(()=>{if(n._proxyFormState.isDirty){const c=n._getDirty();c!==a.isDirty&&n._subjects.state.next({isDirty:c})}},[n,a.isDirty]),V.useEffect(()=>{e.values&&!j(e.values,t.current)?(n._reset(e.values,{keepFieldsRef:!0,...n._options.resetOptions}),t.current=e.values,l(c=>({...c}))):n._resetDefaultValues()},[n,e.values]),V.useEffect(()=>{n._state.mount||(n._setValid(),n._state.mount=!0),n._state.watch&&(n._state.watch=!1,n._subjects.state.next({...n._formState})),n._removeUnmounted()}),s.current.formState=nt(a,n),s.current}export{zt as FormProvider,Rt as appendErrors,pt as createFormControl,y as get,D as set,Gt as useController,Yt as useForm,Oe as useFormContext,St as useFormState,Ct as useWatch};
1
+ import V from"react";var ye=e=>e.type==="checkbox",ie=e=>e instanceof Date,I=e=>e==null;const at=e=>typeof e=="object";var L=e=>!I(e)&&!Array.isArray(e)&&at(e)&&!ie(e),lt=e=>L(e)&&e.target?ye(e.target)?e.target.checked:e.target.value:e,kt=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,ut=(e,s)=>e.has(kt(s)),Et=e=>{const s=e.constructor&&e.constructor.prototype;return L(s)&&s.hasOwnProperty("isPrototypeOf")},Oe=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function M(e){let s;const t=Array.isArray(e),a=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)s=new Date(e);else if(!(Oe&&(e instanceof Blob||a))&&(t||L(e)))if(s=t?[]:Object.create(Object.getPrototypeOf(e)),!t&&!Et(e))s=e;else for(const l in e)e.hasOwnProperty(l)&&(s[l]=M(e[l]));else return e;return s}var Fe=e=>/^\w*$/.test(e),R=e=>e===void 0,Re=e=>Array.isArray(e)?e.filter(Boolean):[],Le=e=>Re(e.replace(/["|']|\]/g,"").split(/\.|\[/)),y=(e,s,t)=>{if(!s||!L(e))return t;const a=(Fe(s)?[s]:Le(s)).reduce((l,n)=>I(l)?l:l[n],e);return R(a)||a===e?R(e[s])?t:e[s]:a},p=e=>typeof e=="boolean",D=(e,s,t)=>{let a=-1;const l=Fe(s)?[s]:Le(s),n=l.length,c=n-1;for(;++a<n;){const d=l[a];let E=t;if(a!==c){const S=e[d];E=L(S)||Array.isArray(S)?S:isNaN(+l[a+1])?{}:[]}if(d==="__proto__"||d==="constructor"||d==="prototype")return;e[d]=E,e=e[d]}};const _e={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},G={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Z={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Te=V.createContext(null);Te.displayName="HookFormContext";const Me=()=>V.useContext(Te),zt=e=>{const{children:s,...t}=e;return V.createElement(Te.Provider,{value:t},s)};var nt=(e,s,t,a=!0)=>{const l={defaultValues:s._defaultValues};for(const n in e)Object.defineProperty(l,n,{get:()=>{const c=n;return s._proxyFormState[c]!==G.all&&(s._proxyFormState[c]=!a||G.all),t&&(t[c]=!0),e[c]}});return l};const Ue=typeof window<"u"?V.useLayoutEffect:V.useEffect;function St(e){const s=Me(),{control:t=s.control,disabled:a,name:l,exact:n}=e||{},[c,d]=V.useState(t._formState),E=V.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Ue(()=>t._subscribe({name:l,formState:E.current,exact:n,callback:S=>{!a&&d({...t._formState,...S})}}),[l,a,n]),V.useEffect(()=>{E.current.isValid&&t._setValid(!0)},[t]),V.useMemo(()=>nt(c,t,E.current,!1),[c,t])}var X=e=>typeof e=="string",ot=(e,s,t,a,l)=>X(e)?(a&&s.watch.add(e),y(t,e,l)):Array.isArray(e)?e.map(n=>(a&&s.watch.add(n),y(t,n))):(a&&(s.watchAll=!0),t),Ce=e=>I(e)||!at(e);function j(e,s,t=new WeakSet){if(Ce(e)||Ce(s))return e===s;if(ie(e)&&ie(s))return e.getTime()===s.getTime();const a=Object.keys(e),l=Object.keys(s);if(a.length!==l.length)return!1;if(t.has(e)||t.has(s))return!0;t.add(e),t.add(s);for(const n of a){const c=e[n];if(!l.includes(n))return!1;if(n!=="ref"){const d=s[n];if(ie(c)&&ie(d)||L(c)&&L(d)||Array.isArray(c)&&Array.isArray(d)?!j(c,d,t):c!==d)return!1}}return!0}function Ct(e){const s=Me(),{control:t=s.control,name:a,defaultValue:l,disabled:n,exact:c,compute:d}=e||{},E=V.useRef(l),S=V.useRef(d),b=V.useRef(void 0);S.current=d;const A=V.useMemo(()=>t._getWatch(a,E.current),[t,a]),[_,K]=V.useState(S.current?S.current(A):A);return Ue(()=>t._subscribe({name:a,formState:{values:!0},exact:c,callback:H=>{if(!n){const k=ot(a,t._names,H.values||t._formValues,!1,E.current);if(S.current){const N=S.current(k);j(N,b.current)||(K(N),b.current=N)}else K(k)}}}),[t,n,a,c]),V.useEffect(()=>t._removeUnmounted()),_}function Gt(e){const s=Me(),{name:t,disabled:a,control:l=s.control,shouldUnregister:n,defaultValue:c}=e,d=ut(l._names.array,t),E=V.useMemo(()=>y(l._formValues,t,y(l._defaultValues,t,c)),[l,t,c]),S=Ct({control:l,name:t,defaultValue:E,exact:!0}),b=St({control:l,name:t,exact:!0}),A=V.useRef(e),_=V.useRef(l.register(t,{...e.rules,value:S,...p(e.disabled)?{disabled:e.disabled}:{}}));A.current=e;const K=V.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!y(b.errors,t)},isDirty:{enumerable:!0,get:()=>!!y(b.dirtyFields,t)},isTouched:{enumerable:!0,get:()=>!!y(b.touchedFields,t)},isValidating:{enumerable:!0,get:()=>!!y(b.validatingFields,t)},error:{enumerable:!0,get:()=>y(b.errors,t)}}),[b,t]),H=V.useCallback(v=>_.current.onChange({target:{value:lt(v),name:t},type:_e.CHANGE}),[t]),k=V.useCallback(()=>_.current.onBlur({target:{value:y(l._formValues,t),name:t},type:_e.BLUR}),[t,l._formValues]),N=V.useCallback(v=>{const P=y(l._fields,t);P&&v&&(P._f.ref={focus:()=>v.focus&&v.focus(),select:()=>v.select&&v.select(),setCustomValidity:U=>v.setCustomValidity(U),reportValidity:()=>v.reportValidity()})},[l._fields,t]),ae=V.useMemo(()=>({name:t,value:S,...p(a)||b.disabled?{disabled:b.disabled||a}:{},onChange:H,onBlur:k,ref:N}),[t,a,b.disabled,H,k,N,S]);return V.useEffect(()=>{const v=l._options.shouldUnregister||n;l.register(t,{...A.current.rules,...p(A.current.disabled)?{disabled:A.current.disabled}:{}});const P=(U,C)=>{const ee=y(l._fields,U);ee&&ee._f&&(ee._f.mount=C)};if(P(t,!0),v){const U=M(y(l._options.defaultValues,t));D(l._defaultValues,t,U),R(y(l._formValues,t))&&D(l._formValues,t,U)}return!d&&l.register(t),()=>{(d?v&&!l._state.action:v)?l.unregister(t):P(t,!1)}},[t,l,d,n]),V.useEffect(()=>{l._setDisabledField({disabled:a,name:t})},[a,t,l]),V.useMemo(()=>({field:ae,formState:b,fieldState:K}),[ae,b,K])}var Ot=(e,s,t,a,l)=>s?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[a]:l||!0}}:{},de=e=>Array.isArray(e)?e:[e],Ye=()=>{let e=[];return{get observers(){return e},next:l=>{for(const n of e)n.next&&n.next(l)},subscribe:l=>(e.push(l),{unsubscribe:()=>{e=e.filter(n=>n!==l)}}),unsubscribe:()=>{e=[]}}},q=e=>L(e)&&!Object.keys(e).length,Ne=e=>e.type==="file",Y=e=>typeof e=="function",be=e=>{if(!Oe)return!1;const s=e?e.ownerDocument:0;return e instanceof(s&&s.defaultView?s.defaultView.HTMLElement:HTMLElement)},ft=e=>e.type==="select-multiple",Pe=e=>e.type==="radio",Rt=e=>Pe(e)||ye(e),Se=e=>be(e)&&e.isConnected;function Lt(e,s){const t=s.slice(0,-1).length;let a=0;for(;a<t;)e=R(e)?a++:e[s[a++]];return e}function Tt(e){for(const s in e)if(e.hasOwnProperty(s)&&!R(e[s]))return!1;return!0}function T(e,s){const t=Array.isArray(s)?s:Fe(s)?[s]:Le(s),a=t.length===1?e:Lt(e,t),l=t.length-1,n=t[l];return a&&delete a[n],l!==0&&(L(a)&&q(a)||Array.isArray(a)&&Tt(a))&&T(e,t.slice(0,-1)),e}var dt=e=>{for(const s in e)if(Y(e[s]))return!0;return!1};function Ve(e,s={}){const t=Array.isArray(e);if(L(e)||t)for(const a in e)Array.isArray(e[a])||L(e[a])&&!dt(e[a])?(s[a]=Array.isArray(e[a])?[]:{},Ve(e[a],s[a])):I(e[a])||(s[a]=!0);return s}function ct(e,s,t){const a=Array.isArray(e);if(L(e)||a)for(const l in e)Array.isArray(e[l])||L(e[l])&&!dt(e[l])?R(s)||Ce(t[l])?t[l]=Array.isArray(e[l])?Ve(e[l],[]):{...Ve(e[l])}:ct(e[l],I(s)?{}:s[l],t[l]):t[l]=!j(e[l],s[l]);return t}var oe=(e,s)=>ct(e,s,Ve(s));const Je={value:!1,isValid:!1},Qe={value:!0,isValid:!0};var yt=e=>{if(Array.isArray(e)){if(e.length>1){const s=e.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:s,isValid:!!s.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!R(e[0].attributes.value)?R(e[0].value)||e[0].value===""?Qe:{value:e[0].value,isValid:!0}:Qe:Je}return Je},gt=(e,{valueAsNumber:s,valueAsDate:t,setValueAs:a})=>R(e)?e:s?e===""?NaN:e&&+e:t&&X(e)?new Date(e):a?a(e):e;const Xe={isValid:!1,value:null};var ht=e=>Array.isArray(e)?e.reduce((s,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:s,Xe):Xe;function Ze(e){const s=e.ref;return Ne(s)?s.files:Pe(s)?ht(e.refs).value:ft(s)?[...s.selectedOptions].map(({value:t})=>t):ye(s)?yt(e.refs).value:gt(R(s.value)?e.ref.value:s.value,e)}var Mt=(e,s,t,a)=>{const l={};for(const n of e){const c=y(s,n);c&&D(l,n,c._f)}return{criteriaMode:t,names:[...e],fields:l,shouldUseNativeValidation:a}},me=e=>e instanceof RegExp,fe=e=>R(e)?e:me(e)?e.source:L(e)?me(e.value)?e.value.source:e.value:e,je=e=>({isOnSubmit:!e||e===G.onSubmit,isOnBlur:e===G.onBlur,isOnChange:e===G.onChange,isOnAll:e===G.all,isOnTouch:e===G.onTouched});const et="AsyncFunction";var Ut=e=>!!e&&!!e.validate&&!!(Y(e.validate)&&e.validate.constructor.name===et||L(e.validate)&&Object.values(e.validate).find(s=>s.constructor.name===et)),Nt=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),tt=(e,s,t)=>!t&&(s.watchAll||s.watch.has(e)||[...s.watch].some(a=>e.startsWith(a)&&/^\.\w+/.test(e.slice(a.length))));const ce=(e,s,t,a)=>{for(const l of t||Object.keys(e)){const n=y(e,l);if(n){const{_f:c,...d}=n;if(c){if(c.refs&&c.refs[0]&&s(c.refs[0],l)&&!a)return!0;if(c.ref&&s(c.ref,c.name)&&!a)return!0;if(ce(d,s))break}else if(L(d)&&ce(d,s))break}}};function rt(e,s,t){const a=y(e,t);if(a||Fe(t))return{error:a,name:t};const l=t.split(".");for(;l.length;){const n=l.join("."),c=y(s,n),d=y(e,n);if(c&&!Array.isArray(c)&&t!==n)return{name:t};if(d&&d.type)return{name:n,error:d};if(d&&d.root&&d.root.type)return{name:`${n}.root`,error:d.root};l.pop()}return{name:t}}var Pt=(e,s,t,a)=>{t(e);const{name:l,...n}=e;return q(n)||Object.keys(n).length>=Object.keys(s).length||Object.keys(n).find(c=>s[c]===(!a||G.all))},Bt=(e,s,t)=>!e||!s||e===s||de(e).some(a=>a&&(t?a===s:a.startsWith(s)||s.startsWith(a))),It=(e,s,t,a,l)=>l.isOnAll?!1:!t&&l.isOnTouch?!(s||e):(t?a.isOnBlur:l.isOnBlur)?!e:(t?a.isOnChange:l.isOnChange)?e:!0,Wt=(e,s)=>!Re(y(e,s)).length&&T(e,s),qt=(e,s,t)=>{const a=de(y(e,t));return D(a,"root",s[t]),D(e,t,a),e},ve=e=>X(e);function st(e,s,t="validate"){if(ve(e)||Array.isArray(e)&&e.every(ve)||p(e)&&!e)return{type:t,message:ve(e)?e:"",ref:s}}var ue=e=>L(e)&&!me(e)?e:{value:e,message:""},it=async(e,s,t,a,l,n)=>{const{ref:c,refs:d,required:E,maxLength:S,minLength:b,min:A,max:_,pattern:K,validate:H,name:k,valueAsNumber:N,mount:ae}=e._f,v=y(t,k);if(!ae||s.has(k))return{};const P=d?d[0]:c,U=m=>{l&&P.reportValidity&&(P.setCustomValidity(p(m)?"":m||""),P.reportValidity())},C={},ee=Pe(c),te=ye(c),Ae=ee||te,z=(N||Ne(c))&&R(c.value)&&R(v)||be(c)&&c.value===""||v===""||Array.isArray(v)&&!v.length,se=Ot.bind(null,k,a,C),J=(m,x,O,B=Z.maxLength,W=Z.minLength)=>{const Q=m?x:O;C[k]={type:m?B:W,message:Q,ref:c,...se(m?B:W,Q)}};if(n?!Array.isArray(v)||!v.length:E&&(!Ae&&(z||I(v))||p(v)&&!v||te&&!yt(d).isValid||ee&&!ht(d).isValid)){const{value:m,message:x}=ve(E)?{value:!!E,message:E}:ue(E);if(m&&(C[k]={type:Z.required,message:x,ref:P,...se(Z.required,x)},!a))return U(x),C}if(!z&&(!I(A)||!I(_))){let m,x;const O=ue(_),B=ue(A);if(!I(v)&&!isNaN(v)){const W=c.valueAsNumber||v&&+v;I(O.value)||(m=W>O.value),I(B.value)||(x=W<B.value)}else{const W=c.valueAsDate||new Date(v),Q=ge=>new Date(new Date().toDateString()+" "+ge),ne=c.type=="time",le=c.type=="week";X(O.value)&&v&&(m=ne?Q(v)>Q(O.value):le?v>O.value:W>new Date(O.value)),X(B.value)&&v&&(x=ne?Q(v)<Q(B.value):le?v<B.value:W<new Date(B.value))}if((m||x)&&(J(!!m,O.message,B.message,Z.max,Z.min),!a))return U(C[k].message),C}if((S||b)&&!z&&(X(v)||n&&Array.isArray(v))){const m=ue(S),x=ue(b),O=!I(m.value)&&v.length>+m.value,B=!I(x.value)&&v.length<+x.value;if((O||B)&&(J(O,m.message,x.message),!a))return U(C[k].message),C}if(K&&!z&&X(v)){const{value:m,message:x}=ue(K);if(me(m)&&!v.match(m)&&(C[k]={type:Z.pattern,message:x,ref:c,...se(Z.pattern,x)},!a))return U(x),C}if(H){if(Y(H)){const m=await H(v,t),x=st(m,P);if(x&&(C[k]={...x,...se(Z.validate,x.message)},!a))return U(x.message),C}else if(L(H)){let m={};for(const x in H){if(!q(m)&&!a)break;const O=st(await H[x](v,t),P,x);O&&(m={...O,...se(x,O.message)},U(O.message),a&&(C[k]=m))}if(!q(m)&&(C[k]={ref:P,...m},!a))return C}}return U(!0),C};const Ht={mode:G.onSubmit,reValidateMode:G.onChange,shouldFocusError:!0};function pt(e={}){let s={...Ht,...e},t={submitCount:0,isDirty:!1,isReady:!1,isLoading:Y(s.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:s.errors||{},disabled:s.disabled||!1},a={},l=L(s.defaultValues)||L(s.values)?M(s.defaultValues||s.values)||{}:{},n=s.shouldUnregister?{}:M(l),c={action:!1,mount:!1,watch:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},E,S=0;const b={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let A={...b};const _={array:Ye(),state:Ye()},K=s.criteriaMode===G.all,H=r=>i=>{clearTimeout(S),S=setTimeout(r,i)},k=async r=>{if(!s.disabled&&(b.isValid||A.isValid||r)){const i=s.resolver?q((await te()).errors):await z(a,!0);i!==t.isValid&&_.state.next({isValid:i})}},N=(r,i)=>{!s.disabled&&(b.isValidating||b.validatingFields||A.isValidating||A.validatingFields)&&((r||Array.from(d.mount)).forEach(u=>{u&&(i?D(t.validatingFields,u,i):T(t.validatingFields,u))}),_.state.next({validatingFields:t.validatingFields,isValidating:!q(t.validatingFields)}))},ae=(r,i=[],u,g,f=!0,o=!0)=>{if(g&&u&&!s.disabled){if(c.action=!0,o&&Array.isArray(y(a,r))){const h=u(y(a,r),g.argA,g.argB);f&&D(a,r,h)}if(o&&Array.isArray(y(t.errors,r))){const h=u(y(t.errors,r),g.argA,g.argB);f&&D(t.errors,r,h),Wt(t.errors,r)}if((b.touchedFields||A.touchedFields)&&o&&Array.isArray(y(t.touchedFields,r))){const h=u(y(t.touchedFields,r),g.argA,g.argB);f&&D(t.touchedFields,r,h)}(b.dirtyFields||A.dirtyFields)&&(t.dirtyFields=oe(l,n)),_.state.next({name:r,isDirty:J(r,i),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else D(n,r,i)},v=(r,i)=>{D(t.errors,r,i),_.state.next({errors:t.errors})},P=r=>{t.errors=r,_.state.next({errors:t.errors,isValid:!1})},U=(r,i,u,g)=>{const f=y(a,r);if(f){const o=y(n,r,R(u)?y(l,r):u);R(o)||g&&g.defaultChecked||i?D(n,r,i?o:Ze(f._f)):O(r,o),c.mount&&k()}},C=(r,i,u,g,f)=>{let o=!1,h=!1;const F={name:r};if(!s.disabled){if(!u||g){(b.isDirty||A.isDirty)&&(h=t.isDirty,t.isDirty=F.isDirty=J(),o=h!==F.isDirty);const w=j(y(l,r),i);h=!!y(t.dirtyFields,r),w?T(t.dirtyFields,r):D(t.dirtyFields,r,!0),F.dirtyFields=t.dirtyFields,o=o||(b.dirtyFields||A.dirtyFields)&&h!==!w}if(u){const w=y(t.touchedFields,r);w||(D(t.touchedFields,r,u),F.touchedFields=t.touchedFields,o=o||(b.touchedFields||A.touchedFields)&&w!==u)}o&&f&&_.state.next(F)}return o?F:{}},ee=(r,i,u,g)=>{const f=y(t.errors,r),o=(b.isValid||A.isValid)&&p(i)&&t.isValid!==i;if(s.delayError&&u?(E=H(()=>v(r,u)),E(s.delayError)):(clearTimeout(S),E=null,u?D(t.errors,r,u):T(t.errors,r)),(u?!j(f,u):f)||!q(g)||o){const h={...g,...o&&p(i)?{isValid:i}:{},errors:t.errors,name:r};t={...t,...h},_.state.next(h)}},te=async r=>{N(r,!0);const i=await s.resolver(n,s.context,Mt(r||d.mount,a,s.criteriaMode,s.shouldUseNativeValidation));return N(r),i},Ae=async r=>{const{errors:i}=await te(r);if(r)for(const u of r){const g=y(i,u);g?D(t.errors,u,g):T(t.errors,u)}else t.errors=i;return i},z=async(r,i,u={valid:!0})=>{for(const g in r){const f=r[g];if(f){const{_f:o,...h}=f;if(o){const F=d.array.has(o.name),w=f._f&&Ut(f._f);w&&b.validatingFields&&N([g],!0);const $=await it(f,d.disabled,n,K,s.shouldUseNativeValidation&&!i,F);if(w&&b.validatingFields&&N([g]),$[o.name]&&(u.valid=!1,i))break;!i&&(y($,o.name)?F?qt(t.errors,$,o.name):D(t.errors,o.name,$[o.name]):T(t.errors,o.name))}!q(h)&&await z(h,i,u)}}return u.valid},se=()=>{for(const r of d.unMount){const i=y(a,r);i&&(i._f.refs?i._f.refs.every(u=>!Se(u)):!Se(i._f.ref))&&xe(r)}d.unMount=new Set},J=(r,i)=>!s.disabled&&(r&&i&&D(n,r,i),!j(ge(),l)),m=(r,i,u)=>ot(r,d,{...c.mount?n:R(i)?l:X(r)?{[r]:i}:i},u,i),x=r=>Re(y(c.mount?n:l,r,s.shouldUnregister?y(l,r,[]):[])),O=(r,i,u={})=>{const g=y(a,r);let f=i;if(g){const o=g._f;o&&(!o.disabled&&D(n,r,gt(i,o)),f=be(o.ref)&&I(i)?"":i,ft(o.ref)?[...o.ref.options].forEach(h=>h.selected=f.includes(h.value)):o.refs?ye(o.ref)?o.refs.forEach(h=>{(!h.defaultChecked||!h.disabled)&&(Array.isArray(f)?h.checked=!!f.find(F=>F===h.value):h.checked=f===h.value||!!f)}):o.refs.forEach(h=>h.checked=h.value===f):Ne(o.ref)?o.ref.value="":(o.ref.value=f,o.ref.type||_.state.next({name:r,values:M(n)})))}(u.shouldDirty||u.shouldTouch)&&C(r,f,u.shouldTouch,u.shouldDirty,!0),u.shouldValidate&&le(r)},B=(r,i,u)=>{for(const g in i){if(!i.hasOwnProperty(g))return;const f=i[g],o=r+"."+g,h=y(a,o);(d.array.has(r)||L(f)||h&&!h._f)&&!ie(f)?B(o,f,u):O(o,f,u)}},W=(r,i,u={})=>{const g=y(a,r),f=d.array.has(r),o=M(i);D(n,r,o),f?(_.array.next({name:r,values:M(n)}),(b.isDirty||b.dirtyFields||A.isDirty||A.dirtyFields)&&u.shouldDirty&&_.state.next({name:r,dirtyFields:oe(l,n),isDirty:J(r,o)})):g&&!g._f&&!I(o)?B(r,o,u):O(r,o,u),tt(r,d)&&_.state.next({...t,name:r}),_.state.next({name:c.mount?r:void 0,values:M(n)})},Q=async r=>{c.mount=!0;const i=r.target;let u=i.name,g=!0;const f=y(a,u),o=w=>{g=Number.isNaN(w)||ie(w)&&isNaN(w.getTime())||j(w,y(n,u,w))},h=je(s.mode),F=je(s.reValidateMode);if(f){let w,$;const he=i.type?Ze(f._f):lt(r),re=r.type===_e.BLUR||r.type===_e.FOCUS_OUT,xt=!Nt(f._f)&&!s.resolver&&!y(t.errors,u)&&!f._f.deps||It(re,y(t.touchedFields,u),t.isSubmitted,F,h),ke=tt(u,d,re);D(n,u,he),re?(!i||!i.readOnly)&&(f._f.onBlur&&f._f.onBlur(r),E&&E(0)):f._f.onChange&&f._f.onChange(r);const Ee=C(u,he,re),wt=!q(Ee)||ke;if(!re&&_.state.next({name:u,type:r.type,values:M(n)}),xt)return(b.isValid||A.isValid)&&(s.mode==="onBlur"?re&&k():re||k()),wt&&_.state.next({name:u,...ke?{}:Ee});if(!re&&ke&&_.state.next({...t}),s.resolver){const{errors:ze}=await te([u]);if(o(he),g){const Dt=rt(t.errors,a,u),Ge=rt(ze,a,Dt.name||u);w=Ge.error,u=Ge.name,$=q(ze)}}else N([u],!0),w=(await it(f,d.disabled,n,K,s.shouldUseNativeValidation))[u],N([u]),o(he),g&&(w?$=!1:(b.isValid||A.isValid)&&($=await z(a,!0)));g&&(f._f.deps&&le(f._f.deps),ee(u,$,w,Ee))}},ne=(r,i)=>{if(y(t.errors,i)&&r.focus)return r.focus(),1},le=async(r,i={})=>{let u,g;const f=de(r);if(s.resolver){const o=await Ae(R(r)?r:f);u=q(o),g=r?!f.some(h=>y(o,h)):u}else r?(g=(await Promise.all(f.map(async o=>{const h=y(a,o);return await z(h&&h._f?{[o]:h}:h)}))).every(Boolean),!(!g&&!t.isValid)&&k()):g=u=await z(a);return _.state.next({...!X(r)||(b.isValid||A.isValid)&&u!==t.isValid?{}:{name:r},...s.resolver||!r?{isValid:u}:{},errors:t.errors}),i.shouldFocus&&!g&&ce(a,ne,r?f:d.mount),g},ge=r=>{const i={...c.mount?n:l};return R(r)?i:X(r)?y(i,r):r.map(u=>y(i,u))},Be=(r,i)=>({invalid:!!y((i||t).errors,r),isDirty:!!y((i||t).dirtyFields,r),error:y((i||t).errors,r),isValidating:!!y(t.validatingFields,r),isTouched:!!y((i||t).touchedFields,r)}),vt=r=>{r&&de(r).forEach(i=>T(t.errors,i)),_.state.next({errors:r?t.errors:{}})},Ie=(r,i,u)=>{const g=(y(a,r,{_f:{}})._f||{}).ref,f=y(t.errors,r)||{},{ref:o,message:h,type:F,...w}=f;D(t.errors,r,{...w,...i,ref:g}),_.state.next({name:r,errors:t.errors,isValid:!1}),u&&u.shouldFocus&&g&&g.focus&&g.focus()},_t=(r,i)=>Y(r)?_.state.subscribe({next:u=>"values"in u&&r(m(void 0,i),u)}):m(r,i,!0),We=r=>_.state.subscribe({next:i=>{Bt(r.name,i.name,r.exact)&&Pt(i,r.formState||b,At,r.reRenderRoot)&&r.callback({values:{...n},...t,...i,defaultValues:l})}}).unsubscribe,bt=r=>(c.mount=!0,A={...A,...r.formState},We({...r,formState:A})),xe=(r,i={})=>{for(const u of r?de(r):d.mount)d.mount.delete(u),d.array.delete(u),i.keepValue||(T(a,u),T(n,u)),!i.keepError&&T(t.errors,u),!i.keepDirty&&T(t.dirtyFields,u),!i.keepTouched&&T(t.touchedFields,u),!i.keepIsValidating&&T(t.validatingFields,u),!s.shouldUnregister&&!i.keepDefaultValue&&T(l,u);_.state.next({values:M(n)}),_.state.next({...t,...i.keepDirty?{isDirty:J()}:{}}),!i.keepIsValid&&k()},qe=({disabled:r,name:i})=>{(p(r)&&c.mount||r||d.disabled.has(i))&&(r?d.disabled.add(i):d.disabled.delete(i))},we=(r,i={})=>{let u=y(a,r);const g=p(i.disabled)||p(s.disabled);return D(a,r,{...u||{},_f:{...u&&u._f?u._f:{ref:{name:r}},name:r,mount:!0,...i}}),d.mount.add(r),u?qe({disabled:p(i.disabled)?i.disabled:s.disabled,name:r}):U(r,!0,i.value),{...g?{disabled:i.disabled||s.disabled}:{},...s.progressive?{required:!!i.required,min:fe(i.min),max:fe(i.max),minLength:fe(i.minLength),maxLength:fe(i.maxLength),pattern:fe(i.pattern)}:{},name:r,onChange:Q,onBlur:Q,ref:f=>{if(f){we(r,i),u=y(a,r);const o=R(f.value)&&f.querySelectorAll&&f.querySelectorAll("input,select,textarea")[0]||f,h=Rt(o),F=u._f.refs||[];if(h?F.find(w=>w===o):o===u._f.ref)return;D(a,r,{_f:{...u._f,...h?{refs:[...F.filter(Se),o,...Array.isArray(y(l,r))?[{}]:[]],ref:{type:o.type,name:r}}:{ref:o}}}),U(r,!1,void 0,o)}else u=y(a,r,{}),u._f&&(u._f.mount=!1),(s.shouldUnregister||i.shouldUnregister)&&!(ut(d.array,r)&&c.action)&&d.unMount.add(r)}}},De=()=>s.shouldFocusError&&ce(a,ne,d.mount),Vt=r=>{p(r)&&(_.state.next({disabled:r}),ce(a,(i,u)=>{const g=y(a,u);g&&(i.disabled=g._f.disabled||r,Array.isArray(g._f.refs)&&g._f.refs.forEach(f=>{f.disabled=g._f.disabled||r}))},0,!1))},He=(r,i)=>async u=>{let g;u&&(u.preventDefault&&u.preventDefault(),u.persist&&u.persist());let f=M(n);if(_.state.next({isSubmitting:!0}),s.resolver){const{errors:o,values:h}=await te();t.errors=o,f=M(h)}else await z(a);if(d.disabled.size)for(const o of d.disabled)T(f,o);if(T(t.errors,"root"),q(t.errors)){_.state.next({errors:{}});try{await r(f,u)}catch(o){g=o}}else i&&await i({...t.errors},u),De(),setTimeout(De);if(_.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:q(t.errors)&&!g,submitCount:t.submitCount+1,errors:t.errors}),g)throw g},mt=(r,i={})=>{y(a,r)&&(R(i.defaultValue)?W(r,M(y(l,r))):(W(r,i.defaultValue),D(l,r,M(i.defaultValue))),i.keepTouched||T(t.touchedFields,r),i.keepDirty||(T(t.dirtyFields,r),t.isDirty=i.defaultValue?J(r,M(y(l,r))):J()),i.keepError||(T(t.errors,r),b.isValid&&k()),_.state.next({...t}))},pe=(r,i={})=>{const u=r?M(r):l,g=M(u),f=q(r),o=f?l:g;if(i.keepDefaultValues||(l=u),!i.keepValues){if(i.keepDirtyValues){const h=new Set([...d.mount,...Object.keys(oe(l,n))]);for(const F of Array.from(h))y(t.dirtyFields,F)?D(o,F,y(n,F)):W(F,y(o,F))}else{if(Oe&&R(r))for(const h of d.mount){const F=y(a,h);if(F&&F._f){const w=Array.isArray(F._f.refs)?F._f.refs[0]:F._f.ref;if(be(w)){const $=w.closest("form");if($){$.reset();break}}}}if(i.keepFieldsRef)for(const h of d.mount)W(h,y(o,h));else a={}}n=s.shouldUnregister?i.keepDefaultValues?M(l):{}:M(o),_.array.next({values:{...o}}),_.state.next({values:{...o}})}d={mount:i.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!b.isValid||!!i.keepIsValid||!!i.keepDirtyValues,c.watch=!!s.shouldUnregister,_.state.next({submitCount:i.keepSubmitCount?t.submitCount:0,isDirty:f?!1:i.keepDirty?t.isDirty:!!(i.keepDefaultValues&&!j(r,l)),isSubmitted:i.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:f?{}:i.keepDirtyValues?i.keepDefaultValues&&n?oe(l,n):t.dirtyFields:i.keepDefaultValues&&r?oe(l,r):i.keepDirty?t.dirtyFields:{},touchedFields:i.keepTouched?t.touchedFields:{},errors:i.keepErrors?t.errors:{},isSubmitSuccessful:i.keepIsSubmitSuccessful?t.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:l})},$e=(r,i)=>pe(Y(r)?r(n):r,i),Ft=(r,i={})=>{const u=y(a,r),g=u&&u._f;if(g){const f=g.refs?g.refs[0]:g.ref;f.focus&&(f.focus(),i.shouldSelect&&Y(f.select)&&f.select())}},At=r=>{t={...t,...r}},Ke={control:{register:we,unregister:xe,getFieldState:Be,handleSubmit:He,setError:Ie,_subscribe:We,_runSchema:te,_focusError:De,_getWatch:m,_getDirty:J,_setValid:k,_setFieldArray:ae,_setDisabledField:qe,_setErrors:P,_getFieldArray:x,_reset:pe,_resetDefaultValues:()=>Y(s.defaultValues)&&s.defaultValues().then(r=>{$e(r,s.resetOptions),_.state.next({isLoading:!1})}),_removeUnmounted:se,_disableForm:Vt,_subjects:_,_proxyFormState:b,get _fields(){return a},get _formValues(){return n},get _state(){return c},set _state(r){c=r},get _defaultValues(){return l},get _names(){return d},set _names(r){d=r},get _formState(){return t},get _options(){return s},set _options(r){s={...s,...r}}},subscribe:bt,trigger:le,register:we,handleSubmit:He,watch:_t,setValue:W,getValues:ge,reset:$e,resetField:mt,clearErrors:vt,unregister:xe,setError:Ie,setFocus:Ft,getFieldState:Be};return{...Ke,formControl:Ke}}function Yt(e={}){const s=V.useRef(void 0),t=V.useRef(void 0),[a,l]=V.useState({isDirty:!1,isValidating:!1,isLoading:Y(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:Y(e.defaultValues)?void 0:e.defaultValues});if(!s.current)if(e.formControl)s.current={...e.formControl,formState:a},e.defaultValues&&!Y(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...d}=pt(e);s.current={...d,formState:a}}const n=s.current.control;return n._options=e,Ue(()=>{const c=n._subscribe({formState:n._proxyFormState,callback:()=>l({...n._formState}),reRenderRoot:!0});return l(d=>({...d,isReady:!0})),n._formState.isReady=!0,c},[n]),V.useEffect(()=>n._disableForm(e.disabled),[n,e.disabled]),V.useEffect(()=>{e.mode&&(n._options.mode=e.mode),e.reValidateMode&&(n._options.reValidateMode=e.reValidateMode)},[n,e.mode,e.reValidateMode]),V.useEffect(()=>{e.errors&&(n._setErrors(e.errors),n._focusError())},[n,e.errors]),V.useEffect(()=>{e.shouldUnregister&&n._subjects.state.next({values:n._getWatch()})},[n,e.shouldUnregister]),V.useEffect(()=>{if(n._proxyFormState.isDirty){const c=n._getDirty();c!==a.isDirty&&n._subjects.state.next({isDirty:c})}},[n,a.isDirty]),V.useEffect(()=>{e.values&&!j(e.values,t.current)?(n._reset(e.values,{keepFieldsRef:!0,...n._options.resetOptions}),t.current=e.values,l(c=>({...c}))):n._resetDefaultValues()},[n,e.values]),V.useEffect(()=>{n._state.mount||(n._setValid(),n._state.mount=!0),n._state.watch&&(n._state.watch=!1,n._subjects.state.next({...n._formState})),n._removeUnmounted()}),s.current.formState=nt(a,n),s.current}export{zt as FormProvider,Ot as appendErrors,pt as createFormControl,y as get,D as set,Gt as useController,Yt as useForm,Me as useFormContext,St as useFormState,Ct as useWatch};
2
2
  //# sourceMappingURL=index.esm.js.map