admin_lsac 1.2.3 → 1.2.5

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.
package/README.md CHANGED
@@ -10,15 +10,42 @@ This command will download and install the specified package and its dependencie
10
10
 
11
11
  Export-to-csv package latest version is not working properly, so make sure you have the last functional version of this package install.
12
12
 
13
- ### `import AdminPanel from 'admin_lsac'`
13
+ ### `import { AdminPage } from 'admin_lsac'`
14
14
 
15
- You can import this component in the root file of your project (i.e index.js) or in App.js. If your project is TypeScript-based, you need to write the following line as well:
15
+ You can import this component in App.js / App.ts. If your project is TypeScript-based, you need to write the following line as well:
16
16
 
17
17
  ### `import { PageSchema } from 'admin_lsac'`
18
18
 
19
- You need to create an array of schemas to pass it as props to the component.
19
+ * Import the component from above where you want to write your schemas. (See below for details about schemas)
20
20
 
21
- ### `<AdminPanel pages={your_array} basePath="where_is_admin_located" />`
21
+ You need to create an array of schemas for your own admin panel. You can write the following inside your Routes tag from App.js / App.ts:
22
+
23
+ ```
24
+ {your_array.map((page) => (
25
+ <Route
26
+ path={`${your_url_to_admin_panel}/${pageToUrl(page)}`}
27
+ element={
28
+ <AdminPage
29
+ pages={your_array}
30
+ selectedPage={page}
31
+ basePath={your_url_to_admin_panel}
32
+ />
33
+ }
34
+ />
35
+ ))}
36
+ {your_array[0] ? (
37
+ <Route
38
+ path={`${your_url_to_admin_panel}/*`}
39
+ element={
40
+ <AdminPage
41
+ pages={your_array}
42
+ selectedPage={your_array[0]}
43
+ basePath={your_url_to_admin_panel}
44
+ />
45
+ }
46
+ />
47
+ ) : null}
48
+ ```
22
49
 
23
50
  ## What is a schema?
24
51
 
@@ -102,6 +129,20 @@ const your_array = [
102
129
  ];
103
130
  ```
104
131
 
132
+ * In TypeScript, it would slightly change:
133
+
134
+ ```
135
+ const your_array: PageSchema[] = [
136
+ {
137
+ // schema 1
138
+ },
139
+ {
140
+ // schema 2
141
+ },
142
+ ...
143
+ ];
144
+ ```
145
+
105
146
  ## Other Specifications
106
147
 
107
148
  Due to some corrupt dependencies, you need a Node version >= 20.5.0 to use this package in a Vite app.
package/dist/App.d.ts CHANGED
@@ -63,18 +63,13 @@ declare module "admin_lsac" {
63
63
  tableFields: TableField[];
64
64
  }
65
65
 
66
- interface AdminPanelProps {
67
- pages: PageSchema[];
68
- basePath: string;
69
- }
70
-
71
- export default function AdminPanel({ pages, basePath }: AdminPanelProps): React.ReactElement;
72
-
73
- interface PageProps {
66
+ export interface PageProps {
74
67
  pages: PageSchema[];
75
68
  selectedPage: PageSchema;
76
69
  basePath: string;
77
70
  }
78
71
 
79
- export function Page(props: PageProps): React.ReactElement;
72
+ export function AdminPage(props: PageProps): React.ReactElement;
73
+
74
+ export function pageToUrl(page: PageSchema): string;
80
75
  }
package/dist/App.js CHANGED
@@ -1,48 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
22
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
23
- if (ar || !(i in from)) {
24
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
25
- ar[i] = from[i];
26
- }
27
- }
28
- return to.concat(ar || Array.prototype.slice.call(from));
29
- };
30
2
  Object.defineProperty(exports, "__esModule", { value: true });
31
3
  var jsx_runtime_1 = require("react/jsx-runtime");
32
4
  var react_1 = require("@chakra-ui/react");
33
5
  var react_router_dom_1 = require("react-router-dom");
34
6
  var Page_1 = require("./components/Page");
35
7
  var schema_1 = require("./schema/schema");
36
- var React = __importStar(require("react"));
37
- var page_1 = require("./pages/page");
38
8
  function AdminPanel(_a) {
39
9
  var pages = _a.pages, basePath = _a.basePath;
40
- var _b = React.useState(pages), pagesToDisplay = _b[0], setPagesToDisplay = _b[1];
41
- React.useEffect(function () {
42
- setPagesToDisplay(__spreadArray(__spreadArray([], pages, true), [page_1.page], false));
43
- }, []);
44
- return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pagesToDisplay.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, schema_1.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.Page, { pages: pagesToDisplay, selectedPage: page, basePath: basePath }, void 0) }, void 0)); }), pages[0] ?
45
- (0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.Page, { pages: pagesToDisplay, selectedPage: pages[0], basePath: basePath }, void 0) }, void 0)
46
- : null] }, void 0) }, void 0));
10
+ return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pages.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, schema_1.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: page, basePath: basePath }) })); }), pages[0] ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath }) })) : null] }) }) }));
47
11
  }
48
12
  exports.default = AdminPanel;
package/dist/cjs/App.js CHANGED
@@ -1,48 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
22
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
23
- if (ar || !(i in from)) {
24
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
25
- ar[i] = from[i];
26
- }
27
- }
28
- return to.concat(ar || Array.prototype.slice.call(from));
29
- };
30
2
  Object.defineProperty(exports, "__esModule", { value: true });
31
3
  var jsx_runtime_1 = require("react/jsx-runtime");
32
4
  var react_1 = require("@chakra-ui/react");
33
5
  var react_router_dom_1 = require("react-router-dom");
34
6
  var Page_1 = require("./components/Page");
35
7
  var schema_1 = require("./schema/schema");
36
- var React = __importStar(require("react"));
37
- var page_1 = require("./pages/page");
38
8
  function AdminPanel(_a) {
39
9
  var pages = _a.pages, basePath = _a.basePath;
40
- var _b = React.useState(pages), pagesToDisplay = _b[0], setPagesToDisplay = _b[1];
41
- React.useEffect(function () {
42
- setPagesToDisplay(__spreadArray(__spreadArray([], pages, true), [page_1.page], false));
43
- }, []);
44
- return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pagesToDisplay.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, schema_1.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.Page, { pages: pagesToDisplay, selectedPage: page, basePath: basePath }, void 0) }, void 0)); }), pages[0] ?
45
- (0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.Page, { pages: pagesToDisplay, selectedPage: pages[0], basePath: basePath }, void 0) }, void 0)
46
- : null] }, void 0) }, void 0));
10
+ return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pages.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, schema_1.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: page, basePath: basePath }) })); }), pages[0] ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath }) })) : null] }) }) }));
47
11
  }
48
12
  exports.default = AdminPanel;
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
14
  if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
16
20
  }) : (function(o, m, k, k2) {
17
21
  if (k2 === undefined) k2 = k;
18
22
  o[k2] = m[k];
@@ -44,7 +48,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
44
48
  function verb(n) { return function (v) { return step([n, v]); }; }
45
49
  function step(op) {
46
50
  if (f) throw new TypeError("Generator is already executing.");
47
- while (_) try {
51
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
48
52
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
49
53
  if (y = 0, t) op = [op[0] & 2, t.value];
50
54
  switch (op[0]) {
@@ -107,15 +111,15 @@ function parseValidation(fields) {
107
111
  }, {});
108
112
  }
109
113
  function generateSingleField(formfield, fieldName, key) {
110
- return ((0, jsx_runtime_1.jsx)(formik_1.Field, __assign({ name: fieldName }, { children: function (_a) {
114
+ return ((0, jsx_runtime_1.jsx)(formik_1.Field, { name: fieldName, children: function (_a) {
111
115
  var _b;
112
116
  var field = _a.field, form = _a.form;
113
- return ((0, jsx_runtime_1.jsxs)(react_1.FormControl, __assign({ isInvalid: (0, formik_1.getIn)(form.touched, fieldName) && (0, formik_1.getIn)(form.errors, fieldName) }, { children: [(0, jsx_runtime_1.jsx)(react_1.FormLabel, __assign({ marginTop: 2 }, { children: formfield.label }), void 0), formfield.type === "string" || formfield.type === "number" ? ((0, jsx_runtime_1.jsx)(react_1.Input, __assign({}, field, { type: formfield.type === "number" ? "number" : "text", placeholder: "" }), void 0)) : formfield.type === "file" ? ((0, jsx_runtime_1.jsx)(react_1.Input, { type: "file", name: fieldName, onChange: function (event) {
117
+ return ((0, jsx_runtime_1.jsxs)(react_1.FormControl, { isInvalid: (0, formik_1.getIn)(form.touched, fieldName) && (0, formik_1.getIn)(form.errors, fieldName), children: [(0, jsx_runtime_1.jsx)(react_1.FormLabel, { marginTop: 2, children: formfield.label }), formfield.type === "string" || formfield.type === "number" ? ((0, jsx_runtime_1.jsx)(react_1.Input, __assign({}, field, { type: formfield.type === "number" ? "number" : "text", placeholder: "" }))) : formfield.type === "file" ? ((0, jsx_runtime_1.jsx)(react_1.Input, { type: "file", name: fieldName, onChange: function (event) {
114
118
  if (event.currentTarget.files != null) {
115
119
  form.setFieldValue(fieldName, event.currentTarget.files[0]);
116
120
  }
117
- } }, void 0)) : ((0, jsx_runtime_1.jsxs)(react_1.Select, __assign({}, field, { defaultValue: "" }, { children: [(0, jsx_runtime_1.jsx)("option", __assign({ disabled: true, value: "" }, { children: "Select an option!" }), void 0), (_b = formfield.options) === null || _b === void 0 ? void 0 : _b.map(function (option, key) { return ((0, jsx_runtime_1.jsx)("option", __assign({ value: "".concat(option.value) }, { children: option.display }), key)); })] }), void 0)), (0, jsx_runtime_1.jsx)(react_1.FormErrorMessage, { children: (0, formik_1.getIn)(form.errors, fieldName) }, void 0)] }), void 0));
118
- } }), key));
121
+ } })) : ((0, jsx_runtime_1.jsxs)(react_1.Select, __assign({}, field, { defaultValue: "", children: [(0, jsx_runtime_1.jsx)("option", { disabled: true, value: "", children: "Select an option!" }), (_b = formfield.options) === null || _b === void 0 ? void 0 : _b.map(function (option, key) { return ((0, jsx_runtime_1.jsx)("option", { value: "".concat(option.value), children: option.display }, key)); })] }))), (0, jsx_runtime_1.jsx)(react_1.FormErrorMessage, { children: (0, formik_1.getIn)(form.errors, fieldName) })] }));
122
+ } }, key));
119
123
  }
120
124
  function parseFields(fields, previous) {
121
125
  if (!fields) {
@@ -128,12 +132,12 @@ function parseFields(fields, previous) {
128
132
  return (0, jsx_runtime_1.jsx)(react_1.FormControl, { children: objectFields }, fieldName);
129
133
  }
130
134
  else if (formfield.type === "array") {
131
- return ((0, jsx_runtime_1.jsx)(formik_1.FieldArray, __assign({ name: fieldName }, { children: function (_a) {
135
+ return ((0, jsx_runtime_1.jsx)(formik_1.FieldArray, { name: fieldName, children: function (_a) {
132
136
  var remove = _a.remove, push = _a.push, form = _a.form;
133
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(react_1.FormLabel, __assign({ marginTop: 2 }, { children: formfield.label }), void 0), (0, formik_1.getIn)(form.values, fieldName).length > 0 &&
134
- (0, formik_1.getIn)(form.values, fieldName).map(function (element, index) { return ((0, jsx_runtime_1.jsxs)(react_1.Box, __assign({ paddingLeft: 10 }, { children: [(0, jsx_runtime_1.jsx)("h4", { children: (0, jsx_runtime_1.jsx)("b", { children: "".concat(fieldName, ".").concat(index) }, void 0) }, void 0), (0, jsx_runtime_1.jsx)(react_1.Box, __assign({ paddingLeft: 10 }, { children: formfield.element.type === "object"
137
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(react_1.FormLabel, { marginTop: 2, children: formfield.label }), (0, formik_1.getIn)(form.values, fieldName).length > 0 &&
138
+ (0, formik_1.getIn)(form.values, fieldName).map(function (element, index) { return ((0, jsx_runtime_1.jsxs)(react_1.Box, { paddingLeft: 10, children: [(0, jsx_runtime_1.jsx)("h4", { children: (0, jsx_runtime_1.jsx)("b", { children: "".concat(fieldName, ".").concat(index) }) }), (0, jsx_runtime_1.jsx)(react_1.Box, { paddingLeft: 10, children: formfield.element.type === "object"
135
139
  ? parseFields(formfield.element.fields, "".concat(fieldName, ".").concat(index))
136
- : generateSingleField(formfield.element, "".concat(fieldName, ".").concat(index), key) }), void 0), (0, jsx_runtime_1.jsxs)(react_1.Button, __assign({ type: "button", colorScheme: "red", marginY: 2, onClick: function () { return remove(index); } }, { children: ["Remove ", "".concat(fieldName, ".").concat(index)] }), void 0)] }), void 0)); }), (0, jsx_runtime_1.jsxs)(react_1.Button, __assign({ type: "button", marginY: 2, colorScheme: "blue", onClick: function () {
140
+ : generateSingleField(formfield.element, "".concat(fieldName, ".").concat(index), key) }), (0, jsx_runtime_1.jsxs)(react_1.Button, { type: "button", colorScheme: "red", marginY: 2, onClick: function () { return remove(index); }, children: ["Remove ", "".concat(fieldName, ".").concat(index)] })] })); }), (0, jsx_runtime_1.jsxs)(react_1.Button, { type: "button", marginY: 2, colorScheme: "blue", onClick: function () {
137
141
  var value = undefined;
138
142
  if (formfield.element.type === "object") {
139
143
  value = getInitialValues(formfield.element.fields);
@@ -142,8 +146,8 @@ function parseFields(fields, previous) {
142
146
  value = getInitialValues([formfield.element])[0];
143
147
  }
144
148
  push(value);
145
- } }, { children: ["Add ", fieldName] }), void 0)] }, void 0));
146
- } }), void 0));
149
+ }, children: ["Add ", fieldName] })] }));
150
+ } }));
147
151
  }
148
152
  else {
149
153
  return generateSingleField(formfield, fieldName, key);
@@ -227,8 +231,8 @@ function GenericForm(_a) {
227
231
  });
228
232
  }, []);
229
233
  if (!action.fields)
230
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}, void 0);
231
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(formik_1.Formik, __assign({ initialValues: initialValues, validationSchema: Yup.object(validationSchema), onSubmit: function (values) { return __awaiter(_this, void 0, void 0, function () {
234
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
235
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(formik_1.Formik, { initialValues: initialValues, validationSchema: Yup.object(validationSchema), onSubmit: function (values) { return __awaiter(_this, void 0, void 0, function () {
232
236
  var res, e_1, err;
233
237
  return __generator(this, function (_a) {
234
238
  switch (_a.label) {
@@ -261,9 +265,9 @@ function GenericForm(_a) {
261
265
  case 6: return [2 /*return*/];
