adminizer 4.2.0 → 4.3.0-build.73

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 (93) hide show
  1. package/assets/add-BNb5A_qF.js +1 -0
  2. package/assets/{add-form-BjackXJe.js → add-form-CGi_qv3J.js} +1 -1
  3. package/assets/add-group-RRjHTu93.js +1 -0
  4. package/assets/{add-group-form-YI6KS37x.js → add-group-form-DSd4UrnU.js} +1 -1
  5. package/assets/add-user-DSuvcKp6.js +1 -0
  6. package/assets/{add-user-form-bv5BNX5A.js → add-user-form-BAssKDpI.js} +1 -1
  7. package/assets/{app-CVnUv8s_.css → app-GsYdx39W.css} +1 -1
  8. package/assets/{app-layout-DecN527i.js → app-layout-ContoN1K.js} +1 -1
  9. package/assets/{app-sidebar-4JFP8UdU.js → app-sidebar-D7l5BJPV.js} +1 -1
  10. package/assets/app-sidebar-header-CK8t32cm.js +1 -0
  11. package/assets/app.js +13 -13
  12. package/assets/{breadcrumbs-Bo2z-LNC.js → breadcrumbs-DnNOEnT4.js} +1 -1
  13. package/assets/{catalog-DVyrGTNR.js → catalog-BavcTVb4.js} +1 -1
  14. package/assets/{dashboard-Dy3pk9t7.js → dashboard-xr-OyVyG.js} +1 -1
  15. package/assets/{date-picker-B2z-aeuv.js → date-picker-DBHnomTY.js} +1 -1
  16. package/assets/{del-modal-l3LxJWCN.js → del-modal-BeF4r3gk.js} +1 -1
  17. package/assets/{field-renderer-BHo944Cn.js → field-renderer-Sd68OLyc.js} +3 -3
  18. package/assets/form-C9P9m_9q.js +1 -0
  19. package/assets/{form-hP8sjbND.js → form-DomTBI89.js} +1 -1
  20. package/assets/home-BWHeZm-1.js +2 -0
  21. package/assets/{icon-C_X2cQ6W.js → icon-ChQBPA5l.js} +1 -1
  22. package/assets/{init-user-DgCD4ZN1.js → init-user-DqMDju_E.js} +1 -1
  23. package/assets/input-error-g1h6ps7t.js +1 -0
  24. package/assets/list-EEgAn-nx.js +1 -0
  25. package/assets/{list-table-_OiQmr2A.js → list-table-Br0K3rXg.js} +1 -1
  26. package/assets/{login-jzvVXgAV.js → login-BR9cqsPn.js} +1 -1
  27. package/assets/manifest.json +97 -64
  28. package/assets/material-icon-BIcI8APG.js +1 -0
  29. package/assets/media-manager-CTstvyHm.js +14 -0
  30. package/assets/{module-Ceq6vuwa.js → module-CpZBs0fN.js} +1 -1
  31. package/assets/{multi-select-BbKSrMw2.js → multi-select-BFWbEjH-.js} +1 -1
  32. package/assets/{nav-footer-B8gMV6Wp.js → nav-footer-bO8D-Yir.js} +1 -1
  33. package/assets/{nav-main-BUp9qA8R.js → nav-main-DVgvko8g.js} +1 -1
  34. package/assets/{nav-user-DeF3SDRj.js → nav-user-vIwYShwE.js} +1 -1
  35. package/assets/notification-BTXEslqa.js +1 -0
  36. package/assets/{pagination-render-B9U_hVbB.js → pagination-render-rZ5_6g0n.js} +1 -1
  37. package/assets/{register-C6acWsLe.js → register-Kfu8zmmu.js} +1 -1
  38. package/assets/tabs-CwgzWt48.js +1 -0
  39. package/assets/{theme-switcher-D8T9NgWG.js → theme-switcher-fzVA8btX.js} +1 -1
  40. package/assets/{user-info-CAgkqARx.js → user-info-Db5Y8KeN.js} +1 -1
  41. package/assets/{user-menu-content-BxL0QMC9.js → user-menu-content-Bc8YNZPf.js} +1 -1
  42. package/assets/{welcome-Dk7GoS5R.js → welcome-MKPFhPtG.js} +1 -1
  43. package/controllers/add.js +2 -0
  44. package/controllers/edit.js +14 -0
  45. package/controllers/login.js +56 -21
  46. package/controllers/media-manager/mediaManagerApi.js +1 -1
  47. package/controllers/notifications/NotificationController.d.ts +11 -0
  48. package/controllers/notifications/NotificationController.js +203 -0
  49. package/controllers/remove.js +2 -0
  50. package/files/favicon.png +0 -0
  51. package/helpers/diffHelpers.d.ts +2 -0
  52. package/helpers/diffHelpers.js +24 -0
  53. package/index.d.ts +2 -0
  54. package/index.js +2 -0
  55. package/interfaces/adminpanelConfig.d.ts +6 -0
  56. package/interfaces/types.d.ts +22 -0
  57. package/lib/Adminizer.d.ts +18 -2
  58. package/lib/Adminizer.js +61 -1
  59. package/lib/media-manager/AbstractMediaManager.js +2 -2
  60. package/lib/v4/model/adapter/sequelize.js +4 -0
  61. package/lib/v4/model/adapter/typeorm.d.ts +1 -0
  62. package/lib/v4/model/adapter/typeorm.js +21 -1
  63. package/lib/v4/notifications/AbstractNotificationService.d.ts +22 -0
  64. package/lib/v4/notifications/AbstractNotificationService.js +149 -0
  65. package/lib/v4/notifications/GeneralNotificationService.d.ts +8 -0
  66. package/lib/v4/notifications/GeneralNotificationService.js +56 -0
  67. package/lib/v4/notifications/NotificationHandler.d.ts +69 -0
  68. package/lib/v4/notifications/NotificationHandler.js +127 -0
  69. package/lib/v4/notifications/SystemNotificationService.d.ts +18 -0
  70. package/lib/v4/notifications/SystemNotificationService.js +123 -0
  71. package/models/NotificationAP.d.ts +36 -0
  72. package/models/NotificationAP.js +22 -0
  73. package/models/UserNotificationAP.d.ts +26 -0
  74. package/models/UserNotificationAP.js +18 -0
  75. package/package.json +13 -5
  76. package/system/Router.js +18 -0
  77. package/system/bindAssets.js +1 -0
  78. package/system/bindInertia.js +5 -0
  79. package/system/bindMediaManager.js +2 -1
  80. package/system/bindNavigation.js +2 -3
  81. package/system/bindNotifications.d.ts +2 -0
  82. package/system/bindNotifications.js +14 -0
  83. package/system/defaults.js +6 -0
  84. package/assets/add-DOaZgoTz.js +0 -1
  85. package/assets/add-group-Br44s2D6.js +0 -1
  86. package/assets/add-user-DWcH0s9-.js +0 -1
  87. package/assets/app-sidebar-header-CIKLfLsF.js +0 -1
  88. package/assets/form-BXfnz6h5.js +0 -1
  89. package/assets/home-BD4MWmm9.js +0 -2
  90. package/assets/input-error-Bab-HPbn.js +0 -1
  91. package/assets/list-C-27EH39.js +0 -1
  92. package/assets/material-icon-DsiW0iQG.js +0 -1
  93. package/assets/media-manager-CSB_XRcE.js +0 -14
@@ -0,0 +1,22 @@
1
+ export default {
2
+ id: {
3
+ type: "number",
4
+ autoIncrement: true,
5
+ primaryKey: true
6
+ },
7
+ title: {
8
+ type: "string"
9
+ },
10
+ message: {
11
+ type: "string"
12
+ },
13
+ notificationClass: {
14
+ type: "string",
15
+ },
16
+ channel: {
17
+ type: "string",
18
+ },
19
+ metadata: {
20
+ type: 'json'
21
+ }
22
+ };
@@ -0,0 +1,26 @@
1
+ import { NotificationAP } from "./NotificationAP";
2
+ declare const _default: {
3
+ id: {
4
+ type: string;
5
+ autoIncrement: boolean;
6
+ primaryKey: boolean;
7
+ };
8
+ userId: {
9
+ type: string;
10
+ required: boolean;
11
+ };
12
+ notificationId: {
13
+ model: string;
14
+ };
15
+ read: {
16
+ type: string;
17
+ defaultsTo: boolean;
18
+ };
19
+ };
20
+ export default _default;
21
+ export interface UserNotificationAP {
22
+ id: number;
23
+ userId: number;
24
+ notificationId: NotificationAP;
25
+ read: boolean;
26
+ }
@@ -0,0 +1,18 @@
1
+ export default {
2
+ id: {
3
+ type: "number",
4
+ autoIncrement: true,
5
+ primaryKey: true
6
+ },
7
+ userId: {
8
+ type: "number",
9
+ required: true
10
+ },
11
+ notificationId: {
12
+ model: "NotificationAP"
13
+ },
14
+ read: {
15
+ type: "boolean",
16
+ defaultsTo: false
17
+ }
18
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adminizer",
3
3
  "type": "module",
4
- "version": "4.2.0",
4
+ "version": "4.3.0-build.73",
5
5
  "main": "index.js",
6
6
  "exports": {
7
7
  ".": "./index.js",
@@ -32,9 +32,16 @@
32
32
  "demo": "cross-env ORM=sequelize tsx --tsconfig ./fixture/tsconfig.json ./fixture/index.ts"
33
33
  },
34
34
  "keywords": [],
35
- "author": "",
35
+ "author": "Siziy Ivan <xziy88@gmail.com>",
36
+ "contributors": [
37
+ "Serebriakov Roman <rserebryakov1902@gmail.com>"
38
+ ],
36
39
  "license": "MIT",
37
- "description": "",
40
+ "description": "A modern, framework-agnostic admin panel for Node.js with TypeScript backend and React frontend",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/adminization/adminizer"
44
+ },
38
45
  "dependencies": {
39
46
  "@minoru/react-dnd-treeview": "^3.5.2",
40
47
  "@radix-ui/react-context-menu": "^2.2.15",
@@ -47,8 +54,10 @@
47
54
  "cors": "^2.8.5",
48
55
  "crypto-puzzle": "^5.0.2",
49
56
  "date-fns": "^3.6.0",
57
+ "deep-object-diff": "^1.1.9",
50
58
  "express": "^4.21.2",
51
59
  "express-session": "^1.18.1",
60
+ "image-size": "^2.0.2",
52
61
  "jsonwebtoken": "^9.0.2",
53
62
  "material-icons": "^1.13.14",
54
63
  "multer": "^1.4.5-lts.1",
@@ -62,7 +71,7 @@
62
71
  "uuid": "^11.0.5",
63
72
  "waterline": "^0.15.2",
64
73
  "winston": "^3.17.0",
65
- "image-size": "^2.0.2",
74
+ "sprintf-js": "^1.1.3",
66
75
  "sequelize": "^6.37.7"
67
76
  },
