@axelor/aos-mobile-core 8.0.7 → 8.1.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 (393) hide show
  1. package/README.md +3 -22
  2. package/lib/api/login-api.js +3 -3
  3. package/lib/api/login-api.js.map +1 -1
  4. package/lib/api/metafile-api.js +1 -1
  5. package/lib/api/metafile-api.js.map +1 -1
  6. package/lib/apiProviders/Standard/ObjectFieldsProvider.d.ts +1 -1
  7. package/lib/apiProviders/Standard/requests.helper.d.ts +1 -0
  8. package/lib/apiProviders/Standard/requests.helper.js +3 -0
  9. package/lib/apiProviders/Standard/requests.helper.js.map +1 -1
  10. package/lib/apiProviders/utils.js +14 -8
  11. package/lib/apiProviders/utils.js.map +1 -1
  12. package/lib/app/Application.d.ts +3 -2
  13. package/lib/app/Application.js +7 -3
  14. package/lib/app/Application.js.map +1 -1
  15. package/lib/app/ContextedApplication.d.ts +2 -3
  16. package/lib/app/ContextedApplication.js +9 -4
  17. package/lib/app/ContextedApplication.js.map +1 -1
  18. package/lib/app/ContextsProvider.d.ts +1 -3
  19. package/lib/app/ContextsProvider.js +26 -15
  20. package/lib/app/ContextsProvider.js.map +1 -1
  21. package/lib/app/RootNavigator.d.ts +3 -4
  22. package/lib/app/RootNavigator.js +4 -5
  23. package/lib/app/RootNavigator.js.map +1 -1
  24. package/lib/app/context.helper.d.ts +3 -3
  25. package/lib/app/context.helper.js +50 -0
  26. package/lib/app/context.helper.js.map +1 -1
  27. package/lib/app/index.d.ts +1 -1
  28. package/lib/app/index.js +1 -0
  29. package/lib/app/index.js.map +1 -1
  30. package/lib/app/modules/ModuleProvider.d.ts +18 -0
  31. package/lib/app/modules/ModuleProvider.js +73 -0
  32. package/lib/app/modules/ModuleProvider.js.map +1 -0
  33. package/lib/app/modules/index.d.ts +2 -0
  34. package/lib/app/modules/index.js +20 -0
  35. package/lib/app/modules/index.js.map +1 -0
  36. package/lib/app/{Module.d.ts → modules/types.d.ts} +5 -2
  37. package/lib/app/{Module.js → modules/types.js} +1 -1
  38. package/lib/app/modules/types.js.map +1 -0
  39. package/lib/auth/api/config-api.d.ts +1 -0
  40. package/lib/auth/api/config-api.js +26 -0
  41. package/lib/auth/api/config-api.js.map +1 -0
  42. package/lib/auth/components/molecules/DashboardsCard/DashboardsCard.d.ts +5 -0
  43. package/lib/auth/components/molecules/DashboardsCard/DashboardsCard.js +49 -0
  44. package/lib/auth/components/molecules/DashboardsCard/DashboardsCard.js.map +1 -0
  45. package/lib/auth/components/molecules/NavigationToolsButton/NavigationToolsButton.d.ts +3 -0
  46. package/lib/auth/components/molecules/NavigationToolsButton/NavigationToolsButton.js +60 -0
  47. package/lib/auth/components/molecules/NavigationToolsButton/NavigationToolsButton.js.map +1 -0
  48. package/lib/auth/components/molecules/ShortcutsCard/ShortcutsCard.d.ts +7 -0
  49. package/lib/auth/components/molecules/ShortcutsCard/ShortcutsCard.js +71 -0
  50. package/lib/auth/components/molecules/ShortcutsCard/ShortcutsCard.js.map +1 -0
  51. package/lib/auth/components/molecules/TranslationsButton/TranslationsButton.d.ts +2 -1
  52. package/lib/auth/components/molecules/TranslationsButton/TranslationsButton.js +5 -3
  53. package/lib/auth/components/molecules/TranslationsButton/TranslationsButton.js.map +1 -1
  54. package/lib/auth/components/molecules/UserCard/UserCard.d.ts +6 -0
  55. package/lib/auth/components/molecules/UserCard/UserCard.js +105 -0
  56. package/lib/auth/components/molecules/UserCard/UserCard.js.map +1 -0
  57. package/lib/auth/components/molecules/index.d.ts +4 -0
  58. package/lib/auth/components/molecules/index.js +4 -0
  59. package/lib/auth/components/molecules/index.js.map +1 -1
  60. package/lib/auth/features/companySlice.d.ts +1 -10
  61. package/lib/auth/features/configSlice.d.ts +3 -11
  62. package/lib/auth/features/configSlice.js +20 -0
  63. package/lib/auth/features/configSlice.js.map +1 -1
  64. package/lib/auth/features/localizationSlice.d.ts +1 -10
  65. package/lib/auth/features/userSlice.d.ts +3 -21
  66. package/lib/auth/i18n/en.json +3 -1
  67. package/lib/auth/i18n/fr.json +3 -1
  68. package/lib/auth/index.d.ts +1 -1
  69. package/lib/auth/models/objectFields.js +4 -1
  70. package/lib/auth/models/objectFields.js.map +1 -1
  71. package/lib/auth/screens/SettingsScreen.d.ts +2 -1
  72. package/lib/auth/screens/SettingsScreen.js +45 -13
  73. package/lib/auth/screens/SettingsScreen.js.map +1 -1
  74. package/lib/auth/screens/UserScreen.d.ts +2 -1
  75. package/lib/auth/screens/UserScreen.js +18 -75
  76. package/lib/auth/screens/UserScreen.js.map +1 -1
  77. package/lib/components/external/Camera/Camera.d.ts +2 -1
  78. package/lib/components/external/Camera/Camera.js +49 -64
  79. package/lib/components/external/Camera/Camera.js.map +1 -1
  80. package/lib/components/external/Camera/CaptureButton.d.ts +1 -1
  81. package/lib/components/external/Camera/CaptureButton.js.map +1 -1
  82. package/lib/components/external/CodeHighlighter/CodeHighlighter.d.ts +2 -1
  83. package/lib/components/external/PlanningView/PlanningView.d.ts +1 -1
  84. package/lib/components/external/Stopwatch/Stopwatch.d.ts +2 -1
  85. package/lib/components/external/Timer/Timer.d.ts +2 -2
  86. package/lib/components/external/Timer/Timer.js +3 -2
  87. package/lib/components/external/Timer/Timer.js.map +1 -1
  88. package/lib/components/external/Toast/Toast.d.ts +2 -1
  89. package/lib/components/external/WebView/WebView.d.ts +9 -0
  90. package/lib/components/external/WebView/WebView.js +52 -0
  91. package/lib/components/external/WebView/WebView.js.map +1 -0
  92. package/lib/components/external/index.d.ts +1 -1
  93. package/lib/components/external/index.js +1 -1
  94. package/lib/components/external/index.js.map +1 -1
  95. package/lib/components/molecules/CameraButton/CameraButton.d.ts +2 -1
  96. package/lib/components/molecules/DateDisplay/DateDisplay.d.ts +2 -1
  97. package/lib/components/molecules/DatePicker/DatePicker.d.ts +2 -1
  98. package/lib/components/molecules/FocusScreen/FocusScreen.d.ts +2 -1
  99. package/lib/components/molecules/HeaderBand/HeaderBand.d.ts +2 -1
  100. package/lib/components/molecules/HeaderBand/HeaderBand.js +31 -8
  101. package/lib/components/molecules/HeaderBand/HeaderBand.js.map +1 -1
  102. package/lib/components/molecules/HeaderOptionsMenuItem/HeaderOptionMenuItem.d.ts +2 -2
  103. package/lib/components/molecules/InputBarCodeCard/InputBarCodeCard.d.ts +2 -1
  104. package/lib/components/molecules/MailMessageReadIcon/MailMessageReadIcon.d.ts +2 -1
  105. package/lib/components/molecules/PeriodDisplay/PeriodDisplay.d.ts +2 -1
  106. package/lib/components/molecules/TrackItem/TrackItem.d.ts +2 -1
  107. package/lib/components/molecules/UploadFileInput/UploadFileInput.d.ts +2 -1
  108. package/lib/components/organisms/AOSImage/AOSImage.d.ts +2 -1
  109. package/lib/components/organisms/AOSImageBubble/AOSImageBubble.d.ts +2 -1
  110. package/lib/components/organisms/AnomalyBubble/AnomalyBubble.d.ts +2 -1
  111. package/lib/components/organisms/AnomalyList/AnomalyList.d.ts +2 -1
  112. package/lib/components/organisms/DateInput/DateInput.d.ts +2 -1
  113. package/lib/components/organisms/HeaderBandList/HeaderBandList.d.ts +2 -1
  114. package/lib/components/organisms/HeaderOptionsMenu/HeaderOptionsMenu.d.ts +2 -1
  115. package/lib/components/organisms/MailMessageCard/MailMessageCard.d.ts +2 -1
  116. package/lib/components/organisms/MailMessageCommentCard/MailMessageCommentCard.d.ts +2 -1
  117. package/lib/components/organisms/MailMessageNotificationCard/MailMessageNotificationCard.d.ts +2 -1
  118. package/lib/components/organisms/ScannerAutocompleteSearch/ScannerAutocompleteSearch.d.ts +2 -1
  119. package/lib/components/organisms/SignatureInput/PictureIcon.d.ts +9 -0
  120. package/lib/components/organisms/SignatureInput/PictureIcon.js +35 -0
  121. package/lib/components/organisms/SignatureInput/PictureIcon.js.map +1 -0
  122. package/lib/components/organisms/SignatureInput/SignatureInput.d.ts +16 -0
  123. package/lib/components/organisms/SignatureInput/SignatureInput.js +197 -0
  124. package/lib/components/organisms/SignatureInput/SignatureInput.js.map +1 -0
  125. package/lib/components/organisms/index.d.ts +1 -0
  126. package/lib/components/organisms/index.js +1 -0
  127. package/lib/components/organisms/index.js.map +1 -1
  128. package/lib/components/pages/CustomFieldForm/CustomFieldForm.d.ts +2 -1
  129. package/lib/components/pages/CustomFieldForm/CustomFieldForm.js +7 -5
  130. package/lib/components/pages/CustomFieldForm/CustomFieldForm.js.map +1 -1
  131. package/lib/components/pages/FormView/Alerts/ConfirmationPopup.d.ts +7 -0
  132. package/lib/components/pages/FormView/Alerts/ConfirmationPopup.js +45 -0
  133. package/lib/components/pages/FormView/Alerts/ConfirmationPopup.js.map +1 -0
  134. package/lib/components/pages/FormView/Alerts/ConstraintsValidatorPopup.d.ts +2 -1
  135. package/lib/components/pages/FormView/Alerts/index.d.ts +1 -0
  136. package/lib/components/pages/FormView/Alerts/index.js +1 -0
  137. package/lib/components/pages/FormView/Alerts/index.js.map +1 -1
  138. package/lib/components/pages/FormView/Buttons/FloatingTools.d.ts +14 -0
  139. package/lib/components/pages/FormView/Buttons/FloatingTools.js +103 -0
  140. package/lib/components/pages/FormView/Buttons/FloatingTools.js.map +1 -0
  141. package/lib/components/pages/FormView/Buttons/index.d.ts +1 -0
  142. package/lib/components/pages/FormView/Buttons/index.js +19 -0
  143. package/lib/components/pages/FormView/Buttons/index.js.map +1 -0
  144. package/lib/components/pages/FormView/Components/Field.d.ts +3 -1
  145. package/lib/components/pages/FormView/Components/Field.js +14 -6
  146. package/lib/components/pages/FormView/Components/Field.js.map +1 -1
  147. package/lib/components/pages/FormView/Components/Panel.d.ts +2 -2
  148. package/lib/components/pages/FormView/Custom/CustomButton.d.ts +2 -1
  149. package/lib/components/pages/FormView/Custom/CustomPasswordInput.d.ts +2 -1
  150. package/lib/components/pages/FormView/Custom/CustomPicker.d.ts +2 -1
  151. package/lib/components/pages/FormView/Custom/CustomSearchBar.d.ts +2 -1
  152. package/lib/components/pages/FormView/FormView.d.ts +6 -2
  153. package/lib/components/pages/FormView/FormView.js +96 -119
  154. package/lib/components/pages/FormView/FormView.js.map +1 -1
  155. package/lib/components/templates/AttachedFilesView/AttachedFilesView.d.ts +5 -2
  156. package/lib/components/templates/AttachedFilesView/AttachedFilesView.js +2 -2
  157. package/lib/components/templates/AttachedFilesView/AttachedFilesView.js.map +1 -1
  158. package/lib/components/templates/MailMessageView/MailMessageView.d.ts +5 -2
  159. package/lib/components/templates/MailMessageView/MailMessageView.js +2 -2
  160. package/lib/components/templates/MailMessageView/MailMessageView.js.map +1 -1
  161. package/lib/components/templates/PeriodInput/PeriodInput.d.ts +15 -0
  162. package/lib/components/templates/PeriodInput/PeriodInput.js +85 -0
  163. package/lib/components/templates/PeriodInput/PeriodInput.js.map +1 -0
  164. package/lib/components/templates/PopupApplicationInformation/PopupApplicationInformation.d.ts +2 -1
  165. package/lib/components/templates/PopupMinimalRequiredVersion/PopupMinimalRequiredVersion.d.ts +2 -1
  166. package/lib/components/templates/SearchListView/SearchListView.d.ts +27 -0
  167. package/lib/components/templates/SearchListView/SearchListView.js +81 -0
  168. package/lib/components/templates/SearchListView/SearchListView.js.map +1 -0
  169. package/lib/components/templates/SearchTreeView/SearchTreeView.d.ts +38 -0
  170. package/lib/components/templates/SearchTreeView/SearchTreeView.js +110 -0
  171. package/lib/components/templates/SearchTreeView/SearchTreeView.js.map +1 -0
  172. package/lib/components/templates/SocialNetworkLinks/SocialNetworkLinks.d.ts +2 -1
  173. package/lib/components/templates/UserSearchBar/UserSearchBar.d.ts +2 -1
  174. package/lib/components/templates/index.d.ts +3 -0
  175. package/lib/components/templates/index.js +3 -0
  176. package/lib/components/templates/index.js.map +1 -1
  177. package/lib/dashboards/api.helpers.d.ts +1 -0
  178. package/lib/dashboards/api.helpers.js +5 -0
  179. package/lib/dashboards/api.helpers.js.map +1 -1
  180. package/lib/dashboards/component/AOPChart/AOPChart.d.ts +6 -0
  181. package/lib/dashboards/component/AOPChart/AOPChart.js +67 -0
  182. package/lib/dashboards/component/AOPChart/AOPChart.js.map +1 -0
  183. package/lib/dashboards/component/AOPChart/api.helpers.d.ts +16 -0
  184. package/lib/dashboards/component/AOPChart/api.helpers.js +59 -0
  185. package/lib/dashboards/component/AOPChart/api.helpers.js.map +1 -0
  186. package/lib/dashboards/component/AOPChart/format.helpers.d.ts +11 -0
  187. package/lib/dashboards/component/AOPChart/format.helpers.js +47 -0
  188. package/lib/dashboards/component/AOPChart/format.helpers.js.map +1 -0
  189. package/lib/dashboards/component/RefreshChart/RefreshChart.d.ts +8 -0
  190. package/lib/dashboards/component/RefreshChart/RefreshChart.js +83 -0
  191. package/lib/dashboards/component/RefreshChart/RefreshChart.js.map +1 -0
  192. package/lib/dashboards/component/index.d.ts +2 -0
  193. package/lib/dashboards/component/index.js +20 -0
  194. package/lib/dashboards/component/index.js.map +1 -0
  195. package/lib/dashboards/index.d.ts +2 -0
  196. package/lib/dashboards/index.js +20 -0
  197. package/lib/dashboards/index.js.map +1 -0
  198. package/lib/dashboards/menu.helpers.d.ts +1 -24
  199. package/lib/dashboards/menu.helpers.js +0 -9
  200. package/lib/dashboards/menu.helpers.js.map +1 -1
  201. package/lib/dashboards/view/DashboardScreen.d.ts +7 -3
  202. package/lib/dashboards/view/DashboardScreen.js +4 -65
  203. package/lib/dashboards/view/DashboardScreen.js.map +1 -1
  204. package/lib/dashboards/view/DashboardView.d.ts +10 -0
  205. package/lib/dashboards/view/DashboardView.js +87 -0
  206. package/lib/dashboards/view/DashboardView.js.map +1 -0
  207. package/lib/dashboards/view/index.d.ts +1 -0
  208. package/lib/dashboards/view/index.js +1 -0
  209. package/lib/dashboards/view/index.js.map +1 -1
  210. package/lib/features/appConfigSlice.d.ts +1 -10
  211. package/lib/features/attachedFilesSlice.d.ts +3 -30
  212. package/lib/features/authSlice.d.ts +39 -34
  213. package/lib/features/authSlice.js +7 -2
  214. package/lib/features/authSlice.js.map +1 -1
  215. package/lib/features/formSlice.d.ts +5 -31
  216. package/lib/features/formSlice.js +10 -1
  217. package/lib/features/formSlice.js.map +1 -1
  218. package/lib/features/index.d.ts +2 -0
  219. package/lib/features/index.js +2 -0
  220. package/lib/features/index.js.map +1 -1
  221. package/lib/features/mailMessageSlice.d.ts +8 -80
  222. package/lib/features/metaJsonFieldSlice.d.ts +5 -30
  223. package/lib/features/metaJsonFieldSlice.js +14 -1
  224. package/lib/features/metaJsonFieldSlice.js.map +1 -1
  225. package/lib/features/metaModuleSlice.d.ts +1 -10
  226. package/lib/features/metafileSlice.d.ts +1 -10
  227. package/lib/features/mobileDashboardSlice.d.ts +1 -10
  228. package/lib/features/mobileWebViewSlice.d.ts +4 -0
  229. package/lib/features/mobileWebViewSlice.js +43 -0
  230. package/lib/features/mobileWebViewSlice.js.map +1 -0
  231. package/lib/features/onlineSlice.d.ts +3 -3
  232. package/lib/features/permissionSlice.d.ts +6 -0
  233. package/lib/features/permissionSlice.js +59 -0
  234. package/lib/features/permissionSlice.js.map +1 -0
  235. package/lib/features/userSlice.d.ts +1 -10
  236. package/lib/forms/action.helpers.d.ts +3 -0
  237. package/lib/forms/action.helpers.js +106 -0
  238. package/lib/forms/action.helpers.js.map +1 -0
  239. package/lib/forms/api.helpers.d.ts +4 -0
  240. package/lib/forms/api.helpers.js +13 -0
  241. package/lib/forms/api.helpers.js.map +1 -1
  242. package/lib/forms/display.helpers.d.ts +1 -2
  243. package/lib/forms/display.helpers.js +2 -19
  244. package/lib/forms/display.helpers.js.map +1 -1
  245. package/lib/forms/index.d.ts +1 -0
  246. package/lib/forms/index.js +1 -0
  247. package/lib/forms/index.js.map +1 -1
  248. package/lib/forms/studio/api.helpers.d.ts +3 -0
  249. package/lib/forms/studio/api.helpers.js +26 -0
  250. package/lib/forms/studio/api.helpers.js.map +1 -1
  251. package/lib/forms/studio/display.helpers.d.ts +2 -1
  252. package/lib/forms/studio/display.helpers.js +10 -4
  253. package/lib/forms/studio/display.helpers.js.map +1 -1
  254. package/lib/forms/studio/index.d.ts +1 -0
  255. package/lib/forms/studio/index.js +1 -0
  256. package/lib/forms/studio/index.js.map +1 -1
  257. package/lib/forms/studio/permission.helpers.d.ts +3 -0
  258. package/lib/forms/studio/permission.helpers.js +59 -0
  259. package/lib/forms/studio/permission.helpers.js.map +1 -0
  260. package/lib/forms/types.d.ts +9 -5
  261. package/lib/header/HeaderBandContext.d.ts +2 -1
  262. package/lib/i18n/component/Translator.d.ts +19 -3
  263. package/lib/i18n/translations/en.json +17 -2
  264. package/lib/i18n/translations/fr.json +17 -2
  265. package/lib/index.d.ts +3 -0
  266. package/lib/index.js +3 -0
  267. package/lib/index.js.map +1 -1
  268. package/lib/models/objectFields.js +17 -0
  269. package/lib/models/objectFields.js.map +1 -1
  270. package/lib/navigator/NavigationInformationsProvider.d.ts +33 -0
  271. package/lib/navigator/NavigationInformationsProvider.js +81 -0
  272. package/lib/navigator/NavigationInformationsProvider.js.map +1 -0
  273. package/lib/navigator/Navigator.d.ts +2 -4
  274. package/lib/navigator/Navigator.js +32 -11
  275. package/lib/navigator/Navigator.js.map +1 -1
  276. package/lib/navigator/drawer/AuthMenuIconButton.d.ts +2 -1
  277. package/lib/navigator/drawer/BackIcon.d.ts +2 -1
  278. package/lib/navigator/drawer/DrawerContent.d.ts +3 -3
  279. package/lib/navigator/drawer/DrawerContent.js +3 -2
  280. package/lib/navigator/drawer/DrawerContent.js.map +1 -1
  281. package/lib/navigator/drawer/DrawerToggleButton.d.ts +2 -1
  282. package/lib/navigator/drawer/Header.d.ts +2 -1
  283. package/lib/navigator/drawer/Menu.d.ts +2 -1
  284. package/lib/navigator/drawer/MenuIconButton.d.ts +2 -1
  285. package/lib/navigator/drawer/MenuItem.d.ts +2 -1
  286. package/lib/navigator/drawer/MenuItemEntry.d.ts +2 -1
  287. package/lib/navigator/drawer/MenuSeparator.d.ts +2 -1
  288. package/lib/navigator/drawer/MenuTitle.d.ts +2 -1
  289. package/lib/navigator/drawer/SubMenuItem.d.ts +2 -1
  290. package/lib/navigator/drawer/SubMenuItemList.d.ts +2 -1
  291. package/lib/navigator/menu.helper.d.ts +4 -0
  292. package/lib/navigator/menu.helper.js +21 -0
  293. package/lib/navigator/menu.helper.js.map +1 -1
  294. package/lib/navigator/module.helper.d.ts +1 -2
  295. package/lib/navigator/module.helper.js.map +1 -1
  296. package/lib/permissions/api.helpers.d.ts +6 -0
  297. package/lib/permissions/api.helpers.js +64 -0
  298. package/lib/permissions/api.helpers.js.map +1 -0
  299. package/lib/permissions/format.helpers.d.ts +5 -0
  300. package/lib/permissions/format.helpers.js +81 -0
  301. package/lib/permissions/format.helpers.js.map +1 -0
  302. package/lib/permissions/hooks.d.ts +14 -0
  303. package/lib/permissions/hooks.js +97 -0
  304. package/lib/permissions/hooks.js.map +1 -0
  305. package/lib/permissions/index.d.ts +1 -0
  306. package/lib/permissions/index.js +19 -0
  307. package/lib/permissions/index.js.map +1 -0
  308. package/lib/permissions/type.helpers.d.ts +30 -0
  309. package/lib/permissions/type.helpers.js +34 -0
  310. package/lib/permissions/type.helpers.js.map +1 -0
  311. package/lib/redux/hooks.d.ts +2 -4
  312. package/lib/redux/hooks.js.map +1 -1
  313. package/lib/redux/store.d.ts +3 -1
  314. package/lib/screens/AttachedFilesScreen.d.ts +2 -1
  315. package/lib/screens/BarcodeDisplayScreen.d.ts +2 -1
  316. package/lib/screens/ErrorScreen.d.ts +2 -1
  317. package/lib/screens/JsonFieldScreen.d.ts +2 -1
  318. package/lib/screens/LoginScreen.d.ts +2 -1
  319. package/lib/screens/LoginScreen.js +1 -2
  320. package/lib/screens/LoginScreen.js.map +1 -1
  321. package/lib/screens/MailMessageScreen.d.ts +2 -1
  322. package/lib/screens/SessionManagementScreen.d.ts +2 -1
  323. package/lib/screens/SessionManagementScreen.js +2 -1
  324. package/lib/screens/SessionManagementScreen.js.map +1 -1
  325. package/lib/selections/SelectionProvider.d.ts +4 -0
  326. package/lib/selections/SelectionProvider.js +79 -0
  327. package/lib/selections/SelectionProvider.js.map +1 -0
  328. package/lib/selections/api.helpers.d.ts +3 -0
  329. package/lib/selections/api.helpers.js +31 -0
  330. package/lib/selections/api.helpers.js.map +1 -0
  331. package/lib/selections/format.helpers.d.ts +6 -0
  332. package/lib/selections/format.helpers.js +41 -0
  333. package/lib/selections/format.helpers.js.map +1 -0
  334. package/lib/selections/hooks.d.ts +8 -0
  335. package/lib/selections/hooks.js +93 -0
  336. package/lib/selections/hooks.js.map +1 -0
  337. package/lib/selections/index.d.ts +3 -0
  338. package/lib/selections/index.js +21 -0
  339. package/lib/selections/index.js.map +1 -0
  340. package/lib/selections/types.d.ts +61 -0
  341. package/lib/selections/types.js +19 -0
  342. package/lib/selections/types.js.map +1 -0
  343. package/lib/sessions/components/alerts/PopupCreateSession.d.ts +2 -1
  344. package/lib/sessions/components/alerts/PopupCreateSession.js +2 -2
  345. package/lib/sessions/components/alerts/PopupCreateSession.js.map +1 -1
  346. package/lib/sessions/components/alerts/PopupEditSession.d.ts +2 -1
  347. package/lib/sessions/components/alerts/PopupSession.d.ts +2 -1
  348. package/lib/sessions/components/alerts/PopupSession.js +1 -0
  349. package/lib/sessions/components/alerts/PopupSession.js.map +1 -1
  350. package/lib/sessions/components/display/LogoImage.d.ts +2 -1
  351. package/lib/sessions/components/display/SessionCard.d.ts +2 -1
  352. package/lib/sessions/components/display/SessionListCard.d.ts +2 -1
  353. package/lib/sessions/components/error/ErrorText.d.ts +2 -1
  354. package/lib/sessions/components/inputs/DefaultCheckbox.d.ts +2 -1
  355. package/lib/sessions/components/inputs/PasswordInput.d.ts +2 -1
  356. package/lib/sessions/components/inputs/SessionInputs.d.ts +2 -1
  357. package/lib/sessions/components/inputs/SessionInputs.js +2 -2
  358. package/lib/sessions/components/inputs/SessionInputs.js.map +1 -1
  359. package/lib/sessions/components/inputs/SessionNameInput.d.ts +2 -1
  360. package/lib/sessions/components/inputs/UrlInput.d.ts +2 -1
  361. package/lib/sessions/components/inputs/UsernameInput.d.ts +2 -1
  362. package/lib/tools/FilePicker.d.ts +1 -1
  363. package/lib/tools/FilePicker.js +12 -14
  364. package/lib/tools/FilePicker.js.map +1 -1
  365. package/lib/tools/LinkingProvider.d.ts +5 -0
  366. package/lib/tools/LinkingProvider.js +8 -1
  367. package/lib/tools/LinkingProvider.js.map +1 -1
  368. package/lib/tools/index.d.ts +1 -0
  369. package/lib/tools/index.js +1 -0
  370. package/lib/tools/index.js.map +1 -1
  371. package/lib/tools/linking.helper.d.ts +5 -0
  372. package/lib/tools/linking.helper.js +12 -0
  373. package/lib/tools/linking.helper.js.map +1 -1
  374. package/lib/webViews/api.helpers.d.ts +4 -0
  375. package/lib/webViews/api.helpers.js +29 -0
  376. package/lib/webViews/api.helpers.js.map +1 -0
  377. package/lib/webViews/display.helpers.d.ts +1 -0
  378. package/lib/webViews/display.helpers.js +21 -0
  379. package/lib/webViews/display.helpers.js.map +1 -0
  380. package/lib/webViews/menu.helper.d.ts +29 -0
  381. package/lib/webViews/menu.helper.js +77 -0
  382. package/lib/webViews/menu.helper.js.map +1 -0
  383. package/lib/webViews/view/WebViewScreen.d.ts +8 -0
  384. package/lib/webViews/view/WebViewScreen.js +68 -0
  385. package/lib/webViews/view/WebViewScreen.js.map +1 -0
  386. package/lib/webViews/view/index.d.ts +1 -0
  387. package/lib/webViews/view/index.js +19 -0
  388. package/lib/webViews/view/index.js.map +1 -0
  389. package/package.json +51 -60
  390. package/lib/app/Module.js.map +0 -1
  391. package/lib/components/external/CameraScanner/CameraScanner.d.ts +0 -2
  392. package/lib/components/external/CameraScanner/CameraScanner.js +0 -88
  393. package/lib/components/external/CameraScanner/CameraScanner.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2024 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, { useMemo, useState } from 'react';
