persian-data-grid 0.5.0 → 0.7.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 (282) hide show
  1. package/OFL.txt +93 -0
  2. package/README.md +179 -22
  3. package/dist/ERPTableGroupRow-E5Q6FYDS.js +125 -0
  4. package/dist/ERPTableGroupRow-E5Q6FYDS.js.map +1 -0
  5. package/dist/ERPTableGroupRow-F2IPDYL5.cjs +131 -0
  6. package/dist/ERPTableGroupRow-F2IPDYL5.cjs.map +1 -0
  7. package/dist/GridPlugin-Bewn0X51.d.ts +57 -0
  8. package/dist/GridPlugin-DewWufGZ.d.cts +57 -0
  9. package/dist/GridPresenceService-GEH6535Q.js +3 -0
  10. package/dist/GridPresenceService-GEH6535Q.js.map +1 -0
  11. package/dist/GridPresenceService-RDN5FXHQ.cjs +12 -0
  12. package/dist/GridPresenceService-RDN5FXHQ.cjs.map +1 -0
  13. package/dist/GridSession-CeIfVFck.d.ts +2625 -0
  14. package/dist/GridSession-CmQn2RnL.d.cts +2625 -0
  15. package/dist/GridSyncService-3JQLEY65.cjs +12 -0
  16. package/dist/GridSyncService-3JQLEY65.cjs.map +1 -0
  17. package/dist/GridSyncService-GECXGEKL.js +3 -0
  18. package/dist/GridSyncService-GECXGEKL.js.map +1 -0
  19. package/dist/PdfRenderer-B9FJaCo_.d.cts +22 -0
  20. package/dist/PdfRenderer-bN7ca_Aj.d.ts +22 -0
  21. package/dist/RemoteApi-CCQxiSf1.d.cts +28 -0
  22. package/dist/RemoteApi-CCQxiSf1.d.ts +28 -0
  23. package/dist/SelectImpl-NM4O4IGW.js +447 -0
  24. package/dist/SelectImpl-NM4O4IGW.js.map +1 -0
  25. package/dist/SelectImpl-W2EI4T7O.cjs +453 -0
  26. package/dist/SelectImpl-W2EI4T7O.cjs.map +1 -0
  27. package/dist/UITableController-C71LXBiX.d.ts +678 -0
  28. package/dist/UITableController-CIwnHIw8.d.cts +678 -0
  29. package/dist/VazirmatnPdfRenderer-CpCqA-Wh.d.cts +96 -0
  30. package/dist/VazirmatnPdfRenderer-D46smncn.d.ts +96 -0
  31. package/dist/adapters/arian-erp.cjs +89 -0
  32. package/dist/adapters/arian-erp.cjs.map +1 -0
  33. package/dist/adapters/arian-erp.d.cts +62 -0
  34. package/dist/adapters/arian-erp.d.ts +62 -0
  35. package/dist/adapters/arian-erp.js +79 -0
  36. package/dist/adapters/arian-erp.js.map +1 -0
  37. package/dist/appendAtEnd-RHIQRG2W.cjs +35 -0
  38. package/dist/appendAtEnd-RHIQRG2W.cjs.map +1 -0
  39. package/dist/appendAtEnd-TJEABLGD.js +33 -0
  40. package/dist/appendAtEnd-TJEABLGD.js.map +1 -0
  41. package/dist/applyImportedRows-C2fWYoPy.d.cts +135 -0
  42. package/dist/applyImportedRows-Cqh_N_0k.d.ts +135 -0
  43. package/dist/applyRowVisibilityHandler-Q64ZFC7A.cjs +86 -0
  44. package/dist/applyRowVisibilityHandler-Q64ZFC7A.cjs.map +1 -0
  45. package/dist/applyRowVisibilityHandler-ZLZXQEGY.js +84 -0
  46. package/dist/applyRowVisibilityHandler-ZLZXQEGY.js.map +1 -0
  47. package/dist/broadcastChannelTransport-FHUMV76O.cjs +12 -0
  48. package/dist/broadcastChannelTransport-FHUMV76O.cjs.map +1 -0
  49. package/dist/broadcastChannelTransport-MIH53VNZ.js +3 -0
  50. package/dist/broadcastChannelTransport-MIH53VNZ.js.map +1 -0
  51. package/dist/callbackRemoteApi-BYLjmSI6.d.ts +51 -0
  52. package/dist/callbackRemoteApi-Cv26MmSD.d.cts +51 -0
  53. package/dist/cellRenderContext-BaNh4qn_.d.ts +42 -0
  54. package/dist/cellRenderContext-DvngkptV.d.cts +42 -0
  55. package/dist/chunk-27ALJSZP.js +12187 -0
  56. package/dist/chunk-27ALJSZP.js.map +1 -0
  57. package/dist/chunk-3HP3HQCW.cjs +688 -0
  58. package/dist/chunk-3HP3HQCW.cjs.map +1 -0
  59. package/dist/chunk-3Y3KKGEC.js +3 -0
  60. package/dist/chunk-3Y3KKGEC.js.map +1 -0
  61. package/dist/chunk-52LFOPXD.cjs +588 -0
  62. package/dist/chunk-52LFOPXD.cjs.map +1 -0
  63. package/dist/chunk-5ALMNLUR.cjs +1408 -0
  64. package/dist/chunk-5ALMNLUR.cjs.map +1 -0
  65. package/dist/chunk-5HKVMPBD.js +937 -0
  66. package/dist/chunk-5HKVMPBD.js.map +1 -0
  67. package/dist/chunk-72IVAOTK.cjs +38 -0
  68. package/dist/chunk-72IVAOTK.cjs.map +1 -0
  69. package/dist/chunk-77UXAJII.js +112 -0
  70. package/dist/chunk-77UXAJII.js.map +1 -0
  71. package/dist/chunk-7GWV5HGO.js +36 -0
  72. package/dist/chunk-7GWV5HGO.js.map +1 -0
  73. package/dist/chunk-7T6AWRPU.js +581 -0
  74. package/dist/chunk-7T6AWRPU.js.map +1 -0
  75. package/dist/chunk-AU3RDJYQ.js +243 -0
  76. package/dist/chunk-AU3RDJYQ.js.map +1 -0
  77. package/dist/chunk-CILNIWYW.cjs +100 -0
  78. package/dist/chunk-CILNIWYW.cjs.map +1 -0
  79. package/dist/chunk-CMQ4VLCW.cjs +840 -0
  80. package/dist/chunk-CMQ4VLCW.cjs.map +1 -0
  81. package/dist/chunk-DFFP7SJ6.cjs +257 -0
  82. package/dist/chunk-DFFP7SJ6.cjs.map +1 -0
  83. package/dist/chunk-E2J533UH.cjs +53 -0
  84. package/dist/chunk-E2J533UH.cjs.map +1 -0
  85. package/dist/chunk-EBV6HGZB.cjs +33 -0
  86. package/dist/chunk-EBV6HGZB.cjs.map +1 -0
  87. package/dist/chunk-F4PYOYHR.js +112 -0
  88. package/dist/chunk-F4PYOYHR.js.map +1 -0
  89. package/dist/chunk-F6EMC75A.cjs +34 -0
  90. package/dist/chunk-F6EMC75A.cjs.map +1 -0
  91. package/dist/chunk-GKE33FOJ.js +32 -0
  92. package/dist/chunk-GKE33FOJ.js.map +1 -0
  93. package/dist/chunk-GQEDLUMB.js +168 -0
  94. package/dist/chunk-GQEDLUMB.js.map +1 -0
  95. package/dist/chunk-HLOHWFOA.js +645 -0
  96. package/dist/chunk-HLOHWFOA.js.map +1 -0
  97. package/dist/chunk-IMPCRWYP.cjs +251 -0
  98. package/dist/chunk-IMPCRWYP.cjs.map +1 -0
  99. package/dist/chunk-IPPIXOVQ.js +317 -0
  100. package/dist/chunk-IPPIXOVQ.js.map +1 -0
  101. package/dist/chunk-J4XJ4UBC.js +1404 -0
  102. package/dist/chunk-J4XJ4UBC.js.map +1 -0
  103. package/dist/chunk-J7CPPFXT.cjs +89 -0
  104. package/dist/chunk-J7CPPFXT.cjs.map +1 -0
  105. package/dist/chunk-JOICD47Q.cjs +41 -0
  106. package/dist/chunk-JOICD47Q.cjs.map +1 -0
  107. package/dist/chunk-KCNTKYUY.js +206 -0
  108. package/dist/chunk-KCNTKYUY.js.map +1 -0
  109. package/dist/chunk-KHMG6EI2.js +13 -0
  110. package/dist/chunk-KHMG6EI2.js.map +1 -0
  111. package/dist/chunk-KMRURD5J.cjs +15 -0
  112. package/dist/chunk-KMRURD5J.cjs.map +1 -0
  113. package/dist/chunk-KRJG3KMP.cjs +174 -0
  114. package/dist/chunk-KRJG3KMP.cjs.map +1 -0
  115. package/dist/chunk-LY27YAXE.cjs +208 -0
  116. package/dist/chunk-LY27YAXE.cjs.map +1 -0
  117. package/dist/chunk-MT3KLB2Q.cjs +944 -0
  118. package/dist/chunk-MT3KLB2Q.cjs.map +1 -0
  119. package/dist/chunk-MUQQKPWR.js +84 -0
  120. package/dist/chunk-MUQQKPWR.js.map +1 -0
  121. package/dist/chunk-N7SJTINL.cjs +4 -0
  122. package/dist/chunk-N7SJTINL.cjs.map +1 -0
  123. package/dist/chunk-NB5GCGHL.js +833 -0
  124. package/dist/chunk-NB5GCGHL.js.map +1 -0
  125. package/dist/chunk-NQUVAJQA.js +298 -0
  126. package/dist/chunk-NQUVAJQA.js.map +1 -0
  127. package/dist/chunk-NTV2UUAJ.cjs +149 -0
  128. package/dist/chunk-NTV2UUAJ.cjs.map +1 -0
  129. package/dist/chunk-PJQWHF6T.js +31 -0
  130. package/dist/chunk-PJQWHF6T.js.map +1 -0
  131. package/dist/chunk-PQY54EL5.js +248 -0
  132. package/dist/chunk-PQY54EL5.js.map +1 -0
  133. package/dist/chunk-Q7TBBUTX.cjs +110 -0
  134. package/dist/chunk-Q7TBBUTX.cjs.map +1 -0
  135. package/dist/chunk-QZN7R2WP.cjs +114 -0
  136. package/dist/chunk-QZN7R2WP.cjs.map +1 -0
  137. package/dist/chunk-RKVSJU46.js +35 -0
  138. package/dist/chunk-RKVSJU46.js.map +1 -0
  139. package/dist/chunk-SVO62ZV2.js +50 -0
  140. package/dist/chunk-SVO62ZV2.js.map +1 -0
  141. package/dist/chunk-SX4VQXAA.cjs +114 -0
  142. package/dist/chunk-SX4VQXAA.cjs.map +1 -0
  143. package/dist/chunk-SZ7BLAY3.js +92 -0
  144. package/dist/chunk-SZ7BLAY3.js.map +1 -0
  145. package/dist/chunk-TN4MG6FY.js +112 -0
  146. package/dist/chunk-TN4MG6FY.js.map +1 -0
  147. package/dist/chunk-UC7PHDM6.cjs +331 -0
  148. package/dist/chunk-UC7PHDM6.cjs.map +1 -0
  149. package/dist/chunk-UXVLYUUW.js +108 -0
  150. package/dist/chunk-UXVLYUUW.js.map +1 -0
  151. package/dist/chunk-VBAZ77Q4.js +932 -0
  152. package/dist/chunk-VBAZ77Q4.js.map +1 -0
  153. package/dist/chunk-VSAFQTW5.cjs +319 -0
  154. package/dist/chunk-VSAFQTW5.cjs.map +1 -0
  155. package/dist/chunk-VYJQ2HTA.cjs +936 -0
  156. package/dist/chunk-VYJQ2HTA.cjs.map +1 -0
  157. package/dist/chunk-W5256BJ4.js +56 -0
  158. package/dist/chunk-W5256BJ4.js.map +1 -0
  159. package/dist/chunk-WTHTVKVI.cjs +12299 -0
  160. package/dist/chunk-WTHTVKVI.cjs.map +1 -0
  161. package/dist/chunk-WUMOSOEK.cjs +62 -0
  162. package/dist/chunk-WUMOSOEK.cjs.map +1 -0
  163. package/dist/chunk-XLRE2J25.js +140 -0
  164. package/dist/chunk-XLRE2J25.js.map +1 -0
  165. package/dist/chunk-Z4QPZ3Z3.cjs +114 -0
  166. package/dist/chunk-Z4QPZ3Z3.cjs.map +1 -0
  167. package/dist/createEngineGridQuery-BBkud5oE.d.ts +939 -0
  168. package/dist/createEngineGridQuery-D-fgO_jg.d.cts +939 -0
  169. package/dist/date-picker-jalali.cjs +263 -0
  170. package/dist/date-picker-jalali.cjs.map +1 -0
  171. package/dist/date-picker-jalali.d.cts +62 -0
  172. package/dist/date-picker-jalali.d.ts +62 -0
  173. package/dist/date-picker-jalali.js +256 -0
  174. package/dist/date-picker-jalali.js.map +1 -0
  175. package/dist/finance.cjs +205 -0
  176. package/dist/finance.cjs.map +1 -0
  177. package/dist/finance.d.cts +90 -0
  178. package/dist/finance.d.ts +90 -0
  179. package/dist/finance.js +157 -0
  180. package/dist/finance.js.map +1 -0
  181. package/dist/foldedColumn-IHDT4ARZ.cjs +66 -0
  182. package/dist/foldedColumn-IHDT4ARZ.cjs.map +1 -0
  183. package/dist/foldedColumn-TFURUKFG.js +64 -0
  184. package/dist/foldedColumn-TFURUKFG.js.map +1 -0
  185. package/dist/headless.cjs +729 -0
  186. package/dist/headless.cjs.map +1 -0
  187. package/dist/headless.d.cts +508 -0
  188. package/dist/headless.d.ts +508 -0
  189. package/dist/headless.js +226 -0
  190. package/dist/headless.js.map +1 -0
  191. package/dist/index-DN8M8Jkq.d.cts +14 -0
  192. package/dist/index-DmzL-F_o.d.ts +14 -0
  193. package/dist/index.cjs +8060 -11409
  194. package/dist/index.cjs.map +1 -1
  195. package/dist/index.d.cts +457 -2305
  196. package/dist/index.d.ts +457 -2305
  197. package/dist/index.js +7302 -11084
  198. package/dist/index.js.map +1 -1
  199. package/dist/locales/ar.cjs +12 -0
  200. package/dist/locales/ar.cjs.map +1 -0
  201. package/dist/locales/ar.d.cts +6 -0
  202. package/dist/locales/ar.d.ts +6 -0
  203. package/dist/locales/ar.js +3 -0
  204. package/dist/locales/ar.js.map +1 -0
  205. package/dist/locales/en.cjs +12 -0
  206. package/dist/locales/en.cjs.map +1 -0
  207. package/dist/locales/en.d.cts +6 -0
  208. package/dist/locales/en.d.ts +6 -0
  209. package/dist/locales/en.js +3 -0
  210. package/dist/locales/en.js.map +1 -0
  211. package/dist/locales/fa.cjs +12 -0
  212. package/dist/locales/fa.cjs.map +1 -0
  213. package/dist/locales/fa.d.cts +6 -0
  214. package/dist/locales/fa.d.ts +6 -0
  215. package/dist/locales/fa.js +3 -0
  216. package/dist/locales/fa.js.map +1 -0
  217. package/dist/locales/index.cjs +51 -0
  218. package/dist/locales/index.cjs.map +1 -0
  219. package/dist/locales/index.d.cts +5 -0
  220. package/dist/locales/index.d.ts +5 -0
  221. package/dist/locales/index.js +6 -0
  222. package/dist/locales/index.js.map +1 -0
  223. package/dist/memoryRecords-AWDKUJ2F.cjs +50 -0
  224. package/dist/memoryRecords-AWDKUJ2F.cjs.map +1 -0
  225. package/dist/memoryRecords-OJTGXLRH.js +47 -0
  226. package/dist/memoryRecords-OJTGXLRH.js.map +1 -0
  227. package/dist/pagedFooterTotals-DXCGDO6F.cjs +27 -0
  228. package/dist/pagedFooterTotals-DXCGDO6F.cjs.map +1 -0
  229. package/dist/pagedFooterTotals-ORWKUNE7.js +25 -0
  230. package/dist/pagedFooterTotals-ORWKUNE7.js.map +1 -0
  231. package/dist/pagedKit-MFGAJFSK.cjs +134 -0
  232. package/dist/pagedKit-MFGAJFSK.cjs.map +1 -0
  233. package/dist/pagedKit-WYWY4LRV.js +127 -0
  234. package/dist/pagedKit-WYWY4LRV.js.map +1 -0
  235. package/dist/pagedSearch-HCPJW7VM.js +38 -0
  236. package/dist/pagedSearch-HCPJW7VM.js.map +1 -0
  237. package/dist/pagedSearch-U3WCG4GN.cjs +42 -0
  238. package/dist/pagedSearch-U3WCG4GN.cjs.map +1 -0
  239. package/dist/plugins/csv.cjs +124 -0
  240. package/dist/plugins/csv.cjs.map +1 -0
  241. package/dist/plugins/csv.d.cts +44 -0
  242. package/dist/plugins/csv.d.ts +44 -0
  243. package/dist/plugins/csv.js +120 -0
  244. package/dist/plugins/csv.js.map +1 -0
  245. package/dist/plugins/excel.cjs +52 -0
  246. package/dist/plugins/excel.cjs.map +1 -0
  247. package/dist/plugins/excel.d.cts +14 -0
  248. package/dist/plugins/excel.d.ts +14 -0
  249. package/dist/plugins/excel.js +7 -0
  250. package/dist/plugins/excel.js.map +1 -0
  251. package/dist/plugins/pdf/fonts/vazirmatn.cjs +50 -0
  252. package/dist/plugins/pdf/fonts/vazirmatn.cjs.map +1 -0
  253. package/dist/plugins/pdf/fonts/vazirmatn.d.cts +24 -0
  254. package/dist/plugins/pdf/fonts/vazirmatn.d.ts +24 -0
  255. package/dist/plugins/pdf/fonts/vazirmatn.js +39 -0
  256. package/dist/plugins/pdf/fonts/vazirmatn.js.map +1 -0
  257. package/dist/plugins/pdf.cjs +24 -0
  258. package/dist/plugins/pdf.cjs.map +1 -0
  259. package/dist/plugins/pdf.d.cts +21 -0
  260. package/dist/plugins/pdf.d.ts +21 -0
  261. package/dist/plugins/pdf.js +7 -0
  262. package/dist/plugins/pdf.js.map +1 -0
  263. package/dist/presence.cjs +56 -0
  264. package/dist/presence.cjs.map +1 -0
  265. package/dist/presence.d.cts +17 -0
  266. package/dist/presence.d.ts +17 -0
  267. package/dist/presence.js +54 -0
  268. package/dist/presence.js.map +1 -0
  269. package/dist/rebuildRowVisibility-66EAZ356.cjs +21 -0
  270. package/dist/rebuildRowVisibility-66EAZ356.cjs.map +1 -0
  271. package/dist/rebuildRowVisibility-6TYM5BP2.js +19 -0
  272. package/dist/rebuildRowVisibility-6TYM5BP2.js.map +1 -0
  273. package/dist/styles.css +1440 -0
  274. package/dist/sync.cjs +148 -0
  275. package/dist/sync.cjs.map +1 -0
  276. package/dist/sync.d.cts +17 -0
  277. package/dist/sync.d.ts +17 -0
  278. package/dist/sync.js +146 -0
  279. package/dist/sync.js.map +1 -0
  280. package/dist/types-D__47BKv.d.cts +23 -0
  281. package/dist/types-D__47BKv.d.ts +23 -0
  282. package/package.json +185 -29
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ // ui/locales/en.ts
4
+ var enMessages = {
5
+ "general.addNewRow": "Add row",
6
+ "general.copy": "Copy",
7
+ "general.cut": "Cut",
8
+ "general.paste": "Paste",
9
+ "general.delete": "Delete",
10
+ "general.chooseFromList": "Choose from list",
11
+ "general.toggle": "Select all",
12
+ "general.exportToExcel": "Export to Excel",
13
+ "general.exportToExcelSuccess": "Excel export succeeded",
14
+ "general.exportToExcelError": "Excel export failed",
15
+ "general.exportToPdf": "Export to PDF",
16
+ "general.exportToPdfSuccess": "PDF export succeeded",
17
+ "general.exportToPdfError": "PDF export failed",
18
+ "general.importFromExcel": "Import from Excel",
19
+ "general.importFromExcelSuccess": "Excel import succeeded",
20
+ "general.importFromExcelError": "Excel import failed",
21
+ "general.selected": "Selected",
22
+ "general.search": "Search",
23
+ "general.selectField": "Select",
24
+ "general.selectPlaceholder": "Select",
25
+ "general.choice": "Choose column",
26
+ "general.prev": "Previous",
27
+ "general.next": "Next",
28
+ "general.noData": "No data",
29
+ "general.loading": "Loading\u2026",
30
+ "general.footerTotal": "Total",
31
+ "general.footerAvg": "Average",
32
+ "general.replicateRow": "Duplicate row",
33
+ "general.edit": "Edit",
34
+ "general.rowEdit": "Edit row",
35
+ "general.row": "Row",
36
+ "general.selectRow": "Select row",
37
+ "general.save": "Save",
38
+ "general.notActive": "Inactive",
39
+ "general.add": "Add",
40
+ "general.themeDark": "Dark theme",
41
+ "general.themeLight": "Light theme",
42
+ "general.toolbar": "Toolbar",
43
+ "general.filter": "Filter",
44
+ "general.filterApply": "Apply",
45
+ "general.filterClear": "Clear",
46
+ "general.filterActive": "Filter active",
47
+ "general.rowsIn": "rows in",
48
+ "general.page": "pages",
49
+ "general.validationInRow": "In row",
50
+ "general.validationInColumn": "in column",
51
+ "general.loadMore": "Show more ({visible} of {total})",
52
+ "general.searchFound": "{count} matches found",
53
+ "general.searchNotFound": "No matches",
54
+ "general.searchPosition": "{current} of {total}",
55
+ "columnMenu.open": "Column menu",
56
+ "columnMenu.sortAsc": "Sort ascending",
57
+ "columnMenu.sortDesc": "Sort descending",
58
+ "columnMenu.sortNone": "Clear sort",
59
+ "columnMenu.filter": "Filter\u2026",
60
+ "columnMenu.hideColumn": "Hide column",
61
+ "columnMenu.pinStart": "Pin left",
62
+ "columnMenu.pinEnd": "Pin right",
63
+ "columnMenu.pinNone": "Unpin",
64
+ "columnMenu.autoSize": "Auto-size column",
65
+ "columnMenu.columnsPanel": "Configure columns",
66
+ "a11y.sortedAsc": "Sorted by {column} ascending",
67
+ "a11y.sortedDesc": "Sorted by {column} descending",
68
+ "a11y.sortCleared": "Sort cleared",
69
+ "a11y.filterResult": "{visible} of {total} rows after filter",
70
+ "a11y.filterCleared": "Filter cleared",
71
+ "a11y.rowsSelected": "{count} rows selected",
72
+ "a11y.selectionCleared": "Selection cleared",
73
+ "a11y.validationError": "Validation error: {message}",
74
+ "a11y.validationGeneric": "Validation error",
75
+ "history.title": "History",
76
+ "history.empty": "No history yet. Edit a cell to append events.",
77
+ "history.severity": "Severity",
78
+ "history.category": "Category",
79
+ "history.filterAll": "All",
80
+ "history.severity.info": "Info",
81
+ "history.severity.warning": "Warning",
82
+ "history.severity.error": "Error",
83
+ "history.category.data": "Data",
84
+ "history.category.structure": "Structure",
85
+ "history.category.view": "View",
86
+ "history.category.system": "System",
87
+ "history.restore": "Restore previous value",
88
+ "offline.online": "Online",
89
+ "offline.offline": "Offline",
90
+ "offline.pendingCount": "{count} unsaved changes",
91
+ "offline.pendingEmpty": "All changes saved locally",
92
+ "sync.policy": "Conflict policy",
93
+ "sync.policy.lastWriteWins": "Last write wins",
94
+ "sync.policy.serverWins": "Server wins",
95
+ "sync.policy.manual": "Manual",
96
+ "sync.now": "Sync now",
97
+ "sync.syncing": "Syncing\u2026",
98
+ "sync.unavailable": "Sync transport not configured",
99
+ "sync.result": "Pushed {pushed}, pulled {pulled}, conflicts {conflicts}",
100
+ "sync.local": "Local",
101
+ "sync.remote": "Remote",
102
+ "sync.keepLocal": "Keep local",
103
+ "sync.keepRemote": "Keep remote",
104
+ "date.pickDate": "Pick a date",
105
+ "date.pickRange": "Pick a range",
106
+ "date.clear": "Clear",
107
+ "date.calendar": "Jalali calendar",
108
+ "date.prevMonth": "Previous month",
109
+ "date.nextMonth": "Next month"
110
+ };
111
+
112
+ exports.enMessages = enMessages;
113
+ //# sourceMappingURL=chunk-QZN7R2WP.cjs.map
114
+ //# sourceMappingURL=chunk-QZN7R2WP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../ui/locales/en.ts"],"names":[],"mappings":"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","file":"chunk-QZN7R2WP.cjs","sourcesContent":["import type { ERPTableMessages } from './types';\r\n\r\n/** English (en) message pack (PR-127). */\r\nexport const enMessages: ERPTableMessages = {\r\n 'general.addNewRow': 'Add row',\r\n 'general.copy': 'Copy',\r\n 'general.cut': 'Cut',\r\n 'general.paste': 'Paste',\r\n 'general.delete': 'Delete',\r\n 'general.chooseFromList': 'Choose from list',\r\n 'general.toggle': 'Select all',\r\n 'general.exportToExcel': 'Export to Excel',\r\n 'general.exportToExcelSuccess': 'Excel export succeeded',\r\n 'general.exportToExcelError': 'Excel export failed',\r\n 'general.exportToPdf': 'Export to PDF',\r\n 'general.exportToPdfSuccess': 'PDF export succeeded',\r\n 'general.exportToPdfError': 'PDF export failed',\r\n 'general.importFromExcel': 'Import from Excel',\r\n 'general.importFromExcelSuccess': 'Excel import succeeded',\r\n 'general.importFromExcelError': 'Excel import failed',\r\n 'general.selected': 'Selected',\r\n 'general.search': 'Search',\r\n 'general.selectField': 'Select',\r\n 'general.selectPlaceholder': 'Select',\r\n 'general.choice': 'Choose column',\r\n 'general.prev': 'Previous',\r\n 'general.next': 'Next',\r\n 'general.noData': 'No data',\r\n 'general.loading': 'Loading…',\r\n 'general.footerTotal': 'Total',\r\n 'general.footerAvg': 'Average',\r\n 'general.replicateRow': 'Duplicate row',\r\n 'general.edit': 'Edit',\r\n 'general.rowEdit': 'Edit row',\r\n 'general.row': 'Row',\r\n 'general.selectRow': 'Select row',\r\n 'general.save': 'Save',\r\n 'general.notActive': 'Inactive',\r\n 'general.add': 'Add',\r\n 'general.themeDark': 'Dark theme',\r\n 'general.themeLight': 'Light theme',\r\n 'general.toolbar': 'Toolbar',\r\n 'general.filter': 'Filter',\r\n 'general.filterApply': 'Apply',\r\n 'general.filterClear': 'Clear',\r\n 'general.filterActive': 'Filter active',\r\n 'general.rowsIn': 'rows in',\r\n 'general.page': 'pages',\r\n 'general.validationInRow': 'In row',\r\n 'general.validationInColumn': 'in column',\r\n 'general.loadMore': 'Show more ({visible} of {total})',\r\n 'general.searchFound': '{count} matches found',\r\n 'general.searchNotFound': 'No matches',\r\n 'general.searchPosition': '{current} of {total}',\r\n 'columnMenu.open': 'Column menu',\r\n 'columnMenu.sortAsc': 'Sort ascending',\r\n 'columnMenu.sortDesc': 'Sort descending',\r\n 'columnMenu.sortNone': 'Clear sort',\r\n 'columnMenu.filter': 'Filter…',\r\n 'columnMenu.hideColumn': 'Hide column',\r\n 'columnMenu.pinStart': 'Pin left',\r\n 'columnMenu.pinEnd': 'Pin right',\r\n 'columnMenu.pinNone': 'Unpin',\r\n 'columnMenu.autoSize': 'Auto-size column',\r\n 'columnMenu.columnsPanel': 'Configure columns',\r\n 'a11y.sortedAsc': 'Sorted by {column} ascending',\r\n 'a11y.sortedDesc': 'Sorted by {column} descending',\r\n 'a11y.sortCleared': 'Sort cleared',\r\n 'a11y.filterResult': '{visible} of {total} rows after filter',\r\n 'a11y.filterCleared': 'Filter cleared',\r\n 'a11y.rowsSelected': '{count} rows selected',\r\n 'a11y.selectionCleared': 'Selection cleared',\r\n 'a11y.validationError': 'Validation error: {message}',\r\n 'a11y.validationGeneric': 'Validation error',\r\n 'history.title': 'History',\r\n 'history.empty': 'No history yet. Edit a cell to append events.',\r\n 'history.severity': 'Severity',\r\n 'history.category': 'Category',\r\n 'history.filterAll': 'All',\r\n 'history.severity.info': 'Info',\r\n 'history.severity.warning': 'Warning',\r\n 'history.severity.error': 'Error',\r\n 'history.category.data': 'Data',\r\n 'history.category.structure': 'Structure',\r\n 'history.category.view': 'View',\r\n 'history.category.system': 'System',\r\n 'history.restore': 'Restore previous value',\r\n 'offline.online': 'Online',\r\n 'offline.offline': 'Offline',\r\n 'offline.pendingCount': '{count} unsaved changes',\r\n 'offline.pendingEmpty': 'All changes saved locally',\r\n 'sync.policy': 'Conflict policy',\r\n 'sync.policy.lastWriteWins': 'Last write wins',\r\n 'sync.policy.serverWins': 'Server wins',\r\n 'sync.policy.manual': 'Manual',\r\n 'sync.now': 'Sync now',\r\n 'sync.syncing': 'Syncing…',\r\n 'sync.unavailable': 'Sync transport not configured',\r\n 'sync.result': 'Pushed {pushed}, pulled {pulled}, conflicts {conflicts}',\r\n 'sync.local': 'Local',\r\n 'sync.remote': 'Remote',\r\n 'sync.keepLocal': 'Keep local',\r\n 'sync.keepRemote': 'Keep remote',\r\n 'date.pickDate': 'Pick a date',\r\n 'date.pickRange': 'Pick a range',\r\n 'date.clear': 'Clear',\r\n 'date.calendar': 'Jalali calendar',\r\n 'date.prevMonth': 'Previous month',\r\n 'date.nextMonth': 'Next month',\r\n};\r\n\r\nexport default enMessages;\r\n"]}
@@ -0,0 +1,35 @@
1
+ // infrastructure/finance/currency.ts
2
+ var RIALS_PER_TOMAN = 10;
3
+ function rialToToman(rial) {
4
+ if (!Number.isFinite(rial)) return NaN;
5
+ return Math.trunc(rial) / RIALS_PER_TOMAN;
6
+ }
7
+ function tomanToRial(toman) {
8
+ if (!Number.isFinite(toman)) return NaN;
9
+ return Math.trunc(toman) * RIALS_PER_TOMAN;
10
+ }
11
+ function convertCurrency(amount, from, to) {
12
+ if (!Number.isFinite(amount)) return NaN;
13
+ if (from === to) return Math.trunc(amount);
14
+ if (from === "rial" && to === "toman") return rialToToman(amount);
15
+ return tomanToRial(amount);
16
+ }
17
+ function formatPrice(amount, options = {}) {
18
+ if (!Number.isFinite(amount)) return "";
19
+ const unit = options.unit ?? "rial";
20
+ const displayUnit = options.displayUnit ?? unit;
21
+ const converted = convertCurrency(amount, unit, displayUnit);
22
+ if (!Number.isFinite(converted)) return "";
23
+ const locale = options.locale ?? (options.persianDigits === false ? "en-US" : "fa-IR");
24
+ const formatted = new Intl.NumberFormat(locale, {
25
+ useGrouping: true,
26
+ maximumFractionDigits: displayUnit === "toman" ? 1 : 0
27
+ }).format(converted);
28
+ if (options.withLabel === false) return formatted;
29
+ const label = displayUnit === "toman" ? "\u062A\u0648\u0645\u0627\u0646" : "\u0631\u06CC\u0627\u0644";
30
+ return `${formatted} ${label}`;
31
+ }
32
+
33
+ export { RIALS_PER_TOMAN, convertCurrency, formatPrice, rialToToman, tomanToRial };
34
+ //# sourceMappingURL=chunk-RKVSJU46.js.map
35
+ //# sourceMappingURL=chunk-RKVSJU46.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../infrastructure/finance/currency.ts"],"names":[],"mappings":";AAQO,IAAM,eAAA,GAAkB;AAExB,SAAS,YAAY,IAAA,EAAsB;AAChD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,IAAI,GAAG,OAAO,GAAA;AACnC,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,GAAI,eAAA;AAC5B;AAEO,SAAS,YAAY,KAAA,EAAuB;AACjD,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,GAAG,OAAO,GAAA;AACpC,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,GAAI,eAAA;AAC7B;AAEO,SAAS,eAAA,CACd,MAAA,EACA,IAAA,EACA,EAAA,EACQ;AACR,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,MAAM,GAAG,OAAO,GAAA;AACrC,EAAA,IAAI,IAAA,KAAS,EAAA,EAAI,OAAO,IAAA,CAAK,MAAM,MAAM,CAAA;AACzC,EAAA,IAAI,SAAS,MAAA,IAAU,EAAA,KAAO,OAAA,EAAS,OAAO,YAAY,MAAM,CAAA;AAChE,EAAA,OAAO,YAAY,MAAM,CAAA;AAC3B;AAkBO,SAAS,WAAA,CACd,MAAA,EACA,OAAA,GAA8B,EAAC,EACvB;AACR,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,MAAM,GAAG,OAAO,EAAA;AACrC,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,MAAA;AAC7B,EAAA,MAAM,WAAA,GAAc,QAAQ,WAAA,IAAe,IAAA;AAC3C,EAAA,MAAM,SAAA,GAAY,eAAA,CAAgB,MAAA,EAAQ,IAAA,EAAM,WAAW,CAAA;AAC3D,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,SAAS,GAAG,OAAO,EAAA;AAExC,EAAA,MAAM,SAAS,OAAA,CAAQ,MAAA,KAAW,OAAA,CAAQ,aAAA,KAAkB,QAAQ,OAAA,GAAU,OAAA,CAAA;AAC9E,EAAA,MAAM,SAAA,GAAY,IAAI,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQ;AAAA,IAC9C,WAAA,EAAa,IAAA;AAAA,IACb,qBAAA,EAAuB,WAAA,KAAgB,OAAA,GAAU,CAAA,GAAI;AAAA,GACtD,CAAA,CAAE,MAAA,CAAO,SAAS,CAAA;AAEnB,EAAA,IAAI,OAAA,CAAQ,SAAA,KAAc,KAAA,EAAO,OAAO,SAAA;AACxC,EAAA,MAAM,KAAA,GAAQ,WAAA,KAAgB,OAAA,GAAU,gCAAA,GAAU,0BAAA;AAClD,EAAA,OAAO,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAC9B","file":"chunk-RKVSJU46.js","sourcesContent":["/**\r\n * Iranian money units (PR-140).\r\n * Canonical storage is integer **rials** (same convention as `toMinorUnits`).\r\n * 1 toman = 10 rials.\r\n */\r\n\r\nexport type CurrencyUnit = 'rial' | 'toman';\r\n\r\nexport const RIALS_PER_TOMAN = 10;\r\n\r\nexport function rialToToman(rial: number): number {\r\n if (!Number.isFinite(rial)) return NaN;\r\n return Math.trunc(rial) / RIALS_PER_TOMAN;\r\n}\r\n\r\nexport function tomanToRial(toman: number): number {\r\n if (!Number.isFinite(toman)) return NaN;\r\n return Math.trunc(toman) * RIALS_PER_TOMAN;\r\n}\r\n\r\nexport function convertCurrency(\r\n amount: number,\r\n from: CurrencyUnit,\r\n to: CurrencyUnit,\r\n): number {\r\n if (!Number.isFinite(amount)) return NaN;\r\n if (from === to) return Math.trunc(amount);\r\n if (from === 'rial' && to === 'toman') return rialToToman(amount);\r\n return tomanToRial(amount);\r\n}\r\n\r\nexport type FormatPriceOptions = {\r\n /** Unit of the numeric `amount` argument. Default `rial`. */\r\n unit?: CurrencyUnit;\r\n /** Unit shown in the label suffix. Defaults to `unit`. */\r\n displayUnit?: CurrencyUnit;\r\n /** Append unit label (`ریال` / `تومان`). Default true. */\r\n withLabel?: boolean;\r\n /** Use Persian digits via Intl. Default true. */\r\n persianDigits?: boolean;\r\n locale?: string;\r\n};\r\n\r\n/**\r\n * Format a money amount. Converts when `unit` ≠ `displayUnit`.\r\n * Values are truncated to integers before conversion.\r\n */\r\nexport function formatPrice(\r\n amount: number,\r\n options: FormatPriceOptions = {},\r\n): string {\r\n if (!Number.isFinite(amount)) return '';\r\n const unit = options.unit ?? 'rial';\r\n const displayUnit = options.displayUnit ?? unit;\r\n const converted = convertCurrency(amount, unit, displayUnit);\r\n if (!Number.isFinite(converted)) return '';\r\n\r\n const locale = options.locale ?? (options.persianDigits === false ? 'en-US' : 'fa-IR');\r\n const formatted = new Intl.NumberFormat(locale, {\r\n useGrouping: true,\r\n maximumFractionDigits: displayUnit === 'toman' ? 1 : 0,\r\n }).format(converted);\r\n\r\n if (options.withLabel === false) return formatted;\r\n const label = displayUnit === 'toman' ? 'تومان' : 'ریال';\r\n return `${formatted} ${label}`;\r\n}\r\n"]}
@@ -0,0 +1,50 @@
1
+ // infrastructure/Repositories/callbackRemoteApi.ts
2
+ function describeBaseQueryError(error) {
3
+ if (error && typeof error === "object") {
4
+ const { status, data } = error;
5
+ const detail = typeof data === "string" ? data : data == null ? "" : JSON.stringify(data);
6
+ return `status ${String(status ?? "unknown")}${detail ? `: ${detail}` : ""}`;
7
+ }
8
+ return String(error);
9
+ }
10
+ var CallbackRemoteApi = class {
11
+ constructor(send, onError) {
12
+ this.send = send;
13
+ this.onError = onError;
14
+ }
15
+ async request(input) {
16
+ try {
17
+ return await this.send(input);
18
+ } catch (error) {
19
+ this.onError?.(error);
20
+ throw error;
21
+ }
22
+ }
23
+ };
24
+ function createBaseQueryRemoteApi(run, onError) {
25
+ return async (request) => {
26
+ let failure = null;
27
+ try {
28
+ const res = await run(request);
29
+ if (!res) {
30
+ failure = new Error(`RemoteApi request failed: empty response ${request.endpoint}`);
31
+ } else if (res.error !== void 0 && res.error !== null) {
32
+ failure = new Error(
33
+ `RemoteApi request failed: ${describeBaseQueryError(res.error)} ${request.endpoint}`
34
+ );
35
+ failure.cause = res.error;
36
+ } else {
37
+ return res.data;
38
+ }
39
+ } catch (error) {
40
+ onError?.(error, request);
41
+ throw error;
42
+ }
43
+ onError?.(failure, request);
44
+ throw failure;
45
+ };
46
+ }
47
+
48
+ export { CallbackRemoteApi, createBaseQueryRemoteApi };
49
+ //# sourceMappingURL=chunk-SVO62ZV2.js.map
50
+ //# sourceMappingURL=chunk-SVO62ZV2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../infrastructure/Repositories/callbackRemoteApi.ts"],"names":[],"mappings":";AAKA,SAAS,uBAAuB,KAAA,EAAwB;AACtD,EAAA,IAAI,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACtC,IAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI,KAAA;AACzB,IAAA,MAAM,MAAA,GAAS,OAAO,IAAA,KAAS,QAAA,GAAW,IAAA,GAAO,QAAQ,IAAA,GAAO,EAAA,GAAK,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA;AACxF,IAAA,OAAO,CAAA,OAAA,EAAU,MAAA,CAAO,MAAA,IAAU,SAAS,CAAC,GAAG,MAAA,GAAS,CAAA,EAAA,EAAK,MAAM,CAAA,CAAA,GAAK,EAAE,CAAA,CAAA;AAAA,EAC5E;AACA,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AA0BO,IAAM,oBAAN,MAA6C;AAAA,EAClD,WAAA,CACmB,MACA,OAAA,EACjB;AAFiB,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA,EAChB;AAAA,EAEH,MAAM,QAA6B,KAAA,EAA6C;AAC9E,IAAA,IAAI;AACF,MAAA,OAAQ,MAAM,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA;AAAA,IAC/B,SAAS,KAAA,EAAO;AACd,MAAA,IAAA,CAAK,UAAU,KAAK,CAAA;AACpB,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AACF;AAcO,SAAS,wBAAA,CACd,KACA,OAAA,EACiD;AACjD,EAAA,OAAO,OAAO,OAAA,KAAY;AACxB,IAAA,IAAI,OAAA,GAAwB,IAAA;AAC5B,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAM,GAAA,CAAI,OAAO,CAAA;AAC7B,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA,OAAA,GAAU,IAAI,KAAA,CAAM,CAAA,yCAAA,EAA4C,OAAA,CAAQ,QAAQ,CAAA,CAAE,CAAA;AAAA,MACpF,WAAW,GAAA,CAAI,KAAA,KAAU,KAAA,CAAA,IAAa,GAAA,CAAI,UAAU,IAAA,EAAM;AACxD,QAAA,OAAA,GAAU,IAAI,KAAA;AAAA,UACZ,6BAA6B,sBAAA,CAAuB,GAAA,CAAI,KAAK,CAAC,CAAA,CAAA,EAAI,QAAQ,QAAQ,CAAA;AAAA,SACpF;AACA,QAAC,OAAA,CAAwC,QAAQ,GAAA,CAAI,KAAA;AAAA,MACvD,CAAA,MAAO;AACL,QAAA,OAAO,GAAA,CAAI,IAAA;AAAA,MACb;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,GAAU,OAAO,OAAO,CAAA;AACxB,MAAA,MAAM,KAAA;AAAA,IACR;AACA,IAAA,OAAA,GAAU,SAAS,OAAO,CAAA;AAC1B,IAAA,MAAM,OAAA;AAAA,EACR,CAAA;AACF","file":"chunk-SVO62ZV2.js","sourcesContent":["import type { RemoteApi } from '../../application/ports/RemoteApi';\r\n\r\n/** Shape resolved by RTK Query base queries: they never throw, they resolve `{ error }`. */\r\nexport type BaseQueryResult = { data?: unknown; error?: unknown } | null | undefined;\r\n\r\nfunction describeBaseQueryError(error: unknown): string {\r\n if (error && typeof error === 'object') {\r\n const { status, data } = error as { status?: unknown; data?: unknown };\r\n const detail = typeof data === 'string' ? data : data == null ? '' : JSON.stringify(data);\r\n return `status ${String(status ?? 'unknown')}${detail ? `: ${detail}` : ''}`;\r\n }\r\n return String(error);\r\n}\r\n\r\nexport type RemoteApiRequest = {\r\n endpoint: string;\r\n params?: Record<string, unknown>;\r\n method?: 'GET' | 'POST';\r\n};\r\n\r\n/**\r\n * Wraps ANY host transport as a `RemoteApi` port — the grid never learns how\r\n * requests are authenticated or where defaults come from.\r\n *\r\n * arianERP example (RTK Query base query with token refresh + Redux defaults):\r\n *\r\n * const remoteApi = new CallbackRemoteApi(async ({ endpoint, params, method }) => {\r\n * const res = await baseQueryByToken(\r\n * { url: endpoint, method: method ?? 'POST', body: params ?? {} },\r\n * { getState: () => store.getState(), dispatch: store.dispatch } as never,\r\n * {},\r\n * );\r\n * if (!res || res.error) throw new Error('request failed'); // RTK resolves { error }\r\n * return res.data;\r\n * });\r\n *\r\n * or let `createBaseQueryRemoteApi` do that check (throws on `error`, returns `data`).\r\n */\r\nexport class CallbackRemoteApi implements RemoteApi {\r\n constructor(\r\n private readonly send: (request: RemoteApiRequest) => Promise<unknown>,\r\n private readonly onError?: (error: unknown) => void,\r\n ) {}\r\n\r\n async request<TResponse = unknown>(input: RemoteApiRequest): Promise<TResponse> {\r\n try {\r\n return (await this.send(input)) as TResponse;\r\n } catch (error) {\r\n this.onError?.(error);\r\n throw error;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Adapter for RTK-style base queries that resolve `{ data } | { error }` instead\r\n * of throwing. The returned `send` rejects when `error` is set (or the result\r\n * is empty) and resolves `data` otherwise, so the grid never treats a failure\r\n * as `undefined` data.\r\n *\r\n * const remoteApi = new CallbackRemoteApi(\r\n * createBaseQueryRemoteApi(({ endpoint, params, method }) =>\r\n * baseQueryByToken({ url: endpoint, method: method ?? 'POST', body: params ?? {} }, api, {}),\r\n * ),\r\n * );\r\n */\r\nexport function createBaseQueryRemoteApi(\r\n run: (request: RemoteApiRequest) => Promise<BaseQueryResult>,\r\n onError?: (error: unknown, request: RemoteApiRequest) => void,\r\n): (request: RemoteApiRequest) => Promise<unknown> {\r\n return async (request) => {\r\n let failure: Error | null = null;\r\n try {\r\n const res = await run(request);\r\n if (!res) {\r\n failure = new Error(`RemoteApi request failed: empty response ${request.endpoint}`);\r\n } else if (res.error !== undefined && res.error !== null) {\r\n failure = new Error(\r\n `RemoteApi request failed: ${describeBaseQueryError(res.error)} ${request.endpoint}`,\r\n );\r\n (failure as Error & { cause?: unknown }).cause = res.error;\r\n } else {\r\n return res.data;\r\n }\r\n } catch (error) {\r\n onError?.(error, request);\r\n throw error;\r\n }\r\n onError?.(failure, request);\r\n throw failure;\r\n };\r\n}\r\n"]}
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ // ui/locales/fa.ts
4
+ var faMessages = {
5
+ "general.addNewRow": "\u0627\u0641\u0632\u0648\u062F\u0646 \u0633\u0637\u0631",
6
+ "general.copy": "\u06A9\u067E\u06CC",
7
+ "general.cut": "\u0628\u0631\u0634",
8
+ "general.paste": "\u0686\u0633\u0628\u0627\u0646\u062F\u0646",
9
+ "general.delete": "\u062D\u0630\u0641",
10
+ "general.chooseFromList": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0627\u0632 \u0644\u06CC\u0633\u062A",
11
+ "general.toggle": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0647\u0645\u0647",
12
+ "general.exportToExcel": "\u062E\u0631\u0648\u062C\u06CC \u0627\u06A9\u0633\u0644",
13
+ "general.exportToExcelSuccess": "\u062E\u0631\u0648\u062C\u06CC \u0627\u06A9\u0633\u0644 \u0628\u0627 \u0645\u0648\u0641\u0642\u06CC\u062A \u0627\u0646\u062C\u0627\u0645 \u0634\u062F",
14
+ "general.exportToExcelError": "\u062E\u0631\u0648\u062C\u06CC \u0627\u06A9\u0633\u0644 \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062F",
15
+ "general.exportToPdf": "\u062E\u0631\u0648\u062C\u06CC PDF",
16
+ "general.exportToPdfSuccess": "\u062E\u0631\u0648\u062C\u06CC PDF \u0628\u0627 \u0645\u0648\u0641\u0642\u06CC\u062A \u0627\u0646\u062C\u0627\u0645 \u0634\u062F",
17
+ "general.exportToPdfError": "\u062E\u0631\u0648\u062C\u06CC PDF \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062F",
18
+ "general.importFromExcel": "\u0648\u0631\u0648\u062F \u0627\u0632 \u0627\u06A9\u0633\u0644",
19
+ "general.importFromExcelSuccess": "\u0648\u0631\u0648\u062F \u0627\u06A9\u0633\u0644 \u0628\u0627 \u0645\u0648\u0641\u0642\u06CC\u062A \u0627\u0646\u062C\u0627\u0645 \u0634\u062F",
20
+ "general.importFromExcelError": "\u0648\u0631\u0648\u062F \u0627\u06A9\u0633\u0644 \u0646\u0627\u0645\u0648\u0641\u0642 \u0628\u0648\u062F",
21
+ "general.selected": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0634\u062F\u0647",
22
+ "general.search": "\u062C\u0633\u062A\u062C\u0648",
23
+ "general.selectField": "\u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",
24
+ "general.selectPlaceholder": "\u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",
25
+ "general.choice": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0633\u062A\u0648\u0646",
26
+ "general.prev": "\u0642\u0628\u0644\u06CC",
27
+ "general.next": "\u0628\u0639\u062F\u06CC",
28
+ "general.noData": "\u062F\u0627\u062F\u0647\u200C\u0627\u06CC \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F",
29
+ "general.loading": "\u062F\u0631 \u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC\u2026",
30
+ "general.footerTotal": "\u062C\u0645\u0639",
31
+ "general.footerAvg": "\u0645\u06CC\u0627\u0646\u06AF\u06CC\u0646",
32
+ "general.replicateRow": "\u062A\u06A9\u062B\u06CC\u0631 \u0633\u0637\u0631",
33
+ "general.edit": "\u0648\u06CC\u0631\u0627\u06CC\u0634",
34
+ "general.rowEdit": "\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0633\u0637\u0631",
35
+ "general.row": "\u0633\u0637\u0631",
36
+ "general.selectRow": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0633\u0637\u0631",
37
+ "general.save": "\u0630\u062E\u06CC\u0631\u0647",
38
+ "general.notActive": "\u063A\u06CC\u0631\u0641\u0639\u0627\u0644",
39
+ "general.add": "\u0627\u0641\u0632\u0648\u062F\u0646",
40
+ "general.themeDark": "\u062A\u0645 \u062A\u06CC\u0631\u0647",
41
+ "general.themeLight": "\u062A\u0645 \u0631\u0648\u0634\u0646",
42
+ "general.toolbar": "\u0646\u0648\u0627\u0631 \u0639\u0645\u0644\u06CC\u0627\u062A",
43
+ "general.filter": "\u0641\u06CC\u0644\u062A\u0631",
44
+ "general.filterApply": "\u0627\u0639\u0645\u0627\u0644",
45
+ "general.filterClear": "\u067E\u0627\u06A9 \u06A9\u0631\u062F\u0646",
46
+ "general.filterActive": "\u0641\u06CC\u0644\u062A\u0631 \u0641\u0639\u0627\u0644",
47
+ "general.rowsIn": "\u0633\u0637\u0631 \u062F\u0631",
48
+ "general.page": "\u0635\u0641\u062D\u0647",
49
+ "general.validationInRow": "\u062F\u0631 \u0633\u0637\u0631",
50
+ "general.validationInColumn": "\u062F\u0631 \u0633\u062A\u0648\u0646",
51
+ "general.loadMore": "\u0646\u0645\u0627\u06CC\u0634 \u0628\u06CC\u0634\u062A\u0631 ({visible} \u0627\u0632 {total})",
52
+ "general.searchFound": "{count} \u0645\u0648\u0631\u062F \u067E\u06CC\u062F\u0627 \u0634\u062F",
53
+ "general.searchNotFound": "\u0645\u0648\u0631\u062F\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F",
54
+ "general.searchPosition": "{current} \u0627\u0632 {total}",
55
+ "columnMenu.open": "\u0645\u0646\u0648\u06CC \u0633\u062A\u0648\u0646",
56
+ "columnMenu.sortAsc": "\u0645\u0631\u062A\u0628\u200C\u0633\u0627\u0632\u06CC \u0635\u0639\u0648\u062F\u06CC",
57
+ "columnMenu.sortDesc": "\u0645\u0631\u062A\u0628\u200C\u0633\u0627\u0632\u06CC \u0646\u0632\u0648\u0644\u06CC",
58
+ "columnMenu.sortNone": "\u0628\u062F\u0648\u0646 \u0645\u0631\u062A\u0628\u200C\u0633\u0627\u0632\u06CC",
59
+ "columnMenu.filter": "\u0641\u06CC\u0644\u062A\u0631\u2026",
60
+ "columnMenu.hideColumn": "\u0645\u062E\u0641\u06CC \u06A9\u0631\u062F\u0646 \u0633\u062A\u0648\u0646",
61
+ "columnMenu.pinStart": "\u0633\u0646\u062C\u0627\u0642 \u0634\u0631\u0648\u0639",
62
+ "columnMenu.pinEnd": "\u0633\u0646\u062C\u0627\u0642 \u067E\u0627\u06CC\u0627\u0646",
63
+ "columnMenu.pinNone": "\u0628\u062F\u0648\u0646 \u0633\u0646\u062C\u0627\u0642",
64
+ "columnMenu.autoSize": "\u0627\u0646\u062F\u0627\u0632\u0647 \u062E\u0648\u062F\u06A9\u0627\u0631",
65
+ "columnMenu.columnsPanel": "\u062A\u0646\u0638\u06CC\u0645 \u0633\u062A\u0648\u0646\u200C\u0647\u0627",
66
+ "a11y.sortedAsc": "\u0645\u0631\u062A\u0628 \u0634\u062F \u0628\u0631 \u0627\u0633\u0627\u0633 {column} \u0635\u0639\u0648\u062F\u06CC",
67
+ "a11y.sortedDesc": "\u0645\u0631\u062A\u0628 \u0634\u062F \u0628\u0631 \u0627\u0633\u0627\u0633 {column} \u0646\u0632\u0648\u0644\u06CC",
68
+ "a11y.sortCleared": "\u0645\u0631\u062A\u0628\u200C\u0633\u0627\u0632\u06CC \u0628\u0631\u062F\u0627\u0634\u062A\u0647 \u0634\u062F",
69
+ "a11y.filterResult": "{visible} \u0631\u062F\u06CC\u0641 \u0627\u0632 {total} \u067E\u0633 \u0627\u0632 \u0641\u06CC\u0644\u062A\u0631",
70
+ "a11y.filterCleared": "\u0641\u06CC\u0644\u062A\u0631 \u0628\u0631\u062F\u0627\u0634\u062A\u0647 \u0634\u062F",
71
+ "a11y.rowsSelected": "{count} \u0631\u062F\u06CC\u0641 \u0627\u0646\u062A\u062E\u0627\u0628 \u0634\u062F",
72
+ "a11y.selectionCleared": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0628\u0631\u062F\u0627\u0634\u062A\u0647 \u0634\u062F",
73
+ "a11y.validationError": "\u062E\u0637\u0627\u06CC \u0627\u0639\u062A\u0628\u0627\u0631\u0633\u0646\u062C\u06CC: {message}",
74
+ "a11y.validationGeneric": "\u062E\u0637\u0627\u06CC \u0627\u0639\u062A\u0628\u0627\u0631\u0633\u0646\u062C\u06CC",
75
+ "history.title": "\u062A\u0627\u0631\u06CC\u062E\u0686\u0647",
76
+ "history.empty": "\u0647\u0646\u0648\u0632 \u062A\u0627\u0631\u06CC\u062E\u0686\u0647\u200C\u0627\u06CC \u0646\u06CC\u0633\u062A. \u06CC\u06A9 \u0633\u0644\u0648\u0644 \u0631\u0627 \u0648\u06CC\u0631\u0627\u06CC\u0634 \u06A9\u0646\u06CC\u062F.",
77
+ "history.severity": "\u0634\u062F\u062A",
78
+ "history.category": "\u062F\u0633\u062A\u0647",
79
+ "history.filterAll": "\u0647\u0645\u0647",
80
+ "history.severity.info": "\u0627\u0637\u0644\u0627\u0639",
81
+ "history.severity.warning": "\u0647\u0634\u062F\u0627\u0631",
82
+ "history.severity.error": "\u062E\u0637\u0627",
83
+ "history.category.data": "\u062F\u0627\u062F\u0647",
84
+ "history.category.structure": "\u0633\u0627\u062E\u062A\u0627\u0631",
85
+ "history.category.view": "\u0646\u0645\u0627\u06CC\u0634",
86
+ "history.category.system": "\u0633\u06CC\u0633\u062A\u0645",
87
+ "history.restore": "\u0628\u0627\u0632\u06AF\u0631\u062F\u0627\u0646\u06CC \u0645\u0642\u062F\u0627\u0631 \u0642\u0628\u0644\u06CC",
88
+ "offline.online": "\u0622\u0646\u0644\u0627\u06CC\u0646",
89
+ "offline.offline": "\u0622\u0641\u0644\u0627\u06CC\u0646",
90
+ "offline.pendingCount": "{count} \u062A\u063A\u06CC\u06CC\u0631 \u0630\u062E\u06CC\u0631\u0647\u200C\u0646\u0634\u062F\u0647",
91
+ "offline.pendingEmpty": "\u0647\u0645\u0647 \u062A\u063A\u06CC\u06CC\u0631\u0627\u062A \u0645\u062D\u0644\u06CC \u0630\u062E\u06CC\u0631\u0647 \u0634\u062F",
92
+ "sync.policy": "\u0633\u06CC\u0627\u0633\u062A \u062A\u0639\u0627\u0631\u0636",
93
+ "sync.policy.lastWriteWins": "\u0622\u062E\u0631\u06CC\u0646 \u0646\u0648\u0634\u062A\u0647 \u0628\u0631\u0646\u062F\u0647",
94
+ "sync.policy.serverWins": "\u0633\u0631\u0648\u0631 \u0628\u0631\u0646\u062F\u0647",
95
+ "sync.policy.manual": "\u062F\u0633\u062A\u06CC",
96
+ "sync.now": "\u0647\u0645\u06AF\u0627\u0645\u200C\u0633\u0627\u0632\u06CC",
97
+ "sync.syncing": "\u062F\u0631 \u062D\u0627\u0644 \u0647\u0645\u06AF\u0627\u0645\u200C\u0633\u0627\u0632\u06CC\u2026",
98
+ "sync.unavailable": "\u0627\u0646\u062A\u0642\u0627\u0644 \u0647\u0645\u06AF\u0627\u0645\u200C\u0633\u0627\u0632\u06CC \u067E\u06CC\u06A9\u0631\u0628\u0646\u062F\u06CC \u0646\u0634\u062F\u0647",
99
+ "sync.result": "\u0627\u0631\u0633\u0627\u0644 {pushed}\u060C \u062F\u0631\u06CC\u0627\u0641\u062A {pulled}\u060C \u062A\u0639\u0627\u0631\u0636 {conflicts}",
100
+ "sync.local": "\u0645\u062D\u0644\u06CC",
101
+ "sync.remote": "\u0633\u0631\u0648\u0631",
102
+ "sync.keepLocal": "\u0646\u06AF\u0647\u200C\u062F\u0627\u0634\u062A\u0646 \u0645\u062D\u0644\u06CC",
103
+ "sync.keepRemote": "\u0646\u06AF\u0647\u200C\u062F\u0627\u0634\u062A\u0646 \u0633\u0631\u0648\u0631",
104
+ "date.pickDate": "\u0627\u0646\u062A\u062E\u0627\u0628 \u062A\u0627\u0631\u06CC\u062E",
105
+ "date.pickRange": "\u0627\u0646\u062A\u062E\u0627\u0628 \u0628\u0627\u0632\u0647",
106
+ "date.clear": "\u067E\u0627\u06A9 \u06A9\u0631\u062F\u0646",
107
+ "date.calendar": "\u062A\u0642\u0648\u06CC\u0645 \u062C\u0644\u0627\u0644\u06CC",
108
+ "date.prevMonth": "\u0645\u0627\u0647 \u0642\u0628\u0644",
109
+ "date.nextMonth": "\u0645\u0627\u0647 \u0628\u0639\u062F"
110
+ };
111
+
112
+ exports.faMessages = faMessages;
113
+ //# sourceMappingURL=chunk-SX4VQXAA.cjs.map
114
+ //# sourceMappingURL=chunk-SX4VQXAA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../ui/locales/fa.ts"],"names":[],"mappings":";;;AAGO,IAAM,UAAA,GAA+B;AAAA,EAC1C,mBAAA,EAAqB,yDAAA;AAAA,EACrB,cAAA,EAAgB,oBAAA;AAAA,EAChB,aAAA,EAAe,oBAAA;AAAA,EACf,eAAA,EAAiB,4CAAA;AAAA,EACjB,gBAAA,EAAkB,oBAAA;AAAA,EAClB,wBAAA,EAA0B,4EAAA;AAAA,EAC1B,gBAAA,EAAkB,yDAAA;AAAA,EAClB,uBAAA,EAAyB,yDAAA;AAAA,EACzB,8BAAA,EAAgC,uJAAA;AAAA,EAChC,4BAAA,EAA8B,iHAAA;AAAA,EAC9B,qBAAA,EAAuB,oCAAA;AAAA,EACvB,4BAAA,EAA8B,kIAAA;AAAA,EAC9B,0BAAA,EAA4B,4FAAA;AAAA,EAC5B,yBAAA,EAA2B,gEAAA;AAAA,EAC3B,gCAAA,EAAkC,iJAAA;AAAA,EAClC,8BAAA,EAAgC,2GAAA;AAAA,EAChC,kBAAA,EAAoB,yDAAA;AAAA,EACpB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,qBAAA,EAAuB,+DAAA;AAAA,EACvB,2BAAA,EAA6B,+DAAA;AAAA,EAC7B,gBAAA,EAAkB,+DAAA;AAAA,EAClB,cAAA,EAAgB,0BAAA;AAAA,EAChB,cAAA,EAAgB,0BAAA;AAAA,EAChB,gBAAA,EAAkB,oGAAA;AAAA,EAClB,iBAAA,EAAmB,wFAAA;AAAA,EACnB,qBAAA,EAAuB,oBAAA;AAAA,EACvB,mBAAA,EAAqB,4CAAA;AAAA,EACrB,sBAAA,EAAwB,mDAAA;AAAA,EACxB,cAAA,EAAgB,sCAAA;AAAA,EAChB,iBAAA,EAAmB,yDAAA;AAAA,EACnB,aAAA,EAAe,oBAAA;AAAA,EACf,mBAAA,EAAqB,yDAAA;AAAA,EACrB,cAAA,EAAgB,gCAAA;AAAA,EAChB,mBAAA,EAAqB,4CAAA;AAAA,EACrB,aAAA,EAAe,sCAAA;AAAA,EACf,mBAAA,EAAqB,uCAAA;AAAA,EACrB,oBAAA,EAAsB,uCAAA;AAAA,EACtB,iBAAA,EAAmB,+DAAA;AAAA,EACnB,gBAAA,EAAkB,gCAAA;AAAA,EAClB,qBAAA,EAAuB,gCAAA;AAAA,EACvB,qBAAA,EAAuB,6CAAA;AAAA,EACvB,sBAAA,EAAwB,yDAAA;AAAA,EACxB,gBAAA,EAAkB,iCAAA;AAAA,EAClB,cAAA,EAAgB,0BAAA;AAAA,EAChB,yBAAA,EAA2B,iCAAA;AAAA,EAC3B,4BAAA,EAA8B,uCAAA;AAAA,EAC9B,kBAAA,EAAoB,gGAAA;AAAA,EACpB,qBAAA,EAAuB,wEAAA;AAAA,EACvB,wBAAA,EAA0B,4EAAA;AAAA,EAC1B,wBAAA,EAA0B,gCAAA;AAAA,EAC1B,iBAAA,EAAmB,mDAAA;AAAA,EACnB,oBAAA,EAAsB,uFAAA;AAAA,EACtB,qBAAA,EAAuB,uFAAA;AAAA,EACvB,qBAAA,EAAuB,iFAAA;AAAA,EACvB,mBAAA,EAAqB,sCAAA;AAAA,EACrB,uBAAA,EAAyB,4EAAA;AAAA,EACzB,qBAAA,EAAuB,yDAAA;AAAA,EACvB,mBAAA,EAAqB,+DAAA;AAAA,EACrB,oBAAA,EAAsB,yDAAA;AAAA,EACtB,qBAAA,EAAuB,2EAAA;AAAA,EACvB,yBAAA,EAA2B,2EAAA;AAAA,EAC3B,gBAAA,EAAkB,qHAAA;AAAA,EAClB,iBAAA,EAAmB,qHAAA;AAAA,EACnB,kBAAA,EAAoB,gHAAA;AAAA,EACpB,mBAAA,EAAqB,kHAAA;AAAA,EACrB,oBAAA,EAAsB,wFAAA;AAAA,EACtB,mBAAA,EAAqB,oFAAA;AAAA,EACrB,uBAAA,EAAyB,8FAAA;AAAA,EACzB,sBAAA,EAAwB,kGAAA;AAAA,EACxB,wBAAA,EAA0B,uFAAA;AAAA,EAC1B,eAAA,EAAiB,4CAAA;AAAA,EACjB,eAAA,EAAiB,mOAAA;AAAA,EACjB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,kBAAA,EAAoB,0BAAA;AAAA,EACpB,mBAAA,EAAqB,oBAAA;AAAA,EACrB,uBAAA,EAAyB,gCAAA;AAAA,EACzB,0BAAA,EAA4B,gCAAA;AAAA,EAC5B,wBAAA,EAA0B,oBAAA;AAAA,EAC1B,uBAAA,EAAyB,0BAAA;AAAA,EACzB,4BAAA,EAA8B,sCAAA;AAAA,EAC9B,uBAAA,EAAyB,gCAAA;AAAA,EACzB,yBAAA,EAA2B,gCAAA;AAAA,EAC3B,iBAAA,EAAmB,gHAAA;AAAA,EACnB,gBAAA,EAAkB,sCAAA;AAAA,EAClB,iBAAA,EAAmB,sCAAA;AAAA,EACnB,sBAAA,EAAwB,qGAAA;AAAA,EACxB,sBAAA,EAAwB,oIAAA;AAAA,EACxB,aAAA,EAAe,+DAAA;AAAA,EACf,2BAAA,EAA6B,8FAAA;AAAA,EAC7B,wBAAA,EAA0B,yDAAA;AAAA,EAC1B,oBAAA,EAAsB,0BAAA;AAAA,EACtB,UAAA,EAAY,8DAAA;AAAA,EACZ,cAAA,EAAgB,oGAAA;AAAA,EAChB,kBAAA,EAAoB,6KAAA;AAAA,EACpB,aAAA,EAAe,8IAAA;AAAA,EACf,YAAA,EAAc,0BAAA;AAAA,EACd,aAAA,EAAe,0BAAA;AAAA,EACf,gBAAA,EAAkB,iFAAA;AAAA,EAClB,iBAAA,EAAmB,iFAAA;AAAA,EACnB,eAAA,EAAiB,qEAAA;AAAA,EACjB,gBAAA,EAAkB,+DAAA;AAAA,EAClB,YAAA,EAAc,6CAAA;AAAA,EACd,eAAA,EAAiB,+DAAA;AAAA,EACjB,gBAAA,EAAkB,uCAAA;AAAA,EAClB,gBAAA,EAAkB;AACpB","file":"chunk-SX4VQXAA.cjs","sourcesContent":["import type { ERPTableMessages } from './types';\r\n\r\n/** Persian (fa) message pack — source of truth for keys (PR-127). */\r\nexport const faMessages: ERPTableMessages = {\r\n 'general.addNewRow': 'افزودن سطر',\r\n 'general.copy': 'کپی',\r\n 'general.cut': 'برش',\r\n 'general.paste': 'چسباندن',\r\n 'general.delete': 'حذف',\r\n 'general.chooseFromList': 'انتخاب از لیست',\r\n 'general.toggle': 'انتخاب همه',\r\n 'general.exportToExcel': 'خروجی اکسل',\r\n 'general.exportToExcelSuccess': 'خروجی اکسل با موفقیت انجام شد',\r\n 'general.exportToExcelError': 'خروجی اکسل ناموفق بود',\r\n 'general.exportToPdf': 'خروجی PDF',\r\n 'general.exportToPdfSuccess': 'خروجی PDF با موفقیت انجام شد',\r\n 'general.exportToPdfError': 'خروجی PDF ناموفق بود',\r\n 'general.importFromExcel': 'ورود از اکسل',\r\n 'general.importFromExcelSuccess': 'ورود اکسل با موفقیت انجام شد',\r\n 'general.importFromExcelError': 'ورود اکسل ناموفق بود',\r\n 'general.selected': 'انتخاب شده',\r\n 'general.search': 'جستجو',\r\n 'general.selectField': 'انتخاب کنید',\r\n 'general.selectPlaceholder': 'انتخاب کنید',\r\n 'general.choice': 'انتخاب ستون',\r\n 'general.prev': 'قبلی',\r\n 'general.next': 'بعدی',\r\n 'general.noData': 'داده‌ای وجود ندارد',\r\n 'general.loading': 'در حال بارگذاری…',\r\n 'general.footerTotal': 'جمع',\r\n 'general.footerAvg': 'میانگین',\r\n 'general.replicateRow': 'تکثیر سطر',\r\n 'general.edit': 'ویرایش',\r\n 'general.rowEdit': 'ویرایش سطر',\r\n 'general.row': 'سطر',\r\n 'general.selectRow': 'انتخاب سطر',\r\n 'general.save': 'ذخیره',\r\n 'general.notActive': 'غیرفعال',\r\n 'general.add': 'افزودن',\r\n 'general.themeDark': 'تم تیره',\r\n 'general.themeLight': 'تم روشن',\r\n 'general.toolbar': 'نوار عملیات',\r\n 'general.filter': 'فیلتر',\r\n 'general.filterApply': 'اعمال',\r\n 'general.filterClear': 'پاک کردن',\r\n 'general.filterActive': 'فیلتر فعال',\r\n 'general.rowsIn': 'سطر در',\r\n 'general.page': 'صفحه',\r\n 'general.validationInRow': 'در سطر',\r\n 'general.validationInColumn': 'در ستون',\r\n 'general.loadMore': 'نمایش بیشتر ({visible} از {total})',\r\n 'general.searchFound': '{count} مورد پیدا شد',\r\n 'general.searchNotFound': 'موردی یافت نشد',\r\n 'general.searchPosition': '{current} از {total}',\r\n 'columnMenu.open': 'منوی ستون',\r\n 'columnMenu.sortAsc': 'مرتب‌سازی صعودی',\r\n 'columnMenu.sortDesc': 'مرتب‌سازی نزولی',\r\n 'columnMenu.sortNone': 'بدون مرتب‌سازی',\r\n 'columnMenu.filter': 'فیلتر…',\r\n 'columnMenu.hideColumn': 'مخفی کردن ستون',\r\n 'columnMenu.pinStart': 'سنجاق شروع',\r\n 'columnMenu.pinEnd': 'سنجاق پایان',\r\n 'columnMenu.pinNone': 'بدون سنجاق',\r\n 'columnMenu.autoSize': 'اندازه خودکار',\r\n 'columnMenu.columnsPanel': 'تنظیم ستون‌ها',\r\n 'a11y.sortedAsc': 'مرتب شد بر اساس {column} صعودی',\r\n 'a11y.sortedDesc': 'مرتب شد بر اساس {column} نزولی',\r\n 'a11y.sortCleared': 'مرتب‌سازی برداشته شد',\r\n 'a11y.filterResult': '{visible} ردیف از {total} پس از فیلتر',\r\n 'a11y.filterCleared': 'فیلتر برداشته شد',\r\n 'a11y.rowsSelected': '{count} ردیف انتخاب شد',\r\n 'a11y.selectionCleared': 'انتخاب برداشته شد',\r\n 'a11y.validationError': 'خطای اعتبارسنجی: {message}',\r\n 'a11y.validationGeneric': 'خطای اعتبارسنجی',\r\n 'history.title': 'تاریخچه',\r\n 'history.empty': 'هنوز تاریخچه‌ای نیست. یک سلول را ویرایش کنید.',\r\n 'history.severity': 'شدت',\r\n 'history.category': 'دسته',\r\n 'history.filterAll': 'همه',\r\n 'history.severity.info': 'اطلاع',\r\n 'history.severity.warning': 'هشدار',\r\n 'history.severity.error': 'خطا',\r\n 'history.category.data': 'داده',\r\n 'history.category.structure': 'ساختار',\r\n 'history.category.view': 'نمایش',\r\n 'history.category.system': 'سیستم',\r\n 'history.restore': 'بازگردانی مقدار قبلی',\r\n 'offline.online': 'آنلاین',\r\n 'offline.offline': 'آفلاین',\r\n 'offline.pendingCount': '{count} تغییر ذخیره‌نشده',\r\n 'offline.pendingEmpty': 'همه تغییرات محلی ذخیره شد',\r\n 'sync.policy': 'سیاست تعارض',\r\n 'sync.policy.lastWriteWins': 'آخرین نوشته برنده',\r\n 'sync.policy.serverWins': 'سرور برنده',\r\n 'sync.policy.manual': 'دستی',\r\n 'sync.now': 'همگام‌سازی',\r\n 'sync.syncing': 'در حال همگام‌سازی…',\r\n 'sync.unavailable': 'انتقال همگام‌سازی پیکربندی نشده',\r\n 'sync.result': 'ارسال {pushed}، دریافت {pulled}، تعارض {conflicts}',\r\n 'sync.local': 'محلی',\r\n 'sync.remote': 'سرور',\r\n 'sync.keepLocal': 'نگه‌داشتن محلی',\r\n 'sync.keepRemote': 'نگه‌داشتن سرور',\r\n 'date.pickDate': 'انتخاب تاریخ',\r\n 'date.pickRange': 'انتخاب بازه',\r\n 'date.clear': 'پاک کردن',\r\n 'date.calendar': 'تقویم جلالی',\r\n 'date.prevMonth': 'ماه قبل',\r\n 'date.nextMonth': 'ماه بعد',\r\n};\r\n\r\nexport default faMessages;\r\n"]}
@@ -0,0 +1,92 @@
1
+ import { faMessages } from './chunk-F4PYOYHR.js';
2
+ import { enMessages } from './chunk-77UXAJII.js';
3
+ import { arMessages } from './chunk-TN4MG6FY.js';
4
+
5
+ // ui/locales/types.ts
6
+ var LOCALE_META = {
7
+ fa: {
8
+ locale: "fa",
9
+ dir: "rtl",
10
+ intlLocale: "fa-IR",
11
+ numberingSystem: "arabext",
12
+ calendar: "persian"
13
+ },
14
+ en: {
15
+ locale: "en",
16
+ dir: "ltr",
17
+ intlLocale: "en-US",
18
+ numberingSystem: "latn",
19
+ calendar: "gregory"
20
+ },
21
+ ar: {
22
+ locale: "ar",
23
+ dir: "rtl",
24
+ intlLocale: "ar-SA",
25
+ numberingSystem: "arab",
26
+ calendar: "gregory"
27
+ }
28
+ };
29
+ function resolveLocaleMeta(locale, overrides) {
30
+ const base = LOCALE_META[locale] ?? LOCALE_META.fa;
31
+ if (!overrides?.numberingSystem) return base;
32
+ return { ...base, numberingSystem: overrides.numberingSystem };
33
+ }
34
+ function resolveDirection(locale, override) {
35
+ if (override === "rtl" || override === "ltr") return override;
36
+ return (LOCALE_META[locale] ?? LOCALE_META.fa).dir;
37
+ }
38
+
39
+ // ui/locales/index.ts
40
+ var LOCALE_PACKS = {
41
+ fa: faMessages,
42
+ en: enMessages,
43
+ ar: arMessages
44
+ };
45
+ function getLocalePack(locale) {
46
+ return LOCALE_PACKS[locale] ?? faMessages;
47
+ }
48
+ function metaFor(options) {
49
+ const locale = options?.locale ?? "fa";
50
+ return resolveLocaleMeta(locale, {
51
+ numberingSystem: options?.numberingSystem
52
+ });
53
+ }
54
+ function formatLocaleNumber(value, options) {
55
+ if (value == null || value === "") return "";
56
+ const n = typeof value === "number" ? value : Number(value);
57
+ if (!Number.isFinite(n)) return String(value);
58
+ const meta = metaFor(options);
59
+ const {
60
+ locale: _l,
61
+ numberingSystem: ns,
62
+ ...intlOpts
63
+ } = options ?? {};
64
+ return new Intl.NumberFormat(meta.intlLocale, {
65
+ numberingSystem: ns ?? meta.numberingSystem,
66
+ ...intlOpts
67
+ }).format(n);
68
+ }
69
+ function formatLocaleDate(value, options) {
70
+ if (value == null || value === "") return null;
71
+ const date = typeof value === "number" ? new Date(value) : new Date(String(value));
72
+ if (Number.isNaN(date.getTime())) return null;
73
+ const meta = metaFor(options);
74
+ const {
75
+ locale: _l,
76
+ numberingSystem: ns,
77
+ ...intlOpts
78
+ } = options ?? {};
79
+ const calendar = meta.calendar === "persian" ? "persian" : meta.calendar === "islamic" ? "islamic" : "gregory";
80
+ return new Intl.DateTimeFormat(meta.intlLocale, {
81
+ calendar,
82
+ numberingSystem: ns ?? meta.numberingSystem,
83
+ year: "numeric",
84
+ month: "2-digit",
85
+ day: "2-digit",
86
+ ...intlOpts
87
+ }).format(date);
88
+ }
89
+
90
+ export { LOCALE_META, LOCALE_PACKS, formatLocaleDate, formatLocaleNumber, getLocalePack, resolveDirection, resolveLocaleMeta };
91
+ //# sourceMappingURL=chunk-SZ7BLAY3.js.map
92
+ //# sourceMappingURL=chunk-SZ7BLAY3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../ui/locales/types.ts","../ui/locales/index.ts"],"names":[],"mappings":"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","file":"chunk-SZ7BLAY3.js","sourcesContent":["/** Locale pack types (PR-127). */\r\n\r\nexport type ERPTableLocale = 'fa' | 'en' | 'ar';\r\n\r\nexport type ERPTableMessages = Record<string, string>;\r\n\r\n/** Unicode numbering systems for Intl (PR-127). */\r\nexport type NumberingSystem = 'latn' | 'arab' | 'arabext';\r\n\r\nexport type LocaleMeta = {\r\n locale: ERPTableLocale;\r\n /** Default writing direction; host may override. */\r\n dir: 'rtl' | 'ltr';\r\n /** BCP 47 tag for Intl. */\r\n intlLocale: string;\r\n /** Default digit system. */\r\n numberingSystem: NumberingSystem;\r\n /** Default calendar for date display (PR-128 may replace with DateAdapter). */\r\n calendar: 'persian' | 'gregory' | 'islamic';\r\n};\r\n\r\nexport const LOCALE_META: Record<ERPTableLocale, LocaleMeta> = {\r\n fa: {\r\n locale: 'fa',\r\n dir: 'rtl',\r\n intlLocale: 'fa-IR',\r\n numberingSystem: 'arabext',\r\n calendar: 'persian',\r\n },\r\n en: {\r\n locale: 'en',\r\n dir: 'ltr',\r\n intlLocale: 'en-US',\r\n numberingSystem: 'latn',\r\n calendar: 'gregory',\r\n },\r\n ar: {\r\n locale: 'ar',\r\n dir: 'rtl',\r\n intlLocale: 'ar-SA',\r\n numberingSystem: 'arab',\r\n calendar: 'gregory',\r\n },\r\n};\r\n\r\nexport function resolveLocaleMeta(\r\n locale: ERPTableLocale,\r\n overrides?: {\r\n numberingSystem?: NumberingSystem;\r\n },\r\n): LocaleMeta {\r\n const base = LOCALE_META[locale] ?? LOCALE_META.fa;\r\n if (!overrides?.numberingSystem) return base;\r\n return { ...base, numberingSystem: overrides.numberingSystem };\r\n}\r\n\r\nexport function resolveDirection(\r\n locale: ERPTableLocale,\r\n override?: 'rtl' | 'ltr',\r\n): 'rtl' | 'ltr' {\r\n if (override === 'rtl' || override === 'ltr') return override;\r\n return (LOCALE_META[locale] ?? LOCALE_META.fa).dir;\r\n}\r\n","import { arMessages } from './ar';\r\nimport { enMessages } from './en';\r\nimport { faMessages } from './fa';\r\nimport {\r\n LOCALE_META,\r\n resolveDirection,\r\n resolveLocaleMeta,\r\n type ERPTableLocale,\r\n type ERPTableMessages,\r\n type LocaleMeta,\r\n type NumberingSystem,\r\n} from './types';\r\n\r\nexport type {\r\n ERPTableLocale,\r\n ERPTableMessages,\r\n LocaleMeta,\r\n NumberingSystem,\r\n} from './types';\r\nexport {\r\n LOCALE_META,\r\n resolveDirection,\r\n resolveLocaleMeta,\r\n} from './types';\r\nexport { faMessages } from './fa';\r\nexport { enMessages } from './en';\r\nexport { arMessages } from './ar';\r\n\r\nexport const LOCALE_PACKS: Record<ERPTableLocale, ERPTableMessages> = {\r\n fa: faMessages,\r\n en: enMessages,\r\n ar: arMessages,\r\n};\r\n\r\nexport function getLocalePack(locale: ERPTableLocale): ERPTableMessages {\r\n return LOCALE_PACKS[locale] ?? faMessages;\r\n}\r\n\r\nexport type FormatOptions = {\r\n locale?: ERPTableLocale;\r\n numberingSystem?: NumberingSystem;\r\n};\r\n\r\nfunction metaFor(options?: FormatOptions): LocaleMeta {\r\n const locale = options?.locale ?? 'fa';\r\n return resolveLocaleMeta(locale, {\r\n numberingSystem: options?.numberingSystem,\r\n });\r\n}\r\n\r\n/** Intl number formatting with configurable numberingSystem (PR-127). */\r\nexport function formatLocaleNumber(\r\n value: unknown,\r\n options?: FormatOptions & Intl.NumberFormatOptions,\r\n): string {\r\n if (value == null || value === '') return '';\r\n const n = typeof value === 'number' ? value : Number(value);\r\n if (!Number.isFinite(n)) return String(value);\r\n const meta = metaFor(options);\r\n const {\r\n locale: _l,\r\n numberingSystem: ns,\r\n ...intlOpts\r\n } = options ?? {};\r\n return new Intl.NumberFormat(meta.intlLocale, {\r\n numberingSystem: ns ?? meta.numberingSystem,\r\n ...intlOpts,\r\n }).format(n);\r\n}\r\n\r\n/** Intl date formatting; calendar follows locale meta until DateAdapter (PR-128). */\r\nexport function formatLocaleDate(\r\n value: unknown,\r\n options?: FormatOptions & Intl.DateTimeFormatOptions,\r\n): string | null {\r\n if (value == null || value === '') return null;\r\n const date =\r\n typeof value === 'number' ? new Date(value) : new Date(String(value));\r\n if (Number.isNaN(date.getTime())) return null;\r\n const meta = metaFor(options);\r\n const {\r\n locale: _l,\r\n numberingSystem: ns,\r\n ...intlOpts\r\n } = options ?? {};\r\n const calendar =\r\n meta.calendar === 'persian'\r\n ? 'persian'\r\n : meta.calendar === 'islamic'\r\n ? 'islamic'\r\n : 'gregory';\r\n return new Intl.DateTimeFormat(meta.intlLocale, {\r\n calendar,\r\n numberingSystem: ns ?? meta.numberingSystem,\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n ...intlOpts,\r\n }).format(date);\r\n}\r\n"]}
@@ -0,0 +1,112 @@
1
+ // ui/locales/ar.ts
2
+ var arMessages = {
3
+ "general.addNewRow": "\u0625\u0636\u0627\u0641\u0629 \u0635\u0641",
4
+ "general.copy": "\u0646\u0633\u062E",
5
+ "general.cut": "\u0642\u0635",
6
+ "general.paste": "\u0644\u0635\u0642",
7
+ "general.delete": "\u062D\u0630\u0641",
8
+ "general.chooseFromList": "\u0627\u062E\u062A\u0631 \u0645\u0646 \u0627\u0644\u0642\u0627\u0626\u0645\u0629",
9
+ "general.toggle": "\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644",
10
+ "general.exportToExcel": "\u062A\u0635\u062F\u064A\u0631 \u0625\u0644\u0649 Excel",
11
+ "general.exportToExcelSuccess": "\u062A\u0645 \u062A\u0635\u062F\u064A\u0631 Excel \u0628\u0646\u062C\u0627\u062D",
12
+ "general.exportToExcelError": "\u0641\u0634\u0644 \u062A\u0635\u062F\u064A\u0631 Excel",
13
+ "general.exportToPdf": "\u062A\u0635\u062F\u064A\u0631 \u0625\u0644\u0649 PDF",
14
+ "general.exportToPdfSuccess": "\u062A\u0645 \u062A\u0635\u062F\u064A\u0631 PDF \u0628\u0646\u062C\u0627\u062D",
15
+ "general.exportToPdfError": "\u0641\u0634\u0644 \u062A\u0635\u062F\u064A\u0631 PDF",
16
+ "general.importFromExcel": "\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0645\u0646 Excel",
17
+ "general.importFromExcelSuccess": "\u062A\u0645 \u0627\u0633\u062A\u064A\u0631\u0627\u062F Excel \u0628\u0646\u062C\u0627\u062D",
18
+ "general.importFromExcelError": "\u0641\u0634\u0644 \u0627\u0633\u062A\u064A\u0631\u0627\u062F Excel",
19
+ "general.selected": "\u0645\u062D\u062F\u062F",
20
+ "general.search": "\u0628\u062D\u062B",
21
+ "general.selectField": "\u0627\u062E\u062A\u0631",
22
+ "general.selectPlaceholder": "\u0627\u062E\u062A\u0631",
23
+ "general.choice": "\u0627\u062E\u062A\u0631 \u0627\u0644\u0639\u0645\u0648\u062F",
24
+ "general.prev": "\u0627\u0644\u0633\u0627\u0628\u0642",
25
+ "general.next": "\u0627\u0644\u062A\u0627\u0644\u064A",
26
+ "general.noData": "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A",
27
+ "general.loading": "\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0645\u064A\u0644\u2026",
28
+ "general.footerTotal": "\u0627\u0644\u0645\u062C\u0645\u0648\u0639",
29
+ "general.footerAvg": "\u0627\u0644\u0645\u062A\u0648\u0633\u0637",
30
+ "general.replicateRow": "\u062A\u0643\u0631\u0627\u0631 \u0627\u0644\u0635\u0641",
31
+ "general.edit": "\u062A\u0639\u062F\u064A\u0644",
32
+ "general.rowEdit": "\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0635\u0641",
33
+ "general.row": "\u0635\u0641",
34
+ "general.selectRow": "\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0635\u0641",
35
+ "general.save": "\u062D\u0641\u0638",
36
+ "general.notActive": "\u063A\u064A\u0631 \u0646\u0634\u0637",
37
+ "general.add": "\u0625\u0636\u0627\u0641\u0629",
38
+ "general.themeDark": "\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u062F\u0627\u0643\u0646",
39
+ "general.themeLight": "\u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0641\u0627\u062A\u062D",
40
+ "general.toolbar": "\u0634\u0631\u064A\u0637 \u0627\u0644\u0623\u062F\u0648\u0627\u062A",
41
+ "general.filter": "\u062A\u0635\u0641\u064A\u0629",
42
+ "general.filterApply": "\u062A\u0637\u0628\u064A\u0642",
43
+ "general.filterClear": "\u0645\u0633\u062D",
44
+ "general.filterActive": "\u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0646\u0634\u0637\u0629",
45
+ "general.rowsIn": "\u0635\u0641\u0648\u0641 \u0641\u064A",
46
+ "general.page": "\u0635\u0641\u062D\u0627\u062A",
47
+ "general.validationInRow": "\u0641\u064A \u0627\u0644\u0635\u0641",
48
+ "general.validationInColumn": "\u0641\u064A \u0627\u0644\u0639\u0645\u0648\u062F",
49
+ "general.loadMore": "\u0639\u0631\u0636 \u0627\u0644\u0645\u0632\u064A\u062F ({visible} \u0645\u0646 {total})",
50
+ "general.searchFound": "\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 {count} \u0646\u062A\u064A\u062C\u0629",
51
+ "general.searchNotFound": "\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C",
52
+ "general.searchPosition": "{current} \u0645\u0646 {total}",
53
+ "columnMenu.open": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0639\u0645\u0648\u062F",
54
+ "columnMenu.sortAsc": "\u0641\u0631\u0632 \u062A\u0635\u0627\u0639\u062F\u064A",
55
+ "columnMenu.sortDesc": "\u0641\u0631\u0632 \u062A\u0646\u0627\u0632\u0644\u064A",
56
+ "columnMenu.sortNone": "\u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u0641\u0631\u0632",
57
+ "columnMenu.filter": "\u062A\u0635\u0641\u064A\u0629\u2026",
58
+ "columnMenu.hideColumn": "\u0625\u062E\u0641\u0627\u0621 \u0627\u0644\u0639\u0645\u0648\u062F",
59
+ "columnMenu.pinStart": "\u062A\u062B\u0628\u064A\u062A \u0644\u0644\u0628\u062F\u0627\u064A\u0629",
60
+ "columnMenu.pinEnd": "\u062A\u062B\u0628\u064A\u062A \u0644\u0644\u0646\u0647\u0627\u064A\u0629",
61
+ "columnMenu.pinNone": "\u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u062B\u0628\u064A\u062A",
62
+ "columnMenu.autoSize": "\u062A\u062D\u062C\u064A\u0645 \u062A\u0644\u0642\u0627\u0626\u064A",
63
+ "columnMenu.columnsPanel": "\u0625\u0639\u062F\u0627\u062F \u0627\u0644\u0623\u0639\u0645\u062F\u0629",
64
+ "a11y.sortedAsc": "\u062A\u0645 \u0627\u0644\u0641\u0631\u0632 \u062D\u0633\u0628 {column} \u062A\u0635\u0627\u0639\u062F\u064A\u0627\u064B",
65
+ "a11y.sortedDesc": "\u062A\u0645 \u0627\u0644\u0641\u0631\u0632 \u062D\u0633\u0628 {column} \u062A\u0646\u0627\u0632\u0644\u064A\u0627\u064B",
66
+ "a11y.sortCleared": "\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u0641\u0631\u0632",
67
+ "a11y.filterResult": "{visible} \u0645\u0646 {total} \u0635\u0641 \u0628\u0639\u062F \u0627\u0644\u062A\u0635\u0641\u064A\u0629",
68
+ "a11y.filterCleared": "\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u0635\u0641\u064A\u0629",
69
+ "a11y.rowsSelected": "\u062A\u0645 \u062A\u062D\u062F\u064A\u062F {count} \u0635\u0641",
70
+ "a11y.selectionCleared": "\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u062A\u062D\u062F\u064A\u062F",
71
+ "a11y.validationError": "\u062E\u0637\u0623 \u0641\u064A \u0627\u0644\u062A\u062D\u0642\u0642: {message}",
72
+ "a11y.validationGeneric": "\u062E\u0637\u0623 \u0641\u064A \u0627\u0644\u062A\u062D\u0642\u0642",
73
+ "history.title": "\u0627\u0644\u0633\u062C\u0644",
74
+ "history.empty": "\u0644\u0627 \u064A\u0648\u062C\u062F \u0633\u062C\u0644 \u0628\u0639\u062F. \u0639\u062F\u0651\u0644 \u062E\u0644\u064A\u0629 \u0644\u0625\u0636\u0627\u0641\u0629 \u0623\u062D\u062F\u0627\u062B.",
75
+ "history.severity": "\u0627\u0644\u0634\u062F\u0629",
76
+ "history.category": "\u0627\u0644\u0641\u0626\u0629",
77
+ "history.filterAll": "\u0627\u0644\u0643\u0644",
78
+ "history.severity.info": "\u0645\u0639\u0644\u0648\u0645\u0629",
79
+ "history.severity.warning": "\u062A\u062D\u0630\u064A\u0631",
80
+ "history.severity.error": "\u062E\u0637\u0623",
81
+ "history.category.data": "\u0628\u064A\u0627\u0646\u0627\u062A",
82
+ "history.category.structure": "\u0628\u0646\u064A\u0629",
83
+ "history.category.view": "\u0639\u0631\u0636",
84
+ "history.category.system": "\u0646\u0638\u0627\u0645",
85
+ "history.restore": "\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0642\u064A\u0645\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629",
86
+ "offline.online": "\u0645\u062A\u0635\u0644",
87
+ "offline.offline": "\u063A\u064A\u0631 \u0645\u062A\u0635\u0644",
88
+ "offline.pendingCount": "{count} \u062A\u063A\u064A\u064A\u0631\u0627\u062A \u063A\u064A\u0631 \u0645\u062D\u0641\u0648\u0638\u0629",
89
+ "offline.pendingEmpty": "\u062A\u0645 \u062D\u0641\u0638 \u0643\u0644 \u0627\u0644\u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0645\u062D\u0644\u064A\u0627\u064B",
90
+ "sync.policy": "\u0633\u064A\u0627\u0633\u0629 \u0627\u0644\u062A\u0639\u0627\u0631\u0636",
91
+ "sync.policy.lastWriteWins": "\u0622\u062E\u0631 \u0643\u062A\u0627\u0628\u0629 \u062A\u0641\u0648\u0632",
92
+ "sync.policy.serverWins": "\u0627\u0644\u062E\u0627\u062F\u0645 \u064A\u0641\u0648\u0632",
93
+ "sync.policy.manual": "\u064A\u062F\u0648\u064A",
94
+ "sync.now": "\u0645\u0632\u0627\u0645\u0646\u0629 \u0627\u0644\u0622\u0646",
95
+ "sync.syncing": "\u062C\u0627\u0631\u064D \u0627\u0644\u0645\u0632\u0627\u0645\u0646\u0629\u2026",
96
+ "sync.unavailable": "\u0646\u0642\u0644 \u0627\u0644\u0645\u0632\u0627\u0645\u0646\u0629 \u063A\u064A\u0631 \u0645\u0647\u064A\u0623",
97
+ "sync.result": "\u0623\u064F\u0631\u0633\u0644 {pushed}\u060C \u0627\u0633\u062A\u064F\u0644\u0645 {pulled}\u060C \u062A\u0639\u0627\u0631\u0636\u0627\u062A {conflicts}",
98
+ "sync.local": "\u0645\u062D\u0644\u064A",
99
+ "sync.remote": "\u062E\u0627\u062F\u0645",
100
+ "sync.keepLocal": "\u0627\u0644\u0625\u0628\u0642\u0627\u0621 \u0639\u0644\u0649 \u0627\u0644\u0645\u062D\u0644\u064A",
101
+ "sync.keepRemote": "\u0627\u0644\u0625\u0628\u0642\u0627\u0621 \u0639\u0644\u0649 \u0627\u0644\u062E\u0627\u062F\u0645",
102
+ "date.pickDate": "\u0627\u062E\u062A\u0631 \u062A\u0627\u0631\u064A\u062E\u0627\u064B",
103
+ "date.pickRange": "\u0627\u062E\u062A\u0631 \u0646\u0637\u0627\u0642\u0627\u064B",
104
+ "date.clear": "\u0645\u0633\u062D",
105
+ "date.calendar": "\u062A\u0642\u0648\u064A\u0645 \u062C\u0644\u0627\u0644\u064A",
106
+ "date.prevMonth": "\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u0633\u0627\u0628\u0642",
107
+ "date.nextMonth": "\u0627\u0644\u0634\u0647\u0631 \u0627\u0644\u062A\u0627\u0644\u064A"
108
+ };
109
+
110
+ export { arMessages };
111
+ //# sourceMappingURL=chunk-TN4MG6FY.js.map
112
+ //# sourceMappingURL=chunk-TN4MG6FY.js.map