262
266
  }
263
267
  });
264
- }); } }, { children: function (_a) {
268
+ }); }, children: function (_a) {
265
269
  var isSubmitting = _a.isSubmitting;
266
- return ((0, jsx_runtime_1.jsxs)(formik_1.Form, { children: [formFields, (0, jsx_runtime_1.jsx)(react_1.Button, __assign({ mt: 4, colorScheme: "teal", isLoading: isSubmitting, type: "submit" }, { children: "Submit" }), void 0)] }, void 0));
267
- } }), void 0) }, void 0));
270
+ return ((0, jsx_runtime_1.jsxs)(formik_1.Form, { children: [formFields, (0, jsx_runtime_1.jsx)(react_1.Button, { mt: 4, colorScheme: "teal", isLoading: isSubmitting, type: "submit", children: "Submit" })] }));
271
+ } }) }));
268
272
  }
269
273
  exports.GenericForm = GenericForm;
@@ -1,27 +1,15 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Page = void 0;
6
+ exports.AdminPage = void 0;
18
7
  var jsx_runtime_1 = require("react/jsx-runtime");
19
8
  var react_1 = require("react");
20
9
  var react_2 = require("@chakra-ui/react");
21
10
  var schema_1 = require("../schema/schema");
22
11
  var react_3 = require("@chakra-ui/react");
