@erpsquad/common 1.10.61 → 1.10.63

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 (103) hide show
  1. package/dist/chunks/{ERPUIProvider-J0ITULsH.esm.js → ERPUIProvider-BBpkVsj9.esm.js} +6 -6
  2. package/dist/chunks/{ERPUIProvider-J0ITULsH.esm.js.map → ERPUIProvider-BBpkVsj9.esm.js.map} +1 -1
  3. package/dist/chunks/{ERPUIProvider-BK3ErZzr.js → ERPUIProvider-PAl_tpW_.js} +6 -6
  4. package/dist/chunks/{ERPUIProvider-BK3ErZzr.js.map → ERPUIProvider-PAl_tpW_.js.map} +1 -1
  5. package/dist/chunks/{android-12-switch-DwQ80MjS.js → android-12-switch-WBRkjBCP.js} +22 -15
  6. package/dist/chunks/{android-12-switch-DwQ80MjS.js.map → android-12-switch-WBRkjBCP.js.map} +1 -1
  7. package/dist/chunks/{android-12-switch-CWsjQ9_V.esm.js → android-12-switch-XAicROeO.esm.js} +22 -15
  8. package/dist/chunks/{android-12-switch-CWsjQ9_V.esm.js.map → android-12-switch-XAicROeO.esm.js.map} +1 -1
  9. package/dist/chunks/{appbar-BKCYuYKD.js → appbar-17zpqli4.js} +6 -6
  10. package/dist/chunks/appbar-17zpqli4.js.map +1 -0
  11. package/dist/chunks/{appbar-CQ5FSUhV.esm.js → appbar-BBLrVA6U.esm.js} +6 -6
  12. package/dist/chunks/appbar-BBLrVA6U.esm.js.map +1 -0
  13. package/dist/chunks/{checkbox-DVpvboV2.esm.js → checkbox-BG9DbVQ5.esm.js} +3 -3
  14. package/dist/chunks/{checkbox-DVpvboV2.esm.js.map → checkbox-BG9DbVQ5.esm.js.map} +1 -1
  15. package/dist/chunks/{checkbox-D9Q_dONB.js → checkbox-CS7OvJZk.js} +3 -3
  16. package/dist/chunks/{checkbox-D9Q_dONB.js.map → checkbox-CS7OvJZk.js.map} +1 -1
  17. package/dist/chunks/{default-data-B1mGeShg.esm.js → default-data-CK-90IND.esm.js} +12 -12
  18. package/dist/chunks/{default-data-B1mGeShg.esm.js.map → default-data-CK-90IND.esm.js.map} +1 -1
  19. package/dist/chunks/{default-data-BOPncQrd.js → default-data-Do_oTvMU.js} +12 -12
  20. package/dist/chunks/{default-data-BOPncQrd.js.map → default-data-Do_oTvMU.js.map} +1 -1
  21. package/dist/chunks/{form-builder-deconversion-B7Ico4Wt.js → form-builder-deconversion-CtfddwVS.js} +2 -2
  22. package/dist/chunks/form-builder-deconversion-CtfddwVS.js.map +1 -0
  23. package/dist/chunks/{form-builder-deconversion-CUr6uDVY.esm.js → form-builder-deconversion-DNCtkxQC.esm.js} +2 -2
  24. package/dist/chunks/form-builder-deconversion-DNCtkxQC.esm.js.map +1 -0
  25. package/dist/chunks/{fullScreen-C6wmX53f.esm.js → fullScreen-B5e0kvj4.esm.js} +2 -2
  26. package/dist/chunks/{fullScreen-C6wmX53f.esm.js.map → fullScreen-B5e0kvj4.esm.js.map} +1 -1
  27. package/dist/chunks/{fullScreen-Ilje5t_2.js → fullScreen-CzRFGTzg.js} +2 -2
  28. package/dist/chunks/{fullScreen-Ilje5t_2.js.map → fullScreen-CzRFGTzg.js.map} +1 -1
  29. package/dist/chunks/{modules-DhLwjN8v.js → modules-BEfRrTxc.js} +2 -2
  30. package/dist/chunks/{modules-DhLwjN8v.js.map → modules-BEfRrTxc.js.map} +1 -1
  31. package/dist/chunks/{modules-tItvvhnF.esm.js → modules-BjL8mfuw.esm.js} +2 -2
  32. package/dist/chunks/{modules-tItvvhnF.esm.js.map → modules-BjL8mfuw.esm.js.map} +1 -1
  33. package/dist/chunks/{page-context-CvxEbMEs.esm.js → page-context-BR0JEfCp.esm.js} +3 -3
  34. package/dist/chunks/{page-context-CvxEbMEs.esm.js.map → page-context-BR0JEfCp.esm.js.map} +1 -1
  35. package/dist/chunks/{page-context-C1aLBCMN.js → page-context-D32zeXhS.js} +3 -3
  36. package/dist/chunks/{page-context-C1aLBCMN.js.map → page-context-D32zeXhS.js.map} +1 -1
  37. package/dist/chunks/{reducer-CEIlU0Ko.esm.js → reducer-BTCTEHl_.esm.js} +2 -2
  38. package/dist/chunks/{reducer-CEIlU0Ko.esm.js.map → reducer-BTCTEHl_.esm.js.map} +1 -1
  39. package/dist/chunks/{reducer-DDNHc1q8.js → reducer-DznW4Uhk.js} +2 -2
  40. package/dist/chunks/{reducer-DDNHc1q8.js.map → reducer-DznW4Uhk.js.map} +1 -1
  41. package/dist/chunks/{route-page-map-pK2cJVjt.js → route-page-map-CuVKVc8s.js} +12 -5
  42. package/dist/chunks/route-page-map-CuVKVc8s.js.map +1 -0
  43. package/dist/chunks/{route-page-map-B-P_qkAc.esm.js → route-page-map-gBJ6YfCI.esm.js} +12 -5
  44. package/dist/chunks/route-page-map-gBJ6YfCI.esm.js.map +1 -0
  45. package/dist/chunks/{sidebar-CuuG9Cro.js → sidebar-CGHpNE59.js} +2 -2
  46. package/dist/chunks/{sidebar-CuuG9Cro.js.map → sidebar-CGHpNE59.js.map} +1 -1
  47. package/dist/chunks/{sidebar-XnB3MZSx.esm.js → sidebar-CaMjOaT0.esm.js} +2 -2
  48. package/dist/chunks/{sidebar-XnB3MZSx.esm.js.map → sidebar-CaMjOaT0.esm.js.map} +1 -1
  49. package/dist/chunks/{sidebarScreen-oRVnKUwK.js → sidebarScreen-BMRTGPNT.js} +3 -3
  50. package/dist/chunks/{sidebarScreen-oRVnKUwK.js.map → sidebarScreen-BMRTGPNT.js.map} +1 -1
  51. package/dist/chunks/{sidebarScreen-wd1XHW7h.esm.js → sidebarScreen-vQN2vT2D.esm.js} +3 -3
  52. package/dist/chunks/{sidebarScreen-wd1XHW7h.esm.js.map → sidebarScreen-vQN2vT2D.esm.js.map} +1 -1
  53. package/dist/chunks/{store-4PjkVqCL.js → store-BlcYtLUe.js} +2 -2
  54. package/dist/chunks/{store-4PjkVqCL.js.map → store-BlcYtLUe.js.map} +1 -1
  55. package/dist/chunks/{store-0dCHFFVS.esm.js → store-Djcai2P1.esm.js} +2 -2
  56. package/dist/chunks/{store-0dCHFFVS.esm.js.map → store-Djcai2P1.esm.js.map} +1 -1
  57. package/dist/chunks/{translations-C3zIy7AK.js → translations-BUtRMBGm.js} +12 -5
  58. package/dist/chunks/translations-BUtRMBGm.js.map +1 -0
  59. package/dist/chunks/{translations-DQnNjq2i.esm.js → translations-D-6zNK2j.esm.js} +13 -6
  60. package/dist/chunks/translations-D-6zNK2j.esm.js.map +1 -0
  61. package/dist/chunks/{uom-field-wrapper-D9vQnJ7u.esm.js → uom-field-wrapper-DtW2ZDgN.esm.js} +48 -36
  62. package/dist/chunks/uom-field-wrapper-DtW2ZDgN.esm.js.map +1 -0
  63. package/dist/chunks/{uom-field-wrapper-DfH09cqm.js → uom-field-wrapper-xtQt1ONl.js} +48 -36
  64. package/dist/chunks/uom-field-wrapper-xtQt1ONl.js.map +1 -0
  65. package/dist/chunks/{useAddressContact-D7bXJ169.js → useAddressContact-CpNYDTXT.js} +4 -4
  66. package/dist/chunks/{useAddressContact-D7bXJ169.js.map → useAddressContact-CpNYDTXT.js.map} +1 -1
  67. package/dist/chunks/{useAddressContact-CgADuA2u.esm.js → useAddressContact-Cz2yg1H9.esm.js} +4 -4
  68. package/dist/chunks/{useAddressContact-CgADuA2u.esm.js.map → useAddressContact-Cz2yg1H9.esm.js.map} +1 -1
  69. package/dist/components/calculation-summary/calculation-summary.d.ts +2 -0
  70. package/dist/components/index.esm.js +8 -8
  71. package/dist/components/index.js +8 -8
  72. package/dist/constants/index.esm.js +2 -2
  73. package/dist/constants/index.js +2 -2
  74. package/dist/contexts/index.esm.js +1 -1
  75. package/dist/contexts/index.js +1 -1
  76. package/dist/hooks/index.esm.js +3 -3
  77. package/dist/hooks/index.js +3 -3
  78. package/dist/index.esm.js +22 -21
  79. package/dist/index.js +18 -17
  80. package/dist/index.js.map +1 -1
  81. package/dist/layout/index.esm.js +2 -2
  82. package/dist/layout/index.js +2 -2
  83. package/dist/redux/index.esm.js +2 -2
  84. package/dist/redux/index.js +2 -2
  85. package/dist/src/components/calculation-summary/calculation-summary.d.ts +2 -0
  86. package/dist/src/utils/calculation.d.ts +3 -2
  87. package/dist/utils/calculation.d.ts +3 -2
  88. package/dist/utils/index.esm.js +4 -3
  89. package/dist/utils/index.js +3 -2
  90. package/dist/utils/index.js.map +1 -1
  91. package/dist/views/index.esm.js +8 -8
  92. package/dist/views/index.js +7 -7
  93. package/package.json +1 -1
  94. package/dist/chunks/appbar-BKCYuYKD.js.map +0 -1
  95. package/dist/chunks/appbar-CQ5FSUhV.esm.js.map +0 -1
  96. package/dist/chunks/form-builder-deconversion-B7Ico4Wt.js.map +0 -1
  97. package/dist/chunks/form-builder-deconversion-CUr6uDVY.esm.js.map +0 -1
  98. package/dist/chunks/route-page-map-B-P_qkAc.esm.js.map +0 -1
  99. package/dist/chunks/route-page-map-pK2cJVjt.js.map +0 -1
  100. package/dist/chunks/translations-C3zIy7AK.js.map +0 -1
  101. package/dist/chunks/translations-DQnNjq2i.esm.js.map +0 -1
  102. package/dist/chunks/uom-field-wrapper-D9vQnJ7u.esm.js.map +0 -1
  103. package/dist/chunks/uom-field-wrapper-DfH09cqm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"translations-C3zIy7AK.js","sources":["../../src/utils/calculation.ts","../../src/utils/translations.ts"],"sourcesContent":["import { getApiConfigSafe } from './api-config';\n\nexport function calculateAdditionalDiscountCrossValue(\n sourceValue: number,\n sourceField: 'percentage' | 'amount',\n total: number\n): number {\n if (total <= 0 || sourceValue <= 0) return 0;\n if (sourceField === 'percentage') {\n const result = total * (sourceValue / 100);\n return getApiConfigSafe()?.countryEnv === 'spar' ? result : Number(result.toFixed(2));\n }\n const result = (sourceValue / total) * 100;\n return getApiConfigSafe()?.countryEnv === 'spar' ? result : Number(result.toFixed(2));\n}\n\nexport const calculateEntries = (\n\titems: any[],\n\texpenses?: any[],\n\tadditionalDiscountOn?: string,\n\tadditionalDiscountPercentage?: number,\n\tprovidedAdditionalDiscountAmount?: number,\n\troundOff?: boolean,\n\troundOffAmount?: number,\n promotionAmount?: number\n) => {\n\tlet totalQuantity = 0,\n\t\ttotalDiscount = 0,\n\t\ttotalTaxAmount = 0,\n\t\ttotalAmountExcludingAll = 0,\n\t\ttotalAmountIncludingAll = 0,\n\t\tadditionalDiscountAmount = 0,\n\t\ttotalGrossAmount = 0;\n\n\tif (items.length) {\n\t\titems.forEach((item) => {\n\t\t\ttotalQuantity += Number(item?.quantity || 0);\n\t\t\ttotalDiscount += Number(item?.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll +=\n\t\t\t\tNumber(item.quantity || 0) *\n\t\t\t\tNumber(item.rate || 0);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\tif (expenses?.length) {\n\t\texpenses.forEach((item) => {\n\t\t\ttotalQuantity += 1;\n\t\t\ttotalDiscount += Number(item.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll += 1 * Number(item.rate);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\n\tlet finalAmount = totalAmountIncludingAll;\n\n\tif (additionalDiscountOn) {\n\t\tif (additionalDiscountOn === 'Net Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalAmountIncludingAll * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t} else if (additionalDiscountOn === 'Gross Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalGrossAmount * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tfinalAmount =\n\t\tadditionalDiscountOn === 'Gross Amount'\n\t\t\t? Number(totalAmountIncludingAll) - Number(additionalDiscountAmount)\n\t\t\t: Number(totalAmountIncludingAll) - Number(additionalDiscountAmount);\n \n if(Number(promotionAmount)) {\n finalAmount = finalAmount - Number(promotionAmount)\n }\n\n\tconst actualTotalAmount = finalAmount;\n\tif (roundOff && roundOffAmount && Number(roundOffAmount)) {\n\t\tfinalAmount = Math.round(finalAmount / roundOffAmount) * roundOffAmount;\n\t}\n\tconst roundOffDifference = Number(finalAmount) - Number(actualTotalAmount);\n\tconst totalItemsExpenseDiscount = totalDiscount;\n\ttotalDiscount += Number(additionalDiscountAmount);\n\treturn {\n\t\ttotalQuantity,\n\t\ttotalDiscount,\n\t\ttotalItemsExpenseDiscount,\n\t\ttotalTaxAmount,\n\t\ttotalAmountExludingAll: totalAmountExcludingAll,\n\t\ttotalAmountIncludingAll,\n\t\tadditinoalDiscountAmount: additionalDiscountAmount,\n\t\ttotalGrossAmount,\n\t\tactualTotalAmount,\n\t\troundOffDifference,\n\t\tfinalAmount\n\t};\n};","import _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { getV1LanguagesTranslations } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nconst loadedModules = new Set<string>();\n\nfunction nestTranslation(flatObject: any) {\n const nested = {};\n const keys = Object.keys(flatObject);\n const namespaceKeys = new Set<string>();\n\n // Identify all keys that act as parent namespaces for nested objects\n keys.forEach((key) => {\n keys.forEach((otherKey) => {\n if (otherKey.startsWith(key + '.')) {\n namespaceKeys.add(key);\n }\n });\n });\n\n // Nest only the leaf keys to prevent intermediate primitive string collisions\n keys.forEach((key) => {\n if (!namespaceKeys.has(key)) {\n _.set(nested, key, flatObject[key]);\n }\n });\n\n return nested;\n}\n\nexport async function loadModuleTranslations(moduleNames: string[], i18nInstance?: any) {\n const modulesToLoad = moduleNames?.filter(m => !loadedModules.has(m)) || [];\n\n if(!modulesToLoad.length) return;\n\n const filters = `(module.in=[${modulesToLoad?.join(',')}])`;\n\n const response = await getV1LanguagesTranslations({\n filters,\n limit: 9999,\n ...getToken(),\n });\n\n const data = response?.data?.translations || [];\n\n const resources: Record<string, Record<string, string>> = {};\n\n data.forEach((module: any) => {\n module?.fields?.forEach((item: any) => {\n for (const lang in item.translation) {\n if (!resources[lang]) {\n resources[lang] = {};\n }\n resources[lang][item.slug] = item.translation[lang];\n }\n })\n });\n\n \n if (i18nInstance) {\n Object.keys(resources).forEach((lang) => {\n const nested = nestTranslation(resources[lang]);\n i18nInstance.addResourceBundle(lang, 'translation', nested, true, true);\n });\n }\n\n modulesToLoad.forEach((module) => {\n loadedModules.add(module);\n });\n}\n"],"names":["result","getApiConfigSafe","getV1LanguagesTranslations","getToken","module","_a"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"translations-DQnNjq2i.esm.js","sources":["../../src/utils/calculation.ts","../../src/utils/translations.ts"],"sourcesContent":["import { getApiConfigSafe } from './api-config';\n\nexport function calculateAdditionalDiscountCrossValue(\n sourceValue: number,\n sourceField: 'percentage' | 'amount',\n total: number\n): number {\n if (total <= 0 || sourceValue <= 0) return 0;\n if (sourceField === 'percentage') {\n const result = total * (sourceValue / 100);\n return getApiConfigSafe()?.countryEnv === 'spar' ? result : Number(result.toFixed(2));\n }\n const result = (sourceValue / total) * 100;\n return getApiConfigSafe()?.countryEnv === 'spar' ? result : Number(result.toFixed(2));\n}\n\nexport const calculateEntries = (\n\titems: any[],\n\texpenses?: any[],\n\tadditionalDiscountOn?: string,\n\tadditionalDiscountPercentage?: number,\n\tprovidedAdditionalDiscountAmount?: number,\n\troundOff?: boolean,\n\troundOffAmount?: number,\n promotionAmount?: number\n) => {\n\tlet totalQuantity = 0,\n\t\ttotalDiscount = 0,\n\t\ttotalTaxAmount = 0,\n\t\ttotalAmountExcludingAll = 0,\n\t\ttotalAmountIncludingAll = 0,\n\t\tadditionalDiscountAmount = 0,\n\t\ttotalGrossAmount = 0;\n\n\tif (items.length) {\n\t\titems.forEach((item) => {\n\t\t\ttotalQuantity += Number(item?.quantity || 0);\n\t\t\ttotalDiscount += Number(item?.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll +=\n\t\t\t\tNumber(item.quantity || 0) *\n\t\t\t\tNumber(item.rate || 0);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\tif (expenses?.length) {\n\t\texpenses.forEach((item) => {\n\t\t\ttotalQuantity += 1;\n\t\t\ttotalDiscount += Number(item.discount_amount || 0);\n\t\t\ttotalAmountIncludingAll += Number(\n\t\t\t\titem.total_amount || 0\n\t\t\t);\n\t\t\ttotalTaxAmount += Number(item.tax_amount);\n\t\t\ttotalAmountExcludingAll += 1 * Number(item.rate);\n\t\t\ttotalGrossAmount += Number(item.gross_amount || 0);\n\t\t});\n\t}\n\n\tlet finalAmount = totalAmountIncludingAll;\n\n\tif (additionalDiscountOn) {\n\t\tif (additionalDiscountOn === 'Net Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalAmountIncludingAll * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t} else if (additionalDiscountOn === 'Gross Amount') {\n\t\t\tif (\n\t\t\t\tadditionalDiscountPercentage &&\n\t\t\t\tNumber(additionalDiscountPercentage) !== 0\n\t\t\t) {\n\t\t\t\tadditionalDiscountAmount =\n\t\t\t\t\ttotalGrossAmount * (additionalDiscountPercentage / 100);\n\t\t\t} else {\n\t\t\t\tadditionalDiscountAmount = providedAdditionalDiscountAmount || 0;\n\t\t\t}\n\t\t}\n\t}\n\n\tfinalAmount =\n\t\tadditionalDiscountOn === 'Gross Amount'\n\t\t\t? Number(totalAmountIncludingAll) - Number(additionalDiscountAmount)\n\t\t\t: Number(totalAmountIncludingAll) - Number(additionalDiscountAmount);\n \n if(Number(promotionAmount)) {\n finalAmount = finalAmount - Number(promotionAmount)\n }\n\n\tconst actualTotalAmount = finalAmount;\n\tif (roundOff && roundOffAmount && Number(roundOffAmount)) {\n\t\tfinalAmount = Math.round(finalAmount / roundOffAmount) * roundOffAmount;\n\t}\n\tconst roundOffDifference = Number(finalAmount) - Number(actualTotalAmount);\n\tconst totalItemsExpenseDiscount = totalDiscount;\n\ttotalDiscount += Number(additionalDiscountAmount);\n\treturn {\n\t\ttotalQuantity,\n\t\ttotalDiscount,\n\t\ttotalItemsExpenseDiscount,\n\t\ttotalTaxAmount,\n\t\ttotalAmountExludingAll: totalAmountExcludingAll,\n\t\ttotalAmountIncludingAll,\n\t\tadditinoalDiscountAmount: additionalDiscountAmount,\n\t\ttotalGrossAmount,\n\t\tactualTotalAmount,\n\t\troundOffDifference,\n\t\tfinalAmount\n\t};\n};","import _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { getV1LanguagesTranslations } from \"../api-client/api.system-feature/api\";\nimport { getToken } from \"./common\";\n\nconst loadedModules = new Set<string>();\n\nfunction nestTranslation(flatObject: any) {\n const nested = {};\n const keys = Object.keys(flatObject);\n const namespaceKeys = new Set<string>();\n\n // Identify all keys that act as parent namespaces for nested objects\n keys.forEach((key) => {\n keys.forEach((otherKey) => {\n if (otherKey.startsWith(key + '.')) {\n namespaceKeys.add(key);\n }\n });\n });\n\n // Nest only the leaf keys to prevent intermediate primitive string collisions\n keys.forEach((key) => {\n if (!namespaceKeys.has(key)) {\n _.set(nested, key, flatObject[key]);\n }\n });\n\n return nested;\n}\n\nexport async function loadModuleTranslations(moduleNames: string[], i18nInstance?: any) {\n const modulesToLoad = moduleNames?.filter(m => !loadedModules.has(m)) || [];\n\n if(!modulesToLoad.length) return;\n\n const filters = `(module.in=[${modulesToLoad?.join(',')}])`;\n\n const response = await getV1LanguagesTranslations({\n filters,\n limit: 9999,\n ...getToken(),\n });\n\n const data = response?.data?.translations || [];\n\n const resources: Record<string, Record<string, string>> = {};\n\n data.forEach((module: any) => {\n module?.fields?.forEach((item: any) => {\n for (const lang in item.translation) {\n if (!resources[lang]) {\n resources[lang] = {};\n }\n resources[lang][item.slug] = item.translation[lang];\n }\n })\n });\n\n \n if (i18nInstance) {\n Object.keys(resources).forEach((lang) => {\n const nested = nestTranslation(resources[lang]);\n i18nInstance.addResourceBundle(lang, 'translation', nested, true, true);\n });\n }\n\n modulesToLoad.forEach((module) => {\n loadedModules.add(module);\n });\n}\n"],"names":["result","_a"],"mappings":"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"}