68
77
  "devDependencies": {
@@ -140,7 +149,6 @@
140
149
  "sequelize-typescript": "^2.1.6",
141
150
  "shelljs": "^0.9.2",
142
151
  "sonner": "^2.0.3",
143
- "sprintf-js": "^1.1.3",
144
152
  "sqlite3": "^5.1.7",
145
153
  "tailwind-merge": "^3.0.2",
146
154
  "tailwindcss": "^4.0.15",
package/system/Router.js CHANGED
@@ -18,6 +18,7 @@ import { mediaManagerController } from "../controllers/media-manager/mediaManage
18
18
  import { thumbController } from "../controllers/media-manager/ThumbController";
19
19
  import { Adminizer } from "../lib/Adminizer";
20
20
  import timezones from "../controllers/timezones";
21
+ import { NotificationController } from "../controllers/notifications/NotificationController";
21
22
  export default class Router {
22
23
  static onlyOnce = false;
23
24
  /**
@@ -80,6 +81,23 @@ export default class Router {
80
81
  adminizer.app.post(`${adminizer.config.routePrefix}/media-manager-uploader/:id/upload-variant`, adminizer.policyManager.bindPolicies(policies, mediaManagerController));
81
82
  adminizer.app.all(`${adminizer.config.routePrefix}/media-manager-uploader/:id`, adminizer.policyManager.bindPolicies(policies, mediaManagerController));
82
83
  adminizer.app.all(`${adminizer.config.routePrefix}/get-thumbs`, adminizer.policyManager.bindPolicies(policies, thumbController));
84
+ /**
85
+ * Notifications
86
+ */
87
+ if (adminizer.config.notification.enabled) {
88
+ adminizer.app.get(`${adminizer.config.routePrefix}/notifications`, adminizer.policyManager.bindPolicies(policies, NotificationController.viewAll));
89
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications/stream`, adminizer.policyManager.bindPolicies(policies, NotificationController.getNotificationsStream));
90
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications/:notificationClass`, adminizer.policyManager.bindPolicies(policies, NotificationController.getNotificationsByClass));
91
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications`, adminizer.policyManager.bindPolicies(policies, NotificationController.getUserNotifications));
92
+ adminizer.app.get(`${adminizer.config.routePrefix}/api/notifications-all`, adminizer.policyManager.bindPolicies(policies, NotificationController.getAllUserNotifications));
93
+ adminizer.app.put(`${adminizer.config.routePrefix}/api/notifications/:notificationClass/:id/read`, adminizer.policyManager.bindPolicies(policies, NotificationController.markAsRead));
94
+ // adminizer.app.post(
95
+ // `${adminizer.config.routePrefix}/api/notifications/send`,
96
+ // adminizer.policyManager.bindPolicies([...policies, 'isAdmin'],
97
+ // (req: ReqType, res: ResType) => NotificationController.sendNotification(req, res)
98
+ // )
99
+ // );
100
+ }
83
101
  /**
84
102
  * List of records
85
103
  */
@@ -2,4 +2,5 @@ import serveStatic from 'serve-static';
2
2
  import * as path from "path";
3
3
  export default function bindAssets(app, routePrefix) {
4
4
  app.use(`${routePrefix}/assets`, serveStatic(path.join(import.meta.dirname, '../assets')));
5
+ app.use(`${routePrefix}/files`, serveStatic(path.join(import.meta.dirname, '../files')));
5
6
  }
@@ -17,6 +17,7 @@ export function bindInertia(adminizer) {
17
17
  <script type="module" src="/@vite/client"></script>
18
18
  <script type="module" src="/src/assets/js/app.tsx"></script>
19
19
  <script>window.routePrefix = "${adminizer.config.routePrefix}"</script>
20
+ <script>window.bindPublic = ${adminizer.config.bind?.public}</script>
20
21
  `;
21
22
  }
22
23
  else {
@@ -57,11 +58,14 @@ export function bindInertia(adminizer) {
57
58
  });
58
59
  // Route prefix script
59
60
  const routePrefixScript = `<script>window.routePrefix = "${adminizer.config.routePrefix}";</script>`;
61
+ // For Sails JS
62
+ const bindPublic = `<script>window.bindPublic = ${adminizer.config.bind?.public}</script>`;
60
63
  return `
61
64
  ${preloadLinks.join('\n')}
62
65
  ${stylesheets.join('\n')}
63
66
  ${scripts.join('\n')}
64
67
  ${routePrefixScript}
68
+ ${bindPublic}
65
69
  `;
66
70
  }