23
12
  var GenericForm_1 = require("./GenericForm");
24
- var react_router_1 = require("react-router");
25
13
  var react_4 = require("@emotion/react");
26
14
  var styles_1 = require("@mui/material/styles");
27
15
  var material_react_table_1 = require("material-react-table");
@@ -30,20 +18,27 @@ var sweetalert2_1 = __importDefault(require("sweetalert2"));
30
18
  var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
31
19
  function Header(_a) {
32
20
  var pages = _a.pages, data = _a.data, basePath = _a.basePath;
33
- var nav = (0, react_router_1.useNavigate)();
34
- return ((0, jsx_runtime_1.jsx)(react_3.Box, __assign({ background: "blue.50", padding: 1 }, { children: (0, jsx_runtime_1.jsxs)(react_3.Stack, __assign({ margin: 3, direction: "row", justifyContent: "space-between", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(react_3.Stack, __assign({ margin: 4, gap: 10, direction: "row", alignItems: "center" }, { children: pages.map(function (p) { return ((0, jsx_runtime_1.jsx)(react_3.Box, __assign({ as: "a", href: "".concat(basePath, "/").concat((0, schema_1.pageToUrl)(p)) }, { children: p.name }), void 0)); }) }), void 0), (0, jsx_runtime_1.jsx)(react_3.Stack, __assign({ direction: "row" }, { children: (0, jsx_runtime_1.jsx)(react_3.Button, __assign({ colorScheme: "red", onClick: function () {
21
+ return ((0, jsx_runtime_1.jsx)(react_3.Box, { background: "blue.50", padding: 1, children: (0, jsx_runtime_1.jsxs)(react_3.Stack, { margin: 3, direction: "row", justifyContent: "space-between", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(react_3.Stack, { margin: 4, gap: 10, direction: "row", alignItems: "center", children: pages.map(function (p) { return ((0, jsx_runtime_1.jsx)(react_3.Box, { as: "a", href: "".concat(basePath, "/").concat((0, schema_1.pageToUrl)(p)), children: p.name })); }) }), (0, jsx_runtime_1.jsx)(react_3.Stack, { direction: "row", children: (0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "red", onClick: function () {
35
22
  var filename = prompt("Enter filename:");
36
23
  if (filename)
37
24
  exportToCSV(data, filename);
38
- } }, { children: "Export Data" }), void 0) }), void 0)] }), void 0) }), void 0));
25
+ }, children: "Export Data" }) })] }) }));
39
26
  }
