@sarafapp/iron_core 1.0.63 → 1.0.64

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 (320) hide show
  1. package/dist/IronCore.js +15 -5
  2. package/dist/core/index.d.ts +31 -0
  3. package/dist/{src → core/src}/BaseModel.d.ts +4 -4
  4. package/dist/core/src/baseForm/UseForm.d.ts +18 -0
  5. package/dist/{src → core/src}/baseTable/BaseTable.d.ts +3 -2
  6. package/dist/{src → core/src}/baseTable/Constants.d.ts +4 -3
  7. package/dist/{src → core/src}/baseTable/SelectableTable.d.ts +2 -2
  8. package/dist/{src → core/src}/baseTable/generator/SelectableTableGenerator.d.ts +3 -3
  9. package/dist/{src → core/src}/baseTable/moduleConnection/Table.d.ts +1 -1
  10. package/dist/{src → core/src}/baseTable/moduleConnection/generator/GColumn.d.ts +1 -1
  11. package/dist/{src → core/src}/composables/UseCrud.d.ts +4 -4
  12. package/dist/{src → core/src}/composables/UseData.d.ts +4 -3
  13. package/dist/core/src/composables/UseLoadingStatus.d.ts +15 -0
  14. package/dist/{src → core/src}/composables/UseParams.d.ts +3 -1
  15. package/dist/core/src/composables/UseRepository.d.ts +67 -0
  16. package/dist/core/src/composables/UseStaticTableService.d.ts +5 -0
  17. package/dist/{src → core/src}/crudService/CrudService.d.ts +8 -8
  18. package/dist/{src → core/src}/dateHandling/Converter.d.ts +1 -1
  19. package/dist/{src → core/src}/httpClient/ErrorHandlerRegistry.d.ts +1 -1
  20. package/dist/{src → core/src}/json/JsonMapper.d.ts +1 -1
  21. package/dist/core/src/layout/DialogService.d.ts +406 -0
  22. package/dist/core/src/layout/DrawerService.d.ts +14 -0
  23. package/dist/{src → core/src}/lib/Formatter.d.ts +1 -1
  24. package/dist/{src → core/src}/lib/Util.d.ts +2 -1
  25. package/dist/core/vite.config.d.ts +2 -0
  26. package/dist/example-vue/src/AntTableConfig.d.ts +6 -0
  27. package/dist/example-vue/src/TableService.d.ts +12 -0
  28. package/dist/example-vue/src/TextCell.vue.d.ts +5 -0
  29. package/dist/example-vue/src/app/App.vue.d.ts +2 -0
  30. package/dist/example-vue/src/app/router/index.d.ts +1 -0
  31. package/dist/example-vue/src/app/screens/Index.vue.d.ts +2 -0
  32. package/dist/example-vue/src/main.d.ts +0 -0
  33. package/dist/example-vue/vite.config.d.ts +2 -0
  34. package/dist/index.d.ts +2 -31
  35. package/index.ts +37 -0
  36. package/package.json +2 -5
  37. package/src/BaseModel.ts +127 -0
  38. package/src/Utils.ts +16 -0
  39. package/src/accessHandling/AccessControl.ts +33 -0
  40. package/src/accessHandling/AccessLevel.ts +52 -0
  41. package/src/accessHandling/Accessible.ts +3 -0
  42. package/src/accessHandling/EveryDirectiveAccess.ts +7 -0
  43. package/src/accessHandling/SSO/AuthorizationDirective.ts +65 -0
  44. package/src/accessHandling/SSO/AuthorizationService.ts +74 -0
  45. package/src/accessHandling/SSO/EveryLevelAuthorizationDirective.ts +7 -0
  46. package/src/accessHandling/SSO/SomeLevelsAuthorizationDirective.ts +7 -0
  47. package/src/accessHandling/SomeDirectiveAccess.ts +7 -0
  48. package/src/accessHandling/index.ts +9 -0
  49. package/src/baseDirective/BeforeMountDirective.ts +3 -0
  50. package/src/baseDirective/BeforeUnMountDirective.ts +3 -0
  51. package/src/baseDirective/BeforeUpdateDirective.ts +3 -0
  52. package/src/baseDirective/CreatedDirective.ts +3 -0
  53. package/src/baseDirective/MountedDirective.ts +3 -0
  54. package/src/baseDirective/UnMountedDirective.ts +3 -0
  55. package/src/baseDirective/UpdateDirective.ts +3 -0
  56. package/src/baseDirective/index.ts +7 -0
  57. package/src/baseForm/BaseRequestBodyFilter.ts +7 -0
  58. package/src/baseForm/FormManager.ts +95 -0
  59. package/src/baseForm/InputControl.ts +182 -0
  60. package/src/baseForm/InputControlBuilder.ts +59 -0
  61. package/src/baseForm/InputControlData.ts +16 -0
  62. package/src/baseForm/RequestBodyFilter.ts +3 -0
  63. package/src/baseForm/TouchSensitiveForm.ts +47 -0
  64. package/src/baseForm/UseForm.ts +32 -0
  65. package/src/baseForm/index.ts +8 -0
  66. package/src/baseSchedule/Schedule.ts +3 -0
  67. package/src/baseSchedule/Scheduler.ts +29 -0
  68. package/src/baseSchedule/index.ts +2 -0
  69. package/src/baseTable/BaseTable.ts +162 -0
  70. package/src/baseTable/Constants.ts +26 -0
  71. package/src/baseTable/OnDestory.ts +3 -0
  72. package/src/baseTable/RowActionSource.ts +5 -0
  73. package/src/baseTable/RowClick.ts +3 -0
  74. package/src/baseTable/RowDoubleClick.ts +3 -0
  75. package/src/baseTable/RowMetaClick.ts +3 -0
  76. package/src/baseTable/SelectableTable.ts +86 -0
  77. package/src/baseTable/TableAction.ts +10 -0
  78. package/src/baseTable/TableHeaderSchema.ts +44 -0
  79. package/src/baseTable/TableLoader.ts +3 -0
  80. package/src/baseTable/TablePaginate.ts +3 -0
  81. package/src/baseTable/TableService.ts +10 -0
  82. package/src/baseTable/TableSort.ts +5 -0
  83. package/src/baseTable/TableSummarySchema.ts +11 -0
  84. package/src/baseTable/generator/SelectableTableGenerator.ts +65 -0
  85. package/src/baseTable/generator/TableCellComponentRegistry.ts +15 -0
  86. package/src/baseTable/generator/TableConfig.ts +18 -0
  87. package/src/baseTable/generator/TableGenerator.ts +147 -0
  88. package/src/baseTable/generator/TableSource.ts +34 -0
  89. package/src/baseTable/index.ts +43 -0
  90. package/src/baseTable/moduleConnection/Action.ts +12 -0
  91. package/src/baseTable/moduleConnection/Column.ts +11 -0
  92. package/src/baseTable/moduleConnection/Table.ts +49 -0
  93. package/src/baseTable/moduleConnection/TableDestroy.ts +7 -0
  94. package/src/baseTable/moduleConnection/TableRowClick.ts +7 -0
  95. package/src/baseTable/moduleConnection/generator/GColumn.ts +10 -0
  96. package/src/baseTable/moduleConnection/generator/GTable.ts +11 -0
  97. package/src/composables/UseCrud.ts +53 -0
  98. package/src/composables/UseData.ts +70 -0
  99. package/src/composables/UseLoadingStatus.ts +65 -0
  100. package/src/composables/UseParams.ts +93 -0
  101. package/src/composables/UseRepository.ts +207 -0
  102. package/src/composables/UseState.ts +30 -0
  103. package/src/composables/UseStaticTableService.ts +45 -0
  104. package/src/composables/index.ts +7 -0
  105. package/src/constants/Constants.ts +126 -0
  106. package/src/constants/index.ts +19 -0
  107. package/src/crudService/CrudService.ts +121 -0
  108. package/src/crudService/index.ts +1 -0
  109. package/src/dateHandling/Constants.ts +5 -0
  110. package/src/dateHandling/Converter.ts +15 -0
  111. package/src/dateHandling/JalaliDateSetup.ts +42 -0
  112. package/src/dateHandling/Model.ts +27 -0
  113. package/src/dateHandling/Utils.ts +49 -0
  114. package/src/dateHandling/index.ts +5 -0
  115. package/src/debounce/DebounceAction.ts +4 -0
  116. package/src/debounce/DebounceService.ts +27 -0
  117. package/src/debounce/index.ts +2 -0
  118. package/src/deviceManagement/Constants.ts +4 -0
  119. package/src/deviceManagement/Visibility.ts +4 -0
  120. package/src/deviceManagement/VisibilityManager.ts +18 -0
  121. package/src/deviceManagement/index.ts +3 -0
  122. package/src/errorHandling/ErrorHandler.ts +3 -0
  123. package/src/errorHandling/HandleError.ts +20 -0
  124. package/src/errorHandling/index.ts +2 -0
  125. package/src/eventSystem/CustomEventDispatcher.ts +13 -0
  126. package/src/eventSystem/Model.ts +29 -0
  127. package/src/eventSystem/OnEvent.ts +25 -0
  128. package/src/eventSystem/index.ts +3 -0
  129. package/src/feedbackHandling/FailureFeedback.ts +3 -0
  130. package/src/feedbackHandling/Feedback.ts +34 -0
  131. package/src/feedbackHandling/HandleFeedback.ts +28 -0
  132. package/src/feedbackHandling/InfoFeedback.ts +3 -0
  133. package/src/feedbackHandling/SuccessFeedback.ts +3 -0
  134. package/src/feedbackHandling/WarningFeedback.ts +3 -0
  135. package/src/feedbackHandling/index.ts +6 -0
  136. package/src/httpClient/ApiBuilder.ts +57 -0
  137. package/src/httpClient/ErrorHandlerRegistry.ts +29 -0
  138. package/src/httpClient/HttpClient.ts +77 -0
  139. package/src/httpClient/Interceptor.ts +5 -0
  140. package/src/httpClient/index.ts +4 -0
  141. package/src/initializer/ApplicationInitializer.ts +15 -0
  142. package/src/initializer/Initializer.ts +3 -0
  143. package/src/initializer/index.ts +2 -0
  144. package/src/json/JsonMapper.ts +48 -0
  145. package/src/json/index.ts +1 -0
  146. package/src/layout/Constants.ts +11 -0
  147. package/src/layout/DialogService.ts +75 -0
  148. package/src/layout/DrawerService.ts +25 -0
  149. package/src/layout/Toast.ts +14 -0
  150. package/src/layout/index.ts +4 -0
  151. package/src/lib/Constants.ts +433 -0
  152. package/src/lib/Formatter.ts +68 -0
  153. package/src/lib/Util.ts +113 -0
  154. package/src/lib/index.ts +3 -0
  155. package/src/observables/AbstractSubject.ts +21 -0
  156. package/src/observables/BehaviorSubject.ts +58 -0
  157. package/src/observables/Observer.ts +3 -0
  158. package/src/observables/Subject.ts +9 -0
  159. package/src/observables/index.ts +4 -0
  160. package/src/process/Proccess.ts +21 -0
  161. package/src/process/ProcessManager.ts +31 -0
  162. package/src/process/index.ts +2 -0
  163. package/src/repository/Params.ts +10 -0
  164. package/src/repository/Repository.ts +44 -0
  165. package/src/repository/SyncDetail.ts +8 -0
  166. package/src/repository/index.ts +4 -0
  167. package/src/repository/model.ts +9 -0
  168. package/src/routeGuard/RouteGuard.ts +38 -0
  169. package/src/routeGuard/index.ts +1 -0
  170. package/src/search/client/ClientArraySearch.ts +25 -0
  171. package/src/search/client/ClientSearch.ts +3 -0
  172. package/src/search/index.ts +2 -0
  173. package/src/sort/SortDetail.ts +11 -0
  174. package/src/sort/client/Sorter.ts +28 -0
  175. package/src/sort/index.ts +4 -0
  176. package/src/sort/strategies/SimpleSort.ts +35 -0
  177. package/src/sort/strategies/SortStrategy.ts +4 -0
  178. package/src/types/Global.ts +1 -0
  179. package/src/types/index.ts +1 -0
  180. package/src/validators/Validator.ts +5 -0
  181. package/src/validators/index.ts +1 -0
  182. package/src/webSocket/Constants.ts +6 -0
  183. package/src/webSocket/Model.ts +16 -0
  184. package/src/webSocket/WebSocketService.ts +153 -0
  185. package/src/webSocket/index.ts +3 -0
  186. package/vite.config.ts +55 -0
  187. package/dist/src/baseForm/UseForm.d.ts +0 -5
  188. package/dist/src/composables/UseLoadingStatus.d.ts +0 -15
  189. package/dist/src/composables/UseRepository.d.ts +0 -63
  190. package/dist/src/composables/UseStaticTableService.d.ts +0 -4
  191. package/dist/src/layout/DialogService.d.ts +0 -1
  192. package/dist/src/layout/DrawerService.d.ts +0 -1
  193. package/dist/vite.config.d.ts +0 -2
  194. /package/dist/{src → core/src}/Utils.d.ts +0 -0
  195. /package/dist/{src → core/src}/accessHandling/AccessControl.d.ts +0 -0
  196. /package/dist/{src → core/src}/accessHandling/AccessLevel.d.ts +0 -0
  197. /package/dist/{src → core/src}/accessHandling/Accessible.d.ts +0 -0
  198. /package/dist/{src → core/src}/accessHandling/EveryDirectiveAccess.d.ts +0 -0
  199. /package/dist/{src → core/src}/accessHandling/SSO/AuthorizationDirective.d.ts +0 -0
  200. /package/dist/{src → core/src}/accessHandling/SSO/AuthorizationService.d.ts +0 -0
  201. /package/dist/{src → core/src}/accessHandling/SSO/EveryLevelAuthorizationDirective.d.ts +0 -0
  202. /package/dist/{src → core/src}/accessHandling/SSO/SomeLevelsAuthorizationDirective.d.ts +0 -0
  203. /package/dist/{src → core/src}/accessHandling/SomeDirectiveAccess.d.ts +0 -0
  204. /package/dist/{src → core/src}/accessHandling/index.d.ts +0 -0
  205. /package/dist/{src → core/src}/baseDirective/BeforeMountDirective.d.ts +0 -0
  206. /package/dist/{src → core/src}/baseDirective/BeforeUnMountDirective.d.ts +0 -0
  207. /package/dist/{src → core/src}/baseDirective/BeforeUpdateDirective.d.ts +0 -0
  208. /package/dist/{src → core/src}/baseDirective/CreatedDirective.d.ts +0 -0
  209. /package/dist/{src → core/src}/baseDirective/MountedDirective.d.ts +0 -0
  210. /package/dist/{src → core/src}/baseDirective/UnMountedDirective.d.ts +0 -0
  211. /package/dist/{src → core/src}/baseDirective/UpdateDirective.d.ts +0 -0
  212. /package/dist/{src → core/src}/baseDirective/index.d.ts +0 -0
  213. /package/dist/{src → core/src}/baseForm/BaseRequestBodyFilter.d.ts +0 -0
  214. /package/dist/{src → core/src}/baseForm/FormManager.d.ts +0 -0
  215. /package/dist/{src → core/src}/baseForm/InputControl.d.ts +0 -0
  216. /package/dist/{src → core/src}/baseForm/InputControlBuilder.d.ts +0 -0
  217. /package/dist/{src → core/src}/baseForm/InputControlData.d.ts +0 -0
  218. /package/dist/{src → core/src}/baseForm/RequestBodyFilter.d.ts +0 -0
  219. /package/dist/{src → core/src}/baseForm/TouchSensitiveForm.d.ts +0 -0
  220. /package/dist/{src → core/src}/baseForm/index.d.ts +0 -0
  221. /package/dist/{src → core/src}/baseSchedule/Schedule.d.ts +0 -0
  222. /package/dist/{src → core/src}/baseSchedule/Scheduler.d.ts +0 -0
  223. /package/dist/{src → core/src}/baseSchedule/index.d.ts +0 -0
  224. /package/dist/{src → core/src}/baseTable/OnDestory.d.ts +0 -0
  225. /package/dist/{src → core/src}/baseTable/RowActionSource.d.ts +0 -0
  226. /package/dist/{src → core/src}/baseTable/RowClick.d.ts +0 -0
  227. /package/dist/{src → core/src}/baseTable/RowDoubleClick.d.ts +0 -0
  228. /package/dist/{src → core/src}/baseTable/RowMetaClick.d.ts +0 -0
  229. /package/dist/{src → core/src}/baseTable/TableAction.d.ts +0 -0
  230. /package/dist/{src → core/src}/baseTable/TableHeaderSchema.d.ts +0 -0
  231. /package/dist/{src → core/src}/baseTable/TableLoader.d.ts +0 -0
  232. /package/dist/{src → core/src}/baseTable/TablePaginate.d.ts +0 -0
  233. /package/dist/{src → core/src}/baseTable/TableService.d.ts +0 -0
  234. /package/dist/{src → core/src}/baseTable/TableSort.d.ts +0 -0
  235. /package/dist/{src → core/src}/baseTable/TableSummarySchema.d.ts +0 -0
  236. /package/dist/{src → core/src}/baseTable/generator/TableCellComponentRegistry.d.ts +0 -0
  237. /package/dist/{src → core/src}/baseTable/generator/TableConfig.d.ts +0 -0
  238. /package/dist/{src → core/src}/baseTable/generator/TableGenerator.d.ts +0 -0
  239. /package/dist/{src → core/src}/baseTable/generator/TableSource.d.ts +0 -0
  240. /package/dist/{src → core/src}/baseTable/index.d.ts +0 -0
  241. /package/dist/{src → core/src}/baseTable/moduleConnection/Action.d.ts +0 -0
  242. /package/dist/{src → core/src}/baseTable/moduleConnection/Column.d.ts +0 -0
  243. /package/dist/{src → core/src}/baseTable/moduleConnection/TableDestroy.d.ts +0 -0
  244. /package/dist/{src → core/src}/baseTable/moduleConnection/TableRowClick.d.ts +0 -0
  245. /package/dist/{src → core/src}/baseTable/moduleConnection/generator/GTable.d.ts +0 -0
  246. /package/dist/{src → core/src}/composables/UseState.d.ts +0 -0
  247. /package/dist/{src → core/src}/composables/index.d.ts +0 -0
  248. /package/dist/{src → core/src}/constants/Constants.d.ts +0 -0
  249. /package/dist/{src → core/src}/constants/index.d.ts +0 -0
  250. /package/dist/{src → core/src}/crudService/index.d.ts +0 -0
  251. /package/dist/{src → core/src}/dateHandling/Constants.d.ts +0 -0
  252. /package/dist/{src → core/src}/dateHandling/JalaliDateSetup.d.ts +0 -0
  253. /package/dist/{src → core/src}/dateHandling/Model.d.ts +0 -0
  254. /package/dist/{src → core/src}/dateHandling/Utils.d.ts +0 -0
  255. /package/dist/{src → core/src}/dateHandling/index.d.ts +0 -0
  256. /package/dist/{src → core/src}/debounce/DebounceAction.d.ts +0 -0
  257. /package/dist/{src → core/src}/debounce/DebounceService.d.ts +0 -0
  258. /package/dist/{src → core/src}/debounce/index.d.ts +0 -0
  259. /package/dist/{src → core/src}/deviceManagement/Constants.d.ts +0 -0
  260. /package/dist/{src → core/src}/deviceManagement/Visibility.d.ts +0 -0
  261. /package/dist/{src → core/src}/deviceManagement/VisibilityManager.d.ts +0 -0
  262. /package/dist/{src → core/src}/deviceManagement/index.d.ts +0 -0
  263. /package/dist/{src → core/src}/errorHandling/ErrorHandler.d.ts +0 -0
  264. /package/dist/{src → core/src}/errorHandling/HandleError.d.ts +0 -0
  265. /package/dist/{src → core/src}/errorHandling/index.d.ts +0 -0
  266. /package/dist/{src → core/src}/eventSystem/CustomEventDispatcher.d.ts +0 -0
  267. /package/dist/{src → core/src}/eventSystem/Model.d.ts +0 -0
  268. /package/dist/{src → core/src}/eventSystem/OnEvent.d.ts +0 -0
  269. /package/dist/{src → core/src}/eventSystem/index.d.ts +0 -0
  270. /package/dist/{src → core/src}/feedbackHandling/FailureFeedback.d.ts +0 -0
  271. /package/dist/{src → core/src}/feedbackHandling/Feedback.d.ts +0 -0
  272. /package/dist/{src → core/src}/feedbackHandling/HandleFeedback.d.ts +0 -0
  273. /package/dist/{src → core/src}/feedbackHandling/InfoFeedback.d.ts +0 -0
  274. /package/dist/{src → core/src}/feedbackHandling/SuccessFeedback.d.ts +0 -0
  275. /package/dist/{src → core/src}/feedbackHandling/WarningFeedback.d.ts +0 -0
  276. /package/dist/{src → core/src}/feedbackHandling/index.d.ts +0 -0
  277. /package/dist/{src → core/src}/httpClient/ApiBuilder.d.ts +0 -0
  278. /package/dist/{src → core/src}/httpClient/HttpClient.d.ts +0 -0
  279. /package/dist/{src → core/src}/httpClient/Interceptor.d.ts +0 -0
  280. /package/dist/{src → core/src}/httpClient/index.d.ts +0 -0
  281. /package/dist/{src → core/src}/initializer/ApplicationInitializer.d.ts +0 -0
  282. /package/dist/{src → core/src}/initializer/Initializer.d.ts +0 -0
  283. /package/dist/{src → core/src}/initializer/index.d.ts +0 -0
  284. /package/dist/{src → core/src}/json/index.d.ts +0 -0
  285. /package/dist/{src → core/src}/layout/Constants.d.ts +0 -0
  286. /package/dist/{src → core/src}/layout/Toast.d.ts +0 -0
  287. /package/dist/{src → core/src}/layout/index.d.ts +0 -0
  288. /package/dist/{src → core/src}/lib/Constants.d.ts +0 -0
  289. /package/dist/{src → core/src}/lib/index.d.ts +0 -0
  290. /package/dist/{src → core/src}/observables/AbstractSubject.d.ts +0 -0
  291. /package/dist/{src → core/src}/observables/BehaviorSubject.d.ts +0 -0
  292. /package/dist/{src → core/src}/observables/Observer.d.ts +0 -0
  293. /package/dist/{src → core/src}/observables/Subject.d.ts +0 -0
  294. /package/dist/{src → core/src}/observables/index.d.ts +0 -0
  295. /package/dist/{src → core/src}/process/Proccess.d.ts +0 -0
  296. /package/dist/{src → core/src}/process/ProcessManager.d.ts +0 -0
  297. /package/dist/{src → core/src}/process/index.d.ts +0 -0
  298. /package/dist/{src → core/src}/repository/Params.d.ts +0 -0
  299. /package/dist/{src → core/src}/repository/Repository.d.ts +0 -0
  300. /package/dist/{src → core/src}/repository/SyncDetail.d.ts +0 -0
  301. /package/dist/{src → core/src}/repository/index.d.ts +0 -0
  302. /package/dist/{src → core/src}/repository/model.d.ts +0 -0
  303. /package/dist/{src → core/src}/routeGuard/RouteGuard.d.ts +0 -0
  304. /package/dist/{src → core/src}/routeGuard/index.d.ts +0 -0
  305. /package/dist/{src → core/src}/search/client/ClientArraySearch.d.ts +0 -0
  306. /package/dist/{src → core/src}/search/client/ClientSearch.d.ts +0 -0
  307. /package/dist/{src → core/src}/search/index.d.ts +0 -0
  308. /package/dist/{src → core/src}/sort/SortDetail.d.ts +0 -0
  309. /package/dist/{src → core/src}/sort/client/Sorter.d.ts +0 -0
  310. /package/dist/{src → core/src}/sort/index.d.ts +0 -0
  311. /package/dist/{src → core/src}/sort/strategies/SimpleSort.d.ts +0 -0
  312. /package/dist/{src → core/src}/sort/strategies/SortStrategy.d.ts +0 -0
  313. /package/dist/{src → core/src}/types/Global.d.ts +0 -0
  314. /package/dist/{src → core/src}/types/index.d.ts +0 -0
  315. /package/dist/{src → core/src}/validators/Validator.d.ts +0 -0
  316. /package/dist/{src → core/src}/validators/index.d.ts +0 -0
  317. /package/dist/{src → core/src}/webSocket/Constants.d.ts +0 -0
  318. /package/dist/{src → core/src}/webSocket/Model.d.ts +0 -0
  319. /package/dist/{src → core/src}/webSocket/WebSocketService.d.ts +0 -0
  320. /package/dist/{src → core/src}/webSocket/index.d.ts +0 -0
