@citizenplatform/core 1.0.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.
Files changed (293) hide show
  1. package/README.md +32 -0
  2. package/dist/index.js +6 -0
  3. package/dist/index10.js +110 -0
  4. package/dist/index10.js.map +1 -0
  5. package/dist/index100.js +10 -0
  6. package/dist/index100.js.map +1 -0
  7. package/dist/index101.js +31 -0
  8. package/dist/index101.js.map +1 -0
  9. package/dist/index102.js +165 -0
  10. package/dist/index102.js.map +1 -0
  11. package/dist/index103.js +48 -0
  12. package/dist/index103.js.map +1 -0
  13. package/dist/index104.js +8 -0
  14. package/dist/index104.js.map +1 -0
  15. package/dist/index105.js +14 -0
  16. package/dist/index105.js.map +1 -0
  17. package/dist/index106.js +8 -0
  18. package/dist/index106.js.map +1 -0
  19. package/dist/index107.js +7 -0
  20. package/dist/index107.js.map +1 -0
  21. package/dist/index108.js +16 -0
  22. package/dist/index108.js.map +1 -0
  23. package/dist/index109.js +7 -0
  24. package/dist/index109.js.map +1 -0
  25. package/dist/index11.js +97 -0
  26. package/dist/index11.js.map +1 -0
  27. package/dist/index110.js +22 -0
  28. package/dist/index110.js.map +1 -0
  29. package/dist/index111.js +7 -0
  30. package/dist/index111.js.map +1 -0
  31. package/dist/index112.js +9 -0
  32. package/dist/index112.js.map +1 -0
  33. package/dist/index113.js +20 -0
  34. package/dist/index113.js.map +1 -0
  35. package/dist/index114.js +56 -0
  36. package/dist/index114.js.map +1 -0
  37. package/dist/index115.js +73 -0
  38. package/dist/index115.js.map +1 -0
  39. package/dist/index116.js +20 -0
  40. package/dist/index116.js.map +1 -0
  41. package/dist/index117.js +26 -0
  42. package/dist/index117.js.map +1 -0
  43. package/dist/index118.js +2 -0
  44. package/dist/index119.js +3 -0
  45. package/dist/index12.js +22 -0
  46. package/dist/index12.js.map +1 -0
  47. package/dist/index120.js +22 -0
  48. package/dist/index120.js.map +1 -0
  49. package/dist/index121.js +149 -0
  50. package/dist/index121.js.map +1 -0
  51. package/dist/index122.js +20 -0
  52. package/dist/index122.js.map +1 -0
  53. package/dist/index123.js +9 -0
  54. package/dist/index123.js.map +1 -0
  55. package/dist/index124.js +9 -0
  56. package/dist/index124.js.map +1 -0
  57. package/dist/index125.js +63 -0
  58. package/dist/index125.js.map +1 -0
  59. package/dist/index126.js +24 -0
  60. package/dist/index126.js.map +1 -0
  61. package/dist/index127.js +9 -0
  62. package/dist/index127.js.map +1 -0
  63. package/dist/index128.js +11 -0
  64. package/dist/index128.js.map +1 -0
  65. package/dist/index129.js +10 -0
  66. package/dist/index129.js.map +1 -0
  67. package/dist/index13.js +18 -0
  68. package/dist/index13.js.map +1 -0
  69. package/dist/index130.js +254 -0
  70. package/dist/index130.js.map +1 -0
  71. package/dist/index131.js +25 -0
  72. package/dist/index131.js.map +1 -0
  73. package/dist/index132.js +250 -0
  74. package/dist/index132.js.map +1 -0
  75. package/dist/index133.js +20 -0
  76. package/dist/index133.js.map +1 -0
  77. package/dist/index134.js +13 -0
  78. package/dist/index134.js.map +1 -0
  79. package/dist/index135.js +15 -0
  80. package/dist/index135.js.map +1 -0
  81. package/dist/index136.js +117 -0
  82. package/dist/index136.js.map +1 -0
  83. package/dist/index137.js +13 -0
  84. package/dist/index137.js.map +1 -0
  85. package/dist/index138.js +22 -0
  86. package/dist/index138.js.map +1 -0
  87. package/dist/index139.js +26 -0
  88. package/dist/index139.js.map +1 -0
  89. package/dist/index14.js +11 -0
  90. package/dist/index14.js.map +1 -0
  91. package/dist/index140.js +20 -0
  92. package/dist/index140.js.map +1 -0
  93. package/dist/index141.js +22 -0
  94. package/dist/index141.js.map +1 -0
  95. package/dist/index142.js +12 -0
  96. package/dist/index142.js.map +1 -0
  97. package/dist/index143.js +26 -0
  98. package/dist/index143.js.map +1 -0
  99. package/dist/index144.js +56 -0
  100. package/dist/index144.js.map +1 -0
  101. package/dist/index145.js +12 -0
  102. package/dist/index145.js.map +1 -0
  103. package/dist/index146.js +212 -0
  104. package/dist/index146.js.map +1 -0
  105. package/dist/index147.js +4 -0
  106. package/dist/index148.js +5 -0
  107. package/dist/index149.js +7 -0
  108. package/dist/index15.js +192 -0
  109. package/dist/index15.js.map +1 -0
  110. package/dist/index16.js +24 -0
  111. package/dist/index16.js.map +1 -0
  112. package/dist/index17.js +14 -0
  113. package/dist/index17.js.map +1 -0
  114. package/dist/index18.js +54 -0
  115. package/dist/index18.js.map +1 -0
  116. package/dist/index19.js +99 -0
  117. package/dist/index19.js.map +1 -0
  118. package/dist/index2.js +13 -0
  119. package/dist/index20.js +10 -0
  120. package/dist/index20.js.map +1 -0
  121. package/dist/index21.js +18 -0
  122. package/dist/index21.js.map +1 -0
  123. package/dist/index22.js +9 -0
  124. package/dist/index22.js.map +1 -0
  125. package/dist/index23.js +67 -0
  126. package/dist/index23.js.map +1 -0
  127. package/dist/index24.js +13 -0
  128. package/dist/index24.js.map +1 -0
  129. package/dist/index25.js +64 -0
  130. package/dist/index25.js.map +1 -0
  131. package/dist/index26.js +84 -0
  132. package/dist/index26.js.map +1 -0
  133. package/dist/index27.js +12 -0
  134. package/dist/index27.js.map +1 -0
  135. package/dist/index28.js +41 -0
  136. package/dist/index28.js.map +1 -0
  137. package/dist/index29.js +10 -0
  138. package/dist/index29.js.map +1 -0
  139. package/dist/index3.js +11 -0
  140. package/dist/index3.js.map +1 -0
  141. package/dist/index30.js +10 -0
  142. package/dist/index30.js.map +1 -0
  143. package/dist/index31.js +46 -0
  144. package/dist/index31.js.map +1 -0
  145. package/dist/index32.js +273 -0
  146. package/dist/index32.js.map +1 -0
  147. package/dist/index33.js +49 -0
  148. package/dist/index33.js.map +1 -0
  149. package/dist/index34.js +16 -0
  150. package/dist/index34.js.map +1 -0
  151. package/dist/index35.js +24 -0
  152. package/dist/index35.js.map +1 -0
  153. package/dist/index36.js +61 -0
  154. package/dist/index36.js.map +1 -0
  155. package/dist/index37.js +63 -0
  156. package/dist/index37.js.map +1 -0
  157. package/dist/index38.js +12 -0
  158. package/dist/index38.js.map +1 -0
  159. package/dist/index39.js +26 -0
  160. package/dist/index39.js.map +1 -0
  161. package/dist/index4.js +9 -0
  162. package/dist/index4.js.map +1 -0
  163. package/dist/index40.js +55 -0
  164. package/dist/index40.js.map +1 -0
  165. package/dist/index41.js +48 -0
  166. package/dist/index41.js.map +1 -0
  167. package/dist/index42.js +6 -0
  168. package/dist/index42.js.map +1 -0
  169. package/dist/index43.js +13 -0
  170. package/dist/index43.js.map +1 -0
  171. package/dist/index44.js +10 -0
  172. package/dist/index44.js.map +1 -0
  173. package/dist/index45.js +40 -0
  174. package/dist/index45.js.map +1 -0
  175. package/dist/index46.js +71 -0
  176. package/dist/index46.js.map +1 -0
  177. package/dist/index47.js +10 -0
  178. package/dist/index47.js.map +1 -0
  179. package/dist/index48.js +44 -0
  180. package/dist/index48.js.map +1 -0
  181. package/dist/index49.js +117 -0
  182. package/dist/index49.js.map +1 -0
  183. package/dist/index5.js +6 -0
  184. package/dist/index5.js.map +1 -0
  185. package/dist/index50.js +14 -0
  186. package/dist/index50.js.map +1 -0
  187. package/dist/index51.js +16 -0
  188. package/dist/index51.js.map +1 -0
  189. package/dist/index52.js +28 -0
  190. package/dist/index52.js.map +1 -0
  191. package/dist/index53.js +36 -0
  192. package/dist/index53.js.map +1 -0
  193. package/dist/index54.js +25 -0
  194. package/dist/index54.js.map +1 -0
  195. package/dist/index55.js +44 -0
  196. package/dist/index55.js.map +1 -0
  197. package/dist/index56.js +160 -0
  198. package/dist/index56.js.map +1 -0
  199. package/dist/index57.js +77 -0
  200. package/dist/index57.js.map +1 -0
  201. package/dist/index58.js +14 -0
  202. package/dist/index58.js.map +1 -0
  203. package/dist/index59.js +38 -0
  204. package/dist/index59.js.map +1 -0
  205. package/dist/index6.js +14 -0
  206. package/dist/index6.js.map +1 -0
  207. package/dist/index60.js +15 -0
  208. package/dist/index60.js.map +1 -0
  209. package/dist/index61.js +12 -0
  210. package/dist/index61.js.map +1 -0
  211. package/dist/index62.js +19 -0
  212. package/dist/index62.js.map +1 -0
  213. package/dist/index63.js +20 -0
  214. package/dist/index63.js.map +1 -0
  215. package/dist/index64.js +24 -0
  216. package/dist/index64.js.map +1 -0
  217. package/dist/index65.js +12 -0
  218. package/dist/index65.js.map +1 -0
  219. package/dist/index66.js +25 -0
  220. package/dist/index66.js.map +1 -0
  221. package/dist/index67.js +16 -0
  222. package/dist/index67.js.map +1 -0
  223. package/dist/index68.js +130 -0
  224. package/dist/index68.js.map +1 -0
  225. package/dist/index69.js +32 -0
  226. package/dist/index69.js.map +1 -0
  227. package/dist/index7.js +41 -0
  228. package/dist/index7.js.map +1 -0
  229. package/dist/index70.js +8 -0
  230. package/dist/index70.js.map +1 -0
  231. package/dist/index71.js +122 -0
  232. package/dist/index71.js.map +1 -0
  233. package/dist/index72.js +35 -0
  234. package/dist/index72.js.map +1 -0
  235. package/dist/index73.js +14 -0
  236. package/dist/index73.js.map +1 -0
  237. package/dist/index74.js +13 -0
  238. package/dist/index74.js.map +1 -0
  239. package/dist/index75.js +42 -0
  240. package/dist/index75.js.map +1 -0
  241. package/dist/index76.js +66 -0
  242. package/dist/index76.js.map +1 -0
  243. package/dist/index77.js +10 -0
  244. package/dist/index77.js.map +1 -0
  245. package/dist/index78.js +17 -0
  246. package/dist/index78.js.map +1 -0
  247. package/dist/index79.js +9 -0
  248. package/dist/index79.js.map +1 -0
  249. package/dist/index8.js +6 -0
  250. package/dist/index8.js.map +1 -0
  251. package/dist/index80.js +21 -0
  252. package/dist/index80.js.map +1 -0
  253. package/dist/index81.js +21 -0
  254. package/dist/index81.js.map +1 -0
  255. package/dist/index82.js +21 -0
  256. package/dist/index82.js.map +1 -0
  257. package/dist/index83.js +21 -0
  258. package/dist/index83.js.map +1 -0
  259. package/dist/index84.js +21 -0
  260. package/dist/index84.js.map +1 -0
  261. package/dist/index85.js +21 -0
  262. package/dist/index85.js.map +1 -0
  263. package/dist/index86.js +21 -0
  264. package/dist/index86.js.map +1 -0
  265. package/dist/index87.js +219 -0
  266. package/dist/index87.js.map +1 -0
  267. package/dist/index88.js +12 -0
  268. package/dist/index88.js.map +1 -0
  269. package/dist/index89.js +15 -0
  270. package/dist/index89.js.map +1 -0
  271. package/dist/index9.js +39 -0
  272. package/dist/index9.js.map +1 -0
  273. package/dist/index90.js +55 -0
  274. package/dist/index90.js.map +1 -0
  275. package/dist/index91.js +38 -0
  276. package/dist/index91.js.map +1 -0
  277. package/dist/index92.js +52 -0
  278. package/dist/index92.js.map +1 -0
  279. package/dist/index93.js +12 -0
  280. package/dist/index93.js.map +1 -0
  281. package/dist/index94.js +15 -0
  282. package/dist/index94.js.map +1 -0
  283. package/dist/index95.js +28 -0
  284. package/dist/index95.js.map +1 -0
  285. package/dist/index96.js +111 -0
  286. package/dist/index96.js.map +1 -0
  287. package/dist/index97.js +9 -0
  288. package/dist/index97.js.map +1 -0
  289. package/dist/index98.js +38 -0
  290. package/dist/index98.js.map +1 -0
  291. package/dist/index99.js +8 -0
  292. package/dist/index99.js.map +1 -0
  293. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index133.js","names":[],"sources":["../src/libs/shared/internationalisation/i18n.ts"],"sourcesContent":["import i18n from \"i18next\";\r\n\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nimport LanguageDetector from \"i18next-browser-languagedetector\"; \r\nimport apiClient from \"../../core/api/apiClient\";\r\nimport HttpBackend from \"i18next-http-backend\";\r\nimport Logger from \"utils/loggers\";\r\n\r\ntype TranslationResource = Record<\r\n string,\r\n string\r\n>;\r\n\r\ni18n\r\n .use(HttpBackend)\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n fallbackLng: \"en\",\r\n\r\n supportedLngs: [\r\n \"en\",\r\n \"hi\",\r\n ],\r\n\r\n ns: [\"translation\"],\r\n\r\n defaultNS: \"translation\",\r\n\r\n /**\r\n * Local translation files\r\n */\r\n\r\n backend: {\r\n loadPath:\r\n \"/locales/{{lng}}/{{ns}}.json\",\r\n },\r\n\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n\r\n react: {\r\n useSuspense: true,\r\n },\r\n });\r\n\r\n/**\r\n * Future API Translation Support\r\n */\r\n\r\nexport async function loadTranslations(\r\n lang: string\r\n) {\r\n try {\r\n /**\r\n * Future API integration\r\n */\r\n\r\n const response =\r\n await apiClient.get(\r\n \"/translations\",\r\n {\r\n params: { lang },\r\n }\r\n );\r\n\r\n const translations: TranslationResource =\r\n response.data;\r\n\r\n i18n.addResourceBundle(\r\n lang,\r\n \"translation\",\r\n translations,\r\n true,\r\n true\r\n );\r\n } catch (error) {\r\n /**\r\n * Local translations already loaded\r\n * by i18next-http-backend\r\n */\r\n\r\n Logger.error(\r\n `[i18n] API translation load failed for \"${lang}\"`,\r\n error\r\n );\r\n }\r\n}\r\n\r\nexport default i18n;"],"mappings":";;;;;;AAcA,EACG,IAAI,CAAW,CAAC,CAChB,IAAI,CAAgB,CAAC,CACrB,IAAI,CAAgB,CAAC,CACrB,KAAK;CACJ,aAAa;CAEb,eAAe,CACb,MACA,IACF;CAEA,IAAI,CAAC,aAAa;CAElB,WAAW;CAMX,SAAS,EACP,UACE,+BACJ;CAEA,eAAe,EACb,aAAa,GACf;CAEA,OAAO,EACL,aAAa,GACf;AACF,CAAC;AA6CH,IAAA,IAAe"}