40
27
  function exportToCSV(data, filename) {
41
28
  var formatImageData = function (obj) {
42
29
  var formattedObj = {};
43
- for (var key in obj) {
30
+ var _loop_1 = function (key) {
44
31
  if (typeof obj[key] !== "object") {
45
32
  formattedObj[key] = obj[key];
46
33
  }
34
+ else if (typeof obj[key] === "object" && obj[key] != null) {
35
+ Object.keys(obj[key]).forEach(function (k) {
36
+ formattedObj["".concat(key, ".").concat(k)] = obj[key][k];
37
+ });
38
+ }
39
+ };
40
+ for (var key in obj) {
41
+ _loop_1(key);
47
42
  }
48
43
  return formattedObj;
49
44
  };
@@ -63,7 +58,7 @@ function exportToCSV(data, filename) {
63
58
  });
64
59
  }
65
60
  }
66
- function Page(_a) {
61
+ function AdminPage(_a) {
67
62
  var _b;
68
63
  var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath;
69
64
  var _c = (0, react_3.useDisclosure)(), isOpen = _c.isOpen, onOpen = _c.onOpen, onClose = _c.onClose;
@@ -81,14 +76,14 @@ function Page(_a) {
81
76
  return selectedPage.tableFields.map(function (field) { return field.access(table_data); });
82
77
  }));
