adminizer 4.1.0-build.1 → 4.1.0-commit.ad1476a

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 (64) hide show
  1. package/assets/{VanillaJSONEditor-EdDEEERs.js → VanillaJSONEditor-FUe77pIA.js} +2 -2
  2. package/assets/{add-CXBzlfCv.js → add-ZITr43GJ.js} +1 -1
  3. package/assets/{add-form-C1pPO9IW.js → add-form-CYOfr0Ef.js} +1 -1
  4. package/assets/{add-group-BIVpnHvQ.js → add-group-B332wN8K.js} +1 -1
  5. package/assets/add-group-form-dzadPSfL.js +1 -0
  6. package/assets/{add-user-BXbPJ4kC.js → add-user-TC-mYdsB.js} +1 -1
  7. package/assets/add-user-form-y2f_1_lM.js +1 -0
  8. package/assets/{app-layout-HvBcNP7X.js → app-layout-D1m9Kvxq.js} +1 -1
  9. package/assets/{app-shell-CeSqdfTT.js → app-shell-BWMRMkHM.js} +1 -1
  10. package/assets/app-sidebar-BCtaEFGb.js +1 -0
  11. package/assets/{app-sidebar-header-pNKH1knV.js → app-sidebar-header-DLAFi13E.js} +1 -1
  12. package/assets/app.js +2 -2
  13. package/assets/{dashboard-DOZBrGfi.js → dashboard-BR602KhL.js} +1 -1
  14. package/assets/{field-renderer-hXvJ0krZ.js → field-renderer-CapylJU9.js} +68 -68
  15. package/assets/{form-yYsjEajF.js → form-DOUNk3o2.js} +1 -1
  16. package/assets/form-lOKv4Qbw.js +1 -0
  17. package/assets/geo-json-CwteYDGB.js +19 -0
  18. package/assets/{handsontable-Wf0rBy4A.js → handsontable-BCnjOpBr.js} +2 -2
  19. package/assets/{home-BGYylio4.js → home-Ch6QfTIt.js} +2 -2
  20. package/assets/{init-user-D9K13Tol.js → init-user-D9mW-g14.js} +1 -1
  21. package/assets/{list-vQjhDdnO.js → list-Qyd7ecQH.js} +1 -1
  22. package/assets/list-table-DB1sEQLF.js +62 -0
  23. package/assets/{login-BKGj0WOS.js → login-DrGaTWhY.js} +1 -1
  24. package/assets/manifest.json +86 -86
  25. package/assets/{module-BtDdcMyj.js → module-DBaykv8l.js} +1 -1
  26. package/assets/{monaco-editor-BWdkjOSO.js → monaco-editor-DqAqwxw4.js} +3 -3
  27. package/assets/multi-select-oabtVhUP.js +11 -0
  28. package/assets/{nav-footer-BoqrRyzw.js → nav-footer-CM-yHiRs.js} +1 -1
  29. package/assets/nav-main-Q3xofGRT.js +1 -0
  30. package/assets/{nav-user-KahV1IDw.js → nav-user-Ds8i0Pa2.js} +1 -1
  31. package/assets/{register-r-RETuTI.js → register-C9FQIDtS.js} +1 -1
  32. package/assets/sidebar-4D-sX2l4.js +6 -0
  33. package/assets/{toast-editor-BQpTg1Td.js → toast-editor-FbrFd1ft.js} +81 -81
  34. package/assets/use-appearance-Co6mO0dV.js +1 -0
  35. package/assets/{welcome-Z0ubrSPJ.js → welcome-D2adQ8EU.js} +1 -1
  36. package/controllers/add.js +1 -1
  37. package/controllers/edit.js +4 -1
  38. package/controllers/form.js +1 -0
  39. package/controllers/list.js +3 -2
  40. package/controllers/remove.js +2 -2
  41. package/helpers/inertiaActionsHelper.d.ts +1 -0
  42. package/helpers/inertiaActionsHelper.js +1 -0
  43. package/helpers/inertiaAddHelper.d.ts +2 -2
  44. package/helpers/inertiaAddHelper.js +1 -1
  45. package/helpers/inertiaListHelper.js +1 -0
  46. package/helpers/menuHelper.d.ts +1 -0
  47. package/helpers/menuHelper.js +2 -0
  48. package/interfaces/adminpanelConfig.d.ts +4 -0
  49. package/lib/Adminizer.js +12 -1
  50. package/package.json +2 -2
  51. package/system/bindForms.js +1 -1
  52. package/system/defaults.js +17 -0
  53. package/translations/ru.json +79 -42
  54. package/Readme.md +0 -36
  55. package/assets/add-group-form-BWu1FoyP.js +0 -1
  56. package/assets/add-user-form-Dm9-szTc.js +0 -1
  57. package/assets/app-sidebar-BtgeHCOh.js +0 -1
  58. package/assets/form-BMkoRYG6.js +0 -1
  59. package/assets/geo-json-paEzaL-W.js +0 -19
  60. package/assets/list-table-CE3swbOx.js +0 -62
  61. package/assets/multi-select-DOrUHH4A.js +0 -11
  62. package/assets/nav-main-BL-Hmm6O.js +0 -1
  63. package/assets/sidebar-VU5deMRj.js +0 -6
  64. package/assets/use-appearance-CL_TqHcP.js +0 -1
@@ -0,0 +1 @@
1
+ import{c as S}from"./compiler-runtime-tM4jBQ-T.js";import{r as l}from"./app.js";const y=()=>typeof window>"u"?!1:window.matchMedia("(prefers-color-scheme: dark)").matches,E=(e,a,r=365)=>{if(typeof document>"u")return;const o=r*24*60*60;document.cookie=`${e}=${a};path=/;max-age=${o};SameSite=Lax`},c=e=>{const a=e==="dark"||e==="system"&&y();document.documentElement.classList.toggle("dark",a)},w=()=>typeof window>"u"?null:window.matchMedia("(prefers-color-scheme: dark)"),v=()=>{const e=localStorage.getItem("appearance");c(e||"light")};function C(){var a;const e=localStorage.getItem("appearance")||"system";c(e),(a=w())==null||a.addEventListener("change",v)}function L(){const e=S.c(6),[a,r]=l.useState("system"),[o,g]=l.useState(!1);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=n=>{g(!0),r(n),localStorage.setItem("appearance",n),E("appearance",n),c(n),setTimeout(()=>{g(!1),window.dispatchEvent(new Event("appearanceChanged"))},0)},e[0]=s):s=e[0];const d=s;let p,i;e[1]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{const n=localStorage.getItem("appearance");d(n||"light");const h=t=>{if(t.key==="appearance"){const f=t.newValue;r(f),c(f)}},u=()=>{const t=localStorage.getItem("appearance");r(t),c(t)};return window.addEventListener("storage",h),window.addEventListener("appearanceChanged",u),()=>{var t;window.removeEventListener("storage",h),window.removeEventListener("appearanceChanged",u),(t=w())==null||t.removeEventListener("change",v)}},i=[d],e[1]=p,e[2]=i):(p=e[1],i=e[2]),l.useEffect(p,i);let m;return e[3]!==a||e[4]!==o?(m={appearance:a,updateAppearance:d,isThemeChanging:o},e[3]=a,e[4]=o,e[5]=m):m=e[5],m}export{C as i,L as u};
@@ -1 +1 @@
1
- import{q as s,j as i}from"./app.js";import{c as l}from"./compiler-runtime-tM4jBQ-T.js";import{A as x}from"./app-layout-HvBcNP7X.js";import"./sidebar-VU5deMRj.js";import"./index-DrWfGwtf.js";import"./button-CQ9t1kLz.js";import"./utils-DjqsqOe8.js";import"./index-DTRTjOmh.js";import"./createLucideIcon-BFG25zNo.js";import"./index-Cdb9ACvz.js";import"./index-D5ir9iUV.js";import"./index-K81GbF6O.js";import"./index-C0SL3SHw.js";import"./index-BC0yfOHo.js";import"./tooltip-D2ehgLlB.js";import"./index-BcE9FUM6.js";import"./app-shell-CeSqdfTT.js";import"./app-sidebar-BtgeHCOh.js";import"./nav-main-BL-Hmm6O.js";import"./material-icon-CItZiB53.js";import"./chevron-right-D5q8rF7h.js";import"./index-BbXEMx9n.js";import"./index-DEk3sC8d.js";import"./chevrons-up-down-kALltqHV.js";import"./app-sidebar-header-pNKH1knV.js";import"./breadcrumbs-CQNon4Vl.js";import"./nav-user-KahV1IDw.js";import"./dropdown-menu-SEBnEIiL.js";import"./user-info-DBYoAJYJ.js";import"./user-menu-content-qkvdkUVd.js";import"./icon-Bz9BMaD0.js";import"./use-appearance-CL_TqHcP.js";const a=[];function J(){const t=l.c(8),r=s();let o;t[0]!==r.props.title?(o=r.props.title&&i.jsx("div",{className:"text-3xl mb-8",children:r.props.title}),t[0]=r.props.title,t[1]=o):o=t[1];let e;t[2]===Symbol.for("react.memo_cache_sentinel")?(e=i.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),t[2]=e):e=t[2];let p;t[3]!==r.props.text?(p=r.props.text&&i.jsx("div",{dangerouslySetInnerHTML:{__html:r.props.text}}),t[3]=r.props.text,t[4]=p):p=t[4];let m;return t[5]!==o||t[6]!==p?(m=i.jsx(x,{breadcrumbs:a,children:i.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[o,e,p]})}),t[5]=o,t[6]=p,t[7]=m):m=t[7],m}export{J as default};
1
+ import{q as s,j as i}from"./app.js";import{c as l}from"./compiler-runtime-tM4jBQ-T.js";import{A as x}from"./app-layout-D1m9Kvxq.js";import"./sidebar-4D-sX2l4.js";import"./index-DrWfGwtf.js";import"./button-CQ9t1kLz.js";import"./utils-DjqsqOe8.js";import"./index-DTRTjOmh.js";import"./createLucideIcon-BFG25zNo.js";import"./index-Cdb9ACvz.js";import"./index-D5ir9iUV.js";import"./index-K81GbF6O.js";import"./index-C0SL3SHw.js";import"./index-BC0yfOHo.js";import"./tooltip-D2ehgLlB.js";import"./index-BcE9FUM6.js";import"./app-shell-BWMRMkHM.js";import"./app-sidebar-BCtaEFGb.js";import"./nav-main-Q3xofGRT.js";import"./material-icon-CItZiB53.js";import"./chevron-right-D5q8rF7h.js";import"./index-BbXEMx9n.js";import"./index-DEk3sC8d.js";import"./chevrons-up-down-kALltqHV.js";import"./app-sidebar-header-DLAFi13E.js";import"./breadcrumbs-CQNon4Vl.js";import"./nav-user-Ds8i0Pa2.js";import"./dropdown-menu-SEBnEIiL.js";import"./user-info-DBYoAJYJ.js";import"./user-menu-content-qkvdkUVd.js";import"./icon-Bz9BMaD0.js";import"./use-appearance-Co6mO0dV.js";const a=[];function J(){const t=l.c(8),r=s();let o;t[0]!==r.props.title?(o=r.props.title&&i.jsx("div",{className:"text-3xl mb-8",children:r.props.title}),t[0]=r.props.title,t[1]=o):o=t[1];let e;t[2]===Symbol.for("react.memo_cache_sentinel")?(e=i.jsx("div",{className:"text-3xl mb-8",children:"Adminizer"}),t[2]=e):e=t[2];let p;t[3]!==r.props.text?(p=r.props.text&&i.jsx("div",{dangerouslySetInnerHTML:{__html:r.props.text}}),t[3]=r.props.text,t[4]=p):p=t[4];let m;return t[5]!==o||t[6]!==p?(m=i.jsx(x,{breadcrumbs:a,children:i.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[o,e,p]})}),t[5]=o,t[6]=p,t[7]=m):m=t[7],m}export{J as default};
@@ -94,7 +94,7 @@ export default async function add(req, res) {
94
94
  return res.json({ record: record });
95
95
  }
