admin_lsac 1.2.3 → 1.2.4
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 +45 -4
- package/dist/App.d.ts +4 -9
- package/dist/App.js +1 -37
- package/dist/cjs/App.js +1 -37
- package/dist/cjs/components/GenericForm.js +21 -17
- package/dist/cjs/components/Page.js +21 -26
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/pages/event.js +1 -1
- package/dist/cjs/pages/page.js +93 -61
- package/dist/cjs/reportWebVitals.js +5 -1
- package/dist/cjs/schema/schema.config.js +1 -1
- package/dist/components/GenericForm.js +21 -17
- package/dist/components/Page.js +21 -26
- package/dist/esm/App.js +3 -20
- package/dist/esm/components/GenericForm.js +16 -16
- package/dist/esm/components/Page.js +19 -24
- package/dist/esm/index.js +1 -1
- package/dist/esm/pages/event.js +1 -1
- package/dist/esm/pages/page.js +89 -61
- package/dist/esm/schema/schema.config.js +1 -1
- package/dist/index.js +1 -1
- package/dist/pages/event.js +1 -1
- package/dist/pages/page.js +93 -61
- package/dist/reportWebVitals.js +5 -1
- package/dist/schema/schema.config.js +1 -1
- package/package.json +3 -3
- package/src/App.tsx +110 -97
- package/src/components/Page.tsx +219 -209
- package/src/index.tsx +20 -20
- package/src/pages/event.ts +69 -69
- package/src/pages/page.ts +336 -291
- package/src/schema/schema.config.ts +8 -8
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
|
|
13
|
+
### `import { AdminPage } from 'admin_lsac'`
|
|
14
14
|
|
|
15
|
-
You can import this component in
|
|
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
|
-
|
|
19
|
+
* Import the component from above where you want to write your schemas. (See below for details about schemas)
|
|
20
20
|
|
|
21
|
-
|
|
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
|
|
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
|
|
72
|
+
export function AdminPage(props: PageProps): React.ReactElement;
|
|
73
|
+
|
|
74
|
+
export function pageToUrl(props: {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
|
-
|
|
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
|
-
|
|
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.
|
|
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,
|
|
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,
|
|
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
|
-
} }
|
|
118
|
-
} }
|
|
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,
|
|
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,
|
|
134
|
-
(0, formik_1.getIn)(form.values, fieldName).map(function (element, index) { return ((0, jsx_runtime_1.jsxs)(react_1.Box,
|
|
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) }),
|
|
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
|
-
}
|
|
146
|
-
} })
|
|
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, {}
|
|
231
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(formik_1.Formik,
|
|
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
|
-
}); }
|
|
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,
|
|
267
|
-
} })
|
|
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.
|
|
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
|
-
|
|
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
|
-
}
|
|
25
|
+
}, children: "Export Data" }) })] }) }));
|
|
39
26
|
}
|
|
40
27
|
function exportToCSV(data, filename) {
|
|
41
28
|
var formatImageData = function (obj) {
|
|
42
29
|
var formattedObj = {};
|
|
43
|
-
|
|
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
|
|
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 }
|
|
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,
|
|
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
|
-
}
|
|
91
|
-
return selectedPage.rowActions.map(function (rowAction) { return ((0, jsx_runtime_1.jsx)(MenuItem_1.default,
|
|
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
|
-
}
|
|
100
|
-
} }
|
|
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
|
-
}
|
|
99
|
+
}, children: "Confirm Action" })), (0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "red", mr: 3, onClick: onClose, children: "Close" })] })] })] })] }));
|
|
105
100
|
}
|
|
106
|
-
exports.
|
|
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: "" }
|
|
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
|
package/dist/cjs/pages/event.js
CHANGED
|
@@ -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]) {
|