83
78
  }, [data]);
84
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Header, { pages: pages, data: data, basePath: basePath }, void 0), (0, jsx_runtime_1.jsx)(react_4.ThemeProvider, __assign({ theme: (0, styles_1.createTheme)() }, { children: (0, jsx_runtime_1.jsx)(material_react_table_1.MaterialReactTable, { columns: selectedPage.tableFields.map(function (field, index) { return ({
79
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Header, { pages: pages, data: data, basePath: basePath }), (0, jsx_runtime_1.jsx)(react_4.ThemeProvider, { theme: (0, styles_1.createTheme)(), children: (0, jsx_runtime_1.jsx)(material_react_table_1.MaterialReactTable, { columns: selectedPage.tableFields.map(function (field, index) { return ({
85
80
  accessorFn: function (row) { return row[index]; },
86
81
  header: field.name,
87
- }); }), data: displayData, muiTableContainerProps: { sx: { maxHeight: "70vh" } }, enableColumnResizing: true, enableColumnPinning: true, enableGlobalFilterModes: true, enablePagination: true, paginationDisplayMode: "pages", enableRowVirtualization: true, rowVirtualizerOptions: { overscan: 20 }, renderTopToolbarCustomActions: function () { return ((0, jsx_runtime_1.jsx)(react_2.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_3.Stack, __assign({ margin: 0, padding: 3, direction: "row" }, { children: selectedPage.actions.map(function (action) { return ((0, jsx_runtime_1.jsx)(react_3.Button, __assign({ colorScheme: "blue", onClick: function () {
82
+ }); }), data: displayData, muiTableContainerProps: { sx: { maxHeight: "70vh" } }, enableColumnResizing: true, enableColumnPinning: true, enableGlobalFilterModes: true, enablePagination: true, paginationDisplayMode: "pages", enableRowVirtualization: true, rowVirtualizerOptions: { overscan: 20 }, renderTopToolbarCustomActions: function () { return ((0, jsx_runtime_1.jsx)(react_2.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_3.Stack, { margin: 0, padding: 3, direction: "row", children: selectedPage.actions.map(function (action) { return ((0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "blue", onClick: function () {
88
83
  setSelectedAction(action);
89
84
  onOpen();
90
- } }, { children: action.name }), void 0)); }) }), void 0) }, void 0)); }, enableRowActions: true, renderRowActionMenuItems: function (obj) {
91
- return selectedPage.rowActions.map(function (rowAction) { return ((0, jsx_runtime_1.jsx)(MenuItem_1.default, __assign({ onClick: function () {
85
+ }, children: action.name })); }) }) })); }, enableRowActions: true, renderRowActionMenuItems: function (obj) {
86
+ return selectedPage.rowActions.map(function (rowAction) { return ((0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: function () {
92
87
  setSelectedAction(rowAction);
93
88
  setRowId(obj.row.original[0]);
94
89
  onOpen();
@@ -96,11 +91,11 @@ function Page(_a) {
96
91
  if (rowActionsMenu) {
97
92
  rowActionsMenu.remove();
98
93
  }
99
- } }, { children: rowAction.name + " " + obj.row.original[0] }), void 0)); });
100
- } }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(react_3.Modal, __assign({ size: "6xl", isOpen: isOpen, onClose: onClose }, { children: [(0, jsx_runtime_1.jsx)(react_3.ModalOverlay, {}, void 0), (0, jsx_runtime_1.jsxs)(react_3.ModalContent, { children: [(0, jsx_runtime_1.jsx)(react_3.ModalHeader, { children: selectedAction.name }, void 0), (0, jsx_runtime_1.jsx)(react_3.ModalCloseButton, {}, void 0), (0, jsx_runtime_1.jsxs)(react_3.ModalBody, { children: [selectedAction.fields && ((_b = selectedAction.fields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? ((0, jsx_runtime_1.jsx)(GenericForm_1.GenericForm, { action: selectedAction, onClose: onClose, rowId: rowId }, void 0)) : ((0, jsx_runtime_1.jsx)(react_3.Button, __assign({ colorScheme: "blue", mr: 3, onClick: function () {
94
+ }, children: rowAction.name + " " + obj.row.original[0] })); });
95
+ } }) }), (0, jsx_runtime_1.jsxs)(react_3.Modal, { size: "6xl", isOpen: isOpen, onClose: onClose, children: [(0, jsx_runtime_1.jsx)(react_3.ModalOverlay, {}), (0, jsx_runtime_1.jsxs)(react_3.ModalContent, { children: [(0, jsx_runtime_1.jsx)(react_3.ModalHeader, { children: selectedAction.name }), (0, jsx_runtime_1.jsx)(react_3.ModalCloseButton, {}), (0, jsx_runtime_1.jsxs)(react_3.ModalBody, { children: [selectedAction.fields && ((_b = selectedAction.fields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? ((0, jsx_runtime_1.jsx)(GenericForm_1.GenericForm, { action: selectedAction, onClose: onClose, rowId: rowId })) : ((0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "blue", mr: 3, onClick: function () {
101
96
  selectedAction.onSubmit(rowId);
102
97
  onClose();
103
98
  window.location.reload();
104
- } }, { children: "Confirm Action" }), void 0)), (0, jsx_runtime_1.jsx)(react_3.Button, __assign({ colorScheme: "red", mr: 3, onClick: onClose }, { children: "Close" }), void 0)] }, void 0)] }, void 0)] }), void 0)] }, void 0));
99
+ }, children: "Confirm Action" })), (0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "red", mr: 3, onClick: onClose, children: "Close" })] })] })] })] }));
105
100
  }
106
- exports.Page = Page;
101
+ exports.AdminPage = AdminPage;
package/dist/cjs/index.js CHANGED
@@ -11,7 +11,7 @@ var App_1 = __importDefault(require("./App"));
11
11
  var reportWebVitals_1 = __importDefault(require("./reportWebVitals"));
12
12
  var event_1 = require("./pages/event");
13
13
  var root = client_1.default.createRoot(document.getElementById("root"));
14
- root.render((0, jsx_runtime_1.jsx)(react_1.default.StrictMode, { children: (0, jsx_runtime_1.jsx)(App_1.default, { pages: [event_1.event], basePath: "" }, void 0) }, void 0));
14
+ root.render((0, jsx_runtime_1.jsx)(react_1.default.StrictMode, { children: (0, jsx_runtime_1.jsx)(App_1.default, { pages: [event_1.event], basePath: "" }) }));
15
15
  // If you want to start measuring performance in your app, pass a function
16
16
  // to log results (for example: reportWebVitals(console.log))
17
17
  // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
18
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {