@solidxai/core-ui 0.1.3 → 0.1.4-beta.0
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/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +7 -5
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +10 -8
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +48 -47
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +41 -10
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +1 -1
- package/dist/components/core/common/GroupingComponent.d.ts +54 -0
- package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
- package/dist/components/core/common/GroupingComponent.js +196 -0
- package/dist/components/core/common/GroupingComponent.js.map +1 -0
- package/dist/components/core/common/GroupingComponent.tsx +452 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +146 -47
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +191 -18
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +7 -3
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +45 -40
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
- package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
- package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
- package/dist/components/core/form/SolidFormFooter.js +4 -4
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +4 -4
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +26 -21
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +27 -17
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +1 -0
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +51 -0
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +51 -0
- package/dist/components/core/kanban/SolidKanbanView.js +5 -5
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +5 -5
- package/dist/components/core/list/SolidListView.d.ts +12 -7
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +138 -150
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +84 -91
- package/dist/components/core/list/listViewRegistry.js.map +1 -1
- package/dist/components/core/list/listViewRegistry.ts +1 -2
- package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
- package/dist/components/core/tree/SolidTreeView.js +1170 -0
- package/dist/components/core/tree/SolidTreeView.js.map +1 -0
- package/dist/components/core/tree/SolidTreeView.tsx +1603 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.js +17 -0
- package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.ts +23 -0
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +19 -6
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +39 -0
- package/dist/helpers/helpers.d.ts +2 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +3 -1
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +4 -1
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +2 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +6 -1
- package/dist/resources/globals.css +18 -4
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +1 -1
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +2 -1
- package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
- package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.js +37 -0
- package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +3 -1
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/solid-core.d.ts +40 -0
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SolidTreeViewHandle } from "../tree/SolidTreeView";
|
|
2
|
+
export declare const registerTree: (treeId: string, handle: SolidTreeViewHandle) => void;
|
|
3
|
+
export declare const unregisterTree: (treeId: string) => void;
|
|
4
|
+
export declare const getTree: (treeId: string) => SolidTreeViewHandle | undefined;
|
|
5
|
+
export declare const hasTree: (treeId: string) => boolean;
|
|
6
|
+
export declare const getRegisteredTreeIds: () => string[];
|
|
7
|
+
//# sourceMappingURL=treeViewRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeViewRegistry.d.ts","sourceRoot":"","sources":["../../../../src/components/core/tree/treeViewRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,eAAO,MAAM,YAAY,WAAY,MAAM,UAAU,mBAAmB,KAAG,IAE1E,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,IAE/C,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,MAAM,KAAG,mBAAmB,GAAG,SAE9D,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,MAAM,KAAG,OAExC,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,MAAM,EAE7C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var treeViewRegistry = new Map();
|
|
2
|
+
export var registerTree = function (treeId, handle) {
|
|
3
|
+
treeViewRegistry.set(treeId, handle);
|
|
4
|
+
};
|
|
5
|
+
export var unregisterTree = function (treeId) {
|
|
6
|
+
treeViewRegistry.delete(treeId);
|
|
7
|
+
};
|
|
8
|
+
export var getTree = function (treeId) {
|
|
9
|
+
return treeViewRegistry.get(treeId);
|
|
10
|
+
};
|
|
11
|
+
export var hasTree = function (treeId) {
|
|
12
|
+
return treeViewRegistry.has(treeId);
|
|
13
|
+
};
|
|
14
|
+
export var getRegisteredTreeIds = function () {
|
|
15
|
+
return Array.from(treeViewRegistry.keys());
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=treeViewRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeViewRegistry.js","sourceRoot":"","sources":["../../../../src/components/core/tree/treeViewRegistry.ts"],"names":[],"mappings":"AAEA,IAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEhE,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,MAAc,EAAE,MAA2B;IACtE,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,MAAc;IAC3C,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,MAAc;IACpC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,OAAO,GAAG,UAAC,MAAc;IACpC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,oBAAoB,GAAG;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC","sourcesContent":["import { SolidTreeViewHandle } from \"../tree/SolidTreeView\";\n\nconst treeViewRegistry = new Map<string, SolidTreeViewHandle>();\n\nexport const registerTree = (treeId: string, handle: SolidTreeViewHandle): void => {\n treeViewRegistry.set(treeId, handle);\n};\n\nexport const unregisterTree = (treeId: string): void => {\n treeViewRegistry.delete(treeId);\n};\n\nexport const getTree = (treeId: string): SolidTreeViewHandle | undefined => {\n return treeViewRegistry.get(treeId);\n};\n\nexport const hasTree = (treeId: string): boolean => {\n return treeViewRegistry.has(treeId);\n};\n\nexport const getRegisteredTreeIds = (): string[] => {\n return Array.from(treeViewRegistry.keys());\n};\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SolidTreeViewHandle } from "../tree/SolidTreeView";
|
|
2
|
+
|
|
3
|
+
const treeViewRegistry = new Map<string, SolidTreeViewHandle>();
|
|
4
|
+
|
|
5
|
+
export const registerTree = (treeId: string, handle: SolidTreeViewHandle): void => {
|
|
6
|
+
treeViewRegistry.set(treeId, handle);
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export const unregisterTree = (treeId: string): void => {
|
|
10
|
+
treeViewRegistry.delete(treeId);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const getTree = (treeId: string): SolidTreeViewHandle | undefined => {
|
|
14
|
+
return treeViewRegistry.get(treeId);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const hasTree = (treeId: string): boolean => {
|
|
18
|
+
return treeViewRegistry.has(treeId);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const getRegisteredTreeIds = (): string[] => {
|
|
22
|
+
return Array.from(treeViewRegistry.keys());
|
|
23
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,UAAU,qBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAiCA,QAAA,MAAM,UAAU,qBAAsB,GAAG,4CAsdxC,CAAC;AAGF,eAAe,UAAU,CAAC"}
|
|
@@ -65,15 +65,15 @@ import { classNames } from "primereact/utils";
|
|
|
65
65
|
import { useEffect, useRef, useState } from "react";
|
|
66
66
|
import * as Yup from "yup";
|
|
67
67
|
var CreateUser = function (_a) {
|
|
68
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
68
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
69
69
|
var data = _a.data, params = _a.params;
|
|
70
70
|
var toast = useRef(null);
|
|
71
71
|
var pathname = usePathname();
|
|
72
72
|
var router = useRouter();
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
var
|
|
73
|
+
var _s = useState([]), selectedRoles = _s[0], setSelectedRoles = _s[1];
|
|
74
|
+
var _t = useRegisterPrivateMutation(), registerPrivate = _t[0], _u = _t[1], isLoading = _u.isLoading, userCreateError = _u.error, isSuccess = _u.isSuccess, user = _u.data;
|
|
75
|
+
var _v = useUpdateUserMutation(), updateUser = _v[0], _w = _v[1], isuserUpdating = _w.isLoading, isUpdateuserSuceess = _w.isSuccess, isuserUpdateError = _w.isError, userUpdateError = _w.error, updateduser = _w.data;
|
|
76
|
+
var _x = useDeleteUserMutation(), deleteUser = _x[0], _y = _x[1], isUserDeleted = _y.isLoading, isDeleteUserSuceess = _y.isSuccess, isUserDeleteError = _y.isError, UserDeleteError = _y.error, DeletedUser = _y.data;
|
|
77
77
|
var rolesData = useGetrolesQuery("").data;
|
|
78
78
|
// const [
|
|
79
79
|
// createrolebulk,
|
|
@@ -104,6 +104,7 @@ var CreateUser = function (_a) {
|
|
|
104
104
|
mobile: data ? data.mobile : "",
|
|
105
105
|
password: "",
|
|
106
106
|
confirmPassword: "",
|
|
107
|
+
failedLoginAttempts: data ? data.failedLoginAttempts : 0,
|
|
107
108
|
};
|
|
108
109
|
var validationSchema = Yup.object({
|
|
109
110
|
fullName: Yup.string().required(),
|
|
@@ -135,6 +136,12 @@ var CreateUser = function (_a) {
|
|
|
135
136
|
otherwise: function (schema) { return schema.notRequired().nullable(); },
|
|
136
137
|
}),
|
|
137
138
|
mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),
|
|
139
|
+
failedLoginAttempts: Yup.number()
|
|
140
|
+
.typeError("Failed Login Attempts must be a number")
|
|
141
|
+
.nullable()
|
|
142
|
+
.transform(function (value, originalValue) {
|
|
143
|
+
return originalValue === "" ? null : value;
|
|
144
|
+
}),
|
|
138
145
|
});
|
|
139
146
|
var isFormFieldValid = function (formik, fieldName) {
|
|
140
147
|
return formik.touched[fieldName] && formik.errors[fieldName];
|
|
@@ -207,6 +214,7 @@ var CreateUser = function (_a) {
|
|
|
207
214
|
email: values.email,
|
|
208
215
|
mobile: values.mobile,
|
|
209
216
|
roles: selectedRoles,
|
|
217
|
+
failedLoginAttempts: values.failedLoginAttempts,
|
|
210
218
|
};
|
|
211
219
|
if (values.password) {
|
|
212
220
|
userData.password = values.password;
|
|
@@ -221,6 +229,7 @@ var CreateUser = function (_a) {
|
|
|
221
229
|
mobile: values.mobile,
|
|
222
230
|
password: values.password,
|
|
223
231
|
roles: selectedRoles,
|
|
232
|
+
failedLoginAttempts: values.failedLoginAttempts,
|
|
224
233
|
};
|
|
225
234
|
registerPrivate(userData);
|
|
226
235
|
}
|
|
@@ -244,7 +253,11 @@ var CreateUser = function (_a) {
|
|
|
244
253
|
"p-invalid": formik.touched.email && formik.errors.email,
|
|
245
254
|
}) }), isFormFieldValid(formik, "email") && (_jsx(Message, { severity: "error", text: (_g = (_f = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _f === void 0 ? void 0 : _f.email) === null || _g === void 0 ? void 0 : _g.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "mobile", className: "form-field-label", children: "Mobile" }), _jsx(InputText, { type: "text", id: "mobile", name: "mobile", autoComplete: "off", onChange: formik.handleChange, value: formik.values.mobile, className: classNames("", {
|
|
246
255
|
"p-invalid": formik.touched.mobile && formik.errors.mobile,
|
|
247
|
-
}) }), isFormFieldValid(formik, "mobile ") && (_jsx(Message, { severity: "error", text: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.mobile) === null || _j === void 0 ? void 0 : _j.toString() }))] }), params.id === "new" && _jsxs(_Fragment, { children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 py-4", children: [_jsx("label", { htmlFor: "Password", className: "form-field-label", children: "Password" }), _jsx(Password, { id: "password", name: "password", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.password, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "password"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "password") && (_jsx(Message, { severity: "error", text: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.password) === null || _l === void 0 ? void 0 : _l.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4", children: [_jsx("label", { htmlFor: "Confirm Password", className: "form-field-label", children: "Confirm Password" }), _jsx(Password, { id: "confirmPassword", name: "confirmPassword", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "confirmPassword"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "confirmPassword") && (_jsx(Message, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.confirmPassword) === null || _o === void 0 ? void 0 : _o.toString() }))] })] })
|
|
256
|
+
}) }), isFormFieldValid(formik, "mobile ") && (_jsx(Message, { severity: "error", text: (_j = (_h = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _h === void 0 ? void 0 : _h.mobile) === null || _j === void 0 ? void 0 : _j.toString() }))] }), params.id === "new" && _jsxs(_Fragment, { children: [_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 py-4", children: [_jsx("label", { htmlFor: "Password", className: "form-field-label", children: "Password" }), _jsx(Password, { id: "password", name: "password", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.password, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "password"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "password") && (_jsx(Message, { severity: "error", text: (_l = (_k = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _k === void 0 ? void 0 : _k.password) === null || _l === void 0 ? void 0 : _l.toString() }))] }), _jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4", children: [_jsx("label", { htmlFor: "Confirm Password", className: "form-field-label", children: "Confirm Password" }), _jsx(Password, { id: "confirmPassword", name: "confirmPassword", autoComplete: "off", "aria-autocomplete": "none", value: formik.values.confirmPassword, onChange: formik.handleChange, onBlur: formik.handleBlur, toggleMask: true, invalid: isFormFieldValid(formik, "confirmPassword"), inputClassName: "w-full", feedback: false }), isFormFieldValid(formik, "confirmPassword") && (_jsx(Message, { severity: "error", text: (_o = (_m = formik === null || formik === void 0 ? void 0 : formik.errors) === null || _m === void 0 ? void 0 : _m.confirmPassword) === null || _o === void 0 ? void 0 : _o.toString() }))] })] }), params.id !== "new" && (_jsxs("div", { className: "field col-12 md:col-6 flex flex-column gap-1 mt-4", children: [_jsx("label", { htmlFor: "failedLoginAttempts", className: "form-field-label", children: "Failed Login Attempts" }), _jsx(InputText, { type: "number", id: "failedLoginAttempts", name: "failedLoginAttempts", autoComplete: "off", onChange: formik.handleChange, value: formik.values.failedLoginAttempts, className: classNames("", {
|
|
257
|
+
"p-invalid": formik.touched.failedLoginAttempts &&
|
|
258
|
+
formik.errors.failedLoginAttempts,
|
|
259
|
+
}) }), formik.touched.failedLoginAttempts &&
|
|
260
|
+
formik.errors.failedLoginAttempts && (_jsx(Message, { severity: "error", text: (_p = formik.errors.failedLoginAttempts) === null || _p === void 0 ? void 0 : _p.toString() })), _jsx("small", { className: "text-color-secondary", children: "Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin." })] }))] }) }), _jsx(Panel, { toggleable: true, header: "Roles", className: "solid-column-panel mt-5", children: _jsx("div", { className: "formgrid grid mt-4", children: ((_q = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _q === void 0 ? void 0 : _q.records) && ((_r = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _r === void 0 ? void 0 : _r.records.map(function (role, i) { return (_jsxs("div", { className: "field col-6 flex gap-2 ".concat(i >= 2 ? 'mt-3' : ''), children: [_jsx(Checkbox, { inputId: role.name, checked: selectedRoles.includes(role.name), onChange: function () { return handleCheckboxChange(role.name); } }), _jsxs("label", { htmlFor: role.name, children: [" ", role.name] })] }, role.name)); })) }) })] }) }) })] }) })] }));
|
|
248
261
|
};
|
|
249
262
|
export default CreateUser;
|
|
250
263
|
//# sourceMappingURL=CreateUser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useGetrolesQuery } from \"../../../redux/api/roleApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { Password } from \"primereact/password\";\nimport { Toast } from \"primereact/toast\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst CreateUser = ({ data, params }: any) => {\n\n const toast = useRef<Toast>(null);\n const pathname = usePathname();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n\n const [registerPrivate, { isLoading, error: userCreateError, isSuccess, data: user }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isuserUpdating,\n isSuccess: isUpdateuserSuceess,\n isError: isuserUpdateError,\n error: userUpdateError,\n data: updateduser,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, {\n isLoading: isUserDeleted,\n isSuccess: isDeleteUserSuceess,\n isError: isUserDeleteError,\n error: UserDeleteError,\n data: DeletedUser,\n },] = useDeleteUserMutation();\n\n const { data: rolesData } = useGetrolesQuery(\"\");\n // const [\n // createrolebulk,\n // { isLoading, isSuccess, isError, error, data: roles },\n // ] = useCreateuserrolebulkMutation();\n\n useEffect(() => {\n if (data && data.roles) {\n const userRoles = data.roles.map((role: any) => role.name);\n setSelectedRoles(userRoles);\n }\n }, [data]);\n\n const handleCheckboxChange = (roleName: string) => {\n let updatedRoles;\n if (selectedRoles.includes(roleName)) {\n updatedRoles = selectedRoles.filter((name) => name !== roleName);\n } else {\n updatedRoles = [...selectedRoles, roleName];\n }\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched('roles', true); // fake \"touched\"\n formik.setFieldValue('roles', updatedRoles);\n };\n\n const initialValues = {\n fullName: data ? data.fullName : \"\",\n username: data ? data.username : \"\",\n email: data ? data.email : \"\",\n mobile: data ? data.mobile : \"\",\n password: \"\",\n confirmPassword: \"\",\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(),\n username: Yup.string()\n .required('Username is required'), // Must be provided\n // .min(3, 'Username must be at least 3 characters long') // Minimum length\n // .max(20, 'Username cannot be longer than 20 characters') // Maximum length\n // .matches(\n // /^[a-zA-Z0-9_.-]*$/,\n // 'Username can only contain letters, numbers, underscores, periods, and hyphens'\n // ) // Allowed characters\n // .matches(\n // /^[a-zA-Z]/,\n // 'Username must start with a letter'\n // ),\n email: Yup\n .string()\n .email(ERROR_MESSAGES.FIELD_INVALID('email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string()\n .when('password', {\n is: (val: any) => !!val, // only validate if password is filled\n then: (schema) =>\n schema\n .oneOf([Yup.ref('password')], ERROR_MESSAGES.FIELD_MUST_MATCH('Password'))\n .nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),\n });\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const showError = async (submit?: boolean) => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0 && toast.current) {\n toast.current.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n // sticky: true,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n {errorMessages.map((m: any, index: number) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{m}</span>\n </div>\n ))}\n </div>\n ),\n });\n }\n };\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n toast.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.ERROR,\n detail: errorMessage,\n sticky: true,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n };\n\n // Check and handle errors from each API operation\n if (userCreateError) {\n handleError(userCreateError)\n }\n if (userUpdateError) {\n handleError(userUpdateError)\n }\n\n }, [\n userCreateError, userUpdateError\n ]);\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n };\n if (values.password) {\n userData.password = values.password;\n }\n updateUser({ id: data.id, data: userData });\n\n } else {\n const userData = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n };\n\n registerPrivate(userData)\n }\n },\n });\n\n useEffect(() => {\n if (isSuccess == true || isDeleteUserSuceess === true || isUpdateuserSuceess === true) {\n router.back();\n }\n }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess])\n\n return (\n <div className=\"solid-form-wrapper\">\n <Toast ref={toast} />\n <div className=\"solid-form-section\" >\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header\">\n {params.id === \"new\" ? (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Create User</div>\n </div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n <CancelButton />\n </div>\n </>\n ) : (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Update User</div>\n </div>\n <div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n {data &&\n <Button outlined label=\"Delete\" size=\"small\" severity=\"danger\" type=\"button\" onClick={() => deleteUser(data.id)} />\n }\n <CancelButton />\n </div>\n </div>\n </>\n )}\n </div>\n <SolidFormHeader />\n {/* <div className=\"solid-form-stepper\">\n <SolidFormStepper />\n </div> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <div className=\"grid\">\n <div className=\"col-12 lg:col-10 xl:col-8 mx-auto\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <Panel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"grid formgrid mt-3\">\n <div className=\"field col-12 md:col-6 flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <InputText\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.fullName}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.fullName && formik.errors.fullName,\n })}\n />\n {isFormFieldValid(formik, \"fullName\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.fullName?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <InputText\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.username}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.username && formik.errors.username,\n })}\n />\n {isFormFieldValid(formik, \"username\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.username?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <InputText\n type=\"text\"\n id=\"email\"\n name=\"email\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.email}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.email && formik.errors.email,\n })}\n />\n {isFormFieldValid(formik, \"email\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <InputText\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.mobile}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.mobile && formik.errors.mobile,\n })}\n />\n {isFormFieldValid(formik, \"mobile \") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.mobile?.toString()}\n />\n )}\n </div>\n {params.id === \"new\" && <>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 py-4\">\n <label htmlFor=\"Password\" className=\"form-field-label\">\n Password\n </label>\n <Password\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"password\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"password\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.password?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4\">\n <label htmlFor=\"Confirm Password\" className=\"form-field-label\">\n Confirm Password\n </label>\n <Password\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"confirmPassword\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"confirmPassword\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.confirmPassword?.toString()}\n />\n )}\n </div>\n </>}\n </div>\n </Panel>\n\n {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Roles</p> */}\n\n <Panel toggleable header=\"Roles\" className=\"solid-column-panel mt-5\">\n <div className=\"formgrid grid mt-4\">\n {rolesData?.data?.records && rolesData?.data?.records.map((role: any, i: number) => (\n <div key={role.name} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n inputId={role.name}\n checked={selectedRoles.includes(role.name)}\n onChange={() => handleCheckboxChange(role.name)}\n />\n <label htmlFor={role.name}> {role.name}</label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nexport default CreateUser;\n"]}
|
|
1
|
+
{"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidBreadcrumb } from \"../../../components/common/SolidBreadcrumb\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { SolidFormStepper } from \"../../../components/common/SolidFormStepper\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useGetrolesQuery } from \"../../../redux/api/roleApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { InputText } from \"primereact/inputtext\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { Password } from \"primereact/password\";\nimport { Toast } from \"primereact/toast\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst CreateUser = ({ data, params }: any) => {\n\n const toast = useRef<Toast>(null);\n const pathname = usePathname();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n\n const [registerPrivate, { isLoading, error: userCreateError, isSuccess, data: user }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isuserUpdating,\n isSuccess: isUpdateuserSuceess,\n isError: isuserUpdateError,\n error: userUpdateError,\n data: updateduser,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, {\n isLoading: isUserDeleted,\n isSuccess: isDeleteUserSuceess,\n isError: isUserDeleteError,\n error: UserDeleteError,\n data: DeletedUser,\n },] = useDeleteUserMutation();\n\n const { data: rolesData } = useGetrolesQuery(\"\");\n // const [\n // createrolebulk,\n // { isLoading, isSuccess, isError, error, data: roles },\n // ] = useCreateuserrolebulkMutation();\n\n useEffect(() => {\n if (data && data.roles) {\n const userRoles = data.roles.map((role: any) => role.name);\n setSelectedRoles(userRoles);\n }\n }, [data]);\n\n const handleCheckboxChange = (roleName: string) => {\n let updatedRoles;\n if (selectedRoles.includes(roleName)) {\n updatedRoles = selectedRoles.filter((name) => name !== roleName);\n } else {\n updatedRoles = [...selectedRoles, roleName];\n }\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched('roles', true); // fake \"touched\"\n formik.setFieldValue('roles', updatedRoles);\n };\n\n const initialValues = {\n fullName: data ? data.fullName : \"\",\n username: data ? data.username : \"\",\n email: data ? data.email : \"\",\n mobile: data ? data.mobile : \"\",\n password: \"\",\n confirmPassword: \"\",\n failedLoginAttempts: data ? data.failedLoginAttempts : 0,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(),\n username: Yup.string()\n .required('Username is required'), // Must be provided\n // .min(3, 'Username must be at least 3 characters long') // Minimum length\n // .max(20, 'Username cannot be longer than 20 characters') // Maximum length\n // .matches(\n // /^[a-zA-Z0-9_.-]*$/,\n // 'Username can only contain letters, numbers, underscores, periods, and hyphens'\n // ) // Allowed characters\n // .matches(\n // /^[a-zA-Z]/,\n // 'Username must start with a letter'\n // ),\n email: Yup\n .string()\n .email(ERROR_MESSAGES.FIELD_INVALID('email address'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Email')),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string()\n .when('password', {\n is: (val: any) => !!val, // only validate if password is filled\n then: (schema) =>\n schema\n .oneOf([Yup.ref('password')], ERROR_MESSAGES.FIELD_MUST_MATCH('Password'))\n .nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),\n failedLoginAttempts: Yup.number()\n .typeError(\"Failed Login Attempts must be a number\")\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n ),\n });\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const showError = async (submit?: boolean) => {\n const errors = await formik.validateForm();\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0 && toast.current) {\n toast.current.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n // sticky: true,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n {errorMessages.map((m: any, index: number) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{m}</span>\n </div>\n ))}\n </div>\n ),\n });\n }\n };\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n toast.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.ERROR,\n detail: errorMessage,\n sticky: true,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n };\n\n // Check and handle errors from each API operation\n if (userCreateError) {\n handleError(userCreateError)\n }\n if (userUpdateError) {\n handleError(userUpdateError)\n }\n\n }, [\n userCreateError, userUpdateError\n ]);\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n if (values.password) {\n userData.password = values.password;\n }\n updateUser({ id: data.id, data: userData });\n\n } else {\n const userData = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n failedLoginAttempts: values.failedLoginAttempts,\n };\n\n registerPrivate(userData)\n }\n },\n });\n\n useEffect(() => {\n if (isSuccess == true || isDeleteUserSuceess === true || isUpdateuserSuceess === true) {\n router.back();\n }\n }, [isSuccess, isDeleteUserSuceess, isUpdateuserSuceess])\n\n return (\n <div className=\"solid-form-wrapper\">\n <Toast ref={toast} />\n <div className=\"solid-form-section\" >\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header\">\n {params.id === \"new\" ? (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Create User</div>\n </div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n <CancelButton />\n </div>\n </>\n ) : (\n <>\n <div className=\"flex align-items-center gap-3\">\n <BackButton />\n <div className=\"form-wrapper-title\">Update User</div>\n </div>\n <div>\n <div className=\"gap-3 flex\">\n {formik.dirty &&\n <Button label=\"Save\" size=\"small\" type=\"submit\" />\n }\n {data &&\n <Button outlined label=\"Delete\" size=\"small\" severity=\"danger\" type=\"button\" onClick={() => deleteUser(data.id)} />\n }\n <CancelButton />\n </div>\n </div>\n </>\n )}\n </div>\n <SolidFormHeader />\n {/* <div className=\"solid-form-stepper\">\n <SolidFormStepper />\n </div> */}\n <div className=\"px-4 py-3 md:p-4 solid-form-content\">\n <div className=\"grid\">\n <div className=\"col-12 lg:col-10 xl:col-8 mx-auto\">\n {/* <p className=\"form-wrapper-heading text-base\">Basic Info</p> */}\n <Panel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"grid formgrid mt-3\">\n <div className=\"field col-12 md:col-6 flex flex-column gap-2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <InputText\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.fullName}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.fullName && formik.errors.fullName,\n })}\n />\n {isFormFieldValid(formik, \"fullName\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.fullName?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-3 md:mt-3\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <InputText\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.username}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.username && formik.errors.username,\n })}\n />\n {isFormFieldValid(formik, \"username\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.username?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <InputText\n type=\"text\"\n id=\"email\"\n name=\"email\"\n autoComplete={\"off\"}\n disabled={data ? true : false}\n onChange={formik.handleChange}\n value={formik.values.email}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.email && formik.errors.email,\n })}\n />\n {isFormFieldValid(formik, \"email\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.email?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <InputText\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete={\"off\"}\n onChange={formik.handleChange}\n value={formik.values.mobile}\n className={classNames(\"\", {\n \"p-invalid\": formik.touched.mobile && formik.errors.mobile,\n })}\n />\n {isFormFieldValid(formik, \"mobile \") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.mobile?.toString()}\n />\n )}\n </div>\n {params.id === \"new\" && <>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 py-4\">\n <label htmlFor=\"Password\" className=\"form-field-label\">\n Password\n </label>\n <Password\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"password\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"password\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.password?.toString()}\n />\n )}\n </div>\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 pb-4 md:pb-0 md:my-4\">\n <label htmlFor=\"Confirm Password\" className=\"form-field-label\">\n Confirm Password\n </label>\n <Password\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n toggleMask\n invalid={isFormFieldValid(formik, \"confirmPassword\")}\n inputClassName=\"w-full\"\n feedback={false}\n />\n {isFormFieldValid(formik, \"confirmPassword\") && (\n <Message\n severity=\"error\"\n text={formik?.errors?.confirmPassword?.toString()}\n />\n )}\n </div>\n </>}\n {params.id !== \"new\" && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-1 mt-4\">\n <label htmlFor=\"failedLoginAttempts\" className=\"form-field-label\">\n Failed Login Attempts\n </label>\n <InputText\n type=\"number\"\n id=\"failedLoginAttempts\"\n name=\"failedLoginAttempts\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n value={formik.values.failedLoginAttempts}\n className={classNames(\"\", {\n \"p-invalid\":\n formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts,\n })}\n />\n {formik.touched.failedLoginAttempts &&\n formik.errors.failedLoginAttempts && (\n <Message\n severity=\"error\"\n text={formik.errors.failedLoginAttempts?.toString()}\n />\n )}\n <small className=\"text-color-secondary\">\n Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin.\n </small>\n </div>\n )}\n </div>\n </Panel>\n\n {/* <Divider /> */}\n {/* <p className=\"form-wrapper-heading text-base\" style={{ fontSize: 16 }}>Roles</p> */}\n\n <Panel toggleable header=\"Roles\" className=\"solid-column-panel mt-5\">\n <div className=\"formgrid grid mt-4\">\n {rolesData?.data?.records && rolesData?.data?.records.map((role: any, i: number) => (\n <div key={role.name} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n inputId={role.name}\n checked={selectedRoles.includes(role.name)}\n onChange={() => handleCheckboxChange(role.name)}\n />\n <label htmlFor={role.name}> {role.name}</label>\n </div>\n ))}\n </div>\n </Panel>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nexport default CreateUser;\n"]}
|
|
@@ -90,6 +90,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
90
90
|
mobile: data ? data.mobile : "",
|
|
91
91
|
password: "",
|
|
92
92
|
confirmPassword: "",
|
|
93
|
+
failedLoginAttempts: data ? data.failedLoginAttempts : 0,
|
|
93
94
|
};
|
|
94
95
|
|
|
95
96
|
const validationSchema = Yup.object({
|
|
@@ -121,6 +122,12 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
121
122
|
otherwise: (schema) => schema.notRequired().nullable(),
|
|
122
123
|
}),
|
|
123
124
|
mobile: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Mobile')),
|
|
125
|
+
failedLoginAttempts: Yup.number()
|
|
126
|
+
.typeError("Failed Login Attempts must be a number")
|
|
127
|
+
.nullable()
|
|
128
|
+
.transform((value, originalValue) =>
|
|
129
|
+
originalValue === "" ? null : value
|
|
130
|
+
),
|
|
124
131
|
});
|
|
125
132
|
|
|
126
133
|
|
|
@@ -219,6 +226,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
219
226
|
email: values.email,
|
|
220
227
|
mobile: values.mobile,
|
|
221
228
|
roles: selectedRoles,
|
|
229
|
+
failedLoginAttempts: values.failedLoginAttempts,
|
|
222
230
|
};
|
|
223
231
|
if (values.password) {
|
|
224
232
|
userData.password = values.password;
|
|
@@ -233,6 +241,7 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
233
241
|
mobile: values.mobile,
|
|
234
242
|
password: values.password,
|
|
235
243
|
roles: selectedRoles,
|
|
244
|
+
failedLoginAttempts: values.failedLoginAttempts,
|
|
236
245
|
};
|
|
237
246
|
|
|
238
247
|
registerPrivate(userData)
|
|
@@ -435,6 +444,36 @@ const CreateUser = ({ data, params }: any) => {
|
|
|
435
444
|
)}
|
|
436
445
|
</div>
|
|
437
446
|
</>}
|
|
447
|
+
{params.id !== "new" && (
|
|
448
|
+
<div className="field col-12 md:col-6 flex flex-column gap-1 mt-4">
|
|
449
|
+
<label htmlFor="failedLoginAttempts" className="form-field-label">
|
|
450
|
+
Failed Login Attempts
|
|
451
|
+
</label>
|
|
452
|
+
<InputText
|
|
453
|
+
type="number"
|
|
454
|
+
id="failedLoginAttempts"
|
|
455
|
+
name="failedLoginAttempts"
|
|
456
|
+
autoComplete="off"
|
|
457
|
+
onChange={formik.handleChange}
|
|
458
|
+
value={formik.values.failedLoginAttempts}
|
|
459
|
+
className={classNames("", {
|
|
460
|
+
"p-invalid":
|
|
461
|
+
formik.touched.failedLoginAttempts &&
|
|
462
|
+
formik.errors.failedLoginAttempts,
|
|
463
|
+
})}
|
|
464
|
+
/>
|
|
465
|
+
{formik.touched.failedLoginAttempts &&
|
|
466
|
+
formik.errors.failedLoginAttempts && (
|
|
467
|
+
<Message
|
|
468
|
+
severity="error"
|
|
469
|
+
text={formik.errors.failedLoginAttempts?.toString()}
|
|
470
|
+
/>
|
|
471
|
+
)}
|
|
472
|
+
<small className="text-color-secondary">
|
|
473
|
+
Your account has been locked due to repeated unsuccessful login attempts. Please contact your system admin.
|
|
474
|
+
</small>
|
|
475
|
+
</div>
|
|
476
|
+
)}
|
|
438
477
|
</div>
|
|
439
478
|
</Panel>
|
|
440
479
|
|
|
@@ -6,6 +6,8 @@ export declare const getSingularAndPlural: (displayName: any) => {
|
|
|
6
6
|
toPluralKebabCase: string;
|
|
7
7
|
toPluralCamelCase: string;
|
|
8
8
|
toCamelCase: any;
|
|
9
|
+
toPlural: string;
|
|
10
|
+
toSingular: string;
|
|
9
11
|
};
|
|
10
12
|
export declare function formikValuestoQueryString(values: any): string;
|
|
11
13
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/helpers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,gBAAiB,IAAI,gBAAgB,IAAI,WAKxE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,MAAM,WAQ/C,CAAC;AAGF,eAAO,MAAM,oBAAoB,gBAAiB,GAAG
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers/helpers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,gBAAiB,IAAI,gBAAgB,IAAI,WAKxE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,MAAM,WAQ/C,CAAC;AAGF,eAAO,MAAM,oBAAoB,gBAAiB,GAAG;;;;;;;;CAmBpD,CAAC;AAYF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,UAQpD"}
|
package/dist/helpers/helpers.js
CHANGED
|
@@ -21,7 +21,9 @@ export var getSingularAndPlural = function (displayName) {
|
|
|
21
21
|
// Get the plural form using pluralize
|
|
22
22
|
var toPluralKebabCase = pluralize(toKebabCase);
|
|
23
23
|
var toPluralCamelCase = pluralize(toCamelCase);
|
|
24
|
-
|
|
24
|
+
var toPlural = pluralize(displayName);
|
|
25
|
+
var toSingular = pluralize(displayName, 1);
|
|
26
|
+
return { toKebabCase: toKebabCase, toSnakeCase: toSnakeCase, toPluralKebabCase: toPluralKebabCase, toPluralCamelCase: toPluralCamelCase, toCamelCase: toCamelCase, toPlural: toPlural, toSingular: toSingular };
|
|
25
27
|
};
|
|
26
28
|
function cleanForQuery(values) {
|
|
27
29
|
// remove files, blobs, data: URIs, null/undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,WAAiB,EAAE,YAAkB;IACvE,IAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAErC,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,MAAc;IAC9C,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAE3B,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAE1D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAGF,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,WAAgB;IACnD,8DAA8D;IAC9D,IAAM,WAAW,GAAQ,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAM,WAAW,GAAQ,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAM,WAAW,GAAQ,SAAS,CAAC,WAAW,CAAC,CAAC;IAGhD,sCAAsC;IACtC,IAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,WAAiB,EAAE,YAAkB;IACvE,IAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAErC,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,MAAc;IAC9C,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAE3B,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAE1D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAGF,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,WAAgB;IACnD,8DAA8D;IAC9D,IAAM,WAAW,GAAQ,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAM,WAAW,GAAQ,SAAS,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAM,WAAW,GAAQ,SAAS,CAAC,WAAW,CAAC,CAAC;IAGhD,sCAAsC;IACtC,IAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAM,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAExC,IAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE7C,OAAO,EAAE,WAAW,aAAA,EAAE,WAAW,aAAA,EAAE,iBAAiB,mBAAA,EAAE,iBAAiB,mBAAA,EAAE,WAAW,aAAA,EAAE,QAAQ,UAAA,EAAE,UAAU,YAAA,EAAE,CAAC;AAC/G,CAAC,CAAC;AAEF,SAAS,aAAa,CAAC,MAAW;IAChC,kDAAkD;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAC,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI;YAAE,OAAO,SAAS,CAAC;QAC7D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAW;IACnD,IAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC","sourcesContent":["\nimport { camelCase, kebabCase, snakeCase } from \"lodash\";\nimport moment from \"moment\";\nimport pluralize from \"pluralize\";\nimport qs from \"qs\";\n\nexport const calculateDaysOfStay = (checkInDate: Date, checkOutDate: Date) => {\n const startDate = moment(checkInDate);\n const endDate = moment(checkOutDate);\n\n return endDate.diff(startDate, \"days\") + 1;\n};\n\nexport const addCommasToAmount = (amount: string) => {\n amount = amount.toString();\n\n const parts = amount.split(\".\");\n\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\n return parts.join(\".\");\n};\n\n\nexport const getSingularAndPlural = (displayName: any) => {\n // Convert display name to kebab-case (lowercase with hyphens)\n const toKebabCase: any = kebabCase(displayName);\n\n const toSnakeCase: any = snakeCase(displayName);\n\n const toCamelCase: any = camelCase(displayName);\n\n\n // Get the plural form using pluralize\n const toPluralKebabCase = pluralize(toKebabCase);\n\n const toPluralCamelCase = pluralize(toCamelCase);\n\n const toPlural = pluralize(displayName);\n\n const toSingular = pluralize(displayName, 1);\n\n return { toKebabCase, toSnakeCase, toPluralKebabCase, toPluralCamelCase, toCamelCase, toPlural, toSingular };\n};\n\nfunction cleanForQuery(values: any) {\n // remove files, blobs, data: URIs, null/undefined\n return JSON.parse(JSON.stringify(values, (k, v) => {\n if (v === null || v === undefined) return undefined;\n if (v instanceof File || v instanceof Blob) return undefined;\n if (typeof v === \"string\" && v.startsWith(\"data:\")) return undefined;\n return v;\n }));\n}\n\nexport function formikValuestoQueryString(values: any) {\n const filtered = cleanForQuery(values);\n return qs.stringify(filtered, {\n encode: true,\n arrayFormat: \"brackets\",\n allowDots: true,\n skipNulls: true,\n });\n}"]}
|
package/dist/helpers/helpers.ts
CHANGED
|
@@ -36,8 +36,11 @@ export const getSingularAndPlural = (displayName: any) => {
|
|
|
36
36
|
|
|
37
37
|
const toPluralCamelCase = pluralize(toCamelCase);
|
|
38
38
|
|
|
39
|
+
const toPlural = pluralize(displayName);
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
const toSingular = pluralize(displayName, 1);
|
|
42
|
+
|
|
43
|
+
return { toKebabCase, toSnakeCase, toPluralKebabCase, toPluralCamelCase, toCamelCase, toPlural, toSingular };
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
function cleanForQuery(values: any) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/helpers/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/helpers/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AA6C1B,KAAK,sBAAsB,GAAG,IAAI,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,aAAa,GAAG,aAAa,CAAC;AAmB3L,eAAO,MAAM,0BAA0B,SAAU,MAAM,aAAa,MAAM,aAAa,CAAC,GAAG,CAAC,YAAW,MAAM,EAAE,SAAa,sBAAsB,cAAoB,MAAM,SAM3K,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAAU,MAAM,gBAAgB,GAAG,EAAE,KAAK,GAAG,SAElF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,IAM/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,SAAU,sBAAsB,cAAa,MAAM,KAAQ,MAAM,EAAE,GAAG,EASxG,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,eAvCT,GAAG,EAAE,KAAK,GAyCjD,CAAC"}
|
package/dist/helpers/registry.js
CHANGED
|
@@ -44,6 +44,7 @@ import { SolidAiInteractionMetadataFieldFormWidget } from "../components/core/fo
|
|
|
44
44
|
import { SolidAiInteractionMessageFieldFormWidget } from "../components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget";
|
|
45
45
|
import { SolidS3FileViewerWidget } from "../components/core/form/fields/widgets/SolidS3FileViewerWidget";
|
|
46
46
|
import DeleteModuleRowAction from "../components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction";
|
|
47
|
+
import hanldeModelSequenceFormViewChange from "../components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler";
|
|
47
48
|
var extensionRegistry = {
|
|
48
49
|
components: {},
|
|
49
50
|
functions: {},
|
|
@@ -240,4 +241,5 @@ registerExtensionFunction("emailFormTypeLoad", hanldeEmailFormTypeLoad);
|
|
|
240
241
|
// TODO: @Jyotsana you need to create an extension function which will be used "onFieldChange"
|
|
241
242
|
// on change of module, apply a where clause on the model & field fields..
|
|
242
243
|
// on change of model, apply a where clause on the field field...
|
|
244
|
+
registerExtensionFunction("modelSequenceFormViewChangeHandler", hanldeModelSequenceFormViewChange);
|
|
243
245
|
//# sourceMappingURL=registry.js.map
|