96
96
  else {
97
- req.flash.setFlashMessage('success', 'Your record was created !');
97
+ req.flash.setFlashMessage('success', req.i18n.__('New record was created'));
98
98
  return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/model/${entity.name}`);
99
99
  }
100
100
  }
@@ -32,6 +32,9 @@ export default async function edit(req, res) {
32
32
  const id = req.params.id;
33
33
  dataAccessor = new DataAccessor(req, entity, "edit");
34
34
  record = await entity.model.findOne({ id: id }, dataAccessor);
35
+ if (!record)
36
+ return res.status(404).send("Adminpanel > Record not found");
37
+ ;
35
38
  }
36
39
  catch (e) {
37
40
  Adminizer.log.error('Admin edit error: ');
@@ -128,7 +131,7 @@ export default async function edit(req, res) {
128
131
  }
129
132
  }
130
133
  }
131
- req.flash.setFlashMessage('success', 'Your record was updated !');
134
+ req.flash.setFlashMessage('success', req.i18n.__('Record was updated'));
132
135
  return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/model/${entity.name}`);
133
136
  }
134
137
  }
@@ -50,6 +50,7 @@ export default async function form(req, res) {
50
50
  await req.adminizer.config.forms.set(slug, field, false);
51
51
  }
52
52
  }
53
+ return req.Inertia.redirect(`${req.adminizer.config.routePrefix}/form/${slug}`);
53
54
  }
54
55
  for (let key of Object.keys(form)) {
55
56
  try {
@@ -53,7 +53,7 @@ export default async function list(req, res) {
53
53
  column,
54
54
  value,
55
55
  }));
56
- const { columns, nodeTreeColumns } = setColumns(fields, orderColumn, direction, searchPairs);
56
+ const { columns, nodeTreeColumns } = setColumns(fields, orderColumn, direction, searchPairs, req);
57
57
  const RequestBody = {
58
58
  draw: "1",
59
59
  start: start,
@@ -90,7 +90,7 @@ export default async function list(req, res) {
90
90
  });
91
91
  }, dataAccessor);
92
92
  }
