@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,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, useMemo } from 'react';
19
+ import { StyleSheet, View, Dimensions } from 'react-native';
20
+ import { MailMessageNotificationCard, formatTime as _formatTime, useBinaryImageUri, useTranslator, } from '@axelor/aos-mobile-core';
21
+ import { Badge, Image, Text, useThemeColor } from '@axelor/aos-mobile-ui';
22
+ const AVATAR_SIZE = Dimensions.get('window').width * 0.12;
23
+ const STATES = {
24
+ Danger: 'danger',
25
+ Success: 'success',
26
+ };
27
+ const ActivityCard = ({ userId, userName, time, title, tracks, modelName, utilityClass, }) => {
28
+ const Colors = useThemeColor();
29
+ const I18n = useTranslator();
30
+ const formatImage = useBinaryImageUri();
31
+ const bagdeColor = useMemo(() => utilityClass === STATES.Danger
32
+ ? Colors.errorColor
33
+ : utilityClass === STATES.Success
34
+ ? Colors.successColor
35
+ : Colors.primaryColor, [Colors, utilityClass]);
36
+ const formatTime = useCallback(data => _formatTime(data, I18n.t('Base_TimeFormat')), [I18n]);
37
+ return (<View style={styles.container}>
38
+ <View style={styles.avatarContainer}>
39
+ <Image generalStyle={styles.avatar} defaultIconSize={25} resizeMode="contain" source={formatImage(userId, null, 'com.axelor.auth.db.User')}/>
40
+ </View>
41
+ <View style={styles.cardContainer}>
42
+ <Text style={styles.updatedText}>
43
+ {I18n.t('Project_ActivityUpdateInformation', {
44
+ userName,
45
+ time: formatTime(time),
46
+ })}
47
+ </Text>
48
+ <MailMessageNotificationCard title={title} tracks={tracks} customTopComponent={<Badge title={modelName} color={bagdeColor}/>}/>
49
+ </View>
50
+ </View>);
51
+ };
52
+ const styles = StyleSheet.create({
53
+ container: {
54
+ paddingLeft: 10,
55
+ alignItems: 'center',
56
+ flexDirection: 'row',
57
+ },
58
+ cardContainer: {
59
+ width: Dimensions.get('window').width * 0.83,
60
+ overflow: 'hidden',
61
+ },
62
+ updatedText: {
63
+ alignSelf: 'flex-start',
64
+ paddingHorizontal: 15,
65
+ },
66
+ avatarContainer: {
67
+ alignItems: 'center',
68
+ justifyContent: 'flex-start',
69
+ },
70
+ avatar: {
71
+ alignSelf: 'center',
72
+ justifyContent: 'center',
73
+ alignItems: 'center',
74
+ borderRadius: AVATAR_SIZE,
75
+ width: AVATAR_SIZE,
76
+ height: AVATAR_SIZE,
77
+ },
78
+ });
79
+ export default ActivityCard;
80
+ //# sourceMappingURL=ActivityCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/ActivityCard/ActivityCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAClD,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,UAAU,IAAI,WAAW,EACzB,iBAAiB,EACjB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAExE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;AAE1D,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,EACT,YAAY,GASb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,YAAY,KAAK,MAAM,CAAC,MAAM;QAC5B,CAAC,CAAC,MAAM,CAAC,UAAU;QACnB,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,OAAO;YAC/B,CAAC,CAAC,MAAM,CAAC,YAAY;YACrB,CAAC,CAAC,MAAM,CAAC,YAAY,EAC3B,CAAC,MAAM,EAAE,YAAY,CAAC,CACvB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EACpD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAClC;QAAA,CAAC,KAAK,CACJ,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAC5B,eAAe,CAAC,CAAC,EAAE,CAAC,CACpB,UAAU,CAAC,SAAS,CACpB,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC,EAEjE;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B;UAAA,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC3C,QAAQ;YACR,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;SACvB,CAAC,CACJ;QAAA,EAAE,IAAI,CACN;QAAA,CAAC,2BAA2B,CAC1B,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAG,CAAC,EAEvE;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI;QAC5C,QAAQ,EAAE,QAAQ;KACnB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,YAAY;QACvB,iBAAiB,EAAE,EAAE;KACtB;IACD,eAAe,EAAE;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,YAAY;KAC7B;IACD,MAAM,EAAE;QACN,SAAS,EAAE,QAAQ;QACnB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,WAAW;KACpB;CACF,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface CustomFieldPopupProps {
3
+ visible: boolean;
4
+ titleKey: string;
5
+ fieldType: string;
6
+ onClose: () => void;
7
+ onSave: () => void;
8
+ projectTaskId: number;
9
+ }
10
+ declare const CustomFieldPopup: ({ visible, titleKey, fieldType, onClose, onSave, projectTaskId, }: CustomFieldPopupProps) => React.JSX.Element;
11
+ export default CustomFieldPopup;
@@ -0,0 +1,53 @@
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 { CustomFieldForm, useTranslator } from '@axelor/aos-mobile-core';
21
+ import { Alert } from '@axelor/aos-mobile-ui';
22
+ const CustomFieldPopup = ({ visible, titleKey, fieldType, onClose, onSave, projectTaskId, }) => {
23
+ const I18n = useTranslator();
24
+ return (<Alert visible={visible} style={styles.container} title={I18n.t(titleKey)} translator={I18n.t} cancelButtonConfig={{
25
+ onPress: onClose,
26
+ showInHeader: true,
27
+ }}>
28
+ <View style={styles.content}>
29
+ <CustomFieldForm model="com.axelor.apps.project.db.ProjectTask" fieldType={fieldType} modelId={projectTaskId} readonly={false} hideFormBackground={true} hideButtonBackground={true} additionalActions={[
30
+ {
31
+ key: 'validateChanges',
32
+ type: 'update',
33
+ useDefaultAction: true,
34
+ readonlyAfterAction: true,
35
+ postActions: () => {
36
+ onSave();
37
+ onClose();
38
+ },
39
+ },
40
+ ]}/>
41
+ </View>
42
+ </Alert>);
43
+ };
44
+ const styles = StyleSheet.create({
45
+ content: {
46
+ flex: 1,
47
+ },
48
+ container: {
49
+ height: '80%',
50
+ },
51
+ });
52
+ export default CustomFieldPopup;
53
+ //# sourceMappingURL=CustomFieldPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomFieldPopup.js","sourceRoot":"","sources":["../../../../src/components/molecules/CustomFieldPopup/CustomFieldPopup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAW5C,MAAM,gBAAgB,GAAG,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,aAAa,GACS,EAAE,EAAE;IAC1B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,OAAO,CACL,CAAC,KAAK,CACJ,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CACxB,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CACxB,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,kBAAkB,CAAC,CAAC;YAClB,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CACF;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1B;QAAA,CAAC,eAAe,CACd,KAAK,CAAC,wCAAwC,CAC9C,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,QAAQ,CAAC,CAAC,KAAK,CAAC,CAChB,kBAAkB,CAAC,CAAC,IAAI,CAAC,CACzB,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAC3B,iBAAiB,CAAC,CAAC;YACjB;gBACE,GAAG,EAAE,iBAAiB;gBACtB,IAAI,EAAE,QAAQ;gBACd,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,WAAW,EAAE,GAAG,EAAE;oBAChB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;SACF,CAAC,EAEN;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,IAAI,EAAE,CAAC;KACR;IACD,SAAS,EAAE;QACT,MAAM,EAAE,KAAK;KACd;CACF,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface DropdownInvoicingProps {
3
+ style?: any;
4
+ currency?: any;
5
+ priceList?: any;
6
+ tasksInvoicing?: boolean;
7
+ expensesInvoicing?: boolean;
8
+ purchasesInvoicing?: boolean;
9
+ }
10
+ declare const DropdownInvoicing: ({ style, currency, priceList, tasksInvoicing, expensesInvoicing, purchasesInvoicing, }: DropdownInvoicingProps) => React.JSX.Element;
11
+ export default DropdownInvoicing;
@@ -0,0 +1,41 @@
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 } from 'react';
19
+ import { View } from 'react-native';
20
+ import { LabelText, TagList, Text } from '@axelor/aos-mobile-ui';
21
+ import { useTranslator } from '@axelor/aos-mobile-core';
22
+ const DropdownInvoicing = ({ style, currency, priceList, tasksInvoicing, expensesInvoicing, purchasesInvoicing, }) => {
23
+ const I18n = useTranslator();
24
+ const invoiceBoolList = useMemo(() => [
25
+ { title: I18n.t('Project_PackagedTask'), hidden: !tasksInvoicing },
26
+ { title: I18n.t('Project_Expenses'), hidden: !expensesInvoicing },
27
+ { title: I18n.t('Project_Purchases'), hidden: !purchasesInvoicing },
28
+ ], [I18n, expensesInvoicing, purchasesInvoicing, tasksInvoicing]);
29
+ if (currency == null &&
30
+ priceList == null &&
31
+ invoiceBoolList?.filter(({ hidden }) => !hidden)?.length === 0) {
32
+ return <Text>{I18n.t('Project_NoRelatedInvoicing')}</Text>;
33
+ }
34
+ return (<View style={style}>
35
+ <TagList tags={invoiceBoolList}/>
36
+ {currency != null && (<LabelText title={`${I18n.t('Project_Currency')} :`} value={`${currency?.name} (${currency?.symbol})`} textSize={16}/>)}
37
+ {priceList != null && (<LabelText title={`${I18n.t('Project_PriceList')} :`} value={priceList?.title} textSize={16}/>)}
38
+ </View>);
39
+ };
40
+ export default DropdownInvoicing;
41
+ //# sourceMappingURL=DropdownInvoicing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownInvoicing.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownInvoicing/DropdownInvoicing.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAWtD,MAAM,iBAAiB,GAAG,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACK,EAAE,EAAE;IAC3B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC;QACJ,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,cAAc,EAAC;QAChE,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAC;QAC/D,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAC;KAClE,EACD,CAAC,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAC9D,CAAC;IAEF,IACE,QAAQ,IAAI,IAAI;QAChB,SAAS,IAAI,IAAI;QACjB,eAAe,EAAE,MAAM,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,EAC5D;QACA,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5D;IAED,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,EAC/B;MAAA,CAAC,QAAQ,IAAI,IAAI,IAAI,CACnB,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACzC,KAAK,CAAC,CAAC,GAAG,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,MAAM,GAAG,CAAC,CACjD,QAAQ,CAAC,CAAC,EAAE,CAAC,EACb,CACH,CACD;MAAA,CAAC,SAAS,IAAI,IAAI,IAAI,CACpB,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC1C,KAAK,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CACxB,QAAQ,CAAC,CAAC,EAAE,CAAC,EACb,CACH,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface DropdownMembersProps {
3
+ style?: any;
4
+ team: string;
5
+ memberSet?: any[];
6
+ }
7
+ declare const DropdownMembers: ({ style, team, memberSet }: DropdownMembersProps) => React.JSX.Element;
8
+ export default DropdownMembers;
@@ -0,0 +1,33 @@
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 } from 'react';
19
+ import { View } from 'react-native';
20
+ import { LabelText, TagList } from '@axelor/aos-mobile-ui';
21
+ import { useTranslator } from '@axelor/aos-mobile-core';
22
+ const DropdownMembers = ({ style, team, memberSet }) => {
23
+ const I18n = useTranslator();
24
+ const members = useMemo(() => {
25
+ return memberSet?.map(member => ({ title: member?.fullName }));
26
+ }, [memberSet]);
27
+ return (<View style={style}>
28
+ <LabelText title={`${I18n.t('Project_Team')} :`} value={team ?? '-'} textSize={16}/>
29
+ <TagList title={I18n.t('Project_Members')} tags={members}/>
30
+ </View>);
31
+ };
32
+ export default DropdownMembers;
33
+ //# sourceMappingURL=DropdownMembers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMembers.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownMembers/DropdownMembers.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,SAAS,EAAE,OAAO,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAQtD,MAAM,eAAe,GAAG,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAuB,EAAE,EAAE;IACzE,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CACrC,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CACnB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAEf;MAAA,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAC3D;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface DropdownTaskCharacteristicsProps {
3
+ style?: any;
4
+ projectTaskCategory?: any;
5
+ projectTaskSection?: any;
6
+ targetVersion?: any;
7
+ taskDate?: string;
8
+ taskEndDate?: string;
9
+ taskDeadline?: string;
10
+ tagSet?: any;
11
+ }
12
+ declare const DropdownTaskCharacteristics: ({ style, projectTaskCategory, projectTaskSection, targetVersion, taskDate, taskEndDate, taskDeadline, tagSet, }: DropdownTaskCharacteristicsProps) => React.JSX.Element;
13
+ export default DropdownTaskCharacteristics;
@@ -0,0 +1,51 @@
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, useMemo } from 'react';
19
+ import { View } from 'react-native';
20
+ import { LabelText, TagList, checkNullString, useThemeColor, } from '@axelor/aos-mobile-ui';
21
+ import { formatDate, useTranslator } from '@axelor/aos-mobile-core';
22
+ const DropdownTaskCharacteristics = ({ style, projectTaskCategory, projectTaskSection, targetVersion, taskDate, taskEndDate, taskDeadline, tagSet, }) => {
23
+ const I18n = useTranslator();
24
+ const Colors = useThemeColor();
25
+ const tagsList = useMemo(() => {
26
+ return tagSet?.map(tag => ({
27
+ title: tag?.name,
28
+ color: Colors[tag?.colorSelect],
29
+ }));
30
+ }, [tagSet, Colors]);
31
+ const _formatDate = useCallback(_date => {
32
+ return _date ? formatDate(_date, I18n.t('Base_DateFormat')) : null;
33
+ }, [I18n]);
34
+ const renderLabelText = useCallback((titleKey, value) => {
35
+ if (!checkNullString(value)) {
36
+ return (<LabelText title={`${I18n.t(titleKey)} :`} value={value} textSize={16}/>);
37
+ }
38
+ return null;
39
+ }, [I18n]);
40
+ return (<View style={style}>
41
+ {renderLabelText('Project_Category', projectTaskCategory?.name)}
42
+ {renderLabelText('Project_Section', projectTaskSection?.name)}
43
+ {renderLabelText('Project_TargetVersion', targetVersion?.title)}
44
+ {renderLabelText('Project_StartDate', _formatDate(taskDate))}
45
+ {renderLabelText('Project_DueDate', _formatDate(taskEndDate))}
46
+ {renderLabelText('Project_Deadline', _formatDate(taskDeadline))}
47
+ <TagList title={I18n.t('Project_Tags')} tags={tagsList}/>
48
+ </View>);
49
+ };
50
+ export default DropdownTaskCharacteristics;
51
+ //# sourceMappingURL=DropdownTaskCharacteristics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownTaskCharacteristics.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownTaskCharacteristics/DropdownTaskCharacteristics.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAClD,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,SAAS,EACT,OAAO,EACP,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAalE,MAAM,2BAA2B,GAAG,CAAC,EACnC,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,MAAM,GAC2B,EAAE,EAAE;IACrC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,KAAK,EAAE,GAAG,EAAE,IAAI;YAChB,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC;SAChC,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,CAAC,EAAE;QACN,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,QAAgB,EAAE,KAAsB,EAAE,EAAE;QAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,CACL,CAAC,SAAS,CACR,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/B,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,QAAQ,CAAC,CAAC,EAAE,CAAC,EACb,CACH,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,eAAe,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAC/D;MAAA,CAAC,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAC7D;MAAA,CAAC,eAAe,CAAC,uBAAuB,EAAE,aAAa,EAAE,KAAK,CAAC,CAC/D;MAAA,CAAC,eAAe,CAAC,mBAAmB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAC5D;MAAA,CAAC,eAAe,CAAC,iBAAiB,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAC7D;MAAA,CAAC,eAAe,CAAC,kBAAkB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAC/D;MAAA,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACzD;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface DropdownTaskDescriptionProps {
3
+ style?: any;
4
+ description?: string;
5
+ internalDescription?: string;
6
+ }
7
+ declare const DropdownTaskDescription: ({ style, description, internalDescription, }: DropdownTaskDescriptionProps) => React.JSX.Element;
8
+ export default DropdownTaskDescription;
@@ -0,0 +1,39 @@
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 } from 'react';
19
+ import { View } from 'react-native';
20
+ import { HtmlInput, Text, checkNullString } from '@axelor/aos-mobile-ui';
21
+ import { useTranslator } from '@axelor/aos-mobile-core';
22
+ const DropdownTaskDescription = ({ style, description, internalDescription, }) => {
23
+ const I18n = useTranslator();
24
+ const renderDescription = useCallback((titleKey, value) => {
25
+ if (!checkNullString(value)) {
26
+ return (<>
27
+ <Text writingType="important">{`${I18n.t(titleKey)}:`}</Text>
28
+ <HtmlInput defaultInput={value} readonly={true}/>
29
+ </>);
30
+ }
31
+ return null;
32
+ }, [I18n]);
33
+ return (<View style={style}>
34
+ {renderDescription('Base_Description', description)}
35
+ {renderDescription('Project_InternalDescription', internalDescription)}
36
+ </View>);
37
+ };
38
+ export default DropdownTaskDescription;
39
+ //# sourceMappingURL=DropdownTaskDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownTaskDescription.js","sourceRoot":"","sources":["../../../../src/components/molecules/DropdownTaskDescription/DropdownTaskDescription.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAQtD,MAAM,uBAAuB,GAAG,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,mBAAmB,GACU,EAAE,EAAE;IACjC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,QAAgB,EAAE,KAAa,EAAE,EAAE;QAClC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,CACL,EACE;YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAC5D;YAAA,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EACjD;UAAA,GAAG,CACJ,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACjB;MAAA,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CACnD;MAAA,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CACxE;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ interface PartnerProps {
3
+ id: number;
4
+ picture: any;
5
+ simpleFullName: string;
6
+ name: string;
7
+ partnerSeq: string;
8
+ jobTitleFunction?: any;
9
+ mainAddress?: any;
10
+ fixedPhone?: string;
11
+ mobilePhone?: string;
12
+ }
13
+ interface PartnerActionCardProps {
14
+ style?: any;
15
+ partner: PartnerProps;
16
+ isContact?: boolean;
17
+ }
18
+ declare const PartnerActionCard: ({ style, partner, isContact, }: PartnerActionCardProps) => React.JSX.Element;
19
+ export default PartnerActionCard;
@@ -0,0 +1,53 @@
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 } from 'react';
19
+ import { StyleSheet } from 'react-native';
20
+ import { ActionCard } from '@axelor/aos-mobile-ui';
21
+ import { isEmpty, linkingProvider, useTranslator } from '@axelor/aos-mobile-core';
22
+ import { PartnerCard } from '../../atoms';
23
+ const PartnerActionCard = ({ style, partner, isContact = false, }) => {
24
+ const I18n = useTranslator();
25
+ const actionList = useMemo(() => [
26
+ {
27
+ iconName: 'telephone-fill',
28
+ helper: I18n.t('Project_Call'),
29
+ hidden: !isContact ||
30
+ (partner?.mobilePhone == null && partner?.fixedPhone == null),
31
+ onPress: () => linkingProvider.openCallApp(partner.mobilePhone ?? partner.fixedPhone),
32
+ },
33
+ {
34
+ iconName: 'geo-alt-fill',
35
+ helper: I18n.t('Project_OpenMap'),
36
+ hidden: partner?.mainAddress == null,
37
+ onPress: () => linkingProvider.openMapApp(partner.mainAddress.fullName),
38
+ },
39
+ ], [I18n, isContact, partner]);
40
+ if (isEmpty(partner)) {
41
+ return null;
42
+ }
43
+ return (<ActionCard style={[styles.container, style]} actionList={actionList} translator={I18n.t}>
44
+ <PartnerCard picture={partner.picture} name={isContact ? partner.simpleFullName : partner.name} code={partner.partnerSeq} jobName={partner.jobTitleFunction?.name} id={partner.id} isContact={isContact}/>
45
+ </ActionCard>);
46
+ };
47
+ const styles = StyleSheet.create({
48
+ container: {
49
+ width: '90%',
50
+ },
51
+ });
52
+ export default PartnerActionCard;
53
+ //# sourceMappingURL=PartnerActionCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartnerActionCard.js","sourceRoot":"","sources":["../../../../src/components/molecules/PartnerActionCard/PartnerActionCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAoBxC,MAAM,iBAAiB,GAAG,CAAC,EACzB,KAAK,EACL,OAAO,EACP,SAAS,GAAG,KAAK,GACM,EAAE,EAAE;IAC3B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC;QACJ;YACE,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;YAC9B,MAAM,EACJ,CAAC,SAAS;gBACV,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;YAC/D,OAAO,EAAE,GAAG,EAAE,CACZ,eAAe,CAAC,WAAW,CACzB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAC1C;SACJ;QACD;YACE,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACjC,MAAM,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI;YACpC,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;SACxE;KACF,EACD,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAC3B,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACpB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,UAAU,CACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CACjC,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB;MAAA,CAAC,WAAW,CACV,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CACxD,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CACzB,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CACxC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CACf,SAAS,CAAC,CAAC,SAAS,CAAC,EAEzB;IAAA,EAAE,UAAU,CAAC,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,KAAK,EAAE,KAAK;KACb;CACF,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ProjectHeader: ({}: {}) => React.JSX.Element;
3
+ export default ProjectHeader;
@@ -0,0 +1,67 @@
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 { useSelector, useTranslator, useTypeHelpers, } from '@axelor/aos-mobile-core';
21
+ import { Badge, LabelText, Text, checkNullString, useThemeColor, } from '@axelor/aos-mobile-ui';
22
+ const ProjectHeader = ({}) => {
23
+ const Colors = useThemeColor();
24
+ const I18n = useTranslator();
25
+ const { getItemColorFromIndex } = useTypeHelpers();
26
+ const { base: baseConfig } = useSelector(state => state.appConfig);
27
+ const { user } = useSelector(state => state.user);
28
+ const { project, projectStatusList } = useSelector(state => state.project_project);
29
+ return (<View style={styles.container}>
30
+ <View style={styles.leftContainer}>
31
+ <Text writingType="title">{project?.name}</Text>
32
+ {baseConfig?.enableMultiCompany && user?.companySet?.length > 1 && (<LabelText iconName="building-fill" size={16} title={project?.company?.name} textStyle={styles.labelText}/>)}
33
+ <LabelText iconName="pin-angle-fill" size={16} title={project?.assignedTo?.fullName} textStyle={styles.labelText}/>
34
+ {!checkNullString(project?.parentProject?.fullName) && (<LabelText iconName="diagram-3-fill" size={16} title={project?.parentProject?.fullName} textStyle={styles.labelText}/>)}
35
+ </View>
36
+ <View style={styles.rightContainer}>
37
+ {project?.projectStatus != null && (<Badge title={project?.projectStatus?.name} color={getItemColorFromIndex(projectStatusList, project?.projectStatus)} style={styles.badge}/>)}
38
+ {project?.isBusinessProject && (<Badge title={I18n.t('Project_Business')} color={Colors.infoColor} style={styles.badge}/>)}
39
+ </View>
40
+ </View>);
41
+ };
42
+ const styles = StyleSheet.create({
43
+ container: {
44
+ marginHorizontal: 15,
45
+ marginBottom: 5,
46
+ flexDirection: 'row',
47
+ justifyContent: 'space-between',
48
+ },
49
+ leftContainer: {
50
+ flex: 1,
51
+ flexDirection: 'column',
52
+ marginBottom: 3,
53
+ },
54
+ rightContainer: {
55
+ flexDirection: 'column',
56
+ alignItems: 'flex-end',
57
+ },
58
+ labelText: {
59
+ fontSize: 16,
60
+ marginBottom: 3,
61
+ },
62
+ badge: {
63
+ marginTop: 3,
64
+ },
65
+ });
66
+ export default ProjectHeader;
67
+ //# sourceMappingURL=ProjectHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectHeader.js","sourceRoot":"","sources":["../../../../src/components/molecules/ProjectHeader/ProjectHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ProjectSiteTags: ({}: {}) => React.JSX.Element;
3
+ export default ProjectSiteTags;
@@ -0,0 +1,34 @@
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 } from 'react';
19
+ import { useSelector, useTranslator } from '@axelor/aos-mobile-core';
20
+ import { TagList } from '@axelor/aos-mobile-ui';
21
+ const ProjectSiteTags = ({}) => {
22
+ const I18n = useTranslator();
23
+ const { project } = useSelector((state) => state.project_project);
24
+ const { base: baseConfig } = useSelector(state => state.appConfig);
25
+ const siteSet = useMemo(() => {
26
+ return project.siteSet?.map(site => ({ title: site?.fullName }));
27
+ }, [project.siteSet]);
28
+ if (!baseConfig?.enableSiteManagementForProject) {
29
+ return null;
30
+ }
31
+ return <TagList title={I18n.t('Project_Sites')} tags={siteSet}/>;
32
+ };
33
+ export default ProjectSiteTags;
34
+ //# sourceMappingURL=ProjectSiteTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectSiteTags.js","sourceRoot":"","sources":["../../../../src/components/molecules/ProjectSiteTags/ProjectSiteTags.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAE9C,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE;IAC7B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,EAAC,IAAI,EAAE,UAAU,EAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtB,IAAI,CAAC,UAAU,EAAE,8BAA8B,EAAE;QAC/C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAG,CAAC;AACpE,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ declare const SectionHeader: ({ titleKey, expanded, onPress, onEdit, showEdit, }: {
3
+ titleKey: string;
4
+ expanded: boolean;
5
+ onPress: () => void;
6
+ onEdit?: () => void;
7
+ showEdit?: boolean;
8
+ }) => React.JSX.Element;
9
+ export default SectionHeader;