@solidxai/core-ui 0.1.3 → 0.1.4-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  2. package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
  3. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  4. package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
  5. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  6. package/dist/components/auth/SolidLogin.js +7 -5
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +10 -8
  9. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  10. package/dist/components/common/GeneralSettings.js +48 -47
  11. package/dist/components/common/GeneralSettings.js.map +1 -1
  12. package/dist/components/common/GeneralSettings.tsx +41 -10
  13. package/dist/components/core/common/FilterComponent.js.map +1 -1
  14. package/dist/components/core/common/FilterComponent.tsx +1 -1
  15. package/dist/components/core/common/GroupingComponent.d.ts +54 -0
  16. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
  17. package/dist/components/core/common/GroupingComponent.js +196 -0
  18. package/dist/components/core/common/GroupingComponent.js.map +1 -0
  19. package/dist/components/core/common/GroupingComponent.tsx +452 -0
  20. package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
  21. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  22. package/dist/components/core/common/SolidGlobalSearchElement.js +152 -52
  23. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  24. package/dist/components/core/common/SolidGlobalSearchElement.tsx +212 -35
  25. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
  26. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
  27. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
  28. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
  29. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
  30. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  31. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +17 -28
  32. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  33. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +71 -56
  34. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
  35. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
  36. package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
  37. package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
  38. package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
  39. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
  40. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  41. package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
  42. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  43. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
  44. package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
  45. package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
  46. package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
  47. package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
  48. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
  49. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
  50. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
  51. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
  52. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
  53. package/dist/components/core/form/SolidFormFooter.js +4 -4
  54. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  55. package/dist/components/core/form/SolidFormFooter.tsx +4 -4
  56. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  57. package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
  58. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  59. package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
  60. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
  61. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +317 -157
  63. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  64. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +463 -243
  65. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
  67. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  68. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
  69. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -4
  70. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +220 -33
  72. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
  73. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +167 -36
  74. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  75. package/dist/components/core/kanban/SolidKanbanView.js +13 -12
  76. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  77. package/dist/components/core/kanban/SolidKanbanView.tsx +8 -7
  78. package/dist/components/core/list/SolidListView.d.ts +18 -10
  79. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  80. package/dist/components/core/list/SolidListView.js +176 -177
  81. package/dist/components/core/list/SolidListView.js.map +1 -1
  82. package/dist/components/core/list/SolidListView.tsx +130 -143
  83. package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
  84. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  85. package/dist/components/core/list/SolidListViewConfigure.js +6 -5
  86. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  87. package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
  88. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  89. package/dist/components/core/list/columns/SolidShortTextColumn.js +1 -37
  90. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  91. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +0 -41
  92. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  93. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -5
  94. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  95. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -3
  96. package/dist/components/core/list/listViewRegistry.js.map +1 -1
  97. package/dist/components/core/list/listViewRegistry.ts +1 -2
  98. package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
  99. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
  100. package/dist/components/core/tree/SolidTreeView.js +1179 -0
  101. package/dist/components/core/tree/SolidTreeView.js.map +1 -0
  102. package/dist/components/core/tree/SolidTreeView.tsx +1637 -0
  103. package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
  104. package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
  105. package/dist/components/core/tree/treeViewRegistry.js +17 -0
  106. package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
  107. package/dist/components/core/tree/treeViewRegistry.ts +23 -0
  108. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  109. package/dist/components/core/users/CreateUser.js +19 -6
  110. package/dist/components/core/users/CreateUser.js.map +1 -1
  111. package/dist/components/core/users/CreateUser.tsx +39 -0
  112. package/dist/helpers/helpers.d.ts +2 -0
  113. package/dist/helpers/helpers.d.ts.map +1 -1
  114. package/dist/helpers/helpers.js +3 -1
  115. package/dist/helpers/helpers.js.map +1 -1
  116. package/dist/helpers/helpers.ts +4 -1
  117. package/dist/helpers/registry.d.ts.map +1 -1
  118. package/dist/helpers/registry.js +5 -1
  119. package/dist/helpers/registry.js.map +1 -1
  120. package/dist/helpers/registry.ts +7 -2
  121. package/dist/index.d.ts +3 -1
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +2 -0
  124. package/dist/index.js.map +1 -1
  125. package/dist/index.ts +6 -1
  126. package/dist/resources/globals.css +32 -4
  127. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  128. package/dist/routes/pages/admin/core/ListPage.js +2 -2
  129. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  130. package/dist/routes/pages/admin/core/ListPage.tsx +3 -2
  131. package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
  132. package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
  133. package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
  134. package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
  135. package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
  136. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
  137. package/dist/routes/pages/admin/core/TreePage.js +37 -0
  138. package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
  139. package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
  140. package/dist/routes/solidRoutes.d.ts.map +1 -1
  141. package/dist/routes/solidRoutes.js +2 -0
  142. package/dist/routes/solidRoutes.js.map +1 -1
  143. package/dist/routes/solidRoutes.tsx +3 -1
  144. package/dist/routes/types.d.ts +1 -1
  145. package/dist/routes/types.d.ts.map +1 -1
  146. package/dist/routes/types.js.map +1 -1
  147. package/dist/routes/types.ts +1 -0
  148. package/dist/types/index.d.ts +8 -2
  149. package/dist/types/solid-core.d.ts +40 -0
  150. 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,4CA+axC,CAAC;AAGF,eAAe,UAAU,CAAC"}
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 _r = useState([]), selectedRoles = _r[0], setSelectedRoles = _r[1];
74
- var _s = useRegisterPrivateMutation(), registerPrivate = _s[0], _t = _s[1], isLoading = _t.isLoading, userCreateError = _t.error, isSuccess = _t.isSuccess, user = _t.data;
75
- var _u = useUpdateUserMutation(), updateUser = _u[0], _v = _u[1], isuserUpdating = _v.isLoading, isUpdateuserSuceess = _v.isSuccess, isuserUpdateError = _v.isError, userUpdateError = _v.error, updateduser = _v.data;
76
- var _w = useDeleteUserMutation(), deleteUser = _w[0], _x = _w[1], isUserDeleted = _x.isLoading, isDeleteUserSuceess = _x.isSuccess, isUserDeleteError = _x.isError, UserDeleteError = _x.error, DeletedUser = _x.data;
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() }))] })] })] }) }), _jsx(Panel, { toggleable: true, header: "Roles", className: "solid-column-panel mt-5", children: _jsx("div", { className: "formgrid grid mt-4", children: ((_p = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _p === void 0 ? void 0 : _p.records) && ((_q = rolesData === null || rolesData === void 0 ? void 0 : rolesData.data) === null || _q === void 0 ? void 0 : _q.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)); })) }) })] }) }) })] }) })] }));
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;;;;;;CAgBpD,CAAC;AAYF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,UAQpD"}
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"}
@@ -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
- return { toKebabCase: toKebabCase, toSnakeCase: toSnakeCase, toPluralKebabCase: toPluralKebabCase, toPluralCamelCase: toPluralCamelCase, toCamelCase: toCamelCase };
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;IAGjD,OAAO,EAAE,WAAW,aAAA,EAAE,WAAW,aAAA,EAAE,iBAAiB,mBAAA,EAAE,iBAAiB,mBAAA,EAAC,WAAW,aAAA,EAAE,CAAC;AACxF,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\n return { toKebabCase, toSnakeCase, toPluralKebabCase, toPluralCamelCase,toCamelCase };\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}"]}
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}"]}
@@ -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
- return { toKebabCase, toSnakeCase, toPluralKebabCase, toPluralCamelCase,toCamelCase };
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;AA4C1B,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"}
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"}
@@ -22,7 +22,7 @@ import { DefaultSelectionStaticAutocompleteFormEditWidget, DefaultSelectionStati
22
22
  import { DefaultShortTextFormEditWidget, DefaultShortTextFormViewWidget, MaskedShortTextFormViewWidget, MaskedShortTextFormEditWidget, MaskedShortTextListViewWidget } from "../components/core/form/fields/SolidShortTextField";
23
23
  import { DefaultRelationManyToOneFormEditWidget, DefaultRelationManyToOneFormViewWidget, PseudoRelationManyToOneFormWidget } from "../components/core/form/fields/relations/SolidRelationManyToOneField";
24
24
  import { DefaultRelationOneToManyFormEditWidget, DefaultRelationOneToManyFormViewWidget, PseudoRelationOneToManyFormWidget } from "../components/core/form/fields/relations/SolidRelationOneToManyField";
25
- import { DefaultRelationManyToManyAutoCompleteFormEditWidget, DefaultRelationManyToManyCheckBoxFormEditWidget } from "../components/core/form/fields/relations/SolidRelationManyToManyField";
25
+ import { DefaultRelationManyToManyAutoCompleteFormEditWidget, DefaultRelationManyToManyCheckBoxFormEditWidget, DefaultRelationManyToManyListFormEditWidget } from "../components/core/form/fields/relations/SolidRelationManyToManyField";
26
26
  import { DefaultBooleanListWidget } from "../components/core/list/columns/SolidBooleanColumn";
27
27
  import { DefaultTextListWidget } from "../components/core/list/columns/SolidShortTextColumn";
28
28
  import { DefaultMediaSingleListWidget } from "../components/core/list/columns/SolidMediaSingleColumn";
@@ -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: {},
@@ -164,6 +165,8 @@ registerExtensionComponent("PseudoRelationManyToOneFormWidget", PseudoRelationMa
164
165
  registerExtensionComponent("DefaultRelationManyToManyAutoCompleteFormEditWidget", DefaultRelationManyToManyAutoCompleteFormEditWidget, []);
165
166
  // - relation.many2many (checkbox)
166
167
  registerExtensionComponent("DefaultRelationManyToManyCheckBoxFormEditWidget", DefaultRelationManyToManyCheckBoxFormEditWidget, []);
168
+ // - relation.many2many (list)
169
+ registerExtensionComponent("DefaultRelationManyToManyListFormEditWidget", DefaultRelationManyToManyListFormEditWidget, []);
167
170
  // - relation.one2many
168
171
  registerExtensionComponent("DefaultRelationOneToManyFormEditWidget", DefaultRelationOneToManyFormEditWidget, []);
169
172
  registerExtensionComponent("PseudoRelationOneToManyFormWidget", PseudoRelationOneToManyFormWidget, []);
@@ -240,4 +243,5 @@ registerExtensionFunction("emailFormTypeLoad", hanldeEmailFormTypeLoad);
240
243
  // TODO: @Jyotsana you need to create an extension function which will be used "onFieldChange"
241
244
  // on change of module, apply a where clause on the model & field fields..
242
245
  // on change of model, apply a where clause on the field field...
246
+ registerExtensionFunction("modelSequenceFormViewChangeHandler", hanldeModelSequenceFormViewChange);
243
247
  //# sourceMappingURL=registry.js.map