93
- function setColumns(fields, orderColumn, direction, searchPairs) {
93
+ function setColumns(fields, orderColumn, direction, searchPairs, req) {
94
94
  const columns = {};
95
95
  const nodeTreeColumns = [];
96
96
  let i = 1;
@@ -101,6 +101,7 @@ function setColumns(fields, orderColumn, direction, searchPairs) {
101
101
  const searchValue = searchForThisColumn ? searchForThisColumn.value : "";
102
102
  columns[key] = {
103
103
  ...field.config,
104
+ title: req.i18n.__(field.config.title),
104
105
  data: String(i),
105
106
  direction: String(i) === orderColumn ? direction : undefined,
106
107
  searchColumnValue: searchValue || undefined, // undefined, если поиска нет
@@ -67,10 +67,10 @@ export default async function remove(req, res) {
67
67
  Adminizer.log.error('adminpanel > error', e);
68
68
  }
69
69
  if (destroyedRecord) {
70
- req.flash.setFlashMessage('success', 'Record was removed successfully !');
70
+ req.flash.setFlashMessage('success', req.i18n.__('Record was removed successfully !'));
71
71
  }
72
72
  else {
73
- req.flash.setFlashMessage('success', 'Record was not removed');
73
+ req.flash.setFlashMessage('error', req.i18n.__('Record was not removed'));
74
74
  }
75
75
  let referToUrl = referTo ? `${entity.uri}${referTo}` : `${entity.uri}`;
76
76
  return req.Inertia.redirect(`${referToUrl}`);
@@ -3,6 +3,7 @@ import { ActionType } from "../interfaces/adminpanelConfig";
3
3
  export interface Actions {
4
4
  link: string;
5
5
  id: string;
6
+ type: 'blank' | 'self';
6
7
  title: string;
7
8
  icon: string;
8
9
  }
@@ -8,6 +8,7 @@ export default function inertiaActionsHelper(actionType, entity, req) {
8
8
  resActions.push({
9
9
  link: action.link,
10
10
  id: action.id,
11
+ type: action.type,
11
12
  title: action.title,
12
13
  icon: action.icon
13
14
  });
@@ -4,7 +4,7 @@ import { Fields } from "./fieldsHelper";
4
4
  import { BaseFieldConfig } from "../interfaces/adminpanelConfig";
5
5
  import { AbstractControls, ControlType } from "../lib/controls/AbstractControls";
6
6
  export type PropsFieldType = 'text' | 'number' | 'range' | 'week' | 'month' | 'email' | 'color' | 'time' | 'date' | 'datetime-local' | 'password' | 'select' | 'select-many' | 'association-many' | 'association' | 'textarea' | 'checkbox' | ControlType;
7
- interface listProps extends Record<string | number | symbol, unknown> {
7
+ interface FieldProps extends Record<string | number | symbol, unknown> {
8
8
  edit: boolean;
9
9
  view: boolean;
10
10
  actions: Actions[];
@@ -20,7 +20,7 @@ interface listProps extends Record<string | number | symbol, unknown> {
20
20
  };
21
21
  postLink: string;
22
22
  }
23
- export default function inertiaAddHelper(req: ReqType, entity: Entity, fields: Fields, record?: Record<string, string | boolean | number | string[]>, view?: boolean): listProps;
23
+ export default function inertiaAddHelper(req: ReqType, entity: Entity, fields: Fields, record?: Record<string, string | boolean | number | string[]>, view?: boolean): FieldProps;
24
24
  export declare function getControlsOptions(fieldConfig: BaseFieldConfig, req: ReqType, type: ControlType, defaultControlName: string): {
25
25
  name: string;
26
26
  config: {
@@ -32,7 +32,7 @@ export default function inertiaAddHelper(req, entity, fields, record, view = fal
32
32
  let tooltip = fieldConfig.tooltip ?? '';
33
33
  let name = key;
34
34
  let fieldType = 'text';
35
- let disabled = false;
35
+ let disabled = fieldConfig.disabled ?? false;
36
36
  let required = fieldConfig.required ?? false;
37
37
  let options = {};
38
38
  let value = record ? record[key] : undefined;
@@ -43,6 +43,7 @@ export function inertiaListHelper(entity, req, fields) {
43
43
  props.inlineActions.push({
44
44
  icon: inlineAction.icon,
45
45
  id: inlineAction.id,
46
+ type: inlineAction.type,
46
47
  link: inlineAction.link,
47
48
  title: req.i18n.__(inlineAction.title),
48
49
  });
@@ -8,6 +8,7 @@ export type MenuItem = {
8
8
  link: string;
9
9
  title: string;
10
10
  id: string;
11
+ type?: 'blank' | 'self';
11
12
  actions: HrefConfig[];
12
13
  icon: string;
13
14
  accessRightsToken: string;
@@ -108,6 +108,7 @@ export class MenuHelper {
108
108
  menus.push({
109
109
  link: additionalLink.link,
110
110
  title: additionalLink.title,
111
+ type: additionalLink.type,
111
112
  id: additionalLink.id || additionalLink.title.replace(" ", "_"),
112
113
  actions: additionalLink.subItems || null,
113
114
  icon: additionalLink.icon || null,
@@ -123,6 +124,7 @@ export class MenuHelper {
123
124
  id: "overview",
124
125
  link: MenuHelper.config.routePrefix + '/model/' + key,
125
126
  title: 'Overview',
127
+ type: 'self',
126
128
  icon: "list",
127
129
  accessRightsToken: `read-${key}-model`
128
130
  });
@@ -395,6 +395,10 @@ export interface HrefConfig {
395
395
  id: string;
396
396
  title: string;
397
397
  link: string;
398
+ /**
399
+ * Blank or self
400
+ */
401
+ type: 'blank' | 'self';
398
402
  icon?: MaterialIcon;
399
403
  /**
400
404
  * Only for view, controller still uses his own access rights token
package/lib/Adminizer.js CHANGED
@@ -86,12 +86,23 @@ export class Adminizer {
86
86
  }
87
87
  // Merge custom config with default, additionally merge models
88
88
  const defaultConfig = getDefaultConfig();
89
+ const { forms: configForms = {}, ...restConfig } = config;
90
+ const { forms: defaultForms = {}, } = defaultConfig;
89
91
  this.config = {
90
92
  ...defaultConfig,
91
- ...config,
93
+ ...restConfig,
92
94
  models: {
93
95
  ...defaultConfig.models,
94
96
  ...config.models
97
+ },
98
+ forms: {
99
+ path: configForms.path ?? defaultForms.path,
100
+ data: {
101
+ ...defaultForms.data,
102
+ ...configForms.data
103
+ },
104
+ get: configForms.get ?? defaultForms.get,
105
+ set: configForms.set ?? defaultForms.set
95
106
  }
96
107
  };
97
108
  // console.log("CONFIG", this.config)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adminizer",
3
3
  "type": "module",
4
- "version": "4.1.0-build.1",
4
+ "version": "4.1.0-commit.ad1476a",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -19,7 +19,7 @@
19
19
  "build:assets:modules": "npm run build:assets && npm run copy:modules",
20
20
  "start:seed": "cross-env SEED_DATA=true tsx --tsconfig ./fixture/tsconfig.json ./fixture/index.ts",
21
21
  "demo:build": "npm run copy:backend && npm run compile:backend && npm run build:assets && npm run copy:modules",
22
- "demo": "cross-env DEMO=true npm run start:seed"
22
+ "demo": "cross-env SEED_DATA=true DEMO=true tsx --tsconfig ./fixture/tsconfig.json ./fixture/index.ts"
23
23
  },
24
24
  "keywords": [],
25
25
  "author": "",
@@ -7,7 +7,7 @@ export default async function bindForms(adminizer) {
7
7
  FormHelper.loadForms(adminizer, `${process.cwd()}/${adminizer.config.forms.path}`);
8
8
  }
9
9
  }
10
- adminizer.emitter.on("orm:loaded", async () => {
10
+ adminizer.emitter.on("adminizer:loaded", async () => {
11
11
  // Seeding forms data
12
12
  for (let form in adminizer.config.forms.data) {
13
13
  for (let key in adminizer.config.forms.data[form]) {
@@ -39,6 +39,23 @@ var adminpanelConfig = {
39
39
  edit: {
40
40
  controller: "../controllers/editUser"
41
41
  },
42
+ fields: {
43
+ login: {
44
+ title: 'User login',
45
+ },
46
+ fullName: {
47
+ title: 'Full Name'
48
+ },
49
+ password: {
50
+ title: 'Password',
51
+ },
52
+ isAdministrator: {
53
+ title: 'is administrator'
54
+ },
55
+ isConfirme: {
56
+ title: 'is confirme'
57
+ }
58
+ },
42
59
  list: {
43
60
  fields: {
44
61
  createdAt: false,
@@ -1,47 +1,48 @@
1
1
  {
2
- "Welcome": "Здравствуйте",
3
- "A brand new app.": "Ваш новый бренд",
4
- "Actions": "Действия",
5
- "No records found !": "Записей не найдено",
6
- "Are you sure ?": "Вы уверены?",
7
- "View": "Просмотреть",
8
- "Edit": "Редактировать",
2
+ "Welcome": "Здравствуйте",
3
+ "A brand new app.": "Ваш новый бренд",
4
+ "Actions": "Действия",
5
+ "No records found !": "Записей не найдено",
6
+ "Are you sure ?": "Вы уверены?",
7
+ "View": "Просмотреть",
8
+ "Edit": "Редактировать",
9
9
  "create": "Создать",
10
10
  "create new": "создать новую",
11
- "Overview": "Обзор",
12
- "Adminpanel": "Админпанель",
13
- "This is opensource project": "Это проект с открытым исходным кодом",
14
- "Back to list": "Вернутся в список",
15
- "Edit record": "Редактировать запись",
16
- "Remove record": "Удалить запись",
17
- "Save": "Сохранить",
18
- "Login": "Вход",
19
- "Full name": "Полное имя",
20
- "E-mail": "E-mail",
21
- "Password": "Пароль",
22
- "Timezone": "Временная зона",
23
- "Profile expires: ": "Активен до: ",
24
- "Locale": "Локаль",
25
- "EN": "EN",
26
- "UA": "UA",
27
- "RU": "RU",
28
- "DE": "DE",
29
- "Profile expires": "Профиль истекает",
30
- "Back": " Назад",
31
- "Delete": "Удалить",
32
- "User settings": "Настроики пользователя",
33
- "User's groups": "Пользователи группы",
34
- "Group settings": "Настройки группы",
35
- "Group name": "Название группы",
36
- "Group description": "Описание группы",
37
- "Members": "Участники",
38
- "Pretend to be a user": "Притворится пользователем",
39
- "Password repeat": "Повторите пароль",
40
- "User groups": "Группы пользователя",
41
- "Repeat password": "Повторить пароль",
42
- "Please log in": "Пожалуйста авторизируйтесь",
43
- "Log in": "Вход",
44
- "Log out": "Выход",
11
+ "Overview": "Обзор",
12
+ "Adminpanel": "Админпанель",
13
+ "This is opensource project": "Это проект с открытым исходным кодом",
14
+ "Back to list": "Вернутся в список",
15
+ "Edit record": "Редактировать запись",
16
+ "Remove record": "Удалить запись",
17
+ "Save": "Сохранить",
18
+ "Login": "Вход",
19
+ "User login": "Логин пользователя",
20
+ "Full name": "Полное имя",
21
+ "E-mail": "E-mail",
22
+ "Password": "Пароль",
23
+ "Timezone": "Временная зона",
24
+ "Profile expires: ": "Активен до: ",
25
+ "Locale": "Локаль",
26
+ "EN": "EN",
27
+ "UA": "UA",
28
+ "RU": "RU",
29
+ "DE": "DE",
30
+ "Profile expires": "Профиль истекает",
31
+ "Back": " Назад",
32
+ "Delete": "Удалить",
33
+ "User settings": "Настроики пользователя",
34
+ "User's groups": "Пользователи группы",
35
+ "Group settings": "Настройки группы",
36
+ "Group name": "Название группы",
37
+ "Group description": "Описание группы",
38
+ "Members": "Участники",
39
+ "Pretend to be a user": "Притворится пользователем",
40
+ "Password repeat": "Повторите пароль",
41
+ "User groups": "Группы пользователя",
42
+ "Repeat password": "Повторить пароль",
43
+ "Please log in": "Пожалуйста авторизируйтесь",
44
+ "Log in": "Вход",
45
+ "Log out": "Выход",
45
46
  "Select Item type": "Выберите Элемент",
46
47
  "Select Items": "Ничего не выбрано",
47
48
  "Search": "Поиск",
@@ -54,5 +55,41 @@
54
55
  "Select": "Выберите",
55
56
  "OR": "ИЛИ",
56
57
  "Select Ids": "Выберите ID",
57
- "Not found": "Ничего не найдено"
58
+ "Not found": "Ничего не найдено",
59
+ "Yes": "Да",
60
+ "No": "Нет",
61
+ "Full Name": "Полное имя",
62
+ "password": "password",
63
+ "expires": "Истекает",
64
+ "is administrator": "Администратор",
65
+ "widgets": "Виджеты",
66
+ "isConfirmed": "Подтверждено",
67
+ "isAdministrator": "isAdministrator",
68
+ "id": "id",
69
+ "Title": "Title",
70
+ "name": "Имя",
71
+ "description": "Описание",
72
+ "tokens": "Токены",
73
+ "users": "Пользователи",
74
+ "data": "data",
75
+ "data2": "data2",
76
+ "Google": "Google",
77
+ "Google1": "Google1",
78
+ "Google2": "Google2",
79
+ "Test Edit": "Test Edit",
80
+ "Textarea": "Textarea",
81
+ "Disabled": "Disabled",
82
+ "Boolean": "Boolean",
83
+ "time": "time",
84
+ "Number": "Number",
85
+ "Editor": "Editor",
86
+ "Date and time": "Date and time",
87
+ "Values in \"password\" and \"repeatPassword\" fields should be the same": "Значения в полях \"password\" и \"repeatPassword\" должны быть одинаковыми.",
88
+ "Is Administrator": "Администратор",
89
+ "Is confirmed": "Подтверждено",
90
+ "Leave this field empty if you don't want to change the password": "Оставьте это поле пустым, если вы не хотите менять пароль.",
91
+ "New record was created": "Новая запись создана",
92
+ "Record was updated": "Запись обновлена",
93
+ "Record was not removed": "Запись не удалена",
94
+ "Record was removed successfully !": "Запись удалена успешно!"
58
95
  }
package/Readme.md DELETED
@@ -1,36 +0,0 @@
1
- # Adminizer
2
-
3
- <span class="badge-npmversion"><a href="https://npmjs.org/package/adminizer" title="View this project on NPM"><img src="https://img.shields.io/npm/v/adminizer.svg" alt="NPM version" /></a></span>
4
-
5
-
6
- Adminizer is a modern admin panel built as an independent module for Node.js.
7
- The backend is written in TypeScript, and the frontend uses React, providing high modularity and flexibility.
8
- The system is specifically designed to be **framework- and ORM-agnostic**, running directly inside the Node.js Runtime.
9
- Thanks to this approach, Adminizer can be integrated into any server-side application, regardless of its architecture.
10
-
11
- The project is **open-source**, **free to use**, and focused on building an **open community**.
12
- We would like to express special thanks to **Konstantin Zolotarev**, who laid the foundation with the **sails-adminpanel** project, which we later reworked and generalized.
13
-
14
- The core principle of Adminizer is **maximum extensibility**.
15
- The admin panel can be configured and expanded **at runtime** without requiring rebuilds or server restarts.
16
- We aimed to make the system as easy to integrate as possible: just install the package and immediately gain access to a powerful admin interface.
17
-
18
- Adminizer allows you to:
19
- - Read and write data from **any resource model (RM)**.
20
- - Connect **multiple resource models** across different sources.
21
- - Flexibly manage **user access rights** for reading and writing data.
22
- - Quickly build **personal dashboards**, admin panels, and **TMDP solutions** for industrial use cases.
23
- - Easily extend and customize for any project requirements.
24
-
25
- Key features:
26
- - **Modern tech stack:** ESM modules, React-based interface, flexible control components.
27
- - **Production ready:** Supports complex configurations with multiple databases or models.
28
- - **Scalable and extensible:** Create your own controls, modules, and customize admin logic.
29
-
30
- **Adminizer** is the perfect choice for quickly building powerful administrative interfaces and server infrastructure.
31
-
32
- ---
33
-
34
-
35
-
36
- [Go to the documentation](https://github.com/adminization/adminizer/blob/main/docs/index.md)
@@ -1 +0,0 @@
1
- import{q as D,S,r as y,j as s,J as q}from"./app.js";import{c as M}from"./compiler-runtime-tM4jBQ-T.js";import{B as E}from"./button-CQ9t1kLz.js";import{Icon as B}from"./icon-Bz9BMaD0.js";import{L as g}from"./label-Z506NKsW.js";import{I}from"./input-DF7Ue23C.js";import{C as O}from"./checkbox-W0nGAXIj.js";import{T as J,a as R,b as $,c as z}from"./tooltip-D2ehgLlB.js";import{M as A,I as G}from"./move-left-BhKZRPb4.js";import{L as H}from"./loader-circle-Utah5tGx.js";import"./index-DrWfGwtf.js";import"./utils-DjqsqOe8.js";import"./index-K81GbF6O.js";import"./index-D5ir9iUV.js";import"./index-Cdb9ACvz.js";import"./index-DwctwfU0.js";import"./index-BC0yfOHo.js";import"./check-LAUWAnlX.js";import"./createLucideIcon-BFG25zNo.js";import"./index-BcE9FUM6.js";const L=y.memo(r=>{const e=M.c(20),{field:t,disabled:h,value:m,onCheckedChange:u,tooltip:f}=r;let x;e[0]!==t.name||e[1]!==u?(x=j=>{u(t.name,j)},e[0]=t.name,e[1]=u,e[2]=x):x=e[2];const i=x;let o;e[3]!==h||e[4]!==t.name||e[5]!==i||e[6]!==m?(o=s.jsx(O,{id:t.name,className:"cursor-pointer size-5",disabled:h,checked:m,onCheckedChange:i}),e[3]=h,e[4]=t.name,e[5]=i,e[6]=m,e[7]=o):o=e[7];let l;e[8]!==t.label||e[9]!==t.name?(l=s.jsx(g,{className:"cursor-pointer",htmlFor:t.name,children:t.label}),e[8]=t.label,e[9]=t.name,e[10]=l):l=e[10];let d;e[11]!==t.tooltip||e[12]!==f?(d=f&&s.jsx(J,{children:s.jsxs(R,{children:[s.jsx($,{onClick:P,children:s.jsx(B,{iconNode:G,className:"text-primary w-5 h-5 cursor-pointer"})}),s.jsx(z,{align:"center",side:"top",children:s.jsx("p",{children:t.tooltip})})]})}),e[11]=t.tooltip,e[12]=f,e[13]=d):d=e[13];let p;e[14]!==l||e[15]!==d?(p=s.jsxs("div",{className:"flex gap-3",children:[l,d]}),e[14]=l,e[15]=d,e[16]=p):p=e[16];let c;return e[17]!==o||e[18]!==p?(c=s.jsxs("div",{className:"flex gap-3 items-center",children:[o,p]}),e[17]=o,e[18]=p,e[19]=c):c=e[19],c});function de(){var p,c,j,b,v,C,N,k,w,T,F;const r=D(),{fields:e,groupedTokens:t,users:h}=r.props,{data:m,setData:u,clearErrors:f,post:x,processing:i}=S({...Object.fromEntries(e.map(a=>[a.name,a.value])),...Object.fromEntries(h.map(a=>[a.name,a.value])),...Object.fromEntries(t.flatMap(a=>a.fields.map(n=>[n.name,n.value])))}),o=a=>r.props.fields.find(n=>n.name===a),l=y.useCallback((a,n)=>{f(),u(a,n)},[]),d=a=>{a.preventDefault(),x(r.props.postLink)};return s.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[s.jsx(E,{className:"mb-3 w-fit",asChild:!0,children:s.jsxs(q,{href:r.props.btnBack.link,children:[s.jsx(B,{iconNode:A}),r.props.btnBack.title]})}),s.jsx("form",{id:"addUserForm",onSubmit:d,className:`${r.props.view?"cursor-not-allowed":""}`,children:s.jsxs("div",{className:"flex flex-col gap-6 max-w-[1144px]",children:[s.jsx("h2",{className:"font-bold text-xl",children:r.props.head}),s.jsxs("div",{className:"grid gap-4",children:[s.jsx(g,{htmlFor:(p=o("name"))==null?void 0:p.name,children:(c=o("name"))==null?void 0:c.label}),s.jsx(I,{id:(j=o("name"))==null?void 0:j.name,type:"text",required:!0,tabIndex:1,autoComplete:(b=o("name"))==null?void 0:b.name,value:m.name,onChange:a=>l("name",a.target.value),disabled:i||r.props.view,placeholder:(v=o("name"))==null?void 0:v.label})]}),s.jsxs("div",{className:"grid gap-4",children:[s.jsx(g,{htmlFor:(C=o("description"))==null?void 0:C.name,children:(N=o("description"))==null?void 0:N.label}),s.jsx(I,{id:(k=o("description"))==null?void 0:k.name,type:"text",required:!0,tabIndex:1,autoComplete:(w=o("description"))==null?void 0:w.name,value:m.description,onChange:a=>l("description",a.target.value),disabled:i||r.props.view,placeholder:(T=o("description"))==null?void 0:T.label})]}),r.props.users.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"font-bold text-xl",children:r.props.userHead}),r.props.users.map(a=>s.jsx(L,{field:a,disabled:i||r.props.view,value:m[a.name],onCheckedChange:l},a.name))]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 xl:grid-cols-4 gap-4",children:((F=r.props.groupedTokens)==null?void 0:F.length)>0&&r.props.groupedTokens.map(a=>s.jsxs("div",{className:"grid gap-4 content-start justify-between",children:[s.jsx("h2",{className:"font-bold text-xl mt-3",children:a.header}),a.fields.map(n=>s.jsx(L,{field:n,disabled:i||r.props.view,value:m[n.name],onCheckedChange:l,tooltip:!0},n.name))]},a.header))}),s.jsxs(E,{variant:"green",type:"submit",className:"mt-4 w-fit cursor-pointer",disabled:i||r.props.view,children:[i&&s.jsx(H,{className:"h-4 w-4 animate-spin"}),r.props.btnSave.title]})]})})]})}function P(r){return r.preventDefault()}export{de as default};
@@ -1 +0,0 @@
1
- var js=Object.defineProperty;var vs=(e,t,r)=>t in e?js(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var b=(e,t,r)=>vs(e,typeof t!="symbol"?t+"":t,r);import{q as Rs,r as as,S as Ts,j as i,J as Cs}from"./app.js";import{c as Ns}from"./compiler-runtime-tM4jBQ-T.js";import{Icon as ns}from"./icon-Bz9BMaD0.js";import{B as ls}from"./button-CQ9t1kLz.js";import{L as m}from"./label-Z506NKsW.js";import{I as Fe}from"./input-DF7Ue23C.js";import{c as cs,S as ps,a as ds,b as fs,d as bs}from"./select-D1N8zRPY.js";import{C as yt}from"./checkbox-W0nGAXIj.js";import{b as ks,T as Ss,a as qs,c as Ps}from"./tooltip-D2ehgLlB.js";import Es from"./input-error-BBygona6.js";import{M as Us,I as As}from"./move-left-BhKZRPb4.js";import{L as Is}from"./loader-circle-Utah5tGx.js";import"./utils-DjqsqOe8.js";import"./index-DrWfGwtf.js";import"./index-K81GbF6O.js";import"./index-Cdb9ACvz.js";import"./index-D5ir9iUV.js";import"./index-BbXEMx9n.js";import"./index-C0SL3SHw.js";import"./index-DwctwfU0.js";import"./index-BcE9FUM6.js";import"./chevron-down-B5XuAFRu.js";import"./createLucideIcon-BFG25zNo.js";import"./check-LAUWAnlX.js";import"./index-BC0yfOHo.js";class us extends Error{constructor(r,o,a){const p=r.status||r.status===0?r.status:"",d=r.statusText||"",f=`${p} ${d}`.trim(),h=f?`status code ${f}`:"an unknown error";super(`Request failed with ${h}: ${o.method} ${o.url}`);b(this,"response");b(this,"request");b(this,"options");this.name="HTTPError",this.response=r,this.request=o,this.options=a}}class ws extends Error{constructor(r){super(`Request timed out: ${r.method} ${r.url}`);b(this,"request");this.name="TimeoutError",this.request=r}}const hs=(()=>{let e=!1,t=!1;const r=typeof globalThis.ReadableStream=="function",o=typeof globalThis.Request=="function";if(r&&o)try{t=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type")}catch(a){if(a instanceof Error&&a.message==="unsupported BodyInit type")return!1;throw a}return e&&!t})(),Ls=typeof globalThis.AbortController=="function",Bs=typeof globalThis.ReadableStream=="function",Fs=typeof globalThis.FormData=="function",gs=["get","post","put","patch","head","delete"],zs={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},xt=2147483647,Os=new TextEncoder().encode("------WebKitFormBoundaryaxpyiPgbbPti10Rw").length,ys=Symbol("stop"),Hs={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0},Ds={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0},$s=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(const[r,o]of e)t+=Os,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${r}"`).length,t+=typeof o=="string"?new TextEncoder().encode(o).length:o.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e=="string")return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if("byteLength"in e)return e.byteLength;if(typeof e=="object"&&e!==null)try{const t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},Ms=(e,t)=>{const r=Number(e.headers.get("content-length"))||0;let o=0;return e.status===204?(t&&t({percent:1,totalBytes:r,transferredBytes:o},new Uint8Array),new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers})):new Response(new ReadableStream({async start(a){const p=e.body.getReader();t&&t({percent:0,transferredBytes:0,totalBytes:r},new Uint8Array);async function d(){const{done:f,value:h}=await p.read();if(f){a.close();return}if(t){o+=h.byteLength;const n=r===0?0:o/r;t({percent:n,transferredBytes:o,totalBytes:r},h)}a.enqueue(h),await d()}await d()}}),{status:e.status,statusText:e.statusText,headers:e.headers})},Js=(e,t)=>{const r=$s(e.body);let o=0;return new Request(e,{duplex:"half",body:new ReadableStream({async start(a){const p=e.body instanceof ReadableStream?e.body.getReader():new Response("").body.getReader();async function d(){const{done:f,value:h}=await p.read();if(f){t&&t({percent:1,transferredBytes:o,totalBytes:Math.max(r,o)},new Uint8Array),a.close();return}o+=h.byteLength;let n=r===0?0:o/r;(r<o||n===1)&&(n=.99),t&&t({percent:Number(n.toFixed(2)),transferredBytes:o,totalBytes:r},h),a.enqueue(h),await d()}await d()}})})},ze=e=>e!==null&&typeof e=="object",Ye=(...e)=>{for(const t of e)if((!ze(t)||Array.isArray(t))&&t!==void 0)throw new TypeError("The `options` argument must be an object");return jt({},...e)},xs=(e={},t={})=>{const r=new globalThis.Headers(e),o=t instanceof globalThis.Headers,a=new globalThis.Headers(t);for(const[p,d]of a.entries())o&&d==="undefined"||d===void 0?r.delete(p):r.set(p,d);return r};function Ge(e,t,r){return Object.hasOwn(t,r)&&t[r]===void 0?[]:jt(e[r]??[],t[r]??[])}const _s=(e={},t={})=>({beforeRequest:Ge(e,t,"beforeRequest"),beforeRetry:Ge(e,t,"beforeRetry"),afterResponse:Ge(e,t,"afterResponse"),beforeError:Ge(e,t,"beforeError")}),jt=(...e)=>{let t={},r={},o={};for(const a of e)if(Array.isArray(a))Array.isArray(t)||(t=[]),t=[...t,...a];else if(ze(a)){for(let[p,d]of Object.entries(a))ze(d)&&p in t&&(d=jt(t[p],d)),t={...t,[p]:d};ze(a.hooks)&&(o=_s(o,a.hooks),t.hooks=o),ze(a.headers)&&(r=xs(r,a.headers),t.headers=r)}return t},Vs=e=>gs.includes(e)?e.toUpperCase():e,Ws=["get","put","head","delete","options","trace"],Ks=[408,413,429,500,502,503,504],Xs=[413,429,503],ms={limit:2,methods:Ws,statusCodes:Ks,afterStatusCodes:Xs,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:e=>.3*2**(e-1)*1e3},Ys=(e={})=>{if(typeof e=="number")return{...ms,limit:e};if(e.methods&&!Array.isArray(e.methods))throw new Error("retry.methods must be an array");if(e.statusCodes&&!Array.isArray(e.statusCodes))throw new Error("retry.statusCodes must be an array");return{...ms,...e}};async function Gs(e,t,r,o){return new Promise((a,p)=>{const d=setTimeout(()=>{r&&r.abort(),p(new ws(e))},o.timeout);o.fetch(e,t).then(a).catch(p).then(()=>{clearTimeout(d)})})}async function Qs(e,{signal:t}){return new Promise((r,o)=>{t&&(t.throwIfAborted(),t.addEventListener("abort",a,{once:!0}));function a(){clearTimeout(p),o(t.reason)}const p=setTimeout(()=>{t==null||t.removeEventListener("abort",a),r()},e)})}const Zs=(e,t)=>{const r={};for(const o in t)!(o in Ds)&&!(o in Hs)&&!(o in e)&&(r[o]=t[o]);return r};class Qe{constructor(t,r={}){b(this,"request");b(this,"abortController");b(this,"_retryCount",0);b(this,"_input");b(this,"_options");var o,a;if(this._input=t,this._options={...r,headers:xs(this._input.headers,r.headers),hooks:_s({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:Vs(r.method??this._input.method??"GET"),prefixUrl:String(r.prefixUrl||""),retry:Ys(r.retry),throwHttpErrors:r.throwHttpErrors!==!1,timeout:r.timeout??1e4,fetch:r.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(Ls){const p=this._options.signal??this._input.signal;this.abortController=new globalThis.AbortController,this._options.signal=p?AbortSignal.any([p,this.abortController.signal]):this.abortController.signal}if(hs&&(this._options.duplex="half"),this._options.json!==void 0&&(this._options.body=((a=(o=this._options).stringifyJson)==null?void 0:a.call(o,this._options.json))??JSON.stringify(this._options.json),this._options.headers.set("content-type",this._options.headers.get("content-type")??"application/json")),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const d="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),f=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,d);(Fs&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(f,{...this.request}),this._options)}if(this._options.onUploadProgress){if(typeof this._options.onUploadProgress!="function")throw new TypeError("The `onUploadProgress` option must be a function");if(!hs)throw new Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request.body&&(this.request=Js(this.request,this._options.onUploadProgress))}}static create(t,r){const o=new Qe(t,r),a=async()=>{if(typeof o._options.timeout=="number"&&o._options.timeout>xt)throw new RangeError(`The \`timeout\` option cannot be greater than ${xt}`);await Promise.resolve();let f=await o._fetch();for(const h of o._options.hooks.afterResponse){const n=await h(o.request,o._options,o._decorateResponse(f.clone()));n instanceof globalThis.Response&&(f=n)}if(o._decorateResponse(f),!f.ok&&o._options.throwHttpErrors){let h=new us(f,o.request,o._options);for(const n of o._options.hooks.beforeError)h=await n(h);throw h}if(o._options.onDownloadProgress){if(typeof o._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!Bs)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return Ms(f.clone(),o._options.onDownloadProgress)}return f},d=(o._options.retry.methods.includes(o.request.method.toLowerCase())?o._retry(a):a()).finally(async()=>{var f;o.request.bodyUsed||await((f=o.request.body)==null?void 0:f.cancel())});for(const[f,h]of Object.entries(zs))d[f]=async()=>{o.request.headers.set("accept",o.request.headers.get("accept")||h);const n=await d;if(f==="json"){if(n.status===204||(await n.clone().arrayBuffer()).byteLength===0)return"";if(r.parseJson)return r.parseJson(await n.text())}return n[f]()};return d}_calculateRetryDelay(t){if(this._retryCount++,this._retryCount>this._options.retry.limit||t instanceof ws)throw t;if(t instanceof us){if(!this._options.retry.statusCodes.includes(t.response.status))throw t;const o=t.response.headers.get("Retry-After")??t.response.headers.get("RateLimit-Reset")??t.response.headers.get("X-RateLimit-Reset")??t.response.headers.get("X-Rate-Limit-Reset");if(o&&this._options.retry.afterStatusCodes.includes(t.response.status)){let a=Number(o)*1e3;Number.isNaN(a)?a=Date.parse(o)-Date.now():a>=Date.parse("2024-01-01")&&(a-=Date.now());const p=this._options.retry.maxRetryAfter??a;return a<p?a:p}if(t.response.status===413)throw t}const r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}_decorateResponse(t){return this._options.parseJson&&(t.json=async()=>this._options.parseJson(await t.text())),t}async _retry(t){try{return await t()}catch(r){const o=Math.min(this._calculateRetryDelay(r),xt);if(this._retryCount<1)throw r;await Qs(o,{signal:this._options.signal});for(const a of this._options.hooks.beforeRetry)if(await a({request:this.request,options:this._options,error:r,retryCount:this._retryCount})===ys)return;return this._retry(t)}}async _fetch(){for(const o of this._options.hooks.beforeRequest){const a=await o(this.request,this._options);if(a instanceof Request){this.request=a;break}if(a instanceof Response)return a}const t=Zs(this.request,this._options),r=this.request;return this.request=r.clone(),this._options.timeout===!1?this._options.fetch(r,t):Gs(r,t,this.abortController,this._options)}}/*! MIT License © Sindre Sorhus */const _t=e=>{const t=(r,o)=>Qe.create(r,Ye(e,o));for(const r of gs)t[r]=(o,a)=>Qe.create(o,Ye(e,a,{method:r}));return t.create=r=>_t(Ye(r)),t.extend=r=>(typeof r=="function"&&(r=r(e??{})),_t(Ye(e,r))),t.stop=ys,t},er=_t();function Er(){var vt,Rt,Tt,Ct,Nt,kt,St,qt,Pt,Et,Ut,At,It,Lt,Bt,Ft,zt,Ot,Ht,Dt,$t,Mt,Jt,Vt,Wt,Kt,Xt,Yt,Gt,Qt,Zt,es,ts,ss,rs,os,is;const e=Ns.c(253),t=Rs(),[r,o]=as.useState(),{fields:a,groups:p}=t.props;let d;e[0]!==a?(d=Object.fromEntries(a.map(ir)),e[0]=a,e[1]=d):d=e[1];let f;e[2]!==p?(f=Object.fromEntries(p.map(or)),e[2]=p,e[3]=f):f=e[3];let h;e[4]!==d||e[5]!==f?(h={...d,...f},e[4]=d,e[5]=f,e[6]=h):h=e[6];const{data:n,setData:Oe,errors:He,setError:Ze,clearErrors:et,post:tt,processing:u}=Ts(h);let De,$e;e[7]===Symbol.for("react.memo_cache_sentinel")?(De=()=>{(async()=>{const w=await er.get(`${window.routePrefix}/get-timezones`).json();o(w.timezones)})()},$e=[],e[7]=De,e[8]=$e):(De=e[7],$e=e[8]),as.useEffect(De,$e);let Me;e[9]!==t.props.fields?(Me=c=>t.props.fields.find(w=>w.name===c),e[9]=t.props.fields,e[10]=Me):Me=e[10];const s=Me;let Je;e[11]!==n.repeatUserPassword||e[12]!==n.userPassword||e[13]!==t.props.passwordError||e[14]!==t.props.postLink||e[15]!==tt||e[16]!==Ze?(Je=c=>{if(c.preventDefault(),n.userPassword!==n.repeatUserPassword){Ze("repeatUserPassword",t.props.passwordError);return}tt(t.props.postLink)},e[11]=n.repeatUserPassword,e[12]=n.userPassword,e[13]=t.props.passwordError,e[14]=t.props.postLink,e[15]=tt,e[16]=Ze,e[17]=Je):Je=e[17];const st=Je;let Ve;e[18]!==et||e[19]!==Oe?(Ve=(c,w)=>{et(),Oe(c,w)},e[18]=et,e[19]=Oe,e[20]=Ve):Ve=e[20];const l=Ve;let We;e[21]===Symbol.for("react.memo_cache_sentinel")?(We=i.jsx(ns,{iconNode:Us}),e[21]=We):We=e[21];let g;e[22]!==t.props.btnBack.link||e[23]!==t.props.btnBack.title?(g=i.jsx(ls,{className:"mb-3 w-fit",asChild:!0,children:i.jsxs(Cs,{href:t.props.btnBack.link,children:[We,t.props.btnBack.title]})}),e[22]=t.props.btnBack.link,e[23]=t.props.btnBack.title,e[24]=g):g=e[24];const rt=t.props.view?"cursor-not-allowed":"";let y;e[25]!==t.props.head?(y=i.jsx("h2",{className:"font-bold text-xl",children:t.props.head}),e[25]=t.props.head,e[26]=y):y=e[26];let x;e[27]!==s?(x=(vt=s("login"))==null?void 0:vt.name,e[27]=s,e[28]=x):x=e[28];let _;e[29]!==s?(_=(Rt=s("login"))==null?void 0:Rt.label,e[29]=s,e[30]=_):_=e[30];let j;e[31]!==x||e[32]!==_?(j=i.jsx(m,{htmlFor:x,children:_}),e[31]=x,e[32]=_,e[33]=j):j=e[33];let v;e[34]!==s?(v=(Tt=s("login"))==null?void 0:Tt.name,e[34]=s,e[35]=v):v=e[35];const ot=n.login;let R;e[36]!==l?(R=c=>l("login",c.target.value),e[36]=l,e[37]=R):R=e[37];const it=u||t.props.view;let T;e[38]!==s?(T=(Ct=s("login"))==null?void 0:Ct.label,e[38]=s,e[39]=T):T=e[39];let C;e[40]!==v||e[41]!==ot||e[42]!==R||e[43]!==it||e[44]!==T?(C=i.jsx(Fe,{id:v,type:"text",required:!0,tabIndex:1,autoComplete:"username",value:ot,onChange:R,disabled:it,placeholder:T}),e[40]=v,e[41]=ot,e[42]=R,e[43]=it,e[44]=T,e[45]=C):C=e[45];let N;e[46]!==j||e[47]!==C?(N=i.jsxs("div",{className:"grid gap-4",children:[j,C]}),e[46]=j,e[47]=C,e[48]=N):N=e[48];let k;e[49]!==s?(k=(Nt=s("fullName"))==null?void 0:Nt.name,e[49]=s,e[50]=k):k=e[50];let S;e[51]!==s?(S=(kt=s("fullName"))==null?void 0:kt.label,e[51]=s,e[52]=S):S=e[52];let q;e[53]!==k||e[54]!==S?(q=i.jsx(m,{htmlFor:k,children:S}),e[53]=k,e[54]=S,e[55]=q):q=e[55];let P;e[56]!==s?(P=(St=s("fullName"))==null?void 0:St.name,e[56]=s,e[57]=P):P=e[57];const at=n.fullName;let E;e[58]!==l?(E=c=>l("fullName",c.target.value),e[58]=l,e[59]=E):E=e[59];const nt=u||t.props.view;let U;e[60]!==s?(U=(qt=s("fullName"))==null?void 0:qt.label,e[60]=s,e[61]=U):U=e[61];let A;e[62]!==P||e[63]!==at||e[64]!==E||e[65]!==nt||e[66]!==U?(A=i.jsx(Fe,{id:P,type:"text",required:!0,tabIndex:1,autoComplete:"additional-name",value:at,onChange:E,disabled:nt,placeholder:U}),e[62]=P,e[63]=at,e[64]=E,e[65]=nt,e[66]=U,e[67]=A):A=e[67];let I;e[68]!==q||e[69]!==A?(I=i.jsxs("div",{className:"grid gap-4",children:[q,A]}),e[68]=q,e[69]=A,e[70]=I):I=e[70];let L;e[71]!==s?(L=(Pt=s("email"))==null?void 0:Pt.name,e[71]=s,e[72]=L):L=e[72];let B;e[73]!==s?(B=(Et=s("email"))==null?void 0:Et.label,e[73]=s,e[74]=B):B=e[74];let F;e[75]!==L||e[76]!==B?(F=i.jsx(m,{htmlFor:L,children:B}),e[75]=L,e[76]=B,e[77]=F):F=e[77];let z;e[78]!==s?(z=(Ut=s("email"))==null?void 0:Ut.name,e[78]=s,e[79]=z):z=e[79];const lt=n.email;let O;e[80]!==l?(O=c=>l("email",c.target.value),e[80]=l,e[81]=O):O=e[81];const ct=u||t.props.view;let H;e[82]!==s?(H=(At=s("email"))==null?void 0:At.label,e[82]=s,e[83]=H):H=e[83];let D;e[84]!==z||e[85]!==lt||e[86]!==O||e[87]!==ct||e[88]!==H?(D=i.jsx(Fe,{id:z,type:"email",required:!0,tabIndex:1,autoComplete:"email",value:lt,onChange:O,disabled:ct,placeholder:H}),e[84]=z,e[85]=lt,e[86]=O,e[87]=ct,e[88]=H,e[89]=D):D=e[89];let $;e[90]!==F||e[91]!==D?($=i.jsxs("div",{className:"grid gap-4",children:[F,D]}),e[90]=F,e[91]=D,e[92]=$):$=e[92];let M;e[93]!==N||e[94]!==I||e[95]!==$?(M=i.jsxs("div",{className:"basis-1/2 flex flex-col gap-6",children:[N,I,$]}),e[93]=N,e[94]=I,e[95]=$,e[96]=M):M=e[96];let J;e[97]!==s?(J=(It=s("timezone"))==null?void 0:It.name,e[97]=s,e[98]=J):J=e[98];let V;e[99]!==s?(V=(Lt=s("timezone"))==null?void 0:Lt.label,e[99]=s,e[100]=V):V=e[100];let W;e[101]!==J||e[102]!==V?(W=i.jsx(m,{htmlFor:J,children:V}),e[101]=J,e[102]=V,e[103]=W):W=e[103];let K;e[104]!==l?(K=c=>l("timezone",c),e[104]=l,e[105]=K):K=e[105];const pt=n.timezone,dt=u||t.props.view;let X;e[106]!==s?(X=(Bt=s("timezone"))==null?void 0:Bt.name,e[106]=s,e[107]=X):X=e[107];let Y;e[108]!==X?(Y=i.jsx(ps,{className:"w-full cursor-pointer",children:i.jsx(ds,{placeholder:X})}),e[108]=X,e[109]=Y):Y=e[109];let G;e[110]!==r?(G=r??[],e[110]=r,e[111]=G):G=e[111];let Q;e[112]!==G?(Q=G.map(rr),e[112]=G,e[113]=Q):Q=e[113];let Z;e[114]!==Q?(Z=i.jsx(fs,{children:Q}),e[114]=Q,e[115]=Z):Z=e[115];let ee;e[116]!==K||e[117]!==pt||e[118]!==dt||e[119]!==Y||e[120]!==Z?(ee=i.jsxs(cs,{onValueChange:K,defaultValue:pt,disabled:dt,children:[Y,Z]}),e[116]=K,e[117]=pt,e[118]=dt,e[119]=Y,e[120]=Z,e[121]=ee):ee=e[121];let te;e[122]!==W||e[123]!==ee?(te=i.jsxs("div",{className:"grid gap-4",children:[W,ee]}),e[122]=W,e[123]=ee,e[124]=te):te=e[124];let se;e[125]!==n.date||e[126]!==s||e[127]!==l||e[128]!==u?(se=s("date")&&i.jsxs("div",{className:"grid gap-4",children:[i.jsx(m,{htmlFor:(Ft=s("date"))==null?void 0:Ft.name,children:(zt=s("date"))==null?void 0:zt.label}),i.jsx(Fe,{id:(Ot=s("date"))==null?void 0:Ot.name,type:"date",className:"max-w-fit",tabIndex:1,value:n.date,onChange:c=>l("date",c.target.value),disabled:u})]}),e[125]=n.date,e[126]=s,e[127]=l,e[128]=u,e[129]=se):se=e[129];let re;e[130]!==n.isAdmin||e[131]!==s||e[132]!==l||e[133]!==t.props.view||e[134]!==u?(re=s("isAdmin")&&i.jsxs("div",{className:"grid gap-4",children:[i.jsx(m,{className:"cursor-pointer",htmlFor:(Ht=s("isAdmin"))==null?void 0:Ht.name,children:(Dt=s("isAdmin"))==null?void 0:Dt.label}),i.jsx(yt,{id:($t=s("isAdmin"))==null?void 0:$t.name,className:"cursor-pointer size-5",disabled:u||t.props.view,checked:n.isAdmin,onCheckedChange:c=>l("isAdmin",c)})]}),e[130]=n.isAdmin,e[131]=s,e[132]=l,e[133]=t.props.view,e[134]=u,e[135]=re):re=e[135];let oe;e[136]!==n.isConfirmed||e[137]!==s||e[138]!==l||e[139]!==t.props.view||e[140]!==u?(oe=s("isConfirmed")&&i.jsxs("div",{className:"grid gap-4",children:[i.jsx(m,{className:"cursor-pointer",htmlFor:(Mt=s("isConfirmed"))==null?void 0:Mt.name,children:(Jt=s("isConfirmed"))==null?void 0:Jt.label}),i.jsx(yt,{id:(Vt=s("isConfirmed"))==null?void 0:Vt.name,className:"cursor-pointer size-5",disabled:u||t.props.view,checked:n.isConfirmed,onCheckedChange:c=>l("isConfirmed",c)})]}),e[136]=n.isConfirmed,e[137]=s,e[138]=l,e[139]=t.props.view,e[140]=u,e[141]=oe):oe=e[141];let ie;e[142]!==re||e[143]!==oe?(ie=i.jsxs("div",{className:"flex gap-6",children:[re,oe]}),e[142]=re,e[143]=oe,e[144]=ie):ie=e[144];let ae;e[145]!==se||e[146]!==ie?(ae=i.jsxs("div",{className:"flex flex-col md:flex-row justify-start gap-4 xl:justify-between items-start md:items-center",children:[se,ie]}),e[145]=se,e[146]=ie,e[147]=ae):ae=e[147];let ne;e[148]!==n.locale||e[149]!==s||e[150]!==l||e[151]!==t.props.locales||e[152]!==t.props.view||e[153]!==u?(ne=s("locale")&&i.jsxs("div",{className:"grid gap-4",children:[i.jsx(m,{htmlFor:(Wt=s("locale"))==null?void 0:Wt.name,children:(Kt=s("locale"))==null?void 0:Kt.label}),i.jsxs(cs,{onValueChange:c=>l("locale",c),defaultValue:n.locale,disabled:u||t.props.view,children:[i.jsx(ps,{className:"w-full cursor-pointer",children:i.jsx(ds,{placeholder:(Xt=s("locale"))==null?void 0:Xt.name})}),i.jsx(fs,{children:(t.props.locales??[]).map(sr)})]})]}),e[148]=n.locale,e[149]=s,e[150]=l,e[151]=t.props.locales,e[152]=t.props.view,e[153]=u,e[154]=ne):ne=e[154];let le;e[155]!==te||e[156]!==ae||e[157]!==ne?(le=i.jsxs("div",{className:"basis-1/2 flex flex-col gap-6",children:[te,ae,ne]}),e[155]=te,e[156]=ae,e[157]=ne,e[158]=le):le=e[158];let ce;e[159]!==M||e[160]!==le?(ce=i.jsxs("div",{className:"flex-col xl:flex-row flex gap-16",children:[M,le]}),e[159]=M,e[160]=le,e[161]=ce):ce=e[161];let pe;e[162]!==s?(pe=(Yt=s("userPassword"))==null?void 0:Yt.label,e[162]=s,e[163]=pe):pe=e[163];let de;e[164]!==pe?(de=i.jsx("label",{className:"font-bold text-xl",children:pe}),e[164]=pe,e[165]=de):de=e[165];let Ke;e[166]===Symbol.for("react.memo_cache_sentinel")?(Ke=i.jsx(ks,{onClick:tr,children:i.jsx(ns,{iconNode:As,className:"text-primary w-5 h-5 cursor-pointer"})}),e[166]=Ke):Ke=e[166];let fe;e[167]!==s?(fe=(Gt=s("userPassword"))==null?void 0:Gt.tooltip,e[167]=s,e[168]=fe):fe=e[168];let ue;e[169]!==fe?(ue=i.jsx(Ss,{children:i.jsxs(qs,{children:[Ke,i.jsx(Ps,{align:"center",side:"top",children:i.jsx("p",{children:fe})})]})}),e[169]=fe,e[170]=ue):ue=e[170];let he;e[171]!==de||e[172]!==ue?(he=i.jsxs("div",{className:"flex gap-3",children:[de,ue]}),e[171]=de,e[172]=ue,e[173]=he):he=e[173];let me;e[174]!==s?(me=(Qt=s("userPassword"))==null?void 0:Qt.name,e[174]=s,e[175]=me):me=e[175];let be;e[176]!==s?(be=(Zt=s("userPassword"))==null?void 0:Zt.label,e[176]=s,e[177]=be):be=e[177];let we;e[178]!==me||e[179]!==be?(we=i.jsx(m,{htmlFor:me,children:be}),e[178]=me,e[179]=be,e[180]=we):we=e[180];let ge;e[181]!==s?(ge=(es=s("userPassword"))==null?void 0:es.name,e[181]=s,e[182]=ge):ge=e[182];const ft=!t.props.edit,ut=n.password;let ye;e[183]!==l?(ye=c=>l("userPassword",c.target.value),e[183]=l,e[184]=ye):ye=e[184];const ht=u||t.props.view;let xe;e[185]!==s?(xe=(ts=s("userPassword"))==null?void 0:ts.label,e[185]=s,e[186]=xe):xe=e[186];let _e;e[187]!==ge||e[188]!==ft||e[189]!==ut||e[190]!==ye||e[191]!==ht||e[192]!==xe?(_e=i.jsx(Fe,{id:ge,type:"password",required:ft,tabIndex:1,autoComplete:"new-password",value:ut,onChange:ye,disabled:ht,placeholder:xe}),e[187]=ge,e[188]=ft,e[189]=ut,e[190]=ye,e[191]=ht,e[192]=xe,e[193]=_e):_e=e[193];let je;e[194]!==we||e[195]!==_e?(je=i.jsxs("div",{className:"grid gap-4 col-span-1",children:[we,_e]}),e[194]=we,e[195]=_e,e[196]=je):je=e[196];let ve;e[197]!==s?(ve=(ss=s("repeatUserPassword"))==null?void 0:ss.name,e[197]=s,e[198]=ve):ve=e[198];let Re;e[199]!==s?(Re=(rs=s("repeatUserPassword"))==null?void 0:rs.label,e[199]=s,e[200]=Re):Re=e[200];let Te;e[201]!==ve||e[202]!==Re?(Te=i.jsx(m,{htmlFor:ve,children:Re}),e[201]=ve,e[202]=Re,e[203]=Te):Te=e[203];let Ce;e[204]!==s?(Ce=(os=s("repeatUserPassword"))==null?void 0:os.name,e[204]=s,e[205]=Ce):Ce=e[205];const mt=!t.props.edit,bt=n.repeatUserPassword;let Ne;e[206]!==l?(Ne=c=>l("repeatUserPassword",c.target.value),e[206]=l,e[207]=Ne):Ne=e[207];const wt=u||t.props.view;let ke;e[208]!==s?(ke=(is=s("repeatUserPassword"))==null?void 0:is.label,e[208]=s,e[209]=ke):ke=e[209];let Se;e[210]!==Ce||e[211]!==mt||e[212]!==bt||e[213]!==Ne||e[214]!==wt||e[215]!==ke?(Se=i.jsx(Fe,{id:Ce,type:"password",required:mt,tabIndex:1,autoComplete:"new-password",value:bt,onChange:Ne,disabled:wt,placeholder:ke}),e[210]=Ce,e[211]=mt,e[212]=bt,e[213]=Ne,e[214]=wt,e[215]=ke,e[216]=Se):Se=e[216];let qe;e[217]!==He.repeatUserPassword?(qe=i.jsx(Es,{message:He.repeatUserPassword}),e[217]=He.repeatUserPassword,e[218]=qe):qe=e[218];let Pe;e[219]!==Te||e[220]!==Se||e[221]!==qe?(Pe=i.jsxs("div",{className:"grid gap-4 col-span-1 col-start-1",children:[Te,Se,qe]}),e[219]=Te,e[220]=Se,e[221]=qe,e[222]=Pe):Pe=e[222];let Ee;e[223]!==je||e[224]!==Pe?(Ee=i.jsxs("div",{className:"grid grid-col-1 lg:grid-cols-2 grid-rows-2 gap-x-16 gap-y-6",children:[je,Pe]}),e[223]=je,e[224]=Pe,e[225]=Ee):Ee=e[225];let Ue;e[226]!==n||e[227]!==l||e[228]!==t.props.groupHead||e[229]!==t.props.groups||e[230]!==t.props.view||e[231]!==u?(Ue=t.props.groups.length>0&&i.jsxs(i.Fragment,{children:[i.jsx("h2",{className:"font-bold text-xl",children:t.props.groupHead}),i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-5 xl:grid-cols-6 gap-4",children:t.props.groups.map(c=>i.jsxs("div",{className:"grid gap-4",children:[i.jsx(m,{className:"cursor-pointer",htmlFor:c.name,children:c.label}),i.jsx(yt,{id:c.name,disabled:u||t.props.view,className:"cursor-pointer size-5",checked:n[c.name],onCheckedChange:w=>l(c.name,w)})]},c.name))})]}),e[226]=n,e[227]=l,e[228]=t.props.groupHead,e[229]=t.props.groups,e[230]=t.props.view,e[231]=u,e[232]=Ue):Ue=e[232];const gt=u||t.props.view;let Ae;e[233]!==u?(Ae=u&&i.jsx(Is,{className:"h-4 w-4 animate-spin"}),e[233]=u,e[234]=Ae):Ae=e[234];let Ie;e[235]!==t.props.btnSave.title||e[236]!==gt||e[237]!==Ae?(Ie=i.jsxs(ls,{variant:"green",type:"submit",className:"mt-4 w-fit cursor-pointer",disabled:gt,children:[Ae,t.props.btnSave.title]}),e[235]=t.props.btnSave.title,e[236]=gt,e[237]=Ae,e[238]=Ie):Ie=e[238];let Le;e[239]!==y||e[240]!==ce||e[241]!==he||e[242]!==Ee||e[243]!==Ue||e[244]!==Ie?(Le=i.jsxs("div",{className:"flex flex-col gap-10 max-w-[1144px]",children:[y,ce,he,Ee,Ue,Ie]}),e[239]=y,e[240]=ce,e[241]=he,e[242]=Ee,e[243]=Ue,e[244]=Ie,e[245]=Le):Le=e[245];let Be;e[246]!==st||e[247]!==rt||e[248]!==Le?(Be=i.jsx("form",{id:"addUserForm",onSubmit:st,className:rt,children:Le}),e[246]=st,e[247]=rt,e[248]=Le,e[249]=Be):Be=e[249];let Xe;return e[250]!==g||e[251]!==Be?(Xe=i.jsxs("div",{className:"flex h-full flex-1 flex-col gap-4 rounded-xl p-4",children:[g,Be]}),e[250]=g,e[251]=Be,e[252]=Xe):Xe=e[252],Xe}function tr(e){return e.preventDefault()}function sr(e){return i.jsx(bs,{value:e.value,children:e.label},e.value)}function rr(e){return i.jsx(bs,{value:e.value,children:e.label},e.value)}function or(e){return[e.name,e.value]}function ir(e){return[e.name,e.value]}export{Er as default};
@@ -1 +0,0 @@
1
- import{r as p,j as n,q as ue,J as I}from"./app.js";import{c as M}from"./compiler-runtime-tM4jBQ-T.js";import{N as de,C as B,a as L,b as z}from"./nav-main-BL-Hmm6O.js";import{c as pe,d as P,e as O,f as me,g as T,h as U,i as V,j as H,k as fe,l as be,m as xe}from"./sidebar-VU5deMRj.js";import _ from"./material-icon-CItZiB53.js";import{B as he}from"./button-CQ9t1kLz.js";import{c as ge,u as ve}from"./index-BbXEMx9n.js";import{u as J,c as C,a as E}from"./index-Cdb9ACvz.js";import{u as Me}from"./index-DrWfGwtf.js";import{c as je}from"./index-D5ir9iUV.js";import{c as Ne,S as Ce,a as _e,b as Se,I as we,d as q,R as Re,e as ye,A as Ie,C as Ae,G as Ee,L as Pe,f as Oe,g as Te,h as ke,i as $e,j as De,k as Ge,l as Fe,P as Ke}from"./index-DEk3sC8d.js";import{P as W}from"./index-K81GbF6O.js";import{c as R}from"./utils-DjqsqOe8.js";import{C as G}from"./chevron-right-D5q8rF7h.js";import{C as Be}from"./chevrons-up-down-kALltqHV.js";import"./index-BC0yfOHo.js";import"./index-DTRTjOmh.js";import"./createLucideIcon-BFG25zNo.js";import"./index-C0SL3SHw.js";import"./tooltip-D2ehgLlB.js";import"./index-BcE9FUM6.js";var y="Menubar",[k,Le,ze]=ge(y),[X,ra]=je(y,[ze,q]),g=Ne(),Y=q(),[Ue,F]=X(y),Q=p.forwardRef((r,e)=>{const{__scopeMenubar:a,value:t,onValueChange:s,defaultValue:o,loop:c=!0,dir:i,...l}=r,f=ve(i),u=Y(a),[b,m]=J({prop:t,onChange:s,defaultProp:o??"",caller:y}),[h,d]=p.useState(null);return n.jsx(Ue,{scope:a,value:b,onMenuOpen:p.useCallback(x=>{m(x),d(x)},[m]),onMenuClose:p.useCallback(()=>m(""),[m]),onMenuToggle:p.useCallback(x=>{m(j=>j?"":x),d(x)},[m]),dir:f,loop:c,children:n.jsx(k.Provider,{scope:a,children:n.jsx(k.Slot,{scope:a,children:n.jsx(Re,{asChild:!0,...u,orientation:"horizontal",loop:c,dir:f,currentTabStopId:h,onCurrentTabStopIdChange:d,children:n.jsx(W.div,{role:"menubar",...l,ref:e})})})})})});Q.displayName=y;var K="MenubarMenu",[Ve,Z]=X(K),ee=r=>{const{__scopeMenubar:e,value:a,...t}=r,s=E(),o=a||s||"LEGACY_REACT_AUTO_VALUE",c=F(K,e),i=g(e),l=p.useRef(null),f=p.useRef(!1),u=c.value===o;return p.useEffect(()=>{u||(f.current=!1)},[u]),n.jsx(Ve,{scope:e,value:o,triggerId:E(),triggerRef:l,contentId:E(),wasKeyboardTriggerOpenRef:f,children:n.jsx(Fe,{...i,open:u,onOpenChange:b=>{b||c.onMenuClose()},modal:!1,dir:c.dir,...t})})};ee.displayName=K;var $="MenubarTrigger",re=p.forwardRef((r,e)=>{const{__scopeMenubar:a,disabled:t=!1,...s}=r,o=Y(a),c=g(a),i=F($,a),l=Z($,a),f=p.useRef(null),u=Me(e,f,l.triggerRef),[b,m]=p.useState(!1),h=i.value===l.value;return n.jsx(k.ItemSlot,{scope:a,value:l.value,disabled:t,children:n.jsx(ye,{asChild:!0,...o,focusable:!t,tabStopId:l.value,children:n.jsx(Ie,{asChild:!0,...c,children:n.jsx(W.button,{type:"button",role:"menuitem",id:l.triggerId,"aria-haspopup":"menu","aria-expanded":h,"aria-controls":h?l.contentId:void 0,"data-highlighted":b?"":void 0,"data-state":h?"open":"closed","data-disabled":t?"":void 0,disabled:t,...s,ref:u,onPointerDown:C(r.onPointerDown,d=>{!t&&d.button===0&&d.ctrlKey===!1&&(i.onMenuOpen(l.value),h||d.preventDefault())}),onPointerEnter:C(r.onPointerEnter,()=>{var x;!!i.value&&!h&&(i.onMenuOpen(l.value),(x=f.current)==null||x.focus())}),onKeyDown:C(r.onKeyDown,d=>{t||(["Enter"," "].includes(d.key)&&i.onMenuToggle(l.value),d.key==="ArrowDown"&&i.onMenuOpen(l.value),["Enter"," ","ArrowDown"].includes(d.key)&&(l.wasKeyboardTriggerOpenRef.current=!0,d.preventDefault()))}),onFocus:C(r.onFocus,()=>m(!0)),onBlur:C(r.onBlur,()=>m(!1))})})})})});re.displayName=$;var He="MenubarPortal",ae=r=>{const{__scopeMenubar:e,...a}=r,t=g(e);return n.jsx(Ke,{...t,...a})};ae.displayName=He;var D="MenubarContent",te=p.forwardRef((r,e)=>{const{__scopeMenubar:a,align:t="start",...s}=r,o=g(a),c=F(D,a),i=Z(D,a),l=Le(a),f=p.useRef(!1);return n.jsx(Ae,{id:i.contentId,"aria-labelledby":i.triggerId,"data-radix-menubar-content":"",...o,...s,ref:e,align:t,onCloseAutoFocus:C(r.onCloseAutoFocus,u=>{var m;!!!c.value&&!f.current&&((m=i.triggerRef.current)==null||m.focus()),f.current=!1,u.preventDefault()}),onFocusOutside:C(r.onFocusOutside,u=>{const b=u.target;l().some(h=>{var d;return(d=h.ref.current)==null?void 0:d.contains(b)})&&u.preventDefault()}),onInteractOutside:C(r.onInteractOutside,()=>{f.current=!0}),onEntryFocus:u=>{i.wasKeyboardTriggerOpenRef.current||u.preventDefault()},onKeyDown:C(r.onKeyDown,u=>{if(["ArrowRight","ArrowLeft"].includes(u.key)){const b=u.target,m=b.hasAttribute("data-radix-menubar-subtrigger"),h=b.closest("[data-radix-menubar-content]")!==u.currentTarget,x=(c.dir==="rtl"?"ArrowRight":"ArrowLeft")===u.key;if(!x&&m||h&&x)return;let v=l().filter(A=>!A.disabled).map(A=>A.value);x&&v.reverse();const N=v.indexOf(i.value);v=c.loop?pr(v,N+1):v.slice(N+1);const[w]=v;w&&c.onMenuOpen(w)}},{checkForDefaultPrevented:!1}),style:{...r.style,"--radix-menubar-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-menubar-content-available-width":"var(--radix-popper-available-width)","--radix-menubar-content-available-height":"var(--radix-popper-available-height)","--radix-menubar-trigger-width":"var(--radix-popper-anchor-width)","--radix-menubar-trigger-height":"var(--radix-popper-anchor-height)"}})});te.displayName=D;var Je="MenubarGroup",qe=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(Ee,{...s,...t,ref:e})});qe.displayName=Je;var We="MenubarLabel",Xe=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(Pe,{...s,...t,ref:e})});Xe.displayName=We;var Ye="MenubarItem",ne=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(we,{...s,...t,ref:e})});ne.displayName=Ye;var Qe="MenubarCheckboxItem",Ze=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(Oe,{...s,...t,ref:e})});Ze.displayName=Qe;var er="MenubarRadioGroup",rr=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(Te,{...s,...t,ref:e})});rr.displayName=er;var ar="MenubarRadioItem",tr=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(ke,{...s,...t,ref:e})});tr.displayName=ar;var nr="MenubarItemIndicator",sr=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx($e,{...s,...t,ref:e})});sr.displayName=nr;var or="MenubarSeparator",ir=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(De,{...s,...t,ref:e})});ir.displayName=or;var lr="MenubarArrow",cr=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(Ge,{...s,...t,ref:e})});cr.displayName=lr;var se="MenubarSub",oe=r=>{const{__scopeMenubar:e,children:a,open:t,onOpenChange:s,defaultOpen:o}=r,c=g(e),[i,l]=J({prop:t,defaultProp:o??!1,onChange:s,caller:se});return n.jsx(Ce,{...c,open:i,onOpenChange:l,children:a})};oe.displayName=se;var ur="MenubarSubTrigger",ie=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(_e,{"data-radix-menubar-subtrigger":"",...s,...t,ref:e})});ie.displayName=ur;var dr="MenubarSubContent",le=p.forwardRef((r,e)=>{const{__scopeMenubar:a,...t}=r,s=g(a);return n.jsx(Se,{...s,"data-radix-menubar-content":"",...t,ref:e,style:{...r.style,"--radix-menubar-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-menubar-content-available-width":"var(--radix-popper-available-width)","--radix-menubar-content-available-height":"var(--radix-popper-available-height)","--radix-menubar-trigger-width":"var(--radix-popper-anchor-width)","--radix-menubar-trigger-height":"var(--radix-popper-anchor-height)"}})});le.displayName=dr;function pr(r,e){return r.map((a,t)=>r[(e+t)%r.length])}var mr=Q,fr=ee,br=re,xr=ae,hr=te,gr=ne,vr=oe,Mr=ie,jr=le;function Nr(r){const e=M.c(8);let a,t;e[0]!==r?({className:a,...t}=r,e[0]=r,e[1]=a,e[2]=t):(a=e[1],t=e[2]);let s;e[3]!==a?(s=R("bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",a),e[3]=a,e[4]=s):s=e[4];let o;return e[5]!==t||e[6]!==s?(o=n.jsx(mr,{"data-slot":"menubar",className:s,...t}),e[5]=t,e[6]=s,e[7]=o):o=e[7],o}function Cr(r){const e=M.c(4);let a;e[0]!==r?({...a}=r,e[0]=r,e[1]=a):a=e[1];let t;return e[2]!==a?(t=n.jsx(fr,{"data-slot":"menubar-menu",...a}),e[2]=a,e[3]=t):t=e[3],t}function _r(r){const e=M.c(4);let a;e[0]!==r?({...a}=r,e[0]=r,e[1]=a):a=e[1];let t;return e[2]!==a?(t=n.jsx(xr,{"data-slot":"menubar-portal",...a}),e[2]=a,e[3]=t):t=e[3],t}function Sr(r){const e=M.c(8);let a,t;e[0]!==r?({className:a,...t}=r,e[0]=r,e[1]=a,e[2]=t):(a=e[1],t=e[2]);let s;e[3]!==a?(s=R("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",a),e[3]=a,e[4]=s):s=e[4];let o;return e[5]!==t||e[6]!==s?(o=n.jsx(br,{"data-slot":"menubar-trigger",className:s,...t}),e[5]=t,e[6]=s,e[7]=o):o=e[7],o}function wr(r){const e=M.c(14);let a,t,s,o,c;e[0]!==r?({className:a,align:s,alignOffset:o,sideOffset:c,...t}=r,e[0]=r,e[1]=a,e[2]=t,e[3]=s,e[4]=o,e[5]=c):(a=e[1],t=e[2],s=e[3],o=e[4],c=e[5]);const i=s===void 0?"start":s,l=o===void 0?-4:o,f=c===void 0?8:c;let u;e[6]!==a?(u=R("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",a),e[6]=a,e[7]=u):u=e[7];let b;return e[8]!==i||e[9]!==l||e[10]!==t||e[11]!==f||e[12]!==u?(b=n.jsx(_r,{children:n.jsx(hr,{"data-slot":"menubar-content",align:i,alignOffset:l,sideOffset:f,className:u,...t})}),e[8]=i,e[9]=l,e[10]=t,e[11]=f,e[12]=u,e[13]=b):b=e[13],b}function ce(r){const e=M.c(12);let a,t,s,o;e[0]!==r?({className:a,inset:t,variant:o,...s}=r,e[0]=r,e[1]=a,e[2]=t,e[3]=s,e[4]=o):(a=e[1],t=e[2],s=e[3],o=e[4]);const c=o===void 0?"default":o;let i;e[5]!==a?(i=R("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),e[5]=a,e[6]=i):i=e[6];let l;return e[7]!==t||e[8]!==s||e[9]!==i||e[10]!==c?(l=n.jsx(gr,{"data-slot":"menubar-item","data-inset":t,"data-variant":c,className:i,...s}),e[7]=t,e[8]=s,e[9]=i,e[10]=c,e[11]=l):l=e[11],l}function Rr(r){const e=M.c(4);let a;e[0]!==r?({...a}=r,e[0]=r,e[1]=a):a=e[1];let t;return e[2]!==a?(t=n.jsx(vr,{"data-slot":"menubar-sub",...a}),e[2]=a,e[3]=t):t=e[3],t}function yr(r){const e=M.c(13);let a,t,s,o;e[0]!==r?({className:t,inset:s,children:a,...o}=r,e[0]=r,e[1]=a,e[2]=t,e[3]=s,e[4]=o):(a=e[1],t=e[2],s=e[3],o=e[4]);let c;e[5]!==t?(c=R("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",t),e[5]=t,e[6]=c):c=e[6];let i;e[7]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx(G,{className:"ml-auto h-4 w-4"}),e[7]=i):i=e[7];let l;return e[8]!==a||e[9]!==s||e[10]!==o||e[11]!==c?(l=n.jsxs(Mr,{"data-slot":"menubar-sub-trigger","data-inset":s,className:c,...o,children:[a,i]}),e[8]=a,e[9]=s,e[10]=o,e[11]=c,e[12]=l):l=e[12],l}function Ir(r){const e=M.c(8);let a,t;e[0]!==r?({className:a,...t}=r,e[0]=r,e[1]=a,e[2]=t):(a=e[1],t=e[2]);let s;e[3]!==a?(s=R("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",a),e[3]=a,e[4]=s):s=e[4];let o;return e[5]!==t||e[6]!==s?(o=n.jsx(jr,{"data-slot":"menubar-sub-content",className:s,...t}),e[5]=t,e[6]=s,e[7]=o):o=e[7],o}function aa(){const r=M.c(38),e=ue();let a;r[0]===Symbol.for("react.memo_cache_sentinel")?(a=n.jsx(_,{name:"rocket_launch",className:"!text-[18px]"}),r[0]=a):a=r[0];let t;r[1]!==e.props.brand?(t=n.jsx("span",{className:"group-data-[state=collapsed]:hidden",children:e.props.brand}),r[1]=e.props.brand,r[2]=t):t=r[2];let s;r[3]===Symbol.for("react.memo_cache_sentinel")?(s=n.jsx(Be,{className:"ml-auto group-data-[state=collapsed]:hidden"}),r[3]=s):s=r[3];let o;r[4]!==t?(o=n.jsx(Sr,{asChild:!0,className:"text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground rounded-md",children:n.jsx(T,{asChild:!0,children:n.jsx(he,{variant:"ghost",asChild:!0,className:"cursor-pointer w-full",children:n.jsxs("div",{children:[a,t,s]})})})}),r[4]=t,r[5]=o):o=r[5];let c;r[6]!==e.props.section?(c=e.props.section&&e.props.section.map(Pr),r[6]=e.props.section,r[7]=c):c=r[7];let i;r[8]!==c?(i=n.jsx(wr,{side:"right",className:"z-[1003]",children:c}),r[8]=c,r[9]=i):i=r[9];let l;r[10]!==o||r[11]!==i?(l=n.jsx(Nr,{className:"p-0 shadow-none border-none bg-transparent hidden md:block",children:n.jsxs(Cr,{children:[o,i]})}),r[10]=o,r[11]=i,r[12]=l):l=r[12];let f;r[13]===Symbol.for("react.memo_cache_sentinel")?(f=n.jsx(_,{name:"rocket_launch",className:"!text-[18px]"}),r[13]=f):f=r[13];let u;r[14]!==e.props.brand?(u=n.jsx("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:e.props.brand}),r[14]=e.props.brand,r[15]=u):u=r[15];let b;r[16]===Symbol.for("react.memo_cache_sentinel")?(b=n.jsx(G,{className:"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"}),r[16]=b):b=r[16];let m;r[17]!==u?(m=n.jsx(L,{asChild:!0,children:n.jsxs(T,{children:[f,u,b]})}),r[17]=u,r[18]=m):m=r[18];let h;r[19]!==e.props.section?(h=e.props.section&&e.props.section.map(Ar),r[19]=e.props.section,r[20]=h):h=r[20];let d;r[21]!==h?(d=n.jsx(z,{children:n.jsx(U,{children:h})}),r[21]=h,r[22]=d):d=r[22];let x;r[23]!==m||r[24]!==d?(x=n.jsx(fe,{className:"px-2 py-0 block md:hidden",children:n.jsx(P,{children:n.jsx(B,{asChild:!0,className:"group/collapsible",children:n.jsxs(O,{children:[m,d]})})})}),r[23]=m,r[24]=d,r[25]=x):x=r[25];let j;r[26]!==e.props.brand||r[27]!==x||r[28]!==l?(j=n.jsx(pe,{children:n.jsx(P,{children:n.jsxs(O,{children:[l,x]},e.props.brand)})}),r[26]=e.props.brand,r[27]=x,r[28]=l,r[29]=j):j=r[29];let S;r[30]!==e.props.menu?(S=n.jsx(me,{children:n.jsx(de,{items:e.props.menu})}),r[30]=e.props.menu,r[31]=S):S=r[31];const v=e.props.showVersion&&"v.4.1.0";let N;r[32]!==v?(N=n.jsx(be,{children:n.jsx("div",{className:"text-center opacity-70",children:v})}),r[32]=v,r[33]=N):N=r[33];let w;return r[34]!==j||r[35]!==S||r[36]!==N?(w=n.jsxs(xe,{collapsible:"icon",variant:"inset",children:[j,S,N]}),r[34]=j,r[35]=S,r[36]=N,r[37]=w):w=r[37],w}function Ar(r){return r.subItems?n.jsx(P,{children:n.jsx(B,{asChild:!0,className:"group/collapsible-sub",children:n.jsxs(O,{children:[n.jsx(L,{asChild:!0,children:n.jsxs(T,{children:[n.jsx(_,{name:r.icon,className:"!text-[18px]"}),n.jsx("span",{className:"overflow-hidden text-ellipsis whitespace-nowrap",children:r.title}),n.jsx(G,{className:"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible-sub:rotate-90"})]})}),n.jsx(z,{children:n.jsx(U,{children:r.subItems.map(Er)})})]})})},r.id):n.jsx(V,{children:n.jsx(H,{asChild:!0,children:n.jsxs(I,{href:r.link,className:"flex gap-2 items-center",children:[n.jsx(_,{name:r.icon,className:"!text-[18px]"}),n.jsx("span",{className:"hover:underline",children:r.title})]})})},r.id)}function Er(r){return n.jsx(V,{children:n.jsx(H,{asChild:!0,children:n.jsxs(I,{href:r.link,className:"flex gap-2 items-center",children:[n.jsx(_,{name:r.icon,className:"!text-[18px]"}),n.jsx("span",{className:"hover:underline",children:r.title})]})})},r.id)}function Pr(r){return n.jsx("div",{children:r.subItems?n.jsxs(Rr,{children:[n.jsxs(yr,{className:"flex gap-2 items-center cursor-pointer",children:[n.jsx(_,{name:r.icon,className:"!text-[18px]"}),n.jsx("span",{className:"hover:underline",children:r.title})]}),n.jsx(Ir,{children:r.subItems.map(Or)})]}):n.jsx(ce,{children:n.jsxs(I,{href:r.link,className:"flex gap-2 items-center",children:[n.jsx(_,{name:r.icon,className:"!text-[18px]"}),n.jsx("span",{className:"hover:underline",children:r.title})]})})},r.id)}function Or(r){return n.jsx(ce,{children:n.jsxs(I,{href:r.link,className:"flex gap-2 items-center",children:[n.jsx(_,{name:r.icon,className:"!text-[18px]"}),n.jsx("span",{className:"hover:underline",children:r.title})]},r.id)},r.id)}export{aa as AppSidebar};
@@ -1 +0,0 @@
1
- import{q as h,S as u,r as p,j as t}from"./app.js";import{r as i,g as n,h as v}from"./form-state-702tb_BV.js";import{LabelRenderer as c,LazyField as b}from"./add-form-C1pPO9IW.js";import l from"./input-error-BBygona6.js";import y from"./field-renderer-hXvJ0krZ.js";import{B as E}from"./button-CQ9t1kLz.js";import{L as F}from"./loader-circle-Utah5tGx.js";import"./compiler-runtime-tM4jBQ-T.js";import"./icon-Bz9BMaD0.js";import"./utils-DjqsqOe8.js";import"./label-Z506NKsW.js";import"./index-K81GbF6O.js";import"./index-DrWfGwtf.js";import"./tooltip-D2ehgLlB.js";import"./index-Cdb9ACvz.js";import"./index-D5ir9iUV.js";import"./index-BC0yfOHo.js";import"./index-BcE9FUM6.js";import"./move-left-BhKZRPb4.js";import"./createLucideIcon-BFG25zNo.js";import"./checkbox-W0nGAXIj.js";import"./index-DwctwfU0.js";import"./check-LAUWAnlX.js";import"./select-D1N8zRPY.js";import"./index-BbXEMx9n.js";import"./index-C0SL3SHw.js";import"./chevron-down-B5XuAFRu.js";import"./dynamic-controls-CSVVCONh.js";import"./input-DF7Ue23C.js";import"./multi-select-DOrUHH4A.js";import"./popover-I249Gg2O.js";import"./index-DTRTjOmh.js";import"./search-BspystAk.js";const or=()=>{const s=h(),{fields:e}=s.props,{data:m,setData:d,post:x,processing:o}=u(Object.fromEntries(e.map(r=>[r.name,r.value??void 0])));p.useEffect(()=>(i(),()=>{i()}),[]);const a=p.useCallback((r,j)=>{d(r,j)},[]),g=r=>{r.preventDefault(),x(s.props.postLink)};return t.jsx("div",{className:"p-4 w-full",children:t.jsx("form",{className:"mt-8",id:"addUserForm",onSubmit:g,children:t.jsxs("div",{className:"grid lg:grid-cols-[1fr_150px] gap-4 max-w-[1144px] pb-8",children:[t.jsx("div",{className:"flex flex-col gap-10",children:e.map(r=>t.jsx("div",{className:"grid gap-4 w-full",children:r.type==="markdown"||r.type==="table"||r.type==="jsonEditor"||r.type==="codeEditor"||r.type==="geoJson"?t.jsxs(t.Fragment,{children:[t.jsx(c,{field:r}),t.jsx(l,{message:n(`${r.type}-${r.name}`)}),t.jsx(b,{field:r,value:m[r.name],onChange:a,processing:o})]}):t.jsxs(t.Fragment,{children:[t.jsx(c,{field:r}),t.jsx(l,{message:n(`${r.type}-${r.name}`)}),t.jsx(y,{field:r,value:m[r.name],onChange:a,processing:o})]})},r.name))}),t.jsx("div",{className:"p-4 rounded-md h-fit sticky top-[84px] shadow hidden lg:block",children:t.jsxs(E,{variant:"green",type:"submit",className:"w-fit cursor-pointer",disabled:o||v(),children:[o&&t.jsx(F,{className:"h-4 w-4 animate-spin"}),s.props.btnSave.title]})})]})})})};export{or as default};