@axelor/aos-mobile-core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +310 -0
  2. package/lib/api/attached-files-api.d.ts +8 -0
  3. package/lib/api/attached-files-api.js +51 -0
  4. package/lib/api/attached-files-api.js.map +1 -0
  5. package/lib/api/login-api.d.ts +5 -0
  6. package/lib/api/login-api.js +41 -0
  7. package/lib/api/login-api.js.map +1 -0
  8. package/lib/api/mail-message-api.d.ts +43 -0
  9. package/lib/api/mail-message-api.js +114 -0
  10. package/lib/api/mail-message-api.js.map +1 -0
  11. package/lib/api/menu-config-api.d.ts +5 -0
  12. package/lib/api/menu-config-api.js +68 -0
  13. package/lib/api/menu-config-api.js.map +1 -0
  14. package/lib/api/metafile-api.d.ts +6 -0
  15. package/lib/api/metafile-api.js +50 -0
  16. package/lib/api/metafile-api.js.map +1 -0
  17. package/lib/api/mobile-config-api.d.ts +1 -0
  18. package/lib/api/mobile-config-api.js +31 -0
  19. package/lib/api/mobile-config-api.js.map +1 -0
  20. package/lib/api/net-info-utils.d.ts +5 -0
  21. package/lib/api/net-info-utils.js +29 -0
  22. package/lib/api/net-info-utils.js.map +1 -0
  23. package/lib/api/traceback-api.d.ts +7 -0
  24. package/lib/api/traceback-api.js +35 -0
  25. package/lib/api/traceback-api.js.map +1 -0
  26. package/lib/api/utils.d.ts +25 -0
  27. package/lib/api/utils.js +92 -0
  28. package/lib/api/utils.js.map +1 -0
  29. package/lib/app/Application.d.ts +15 -0
  30. package/lib/app/Application.js +29 -0
  31. package/lib/app/Application.js.map +1 -0
  32. package/lib/app/ContextedApplication.d.ts +9 -0
  33. package/lib/app/ContextedApplication.js +80 -0
  34. package/lib/app/ContextedApplication.js.map +1 -0
  35. package/lib/app/ContextsProvider.d.ts +14 -0
  36. package/lib/app/ContextsProvider.js +63 -0
  37. package/lib/app/ContextsProvider.js.map +1 -0
  38. package/lib/app/Module.d.ts +26 -0
  39. package/lib/app/Module.js +19 -0
  40. package/lib/app/Module.js.map +1 -0
  41. package/lib/app/RootNavigator.d.ts +7 -0
  42. package/lib/app/RootNavigator.js +69 -0
  43. package/lib/app/RootNavigator.js.map +1 -0
  44. package/lib/app/index.d.ts +5 -0
  45. package/lib/app/index.js +22 -0
  46. package/lib/app/index.js.map +1 -0
  47. package/lib/assets/Logo_Axelor.png +0 -0
  48. package/lib/auth/api/company-api.d.ts +1 -0
  49. package/lib/auth/api/company-api.js +31 -0
  50. package/lib/auth/api/company-api.js.map +1 -0
  51. package/lib/auth/api/config-api.d.ts +2 -0
  52. package/lib/auth/api/config-api.js +45 -0
  53. package/lib/auth/api/config-api.js.map +1 -0
  54. package/lib/auth/api/index.d.ts +4 -0
  55. package/lib/auth/api/index.js +22 -0
  56. package/lib/auth/api/index.js.map +1 -0
  57. package/lib/auth/api/language-api.d.ts +1 -0
  58. package/lib/auth/api/language-api.js +24 -0
  59. package/lib/auth/api/language-api.js.map +1 -0
  60. package/lib/auth/api/user-api.d.ts +2 -0
  61. package/lib/auth/api/user-api.js +30 -0
  62. package/lib/auth/api/user-api.js.map +1 -0
  63. package/lib/auth/features/asyncFunctionsIndex.d.ts +4 -0
  64. package/lib/auth/features/asyncFunctionsIndex.js +22 -0
  65. package/lib/auth/features/asyncFunctionsIndex.js.map +1 -0
  66. package/lib/auth/features/companySlice.d.ts +14 -0
  67. package/lib/auth/features/companySlice.js +48 -0
  68. package/lib/auth/features/companySlice.js.map +1 -0
  69. package/lib/auth/features/configSlice.d.ts +37 -0
  70. package/lib/auth/features/configSlice.js +82 -0
  71. package/lib/auth/features/configSlice.js.map +1 -0
  72. package/lib/auth/features/index.d.ts +4 -0
  73. package/lib/auth/features/index.js +22 -0
  74. package/lib/auth/features/index.js.map +1 -0
  75. package/lib/auth/features/languageSlice.d.ts +14 -0
  76. package/lib/auth/features/languageSlice.js +48 -0
  77. package/lib/auth/features/languageSlice.js.map +1 -0
  78. package/lib/auth/features/userSlice.d.ts +27 -0
  79. package/lib/auth/features/userSlice.js +83 -0
  80. package/lib/auth/features/userSlice.js.map +1 -0
  81. package/lib/auth/i18n/en.json +23 -0
  82. package/lib/auth/i18n/fr.json +23 -0
  83. package/lib/auth/index.d.ts +5 -0
  84. package/lib/auth/index.js +55 -0
  85. package/lib/auth/index.js.map +1 -0
  86. package/lib/auth/screens/SettingsScreen.d.ts +4 -0
  87. package/lib/auth/screens/SettingsScreen.js +79 -0
  88. package/lib/auth/screens/SettingsScreen.js.map +1 -0
  89. package/lib/auth/screens/UserScreen.d.ts +5 -0
  90. package/lib/auth/screens/UserScreen.js +116 -0
  91. package/lib/auth/screens/UserScreen.js.map +1 -0
  92. package/lib/auth/screens/index.d.ts +2 -0
  93. package/lib/auth/screens/index.js +20 -0
  94. package/lib/auth/screens/index.js.map +1 -0
  95. package/lib/axios/AxiosApi.d.ts +12 -0
  96. package/lib/axios/AxiosApi.js +32 -0
  97. package/lib/axios/AxiosApi.js.map +1 -0
  98. package/lib/components/external/Camera/Camera.d.ts +2 -0
  99. package/lib/components/external/Camera/Camera.js +148 -0
  100. package/lib/components/external/Camera/Camera.js.map +1 -0
  101. package/lib/components/external/Camera/CaptureButton.d.ts +10 -0
  102. package/lib/components/external/Camera/CaptureButton.js +118 -0
  103. package/lib/components/external/Camera/CaptureButton.js.map +1 -0
  104. package/lib/components/external/CameraScanner/CameraScanner.d.ts +10 -0
  105. package/lib/components/external/CameraScanner/CameraScanner.js +87 -0
  106. package/lib/components/external/CameraScanner/CameraScanner.js.map +1 -0
  107. package/lib/components/external/PlanningView/PlanningView.d.ts +11 -0
  108. package/lib/components/external/PlanningView/PlanningView.js +123 -0
  109. package/lib/components/external/PlanningView/PlanningView.js.map +1 -0
  110. package/lib/components/external/PlanningView/agenda.helpers.d.ts +10 -0
  111. package/lib/components/external/PlanningView/agenda.helpers.js +90 -0
  112. package/lib/components/external/PlanningView/agenda.helpers.js.map +1 -0
  113. package/lib/components/external/Scanner/Scanner.d.ts +2 -0
  114. package/lib/components/external/Scanner/Scanner.js +67 -0
  115. package/lib/components/external/Scanner/Scanner.js.map +1 -0
  116. package/lib/components/external/Stopwatch/Stopwatch.d.ts +18 -0
  117. package/lib/components/external/Stopwatch/Stopwatch.js +114 -0
  118. package/lib/components/external/Stopwatch/Stopwatch.js.map +1 -0
  119. package/lib/components/external/Timer/Timer.d.ts +9 -0
  120. package/lib/components/external/Timer/Timer.js +60 -0
  121. package/lib/components/external/Timer/Timer.js.map +1 -0
  122. package/lib/components/external/index.d.ts +6 -0
  123. package/lib/components/external/index.js +24 -0
  124. package/lib/components/external/index.js.map +1 -0
  125. package/lib/components/index.d.ts +4 -0
  126. package/lib/components/index.js +22 -0
  127. package/lib/components/index.js.map +1 -0
  128. package/lib/components/molecules/ErrorText/ErrorText.d.ts +4 -0
  129. package/lib/components/molecules/ErrorText/ErrorText.js +31 -0
  130. package/lib/components/molecules/ErrorText/ErrorText.js.map +1 -0
  131. package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.d.ts +9 -0
  132. package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.js +56 -0
  133. package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.js.map +1 -0
  134. package/lib/components/molecules/IconSettings/IconSettings.d.ts +4 -0
  135. package/lib/components/molecules/IconSettings/IconSettings.js +31 -0
  136. package/lib/components/molecules/IconSettings/IconSettings.js.map +1 -0
  137. package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.d.ts +7 -0
  138. package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js +84 -0
  139. package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.js.map +1 -0
  140. package/lib/components/molecules/LoginButton/LoginButton.d.ts +4 -0
  141. package/lib/components/molecules/LoginButton/LoginButton.js +40 -0
  142. package/lib/components/molecules/LoginButton/LoginButton.js.map +1 -0
  143. package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.d.ts +7 -0
  144. package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.js +55 -0
  145. package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.js.map +1 -0
  146. package/lib/components/molecules/TrackItem/TrackItem.d.ts +9 -0
  147. package/lib/components/molecules/TrackItem/TrackItem.js +65 -0
  148. package/lib/components/molecules/TrackItem/TrackItem.js.map +1 -0
  149. package/lib/components/molecules/index.d.ts +7 -0
  150. package/lib/components/molecules/index.js +25 -0
  151. package/lib/components/molecules/index.js.map +1 -0
  152. package/lib/components/organisms/AOSImage/AOSImage.d.ts +15 -0
  153. package/lib/components/organisms/AOSImage/AOSImage.js +37 -0
  154. package/lib/components/organisms/AOSImage/AOSImage.js.map +1 -0
  155. package/lib/components/organisms/AOSImageBubble/AOSImageBubble.d.ts +9 -0
  156. package/lib/components/organisms/AOSImageBubble/AOSImageBubble.js +30 -0
  157. package/lib/components/organisms/AOSImageBubble/AOSImageBubble.js.map +1 -0
  158. package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.d.ts +9 -0
  159. package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.js +68 -0
  160. package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.js.map +1 -0
  161. package/lib/components/organisms/LogoImage/LogoImage.d.ts +4 -0
  162. package/lib/components/organisms/LogoImage/LogoImage.js +52 -0
  163. package/lib/components/organisms/LogoImage/LogoImage.js.map +1 -0
  164. package/lib/components/organisms/MailMessageCard/MailMessageCard.d.ts +17 -0
  165. package/lib/components/organisms/MailMessageCard/MailMessageCard.js +79 -0
  166. package/lib/components/organisms/MailMessageCard/MailMessageCard.js.map +1 -0
  167. package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.d.ts +12 -0
  168. package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.js +139 -0
  169. package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.js.map +1 -0
  170. package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.d.ts +15 -0
  171. package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.js +79 -0
  172. package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.js.map +1 -0
  173. package/lib/components/organisms/PasswordInput/PasswordInput.d.ts +7 -0
  174. package/lib/components/organisms/PasswordInput/PasswordInput.js +36 -0
  175. package/lib/components/organisms/PasswordInput/PasswordInput.js.map +1 -0
  176. package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.d.ts +17 -0
  177. package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js +68 -0
  178. package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.js.map +1 -0
  179. package/lib/components/organisms/UrlInput/UrlInput.d.ts +10 -0
  180. package/lib/components/organisms/UrlInput/UrlInput.js +38 -0
  181. package/lib/components/organisms/UrlInput/UrlInput.js.map +1 -0
  182. package/lib/components/organisms/UsernameInput/UsernameInput.d.ts +6 -0
  183. package/lib/components/organisms/UsernameInput/UsernameInput.js +33 -0
  184. package/lib/components/organisms/UsernameInput/UsernameInput.js.map +1 -0
  185. package/lib/components/organisms/index.d.ts +11 -0
  186. package/lib/components/organisms/index.js +29 -0
  187. package/lib/components/organisms/index.js.map +1 -0
  188. package/lib/components/templates/AttachedFilesView/AttachedFilesView.d.ts +10 -0
  189. package/lib/components/templates/AttachedFilesView/AttachedFilesView.js +87 -0
  190. package/lib/components/templates/AttachedFilesView/AttachedFilesView.js.map +1 -0
  191. package/lib/components/templates/MailMessageView/MailMessageView.d.ts +6 -0
  192. package/lib/components/templates/MailMessageView/MailMessageView.js +140 -0
  193. package/lib/components/templates/MailMessageView/MailMessageView.js.map +1 -0
  194. package/lib/components/templates/index.d.ts +2 -0
  195. package/lib/components/templates/index.js +20 -0
  196. package/lib/components/templates/index.js.map +1 -0
  197. package/lib/features/attachedFilesSlice.d.ts +35 -0
  198. package/lib/features/attachedFilesSlice.js +82 -0
  199. package/lib/features/attachedFilesSlice.js.map +1 -0
  200. package/lib/features/authSlice.d.ts +44 -0
  201. package/lib/features/authSlice.js +67 -0
  202. package/lib/features/authSlice.js.map +1 -0
  203. package/lib/features/cameraSlice.d.ts +14 -0
  204. package/lib/features/cameraSlice.js +52 -0
  205. package/lib/features/cameraSlice.js.map +1 -0
  206. package/lib/features/index.d.ts +8 -0
  207. package/lib/features/index.js +26 -0
  208. package/lib/features/index.js.map +1 -0
  209. package/lib/features/mailMessageSlice.d.ts +97 -0
  210. package/lib/features/mailMessageSlice.js +219 -0
  211. package/lib/features/mailMessageSlice.js.map +1 -0
  212. package/lib/features/menuConfigSlice.d.ts +14 -0
  213. package/lib/features/menuConfigSlice.js +48 -0
  214. package/lib/features/menuConfigSlice.js.map +1 -0
  215. package/lib/features/metafileSlice.d.ts +14 -0
  216. package/lib/features/metafileSlice.js +48 -0
  217. package/lib/features/metafileSlice.js.map +1 -0
  218. package/lib/features/mobileConfigSlice.d.ts +14 -0
  219. package/lib/features/mobileConfigSlice.js +52 -0
  220. package/lib/features/mobileConfigSlice.js.map +1 -0
  221. package/lib/features/scannerSlice.d.ts +14 -0
  222. package/lib/features/scannerSlice.js +52 -0
  223. package/lib/features/scannerSlice.js.map +1 -0
  224. package/lib/hooks/use-effect-debugger.d.ts +1 -0
  225. package/lib/hooks/use-effect-debugger.js +47 -0
  226. package/lib/hooks/use-effect-debugger.js.map +1 -0
  227. package/lib/i18n/api/translation.d.ts +2 -0
  228. package/lib/i18n/api/translation.js +38 -0
  229. package/lib/i18n/api/translation.js.map +1 -0
  230. package/lib/i18n/component/Translator.d.ts +6 -0
  231. package/lib/i18n/component/Translator.js +74 -0
  232. package/lib/i18n/component/Translator.js.map +1 -0
  233. package/lib/i18n/helpers/langages.d.ts +3 -0
  234. package/lib/i18n/helpers/langages.js +34 -0
  235. package/lib/i18n/helpers/langages.js.map +1 -0
  236. package/lib/i18n/helpers/translations.d.ts +1 -0
  237. package/lib/i18n/helpers/translations.js +24 -0
  238. package/lib/i18n/helpers/translations.js.map +1 -0
  239. package/lib/i18n/hooks/use-translator.d.ts +5 -0
  240. package/lib/i18n/hooks/use-translator.js +24 -0
  241. package/lib/i18n/hooks/use-translator.js.map +1 -0
  242. package/lib/i18n/i18n.d.ts +20 -0
  243. package/lib/i18n/i18n.js +53 -0
  244. package/lib/i18n/i18n.js.map +1 -0
  245. package/lib/i18n/index.d.ts +4 -0
  246. package/lib/i18n/index.js +22 -0
  247. package/lib/i18n/index.js.map +1 -0
  248. package/lib/i18n/translations/en.json +52 -0
  249. package/lib/i18n/translations/fr.json +52 -0
  250. package/lib/index.d.ts +18 -0
  251. package/lib/index.js +36 -0
  252. package/lib/index.js.map +1 -0
  253. package/lib/navigator/Navigator.d.ts +12 -0
  254. package/lib/navigator/Navigator.js +118 -0
  255. package/lib/navigator/Navigator.js.map +1 -0
  256. package/lib/navigator/drawer/AuthMenuIconButton.d.ts +6 -0
  257. package/lib/navigator/drawer/AuthMenuIconButton.js +29 -0
  258. package/lib/navigator/drawer/AuthMenuIconButton.js.map +1 -0
  259. package/lib/navigator/drawer/BackIcon.d.ts +4 -0
  260. package/lib/navigator/drawer/BackIcon.js +32 -0
  261. package/lib/navigator/drawer/BackIcon.js.map +1 -0
  262. package/lib/navigator/drawer/DrawerContent.d.ts +8 -0
  263. package/lib/navigator/drawer/DrawerContent.js +177 -0
  264. package/lib/navigator/drawer/DrawerContent.js.map +1 -0
  265. package/lib/navigator/drawer/DrawerToggleButton.d.ts +4 -0
  266. package/lib/navigator/drawer/DrawerToggleButton.js +32 -0
  267. package/lib/navigator/drawer/DrawerToggleButton.js.map +1 -0
  268. package/lib/navigator/drawer/Menu.d.ts +8 -0
  269. package/lib/navigator/drawer/Menu.js +91 -0
  270. package/lib/navigator/drawer/Menu.js.map +1 -0
  271. package/lib/navigator/drawer/MenuIconButton.d.ts +10 -0
  272. package/lib/navigator/drawer/MenuIconButton.js +64 -0
  273. package/lib/navigator/drawer/MenuIconButton.js.map +1 -0
  274. package/lib/navigator/drawer/MenuItem.d.ts +8 -0
  275. package/lib/navigator/drawer/MenuItem.js +71 -0
  276. package/lib/navigator/drawer/MenuItem.js.map +1 -0
  277. package/lib/navigator/menu.helper.d.ts +8 -0
  278. package/lib/navigator/menu.helper.js +50 -0
  279. package/lib/navigator/menu.helper.js.map +1 -0
  280. package/lib/navigator/module.helper.d.ts +7 -0
  281. package/lib/navigator/module.helper.js +95 -0
  282. package/lib/navigator/module.helper.js.map +1 -0
  283. package/lib/navigator/roles.helper.d.ts +4 -0
  284. package/lib/navigator/roles.helper.js +33 -0
  285. package/lib/navigator/roles.helper.js.map +1 -0
  286. package/lib/redux/hooks.d.ts +5 -0
  287. package/lib/redux/hooks.js +25 -0
  288. package/lib/redux/hooks.js.map +1 -0
  289. package/lib/redux/store.d.ts +1 -0
  290. package/lib/redux/store.js +28 -0
  291. package/lib/redux/store.js.map +1 -0
  292. package/lib/screens/AttachedFilesScreen.d.ts +5 -0
  293. package/lib/screens/AttachedFilesScreen.js +26 -0
  294. package/lib/screens/AttachedFilesScreen.js.map +1 -0
  295. package/lib/screens/ErrorScreen.d.ts +5 -0
  296. package/lib/screens/ErrorScreen.js +46 -0
  297. package/lib/screens/ErrorScreen.js.map +1 -0
  298. package/lib/screens/LoginScreen.d.ts +4 -0
  299. package/lib/screens/LoginScreen.js +115 -0
  300. package/lib/screens/LoginScreen.js.map +1 -0
  301. package/lib/screens/MailMessageScreen.d.ts +5 -0
  302. package/lib/screens/MailMessageScreen.js +25 -0
  303. package/lib/screens/MailMessageScreen.js.map +1 -0
  304. package/lib/storage/Storage.d.ts +17 -0
  305. package/lib/storage/Storage.js +53 -0
  306. package/lib/storage/Storage.js.map +1 -0
  307. package/lib/tools/ClipboardProvider.d.ts +7 -0
  308. package/lib/tools/ClipboardProvider.js +59 -0
  309. package/lib/tools/ClipboardProvider.js.map +1 -0
  310. package/lib/tools/FileViewer.d.ts +13 -0
  311. package/lib/tools/FileViewer.js +48 -0
  312. package/lib/tools/FileViewer.js.map +1 -0
  313. package/lib/tools/LinkingProvider.d.ts +17 -0
  314. package/lib/tools/LinkingProvider.js +94 -0
  315. package/lib/tools/LinkingProvider.js.map +1 -0
  316. package/lib/tools/index.d.ts +3 -0
  317. package/lib/tools/index.js +21 -0
  318. package/lib/tools/index.js.map +1 -0
  319. package/lib/tools/linking.helper.d.ts +25 -0
  320. package/lib/tools/linking.helper.js +70 -0
  321. package/lib/tools/linking.helper.js.map +1 -0
  322. package/lib/types/index.d.ts +2 -0
  323. package/lib/types/index.js +20 -0
  324. package/lib/types/index.js.map +1 -0
  325. package/lib/types/mail-message-notification-type.d.ts +12 -0
  326. package/lib/types/mail-message-notification-type.js +48 -0
  327. package/lib/types/mail-message-notification-type.js.map +1 -0
  328. package/lib/types/stopwatch-type.d.ts +14 -0
  329. package/lib/types/stopwatch-type.js +64 -0
  330. package/lib/types/stopwatch-type.js.map +1 -0
  331. package/lib/utils/agenda.d.ts +1 -0
  332. package/lib/utils/agenda.js +28 -0
  333. package/lib/utils/agenda.js.map +1 -0
  334. package/lib/utils/date.d.ts +4 -0
  335. package/lib/utils/date.js +41 -0
  336. package/lib/utils/date.js.map +1 -0
  337. package/lib/utils/displayers.d.ts +1 -0
  338. package/lib/utils/displayers.js +19 -0
  339. package/lib/utils/displayers.js.map +1 -0
  340. package/lib/utils/formatters.d.ts +5 -0
  341. package/lib/utils/formatters.js +74 -0
  342. package/lib/utils/formatters.js.map +1 -0
  343. package/lib/utils/index.d.ts +9 -0
  344. package/lib/utils/index.js +27 -0
  345. package/lib/utils/index.js.map +1 -0
  346. package/lib/utils/list.d.ts +3 -0
  347. package/lib/utils/list.js +101 -0
  348. package/lib/utils/list.js.map +1 -0
  349. package/lib/utils/object.d.ts +2 -0
  350. package/lib/utils/object.js +36 -0
  351. package/lib/utils/object.js.map +1 -0
  352. package/lib/utils/show-toast-message.d.ts +2 -0
  353. package/lib/utils/show-toast-message.js +22 -0
  354. package/lib/utils/show-toast-message.js.map +1 -0
  355. package/lib/utils/string.d.ts +4 -0
  356. package/lib/utils/string.js +54 -0
  357. package/lib/utils/string.js.map +1 -0
  358. package/lib/utils/time.d.ts +4 -0
  359. package/lib/utils/time.js +78 -0
  360. package/lib/utils/time.js.map +1 -0
  361. package/package.json +95 -0
