proje-react-panel 1.0.8 → 1.0.10

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 (100) hide show
  1. package/.eslintrc.js +2 -0
  2. package/.idea/vcs.xml +0 -1
  3. package/.idea/watcherTasks.xml +4 -0
  4. package/dist/api/crudApi.d.ts +12 -4
  5. package/dist/components/ErrorBoundary.d.ts +16 -0
  6. package/dist/components/ErrorComponent.d.ts +4 -0
  7. package/dist/components/Form.d.ts +6 -0
  8. package/dist/components/FormField.d.ts +13 -0
  9. package/dist/components/Label.d.ts +8 -0
  10. package/dist/components/Panel.d.ts +3 -1
  11. package/dist/components/layout/Layout.d.ts +9 -2
  12. package/dist/components/layout/SideBar.d.ts +13 -2
  13. package/dist/components/list/List.d.ts +5 -5
  14. package/dist/components/screens/ControllerCreate.d.ts +5 -0
  15. package/dist/components/screens/ControllerDetails.d.ts +5 -0
  16. package/dist/components/screens/ControllerEdit.d.ts +5 -0
  17. package/dist/components/screens/ControllerList.d.ts +5 -0
  18. package/dist/components/screens/Login.d.ts +4 -0
  19. package/dist/decorators/Cell.d.ts +9 -0
  20. package/dist/decorators/Input.d.ts +13 -0
  21. package/dist/hooks/useScreens.d.ts +2 -0
  22. package/dist/index.cjs.js +1 -12
  23. package/dist/index.d.ts +6 -1
  24. package/dist/index.esm.js +1 -12
  25. package/dist/initPanel.d.ts +2 -0
  26. package/dist/initPanelOptions.d.ts +8 -0
  27. package/dist/screens/ControllerDetails.d.ts +2 -2
  28. package/dist/screens/ControllerEdit.d.ts +2 -2
  29. package/dist/screens/ControllerList.d.ts +2 -2
  30. package/dist/screens/Form.d.ts +2 -2
  31. package/dist/src/api/crudApi.d.ts +6 -0
  32. package/dist/src/components/Panel.d.ts +9 -0
  33. package/dist/src/components/layout/Layout.d.ts +11 -0
  34. package/dist/src/components/layout/SideBar.d.ts +10 -0
  35. package/dist/src/components/list/List.d.ts +10 -0
  36. package/dist/src/decorators/Crud.d.ts +6 -0
  37. package/dist/src/index.d.ts +8 -0
  38. package/dist/src/screens/ControllerCreate.d.ts +5 -0
  39. package/dist/src/screens/ControllerDetails.d.ts +5 -0
  40. package/dist/src/screens/ControllerEdit.d.ts +5 -0
  41. package/dist/src/screens/ControllerList.d.ts +5 -0
  42. package/dist/src/screens/Form.d.ts +6 -0
  43. package/dist/src/store/store.d.ts +19 -0
  44. package/dist/src/types/Screen.d.ts +4 -0
  45. package/dist/src/types/ScreenCreatorData.d.ts +8 -0
  46. package/dist/src/utils/createScreens.d.ts +1 -0
  47. package/dist/src/utils/getFields.d.ts +2 -0
  48. package/dist/src/utils/getScreens.d.ts +2 -0
  49. package/dist/store/store.d.ts +19 -0
  50. package/dist/types/ScreenCreatorData.d.ts +9 -6
  51. package/dist/types/initPanelOptions.d.ts +8 -0
  52. package/dist/utils/crudScreens.d.ts +2 -0
  53. package/dist/utils/getFields.d.ts +1 -1
  54. package/dist/utils/getScreens.d.ts +2 -0
  55. package/package.json +14 -8
  56. package/src/api/crudApi.ts +30 -28
  57. package/src/components/ErrorBoundary.tsx +64 -0
  58. package/src/components/ErrorComponent.tsx +15 -0
  59. package/src/components/Form.tsx +70 -0
  60. package/src/components/FormField.tsx +60 -0
  61. package/src/components/Label.tsx +15 -0
  62. package/src/components/Panel.tsx +12 -7
  63. package/src/components/layout/Layout.tsx +16 -12
  64. package/src/components/layout/SideBar.tsx +38 -12
  65. package/src/components/list/List.tsx +73 -67
  66. package/src/components/screens/ControllerCreate.tsx +7 -0
  67. package/src/components/screens/ControllerDetails.tsx +40 -0
  68. package/src/components/screens/ControllerEdit.tsx +35 -0
  69. package/src/components/screens/ControllerList.tsx +44 -0
  70. package/src/components/screens/Login.tsx +64 -0
  71. package/src/decorators/Cell.ts +34 -0
  72. package/src/decorators/Input.ts +50 -0
  73. package/src/hooks/useScreens.tsx +37 -0
  74. package/src/index.ts +7 -2
  75. package/src/initPanel.ts +14 -0
  76. package/src/store/store.ts +18 -0
  77. package/src/styles/error-boundary.scss +89 -0
  78. package/src/styles/form.scss +38 -6
  79. package/src/styles/index.scss +22 -4
  80. package/src/styles/layout.scss +49 -0
  81. package/src/styles/list.scss +8 -6
  82. package/src/styles/login.scss +90 -0
  83. package/src/styles/sidebar.scss +17 -22
  84. package/src/types/ScreenCreatorData.ts +10 -7
  85. package/src/types/initPanelOptions.ts +8 -0
  86. package/src/utils/createScreens.ts +2 -2
  87. package/src/utils/getFields.ts +8 -9
  88. package/dist/utils/getScreenForRoutes.d.ts +0 -2
  89. package/dist/utils/storeData.d.ts +0 -4
  90. package/src/declerations/Cell.ts +0 -37
  91. package/src/screens/ControllerCreate.tsx +0 -13
  92. package/src/screens/ControllerDetails.tsx +0 -34
  93. package/src/screens/ControllerEdit.tsx +0 -31
  94. package/src/screens/ControllerList.tsx +0 -40
  95. package/src/screens/Form.tsx +0 -67
  96. package/src/utils/getScreenForRoutes.tsx +0 -44
  97. package/src/utils/storeData.ts +0 -7
  98. /package/dist/{declerations → decorators}/Crud.d.ts +0 -0
  99. /package/dist/{declerations → src/decorators}/Cell.d.ts +0 -0
  100. /package/src/{declerations → decorators}/Crud.ts +0 -0
package/.eslintrc.js CHANGED
@@ -1,5 +1,6 @@
1
1
  module.exports = {
2
2
  root: true,
3
+ extends: ["eslint:recommended", "plugin:react/recommended"],
3
4
  parser: "@typescript-eslint/parser",
4
5
  plugins: ["@typescript-eslint"],
5
6
  overrides: [
@@ -10,6 +11,7 @@ module.exports = {
10
11
  "@typescript-eslint/no-shadow": ["error"],
11
12
  "no-shadow": "off",
12
13
  "no-undef": "off",
14
+ "no-unused-vars": "off",
13
15
  },
14
16
  },
15
17
  ],
package/.idea/vcs.xml CHANGED
@@ -2,6 +2,5 @@
2
2
  <project version="4">
3
3
  <component name="VcsDirectoryMappings">
4
4
  <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- <mapping directory="$PROJECT_DIR$/examples/src/types/generated" vcs="Git" />
6
5
  </component>
7
6
  </project>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectTasksOptions" suppressed-tasks="SCSS" />
4
+ </project>
@@ -1,6 +1,14 @@
1
1
  export declare const CrudApi: {
2
- getList: (api: string, page: number) => Promise<any>;
3
- create: (api: string, data: any) => Promise<any>;
4
- details(api: string, id: any): Promise<any>;
5
- edit(api: string, data: any): Promise<any>;
2
+ getList: (fetchSettings: {
3
+ baseUrl: string;
4
+ }, api: string) => Promise<any>;
5
+ create: (fetchSettings: {
6
+ baseUrl: string;
7
+ }, api: string, data: any) => Promise<any>;
8
+ details: (fetchSettings: {
9
+ baseUrl: string;
10
+ }, api: string, id: any) => Promise<any>;
11
+ edit: (fetchSettings: {
12
+ baseUrl: string;
13
+ }, api: string, data: any) => Promise<any>;
6
14
  };
@@ -0,0 +1,16 @@
1
+ import React, { Component, ErrorInfo, ReactNode } from "react";
2
+ interface Props {
3
+ children: ReactNode;
4
+ }
5
+ interface State {
6
+ hasError: boolean;
7
+ error: Error | null;
8
+ errorInfo: ErrorInfo | null;
9
+ }
10
+ export declare class ErrorBoundary extends Component<Props, State> {
11
+ state: State;
12
+ static getDerivedStateFromError(error: Error): State;
13
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
14
+ render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
15
+ }
16
+ export {};
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ export declare function ErrorComponent({ error }: {
3
+ error: unknown;
4
+ }): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { Screen } from "../types/Screen";
3
+ export declare function Form({ data, screen }: {
4
+ data?: any;
5
+ screen: Screen;
6
+ }): React.JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { InputOptions } from "../decorators/Input";
3
+ import { UseFormRegister } from "react-hook-form";
4
+ interface FormFieldProps {
5
+ input: InputOptions;
6
+ register: UseFormRegister<any>;
7
+ isEditForm: boolean;
8
+ error?: {
9
+ message?: string;
10
+ };
11
+ }
12
+ export declare function FormField({ input, register, isEditForm, error }: FormFieldProps): React.JSX.Element;
13
+ export {};
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface LabelProps {
3
+ htmlFor: string;
4
+ label?: string;
5
+ fieldName: string;
6
+ }
7
+ export declare function Label({ htmlFor, label, fieldName }: LabelProps): React.JSX.Element;
8
+ export {};
@@ -1,6 +1,8 @@
1
1
  import React from "react";
2
+ import { InitPanelOptions } from "../types/initPanelOptions";
2
3
  type AppProps = {
3
4
  children: React.ReactNode;
5
+ init: () => InitPanelOptions;
4
6
  };
5
- export declare function Panel({ children }: AppProps): React.JSX.Element;
7
+ export declare function Panel({ children, init }: AppProps): React.JSX.Element;
6
8
  export {};