@@ -0,0 +1,433 @@
1
+ export const enum CommonMaskFormats {
2
+ BankCard = "####-####-####-####",
3
+ Iban = "##-####-####-####-####-####-##",
4
+ }
5
+
6
+ export const enum DateFormat {
7
+ FullDate = "YYYY/M/D HH:mm",
8
+ SimpleDate = "YYYY/M/D",
9
+ CompactGregorianDate = "YYYYMMDD",
10
+ ShortJalaliDate = "YYMM",
11
+ JustHour = "HH:mm:ss",
12
+ }
13
+
14
+ interface Bank {
15
+ [identifier: string | number]: {
16
+ persian: string;
17
+ english: string;
18
+ };
19
+ }
20
+
21
+ export const cards: Array<Bank> = [
22
+ {
23
+ 62198619: {
24
+ persian: "بلو",
25
+ english: "blue",
26
+ },
27
+ },
28
+ {
29
+ 603799: {
30
+ persian: "بانک ملی ایران",
31
+ english: "melli",
32
+ },
33
+ },
34
+ {
35
+ 589210: {
36
+ persian: "بانک سپه",
37
+ english: "sepah",
38
+ },
39
+ },
40
+ {
41
+ 627648: {
42
+ persian: "بانک توسعه صادرات",
43
+ english: "export-development",
44
+ },
45
+ },
46
+ {
47
+ 627961: {
48
+ persian: "بانک صنعت و معدن",
49
+ english: "industry-mine",
50
+ },
51
+ },
52
+ {
53
+ 603770: {
54
+ persian: "بانک کشاورزی",
55
+ english: "agriculture",
56
+ },
57
+ },
58
+ {
59
+ 628023: {
60
+ persian: "بانک مسکن",
61
+ english: "housing",
62
+ },
63
+ },
64
+ {
65
+ 627760: {
66
+ persian: "پست بانک ایران",
67
+ english: "post",
68
+ },
69
+ },
70
+ {
71
+ 502908: {
72
+ persian: "بانک توسعه تعاون",
73
+ english: "development-cooperation",
74
+ },
75
+ },
76
+ {
77
+ 627412: {
78
+ persian: "بانک اقتصاد نوین",
79
+ english: "eghtesad-novin",
80
+ },
81
+ },
82
+ {
83
+ 622106: {
84
+ persian: "بانک پارسیان",
85
+ english: "parsian",
86
+ },
87
+ },
88
+ {
89
+ 502229: {
90
+ persian: "بانک پاسارگاد",
91
+ english: "pasargad",
92
+ },
93
+ },
94
+ {
95
+ 639599: {
96
+ persian: "بانک قوامین",
97
+ english: "ghavamin",
98
+ },
99
+ },
100
+ {
101
+ 627488: {
102
+ persian: "بانک کارآفرین",
103
+ english: "karafarin",
104
+ },
105
+ },
106
+ {
107
+ 621986: {
108
+ persian: "بانک سامان",
109
+ english: "saman",
110
+ },
111
+ },
112
+ {
113
+ 639346: {
114
+ persian: "بانک سینا",
115
+ english: "sina",
116
+ },
117
+ },
118
+ {
119
+ 639607: {
120
+ persian: "بانک سرمایه",
121
+ english: "sarmayeh",
122
+ },
123
+ },
124
+ {
125
+ 504706: {
126
+ persian: "بانک شهر",
127
+ english: "shahr",
128
+ },
129
+ },
130
+ {
131
+ 502806: {
132
+ persian: "بانک شهر",
133
+ english: "shahr",
134
+ },
135
+ },
136
+ {
137
+ 502938: {
138
+ persian: "بانک دی",
139
+ english: "day",
140
+ },
141
+ },
142
+ {
143
+ 603769: {
144
+ persian: "بانک صادرات",
145
+ english: "saderat",
146
+ },
147
+ },
148
+ {
149
+ 610433: {
150
+ persian: "بانک ملت",
151
+ english: "mellat",
152
+ },
153
+ },
154
+ {
155
+ 627353: {
156
+ persian: "بانک تجارت",
157
+ english: "tejarat",
158
+ },
159
+ },
160
+ {
161
+ 585983: {
162
+ persian: "بانک تجارت",
163
+ english: "tejarat",
164
+ },
165
+ },
166
+ {
167
+ 589463: {
168
+ persian: "بانک رفاه",
169
+ english: "refah",
170
+ },
171
+ },
172
+ {
173
+ 627381: {
174
+ persian: "بانک انصار",
175
+ english: "ansar",
176
+ },
177
+ },
178
+ {
179
+ 639370: {
180
+ persian: "بانک مهر اقتصاد",
181
+ english: "mehr-eqtesad",
182
+ },
183
+ },
184
+ {
185
+ 505801: {
186
+ persian: "موسسه اعتباری کوثر",
187
+ english: "kosar",
188
+ },
189
+ },
190
+ {
191
+ 606373: {
192
+ persian: "بانک قرض الحسنه مهرایرانیان",
193
+ english: "mehr",
194
+ },
195
+ },
196
+ {
197
+ 186214: {
198
+ persian: "بانک آینده",
199
+ english: "ayandeh",
200
+ },
201
+ },
202
+ {
203
+ 504172: {
204
+ persian: "بانک قرض الحسنه رسالت",
205
+ english: "resalat",
206
+ },
207
+ },
208
+ {
209
+ 505416: {
210
+ persian: "بانک گردشگری",
211
+ english: "tourism",
212
+ },
213
+ },
214
+ {
215
+ 505785: {
216
+ persian: "بانک ایران‌زمین",
217
+ english: "iran-zamin",
218
+ },
219
+ },
220
+ {
221
+ 505809: {
222
+ persian: "بانک خاورمیانه",
223
+ english: "middle-east",
224
+ },
225
+ },
226
+ {
227
+ 585947: {
228
+ persian: "بانک خاورمیانه",
229
+ english: "middle-east",
230
+ },
231
+ },
232
+ {
233
+ 604932: {
234
+ persian: "بانک سپه",
235
+ english: "sepah",
236
+ },
237
+ },
238
+ {
239
+ 627961: {
240
+ persian: "بانک صنعت و معدن",
241
+ english: "industry-mine",
242
+ },
243
+ },
244
+ {
245
+ 636214: {
246
+ persian: "بانک آینده",
247
+ english: "ayandeh",
248
+ },
249
+ },
250
+ {
251
+ 636795: {
252
+ persian: "بانک مرکزی",
253
+ english: "markazi",
254
+ },
255
+ },
256
+ {
257
+ 636949: {
258
+ persian: "بانک حکمت ایرانیان",
259
+ english: "hekmat-iranian",
260
+ },
261
+ },
262
+ {
263
+ 639217: {
264
+ persian: "بانک کشاورزی",
265
+ english: "agriculture",
266
+ },
267
+ },
268
+ ];
269
+
270
+ export const ibans: Array<Bank> = [
271
+ {
272
+ "010": {
273
+ persian: "بانک مرکزی",
274
+ english: "markazi",
275
+ },
276
+ },
277
+ {
278
+ "011": {
279
+ persian: "بانک صنعت و معدن",
280
+ english: "industry-mine",
281
+ },
282
+ },
283
+ {
284
+ "012": {
285
+ persian: "بانک ملت",
286
+ english: "mellat",
287
+ },
288
+ },
289
+ {
290
+ "013": {
291
+ persian: "بانک رفاه",
292
+ english: "refah",
293
+ },
294
+ },
295
+ {
296
+ "014": {
297
+ persian: "بانک مسکن",
298
+ english: "housing",
299
+ },
300
+ },
301
+ {
302
+ "015": {
303
+ persian: "بانک سپه",
304
+ english: "sepah",
305
+ },
306
+ },
307
+ {
308
+ "016": {
309
+ persian: "بانک کشاورزی",
310
+ english: "agriculture",
311
+ },
312
+ },
313
+ {
314
+ "017": {
315
+ persian: "بانک ملّی ایران",
316
+ english: "melli",
317
+ },
318
+ },
319
+ {
320
+ "018": {
321
+ persian: "بانک تجارت",
322
+ english: "tejarat",
323
+ },
324
+ },
325
+ {
326
+ "019": {
327
+ persian: "بانک صادرات",
328
+ english: "saderat",
329
+ },
330
+ },
331
+ {
332
+ "020": {
333
+ persian: "بانک توسعه صادرات",
334
+ english: "export-development",
335
+ },
336
+ },
337
+ {
338
+ "021": {
339
+ persian: "پست بانک",
340
+ english: "post",
341
+ },
342
+ },
343
+ {
344
+ "053": {
345
+ persian: "بانک کارآفرین",
346
+ english: "karafarin",
347
+ },
348
+ },
349
+ {
350
+ "054": {
351
+ persian: "بانک پارسیان",
352
+ english: "parsian",
353
+ },
354
+ },
355
+ {
356
+ "055": {
357
+ persian: "بانک اقتصاد نوین",
358
+ english: "eghtesad-novin",
359
+ },
360
+ },
361
+ {
362
+ "056": {
363
+ persian: "بانک سامان",
364
+ english: "saman",
365
+ },
366
+ },
367
+ {
368
+ "057": {
369
+ persian: "بانک پاسارگاد",
370
+ english: "pasargad",
371
+ },
372
+ },
373
+ {
374
+ "058": {
375
+ persian: "بانک سرمایه",
376
+ english: "sarmayeh",
377
+ },
378
+ },
379
+ {
380
+ "059": {
381
+ persian: "بانک سینا",
382
+ english: "sina",
383
+ },
384
+ },
385
+ {
386
+ "060": {
387
+ persian: "بانک قرض الحسنه مهرایرانیان",
388
+ english: "mehr",
389
+ },
390
+ },
391
+ {
392
+ "061": {
393
+ persian: "بانک شهر",
394
+ english: "shahr",
395
+ },
396
+ },
397
+ {
398
+ "062": {
399
+ persian: "بانک آینده",
400
+ english: "ayandeh",
401
+ },
402
+ },
403
+ {
404
+ "065": {
405
+ persian: "بانک حکمت ایرانیان",
406
+ english: "hekmat-iranian",
407
+ },
408
+ },
409
+ {
410
+ "066": {
411
+ persian: "بانک دی",
412
+ english: "day",
413
+ },
414
+ },
415
+ {
416
+ "069": {
417
+ persian: "بانک ایران زمین",
418
+ english: "iran-zamin",
419
+ },
420
+ },
421
+ {
422
+ "070": {
423
+ persian: "بانک قرض الحسنه رسالت",
424
+ english: "resalat",
425
+ },
426
+ },
427
+ {
428
+ "078": {
429
+ persian: "بانک خاورمیانه",
430
+ english: "middle-east",
431
+ },
432
+ },
433
+ ];
@@ -0,0 +1,68 @@
1
+ import { CommonMaskFormats, DateFormat } from "./Constants";
2
+ import dayjs from "dayjs";
3
+ import { setupJalaliDate } from "../dateHandling";
4
+
5
+ setupJalaliDate();
6
+
7
+ export class Formatter {
8
+ public static toCurrency(amount: number, options: unknown) {
9
+ return amount.toLocaleString("en-US", options);
10
+ }
11
+
12
+ public static toCurrencyWithDotSeparator(amount: number) {
13
+ return Formatter.toCurrency(amount).replaceAll(",", ".");
14
+ }
15
+
16
+ public static applyMask(format: string, value: string): string {
17
+ let result = "";
18
+ let formatIndex = 0;
19
+ let valueIndex = 0;
20
+
21
+ while (formatIndex < format.length) {
22
+ if (format[formatIndex] === "#") {
23
+ if (valueIndex >= value.length) {
24
+ throw new Error("Value length does not match the format.");
25
+ }
26
+ result += value[valueIndex];
27
+ valueIndex++;
28
+ } else {
29
+ result += format[formatIndex];
30
+ }
31
+ formatIndex++;
32
+ }
33
+
34
+ if (valueIndex !== value.length) {
35
+ throw new Error("Value length does not match the format.");
36
+ }
37
+
38
+ return result;
39
+ }
40
+
41
+ public static applyBankCardMask(value: number | string) {
42
+ return Formatter.applyMask(CommonMaskFormats.BankCard, String(value));
43
+ }
44
+
45
+ public static applyIbanMask(value: number | string) {
46
+ return Formatter.applyMask(CommonMaskFormats.Iban, String(value));
47
+ }
48
+
49
+ public static toEnglishDigits(value: string): string {
50
+ const persianNumbers = ["۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "۰"];
51
+ const arabicNumbers = ["١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩", "٠"];
52
+ const englishNumbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
53
+
54
+ return value
55
+ .split("")
56
+ .map(
57
+ (c) =>
58
+ englishNumbers[persianNumbers.indexOf(c)] ||
59
+ englishNumbers[arabicNumbers.indexOf(c)] ||
60
+ c,
61
+ )
62
+ .join("");
63
+ }
64
+
65
+ public static mapUnixToDate(unixValue: number, format: DateFormat) {
66
+ return dayjs(new Date(unixValue)).subtract(1, "day").format(format);
67
+ }
68
+ }
@@ -0,0 +1,113 @@
1
+ import { cards, ibans } from "./Constants";
2
+ import { Formatter } from "./Formatter";
3
+ import type { AxiosResponse } from "axios";
4
+ import { SortOrder } from "../constants";
5
+
6
+ export class Util {
7
+ public static getBankImageBaseOnCardInfo(
8
+ account_number: string | undefined,
9
+ type: "IBAN" | "CARD",
10
+ ) {
11
+ if (account_number === undefined) return `/img/banks/shetab.png`;
12
+
13
+ if (type === "IBAN") {
14
+ account_number = Formatter.toEnglishDigits(
15
+ account_number.replace(/IR/g, "").split(" ").join(""),
16
+ );
17
+ return `/img/banks/${Util.iban(account_number).english}.png`;
18
+ }
19
+
20
+ account_number = Formatter.toEnglishDigits(
21
+ account_number.replace(/ /g, ""),
22
+ );
23
+ return `/img/banks/${Util.card(account_number).english}.png`;
24
+ }
25
+
26
+ private static card(number?: string) {
27
+ const unknown = { persian: "نامشخص", english: "shetab" };
28
+ if (number === undefined || number === null) return unknown;
29
+ number = number.substring(0, 6);
30
+ try {
31
+ const bank = cards.find((card) => Object.keys(card)[0] === number);
32
+ if (bank === undefined) return unknown;
33
+ return Object.values(bank)[0];
34
+ } catch {
35
+ return unknown;
36
+ }
37
+ }
38
+
39
+ // Args: number -> string
40
+ // Returns: Object { persian: "string", english: "string" } || {}
41
+ private static iban(number: string | undefined) {
42
+ const unknown = { persian: "نامشخص", english: "shetab" };
43
+
44
+ if (number === undefined || number === null) return unknown;
45
+ number = number.substring(2, 5);
46
+ try {
47
+ const bank = ibans.find((iban) => Object.keys(iban)[0] === number);
48
+ if (bank === undefined) return unknown;
49
+ return Object.values(bank)[0];
50
+ } catch {
51
+ return unknown;
52
+ }
53
+ }
54
+
55
+ public static async copyValueToClipboard(value: string | number) {
56
+ await navigator.clipboard.writeText(String(value));
57
+ }
58
+
59
+ public static downloadBlob(
60
+ response: AxiosResponse<Blob>,
61
+ fileName: string = Util.extractFileNameFromHeader(response),
62
+ ) {
63
+ const linkElement = document.createElement("a");
64
+ linkElement.href = URL.createObjectURL(response.data);
65
+ linkElement.download = fileName;
66
+ linkElement.dispatchEvent(
67
+ new MouseEvent("click", {
68
+ bubbles: true,
69
+ cancelable: true,
70
+ composed: true,
71
+ }),
72
+ );
73
+ linkElement.remove();
74
+ }
75
+
76
+ private static extractFileNameFromHeader(response: AxiosResponse<Blob>) {
77
+ const fileName: string | undefined = response.headers["content-disposition"]
78
+ ?.split("filename=")[1]
79
+ ?.slice(
80
+ 1,
81
+ response.headers["content-disposition"]?.split("filename=")?.[1]
82
+ .length - 1,
83
+ );
84
+ return fileName || "Saraf-File";
85
+ }
86
+
87
+ public static removeSpacesFromString(value: string): string {
88
+ if (value && typeof value.normalize === "function") {
89
+ value = value.normalize("NFC");
90
+ }
91
+
92
+ return value.replace(
93
+ /[\s\u00A0\u1680\u180E\u2000-\u200A\u200B-\u200D\u2060\uFEFF\u2028\u2029\u202F\u205F\u3000]+/g,
94
+ "",
95
+ );
96
+ }
97
+
98
+ public static isArraySorted<T>(
99
+ items: T[],
100
+ itemResolver = (item: T) => item,
101
+ order = SortOrder.ASC,
102
+ ) {
103
+ return items.every((item, index: number) => {
104
+ const isLastItem = items.length - 1 === index;
105
+ if (isLastItem) return true;
106
+ if (order === SortOrder.ASC) {
107
+ return itemResolver(item) <= itemResolver(items[index + 1]);
108
+ } else {
109
+ return itemResolver(item) >= itemResolver(items[index + 1]);
110
+ }
111
+ });
112
+ }
113
+ }
@@ -0,0 +1,3 @@
1
+ export * from './Constants';
2
+ export * from './Formatter';
3
+ export * from './Util';
@@ -0,0 +1,21 @@
1
+ import { type Observer } from "./Observer";
2
+
3
+ export abstract class AbstractSubject {
4
+ private observers: Observer<AbstractSubject>[] = [];
5
+
6
+ public attach(observer: Observer<AbstractSubject>) {
7
+ this.observers.push(observer);
8
+ }
9
+
10
+ public detach(observer: Observer<AbstractSubject>) {
11
+ this.observers = this.observers.filter(
12
+ (observerItem) => observerItem !== observer,
13
+ );
14
+ }
15
+
16
+ protected notify() {
17
+ for (const observer of this.observers) {
18
+ observer.update(this);
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,58 @@
1
+ import { type Subject } from "./Subject";
2
+ import { type Observer } from "./Observer";
3
+
4
+ export type ObserverCallback<T> = (value: T) => void;
5
+ type ObserverUpdaterCallback<T> = (value: T) => T;
6
+
7
+ export class BehaviorSubject<T> implements Subject<T> {
8
+ private _value!: T;
9
+ private observers: (Observer<T> | ObserverCallback<T>)[] = [];
10
+
11
+ constructor(value: T) {
12
+ this.attach = this.attach.bind(this);
13
+ this.detach = this.detach.bind(this);
14
+ this.notify = this.notify.bind(this);
15
+ this.notifyObject = this.notifyObject.bind(this);
16
+ this.next = this.next.bind(this);
17
+ this.getValue = this.getValue.bind(this);
18
+ this.next(value);
19
+ }
20
+
21
+ public attach(observer: Observer<T> | ObserverCallback<T>): void {
22
+ this.observers.push(observer);
23
+ this.notifyObject(observer);
24
+ }
25
+
26
+ public detach(observer: Observer<T> | ObserverCallback<T>): void {
27
+ this.observers = this.observers.filter((observerItem) => {
28
+ return observerItem !== observer;
29
+ });
30
+ }
31
+
32
+ public notify(): void {
33
+ for (const observer of this.observers) {
34
+ this.notifyObject(observer);
35
+ }
36
+ }
37
+
38
+ private notifyObject(observer: Observer<T> | ObserverCallback<T>) {
39
+ if (typeof observer === "function") {
40
+ observer(this._value);
41
+ } else {
42
+ observer.update(this._value);
43
+ }
44
+ }
45
+
46
+ public next(newValue: T | ObserverUpdaterCallback<T>) {
47
+ if (typeof newValue === "function") {
48
+ this._value = newValue(this._value);
49
+ } else {
50
+ this._value = newValue;
51
+ }
52
+ this.notify();
53
+ }
54
+
55
+ public getValue() {
56
+ return this._value;
57
+ }
58
+ }
@@ -0,0 +1,3 @@
1
+ export interface Observer<T> {
2
+ update(subject: T): void;
3
+ }
@@ -0,0 +1,9 @@
1
+ import { type Observer } from "./Observer";
2
+
3
+ export interface Subject<T> {
4
+ attach(observer: Observer<T>): void;
5
+
6
+ detach(observer: Observer<T>): void;
7
+
8
+ notify(): void;
9
+ }
@@ -0,0 +1,4 @@
1
+ export { AbstractSubject } from './AbstractSubject'
2
+ export { type Observer } from './Observer'
3
+ export { type ObserverCallback, BehaviorSubject } from './BehaviorSubject'
4
+ export { type Subject } from './Subject'