@@ -0,0 +1,118 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React, { createContext, useCallback, useEffect, useMemo, useState, } from 'react';
19
+ import { createDrawerNavigator } from '@react-navigation/drawer';
20
+ import { createStackNavigator } from '@react-navigation/stack';
21
+ import { useThemeColor, getHeaderStyles } from '@axelor/aos-mobile-ui';
22
+ import DrawerContent from './drawer/DrawerContent';
23
+ import { filterAuthorizedModules, getDefaultModule, moduleHasMenus, updateAccessibleMenus, } from './module.helper';
24
+ import { getMenuTitle } from './menu.helper';
25
+ import useTranslator from '../i18n/hooks/use-translator';
26
+ import DrawerToggleButton from './drawer/DrawerToggleButton';
27
+ import BackIcon from './drawer/BackIcon';
28
+ import { useDispatch, useSelector } from 'react-redux';
29
+ import { fetchMenuConfig } from '../features/menuConfigSlice';
30
+ import { fetchMobileConfig } from '../features/mobileConfigSlice';
31
+ import AttachedFilesScreen from '../screens/AttachedFilesScreen';
32
+ import MailMessageScreen from '../screens/MailMessageScreen';
33
+ import { Dimensions } from 'react-native';
34
+ const Drawer = createDrawerNavigator();
35
+ const Stack = createStackNavigator();
36
+ export const ModuleNavigatorContext = createContext({
37
+ activeModule: null,
38
+ modulesMenus: {},
39
+ modulesScreens: {},
40
+ });
41
+ const Navigator = ({ modules, mainMenu, showModulesSubtitle = false }) => {
42
+ const { user } = useSelector(state => state.user);
43
+ const { restrictedMenus } = useSelector(state => state.menuConfig);
44
+ const { mobileConfigs } = useSelector(state => state.mobileConfig);
45
+ const [activeModule, setActiveModule] = useState(getDefaultModule(modules, mainMenu));
46
+ const I18n = useTranslator();
47
+ const Colors = useThemeColor();
48
+ const dispatch = useDispatch();
49
+ useEffect(() => {
50
+ dispatch(fetchMobileConfig());
51
+ dispatch(fetchMenuConfig());
52
+ }, [dispatch]);
53
+ const styles = useMemo(() => getHeaderStyles(Colors), [Colors]);
54
+ const changeActiveModule = useCallback(moduleName => {
55
+ setActiveModule(modules.find(_module => _module.name === moduleName));
56
+ }, [modules]);
57
+ const enabledModule = useMemo(() => filterAuthorizedModules(modules, mobileConfigs, user), [mobileConfigs, modules, user]);
58
+ const modulesMenus = useMemo(() => {
59
+ return enabledModule
60
+ .map(_module => updateAccessibleMenus(_module, restrictedMenus, user))
61
+ .filter(moduleHasMenus)
62
+ .reduce((menus, _module) => ({ ...menus, ..._module.menus }), {});
63
+ }, [enabledModule, restrictedMenus, user]);
64
+ const modulesScreens = useMemo(() => modules.reduce((screens, module) => ({ ...screens, ...module.screens }), {
65
+ AttachedFilesScreen: {
66
+ title: 'Base_AttachedFiles',
67
+ component: AttachedFilesScreen,
68
+ options: {
69
+ shadedHeader: false,
70
+ },
71
+ },
72
+ MailMessageScreen: {
73
+ title: 'Base_MailMessages',
74
+ component: MailMessageScreen,
75
+ options: {
76
+ shadedHeader: false,
77
+ },
78
+ },
79
+ }), [modules]);
80
+ const ModulesScreensStackNavigator = useCallback(({ initialRouteName, ...rest }) => (<Stack.Navigator {...rest} initialRouteName={initialRouteName}>
81
+ {Object.entries(modulesScreens).map(([key, { component, title, options = { shadedHeader: true } }]) => {
82
+ const screenOptions = {
83
+ headerTintColor: Colors.primaryColor.background,
84
+ headerStyle: options?.shadedHeader
85
+ ? styles.headerColor
86
+ : styles.listScreenHeaderStyle,
87
+ headerTitle: I18n.t(title),
88
+ headerTitleStyle: styles.headerTitle,
89
+ };
90
+ if (initialRouteName === key) {
91
+ screenOptions.headerLeft = () => (<DrawerToggleButton tintColor={Colors.primaryColor.background}/>);
92
+ }
93
+ else {
94
+ screenOptions.headerLeft = () => (<BackIcon tintColor={Colors.primaryColor.background}/>);
95
+ }
96
+ return (<Stack.Screen key={key} name={key} component={component} options={screenOptions}/>);
97
+ })}
98
+ </Stack.Navigator>), [Colors, I18n, modulesScreens, styles]);
99
+ const windowWidth = Dimensions.get('window').width;
100
+ const isLargeScreen = windowWidth >= 768;
101
+ return (<ModuleNavigatorContext.Provider value={{ activeModule, modulesMenus, modulesScreens }}>
102
+ <Drawer.Navigator initialRouteName={mainMenu} screenOptions={{
103
+ headerShown: false,
104
+ drawerStyle: {
105
+ backgroundColor: Colors.backgroundColor,
106
+ width: isLargeScreen ? windowWidth * 0.5 : windowWidth * 0.8,
107
+ },
108
+ }} drawerContent={props => (<DrawerContent {...props} modules={enabledModule} onModuleClick={changeActiveModule} showModulesSubtitle={showModulesSubtitle}/>)}>
109
+ {Object.entries(modulesMenus).map(([key, menu]) => (<Drawer.Screen key={key} name={key} options={{
110
+ title: getMenuTitle(menu, { I18n }),
111
+ }}>
112
+ {props => (<ModulesScreensStackNavigator {...props} initialRouteName={menu.screen}/>)}
113
+ </Drawer.Screen>))}
114
+ </Drawer.Navigator>
115
+ </ModuleNavigatorContext.Provider>);
116
+ };
117
+ export default Navigator;
118
+ //# sourceMappingURL=Navigator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Navigator.js","sourceRoot":"","sources":["../../src/navigator/Navigator.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export default AuthMenuIconButton;
2
+ declare function AuthMenuIconButton({ isActive, showModulesSubtitle, onPress }: {
3
+ isActive: any;
4
+ showModulesSubtitle: any;
5
+ onPress: any;
6
+ }): JSX.Element;
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React from 'react';
19
+ import { useThemeColor } from '@axelor/aos-mobile-ui';
20
+ import { authModule } from '../../auth';
21
+ import MenuIconButton from './MenuIconButton';
22
+ import useTranslator from '../../i18n/hooks/use-translator';
23
+ const AuthMenuIconButton = ({ isActive, showModulesSubtitle, onPress }) => {
24
+ const Colors = useThemeColor();
25
+ const I18n = useTranslator();
26
+ return (<MenuIconButton key={authModule.title} icon={authModule.icon} subtitle={showModulesSubtitle && I18n.t(authModule.subtitle)} disabled={authModule.disabled} color={isActive ? Colors.primaryColor.background_light : null} onPress={onPress} rounded={true}/>);
27
+ };
28
+ export default AuthMenuIconButton;
29
+ //# sourceMappingURL=AuthMenuIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthMenuIconButton.js","sourceRoot":"","sources":["../../../src/navigator/drawer/AuthMenuIconButton.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAE5D,MAAM,kBAAkB,GAAG,CAAC,EAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAC,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,cAAc,CACb,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CACtB,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CACtB,QAAQ,CAAC,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAC7D,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC9B,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAC9D,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,IAAI,CAAC,EACd,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export default BackIcon;
2
+ declare function BackIcon({ tintColor }: {
3
+ tintColor: any;
4
+ }): JSX.Element;
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React from 'react';
19
+ import { StyleSheet } from 'react-native';
20
+ import { StackActions, useNavigation } from '@react-navigation/native';
21
+ import { Icon } from '@axelor/aos-mobile-ui';
22
+ const BackIcon = ({ tintColor }) => {
23
+ const navigation = useNavigation();
24
+ return (<Icon style={styles.icon} name="angle-left" size={24} color={tintColor} touchable={true} onPress={() => navigation.dispatch(StackActions.pop())}/>);
25
+ };
26
+ const styles = StyleSheet.create({
27
+ icon: {
28
+ marginHorizontal: 14,
29
+ },
30
+ });
31
+ export default BackIcon;
32
+ //# sourceMappingURL=BackIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackIcon.js","sourceRoot":"","sources":["../../../src/navigator/drawer/BackIcon.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAE3C,MAAM,QAAQ,GAAG,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IAC/B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACnB,IAAI,CAAC,YAAY,CACjB,IAAI,CAAC,CAAC,EAAE,CAAC,CACT,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,SAAS,CAAC,CAAC,IAAI,CAAC,CAChB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EACvD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,gBAAgB,EAAE,EAAE;KACrB;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export default DrawerContent;
2
+ declare function DrawerContent({ state, modules, navigation, onModuleClick, showModulesSubtitle, }: {
3
+ state: any;
4
+ modules: any;
5
+ navigation: any;
6
+ onModuleClick: any;
7
+ showModulesSubtitle?: boolean;
8
+ }): JSX.Element;
@@ -0,0 +1,177 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React, { useRef, useContext, useMemo, useEffect, useCallback, } from 'react';
19
+ import { StyleSheet, View, Animated, TouchableOpacity } from 'react-native';
20
+ import { SafeAreaView } from 'react-native-safe-area-context';
21
+ import { Text, useThemeColor } from '@axelor/aos-mobile-ui';
22
+ import { ModuleNavigatorContext } from '../Navigator';
23
+ import MenuIconButton from './MenuIconButton';
24
+ import Menu from './Menu';
25
+ import { moduleHasMenus, numberOfModules } from '../module.helper';
26
+ import { getMenuTitle } from '../menu.helper';
27
+ import useTranslator from '../../i18n/hooks/use-translator';
28
+ import { authModule } from '../../auth';
29
+ import { CommonActions, DrawerActions } from '@react-navigation/native';
30
+ import AuthMenuIconButton from './AuthMenuIconButton';
31
+ const DrawerContent = ({ state, modules, navigation, onModuleClick, showModulesSubtitle = false, }) => {
32
+ const Colors = useThemeColor();
33
+ const I18n = useTranslator();
34
+ const styles = useMemo(() => getStyles(Colors), [Colors]);
35
+ const secondaryMenusLeft = useRef(new Animated.Value(0)).current;
36
+ const { activeModule } = useContext(ModuleNavigatorContext);
37
+ const innerMenuIsVisible = useMemo(() => activeModule !== authModule, [activeModule]);
38
+ const drawerModules = useMemo(() => modules.filter(moduleHasMenus).filter(_module => _module !== authModule), [modules]);
39
+ const externalMenuIsVisible = useMemo(() => numberOfModules(drawerModules) > 1, [drawerModules]);
40
+ useEffect(() => {
41
+ if (innerMenuIsVisible) {
42
+ openSecondaryMenu();
43
+ }
44
+ else {
45
+ closeSecondaryMenu();
46
+ }
47
+ }, [closeSecondaryMenu, innerMenuIsVisible, openSecondaryMenu]);
48
+ const openSecondaryMenu = useCallback(() => {
49
+ Animated.timing(secondaryMenusLeft, {
50
+ toValue: 0,
51
+ duration: 300,
52
+ useNativeDriver: false,
53
+ }).start();
54
+ }, [secondaryMenusLeft]);
55
+ const closeSecondaryMenu = useCallback(() => {
56
+ Animated.timing(secondaryMenusLeft, {
57
+ toValue: 100,
58
+ duration: 0,
59
+ useNativeDriver: false,
60
+ }).start();
61
+ }, [secondaryMenusLeft]);
62
+ const innerMenuPosition = useMemo(() => externalMenuIsVisible
63
+ ? secondaryMenusLeft.interpolate({
64
+ inputRange: [0, 100],
65
+ outputRange: ['0%', '100%'],
66
+ })
67
+ : 0, [externalMenuIsVisible, secondaryMenusLeft]);
68
+ const handleAuthModuleClick = () => {
69
+ onModuleClick(authModule.name);
70
+ const route = state.routes.find(_route => (_route.name = Object.keys(authModule.menus)[0]));
71
+ const focused = state.routes.indexOf(route) === state.index &&
72
+ Object.keys(activeModule.menus).includes(route.name);
73
+ const event = navigation.emit({
74
+ type: 'drawerItemPress',
75
+ target: route.key,
76
+ canPreventDefault: true,
77
+ });
78
+ if (!event.defaultPrevented) {
79
+ navigation.dispatch({
80
+ ...(focused
81
+ ? DrawerActions.closeDrawer()
82
+ : CommonActions.navigate({ name: route.name, merge: true })),
83
+ target: state.key,
84
+ });
85
+ }
86
+ };
87
+ if (numberOfModules(drawerModules) === 0) {
88
+ return (<SafeAreaView style={styles.container}>
89
+ <View style={styles.iconsContainer}>
90
+ <View style={styles.otherIconsContainer}>
91
+ <AuthMenuIconButton isActive={authModule === activeModule} showModulesSubtitle={showModulesSubtitle} onPress={handleAuthModuleClick}/>
92
+ </View>
93
+ </View>
94
+ <View style={styles.menusContainer}>
95
+ <Text style={styles.primaryMenuTitle}>
96
+ {I18n.t('Base_NoAppConfigured')}
97
+ </Text>
98
+ </View>
99
+ </SafeAreaView>);
100
+ }
101
+ return (<SafeAreaView style={styles.container}>
102
+ {externalMenuIsVisible && (<View style={styles.iconsContainer}>
103
+ <View>
104
+ {drawerModules.map(_module => (<View key={_module.name} style={styles.menuItemContainer}>
105
+ <MenuIconButton key={_module.title} icon={_module.icon} subtitle={showModulesSubtitle && I18n.t(_module.subtitle)} disabled={_module.disabled} color={_module === activeModule
106
+ ? Colors.primaryColor.background_light
107
+ : null} onPress={() => onModuleClick(_module.name)}/>
108
+ </View>))}
109
+ </View>
110
+ <View style={styles.otherIconsContainer}>
111
+ <AuthMenuIconButton isActive={authModule === activeModule} showModulesSubtitle={showModulesSubtitle} onPress={handleAuthModuleClick}/>
112
+ </View>
113
+ </View>)}
114
+ <View style={styles.menusContainer}>
115
+ <View>
116
+ {drawerModules.map(_module => (<TouchableOpacity key={_module.name} style={styles.menuItemContainer} onPress={() => onModuleClick(_module.name)}>
117
+ <Text style={styles.primaryMenuTitle} textColor={Colors.secondaryColor_dark.background}>
118
+ {getMenuTitle(_module, { I18n })}
119
+ </Text>
120
+ </TouchableOpacity>))}
121
+ </View>
122
+ <Animated.View style={[
123
+ styles.secondaryMenusContainer,
124
+ {
125
+ left: innerMenuPosition,
126
+ },
127
+ ]}>
128
+ <Menu activeModule={externalMenuIsVisible ? activeModule : drawerModules[0]} state={state} navigation={navigation} authMenu={!externalMenuIsVisible ? (<AuthMenuIconButton isActive={authModule === activeModule} showModulesSubtitle={showModulesSubtitle} onPress={handleAuthModuleClick}/>) : null} onItemClick={externalMenuIsVisible
129
+ ? () => { }
130
+ : () => onModuleClick(drawerModules[0]?.name)}/>
131
+ </Animated.View>
132
+ </View>
133
+ </SafeAreaView>);
134
+ };
135
+ const getStyles = Colors => StyleSheet.create({
136
+ container: {
137
+ flex: 1,
138
+ flexDirection: 'row',
139
+ backgroundColor: Colors.screenBackgroundColor,
140
+ overflow: 'hidden',
141
+ },
142
+ menusContainer: {
143
+ flex: 1,
144
+ },
145
+ iconsContainer: {
146
+ justifyContent: 'space-between',
147
+ alignItems: 'center',
148
+ marginHorizontal: 12,
149
+ },
150
+ otherIconsContainer: {
151
+ marginVertical: 8,
152
+ },
153
+ menuItemContainer: {
154
+ height: 60,
155
+ marginVertical: 8,
156
+ justifyContent: 'center',
157
+ },
158
+ primaryMenuTitle: {
159
+ marginHorizontal: 6,
160
+ fontSize: 24,
161
+ fontWeight: 'bold',
162
+ },
163
+ secondaryMenusContainer: {
164
+ position: 'absolute',
165
+ backgroundColor: Colors.backgroundColor,
166
+ left: 0,
167
+ top: 0,
168
+ width: '100%',
169
+ height: '100%',
170
+ elevation: 4,
171
+ },
172
+ subMenuContainer: {
173
+ padding: 8,
174
+ },
175
+ });
176
+ export default DrawerContent;
177
+ //# sourceMappingURL=DrawerContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerContent.js","sourceRoot":"","sources":["../../../src/navigator/drawer/DrawerContent.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export default DrawerToggleButton;
2
+ declare function DrawerToggleButton({ tintColor }: {
3
+ tintColor: any;
4
+ }): JSX.Element;
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React from 'react';
19
+ import { StyleSheet } from 'react-native';
20
+ import { DrawerActions, useNavigation } from '@react-navigation/native';
21
+ import { Icon } from '@axelor/aos-mobile-ui';
22
+ const DrawerToggleButton = ({ tintColor }) => {
23
+ const navigation = useNavigation();
24
+ return (<Icon style={styles.icon} name="stream" size={24} color={tintColor} touchable={true} onPress={() => navigation.dispatch(DrawerActions.toggleDrawer())}/>);
25
+ };
26
+ const styles = StyleSheet.create({
27
+ icon: {
28
+ marginHorizontal: 14,
29
+ },
30
+ });
31
+ export default DrawerToggleButton;
32
+ //# sourceMappingURL=DrawerToggleButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerToggleButton.js","sourceRoot":"","sources":["../../../src/navigator/drawer/DrawerToggleButton.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAE3C,MAAM,kBAAkB,GAAG,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IACzC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACnB,IAAI,CAAC,QAAQ,CACb,IAAI,CAAC,CAAC,EAAE,CAAC,CACT,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,SAAS,CAAC,CAAC,IAAI,CAAC,CAChB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,EACjE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE;QACJ,gBAAgB,EAAE,EAAE;KACrB;CACF,CAAC,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export default Menu;
2
+ declare function Menu({ state, navigation, authMenu, activeModule, onItemClick }: {
3
+ state: any;
4
+ navigation: any;
5
+ authMenu: any;
6
+ activeModule: any;
7
+ onItemClick: any;
8
+ }): JSX.Element;
@@ -0,0 +1,91 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React, { useContext, useMemo } from 'react';
19
+ import { View, StyleSheet } from 'react-native';
20
+ import { CommonActions, DrawerActions } from '@react-navigation/native';
21
+ import { Text } from '@axelor/aos-mobile-ui';
22
+ import { ModuleNavigatorContext } from '../Navigator';
23
+ import MenuItem from './MenuItem';
24
+ import { getMenuTitle } from '../menu.helper';
25
+ import useTranslator from '../../i18n/hooks/use-translator';
26
+ const MenuItemList = ({ state, navigation, activeModule, onItemClick }) => {
27
+ const I18n = useTranslator();
28
+ const { modulesMenus } = useContext(ModuleNavigatorContext);
29
+ return state.routes.map((route, i) => {
30
+ if (activeModule.menus[route.name] == null) {
31
+ return null;
32
+ }
33
+ const focused = i === state.index && Object.keys(activeModule.menus).includes(route.name);
34
+ const menu = modulesMenus[route.name];
35
+ const onPress = () => {
36
+ onItemClick();
37
+ const event = navigation.emit({
38
+ type: 'drawerItemPress',
39
+ target: route.key,
40
+ canPreventDefault: true,
41
+ });
42
+ if (!event.defaultPrevented) {
43
+ navigation.dispatch({
44
+ ...(focused
45
+ ? DrawerActions.closeDrawer()
46
+ : CommonActions.navigate({ name: route.name, merge: true })),
47
+ target: state.key,
48
+ });
49
+ }
50
+ };
51
+ return (<MenuItem key={route.key} title={getMenuTitle(menu, { I18n })} icon={menu.icon} disabled={menu.disabled} onPress={onPress} isActive={focused}/>);
52
+ });
53
+ };
54
+ const Menu = ({ state, navigation, authMenu, activeModule, onItemClick }) => {
55
+ const I18n = useTranslator();
56
+ const title = useMemo(() => getMenuTitle(activeModule, { I18n }), [I18n, activeModule]);
57
+ return (<View style={styles.menuContainer}>
58
+ <View style={styles.moduleMenuContainer}>
59
+ <View style={styles.menuTitleContainer}>
60
+ <Text style={styles.menuTitle}>{title}</Text>
61
+ </View>
62
+ <MenuItemList state={state} navigation={navigation} activeModule={activeModule} onItemClick={onItemClick}/>
63
+ </View>
64
+ <View style={styles.authMenuIcon}>{authMenu}</View>
65
+ </View>);
66
+ };
67
+ const styles = StyleSheet.create({
68
+ menuContainer: {
69
+ flexDirection: 'column',
70
+ justifyContent: 'space-between',
71
+ height: '100%',
72
+ },
73
+ moduleMenuContainer: {
74
+ flexDirection: 'column',
75
+ paddingVertical: 8,
76
+ },
77
+ menuTitleContainer: {
78
+ paddingHorizontal: 16,
79
+ marginBottom: 8,
80
+ },
81
+ menuTitle: {
82
+ fontSize: 21,
83
+ fontWeight: 'bold',
84
+ },
85
+ authMenuIcon: {
86
+ marginBottom: 12,
87
+ marginLeft: 12,
88
+ },
89
+ });
90
+ export default Menu;
91
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/navigator/drawer/Menu.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export default MenuIconButton;
2
+ declare function MenuIconButton({ style, icon, onPress, color, subtitle, rounded, disabled, }: {
3
+ style: any;
4
+ icon: any;
5
+ onPress: any;
6
+ color: any;
7
+ subtitle: any;
8
+ rounded?: boolean;
9
+ disabled?: boolean;
10
+ }): JSX.Element;
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2023 Axelor (<http://axelor.com>).
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License, version 3,
8
+ * as published by the Free Software Foundation.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ import React from 'react';
19
+ import { StyleSheet, TouchableOpacity, View } from 'react-native';
20
+ import { Icon, Text, useThemeColor } from '@axelor/aos-mobile-ui';
21
+ const WIDTH = 54;
22
+ const HEIGHT = 54;
23
+ const DEFAULT_RADIUS = 8;
24
+ const ROUNDED_RADIUS = WIDTH / 2;
25
+ const MenuIconButton = ({ style, icon, onPress, color, subtitle, rounded = false, disabled = false, }) => {
26
+ const Colors = useThemeColor();
27
+ return (<TouchableOpacity onPress={onPress} disabled={disabled} activeOpacity={0.95}>
28
+ <View style={[
29
+ styles.container,
30
+ { borderRadius: rounded ? ROUNDED_RADIUS : DEFAULT_RADIUS },
31
+ {
32
+ backgroundColor: disabled
33
+ ? Colors.secondaryColor.background_light
34
+ : color
35
+ ? color
36
+ : Colors.backgroundColor,
37
+ },
38
+ style,
39
+ ]}>
40
+ <Icon size={32} name={icon} color={disabled
41
+ ? Colors.secondaryColor.background
42
+ : Colors.secondaryColor_dark.background}/>
43
+ </View>
44
+ {subtitle && (<Text style={styles.moduleSubtitle} numberOfLines={1}>
45
+ {subtitle}
46
+ </Text>)}
47
+ </TouchableOpacity>);
48
+ };
49
+ const styles = StyleSheet.create({
50
+ container: {
51
+ width: WIDTH,
52
+ height: HEIGHT,
53
+ flexDirection: 'row',
54
+ justifyContent: 'center',
55
+ elevation: 2,
56
+ },
57
+ moduleSubtitle: {
58
+ fontSize: 10,
59
+ maxWidth: 54,
60
+ alignSelf: 'center',
61
+ },
62
+ });
63
+ export default MenuIconButton;
64
+ //# sourceMappingURL=MenuIconButton.js.map