@axelor/aos-mobile-project 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/README.md +44 -0
  2. package/lib/api/index.d.ts +4 -0
  3. package/lib/api/index.js +22 -0
  4. package/lib/api/index.js.map +1 -0
  5. package/lib/api/project-api.d.ts +20 -0
  6. package/lib/api/project-api.js +136 -0
  7. package/lib/api/project-api.js.map +1 -0
  8. package/lib/api/project-task-api.d.ts +51 -0
  9. package/lib/api/project-task-api.js +294 -0
  10. package/lib/api/project-task-api.js.map +1 -0
  11. package/lib/api/reporting-api.d.ts +3 -0
  12. package/lib/api/reporting-api.js +26 -0
  13. package/lib/api/reporting-api.js.map +1 -0
  14. package/lib/api/timesheet-lines-api.d.ts +3 -0
  15. package/lib/api/timesheet-lines-api.js +41 -0
  16. package/lib/api/timesheet-lines-api.js.map +1 -0
  17. package/lib/components/atoms/DatesDisplay/DatesDisplay.d.ts +6 -0
  18. package/lib/components/atoms/DatesDisplay/DatesDisplay.js +59 -0
  19. package/lib/components/atoms/DatesDisplay/DatesDisplay.js.map +1 -0
  20. package/lib/components/atoms/PartnerCard/PartnerCard.d.ts +12 -0
  21. package/lib/components/atoms/PartnerCard/PartnerCard.js +74 -0
  22. package/lib/components/atoms/PartnerCard/PartnerCard.js.map +1 -0
  23. package/lib/components/atoms/ProjectCard/ProjectCard.d.ts +15 -0
  24. package/lib/components/atoms/ProjectCard/ProjectCard.js +101 -0
  25. package/lib/components/atoms/ProjectCard/ProjectCard.js.map +1 -0
  26. package/lib/components/atoms/ProjectSimpleCard/ProjectSimpleCard.d.ts +10 -0
  27. package/lib/components/atoms/ProjectSimpleCard/ProjectSimpleCard.js +48 -0
  28. package/lib/components/atoms/ProjectSimpleCard/ProjectSimpleCard.js.map +1 -0
  29. package/lib/components/atoms/TaskCard/TaskCard.d.ts +16 -0
  30. package/lib/components/atoms/TaskCard/TaskCard.js +93 -0
  31. package/lib/components/atoms/TaskCard/TaskCard.js.map +1 -0
  32. package/lib/components/atoms/index.d.ts +5 -0
  33. package/lib/components/atoms/index.js +23 -0
  34. package/lib/components/atoms/index.js.map +1 -0
  35. package/lib/components/index.d.ts +5 -0
  36. package/lib/components/index.js +23 -0
  37. package/lib/components/index.js.map +1 -0
  38. package/lib/components/molecules/ActivityCard/ActivityCard.d.ts +11 -0
  39. package/lib/components/molecules/ActivityCard/ActivityCard.js +80 -0
  40. package/lib/components/molecules/ActivityCard/ActivityCard.js.map +1 -0
  41. package/lib/components/molecules/CustomFieldPopup/CustomFieldPopup.d.ts +11 -0
  42. package/lib/components/molecules/CustomFieldPopup/CustomFieldPopup.js +53 -0
  43. package/lib/components/molecules/CustomFieldPopup/CustomFieldPopup.js.map +1 -0
  44. package/lib/components/molecules/DropdownInvoicing/DropdownInvoicing.d.ts +11 -0
  45. package/lib/components/molecules/DropdownInvoicing/DropdownInvoicing.js +41 -0
  46. package/lib/components/molecules/DropdownInvoicing/DropdownInvoicing.js.map +1 -0
  47. package/lib/components/molecules/DropdownMembers/DropdownMembers.d.ts +8 -0
  48. package/lib/components/molecules/DropdownMembers/DropdownMembers.js +33 -0
  49. package/lib/components/molecules/DropdownMembers/DropdownMembers.js.map +1 -0
  50. package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.d.ts +13 -0
  51. package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.js +51 -0
  52. package/lib/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.js.map +1 -0
  53. package/lib/components/molecules/DropdownTaskDescription/DropdownTaskDescription.d.ts +8 -0
  54. package/lib/components/molecules/DropdownTaskDescription/DropdownTaskDescription.js +39 -0
  55. package/lib/components/molecules/DropdownTaskDescription/DropdownTaskDescription.js.map +1 -0
  56. package/lib/components/molecules/PartnerActionCard/PartnerActionCard.d.ts +19 -0
  57. package/lib/components/molecules/PartnerActionCard/PartnerActionCard.js +53 -0
  58. package/lib/components/molecules/PartnerActionCard/PartnerActionCard.js.map +1 -0
  59. package/lib/components/molecules/ProjectHeader/ProjectHeader.d.ts +3 -0
  60. package/lib/components/molecules/ProjectHeader/ProjectHeader.js +67 -0
  61. package/lib/components/molecules/ProjectHeader/ProjectHeader.js.map +1 -0
  62. package/lib/components/molecules/ProjectSiteTags/ProjectSiteTags.d.ts +3 -0
  63. package/lib/components/molecules/ProjectSiteTags/ProjectSiteTags.js +34 -0
  64. package/lib/components/molecules/ProjectSiteTags/ProjectSiteTags.js.map +1 -0
  65. package/lib/components/molecules/SectionHeader/SectionHeader.d.ts +9 -0
  66. package/lib/components/molecules/SectionHeader/SectionHeader.js +56 -0
  67. package/lib/components/molecules/SectionHeader/SectionHeader.js.map +1 -0
  68. package/lib/components/molecules/TaskActionCard/TaskActionCard.d.ts +20 -0
  69. package/lib/components/molecules/TaskActionCard/TaskActionCard.js +39 -0
  70. package/lib/components/molecules/TaskActionCard/TaskActionCard.js.map +1 -0
  71. package/lib/components/molecules/TaskDetailsHeader/TaskDetailsHeader.d.ts +3 -0
  72. package/lib/components/molecules/TaskDetailsHeader/TaskDetailsHeader.js +67 -0
  73. package/lib/components/molecules/TaskDetailsHeader/TaskDetailsHeader.js.map +1 -0
  74. package/lib/components/molecules/index.d.ts +12 -0
  75. package/lib/components/molecules/index.js +30 -0
  76. package/lib/components/molecules/index.js.map +1 -0
  77. package/lib/components/organisms/CustomSection/CustomSection.d.ts +10 -0
  78. package/lib/components/organisms/CustomSection/CustomSection.js +49 -0
  79. package/lib/components/organisms/CustomSection/CustomSection.js.map +1 -0
  80. package/lib/components/organisms/LogTimeButton/LogTimeButton.d.ts +6 -0
  81. package/lib/components/organisms/LogTimeButton/LogTimeButton.js +41 -0
  82. package/lib/components/organisms/LogTimeButton/LogTimeButton.js.map +1 -0
  83. package/lib/components/organisms/ProjectDropdownCards/ProjectDropdownCards.d.ts +3 -0
  84. package/lib/components/organisms/ProjectDropdownCards/ProjectDropdownCards.js +51 -0
  85. package/lib/components/organisms/ProjectDropdownCards/ProjectDropdownCards.js.map +1 -0
  86. package/lib/components/organisms/ProjectTaskDropdownCards/ProjectTaskDropdownCards.d.ts +3 -0
  87. package/lib/components/organisms/ProjectTaskDropdownCards/ProjectTaskDropdownCards.js +52 -0
  88. package/lib/components/organisms/ProjectTaskDropdownCards/ProjectTaskDropdownCards.js.map +1 -0
  89. package/lib/components/organisms/TimeSpentGridView/TimeSpentGridView.d.ts +3 -0
  90. package/lib/components/organisms/TimeSpentGridView/TimeSpentGridView.js +53 -0
  91. package/lib/components/organisms/TimeSpentGridView/TimeSpentGridView.js.map +1 -0
  92. package/lib/components/organisms/index.d.ts +5 -0
  93. package/lib/components/organisms/index.js +23 -0
  94. package/lib/components/organisms/index.js.map +1 -0
  95. package/lib/components/pages/GeneralInformationView/GeneralInformationView.d.ts +3 -0
  96. package/lib/components/pages/GeneralInformationView/GeneralInformationView.js +55 -0
  97. package/lib/components/pages/GeneralInformationView/GeneralInformationView.js.map +1 -0
  98. package/lib/components/pages/ReportingView/ReportingView.d.ts +3 -0
  99. package/lib/components/pages/ReportingView/ReportingView.js +60 -0
  100. package/lib/components/pages/ReportingView/ReportingView.js.map +1 -0
  101. package/lib/components/pages/SubProjectView/SubProjectView.d.ts +3 -0
  102. package/lib/components/pages/SubProjectView/SubProjectView.js +80 -0
  103. package/lib/components/pages/SubProjectView/SubProjectView.js.map +1 -0
  104. package/lib/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.d.ts +3 -0
  105. package/lib/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.js +49 -0
  106. package/lib/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.js.map +1 -0
  107. package/lib/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.d.ts +5 -0
  108. package/lib/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.js +55 -0
  109. package/lib/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.js.map +1 -0
  110. package/lib/components/pages/TaskLinkView/TaskLinkView.d.ts +3 -0
  111. package/lib/components/pages/TaskLinkView/TaskLinkView.js +58 -0
  112. package/lib/components/pages/TaskLinkView/TaskLinkView.js.map +1 -0
  113. package/lib/components/pages/TaskView/TaskView.d.ts +3 -0
  114. package/lib/components/pages/TaskView/TaskView.js +63 -0
  115. package/lib/components/pages/TaskView/TaskView.js.map +1 -0
  116. package/lib/components/pages/TimeView/TimeView.d.ts +7 -0
  117. package/lib/components/pages/TimeView/TimeView.js +59 -0
  118. package/lib/components/pages/TimeView/TimeView.js.map +1 -0
  119. package/lib/components/pages/index.d.ts +8 -0
  120. package/lib/components/pages/index.js +26 -0
  121. package/lib/components/pages/index.js.map +1 -0
  122. package/lib/components/templates/ActivityListView/ActivityListView.d.ts +3 -0
  123. package/lib/components/templates/ActivityListView/ActivityListView.js +117 -0
  124. package/lib/components/templates/ActivityListView/ActivityListView.js.map +1 -0
  125. package/lib/components/templates/CategorySearchBar/CategorySearchBar.d.ts +12 -0
  126. package/lib/components/templates/CategorySearchBar/CategorySearchBar.js +41 -0
  127. package/lib/components/templates/CategorySearchBar/CategorySearchBar.js.map +1 -0
  128. package/lib/components/templates/ParentTaskSearchBar/ParentTaskSearchBar.d.ts +12 -0
  129. package/lib/components/templates/ParentTaskSearchBar/ParentTaskSearchBar.js +41 -0
  130. package/lib/components/templates/ParentTaskSearchBar/ParentTaskSearchBar.js.map +1 -0
  131. package/lib/components/templates/PrioritySearchBar/PrioritySearchBar.d.ts +12 -0
  132. package/lib/components/templates/PrioritySearchBar/PrioritySearchBar.js +41 -0
  133. package/lib/components/templates/PrioritySearchBar/PrioritySearchBar.js.map +1 -0
  134. package/lib/components/templates/ProjectListView/ProjectListView.d.ts +6 -0
  135. package/lib/components/templates/ProjectListView/ProjectListView.js +71 -0
  136. package/lib/components/templates/ProjectListView/ProjectListView.js.map +1 -0
  137. package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.d.ts +13 -0
  138. package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.js +39 -0
  139. package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.js.map +1 -0
  140. package/lib/components/templates/ReportingDetailsView/IndicatorCategory.d.ts +7 -0
  141. package/lib/components/templates/ReportingDetailsView/IndicatorCategory.js +70 -0
  142. package/lib/components/templates/ReportingDetailsView/IndicatorCategory.js.map +1 -0
  143. package/lib/components/templates/ReportingDetailsView/ReportingDetailsView.d.ts +3 -0
  144. package/lib/components/templates/ReportingDetailsView/ReportingDetailsView.js +50 -0
  145. package/lib/components/templates/ReportingDetailsView/ReportingDetailsView.js.map +1 -0
  146. package/lib/components/templates/SectionSearchBar/SectionSearchBar.d.ts +12 -0
  147. package/lib/components/templates/SectionSearchBar/SectionSearchBar.js +38 -0
  148. package/lib/components/templates/SectionSearchBar/SectionSearchBar.js.map +1 -0
  149. package/lib/components/templates/TargetVersionSearchBar/TargetVersionSearchBar.d.ts +12 -0
  150. package/lib/components/templates/TargetVersionSearchBar/TargetVersionSearchBar.js +40 -0
  151. package/lib/components/templates/TargetVersionSearchBar/TargetVersionSearchBar.js.map +1 -0
  152. package/lib/components/templates/TaskFilters/TaskFilters.d.ts +14 -0
  153. package/lib/components/templates/TaskFilters/TaskFilters.js +135 -0
  154. package/lib/components/templates/TaskFilters/TaskFilters.js.map +1 -0
  155. package/lib/components/templates/TaskStatusSearchBar/TaskStatusSearchBar.d.ts +12 -0
  156. package/lib/components/templates/TaskStatusSearchBar/TaskStatusSearchBar.js +56 -0
  157. package/lib/components/templates/TaskStatusSearchBar/TaskStatusSearchBar.js.map +1 -0
  158. package/lib/components/templates/TaskTagMultiValuePicker/TaskTagMultiValuePicker.d.ts +11 -0
  159. package/lib/components/templates/TaskTagMultiValuePicker/TaskTagMultiValuePicker.js +50 -0
  160. package/lib/components/templates/TaskTagMultiValuePicker/TaskTagMultiValuePicker.js.map +1 -0
  161. package/lib/components/templates/index.d.ts +12 -0
  162. package/lib/components/templates/index.js +30 -0
  163. package/lib/components/templates/index.js.map +1 -0
  164. package/lib/features/asyncFunctions-index.d.ts +4 -0
  165. package/lib/features/asyncFunctions-index.js +22 -0
  166. package/lib/features/asyncFunctions-index.js.map +1 -0
  167. package/lib/features/index.d.ts +4 -0
  168. package/lib/features/index.js +22 -0
  169. package/lib/features/index.js.map +1 -0
  170. package/lib/features/projectSlice.d.ts +65 -0
  171. package/lib/features/projectSlice.js +118 -0
  172. package/lib/features/projectSlice.js.map +1 -0
  173. package/lib/features/projectTaskSlice.d.ts +193 -0
  174. package/lib/features/projectTaskSlice.js +310 -0
  175. package/lib/features/projectTaskSlice.js.map +1 -0
  176. package/lib/features/reportingSlice.d.ts +13 -0
  177. package/lib/features/reportingSlice.js +43 -0
  178. package/lib/features/reportingSlice.js.map +1 -0
  179. package/lib/features/timesheetLinesSlice.d.ts +39 -0
  180. package/lib/features/timesheetLinesSlice.js +57 -0
  181. package/lib/features/timesheetLinesSlice.js.map +1 -0
  182. package/lib/hooks/index.d.ts +2 -0
  183. package/lib/hooks/index.js +20 -0
  184. package/lib/hooks/index.js.map +1 -0
  185. package/lib/hooks/use-project-header-actions.d.ts +1 -0
  186. package/lib/hooks/use-project-header-actions.js +75 -0
  187. package/lib/hooks/use-project-header-actions.js.map +1 -0
  188. package/lib/hooks/use-reporting-configuration.d.ts +5 -0
  189. package/lib/hooks/use-reporting-configuration.js +33 -0
  190. package/lib/hooks/use-reporting-configuration.js.map +1 -0
  191. package/lib/hooks/use-task-filter.d.ts +32 -0
  192. package/lib/hooks/use-task-filter.js +96 -0
  193. package/lib/hooks/use-task-filter.js.map +1 -0
  194. package/lib/i18n/en.json +87 -0
  195. package/lib/i18n/fr.json +87 -0
  196. package/lib/index.d.ts +8 -0
  197. package/lib/index.js +81 -0
  198. package/lib/index.js.map +1 -0
  199. package/lib/models/forms.d.ts +2 -0
  200. package/lib/models/forms.js +245 -0
  201. package/lib/models/forms.js.map +1 -0
  202. package/lib/models/index.d.ts +5 -0
  203. package/lib/models/index.js +23 -0
  204. package/lib/models/index.js.map +1 -0
  205. package/lib/models/objectFields.d.ts +2 -0
  206. package/lib/models/objectFields.js +187 -0
  207. package/lib/models/objectFields.js.map +1 -0
  208. package/lib/models/searchFields.d.ts +2 -0
  209. package/lib/models/searchFields.js +31 -0
  210. package/lib/models/searchFields.js.map +1 -0
  211. package/lib/models/sortFields.d.ts +2 -0
  212. package/lib/models/sortFields.js +22 -0
  213. package/lib/models/sortFields.js.map +1 -0
  214. package/lib/models/typeObjects.d.ts +2 -0
  215. package/lib/models/typeObjects.js +63 -0
  216. package/lib/models/typeObjects.js.map +1 -0
  217. package/lib/screens/ActiveProjectScreen.d.ts +3 -0
  218. package/lib/screens/ActiveProjectScreen.js +50 -0
  219. package/lib/screens/ActiveProjectScreen.js.map +1 -0
  220. package/lib/screens/BuisnessProjectScreen.d.ts +3 -0
  221. package/lib/screens/BuisnessProjectScreen.js +27 -0
  222. package/lib/screens/BuisnessProjectScreen.js.map +1 -0
  223. package/lib/screens/ProjectDetailsScreen.d.ts +7 -0
  224. package/lib/screens/ProjectDetailsScreen.js +87 -0
  225. package/lib/screens/ProjectDetailsScreen.js.map +1 -0
  226. package/lib/screens/ProjectScreen.d.ts +3 -0
  227. package/lib/screens/ProjectScreen.js +27 -0
  228. package/lib/screens/ProjectScreen.js.map +1 -0
  229. package/lib/screens/TaskDetailsScreen.d.ts +6 -0
  230. package/lib/screens/TaskDetailsScreen.js +92 -0
  231. package/lib/screens/TaskDetailsScreen.js.map +1 -0
  232. package/lib/screens/TaskFormScreen.d.ts +6 -0
  233. package/lib/screens/TaskFormScreen.js +83 -0
  234. package/lib/screens/TaskFormScreen.js.map +1 -0
  235. package/lib/screens/TaskListScreen.d.ts +5 -0
  236. package/lib/screens/TaskListScreen.js +56 -0
  237. package/lib/screens/TaskListScreen.js.map +1 -0
  238. package/lib/screens/index.d.ts +74 -0
  239. package/lib/screens/index.js +82 -0
  240. package/lib/screens/index.js.map +1 -0
  241. package/lib/types/index.d.ts +1 -0
  242. package/lib/types/index.js +19 -0
  243. package/lib/types/index.js.map +1 -0
  244. package/lib/types/reporting-type.d.ts +5 -0
  245. package/lib/types/reporting-type.js +23 -0
  246. package/lib/types/reporting-type.js.map +1 -0
  247. package/package.json +48 -0