@@ -1,4 +1,11 @@
1
- import React from 'react';
2
- export declare function Layout({ children, }: {
1
+ import React from "react";
2
+ import { ScreenCreatorData } from "../../types/ScreenCreatorData";
3
+ export declare function Layout<IconType>({ children, menu, getIcons, }: {
3
4
  children?: React.ReactNode;
5
+ menu?: (screens: Record<string, ScreenCreatorData>) => {
6
+ name: string;
7
+ path: string;
8
+ iconType: IconType;
9
+ }[];
10
+ getIcons?: (iconType: IconType) => React.ReactNode;
4
11
  }): React.JSX.Element;
@@ -1,2 +1,13 @@
1
- import React from 'react';
2
- export declare function SideBar(): React.JSX.Element;
1
+ import React from "react";
2
+ import { ScreenCreatorData } from "../../types/ScreenCreatorData";
3
+ type GetMenuFunction<IconType> = (screens: Record<string, ScreenCreatorData>) => {
4
+ name: string;
5
+ path: string;
6
+ iconType: IconType;
7
+ }[];
8
+ type GetIconsFunction<IconType> = (iconType: IconType) => React.ReactNode;
9
+ export declare function SideBar<IconType>({ menu, getIcons, }: {
10
+ menu?: GetMenuFunction<IconType>;
11
+ getIcons?: GetIconsFunction<IconType>;
12
+ }): React.JSX.Element;
13
+ export {};
@@ -1,10 +1,10 @@
1
- import React from 'react';
2
- import { CellOptions } from '../../declerations/Cell';
3
- import { Screen } from '../../types/Screen';
1
+ import React from "react";
2
+ import { CellOptions } from "../../decorators/Cell";
3
+ import { Screen } from "../../types/Screen";
4
4
  interface ListProps<T> {
5
5
  data: T[];
6
- cells: CellOptions<T>[];
6
+ cells: CellOptions[];
7
7
  screen: Screen;
8
8
  }
9
- export declare function List<T>({ data, cells, screen }: ListProps<T>): React.JSX.Element;
9
+ export declare function List<T>({ data, cells }: ListProps<T>): React.JSX.Element;
10
10
  export {};
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Screen } from "../../types/Screen";
3
+ export declare function ControllerCreate({ screen }: {
4
+ screen: Screen;
5
+ }): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Screen } from "../../types/Screen";
3
+ export declare function ControllerDetails({ screen }: {
4
+ screen: Screen;
5
+ }): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Screen } from "../../types/Screen";
3
+ export declare function ControllerEdit({ screen }: {
4
+ screen: Screen;
5
+ }): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Screen } from "../../types/Screen";
3
+ export declare function ControllerList({ screen }: {
4
+ screen: Screen;
5
+ }): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import "../../styles/login.scss";
3
+ declare function Login(): React.JSX.Element;
4
+ export default Login;
@@ -0,0 +1,9 @@
1
+ import "reflect-metadata";
2
+ export interface CellOptions {
3
+ name?: string;
4
+ title?: string;
5
+ type?: "string" | "number" | "date";
6
+ placeHolder?: string;
7
+ }
8
+ export declare function Cell(options?: CellOptions): PropertyDecorator;
9
+ export declare function getCellFields(entityClass: any): CellOptions[];
@@ -0,0 +1,13 @@
1
+ import "reflect-metadata";
2
+ export interface InputOptions {
3
+ name?: string;
4
+ label?: string;
5
+ placeholder?: string;
6
+ editable?: boolean;
7
+ inputType?: "text" | "email" | "tel" | "password" | "number" | "date";
8
+ type?: "input" | "select" | "textarea";
9
+ selectOptions?: string[];
10
+ cancelPasswordValidationOnEdit?: boolean;
11
+ }
12
+ export declare function Input(options?: InputOptions): PropertyDecorator;
13
+ export declare function getInputFields(entityClass: any): InputOptions[];
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare function useScreens(): React.JSX.Element;
package/dist/index.cjs.js CHANGED
@@ -1,12 +1 @@
1
- "use strict";var e=require("react");function t(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var r=t(e);const n={screens:{}};var a,i={};
2
- /**
3
- * react-router v7.3.0
4
- *
5
- * Copyright (c) Remix Software Inc.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE.md file in the root directory of this source tree.
9
- *
10
- * @license MIT
11
- */
12
- function o(e,t){if(!1===e||null==e)throw new Error(t)}function s(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function l({pathname:e="/",search:t="",hash:r=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),r&&"#"!==r&&(e+="#"===r.charAt(0)?r:"#"+r),e}function u(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function c(e,t,r="/"){return function(e,t,r,n){let a="string"==typeof t?u(t):t,i=_(a.pathname||"/",r);if(null==i)return null;let o=d(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let r=e.length===t.length&&e.slice(0,-1).every(((e,r)=>e===t[r]));return r?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let s=null;for(let e=0;null==s&&e<o.length;++e){let t=S(i);s=E(o[e],t,n)}return s}(e,t,r,!1)}function d(e,t=[],r=[],n=""){let a=(e,a,i)=>{let s={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};s.relativePath.startsWith("/")&&(o(s.relativePath.startsWith(n),`Absolute route path "${s.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),s.relativePath=s.relativePath.slice(n.length));let l=F([n,s.relativePath]),u=r.concat(s);e.children&&e.children.length>0&&(o(!0!==e.index,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),d(e.children,t,u,l)),(null!=e.path||e.index)&&t.push({path:l,score:w(l,e.index),routesMeta:u})};return e.forEach(((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let r of f(e.path))a(e,t,r);else a(e,t)})),t}function f(e){let t=e.split("/");if(0===t.length)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(0===n.length)return a?[i,""]:[i];let o=f(n.join("/")),s=[];return s.push(...o.map((e=>""===e?i:[i,e].join("/")))),a&&s.push(...o),s.map((t=>e.startsWith("/")&&""===t?"/":t))}!function(){if(a)return i;a=1,Object.defineProperty(i,"__esModule",{value:!0}),i.parse=function(e,t){const r=new s,n=e.length;if(n<2)return r;const a=t?.decode||c;let i=0;do{const t=e.indexOf("=",i);if(-1===t)break;const o=e.indexOf(";",i),s=-1===o?n:o;if(t>s){i=e.lastIndexOf(";",t-1)+1;continue}const c=l(e,i,t),d=u(e,t,c),f=e.slice(c,d);if(void 0===r[f]){let n=l(e,t+1,s),i=u(e,s,n);const o=a(e.slice(n,i));r[f]=o}i=s+1}while(i<n);return r},i.serialize=function(a,i,s){const l=s?.encode||encodeURIComponent;if(!e.test(a))throw new TypeError(`argument name is invalid: ${a}`);const u=l(i);if(!t.test(u))throw new TypeError(`argument val is invalid: ${i}`);let c=a+"="+u;if(!s)return c;if(void 0!==s.maxAge){if(!Number.isInteger(s.maxAge))throw new TypeError(`option maxAge is invalid: ${s.maxAge}`);c+="; Max-Age="+s.maxAge}if(s.domain){if(!r.test(s.domain))throw new TypeError(`option domain is invalid: ${s.domain}`);c+="; Domain="+s.domain}if(s.path){if(!n.test(s.path))throw new TypeError(`option path is invalid: ${s.path}`);c+="; Path="+s.path}if(s.expires){if(!function(e){return"[object Date]"===o.call(e)}(s.expires)||!Number.isFinite(s.expires.valueOf()))throw new TypeError(`option expires is invalid: ${s.expires}`);c+="; Expires="+s.expires.toUTCString()}s.httpOnly&&(c+="; HttpOnly");s.secure&&(c+="; Secure");s.partitioned&&(c+="; Partitioned");if(s.priority){switch("string"==typeof s.priority?s.priority.toLowerCase():void 0){case"low":c+="; Priority=Low";break;case"medium":c+="; Priority=Medium";break;case"high":c+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${s.priority}`)}}if(s.sameSite){switch("string"==typeof s.sameSite?s.sameSite.toLowerCase():s.sameSite){case!0:case"strict":c+="; SameSite=Strict";break;case"lax":c+="; SameSite=Lax";break;case"none":c+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${s.sameSite}`)}}return c};const e=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,t=/^[\u0021-\u003A\u003C-\u007E]*$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,n=/^[\u0020-\u003A\u003D-\u007E]*$/,o=Object.prototype.toString,s=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function l(e,t,r){do{const r=e.charCodeAt(t);if(32!==r&&9!==r)return t}while(++t<r);return r}function u(e,t,r){for(;t>r;){const r=e.charCodeAt(--t);if(32!==r&&9!==r)return t+1}return r}function c(e){if(-1===e.indexOf("%"))return e;try{return decodeURIComponent(e)}catch(t){return e}}}();var m=/^:[\w-]+$/,h=3,p=2,y=1,v=10,g=-2,b=e=>"*"===e;function w(e,t){let r=e.split("/"),n=r.length;return r.some(b)&&(n+=g),t&&(n+=p),r.filter((e=>!b(e))).reduce(((e,t)=>e+(m.test(t)?h:""===t?y:v)),n)}function E(e,t,r=!1){let{routesMeta:n}=e,a={},i="/",o=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===i?t:t.slice(i.length)||"/",c=x({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=x({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),o.push({params:a,pathname:F([i,c.pathname]),pathnameBase:D(F([i,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(i=F([i,c.pathnameBase]))}return o}function x(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=function(e,t=!1,r=!0){s("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,r)=>(n.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))");let i=new RegExp(a,t?void 0:"i");return[i,n]}(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:n.reduce(((e,{paramName:t,isOptional:r},n)=>{if("*"===t){let e=l[n]||"";o=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const a=l[n];return e[t]=r&&!a?void 0:(a||"").replace(/%2F/g,"/"),e}),{}),pathname:i,pathnameBase:o,pattern:e}}function S(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return s(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function _(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}function A(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function C(e){let t=function(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}(e);return t.map(((e,r)=>r===t.length-1?e.pathname:e.pathnameBase))}function k(e,t,r,n=!1){let a;"string"==typeof e?a=u(e):(a={...e},o(!a.pathname||!a.pathname.includes("?"),A("?","pathname","search",a)),o(!a.pathname||!a.pathname.includes("#"),A("#","pathname","hash",a)),o(!a.search||!a.search.includes("#"),A("#","search","hash",a)));let i,s=""===e||""===a.pathname,l=s?"/":a.pathname;if(null==l)i=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}i=e>=0?t[e]:"/"}let c=function(e,t="/"){let{pathname:r,search:n="",hash:a=""}="string"==typeof e?u(e):e,i=r?r.startsWith("/")?r:function(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)})),r.length>1?r.join("/"):"/"}(r,t):t;return{pathname:i,search:V(n),hash:$(a)}}(a,i),d=l&&"/"!==l&&l.endsWith("/"),f=(s||"."===l)&&r.endsWith("/");return c.pathname.endsWith("/")||!d&&!f||(c.pathname+="/"),c}var F=e=>e.join("/").replace(/\/\/+/g,"/"),D=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),V=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",$=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";var R=["POST","PUT","PATCH","DELETE"];new Set(R);var T=["GET",...R];new Set(T);var N=r.createContext(null);N.displayName="DataRouter";var L=r.createContext(null);L.displayName="DataRouterState";var O=r.createContext({isTransitioning:!1});O.displayName="ViewTransition",r.createContext(new Map).displayName="Fetchers",r.createContext(null).displayName="Await";var j=r.createContext(null);j.displayName="Navigation";var P=r.createContext(null);P.displayName="Location";var M=r.createContext({outlet:null,matches:[],isDataRoute:!1});M.displayName="Route";var U=r.createContext(null);function B(){return null!=r.useContext(P)}function W(){return o(B(),"useLocation() may be used only in the context of a <Router> component."),r.useContext(P).location}U.displayName="RouteError";var I="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function z(e){r.useContext(j).static||r.useLayoutEffect(e)}function H(){let{isDataRoute:e}=r.useContext(M);return e?function(){let{router:e}=function(e){let t=r.useContext(N);return o(t,ee(e)),t}("useNavigate"),t=te("useNavigate"),n=r.useRef(!1);return z((()=>{n.current=!0})),r.useCallback((async(r,a={})=>{s(n.current,I),n.current&&("number"==typeof r?e.navigate(r):await e.navigate(r,{fromRouteId:t,...a}))}),[e,t])}():function(){o(B(),"useNavigate() may be used only in the context of a <Router> component.");let e=r.useContext(N),{basename:t,navigator:n}=r.useContext(j),{matches:a}=r.useContext(M),{pathname:i}=W(),l=JSON.stringify(C(a)),u=r.useRef(!1);return z((()=>{u.current=!0})),r.useCallback(((r,a={})=>{if(s(u.current,I),!u.current)return;if("number"==typeof r)return void n.go(r);let o=k(r,JSON.parse(l),i,"path"===a.relative);null==e&&"/"!==t&&(o.pathname="/"===o.pathname?t:F([t,o.pathname])),(a.replace?n.replace:n.push)(o,a.state,a)}),[t,n,l,i,e])}()}var J=r.createContext(null);function q(){let{matches:e}=r.useContext(M),t=e[e.length-1];return t?t.params:{}}function K(e,{relative:t}={}){let{matches:n}=r.useContext(M),{pathname:a}=W(),i=JSON.stringify(C(n));return r.useMemo((()=>k(e,JSON.parse(i),a,"path"===t)),[e,i,a,t])}function Y(e,t,n,a){o(B(),"useRoutes() may be used only in the context of a <Router> component.");let i,{navigator:l,static:u}=r.useContext(j),{matches:d}=r.useContext(M),f=d[d.length-1],m=f?f.params:{},h=f?f.pathname:"/",p=f?f.pathnameBase:"/",y=f&&f.route;{let e=y&&y.path||"";ne(h,!y||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${h}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}i=W();let v=i.pathname||"/",g=v;if("/"!==p){let e=p.replace(/^\//,"").split("/");g="/"+v.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=!u&&n&&n.matches&&n.matches.length>0?n.matches:c(e,{pathname:g});s(y||null!=b,`No routes matched location "${i.pathname}${i.search}${i.hash}" `),s(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,`Matched leaf route at location "${i.pathname}${i.search}${i.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let w=function(e,t=[],n=null){if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let a=e,i=n?.errors;if(null!=i){let e=a.findIndex((e=>e.route.id&&void 0!==i?.[e.route.id]));o(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),a=a.slice(0,Math.min(a.length,e+1))}let s=!1,l=-1;if(n)for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(l=e),t.route.id){let{loaderData:e,errors:r}=n,i=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!r||void 0===r[t.route.id]);if(t.route.lazy||i){s=!0,a=l>=0?a.slice(0,l+1):[a[0]];break}}}return a.reduceRight(((e,o,u)=>{let c,d=!1,f=null,m=null;n&&(c=i&&o.route.id?i[o.route.id]:void 0,f=o.route.errorElement||X,s&&(l<0&&0===u?(ne("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,m=null):l===u&&(d=!0,m=o.route.hydrateFallbackElement||null)));let h=t.concat(a.slice(0,u+1)),p=()=>{let t;return t=c?f:d?m:o.route.Component?r.createElement(o.route.Component,null):o.route.element?o.route.element:e,r.createElement(Z,{match:o,routeContext:{outlet:e,matches:h,isDataRoute:null!=n},children:t})};return n&&(o.route.ErrorBoundary||o.route.errorElement||0===u)?r.createElement(Q,{location:n.location,revalidation:n.revalidation,component:f,error:c,children:p(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):p()}),null)}(b&&b.map((e=>Object.assign({},e,{params:Object.assign({},m,e.params),pathname:F([p,l.encodeLocation?l.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?p:F([p,l.encodeLocation?l.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),d,n,a);return w}function G(){let e=function(){let e=r.useContext(U),t=function(e){let t=r.useContext(L);return o(t,ee(e)),t}("useRouteError"),n=te("useRouteError");if(void 0!==e)return e;return t.errors?.[n]}(),t=function(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:a},s={padding:"2px 4px",backgroundColor:a},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=r.createElement(r.Fragment,null,r.createElement("p",null,"💿 Hey developer 👋"),r.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",r.createElement("code",{style:s},"ErrorBoundary")," or"," ",r.createElement("code",{style:s},"errorElement")," prop on your route.")),r.createElement(r.Fragment,null,r.createElement("h2",null,"Unexpected Application Error!"),r.createElement("h3",{style:{fontStyle:"italic"}},t),n?r.createElement("pre",{style:i},n):null,l)}var X=r.createElement(G,null),Q=class extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?r.createElement(M.Provider,{value:this.props.routeContext},r.createElement(U.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Z({routeContext:e,match:t,children:n}){let a=r.useContext(N);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),r.createElement(M.Provider,{value:e},n)}function ee(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function te(e){let t=function(e){let t=r.useContext(M);return o(t,ee(e)),t}(e),n=t.matches[t.matches.length-1];return o(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}var re={};function ne(e,t,r){t||re[e]||(re[e]=!0,s(!1,r))}function ae(e){return function(e){let t=r.useContext(M).outlet;return t?r.createElement(J.Provider,{value:e},t):t}(e.context)}function ie(e){o(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}r.memo((function({routes:e,future:t,state:r}){return Y(e,0,r,t)}));var oe="get",se="application/x-www-form-urlencoded";function le(e){return null!=e&&"string"==typeof e.tagName}var ue=null;var ce=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function de(e){return null==e||ce.has(e)?e:(s(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${se}"`),null)}function fe(e,t){let r,n,a,i,o;if(le(s=e)&&"form"===s.tagName.toLowerCase()){let o=e.getAttribute("action");n=o?_(o,t):null,r=e.getAttribute("method")||oe,a=de(e.getAttribute("enctype"))||se,i=new FormData(e)}else if(function(e){return le(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return le(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let o=e.form;if(null==o)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||o.getAttribute("action");if(n=s?_(s,t):null,r=e.getAttribute("formmethod")||o.getAttribute("method")||oe,a=de(e.getAttribute("formenctype"))||de(o.getAttribute("enctype"))||se,i=new FormData(o,e),!function(){if(null===ue)try{new FormData(document.createElement("form"),0),ue=!1}catch(e){ue=!0}return ue}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?`${t}.`:"";i.append(`${e}x`,"0"),i.append(`${e}y`,"0")}else t&&i.append(t,n)}}else{if(le(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=oe,n=null,a=se,o=e}var s;return i&&"text/plain"===a&&(o=i,i=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:i,body:o}}function me(e,t){if(!1===e||null==e)throw new Error(t)}function he(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}async function pe(e,t,r){return function(e,t){let r=new Set;return new Set(t),e.reduce(((e,t)=>{let n=JSON.stringify(function(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}(t));return r.has(n)||(r.add(n),e.push({key:n,link:t})),e}),[])}((await Promise.all(e.map((async e=>{let n=t.routes[e.route.id];if(n){let e=await async function(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise((()=>{}))}}(n,r);return e.links?e.links():[]}return[]})))).flat(1).filter(he).filter((e=>"stylesheet"===e.rel||"preload"===e.rel)).map((e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"})))}function ye(e,t,r,n,a,i){let o=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>r[t].pathname!==e.pathname||r[t].route.path?.endsWith("*")&&r[t].params["*"]!==e.params["*"];return"assets"===i?t.filter(((e,t)=>o(e,t)||s(e,t))):"data"===i?t.filter(((t,i)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(o(t,i)||s(t,i))return!0;if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof n)return n}return!0})):[]}function ve(e,t,{includeHydrateFallback:r}={}){return n=e.map((e=>{let n=t.routes[e.route.id];if(!n)return[];let a=[n.module];return n.clientActionModule&&(a=a.concat(n.clientActionModule)),n.clientLoaderModule&&(a=a.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(a=a.concat(n.hydrateFallbackModule)),n.imports&&(a=a.concat(n.imports)),a})).flat(1),[...new Set(n)];var n}function ge(){let e=r.useContext(N);return me(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}var be=r.createContext(void 0);function we(){let e=r.useContext(be);return me(e,"You must render this element inside a <HydratedRouter> element"),e}function Ee(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function xe({page:e,...t}){let{router:n}=ge(),a=r.useMemo((()=>c(n.routes,e,n.basename)),[n.routes,e,n.basename]);return a?r.createElement(Se,{page:e,matches:a,...t}):null}function Se({page:e,matches:t,...n}){let a=W(),{manifest:i,routeModules:o}=we(),{basename:s}=ge(),{loaderData:l,matches:u}=function(){let e=r.useContext(L);return me(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}(),c=r.useMemo((()=>ye(e,t,u,i,a,"data")),[e,t,u,i,a]),d=r.useMemo((()=>ye(e,t,u,i,a,"assets")),[e,t,u,i,a]),f=r.useMemo((()=>{if(e===a.pathname+a.search+a.hash)return[];let r=new Set,n=!1;if(t.forEach((e=>{let t=i.routes[e.route.id];t&&t.hasLoader&&(!c.some((t=>t.route.id===e.route.id))&&e.route.id in l&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?n=!0:r.add(e.route.id))})),0===r.size)return[];let u=function(e,t){let r="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===r.pathname?r.pathname="_root.data":t&&"/"===_(r.pathname,t)?r.pathname=`${t.replace(/\/$/,"")}/_root.data`:r.pathname=`${r.pathname.replace(/\/$/,"")}.data`,r}(e,s);return n&&r.size>0&&u.searchParams.set("_routes",t.filter((e=>r.has(e.route.id))).map((e=>e.route.id)).join(",")),[u.pathname+u.search]}),[s,l,a,i,c,t,e,o]),m=r.useMemo((()=>ve(d,i)),[d,i]),h=function(e){let{manifest:t,routeModules:n}=we(),[a,i]=r.useState([]);return r.useEffect((()=>{let r=!1;return pe(e,t,n).then((e=>{r||i(e)})),()=>{r=!0}}),[e,t,n]),a}(d);return r.createElement(r.Fragment,null,f.map((e=>r.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...n}))),m.map((e=>r.createElement("link",{key:e,rel:"modulepreload",href:e,...n}))),h.map((({key:e,link:t})=>r.createElement("link",{key:e,...t}))))}function _e(...e){return t=>{e.forEach((e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)}))}}be.displayName="FrameworkContext";var Ae="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{Ae&&(window.__reactRouterVersion="7.3.0")}catch(e){}var Ce=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ke=r.forwardRef((function({onClick:e,discover:t="render",prefetch:n="none",relative:a,reloadDocument:i,replace:u,state:c,target:d,to:f,preventScrollReset:m,viewTransition:h,...p},y){let v,{basename:g}=r.useContext(j),b="string"==typeof f&&Ce.test(f),w=!1;if("string"==typeof f&&b&&(v=f,Ae))try{let e=new URL(window.location.href),t=f.startsWith("//")?new URL(e.protocol+f):new URL(f),r=_(t.pathname,g);t.origin===e.origin&&null!=r?f=r+t.search+t.hash:w=!0}catch(e){s(!1,`<Link to="${f}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let E=function(e,{relative:t}={}){o(B(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:a}=r.useContext(j),{hash:i,pathname:s,search:l}=K(e,{relative:t}),u=s;return"/"!==n&&(u="/"===s?n:F([n,s])),a.createHref({pathname:u,search:l,hash:i})}(f,{relative:a}),[x,S,A]=function(e,t){let n=r.useContext(be),[a,i]=r.useState(!1),[o,s]=r.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:f}=t,m=r.useRef(null);r.useEffect((()=>{if("render"===e&&s(!0),"viewport"===e){let e=new IntersectionObserver((e=>{e.forEach((e=>{s(e.isIntersecting)}))}),{threshold:.5});return m.current&&e.observe(m.current),()=>{e.disconnect()}}}),[e]),r.useEffect((()=>{if(a){let e=setTimeout((()=>{s(!0)}),100);return()=>{clearTimeout(e)}}}),[a]);let h=()=>{i(!0)},p=()=>{i(!1),s(!1)};return n?"intent"!==e?[o,m,{}]:[o,m,{onFocus:Ee(l,h),onBlur:Ee(u,p),onMouseEnter:Ee(c,h),onMouseLeave:Ee(d,p),onTouchStart:Ee(f,h)}]:[!1,m,{}]}(n,p),C=function(e,{target:t,replace:n,state:a,preventScrollReset:i,relative:o,viewTransition:s}={}){let u=H(),c=W(),d=K(e,{relative:o});return r.useCallback((r=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(r,t)){r.preventDefault();let t=void 0!==n?n:l(c)===l(d);u(e,{replace:t,state:a,preventScrollReset:i,relative:o,viewTransition:s})}}),[c,u,d,n,a,t,e,i,o,s])}(f,{replace:u,state:c,target:d,preventScrollReset:m,relative:a,viewTransition:h});let k=r.createElement("a",{...p,...A,href:v||E,onClick:w||i?e:function(t){e&&e(t),t.defaultPrevented||C(t)},ref:_e(y,S),target:d,"data-discover":b||"render"!==t?void 0:"true"});return x&&!b?r.createElement(r.Fragment,null,k,r.createElement(xe,{page:E})):k}));function Fe(e){let t=r.useContext(N);return o(t,function(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}(e)),t}ke.displayName="Link",r.forwardRef((function({"aria-current":e="page",caseSensitive:t=!1,className:n="",end:a=!1,style:i,to:s,viewTransition:l,children:u,...c},d){let f=K(s,{relative:c.relative}),m=W(),h=r.useContext(L),{navigator:p,basename:y}=r.useContext(j),v=null!=h&&function(e,t={}){let n=r.useContext(O);o(null!=n,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=Fe("useViewTransitionState"),i=K(e,{relative:t.relative});if(!n.isTransitioning)return!1;let s=_(n.currentLocation.pathname,a)||n.currentLocation.pathname,l=_(n.nextLocation.pathname,a)||n.nextLocation.pathname;return null!=x(i.pathname,l)||null!=x(i.pathname,s)}(f)&&!0===l,g=p.encodeLocation?p.encodeLocation(f).pathname:f.pathname,b=m.pathname,w=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;t||(b=b.toLowerCase(),w=w?w.toLowerCase():null,g=g.toLowerCase()),w&&y&&(w=_(w,y)||w);const E="/"!==g&&g.endsWith("/")?g.length-1:g.length;let S,A=b===g||!a&&b.startsWith(g)&&"/"===b.charAt(E),C=null!=w&&(w===g||!a&&w.startsWith(g)&&"/"===w.charAt(g.length)),k={isActive:A,isPending:C,isTransitioning:v},F=A?e:void 0;S="function"==typeof n?n(k):[n,A?"active":null,C?"pending":null,v?"transitioning":null].filter(Boolean).join(" ");let D="function"==typeof i?i(k):i;return r.createElement(ke,{...c,"aria-current":F,className:S,ref:d,style:D,to:s,viewTransition:l},"function"==typeof u?u(k):u)})).displayName="NavLink",r.forwardRef((({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:a,replace:i,state:s,method:u=oe,action:c,onSubmit:d,relative:f,preventScrollReset:m,viewTransition:h,...p},y)=>{let v=function(){let{router:e}=Fe("useSubmit"),{basename:t}=r.useContext(j),n=te("useRouteId");return r.useCallback((async(r,a={})=>{let{action:i,method:o,encType:s,formData:l,body:u}=fe(r,t);if(!1===a.navigate){let t=a.fetcherKey||Ve();await e.fetch(t,n,a.action||i,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||o,formEncType:a.encType||s,flushSync:a.flushSync})}else await e.navigate(a.action||i,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||o,formEncType:a.encType||s,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})}),[e,t,n])}(),g=function(e,{relative:t}={}){let{basename:n}=r.useContext(j),a=r.useContext(M);o(a,"useFormAction must be used inside a RouteContext");let[i]=a.matches.slice(-1),s={...K(e||".",{relative:t})},u=W();if(null==e){s.search=u.search;let e=new URLSearchParams(s.search),t=e.getAll("index");if(t.some((e=>""===e))){e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let r=e.toString();s.search=r?`?${r}`:""}}e&&"."!==e||!i.route.index||(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index");"/"!==n&&(s.pathname="/"===s.pathname?n:F([n,s.pathname]));return l(s)}(c,{relative:f}),b="get"===u.toLowerCase()?"get":"post",w="string"==typeof c&&Ce.test(c);return r.createElement("form",{ref:y,method:b,action:g,onSubmit:a?d:e=>{if(d&&d(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,a=r?.getAttribute("formmethod")||u;v(r||e.currentTarget,{fetcherKey:t,method:a,navigate:n,replace:i,state:s,relative:f,preventScrollReset:m,viewTransition:h})},...p,"data-discover":w||"render"!==e?void 0:"true"})})).displayName="Form";var De=0,Ve=()=>`__${String(++De)}__`;function $e(){const[t,r]=e.useState(!0);return e.createElement("div",{className:"sidebar "+(t?"open":"closed")},e.createElement("button",{className:"toggle-button",onClick:()=>r(!t)},t?"<":">"),e.createElement("nav",{className:"nav-links"}))}function Re({children:t}){return e.createElement("div",{className:"layout"},e.createElement($e,null),e.createElement("main",{className:"content"},t||e.createElement(ae,null)))}new TextEncoder;var Te=e=>"checkbox"===e.type,Ne=e=>e instanceof Date,Le=e=>null==e;const Oe=e=>"object"==typeof e;var je=e=>!Le(e)&&!Array.isArray(e)&&Oe(e)&&!Ne(e),Pe="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;function Me(e){let t;const r=Array.isArray(e),n="undefined"!=typeof FileList&&e instanceof FileList;if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else{if(Pe&&(e instanceof Blob||n)||!r&&!je(e))return e;if(t=r?[]:{},r||(e=>{const t=e.constructor&&e.constructor.prototype;return je(t)&&t.hasOwnProperty("isPrototypeOf")})(e))for(const r in e)e.hasOwnProperty(r)&&(t[r]=Me(e[r]));else t=e}return t}var Ue=e=>Array.isArray(e)?e.filter(Boolean):[],Be=e=>void 0===e,We=(e,t,r)=>{if(!t||!je(e))return r;const n=Ue(t.split(/[,[\].]+?/)).reduce(((e,t)=>Le(e)?e:e[t]),e);return Be(n)||n===e?Be(e[t])?r:e[t]:n},Ie=e=>"boolean"==typeof e,ze=e=>/^\w*$/.test(e),He=e=>Ue(e.replace(/["|']|\]/g,"").split(/\.|\[/)),Je=(e,t,r)=>{let n=-1;const a=ze(t)?[t]:He(t),i=a.length,o=i-1;for(;++n<i;){const t=a[n];let i=r;if(n!==o){const r=e[t];i=je(r)||Array.isArray(r)?r:isNaN(+a[n+1])?{}:[]}if("__proto__"===t||"constructor"===t||"prototype"===t)return;e[t]=i,e=e[t]}return e};const qe="blur",Ke="focusout",Ye="onBlur",Ge="onChange",Xe="onSubmit",Qe="onTouched",Ze="all",et="max",tt="min",rt="maxLength",nt="minLength",at="pattern",it="required",ot="validate";e.createContext(null);var st=e=>je(e)&&!Object.keys(e).length,lt=e=>Array.isArray(e)?e:[e];var ut=e=>"string"==typeof e,ct=(e,t,r,n,a)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[n]:a||!0}}:{},dt=e=>({isOnSubmit:!e||e===Xe,isOnBlur:e===Ye,isOnChange:e===Ge,isOnAll:e===Ze,isOnTouch:e===Qe}),ft=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some((t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length)))));const mt=(e,t,r,n)=>{for(const a of r||Object.keys(e)){const r=We(e,a);if(r){const{_f:e,...i}=r;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],a)&&!n)return!0;if(e.ref&&t(e.ref,e.name)&&!n)return!0;if(mt(i,t))break}else if(je(i)&&mt(i,t))break}}};var ht=(e,t,r)=>{const n=lt(We(e,r));return Je(n,"root",t[r]),Je(e,r,n),e},pt=e=>"file"===e.type,yt=e=>"function"==typeof e,vt=e=>{if(!Pe)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},gt=e=>ut(e),bt=e=>"radio"===e.type,wt=e=>e instanceof RegExp;const Et={value:!1,isValid:!1},xt={value:!0,isValid:!0};var St=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter((e=>e&&e.checked&&!e.disabled)).map((e=>e.value));return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!Be(e[0].attributes.value)?Be(e[0].value)||""===e[0].value?xt:{value:e[0].value,isValid:!0}:xt:Et}return Et};const _t={isValid:!1,value:null};var At=e=>Array.isArray(e)?e.reduce(((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e),_t):_t;function Ct(e,t,r="validate"){if(gt(e)||Array.isArray(e)&&e.every(gt)||Ie(e)&&!e)return{type:r,message:gt(e)?e:"",ref:t}}var kt=e=>je(e)&&!wt(e)?e:{value:e,message:""},Ft=async(e,t,r,n,a,i)=>{const{ref:o,refs:s,required:l,maxLength:u,minLength:c,min:d,max:f,pattern:m,validate:h,name:p,valueAsNumber:y,mount:v}=e._f,g=We(r,p);if(!v||t.has(p))return{};const b=s?s[0]:o,w=e=>{a&&b.reportValidity&&(b.setCustomValidity(Ie(e)?"":e||""),b.reportValidity())},E={},x=bt(o),S=Te(o),_=x||S,A=(y||pt(o))&&Be(o.value)&&Be(g)||vt(o)&&""===o.value||""===g||Array.isArray(g)&&!g.length,C=ct.bind(null,p,n,E),k=(e,t,r,n=rt,a=nt)=>{const i=e?t:r;E[p]={type:e?n:a,message:i,ref:o,...C(e?n:a,i)}};if(i?!Array.isArray(g)||!g.length:l&&(!_&&(A||Le(g))||Ie(g)&&!g||S&&!St(s).isValid||x&&!At(s).isValid)){const{value:e,message:t}=gt(l)?{value:!!l,message:l}:kt(l);if(e&&(E[p]={type:it,message:t,ref:b,...C(it,t)},!n))return w(t),E}if(!(A||Le(d)&&Le(f))){let e,t;const r=kt(f),a=kt(d);if(Le(g)||isNaN(g)){const n=o.valueAsDate||new Date(g),i=e=>new Date((new Date).toDateString()+" "+e),s="time"==o.type,l="week"==o.type;ut(r.value)&&g&&(e=s?i(g)>i(r.value):l?g>r.value:n>new Date(r.value)),ut(a.value)&&g&&(t=s?i(g)<i(a.value):l?g<a.value:n<new Date(a.value))}else{const n=o.valueAsNumber||(g?+g:g);Le(r.value)||(e=n>r.value),Le(a.value)||(t=n<a.value)}if((e||t)&&(k(!!e,r.message,a.message,et,tt),!n))return w(E[p].message),E}if((u||c)&&!A&&(ut(g)||i&&Array.isArray(g))){const e=kt(u),t=kt(c),r=!Le(e.value)&&g.length>+e.value,a=!Le(t.value)&&g.length<+t.value;if((r||a)&&(k(r,e.message,t.message),!n))return w(E[p].message),E}if(m&&!A&&ut(g)){const{value:e,message:t}=kt(m);if(wt(e)&&!g.match(e)&&(E[p]={type:at,message:t,ref:o,...C(at,t)},!n))return w(t),E}if(h)if(yt(h)){const e=Ct(await h(g,r),b);if(e&&(E[p]={...e,...C(ot,e.message)},!n))return w(e.message),E}else if(je(h)){let e={};for(const t in h){if(!st(e)&&!n)break;const a=Ct(await h[t](g,r),b,t);a&&(e={...a,...C(t,a.message)},w(a.message),n&&(E[p]=e))}if(!st(e)&&(E[p]={ref:b,...e},!n))return E}return w(!0),E};function Dt(e,t){const r=Array.isArray(t)?t:ze(t)?[t]:He(t),n=1===r.length?e:function(e,t){const r=t.slice(0,-1).length;let n=0;for(;n<r;)e=Be(e)?n++:e[t[n++]];return e}(e,r),a=r.length-1,i=r[a];return n&&delete n[i],0!==a&&(je(n)&&st(n)||Array.isArray(n)&&function(e){for(const t in e)if(e.hasOwnProperty(t)&&!Be(e[t]))return!1;return!0}(n))&&Dt(e,r.slice(0,-1)),e}var Vt=()=>{let e=[];return{get observers(){return e},next:t=>{for(const r of e)r.next&&r.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter((e=>e!==t))}}),unsubscribe:()=>{e=[]}}},$t=e=>Le(e)||!Oe(e);function Rt(e,t){if($t(e)||$t(t))return e===t;if(Ne(e)&&Ne(t))return e.getTime()===t.getTime();const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(const a of r){const r=e[a];if(!n.includes(a))return!1;if("ref"!==a){const e=t[a];if(Ne(r)&&Ne(e)||je(r)&&je(e)||Array.isArray(r)&&Array.isArray(e)?!Rt(r,e):r!==e)return!1}}return!0}var Tt=e=>"select-multiple"===e.type,Nt=e=>vt(e)&&e.isConnected,Lt=e=>{for(const t in e)if(yt(e[t]))return!0;return!1};function Ot(e,t={}){const r=Array.isArray(e);if(je(e)||r)for(const r in e)Array.isArray(e[r])||je(e[r])&&!Lt(e[r])?(t[r]=Array.isArray(e[r])?[]:{},Ot(e[r],t[r])):Le(e[r])||(t[r]=!0);return t}function jt(e,t,r){const n=Array.isArray(e);if(je(e)||n)for(const n in e)Array.isArray(e[n])||je(e[n])&&!Lt(e[n])?Be(t)||$t(r[n])?r[n]=Array.isArray(e[n])?Ot(e[n],[]):{...Ot(e[n])}:jt(e[n],Le(t)?{}:t[n],r[n]):r[n]=!Rt(e[n],t[n]);return r}var Pt=(e,t)=>jt(e,t,Ot(t)),Mt=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:n})=>Be(e)?e:t?""===e?NaN:e?+e:e:r&&ut(e)?new Date(e):n?n(e):e;function Ut(e){const t=e.ref;return pt(t)?t.files:bt(t)?At(e.refs).value:Tt(t)?[...t.selectedOptions].map((({value:e})=>e)):Te(t)?St(e.refs).value:Mt(Be(t.value)?e.ref.value:t.value,e)}var Bt=e=>Be(e)?e:wt(e)?e.source:je(e)?wt(e.value)?e.value.source:e.value:e;const Wt="AsyncFunction";function It(e,t,r){const n=We(e,r);if(n||ze(r))return{error:n,name:r};const a=r.split(".");for(;a.length;){const n=a.join("."),i=We(t,n),o=We(e,n);if(i&&!Array.isArray(i)&&r!==n)return{name:r};if(o&&o.type)return{name:n,error:o};a.pop()}return{name:r}}const zt={mode:Xe,reValidateMode:Ge,shouldFocusError:!0};function Ht(e={}){let t,r={...zt,...e},n={submitCount:0,isDirty:!1,isLoading:yt(r.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:r.errors||{},disabled:r.disabled||!1},a={},i=(je(r.defaultValues)||je(r.values))&&Me(r.defaultValues||r.values)||{},o=r.shouldUnregister?{}:Me(i),s={action:!1,mount:!1,watch:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},u=0;const c={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},d={values:Vt(),array:Vt(),state:Vt()},f=dt(r.mode),m=dt(r.reValidateMode),h=r.criteriaMode===Ze,p=async e=>{if(!r.disabled&&(c.isValid||e)){const e=r.resolver?st((await w()).errors):await E(a,!0);e!==n.isValid&&d.state.next({isValid:e})}},y=(e,t)=>{r.disabled||!c.isValidating&&!c.validatingFields||((e||Array.from(l.mount)).forEach((e=>{e&&(t?Je(n.validatingFields,e,t):Dt(n.validatingFields,e))})),d.state.next({validatingFields:n.validatingFields,isValidating:!st(n.validatingFields)}))},v=(e,t,r,n)=>{const l=We(a,e);if(l){const a=We(o,e,Be(r)?We(i,e):r);Be(a)||n&&n.defaultChecked||t?Je(o,e,t?a:Ut(l._f)):_(e,a),s.mount&&p()}},g=(e,t,o,s,l)=>{let u=!1,f=!1;const m={name:e};if(!r.disabled){const r=!!(We(a,e)&&We(a,e)._f&&We(a,e)._f.disabled);if(!o||s){c.isDirty&&(f=n.isDirty,n.isDirty=m.isDirty=x(),u=f!==m.isDirty);const a=r||Rt(We(i,e),t);f=!(r||!We(n.dirtyFields,e)),a||r?Dt(n.dirtyFields,e):Je(n.dirtyFields,e,!0),m.dirtyFields=n.dirtyFields,u=u||c.dirtyFields&&f!==!a}if(o){const t=We(n.touchedFields,e);t||(Je(n.touchedFields,e,o),m.touchedFields=n.touchedFields,u=u||c.touchedFields&&t!==o)}u&&l&&d.state.next(m)}return u?m:{}},b=(e,a,i,o)=>{const s=We(n.errors,e),l=c.isValid&&Ie(a)&&n.isValid!==a;var f;if(r.delayError&&i?(f=()=>((e,t)=>{Je(n.errors,e,t),d.state.next({errors:n.errors})})(e,i),t=e=>{clearTimeout(u),u=setTimeout(f,e)},t(r.delayError)):(clearTimeout(u),t=null,i?Je(n.errors,e,i):Dt(n.errors,e)),(i?!Rt(s,i):s)||!st(o)||l){const t={...o,...l&&Ie(a)?{isValid:a}:{},errors:n.errors,name:e};n={...n,...t},d.state.next(t)}},w=async e=>{y(e,!0);const t=await r.resolver(o,r.context,((e,t,r,n)=>{const a={};for(const r of e){const e=We(t,r);e&&Je(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:n}})(e||l.mount,a,r.criteriaMode,r.shouldUseNativeValidation));return y(e),t},E=async(e,t,a={valid:!0})=>{for(const s in e){const u=e[s];if(u){const{_f:e,...d}=u;if(e){const d=l.array.has(e.name),f=u._f&&(!!(i=u._f)&&!!i.validate&&!!(yt(i.validate)&&i.validate.constructor.name===Wt||je(i.validate)&&Object.values(i.validate).find((e=>e.constructor.name===Wt))));f&&c.validatingFields&&y([s],!0);const m=await Ft(u,l.disabled,o,h,r.shouldUseNativeValidation&&!t,d);if(f&&c.validatingFields&&y([s]),m[e.name]&&(a.valid=!1,t))break;!t&&(We(m,e.name)?d?ht(n.errors,m,e.name):Je(n.errors,e.name,m[e.name]):Dt(n.errors,e.name))}!st(d)&&await E(d,t,a)}}var i;return a.valid},x=(e,t)=>!r.disabled&&(e&&t&&Je(o,e,t),!Rt(V(),i)),S=(e,t,r)=>((e,t,r,n,a)=>ut(e)?(n&&t.watch.add(e),We(r,e,a)):Array.isArray(e)?e.map((e=>(n&&t.watch.add(e),We(r,e)))):(n&&(t.watchAll=!0),r))(e,l,{...s.mount?o:Be(t)?i:ut(e)?{[e]:t}:t},r,t),_=(e,t,r={})=>{const n=We(a,e);let i=t;if(n){const r=n._f;r&&(!r.disabled&&Je(o,e,Mt(t,r)),i=vt(r.ref)&&Le(t)?"":t,Tt(r.ref)?[...r.ref.options].forEach((e=>e.selected=i.includes(e.value))):r.refs?Te(r.ref)?r.refs.length>1?r.refs.forEach((e=>(!e.defaultChecked||!e.disabled)&&(e.checked=Array.isArray(i)?!!i.find((t=>t===e.value)):i===e.value))):r.refs[0]&&(r.refs[0].checked=!!i):r.refs.forEach((e=>e.checked=e.value===i)):pt(r.ref)?r.ref.value="":(r.ref.value=i,r.ref.type||d.values.next({name:e,values:{...o}})))}(r.shouldDirty||r.shouldTouch)&&g(e,i,r.shouldTouch,r.shouldDirty,!0),r.shouldValidate&&D(e)},A=(e,t,r)=>{for(const n in t){const i=t[n],o=`${e}.${n}`,s=We(a,o);(l.array.has(e)||je(i)||s&&!s._f)&&!Ne(i)?A(o,i,r):_(o,i,r)}},C=(e,t,r={})=>{const u=We(a,e),f=l.array.has(e),m=Me(t);Je(o,e,m),f?(d.array.next({name:e,values:{...o}}),(c.isDirty||c.dirtyFields)&&r.shouldDirty&&d.state.next({name:e,dirtyFields:Pt(i,o),isDirty:x(e,m)})):!u||u._f||Le(m)?_(e,m,r):A(e,m,r),ft(e,l)&&d.state.next({...n}),d.values.next({name:s.mount?e:void 0,values:{...o}})},k=async e=>{s.mount=!0;const i=e.target;let u=i.name,v=!0;const x=We(a,u),S=()=>i.type?Ut(x._f):(e=>je(e)&&e.target?Te(e.target)?e.target.checked:e.target.value:e)(e),_=e=>{v=Number.isNaN(e)||Ne(e)&&isNaN(e.getTime())||Rt(e,We(o,u,e))};if(x){let i,s;const C=S(),k=e.type===qe||e.type===Ke,F=!((A=x._f).mount&&(A.required||A.min||A.max||A.maxLength||A.minLength||A.pattern||A.validate)||r.resolver||We(n.errors,u)||x._f.deps)||((e,t,r,n,a)=>!a.isOnAll&&(!r&&a.isOnTouch?!(t||e):(r?n.isOnBlur:a.isOnBlur)?!e:!(r?n.isOnChange:a.isOnChange)||e))(k,We(n.touchedFields,u),n.isSubmitted,m,f),V=ft(u,l,k);Je(o,u,C),k?(x._f.onBlur&&x._f.onBlur(e),t&&t(0)):x._f.onChange&&x._f.onChange(e);const $=g(u,C,k,!1),R=!st($)||V;if(!k&&d.values.next({name:u,type:e.type,values:{...o}}),F)return c.isValid&&("onBlur"===r.mode&&k?p():k||p()),R&&d.state.next({name:u,...V?{}:$});if(!k&&V&&d.state.next({...n}),r.resolver){const{errors:e}=await w([u]);if(_(C),v){const t=It(n.errors,a,u),r=It(e,a,t.name||u);i=r.error,u=r.name,s=st(e)}}else y([u],!0),i=(await Ft(x,l.disabled,o,h,r.shouldUseNativeValidation))[u],y([u]),_(C),v&&(i?s=!1:c.isValid&&(s=await E(a,!0)));v&&(x._f.deps&&D(x._f.deps),b(u,s,i,$))}var A},F=(e,t)=>{if(We(n.errors,t)&&e.focus)return e.focus(),1},D=async(e,t={})=>{let i,o;const s=lt(e);if(r.resolver){const t=await(async e=>{const{errors:t}=await w(e);if(e)for(const r of e){const e=We(t,r);e?Je(n.errors,r,e):Dt(n.errors,r)}else n.errors=t;return t})(Be(e)?e:s);i=st(t),o=e?!s.some((e=>We(t,e))):i}else e?(o=(await Promise.all(s.map((async e=>{const t=We(a,e);return await E(t&&t._f?{[e]:t}:t)})))).every(Boolean),(o||n.isValid)&&p()):o=i=await E(a);return d.state.next({...!ut(e)||c.isValid&&i!==n.isValid?{}:{name:e},...r.resolver||!e?{isValid:i}:{},errors:n.errors}),t.shouldFocus&&!o&&mt(a,F,e?s:l.mount),o},V=e=>{const t={...s.mount?o:i};return Be(e)?t:ut(e)?We(t,e):e.map((e=>We(t,e)))},$=(e,t)=>({invalid:!!We((t||n).errors,e),isDirty:!!We((t||n).dirtyFields,e),error:We((t||n).errors,e),isValidating:!!We(n.validatingFields,e),isTouched:!!We((t||n).touchedFields,e)}),R=(e,t,r)=>{const i=(We(a,e,{_f:{}})._f||{}).ref,o=We(n.errors,e)||{},{ref:s,message:l,type:u,...c}=o;Je(n.errors,e,{...c,...t,ref:i}),d.state.next({name:e,errors:n.errors,isValid:!1}),r&&r.shouldFocus&&i&&i.focus&&i.focus()},T=(e,t={})=>{for(const s of e?lt(e):l.mount)l.mount.delete(s),l.array.delete(s),t.keepValue||(Dt(a,s),Dt(o,s)),!t.keepError&&Dt(n.errors,s),!t.keepDirty&&Dt(n.dirtyFields,s),!t.keepTouched&&Dt(n.touchedFields,s),!t.keepIsValidating&&Dt(n.validatingFields,s),!r.shouldUnregister&&!t.keepDefaultValue&&Dt(i,s);d.values.next({values:{...o}}),d.state.next({...n,...t.keepDirty?{isDirty:x()}:{}}),!t.keepIsValid&&p()},N=({disabled:e,name:t,field:r,fields:n})=>{(Ie(e)&&s.mount||e||l.disabled.has(t))&&(e?l.disabled.add(t):l.disabled.delete(t),g(t,Ut(r?r._f:We(n,t)._f),!1,!1,!0))},L=(e,t={})=>{let n=We(a,e);const o=Ie(t.disabled)||Ie(r.disabled);return Je(a,e,{...n||{},_f:{...n&&n._f?n._f:{ref:{name:e}},name:e,mount:!0,...t}}),l.mount.add(e),n?N({field:n,disabled:Ie(t.disabled)?t.disabled:r.disabled,name:e}):v(e,!0,t.value),{...o?{disabled:t.disabled||r.disabled}:{},...r.progressive?{required:!!t.required,min:Bt(t.min),max:Bt(t.max),minLength:Bt(t.minLength),maxLength:Bt(t.maxLength),pattern:Bt(t.pattern)}:{},name:e,onChange:k,onBlur:k,ref:o=>{if(o){L(e,t),n=We(a,e);const r=Be(o.value)&&o.querySelectorAll&&o.querySelectorAll("input,select,textarea")[0]||o,s=(e=>bt(e)||Te(e))(r),l=n._f.refs||[];if(s?l.find((e=>e===r)):r===n._f.ref)return;Je(a,e,{_f:{...n._f,...s?{refs:[...l.filter(Nt),r,...Array.isArray(We(i,e))?[{}]:[]],ref:{type:r.type,name:e}}:{ref:r}}}),v(e,!1,void 0,r)}else n=We(a,e,{}),n._f&&(n._f.mount=!1),(r.shouldUnregister||t.shouldUnregister)&&(!((e,t)=>e.has((e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e)(t)))(l.array,e)||!s.action)&&l.unMount.add(e)}}},O=()=>r.shouldFocusError&&mt(a,F,l.mount),j=(e,t)=>async i=>{let s;i&&(i.preventDefault&&i.preventDefault(),i.persist&&i.persist());let u=Me(o);if(l.disabled.size)for(const e of l.disabled)Je(u,e,void 0);if(d.state.next({isSubmitting:!0}),r.resolver){const{errors:e,values:t}=await w();n.errors=e,u=t}else await E(a);if(Dt(n.errors,"root"),st(n.errors)){d.state.next({errors:{}});try{await e(u,i)}catch(e){s=e}}else t&&await t({...n.errors},i),O(),setTimeout(O);if(d.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:st(n.errors)&&!s,submitCount:n.submitCount+1,errors:n.errors}),s)throw s},P=(e,t={})=>{const u=e?Me(e):i,f=Me(u),m=st(e),h=m?i:f;if(t.keepDefaultValues||(i=u),!t.keepValues){if(t.keepDirtyValues){const e=new Set([...l.mount,...Object.keys(Pt(i,o))]);for(const t of Array.from(e))We(n.dirtyFields,t)?Je(h,t,We(o,t)):C(t,We(h,t))}else{if(Pe&&Be(e))for(const e of l.mount){const t=We(a,e);if(t&&t._f){const e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(vt(e)){const t=e.closest("form");if(t){t.reset();break}}}}a={}}o=r.shouldUnregister?t.keepDefaultValues?Me(i):{}:Me(h),d.array.next({values:{...h}}),d.values.next({values:{...h}})}l={mount:t.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},s.mount=!c.isValid||!!t.keepIsValid||!!t.keepDirtyValues,s.watch=!!r.shouldUnregister,d.state.next({submitCount:t.keepSubmitCount?n.submitCount:0,isDirty:!m&&(t.keepDirty?n.isDirty:!(!t.keepDefaultValues||Rt(e,i))),isSubmitted:!!t.keepIsSubmitted&&n.isSubmitted,dirtyFields:m?{}:t.keepDirtyValues?t.keepDefaultValues&&o?Pt(i,o):n.dirtyFields:t.keepDefaultValues&&e?Pt(i,e):t.keepDirty?n.dirtyFields:{},touchedFields:t.keepTouched?n.touchedFields:{},errors:t.keepErrors?n.errors:{},isSubmitSuccessful:!!t.keepIsSubmitSuccessful&&n.isSubmitSuccessful,isSubmitting:!1})},M=(e,t)=>P(yt(e)?e(o):e,t);return{control:{register:L,unregister:T,getFieldState:$,handleSubmit:j,setError:R,_executeSchema:w,_getWatch:S,_getDirty:x,_updateValid:p,_removeUnmounted:()=>{for(const e of l.unMount){const t=We(a,e);t&&(t._f.refs?t._f.refs.every((e=>!Nt(e))):!Nt(t._f.ref))&&T(e)}l.unMount=new Set},_updateFieldArray:(e,t=[],l,u,f=!0,m=!0)=>{if(u&&l&&!r.disabled){if(s.action=!0,m&&Array.isArray(We(a,e))){const t=l(We(a,e),u.argA,u.argB);f&&Je(a,e,t)}if(m&&Array.isArray(We(n.errors,e))){const t=l(We(n.errors,e),u.argA,u.argB);f&&Je(n.errors,e,t),((e,t)=>{!Ue(We(e,t)).length&&Dt(e,t)})(n.errors,e)}if(c.touchedFields&&m&&Array.isArray(We(n.touchedFields,e))){const t=l(We(n.touchedFields,e),u.argA,u.argB);f&&Je(n.touchedFields,e,t)}c.dirtyFields&&(n.dirtyFields=Pt(i,o)),d.state.next({name:e,isDirty:x(e,t),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Je(o,e,t)},_updateDisabledField:N,_getFieldArray:e=>Ue(We(s.mount?o:i,e,r.shouldUnregister?We(i,e,[]):[])),_reset:P,_resetDefaultValues:()=>yt(r.defaultValues)&&r.defaultValues().then((e=>{M(e,r.resetOptions),d.state.next({isLoading:!1})})),_updateFormState:e=>{n={...n,...e}},_disableForm:e=>{Ie(e)&&(d.state.next({disabled:e}),mt(a,((t,r)=>{const n=We(a,r);n&&(t.disabled=n._f.disabled||e,Array.isArray(n._f.refs)&&n._f.refs.forEach((t=>{t.disabled=n._f.disabled||e})))}),0,!1))},_subjects:d,_proxyFormState:c,_setErrors:e=>{n.errors=e,d.state.next({errors:n.errors,isValid:!1})},get _fields(){return a},get _formValues(){return o},get _state(){return s},set _state(e){s=e},get _defaultValues(){return i},get _names(){return l},set _names(e){l=e},get _formState(){return n},set _formState(e){n=e},get _options(){return r},set _options(e){r={...r,...e}}},trigger:D,register:L,handleSubmit:j,watch:(e,t)=>yt(e)?d.values.subscribe({next:r=>e(S(void 0,t),r)}):S(e,t,!0),setValue:C,getValues:V,reset:M,resetField:(e,t={})=>{We(a,e)&&(Be(t.defaultValue)?C(e,Me(We(i,e))):(C(e,t.defaultValue),Je(i,e,Me(t.defaultValue))),t.keepTouched||Dt(n.touchedFields,e),t.keepDirty||(Dt(n.dirtyFields,e),n.isDirty=t.defaultValue?x(e,Me(We(i,e))):x()),t.keepError||(Dt(n.errors,e),c.isValid&&p()),d.state.next({...n}))},clearErrors:e=>{e&&lt(e).forEach((e=>Dt(n.errors,e))),d.state.next({errors:e?n.errors:{}})},unregister:T,setError:R,setFocus:(e,t={})=>{const r=We(a,e),n=r&&r._f;if(n){const e=n.refs?n.refs[0]:n.ref;e.focus&&(e.focus(),t.shouldSelect&&yt(e.select)&&e.select())}},getFieldState:$}}function Jt(t={}){const r=e.useRef(void 0),n=e.useRef(void 0),[a,i]=e.useState({isDirty:!1,isValidating:!1,isLoading:yt(t.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1,defaultValues:yt(t.defaultValues)?void 0:t.defaultValues});r.current||(r.current={...Ht(t),formState:a});const o=r.current.control;return o._options=t,function(t){const r=e.useRef(t);r.current=t,e.useEffect((()=>{const e=!t.disabled&&r.current.subject&&r.current.subject.subscribe({next:r.current.next});return()=>{e&&e.unsubscribe()}}),[t.disabled])}({subject:o._subjects.state,next:e=>{((e,t,r)=>{r(e);const{name:n,...a}=e;return st(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find((e=>t[e]===Ze))})(e,o._proxyFormState,o._updateFormState)&&i({...o._formState})}}),e.useEffect((()=>o._disableForm(t.disabled)),[o,t.disabled]),e.useEffect((()=>{if(o._proxyFormState.isDirty){const e=o._getDirty();e!==a.isDirty&&o._subjects.state.next({isDirty:e})}}),[o,a.isDirty]),e.useEffect((()=>{t.values&&!Rt(t.values,n.current)?(o._reset(t.values,o._options.resetOptions),n.current=t.values,i((e=>({...e})))):o._resetDefaultValues()}),[t.values,o]),e.useEffect((()=>{t.errors&&o._setErrors(t.errors)}),[t.errors,o]),e.useEffect((()=>{o._state.mount||(o._updateValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()})),e.useEffect((()=>{t.shouldUnregister&&o._subjects.values.next({values:o._getWatch()})}),[t.shouldUnregister,o]),r.current.formState=((e,t,r,n=!0)=>{const a={defaultValues:t._defaultValues};for(const r in e)Object.defineProperty(a,r,{get:()=>{const a=r;return t._proxyFormState[a]!==Ze&&(t._proxyFormState[a]=!n||Ze),e[a]}});return a})(a,o),r.current}const qt={getList:(e,t)=>fetch(e,{method:"GET",headers:{"Content-Type":"application/json"},body:JSON.stringify({page:t})}).then((e=>e.json())),create:(e,t)=>fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>e.json())),details:(e,t)=>fetch(`${e}/${t}`,{method:"GET",headers:{"Content-Type":"application/json"}}).then((e=>e.json())),edit:(e,t)=>fetch(`${e}/${t.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>e.json()))};function Kt({data:t,screen:r}){const{register:a,handleSubmit:i,reset:o,formState:{errors:s}}=Jt({resolver:n.screens[r.controller].resolver,defaultValues:t}),l=H(),u=n.screens[r.controller].fields;return e.useEffect((()=>{o(t)}),[t,o]),e.createElement("div",{className:"form-wrapper"},e.createElement("form",{onSubmit:i((e=>{t?qt.edit(r.controller,e).then((()=>{l("/"+r.controller,{replace:!0})})):qt.create(r.controller,e).then((()=>{l("/"+r.controller,{replace:!0})}))}))},u.map((t=>e.createElement("div",{className:"form-field",key:t},e.createElement("label",{htmlFor:t},t.charAt(0).toUpperCase()+t.slice(1)),e.createElement("input",{type:"text",...a(t),placeholder:`Enter ${t}`,id:t}),s[t]&&e.createElement("span",{className:"error-message"},s[t]?.message)))),e.createElement("button",{type:"submit",className:"submit-button"},"Submit")))}function Yt({screen:t}){return e.createElement(Re,null,e.createElement(Kt,{screen:t}))}function Gt({screen:t}){const{id:r}=q(),[n,a]=e.useState(null),[i,o]=e.useState(null);return e.useEffect((()=>{t.controller&&r&&qt.details(t.controller,r).then((e=>{a(e.data)})).catch((e=>{o(e),console.error(e)}))}),[r,t]),e.createElement(Re,null,e.createElement("p",{dangerouslySetInnerHTML:{__html:JSON.stringify(n,null," <br/>")}}))}function Xt({screen:t}){const{id:r}=q(),[n,a]=e.useState(null),[i,o]=e.useState(null);return e.useEffect((()=>{t.controller&&r&&qt.details(t.controller,r).then((e=>{a(e.data)})).catch((e=>{o(e),console.error(e)}))}),[r,t]),e.createElement(Re,null,e.createElement(Kt,{data:n,screen:t}))}function Qt({data:t,cells:r,screen:n}){return t&&0!==t.length?e.createElement("div",{className:"list-wrapper"},e.createElement("div",{className:"header"},"List"),e.createElement("table",{className:"list-table"},e.createElement("thead",null,e.createElement("tr",null,r.map((t=>e.createElement("th",{key:t.name},t.title??t.name))),e.createElement("th",null))),e.createElement("tbody",null,t.map(((t,n)=>e.createElement("tr",{key:n},r.map((r=>{const n=t[r.name];let a=n??"-";if("date"===r.type){if(n){const e=new Date(n);a=`${e.getDate().toString().padStart(2,"0")}/${(e.getMonth()+1).toString().padStart(2,"0")}/${e.getFullYear()} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`}}else a=n?n.toString():r?.placeHolder??"-";let i=a;return r.linkTo&&(i=e.createElement(ke,{to:r.linkTo(t)},a)),e.createElement("td",{key:r.name},i)})),e.createElement("td",null,e.createElement(ke,{to:"edit/"+(t?.id??"-")},"Edit"),e.createElement(ke,{to:"details/"+(t?.id??"-")},"Details")))))))):e.createElement("div",null,"No items available")}function Zt({screen:t}){const[r,a]=e.useState(0),[i,o]=e.useState(null),[s,l]=e.useState(null);return e.useEffect((()=>{t.controller&&qt.getList(t.controller,r).then((e=>{o(e.data)})).catch((e=>{l(e),console.error(e)}))}),[r,t.controller]),e.createElement(Re,null,e.createElement(ke,{to:"/maps/create"},"Create"),s?e.createElement("p",null,"Error ",s):null,e.createElement(Qt,{screen:t,cells:n.screens[t.key].cells,data:i}))}exports.Layout=Re,exports.Panel=function({children:t}){return e.createElement(e.Fragment,null,t)},exports.createScreens=function(e){n.screens=e},exports.getScreenForRoutes=function(){const t=Object.entries(n.screens);return e.createElement(e.Fragment,null,t.map((([t,r])=>{let n=`/${r.crud.controller}`;const a={key:t,controller:r.crud.controller};return e.createElement(e.Fragment,{key:"index"},e.createElement(ie,{path:n+"/create",element:e.createElement(Yt,{screen:a})}),e.createElement(ie,{path:n+"/details/:id",element:e.createElement(Gt,{screen:a})}),e.createElement(ie,{path:n+"/edit/:id",element:e.createElement(Xt,{screen:a})}),e.createElement(ie,{path:n,element:e.createElement(Zt,{screen:a})}))})),e.createElement(ie,{path:"*",element:e.createElement("div",null,"404 - Not Found")}))};
1
+ "use strict";var t=require("zustand/middleware"),e=require("zustand/traditional"),r=require("zustand/vanilla/shallow"),n=require("react"),o=require("react-router"),a=require("react-hook-form");const i=e.createWithEqualityFn()(t.persist((t=>({screens:null,fetchSettings:null})),{name:"app-store-1",storage:t.createJSONStorage((()=>localStorage)),partialize:t=>({})}),r.shallow);function s(t){i.setState({screens:t})}const c=(t,e)=>fetch(`${t.baseUrl}/${e}`,{method:"GET",headers:{"Content-Type":"application/json"}}).then((t=>t.json())),u=(t,e,r)=>fetch(`${t?.baseUrl??""}/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then((t=>t.json())),l=(t,e,r)=>fetch(`${t?.baseUrl??""}/${e}/${r}`,{method:"GET",headers:{"Content-Type":"application/json"}}).then((t=>t.json())),p=(t,e,r)=>fetch(`${t?.baseUrl??""}/${e}/${r.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then((t=>t.json()));function f({htmlFor:t,label:e,fieldName:r}){return n.createElement("label",{htmlFor:t},e??r.charAt(0).toUpperCase()+r.slice(1))}function d({input:t,register:e,isEditForm:r,error:o}){const a=t.name||"";return n.createElement("div",{className:"form-field"},n.createElement(f,{htmlFor:a,label:t.label,fieldName:a}),(()=>{switch(t.type){case"textarea":return n.createElement("textarea",{...e(a),placeholder:t.placeholder,id:a,disabled:r&&!1===t.editable});case"select":return n.createElement("select",{...e(a),id:a,disabled:r&&!1===t.editable},n.createElement("option",{value:""},"Select ",a),t.selectOptions?.map((t=>n.createElement("option",{key:t,value:t},t))));default:return n.createElement("input",{type:t.inputType,...e(a),placeholder:t.placeholder,id:a,disabled:r&&!1===t.editable})}})(),o&&n.createElement("span",{className:"error-message"},o.message))}function h({data:t,screen:e}){const{screens:r,fetchSettings:s}=i((t=>({screens:t.screens??{},fetchSettings:t.fetchSettings}))),c=!!t,{register:l,handleSubmit:f,reset:h,formState:{errors:y}}=a.useForm({resolver:r[e.controller].resolver,defaultValues:{...t,__formEdit:c}}),v=o.useNavigate(),m=r[e.controller].inputs;return n.useEffect((()=>{h({...t,__formEdit:c})}),[c,t,h]),n.createElement("div",{className:"form-wrapper"},n.createElement("form",{onSubmit:f((t=>{s&&(delete t.__formEdit,c?p(s,e.controller,t).then((()=>{v("/"+e.controller,{replace:!0})})):u(s,e.controller,t).then((()=>{v("/"+e.controller,{replace:!0})})))}))},m.map((t=>n.createElement(d,{key:t.name||"",input:t,register:l,isEditForm:c,error:y[t.name||""]}))),n.createElement("button",{type:"submit",className:"submit-button"},"Submit")))}function y({screen:t}){return n.createElement(h,{screen:t})}function v({error:t}){return n.createElement("div",{className:"error-container"},n.createElement("div",{className:"error-icon"},n.createElement("i",{className:"fa fa-exclamation-circle"})),n.createElement("div",{className:"error-content"},n.createElement("h3",null,"Error Occurred"),n.createElement("p",null,t?.message||"Something went wrong. Please try again later.")))}function m({screen:t}){const{fetchSettings:e}=i((t=>({fetchSettings:t.fetchSettings}))),{id:r}=o.useParams(),[a,s]=n.useState(null),[c,u]=n.useState(null);return n.useEffect((()=>{e&&t.controller&&r&&l(e,t.controller,r).then((t=>{s(t)})).catch((t=>{u(t),console.error(t)}))}),[e,r,t]),c?n.createElement(v,{error:c}):n.createElement("p",{dangerouslySetInnerHTML:{__html:JSON.stringify(a,null," <br/>")}})}function g({screen:t}){const{fetchSettings:e}=i((t=>({fetchSettings:t.fetchSettings}))),{id:r}=o.useParams(),[a,s]=n.useState(null),[c,u]=n.useState(null);return n.useEffect((()=>{e&&t.controller&&r&&l(e,t.controller,r).then((t=>{s(t)})).catch((t=>{u(t),console.error(t)}))}),[e,r,t]),c?n.createElement(v,{error:c}):n.createElement(h,{data:a,screen:t})}function S({data:t,cells:e}){return t&&0!==t.length?n.createElement("div",{className:"list-wrapper"},n.createElement("div",{className:"header"},"List"),n.createElement("table",{className:"list-table"},n.createElement("thead",null,n.createElement("tr",null,e.map((t=>n.createElement("th",{key:t.name},t.title??t.name))),n.createElement("th",null))),n.createElement("tbody",null,t.map(((t,r)=>n.createElement("tr",{key:r},e.map((e=>{const r=t[e.name];let o=r??"-";if("date"===e.type){if(r){const t=new Date(r);o=`${t.getDate().toString().padStart(2,"0")}/${(t.getMonth()+1).toString().padStart(2,"0")}/${t.getFullYear()} ${t.getHours().toString().padStart(2,"0")}:${t.getMinutes().toString().padStart(2,"0")}`}}else o=r?r.toString():e?.placeHolder??"-";let a=o;return n.createElement("td",{key:e.name},a)})),n.createElement("td",null,n.createElement(o.Link,{to:"edit/"+(t?.id??"-")},"Edit"),n.createElement(o.Link,{to:"details/"+(t?.id??"-")},"Details")))))))):n.createElement("div",null,"No items available")}function _({screen:t}){const{screens:e,fetchSettings:r}=i((t=>({screens:t.screens??{},fetchSettings:t.fetchSettings}))),[a,s]=n.useState(0),[u,l]=n.useState(null),[p,f]=n.useState(null);return n.useEffect((()=>{t.controller&&r&&c(r,t.controller).then((t=>{l(t)})).catch((t=>{f(t),console.error(t)}))}),[a,t.controller,r]),p?n.createElement(v,{error:p}):n.createElement("div",null,n.createElement(o.Link,{to:"create"},"Create"),n.createElement(S,{screen:t,cells:e[t.key].cells,data:u}))}var O,E="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},w={};!function(){return O||(O=1,function(t){!function(){var e="object"==typeof globalThis?globalThis:"object"==typeof E?E:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(t){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(t){}}(),r=n(t);function n(t,e){return function(r,n){Object.defineProperty(t,r,{configurable:!0,writable:!0,value:n}),e&&e(r,n)}}void 0!==e.Reflect&&(r=n(e.Reflect,r)),function(t,e){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,o=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",a=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",i="function"==typeof Object.create,s={__proto__:[]}instanceof Array,c=!i&&!s,u={create:i?function(){return pt(Object.create(null))}:s?function(){return pt({__proto__:null})}:function(){return pt({})},has:c?function(t,e){return r.call(t,e)}:function(t,e){return e in t},get:c?function(t,e){return r.call(t,e)?t[e]:void 0}:function(t,e){return t[e]}},l=Object.getPrototypeOf(Function),p="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:ct(),f="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:ut(),d="function"==typeof WeakMap?WeakMap:lt(),h=n?Symbol.for("@reflect-metadata:registry"):void 0,y=ot(),v=at(y);function m(t,e,r,n){if(D(r)){if(!H(t))throw new TypeError;if(!J(e))throw new TypeError;return A(t,e)}if(!H(t))throw new TypeError;if(!$(e))throw new TypeError;if(!$(n)&&!D(n)&&!R(n))throw new TypeError;return R(n)&&(n=void 0),x(t,e,r=G(r),n)}function g(t,e){function r(r,n){if(!$(r))throw new TypeError;if(!D(n)&&!q(n))throw new TypeError;k(t,e,r,n)}return r}function S(t,e,r,n){if(!$(r))throw new TypeError;return D(n)||(n=G(n)),k(t,e,r,n)}function _(t,e,r){if(!$(e))throw new TypeError;return D(r)||(r=G(r)),N(t,e,r)}function O(t,e,r){if(!$(e))throw new TypeError;return D(r)||(r=G(r)),C(t,e,r)}function E(t,e,r){if(!$(e))throw new TypeError;return D(r)||(r=G(r)),L(t,e,r)}function w(t,e,r){if(!$(e))throw new TypeError;return D(r)||(r=G(r)),P(t,e,r)}function b(t,e){if(!$(t))throw new TypeError;return D(e)||(e=G(e)),I(t,e)}function T(t,e){if(!$(t))throw new TypeError;return D(e)||(e=G(e)),j(t,e)}function M(t,e,r){if(!$(e))throw new TypeError;if(D(r)||(r=G(r)),!$(e))throw new TypeError;D(r)||(r=G(r));var n=st(e,r,!1);return!D(n)&&n.OrdinaryDeleteMetadata(t,e,r)}function A(t,e){for(var r=t.length-1;r>=0;--r){var n=(0,t[r])(e);if(!D(n)&&!R(n)){if(!J(n))throw new TypeError;e=n}}return e}function x(t,e,r,n){for(var o=t.length-1;o>=0;--o){var a=(0,t[o])(e,r,n);if(!D(a)&&!R(a)){if(!$(a))throw new TypeError;n=a}}return n}function N(t,e,r){if(C(t,e,r))return!0;var n=rt(e);return!R(n)&&N(t,n,r)}function C(t,e,r){var n=st(e,r,!1);return!D(n)&&K(n.OrdinaryHasOwnMetadata(t,e,r))}function L(t,e,r){if(C(t,e,r))return P(t,e,r);var n=rt(e);return R(n)?void 0:L(t,n,r)}function P(t,e,r){var n=st(e,r,!1);if(!D(n))return n.OrdinaryGetOwnMetadata(t,e,r)}function k(t,e,r,n){st(r,n,!0).OrdinaryDefineOwnMetadata(t,e,r,n)}function I(t,e){var r=j(t,e),n=rt(t);if(null===n)return r;var o=I(n,e);if(o.length<=0)return r;if(r.length<=0)return o;for(var a=new f,i=[],s=0,c=r;s<c.length;s++){var u=c[s];a.has(u)||(a.add(u),i.push(u))}for(var l=0,p=o;l<p.length;l++){u=p[l];a.has(u)||(a.add(u),i.push(u))}return i}function j(t,e){var r=st(t,e,!1);return r?r.OrdinaryOwnMetadataKeys(t,e):[]}function V(t){if(null===t)return 1;switch(typeof t){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===t?1:6;default:return 6}}function D(t){return void 0===t}function R(t){return null===t}function F(t){return"symbol"==typeof t}function $(t){return"object"==typeof t?null!==t:"function"==typeof t}function U(t,e){switch(V(t)){case 0:case 1:case 2:case 3:case 4:case 5:return t}var r="string",n=Q(t,o);if(void 0!==n){var a=n.call(t,r);if($(a))throw new TypeError;return a}return z(t)}function z(t,e){var r,n,o=t.toString;if(W(o)&&!$(n=o.call(t)))return n;if(W(r=t.valueOf)&&!$(n=r.call(t)))return n;throw new TypeError}function K(t){return!!t}function B(t){return""+t}function G(t){var e=U(t);return F(e)?e:B(e)}function H(t){return Array.isArray?Array.isArray(t):t instanceof Object?t instanceof Array:"[object Array]"===Object.prototype.toString.call(t)}function W(t){return"function"==typeof t}function J(t){return"function"==typeof t}function q(t){switch(V(t)){case 3:case 4:return!0;default:return!1}}function Y(t,e){return t===e||t!=t&&e!=e}function Q(t,e){var r=t[e];if(null!=r){if(!W(r))throw new TypeError;return r}}function X(t){var e=Q(t,a);if(!W(e))throw new TypeError;var r=e.call(t);if(!$(r))throw new TypeError;return r}function Z(t){return t.value}function tt(t){var e=t.next();return!e.done&&e}function et(t){var e=t.return;e&&e.call(t)}function rt(t){var e=Object.getPrototypeOf(t);if("function"!=typeof t||t===l)return e;if(e!==l)return e;var r=t.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return e;var o=n.constructor;return"function"!=typeof o||o===t?e:o}function nt(){var t,r,n,o;D(h)||void 0===e.Reflect||h in e.Reflect||"function"!=typeof e.Reflect.defineMetadata||(t=it(e.Reflect));var a=new d,i={registerProvider:s,getProvider:u,setProvider:y};return i;function s(e){if(!Object.isExtensible(i))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case t===e:break;case D(r):r=e;break;case r===e:break;case D(n):n=e;break;case n===e:break;default:void 0===o&&(o=new f),o.add(e)}}function c(e,a){if(!D(r)){if(r.isProviderFor(e,a))return r;if(!D(n)){if(n.isProviderFor(e,a))return r;if(!D(o))for(var i=X(o);;){var s=tt(i);if(!s)return;var c=Z(s);if(c.isProviderFor(e,a))return et(i),c}}}if(!D(t)&&t.isProviderFor(e,a))return t}function u(t,e){var r,n=a.get(t);return D(n)||(r=n.get(e)),D(r)?(D(r=c(t,e))||(D(n)&&(n=new p,a.set(t,n)),n.set(e,r)),r):r}function l(t){if(D(t))throw new TypeError;return r===t||n===t||!D(o)&&o.has(t)}function y(t,e,r){if(!l(r))throw new Error("Metadata provider not registered.");var n=u(t,e);if(n!==r){if(!D(n))return!1;var o=a.get(t);D(o)&&(o=new p,a.set(t,o)),o.set(e,r)}return!0}}function ot(){var t;return!D(h)&&$(e.Reflect)&&Object.isExtensible(e.Reflect)&&(t=e.Reflect[h]),D(t)&&(t=nt()),!D(h)&&$(e.Reflect)&&Object.isExtensible(e.Reflect)&&Object.defineProperty(e.Reflect,h,{enumerable:!1,configurable:!1,writable:!1,value:t}),t}function at(t){var e=new d,r={isProviderFor:function(t,r){var n=e.get(t);return!D(n)&&n.has(r)},OrdinaryDefineOwnMetadata:i,OrdinaryHasOwnMetadata:o,OrdinaryGetOwnMetadata:a,OrdinaryOwnMetadataKeys:s,OrdinaryDeleteMetadata:c};return y.registerProvider(r),r;function n(n,o,a){var i=e.get(n),s=!1;if(D(i)){if(!a)return;i=new p,e.set(n,i),s=!0}var c=i.get(o);if(D(c)){if(!a)return;if(c=new p,i.set(o,c),!t.setProvider(n,o,r))throw i.delete(o),s&&e.delete(n),new Error("Wrong provider for target.")}return c}function o(t,e,r){var o=n(e,r,!1);return!D(o)&&K(o.has(t))}function a(t,e,r){var o=n(e,r,!1);if(!D(o))return o.get(t)}function i(t,e,r,o){n(r,o,!0).set(t,e)}function s(t,e){var r=[],o=n(t,e,!1);if(D(o))return r;for(var a=X(o.keys()),i=0;;){var s=tt(a);if(!s)return r.length=i,r;var c=Z(s);try{r[i]=c}catch(t){try{et(a)}finally{throw t}}i++}}function c(t,r,o){var a=n(r,o,!1);if(D(a))return!1;if(!a.delete(t))return!1;if(0===a.size){var i=e.get(r);D(i)||(i.delete(o),0===i.size&&e.delete(i))}return!0}}function it(t){var e=t.defineMetadata,r=t.hasOwnMetadata,n=t.getOwnMetadata,o=t.getOwnMetadataKeys,a=t.deleteMetadata,i=new d;return{isProviderFor:function(t,e){var r=i.get(t);return!(D(r)||!r.has(e))||!!o(t,e).length&&(D(r)&&(r=new f,i.set(t,r)),r.add(e),!0)},OrdinaryDefineOwnMetadata:e,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:o,OrdinaryDeleteMetadata:a}}function st(t,e,r){var n=y.getProvider(t,e);if(!D(n))return n;if(r){if(y.setProvider(t,e,v))return v;throw new Error("Illegal state.")}}function ct(){var t={},e=[],r=function(){function t(t,e,r){this._index=0,this._keys=t,this._values=e,this._selector=r}return t.prototype["@@iterator"]=function(){return this},t.prototype[a]=function(){return this},t.prototype.next=function(){var t=this._index;if(t>=0&&t<this._keys.length){var r=this._selector(this._keys[t],this._values[t]);return t+1>=this._keys.length?(this._index=-1,this._keys=e,this._values=e):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},t.prototype.throw=function(t){throw this._index>=0&&(this._index=-1,this._keys=e,this._values=e),t},t.prototype.return=function(t){return this._index>=0&&(this._index=-1,this._keys=e,this._values=e),{value:t,done:!0}},t}(),n=function(){function e(){this._keys=[],this._values=[],this._cacheKey=t,this._cacheIndex=-2}return Object.defineProperty(e.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),e.prototype.has=function(t){return this._find(t,!1)>=0},e.prototype.get=function(t){var e=this._find(t,!1);return e>=0?this._values[e]:void 0},e.prototype.set=function(t,e){var r=this._find(t,!0);return this._values[r]=e,this},e.prototype.delete=function(e){var r=this._find(e,!1);if(r>=0){for(var n=this._keys.length,o=r+1;o<n;o++)this._keys[o-1]=this._keys[o],this._values[o-1]=this._values[o];return this._keys.length--,this._values.length--,Y(e,this._cacheKey)&&(this._cacheKey=t,this._cacheIndex=-2),!0}return!1},e.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=t,this._cacheIndex=-2},e.prototype.keys=function(){return new r(this._keys,this._values,o)},e.prototype.values=function(){return new r(this._keys,this._values,i)},e.prototype.entries=function(){return new r(this._keys,this._values,s)},e.prototype["@@iterator"]=function(){return this.entries()},e.prototype[a]=function(){return this.entries()},e.prototype._find=function(t,e){if(!Y(this._cacheKey,t)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(Y(this._keys[r],t)){this._cacheIndex=r;break}}return this._cacheIndex<0&&e&&(this._cacheIndex=this._keys.length,this._keys.push(t),this._values.push(void 0)),this._cacheIndex},e}();return n;function o(t,e){return t}function i(t,e){return e}function s(t,e){return[t,e]}}function ut(){return function(){function t(){this._map=new p}return Object.defineProperty(t.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),t.prototype.has=function(t){return this._map.has(t)},t.prototype.add=function(t){return this._map.set(t,t),this},t.prototype.delete=function(t){return this._map.delete(t)},t.prototype.clear=function(){this._map.clear()},t.prototype.keys=function(){return this._map.keys()},t.prototype.values=function(){return this._map.keys()},t.prototype.entries=function(){return this._map.entries()},t.prototype["@@iterator"]=function(){return this.keys()},t.prototype[a]=function(){return this.keys()},t}()}function lt(){var t=16,e=u.create(),n=o();return function(){function t(){this._key=o()}return t.prototype.has=function(t){var e=a(t,!1);return void 0!==e&&u.has(e,this._key)},t.prototype.get=function(t){var e=a(t,!1);return void 0!==e?u.get(e,this._key):void 0},t.prototype.set=function(t,e){return a(t,!0)[this._key]=e,this},t.prototype.delete=function(t){var e=a(t,!1);return void 0!==e&&delete e[this._key]},t.prototype.clear=function(){this._key=o()},t}();function o(){var t;do{t="@@WeakMap@@"+c()}while(u.has(e,t));return e[t]=!0,t}function a(t,e){if(!r.call(t,n)){if(!e)return;Object.defineProperty(t,n,{value:u.create()})}return t[n]}function i(t,e){for(var r=0;r<e;++r)t[r]=255*Math.random()|0;return t}function s(t){if("function"==typeof Uint8Array){var e=new Uint8Array(t);return"undefined"!=typeof crypto?crypto.getRandomValues(e):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(e):i(e,t),e}return i(new Array(t),t)}function c(){var e=s(t);e[6]=79&e[6]|64,e[8]=191&e[8]|128;for(var r="",n=0;n<t;++n){var o=e[n];4!==n&&6!==n&&8!==n||(r+="-"),o<16&&(r+="0"),r+=o.toString(16).toLowerCase()}return r}}function pt(t){return t.__=void 0,delete t.__,t}t("decorate",m),t("metadata",g),t("defineMetadata",S),t("hasMetadata",_),t("hasOwnMetadata",O),t("getMetadata",E),t("getOwnMetadata",w),t("getMetadataKeys",b),t("getOwnMetadataKeys",T),t("deleteMetadata",M)}(r,e),void 0===e.Reflect&&(e.Reflect=t)}()}(t||(t={}))),w;var t}();const b="Crud";const T=Symbol("cell");function M(t){const e=t.prototype;return(Reflect.getMetadata(T,e)||[]).map((t=>{const r=Reflect.getMetadata(`${T.toString()}:${t}:options`,e)||{};return{...r,name:r?.name??t}}))}const A=Symbol("input");function x(t){const e=t.prototype;return(Reflect.getMetadata(A,e)||[]).map((t=>{const r=Reflect.getMetadata(`${A.toString()}:${t}:options`,e)||{},n=r?.inputType??(o=t,["password"].some((t=>o.toLowerCase().includes(t)))?"password":"text");var o;return{...r,editable:r.editable??!0,sensitive:r.sensitive,name:r?.name??t,label:r?.label??t,placeholder:r?.placeholder??t,inputType:n,selectOptions:r?.selectOptions??[],cancelPasswordValidationOnEdit:r?.cancelPasswordValidationOnEdit??"password"===n}}))}function N({menu:t,getIcons:e}){const r=i((t=>t.screens??{})),[a,s]=n.useState(!0);return n.createElement("div",{className:"sidebar "+(a?"open":"closed")},n.createElement("button",{className:"toggle-button",onClick:()=>s(!a)},a?"<":">"),n.createElement("nav",{className:"nav-links"},t?.(r).map(((t,r)=>n.createElement(o.Link,{key:r,to:t.path,className:"nav-link"},n.createElement("span",{className:"nav-links-icon"},e?.(t.iconType)),a?n.createElement("span",null,t.name):null)))))}class C extends n.Component{state={hasError:!1,error:null,errorInfo:null};static getDerivedStateFromError(t){return{hasError:!0,error:t,errorInfo:null}}componentDidCatch(t,e){this.setState({error:t,errorInfo:e})}render(){return this.state.hasError?n.createElement("div",{className:"error-boundary"},n.createElement("div",{className:"error-boundary__content"},n.createElement("div",{className:"error-boundary__icon"},n.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor"},n.createElement("circle",{cx:"12",cy:"12",r:"10"}),n.createElement("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),n.createElement("line",{x1:"12",y1:"16",x2:"12",y2:"16"}))),n.createElement("h1",null,"Oops! Something went wrong"),n.createElement("p",{className:"error-boundary__message"},this.state.error?.message||"An unexpected error occurred"),n.createElement("button",{className:"error-boundary__button",onClick:()=>window.location.reload()},"Refresh Page"),"development"===process.env.NODE_ENV&&n.createElement("details",{className:"error-boundary__details"},n.createElement("summary",null,"Error Details"),n.createElement("pre",null,this.state.error?.toString()),n.createElement("pre",null,this.state.errorInfo?.componentStack)))):this.props.children}}var L=function(t){this.groups=[],this.each=!1,this.context=void 0,this.type=t.type,this.name=t.name,this.target=t.target,this.propertyName=t.propertyName,this.constraints=null==t?void 0:t.constraints,this.constraintCls=t.constraintCls,this.validationTypeOptions=t.validationTypeOptions,t.validationOptions&&(this.message=t.validationOptions.message,this.groups=t.validationOptions.groups,this.always=t.validationOptions.always,this.each=t.validationOptions.each,this.context=t.validationOptions.context)},P=function(){function t(){}return t.prototype.transform=function(t){var e=[];return Object.keys(t.properties).forEach((function(r){t.properties[r].forEach((function(n){var o={message:n.message,groups:n.groups,always:n.always,each:n.each},a={type:n.type,name:n.name,target:t.name,propertyName:r,constraints:n.constraints,validationTypeOptions:n.options,validationOptions:o};e.push(new L(a))}))})),e},t}();function k(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0}function I(t){return null!==t&&"object"==typeof t&&"function"==typeof t.then}var j=function(t){var e="function"==typeof Symbol&&Symbol.iterator,r=e&&t[e],n=0;if(r)return r.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},V=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i},D=function(t,e,r){if(r||2===arguments.length)for(var n,o=0,a=e.length;o<a;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||Array.prototype.slice.call(e))},R=function(){function t(){this.validationMetadatas=new Map,this.constraintMetadatas=new Map}return Object.defineProperty(t.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.size},enumerable:!1,configurable:!0}),t.prototype.addValidationSchema=function(t){var e=this;(new P).transform(t).forEach((function(t){return e.addValidationMetadata(t)}))},t.prototype.addValidationMetadata=function(t){var e=this.validationMetadatas.get(t.target);e?e.push(t):this.validationMetadatas.set(t.target,[t])},t.prototype.addConstraintMetadata=function(t){var e=this.constraintMetadatas.get(t.target);e?e.push(t):this.constraintMetadatas.set(t.target,[t])},t.prototype.groupByPropertyName=function(t){var e={};return t.forEach((function(t){e[t.propertyName]||(e[t.propertyName]=[]),e[t.propertyName].push(t)})),e},t.prototype.getTargetValidationMetadatas=function(t,e,r,n,o){var a,i,s=function(t){return void 0!==t.always?t.always:(!t.groups||!t.groups.length)&&r},c=function(t){return!(!n||o&&o.length||!t.groups||!t.groups.length)},u=(this.validationMetadatas.get(t)||[]).filter((function(r){return(r.target===t||r.target===e)&&(!!s(r)||!c(r)&&(!(o&&o.length>0)||r.groups&&!!r.groups.find((function(t){return-1!==o.indexOf(t)}))))})),l=[];try{for(var p=j(this.validationMetadatas.entries()),f=p.next();!f.done;f=p.next()){var d=V(f.value,2),h=d[0],y=d[1];t.prototype instanceof h&&l.push.apply(l,D([],V(y),!1))}}catch(t){a={error:t}}finally{try{f&&!f.done&&(i=p.return)&&i.call(p)}finally{if(a)throw a.error}}var v=l.filter((function(e){return"string"!=typeof e.target&&(e.target!==t&&((!(e.target instanceof Function)||t.prototype instanceof e.target)&&(!!s(e)||!c(e)&&(!(o&&o.length>0)||e.groups&&!!e.groups.find((function(t){return-1!==o.indexOf(t)}))))))})).filter((function(t){return!u.find((function(e){return e.propertyName===t.propertyName&&e.type===t.type}))}));return u.concat(v)},t.prototype.getTargetValidatorConstraints=function(t){return this.constraintMetadatas.get(t)||[]},t}();function F(){var t=k();return t.classValidatorMetadataStorage||(t.classValidatorMetadataStorage=new R),t.classValidatorMetadataStorage}var $=function(){function t(){}return t.prototype.toString=function(t,e,r,n){var o=this;void 0===t&&(t=!1),void 0===e&&(e=!1),void 0===r&&(r=""),void 0===n&&(n=!1);var a=t?"":"",i=t?"":"",s=function(t){return" - property ".concat(a).concat(r).concat(t).concat(i," has failed the following constraints: ").concat(a).concat((n?Object.values:Object.keys)(null!==(e=o.constraints)&&void 0!==e?e:{}).join(", ")).concat(i," \n");var e};if(e){var c=Number.isInteger(+this.property)?"[".concat(this.property,"]"):"".concat(r?".":"").concat(this.property);return this.constraints?s(c):this.children?this.children.map((function(e){return e.toString(t,!0,"".concat(r).concat(c),n)})).join(""):""}return"An instance of ".concat(a).concat(this.target?this.target.constructor.name:"an object").concat(i," has failed the validation:\n")+(this.constraints?s(this.property):"")+(this.children?this.children.map((function(e){return e.toString(t,!0,o.property,n)})).join(""):"")},t}(),U=function(){function t(){}return t.isValid=function(t){var e=this;return"isValid"!==t&&"getMessage"!==t&&-1!==Object.keys(this).map((function(t){return e[t]})).indexOf(t)},t.CUSTOM_VALIDATION="customValidation",t.NESTED_VALIDATION="nestedValidation",t.PROMISE_VALIDATION="promiseValidation",t.CONDITIONAL_VALIDATION="conditionalValidation",t.WHITELIST="whitelistValidation",t.IS_DEFINED="isDefined",t}();var z=function(){function t(){}return t.replaceMessageSpecialTokens=function(t,e){var r;return t instanceof Function?r=t(e):"string"==typeof t&&(r=t),r&&Array.isArray(e.constraints)&&e.constraints.forEach((function(t,e){r=r.replace(new RegExp("\\$constraint".concat(e+1),"g"),function(t){return Array.isArray(t)?t.join(", "):("symbol"==typeof t&&(t=t.description),"".concat(t))}(t))})),r&&void 0!==e.value&&null!==e.value&&["string","boolean","number"].includes(typeof e.value)&&(r=r.replace(/\$value/g,e.value)),r&&(r=r.replace(/\$property/g,e.property)),r&&(r=r.replace(/\$target/g,e.targetName)),r},t}(),K=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i},B=function(){function t(t,e){this.validator=t,this.validatorOptions=e,this.awaitingPromises=[],this.ignoreAsyncValidations=!1,this.metadataStorage=F()}return t.prototype.execute=function(t,e,r){var n,o,a=this;this.metadataStorage.hasValidationMetaData||!0!==(null===(n=this.validatorOptions)||void 0===n?void 0:n.enableDebugMessages)||console.warn("No validation metadata found. No validation will be performed. There are multiple possible reasons:\n - There may be multiple class-validator versions installed. You will need to flatten your dependencies to fix the issue.\n - This validation runs before any file with validation decorator was parsed by NodeJS.");var i=this.validatorOptions?this.validatorOptions.groups:void 0,s=this.validatorOptions&&this.validatorOptions.strictGroups||!1,c=this.validatorOptions&&this.validatorOptions.always||!1,u=void 0===(null===(o=this.validatorOptions)||void 0===o?void 0:o.forbidUnknownValues)||!1!==this.validatorOptions.forbidUnknownValues,l=this.metadataStorage.getTargetValidationMetadatas(t.constructor,e,c,s,i),p=this.metadataStorage.groupByPropertyName(l);if(this.validatorOptions&&u&&!l.length){var f=new $;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(f.target=t),f.value=void 0,f.property=void 0,f.children=[],f.constraints={unknownValue:"an unknown value was passed to the validate function"},void r.push(f)}this.validatorOptions&&this.validatorOptions.whitelist&&this.whitelist(t,p,r),Object.keys(p).forEach((function(e){var n=t[e],o=p[e].filter((function(t){return t.type===U.IS_DEFINED})),i=p[e].filter((function(t){return t.type!==U.IS_DEFINED&&t.type!==U.WHITELIST}));n instanceof Promise&&i.find((function(t){return t.type===U.PROMISE_VALIDATION}))?a.awaitingPromises.push(n.then((function(n){a.performValidations(t,n,e,o,i,r)}))):a.performValidations(t,n,e,o,i,r)}))},t.prototype.whitelist=function(t,e,r){var n=this,o=[];Object.keys(t).forEach((function(t){e[t]&&0!==e[t].length||o.push(t)})),o.length>0&&(this.validatorOptions&&this.validatorOptions.forbidNonWhitelisted?o.forEach((function(e){var o,a=n.generateValidationError(t,t[e],e);a.constraints=((o={})[U.WHITELIST]="property ".concat(e," should not exist"),o),a.children=void 0,r.push(a)})):o.forEach((function(e){return delete t[e]})))},t.prototype.stripEmptyErrors=function(t){var e=this;return t.filter((function(t){if(t.children&&(t.children=e.stripEmptyErrors(t.children)),0===Object.keys(t.constraints).length){if(0===t.children.length)return!1;delete t.constraints}return!0}))},t.prototype.performValidations=function(t,e,r,n,o,a){var i=o.filter((function(t){return t.type===U.CUSTOM_VALIDATION})),s=o.filter((function(t){return t.type===U.NESTED_VALIDATION})),c=o.filter((function(t){return t.type===U.CONDITIONAL_VALIDATION})),u=this.generateValidationError(t,e,r);a.push(u),this.conditionalValidations(t,e,c)&&(this.customValidations(t,e,n,u),this.mapContexts(t,e,n,u),void 0===e&&this.validatorOptions&&!0===this.validatorOptions.skipUndefinedProperties||null===e&&this.validatorOptions&&!0===this.validatorOptions.skipNullProperties||null==e&&this.validatorOptions&&!0===this.validatorOptions.skipMissingProperties||(this.customValidations(t,e,i,u),this.nestedValidations(e,s,u),this.mapContexts(t,e,o,u),this.mapContexts(t,e,i,u)))},t.prototype.generateValidationError=function(t,e,r){var n=new $;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(n.target=t),this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.value&&!0!==this.validatorOptions.validationError.value||(n.value=e),n.property=r,n.children=[],n.constraints={},n},t.prototype.conditionalValidations=function(t,e,r){return r.map((function(r){return r.constraints[0](t,e)})).reduce((function(t,e){return t&&e}),!0)},t.prototype.customValidations=function(t,e,r,n){var o=this;r.forEach((function(r){o.metadataStorage.getTargetValidatorConstraints(r.constraintCls).forEach((function(a){if(!(a.async&&o.ignoreAsyncValidations||o.validatorOptions&&o.validatorOptions.stopAtFirstError&&Object.keys(n.constraints||{}).length>0)){var i={targetName:t.constructor?t.constructor.name:void 0,property:r.propertyName,object:t,value:e,constraints:r.constraints};if(r.each&&(Array.isArray(e)||e instanceof Set||e instanceof Map)){var s,c=((s=e)instanceof Map?Array.from(s.values()):Array.isArray(s)?s:Array.from(s)).map((function(t){return a.instance.validate(t,i)}));if(c.some((function(t){return I(t)}))){var u=c.map((function(t){return I(t)?t:Promise.resolve(t)})),l=Promise.all(u).then((function(i){if(!i.every((function(t){return t}))){var s=K(o.createValidationError(t,e,r,a),2),c=s[0],u=s[1];n.constraints[c]=u,r.context&&(n.contexts||(n.contexts={}),n.contexts[c]=Object.assign(n.contexts[c]||{},r.context))}}));o.awaitingPromises.push(l)}else{if(!c.every((function(t){return t}))){var p=K(o.createValidationError(t,e,r,a),2);y=p[0],v=p[1];n.constraints[y]=v}}}else{var f=a.instance.validate(e,i);if(I(f)){var d=f.then((function(i){if(!i){var s=K(o.createValidationError(t,e,r,a),2),c=s[0],u=s[1];n.constraints[c]=u,r.context&&(n.contexts||(n.contexts={}),n.contexts[c]=Object.assign(n.contexts[c]||{},r.context))}}));o.awaitingPromises.push(d)}else if(!f){var h=K(o.createValidationError(t,e,r,a),2),y=h[0],v=h[1];n.constraints[y]=v}}}}))}))},t.prototype.nestedValidations=function(t,e,r){var n=this;void 0!==t&&e.forEach((function(o){if((o.type===U.NESTED_VALIDATION||o.type===U.PROMISE_VALIDATION)&&!(n.validatorOptions&&n.validatorOptions.stopAtFirstError&&Object.keys(r.constraints||{}).length>0))if(Array.isArray(t)||t instanceof Set||t instanceof Map)(t instanceof Set?Array.from(t):t).forEach((function(o,a){n.performValidations(t,o,a.toString(),[],e,r.children)}));else if(t instanceof Object){var a="string"==typeof o.target?o.target:o.target.name;n.execute(t,a,r.children)}else{var i=K(n.createValidationError(o.target,t,o),2),s=i[0],c=i[1];r.constraints[s]=c}}))},t.prototype.mapContexts=function(t,e,r,n){var o=this;return r.forEach((function(t){if(t.context){var e=void 0;if(t.type===U.CUSTOM_VALIDATION)e=o.metadataStorage.getTargetValidatorConstraints(t.constraintCls)[0];var r=o.getConstraintType(t,e);n.constraints[r]&&(n.contexts||(n.contexts={}),n.contexts[r]=Object.assign(n.contexts[r]||{},t.context))}}))},t.prototype.createValidationError=function(t,e,r,n){var o=t.constructor?t.constructor.name:void 0,a=this.getConstraintType(r,n),i={targetName:o,property:r.propertyName,object:t,value:e,constraints:r.constraints},s=r.message||"";return r.message||this.validatorOptions&&(!this.validatorOptions||this.validatorOptions.dismissDefaultMessages)||n&&n.instance.defaultMessage instanceof Function&&(s=n.instance.defaultMessage(i)),[a,z.replaceMessageSpecialTokens(s,i)]},t.prototype.getConstraintType=function(t,e){return e&&e.name?e.name:t.type},t}(),G=function(t,e,r,n){return new(r||(r=Promise))((function(o,a){function i(t){try{c(n.next(t))}catch(t){a(t)}}function s(t){try{c(n.throw(t))}catch(t){a(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,s)}c((n=n.apply(t,e||[])).next())}))},H=function(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,n=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(t,i)}catch(t){s=[6,t],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}},W=function(){function t(){}return t.prototype.validate=function(t,e,r){return this.coreValidate(t,e,r)},t.prototype.validateOrReject=function(t,e,r){return G(this,void 0,void 0,(function(){var n;return H(this,(function(o){switch(o.label){case 0:return[4,this.coreValidate(t,e,r)];case 1:return(n=o.sent()).length?[2,Promise.reject(n)]:[2]}}))}))},t.prototype.validateSync=function(t,e,r){var n="string"==typeof t?e:t,o="string"==typeof t?t:void 0,a=new B(this,"string"==typeof t?r:e);a.ignoreAsyncValidations=!0;var i=[];return a.execute(n,o,i),a.stripEmptyErrors(i)},t.prototype.coreValidate=function(t,e,r){var n="string"==typeof t?e:t,o="string"==typeof t?t:void 0,a=new B(this,"string"==typeof t?r:e),i=[];return a.execute(n,o,i),Promise.all(a.awaitingPromises).then((function(){return a.stripEmptyErrors(i)}))},t}(),J=new(function(){function t(){this.instances=[]}return t.prototype.get=function(t){var e=this.instances.find((function(e){return e.type===t}));return e||(e={type:t,object:new t},this.instances.push(e)),e.object},t}());function q(t){return J.get(t)}function Y(t,e,r){return"string"==typeof t?q(W).validate(t,e,r):q(W).validate(t,e)}function Q(t,e,r){return"string"==typeof t?q(W).validateSync(t,e,r):q(W).validateSync(t,e)}const X=(t,e,r)=>{if(t&&"reportValidity"in t){const n=a.get(r,e);t.setCustomValidity(n&&n.message||""),t.reportValidity()}},Z=(t,e)=>{for(const r in e.fields){const n=e.fields[r];n&&n.ref&&"reportValidity"in n.ref?X(n.ref,r,t):n&&n.refs&&n.refs.forEach((e=>X(e,r,t)))}},tt=(t,e)=>{e.shouldUseNativeValidation&&Z(t,e);const r={};for(const n in t){const o=a.get(e.fields,n),i=Object.assign(t[n]||{},{ref:o&&o.ref});if(et(e.names||Object.keys(t),n)){const t=Object.assign({},a.get(r,n));a.set(t,"root",i),a.set(r,n,t)}else a.set(r,n,i)}return r},et=(t,e)=>{const r=rt(e);return t.some((t=>rt(t).match(`^${r}\\.\\d+`)))};function rt(t){return t.replace(/\]|\[/g,"")}var nt;!function(t){t[t.PLAIN_TO_CLASS=0]="PLAIN_TO_CLASS",t[t.CLASS_TO_PLAIN=1]="CLASS_TO_PLAIN",t[t.CLASS_TO_CLASS=2]="CLASS_TO_CLASS"}(nt||(nt={}));var ot=new(function(){function t(){this._typeMetadatas=new Map,this._transformMetadatas=new Map,this._exposeMetadatas=new Map,this._excludeMetadatas=new Map,this._ancestorsMap=new Map}return t.prototype.addTypeMetadata=function(t){this._typeMetadatas.has(t.target)||this._typeMetadatas.set(t.target,new Map),this._typeMetadatas.get(t.target).set(t.propertyName,t)},t.prototype.addTransformMetadata=function(t){this._transformMetadatas.has(t.target)||this._transformMetadatas.set(t.target,new Map),this._transformMetadatas.get(t.target).has(t.propertyName)||this._transformMetadatas.get(t.target).set(t.propertyName,[]),this._transformMetadatas.get(t.target).get(t.propertyName).push(t)},t.prototype.addExposeMetadata=function(t){this._exposeMetadatas.has(t.target)||this._exposeMetadatas.set(t.target,new Map),this._exposeMetadatas.get(t.target).set(t.propertyName,t)},t.prototype.addExcludeMetadata=function(t){this._excludeMetadatas.has(t.target)||this._excludeMetadatas.set(t.target,new Map),this._excludeMetadatas.get(t.target).set(t.propertyName,t)},t.prototype.findTransformMetadatas=function(t,e,r){return this.findMetadatas(this._transformMetadatas,t,e).filter((function(t){return!t.options||(!0===t.options.toClassOnly&&!0===t.options.toPlainOnly||(!0===t.options.toClassOnly?r===nt.CLASS_TO_CLASS||r===nt.PLAIN_TO_CLASS:!0!==t.options.toPlainOnly||r===nt.CLASS_TO_PLAIN))}))},t.prototype.findExcludeMetadata=function(t,e){return this.findMetadata(this._excludeMetadatas,t,e)},t.prototype.findExposeMetadata=function(t,e){return this.findMetadata(this._exposeMetadatas,t,e)},t.prototype.findExposeMetadataByCustomName=function(t,e){return this.getExposedMetadatas(t).find((function(t){return t.options&&t.options.name===e}))},t.prototype.findTypeMetadata=function(t,e){return this.findMetadata(this._typeMetadatas,t,e)},t.prototype.getStrategy=function(t){var e=this._excludeMetadatas.get(t),r=e&&e.get(void 0),n=this._exposeMetadatas.get(t),o=n&&n.get(void 0);return r&&o||!r&&!o?"none":r?"excludeAll":"exposeAll"},t.prototype.getExposedMetadatas=function(t){return this.getMetadata(this._exposeMetadatas,t)},t.prototype.getExcludedMetadatas=function(t){return this.getMetadata(this._excludeMetadatas,t)},t.prototype.getExposedProperties=function(t,e){return this.getExposedMetadatas(t).filter((function(t){return!t.options||(!0===t.options.toClassOnly&&!0===t.options.toPlainOnly||(!0===t.options.toClassOnly?e===nt.CLASS_TO_CLASS||e===nt.PLAIN_TO_CLASS:!0!==t.options.toPlainOnly||e===nt.CLASS_TO_PLAIN))})).map((function(t){return t.propertyName}))},t.prototype.getExcludedProperties=function(t,e){return this.getExcludedMetadatas(t).filter((function(t){return!t.options||(!0===t.options.toClassOnly&&!0===t.options.toPlainOnly||(!0===t.options.toClassOnly?e===nt.CLASS_TO_CLASS||e===nt.PLAIN_TO_CLASS:!0!==t.options.toPlainOnly||e===nt.CLASS_TO_PLAIN))})).map((function(t){return t.propertyName}))},t.prototype.clear=function(){this._typeMetadatas.clear(),this._exposeMetadatas.clear(),this._excludeMetadatas.clear(),this._ancestorsMap.clear()},t.prototype.getMetadata=function(t,e){var r,n=t.get(e);n&&(r=Array.from(n.values()).filter((function(t){return void 0!==t.propertyName})));for(var o=[],a=0,i=this.getAncestors(e);a<i.length;a++){var s=i[a],c=t.get(s);if(c){var u=Array.from(c.values()).filter((function(t){return void 0!==t.propertyName}));o.push.apply(o,u)}}return o.concat(r||[])},t.prototype.findMetadata=function(t,e,r){var n=t.get(e);if(n){var o=n.get(r);if(o)return o}for(var a=0,i=this.getAncestors(e);a<i.length;a++){var s=i[a],c=t.get(s);if(c){var u=c.get(r);if(u)return u}}},t.prototype.findMetadatas=function(t,e,r){var n,o=t.get(e);o&&(n=o.get(r));for(var a=[],i=0,s=this.getAncestors(e);i<s.length;i++){var c=s[i],u=t.get(c);u&&u.has(r)&&a.push.apply(a,u.get(r))}return a.slice().reverse().concat((n||[]).slice().reverse())},t.prototype.getAncestors=function(t){if(!t)return[];if(!this._ancestorsMap.has(t)){for(var e=[],r=Object.getPrototypeOf(t.prototype.constructor);void 0!==r.prototype;r=Object.getPrototypeOf(r.prototype.constructor))e.push(r);this._ancestorsMap.set(t,e)}return this._ancestorsMap.get(t)},t}());var at=function(t,e,r){if(r||2===arguments.length)for(var n,o=0,a=e.length;o<a;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||Array.prototype.slice.call(e))};var it=function(){function t(t,e){this.transformationType=t,this.options=e,this.recursionStack=new Set}return t.prototype.transform=function(t,e,r,n,o,a){var i,s=this;if(void 0===a&&(a=0),Array.isArray(e)||e instanceof Set){var c=n&&this.transformationType===nt.PLAIN_TO_CLASS?function(t){var e=new t;return e instanceof Set||"push"in e?e:[]}(n):[];return e.forEach((function(e,n){var o=t?t[n]:void 0;if(s.options.enableCircularCheck&&s.isCircular(e))s.transformationType===nt.CLASS_TO_CLASS&&(c instanceof Set?c.add(e):c.push(e));else{var i=void 0;if("function"!=typeof r&&r&&r.options&&r.options.discriminator&&r.options.discriminator.property&&r.options.discriminator.subTypes){if(s.transformationType===nt.PLAIN_TO_CLASS){i=r.options.discriminator.subTypes.find((function(t){return t.name===e[r.options.discriminator.property]}));var u={newObject:c,object:e,property:void 0},l=r.typeFunction(u);i=void 0===i?l:i.value,r.options.keepDiscriminatorProperty||delete e[r.options.discriminator.property]}s.transformationType===nt.CLASS_TO_CLASS&&(i=e.constructor),s.transformationType===nt.CLASS_TO_PLAIN&&(e[r.options.discriminator.property]=r.options.discriminator.subTypes.find((function(t){return t.value===e.constructor})).name)}else i=r;var p=s.transform(o,e,i,void 0,e instanceof Map,a+1);c instanceof Set?c.add(p):c.push(p)}})),c}if(r!==String||o){if(r!==Number||o){if(r!==Boolean||o){if((r===Date||e instanceof Date)&&!o)return e instanceof Date?new Date(e.valueOf()):null==e?e:new Date(e);if(("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0).Buffer&&(r===Buffer||e instanceof Buffer)&&!o)return null==e?e:Buffer.from(e);if(null===(i=e)||"object"!=typeof i||"function"!=typeof i.then||o){if(o||null===e||"object"!=typeof e||"function"!=typeof e.then){if("object"==typeof e&&null!==e){r||e.constructor===Object||(Array.isArray(e)||e.constructor!==Array)&&(r=e.constructor),!r&&t&&(r=t.constructor),this.options.enableCircularCheck&&this.recursionStack.add(e);var u=this.getKeys(r,e,o),l=t||{};t||this.transformationType!==nt.PLAIN_TO_CLASS&&this.transformationType!==nt.CLASS_TO_CLASS||(l=o?new Map:r?new r:{});for(var p=function(n){if("__proto__"===n||"constructor"===n)return"continue";var i=n,s=n,c=n;if(!f.options.ignoreDecorators&&r)if(f.transformationType===nt.PLAIN_TO_CLASS)(u=ot.findExposeMetadataByCustomName(r,n))&&(c=u.propertyName,s=u.propertyName);else if(f.transformationType===nt.CLASS_TO_PLAIN||f.transformationType===nt.CLASS_TO_CLASS){var u;(u=ot.findExposeMetadata(r,n))&&u.options&&u.options.name&&(s=u.options.name)}var p=void 0;p=f.transformationType===nt.PLAIN_TO_CLASS?e[i]:e instanceof Map?e.get(i):e[i]instanceof Function?e[i]():e[i];var d=void 0,h=p instanceof Map;if(r&&o)d=r;else if(r){var y=ot.findTypeMetadata(r,c);if(y){var v={newObject:l,object:e,property:c},m=y.typeFunction?y.typeFunction(v):y.reflectedType;y.options&&y.options.discriminator&&y.options.discriminator.property&&y.options.discriminator.subTypes?e[i]instanceof Array?d=y:(f.transformationType===nt.PLAIN_TO_CLASS&&(d=void 0===(d=y.options.discriminator.subTypes.find((function(t){if(p&&p instanceof Object&&y.options.discriminator.property in p)return t.name===p[y.options.discriminator.property]})))?m:d.value,y.options.keepDiscriminatorProperty||p&&p instanceof Object&&y.options.discriminator.property in p&&delete p[y.options.discriminator.property]),f.transformationType===nt.CLASS_TO_CLASS&&(d=p.constructor),f.transformationType===nt.CLASS_TO_PLAIN&&p&&(p[y.options.discriminator.property]=y.options.discriminator.subTypes.find((function(t){return t.value===p.constructor})).name)):d=m,h=h||y.reflectedType===Map}else if(f.options.targetMaps)f.options.targetMaps.filter((function(t){return t.target===r&&!!t.properties[c]})).forEach((function(t){return d=t.properties[c]}));else if(f.options.enableImplicitConversion&&f.transformationType===nt.PLAIN_TO_CLASS){var g=Reflect.getMetadata("design:type",r.prototype,c);g&&(d=g)}}var S=Array.isArray(e[i])?f.getReflectedType(r,c):void 0,_=t?t[i]:void 0;if(l.constructor.prototype){var O=Object.getOwnPropertyDescriptor(l.constructor.prototype,s);if((f.transformationType===nt.PLAIN_TO_CLASS||f.transformationType===nt.CLASS_TO_CLASS)&&(O&&!O.set||l[s]instanceof Function))return"continue"}if(f.options.enableCircularCheck&&f.isCircular(p)){if(f.transformationType===nt.CLASS_TO_CLASS){w=p;(void 0!==(w=f.applyCustomTransformations(w,r,n,e,f.transformationType))||f.options.exposeUnsetFields)&&(l instanceof Map?l.set(s,w):l[s]=w)}}else{var E=f.transformationType===nt.PLAIN_TO_CLASS?s:n,w=void 0;f.transformationType===nt.CLASS_TO_PLAIN?(w=e[E],w=f.applyCustomTransformations(w,r,E,e,f.transformationType),w=e[E]===w?p:w,w=f.transform(_,w,d,S,h,a+1)):void 0===p&&f.options.exposeDefaultValues?w=l[s]:(w=f.transform(_,p,d,S,h,a+1),w=f.applyCustomTransformations(w,r,E,e,f.transformationType)),(void 0!==w||f.options.exposeUnsetFields)&&(l instanceof Map?l.set(s,w):l[s]=w)}},f=this,d=0,h=u;d<h.length;d++){p(h[d])}return this.options.enableCircularCheck&&this.recursionStack.delete(e),l}return e}return e}return new Promise((function(t,n){e.then((function(e){return t(s.transform(void 0,e,r,void 0,void 0,a+1))}),n)}))}return null==e?e:Boolean(e)}return null==e?e:Number(e)}return null==e?e:String(e)},t.prototype.applyCustomTransformations=function(t,e,r,n,o){var a=this,i=ot.findTransformMetadatas(e,r,this.transformationType);return void 0!==this.options.version&&(i=i.filter((function(t){return!t.options||a.checkVersion(t.options.since,t.options.until)}))),(i=this.options.groups&&this.options.groups.length?i.filter((function(t){return!t.options||a.checkGroups(t.options.groups)})):i.filter((function(t){return!t.options||!t.options.groups||!t.options.groups.length}))).forEach((function(e){t=e.transformFn({value:t,key:r,obj:n,type:o,options:a.options})})),t},t.prototype.isCircular=function(t){return this.recursionStack.has(t)},t.prototype.getReflectedType=function(t,e){if(t){var r=ot.findTypeMetadata(t,e);return r?r.reflectedType:void 0}},t.prototype.getKeys=function(t,e,r){var n=this,o=ot.getStrategy(t);"none"===o&&(o=this.options.strategy||"exposeAll");var a=[];if(("exposeAll"===o||r)&&(a=e instanceof Map?Array.from(e.keys()):Object.keys(e)),r)return a;if(this.options.ignoreDecorators&&this.options.excludeExtraneousValues&&t){var i=ot.getExposedProperties(t,this.transformationType),s=ot.getExcludedProperties(t,this.transformationType);a=at(at([],i,!0),s,!0)}if(!this.options.ignoreDecorators&&t){i=ot.getExposedProperties(t,this.transformationType);this.transformationType===nt.PLAIN_TO_CLASS&&(i=i.map((function(e){var r=ot.findExposeMetadata(t,e);return r&&r.options&&r.options.name?r.options.name:e}))),a=this.options.excludeExtraneousValues?i:a.concat(i);var c=ot.getExcludedProperties(t,this.transformationType);c.length>0&&(a=a.filter((function(t){return!c.includes(t)}))),void 0!==this.options.version&&(a=a.filter((function(e){var r=ot.findExposeMetadata(t,e);return!r||!r.options||n.checkVersion(r.options.since,r.options.until)}))),a=this.options.groups&&this.options.groups.length?a.filter((function(e){var r=ot.findExposeMetadata(t,e);return!r||!r.options||n.checkGroups(r.options.groups)})):a.filter((function(e){var r=ot.findExposeMetadata(t,e);return!(r&&r.options&&r.options.groups&&r.options.groups.length)}))}return this.options.excludePrefixes&&this.options.excludePrefixes.length&&(a=a.filter((function(t){return n.options.excludePrefixes.every((function(e){return t.substr(0,e.length)!==e}))}))),a=a.filter((function(t,e,r){return r.indexOf(t)===e}))},t.prototype.checkVersion=function(t,e){var r=!0;return r&&t&&(r=this.options.version>=t),r&&e&&(r=this.options.version<e),r},t.prototype.checkGroups=function(t){return!t||this.options.groups.some((function(e){return t.includes(e)}))},t}(),st={enableCircularCheck:!1,enableImplicitConversion:!1,excludeExtraneousValues:!1,excludePrefixes:void 0,exposeDefaultValues:!1,exposeUnsetFields:!0,groups:void 0,ignoreDecorators:!1,strategy:void 0,targetMaps:void 0,version:void 0},ct=function(){return ct=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},ct.apply(this,arguments)},ut=new(function(){function t(){}return t.prototype.instanceToPlain=function(t,e){return new it(nt.CLASS_TO_PLAIN,ct(ct({},st),e)).transform(void 0,t,void 0,void 0,void 0,void 0)},t.prototype.classToPlainFromExist=function(t,e,r){return new it(nt.CLASS_TO_PLAIN,ct(ct({},st),r)).transform(e,t,void 0,void 0,void 0,void 0)},t.prototype.plainToInstance=function(t,e,r){return new it(nt.PLAIN_TO_CLASS,ct(ct({},st),r)).transform(void 0,e,t,void 0,void 0,void 0)},t.prototype.plainToClassFromExist=function(t,e,r){return new it(nt.PLAIN_TO_CLASS,ct(ct({},st),r)).transform(t,e,void 0,void 0,void 0,void 0)},t.prototype.instanceToInstance=function(t,e){return new it(nt.CLASS_TO_CLASS,ct(ct({},st),e)).transform(void 0,t,void 0,void 0,void 0,void 0)},t.prototype.classToClassFromExist=function(t,e,r){return new it(nt.CLASS_TO_CLASS,ct(ct({},st),r)).transform(e,t,void 0,void 0,void 0,void 0)},t.prototype.serialize=function(t,e){return JSON.stringify(this.instanceToPlain(t,e))},t.prototype.deserialize=function(t,e,r){var n=JSON.parse(e);return this.plainToInstance(t,n,r)},t.prototype.deserializeArray=function(t,e,r){var n=JSON.parse(e);return this.plainToInstance(t,n,r)},t}());function lt(t,e,r,n){return void 0===r&&(r={}),void 0===n&&(n=""),t.reduce((function(t,r){var o=n?n+"."+r.property:r.property;if(r.constraints){var a=Object.keys(r.constraints)[0];t[o]={type:a,message:r.constraints[a]};var i=t[o];e&&i&&Object.assign(i,{types:r.constraints})}return r.children&&r.children.length&&lt(r.children,e,t,o),t}),r)}function pt(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),function(n,o,a){try{var i=e.validator,s=(c=t,u=n,l=e.transformer,ut.plainToInstance(c,u,l));return Promise.resolve(("sync"===r.mode?Q:Y)(s,i)).then((function(t){return t.length?{values:{},errors:tt(lt(t,!a.shouldUseNativeValidation&&"all"===a.criteriaMode),a)}:(a.shouldUseNativeValidation&&Z({},a),{values:r.raw?Object.assign({},n):s,errors:{}})}))}catch(t){return Promise.reject(t)}var c,u,l}}function ft(t,e){const r=F().getTargetValidationMetadatas(e,"",!1,!1),n=function(t){return Reflect.getMetadata(b,t)}(e);return{resolver:pt(e),fields:Array.from(new Set(r.map((t=>t.propertyName)))),inputs:x(e),cells:M(e),crud:n,path:"/"+(n?.controller??t)}}exports.Cell=function(t){return(e,r)=>{const n=Reflect.getMetadata(T,e)||[];if(Reflect.defineMetadata(T,[...n,r.toString()],e),t){const n=`${T.toString()}:${r.toString()}:options`;Reflect.defineMetadata(n,t,e)}}},exports.Crud=function(t){return e=>{t&&Reflect.defineMetadata(b,t,e)}},exports.Input=function(t){return(e,r)=>{const n=Reflect.getMetadata(A,e)||[];if(Reflect.defineMetadata(A,[...n,r.toString()],e),t){const n=`${A.toString()}:${r.toString()}:options`;Reflect.defineMetadata(n,t,e)}}},exports.Layout=function({children:t,menu:e,getIcons:r}){return n.createElement("div",{className:"layout"},n.createElement(N,{menu:e,getIcons:r}),n.createElement("main",{className:"content"},t))},exports.Panel=function({children:t,init:e}){return n.useEffect((()=>{!function({crud:t,fetch:e}){const r={};Object.entries(t).forEach((([t,e])=>{r[t]=ft(t,e)})),s(r),i.setState({fetchSettings:{baseUrl:e.baseURL}})}(e())}),[e]),n.createElement(C,null,t)},exports.createScreens=s,exports.useScreens=function(){const t=i((t=>t.screens??{}));return n.useMemo((()=>n.createElement(n.Fragment,null,Object.entries(t).map((([t,e])=>{const r=e.crud?.controller??t;let a=`${e.path}`;const i={key:t,controller:r};return console.log("path",e,a),n.createElement(n.Fragment,{key:"index"},n.createElement(o.Route,{path:a+"/create",element:n.createElement(y,{screen:i})}),n.createElement(o.Route,{path:a+"/details/:id",element:n.createElement(m,{screen:i})}),n.createElement(o.Route,{path:a+"/edit/:id",element:n.createElement(g,{screen:i})}),n.createElement(o.Route,{path:a,element:n.createElement(_,{screen:i})}))})),n.createElement(o.Route,{path:"*",element:n.createElement("div",null,"404 - Not Found")}))),[t])};
package/dist/index.d.ts CHANGED
@@ -1,4 +1,9 @@
1
+ export { type InitPanelOptions } from "./types/initPanelOptions";
2
+ export { type ScreenCreatorData } from "./types/ScreenCreatorData";
1
3
  export { createScreens } from "./utils/createScreens";
2
- export { getScreenForRoutes } from "./utils/getScreenForRoutes";
4
+ export { useScreens } from "./hooks/useScreens";
5
+ export { Crud } from "./decorators/Crud";
6
+ export { Cell } from "./decorators/Cell";
7
+ export { Input } from "./decorators/Input";
3
8
  export { Layout } from "./components/layout/Layout";
4
9
  export { Panel } from "./components/Panel";