67
71
  };
@@ -71,6 +75,7 @@ export function bindInertia(adminizer) {
71
75
  <head>
72
76
  <meta name="viewport" content="width=device-width, initial-scale=1">
73
77
  <meta charset="utf-8"><title inertia></title>
78
+ <link rel="icon" type="image/png" href="${adminizer.config.routePrefix}/files/favicon.png">
74
79
  ${viteRender()}
75
80
  </head>
76
81
  <body>
@@ -15,7 +15,8 @@ export default function bindMediaManager(adminizer) {
15
15
  }
16
16
  });
17
17
  // Bind media manager public folder
18
- adminizer.app.use(`/public`, serveStatic(adminizer.config.mediamanager.fileStoragePath));
18
+ if (adminizer.config.bind?.public && adminizer.config.mediamanager?.fileStoragePath)
19
+ adminizer.app.use(`/public`, serveStatic(adminizer.config.mediamanager.fileStoragePath));
19
20
  // Bind file icons
20
21
  adminizer.app.use(`${adminizer.config.routePrefix}/fileicons`, serveStatic(path.join(import.meta.dirname, '../fileicons')));
21
22
  }
@@ -16,7 +16,7 @@ export default function bindNavigation(adminizer) {
16
16
  updatedAt: false
17
17
  },
18
18
  navbar: {
19
- visible: true
19
+ visible: false
20
20
  },
21
21
  icon: 'storage',
22
22
  identifierField: "",
@@ -29,8 +29,7 @@ export default function bindNavigation(adminizer) {
29
29
  model: adminizer.config.navigation.model.toLowerCase(),
30
30
  remove: false,
31
31
  title: adminizer.config.navigation.model,
32
- tools: [],
33
- view: false
32
+ tools: []
34
33
  };