@@ -0,0 +1,55 @@
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 from 'react';
19
+ import { StyleSheet, View } from 'react-native';
20
+ import { isEmpty, useSelector, useTranslator } from '@axelor/aos-mobile-core';
21
+ import { HeaderContainer, NotesCard, ScrollView } from '@axelor/aos-mobile-ui';
22
+ import { DatesDisplay } from '../../atoms';
23
+ import { PartnerActionCard, ProjectHeader, ProjectSiteTags, } from '../../molecules';
24
+ import { ProjectDropdownCards } from '../../organisms';
25
+ const GeneralInformationView = () => {
26
+ const I18n = useTranslator();
27
+ const { project } = useSelector((state) => state.project_project);
28
+ if (project == null || isEmpty(project)) {
29
+ return null;
30
+ }
31
+ return (<View>
32
+ <HeaderContainer expandableFilter={false} fixedItems={<ProjectHeader />}/>
33
+ <ScrollView style={styles.scrollView}>
34
+ <View style={styles.margin}>
35
+ <DatesDisplay fromDate={project.fromDate} toDate={project.toDate}/>
36
+ <ProjectSiteTags />
37
+ </View>
38
+ <NotesCard title={I18n.t('Base_Description')} data={project.description}/>
39
+ <PartnerActionCard partner={project.clientPartner}/>
40
+ <PartnerActionCard partner={project.contactPartner} isContact/>
41
+ <ProjectDropdownCards />
42
+ </ScrollView>
43
+ </View>);
44
+ };
45
+ const styles = StyleSheet.create({
46
+ scrollView: {
47
+ height: null,
48
+ },
49
+ margin: {
50
+ width: '90%',
51
+ alignSelf: 'center',
52
+ },
53
+ });
54
+ export default GeneralInformationView;
55
+ //# sourceMappingURL=GeneralInformationView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneralInformationView.js","sourceRoot":"","sources":["../../../../src/components/pages/GeneralInformationView/GeneralInformationView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAC,eAAe,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAErD,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAErE,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,IAAI,CACH;MAAA,CAAC,eAAe,CACd,gBAAgB,CAAC,CAAC,KAAK,CAAC,CACxB,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,AAAD,EAAG,CAAC,EAEhC;MAAA,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACnC;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CACzB;UAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACjE;UAAA,CAAC,eAAe,CAAC,AAAD,EAClB;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAClC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAE5B;QAAA,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAClD;QAAA,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,SAAS,EAC7D;QAAA,CAAC,oBAAoB,CAAC,AAAD,EACvB;MAAA,EAAE,UAAU,CACd;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE;QACV,MAAM,EAAE,IAAI;KACb;IACD,MAAM,EAAE;QACN,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ReportingView: () => React.JSX.Element;
3
+ export default ReportingView;
@@ -0,0 +1,60 @@
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, { useEffect, useState } from 'react';
19
+ import { View, StyleSheet } from 'react-native';
20
+ import { useSelector, useTranslator } from '@axelor/aos-mobile-core';
21
+ import { HeaderContainer, ToggleSwitch } from '@axelor/aos-mobile-ui';
22
+ import { ProjectHeader } from '../../molecules';
23
+ import { ActivityListView, ReportingDetailsView } from '../../templates';
24
+ import { ReportingType } from '../../../types';
25
+ import { useReportingConfiguration } from '../../../hooks/use-reporting-configuration';
26
+ const ReportingView = () => {
27
+ const I18n = useTranslator();
28
+ const { project } = useSelector((state) => state.project_project);
29
+ const { showActivities, showIndicators, noReporting } = useReportingConfiguration(project);
30
+ const [mode, setMode] = useState(ReportingType.indicators);
31
+ useEffect(() => {
32
+ if (!showIndicators) {
33
+ setMode(ReportingType.activities);
34
+ }
35
+ else if (!showActivities) {
36
+ setMode(ReportingType.indicators);
37
+ }
38
+ }, [showActivities, showIndicators]);
39
+ if (noReporting) {
40
+ return null;
41
+ }
42
+ return (<View style={styles.container}>
43
+ <HeaderContainer expandableFilter={false} fixedItems={<>
44
+ <ProjectHeader />
45
+ {showIndicators && showActivities && (<ToggleSwitch leftTitle={I18n.t('Project_Reporting')} rightTitle={I18n.t('Project_Activities')} onSwitch={() => setMode(_mode => {
46
+ return _mode === ReportingType.activities
47
+ ? ReportingType.indicators
48
+ : ReportingType.activities;
49
+ })}/>)}
50
+ </>}/>
51
+ {mode === ReportingType.activities ? (<ActivityListView />) : (<ReportingDetailsView />)}
52
+ </View>);
53
+ };
54
+ const styles = StyleSheet.create({
55
+ container: {
56
+ flex: 1,
57
+ },
58
+ });
59
+ export default ReportingView;
60
+ //# sourceMappingURL=ReportingView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportingView.js","sourceRoot":"","sources":["../../../../src/components/pages/ReportingView/ReportingView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,yBAAyB,EAAC,MAAM,4CAA4C,CAAC;AAErF,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAErE,MAAM,EAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAC,GACjD,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAErC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACnC;aAAM,IAAI,CAAC,cAAc,EAAE;YAC1B,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACnC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;IAErC,IAAI,WAAW,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,eAAe,CACd,gBAAgB,CAAC,CAAC,KAAK,CAAC,CACxB,UAAU,CAAC,CACT,EACE;YAAA,CAAC,aAAa,CAAC,AAAD,EACd;YAAA,CAAC,cAAc,IAAI,cAAc,IAAI,CACnC,CAAC,YAAY,CACX,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CACvC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CACzC,QAAQ,CAAC,CAAC,GAAG,EAAE,CACb,OAAO,CAAC,KAAK,CAAC,EAAE;oBACd,OAAO,KAAK,KAAK,aAAa,CAAC,UAAU;wBACvC,CAAC,CAAC,aAAa,CAAC,UAAU;wBAC1B,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC/B,CAAC,CAAC,CACH,EACD,CACH,CACH;UAAA,GAAG,CACJ,EAEH;MAAA,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CACnC,CAAC,gBAAgB,CAAC,AAAD,EAAG,CACrB,CAAC,CAAC,CAAC,CACF,CAAC,oBAAoB,CAAC,AAAD,EAAG,CACzB,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const SubProjectView: () => React.JSX.Element;
3
+ export default SubProjectView;
@@ -0,0 +1,80 @@
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, { useCallback, useEffect, useMemo } from 'react';
19
+ import { StyleSheet } from 'react-native';
20
+ import { useSelector, useDispatch, useTranslator, clipboardProvider, } from '@axelor/aos-mobile-core';
21
+ import { HeaderContainer, HorizontalRule, ScrollList, Text, Label, } from '@axelor/aos-mobile-ui';
22
+ import { ProjectHeader } from '../../molecules';
23
+ import { ProjectCard } from '../../atoms';
24
+ import { searchSubProject } from '../../../features/projectSlice';
25
+ const SubProjectView = () => {
26
+ const dispatch = useDispatch();
27
+ const I18n = useTranslator();
28
+ const { project, loadingSubProject, moreLoadingSubProject, isListEndSubProject, subProjectList, } = useSelector((state) => state.project_project);
29
+ const sliceFunctionData = useMemo(() => ({
30
+ projectId: project.id,
31
+ }), [project.id]);
32
+ useEffect(() => {
33
+ dispatch(searchSubProject(sliceFunctionData));
34
+ }, [dispatch, sliceFunctionData]);
35
+ const fetchSubProjectAPI = useCallback((page = 0) => {
36
+ dispatch(searchSubProject({ ...sliceFunctionData, page }));
37
+ }, [dispatch, sliceFunctionData]);
38
+ const isParentProjet = useMemo(() => project.parentProject != null, [project.parentProject]);
39
+ const isSubProjects = useMemo(() => Array.isArray(subProjectList) && subProjectList.length > 0, [subProjectList]);
40
+ const noProjects = useMemo(() => {
41
+ return !isParentProjet && !isSubProjects;
42
+ }, [isParentProjet, isSubProjects]);
43
+ return (<>
44
+ <HeaderContainer fixedItems={<ProjectHeader />} expandableFilter={false}/>
45
+ {noProjects && (<Label style={styles.label} message={I18n.t('Project_NoLinkedProjects')} type="info"/>)}
46
+ {isParentProjet && (<>
47
+ <Text style={styles.title} writingType="details">
48
+ {I18n.t('Project_ParentProject')}
49
+ </Text>
50
+ <ProjectCard onPress={() => clipboardProvider.copyToClipboard(project?.parentProject?.name)} customer={project?.parentProject?.clientPartner} name={project?.parentProject?.name} code={project?.parentProject?.code} company={project?.parentProject?.company?.name} assignedTo={project?.parentProject?.assignedTo?.fullName} projectStatus={project?.parentProject?.projectStatus} parentProject={project?.parentProject?.parentProject?.fullName} isCopyCard={true}/>
51
+ </>)}
52
+ {isSubProjects && (<>
53
+ {isParentProjet && <HorizontalRule style={styles.horizontalRule}/>}
54
+ <Text style={styles.title} writingType="details">
55
+ {I18n.t('Project_ChildProjects')}
56
+ </Text>
57
+ <ScrollList data={subProjectList} style={styles.scrollList} loadingList={loadingSubProject} renderItem={({ item }) => (<ProjectCard onPress={() => clipboardProvider.copyToClipboard(item?.name)} name={item?.name} code={item?.code} customer={item?.clientPartner} company={item?.company?.name} assignedTo={item?.assignedTo?.fullName} projectStatus={item?.projectStatus} parentProject={item?.parentProject?.fullName} isCopyCard={true}/>)} fetchData={fetchSubProjectAPI} moreLoading={moreLoadingSubProject} isListEnd={isListEndSubProject} translator={I18n.t}/>
58
+ </>)}
59
+ </>);
60
+ };
61
+ const styles = StyleSheet.create({
62
+ title: {
63
+ marginHorizontal: 24,
64
+ marginVertical: 10,
65
+ },
66
+ scrollList: {
67
+ paddingTop: 0,
68
+ },
69
+ label: {
70
+ width: '90%',
71
+ alignSelf: 'center',
72
+ },
73
+ horizontalRule: {
74
+ alignSelf: 'center',
75
+ width: '70%',
76
+ marginTop: 10,
77
+ },
78
+ });
79
+ export default SubProjectView;
80
+ //# sourceMappingURL=SubProjectView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubProjectView.js","sourceRoot":"","sources":["../../../../src/components/pages/SubProjectView/SubProjectView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TaskCustomFieldsView: ({}: {}) => React.JSX.Element;
3
+ export default TaskCustomFieldsView;
@@ -0,0 +1,49 @@
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, useCallback } from 'react';
19
+ import { StyleSheet, View } from 'react-native';
20
+ import { useSelector } from '@axelor/aos-mobile-core';
21
+ import { HeaderContainer, ScrollView } from '@axelor/aos-mobile-ui';
22
+ import { TaskDetailsHeader } from '../../molecules';
23
+ import { CustomSection } from '../../organisms';
24
+ const TaskCustomFieldsView = ({}) => {
25
+ const { projectTask } = useSelector((state) => state.project_projectTask);
26
+ const [refreshKey, setRefreshKey] = useState(0);
27
+ const configArray = useMemo(() => projectTask.project?.customFieldManagementSelect.split(','), [projectTask.project?.customFieldManagementSelect]);
28
+ const onRefresh = useCallback(() => {
29
+ setRefreshKey(prevKey => prevKey + 1);
30
+ }, []);
31
+ return (<View style={styles.container}>
32
+ <HeaderContainer expandableFilter={false} fixedItems={<TaskDetailsHeader />}/>
33
+ <ScrollView style={styles.scrollView} refresh={{ fetcher: onRefresh, loading: false }}>
34
+ <CustomSection titleKey="Project_ProjectAppCustomField" fieldType="appJson" visible={configArray.includes('app')} modelId={projectTask.id} refreshKey={refreshKey} onRefresh={onRefresh}/>
35
+ <CustomSection titleKey="Project_ProjectCustomField" fieldType="projectJson" visible={configArray.includes('project')} modelId={projectTask.id} refreshKey={refreshKey} onRefresh={onRefresh}/>
36
+ <CustomSection titleKey="Project_CategoryCustomField" fieldType="categoryJson" visible={configArray.includes('category')} modelId={projectTask.id} refreshKey={refreshKey} onRefresh={onRefresh}/>
37
+ </ScrollView>
38
+ </View>);
39
+ };
40
+ const styles = StyleSheet.create({
41
+ container: {
42
+ flex: 1,
43
+ },
44
+ scrollView: {
45
+ height: null,
46
+ },
47
+ });
48
+ export default TaskCustomFieldsView;
49
+ //# sourceMappingURL=TaskCustomFieldsView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskCustomFieldsView.js","sourceRoot":"","sources":["../../../../src/components/pages/TaskCustomFieldsView/TaskCustomFieldsView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,EAAE;IAClC,MAAM,EAAC,WAAW,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAE7E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC,EACjE,CAAC,WAAW,CAAC,OAAO,EAAE,2BAA2B,CAAC,CACnD,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,eAAe,CACd,gBAAgB,CAAC,CAAC,KAAK,CAAC,CACxB,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,AAAD,EAAG,CAAC,EAEpC;MAAA,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACzB,OAAO,CAAC,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,CAC9C;QAAA,CAAC,aAAa,CACZ,QAAQ,CAAC,+BAA+B,CACxC,SAAS,CAAC,SAAS,CACnB,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACrC,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CACxB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,SAAS,CAAC,CAAC,SAAS,CAAC,EAEvB;QAAA,CAAC,aAAa,CACZ,QAAQ,CAAC,4BAA4B,CACrC,SAAS,CAAC,aAAa,CACvB,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CACzC,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CACxB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,SAAS,CAAC,CAAC,SAAS,CAAC,EAEvB;QAAA,CAAC,aAAa,CACZ,QAAQ,CAAC,6BAA6B,CACtC,SAAS,CAAC,cAAc,CACxB,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC1C,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CACxB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,SAAS,CAAC,CAAC,SAAS,CAAC,EAEzB;MAAA,EAAE,UAAU,CACd;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;IACD,UAAU,EAAE;QACV,MAAM,EAAE,IAAI;KACb;CACF,CAAC,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ declare const TaskGeneralInformationView: ({ handleRefresh, }: {
3
+ handleRefresh?: () => void;
4
+ }) => React.JSX.Element;
5
+ export default TaskGeneralInformationView;
@@ -0,0 +1,55 @@
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, { useEffect } from 'react';
19
+ import { StyleSheet, View } from 'react-native';
20
+ import { useDispatch, useNavigation, useSelector } from '@axelor/aos-mobile-core';
21
+ import { HeaderContainer, ScrollView } from '@axelor/aos-mobile-ui';
22
+ import { ProjectSimpleCard } from '../../atoms';
23
+ import { TaskDetailsHeader } from '../../molecules';
24
+ import { ProjectTaskDropdownCards, TimeSpentGridView } from '../../organisms';
25
+ import { fetchProjectStatus } from '../../../features/projectSlice';
26
+ const TaskGeneralInformationView = ({ handleRefresh = () => { }, }) => {
27
+ const dispatch = useDispatch();
28
+ const navigation = useNavigation();
29
+ const { projectTask, loadingProjectTask } = useSelector((state) => state.project_projectTask);
30
+ useEffect(() => {
31
+ dispatch(fetchProjectStatus());
32
+ }, [dispatch]);
33
+ return (<View style={styles.container}>
34
+ <HeaderContainer expandableFilter={false} fixedItems={<TaskDetailsHeader />}/>
35
+ <ScrollView style={styles.scrollView} refresh={{ loading: loadingProjectTask, fetcher: handleRefresh }}>
36
+ <ProjectSimpleCard code={projectTask.project?.code} name={projectTask.project?.name} projectStatus={projectTask.project?.projectStatus} onPress={() => {
37
+ navigation.navigate('ProjectDetailsScreen', {
38
+ projectId: projectTask.project?.id,
39
+ });
40
+ }}/>
41
+ <ProjectTaskDropdownCards />
42
+ <TimeSpentGridView />
43
+ </ScrollView>
44
+ </View>);
45
+ };
46
+ const styles = StyleSheet.create({
47
+ container: {
48
+ flex: 1,
49
+ },
50
+ scrollView: {
51
+ height: null,
52
+ },
53
+ });
54
+ export default TaskGeneralInformationView;
55
+ //# sourceMappingURL=TaskGeneralInformationView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskGeneralInformationView.js","sourceRoot":"","sources":["../../../../src/components/pages/TaskGeneralInformationView/TaskGeneralInformationView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,wBAAwB,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAElE,MAAM,0BAA0B,GAAG,CAAC,EAClC,aAAa,GAAG,GAAG,EAAE,GAAE,CAAC,GAGzB,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,MAAM,EAAC,WAAW,EAAE,kBAAkB,EAAC,GAAG,WAAW,CACnD,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAC1C,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,eAAe,CACd,gBAAgB,CAAC,CAAC,KAAK,CAAC,CACxB,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,AAAD,EAAG,CAAC,EAEpC;MAAA,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACzB,OAAO,CAAC,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAC,CAAC,CAC/D;QAAA,CAAC,iBAAiB,CAChB,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAChC,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAChC,aAAa,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAClD,OAAO,CAAC,CAAC,GAAG,EAAE;YACZ,UAAU,CAAC,QAAQ,CAAC,sBAAsB,EAAE;gBAC1C,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE;aACnC,CAAC,CAAC;QACL,CAAC,CAAC,EAEJ;QAAA,CAAC,wBAAwB,CAAC,AAAD,EACzB;QAAA,CAAC,iBAAiB,CAAC,AAAD,EACpB;MAAA,EAAE,UAAU,CACd;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;IACD,UAAU,EAAE;QACV,MAAM,EAAE,IAAI;KACb;CACF,CAAC,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TaskLinkView: ({}: {}) => React.JSX.Element;
3
+ export default TaskLinkView;
@@ -0,0 +1,58 @@
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, { useCallback, useEffect } from 'react';
19
+ import { StyleSheet, View } from 'react-native';
20
+ import { useDispatch, useSelector, useTranslator, clipboardProvider, } from '@axelor/aos-mobile-core';
21
+ import { GroupByScrollList, HeaderContainer, HorizontalRule, } from '@axelor/aos-mobile-ui';
22
+ import { TaskCard } from '../../atoms';
23
+ import { TaskDetailsHeader } from '../../molecules';
24
+ import { searchProjectTaskLink } from '../../../features/projectTaskSlice';
25
+ const TaskLinkView = ({}) => {
26
+ const dispatch = useDispatch();
27
+ const I18n = useTranslator();
28
+ const { projectTask, taskLinkList, loadingTaskLink, moreLoadingTaskLink, isListEndTaskLink, } = useSelector((state) => state.project_projectTask);
29
+ useEffect(() => {
30
+ dispatch(searchProjectTaskLink({ taskId: projectTask?.id }));
31
+ }, [dispatch, projectTask?.id]);
32
+ const fetchProjectTaskLinkAPI = useCallback((page = 0) => {
33
+ dispatch(searchProjectTaskLink({
34
+ taskId: projectTask?.id,
35
+ page: page,
36
+ }));
37
+ }, [dispatch, projectTask?.id]);
38
+ const separatorCondition = useCallback((prevItem, currentItem) => prevItem.projectTaskLinkType.id !== currentItem.projectTaskLinkType.id, []);
39
+ return (<View style={styles.container}>
40
+ <HeaderContainer expandableFilter={false} fixedItems={<TaskDetailsHeader />}/>
41
+ <GroupByScrollList translator={I18n.t} data={taskLinkList} loadingList={loadingTaskLink} isListEnd={isListEndTaskLink} moreLoading={moreLoadingTaskLink} fetchData={fetchProjectTaskLinkAPI} renderItem={({ item }) => (<TaskCard name={item?.relatedTask.name} assignedTo={item?.relatedTask?.assignedTo?.fullName} taskDeadline={item?.relatedTask?.taskDeadline} parentTask={item?.relatedTask?.parentTask?.name} progress={item?.relatedTask?.progress} priority={item?.relatedTask?.priority} status={item?.relatedTask?.status} isCopyCard={true} showArrow={false} onPress={() => clipboardProvider.copyToClipboard(item?.relatedTask.name)}/>)} separatorCondition={separatorCondition} fetchBottomIndicator={() => ({ text: '' })} customBottomSeparator={<HorizontalRule style={styles.horizotalRule}/>} fetchTopIndicator={item => ({
42
+ title: item.projectTaskLinkType.name,
43
+ position: 'left',
44
+ })}/>
45
+ </View>);
46
+ };
47
+ const styles = StyleSheet.create({
48
+ container: {
49
+ flex: 1,
50
+ },
51
+ horizotalRule: {
52
+ marginTop: 15,
53
+ width: '60%',
54
+ alignSelf: 'center',
55
+ },
56
+ });
57
+ export default TaskLinkView;
58
+ //# sourceMappingURL=TaskLinkView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskLinkView.js","sourceRoot":"","sources":["../../../../src/components/pages/TaskLinkView/TaskLinkView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const TaskView: () => React.JSX.Element;
3
+ export default TaskView;
@@ -0,0 +1,63 @@
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 { useSelector, SearchListView, useTranslator, useNavigation, } from '@axelor/aos-mobile-core';
20
+ import { ProjectHeader, TaskActionCard } from '../../molecules';
21
+ import { TaskFilters } from '../../templates';
22
+ import { searchProjectTask } from '../../../features/projectTaskSlice';
23
+ const TaskView = () => {
24
+ const I18n = useTranslator();
25
+ const navigation = useNavigation();
26
+ const { userId } = useSelector((state) => state.auth);
27
+ const { project } = useSelector((state) => state.project_project);
28
+ const { loading, moreLoading, isListEnd, projectTaskList } = useSelector((state) => state.project_projectTask);
29
+ const [selectedStatus, setSelectedStatus] = useState([]);
30
+ const [selectedPriority, setSelectedPriority] = useState([]);
31
+ const [selectedCategory, setSelectedCategory] = useState([]);
32
+ const [isAssignedToMe, setIsAssignedToMe] = useState(false);
33
+ const sliceFunctionData = useMemo(() => {
34
+ return {
35
+ projectId: project?.id,
36
+ isAssignedToMe: isAssignedToMe,
37
+ selectedStatus: selectedStatus,
38
+ selectedPriority: selectedPriority,
39
+ selectedCategory: selectedCategory,
40
+ userId: isAssignedToMe ? userId : null,
41
+ };
42
+ }, [
43
+ project?.id,
44
+ isAssignedToMe,
45
+ selectedStatus,
46
+ selectedPriority,
47
+ selectedCategory,
48
+ userId,
49
+ ]);
50
+ return (<SearchListView headerTopChildren={<ProjectHeader />} headerChildren={<TaskFilters isAssignedToMe={isAssignedToMe} setIsAssignedToMe={setIsAssignedToMe} setSelectedPriority={setSelectedPriority} setSelectedCategory={setSelectedCategory} setSelectedStatus={setSelectedStatus} selectedCategories={selectedCategory} project={project}/>} actionList={[
51
+ {
52
+ iconName: 'plus',
53
+ title: I18n.t('Project_CreateNewTask'),
54
+ onPress: () => {
55
+ navigation.navigate('TaskFormScreen', { isCreation: true });
56
+ },
57
+ },
58
+ ]} list={projectTaskList} loading={loading} moreLoading={moreLoading} isListEnd={isListEnd} sliceFunction={searchProjectTask} sliceFunctionData={sliceFunctionData} searchPlaceholder={I18n.t('Base_Search')} renderListItem={({ item }) => (<TaskActionCard task={item} onPress={() => {
59
+ navigation.navigate('TaskDetailsScreen', { projecTaskId: item.id });
60
+ }}/>)}/>);
61
+ };
62
+ export default TaskView;
63
+ //# sourceMappingURL=TaskView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskView.js","sourceRoot":"","sources":["../../../../src/components/pages/TaskView/TaskView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React, { ReactNode } from 'react';
2
+ declare const TimeView: ({ project, projectTask, headerComponent, }: {
3
+ project: any;
4
+ projectTask?: any;
5
+ headerComponent: ReactNode;
6
+ }) => React.JSX.Element;
7
+ export default TimeView;
@@ -0,0 +1,59 @@
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, { useEffect, useMemo, useState } from 'react';
19
+ import { StyleSheet, View } from 'react-native';
20
+ import { FormView, useDispatch, useSelector } from '@axelor/aos-mobile-core';
21
+ import { HeaderContainer } from '@axelor/aos-mobile-ui';
22
+ import { updateProject } from '@axelor/aos-mobile-hr';
23
+ import { clearReset } from '../../../features/timesheetLinesSlice';
24
+ const TimeView = ({ project, projectTask, headerComponent, }) => {
25
+ const dispatch = useDispatch();
26
+ const { resetTimeForm } = useSelector((state) => state.project_timesheetLines);
27
+ const [formValue, setFormValue] = useState({});
28
+ const defaultValue = useMemo(() => {
29
+ return {
30
+ project,
31
+ projectTask,
32
+ isTaskLog: projectTask != null,
33
+ date: new Date().toISOString().split('T')[0],
34
+ };
35
+ }, [project, projectTask]);
36
+ useEffect(() => {
37
+ dispatch(updateProject(project));
38
+ }, [dispatch, project]);
39
+ useEffect(() => {
40
+ if (resetTimeForm) {
41
+ setFormValue(current => ({ ...current }));
42
+ dispatch(clearReset());
43
+ }
44
+ }, [dispatch, resetTimeForm]);
45
+ useEffect(() => {
46
+ setFormValue(defaultValue);
47
+ }, [defaultValue]);
48
+ return (<View style={styles.container}>
49
+ <HeaderContainer expandableFilter={false} fixedItems={headerComponent}/>
50
+ <FormView formKey="project_TimesheetLine" actions={[]} defaultValue={formValue} floatingTools={false}/>
51
+ </View>);
52
+ };
53
+ const styles = StyleSheet.create({
54
+ container: {
55
+ flex: 1,
56
+ },
57
+ });
58
+ export default TimeView;
59
+ //# sourceMappingURL=TimeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeView.js","sourceRoot":"","sources":["../../../../src/components/pages/TimeView/TimeView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAY,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACrE,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;AAEjE,MAAM,QAAQ,GAAG,CAAC,EAChB,OAAO,EACP,WAAW,EACX,eAAe,GAKhB,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,EAAC,aAAa,EAAC,GAAG,WAAW,CACjC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAC7C,CAAC;IAEF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO;YACL,OAAO;YACP,WAAW;YACX,SAAS,EAAE,WAAW,IAAI,IAAI;YAC9B,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7C,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,EAAE;YACjB,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAC,GAAG,OAAO,EAAC,CAAC,CAAC,CAAC;YACxC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;SACxB;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,EACtE;MAAA,CAAC,QAAQ,CACP,OAAO,CAAC,uBAAuB,CAC/B,OAAO,CAAC,CAAC,EAAE,CAAC,CACZ,YAAY,CAAC,CAAC,SAAS,CAAC,CACxB,aAAa,CAAC,CAAC,KAAK,CAAC,EAEzB;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { default as GeneralInformationView } from './GeneralInformationView/GeneralInformationView';
2
+ export { default as ReportingView } from './ReportingView/ReportingView';
3
+ export { default as TaskCustomFieldsView } from './TaskCustomFieldsView/TaskCustomFieldsView';
4
+ export { default as TaskGeneralInformationView } from './TaskGeneralInformationView/TaskGeneralInformationView';
5
+ export { default as TaskLinkView } from './TaskLinkView/TaskLinkView';
6
+ export { default as SubProjectView } from './SubProjectView/SubProjectView';
7
+ export { default as TaskView } from './TaskView/TaskView';
8
+ export { default as TimeView } from './TimeView/TimeView';
@@ -0,0 +1,26 @@
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 GeneralInformationView } from './GeneralInformationView/GeneralInformationView';
19
+ export { default as ReportingView } from './ReportingView/ReportingView';
20
+ export { default as TaskCustomFieldsView } from './TaskCustomFieldsView/TaskCustomFieldsView';
21
+ export { default as TaskGeneralInformationView } from './TaskGeneralInformationView/TaskGeneralInformationView';
22
+ export { default as TaskLinkView } from './TaskLinkView/TaskLinkView';
23
+ export { default as SubProjectView } from './SubProjectView/SubProjectView';
24
+ export { default as TaskView } from './TaskView/TaskView';
25
+ export { default as TimeView } from './TimeView/TimeView';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,sBAAsB,EAAC,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAC,OAAO,IAAI,0BAA0B,EAAC,MAAM,yDAAyD,CAAC;AAC9G,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ActivityListView: () => React.JSX.Element;
3
+ export default ActivityListView;