@@ -0,0 +1,13 @@
1
+ import e from "dayjs";
2
+ //#region src/libs/core/utils/dateUtilities.ts
3
+ var t = e(), n = (t) => e(t), r = {
4
+ day: "day",
5
+ month: "month",
6
+ months: "months",
7
+ days: "days",
8
+ year: "year"
9
+ };
10
+ //#endregion
11
+ export { n as customDate, t as customDateObject, r as dayConstant };
12
+
13
+ //# sourceMappingURL=index134.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index134.js","names":[],"sources":["../src/libs/core/utils/dateUtilities.ts"],"sourcesContent":["import { Constants } from \"constants/commonConstants\";\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nexport const getDefaultMaximumDate = (format: string, date?: Dayjs | string | number): string => {\r\n return dayjs(date).format(format);\r\n}\r\n\r\nexport const getDefaultMinimumDate = (format: string, date?: Dayjs): string => {\r\n const today = dayjs();\r\n if (date) {\r\n return dayjs(date).format(format)\r\n }\r\n\r\n return today.subtract(150, 'year').format(format);\r\n}\r\nconst getDateAsPerFormat = (\r\n date: Date | string | undefined | Dayjs,\r\n dateFormat: string\r\n) => (date ? dayjs(date).format(dateFormat) : \"\");\r\n\r\nconst formatDate = (date: string, time?: string) => {\r\n const d = new Date(date);\r\n const day = String(d.getDate()).padStart(2, \"0\");\r\n const month = String(d.getMonth() + 1).padStart(2, \"0\"); // months are 0-indexed\r\n const year = d.getFullYear();\r\n return `${day}-${month}-${year}T${time}`;\r\n};\r\n\r\nconst customDateObject = dayjs()\r\n\r\nconst customDate = (date: string) => {\r\n return dayjs(date)\r\n}\r\n//Convert any date to Dayjs safely\r\nexport const toDayjs = (date?: string | Date | Dayjs): Dayjs | null => {\r\n if (!date) return null;\r\n\r\n const parsed = dayjs(date);\r\n return parsed.isValid() ? parsed : null;\r\n};\r\n\r\n//Get start of unit (day, month, year)\r\n\r\nexport const startDate = (\r\n date?: string | Date | Dayjs,\r\n unit: dayjs.OpUnitType = \"day\"\r\n): Dayjs | undefined => {\r\n const parsed = toDayjs(date);\r\n return parsed ? parsed.startOf(unit) : undefined;\r\n};\r\n\r\n//Add time to date\r\n\r\nexport const addToDate = (\r\n date?: string | Date | Dayjs,\r\n value: number = 0,\r\n unit: dayjs.ManipulateType = \"day\"\r\n): Dayjs | undefined => {\r\n const parsed = toDayjs(date);\r\n return parsed ? parsed.add(value, unit) : undefined;\r\n};\r\n\r\n// Compare two dates\r\nexport const isBeforeDate = (\r\n date1?: string | Date | Dayjs,\r\n date2?: string | Date | Dayjs\r\n): boolean => {\r\n const d1 = toDayjs(date1);\r\n const d2 = toDayjs(date2);\r\n\r\n if (!d1 || !d2) return false;\r\n return d1.isBefore(d2);\r\n};\r\n\r\nexport const getDateFromServerDate = (serverdate?: string) => {\r\n if (!serverdate) return \"\";\r\n const date = dayjs(serverdate);\r\n if (!date.isValid()) return \"\";\r\n return date.format(Constants.DATE_TIME_FORMATE.CLIENT);\r\n}\r\n\r\n //Format time to server format (HH:mm)\r\n\r\nexport const formatToServerTime = (\r\n time?: string | Date | Dayjs\r\n): string | undefined => {\r\n if (!time) return undefined;\r\n\r\n const parsed = dayjs(time);\r\n return parsed.isValid() ? parsed.format(\"HH:mm\") : undefined;\r\n};\r\n\r\nexport const formatToHoursLabel = (\r\n time?: string | Date | Dayjs\r\n): string => {\r\n if (!time) return \"0 Hours\";\r\n\r\n const parsed = dayjs(time);\r\n if (!parsed.isValid()) return \"0 Hours\";\r\n\r\n return `${parsed.hour()} Hours`;\r\n};\r\n\r\nconst dayConstant = {\r\n day: \"day\",\r\n month: \"month\",\r\n months: \"months\",\r\n days: \"days\",\r\n year: \"year\",\r\n} as const \r\n \r\n \r\nexport { customDate, customDateObject, dayConstant, formatDate, getDateAsPerFormat };\r\n \r\n"],"mappings":";;AA2BA,IAAM,IAAmB,EAAM,GAEzB,KAAc,MACX,EAAM,CAAI,GAwEb,IAAc;CAClB,KAAK;CACL,OAAO;CACP,QAAQ;CACR,MAAM;CACN,MAAM;AACR"}
@@ -0,0 +1,15 @@
1
+ import "./index133.js";
2
+ import "./index134.js";
3
+ import "./index141.js";
4
+ //#region src/libs/core/utils/commonFunctions.ts
5
+ function e(e, t, n) {
6
+ e[t] = n;
7
+ }
8
+ function t(e, t) {
9
+ return t.split(".").reduce((e, t) => t in e ? e[t] : t in e.fieldsName ? e.fieldsName[t] : e, e);
10
+ }
11
+ var n = (e) => typeof e == "boolean" ? e : Array.isArray(e) ? e.every(n) : typeof e == "object" && e ? Object.values(e).every(n) : !1;
12
+ //#endregion
13
+ export { n as flattenValidity, t as getNestedValue, e as setStateObjValue };
14
+
15
+ //# sourceMappingURL=index135.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index135.js","names":[],"sources":["../src/libs/core/utils/commonFunctions.ts"],"sourcesContent":["import { CommonAddressFields } from \"constants/commonConstants\";\r\nimport { MenuTextColorEnum } from \"libs/shared/enums/common-enums\";\r\nimport type { CommonAddressFieldsTypesDisplay, DTO, FieldObject, GridRowData, MasterResponseDataType } from \"../../shared/types/common-types\";\r\nimport { sharedFormActionNames } from \"./sharedFormActions\";\r\nimport i18n from \"internationalisation/i18n\";\r\nimport { MASTER_DATA_KEYS } from \"constants/masterCodes\";\r\nimport type { StepConfig } from \"ui/stepper/types/stepperTypes\";\r\nimport { customDateObject } from \"./dateUtilities\";\r\n\r\nexport function setStateObjValue<T extends FieldObject | DTO, K extends keyof T>(\r\n state: T,\r\n key: K,\r\n value: T[K]\r\n): void {\r\n state[key] = value;\r\n}\r\n\r\nexport function constructParentSliceName(sliceName: string, parentSliceName: string = \"\"): string {\r\n return parentSliceName ? `${parentSliceName}.${sliceName}` : sliceName;\r\n}\r\n\r\nexport function getNestedValue<T>(obj: Record<string, unknown> | DTO, path: string) {\r\n const keys = path.split(\".\");\r\n\r\n const returnState = keys.reduce((acc: Record<string, unknown> | DTO, key: string) => {\r\n if (key in acc) {\r\n return (acc as Record<string, DTO>)[key] as DTO;\r\n } else if (key in (acc as DTO).fieldsName) {\r\n return (acc as DTO).fieldsName[key] as DTO;\r\n } else return acc;\r\n }, obj);\r\n\r\n return returnState as T;\r\n}\r\n\r\nexport function getBaseDTO(...intialArgsArr: unknown[]): DTO {\r\n return {\r\n submitJson: {},\r\n displayJson: {},\r\n isValidJson: {},\r\n fieldError: {},\r\n helperText: {},\r\n dtoName: \"\",\r\n defaultsRules: {},\r\n fieldsName: {},\r\n initialArgs: intialArgsArr ?? [],\r\n menuTextColor: MenuTextColorEnum.INHERIT\r\n };\r\n}\r\n\r\nexport const toLocaleString = (value: string | number) => {\r\n return value.toLocaleString();\r\n}\r\n\r\nexport const getSelectInputFieldName = (name: string): string => {\r\n return name.split(\"-\")?.[0] ?? \"\"\r\n}\r\n\r\n/**\r\n * Create concat address using display data.\r\n *\r\n * @param {GridRowData} addressDisplay - Address Display Data\r\n * @returns {string} Concanated Address\r\n */\r\nexport const getConcatAddress = (addressDisplay: CommonAddressFieldsTypesDisplay) => {\r\n const fields = CommonAddressFields;\r\n const order = [fields.houseNo, fields.streetName, fields.colony, fields.village, fields.subDistrict, fields.district, fields.state, fields.pincode, fields.country, fields.other];\r\n const concatAddress = order.map((key) => addressDisplay[key]).join(\" \");\r\n return concatAddress.trim();\r\n};\r\n\r\nexport const getOnChangeActionType = (rootSliceName: string) => {\r\n return `${rootSliceName}/${sharedFormActionNames.ON_CHANGE_FIELD}`\r\n}\r\n\r\n/**\r\n * useful to get the value key from the cd key\r\n * @param codeKey \r\n * @param suffix \r\n * @returns value key\r\n */\r\nexport const getValueKey = <T extends string, S extends string = \"Cd\">(codeKey: T, suffix: S = \"Cd\" as S) => {\r\n return codeKey.slice(0, -suffix.length);\r\n};\r\n\r\nexport const filterRecordById = <T extends GridRowData>(row: T, key: string = \"id\") => (obj: T) => obj?.[key] !== row?.[key];\r\n\r\nexport function concatenateFullName<T extends {\r\n firstName?: string | null;\r\n middleName?: string | null;\r\n lastName?: string | null;\r\n}>(data: T): string {\r\n const { firstName, middleName, lastName } = data;\r\n let fullName = \"\";\r\n\r\n for (const name of [firstName, middleName, lastName]) {\r\n const trimmed = name?.trim();\r\n if (trimmed) {\r\n fullName += fullName ? ` ${trimmed}` : trimmed;\r\n }\r\n }\r\n\r\n return fullName;\r\n}\r\n\r\nexport const getTranslation = () => {\r\n return i18n.resolvedLanguage || i18n.language || 'en'\r\n}\r\n\r\nexport const fieldsManager = (dto: DTO, fields: string[]) => {\r\n const { fieldError, isValidJson, helperText, submitJson, displayJson } = dto;\r\n\r\n fields.forEach((field) => {\r\n setStateObjValue(fieldError, field, \"\");\r\n setStateObjValue(isValidJson, field, true);\r\n setStateObjValue(helperText, field, \"\");\r\n delete submitJson[field];\r\n delete displayJson[field];\r\n });\r\n};\r\n\r\n\r\nexport const generateLookupArray = (length: number): MasterResponseDataType[] => {\r\n return Array.from({ length }, (_, i) => ({\r\n [MASTER_DATA_KEYS.CODE]: i + 1,\r\n [MASTER_DATA_KEYS.VALUE]: `${i + 1}`,\r\n id: i + 1,\r\n selectoptiontitle: `${i + 1}`,\r\n }));\r\n}\r\n\r\nexport function reIndex<T extends { id: number }>(list: T[]) {\r\n return list.map((item, index) => ({ ...item, id: index + 1 }));\r\n}\r\n\r\nexport function injectIntoStepCallback(prev: StepConfig[], dtoName: string, newStep: StepConfig, position: \"start\" | \"end\" | number = \"end\", isSection: boolean = false) {\r\n const getUpdatedMenuList = (steps: StepConfig[], newStep: StepConfig): StepConfig[] => {\r\n let updatedMenuList: StepConfig[];\r\n\r\n if (position === \"start\") {\r\n updatedMenuList = [newStep, ...steps];\r\n } else if (position === \"end\") {\r\n updatedMenuList = [...steps, newStep];\r\n } else {\r\n const targetIndex = Math.max(0, Math.min(position, steps.length));\r\n\r\n updatedMenuList = [...steps];\r\n updatedMenuList.splice(targetIndex, 0, newStep);\r\n }\r\n\r\n return reIndex(updatedMenuList);\r\n };\r\n if (isSection) {\r\n return prev.map((step: StepConfig) => {\r\n if (step.dtoName === dtoName) {\r\n return getUpdatedMenuList(step.sections ?? [], newStep);\r\n }\r\n return step;\r\n }) as StepConfig[];\r\n }\r\n\r\n return getUpdatedMenuList(prev, newStep);\r\n\r\n}\r\n\r\nexport function removeFromStepsCallback(prev: StepConfig[], dtoName: string, isSection: boolean = false) {\r\n const filterList = (steps: StepConfig[]) => {\r\n return reIndex(steps.filter((step: StepConfig) => step.dtoName !== dtoName));\r\n };\r\n\r\n if (isSection) {\r\n return prev.map((step: StepConfig) => {\r\n if (step.dtoName === dtoName) {\r\n return filterList(step.sections ?? []);\r\n }\r\n\r\n return step;\r\n }) as StepConfig[];\r\n }\r\n\r\n return filterList(prev);\r\n}\r\nexport const getModuleNumber = (loginId: string | number) => {\r\n const timestamp = customDateObject.format('YYYYMMDDHHmmss');\r\n const randomSuffix = Math.floor(Math.random() * 100); // 2 random digits\r\n return `${loginId}${timestamp}${randomSuffix}`;\r\n}\r\n\r\n\r\n\r\n//Works for booleans, arrays, and nested objects\r\nexport const flattenValidity = (value: unknown): boolean => {\r\n if (typeof value === \"boolean\") {\r\n return value; // base case\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(flattenValidity); // check each element recursively\r\n }\r\n if (typeof value === \"object\" && value !== null) {\r\n return Object.values(value).every(flattenValidity); // check each field recursively\r\n }\r\n return false; // if unexpected type (string, number etc.)\r\n};"],"mappings":";;;;AASA,SAAgB,EACd,GACA,GACA,GACM;CACN,EAAM,KAAO;AACf;AAMA,SAAgB,EAAkB,GAAoC,GAAc;CAWlF,OAVa,EAAK,MAAM,GAEJ,CAAA,CAAK,QAAQ,GAAoC,MAC/D,KAAO,IACD,EAA4B,KAC3B,KAAQ,EAAY,aACrB,EAAY,WAAW,KACnB,GACb,CAEI;AACT;AA8JA,IAAa,KAAmB,MACxB,OAAO,KAAU,YACV,IAEP,MAAM,QAAQ,CAAK,IACZ,EAAM,MAAM,CAAe,IAElC,OAAO,KAAU,YAAY,IACtB,OAAO,OAAO,CAAK,CAAC,CAAC,MAAM,CAAe,IAE9C"}
@@ -0,0 +1,117 @@
1
+ import { FieldEnum as e } from "./index129.js";
2
+ import { customDate as t, customDateObject as n, dayConstant as r } from "./index134.js";
3
+ import i from "i18next";
4
+ import a from "dayjs";
5
+ //#region src/libs/core/utils/validateFields.ts
6
+ function o(e, t, n, r, o, g) {
7
+ let _ = o || i.t, y = t;
8
+ if (!n) return h(e, y, "", "");
9
+ if (n.customError) return h(e, t, n.customError, n.type);
10
+ let x = {
11
+ fieldName: e,
12
+ fieldLabel: b(n, e, _),
13
+ t: _
14
+ };
15
+ if (v(n.type) && y) {
16
+ let t = a(String(y), n.serverFormat, !0);
17
+ if (!t.isValid()) return h(e, y, _("validation.invalid_input", { format: n.clientFormat }), n.type);
18
+ y = t.format(n.serverFormat);
19
+ }
20
+ let S = [
21
+ c,
22
+ l,
23
+ u,
24
+ d,
25
+ f,
26
+ p,
27
+ m,
28
+ s
29
+ ];
30
+ g && S.push(g);
31
+ for (let t of S) {
32
+ let r = t(y, n, x);
33
+ if (r) return h(e, y, r, n.type);
34
+ }
35
+ return h(e, y, "", n.type);
36
+ }
37
+ var s = (e, t) => t.customValidation?.(e), c = (e, t, { t: n, fieldLabel: r }) => {
38
+ if (t.required && _(e, t.type)) return n("validation.required", { field: r });
39
+ }, l = (t, n, { t: r, fieldName: i, fieldLabel: a }) => {
40
+ if (!_(t, n.type)) {
41
+ if ((n.type === e.NUMERIC || n.type === e.TEXT && n.inputMode === "numeric") && !/^\d+$/.test(String(t))) return r("validation.is_number");
42
+ if (n.type === e.EMAIL && !/^(?!.*\.\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i.test(t)) return r("strValidEmail");
43
+ if (n.type === e.MOBILE && !/^[1-9]\d{9}$/.test(t)) return r("strValidMobile");
44
+ if (n.type === e.SELECT && _(t, n.type)) return r("validation.required", { field: a });
45
+ if (["latitude", "longitude"].includes(i) && !y(t, i)) return r("strValidLatLong", { LAT_LONG: i });
46
+ }
47
+ }, u = (t, n, { t: r }) => {
48
+ let i = {
49
+ minLength: 0,
50
+ maxLength: 0,
51
+ ...n
52
+ };
53
+ if (_(t, i.type)) return;
54
+ let a = t.length, o = i.type === e.NUMERIC ? r("digits") : r("strCharacters");
55
+ if (i.minLength && a < i.minLength || i.maxLength && a > i.maxLength) return r("validation.min_max_length", {
56
+ minLength: i.minLength,
57
+ maxLength: i.length || i.maxLength,
58
+ charactersOrDigits: o
59
+ });
60
+ if (i.length && a > i.length) return r("validation.max_length", {
61
+ maxLength: i.length,
62
+ charactersOrDigits: o
63
+ });
64
+ }, d = (e, t) => {
65
+ if (t.isCheckCharacters && !/^[a-zA-Z0-9 ]+$/.test(String(e))) return "Special characters are not allowed";
66
+ }, f = (e, t, { t: n, fieldLabel: r }) => {
67
+ if (t.maxValue && +e > +t.maxValue) return n("validation.max_value", {
68
+ field: r,
69
+ maxValue: t.maxValue
70
+ });
71
+ }, p = (e, t, { t: n, fieldLabel: r }) => {
72
+ if (_(e, t.type) || !v(t.type)) return;
73
+ let i = a(String(e), t.serverFormat, !0);
74
+ if (t.minimumDate && i.isBefore(a(t.minimumDate))) return `${r} ${n("validation.greater_than", { minLength: a(t.minimumDate).format(t.clientFormat) })}`;
75
+ if (t.maximumDate && i.isAfter(a(t.maximumDate))) return `${r} ${n("validation.greater_less", { maxLength: a(t.maximumDate).format(t.clientFormat) })}`;
76
+ }, m = (e, i, { fieldLabel: a, t: o }) => {
77
+ let [s, c] = i.ageBetween || [];
78
+ if (!e) return;
79
+ let l = n, u = t(e), d = l.diff(u, r.year);
80
+ if (s !== void 0 && d < s) return `${a} ${o("validation.greater_than", { minLength: s })}`;
81
+ if (c !== void 0 && d > c) return `${a} ${o("validation.greater_less", { maxLength: c })}`;
82
+ }, h = (e, t, n, r) => ({
83
+ id: e,
84
+ value: t,
85
+ error: n,
86
+ isValid: !n,
87
+ count: t?.length || 0,
88
+ type: r
89
+ });
90
+ function g(t) {
91
+ return [
92
+ e.RADIO,
93
+ e.RADIOLIST,
94
+ e.CHECKBOX,
95
+ e.CHECKBOXLIST
96
+ ].includes(t);
97
+ }
98
+ function _(t, n) {
99
+ return n === e.FILE && Array.isArray(t) ? t.length === 0 : n === e.SELECT ? t == null || t === "" || t === -1 || typeof t == "object" && Object.keys(t).length === 0 : (g(n), t == null || t === "");
100
+ }
101
+ var v = (t) => [
102
+ e.DATE,
103
+ e.DATE_TIME,
104
+ e.TIME,
105
+ e.YEAR
106
+ ].includes(t), y = (e, t) => {
107
+ let n = Number.parseFloat(e);
108
+ return t === "latitude" ? n >= -90 && n <= 90 : n >= -180 && n <= 180;
109
+ }, b = (e, t, n) => {
110
+ if (!e?.label) return n(t);
111
+ let r = n(e.label);
112
+ return r === e.label ? e.label : r;
113
+ };
114
+ //#endregion
115
+ export { o as validateField };
116
+
117
+ //# sourceMappingURL=index136.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index136.js","names":[],"sources":["../src/libs/core/utils/validateFields.ts"],"sourcesContent":["import dayjs from 'dayjs';\r\nimport i18next, { type TFunction } from 'i18next';\r\nimport { FieldEnum } from 'libs/shared/enums/common-enums';\r\nimport type { DefaultRulesType } from 'libs/shared/types/common-types';\r\nimport type { FieldValue } from 'libs/shared/types/sharedFormActionTypes';\r\nimport { customDate, customDateObject, dayConstant } from './dateUtilities';\r\n\r\ntype Validator = (\r\n value: FieldValue,\r\n rules: DefaultRulesType,\r\n ctx: ValidationContext\r\n) => string | void;\r\n\r\ntype ValidationContext = {\r\n fieldName: string;\r\n fieldLabel: string;\r\n t: TFunction<\"translation\", undefined>;\r\n};\r\n\r\nexport interface ValidatedFieldState {\r\n id: string;\r\n value: FieldValue;\r\n error: string;\r\n isValid: boolean;\r\n count: number;\r\n type?: string;\r\n}\r\n\r\nexport function validateField(\r\n fieldName: string,\r\n fieldValue: FieldValue,\r\n rules: DefaultRulesType | undefined,\r\n _fieldId?: FieldValue,\r\n t?: TFunction<\"translation\", undefined>,\r\n customValidator?: Validator\r\n): ValidatedFieldState {\r\n const translate = t || i18next.t;\r\n\r\n let value = fieldValue;\r\n\r\n if (!rules) return buildState(\r\n fieldName,\r\n // fieldId,\r\n value,\r\n \"\",\r\n \"\"\r\n );\r\n\r\n if (rules.customError) {\r\n return buildState(fieldName, fieldValue, rules.customError, rules.type);\r\n }\r\n const ctx: ValidationContext = {\r\n fieldName,\r\n fieldLabel: getFieldLabel(\r\n rules,\r\n fieldName,\r\n translate\r\n ),\r\n t: translate,\r\n };\r\n\r\n /* ----------------------------- Date Normalize ---------------------------- */\r\n\r\n if (isCalendarField(rules.type) && value) {\r\n const parsed = dayjs(\r\n String(value),\r\n rules.serverFormat,\r\n true\r\n );\r\n\r\n if (!parsed.isValid()) {\r\n return buildState(\r\n fieldName,\r\n // fieldId,\r\n value,\r\n translate('validation.invalid_input', {\r\n format: rules.clientFormat,\r\n }),\r\n rules.type\r\n );\r\n }\r\n\r\n value = parsed.format(rules.serverFormat);\r\n }\r\n\r\n /* ------------------------------- Validators ------------------------------ */\r\n\r\n const validators: Validator[] = [\r\n requiredValidator,\r\n typeValidator,\r\n lengthValidator,\r\n characterValidator,\r\n maxValueValidator,\r\n dateRangeValidator,\r\n ageValidator,\r\n dtoCustomValidator\r\n ];\r\n\r\n if (customValidator) {\r\n validators.push(customValidator);\r\n }\r\n\r\n for (const validator of validators) {\r\n const error = validator(value, rules, ctx);\r\n\r\n if (error) {\r\n return buildState(\r\n fieldName,\r\n // fieldId,\r\n value,\r\n error,\r\n rules.type\r\n );\r\n }\r\n }\r\n\r\n return buildState(\r\n // fieldId,\r\n fieldName,\r\n value,\r\n '',\r\n rules.type\r\n );\r\n}\r\n\r\n/* -------------------------------------------------------------------------- */\r\n/* VALIDATORS */\r\n/* -------------------------------------------------------------------------- */\r\nconst dtoCustomValidator: Validator = (value, rules) => {\r\n return rules.customValidation?.(value);\r\n};\r\n\r\nconst requiredValidator: Validator = (value, rules, { t, fieldLabel }) => {\r\n if (rules.required && isEmptyFieldValue(value, rules.type)\r\n ) {\r\n return t('validation.required', {\r\n field: fieldLabel,\r\n });\r\n }\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst typeValidator: Validator = (value, rules, { t, fieldName, fieldLabel }) => {\r\n if (isEmptyFieldValue(value, rules.type)) return;\r\n\r\n const isNumeric =\r\n rules.type === FieldEnum.NUMERIC ||\r\n (rules.type === FieldEnum.TEXT && rules.inputMode === 'numeric');\r\n\r\n if (isNumeric && !/^\\d+$/.test(String(value))) {\r\n return t('validation.is_number');\r\n }\r\n\r\n if (rules.type === FieldEnum.EMAIL && !/^(?!.*\\.\\.)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,}$/i.test(value as string)) {\r\n return t('strValidEmail');\r\n }\r\n\r\n if (rules.type === FieldEnum.MOBILE && !/^[1-9]\\d{9}$/.test(value as string)) {\r\n return t('strValidMobile');\r\n }\r\n\r\n if (rules.type === FieldEnum.SELECT && isEmptyFieldValue(value, rules.type)) {\r\n return t('validation.required', {\r\n field: fieldLabel,\r\n });\r\n }\r\n\r\n if (['latitude', 'longitude'].includes(fieldName) &&\r\n !validateLatLong(value as string, fieldName)\r\n ) {\r\n return t('strValidLatLong', {\r\n LAT_LONG: fieldName,\r\n });\r\n }\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst lengthValidator: Validator = (value, validation, { t }) => {\r\n const rules = {\r\n minLength: 0,\r\n maxLength: 0,\r\n ...validation\r\n }\r\n if (isEmptyFieldValue(value, rules.type)) return;\r\n\r\n const count = (value as string).length;\r\n const charactersOrDigits = rules.type === FieldEnum.NUMERIC ? t('digits') : t('strCharacters');\r\n\r\n\r\n if (rules.minLength && count < rules.minLength) {\r\n return t('validation.min_max_length', {\r\n minLength: rules.minLength,\r\n maxLength: rules.length || rules.maxLength,\r\n charactersOrDigits\r\n });\r\n }\r\n\r\n if (rules.maxLength && count > rules.maxLength) {\r\n return t('validation.min_max_length', {\r\n minLength: rules.minLength,\r\n maxLength: rules.length || rules.maxLength,\r\n charactersOrDigits\r\n });\r\n }\r\n\r\n if (rules.length && count > rules.length) {\r\n return t('validation.max_length', {\r\n maxLength: rules.length,\r\n charactersOrDigits\r\n });\r\n }\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst characterValidator: Validator = (value, rules) => {\r\n if (\r\n rules.isCheckCharacters &&\r\n !/^[a-zA-Z0-9 ]+$/.test(String(value))\r\n ) {\r\n return 'Special characters are not allowed';\r\n }\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst maxValueValidator: Validator = (\r\n value,\r\n rules,\r\n { t, fieldLabel }\r\n) => {\r\n if (\r\n rules.maxValue &&\r\n +value > +rules.maxValue\r\n ) {\r\n return t('validation.max_value', {\r\n field: fieldLabel, maxValue: rules.maxValue,\r\n });\r\n }\r\n};\r\n\r\n\r\nconst dateRangeValidator: Validator = (\r\n value,\r\n rules,\r\n { t, fieldLabel }\r\n) => {\r\n if (\r\n isEmptyFieldValue(value, rules.type) ||\r\n !isCalendarField(rules.type)\r\n ) {\r\n return;\r\n }\r\n\r\n const parsed = dayjs(\r\n String(value),\r\n rules.serverFormat,\r\n true\r\n );\r\n\r\n // Minimum date check\r\n if (\r\n rules.minimumDate &&\r\n parsed.isBefore(dayjs(rules.minimumDate))\r\n ) {\r\n return `${fieldLabel} ${t('validation.greater_than', {\r\n minLength: dayjs(rules.minimumDate).format(\r\n rules.clientFormat\r\n ),\r\n })}`;\r\n }\r\n\r\n // Maximum date check\r\n if (\r\n rules.maximumDate &&\r\n parsed.isAfter(dayjs(rules.maximumDate))\r\n ) {\r\n return `${fieldLabel} ${t('validation.greater_less', {\r\n maxLength: dayjs(rules.maximumDate).format(\r\n rules.clientFormat\r\n ),\r\n })}`;\r\n }\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst ageValidator: Validator = (value, rules, { fieldLabel, t }) => {\r\n const [min, max] = rules.ageBetween || [];\r\n\r\n if (!value) return;\r\n\r\n const today = customDateObject;\r\n\r\n const birthdate = customDate(value as string);\r\n const age = today.diff(birthdate, dayConstant.year);\r\n\r\n if (min !== undefined && age < min) {\r\n return `${fieldLabel} ${t('validation.greater_than', { minLength: min, })}`;\r\n }\r\n\r\n if (max !== undefined && age > max) {\r\n return `${fieldLabel} ${t('validation.greater_less', { maxLength: max, })}`;\r\n }\r\n\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n/* HELPERS */\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst buildState = (\r\n id: string,\r\n value: FieldValue,\r\n error: string,\r\n type?: string\r\n): ValidatedFieldState => ({\r\n id,\r\n value,\r\n error,\r\n isValid: !error,\r\n count: (value as string)?.length || 0,\r\n type,\r\n});\r\n\r\n/* -------------------------------------------------------------------------- */\r\nfunction isRadioOrCheckboxFieldType(type: FieldEnum): boolean {\r\n return [FieldEnum.RADIO, FieldEnum.RADIOLIST, FieldEnum.CHECKBOX, FieldEnum.CHECKBOXLIST].includes(type)\r\n}\r\n\r\nfunction isEmptyFieldValue(value: FieldValue, type: FieldEnum): boolean {\r\n if (type === FieldEnum.FILE && Array.isArray(value)) {\r\n return value.length === 0;\r\n }\r\n\r\n if (type === FieldEnum.SELECT) {\r\n if (value === null || value === undefined || value === '' || value === -1) {\r\n return true;\r\n }\r\n if (typeof value === 'object') {\r\n return Object.keys(value).length === 0;\r\n }\r\n return false\r\n }\r\n\r\n if (isRadioOrCheckboxFieldType(type))\r\n return value === undefined || value === null || value === '';\r\n \r\n return value === undefined || value === null || value === '';\r\n}\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst isCalendarField = (type: FieldEnum) => [FieldEnum.DATE, FieldEnum.DATE_TIME, FieldEnum.TIME, FieldEnum.YEAR].includes(type);\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst validateLatLong = (value: string, type: string) => {\r\n const num = Number.parseFloat(value);\r\n\r\n return type === 'latitude'\r\n ? num >= -90 && num <= 90\r\n : num >= -180 && num <= 180;\r\n};\r\n\r\n/* -------------------------------------------------------------------------- */\r\n\r\nconst getFieldLabel = (rules: DefaultRulesType | undefined, fieldName: string, t: TFunction<\"translation\", undefined>) => {\r\n if (!rules?.label) {\r\n return t(fieldName);\r\n }\r\n\r\n const translated = t(rules.label);\r\n\r\n return translated === rules.label\r\n ? rules.label\r\n : translated;\r\n};"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { setStateObjValue as e } from "./index142.js";
2
+ //#region src/libs/shared/components/mobileVerification/validateMobileVerification.ts
3
+ var t = "strPleaseVerifyMobileNumber", n = (t, n, r = "") => {
4
+ e(t.fieldError, n, r), e(t.helperText, n, r);
5
+ };
6
+ function r(e, r = "mobileNumber") {
7
+ let i = e.fieldsName, a = e.submitJson?.[i.isVerificationRequired], o = e.submitJson?.[i.isVerified];
8
+ return !a || !e.isValidJson?.[r] ? !a : (n(e, r, o ? "" : t), o);
9
+ }
10
+ //#endregion
11
+ export { r as validateMobileVerification };
12
+
13
+ //# sourceMappingURL=index137.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index137.js","names":[],"sources":["../src/libs/shared/components/mobileVerification/validateMobileVerification.ts"],"sourcesContent":["import type { FieldPayload } from \"libs/shared/types/sharedFormActionTypes\";\r\n\r\nimport { setStateObjValue } from \"utils/commonFunctions\";\r\nimport type { MobileVerificationDTOType } from \"./mobileVerificationDTO\";\r\n\r\nconst VERIFY_MESSAGE = \"strPleaseVerifyMobileNumber\";\r\n\r\nconst setMobileError = (dto: MobileVerificationDTOType, field: string, message = \"\") => {\r\n setStateObjValue(dto.fieldError, field, message);\r\n setStateObjValue(dto.helperText, field, message);\r\n};\r\n\r\nexport function validateMobileVerification(\r\n dto: MobileVerificationDTOType,\r\n mobileField = \"mobileNumber\",\r\n): boolean {\r\n const fields = dto.fieldsName;\r\n const isVerificationRequired =\r\n dto.submitJson?.[fields.isVerificationRequired];\r\n const isVerified = dto.submitJson?.[fields.isVerified];\r\n\r\n if (!isVerificationRequired || !dto.isValidJson?.[mobileField]) {\r\n return !isVerificationRequired;\r\n }\r\n setMobileError(dto, mobileField, isVerified ? \"\" : VERIFY_MESSAGE);\r\n return isVerified;\r\n}\r\n\r\nexport function handleOnChangeMobile(data: FieldPayload, dto: MobileVerificationDTOType) {\r\n const { key, valueOrCd } = data;\r\n const { mobileNumber, isVerified } = dto.fieldsName;\r\n\r\n if (key === mobileNumber && dto.submitJson?.[isVerified]) {\r\n setStateObjValue(dto.submitJson, isVerified, false)\r\n setMobileError(dto, key, VERIFY_MESSAGE);\r\n }\r\n\r\n if (key === isVerified && valueOrCd === true) {\r\n setMobileError(dto, mobileNumber);\r\n }\r\n}\r\n"],"mappings":";;AAKA,IAAM,IAAiB,+BAEjB,KAAkB,GAAgC,GAAe,IAAU,OAAO;CAEtF,AADA,EAAiB,EAAI,YAAY,GAAO,CAAO,GAC/C,EAAiB,EAAI,YAAY,GAAO,CAAO;AACjD;AAEA,SAAgB,EACd,GACA,IAAc,gBACL;CACT,IAAM,IAAS,EAAI,YACb,IACJ,EAAI,aAAa,EAAO,yBACpB,IAAa,EAAI,aAAa,EAAO;CAM3C,OAJI,CAAC,KAA0B,CAAC,EAAI,cAAc,KACzC,CAAC,KAEV,EAAe,GAAK,GAAa,IAAa,KAAK,CAAc,GAC1D;AACT"}
@@ -0,0 +1,22 @@
1
+ //#region src/libs/core/constants/dtoNames.ts
2
+ var e = {
3
+ AGE_PANEL: "agePanel",
4
+ ADDRESS_MULTIPLE: "addressMultiple",
5
+ PRESENT_ADDRESS: "presentAddress",
6
+ PERMANANT_ADDRESS: "permanantAddress",
7
+ ADDRESS_HISTORY: "addressHistory",
8
+ PREVIOUS_ADDRESS: "previousAddress",
9
+ ADDRESS_LIST: "addressGrid",
10
+ SINGLE_ADDRESS: "singleAddress",
11
+ ORGANIZATION_INFO: "ORGANIZATION_INFO",
12
+ PERSONAL_DETAILS: "personalDetails",
13
+ MOBILE_PANEL: "mobilePanel",
14
+ FILE_UPLOAD: "fileUpload",
15
+ IDENTIFICATION_PANEL: "identificationPanel",
16
+ PHYSICAL_DESCRIPTION: "physicalDescription",
17
+ SEARCHDATERANGE: "SEARCHDATERANGE"
18
+ };
19
+ //#endregion
20
+ export { e as DTONames };
21
+
22
+ //# sourceMappingURL=index138.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index138.js","names":[],"sources":["../src/libs/core/constants/dtoNames.ts"],"sourcesContent":["/* please only include the dtoName which are common */\r\n\r\nexport const DTONames = {\r\n AGE_PANEL: \"agePanel\",\r\n ADDRESS_MULTIPLE: \"addressMultiple\",\r\n PRESENT_ADDRESS: \"presentAddress\",\r\n PERMANANT_ADDRESS: \"permanantAddress\",\r\n ADDRESS_HISTORY: \"addressHistory\",\r\n PREVIOUS_ADDRESS: \"previousAddress\",\r\n ADDRESS_LIST: \"addressGrid\",\r\n SINGLE_ADDRESS: \"singleAddress\",\r\n ORGANIZATION_INFO : \"ORGANIZATION_INFO\",\r\n PERSONAL_DETAILS: \"personalDetails\",\r\n MOBILE_PANEL: \"mobilePanel\",\r\n FILE_UPLOAD: \"fileUpload\",\r\n IDENTIFICATION_PANEL: \"identificationPanel\",\r\n PHYSICAL_DESCRIPTION: \"physicalDescription\",\r\n SEARCHDATERANGE: \"SEARCHDATERANGE\"\r\n} as const;\r\n"],"mappings":";AAEA,IAAa,IAAW;CACtB,WAAW;CACX,kBAAkB;CAClB,iBAAiB;CACjB,mBAAmB;CACnB,iBAAiB;CACjB,kBAAkB;CAClB,cAAc;CACd,gBAAgB;CAChB,mBAAoB;CACpB,kBAAkB;CAClB,cAAc;CACd,aAAa;CACb,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;AACnB"}
@@ -0,0 +1,26 @@
1
+ import { FieldEnum as e, MenuTextColorEnum as t } from "./index129.js";
2
+ import { flattenValidity as n, setStateObjValue as r } from "./index135.js";
3
+ import { validateField as i } from "./index136.js";
4
+ import { validateMobileVerification as a } from "./index137.js";
5
+ import { DTONames as o } from "./index138.js";
6
+ //#region src/libs/core/utils/validateDto.ts
7
+ function s(c) {
8
+ if (!c) return !0;
9
+ let l = !0;
10
+ if (c.defaultsRules && c.submitJson && Object.keys(c.defaultsRules).forEach((t) => {
11
+ let a = c.defaultsRules[t], o = c.submitJson[t], s = c.submitJson[t], { isValid: u, error: d, count: f } = i(t, s, a, o);
12
+ r(c.isValidJson, t, u), r(c.fieldError, t, d || ""), a && r(c.helperText, t, a.type === e.TEXT ? f : ""), u || (l = !1);
13
+ let p = Object.values(c.isValidJson);
14
+ l = n(p);
15
+ }), c.menuTextColor = l ? t.GREEN : t.RED, c.dtoName === o.MOBILE_PANEL) {
16
+ let e = c;
17
+ a(e, e.fieldsName.mobileNumber) || (l = !1);
18
+ }
19
+ return c.fieldsName && Object.values(c.fieldsName).forEach((e) => {
20
+ e && typeof e == "object" && "defaultsRules" in e && (s(e) || (l = !1), r(c, "menuTextColor", l ? t.GREEN : t.RED));
21
+ }), l;
22
+ }
23
+ //#endregion
24
+ export { s as default };
25
+
26
+ //# sourceMappingURL=index139.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index139.js","names":[],"sources":["../src/libs/core/utils/validateDto.ts"],"sourcesContent":["// libs/core/utils/validateDto.ts\r\nimport { FieldEnum, MenuTextColorEnum } from \"libs/shared/enums/common-enums\";\r\nimport { validateField } from \"./validateFields\";\r\nimport { validateMobileVerification } from \"../../shared/components/mobileVerification/validateMobileVerification\";\r\nimport { DTONames } from \"constants/dtoNames\";\r\nimport type { DTO } from \"libs/shared/types/common-types\";\r\nimport { flattenValidity, setStateObjValue } from \"./commonFunctions\";\r\nimport { type MobileVerificationDTOType } from \"components/mobileVerification/mobileVerificationDTO\";\r\nimport type { FieldValue } from \"libs/shared/types/sharedFormActionTypes\";\r\n\r\nexport default function validateDto(\r\n dto: DTO,\r\n): boolean {\r\n if (!dto) return true;\r\n let isValid = true;\r\n if (dto.defaultsRules && dto.submitJson) {\r\n Object.keys(dto.defaultsRules).forEach((key) => {\r\n const rules = dto.defaultsRules[key];\r\n const valueOrCd = dto.submitJson[key] as FieldValue;\r\n const value = dto.submitJson[key] as FieldValue;\r\n\r\n const { isValid: fieldValid, error, count } = validateField(\r\n key,\r\n value,\r\n rules,\r\n valueOrCd\r\n );\r\n setStateObjValue(dto.isValidJson, key, fieldValid);\r\n setStateObjValue(dto.fieldError, key, error || \"\");\r\n if(rules) {\r\n setStateObjValue(dto.helperText, key, rules.type === FieldEnum.TEXT ? count : \"\");\r\n }\r\n\r\n if (!fieldValid) {\r\n isValid = false;\r\n }\r\n\r\n const values = Object.values(dto.isValidJson);\r\n const isValidJsons = flattenValidity(values);\r\n\r\n isValid = isValidJsons; \r\n });\r\n }\r\n dto.menuTextColor = isValid ? MenuTextColorEnum.GREEN : MenuTextColorEnum.RED\r\n if (dto.dtoName === DTONames.MOBILE_PANEL) {\r\n const mobileDTO = dto as MobileVerificationDTOType\r\n const mobileValid = validateMobileVerification(\r\n mobileDTO,\r\n mobileDTO.fieldsName.mobileNumber,\r\n );\r\n\r\n if (!mobileValid) {\r\n isValid = false;\r\n }\r\n }\r\n \r\n if (dto.fieldsName) {\r\n Object.values(dto.fieldsName).forEach((nestedDto: string | DTO) => {\r\n if (\r\n nestedDto &&\r\n typeof nestedDto === \"object\" &&\r\n \"defaultsRules\" in nestedDto\r\n ) {\r\n const childValid = validateDto(\r\n nestedDto,\r\n );\r\n \r\n if (!childValid) {\r\n isValid = false;\r\n }\r\n setStateObjValue(dto, \"menuTextColor\", isValid ? MenuTextColorEnum.GREEN : MenuTextColorEnum.RED)\r\n }\r\n });\r\n }\r\n return isValid;\r\n}\r\n\r\nexport function hasDtoError(dto: DTO): boolean {\r\n if (!dto) return false;\r\n const currentHasError = Object.values(dto.fieldError || {}).some(Boolean);\r\n if (currentHasError) return true;\r\n return Object.values(dto.fieldsName || {}).some((field: DTO | string) =>\r\n field && typeof field === \"object\" && \"defaultsRules\" in field\r\n ? hasDtoError(field)\r\n : false,\r\n );\r\n}\r\n"],"mappings":";;;;;;AAUA,SAAwB,EACtB,GACS;CACT,IAAI,CAAC,GAAK,OAAO;CACjB,IAAI,IAAU;CA8Bd,IA7BI,EAAI,iBAAiB,EAAI,cAC3B,OAAO,KAAK,EAAI,aAAa,CAAC,CAAC,SAAS,MAAQ;EAC9C,IAAM,IAAQ,EAAI,cAAc,IAC1B,IAAY,EAAI,WAAW,IAC3B,IAAQ,EAAI,WAAW,IAEvB,EAAE,SAAS,GAAY,UAAO,aAAU,EAC5C,GACA,GACA,GACA,CACF;EAOA,AANA,EAAiB,EAAI,aAAa,GAAK,CAAU,GACjD,EAAiB,EAAI,YAAY,GAAK,KAAS,EAAE,GAC9C,KACD,EAAiB,EAAI,YAAY,GAAK,EAAM,SAAS,EAAU,OAAO,IAAQ,EAAE,GAG7E,MACH,IAAU;EAGZ,IAAM,IAAS,OAAO,OAAO,EAAI,WAAW;EAG5C,IAFqB,EAAgB,CAE3B;CACZ,CAAC,GAEH,EAAI,gBAAgB,IAAU,EAAkB,QAAQ,EAAkB,KACtE,EAAI,YAAY,EAAS,cAAc;EACzC,IAAM,IAAY;EAMlB,AALoB,EAClB,GACA,EAAU,WAAW,YAGlB,MACH,IAAU;CAEd;CAoBA,OAlBI,EAAI,cACN,OAAO,OAAO,EAAI,UAAU,CAAC,CAAC,SAAS,MAA4B;EACjE,AACE,KACA,OAAO,KAAc,YACrB,mBAAmB,MAEA,EACjB,CAGG,MACH,IAAU,KAEZ,EAAiB,GAAK,iBAAiB,IAAU,EAAkB,QAAQ,EAAkB,GAAG;CAEpG,CAAC,GAEI;AACT"}
@@ -0,0 +1,11 @@
1
+ //#region node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
2
+ function e(e) {
3
+ var t = Object.create(null);
4
+ return function(n) {
5
+ return t[n] === void 0 && (t[n] = e(n)), t[n];
6
+ };
7
+ }
8
+ //#endregion
9
+ export { e as default };
10
+
11
+ //# sourceMappingURL=index14.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index14.js","names":[],"sources":["../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js"],"sourcesContent":["function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n"],"x_google_ignoreList":[0],"mappings":";AAAA,SAAS,EAAQ,GAAI;CACnB,IAAI,IAAQ,OAAO,OAAO,IAAI;CAC9B,OAAO,SAAU,GAAK;EAEpB,OADI,EAAM,OAAS,KAAA,MAAW,EAAM,KAAO,EAAG,CAAG,IAC1C,EAAM;CACf;AACF"}
@@ -0,0 +1,20 @@
1
+ //#region src/libs/core/utils/loggers.ts
2
+ var e = {
3
+ info: "color: #25eb2f; font-weight: bold;",
4
+ warn: "color: #ffe817; font-weight: bold;",
5
+ error: "color: #dc2626; font-weight: bold;"
6
+ }, t = {
7
+ info(t, ...n) {
8
+ console.info(`%c[INFO] ${t}`, e.info, ...n);
9
+ },
10
+ warn(t, ...n) {
11
+ console.warn(`%c[WARN] ${t}`, e.warn, ...n);
12
+ },
13
+ error(t, ...n) {
14
+ console.error(`%c[ERROR] ${t}`, e.error, ...n);
15
+ }
16
+ };
17
+ //#endregion
18
+ export { t as default };
19
+
20
+ //# sourceMappingURL=index140.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index140.js","names":[],"sources":["../src/libs/core/utils/loggers.ts"],"sourcesContent":["type LogParams = unknown[];\r\n\r\nconst isDev = true;\r\n\r\nconst styles = {\r\n info: \"color: #25eb2f; font-weight: bold;\", // green\r\n warn: \"color: #ffe817; font-weight: bold;\", // yellow\r\n error: \"color: #dc2626; font-weight: bold;\", // red\r\n};\r\n\r\nconst Logger = {\r\n info(message: string, ...optionalParams: LogParams): void {\r\n if (!isDev) return;\r\n\r\n console.info(`%c[INFO] ${message}`, styles.info, ...optionalParams);\r\n },\r\n\r\n warn(message: string, ...optionalParams: LogParams): void {\r\n if (!isDev) return;\r\n\r\n console.warn(`%c[WARN] ${message}`, styles.warn, ...optionalParams);\r\n },\r\n\r\n error(message: string, ...optionalParams: LogParams): void {\r\n console.error(`%c[ERROR] ${message}`, styles.error, ...optionalParams);\r\n },\r\n} as const;\r\n\r\nexport default Logger;\r\n"],"mappings":";AAIA,IAAM,IAAS;CACb,MAAM;CACN,MAAM;CACN,OAAO;AACT,GAEM,IAAS;CACb,KAAK,GAAiB,GAAG,GAAiC;EAGxD,QAAQ,KAAK,YAAY,KAAW,EAAO,MAAM,GAAG,CAAc;CACpE;CAEA,KAAK,GAAiB,GAAG,GAAiC;EAGxD,QAAQ,KAAK,YAAY,KAAW,EAAO,MAAM,GAAG,CAAc;CACpE;CAEA,MAAM,GAAiB,GAAG,GAAiC;EACzD,QAAQ,MAAM,aAAa,KAAW,EAAO,OAAO,GAAG,CAAc;CACvE;AACF"}
@@ -0,0 +1,22 @@
1
+ import "./index135.js";
2
+ import "./index136.js";
3
+ import "./index139.js";
4
+ import "./index140.js";
5
+ import "@reduxjs/toolkit";
6
+ //#region src/libs/core/utils/sharedFormActions.ts
7
+ var e = {
8
+ VALIDATE_DTO: "validateDTO",
9
+ ON_CHANGE_FIELD: "onChangeField",
10
+ SET_LAST_STEP_COMPLETED: "setLastStepCompleted",
11
+ CLEAR_DTO: "CLEAR_DTO",
12
+ LOAD_NESTED_DTO: "LOAD_NESTED_DTO",
13
+ UPLOAD_FILE: "UPLOAD_FILE",
14
+ UPDATE_FILES: "UPDATE_FILES",
15
+ SET_VIEW_DATA: "SET_VIEW_DATA",
16
+ REMOVE_DATA: "removeData"
17
+ };
18
+ e.ON_CHANGE_FIELD, e.VALIDATE_DTO, e.CLEAR_DTO, e.SET_LAST_STEP_COMPLETED, e.LOAD_NESTED_DTO, e.SET_VIEW_DATA, e.REMOVE_DATA;
19
+ //#endregion
20
+ export { e as sharedFormActionNames };
21
+
22
+ //# sourceMappingURL=index141.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index141.js","names":[],"sources":["../src/libs/core/utils/sharedFormActions.ts"],"sourcesContent":["import { current, type PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { getNestedValue, setStateObjValue } from \"../../../libs/core/utils/commonFunctions\";\r\nimport validateDto from \"./validateDto\";\r\nimport type { DTO, FieldObject } from \"libs/shared/types/common-types\";\r\nimport Logger from \"./loggers\";\r\nimport { validateField } from \"./validateFields\";\r\nimport type {\r\n ChangeFieldPayload,\r\n ValidatePayload,\r\n ClearDTOPayload,\r\n LoadNestedDTOPayloadExtended,\r\n SetViewDataPayload,\r\n RemoveDataPayload,\r\n} from \"libs/shared/types/sharedFormActionTypes\";\r\nimport type { RootState } from \"store/store\";\r\n\r\nexport const sharedFormActionNames = {\r\n VALIDATE_DTO: \"validateDTO\",\r\n ON_CHANGE_FIELD: \"onChangeField\",\r\n SET_LAST_STEP_COMPLETED: \"setLastStepCompleted\",\r\n CLEAR_DTO: \"CLEAR_DTO\",\r\n LOAD_NESTED_DTO: \"LOAD_NESTED_DTO\",\r\n UPLOAD_FILE: \"UPLOAD_FILE\",\r\n UPDATE_FILES: \"UPDATE_FILES\",\r\n SET_VIEW_DATA: \"SET_VIEW_DATA\",\r\n REMOVE_DATA: \"removeData\",\r\n} as const;\r\n\r\nconst sharedFormActions = {\r\n [sharedFormActionNames.ON_CHANGE_FIELD]: (state: RootState, action: PayloadAction<ChangeFieldPayload>) => {\r\n const { key, valueOrCd, value, parentSliceName } = action.payload;\r\n const fieldValue = value ?? valueOrCd;\r\n const dto = getNestedValue(state, parentSliceName) as DTO;\r\n\r\n if (!dto) return;\r\n const rules = dto.defaultsRules?.[key];\r\n\r\n const fieldState = validateField(key, value, rules, valueOrCd);\r\n\r\n setStateObjValue(dto.submitJson, key, valueOrCd);\r\n setStateObjValue(dto.displayJson, key, fieldValue);\r\n setStateObjValue(dto.isValidJson, key, fieldState.isValid);\r\n setStateObjValue(dto.fieldError, key, fieldState.error);\r\n setStateObjValue(dto.helperText, key, fieldState.count);\r\n\r\n if (action.payload?.callback) {\r\n action.payload.callback(action.payload, dto);\r\n }\r\n\r\n Logger.info(\"[sharedFormActionNames.ON_CHANGE_FIELD] ----- \", current(dto));\r\n },\r\n [sharedFormActionNames.VALIDATE_DTO]: (state: RootState, action: PayloadAction<ValidatePayload>) => {\r\n const { parentSliceName } = action.payload;\r\n const dto: DTO = getNestedValue(state, parentSliceName);\r\n if (!dto) return;\r\n validateDto(dto);\r\n Logger.info(\"[sharedFormActionNames.VALIDATE_DTO] ----- \", current(dto));\r\n },\r\n [sharedFormActionNames.CLEAR_DTO]: (state: RootState, action: PayloadAction<ClearDTOPayload>) => {\r\n // --- for clearing the internal dto\r\n const { key, value, parentSliceName } = action.payload;\r\n const dto = getNestedValue(state, parentSliceName) as DTO;\r\n setStateObjValue(dto.fieldsName, key, value);\r\n Logger.info(\"[sharedFormActionNames.CLEAR_DTO] ----- \", current(dto));\r\n },\r\n [sharedFormActionNames.SET_LAST_STEP_COMPLETED]: (state: RootState, action: PayloadAction<boolean>) => {\r\n state.lastStepCompleted = action.payload;\r\n Logger.info(\"[sharedFormActionNames.SET_LAST_STEP_COMPLETED] ----- \", state);\r\n },\r\n [sharedFormActionNames.LOAD_NESTED_DTO]: (state: RootState, action: PayloadAction<LoadNestedDTOPayloadExtended>) => {\r\n /**\r\n * useFull when need to share the data from parent dto to subDto's submitJson and displayJson\r\n */\r\n const { dtoKey, value, valueOrCd, parentSliceName } = action.payload;\r\n const rootDto = getNestedValue(state, parentSliceName) as DTO;\r\n\r\n if (!Object.hasOwn(rootDto.fieldsName, dtoKey)) return; // checking for dynamic dto\r\n\r\n const subDtoState = rootDto.fieldsName[dtoKey] as DTO;\r\n\r\n setStateObjValue(subDtoState, \"displayJson\", value as FieldObject);\r\n setStateObjValue(subDtoState, \"submitJson\", valueOrCd as FieldObject);\r\n\r\n if (action.payload?.callback) {\r\n action.payload.callback(action.payload, rootDto);\r\n }\r\n\r\n Logger.info(\"[sharedFormActionNames.LOAD_NESTED_DTO] ----- \", current(rootDto));\r\n },\r\n [sharedFormActionNames.SET_VIEW_DATA]: (state: FieldObject, action: PayloadAction<SetViewDataPayload>) => {\r\n const { dto, fieldsName, path } = action.payload;\r\n\r\n if (fieldsName) {\r\n const rootDto = path ? (getNestedValue(state, path) as DTO) : state;\r\n setStateObjValue((rootDto as DTO).fieldsName, fieldsName, dto);\r\n if (action.payload.callback) {\r\n action.payload.callback(action.payload, rootDto as DTO);\r\n }\r\n Logger.info(\"[sharedFormActionNames.SET_VIEW_DATA] ----- \", current(rootDto));\r\n } else {\r\n if (action.payload?.callback) {\r\n action.payload.callback(action.payload, dto);\r\n }\r\n Logger.info(\"[sharedFormActionNames.SET_VIEW_DATA] ----- \", dto);\r\n return dto;\r\n }\r\n },\r\n [sharedFormActionNames.REMOVE_DATA]: (state: RootState, action: PayloadAction<RemoveDataPayload>) => { // --- needs rework\r\n const { key, path } = action.payload;\r\n\r\n const rootDto = getNestedValue(state, path) as DTO;\r\n Logger.info(\"[sharedFormActionNames.REMOVE_DATA] before ----- \", current(rootDto));\r\n\r\n const updatedFields = { ...rootDto.fieldsName };\r\n delete updatedFields[key];\r\n\r\n setStateObjValue(rootDto, \"fieldsName\", updatedFields);\r\n\r\n if (action.payload?.callback) {\r\n action.payload.callback(action.payload, rootDto);\r\n }\r\n\r\n Logger.info(\"[sharedFormActionNames.REMOVE_DATA] ----- \", current(rootDto));\r\n }\r\n};\r\nexport default sharedFormActions;\r\n"],"mappings":";;;;;;AAgBA,IAAa,IAAwB;CACnC,cAAc;CACd,iBAAiB;CACjB,yBAAyB;CACzB,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,eAAe;CACf,aAAa;AACf;AAGG,EAAsB,iBAsBtB,EAAsB,cAOtB,EAAsB,WAOtB,EAAsB,yBAItB,EAAsB,iBAoBtB,EAAsB,eAkBtB,EAAsB"}
@@ -0,0 +1,12 @@
1
+ import e from "./index133.js";
2
+ import "./index134.js";
3
+ import "./index141.js";
4
+ //#region src/libs/core/utils/commonFunctions.ts
5
+ function t(e, t, n) {
6
+ e[t] = n;
7
+ }
8
+ var n = (e) => e.toLocaleString(), r = () => e.resolvedLanguage || e.language || "en";
9
+ //#endregion
10
+ export { r as getTranslation, t as setStateObjValue, n as toLocaleString };
11
+
12
+ //# sourceMappingURL=index142.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index142.js","names":[],"sources":["../src/libs/core/utils/commonFunctions.ts"],"sourcesContent":["import { CommonAddressFields } from \"constants/commonConstants\";\r\nimport { MenuTextColorEnum } from \"libs/shared/enums/common-enums\";\r\nimport type { CommonAddressFieldsTypesDisplay, DTO, FieldObject, GridRowData, MasterResponseDataType } from \"../../shared/types/common-types\";\r\nimport { sharedFormActionNames } from \"./sharedFormActions\";\r\nimport i18n from \"internationalisation/i18n\";\r\nimport { MASTER_DATA_KEYS } from \"constants/masterCodes\";\r\nimport type { StepConfig } from \"ui/stepper/types/stepperTypes\";\r\nimport { customDateObject } from \"./dateUtilities\";\r\n\r\nexport function setStateObjValue<T extends FieldObject | DTO, K extends keyof T>(\r\n state: T,\r\n key: K,\r\n value: T[K]\r\n): void {\r\n state[key] = value;\r\n}\r\n\r\nexport function constructParentSliceName(sliceName: string, parentSliceName: string = \"\"): string {\r\n return parentSliceName ? `${parentSliceName}.${sliceName}` : sliceName;\r\n}\r\n\r\nexport function getNestedValue<T>(obj: Record<string, unknown> | DTO, path: string) {\r\n const keys = path.split(\".\");\r\n\r\n const returnState = keys.reduce((acc: Record<string, unknown> | DTO, key: string) => {\r\n if (key in acc) {\r\n return (acc as Record<string, DTO>)[key] as DTO;\r\n } else if (key in (acc as DTO).fieldsName) {\r\n return (acc as DTO).fieldsName[key] as DTO;\r\n } else return acc;\r\n }, obj);\r\n\r\n return returnState as T;\r\n}\r\n\r\nexport function getBaseDTO(...intialArgsArr: unknown[]): DTO {\r\n return {\r\n submitJson: {},\r\n displayJson: {},\r\n isValidJson: {},\r\n fieldError: {},\r\n helperText: {},\r\n dtoName: \"\",\r\n defaultsRules: {},\r\n fieldsName: {},\r\n initialArgs: intialArgsArr ?? [],\r\n menuTextColor: MenuTextColorEnum.INHERIT\r\n };\r\n}\r\n\r\nexport const toLocaleString = (value: string | number) => {\r\n return value.toLocaleString();\r\n}\r\n\r\nexport const getSelectInputFieldName = (name: string): string => {\r\n return name.split(\"-\")?.[0] ?? \"\"\r\n}\r\n\r\n/**\r\n * Create concat address using display data.\r\n *\r\n * @param {GridRowData} addressDisplay - Address Display Data\r\n * @returns {string} Concanated Address\r\n */\r\nexport const getConcatAddress = (addressDisplay: CommonAddressFieldsTypesDisplay) => {\r\n const fields = CommonAddressFields;\r\n const order = [fields.houseNo, fields.streetName, fields.colony, fields.village, fields.subDistrict, fields.district, fields.state, fields.pincode, fields.country, fields.other];\r\n const concatAddress = order.map((key) => addressDisplay[key]).join(\" \");\r\n return concatAddress.trim();\r\n};\r\n\r\nexport const getOnChangeActionType = (rootSliceName: string) => {\r\n return `${rootSliceName}/${sharedFormActionNames.ON_CHANGE_FIELD}`\r\n}\r\n\r\n/**\r\n * useful to get the value key from the cd key\r\n * @param codeKey \r\n * @param suffix \r\n * @returns value key\r\n */\r\nexport const getValueKey = <T extends string, S extends string = \"Cd\">(codeKey: T, suffix: S = \"Cd\" as S) => {\r\n return codeKey.slice(0, -suffix.length);\r\n};\r\n\r\nexport const filterRecordById = <T extends GridRowData>(row: T, key: string = \"id\") => (obj: T) => obj?.[key] !== row?.[key];\r\n\r\nexport function concatenateFullName<T extends {\r\n firstName?: string | null;\r\n middleName?: string | null;\r\n lastName?: string | null;\r\n}>(data: T): string {\r\n const { firstName, middleName, lastName } = data;\r\n let fullName = \"\";\r\n\r\n for (const name of [firstName, middleName, lastName]) {\r\n const trimmed = name?.trim();\r\n if (trimmed) {\r\n fullName += fullName ? ` ${trimmed}` : trimmed;\r\n }\r\n }\r\n\r\n return fullName;\r\n}\r\n\r\nexport const getTranslation = () => {\r\n return i18n.resolvedLanguage || i18n.language || 'en'\r\n}\r\n\r\nexport const fieldsManager = (dto: DTO, fields: string[]) => {\r\n const { fieldError, isValidJson, helperText, submitJson, displayJson } = dto;\r\n\r\n fields.forEach((field) => {\r\n setStateObjValue(fieldError, field, \"\");\r\n setStateObjValue(isValidJson, field, true);\r\n setStateObjValue(helperText, field, \"\");\r\n delete submitJson[field];\r\n delete displayJson[field];\r\n });\r\n};\r\n\r\n\r\nexport const generateLookupArray = (length: number): MasterResponseDataType[] => {\r\n return Array.from({ length }, (_, i) => ({\r\n [MASTER_DATA_KEYS.CODE]: i + 1,\r\n [MASTER_DATA_KEYS.VALUE]: `${i + 1}`,\r\n id: i + 1,\r\n selectoptiontitle: `${i + 1}`,\r\n }));\r\n}\r\n\r\nexport function reIndex<T extends { id: number }>(list: T[]) {\r\n return list.map((item, index) => ({ ...item, id: index + 1 }));\r\n}\r\n\r\nexport function injectIntoStepCallback(prev: StepConfig[], dtoName: string, newStep: StepConfig, position: \"start\" | \"end\" | number = \"end\", isSection: boolean = false) {\r\n const getUpdatedMenuList = (steps: StepConfig[], newStep: StepConfig): StepConfig[] => {\r\n let updatedMenuList: StepConfig[];\r\n\r\n if (position === \"start\") {\r\n updatedMenuList = [newStep, ...steps];\r\n } else if (position === \"end\") {\r\n updatedMenuList = [...steps, newStep];\r\n } else {\r\n const targetIndex = Math.max(0, Math.min(position, steps.length));\r\n\r\n updatedMenuList = [...steps];\r\n updatedMenuList.splice(targetIndex, 0, newStep);\r\n }\r\n\r\n return reIndex(updatedMenuList);\r\n };\r\n if (isSection) {\r\n return prev.map((step: StepConfig) => {\r\n if (step.dtoName === dtoName) {\r\n return getUpdatedMenuList(step.sections ?? [], newStep);\r\n }\r\n return step;\r\n }) as StepConfig[];\r\n }\r\n\r\n return getUpdatedMenuList(prev, newStep);\r\n\r\n}\r\n\r\nexport function removeFromStepsCallback(prev: StepConfig[], dtoName: string, isSection: boolean = false) {\r\n const filterList = (steps: StepConfig[]) => {\r\n return reIndex(steps.filter((step: StepConfig) => step.dtoName !== dtoName));\r\n };\r\n\r\n if (isSection) {\r\n return prev.map((step: StepConfig) => {\r\n if (step.dtoName === dtoName) {\r\n return filterList(step.sections ?? []);\r\n }\r\n\r\n return step;\r\n }) as StepConfig[];\r\n }\r\n\r\n return filterList(prev);\r\n}\r\nexport const getModuleNumber = (loginId: string | number) => {\r\n const timestamp = customDateObject.format('YYYYMMDDHHmmss');\r\n const randomSuffix = Math.floor(Math.random() * 100); // 2 random digits\r\n return `${loginId}${timestamp}${randomSuffix}`;\r\n}\r\n\r\n\r\n\r\n//Works for booleans, arrays, and nested objects\r\nexport const flattenValidity = (value: unknown): boolean => {\r\n if (typeof value === \"boolean\") {\r\n return value; // base case\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(flattenValidity); // check each element recursively\r\n }\r\n if (typeof value === \"object\" && value !== null) {\r\n return Object.values(value).every(flattenValidity); // check each field recursively\r\n }\r\n return false; // if unexpected type (string, number etc.)\r\n};"],"mappings":";;;;AASA,SAAgB,EACd,GACA,GACA,GACM;CACN,EAAM,KAAO;AACf;AAmCA,IAAa,KAAkB,MACtB,EAAM,eAAe,GAsDjB,UACJ,EAAK,oBAAoB,EAAK,YAAY"}
@@ -0,0 +1,26 @@
1
+ import e from "./index108.js";
2
+ import t from "react";
3
+ import { Tooltip as n, tooltipClasses as r } from "@mui/material";
4
+ import { useTranslation as i } from "react-i18next";
5
+ import { jsx as a } from "react/jsx-runtime";
6
+ //#region src/libs/shared/UI/toolTips/CustomizedTooltip.tsx
7
+ var o = e(({ className: e, ...t }) => /* @__PURE__ */ a(n, {
8
+ ...t,
9
+ arrow: !0,
10
+ classes: { popper: e }
11
+ }))(({ theme: e }) => ({
12
+ [`& .${r.arrow}`]: { color: e.palette.common.black },
13
+ [`& .${r.tooltip}`]: { backgroundColor: e.palette.common.black }
14
+ })), s = t.memo(({ title: e, children: t, placement: n = "top" }) => {
15
+ let { t: r } = i();
16
+ return /* @__PURE__ */ a(o, {
17
+ title: r(e),
18
+ placement: n,
19
+ sx: { zIndex: "2000" },
20
+ children: t
21
+ });
22
+ });
23
+ //#endregion
24
+ export { s as default };
25
+
26
+ //# sourceMappingURL=index143.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index143.js","names":[],"sources":["../src/libs/shared/UI/toolTips/CustomizedTooltip.tsx"],"sourcesContent":["import { Tooltip, tooltipClasses, type TooltipProps } from '@mui/material';\r\nimport { styled } from '@mui/material/styles'; \r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ntype FormTooltipProps = {\r\n title: string;\r\n children? : React.ReactNode;\r\n placement?: TooltipProps['placement'];\r\n} & TooltipProps\r\n\r\nconst BootstrapTooltip = styled(({ className, ...props }: TooltipProps) => (\r\n <Tooltip {...props} arrow classes={{ popper: className }} />\r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.arrow}`]: {\r\n color: theme.palette.common.black,\r\n },\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: theme.palette.common.black,\r\n },\r\n}));\r\n\r\nconst CustomizedTooltip = ({title, children, placement = 'top'}: Readonly<FormTooltipProps> ) => {\r\n const { t } = useTranslation();\r\n \r\n return (\r\n <BootstrapTooltip title={t(title)} placement={placement} sx={{zIndex:'2000'}}>\r\n {children}\r\n </BootstrapTooltip>\r\n );\r\n}\r\n\r\nexport default React.memo(CustomizedTooltip)"],"mappings":";;;;;;AAWA,IAAM,IAAmB,GAAQ,EAAE,cAAW,GAAG,QAC/C,kBAAC,GAAD;CAAS,GAAI;CAAO,OAAA;CAAM,SAAS,EAAE,QAAQ,EAAU;AAAI,CAAA,CAC5D,CAAC,EAAE,EAAE,gBAAa;EAChB,MAAM,EAAe,UAAU,EAC9B,OAAO,EAAM,QAAQ,OAAO,MAC9B;EACC,MAAM,EAAe,YAAY,EAChC,iBAAiB,EAAM,QAAQ,OAAO,MACxC;AACF,EAAE,GAYF,IAAe,EAAM,MAVM,EAAC,UAAO,aAAU,eAAY,YAAwC;CAC/F,IAAM,EAAE,SAAM,EAAe;CAE7B,OACI,kBAAC,GAAD;EAAkB,OAAO,EAAE,CAAK;EAAc;EAAW,IAAI,EAAC,QAAO,OAAM;EACxE;CACe,CAAA;AAExB,CAE2C"}
@@ -0,0 +1,56 @@
1
+ import { useAppThemeContext as e } from "./index3.js";
2
+ import t from "./index105.js";
3
+ import n from "react";
4
+ import { Link as r, Typography as i } from "@mui/material";
5
+ import { useTranslation as a } from "react-i18next";
6
+ import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ var l = n.memo(({ text: l, size: u, color: d, sx: f, isRequired: p = !1, variantType: m = "default", onClick: h, target: g = "_self", ..._ }) => {
8
+ let { t: v } = a(), { fontSize: y } = e(), b = t(), x = {
9
+ color: n.useMemo(() => {
10
+ if (d) return d;
11
+ switch (m) {
12
+ case "primary": return b.palette.primary.main;
13
+ case "secondary": return b.palette.text.secondary;
14
+ case "error": return b.palette.error.main;
15
+ case "link": return b.palette.primary.main;
16
+ default: return b.palette.text.primary;
17
+ }
18
+ }, [
19
+ d,
20
+ m,
21
+ b
22
+ ]),
23
+ fontSize: u || y,
24
+ ...f
25
+ }, S = /* @__PURE__ */ c(o, { children: [typeof l == "string" ? v(l) : l, p && /* @__PURE__ */ s(i, {
26
+ component: "span",
27
+ sx: {
28
+ color: b.palette.error.main,
29
+ fontSize: u || y,
30
+ ml: .25
31
+ },
32
+ children: "*"
33
+ })] });
34
+ return m === "link" ? /* @__PURE__ */ s(r, {
35
+ target: g,
36
+ underline: "always",
37
+ onClick: h,
38
+ sx: {
39
+ ...x,
40
+ cursor: "pointer",
41
+ fontWeight: 500,
42
+ color: b.palette.text.primary,
43
+ "&:hover": { opacity: .8 }
44
+ },
45
+ children: S
46
+ }) : /* @__PURE__ */ s(i, {
47
+ ..._,
48
+ sx: x,
49
+ onClick: h,
50
+ children: S
51
+ });
52
+ });
53
+ //#endregion
54
+ export { l as default };
55
+
56
+ //# sourceMappingURL=index144.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index144.js","names":[],"sources":["../src/libs/shared/UI/typography/Typography2.tsx"],"sourcesContent":["import React from \"react\";\r\nimport {\r\n Typography,\r\n Link\r\n} from \"@mui/material\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAppThemeContext } from \"../../../core/context/AppThemeContext\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport type { TypographyProps } from \"libs/shared/types/common-types\";\r\n\r\n\r\nconst Typography2: React.FC<TypographyProps> = ({\r\n text,\r\n size: propFontSize,\r\n color,\r\n sx,\r\n isRequired = false,\r\n variantType = \"default\",\r\n onClick,\r\n target = \"_self\",\r\n ...props\r\n}) => {\r\n const { t } = useTranslation();\r\n const { fontSize } = useAppThemeContext();\r\n const theme = useTheme();\r\n\r\n const resolvedColor = React.useMemo(() => {\r\n if (color) return color;\r\n\r\n switch (variantType) {\r\n case \"primary\":\r\n return theme.palette.primary.main;\r\n\r\n case \"secondary\":\r\n return theme.palette.text.secondary;\r\n\r\n case \"error\":\r\n return theme.palette.error.main;\r\n\r\n case \"link\":\r\n return theme.palette.primary.main;\r\n\r\n default:\r\n return theme.palette.text.primary;\r\n }\r\n }, [color, variantType, theme]);\r\n\r\n const commonStyle = {\r\n color: resolvedColor,\r\n fontSize: propFontSize || fontSize,\r\n ...sx,\r\n };\r\n\r\n const content = (\r\n <>\r\n {typeof text === \"string\" ? t(text) : text}\r\n {isRequired && (\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n color: theme.palette.error.main,\r\n fontSize: propFontSize || fontSize,\r\n ml: 0.25,\r\n }}\r\n >\r\n *\r\n </Typography>\r\n )}\r\n </>\r\n );\r\n\r\n if (variantType === \"link\") {\r\n return (\r\n <Link\r\n target={target}\r\n underline=\"always\"\r\n onClick={onClick}\r\n sx={{\r\n ...commonStyle,\r\n cursor: \"pointer\",\r\n fontWeight: 500,\r\n color : theme.palette.text.primary,\r\n \"&:hover\": {\r\n opacity: 0.8,\r\n },\r\n }}\r\n >\r\n {content}\r\n </Link>\r\n );\r\n }\r\n\r\n return (\r\n <Typography\r\n {...props}\r\n sx={commonStyle}\r\n onClick={onClick}\r\n >\r\n {content}\r\n </Typography>\r\n );\r\n};\r\n\r\nexport default React.memo(Typography2);"],"mappings":";;;;;;AAuGA,IAAA,IAAe,EAAM,MA5F2B,EAC9C,SACA,MAAM,GACN,UACA,OACA,gBAAa,IACb,iBAAc,WACd,YACA,YAAS,SACT,GAAG,QACC;CACJ,IAAM,EAAE,SAAM,EAAe,GACvB,EAAE,gBAAa,EAAmB,GAClC,IAAQ,EAAS,GAuBjB,IAAc;EAClB,OAtBoB,EAAM,cAAc;GACxC,IAAI,GAAO,OAAO;GAElB,QAAQ,GAAR;IACE,KAAK,WACH,OAAO,EAAM,QAAQ,QAAQ;IAE/B,KAAK,aACH,OAAO,EAAM,QAAQ,KAAK;IAE5B,KAAK,SACH,OAAO,EAAM,QAAQ,MAAM;IAE7B,KAAK,QACH,OAAO,EAAM,QAAQ,QAAQ;IAE/B,SACE,OAAO,EAAM,QAAQ,KAAK;GAC9B;EACF,GAAG;GAAC;GAAO;GAAa;EAAK,CAGpB;EACP,UAAU,KAAgB;EAC1B,GAAG;CACL,GAEM,IACJ,kBAAA,GAAA,EAAA,UAAA,CACG,OAAO,KAAS,WAAW,EAAE,CAAI,IAAI,GACrC,KACC,kBAAC,GAAD;EACE,WAAU;EACV,IAAI;GACF,OAAO,EAAM,QAAQ,MAAM;GAC3B,UAAU,KAAgB;GAC1B,IAAI;EACN;EACD,UAAA;CAEW,CAAA,CAEd,EAAA,CAAA;CAwBJ,OArBI,MAAgB,SAEhB,kBAAC,GAAD;EACU;EACR,WAAU;EACD;EACT,IAAI;GACF,GAAG;GACH,QAAQ;GACR,YAAY;GACZ,OAAQ,EAAM,QAAQ,KAAK;GAC3B,WAAW,EACT,SAAS,GACX;EACF;EAEC,UAAA;CACG,CAAA,IAKR,kBAAC,GAAD;EACE,GAAI;EACJ,IAAI;EACK;EAER,UAAA;CACS,CAAA;AAEhB,CAEqC"}
@@ -0,0 +1,12 @@
1
+ import e from "./index114.js";
2
+ import t from "react";
3
+ import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ import { useSelector as a } from "react-redux";
5
+ var o = t.memo(({ label: t = "", value: o = "", children: s }) => {
6
+ let { isPreview: c } = a((e) => e.appData);
7
+ return c ? /* @__PURE__ */ i(n, { children: [/* @__PURE__ */ r(e, { text: t }), /* @__PURE__ */ r(e, { text: o || "-" })] }) : s;
8
+ });
9
+ //#endregion
10
+ export { o as default };
11
+
12
+ //# sourceMappingURL=index145.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index145.js","names":[],"sources":["../src/libs/shared/UI/previewText/PreviewText.tsx"],"sourcesContent":["import React from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport type { RootState } from \"store/store\"\r\nimport Typography2 from \"ui/typography/Typography2\";\r\nimport type { PreviewTextProps } from \"./PreviewText.type\";\r\n\r\nconst PreviewText = ({ label = \"\", value = \"\", children }: PreviewTextProps) => {\r\n const { isPreview } = useSelector((state: RootState) => state.appData);\r\n\r\n if (isPreview) {\r\n return <>\r\n <Typography2 text={label} />\r\n <Typography2 text={value || \"-\"} />\r\n </>\r\n }\r\n\r\n return children\r\n}\r\n\r\nexport default React.memo(PreviewText)"],"mappings":";;;;AAmBA,IAAA,IAAe,EAAM,MAbA,EAAE,WAAQ,IAAI,WAAQ,IAAI,kBAAiC;CAC5E,IAAM,EAAE,iBAAc,GAAa,MAAqB,EAAM,OAAO;CASrE,OAPI,IACO,kBAAA,GAAA,EAAA,UAAA,CACH,kBAAC,GAAD,EAAa,MAAM,EAAQ,CAAA,GAC3B,kBAAC,GAAD,EAAa,MAAM,KAAS,IAAM,CAAA,CACpC,EAAA,CAAA,IAGC;AACX,CAEqC"}