35
34
  }
36
35
  catch (e) {
@@ -0,0 +1,2 @@
1
+ import { Adminizer } from '../lib/Adminizer';
2
+ export declare function bindNotifications(adminizer: Adminizer): Promise<void>;
@@ -0,0 +1,14 @@
1
+ import { Adminizer } from '../lib/Adminizer';
2
+ import { NotificationHandler } from '../lib/v4/notifications/NotificationHandler';
3
+ import { GeneralNotificationService } from '../lib/v4/notifications/GeneralNotificationService';
4
+ import { SystemNotificationService } from '../lib/v4/notifications/SystemNotificationService';
5
+ export async function bindNotifications(adminizer) {
6
+ // Создаем хендлер
7
+ adminizer.notificationHandler = new NotificationHandler();
8
+ // Регистрируем сервисы
9
+ const generalService = new GeneralNotificationService(adminizer);
10
+ const systemService = new SystemNotificationService(adminizer);
11
+ adminizer.notificationHandler.registerService(generalService);
12
+ adminizer.notificationHandler.registerService(systemService);
13
+ Adminizer.log.info(`Notification system initialized with 2 services: ${systemService.notificationClass}, ${systemService.notificationClass}`);
14
+ }
@@ -134,6 +134,12 @@ let adminpanelConfig = {
134
134
  auth: {
135
135
  enable: false,
136
136
  captcha: true
137
+ },
138
+ bind: {
139
+ public: true
140
+ },
141
+ notification: {
142
+ enabled: false
137
143
  }
138
144
  };
139
145
  export function setDefaultConfig(config) {
@@ -1 +0,0 @@
1
- import{c as p,q as i,j as m}from"./app.js";import{A as s}from"./app-layout-DecN527i.js";import e from"./add-form-BjackXJe.js";import"./app-shell-DHzMWA1L.js";import"./app-sidebar-4JFP8UdU.js";import"./nav-main-BUp9qA8R.js";import"./material-icon-DsiW0iQG.js";import"./app-sidebar-header-CIKLfLsF.js";import"./breadcrumbs-Bo2z-LNC.js";import"./nav-user-DeF3SDRj.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./theme-switcher-D8T9NgWG.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";import"./field-renderer-BHo944Cn.js";import"./dynamic-controls-CSVVCONh.js";import"./multi-select-BbKSrMw2.js";import"./form-state-702tb_BV.js";import"./input-error-Bab-HPbn.js";const a=[];function v(){const t=p.c(2),r=i();let o;return t[0]!==r?(o=m.jsx(s,{breadcrumbs:a,children:m.jsx(e,{page:r,catalog:!1})}),t[0]=r,t[1]=o):o=t[1],o}export{v as default};
@@ -1 +0,0 @@
1
- import{c as m,j as t}from"./app.js";import{A as p}from"./app-layout-DecN527i.js";import i from"./add-group-form-YI6KS37x.js";import"./app-shell-DHzMWA1L.js";import"./app-sidebar-4JFP8UdU.js";import"./nav-main-BUp9qA8R.js";import"./material-icon-DsiW0iQG.js";import"./app-sidebar-header-CIKLfLsF.js";import"./breadcrumbs-Bo2z-LNC.js";import"./nav-user-DeF3SDRj.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./theme-switcher-D8T9NgWG.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";const e=[];function G(){const r=m.c(1);let o;return r[0]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsx(p,{breadcrumbs:e,children:t.jsx(i,{})}),r[0]=o):o=r[0],o}export{G as default};
@@ -1 +0,0 @@
1
- import{c as m,j as t}from"./app.js";import{A as i}from"./app-layout-DecN527i.js";import p from"./add-user-form-bv5BNX5A.js";import"./app-shell-DHzMWA1L.js";import"./app-sidebar-4JFP8UdU.js";import"./nav-main-BUp9qA8R.js";import"./material-icon-DsiW0iQG.js";import"./app-sidebar-header-CIKLfLsF.js";import"./breadcrumbs-Bo2z-LNC.js";import"./nav-user-DeF3SDRj.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./theme-switcher-D8T9NgWG.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";import"./input-error-Bab-HPbn.js";const e=[];function U(){const o=m.c(1);let r;return o[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(i,{breadcrumbs:e,children:t.jsx(p,{})}),o[0]=r):r=o[0],r}export{U as default};
@@ -1 +0,0 @@
1
- import{c as n,j as r,aJ as d}from"./app.js";import{Breadcrumbs as p}from"./breadcrumbs-Bo2z-LNC.js";import{NavUser as f}from"./nav-user-DeF3SDRj.js";import{ThemeSwitcher as x}from"./theme-switcher-D8T9NgWG.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";function S(c){const e=n.c(8),{breadcrumbs:t}=c;let i;e[0]!==t?(i=t===void 0?[]:t,e[0]=t,e[1]=i):i=e[1];const o=i;let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=r.jsx(d,{className:"-ml-1"}),e[2]=a):a=e[2];let s;e[3]!==o?(s=r.jsxs("div",{className:"flex items-center gap-2",children:[a,r.jsx(p,{breadcrumbs:o})]}),e[3]=o,e[4]=s):s=e[4];let l;e[5]===Symbol.for("react.memo_cache_sentinel")?(l=r.jsxs("div",{className:"flex gap-4 items-center",children:[r.jsx(x,{}),r.jsx(f,{})]}),e[5]=l):l=e[5];let m;return e[6]!==s?(m=r.jsx("header",{className:"border-sidebar-border/50 flex h-16 shrink-0 items-center gap-2 border-b px-6 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 md:px-4",children:r.jsxs("div",{className:"flex justify-between w-full",children:[s,l]})}),e[6]=s,e[7]=m):m=e[7],m}export{S as AppSidebarHeader};
@@ -1 +0,0 @@
1
- import{c as m,j as t}from"./app.js";import{A as p}from"./app-layout-DecN527i.js";import i from"./form-hP8sjbND.js";import"./app-shell-DHzMWA1L.js";import"./app-sidebar-4JFP8UdU.js";import"./nav-main-BUp9qA8R.js";import"./material-icon-DsiW0iQG.js";import"./app-sidebar-header-CIKLfLsF.js";import"./breadcrumbs-Bo2z-LNC.js";import"./nav-user-DeF3SDRj.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./theme-switcher-D8T9NgWG.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";import"./form-state-702tb_BV.js";import"./add-form-BjackXJe.js";import"./field-renderer-BHo944Cn.js";import"./dynamic-controls-CSVVCONh.js";import"./multi-select-BbKSrMw2.js";import"./input-error-Bab-HPbn.js";const e=[];function $(){const o=m.c(1);let r;return o[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(p,{breadcrumbs:e,children:t.jsx(i,{})}),o[0]=r):r=o[0],r}export{$ as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VanillaJSONEditor-x8tDbio1.js","./app.js","./app-CVnUv8s_.css","./index-C148XJoK.js","./index-Vcq4gwWv.js","./debounce-D6eaSoDg.js","./use-appearance-CXP5cHaQ.js","./form-state-702tb_BV.js","./add-form-BjackXJe.js","./icon-C_X2cQ6W.js","./field-renderer-BHo944Cn.js","./dynamic-controls-CSVVCONh.js","./multi-select-BbKSrMw2.js","./field-renderer-CsBa_tMB.css","./input-error-Bab-HPbn.js","./add-group-form-YI6KS37x.js","./add-user-form-bv5BNX5A.js","./material-icon-DsiW0iQG.js","./app-shell-DHzMWA1L.js","./app-sidebar-header-CIKLfLsF.js","./breadcrumbs-Bo2z-LNC.js","./nav-user-DeF3SDRj.js","./user-info-CAgkqARx.js","./user-menu-content-BxL0QMC9.js","./theme-switcher-D8T9NgWG.js","./app-sidebar-4JFP8UdU.js","./nav-main-BUp9qA8R.js","./date-picker-B2z-aeuv.js","./form-hP8sjbND.js","./geo-json-CVaNUZbb.js","./handsontable-CZQ5Ietj.js","./list-table-_OiQmr2A.js","./del-modal-l3LxJWCN.js","./pagination-render-B9U_hVbB.js","./monaco-editor-XX8Hz76f.js","./use-window-size-DLSEoR6e.js","./nav-footer-B8gMV6Wp.js","./toast-editor-C0550yms.js"])))=>i.map(i=>d[i]);
2
- import{q as x,r as u,j as o,_ as v,$ as P,a0 as t}from"./app.js";const D=(m,r,_)=>{const e=m[r];return e?typeof e=="function"?e():Promise.resolve(e):new Promise((s,n)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(n.bind(null,new Error("Unknown variable dynamic import: "+r+(r.split("/").length!==_?". Note that variables only represent file names one level deep.":""))))})};function L(){const m=x(),[r,_]=u.useState(null),[e,s]=u.useState(null),n=m.props.controls,l=async()=>{const{component:i,props:p}=n[0],d=(await D(Object.assign({"../components/VanillaJSONEditor.tsx":()=>t(()=>import("./VanillaJSONEditor-x8tDbio1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),"../components/add-form.tsx":()=>t(()=>import("./add-form-BjackXJe.js"),__vite__mapDeps([8,1,2,9,10,11,12,13,7,14]),import.meta.url),"../components/add-group-form.tsx":()=>t(()=>import("./add-group-form-YI6KS37x.js"),__vite__mapDeps([15,1,2,9]),import.meta.url),"../components/add-user-form.tsx":()=>t(()=>import("./add-user-form-bv5BNX5A.js"),__vite__mapDeps([16,1,2,9,14,17]),import.meta.url),"../components/app-shell.tsx":()=>t(()=>import("./app-shell-DHzMWA1L.js"),__vite__mapDeps([18,1,2]),import.meta.url),"../components/app-sidebar-header.tsx":()=>t(()=>import("./app-sidebar-header-CIKLfLsF.js"),__vite__mapDeps([19,1,2,20,21,22,23,24,6,9]),import.meta.url),"../components/app-sidebar.tsx":()=>t(()=>import("./app-sidebar-4JFP8UdU.js"),__vite__mapDeps([25,1,2,26,17]),import.meta.url),"../components/breadcrumbs.tsx":()=>t(()=>import("./breadcrumbs-Bo2z-LNC.js"),__vite__mapDeps([20,1,2]),import.meta.url),"../components/date-picker.tsx":()=>t(()=>import("./date-picker-B2z-aeuv.js"),__vite__mapDeps([27,1,2]),import.meta.url),"../components/dynamic-controls.tsx":()=>t(()=>import("./dynamic-controls-CSVVCONh.js"),__vite__mapDeps([11,1,2]),import.meta.url),"../components/field-renderer.tsx":()=>t(()=>import("./field-renderer-BHo944Cn.js").then(E=>E.f),__vite__mapDeps([10,1,2,11,12,13]),import.meta.url),"../components/form.tsx":()=>t(()=>import("./form-hP8sjbND.js"),__vite__mapDeps([28,1,2,7,8,9,10,11,12,13,14]),import.meta.url),"../components/geo-json.tsx":()=>t(()=>import("./geo-json-CVaNUZbb.js"),__vite__mapDeps([29,1,2]),import.meta.url),"../components/handsontable.tsx":()=>t(()=>import("./handsontable-CZQ5Ietj.js"),__vite__mapDeps([30,1,2,6]),import.meta.url),"../components/icon.tsx":()=>t(()=>import("./icon-C_X2cQ6W.js"),__vite__mapDeps([9,1,2]),import.meta.url),"../components/input-error.tsx":()=>t(()=>import("./input-error-Bab-HPbn.js"),__vite__mapDeps([14,1,2]),import.meta.url),"../components/list-table.tsx":()=>t(()=>import("./list-table-_OiQmr2A.js"),__vite__mapDeps([31,1,2,9,17,32,33]),import.meta.url),"../components/material-icon.tsx":()=>t(()=>import("./material-icon-DsiW0iQG.js"),__vite__mapDeps([17,1,2]),import.meta.url),"../components/monaco-editor.tsx":()=>t(()=>import("./monaco-editor-XX8Hz76f.js"),__vite__mapDeps([34,1,2,6,35]),import.meta.url),"../components/multi-select.tsx":()=>t(()=>import("./multi-select-BbKSrMw2.js"),__vite__mapDeps([12,1,2]),import.meta.url),"../components/nav-footer.tsx":()=>t(()=>import("./nav-footer-B8gMV6Wp.js"),__vite__mapDeps([36,1,2,9]),import.meta.url),"../components/nav-main.tsx":()=>t(()=>import("./nav-main-BUp9qA8R.js"),__vite__mapDeps([26,1,2,17]),import.meta.url),"../components/nav-user.tsx":()=>t(()=>import("./nav-user-DeF3SDRj.js"),__vite__mapDeps([21,1,2,22,23]),import.meta.url),"../components/pagination-render.tsx":()=>t(()=>import("./pagination-render-B9U_hVbB.js"),__vite__mapDeps([33,1,2]),import.meta.url),"../components/theme-switcher.tsx":()=>t(()=>import("./theme-switcher-D8T9NgWG.js"),__vite__mapDeps([24,1,2,6,9]),import.meta.url),"../components/toast-editor.tsx":()=>t(()=>import("./toast-editor-C0550yms.js"),__vite__mapDeps([37,1,2,4,35,6]),import.meta.url),"../components/user-info.tsx":()=>t(()=>import("./user-info-CAgkqARx.js"),__vite__mapDeps([22,1,2]),import.meta.url),"../components/user-menu-content.tsx":()=>t(()=>import("./user-menu-content-BxL0QMC9.js"),__vite__mapDeps([23,1,2,22]),import.meta.url)}),`../components/${i}.tsx`,3)).default;_(o.jsx(d,{...p}))},c=async()=>{const{component:i}=n[1],a=(await import(i)).default;s(o.jsx(a,{message:"Hello from Component B"}))};return o.jsxs(o.Fragment,{children:[o.jsx(v,{title:"Home"}),o.jsx("div",{children:o.jsx(P,{href:"/page",children:"Page"})}),o.jsx("div",{children:o.jsx("h1",{children:"Is Home"})}),o.jsxs("div",{children:[o.jsx("button",{onClick:l,children:"Загрузить компонент"}),o.jsx("p",{}),r||o.jsx("p",{children:"Нажмите кнопку, чтобы загрузить компонент"})]}),o.jsx("p",{}),o.jsxs("div",{children:[o.jsx("button",{onClick:c,children:"Загрузить компонент"}),o.jsx("p",{}),e||o.jsx("p",{children:"Нажмите кнопку, чтобы загрузить компонент"})]})]})}export{L as default};
@@ -1 +0,0 @@
1
- import{c as o,j as c,an as m}from"./app.js";function p(l){const e=o.c(8);let s,t,r;e[0]!==l?({message:s,className:r,...t}=l,e[0]=l,e[1]=s,e[2]=t,e[3]=r):(s=e[1],t=e[2],r=e[3]);const n=r===void 0?"":r;let a;return e[4]!==n||e[5]!==s||e[6]!==t?(a=s?c.jsx("p",{...t,className:m("text-sm text-red-600 dark:text-red-400",n),children:s}):null,e[4]=n,e[5]=s,e[6]=t,e[7]=a):a=e[7],a}export{p as default};
@@ -1 +0,0 @@
1
- import{j as o}from"./app.js";import{A as r}from"./app-layout-DecN527i.js";import t from"./list-table-_OiQmr2A.js";import"./app-shell-DHzMWA1L.js";import"./app-sidebar-4JFP8UdU.js";import"./nav-main-BUp9qA8R.js";import"./material-icon-DsiW0iQG.js";import"./app-sidebar-header-CIKLfLsF.js";import"./breadcrumbs-Bo2z-LNC.js";import"./nav-user-DeF3SDRj.js";import"./user-info-CAgkqARx.js";import"./user-menu-content-BxL0QMC9.js";import"./theme-switcher-D8T9NgWG.js";import"./use-appearance-CXP5cHaQ.js";import"./icon-C_X2cQ6W.js";import"./del-modal-l3LxJWCN.js";import"./pagination-render-B9U_hVbB.js";const m=[],L=()=>o.jsx(r,{breadcrumbs:m,className:"overflow-auto h-[calc(100svh-16px)]",children:o.jsx(t,{})});export{L as default};
@@ -1 +0,0 @@
1
- import{c as i,an as l,j as o}from"./app.js";function m(c){const e=i.c(5),{name:a,className:n}=c;let s;e[0]!==n?(s=l("material-icons-outlined",n),e[0]=n,e[1]=s):s=e[1];let t;return e[2]!==a||e[3]!==s?(t=o.jsx("span",{className:s,children:a}),e[2]=a,e[3]=s,e[4]=t):t=e[4],t}export{m as default};