@sito/dashboard-app 0.0.38 → 0.0.40

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 (46) hide show
  1. package/README.md +1 -1
  2. package/dist/components/Actions/Actions.test.d.ts +1 -0
  3. package/dist/components/Actions/ActionsDropdown.stories.d.ts +1 -2
  4. package/dist/components/Actions/types.d.ts +3 -0
  5. package/dist/components/Buttons/IconButton.d.ts +6 -2
  6. package/dist/components/Buttons/index.d.ts +2 -1
  7. package/dist/components/Dialog/ConfirmationDialog.test.d.ts +1 -0
  8. package/dist/components/Dialog/DialogActions.d.ts +1 -17
  9. package/dist/components/Dialog/FormDialog.d.ts +1 -1
  10. package/dist/components/Dialog/FormDialog.stories.d.ts +1 -1
  11. package/dist/components/Dialog/ImportDialog/Error.d.ts +1 -1
  12. package/dist/components/Dialog/types.d.ts +17 -1
  13. package/dist/components/Empty/types.d.ts +3 -2
  14. package/dist/components/Error/types.d.ts +2 -2
  15. package/dist/components/Form/FormContainer.d.ts +1 -1
  16. package/dist/components/Form/types.d.ts +2 -4
  17. package/dist/components/Loading/SplashScreen.d.ts +2 -1
  18. package/dist/components/Loading/types.d.ts +1 -1
  19. package/dist/components/Navbar/Navbar.test.d.ts +1 -0
  20. package/dist/components/Navbar/types.d.ts +2 -2
  21. package/dist/components/Page/types.d.ts +4 -3
  22. package/dist/components/index.d.ts +0 -1
  23. package/dist/dashboard-app.cjs +1 -1
  24. package/dist/dashboard-app.js +1574 -1592
  25. package/dist/hooks/actions/useDeleteAction.test.d.ts +1 -0
  26. package/dist/hooks/actions/useEditAction.test.d.ts +1 -0
  27. package/dist/hooks/actions/useExportAction.test.d.ts +1 -0
  28. package/dist/hooks/actions/useImportAction.test.d.ts +1 -0
  29. package/dist/hooks/actions/useRestoreAction.test.d.ts +1 -0
  30. package/dist/hooks/dialogs/types.d.ts +2 -2
  31. package/dist/hooks/dialogs/useDialog.test.d.ts +1 -0
  32. package/dist/hooks/dialogs/useFormDialog.d.ts +1 -2
  33. package/dist/hooks/forms/usePostForm.d.ts +1 -2
  34. package/dist/hooks/useScrollTrigger.test.d.ts +1 -0
  35. package/dist/main.css +1 -1
  36. package/dist/main.d.ts +2 -0
  37. package/dist/providers/types.d.ts +1 -1
  38. package/package.json +11 -8
  39. package/dist/components/Buttons/Button.d.ts +0 -2
  40. package/dist/components/Buttons/Button.stories.d.ts +0 -28
  41. package/dist/components/Buttons/IconButton.stories.d.ts +0 -29
  42. package/dist/components/Buttons/types.d.ts +0 -12
  43. package/dist/components/Dropdown/Dropdown.d.ts +0 -2
  44. package/dist/components/Dropdown/Dropdown.stories.d.ts +0 -9
  45. package/dist/components/Dropdown/index.d.ts +0 -2
  46. package/dist/components/Dropdown/types.d.ts +0 -6
package/README.md CHANGED
@@ -19,7 +19,7 @@ pnpm add @sito/dashboard-app
19
19
  - React DOM `18.3.1`
20
20
  - `@tanstack/react-query` `5.83.0`
21
21
  - `react-hook-form` `7.61.1`
22
- - `@sito/dashboard` `^0.0.61`
22
+ - `@sito/dashboard` `^0.0.66`
23
23
  - Font Awesome + Emotion peers defined in `package.json`
24
24
 
25
25
  ## Core exports
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1,7 @@
1
1
  import { StoryObj } from '@storybook/react';
2
- import { BaseEntityDto } from '../../lib';
3
2
  declare const meta: {
4
3
  title: string;
5
- component: <TRow extends BaseEntityDto>(props: import('./types').ActionsContainerPropsType<TRow>) => import("react/jsx-runtime").JSX.Element;
4
+ component: <TRow extends import('../../lib').BaseEntityDto>(props: import('./types').ActionsContainerPropsType<TRow>) => import("react/jsx-runtime").JSX.Element;
6
5
  tags: string[];
7
6
  args: {
8
7
  actions: {
@@ -4,6 +4,8 @@ import { ReactNode } from 'react';
4
4
  export type ActionsContainerPropsType<TRow extends BaseEntityDto> = {
5
5
  actions: ActionPropsType<TRow>[];
6
6
  className?: string;
7
+ itemClassName?: string;
8
+ actionClassName?: string;
7
9
  showActionTexts?: boolean;
8
10
  showTooltips?: boolean;
9
11
  };
@@ -11,4 +13,5 @@ export interface ActionPropsType<TRow extends BaseEntityDto> extends ActionType<
11
13
  children?: ReactNode;
12
14
  showText?: boolean;
13
15
  showTooltips?: boolean;
16
+ className?: string;
14
17
  }
@@ -1,2 +1,6 @@
1
- import { IconButtonPropsType } from './types';
2
- export declare const IconButton: (props: IconButtonPropsType) => import("react/jsx-runtime").JSX.Element;
1
+ import { IconButtonPropsType } from '@sito/dashboard';
2
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
+ export type IconButtonPropsLocalType = Omit<IconButtonPropsType, "icon"> & {
4
+ icon: IconDefinition;
5
+ };
6
+ export declare const AppIconButton: ({ icon, ...rest }: IconButtonPropsLocalType) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,4 @@
1
+ export { Button } from '@sito/dashboard';
2
+ export type { ButtonBaseProps, ButtonPropsType } from '@sito/dashboard';
1
3
  export * from './IconButton';
2
- export * from './Button';
3
4
  export * from './ToTop';
@@ -1,18 +1,2 @@
1
- type DialogActionsProps = {
2
- primaryText: string;
3
- cancelText: string;
4
- onPrimaryClick?: () => void;
5
- onCancel: () => void;
6
- isLoading?: boolean;
7
- disabled?: boolean;
8
- primaryType?: "button" | "submit";
9
- containerClassName?: string;
10
- primaryClassName?: string;
11
- alignEnd?: boolean;
12
- primaryName?: string;
13
- primaryAriaLabel?: string;
14
- cancelName?: string;
15
- cancelAriaLabel?: string;
16
- };
1
+ import { DialogActionsProps } from './types';
17
2
  export declare const DialogActions: (props: DialogActionsProps) => import("react/jsx-runtime").JSX.Element;
18
- export {};
@@ -1,3 +1,3 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { FormDialogPropsType } from './types';
3
- export declare const FormDialog: <TInput extends FieldValues, TError extends Error>(props: FormDialogPropsType<TInput, TError>) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const FormDialog: <TInput extends FieldValues>(props: FormDialogPropsType<TInput>) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import { StoryObj } from '@storybook/react';
2
2
  import { FieldValues } from 'react-hook-form';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: <TInput extends FieldValues, TError extends Error>(props: import('./types').FormDialogPropsType<TInput, TError>) => import("react/jsx-runtime").JSX.Element;
5
+ component: <TInput extends FieldValues>(props: import('./types').FormDialogPropsType<TInput>) => import("react/jsx-runtime").JSX.Element;
6
6
  tags: string[];
7
7
  args: {
8
8
  title: string;
@@ -2,5 +2,5 @@ type ErrorProps = {
2
2
  message?: string | null;
3
3
  className?: string;
4
4
  };
5
- export declare function Error(props: ErrorProps): import("react/jsx-runtime").JSX.Element | null;
5
+ export declare function Error(props: ErrorProps): import("react/jsx-runtime").JSX.Element;
6
6
  export {};
@@ -14,5 +14,21 @@ export interface ConfirmationDialogPropsType extends DialogPropsType {
14
14
  handleSubmit: () => void;
15
15
  isLoading?: boolean;
16
16
  }
17
- export interface FormDialogPropsType<TFormType extends FieldValues, TError extends Error = Error> extends DialogPropsType, Omit<FormContainerPropsType<TFormType, TError>, "children"> {
17
+ export interface FormDialogPropsType<TFormType extends FieldValues> extends DialogPropsType, Omit<FormContainerPropsType<TFormType>, "children"> {
18
18
  }
19
+ export type DialogActionsProps = {
20
+ primaryText: string;
21
+ cancelText: string;
22
+ onPrimaryClick?: () => void;
23
+ onCancel: () => void;
24
+ isLoading?: boolean;
25
+ disabled?: boolean;
26
+ primaryType?: "button" | "submit";
27
+ containerClassName?: string;
28
+ primaryClassName?: string;
29
+ alignEnd?: boolean;
30
+ primaryName?: string;
31
+ primaryAriaLabel?: string;
32
+ cancelName?: string;
33
+ cancelAriaLabel?: string;
34
+ };
@@ -1,7 +1,8 @@
1
1
  import { DetailedHTMLProps, HTMLAttributes } from 'react';
2
2
  import { FontAwesomeIconProps } from '@fortawesome/react-fontawesome';
3
- import { ActionType, BaseDto } from '@sito/dashboard';
4
- export type EmptyPropsType<TRow extends BaseDto> = {
3
+ import { ActionType } from '@sito/dashboard';
4
+ import { BaseEntityDto } from '../../lib';
5
+ export type EmptyPropsType<TRow extends BaseEntityDto> = {
5
6
  message?: string;
6
7
  messageProps?: DetailedHTMLProps<HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>;
7
8
  action?: ActionType<TRow>;
@@ -1,4 +1,4 @@
1
1
  export type ErrorPropsType = {
2
- error: any;
3
- resetErrorBoundary?: (...args: any[]) => void;
2
+ error: Error | null | undefined;
3
+ resetErrorBoundary?: () => void;
4
4
  };
@@ -1,3 +1,3 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { FormContainerPropsType } from './types';
3
- export declare const FormContainer: <TInput extends FieldValues, TError extends Error>(props: FormContainerPropsType<TInput, TError>) => import("react/jsx-runtime").JSX.Element;
3
+ export declare const FormContainer: <TInput extends FieldValues>(props: FormContainerPropsType<TInput>) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ import { DetailedHTMLProps, ReactNode, TextareaHTMLAttributes } from 'react';
3
3
  import { Control, FieldValues, SubmitHandler, UseFormGetValues, UseFormHandleSubmit, UseFormReset, UseFormSetError, UseFormSetValue } from 'react-hook-form';
4
4
  export interface ParagraphInputPropsType extends Pick<TextInputPropsType, "label" | "state" | "containerClassName" | "inputClassName" | "labelClassName" | "helperText" | "helperTextClassName">, DetailedHTMLProps<TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement> {
5
5
  }
6
- export type FormContainerPropsType<TFormType extends FieldValues, TError extends Error = Error> = {
6
+ export type FormContainerPropsType<TFormType extends FieldValues> = {
7
7
  children: ReactNode;
8
8
  control?: Control<TFormType>;
9
9
  getValues?: UseFormGetValues<TFormType>;
@@ -12,9 +12,7 @@ export type FormContainerPropsType<TFormType extends FieldValues, TError extends
12
12
  setError?: UseFormSetError<TFormType>;
13
13
  handleSubmit: UseFormHandleSubmit<TFormType>;
14
14
  onSubmit: SubmitHandler<TFormType>;
15
- parseFormError?: (error: TError) => string[];
16
- releaseFormError?: () => void;
17
15
  buttonEnd?: boolean;
18
16
  isLoading?: boolean;
19
17
  };
20
- export type FormPropsType<TFormType extends FieldValues, TError extends Error = Error> = Omit<FormContainerPropsType<TFormType, TError>, "children">;
18
+ export type FormPropsType<TFormType extends FieldValues> = Omit<FormContainerPropsType<TFormType>, "children">;
@@ -1 +1,2 @@
1
- export declare function SplashScreen(): import("react/jsx-runtime").JSX.Element;
1
+ import { LoadingPropsType } from './types';
2
+ export declare function SplashScreen(props: LoadingPropsType): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  export type LoadingPropsType = {
2
2
  color?: string;
3
- size?: string;
3
+ size?: number;
4
4
  className?: string;
5
5
  containerClassName?: string;
6
6
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,6 @@
1
- import { IconButtonPropsType } from '../Buttons/types';
1
+ import { IconButtonPropsLocalType } from '../Buttons/IconButton';
2
2
  export type NavbarPropsType = {
3
- menuButtonProps?: IconButtonPropsType;
3
+ menuButtonProps?: IconButtonPropsLocalType;
4
4
  openDrawer: () => void;
5
5
  showClock?: boolean;
6
6
  showSearch?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
- import { ActionType } from '@sito/dashboard';
2
+ import { ActionType, IconButtonPropsType } from '@sito/dashboard';
3
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
4
  import { BaseEntityDto } from '../../lib';
4
- import { IconButtonPropsType } from '../Buttons/types';
5
5
  export type PagePropsType<TRow extends BaseEntityDto> = {
6
6
  title?: string;
7
7
  children: ReactNode;
@@ -13,7 +13,8 @@ export type PagePropsType<TRow extends BaseEntityDto> = {
13
13
  showBackButton?: boolean;
14
14
  queryKey?: string[];
15
15
  };
16
- export interface PageAddOptions<TRow extends BaseEntityDto> extends Partial<ActionType<TRow>>, Partial<Omit<IconButtonPropsType, "icon" | "onClick">> {
16
+ export interface PageAddOptions<TRow extends BaseEntityDto> extends Partial<Omit<ActionType<TRow>, "icon">>, Partial<Omit<IconButtonPropsType, "icon" | "onClick">> {
17
+ icon?: IconDefinition;
17
18
  }
18
19
  export type PageHeaderPropsType<TRow extends BaseEntityDto> = {
19
20
  title?: string;
@@ -13,5 +13,4 @@ export * from './TabsLayout';
13
13
  export * from './Onboarding';
14
14
  export * from './Buttons';
15
15
  export * from './Empty';
16
- export * from './Dropdown';
17
16
  export * from './types';
@@ -1 +1 @@
1
- var vs=Object.defineProperty;var Cs=(e,t,s)=>t in e?vs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ue=(e,t,s)=>Cs(e,typeof t!="symbol"?t+"":t,s);var Vr=require("./main.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sito/dashboard"),u=require("react/jsx-runtime"),h=require("react"),H=require("@fortawesome/free-solid-svg-icons"),ie=require("@fortawesome/react-fontawesome"),Pt=require("react-dom"),Ss=require("@emotion/css"),we=require("@tanstack/react-query"),ks=require("@fortawesome/free-regular-svg-icons");function et(e){const{id:t,icon:s,tooltip:n,onClick:i,children:r,hidden:c=!1,disabled:a=!1,showText:f=!1,showTooltips:y=!0}=e;return c?null:u.jsxs("button",{id:t,className:`action ${f?"text-action":"icon-action"}`,disabled:a,onClick:()=>i(),"aria-disabled":a,"data-tooltip-id":"tooltip","data-tooltip-content":y?n:"",children:[s," ",f&&n,r]})}function tt(e){const{actions:t=[],className:s="",showTooltips:n=!0,showActionTexts:i=!1}=e;return u.jsx("ul",{className:`actions-container ${s}`,children:t==null?void 0:t.map(r=>u.jsx("li",{children:u.jsx(et,{showTooltips:n,showText:i,...r,children:r.children})},r.id))})}const Mt=e=>{const{children:t,open:s,onClose:n}=e,i=h.useRef(null),r=h.useCallback(a=>{const f=i.current;!s||!f||f.contains(a.target)||n()},[s,n]),c=h.useCallback(a=>{s&&a.key==="Escape"&&n()},[s,n]);return h.useEffect(()=>{if(s)return setTimeout(()=>{var a;return(a=i.current)==null?void 0:a.focus()},0),document.addEventListener("mousedown",r),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("keydown",c)}},[s,r,c]),u.jsx("div",{ref:i,role:"menu","aria-hidden":!s,tabIndex:-1,className:`dropdown-main ${s?"opened":"closed"}`,onClick:a=>a.stopPropagation(),children:t})},me=e=>{const{children:t,icon:s,type:n="button",className:i="",variant:r="text",color:c="default",iconClassName:a="",...f}=e;return u.jsxs("button",{type:n,className:`icon-button ${i} ${r} ${c}`,...f,children:[u.jsx(ie.FontAwesomeIcon,{icon:s,className:`!w-auto ${a}`}),t]})},ge=e=>{const{children:t,type:s="button",variant:n="text",color:i="default",className:r="",...c}=e;return u.jsx("button",{type:s,className:`button ${n} ${i} ${r}`,...c,children:t})};var ze,St;function As(){if(St)return ze;St=1;const e=(a,f="local",y=void 0)=>{if(f==="local"){if(localStorage.getItem(a)!==void 0&&localStorage.getItem(a)!=="undefined"&&localStorage.getItem(a)!==null)return y===void 0||y!==void 0&&localStorage.getItem(a)===y}else if(f==="session"&&sessionStorage.getItem(a)!==void 0&&sessionStorage.getItem(a)!=="undefined"&&sessionStorage.getItem(a)!==null)return y===void 0||y!==void 0&&sessionStorage.getItem(a)===y;return!1},t=a=>{const f={};return a.substring(1).split("&").forEach(p=>{const[g,m]=p.split("=");f[g]=m}),f},s=(a="")=>{if(r(a)&&a.length)return r(a);{let f=navigator.language||navigator.userLanguage;if(f.indexOf("en")<0&&f.indexOf("es")<0&&(f="en-US"),f=f.split("-")[0],f)return a.length&&i(a,730,f),f}return"en"},n=(a=0,f=0,y=window,p="smooth")=>y.scroll({top:a,left:f,behavior:p}),i=(a,f,y,p="/",g="Lax")=>{var m=new Date;m.setTime(m.getTime()+f*24*60*60*1e3);const w="; expires="+m.toUTCString();document.cookie=`${a}=${y||""}${w};path=${p};SameSite=${g}`},r=a=>{const f=`${a}=`,p=decodeURIComponent(document.cookie).split(";");for(let g=0;g<p.length;g+=1){let m=p[g];for(;m.charAt(0)===" ";)m=m.substring(1);if(m.indexOf(f)===0)return m.substring(f.length,m.length)}return""};return ze={getCookie:r,createCookie:i,deleteCookie:a=>document.cookie=`${a}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,getUserLanguage:s,scrollTo:n,parseQueries:t,validation:e},ze}var _s=As();function Ns(){const{t:e,language:t}=_.useTranslation();return{timeAge:h.useCallback(n=>{const r=new Date-n,c=Math.floor(r/(1e3*60)),a=Math.floor(c/60),f=t==="es",y=e("_accessibility:labels.ago"),p=e("_accessibility:labels.minute"),g=e("_accessibility:labels.minutes"),m=e("_accessibility:labels.hour"),w=e("_accessibility:labels.hours"),k=e("_accessibility:labels.yesterday"),b=e("_accessibility:labels.justNow");return r<1e3*60?b:c<60?`${f?y:""} ${c} ${c===1?p:g} ${f?"":y}`:a<24?`${f?y:""} ${a} ${a===1?m:w} ${f?"":y}`:a<48?k:n.toLocaleDateString(navigator.language||"es-ES",{day:"2-digit",month:"2-digit",year:"numeric"})},[e,t])}}var R=(e=>(e[e.success=0]="success",e[e.error=1]="error",e[e.warning=2]="warning",e[e.info=3]="info",e))(R||{}),te=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE",e))(te||{});async function Ae(e,t="GET",s,n){const i={...s?{"Content-Type":"application/json"}:{},...n};try{const r=await fetch(e,{method:t,headers:i,...s?{body:JSON.stringify(s)}:{}}),c=await r.text();let a=null;try{a=c?JSON.parse(c):null}catch{a=null}if(!r.ok){const f=typeof a=="object"&&a!==null?a.message??a.error??c:c||r.statusText;return{data:null,status:r.status,error:{status:r.status,message:f||"Unknown error occurred"}}}return{data:r.status!==204&&a!==null?a:null,status:r.status,error:null}}catch(r){return{data:null,status:500,error:{status:500,message:r instanceof Error?r.message:"Unknown error occurred"}}}}function It(e,t){if(t){const s=Object.entries(t).filter(([,n])=>n!=null).map(([n,i])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(i))}`).join("&");return s?`${e}?${s}`:e}return e}const st=(e,t,s)=>{const n=[];if(t){const{sortingBy:i,sortingOrder:r,currentPage:c,pageSize:a}=t;n.push(`sort=${String(i)}`,`order=${r}`,`page=${c}`,`pageSize=${a}`)}if(s){const i=Object.entries(s).filter(([,r])=>r!=null&&r!=="").flatMap(([r,c])=>{if(Array.isArray(c))return c.map(a=>`${r}==${encodeURIComponent((a==null?void 0:a.id)??a)}`);if(typeof c=="object"&&c!==null&&"start"in c&&"end"in c){const a=[];return c.start!=null&&c.start!==""&&a.push(`${r}>=${encodeURIComponent(c.start)}`),c.end!=null&&c.end!==""&&a.push(`${r}<=${encodeURIComponent(c.end)}`),a}return typeof c=="object"&&c!==null?`${r}==${encodeURIComponent(c.id??"")}`:`${r}==${encodeURIComponent(c)}`});i.length>0&&n.push(`filters=${i.join(",")}`)}return n.length?`${e}?${n.join("&")}`:e};class rt{constructor(t,s="user",n=!0,i){ue(this,"baseUrl");ue(this,"userKey");ue(this,"secured");ue(this,"tokenAcquirer");this.baseUrl=t,this.secured=n,this.userKey=s,this.tokenAcquirer=i??this.defaultTokenAcquirer}defaultTokenAcquirer(t){if(t)return{credentials:"include"};const s=nt(this.userKey);if(s&&s.length)return{Authorization:`Bearer ${s}`}}async doQuery(t,s=te.GET,n,i){const r=this.secured?this.tokenAcquirer():{},{data:c,status:a,error:f}=await Ae(`${this.baseUrl}${t}`,s,n,{...r,...i??{}});if(f||a<200||a>=300)throw f??{status:a,message:String(a)};return c}async get(t,s,n){const i=st(t,s,n),r=this.secured?this.tokenAcquirer():void 0,{data:c,error:a}=await Ae(`${this.baseUrl}${i}`,te.GET,null,r);if(a)throw a;return c}async patch(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.PATCH,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async delete(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.DELETE,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async post(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.POST,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}}class Ot{constructor(t,s="user"){ue(this,"api");this.api=new rt(t,s,!1)}async login(t){const s="auth/sign-in",n=t;return await this.api.doQuery(s,te.POST,n)}async logout(){return await this.api.doQuery("auth/sign-out",te.POST)}async register(t){return await this.api.doQuery("auth/sign-up",te.POST,t)}async getSession(){return await this.api.doQuery("auth/session",te.GET,null,{...this.api.defaultTokenAcquirer()})}}class Es{constructor(t,s){ue(this,"auth");this.auth=new Ot(t,s)}get Auth(){return this.auth}}class Fs{constructor(t,s,n="user",i=!0){ue(this,"table");ue(this,"secured");ue(this,"api");this.table=t,this.secured=i,this.api=new rt(s,n,i)}async insert(t){return await this.api.post(`${this.table}`,t)}async insertMany(t){return await this.api.doQuery(`${this.table}/batch`,te.POST,t)}async update(t){return await this.api.patch(`${this.table}/${t.id}`,t)}async get(t,s){return await this.api.get(`${this.table}`,t,s)}async export(t){const s=st(`${this.table}/export`,void 0,t);return await this.api.doQuery(s,te.GET,void 0)}async import(t){return await this.api.doQuery(`${this.table}/import`,te.POST,t)}async commonGet(t){return await this.api.doQuery(It(`${this.table}/common`,t),te.GET)}async getById(t){return await this.api.doQuery(`${this.table}/${t}`)}async softDelete(t){return await this.api.delete(`${this.table}`,t)}async restore(t){return await this.api.patch(`${this.table}/restore`,t)}}function js(e){return Object.keys(e).filter(t=>isNaN(Number(t))).map(t=>({key:t,value:e[t]}))}const nt=(e,t="")=>{const s=localStorage.getItem(e)??void 0;if(s&&t.length)switch(t){case"object":return JSON.parse(s);case"number":return Number(s);case"boolean":return s==="true"||s==="1";default:return s}return s},Je=(e,t)=>localStorage.setItem(e,typeof t=="object"?JSON.stringify(t):t),Ye=e=>localStorage.removeItem(e);function Xe(e){const t=e?new Date(e):new Date,s={weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return t.toLocaleString(navigator.language||"es-ES",s)}function Ut(e){const t=e?new Date(e):new Date,s=String(t.getDate()).padStart(2,"0"),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getFullYear()).slice(-2),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}/${n}/${i} ${r}:${c}`}function Ts(e){const t=e?new Date(e):new Date,s=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}-${n}-${i}T${r}:${c}`}const Rt=()=>{var s;const e=navigator,t=((s=e==null?void 0:e.userAgentData)==null?void 0:s.platform)||(e==null?void 0:e.platform)||"";return/Mac|iPhone|iPod|iPad/i.test(t)};function je(e){if(!e||typeof e!="object")return!1;const t=e;return Array.isArray(t.errors)&&t.errors.every(s=>Array.isArray(s)&&s.length===2&&typeof s[0]=="string")}function Te(e){if(!e||typeof e!="object")return!1;const t=e;return typeof(t==null?void 0:t.status)=="number"&&typeof(t==null?void 0:t.message)=="string"}function $s(e,t){return e!=null&&e.errors?e.errors.map(([s,n])=>t(s,n)):[]}const qt=h.createContext({});function Ds(e){const{children:t}=e,[s,n]=h.useReducer((y,p)=>{const{type:g,items:m,index:w}=p;switch(g){case"set":return(m==null?void 0:m.map((k,b)=>({...k,id:b})))??[];case"remove":return w!==void 0?y.filter((k,b)=>b!==w):[]}return y},[],()=>[]),i=y=>n({type:"set",items:[{...y,type:R.error}]}),r=y=>n({type:"set",items:[{...y}]}),c=y=>n({type:"set",items:y}),a=y=>n({type:"set",items:[{...y,type:R.success}]}),f=y=>n({type:"remove",index:y});return u.jsx(qt.Provider,{value:{notification:s,removeNotification:f,showErrorNotification:i,showNotification:r,showSuccessNotification:a,showStackNotifications:c},children:t})}const ve=()=>{const e=h.useContext(qt);if(e===void 0)throw new Error("NotificationContext must be used within a Provider");return e},he=new we.QueryClient({defaultOptions:{queries:{refetchInterval:!1,refetchOnMount:!0,refetchOnReconnect:!1,retry:!1,retryOnMount:!0,refetchOnWindowFocus:!1}}}),Bt=h.createContext(void 0),Ls=e=>{const{children:t,manager:s}=e;return u.jsx(Bt.Provider,{value:{client:s},children:u.jsx(we.QueryClientProvider,{client:he,children:t})})},Ht=()=>{const e=h.useContext(Bt);if(!e)throw new Error("managerContext must be used within a Provider");return e.client},Qt=h.createContext(void 0),Vs=e=>{const{children:t,guestMode:s="guest_mode",user:n="user"}=e,i=Ht(),[r,c]=h.useState({}),a=h.useCallback(()=>!!nt(s,"boolean")&&r.token===void 0,[r.token,s]),f=h.useCallback(w=>{Je(s,w)},[s]),y=h.useCallback(w=>{w&&(c(w),Ye(s),Je(n,w.token))},[s,n]),p=h.useCallback(async()=>{try{await i.Auth.logout()}catch(w){console.error(w)}c({}),Ye(n)},[i.Auth,n]),g=h.useCallback(async()=>{try{const w=await i.Auth.getSession();y(w)}catch(w){console.error(w),p()}},[y,p,i.Auth]),m={account:r,logUser:y,logoutUser:p,logUserFromLocal:g,isInGuestMode:a,setGuestMode:f};return u.jsx(Qt.Provider,{value:m,children:t})},it=()=>{const e=h.useContext(Qt);if(!e)throw new Error("authContext must be used within a Provider");return e},Kt=h.createContext({}),Ps=e=>{const{children:t,location:s,navigate:n,linkComponent:i,searchComponent:r}=e;return u.jsx(Kt.Provider,{value:{location:s,navigate:n,linkComponent:i,searchComponent:r},children:t})},$e=()=>{const e=h.useContext(Kt);if(e===void 0||Object.keys(e).length===0)throw new Error("Config provider has not been set. This step is required and cannot be skipped.");return e},at=h.createContext({}),Ms=e=>{const{children:t}=e,[s,n]=h.useState({}),i=h.useCallback((f,y)=>n(p=>({...p,[f]:[...p[f]??[],y]})),[]),r=h.useCallback((f,y)=>n(p=>({...p,[f]:(p[f]??[]).filter((g,m)=>m!==y)})),[]),c=h.useCallback(f=>{n(f?y=>({...y,[f]:[]}):{})},[]),a=h.useMemo(()=>({dynamicItems:s,addChildItem:i,removeChildItem:r,clearDynamicItems:c}),[s,c,r,i]);return u.jsx(at.Provider,{value:a,children:t})},Wt=()=>h.useContext(at),ot=e=>{const{showSuccessNotification:t}=ve(),{mutationFn:s,onError:n,onSuccess:i,onSuccessMessage:r}=e,[c,a]=h.useState([]),{open:f,handleClose:y,handleOpen:p}=mt(),g=()=>{y(),a([])},m=async k=>{a(k),p()},w=we.useMutation({mutationFn:()=>s(Array.isArray(c)?c:[c]),onError:k=>{console.error(k),n&&n(k),g()},onSuccess:async k=>{i&&i(k),t({message:r}),g()}});return{open:f,onClick:m,close:g,dialogFn:w,isLoading:w.isPending}};var De=e=>e.type==="checkbox",Se=e=>e instanceof Date,ee=e=>e==null;const zt=e=>typeof e=="object";var Q=e=>!ee(e)&&!Array.isArray(e)&&zt(e)&&!Se(e),Is=e=>Q(e)&&e.target?De(e.target)?e.target.checked:e.target.value:e,Os=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Us=(e,t)=>e.has(Os(t)),Rs=e=>{const t=e.constructor&&e.constructor.prototype;return Q(t)&&t.hasOwnProperty("isPrototypeOf")},ct=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Y(e){let t;const s=Array.isArray(e),n=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(ct&&(e instanceof Blob||n))&&(s||Q(e)))if(t=s?[]:{},!s&&!Rs(e))t=e;else for(const i in e)e.hasOwnProperty(i)&&(t[i]=Y(e[i]));else return e;return t}var Ue=e=>/^\w*$/.test(e),W=e=>e===void 0,lt=e=>Array.isArray(e)?e.filter(Boolean):[],ut=e=>lt(e.replace(/["|']|\]/g,"").split(/\.|\[/)),S=(e,t,s)=>{if(!t||!Q(e))return s;const n=(Ue(t)?[t]:ut(t)).reduce((i,r)=>ee(i)?i:i[r],e);return W(n)||n===e?W(e[t])?s:e[t]:n},de=e=>typeof e=="boolean",O=(e,t,s)=>{let n=-1;const i=Ue(t)?[t]:ut(t),r=i.length,c=r-1;for(;++n<r;){const a=i[n];let f=s;if(n!==c){const y=e[a];f=Q(y)||Array.isArray(y)?y:isNaN(+i[n+1])?{}:[]}if(a==="__proto__"||a==="constructor"||a==="prototype")return;e[a]=f,e=e[a]}};const kt={BLUR:"blur",FOCUS_OUT:"focusout"},ce={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ye={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},qs=h.createContext(null);qs.displayName="HookFormContext";var Bs=(e,t,s,n=!0)=>{const i={defaultValues:t._defaultValues};for(const r in e)Object.defineProperty(i,r,{get:()=>{const c=r;return t._proxyFormState[c]!==ce.all&&(t._proxyFormState[c]=!n||ce.all),e[c]}});return i};const Hs=typeof window<"u"?h.useLayoutEffect:h.useEffect;var fe=e=>typeof e=="string",Qs=(e,t,s,n,i)=>fe(e)?(n&&t.watch.add(e),S(s,e,i)):Array.isArray(e)?e.map(r=>(n&&t.watch.add(r),S(s,r))):(n&&(t.watchAll=!0),s),Ze=e=>ee(e)||!zt(e);function xe(e,t,s=new WeakSet){if(Ze(e)||Ze(t))return e===t;if(Se(e)&&Se(t))return e.getTime()===t.getTime();const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;if(s.has(e)||s.has(t))return!0;s.add(e),s.add(t);for(const r of n){const c=e[r];if(!i.includes(r))return!1;if(r!=="ref"){const a=t[r];if(Se(c)&&Se(a)||Q(c)&&Q(a)||Array.isArray(c)&&Array.isArray(a)?!xe(c,a,s):c!==a)return!1}}return!0}var Ks=(e,t,s,n,i)=>t?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[n]:i||!0}}:{},Ee=e=>Array.isArray(e)?e:[e],At=()=>{let e=[];return{get observers(){return e},next:i=>{for(const r of e)r.next&&r.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(r=>r!==i)}}),unsubscribe:()=>{e=[]}}},se=e=>Q(e)&&!Object.keys(e).length,dt=e=>e.type==="file",le=e=>typeof e=="function",Me=e=>{if(!ct)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Gt=e=>e.type==="select-multiple",ft=e=>e.type==="radio",Ws=e=>ft(e)||De(e),Ge=e=>Me(e)&&e.isConnected;function zs(e,t){const s=t.slice(0,-1).length;let n=0;for(;n<s;)e=W(e)?n++:e[t[n++]];return e}function Gs(e){for(const t in e)if(e.hasOwnProperty(t)&&!W(e[t]))return!1;return!0}function K(e,t){const s=Array.isArray(t)?t:Ue(t)?[t]:ut(t),n=s.length===1?e:zs(e,s),i=s.length-1,r=s[i];return n&&delete n[r],i!==0&&(Q(n)&&se(n)||Array.isArray(n)&&Gs(n))&&K(e,s.slice(0,-1)),e}var Jt=e=>{for(const t in e)if(le(e[t]))return!0;return!1};function Ie(e,t={}){const s=Array.isArray(e);if(Q(e)||s)for(const n in e)Array.isArray(e[n])||Q(e[n])&&!Jt(e[n])?(t[n]=Array.isArray(e[n])?[]:{},Ie(e[n],t[n])):ee(e[n])||(t[n]=!0);return t}function Yt(e,t,s){const n=Array.isArray(e);if(Q(e)||n)for(const i in e)Array.isArray(e[i])||Q(e[i])&&!Jt(e[i])?W(t)||Ze(s[i])?s[i]=Array.isArray(e[i])?Ie(e[i],[]):{...Ie(e[i])}:Yt(e[i],ee(t)?{}:t[i],s[i]):s[i]=!xe(e[i],t[i]);return s}var _e=(e,t)=>Yt(e,t,Ie(t));const _t={value:!1,isValid:!1},Nt={value:!0,isValid:!0};var Xt=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!W(e[0].attributes.value)?W(e[0].value)||e[0].value===""?Nt:{value:e[0].value,isValid:!0}:Nt:_t}return _t},Zt=(e,{valueAsNumber:t,valueAsDate:s,setValueAs:n})=>W(e)?e:t?e===""?NaN:e&&+e:s&&fe(e)?new Date(e):n?n(e):e;const Et={isValid:!1,value:null};var es=e=>Array.isArray(e)?e.reduce((t,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:t,Et):Et;function Ft(e){const t=e.ref;return dt(t)?t.files:ft(t)?es(e.refs).value:Gt(t)?[...t.selectedOptions].map(({value:s})=>s):De(t)?Xt(e.refs).value:Zt(W(t.value)?e.ref.value:t.value,e)}var Js=(e,t,s,n)=>{const i={};for(const r of e){const c=S(t,r);c&&O(i,r,c._f)}return{criteriaMode:s,names:[...e],fields:i,shouldUseNativeValidation:n}},Oe=e=>e instanceof RegExp,Ne=e=>W(e)?e:Oe(e)?e.source:Q(e)?Oe(e.value)?e.value.source:e.value:e,jt=e=>({isOnSubmit:!e||e===ce.onSubmit,isOnBlur:e===ce.onBlur,isOnChange:e===ce.onChange,isOnAll:e===ce.all,isOnTouch:e===ce.onTouched});const Tt="AsyncFunction";var Ys=e=>!!e&&!!e.validate&&!!(le(e.validate)&&e.validate.constructor.name===Tt||Q(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===Tt)),Xs=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),$t=(e,t,s)=>!s&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(n)&&/^\.\w+/.test(e.slice(n.length))));const Fe=(e,t,s,n)=>{for(const i of s||Object.keys(e)){const r=S(e,i);if(r){const{_f:c,...a}=r;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],i)&&!n)return!0;if(c.ref&&t(c.ref,c.name)&&!n)return!0;if(Fe(a,t))break}else if(Q(a)&&Fe(a,t))break}}};function Dt(e,t,s){const n=S(e,s);if(n||Ue(s))return{error:n,name:s};const i=s.split(".");for(;i.length;){const r=i.join("."),c=S(t,r),a=S(e,r);if(c&&!Array.isArray(c)&&s!==r)return{name:s};if(a&&a.type)return{name:r,error:a};if(a&&a.root&&a.root.type)return{name:`${r}.root`,error:a.root};i.pop()}return{name:s}}var Zs=(e,t,s,n)=>{s(e);const{name:i,...r}=e;return se(r)||Object.keys(r).length>=Object.keys(t).length||Object.keys(r).find(c=>t[c]===(!n||ce.all))},er=(e,t,s)=>!e||!t||e===t||Ee(e).some(n=>n&&(s?n===t:n.startsWith(t)||t.startsWith(n))),tr=(e,t,s,n,i)=>i.isOnAll?!1:!s&&i.isOnTouch?!(t||e):(s?n.isOnBlur:i.isOnBlur)?!e:(s?n.isOnChange:i.isOnChange)?e:!0,sr=(e,t)=>!lt(S(e,t)).length&&K(e,t),rr=(e,t,s)=>{const n=Ee(S(e,s));return O(n,"root",t[s]),O(e,s,n),e},Pe=e=>fe(e);function Lt(e,t,s="validate"){if(Pe(e)||Array.isArray(e)&&e.every(Pe)||de(e)&&!e)return{type:s,message:Pe(e)?e:"",ref:t}}var ke=e=>Q(e)&&!Oe(e)?e:{value:e,message:""},Vt=async(e,t,s,n,i,r)=>{const{ref:c,refs:a,required:f,maxLength:y,minLength:p,min:g,max:m,pattern:w,validate:k,name:b,valueAsNumber:T,mount:z}=e._f,N=S(s,b);if(!z||t.has(b))return{};const q=a?a[0]:c,D=E=>{i&&q.reportValidity&&(q.setCustomValidity(de(E)?"":E||""),q.reportValidity())},j={},G=ft(c),L=De(c),ae=G||L,B=(T||dt(c))&&W(c.value)&&W(N)||Me(c)&&c.value===""||N===""||Array.isArray(N)&&!N.length,I=Ks.bind(null,b,n,j),M=(E,F,U,J=ye.maxLength,X=ye.minLength)=>{const V=E?F:U;j[b]={type:E?J:X,message:V,ref:c,...I(E?J:X,V)}};if(r?!Array.isArray(N)||!N.length:f&&(!ae&&(B||ee(N))||de(N)&&!N||L&&!Xt(a).isValid||G&&!es(a).isValid)){const{value:E,message:F}=Pe(f)?{value:!!f,message:f}:ke(f);if(E&&(j[b]={type:ye.required,message:F,ref:q,...I(ye.required,F)},!n))return D(F),j}if(!B&&(!ee(g)||!ee(m))){let E,F;const U=ke(m),J=ke(g);if(!ee(N)&&!isNaN(N)){const X=c.valueAsNumber||N&&+N;ee(U.value)||(E=X>U.value),ee(J.value)||(F=X<J.value)}else{const X=c.valueAsDate||new Date(N),V=oe=>new Date(new Date().toDateString()+" "+oe),Z=c.type=="time",re=c.type=="week";fe(U.value)&&N&&(E=Z?V(N)>V(U.value):re?N>U.value:X>new Date(U.value)),fe(J.value)&&N&&(F=Z?V(N)<V(J.value):re?N<J.value:X<new Date(J.value))}if((E||F)&&(M(!!E,U.message,J.message,ye.max,ye.min),!n))return D(j[b].message),j}if((y||p)&&!B&&(fe(N)||r&&Array.isArray(N))){const E=ke(y),F=ke(p),U=!ee(E.value)&&N.length>+E.value,J=!ee(F.value)&&N.length<+F.value;if((U||J)&&(M(U,E.message,F.message),!n))return D(j[b].message),j}if(w&&!B&&fe(N)){const{value:E,message:F}=ke(w);if(Oe(E)&&!N.match(E)&&(j[b]={type:ye.pattern,message:F,ref:c,...I(ye.pattern,F)},!n))return D(F),j}if(k){if(le(k)){const E=await k(N,s),F=Lt(E,q);if(F&&(j[b]={...F,...I(ye.validate,F.message)},!n))return D(F.message),j}else if(Q(k)){let E={};for(const F in k){if(!se(E)&&!n)break;const U=Lt(await k[F](N,s),q,F);U&&(E={...U,...I(F,U.message)},D(U.message),n&&(j[b]=E))}if(!se(E)&&(j[b]={ref:q,...E},!n))return j}}return D(!0),j};const nr={mode:ce.onSubmit,reValidateMode:ce.onChange,shouldFocusError:!0};function ir(e={}){let t={...nr,...e},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:le(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},n={},i=Q(t.defaultValues)||Q(t.values)?Y(t.defaultValues||t.values)||{}:{},r=t.shouldUnregister?{}:Y(i),c={action:!1,mount:!1,watch:!1},a={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},f,y=0;const p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let g={...p};const m={array:At(),state:At()},w=t.criteriaMode===ce.all,k=o=>l=>{clearTimeout(y),y=setTimeout(o,l)},b=async o=>{if(!t.disabled&&(p.isValid||g.isValid||o)){const l=t.resolver?se((await L()).errors):await B(n,!0);l!==s.isValid&&m.state.next({isValid:l})}},T=(o,l)=>{!t.disabled&&(p.isValidating||p.validatingFields||g.isValidating||g.validatingFields)&&((o||Array.from(a.mount)).forEach(d=>{d&&(l?O(s.validatingFields,d,l):K(s.validatingFields,d))}),m.state.next({validatingFields:s.validatingFields,isValidating:!se(s.validatingFields)}))},z=(o,l=[],d,C,v=!0,x=!0)=>{if(C&&d&&!t.disabled){if(c.action=!0,x&&Array.isArray(S(n,o))){const A=d(S(n,o),C.argA,C.argB);v&&O(n,o,A)}if(x&&Array.isArray(S(s.errors,o))){const A=d(S(s.errors,o),C.argA,C.argB);v&&O(s.errors,o,A),sr(s.errors,o)}if((p.touchedFields||g.touchedFields)&&x&&Array.isArray(S(s.touchedFields,o))){const A=d(S(s.touchedFields,o),C.argA,C.argB);v&&O(s.touchedFields,o,A)}(p.dirtyFields||g.dirtyFields)&&(s.dirtyFields=_e(i,r)),m.state.next({name:o,isDirty:M(o,l),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else O(r,o,l)},N=(o,l)=>{O(s.errors,o,l),m.state.next({errors:s.errors})},q=o=>{s.errors=o,m.state.next({errors:s.errors,isValid:!1})},D=(o,l,d,C)=>{const v=S(n,o);if(v){const x=S(r,o,W(d)?S(i,o):d);W(x)||C&&C.defaultChecked||l?O(r,o,l?x:Ft(v._f)):U(o,x),c.mount&&b()}},j=(o,l,d,C,v)=>{let x=!1,A=!1;const $={name:o};if(!t.disabled){if(!d||C){(p.isDirty||g.isDirty)&&(A=s.isDirty,s.isDirty=$.isDirty=M(),x=A!==$.isDirty);const P=xe(S(i,o),l);A=!!S(s.dirtyFields,o),P?K(s.dirtyFields,o):O(s.dirtyFields,o,!0),$.dirtyFields=s.dirtyFields,x=x||(p.dirtyFields||g.dirtyFields)&&A!==!P}if(d){const P=S(s.touchedFields,o);P||(O(s.touchedFields,o,d),$.touchedFields=s.touchedFields,x=x||(p.touchedFields||g.touchedFields)&&P!==d)}x&&v&&m.state.next($)}return x?$:{}},G=(o,l,d,C)=>{const v=S(s.errors,o),x=(p.isValid||g.isValid)&&de(l)&&s.isValid!==l;if(t.delayError&&d?(f=k(()=>N(o,d)),f(t.delayError)):(clearTimeout(y),f=null,d?O(s.errors,o,d):K(s.errors,o)),(d?!xe(v,d):v)||!se(C)||x){const A={...C,...x&&de(l)?{isValid:l}:{},errors:s.errors,name:o};s={...s,...A},m.state.next(A)}},L=async o=>{T(o,!0);const l=await t.resolver(r,t.context,Js(o||a.mount,n,t.criteriaMode,t.shouldUseNativeValidation));return T(o),l},ae=async o=>{const{errors:l}=await L(o);if(o)for(const d of o){const C=S(l,d);C?O(s.errors,d,C):K(s.errors,d)}else s.errors=l;return l},B=async(o,l,d={valid:!0})=>{for(const C in o){const v=o[C];if(v){const{_f:x,...A}=v;if(x){const $=a.array.has(x.name),P=v._f&&Ys(v._f);P&&p.validatingFields&&T([C],!0);const ne=await Vt(v,a.disabled,r,w,t.shouldUseNativeValidation&&!l,$);if(P&&p.validatingFields&&T([C]),ne[x.name]&&(d.valid=!1,l))break;!l&&(S(ne,x.name)?$?rr(s.errors,ne,x.name):O(s.errors,x.name,ne[x.name]):K(s.errors,x.name))}!se(A)&&await B(A,l,d)}}return d.valid},I=()=>{for(const o of a.unMount){const l=S(n,o);l&&(l._f.refs?l._f.refs.every(d=>!Ge(d)):!Ge(l._f.ref))&&Be(o)}a.unMount=new Set},M=(o,l)=>!t.disabled&&(o&&l&&O(r,o,l),!xe(oe(),i)),E=(o,l,d)=>Qs(o,a,{...c.mount?r:W(l)?i:fe(o)?{[o]:l}:l},d,l),F=o=>lt(S(c.mount?r:i,o,t.shouldUnregister?S(i,o,[]):[])),U=(o,l,d={})=>{const C=S(n,o);let v=l;if(C){const x=C._f;x&&(!x.disabled&&O(r,o,Zt(l,x)),v=Me(x.ref)&&ee(l)?"":l,Gt(x.ref)?[...x.ref.options].forEach(A=>A.selected=v.includes(A.value)):x.refs?De(x.ref)?x.refs.forEach(A=>{(!A.defaultChecked||!A.disabled)&&(Array.isArray(v)?A.checked=!!v.find($=>$===A.value):A.checked=v===A.value||!!v)}):x.refs.forEach(A=>A.checked=A.value===v):dt(x.ref)?x.ref.value="":(x.ref.value=v,x.ref.type||m.state.next({name:o,values:Y(r)})))}(d.shouldDirty||d.shouldTouch)&&j(o,v,d.shouldTouch,d.shouldDirty,!0),d.shouldValidate&&re(o)},J=(o,l,d)=>{for(const C in l){if(!l.hasOwnProperty(C))return;const v=l[C],x=o+"."+C,A=S(n,x);(a.array.has(o)||Q(v)||A&&!A._f)&&!Se(v)?J(x,v,d):U(x,v,d)}},X=(o,l,d={})=>{const C=S(n,o),v=a.array.has(o),x=Y(l);O(r,o,x),v?(m.array.next({name:o,values:Y(r)}),(p.isDirty||p.dirtyFields||g.isDirty||g.dirtyFields)&&d.shouldDirty&&m.state.next({name:o,dirtyFields:_e(i,r),isDirty:M(o,x)})):C&&!C._f&&!ee(x)?J(o,x,d):U(o,x,d),$t(o,a)&&m.state.next({...s,name:o}),m.state.next({name:c.mount?o:void 0,values:Y(r)})},V=async o=>{c.mount=!0;const l=o.target;let d=l.name,C=!0;const v=S(n,d),x=P=>{C=Number.isNaN(P)||Se(P)&&isNaN(P.getTime())||xe(P,S(r,d,P))},A=jt(t.mode),$=jt(t.reValidateMode);if(v){let P,ne;const Ve=l.type?Ft(v._f):Is(o),pe=o.type===kt.BLUR||o.type===kt.FOCUS_OUT,ps=!Xs(v._f)&&!t.resolver&&!S(s.errors,d)&&!v._f.deps||tr(pe,S(s.touchedFields,d),s.isSubmitted,$,A),Ke=$t(d,a,pe);O(r,d,Ve),pe?(v._f.onBlur&&v._f.onBlur(o),f&&f(0)):v._f.onChange&&v._f.onChange(o);const We=j(d,Ve,pe),xs=!se(We)||Ke;if(!pe&&m.state.next({name:d,type:o.type,values:Y(r)}),ps)return(p.isValid||g.isValid)&&(t.mode==="onBlur"?pe&&b():pe||b()),xs&&m.state.next({name:d,...Ke?{}:We});if(!pe&&Ke&&m.state.next({...s}),t.resolver){const{errors:vt}=await L([d]);if(x(Ve),C){const ws=Dt(s.errors,n,d),Ct=Dt(vt,n,ws.name||d);P=Ct.error,d=Ct.name,ne=se(vt)}}else T([d],!0),P=(await Vt(v,a.disabled,r,w,t.shouldUseNativeValidation))[d],T([d]),x(Ve),C&&(P?ne=!1:(p.isValid||g.isValid)&&(ne=await B(n,!0)));C&&(v._f.deps&&re(v._f.deps),G(d,ne,P,We))}},Z=(o,l)=>{if(S(s.errors,l)&&o.focus)return o.focus(),1},re=async(o,l={})=>{let d,C;const v=Ee(o);if(t.resolver){const x=await ae(W(o)?o:v);d=se(x),C=o?!v.some(A=>S(x,A)):d}else o?(C=(await Promise.all(v.map(async x=>{const A=S(n,x);return await B(A&&A._f?{[x]:A}:A)}))).every(Boolean),!(!C&&!s.isValid)&&b()):C=d=await B(n);return m.state.next({...!fe(o)||(p.isValid||g.isValid)&&d!==s.isValid?{}:{name:o},...t.resolver||!o?{isValid:d}:{},errors:s.errors}),l.shouldFocus&&!C&&Fe(n,Z,o?v:a.mount),C},oe=o=>{const l={...c.mount?r:i};return W(o)?l:fe(o)?S(l,o):o.map(d=>S(l,d))},Le=(o,l)=>({invalid:!!S((l||s).errors,o),isDirty:!!S((l||s).dirtyFields,o),error:S((l||s).errors,o),isValidating:!!S(s.validatingFields,o),isTouched:!!S((l||s).touchedFields,o)}),Ce=o=>{o&&Ee(o).forEach(l=>K(s.errors,l)),m.state.next({errors:o?s.errors:{}})},ht=(o,l,d)=>{const C=(S(n,o,{_f:{}})._f||{}).ref,v=S(s.errors,o)||{},{ref:x,message:A,type:$,...P}=v;O(s.errors,o,{...P,...l,ref:C}),m.state.next({name:o,errors:s.errors,isValid:!1}),d&&d.shouldFocus&&C&&C.focus&&C.focus()},fs=(o,l)=>le(o)?m.state.subscribe({next:d=>"values"in d&&o(E(void 0,l),d)}):E(o,l,!0),yt=o=>m.state.subscribe({next:l=>{er(o.name,l.name,o.exact)&&Zs(l,o.formState||p,bs,o.reRenderRoot)&&o.callback({values:{...r},...s,...l,defaultValues:i})}}).unsubscribe,ms=o=>(c.mount=!0,g={...g,...o.formState},yt({...o,formState:g})),Be=(o,l={})=>{for(const d of o?Ee(o):a.mount)a.mount.delete(d),a.array.delete(d),l.keepValue||(K(n,d),K(r,d)),!l.keepError&&K(s.errors,d),!l.keepDirty&&K(s.dirtyFields,d),!l.keepTouched&&K(s.touchedFields,d),!l.keepIsValidating&&K(s.validatingFields,d),!t.shouldUnregister&&!l.keepDefaultValue&&K(i,d);m.state.next({values:Y(r)}),m.state.next({...s,...l.keepDirty?{isDirty:M()}:{}}),!l.keepIsValid&&b()},gt=({disabled:o,name:l})=>{(de(o)&&c.mount||o||a.disabled.has(l))&&(o?a.disabled.add(l):a.disabled.delete(l))},He=(o,l={})=>{let d=S(n,o);const C=de(l.disabled)||de(t.disabled);return O(n,o,{...d||{},_f:{...d&&d._f?d._f:{ref:{name:o}},name:o,mount:!0,...l}}),a.mount.add(o),d?gt({disabled:de(l.disabled)?l.disabled:t.disabled,name:o}):D(o,!0,l.value),{...C?{disabled:l.disabled||t.disabled}:{},...t.progressive?{required:!!l.required,min:Ne(l.min),max:Ne(l.max),minLength:Ne(l.minLength),maxLength:Ne(l.maxLength),pattern:Ne(l.pattern)}:{},name:o,onChange:V,onBlur:V,ref:v=>{if(v){He(o,l),d=S(n,o);const x=W(v.value)&&v.querySelectorAll&&v.querySelectorAll("input,select,textarea")[0]||v,A=Ws(x),$=d._f.refs||[];if(A?$.find(P=>P===x):x===d._f.ref)return;O(n,o,{_f:{...d._f,...A?{refs:[...$.filter(Ge),x,...Array.isArray(S(i,o))?[{}]:[]],ref:{type:x.type,name:o}}:{ref:x}}}),D(o,!1,void 0,x)}else d=S(n,o,{}),d._f&&(d._f.mount=!1),(t.shouldUnregister||l.shouldUnregister)&&!(Us(a.array,o)&&c.action)&&a.unMount.add(o)}}},Qe=()=>t.shouldFocusError&&Fe(n,Z,a.mount),hs=o=>{de(o)&&(m.state.next({disabled:o}),Fe(n,(l,d)=>{const C=S(n,d);C&&(l.disabled=C._f.disabled||o,Array.isArray(C._f.refs)&&C._f.refs.forEach(v=>{v.disabled=C._f.disabled||o}))},0,!1))},bt=(o,l)=>async d=>{let C;d&&(d.preventDefault&&d.preventDefault(),d.persist&&d.persist());let v=Y(r);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:x,values:A}=await L();s.errors=x,v=Y(A)}else await B(n);if(a.disabled.size)for(const x of a.disabled)K(v,x);if(K(s.errors,"root"),se(s.errors)){m.state.next({errors:{}});try{await o(v,d)}catch(x){C=x}}else l&&await l({...s.errors},d),Qe(),setTimeout(Qe);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:se(s.errors)&&!C,submitCount:s.submitCount+1,errors:s.errors}),C)throw C},ys=(o,l={})=>{S(n,o)&&(W(l.defaultValue)?X(o,Y(S(i,o))):(X(o,l.defaultValue),O(i,o,Y(l.defaultValue))),l.keepTouched||K(s.touchedFields,o),l.keepDirty||(K(s.dirtyFields,o),s.isDirty=l.defaultValue?M(o,Y(S(i,o))):M()),l.keepError||(K(s.errors,o),p.isValid&&b()),m.state.next({...s}))},pt=(o,l={})=>{const d=o?Y(o):i,C=Y(d),v=se(o),x=v?i:C;if(l.keepDefaultValues||(i=d),!l.keepValues){if(l.keepDirtyValues){const A=new Set([...a.mount,...Object.keys(_e(i,r))]);for(const $ of Array.from(A))S(s.dirtyFields,$)?O(x,$,S(r,$)):X($,S(x,$))}else{if(ct&&W(o))for(const A of a.mount){const $=S(n,A);if($&&$._f){const P=Array.isArray($._f.refs)?$._f.refs[0]:$._f.ref;if(Me(P)){const ne=P.closest("form");if(ne){ne.reset();break}}}}if(l.keepFieldsRef)for(const A of a.mount)X(A,S(x,A));else n={}}r=t.shouldUnregister?l.keepDefaultValues?Y(i):{}:Y(x),m.array.next({values:{...x}}),m.state.next({values:{...x}})}a={mount:l.keepDirtyValues?a.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!p.isValid||!!l.keepIsValid||!!l.keepDirtyValues,c.watch=!!t.shouldUnregister,m.state.next({submitCount:l.keepSubmitCount?s.submitCount:0,isDirty:v?!1:l.keepDirty?s.isDirty:!!(l.keepDefaultValues&&!xe(o,i)),isSubmitted:l.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:v?{}:l.keepDirtyValues?l.keepDefaultValues&&r?_e(i,r):s.dirtyFields:l.keepDefaultValues&&o?_e(i,o):l.keepDirty?s.dirtyFields:{},touchedFields:l.keepTouched?s.touchedFields:{},errors:l.keepErrors?s.errors:{},isSubmitSuccessful:l.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1})},xt=(o,l)=>pt(le(o)?o(r):o,l),gs=(o,l={})=>{const d=S(n,o),C=d&&d._f;if(C){const v=C.refs?C.refs[0]:C.ref;v.focus&&(v.focus(),l.shouldSelect&&le(v.select)&&v.select())}},bs=o=>{s={...s,...o}},wt={control:{register:He,unregister:Be,getFieldState:Le,handleSubmit:bt,setError:ht,_subscribe:yt,_runSchema:L,_focusError:Qe,_getWatch:E,_getDirty:M,_setValid:b,_setFieldArray:z,_setDisabledField:gt,_setErrors:q,_getFieldArray:F,_reset:pt,_resetDefaultValues:()=>le(t.defaultValues)&&t.defaultValues().then(o=>{xt(o,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:I,_disableForm:hs,_subjects:m,_proxyFormState:p,get _fields(){return n},get _formValues(){return r},get _state(){return c},set _state(o){c=o},get _defaultValues(){return i},get _names(){return a},set _names(o){a=o},get _formState(){return s},get _options(){return t},set _options(o){t={...t,...o}}},subscribe:ms,trigger:re,register:He,handleSubmit:bt,watch:fs,setValue:X,getValues:oe,reset:xt,resetField:ys,clearErrors:Ce,unregister:Be,setError:ht,setFocus:gs,getFieldState:Le};return{...wt,formControl:wt}}function ts(e={}){const t=h.useRef(void 0),s=h.useRef(void 0),[n,i]=h.useState({isDirty:!1,isValidating:!1,isLoading:le(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:le(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:n},e.defaultValues&&!le(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...a}=ir(e);t.current={...a,formState:n}}const r=t.current.control;return r._options=e,Hs(()=>{const c=r._subscribe({formState:r._proxyFormState,callback:()=>i({...r._formState}),reRenderRoot:!0});return i(a=>({...a,isReady:!0})),r._formState.isReady=!0,c},[r]),h.useEffect(()=>r._disableForm(e.disabled),[r,e.disabled]),h.useEffect(()=>{e.mode&&(r._options.mode=e.mode),e.reValidateMode&&(r._options.reValidateMode=e.reValidateMode)},[r,e.mode,e.reValidateMode]),h.useEffect(()=>{e.errors&&(r._setErrors(e.errors),r._focusError())},[r,e.errors]),h.useEffect(()=>{e.shouldUnregister&&r._subjects.state.next({values:r._getWatch()})},[r,e.shouldUnregister]),h.useEffect(()=>{if(r._proxyFormState.isDirty){const c=r._getDirty();c!==n.isDirty&&r._subjects.state.next({isDirty:c})}},[r,n.isDirty]),h.useEffect(()=>{e.values&&!xe(e.values,s.current)?(r._reset(e.values,{keepFieldsRef:!0,...r._options.resetOptions}),s.current=e.values,i(c=>({...c}))):r._resetDefaultValues()},[r,e.values]),h.useEffect(()=>{r._state.mount||(r._setValid(),r._state.mount=!0),r._state.watch&&(r._state.watch=!1,r._subjects.state.next({...r._formState})),r._removeUnmounted()}),t.current.formState=Bs(n,r),t.current}const ar=e=>{const{t}=_.useTranslation(),{showStackNotifications:s,showSuccessNotification:n}=ve(),{defaultValues:i,mutationFn:r,formToDto:c,onError:a,onSuccess:f,queryKey:y,onSuccessMessage:p}=e,{control:g,handleSubmit:m,reset:w,setError:k,getValues:b,setValue:T}=ts({defaultValues:i}),z=h.useCallback(D=>{const j=D==null?void 0:D.errors,G=[];return j&&j.forEach(([L,ae])=>{const B=document.querySelector(`[name="${L}"]`);(B instanceof HTMLInputElement||B instanceof HTMLTextAreaElement||B instanceof HTMLSelectElement)&&(B.focus(),B.classList.add("error"),G.push(t(`_entities:${y}.${L}.${ae}`)))}),G},[t,y]),N=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(j=>{j.classList.remove("error")})},[]),q=we.useMutation({mutationFn:r,onError:D=>{console.error(D);const j=D;if(a)a(D);else if(je(j)){const G=z(j);s(G.map(L=>({message:L,type:R.error})))}else if(Te(j)){const G=j.message||t("_accessibility:errors.500"),L=t(`_accessibility:errors.${j.status}`);s([{message:L||G,type:R.error}])}},onSuccess:async D=>{he&&await he.invalidateQueries({queryKey:y}),f&&f(D),p&&n({message:p})}});return{control:g,getValues:b,setValue:T,handleSubmit:m,onSubmit:D=>q.mutate(c?c(D):D),reset:w,setError:k,parseFormError:z,releaseFormError:N,isLoading:q.isPending}},ss=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1}=e;return{action:h.useCallback(c=>({id:be.Delete,hidden:!!c.deletedAt||n,disabled:!!c.deletedAt||i,icon:u.jsx(ie.FontAwesomeIcon,{className:"text-red-500",icon:H.faTrash}),tooltip:t("_pages:common.actions.delete.text"),onClick:()=>s([c==null?void 0:c.id]),onMultipleClick:a=>s(a.map(f=>f.id)),multiple:!0}),[i,n,s,t])}},rs=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:h.useCallback(r=>({id:be.Restore,hidden:!r.deletedAt||n,disabled:!r.deletedAt,icon:u.jsx(ie.FontAwesomeIcon,{className:"text-red-500",icon:H.faRotateLeft}),tooltip:t("_pages:common.actions.restore.text"),onClick:()=>s([r==null?void 0:r.id]),onMultipleClick:c=>s(c.map(a=>a.id)),multiple:!0}),[n,s,t])}},or=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:h.useCallback(r=>({id:be.Edit,hidden:!!r.deletedAt||n,disabled:!!r.deletedAt,icon:u.jsx(ie.FontAwesomeIcon,{className:"primary",icon:H.faPencil}),tooltip:t("_pages:common.actions.edit.text"),onClick:()=>s(r==null?void 0:r.id)}),[n,s,t])}};var be=(e=>(e.Add="add",e.Edit="edit",e.Delete="delete",e.Restore="restore",e.Refresh="refresh",e.Export="export",e.Import="import",e))(be||{});const ns=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Export,hidden:n,disabled:i,icon:u.jsx(ie.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?H.faCircleNotch:H.faCloudArrowDown}),tooltip:t("_pages:common.actions.export.text"),onClick:s}),[i,n,r,s,t])}},is=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Import,hidden:n,disabled:i,icon:u.jsx(ie.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?H.faCircleNotch:H.faCloudUpload}),tooltip:t("_pages:common.actions.import.text"),onClick:s}),[i,n,r,s,t])}},cr=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:f,dialogFn:y,isLoading:p}=ot({onSuccessMessage:r("_pages:common.actions.delete.successMessage"),onError:m=>{const w=m;if(je(w))i(w.errors.map(([k,b])=>({message:r(`_pages:${k}.errors.${b}`),type:R.error})));else if(Te(w)){const k=w.message||r("_accessibility:errors.500"),b=r(`_accessibility:errors.${w.status}`);i([{message:b||k,type:R.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=ss({onClick:a});return{onClick:a,title:r("_pages:common.actions.delete.dialog.title"),open:c,isLoading:p,handleSubmit:()=>y.mutate(),handleClose:f,action:g}},mt=()=>{const[e,t]=h.useState(!1);return{open:e,setOpen:t,handleClose:()=>t(!1),handleOpen:()=>t(!0)}},lr=e=>{const{t}=_.useTranslation(),{showErrorNotification:s,showStackNotifications:n,showSuccessNotification:i}=ve(),{defaultValues:r,getFunction:c,mutationFn:a,formToDto:f,dtoToForm:y,onError:p,onSuccess:g,queryKey:m,onSuccessMessage:w,title:k}=e,[b,T]=h.useState(0),{open:z,handleClose:N,handleOpen:q}=mt(),{control:D,handleSubmit:j,reset:G,setError:L,getValues:ae,setValue:B}=ts({defaultValues:r}),{data:I,isLoading:M}=we.useQuery({queryFn:()=>c==null?void 0:c(b),queryKey:[...m,b],enabled:!!c&&!!m&&!!b});h.useEffect(()=>{I&&y&&G({...y(I)})},[I]);const E=h.useCallback(V=>{const Z=V==null?void 0:V.errors,re=[];return Z&&Z.forEach(([oe,Le])=>{const Ce=document.querySelector(`[name="${oe}"]`);(Ce instanceof HTMLInputElement||Ce instanceof HTMLTextAreaElement||Ce instanceof HTMLSelectElement)&&(Ce.focus(),Ce.classList.add("error"),re.push(t(`_entities:${m}.${oe}.${Le}`)))}),re},[t,m]),F=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(Z=>{Z.classList.remove("error")})},[]),U=h.useCallback(V=>{T(V??0),q()},[q]),J=h.useCallback(()=>{F(),N(),G()},[G,F,N]),X=we.useMutation({mutationFn:a,onError:V=>{if(console.error(V),p)p(V);else{const Z=V;if(je(Z)){const re=E(Z);n(re.map(oe=>({message:oe,type:R.error})))}else if(Te(Z)){const re=Z.message||t("_accessibility:errors.500"),oe=t(`_accessibility:errors.${Z.status}`);s({message:oe||re})}else s({message:t("_accessibility:errors.500")})}},onSuccess:async V=>{await he.invalidateQueries({queryKey:m}),g&&g(V),i({message:w}),J()}});return{open:z,openDialog:U,handleClose:J,control:D,getValues:ae,setValue:B,handleSubmit:j,onSubmit:V=>X.mutate(f?f(V):V),reset:G,setError:L,parseFormError:E,releaseFormError:F,title:k,isLoading:M||X.isPending}},ur=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:f,dialogFn:y,isLoading:p}=ot({onSuccessMessage:r("_pages:common.actions.restore.successMessage"),onError:m=>{const w=m;if(je(w))i(w.errors.map(([k,b])=>({message:r(`_pages:${k}.errors.${b}`),type:R.error})));else if(Te(w)){const k=w.message||r("_accessibility:errors.500"),b=r(`_accessibility:errors.${w.status}`);i([{message:b||k,type:R.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=rs({onClick:a});return{onClick:a,title:r("_pages:common.actions.restore.dialog.title"),open:c,isLoading:p,handleSubmit:()=>y.mutate(),handleClose:f,action:g}};function dr(e){const{t}=_.useTranslation(),{queryKey:s,mutationFn:n,entity:i,fileProcessor:r,onError:c}=e,[a,f]=h.useState(!1),[y,p]=h.useState(null),[g,m]=h.useState(!1),w=we.useMutation({mutationFn:n,onError:b=>{console.error(b),c==null||c(b)},onSuccess:async()=>{he&&await he.invalidateQueries({queryKey:s})}}),{action:k}=is({onClick:()=>f(!0)});return{handleSubmit:async()=>{if(!(!y||y.length===0))try{await w.mutateAsync({items:y,override:g}),f(!1),p(null),m(!1)}catch(b){console.error(b)}},isLoading:w.isPending,fileProcessor:r,onFileProcessed:b=>p(b),onOverrideChange:b=>m(b),open:a,title:t("_pages:common.actions.import.dialog.title",{entity:t(`_pages:${i}.title`)}),handleClose:()=>{f(!1),p(null)},action:k}}const fr=e=>{const{showSuccessNotification:t}=ve(),{t:s}=_.useTranslation(),{entity:n,mutationFn:i,onError:r,onSuccess:c,onSuccessMessage:a=s("_pages:common.actions.export.successMessage")}=e,f=we.useMutation({mutationFn:()=>i(),onError:g=>{console.error(g),r&&r(g)},onSuccess:async g=>{const m=JSON.stringify(g,null,2),w=new Blob([m],{type:"application/json"}),k=URL.createObjectURL(w),b=document.createElement("a");b.href=k,b.download=`${n}.json`,b.click(),URL.revokeObjectURL(k),c&&c(g),t({message:a})}}),y=h.useCallback(()=>{f.mutate()},[f]),{action:p}=ns({onClick:y,isLoading:f.isPending});return{action:p}};function as(e){const[t,s]=h.useState(!1),n=h.useCallback(()=>{const i=window.scrollY>e;s(i)},[e]);return h.useEffect(()=>(window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),t}const mr=()=>{const{t:e}=_.useTranslation(),t=as(200);return u.jsx(me,{icon:H.faArrowUp,onClick:()=>_s.scrollTo(0,0),"data-tooltip-id":"tooltip","data-tooltip-content":e("_accessibility:buttons.toTop"),className:`submit primary to-top ${t?"show":"hide"}`})},os=e=>{const{actions:t=[],className:s=""}=e,{t:n}=_.useTranslation(),[i,r]=h.useState(!1);return u.jsxs("div",{className:`actions-dropdown ${s}`,children:[u.jsx(me,{icon:H.faEllipsisV,onClick:()=>r(!0),"data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),u.jsx(Mt,{open:i,onClose:()=>r(!1),children:u.jsx(tt,{showActionTexts:!0,actions:t,className:"flex-col",showTooltips:!1})})]})},hr=h.forwardRef(function(e,t){const{value:s,onChange:n,state:i=_.State.default,name:r="",id:c="",label:a="",disabled:f=!1,required:y=!1,containerClassName:p="",inputClassName:g="",labelClassName:m="",helperText:w="",helperTextClassName:k="",...b}=e;return u.jsxs("div",{className:`relative z-0 w-full mb-5 group ${p}`,children:[u.jsx("textarea",{ref:t,name:r,id:c,className:`text-input text-area ${_.inputStateClassName(i)} ${g} peer`,required:y,value:s,onChange:n,disabled:f,...b}),u.jsxs("label",{htmlFor:r,className:`text-input-label ${_.labelStateClassName(i)} ${m}`,children:[a,y?" *":""]}),!!w&&u.jsx("p",{className:`text-input-helper-text ${_.helperTextStateClassName(i)} ${k}`,children:w})]})}),yr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,isLoading:r=!1,buttonEnd:c=!0,reset:a}=e;return u.jsxs("form",{className:"form-container",onSubmit:n(i),children:[s,u.jsxs("div",{className:`flex gap-2 mt-5 ${c?"justify-end":""}`,children:[u.jsxs(ge,{type:"submit",color:"primary",variant:"submit",disabled:r,name:t("_accessibility:buttons.submit"),"aria-label":t("_accessibility:ariaLabels.submit"),children:[r?u.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t("_accessibility:buttons.submit")]}),u.jsx(ge,{type:"button",variant:"outlined",onClick:()=>a==null?void 0:a(),name:t("_accessibility:buttons.cancel"),"aria-label":t("_accessibility:ariaLabels.cancel"),children:t("_accessibility:buttons.cancel")})]})]})},gr=h.forwardRef(function(e,t){const[s,n]=h.useState(!1);return u.jsx(_.TextInput,{...e,type:s?"text":"password",ref:t,children:u.jsx(me,{type:"button",tabIndex:-1,className:"absolute right-2 password-icon",onClick:()=>n(!s),icon:s?H.faEyeSlash:H.faEye})})}),Re=e=>{const{t}=_.useTranslation(),{title:s,children:n,handleClose:i,open:r=!1,containerClassName:c="",className:a="",animationClass:f="appear"}=e,[y,p]=h.useState(window.innerWidth),g=h.useCallback(b=>{b.key==="Escape"&&r&&i()},[r,i]);h.useEffect(()=>(window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}),[g]);const m=h.useCallback(()=>{p(window.innerWidth)},[]);h.useEffect(()=>(window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)}),[m]);const w=h.useMemo(()=>Ss.css({width:`${y}px`}),[y]),k=h.useCallback(b=>{var T;((T=b==null?void 0:b.currentTarget)==null?void 0:T.getAttribute("name"))===t("_accessibility:buttons.closeDialog")&&i()},[t,i]);return h.useEffect(()=>{const b=T=>{T?document.body.style.overflow="hidden":document.body.style.overflow="auto"};return b(r),()=>{b(r)}},[r]),Pt.createPortal(u.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeDialog"),"aria-disabled":!r,onClick:k,className:`dialog-backdrop animated ${r?`opened ${f}`:"closed"} ${w} h-screen ${r?"bg-base/20 backdrop-blur-xl":"pointer-events-none"} ${c}`,children:u.jsxs("div",{className:`dialog elevated animated ${r?`opened ${f}`:"closed"} ${a}`,children:[u.jsxs("div",{className:"dialog-header",children:[u.jsx("h3",{className:"text-text text-xl",children:s}),u.jsx(me,{icon:H.faClose,disabled:!r,"aria-disabled":!r,onClick:i,className:"icon-button text-red-400",name:t("_accessibility:buttons.closeDialog"),"aria-label":t("_accessibility:ariaLabels.closeDialog")})]}),n]})}),document.body)},qe=e=>{const{primaryText:t,cancelText:s,onPrimaryClick:n,onCancel:i,isLoading:r=!1,disabled:c=!1,primaryType:a="submit",containerClassName:f="",primaryClassName:y="",alignEnd:p=!1,primaryName:g,primaryAriaLabel:m,cancelName:w,cancelAriaLabel:k}=e;return u.jsxs("div",{className:`flex gap-2 mt-2 ${p?"justify-end":""} ${f}`,children:[u.jsxs(ge,{type:a,color:"primary",variant:"submit",className:y,disabled:c,onClick:a==="button"?n:void 0,name:g,"aria-label":m,children:[r?u.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t]}),u.jsx(ge,{type:"button",variant:"outlined",disabled:c,onClick:i,name:w,"aria-label":k,children:s})]})},br=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,handleClose:r,isLoading:c=!1,buttonEnd:a=!0,...f}=e;return u.jsx(Re,{...f,handleClose:r,children:u.jsxs("form",{onSubmit:n(i),children:[u.jsx("div",{className:"form-container",children:s}),u.jsx(qe,{primaryType:"submit",primaryText:t("_accessibility:buttons.submit"),cancelText:t("_accessibility:buttons.cancel"),onCancel:r,isLoading:c,disabled:c,primaryClassName:"!px-6",alignEnd:a,primaryName:t("_accessibility:buttons.submit"),primaryAriaLabel:t("_accessibility:ariaLabels.submit"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})})},pr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,handleClose:i,isLoading:r=!1,...c}=e;return u.jsxs(Re,{...c,handleClose:i,children:[s,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:n,onCancel:i,isLoading:r,disabled:r,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function xr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return t?u.jsx("p",{className:`text-red-600 text-sm mt-2 ${s}`,children:t||n("_messages:errors.parseFile",{defaultValue:"Failed to process file"})}):null}function wr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return u.jsxs("div",{className:`my-4 mx-auto flex items-center gap-3 text-sm text-gray-600 ${s}`,children:[u.jsx(_.Loading,{loaderClass:"w-5 h-5",className:"!w-auto"}),u.jsx("span",{children:t??n("_messages:loading.processingFile",{defaultValue:"Processing file..."})})]})}function vr(e){const{items:t,max:s=5,className:n=""}=e,{t:i}=_.useTranslation();if(!t||t.length===0)return null;const r=t.slice(0,s);return u.jsxs("div",{className:`mt-4 ${n}`,children:[u.jsx("p",{className:"text-sm text-gray-600",children:i("_pages:common.actions.import.previewCount",{count:t.length,defaultValue:`Preview: ${t.length} items`})}),u.jsx("pre",{className:"mt-2 max-h-56 overflow-auto rounded bg-gray-100 p-3 text-xs",children:JSON.stringify(r,null,2)})]})}const Cr=e=>{const{t}=_.useTranslation(),[s,n]=h.useState(null),[i,r]=h.useState(null),[c,a]=h.useState(null),[f,y]=h.useState(!1),[p,g]=h.useState(!1),{children:m,handleSubmit:w,handleClose:k,isLoading:b=!1,fileProcessor:T,onFileProcessed:z,onOverrideChange:N,open:q,...D}=e,[j,G]=h.useState(0),L=h.useRef(z),ae=h.useRef(T);h.useEffect(()=>{L.current=z},[z]),h.useEffect(()=>{ae.current=T},[T]),h.useEffect(()=>{q||(n(null),r(null),a(null),y(!1),g(!1),G(I=>I+1))},[q]);const B=h.useCallback(async()=>{var I;if(ae.current&&s){y(!0);try{const M=await ae.current(s,{override:p});r(M??[]),a(null),(I=L.current)==null||I.call(L,M??[])}catch(M){console.error(M),r(null);const E=M instanceof Error?M.message:"Failed to parse file";a(E)}y(!1)}},[s,p]);return h.useEffect(()=>{B()},[B]),u.jsxs(Re,{...D,open:q,handleClose:k,children:[u.jsx(_.FileInput,{onClear:()=>{var I;n(null),r(null),a(null),y(!1),(I=L.current)==null||I.call(L,[])},onChange:I=>{var E,F;const M=(E=I.target.files)==null?void 0:E[0];if(!M){n(null),r(null),a(null),y(!1),(F=L.current)==null||F.call(L,[]);return}n(M)},label:t("_accessibility:labels.file")},j),u.jsxs("label",{className:"mt-3 flex items-center gap-2 text-sm",children:[u.jsx("input",{type:"checkbox",checked:p,onChange:I=>{const M=I.target.checked;g(M),N==null||N(M)}}),u.jsx("span",{children:t("_pages:common.actions.import.override",{defaultValue:"Override existing items"})})]}),u.jsx(xr,{message:c??void 0}),f&&u.jsx(wr,{}),!!i&&i.length>0&&u.jsx(vr,{items:i}),m,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:()=>{(!T||!!i&&i.length>0)&&w()},onCancel:k,isLoading:b,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function Sr(e){const{t}=_.useTranslation(),{open:s,onClose:n,menuMap:i,logo:r}=e,{account:c}=it(),{dynamicItems:a}=Wt(),{linkComponent:f}=$e(),y=f,p=h.useMemo(()=>i.filter(b=>{const T=b.auth,z=!!(c!=null&&c.email);return T==null||T&&z||!T&&!z}),[c==null?void 0:c.email,i]),g=h.useCallback(b=>{b.key==="Escape"&&s&&n()},[n,s]);h.useEffect(()=>(document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}),[g]);const m=h.useCallback((b,T)=>T?b===`${location.pathname}${location.search}`:b===location.pathname,[]),w=h.useCallback(b=>u.jsx("li",{className:`drawer-list-item-child ${m(b.path,!0)?"active":""} animated`,children:b.path?u.jsx(y,{"aria-disabled":!s,to:b.path??"/","aria-label":t(`_accessibility:ariaLabels.${b.path}`),className:"drawer-link",children:b.label}):b.label},b.id),[y,s,t,m]),k=h.useMemo(()=>p.map((b,T)=>{const z=b.page??String(T),N=`drawer-list-item ${m(b.path)?"active":""} animated`;if(b.type==="divider")return u.jsx("li",{className:N,children:u.jsx("hr",{className:"drawer-divider"})},z);const q=b.children??(b.page&&a?a[b.page]:null);return u.jsxs("li",{className:N,children:[u.jsxs(y,{"aria-disabled":!s,to:b.path??"/","aria-label":t(`_accessibility:ariaLabels.${b.path}`),className:"drawer-link",children:[b.icon,t(`_pages:${b.page}.title`)]}),q&&u.jsx("ul",{className:"drawer-children-list",children:q.map(w)})]},z)}),[y,a,m,s,p,w,t]);return u.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeMenu"),"aria-disabled":!s,className:`${s?"opened":"closed"} drawer-backdrop`,onClick:()=>n(),children:u.jsxs("aside",{className:`${s?"opened":"closed"} drawer animated`,children:[u.jsxs("div",{className:"drawer-header-container",children:[r,u.jsx("h2",{className:"drawer-header poppins",children:t("_pages:home.appName")})]}),u.jsx("ul",{className:"flex flex-col",children:k})]})})}function kr(e){const{error:t}=e,{t:s}=_.useTranslation();return u.jsxs("div",{className:"flex flex-col items-center justify-center pt-10 gap-5",children:[u.jsx(ie.FontAwesomeIcon,{icon:ks.faSadTear,className:"text-red-300 text-4xl"}),u.jsx("p",{className:"text-text text-center",children:(t==null?void 0:t.message)??s("_accessibility:errors.unknownError")})]})}const Ar=e=>{const{showBackButton:t,title:s,actions:n}=e,{t:i}=_.useTranslation(),{navigate:r}=$e();return u.jsxs("div",{className:"page-header",children:[u.jsxs("div",{className:"page-header-left",children:[t&&u.jsx(me,{icon:H.faArrowLeft,onClick:()=>r(-1),name:i("_accessibility:buttons.back"),"data-tooltip-id":"tooltip","data-tooltip-content":i("_accessibility:buttons.back")}),u.jsx("h2",{className:"page-header-title",children:s})]}),u.jsxs("div",{children:[u.jsx(tt,{className:"max-xs:!hidden",actions:n??[]}),u.jsx(os,{className:"min-xs:hidden",actions:n??[]})]})]})},_r=e=>{const{title:t,children:s,addOptions:n,filterOptions:i,actions:r,queryKey:c,isLoading:a=!1,isAnimated:f=!0,showBackButton:y=!1}=e,{t:p}=_.useTranslation(),{countOfFilters:g}=_.useTableOptions(),m=h.useMemo(()=>{const w=Array.isArray(r)?[...r]:[];if(c){const k={id:be.Refresh,onClick:()=>he.invalidateQueries({queryKey:c}),icon:u.jsx(ie.FontAwesomeIcon,{icon:H.faRotateLeft}),tooltip:p("_pages:common.actions.refresh.text")};w.unshift(k)}if(n){const k={...n,id:be.Add,icon:u.jsx(ie.FontAwesomeIcon,{icon:H.faAdd})};w.unshift(k)}if(i){const k={...i,id:"filter",icon:u.jsx(ie.FontAwesomeIcon,{icon:H.faFilter}),children:u.jsx(_.Badge,{className:`${g>0?"show":"hide"} `,count:g})};w.push(k)}return w},[r,n,g,i,c,p]);return u.jsxs("main",{className:"page-main",children:[u.jsx(Ar,{showBackButton:y,actions:m,title:t}),u.jsx("div",{className:`page-main-content ${f?"appear":""}`,children:a?u.jsx(_.Loading,{className:"page-loading"}):s}),n&&u.jsx(me,{icon:n.icon??H.faAdd,color:n.color??"primary",variant:n.variant??"submit",onClick:()=>{var w;return(w=n.onClick)==null?void 0:w.call(n)},className:`button fab min-xs:!hidden ${n.className??""}`})]})},Nr=e=>{const{t}=_.useTranslation(),{className:s="",itemClassName:n="",loading:i=!1,emptyComponent:r=null,emptyMessage:c=t("_accessibility:messages.empty"),renderComponent:a,data:f=[]}=e;return u.jsx(u.Fragment,{children:f!=null&&f.length?u.jsx("ul",{className:`pretty-grid-main ${s}`,children:f==null?void 0:f.map(y=>u.jsx("li",{className:`pretty-grid-item ${n}`,children:a(y)},y.id))}):u.jsx(u.Fragment,{children:r||u.jsx(ds,{message:c})})})},Er=()=>{const[e,t]=h.useState(Xe());return h.useEffect(()=>{const s=window.matchMedia("(min-width: 768px)"),n=()=>{t(s.matches?Xe():Ut())},i=setInterval(n,1e3);return s.addEventListener("change",n),()=>{clearInterval(i),s.removeEventListener("change",n)}},[]),u.jsx("p",{className:"capitalize max-xs:hidden",children:e})};function Fr(e){const{t}=_.useTranslation(),{openDrawer:s,showClock:n=!0,showSearch:i=!0,menuButtonProps:r}=e,c={...r,type:(r==null?void 0:r.type)??"button",icon:(r==null?void 0:r.icon)??H.faBars,onClick:m=>{var w;(w=r==null?void 0:r.onClick)==null||w.call(r,m),s()},name:(r==null?void 0:r.name)??t("_accessibility:buttons.openMenu"),"aria-label":(r==null?void 0:r["aria-label"])??t("_accessibility:ariaLabels.openMenu"),className:`navbar-menu animated ${(r==null?void 0:r.className)??""}`},{searchComponent:a}=$e(),[f,y]=h.useState(!1),p=h.useCallback(m=>{(Rt()?m.metaKey:m.ctrlKey)&&m.shiftKey&&m.key.toLowerCase()==="f"&&(y(!0),m.preventDefault())},[]);h.useEffect(()=>(window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p)}),[p]);const g=a;return u.jsxs(u.Fragment,{children:[location.pathname!=="/"&&!!g&&u.jsx(g,{open:f,onClose:()=>y(!1)}),u.jsxs("header",{id:"header",className:"header",children:[u.jsxs("div",{className:"navbar-left",children:[u.jsx(me,{...c}),u.jsx("h1",{className:"poppins navbar-title",children:t("_pages:home.appName")})]}),u.jsxs("div",{className:"navbar-right",children:[i&&u.jsx(me,{icon:H.faSearch,className:"min-md:!hidden",onClick:()=>y(!0)}),n&&u.jsx(Er,{})]})]})]})}function jr(){const{t:e}=_.useTranslation(),{notification:t,removeNotification:s}=ve(),[n,i]=h.useState(new Set),r=h.useCallback(g=>{if(g===void 0){const m=new Set(t.map((w,k)=>k));i(m),window.setTimeout(()=>s(),300)}else i(m=>new Set(m).add(g)),window.setTimeout(()=>s(g),300)},[t,s]),c=h.useCallback(g=>{switch(g){case R.error:return H.faWarning;default:return H.faCircleCheck}},[]),a=h.useCallback(g=>{switch(g){case R.success:return"!text-success";case R.error:return"!text-error";case R.warning:return"!text-warning";default:return"!text-info"}},[]),f=h.useCallback(g=>{switch(g){case R.success:return"bg-bg-success";case R.error:return"bg-bg-error";case R.warning:return"bg-bg-warning";default:return"bg-bg-info"}},[]),y=h.useRef();h.useEffect(()=>{y.current=()=>r()},[r]),h.useEffect(()=>{if(!(t!=null&&t.length))return;const g=m=>{var w;return(w=y.current)==null?void 0:w.call(y,m)};return window.addEventListener("click",g),()=>{window.removeEventListener("click",g)}},[t==null?void 0:t.length]);const p=h.useCallback(g=>{g.key==="Escape"&&t.length&&r()},[t,r]);return h.useEffect(()=>(window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p)}),[p]),h.useEffect(()=>{i(new Set)},[t]),Pt.createPortal(u.jsx("div",{className:`notification-portal ${t!=null&&t.length?"w-screen h-screen":""}`,children:t!=null&&t.length?t==null?void 0:t.map(({id:g,type:m,message:w},k)=>u.jsxs("div",{className:`notification ${n.has(k)?"closing":""} ${f(m??R.error)}`,onClick:b=>b.stopPropagation(),children:[u.jsxs("div",{className:"flex gap-3 items-center",children:[u.jsx(ie.FontAwesomeIcon,{icon:c(m??R.error),className:`${a(m??R.error)}`}),u.jsx("p",{className:`whitespace-nowrap ${a(m??R.error)}`,children:w})]}),u.jsx(me,{type:"button",icon:H.faClose,color:"error",className:"group",onClick:b=>{b.stopPropagation(),r(k)},iconClassName:`${a(m??R.error)} group-hover:!text-red-400 cursor-pointer`,name:e("_accessibility:buttons.closeNotification"),"aria-label":e("_accessibility:ariaLabels.closeNotification")})]},g)):null}),document.body)}function Tr(){return u.jsx("div",{className:"w-screen h-screen flex items-center justify-center overflow-hidden",children:u.jsx(_.Loading,{className:"blur-appear"})})}const cs=e=>{const{id:t,active:s,onClick:n,children:i,to:r}=e,{linkComponent:c}=$e(),a=c;return u.jsx(a,{to:r??`#${t}`,onClick:()=>n(),className:`button submit tab ${s?"primary":"outlined"}`,children:i})},ls=e=>{var f;const{tabs:t=[],defaultTab:s,className:n="",tabsContainerClassName:i=""}=e,[r,c]=h.useState((f=t[0])==null?void 0:f.id),a=h.useMemo(()=>t.find(y=>y.id===r),[t,r]);return h.useEffect(()=>{s&&c(s)},[s]),u.jsxs("div",{className:`tabs-layout-main ${n}`,children:[u.jsx("ul",{className:`horizontal tabs tabs-container ${i}`,children:t.map(({id:y,to:p,label:g})=>u.jsx("li",{children:u.jsx(cs,{onClick:()=>c(y),id:y,to:p??"",siblings:t.length>1,active:r===y,children:g})},y))}),a==null?void 0:a.content]})},us=e=>{const{translation:t,onClickNext:s,image:n="",alt:i="",final:r=!1}=e,{setGuestMode:c}=it(),{t:a}=_.useTranslation();return u.jsxs("div",{className:"big-appear w-md flex flex-col gap-20",children:[u.jsx("img",{src:n,alt:i}),u.jsx("h2",{className:"text-5xl text-center leading-16",children:a(`_pages:onboarding.${t}.title`)}),u.jsx("p",{className:"text-center !text-lg",children:a(`_pages:onboarding.${t}.body`)}),u.jsx("div",{className:"flex gap-5 items-center justify-center",children:r?u.jsxs(u.Fragment,{children:[u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>{c(!0),window.location.href="/"},"aria-label":a("_accessibility:ariaLabels.start"),children:a("_accessibility:buttons.startAsGuest")}),u.jsx(ge,{color:"primary",variant:"submit",className:"!px-8","aria-label":a("_accessibility:ariaLabels.start"),onClick:()=>window.location.href="/auth/sign-in",children:a("_accessibility:buttons.signIn")})]}):u.jsxs(u.Fragment,{children:[u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>window.location.href="/auth/sign-in","aria-label":a("_accessibility:ariaLabels.skip"),children:a("_accessibility:buttons.skip")}),u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>s(),"aria-label":a("_accessibility:ariaLabels.next"),children:a("_accessibility:buttons.next")})]})})]})},$r=e=>{const{steps:t}=e,[s,n]=h.useState(1),i=h.useMemo(()=>t.map((r,c)=>({id:c+1,label:"",content:u.jsx(us,{translation:r,final:c===t.length-1,onClickNext:()=>n(a=>a+1)})})),[t]);return u.jsx("div",{className:"onboarding-main",children:u.jsx(ls,{defaultTab:s,tabs:i})})},ds=e=>{const{message:t,messageProps:s={className:"text-gray-400 text-balance text-center"},action:n,iconProps:i}=e;return u.jsxs("div",{className:"flex flex-col items-center justify-center gap-5 pt-5",children:[i&&u.jsx(ie.FontAwesomeIcon,{...i??{}}),u.jsx("p",{...s??{},children:t}),n&&u.jsx(et,{showTooltips:!1,showText:!0,...n})]})};exports.APIClient=rt;exports.Action=et;exports.Actions=tt;exports.ActionsDropdown=os;exports.AuthClient=Ot;exports.AuthProvider=Vs;exports.BaseClient=Fs;exports.Button=ge;exports.ConfigProvider=Ps;exports.ConfirmationDialog=pr;exports.Dialog=Re;exports.DialogActions=qe;exports.Drawer=Sr;exports.DrawerMenuContext=at;exports.DrawerMenuProvider=Ms;exports.Dropdown=Mt;exports.Empty=ds;exports.Error=kr;exports.FormContainer=yr;exports.FormDialog=br;exports.GlobalActions=be;exports.IManager=Es;exports.IconButton=me;exports.ImportDialog=Cr;exports.ManagerProvider=Ls;exports.Methods=te;exports.Navbar=Fr;exports.Notification=jr;exports.NotificationEnumType=R;exports.NotificationProvider=Ds;exports.Onboarding=$r;exports.Page=_r;exports.ParagraphInput=hr;exports.PasswordInput=gr;exports.PrettyGrid=Nr;exports.SplashScreen=Tr;exports.Step=us;exports.Tab=cs;exports.TabsLayout=ls;exports.ToTop=mr;exports.buildQueryUrl=It;exports.enumToKeyValueArray=js;exports.formatForDatetimeLocal=Ts;exports.fromLocal=nt;exports.getFormattedDateTime=Xe;exports.getShortFormattedDateTime=Ut;exports.isHttpError=Te;exports.isMac=Rt;exports.isValidationError=je;exports.makeRequest=Ae;exports.mapValidationErrors=$s;exports.parseQueries=st;exports.queryClient=he;exports.removeFromLocal=Ye;exports.toLocal=Je;exports.useAuth=it;exports.useConfig=$e;exports.useConfirmationForm=ot;exports.useDeleteAction=ss;exports.useDeleteDialog=cr;exports.useDialog=mt;exports.useDrawerMenu=Wt;exports.useEditAction=or;exports.useExportAction=ns;exports.useExportActionMutate=fr;exports.useFormDialog=lr;exports.useImportAction=is;exports.useImportDialog=dr;exports.useManager=Ht;exports.useNotification=ve;exports.usePostForm=ar;exports.useRestoreAction=rs;exports.useRestoreDialog=ur;exports.useScrollTrigger=as;exports.useTimeAge=Ns;Object.keys(_).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>_[e]})});
1
+ var Cs=Object.defineProperty;var Ss=(e,t,s)=>t in e?Cs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var de=(e,t,s)=>Ss(e,typeof t!="symbol"?t+"":t,s);var Rr=require("./main.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sito/dashboard"),d=require("react/jsx-runtime"),ae=require("@fortawesome/react-fontawesome"),b=require("react"),q=require("@fortawesome/free-solid-svg-icons"),Pt=require("react-dom"),we=require("@tanstack/react-query"),_s=require("@fortawesome/free-regular-svg-icons");function tt(e){const{id:t,icon:s,tooltip:n,onClick:i,children:r,hidden:a=!1,disabled:c=!1,showText:l=!1,showTooltips:h=!0,className:g=""}=e;return a?null:d.jsxs("button",{id:t,className:`action ${l?"text-action":"icon-action"} ${g}`,disabled:c,onClick:()=>i==null?void 0:i(),"aria-disabled":c,"data-tooltip-id":"tooltip","data-tooltip-content":h?n:"",children:[s," ",l&&n,r]})}function st(e){const{actions:t=[],className:s="",itemClassName:n="",actionClassName:i="",showTooltips:r=!0,showActionTexts:a=!1}=e;return d.jsx("ul",{className:`actions-container ${s}`,children:t.map(c=>d.jsx("li",{className:`actions-container-item ${n}`,children:d.jsx(tt,{showTooltips:r,showText:a,className:i,...c})},c.id))})}const ue=({icon:e,...t})=>d.jsx(_.IconButton,{icon:d.jsx(ae.FontAwesomeIcon,{icon:e}),...t});var Ge,_t;function Es(){if(_t)return Ge;_t=1;const e=(c,l="local",h=void 0)=>{if(l==="local"){if(localStorage.getItem(c)!==void 0&&localStorage.getItem(c)!=="undefined"&&localStorage.getItem(c)!==null)return h===void 0||h!==void 0&&localStorage.getItem(c)===h}else if(l==="session"&&sessionStorage.getItem(c)!==void 0&&sessionStorage.getItem(c)!=="undefined"&&sessionStorage.getItem(c)!==null)return h===void 0||h!==void 0&&sessionStorage.getItem(c)===h;return!1},t=c=>{const l={};return c.substring(1).split("&").forEach(g=>{const[y,m]=g.split("=");l[y]=m}),l},s=(c="")=>{if(r(c)&&c.length)return r(c);{let l=navigator.language||navigator.userLanguage;if(l.indexOf("en")<0&&l.indexOf("es")<0&&(l="en-US"),l=l.split("-")[0],l)return c.length&&i(c,730,l),l}return"en"},n=(c=0,l=0,h=window,g="smooth")=>h.scroll({top:c,left:l,behavior:g}),i=(c,l,h,g="/",y="Lax")=>{var m=new Date;m.setTime(m.getTime()+l*24*60*60*1e3);const p="; expires="+m.toUTCString();document.cookie=`${c}=${h||""}${p};path=${g};SameSite=${y}`},r=c=>{const l=`${c}=`,g=decodeURIComponent(document.cookie).split(";");for(let y=0;y<g.length;y+=1){let m=g[y];for(;m.charAt(0)===" ";)m=m.substring(1);if(m.indexOf(l)===0)return m.substring(l.length,m.length)}return""};return Ge={getCookie:r,createCookie:i,deleteCookie:c=>document.cookie=`${c}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,getUserLanguage:s,scrollTo:n,parseQueries:t,validation:e},Ge}var ks=Es();function As(){const{t:e,language:t}=_.useTranslation();return{timeAge:b.useCallback(n=>{const r=new Date-n,a=Math.floor(r/(1e3*60)),c=Math.floor(a/60),l=t==="es",h=e("_accessibility:labels.ago"),g=e("_accessibility:labels.minute"),y=e("_accessibility:labels.minutes"),m=e("_accessibility:labels.hour"),p=e("_accessibility:labels.hours"),C=e("_accessibility:labels.yesterday"),E=e("_accessibility:labels.justNow");return r<1e3*60?E:a<60?`${l?h:""} ${a} ${a===1?g:y} ${l?"":h}`:c<24?`${l?h:""} ${c} ${c===1?m:p} ${l?"":h}`:c<48?C:n.toLocaleDateString(navigator.language||"es-ES",{day:"2-digit",month:"2-digit",year:"numeric"})},[e,t])}}var K=(e=>(e[e.success=0]="success",e[e.error=1]="error",e[e.warning=2]="warning",e[e.info=3]="info",e))(K||{}),Z=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE",e))(Z||{});async function _e(e,t="GET",s,n){const i={...s?{"Content-Type":"application/json"}:{},...n};try{const r=await fetch(e,{method:t,headers:i,...s?{body:JSON.stringify(s)}:{}}),a=await r.text();let c=null;try{c=a?JSON.parse(a):null}catch{c=null}if(!r.ok){const l=typeof c=="object"&&c!==null?c.message??c.error??a:a||r.statusText;return{data:null,status:r.status,error:{status:r.status,message:l||"Unknown error occurred"}}}return{data:r.status!==204&&c!==null?c:null,status:r.status,error:null}}catch(r){return{data:null,status:500,error:{status:500,message:r instanceof Error?r.message:"Unknown error occurred"}}}}function Mt(e,t){if(t){const s=Object.entries(t).filter(([,n])=>n!=null).map(([n,i])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(i))}`).join("&");return s?`${e}?${s}`:e}return e}const rt=(e,t,s)=>{const n=[];if(t){const{sortingBy:i,sortingOrder:r,currentPage:a,pageSize:c}=t;n.push(`sort=${String(i)}`,`order=${r}`,`page=${a}`,`pageSize=${c}`)}if(s){const i=Object.entries(s).filter(([,r])=>r!=null&&r!=="").flatMap(([r,a])=>{if(Array.isArray(a))return a.map(c=>`${r}==${encodeURIComponent((c==null?void 0:c.id)??c)}`);if(typeof a=="object"&&a!==null&&"start"in a&&"end"in a){const c=[];return a.start!=null&&a.start!==""&&c.push(`${r}>=${encodeURIComponent(a.start)}`),a.end!=null&&a.end!==""&&c.push(`${r}<=${encodeURIComponent(a.end)}`),c}return typeof a=="object"&&a!==null?`${r}==${encodeURIComponent(a.id??"")}`:`${r}==${encodeURIComponent(a)}`});i.length>0&&n.push(`filters=${i.join(",")}`)}return n.length?`${e}?${n.join("&")}`:e};class nt{constructor(t,s="user",n=!0,i){de(this,"baseUrl");de(this,"userKey");de(this,"secured");de(this,"tokenAcquirer");this.baseUrl=t,this.secured=n,this.userKey=s,this.tokenAcquirer=i??this.defaultTokenAcquirer}defaultTokenAcquirer(t){if(t)return{credentials:"include"};const s=it(this.userKey);if(s&&s.length)return{Authorization:`Bearer ${s}`}}async doQuery(t,s=Z.GET,n,i){const r=this.secured?this.tokenAcquirer():{},{data:a,status:c,error:l}=await _e(`${this.baseUrl}${t}`,s,n,{...r,...i??{}});if(l||c<200||c>=300)throw l??{status:c,message:String(c)};return a}async get(t,s,n){const i=rt(t,s,n),r=this.secured?this.tokenAcquirer():void 0,{data:a,error:c}=await _e(`${this.baseUrl}${i}`,Z.GET,null,r);if(c)throw c;return a}async patch(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:a}=await _e(`${this.baseUrl}${t}`,Z.PATCH,s,n);if(i||!r)throw i??{status:a,message:"Unknown error"};return r}async delete(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:a}=await _e(`${this.baseUrl}${t}`,Z.DELETE,s,n);if(i||!r)throw i??{status:a,message:"Unknown error"};return r}async post(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:a}=await _e(`${this.baseUrl}${t}`,Z.POST,s,n);if(i||!r)throw i??{status:a,message:"Unknown error"};return r}}class Rt{constructor(t,s="user"){de(this,"api");this.api=new nt(t,s,!1)}async login(t){const s="auth/sign-in",n=t;return await this.api.doQuery(s,Z.POST,n)}async logout(){return await this.api.doQuery("auth/sign-out",Z.POST)}async register(t){return await this.api.doQuery("auth/sign-up",Z.POST,t)}async getSession(){return await this.api.doQuery("auth/session",Z.GET,null,{...this.api.defaultTokenAcquirer()})}}class Ts{constructor(t,s){de(this,"auth");this.auth=new Rt(t,s)}get Auth(){return this.auth}}class Ns{constructor(t,s,n="user",i=!0){de(this,"table");de(this,"secured");de(this,"api");this.table=t,this.secured=i,this.api=new nt(s,n,i)}async insert(t){return await this.api.post(`${this.table}`,t)}async insertMany(t){return await this.api.doQuery(`${this.table}/batch`,Z.POST,t)}async update(t){return await this.api.patch(`${this.table}/${t.id}`,t)}async get(t,s){return await this.api.get(`${this.table}`,t,s)}async export(t){const s=rt(`${this.table}/export`,void 0,t);return await this.api.doQuery(s,Z.GET,void 0)}async import(t){return await this.api.doQuery(`${this.table}/import`,Z.POST,t)}async commonGet(t){return await this.api.doQuery(Mt(`${this.table}/common`,t),Z.GET)}async getById(t){return await this.api.doQuery(`${this.table}/${t}`)}async softDelete(t){return await this.api.delete(`${this.table}`,t)}async restore(t){return await this.api.patch(`${this.table}/restore`,t)}}function Fs(e){return Object.keys(e).filter(t=>isNaN(Number(t))).map(t=>({key:t,value:e[t]}))}const it=(e,t="")=>{const s=localStorage.getItem(e)??void 0;if(s&&t.length)switch(t){case"object":return JSON.parse(s);case"number":return Number(s);case"boolean":return s==="true"||s==="1";default:return s}return s},Ye=(e,t)=>localStorage.setItem(e,typeof t=="object"?JSON.stringify(t):t),Xe=e=>localStorage.removeItem(e);function Ze(e){const t=e?new Date(e):new Date,s={weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return t.toLocaleString(navigator.language||"es-ES",s)}function Ot(e){const t=e?new Date(e):new Date,s=String(t.getDate()).padStart(2,"0"),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getFullYear()).slice(-2),r=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${s}/${n}/${i} ${r}:${a}`}function js(e){const t=e?new Date(e):new Date,s=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${s}-${n}-${i}T${r}:${a}`}const Ut=()=>{var s;const e=navigator,t=((s=e==null?void 0:e.userAgentData)==null?void 0:s.platform)||(e==null?void 0:e.platform)||"";return/Mac|iPhone|iPod|iPad/i.test(t)};function Fe(e){if(!e||typeof e!="object")return!1;const t=e;return Array.isArray(t.errors)&&t.errors.every(s=>Array.isArray(s)&&s.length===2&&typeof s[0]=="string")}function je(e){if(!e||typeof e!="object")return!1;const t=e;return typeof(t==null?void 0:t.status)=="number"&&typeof(t==null?void 0:t.message)=="string"}function $s(e,t){return e!=null&&e.errors?e.errors.map(([s,n])=>t(s,n)):[]}const qt=b.createContext({});function Ds(e){const{children:t}=e,s=b.useRef(0),[n,i]=b.useReducer((y,m)=>{const{type:p,items:C,id:E}=m;switch(p){case"set":return C??[];case"remove":return E!==void 0?y.filter(A=>A.id!==E):[]}return y},[],()=>[]),r=y=>y.map(m=>({...m,id:s.current++})),a=y=>i({type:"set",items:r([{...y,type:K.error}])}),c=y=>i({type:"set",items:r([{...y}])}),l=y=>i({type:"set",items:r(y)}),h=y=>i({type:"set",items:r([{...y,type:K.success}])}),g=y=>i({type:"remove",id:y});return d.jsx(qt.Provider,{value:{notification:n,removeNotification:g,showErrorNotification:a,showNotification:c,showSuccessNotification:h,showStackNotifications:l},children:t})}const xe=()=>{const e=b.useContext(qt);if(e===void 0)throw new Error("NotificationContext must be used within a Provider");return e},he=new we.QueryClient({defaultOptions:{queries:{refetchInterval:!1,refetchOnMount:!0,refetchOnReconnect:!1,retry:!1,retryOnMount:!0,refetchOnWindowFocus:!1}}}),Bt=b.createContext(void 0),Ls=e=>{const{children:t,manager:s}=e;return d.jsx(Bt.Provider,{value:{client:s},children:d.jsx(we.QueryClientProvider,{client:he,children:t})})},Ht=()=>{const e=b.useContext(Bt);if(!e)throw new Error("managerContext must be used within a Provider");return e.client},Qt=b.createContext(void 0),Vs=e=>{const{children:t,guestMode:s="guest_mode",user:n="user"}=e,i=Ht(),[r,a]=b.useState({}),c=b.useCallback(()=>!!it(s,"boolean")&&r.token===void 0,[r.token,s]),l=b.useCallback(p=>{Ye(s,p)},[s]),h=b.useCallback(p=>{p&&(a(p),Xe(s),Ye(n,p.token))},[s,n]),g=b.useCallback(async()=>{try{await i.Auth.logout()}catch(p){console.error(p)}a({}),Xe(n)},[i.Auth,n]),y=b.useCallback(async()=>{try{const p=await i.Auth.getSession();h(p)}catch(p){console.error(p),g()}},[h,g,i.Auth]),m={account:r,logUser:h,logoutUser:g,logUserFromLocal:y,isInGuestMode:c,setGuestMode:l};return d.jsx(Qt.Provider,{value:m,children:t})},at=()=>{const e=b.useContext(Qt);if(!e)throw new Error("authContext must be used within a Provider");return e},Kt=b.createContext({}),Is=e=>{const{children:t,location:s,navigate:n,linkComponent:i,searchComponent:r}=e;return d.jsx(Kt.Provider,{value:{location:s,navigate:n,linkComponent:i,searchComponent:r},children:t})},Ee=()=>{const e=b.useContext(Kt);if(e===void 0||Object.keys(e).length===0)throw new Error("Config provider has not been set. This step is required and cannot be skipped.");return e},ot=b.createContext({}),Ps=e=>{const{children:t}=e,[s,n]=b.useState({}),i=b.useCallback((l,h)=>n(g=>({...g,[l]:[...g[l]??[],h]})),[]),r=b.useCallback((l,h)=>n(g=>({...g,[l]:(g[l]??[]).filter((y,m)=>m!==h)})),[]),a=b.useCallback(l=>{n(l?h=>({...h,[l]:[]}):{})},[]),c=b.useMemo(()=>({dynamicItems:s,addChildItem:i,removeChildItem:r,clearDynamicItems:a}),[s,a,r,i]);return d.jsx(ot.Provider,{value:c,children:t})},Wt=()=>b.useContext(ot),ct=e=>{const{showSuccessNotification:t}=xe(),{mutationFn:s,onError:n,onSuccess:i,onSuccessMessage:r}=e,[a,c]=b.useState([]),{open:l,handleClose:h,handleOpen:g}=ht(),y=()=>{h(),c([])},m=async C=>{c(C),g()},p=we.useMutation({mutationFn:()=>s(Array.isArray(a)?a:[a]),onError:C=>{console.error(C),n&&n(C),y()},onSuccess:async C=>{i&&i(C),t({message:r}),y()}});return{open:l,onClick:m,close:y,dialogFn:p,isLoading:p.isPending}};var $e=e=>e.type==="checkbox",Ce=e=>e instanceof Date,X=e=>e==null;const Gt=e=>typeof e=="object";var B=e=>!X(e)&&!Array.isArray(e)&&Gt(e)&&!Ce(e),Ms=e=>B(e)&&e.target?$e(e.target)?e.target.checked:e.target.value:e,Rs=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Os=(e,t)=>e.has(Rs(t)),Us=e=>{const t=e.constructor&&e.constructor.prototype;return B(t)&&t.hasOwnProperty("isPrototypeOf")},lt=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function J(e){let t;const s=Array.isArray(e),n=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(lt&&(e instanceof Blob||n))&&(s||B(e)))if(t=s?[]:{},!s&&!Us(e))t=e;else for(const i in e)e.hasOwnProperty(i)&&(t[i]=J(e[i]));else return e;return t}var Oe=e=>/^\w*$/.test(e),Q=e=>e===void 0,ut=e=>Array.isArray(e)?e.filter(Boolean):[],dt=e=>ut(e.replace(/["|']|\]/g,"").split(/\.|\[/)),S=(e,t,s)=>{if(!t||!B(e))return s;const n=(Oe(t)?[t]:dt(t)).reduce((i,r)=>X(i)?i:i[r],e);return Q(n)||n===e?Q(e[t])?s:e[t]:n},fe=e=>typeof e=="boolean",O=(e,t,s)=>{let n=-1;const i=Oe(t)?[t]:dt(t),r=i.length,a=r-1;for(;++n<r;){const c=i[n];let l=s;if(n!==a){const h=e[c];l=B(h)||Array.isArray(h)?h:isNaN(+i[n+1])?{}:[]}if(c==="__proto__"||c==="constructor"||c==="prototype")return;e[c]=l,e=e[c]}};const Et={BLUR:"blur",FOCUS_OUT:"focusout"},ce={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ge={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},qs=b.createContext(null);qs.displayName="HookFormContext";var Bs=(e,t,s,n=!0)=>{const i={defaultValues:t._defaultValues};for(const r in e)Object.defineProperty(i,r,{get:()=>{const a=r;return t._proxyFormState[a]!==ce.all&&(t._proxyFormState[a]=!n||ce.all),e[a]}});return i};const Hs=typeof window<"u"?b.useLayoutEffect:b.useEffect;var me=e=>typeof e=="string",Qs=(e,t,s,n,i)=>me(e)?(n&&t.watch.add(e),S(s,e,i)):Array.isArray(e)?e.map(r=>(n&&t.watch.add(r),S(s,r))):(n&&(t.watchAll=!0),s),et=e=>X(e)||!Gt(e);function pe(e,t,s=new WeakSet){if(et(e)||et(t))return e===t;if(Ce(e)&&Ce(t))return e.getTime()===t.getTime();const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;if(s.has(e)||s.has(t))return!0;s.add(e),s.add(t);for(const r of n){const a=e[r];if(!i.includes(r))return!1;if(r!=="ref"){const c=t[r];if(Ce(a)&&Ce(c)||B(a)&&B(c)||Array.isArray(a)&&Array.isArray(c)?!pe(a,c,s):a!==c)return!1}}return!0}var Ks=(e,t,s,n,i)=>t?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[n]:i||!0}}:{},Te=e=>Array.isArray(e)?e:[e],kt=()=>{let e=[];return{get observers(){return e},next:i=>{for(const r of e)r.next&&r.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(r=>r!==i)}}),unsubscribe:()=>{e=[]}}},ee=e=>B(e)&&!Object.keys(e).length,ft=e=>e.type==="file",le=e=>typeof e=="function",Pe=e=>{if(!lt)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Jt=e=>e.type==="select-multiple",mt=e=>e.type==="radio",Ws=e=>mt(e)||$e(e),Je=e=>Pe(e)&&e.isConnected;function Gs(e,t){const s=t.slice(0,-1).length;let n=0;for(;n<s;)e=Q(e)?n++:e[t[n++]];return e}function Js(e){for(const t in e)if(e.hasOwnProperty(t)&&!Q(e[t]))return!1;return!0}function H(e,t){const s=Array.isArray(t)?t:Oe(t)?[t]:dt(t),n=s.length===1?e:Gs(e,s),i=s.length-1,r=s[i];return n&&delete n[r],i!==0&&(B(n)&&ee(n)||Array.isArray(n)&&Js(n))&&H(e,s.slice(0,-1)),e}var zt=e=>{for(const t in e)if(le(e[t]))return!0;return!1};function Me(e,t={}){const s=Array.isArray(e);if(B(e)||s)for(const n in e)Array.isArray(e[n])||B(e[n])&&!zt(e[n])?(t[n]=Array.isArray(e[n])?[]:{},Me(e[n],t[n])):X(e[n])||(t[n]=!0);return t}function Yt(e,t,s){const n=Array.isArray(e);if(B(e)||n)for(const i in e)Array.isArray(e[i])||B(e[i])&&!zt(e[i])?Q(t)||et(s[i])?s[i]=Array.isArray(e[i])?Me(e[i],[]):{...Me(e[i])}:Yt(e[i],X(t)?{}:t[i],s[i]):s[i]=!pe(e[i],t[i]);return s}var ke=(e,t)=>Yt(e,t,Me(t));const At={value:!1,isValid:!1},Tt={value:!0,isValid:!0};var Xt=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!Q(e[0].attributes.value)?Q(e[0].value)||e[0].value===""?Tt:{value:e[0].value,isValid:!0}:Tt:At}return At},Zt=(e,{valueAsNumber:t,valueAsDate:s,setValueAs:n})=>Q(e)?e:t?e===""?NaN:e&&+e:s&&me(e)?new Date(e):n?n(e):e;const Nt={isValid:!1,value:null};var es=e=>Array.isArray(e)?e.reduce((t,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:t,Nt):Nt;function Ft(e){const t=e.ref;return ft(t)?t.files:mt(t)?es(e.refs).value:Jt(t)?[...t.selectedOptions].map(({value:s})=>s):$e(t)?Xt(e.refs).value:Zt(Q(t.value)?e.ref.value:t.value,e)}var zs=(e,t,s,n)=>{const i={};for(const r of e){const a=S(t,r);a&&O(i,r,a._f)}return{criteriaMode:s,names:[...e],fields:i,shouldUseNativeValidation:n}},Re=e=>e instanceof RegExp,Ae=e=>Q(e)?e:Re(e)?e.source:B(e)?Re(e.value)?e.value.source:e.value:e,jt=e=>({isOnSubmit:!e||e===ce.onSubmit,isOnBlur:e===ce.onBlur,isOnChange:e===ce.onChange,isOnAll:e===ce.all,isOnTouch:e===ce.onTouched});const $t="AsyncFunction";var Ys=e=>!!e&&!!e.validate&&!!(le(e.validate)&&e.validate.constructor.name===$t||B(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===$t)),Xs=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Dt=(e,t,s)=>!s&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(n)&&/^\.\w+/.test(e.slice(n.length))));const Ne=(e,t,s,n)=>{for(const i of s||Object.keys(e)){const r=S(e,i);if(r){const{_f:a,...c}=r;if(a){if(a.refs&&a.refs[0]&&t(a.refs[0],i)&&!n)return!0;if(a.ref&&t(a.ref,a.name)&&!n)return!0;if(Ne(c,t))break}else if(B(c)&&Ne(c,t))break}}};function Lt(e,t,s){const n=S(e,s);if(n||Oe(s))return{error:n,name:s};const i=s.split(".");for(;i.length;){const r=i.join("."),a=S(t,r),c=S(e,r);if(a&&!Array.isArray(a)&&s!==r)return{name:s};if(c&&c.type)return{name:r,error:c};if(c&&c.root&&c.root.type)return{name:`${r}.root`,error:c.root};i.pop()}return{name:s}}var Zs=(e,t,s,n)=>{s(e);const{name:i,...r}=e;return ee(r)||Object.keys(r).length>=Object.keys(t).length||Object.keys(r).find(a=>t[a]===(!n||ce.all))},er=(e,t,s)=>!e||!t||e===t||Te(e).some(n=>n&&(s?n===t:n.startsWith(t)||t.startsWith(n))),tr=(e,t,s,n,i)=>i.isOnAll?!1:!s&&i.isOnTouch?!(t||e):(s?n.isOnBlur:i.isOnBlur)?!e:(s?n.isOnChange:i.isOnChange)?e:!0,sr=(e,t)=>!ut(S(e,t)).length&&H(e,t),rr=(e,t,s)=>{const n=Te(S(e,s));return O(n,"root",t[s]),O(e,s,n),e},Ie=e=>me(e);function Vt(e,t,s="validate"){if(Ie(e)||Array.isArray(e)&&e.every(Ie)||fe(e)&&!e)return{type:s,message:Ie(e)?e:"",ref:t}}var Se=e=>B(e)&&!Re(e)?e:{value:e,message:""},It=async(e,t,s,n,i,r)=>{const{ref:a,refs:c,required:l,maxLength:h,minLength:g,min:y,max:m,pattern:p,validate:C,name:E,valueAsNumber:A,mount:W}=e._f,T=S(s,E);if(!W||t.has(E))return{};const D=c?c[0]:a,j=F=>{i&&D.reportValidity&&(D.setCustomValidity(fe(F)?"":F||""),D.reportValidity())},N={},P=mt(a),I=$e(a),te=P||I,L=(A||ft(a))&&Q(a.value)&&Q(T)||Pe(a)&&a.value===""||T===""||Array.isArray(T)&&!T.length,se=Ks.bind(null,E,n,N),ne=(F,$,U,G=ge.maxLength,z=ge.minLength)=>{const M=F?$:U;N[E]={type:F?G:z,message:M,ref:a,...se(F?G:z,M)}};if(r?!Array.isArray(T)||!T.length:l&&(!te&&(L||X(T))||fe(T)&&!T||I&&!Xt(c).isValid||P&&!es(c).isValid)){const{value:F,message:$}=Ie(l)?{value:!!l,message:l}:Se(l);if(F&&(N[E]={type:ge.required,message:$,ref:D,...se(ge.required,$)},!n))return j($),N}if(!L&&(!X(y)||!X(m))){let F,$;const U=Se(m),G=Se(y);if(!X(T)&&!isNaN(T)){const z=a.valueAsNumber||T&&+T;X(U.value)||(F=z>U.value),X(G.value)||($=z<G.value)}else{const z=a.valueAsDate||new Date(T),M=oe=>new Date(new Date().toDateString()+" "+oe),Y=a.type=="time",re=a.type=="week";me(U.value)&&T&&(F=Y?M(T)>M(U.value):re?T>U.value:z>new Date(U.value)),me(G.value)&&T&&($=Y?M(T)<M(G.value):re?T<G.value:z<new Date(G.value))}if((F||$)&&(ne(!!F,U.message,G.message,ge.max,ge.min),!n))return j(N[E].message),N}if((h||g)&&!L&&(me(T)||r&&Array.isArray(T))){const F=Se(h),$=Se(g),U=!X(F.value)&&T.length>+F.value,G=!X($.value)&&T.length<+$.value;if((U||G)&&(ne(U,F.message,$.message),!n))return j(N[E].message),N}if(p&&!L&&me(T)){const{value:F,message:$}=Se(p);if(Re(F)&&!T.match(F)&&(N[E]={type:ge.pattern,message:$,ref:a,...se(ge.pattern,$)},!n))return j($),N}if(C){if(le(C)){const F=await C(T,s),$=Vt(F,D);if($&&(N[E]={...$,...se(ge.validate,$.message)},!n))return j($.message),N}else if(B(C)){let F={};for(const $ in C){if(!ee(F)&&!n)break;const U=Vt(await C[$](T,s),D,$);U&&(F={...U,...se($,U.message)},j(U.message),n&&(N[E]=F))}if(!ee(F)&&(N[E]={ref:D,...F},!n))return N}}return j(!0),N};const nr={mode:ce.onSubmit,reValidateMode:ce.onChange,shouldFocusError:!0};function ir(e={}){let t={...nr,...e},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:le(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},n={},i=B(t.defaultValues)||B(t.values)?J(t.defaultValues||t.values)||{}:{},r=t.shouldUnregister?{}:J(i),a={action:!1,mount:!1,watch:!1},c={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},l,h=0;const g={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let y={...g};const m={array:kt(),state:kt()},p=t.criteriaMode===ce.all,C=o=>u=>{clearTimeout(h),h=setTimeout(o,u)},E=async o=>{if(!t.disabled&&(g.isValid||y.isValid||o)){const u=t.resolver?ee((await I()).errors):await L(n,!0);u!==s.isValid&&m.state.next({isValid:u})}},A=(o,u)=>{!t.disabled&&(g.isValidating||g.validatingFields||y.isValidating||y.validatingFields)&&((o||Array.from(c.mount)).forEach(f=>{f&&(u?O(s.validatingFields,f,u):H(s.validatingFields,f))}),m.state.next({validatingFields:s.validatingFields,isValidating:!ee(s.validatingFields)}))},W=(o,u=[],f,v,x=!0,w=!0)=>{if(v&&f&&!t.disabled){if(a.action=!0,w&&Array.isArray(S(n,o))){const k=f(S(n,o),v.argA,v.argB);x&&O(n,o,k)}if(w&&Array.isArray(S(s.errors,o))){const k=f(S(s.errors,o),v.argA,v.argB);x&&O(s.errors,o,k),sr(s.errors,o)}if((g.touchedFields||y.touchedFields)&&w&&Array.isArray(S(s.touchedFields,o))){const k=f(S(s.touchedFields,o),v.argA,v.argB);x&&O(s.touchedFields,o,k)}(g.dirtyFields||y.dirtyFields)&&(s.dirtyFields=ke(i,r)),m.state.next({name:o,isDirty:ne(o,u),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else O(r,o,u)},T=(o,u)=>{O(s.errors,o,u),m.state.next({errors:s.errors})},D=o=>{s.errors=o,m.state.next({errors:s.errors,isValid:!1})},j=(o,u,f,v)=>{const x=S(n,o);if(x){const w=S(r,o,Q(f)?S(i,o):f);Q(w)||v&&v.defaultChecked||u?O(r,o,u?w:Ft(x._f)):U(o,w),a.mount&&E()}},N=(o,u,f,v,x)=>{let w=!1,k=!1;const V={name:o};if(!t.disabled){if(!f||v){(g.isDirty||y.isDirty)&&(k=s.isDirty,s.isDirty=V.isDirty=ne(),w=k!==V.isDirty);const R=pe(S(i,o),u);k=!!S(s.dirtyFields,o),R?H(s.dirtyFields,o):O(s.dirtyFields,o,!0),V.dirtyFields=s.dirtyFields,w=w||(g.dirtyFields||y.dirtyFields)&&k!==!R}if(f){const R=S(s.touchedFields,o);R||(O(s.touchedFields,o,f),V.touchedFields=s.touchedFields,w=w||(g.touchedFields||y.touchedFields)&&R!==f)}w&&x&&m.state.next(V)}return w?V:{}},P=(o,u,f,v)=>{const x=S(s.errors,o),w=(g.isValid||y.isValid)&&fe(u)&&s.isValid!==u;if(t.delayError&&f?(l=C(()=>T(o,f)),l(t.delayError)):(clearTimeout(h),l=null,f?O(s.errors,o,f):H(s.errors,o)),(f?!pe(x,f):x)||!ee(v)||w){const k={...v,...w&&fe(u)?{isValid:u}:{},errors:s.errors,name:o};s={...s,...k},m.state.next(k)}},I=async o=>{A(o,!0);const u=await t.resolver(r,t.context,zs(o||c.mount,n,t.criteriaMode,t.shouldUseNativeValidation));return A(o),u},te=async o=>{const{errors:u}=await I(o);if(o)for(const f of o){const v=S(u,f);v?O(s.errors,f,v):H(s.errors,f)}else s.errors=u;return u},L=async(o,u,f={valid:!0})=>{for(const v in o){const x=o[v];if(x){const{_f:w,...k}=x;if(w){const V=c.array.has(w.name),R=x._f&&Ys(x._f);R&&g.validatingFields&&A([v],!0);const ie=await It(x,c.disabled,r,p,t.shouldUseNativeValidation&&!u,V);if(R&&g.validatingFields&&A([v]),ie[w.name]&&(f.valid=!1,u))break;!u&&(S(ie,w.name)?V?rr(s.errors,ie,w.name):O(s.errors,w.name,ie[w.name]):H(s.errors,w.name))}!ee(k)&&await L(k,u,f)}}return f.valid},se=()=>{for(const o of c.unMount){const u=S(n,o);u&&(u._f.refs?u._f.refs.every(f=>!Je(f)):!Je(u._f.ref))&&Be(o)}c.unMount=new Set},ne=(o,u)=>!t.disabled&&(o&&u&&O(r,o,u),!pe(oe(),i)),F=(o,u,f)=>Qs(o,c,{...a.mount?r:Q(u)?i:me(o)?{[o]:u}:u},f,u),$=o=>ut(S(a.mount?r:i,o,t.shouldUnregister?S(i,o,[]):[])),U=(o,u,f={})=>{const v=S(n,o);let x=u;if(v){const w=v._f;w&&(!w.disabled&&O(r,o,Zt(u,w)),x=Pe(w.ref)&&X(u)?"":u,Jt(w.ref)?[...w.ref.options].forEach(k=>k.selected=x.includes(k.value)):w.refs?$e(w.ref)?w.refs.forEach(k=>{(!k.defaultChecked||!k.disabled)&&(Array.isArray(x)?k.checked=!!x.find(V=>V===k.value):k.checked=x===k.value||!!x)}):w.refs.forEach(k=>k.checked=k.value===x):ft(w.ref)?w.ref.value="":(w.ref.value=x,w.ref.type||m.state.next({name:o,values:J(r)})))}(f.shouldDirty||f.shouldTouch)&&N(o,x,f.shouldTouch,f.shouldDirty,!0),f.shouldValidate&&re(o)},G=(o,u,f)=>{for(const v in u){if(!u.hasOwnProperty(v))return;const x=u[v],w=o+"."+v,k=S(n,w);(c.array.has(o)||B(x)||k&&!k._f)&&!Ce(x)?G(w,x,f):U(w,x,f)}},z=(o,u,f={})=>{const v=S(n,o),x=c.array.has(o),w=J(u);O(r,o,w),x?(m.array.next({name:o,values:J(r)}),(g.isDirty||g.dirtyFields||y.isDirty||y.dirtyFields)&&f.shouldDirty&&m.state.next({name:o,dirtyFields:ke(i,r),isDirty:ne(o,w)})):v&&!v._f&&!X(w)?G(o,w,f):U(o,w,f),Dt(o,c)&&m.state.next({...s,name:o}),m.state.next({name:a.mount?o:void 0,values:J(r)})},M=async o=>{a.mount=!0;const u=o.target;let f=u.name,v=!0;const x=S(n,f),w=R=>{v=Number.isNaN(R)||Ce(R)&&isNaN(R.getTime())||pe(R,S(r,f,R))},k=jt(t.mode),V=jt(t.reValidateMode);if(x){let R,ie;const Le=u.type?Ft(x._f):Ms(o),be=o.type===Et.BLUR||o.type===Et.FOCUS_OUT,ws=!Xs(x._f)&&!t.resolver&&!S(s.errors,f)&&!x._f.deps||tr(be,S(s.touchedFields,f),s.isSubmitted,V,k),Ke=Dt(f,c,be);O(r,f,Le),be?(x._f.onBlur&&x._f.onBlur(o),l&&l(0)):x._f.onChange&&x._f.onChange(o);const We=N(f,Le,be),xs=!ee(We)||Ke;if(!be&&m.state.next({name:f,type:o.type,values:J(r)}),ws)return(g.isValid||y.isValid)&&(t.mode==="onBlur"?be&&E():be||E()),xs&&m.state.next({name:f,...Ke?{}:We});if(!be&&Ke&&m.state.next({...s}),t.resolver){const{errors:Ct}=await I([f]);if(w(Le),v){const vs=Lt(s.errors,n,f),St=Lt(Ct,n,vs.name||f);R=St.error,f=St.name,ie=ee(Ct)}}else A([f],!0),R=(await It(x,c.disabled,r,p,t.shouldUseNativeValidation))[f],A([f]),w(Le),v&&(R?ie=!1:(g.isValid||y.isValid)&&(ie=await L(n,!0)));v&&(x._f.deps&&re(x._f.deps),P(f,ie,R,We))}},Y=(o,u)=>{if(S(s.errors,u)&&o.focus)return o.focus(),1},re=async(o,u={})=>{let f,v;const x=Te(o);if(t.resolver){const w=await te(Q(o)?o:x);f=ee(w),v=o?!x.some(k=>S(w,k)):f}else o?(v=(await Promise.all(x.map(async w=>{const k=S(n,w);return await L(k&&k._f?{[w]:k}:k)}))).every(Boolean),!(!v&&!s.isValid)&&E()):v=f=await L(n);return m.state.next({...!me(o)||(g.isValid||y.isValid)&&f!==s.isValid?{}:{name:o},...t.resolver||!o?{isValid:f}:{},errors:s.errors}),u.shouldFocus&&!v&&Ne(n,Y,o?x:c.mount),v},oe=o=>{const u={...a.mount?r:i};return Q(o)?u:me(o)?S(u,o):o.map(f=>S(u,f))},De=(o,u)=>({invalid:!!S((u||s).errors,o),isDirty:!!S((u||s).dirtyFields,o),error:S((u||s).errors,o),isValidating:!!S(s.validatingFields,o),isTouched:!!S((u||s).touchedFields,o)}),ve=o=>{o&&Te(o).forEach(u=>H(s.errors,u)),m.state.next({errors:o?s.errors:{}})},gt=(o,u,f)=>{const v=(S(n,o,{_f:{}})._f||{}).ref,x=S(s.errors,o)||{},{ref:w,message:k,type:V,...R}=x;O(s.errors,o,{...R,...u,ref:v}),m.state.next({name:o,errors:s.errors,isValid:!1}),f&&f.shouldFocus&&v&&v.focus&&v.focus()},ms=(o,u)=>le(o)?m.state.subscribe({next:f=>"values"in f&&o(F(void 0,u),f)}):F(o,u,!0),yt=o=>m.state.subscribe({next:u=>{er(o.name,u.name,o.exact)&&Zs(u,o.formState||g,ps,o.reRenderRoot)&&o.callback({values:{...r},...s,...u,defaultValues:i})}}).unsubscribe,hs=o=>(a.mount=!0,y={...y,...o.formState},yt({...o,formState:y})),Be=(o,u={})=>{for(const f of o?Te(o):c.mount)c.mount.delete(f),c.array.delete(f),u.keepValue||(H(n,f),H(r,f)),!u.keepError&&H(s.errors,f),!u.keepDirty&&H(s.dirtyFields,f),!u.keepTouched&&H(s.touchedFields,f),!u.keepIsValidating&&H(s.validatingFields,f),!t.shouldUnregister&&!u.keepDefaultValue&&H(i,f);m.state.next({values:J(r)}),m.state.next({...s,...u.keepDirty?{isDirty:ne()}:{}}),!u.keepIsValid&&E()},bt=({disabled:o,name:u})=>{(fe(o)&&a.mount||o||c.disabled.has(u))&&(o?c.disabled.add(u):c.disabled.delete(u))},He=(o,u={})=>{let f=S(n,o);const v=fe(u.disabled)||fe(t.disabled);return O(n,o,{...f||{},_f:{...f&&f._f?f._f:{ref:{name:o}},name:o,mount:!0,...u}}),c.mount.add(o),f?bt({disabled:fe(u.disabled)?u.disabled:t.disabled,name:o}):j(o,!0,u.value),{...v?{disabled:u.disabled||t.disabled}:{},...t.progressive?{required:!!u.required,min:Ae(u.min),max:Ae(u.max),minLength:Ae(u.minLength),maxLength:Ae(u.maxLength),pattern:Ae(u.pattern)}:{},name:o,onChange:M,onBlur:M,ref:x=>{if(x){He(o,u),f=S(n,o);const w=Q(x.value)&&x.querySelectorAll&&x.querySelectorAll("input,select,textarea")[0]||x,k=Ws(w),V=f._f.refs||[];if(k?V.find(R=>R===w):w===f._f.ref)return;O(n,o,{_f:{...f._f,...k?{refs:[...V.filter(Je),w,...Array.isArray(S(i,o))?[{}]:[]],ref:{type:w.type,name:o}}:{ref:w}}}),j(o,!1,void 0,w)}else f=S(n,o,{}),f._f&&(f._f.mount=!1),(t.shouldUnregister||u.shouldUnregister)&&!(Os(c.array,o)&&a.action)&&c.unMount.add(o)}}},Qe=()=>t.shouldFocusError&&Ne(n,Y,c.mount),gs=o=>{fe(o)&&(m.state.next({disabled:o}),Ne(n,(u,f)=>{const v=S(n,f);v&&(u.disabled=v._f.disabled||o,Array.isArray(v._f.refs)&&v._f.refs.forEach(x=>{x.disabled=v._f.disabled||o}))},0,!1))},pt=(o,u)=>async f=>{let v;f&&(f.preventDefault&&f.preventDefault(),f.persist&&f.persist());let x=J(r);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:w,values:k}=await I();s.errors=w,x=J(k)}else await L(n);if(c.disabled.size)for(const w of c.disabled)H(x,w);if(H(s.errors,"root"),ee(s.errors)){m.state.next({errors:{}});try{await o(x,f)}catch(w){v=w}}else u&&await u({...s.errors},f),Qe(),setTimeout(Qe);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:ee(s.errors)&&!v,submitCount:s.submitCount+1,errors:s.errors}),v)throw v},ys=(o,u={})=>{S(n,o)&&(Q(u.defaultValue)?z(o,J(S(i,o))):(z(o,u.defaultValue),O(i,o,J(u.defaultValue))),u.keepTouched||H(s.touchedFields,o),u.keepDirty||(H(s.dirtyFields,o),s.isDirty=u.defaultValue?ne(o,J(S(i,o))):ne()),u.keepError||(H(s.errors,o),g.isValid&&E()),m.state.next({...s}))},wt=(o,u={})=>{const f=o?J(o):i,v=J(f),x=ee(o),w=x?i:v;if(u.keepDefaultValues||(i=f),!u.keepValues){if(u.keepDirtyValues){const k=new Set([...c.mount,...Object.keys(ke(i,r))]);for(const V of Array.from(k))S(s.dirtyFields,V)?O(w,V,S(r,V)):z(V,S(w,V))}else{if(lt&&Q(o))for(const k of c.mount){const V=S(n,k);if(V&&V._f){const R=Array.isArray(V._f.refs)?V._f.refs[0]:V._f.ref;if(Pe(R)){const ie=R.closest("form");if(ie){ie.reset();break}}}}if(u.keepFieldsRef)for(const k of c.mount)z(k,S(w,k));else n={}}r=t.shouldUnregister?u.keepDefaultValues?J(i):{}:J(w),m.array.next({values:{...w}}),m.state.next({values:{...w}})}c={mount:u.keepDirtyValues?c.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},a.mount=!g.isValid||!!u.keepIsValid||!!u.keepDirtyValues,a.watch=!!t.shouldUnregister,m.state.next({submitCount:u.keepSubmitCount?s.submitCount:0,isDirty:x?!1:u.keepDirty?s.isDirty:!!(u.keepDefaultValues&&!pe(o,i)),isSubmitted:u.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:x?{}:u.keepDirtyValues?u.keepDefaultValues&&r?ke(i,r):s.dirtyFields:u.keepDefaultValues&&o?ke(i,o):u.keepDirty?s.dirtyFields:{},touchedFields:u.keepTouched?s.touchedFields:{},errors:u.keepErrors?s.errors:{},isSubmitSuccessful:u.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1})},xt=(o,u)=>wt(le(o)?o(r):o,u),bs=(o,u={})=>{const f=S(n,o),v=f&&f._f;if(v){const x=v.refs?v.refs[0]:v.ref;x.focus&&(x.focus(),u.shouldSelect&&le(x.select)&&x.select())}},ps=o=>{s={...s,...o}},vt={control:{register:He,unregister:Be,getFieldState:De,handleSubmit:pt,setError:gt,_subscribe:yt,_runSchema:I,_focusError:Qe,_getWatch:F,_getDirty:ne,_setValid:E,_setFieldArray:W,_setDisabledField:bt,_setErrors:D,_getFieldArray:$,_reset:wt,_resetDefaultValues:()=>le(t.defaultValues)&&t.defaultValues().then(o=>{xt(o,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:se,_disableForm:gs,_subjects:m,_proxyFormState:g,get _fields(){return n},get _formValues(){return r},get _state(){return a},set _state(o){a=o},get _defaultValues(){return i},get _names(){return c},set _names(o){c=o},get _formState(){return s},get _options(){return t},set _options(o){t={...t,...o}}},subscribe:hs,trigger:re,register:He,handleSubmit:pt,watch:ms,setValue:z,getValues:oe,reset:xt,resetField:ys,clearErrors:ve,unregister:Be,setError:gt,setFocus:bs,getFieldState:De};return{...vt,formControl:vt}}function ts(e={}){const t=b.useRef(void 0),s=b.useRef(void 0),[n,i]=b.useState({isDirty:!1,isValidating:!1,isLoading:le(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:le(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:n},e.defaultValues&&!le(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:a,...c}=ir(e);t.current={...c,formState:n}}const r=t.current.control;return r._options=e,Hs(()=>{const a=r._subscribe({formState:r._proxyFormState,callback:()=>i({...r._formState}),reRenderRoot:!0});return i(c=>({...c,isReady:!0})),r._formState.isReady=!0,a},[r]),b.useEffect(()=>r._disableForm(e.disabled),[r,e.disabled]),b.useEffect(()=>{e.mode&&(r._options.mode=e.mode),e.reValidateMode&&(r._options.reValidateMode=e.reValidateMode)},[r,e.mode,e.reValidateMode]),b.useEffect(()=>{e.errors&&(r._setErrors(e.errors),r._focusError())},[r,e.errors]),b.useEffect(()=>{e.shouldUnregister&&r._subjects.state.next({values:r._getWatch()})},[r,e.shouldUnregister]),b.useEffect(()=>{if(r._proxyFormState.isDirty){const a=r._getDirty();a!==n.isDirty&&r._subjects.state.next({isDirty:a})}},[r,n.isDirty]),b.useEffect(()=>{e.values&&!pe(e.values,s.current)?(r._reset(e.values,{keepFieldsRef:!0,...r._options.resetOptions}),s.current=e.values,i(a=>({...a}))):r._resetDefaultValues()},[r,e.values]),b.useEffect(()=>{r._state.mount||(r._setValid(),r._state.mount=!0),r._state.watch&&(r._state.watch=!1,r._subjects.state.next({...r._formState})),r._removeUnmounted()}),t.current.formState=Bs(n,r),t.current}const ar=e=>{const{t}=_.useTranslation(),{showStackNotifications:s,showSuccessNotification:n}=xe(),{defaultValues:i,mutationFn:r,formToDto:a,onError:c,onSuccess:l,queryKey:h,onSuccessMessage:g}=e,{control:y,handleSubmit:m,reset:p,setError:C,getValues:E,setValue:A}=ts({defaultValues:i}),W=b.useCallback(j=>{const N=j==null?void 0:j.errors,P=[];return N&&N.forEach(([I,te])=>{const L=document.querySelector(`[name="${I}"]`);(L instanceof HTMLInputElement||L instanceof HTMLTextAreaElement||L instanceof HTMLSelectElement)&&(L.focus(),L.classList.add("error"),P.push(t(`_entities:${h}.${I}.${te}`)))}),P},[t,h]),T=b.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(N=>{N.classList.remove("error")})},[]),D=we.useMutation({mutationFn:r,onError:j=>{console.error(j);const N=j;if(c)c(j);else if(Fe(N)){const P=W(N);s(P.map(I=>({message:I,type:K.error})))}else if(je(N)){const P=N.message||t("_accessibility:errors.500"),I=t(`_accessibility:errors.${N.status}`);s([{message:I||P,type:K.error}])}},onSuccess:async j=>{he&&await he.invalidateQueries({queryKey:h}),l&&l(j),g&&n({message:g})}});return{control:y,getValues:E,setValue:A,handleSubmit:m,onSubmit:j=>{T(),D.mutate(a?a(j):j)},reset:p,setError:C,isLoading:D.isPending}},ss=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1}=e;return{action:b.useCallback(a=>({id:ye.Delete,hidden:!!a.deletedAt||n,disabled:!!a.deletedAt||i,icon:d.jsx(ae.FontAwesomeIcon,{className:"text-error",icon:q.faTrash}),tooltip:t("_pages:common.actions.delete.text"),onClick:()=>s([a==null?void 0:a.id]),onMultipleClick:c=>s(c.map(l=>l.id)),multiple:!0}),[i,n,s,t])}},rs=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:b.useCallback(r=>({id:ye.Restore,hidden:!r.deletedAt||n,disabled:!r.deletedAt,icon:d.jsx(ae.FontAwesomeIcon,{className:"text-error",icon:q.faRotateLeft}),tooltip:t("_pages:common.actions.restore.text"),onClick:()=>s([r==null?void 0:r.id]),onMultipleClick:a=>s(a.map(c=>c.id)),multiple:!0}),[n,s,t])}},or=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:b.useCallback(r=>({id:ye.Edit,hidden:!!r.deletedAt||n,disabled:!!r.deletedAt,icon:d.jsx(ae.FontAwesomeIcon,{className:"primary",icon:q.faPencil}),tooltip:t("_pages:common.actions.edit.text"),onClick:()=>s(r==null?void 0:r.id)}),[n,s,t])}};var ye=(e=>(e.Add="add",e.Edit="edit",e.Delete="delete",e.Restore="restore",e.Refresh="refresh",e.Export="export",e.Import="import",e))(ye||{});const ns=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:b.useCallback(()=>({id:ye.Export,hidden:n,disabled:i,icon:d.jsx(ae.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?q.faCircleNotch:q.faCloudArrowDown}),tooltip:t("_pages:common.actions.export.text"),onClick:s}),[i,n,r,s,t])}},is=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:b.useCallback(()=>({id:ye.Import,hidden:n,disabled:i,icon:d.jsx(ae.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?q.faCircleNotch:q.faCloudUpload}),tooltip:t("_pages:common.actions.import.text"),onClick:s}),[i,n,r,s,t])}},cr=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=xe(),{t:r}=_.useTranslation(),{open:a,onClick:c,close:l,dialogFn:h,isLoading:g}=ct({onSuccessMessage:r("_pages:common.actions.delete.successMessage"),onError:m=>{const p=m;if(Fe(p))i(p.errors.map(([C,E])=>({message:r(`_pages:${C}.errors.${E}`),type:K.error})));else if(je(p)){const C=p.message||r("_accessibility:errors.500"),E=r(`_accessibility:errors.${p.status}`);i([{message:E||C,type:K.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:y}=ss({onClick:c});return{onClick:c,title:r("_pages:common.actions.delete.dialog.title"),open:a,isLoading:g,handleSubmit:()=>h.mutate(),handleClose:l,action:y}},ht=()=>{const[e,t]=b.useState(!1);return{open:e,setOpen:t,handleClose:()=>t(!1),handleOpen:()=>t(!0)}},lr=e=>{const{t}=_.useTranslation(),{showErrorNotification:s,showStackNotifications:n,showSuccessNotification:i}=xe(),{defaultValues:r,getFunction:a,mutationFn:c,formToDto:l,dtoToForm:h,onError:g,onSuccess:y,queryKey:m,onSuccessMessage:p,title:C}=e,[E,A]=b.useState(0),{open:W,handleClose:T,handleOpen:D}=ht(),{control:j,handleSubmit:N,reset:P,setError:I,getValues:te,setValue:L}=ts({defaultValues:r}),{data:se,isLoading:ne}=we.useQuery({queryFn:()=>a==null?void 0:a(E),queryKey:[...m,E],enabled:!!a&&!!m&&!!E});b.useEffect(()=>{se&&h&&P({...h(se)})},[se]);const F=b.useCallback(M=>{const Y=M==null?void 0:M.errors,re=[];return Y&&Y.forEach(([oe,De])=>{const ve=document.querySelector(`[name="${oe}"]`);(ve instanceof HTMLInputElement||ve instanceof HTMLTextAreaElement||ve instanceof HTMLSelectElement)&&(ve.focus(),ve.classList.add("error"),re.push(t(`_entities:${m}.${oe}.${De}`)))}),re},[t,m]),$=b.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(Y=>{Y.classList.remove("error")})},[]),U=b.useCallback(M=>{A(M??0),D()},[D]),G=b.useCallback(()=>{$(),T(),P()},[P,$,T]),z=we.useMutation({mutationFn:c,onError:M=>{if(console.error(M),g)g(M);else{const Y=M;if(Fe(Y)){const re=F(Y);n(re.map(oe=>({message:oe,type:K.error})))}else if(je(Y)){const re=Y.message||t("_accessibility:errors.500"),oe=t(`_accessibility:errors.${Y.status}`);s({message:oe||re})}else s({message:t("_accessibility:errors.500")})}},onSuccess:async M=>{await he.invalidateQueries({queryKey:m}),y&&y(M),i({message:p}),G()}});return{open:W,openDialog:U,handleClose:G,control:j,getValues:te,setValue:L,handleSubmit:N,onSubmit:M=>z.mutate(l?l(M):M),reset:P,setError:I,title:C,isLoading:ne||z.isPending}},ur=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=xe(),{t:r}=_.useTranslation(),{open:a,onClick:c,close:l,dialogFn:h,isLoading:g}=ct({onSuccessMessage:r("_pages:common.actions.restore.successMessage"),onError:m=>{const p=m;if(Fe(p))i(p.errors.map(([C,E])=>({message:r(`_pages:${C}.errors.${E}`),type:K.error})));else if(je(p)){const C=p.message||r("_accessibility:errors.500"),E=r(`_accessibility:errors.${p.status}`);i([{message:E||C,type:K.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:y}=rs({onClick:c});return{onClick:c,title:r("_pages:common.actions.restore.dialog.title"),open:a,isLoading:g,handleSubmit:()=>h.mutate(),handleClose:l,action:y}};function dr(e){const{t}=_.useTranslation(),{queryKey:s,mutationFn:n,entity:i,fileProcessor:r,onError:a}=e,[c,l]=b.useState(!1),[h,g]=b.useState(null),[y,m]=b.useState(!1),p=we.useMutation({mutationFn:n,onError:E=>{console.error(E),a==null||a(E)},onSuccess:async()=>{he&&await he.invalidateQueries({queryKey:s})}}),{action:C}=is({onClick:()=>l(!0)});return{handleSubmit:async()=>{if(!(!h||h.length===0))try{await p.mutateAsync({items:h,override:y}),l(!1),g(null),m(!1)}catch(E){console.error(E)}},isLoading:p.isPending,fileProcessor:r,onFileProcessed:E=>g(E),onOverrideChange:E=>m(E),open:c,title:t("_pages:common.actions.import.dialog.title",{entity:t(`_pages:${i}.title`)}),handleClose:()=>{l(!1),g(null)},action:C}}const fr=e=>{const{showSuccessNotification:t}=xe(),{t:s}=_.useTranslation(),{entity:n,mutationFn:i,onError:r,onSuccess:a,onSuccessMessage:c=s("_pages:common.actions.export.successMessage")}=e,l=we.useMutation({mutationFn:()=>i(),onError:y=>{console.error(y),r&&r(y)},onSuccess:async y=>{const m=JSON.stringify(y,null,2),p=new Blob([m],{type:"application/json"}),C=URL.createObjectURL(p),E=document.createElement("a");E.href=C,E.download=`${n}.json`,E.click(),URL.revokeObjectURL(C),a&&a(y),t({message:c})}}),h=b.useCallback(()=>{l.mutate()},[l]),{action:g}=ns({onClick:h,isLoading:l.isPending});return{action:g}};function as(e){const[t,s]=b.useState(!1),n=b.useCallback(()=>{const i=window.scrollY>e;s(i)},[e]);return b.useEffect(()=>(window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),t}const mr=()=>{const{t:e}=_.useTranslation(),t=as(200);return d.jsx(ue,{variant:"submit",color:"primary",icon:q.faArrowUp,"data-tooltip-id":"tooltip",onClick:()=>ks.scrollTo(0,0),className:`to-top ${t?"show":"hide"}`,"data-tooltip-content":e("_accessibility:buttons.toTop")})},os=e=>{const{actions:t=[],className:s=""}=e,{t:n}=_.useTranslation(),[i,r]=b.useState(!1),[a,c]=b.useState(null);return d.jsxs("div",{className:`actions-dropdown ${s}`,children:[d.jsx(ue,{icon:q.faEllipsisV,onClick:l=>{c(l.currentTarget),r(h=>!h)},className:"actions-dropdown-trigger","data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),d.jsx(_.Dropdown,{open:i,onClose:()=>r(!1),anchorEl:a,children:d.jsx(st,{showActionTexts:!0,actions:t,itemClassName:"w-full",actionClassName:"action-dropdown-item",className:"actions-dropdown-list",showTooltips:!1})})]})},hr=b.forwardRef(function(e,t){const{value:s,onChange:n,state:i=_.State.default,name:r="",id:a="",label:c="",disabled:l=!1,required:h=!1,containerClassName:g="",inputClassName:y="",labelClassName:m="",helperText:p="",helperTextClassName:C="",...E}=e;return d.jsxs("div",{className:`form-paragraph-container group ${g}`,children:[d.jsx("textarea",{ref:t,name:r,id:a,className:`text-input text-area form-paragraph-textarea peer ${_.inputStateClassName(i)} ${y}`,required:h,value:s,onChange:n,disabled:l,...E}),d.jsxs("label",{htmlFor:a,className:`text-input-label ${_.labelStateClassName(i)} ${m}`,children:[c,h?" *":""]}),!!p&&d.jsx("p",{className:`text-input-helper-text ${_.helperTextStateClassName(i)} ${C}`,children:p})]})}),gr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,isLoading:r=!1,buttonEnd:a=!0,reset:c}=e;return d.jsxs("form",{className:"form-container",onSubmit:n(i),children:[s,d.jsxs("div",{className:`form-actions ${a?"end":""}`,children:[d.jsxs(_.Button,{type:"submit",color:"primary",variant:"submit",disabled:r,name:t("_accessibility:buttons.submit"),"aria-label":t("_accessibility:ariaLabels.submit"),children:[r?d.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t("_accessibility:buttons.submit")]}),d.jsx(_.Button,{type:"button",variant:"outlined",onClick:()=>c==null?void 0:c(),name:t("_accessibility:buttons.cancel"),"aria-label":t("_accessibility:ariaLabels.cancel"),children:t("_accessibility:buttons.cancel")})]})]})},yr=b.forwardRef(function(e,t){const{t:s}=_.useTranslation(),[n,i]=b.useState(!1);return d.jsx(_.TextInput,{...e,type:n?"text":"password",ref:t,children:d.jsx(ue,{type:"button",tabIndex:-1,"aria-label":s(n?"_accessibility:ariaLabels.hidePassword":"_accessibility:ariaLabels.showPassword"),className:"password-icon",onClick:()=>i(!n),icon:n?q.faEyeSlash:q.faEye})})}),Ue=e=>{const{t}=_.useTranslation(),{title:s,children:n,handleClose:i,open:r=!1,containerClassName:a="",className:c="",animationClass:l="appear"}=e,h=b.useCallback(y=>{y.key==="Escape"&&r&&i()},[r,i]);b.useEffect(()=>(window.addEventListener("keydown",h),()=>{window.removeEventListener("keydown",h)}),[h]);const g=b.useCallback(y=>{y.target===y.currentTarget&&i()},[i]);return b.useEffect(()=>{const y=m=>{m?document.body.style.overflow="hidden":document.body.style.overflow="auto"};return y(r),()=>{y(!1)}},[r]),Pt.createPortal(d.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeDialog"),"aria-hidden":!r,onClick:g,className:`dialog-backdrop animated ${r?`opened ${l}`:"closed"} ${a}`,children:d.jsxs("div",{className:`dialog elevated animated ${r?`opened ${l}`:"closed"} ${c}`,children:[d.jsxs("div",{className:"dialog-header",children:[d.jsx("h3",{className:"dialog-title",children:s}),d.jsx(ue,{icon:q.faClose,disabled:!r,"aria-disabled":!r,onClick:i,className:"icon-button dialog-close-btn",name:t("_accessibility:buttons.closeDialog"),"aria-label":t("_accessibility:ariaLabels.closeDialog")})]}),n]})}),document.body)},qe=e=>{const{primaryText:t,cancelText:s,onPrimaryClick:n,onCancel:i,isLoading:r=!1,disabled:a=!1,primaryType:c="submit",containerClassName:l="",primaryClassName:h="",alignEnd:g=!1,primaryName:y,primaryAriaLabel:m,cancelName:p,cancelAriaLabel:C}=e;return d.jsxs("div",{className:`dialog-actions ${g?"end":""} ${l}`,children:[d.jsxs(_.Button,{type:c,color:"primary",variant:"submit",className:h,disabled:a,onClick:n,name:y,"aria-label":m,children:[r?d.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t]}),d.jsx(_.Button,{type:"button",variant:"outlined",disabled:a,onClick:i,name:p,"aria-label":C,children:s})]})},br=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,handleClose:r,isLoading:a=!1,buttonEnd:c=!0,...l}=e;return d.jsx(Ue,{...l,handleClose:r,children:d.jsxs("form",{onSubmit:n(i),children:[d.jsx("div",{className:"form-container",children:s}),d.jsx(qe,{primaryType:"submit",primaryText:t("_accessibility:buttons.submit"),cancelText:t("_accessibility:buttons.cancel"),onCancel:r,isLoading:a,disabled:a,primaryClassName:"dialog-form-primary",alignEnd:c,primaryName:t("_accessibility:buttons.submit"),primaryAriaLabel:t("_accessibility:ariaLabels.submit"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})})},pr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,handleClose:i,isLoading:r=!1,...a}=e;return d.jsxs(Ue,{...a,handleClose:i,children:[s,d.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:n,onCancel:i,isLoading:r,disabled:r,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function wr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return d.jsx("p",{className:`import-error-message ${s}`,children:t??n("_messages:errors.parseFile",{defaultValue:"Failed to process file"})})}function xr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return d.jsxs("div",{className:`import-loading ${s}`,children:[d.jsx(_.Loading,{loaderClass:"w-5 h-5",className:"!w-auto"}),d.jsx("span",{children:t??n("_messages:loading.processingFile",{defaultValue:"Processing file..."})})]})}function vr(e){const{items:t,max:s=5,className:n=""}=e,{t:i}=_.useTranslation();if(!t||t.length===0)return null;const r=t.slice(0,s);return d.jsxs("div",{className:`import-preview ${n}`,children:[d.jsx("p",{className:"import-preview-count",children:i("_pages:common.actions.import.previewCount",{count:t.length,defaultValue:`Preview: ${t.length} items`})}),d.jsx("pre",{className:"import-preview-content",children:JSON.stringify(r,null,2)})]})}const cs=()=>({file:null,previewItems:null,parseError:null,processing:!1,overrideExisting:!1,inputKey:0});function Cr(e,t){switch(t.type){case"SET_FILE":return{...e,file:t.file,previewItems:null,parseError:null,processing:!1};case"START_PROCESSING":return{...e,processing:!0};case"SET_PREVIEW":return{...e,previewItems:t.items,parseError:null,processing:!1};case"SET_ERROR":return{...e,previewItems:null,parseError:t.message,processing:!1};case"SET_OVERRIDE":return{...e,overrideExisting:t.value};case"RESET":return{...cs(),inputKey:e.inputKey+1}}}const Sr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,handleClose:i,isLoading:r=!1,fileProcessor:a,onFileProcessed:c,onOverrideChange:l,open:h,...g}=e,[y,m]=b.useReducer(Cr,cs()),{file:p,previewItems:C,parseError:E,processing:A,overrideExisting:W,inputKey:T}=y,D=b.useRef(c),j=b.useRef(a);b.useEffect(()=>{D.current=c},[c]),b.useEffect(()=>{j.current=a},[a]),b.useEffect(()=>{h||m({type:"RESET"})},[h]);const N=b.useCallback(async(P,I)=>{var te;if(j.current){m({type:"START_PROCESSING"});try{const L=await j.current(P,{override:I});m({type:"SET_PREVIEW",items:L??[]}),(te=D.current)==null||te.call(D,L??[])}catch(L){console.error(L);const se=L instanceof Error?L.message:"Failed to parse file";m({type:"SET_ERROR",message:se})}}},[]);return d.jsxs(Ue,{...g,open:h,handleClose:i,children:[d.jsx(_.FileInput,{onClear:()=>{var P;m({type:"SET_FILE",file:null}),(P=D.current)==null||P.call(D,[])},onChange:P=>{var te,L;const I=(te=P.target.files)==null?void 0:te[0];if(!I){m({type:"SET_FILE",file:null}),(L=D.current)==null||L.call(D,[]);return}m({type:"SET_FILE",file:I}),N(I,W)},label:t("_accessibility:labels.file")},T),d.jsxs("label",{className:"import-override-label",children:[d.jsx("input",{type:"checkbox",checked:W,onChange:P=>{const I=P.target.checked;m({type:"SET_OVERRIDE",value:I}),l==null||l(I),p&&N(p,I)}}),d.jsx("span",{children:t("_pages:common.actions.import.override",{defaultValue:"Override existing items"})})]}),d.jsx(wr,{message:E}),A&&d.jsx(xr,{}),!!C&&C.length>0&&d.jsx(vr,{items:C}),s,d.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:()=>{(!a||!!C&&C.length>0)&&n()},onCancel:i,isLoading:r,primaryType:"button",containerClassName:"import-dialog-actions",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function _r(e){const{t}=_.useTranslation(),{open:s,onClose:n,menuMap:i,logo:r}=e,{account:a}=at(),{dynamicItems:c}=Wt(),{linkComponent:l,location:h}=Ee(),g=l,y=b.useMemo(()=>i.filter(A=>{const W=A.auth,T=!!(a!=null&&a.email);return W==null||W&&T||!W&&!T}),[a==null?void 0:a.email,i]),m=b.useCallback(A=>{A.key==="Escape"&&s&&n()},[n,s]);b.useEffect(()=>(document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}),[m]);const p=b.useCallback((A,W)=>W?A===`${h.pathname}${h.search}`:A===h.pathname,[h.pathname,h.search]),C=b.useCallback(A=>d.jsx("li",{className:`drawer-list-item-child ${p(A.path,!0)?"active":""} animated`,children:A.path?d.jsx(g,{tabIndex:s?0:-1,to:A.path??"/","aria-label":t(`_accessibility:ariaLabels.${A.id}`,{defaultValue:A.label}),className:"drawer-link",children:A.label}):A.label},A.id),[g,s,t,p]),E=b.useMemo(()=>y.map((A,W)=>{const T=A.page??String(W),D=`drawer-list-item ${p(A.path)?"active":""} animated`;if(A.type==="divider")return d.jsx("li",{className:D,children:d.jsx("hr",{className:"drawer-divider"})},T);const j=A.children??(A.page&&c?c[A.page]:null);return d.jsxs("li",{className:D,children:[d.jsxs(g,{tabIndex:s?0:-1,to:A.path??"/","aria-label":t(`_accessibility:ariaLabels.${String(A.page)}`,{defaultValue:t(`_pages:${String(A.page)}.title`)}),className:"drawer-link",children:[A.icon,t(`_pages:${A.page}.title`)]}),j&&d.jsx("ul",{className:"drawer-children-list",children:j.map(C)})]},T)}),[g,c,p,s,y,C,t]);return d.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeMenu"),"aria-disabled":!s,className:`${s?"opened":"closed"} drawer-backdrop`,onClick:()=>n(),children:d.jsxs("aside",{className:`${s?"opened":"closed"} drawer animated`,children:[d.jsxs("div",{className:"drawer-header-container",children:[r,d.jsx("h2",{className:"drawer-header poppins",children:t("_pages:home.appName")})]}),d.jsx("ul",{className:"drawer-menu-list",children:E})]})})}function Er(e){const{error:t,resetErrorBoundary:s}=e,{t:n}=_.useTranslation();return d.jsxs("div",{className:"error-container",children:[d.jsx(ae.FontAwesomeIcon,{icon:_s.faSadTear,className:"error-icon"}),d.jsx("p",{className:"error-message",children:(t==null?void 0:t.message)??n("_accessibility:errors.unknownError")}),s&&d.jsx("button",{className:"error-retry",onClick:s,children:n("_accessibility:actions.retry",{defaultValue:"Retry"})})]})}const kr=e=>{const{showBackButton:t,title:s,actions:n}=e,{t:i}=_.useTranslation(),{navigate:r}=Ee();return d.jsxs("div",{className:"page-header",children:[d.jsxs("div",{className:"page-header-left",children:[t&&d.jsx(ue,{icon:q.faArrowLeft,onClick:()=>r(-1),name:i("_accessibility:buttons.back"),"data-tooltip-id":"tooltip","data-tooltip-content":i("_accessibility:buttons.back")}),d.jsx("h2",{className:"page-header-title",children:s})]}),d.jsxs("div",{children:[d.jsx(st,{className:"page-header-actions-desktop",actions:n??[]}),d.jsx(os,{className:"page-header-actions-mobile",actions:n??[]})]})]})},Ar=e=>{const{title:t,children:s,addOptions:n,filterOptions:i,actions:r,queryKey:a,isLoading:c=!1,isAnimated:l=!0,showBackButton:h=!1}=e,{t:g}=_.useTranslation(),{countOfFilters:y}=_.useTableOptions(),m=b.useMemo(()=>{const p=Array.isArray(r)?[...r]:[];if(a){const C={id:ye.Refresh,onClick:()=>he.invalidateQueries({queryKey:a}),icon:d.jsx(ae.FontAwesomeIcon,{icon:q.faRotateLeft}),tooltip:g("_pages:common.actions.refresh.text")};p.unshift(C)}if(n){const C={...n,id:ye.Add,icon:d.jsx(ae.FontAwesomeIcon,{icon:q.faAdd})};p.unshift(C)}if(i){const C={...i,id:"filter",icon:d.jsx(ae.FontAwesomeIcon,{icon:q.faFilter}),children:d.jsx(_.Badge,{className:`${y>0?"show":"hide"} `,count:y})};p.push(C)}return p},[r,n,y,i,a,g]);return d.jsxs("main",{className:"page-main",children:[d.jsx(kr,{showBackButton:h,actions:m,title:t}),d.jsx("div",{className:`page-main-content ${l?"appear":""}`,children:c?d.jsx(_.Loading,{className:"page-loading"}):s}),n&&d.jsx(ue,{icon:n.icon??q.faAdd,color:n.color??"primary",variant:n.variant??"submit",onClick:()=>{var p;return(p=n.onClick)==null?void 0:p.call(n)},className:`button fab ${n.className??""}`})]})},Tr=e=>{const{t}=_.useTranslation(),{className:s="",itemClassName:n="",loading:i=!1,emptyComponent:r=null,emptyMessage:a=t("_accessibility:messages.empty"),renderComponent:c,data:l=[]}=e;return i?d.jsx(_.Loading,{}):d.jsx(d.Fragment,{children:l!=null&&l.length?d.jsx("ul",{className:`pretty-grid-main ${s}`,children:l==null?void 0:l.map(h=>d.jsx("li",{className:`pretty-grid-item ${n}`,children:c(h)},h.id))}):d.jsx(d.Fragment,{children:r||d.jsx(fs,{message:a})})})},Nr=()=>{const[e,t]=b.useState(Ze());return b.useEffect(()=>{const s=window.matchMedia("(min-width: 768px)"),n=()=>{t(s.matches?Ze():Ot())},i=setInterval(n,1e3);return s.addEventListener("change",n),()=>{clearInterval(i),s.removeEventListener("change",n)}},[]),d.jsx("p",{className:"clock",children:e})};function Fr(e){const{t}=_.useTranslation(),{openDrawer:s,showClock:n=!0,showSearch:i=!0,menuButtonProps:r}=e,{searchComponent:a,location:c}=Ee(),[l,h]=b.useState(!1),g=b.useCallback(m=>{(Ut()?m.metaKey:m.ctrlKey)&&m.shiftKey&&m.key.toLowerCase()==="f"&&(h(!0),m.preventDefault())},[]);b.useEffect(()=>(window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}),[g]);const y=a;return d.jsxs(d.Fragment,{children:[c.pathname!=="/"&&!!y&&d.jsx(y,{open:l,onClose:()=>h(!1)}),d.jsxs("header",{id:"header",className:"header",children:[d.jsxs("div",{className:"navbar-left",children:[d.jsx(ue,{...r,type:(r==null?void 0:r.type)??"button",icon:(r==null?void 0:r.icon)??q.faBars,onClick:m=>{var p;(p=r==null?void 0:r.onClick)==null||p.call(r,m),s()},name:(r==null?void 0:r.name)??t("_accessibility:buttons.openMenu"),"aria-label":(r==null?void 0:r["aria-label"])??t("_accessibility:ariaLabels.openMenu"),className:`navbar-menu animated ${(r==null?void 0:r.className)??""}`}),d.jsx("h1",{className:"poppins navbar-title",children:t("_pages:home.appName")})]}),d.jsxs("div",{className:"navbar-right",children:[i&&d.jsx(ue,{icon:q.faSearch,className:"navbar-search-btn",onClick:()=>h(!0)}),n&&d.jsx(Nr,{})]})]})]})}const Ve=300,jr=e=>e??K.error,$r=e=>{switch(e){case K.error:return q.faWarning;default:return q.faCircleCheck}},ze=e=>{switch(e){case K.success:return"!text-success";case K.error:return"!text-error";case K.warning:return"!text-warning";default:return"!text-info"}},Dr=e=>{switch(e){case K.success:return"bg-bg-success";case K.error:return"bg-bg-error";case K.warning:return"bg-bg-warning";default:return"bg-bg-info"}};function Lr(){const{t:e}=_.useTranslation(),{notification:t,removeNotification:s}=xe(),[n,i]=b.useState([]),r=b.useRef(n);b.useLayoutEffect(()=>{r.current=n});const a=b.useRef(null),c=b.useCallback(l=>{i(h=>l!==void 0?h.map(g=>g.id===l?{...g,closing:!0}:g):h.map(g=>({...g,closing:!0}))),l!==void 0?setTimeout(()=>{s(l),i(h=>h.filter(g=>g.id!==l))},Ve):(a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{s(),i([]),a.current=null},Ve))},[s]);return b.useEffect(()=>{let l=null;const h=()=>{l&&clearTimeout(l),a.current&&(clearTimeout(a.current),a.current=null)};if(t.length===0)return r.current.length===0?void 0:(a.current&&clearTimeout(a.current),l=setTimeout(()=>{i(p=>p.map(C=>({...C,closing:!0}))),l=null},0),a.current=setTimeout(()=>{i([]),a.current=null},Ve),h);const g=new Set(r.current.map(p=>p.id));if(!t.some(p=>p.id!==void 0&&!g.has(p.id)))return;if(r.current.length===0){const p=[...t];return l=setTimeout(()=>{i(p.map(C=>({...C,closing:!1}))),l=null},0),()=>{l&&clearTimeout(l)}}a.current&&clearTimeout(a.current),l=setTimeout(()=>{i(p=>p.every(C=>C.closing)?p:p.map(C=>({...C,closing:!0}))),l=null},0);const m=[...t];return a.current=setTimeout(()=>{i(m.map(p=>({...p,closing:!1}))),a.current=null},Ve),h},[t]),b.useEffect(()=>{if(!n.length)return;let l;const h=window.setTimeout(()=>{l=()=>c(),window.addEventListener("click",l)},0),g=y=>{y.key==="Escape"&&c()};return window.addEventListener("keydown",g),()=>{window.clearTimeout(h),l&&window.removeEventListener("click",l),window.removeEventListener("keydown",g)}},[n.length,c]),Pt.createPortal(d.jsx("div",{className:`notification-portal ${n.length?"active":""}`,children:n.map(({id:l,type:h,message:g,closing:y})=>{const m=jr(h);return d.jsxs("div",{className:`notification ${y?"closing":""} ${Dr(m)}`,onClick:p=>p.stopPropagation(),children:[d.jsxs("div",{className:"notification-body",children:[d.jsx(ae.FontAwesomeIcon,{icon:$r(m),className:`notification-icon ${ze(m)}`}),d.jsx("p",{className:`notification-text ${ze(m)}`,children:g})]}),d.jsx(ue,{type:"button",icon:q.faClose,color:"error",className:"notification-close group",onClick:p=>{p.stopPropagation(),l!==void 0&&c(l)},iconClassName:`${ze(m)} notification-close-icon`,name:e("_accessibility:buttons.closeNotification"),"aria-label":e("_accessibility:ariaLabels.closeNotification")})]},l)})}),document.body)}function Vr(e){const{className:t,...s}=e;return d.jsx("div",{className:"splash-screen",children:d.jsx(_.Loading,{className:`blur-appear ${t?` ${t}`:""}`,...s})})}const ls=e=>{const{id:t,active:s,onClick:n,children:i,to:r}=e,{linkComponent:a}=Ee(),c=a;return d.jsx(c,{to:r??`#${t}`,onClick:()=>n(),className:`button submit tab ${s?"primary":"outlined"}`,children:i})},us=e=>{var l;const{tabs:t=[],defaultTab:s,className:n="",tabsContainerClassName:i=""}=e,[r,a]=b.useState(s??((l=t[0])==null?void 0:l.id)),c=b.useMemo(()=>t.find(h=>h.id===r),[t,r]);return d.jsxs("div",{className:`tabs-layout-main ${n}`,children:[d.jsx("ul",{className:`horizontal tabs tabs-container ${i}`,children:t.map(({id:h,to:g,label:y})=>d.jsx("li",{children:d.jsx(ls,{onClick:()=>a(h),id:h,to:g??"",siblings:t.length>1,active:r===h,children:y})},h))}),c==null?void 0:c.content]})},ds=e=>{const{translation:t,onClickNext:s,image:n="",alt:i="",final:r=!1}=e,{setGuestMode:a}=at(),{navigate:c}=Ee(),{t:l}=_.useTranslation();return d.jsxs("div",{className:"big-appear step-container",children:[n&&d.jsx("img",{src:n,alt:i}),d.jsx("h2",{className:"step-title",children:l(`_pages:onboarding.${t}.title`)}),d.jsx("p",{className:"step-body",children:l(`_pages:onboarding.${t}.body`)}),d.jsx("div",{className:"step-actions",children:r?d.jsxs(d.Fragment,{children:[d.jsx(_.Button,{color:"primary",className:"step-button",variant:"outlined",onClick:()=>{a(!0),c("/")},"aria-label":l("_accessibility:ariaLabels.start"),children:l("_accessibility:buttons.startAsGuest")}),d.jsx(_.Button,{color:"primary",variant:"submit",className:"step-button","aria-label":l("_accessibility:ariaLabels.start"),onClick:()=>c("/auth/sign-in"),children:l("_accessibility:buttons.signIn")})]}):d.jsxs(d.Fragment,{children:[d.jsx(_.Button,{color:"primary",className:"step-button",variant:"outlined",onClick:()=>c("/auth/sign-in"),"aria-label":l("_accessibility:ariaLabels.skip"),children:l("_accessibility:buttons.skip")}),d.jsx(_.Button,{color:"primary",className:"step-button",variant:"outlined",onClick:()=>s(),"aria-label":l("_accessibility:ariaLabels.next"),children:l("_accessibility:buttons.next")})]})})]})},Ir=e=>{const{steps:t}=e,[s,n]=b.useState(1),i=b.useMemo(()=>t.map((r,a)=>({id:a+1,label:"",content:d.jsx(ds,{translation:r,final:a===t.length-1,onClickNext:()=>n(c=>c+1)})})),[t]);return d.jsx("div",{className:"onboarding-main",children:d.jsx(us,{defaultTab:s,tabs:i})})},fs=e=>{const{message:t,messageProps:s={className:"empty-message"},action:n,iconProps:i}=e;return d.jsxs("div",{className:"empty-container",children:[i&&d.jsx(ae.FontAwesomeIcon,{...i}),d.jsx("p",{...s,children:t}),n&&d.jsx(tt,{showTooltips:!1,showText:!0,...n})]})};Object.defineProperty(exports,"Button",{enumerable:!0,get:()=>_.Button});exports.APIClient=nt;exports.Action=tt;exports.Actions=st;exports.ActionsDropdown=os;exports.AppIconButton=ue;exports.AuthClient=Rt;exports.AuthProvider=Vs;exports.BaseClient=Ns;exports.ConfigProvider=Is;exports.ConfirmationDialog=pr;exports.Dialog=Ue;exports.DialogActions=qe;exports.Drawer=_r;exports.DrawerMenuContext=ot;exports.DrawerMenuProvider=Ps;exports.Empty=fs;exports.Error=Er;exports.FormContainer=gr;exports.FormDialog=br;exports.GlobalActions=ye;exports.IManager=Ts;exports.IconButton=ue;exports.ImportDialog=Sr;exports.ManagerProvider=Ls;exports.Methods=Z;exports.Navbar=Fr;exports.Notification=Lr;exports.NotificationEnumType=K;exports.NotificationProvider=Ds;exports.Onboarding=Ir;exports.Page=Ar;exports.ParagraphInput=hr;exports.PasswordInput=yr;exports.PrettyGrid=Tr;exports.SplashScreen=Vr;exports.Step=ds;exports.Tab=ls;exports.TabsLayout=us;exports.ToTop=mr;exports.buildQueryUrl=Mt;exports.enumToKeyValueArray=Fs;exports.formatForDatetimeLocal=js;exports.fromLocal=it;exports.getFormattedDateTime=Ze;exports.getShortFormattedDateTime=Ot;exports.isHttpError=je;exports.isMac=Ut;exports.isValidationError=Fe;exports.makeRequest=_e;exports.mapValidationErrors=$s;exports.parseQueries=rt;exports.queryClient=he;exports.removeFromLocal=Xe;exports.toLocal=Ye;exports.useAuth=at;exports.useConfig=Ee;exports.useConfirmationForm=ct;exports.useDeleteAction=ss;exports.useDeleteDialog=cr;exports.useDialog=ht;exports.useDrawerMenu=Wt;exports.useEditAction=or;exports.useExportAction=ns;exports.useExportActionMutate=fr;exports.useFormDialog=lr;exports.useImportAction=is;exports.useImportDialog=dr;exports.useManager=Ht;exports.useNotification=xe;exports.usePostForm=ar;exports.useRestoreAction=rs;exports.useRestoreDialog=ur;exports.useScrollTrigger=as;exports.useTimeAge=As;Object.keys(_).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>_[e]})});