19
+ import { View } from 'react-native';
20
+ import { FloatingButton, useThemeColor } from '@axelor/aos-mobile-ui';
21
+ import { useTranslator } from '../../../../i18n';
22
+ import { ConfirmationPopup } from '../Alerts';
23
+ const CONTAINER_ZINDEX = 50;
24
+ const DEFAULT_ALERT_STATE = {
25
+ visible: false,
26
+ onPress: () => { },
27
+ };
28
+ const findAction = (actions, type) => {
29
+ return actions
30
+ .filter(_action => _action.customComponent == null)
31
+ .find(_action => _action.type === type);
32
+ };
33
+ const getOnPress = (action, wrapper) => {
34
+ return () => {
35
+ if (action?.onPress == null) {
36
+ return;
37
+ }
38
+ wrapper(action.onPress, action.needValidation);
39
+ };
40
+ };
41
+ const FloatingTools = ({ style, hideIf = false, isCreation = false, isDirty = false, toggleReadonly, actions, onCreate, onPressWrapper, defaultOpenValue = false, }) => {
42
+ const I18n = useTranslator();
43
+ const Colors = useThemeColor();
44
+ const createAction = useMemo(() => findAction(actions, 'create'), [actions]);
45
+ const resetAction = useMemo(() => findAction(actions, 'reset'), [actions]);
46
+ const updateAction = useMemo(() => findAction(actions, 'update'), [actions]);
47
+ const deleteAction = useMemo(() => findAction(actions, 'delete'), [actions]);
48
+ const [alertConfig, setAlertConfig] = useState(DEFAULT_ALERT_STATE);
49
+ if (hideIf) {
50
+ return null;
51
+ }
52
+ return (<View style={{ zIndex: CONTAINER_ZINDEX }}>
53
+ <ConfirmationPopup visible={alertConfig.visible} handleClose={() => setAlertConfig(DEFAULT_ALERT_STATE)} handleConfirm={() => {
54
+ setAlertConfig(DEFAULT_ALERT_STATE);
55
+ alertConfig.onPress();
56
+ }}/>
57
+ <FloatingButton style={style} actions={[
58
+ {
59
+ key: 'formAction_create',
60
+ iconName: 'plus-lg',
61
+ onPress: () => isDirty
62
+ ? setAlertConfig({ visible: true, onPress: onCreate })
63
+ : onCreate,
64
+ color: Colors.infoColor,
65
+ hideIf: createAction == null,
66
+ },
67
+ {
68
+ key: 'formAction_save',
69
+ iconName: 'floppy-fill',
70
+ onPress: getOnPress(isCreation ? createAction : updateAction, onPressWrapper),
71
+ color: Colors.successColor,
72
+ indicator: isDirty,
73
+ },
74
+ {
75
+ key: 'formAction_cancel',
76
+ iconName: 'eraser-fill',
77
+ onPress: () => isDirty
78
+ ? setAlertConfig({
79
+ visible: true,
80
+ onPress: getOnPress(resetAction, onPressWrapper),
81
+ })
82
+ : getOnPress(resetAction, onPressWrapper),
83
+ color: Colors.cautionColor,
84
+ closeOnPress: true,
85
+ },
86
+ {
87
+ key: 'formAction_delete',
88
+ iconName: 'trash-fill',
89
+ onPress: () => isDirty
90
+ ? setAlertConfig({
91
+ visible: true,
92
+ onPress: getOnPress(deleteAction, onPressWrapper),
93
+ })
94
+ : getOnPress(deleteAction, onPressWrapper),
95
+ color: Colors.errorColor,
96
+ closeOnPress: true,
97
+ hideIf: deleteAction == null,
98
+ },
99
+ ]} iconName="pencil-fill" closeIconName="box-arrow-down-left" closeOnOutsideClick={false} translator={I18n.t} useCircleStyle onGlobalPress={toggleReadonly} defaultOpenValue={defaultOpenValue}/>
100
+ </View>);
101
+ };
102
+ export default FloatingTools;
103
+ //# sourceMappingURL=FloatingTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingTools.js","sourceRoot":"","sources":["../../../../../src/components/pages/FormView/Buttons/FloatingTools.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,cAAc,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAE5C,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,MAAM,mBAAmB,GAAG;IAC1B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,OAAyB,EACzB,IAAoB,EACJ,EAAE;IAClB,OAAO,OAAO;SACX,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;SAClD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAsB,EAAE,OAAO,EAAgB,EAAE;IACnE,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,EAAE;YAC3B,OAAO;SACR;QAED,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,EACrB,KAAK,EACL,MAAM,GAAG,KAAK,EACd,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,KAAK,EACf,cAAc,EACd,OAAO,EACP,QAAQ,EACR,cAAc,EACd,gBAAgB,GAAG,KAAK,GAWzB,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAEpE,IAAI,MAAM,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,MAAM,EAAE,gBAAgB,EAAC,CAAC,CACtC;MAAA,CAAC,iBAAiB,CAChB,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAC7B,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CACvD,aAAa,CAAC,CAAC,GAAG,EAAE;YAClB,cAAc,CAAC,mBAAmB,CAAC,CAAC;YACpC,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC,EAEJ;MAAA,CAAC,cAAc,CACb,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,OAAO,CAAC,CAAC;YACP;gBACE,GAAG,EAAE,mBAAmB;gBACxB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO;oBACL,CAAC,CAAC,cAAc,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC;oBACpD,CAAC,CAAC,QAAQ;gBACd,KAAK,EAAE,MAAM,CAAC,SAAS;gBACvB,MAAM,EAAE,YAAY,IAAI,IAAI;aAC7B;YACD;gBACE,GAAG,EAAE,iBAAiB;gBACtB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,UAAU,CACjB,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EACxC,cAAc,CACf;gBACD,KAAK,EAAE,MAAM,CAAC,YAAY;gBAC1B,SAAS,EAAE,OAAO;aACnB;YACD;gBACE,GAAG,EAAE,mBAAmB;gBACxB,QAAQ,EAAE,aAAa;gBACvB,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO;oBACL,CAAC,CAAC,cAAc,CAAC;wBACb,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC;qBACjD,CAAC;oBACJ,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC;gBAC7C,KAAK,EAAE,MAAM,CAAC,YAAY;gBAC1B,YAAY,EAAE,IAAI;aACnB;YACD;gBACE,GAAG,EAAE,mBAAmB;gBACxB,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO;oBACL,CAAC,CAAC,cAAc,CAAC;wBACb,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC;qBAClD,CAAC;oBACJ,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC;gBAC9C,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,YAAY,IAAI,IAAI;aAC7B;SACF,CAAC,CACF,QAAQ,CAAC,aAAa,CACtB,aAAa,CAAC,qBAAqB,CACnC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAC3B,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,cAAc,CACd,aAAa,CAAC,CAAC,cAAc,CAAC,CAC9B,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,EAEvC;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as FloatingTools } from './FloatingTools';
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Axelor Business Solutions
3
+ *
4
+ * Copyright (C) 2024 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
+ export { default as FloatingTools } from './FloatingTools';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/pages/FormView/Buttons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,iBAAiB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { DisplayField, DisplayPanel, States } from '../../../../forms';
2
3
  interface FieldProps {
3
4
  handleFieldChange: (newValue: any, fieldName: string) => void;
@@ -5,6 +6,7 @@ interface FieldProps {
5
6
  object: any;
6
7
  globalReadonly?: (values?: States) => boolean;
7
8
  formContent: (DisplayPanel | DisplayField)[];
9
+ modelName: string;
8
10
  }
9
- declare const Field: ({ handleFieldChange, _field, object, globalReadonly, formContent, }: FieldProps) => JSX.Element;
11
+ declare const Field: ({ handleFieldChange, _field, object, globalReadonly, formContent, modelName, }: FieldProps) => React.JSX.Element;
10
12
  export default Field;
@@ -22,13 +22,18 @@ import { getKeyboardType, getWidget, getZIndex, getZIndexStyle, validateFieldSch
22
22
  import { useTranslator } from '../../../../i18n';
23
23
  import { useSelector } from '../../../../redux/hooks';
24
24
  import { UploadFileInput } from '../../../molecules';
25
- import { DateInput } from '../../../organisms';
25
+ import { DateInput, SignatureInput } from '../../../organisms';
26
26
  import { CustomPasswordInput } from '../Custom';
27
- const Field = ({ handleFieldChange, _field, object, globalReadonly = () => false, formContent, }) => {
27
+ import { useFieldPermitted } from '../../../../permissions';
28
+ const Field = ({ handleFieldChange, _field, object, globalReadonly = () => false, formContent, modelName, }) => {
28
29
  const I18n = useTranslator();
29
30
  const Colors = useThemeColor();
30
31
  const value = object?.[_field.key];
31
32
  const storeState = useSelector((state) => state);
33
+ const { hidden, readonly } = useFieldPermitted({
34
+ modelName,
35
+ fieldName: _field.key,
36
+ });
32
37
  const zIndex = useMemo(() => {
33
38
  return getZIndex(formContent, _field.key);
34
39
  }, [_field.key, formContent]);
@@ -47,17 +52,18 @@ const Field = ({ handleFieldChange, _field, object, globalReadonly = () => false
47
52
  handleFieldChange(_value, _field.key);
48
53
  }, [_field.key, handleFieldChange, handleValidate]);
49
54
  const isHidden = useMemo(() => {
50
- return _field.hideIf({ objectState: object, storeState: storeState });
51
- }, [_field, object, storeState]);
55
+ return (hidden || _field.hideIf({ objectState: object, storeState: storeState }));
56
+ }, [_field, hidden, object, storeState]);
52
57
  const isRequired = useMemo(() => {
53
58
  return (_field.required ||
54
59
  _field.requiredIf({ objectState: object, storeState: storeState }));
55
60
  }, [_field, object, storeState]);
56
61
  const isReadonly = useMemo(() => {
57
- return (globalReadonly({ objectState: object, storeState: storeState }) ||
62
+ return (readonly ||
63
+ globalReadonly({ objectState: object, storeState: storeState }) ||
58
64
  _field.readonly ||
59
65
  _field.readonlyIf({ objectState: object, storeState: storeState }));
60
- }, [_field, globalReadonly, object, storeState]);
66
+ }, [_field, globalReadonly, object, readonly, storeState]);
61
67
  const fieldStyle = useMemo(() => ({
62
68
  width: `${_field.parentPanel != null ? 100 : 90}%`,
63
69
  alignSelf: 'center',
@@ -81,6 +87,8 @@ const Field = ({ handleFieldChange, _field, object, globalReadonly = () => false
81
87
  return (<StarScore size={25} score={value} onPress={handleChange} editMode={!isReadonly} showMissingStar={true} {..._field.options}/>);
82
88
  case 'file':
83
89
  return (<UploadFileInput style={fieldStyle} title={I18n.t(_field.titleKey)} defaultValue={value} onUpload={handleChange} required={isRequired} readonly={isReadonly} {..._field.options}/>);
90
+ case 'signature':
91
+ return (<SignatureInput style={fieldStyle} title={I18n.t(_field.titleKey)} defaultValue={value} onChange={handleChange} required={isRequired} readonly={isReadonly} {..._field.options}/>);
84
92
  case 'date':
85
93
  return (<DateInput style={fieldStyle} title={I18n.t(_field.titleKey)} mode={_field.type} defaultDate={value ? new Date(value) : null} onDateChange={_date => {
86
94
  if (_date) {
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../../../src/components/pages/FormView/Components/Field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../../../src/components/pages/FormView/Components/Field.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { ReactNode } from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  import { DisplayField, DisplayPanel } from '../../../../forms';
3
3
  interface PanelProps {
4
4
  renderItem: (item: DisplayPanel | DisplayField) => ReactNode;
5
5
  formContent: (DisplayPanel | DisplayField)[];
6
6
  _panel: DisplayPanel;
7
7
  }
8
- declare const Panel: ({ renderItem, formContent, _panel }: PanelProps) => JSX.Element;
8
+ declare const Panel: ({ renderItem, formContent, _panel }: PanelProps) => React.JSX.Element;
9
9
  export default Panel;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { customComponentOptions } from '../../../../forms/types';
2
3
  interface props extends customComponentOptions {
3
4
  item: any;
@@ -6,5 +7,5 @@ interface props extends customComponentOptions {
6
7
  title?: string;
7
8
  readonly?: boolean;
8
9
  }
9
- declare const CustomButton: ({ item, style, title, readonly }: props) => JSX.Element;
10
+ declare const CustomButton: ({ item, style, title, readonly }: props) => React.JSX.Element;
10
11
  export default CustomButton;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { customComponentOptions } from '../../../../forms/types';
2
3
  interface props extends customComponentOptions {
3
4
  style?: any;
@@ -7,5 +8,5 @@ interface props extends customComponentOptions {
7
8
  required?: boolean;
8
9
  readonly?: boolean;
9
10
  }
10
- declare const CustomPasswordInput: ({ style, title, defaultValue, onChange, required, readonly, }: props) => JSX.Element;
11
+ declare const CustomPasswordInput: ({ style, title, defaultValue, onChange, required, readonly, }: props) => React.JSX.Element;
11
12
  export default CustomPasswordInput;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { customComponentOptions } from '../../../../forms/types';
2
3
  interface props extends customComponentOptions {
3
4
  item: any;
@@ -8,5 +9,5 @@ interface props extends customComponentOptions {
8
9
  required?: boolean;
9
10
  readonly?: boolean;
10
11
  }
11
- declare const CustomPicker: ({ item, style, title, defaultValue, onChange, required, readonly, }: props) => JSX.Element;
12
+ declare const CustomPicker: ({ item, style, title, defaultValue, onChange, required, readonly, }: props) => React.JSX.Element;
12
13
  export default CustomPicker;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { customComponentOptions } from '../../../../forms/types';
2
3
  interface props extends customComponentOptions {
3
4
  item: any;
@@ -8,5 +9,5 @@ interface props extends customComponentOptions {
8
9
  required?: boolean;
9
10
  readonly?: boolean;
10
11
  }
11
- declare const CustomSearchBar: ({ item, style, title, defaultValue, onChange, required, readonly, }: props) => JSX.Element;
12
+ declare const CustomSearchBar: ({ item, style, title, defaultValue, onChange, required, readonly, }: props) => React.JSX.Element;
12
13
  export default CustomSearchBar;
@@ -1,10 +1,14 @@
1
+ import React from 'react';
1
2
  import { Action } from '../../../forms';
2
3
  interface FormProps {
3
4
  style?: any;
4
5
  defaultValue?: any;
6
+ creationDefaultValue?: any;
5
7
  formKey: string;
8
+ isCustom?: boolean;
6
9
  actions: Action[];
7
- readonlyButton?: boolean;
10
+ floatingTools?: boolean;
11
+ defaultEditMode?: boolean;
8
12
  }
9
- declare const FormView: ({ style, defaultValue, formKey, actions: _actions, readonlyButton, }: FormProps) => JSX.Element;
13
+ declare const FormView: ({ style, defaultValue, creationDefaultValue, formKey, isCustom, actions: _actions, floatingTools, defaultEditMode, }: FormProps) => React.JSX.Element;
10
14
  export default FormView;
@@ -18,24 +18,36 @@
18
18
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
19
19
  import { StyleSheet, View } from 'react-native';
20
20
  import { useDispatch, useSelector } from 'react-redux';
21
- import { Button, CircleButton, KeyboardAvoidingScrollView, Screen, WarningCard, useThemeColor, } from '@axelor/aos-mobile-ui';
21
+ import { Button, KeyboardAvoidingScrollView, Screen, WarningCard, } from '@axelor/aos-mobile-ui';
22
22
  import { useTranslator } from '../../../i18n';
23
- import { getButtonTitleKey, getConfigItems, getFields, getValidationErrors, getZIndexStyle, isField, isObjectMissingRequiredField, mapErrorWithTranslationKey, sortContent, updateRequiredFieldsOfConfig, useFormConfig, validateSchema, } from '../../../forms';
23
+ import { usePermitted } from '../../../permissions';
24
+ import { getActionConfig, getConfigItems, getFields, getValidationErrors, getZIndexStyle, isField, mapErrorWithTranslationKey, sortContent, useFormConfig, validateSchema, } from '../../../forms';
24
25
  import { Field as FieldComponent, Panel as PanelComponent } from './Components';
25
26
  import { ConstraintsValidatorPopup } from './Alerts';
26
- import { clearRecord, createRecord, refreshRecord, updateRecord, } from '../../../features/formSlice';
27
- import { isEmpty } from '../../../utils';
28
- const FormView = ({ style, defaultValue, formKey, actions: _actions, readonlyButton = false, }) => {
27
+ import { clearRecord } from '../../../features/formSlice';
28
+ import { areObjectsEquals, isEmpty } from '../../../utils';
29
+ import { FloatingTools } from './Buttons';
30
+ const FormView = ({ style, defaultValue, creationDefaultValue, formKey, isCustom = false, actions: _actions, floatingTools = true, defaultEditMode = false, }) => {
29
31
  const I18n = useTranslator();
30
- const Colors = useThemeColor();
31
32
  const dispatch = useDispatch();
32
33
  const { config } = useFormConfig(formKey);
33
34
  const storeState = useSelector((state) => state);
34
35
  const { record } = useSelector((state) => state.form);
35
- const [object, setObject] = useState(defaultValue ?? {});
36
+ const { canCreate, canDelete, readonly } = usePermitted({
37
+ modelName: config?.modelName,
38
+ });
39
+ const [object, setObject] = useState(defaultValue ?? creationDefaultValue ?? {});
36
40
  const [errors, setErrors] = useState();
37
- const [isReadonly, setIsReadonly] = useState(readonlyButton);
41
+ const [isReadonly, setIsReadonly] = useState(floatingTools && !defaultEditMode);
42
+ const [buttonHeight, setButtonHeight] = useState(0);
38
43
  const formContent = useMemo(() => sortContent(config), [config]);
44
+ const isCreation = useMemo(() => object?.id == null, [object?.id]);
45
+ const isDirty = useMemo(() => {
46
+ if (isCreation) {
47
+ return true;
48
+ }
49
+ return !areObjectsEquals(defaultValue, object);
50
+ }, [defaultValue, isCreation, object]);
39
51
  useEffect(() => {
40
52
  mapErrorWithTranslationKey();
41
53
  }, []);
@@ -45,11 +57,12 @@ const FormView = ({ style, defaultValue, formKey, actions: _actions, readonlyBut
45
57
  useEffect(() => {
46
58
  setObject(_current => {
47
59
  if (isEmpty(record)) {
48
- if (defaultValue == null || _current === defaultValue) {
60
+ const _default = defaultValue ?? creationDefaultValue ?? {};
61
+ if (_default == null || areObjectsEquals(_current, _default)) {
49
62
  return _current;
50
63
  }
51
64
  else {
52
- return defaultValue;
65
+ return _default;
53
66
  }
54
67
  }
55
68
  if (_current === record) {
@@ -59,13 +72,13 @@ const FormView = ({ style, defaultValue, formKey, actions: _actions, readonlyBut
59
72
  return record;
60
73
  }
61
74
  });
62
- }, [defaultValue, record]);
75
+ }, [creationDefaultValue, defaultValue, isCreation, record]);
63
76
  const handleFieldChange = (newValue, fieldName) => {
64
77
  setObject(_current => {
65
78
  if (_current?.[fieldName] === newValue) {
66
79
  return _current;
67
80
  }
68
- const updatedObject = _current != null ? { ..._current } : null;
81
+ const updatedObject = _current != null ? { ..._current } : {};
69
82
  updatedObject[fieldName] = newValue;
70
83
  getFields(config)
71
84
  .filter(_field => _field.dependsOn != null)
@@ -81,104 +94,24 @@ const FormView = ({ style, defaultValue, formKey, actions: _actions, readonlyBut
81
94
  return updatedObject;
82
95
  });
83
96
  };
84
- const getButtonConfig = (_action) => {
85
- const buttonConfig = { title: getButtonTitleKey(_action) };
86
- if (_action.customAction != null) {
87
- buttonConfig.onPress = () => _action.customAction({
88
- handleObjectChange: setObject,
89
- objectState: object,
90
- storeState,
91
- handleReset,
92
- dispatch,
93
- });
97
+ const isButtonAuthorized = useCallback((_action) => {
98
+ switch (_action.type) {
99
+ case 'create':
100
+ return canCreate;
101
+ case 'update':
102
+ return !readonly;
103
+ case 'delete':
104
+ return canDelete;
105
+ default:
106
+ return true;
94
107
  }
95
- else {
96
- switch (_action.type) {
97
- case 'create':
98
- buttonConfig.onPress = () => {
99
- dispatch(createRecord({
100
- modelName: config.modelName,
101
- data: object,
102
- }));
103
- handleReset();
104
- };
105
- break;
106
- case 'update':
107
- buttonConfig.onPress = () => {
108
- dispatch(updateRecord({
109
- modelName: config.modelName,
110
- data: object,
111
- }));
112
- };
113
- break;
114
- case 'refresh':
115
- buttonConfig.onPress = () => {
116
- dispatch(refreshRecord({
117
- modelName: config.modelName,
118
- id: object?.id,
119
- }));
120
- };
121
- break;
122
- case 'reset':
123
- buttonConfig.onPress = handleReset;
124
- break;
125
- default:
126
- buttonConfig.onPress = () => console.log(object);
127
- break;
128
- }
129
- }
130
- return buttonConfig;
131
- };
132
- const renderAction = (_action) => {
133
- if (_action.hideIf?.({ objectState: object, storeState })) {
134
- return null;
135
- }
136
- const buttonConfig = getButtonConfig(_action);
137
- const isDisabled = (_action.needRequiredFields
138
- ? isObjectMissingRequiredField(object, updateRequiredFieldsOfConfig(config, {
139
- objectState: object,
140
- storeState,
141
- }))
142
- : false) || _action.disabledIf?.({ objectState: object, storeState });
143
- const originalOnPress = buttonConfig.onPress;
144
- buttonConfig.onPress = () => {
145
- originalOnPress();
146
- if (_action.readonlyAfterAction) {
147
- toggleReadonlyMode();
148
- }
149
- };
150
- if (_action.customComponent) {
151
- return React.cloneElement(_action.customComponent, {
152
- key: _action.key,
153
- onPress: () => handleValidate(buttonConfig.onPress, _action.needValidation),
154
- disabled: isDisabled,
155
- });
156
- }
157
- return (<Button key={_action.key} iconName={_action.iconName} color={_action.color} title={I18n.t(buttonConfig.title)} onPress={() => handleValidate(buttonConfig.onPress, _action.needValidation)} disabled={isDisabled}/>);
158
- };
108
+ }, [canCreate, canDelete, readonly]);
159
109
  const toggleReadonlyMode = () => {
160
110
  setIsReadonly(currentState => !currentState);
161
111
  };
162
112
  const handleReset = useCallback(() => {
163
- setObject(defaultValue ?? {});
164
- }, [defaultValue]);
165
- const actions = useMemo(() => {
166
- return [
167
- {
168
- key: 'cancel-readonly',
169
- titleKey: 'Base_Cancel',
170
- type: 'custom',
171
- needValidation: true,
172
- customAction: () => {
173
- toggleReadonlyMode();
174
- handleReset();
175
- },
176
- hideIf: () => !readonlyButton,
177
- color: Colors.errorColor,
178
- },
179
- ...(_actions ?? []),
180
- ];
181
- }, [Colors.errorColor, _actions, handleReset, readonlyButton]);
113
+ setObject((isCreation ? creationDefaultValue : defaultValue) ?? {});
114
+ }, [creationDefaultValue, defaultValue, isCreation]);
182
115
  const handleValidate = (_action, needValidation) => {
183
116
  if (needValidation) {
184
117
  return validateSchema(config, object)
@@ -194,9 +127,49 @@ const FormView = ({ style, defaultValue, formKey, actions: _actions, readonlyBut
194
127
  resolve();
195
128
  });
196
129
  };
130
+ const actions = useMemo(() => {
131
+ if (!Array.isArray(_actions) || _actions.length === 0) {
132
+ return [];
133
+ }
134
+ return _actions
135
+ .filter(_action => isButtonAuthorized(_action) &&
136
+ _action.hideIf?.({ objectState: object, storeState }) !== true)
137
+ .map(_action => getActionConfig(_action, config, {
138
+ handleObjectChange: setObject,
139
+ objectState: object,
140
+ storeState,
141
+ dispatch,
142
+ handleReset,
143
+ }, I18n));
144
+ }, [
145
+ I18n,
146
+ _actions,
147
+ config,
148
+ dispatch,
149
+ handleReset,
150
+ isButtonAuthorized,
151
+ object,
152
+ storeState,
153
+ ]);
154
+ const renderAction = (_action) => {
155
+ const onPress = () => handleValidate(() => {
156
+ _action.onPress();
157
+ if (_action.readonlyAfterAction) {
158
+ toggleReadonlyMode();
159
+ }
160
+ }, _action.needValidation);
161
+ if (_action.customComponent) {
162
+ return React.cloneElement(_action.customComponent, {
163
+ key: _action.key,
164
+ onPress: onPress,
165
+ disabled: _action.isDisabled,
166
+ });
167
+ }
168
+ return (<Button key={_action.key} iconName={_action.iconName} color={_action.color} title={_action.title} onPress={onPress} disabled={_action.isDisabled}/>);
169
+ };
197
170
  const renderItem = (item) => {
198
171
  if (isField(item)) {
199
- return (<FieldComponent key={`${item.key} - ${item.order}`} handleFieldChange={handleFieldChange} _field={item} object={object} globalReadonly={() => isReadonly ||
172
+ return (<FieldComponent key={`${item.key} - ${item.order}`} handleFieldChange={handleFieldChange} _field={item} object={object} modelName={config.modelName} globalReadonly={() => isReadonly ||
200
173
  (config.readonlyIf &&
201
174
  config.readonlyIf({ objectState: object, storeState }))} formContent={getConfigItems(config)}/>);
202
175
  }
@@ -207,19 +180,27 @@ const FormView = ({ style, defaultValue, formKey, actions: _actions, readonlyBut
207
180
  <WarningCard errorMessage={I18n.t('Base_FormNotFound')}/>
208
181
  </View>);
209
182
  }
210
- return (<Screen fixedItems={actions.length === 0 || isReadonly
211
- ? undefined
212
- : actions.map(renderAction)} removeSpaceOnTop={true}>
213
- <KeyboardAvoidingScrollView keyboardOffset={{
214
- ios: 70,
215
- android: 100,
216
- }} style={styles.scroll}>
183
+ if (!isCustom && object?.id == null && !canCreate) {
184
+ return (<View>
185
+ <WarningCard errorMessage={I18n.t('Base_FormMissingCreateAccess')}/>
186
+ </View>);
187
+ }
188
+ return (<Screen fixedItems={<View onLayout={({ nativeEvent }) => {
189
+ setButtonHeight(nativeEvent.layout.height);
190
+ }}>
191
+ {isReadonly
192
+ ? undefined
193
+ : actions
194
+ .filter(_action => !floatingTools || _action.type === 'custom')
195
+ .map(renderAction)}
196
+ </View>} removeSpaceOnTop={true}>
197
+ <KeyboardAvoidingScrollView keyboardOffset={{ ios: 70, android: 100 }} style={styles.scroll}>
217
198
  {Array.isArray(errors) && (<ConstraintsValidatorPopup onContinue={() => setErrors(null)} errors={errors}/>)}
218
199
  <View style={[styles.container, style, getZIndexStyle(5)]}>
219
200
  {formContent.map(renderItem)}
220
201
  </View>
221
202
  </KeyboardAvoidingScrollView>
222
- {readonlyButton && isReadonly && (<CircleButton style={styles.floatingButton} iconName="pencil-fill" onPress={toggleReadonlyMode}/>)}
203
+ <FloatingTools hideIf={!floatingTools} style={{ bottom: buttonHeight + 20 }} toggleReadonly={toggleReadonlyMode} actions={actions} isCreation={isCreation} onCreate={() => setObject(creationDefaultValue)} onPressWrapper={handleValidate} isDirty={isDirty} defaultOpenValue={defaultEditMode}/>
223
204
  </Screen>);
224
205
  };
225
206
  const styles = StyleSheet.create({
@@ -228,11 +209,7 @@ const styles = StyleSheet.create({
228
209
  },
229
210
  container: {
230
211
  alignItems: 'center',
231
- },
232
- floatingButton: {
233
- position: 'absolute',
234
- bottom: 25,
235
- right: 25,
212
+ paddingBottom: 125,
236
213
  },
237
214
  });
238
215
  export default FormView;