@paro.io/expert-shared-components 1.14.43 → 1.14.45

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 (242) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +2 -2
  3. package/lib/README.md +2 -0
  4. package/lib/components/ClientReferencesSection/DeleteButton.js +11 -11
  5. package/lib/components/ClientReferencesSection/ParoError.js +10 -10
  6. package/lib/components/ClientReferencesSection/TagsSection.js +2 -2
  7. package/lib/components/ClientReferencesSection/styles/BrandedTypography.js +2 -2
  8. package/lib/components/ClientReferencesSection/styles/Buttons.js +15 -15
  9. package/lib/components/ClientReferencesSection/styles/Name.js +5 -5
  10. package/lib/components/ClientReferencesSection/styles/NullContentConditionalColor.js +4 -4
  11. package/lib/components/ClientReferencesSection/styles/SectionBody.js +11 -11
  12. package/lib/components/ClientReferencesSection/styles/SectionTitle.js +6 -6
  13. package/lib/components/ClientReferencesSection/styles/Tags.js +2 -2
  14. package/lib/components/DiscussionThread/DiscussionThread.d.ts +25 -25
  15. package/lib/components/DiscussionThread/DiscussionThread.js +137 -137
  16. package/lib/components/DiscussionThread/chat.d.ts +22 -22
  17. package/lib/components/DiscussionThread/chat.js +106 -106
  18. package/lib/components/DiscussionThread/index.d.ts +1 -1
  19. package/lib/components/DiscussionThread/index.js +5 -5
  20. package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
  21. package/lib/components/DocumentCenter/DocumentTable.js +350 -350
  22. package/lib/components/DocumentCenter/DragDropUpload.js +4 -4
  23. package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
  24. package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
  25. package/lib/components/EarningsTracker/ActiveProjectCard.d.ts +52 -52
  26. package/lib/components/EarningsTracker/ActiveProjectCard.js +161 -161
  27. package/lib/components/EarningsTracker/CenterCardUI.d.ts +13 -13
  28. package/lib/components/EarningsTracker/CenterCardUI.js +134 -134
  29. package/lib/components/EarningsTracker/EarningsTracker.d.ts +52 -52
  30. package/lib/components/EarningsTracker/EarningsTracker.js +508 -508
  31. package/lib/components/EarningsTracker/EditDateModal.d.ts +22 -22
  32. package/lib/components/EarningsTracker/EditDateModal.js +149 -149
  33. package/lib/components/EarningsTracker/EmailModal.d.ts +14 -14
  34. package/lib/components/EarningsTracker/EmailModal.js +79 -79
  35. package/lib/components/EarningsTracker/EndProjectModal.d.ts +56 -56
  36. package/lib/components/EarningsTracker/EndProjectModal.js +221 -221
  37. package/lib/components/EarningsTracker/LeftCardUI.d.ts +18 -18
  38. package/lib/components/EarningsTracker/LeftCardUI.js +189 -189
  39. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.d.ts +52 -52
  40. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.js +358 -358
  41. package/lib/components/EarningsTracker/ProgressBar.d.ts +4 -4
  42. package/lib/components/EarningsTracker/ProgressBar.js +66 -66
  43. package/lib/components/EarningsTracker/ReviewRequestModal.d.ts +17 -17
  44. package/lib/components/EarningsTracker/ReviewRequestModal.js +135 -135
  45. package/lib/components/EarningsTracker/RightCardUI.d.ts +46 -46
  46. package/lib/components/EarningsTracker/RightCardUI.js +231 -231
  47. package/lib/components/EarningsTracker/index.d.ts +1 -1
  48. package/lib/components/EarningsTracker/index.js +5 -5
  49. package/lib/components/Escalations/CustomTag.d.ts +3 -3
  50. package/lib/components/Escalations/CustomTag.js +25 -25
  51. package/lib/components/Escalations/ViewReponseModal.d.ts +8 -8
  52. package/lib/components/Escalations/ViewReponseModal.js +27 -27
  53. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  54. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
  55. package/lib/components/Invoices/TestDecisionSection.d.ts +1 -1
  56. package/lib/components/Invoices/TestDecisionSection.js +126 -126
  57. package/lib/components/OrganizationChart/OrganizationChart.d.ts +15 -15
  58. package/lib/components/OrganizationChart/OrganizationChart.js +312 -312
  59. package/lib/components/OrganizationChart/PersonCard.js +5 -5
  60. package/lib/components/OrganizationChart/utils.js +79 -79
  61. package/lib/components/ProjectCard/ProgressBar.js +4 -4
  62. package/lib/components/ProjectCard/ReviewRequestModal.js +5 -5
  63. package/lib/components/ProjectIntelligence/MissingInformation/index.js +1 -1
  64. package/lib/components/Reviews/Pagination.js +6 -6
  65. package/lib/components/ReviewsTab/RatingHeader.js +6 -6
  66. package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
  67. package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
  68. package/lib/components/shared/Image.js +13 -13
  69. package/lib/components/shared/ProfileTextField.d.ts +18 -18
  70. package/lib/components/shared/ProfileTextField.js +16 -16
  71. package/lib/components/shared/StyledActionButtons.d.ts +7 -7
  72. package/lib/components/shared/StyledActionButtons.js +15 -15
  73. package/lib/components/shared/ToastNotification.d.ts +10 -10
  74. package/lib/components/shared/ToastNotification.js +63 -63
  75. package/lib/index.d.ts +13 -0
  76. package/lib/index.js +27 -1
  77. package/lib/package.json +68 -0
  78. package/lib/tax-axis/components/clientReport/ClientReportCover.d.ts +9 -0
  79. package/lib/tax-axis/components/clientReport/ClientReportCover.js +39 -0
  80. package/lib/tax-axis/components/clientReport/ClientReportTOC.d.ts +8 -0
  81. package/lib/tax-axis/components/clientReport/ClientReportTOC.js +24 -0
  82. package/lib/tax-axis/components/clientReport/ClientReportToolbar.d.ts +2 -0
  83. package/lib/tax-axis/components/clientReport/ClientReportToolbar.js +6 -0
  84. package/lib/tax-axis/components/clientReport/ETRChart.d.ts +10 -0
  85. package/lib/tax-axis/components/clientReport/ETRChart.js +50 -0
  86. package/lib/tax-axis/components/clientReport/ExecutiveSummary.d.ts +15 -0
  87. package/lib/tax-axis/components/clientReport/ExecutiveSummary.js +73 -0
  88. package/lib/tax-axis/components/clientReport/FootnoteBlock.d.ts +11 -0
  89. package/lib/tax-axis/components/clientReport/FootnoteBlock.js +34 -0
  90. package/lib/tax-axis/components/clientReport/ImplementationRoadmap.d.ts +26 -0
  91. package/lib/tax-axis/components/clientReport/ImplementationRoadmap.js +51 -0
  92. package/lib/tax-axis/components/clientReport/ImplementationTimelineChart.d.ts +10 -0
  93. package/lib/tax-axis/components/clientReport/ImplementationTimelineChart.js +49 -0
  94. package/lib/tax-axis/components/clientReport/Methodology.d.ts +10 -0
  95. package/lib/tax-axis/components/clientReport/Methodology.js +40 -0
  96. package/lib/tax-axis/components/clientReport/QuarterlyCashChart.d.ts +10 -0
  97. package/lib/tax-axis/components/clientReport/QuarterlyCashChart.js +56 -0
  98. package/lib/tax-axis/components/clientReport/RecommendedStrategies.d.ts +13 -0
  99. package/lib/tax-axis/components/clientReport/RecommendedStrategies.js +51 -0
  100. package/lib/tax-axis/components/clientReport/SavingsStackChart.d.ts +10 -0
  101. package/lib/tax-axis/components/clientReport/SavingsStackChart.js +66 -0
  102. package/lib/tax-axis/components/clientReport/SectionOpener.d.ts +11 -0
  103. package/lib/tax-axis/components/clientReport/SectionOpener.js +20 -0
  104. package/lib/tax-axis/components/clientReport/Sidebar.d.ts +8 -0
  105. package/lib/tax-axis/components/clientReport/Sidebar.js +37 -0
  106. package/lib/tax-axis/components/clientReport/StrategyCard.d.ts +16 -0
  107. package/lib/tax-axis/components/clientReport/StrategyCard.js +63 -0
  108. package/lib/tax-axis/components/clientReport/TaxAxisClientReport.d.ts +9 -0
  109. package/lib/tax-axis/components/clientReport/TaxAxisClientReport.js +125 -0
  110. package/lib/tax-axis/components/clientReport/applyFootnotes.d.ts +12 -0
  111. package/lib/tax-axis/components/clientReport/applyFootnotes.js +43 -0
  112. package/lib/tax-axis/components/clientReport/palette.d.ts +28 -0
  113. package/lib/tax-axis/components/clientReport/palette.js +34 -0
  114. package/lib/tax-axis/components/dashboard/ConfidenceArc.d.ts +7 -0
  115. package/lib/tax-axis/components/dashboard/ConfidenceArc.js +20 -0
  116. package/lib/tax-axis/components/dashboard/DashboardActions.d.ts +13 -0
  117. package/lib/tax-axis/components/dashboard/DashboardActions.js +96 -0
  118. package/lib/tax-axis/components/dashboard/DashboardSummary.d.ts +11 -0
  119. package/lib/tax-axis/components/dashboard/DashboardSummary.js +98 -0
  120. package/lib/tax-axis/components/dashboard/DashboardTopBar.d.ts +10 -0
  121. package/lib/tax-axis/components/dashboard/DashboardTopBar.js +48 -0
  122. package/lib/tax-axis/components/dashboard/StrategyDetailPanel.d.ts +10 -0
  123. package/lib/tax-axis/components/dashboard/StrategyDetailPanel.js +139 -0
  124. package/lib/tax-axis/components/dashboard/StrategyTile.d.ts +10 -0
  125. package/lib/tax-axis/components/dashboard/StrategyTile.js +82 -0
  126. package/lib/tax-axis/components/dashboard/TaxAxisDashboard.d.ts +12 -0
  127. package/lib/tax-axis/components/dashboard/TaxAxisDashboard.js +284 -0
  128. package/lib/tax-axis/components/dashboard/useCountUp.d.ts +1 -0
  129. package/lib/tax-axis/components/dashboard/useCountUp.js +25 -0
  130. package/lib/tax-axis/components/documents/DocumentCard.d.ts +18 -0
  131. package/lib/tax-axis/components/documents/DocumentCard.js +61 -0
  132. package/lib/tax-axis/components/documents/DocumentTier.d.ts +21 -0
  133. package/lib/tax-axis/components/documents/DocumentTier.js +23 -0
  134. package/lib/tax-axis/components/documents/TaxAxisDocuments.d.ts +8 -0
  135. package/lib/tax-axis/components/documents/TaxAxisDocuments.js +157 -0
  136. package/lib/tax-axis/components/extractionReview/DocumentCard.d.ts +17 -0
  137. package/lib/tax-axis/components/extractionReview/DocumentCard.js +105 -0
  138. package/lib/tax-axis/components/extractionReview/FieldRow.d.ts +17 -0
  139. package/lib/tax-axis/components/extractionReview/FieldRow.js +137 -0
  140. package/lib/tax-axis/components/extractionReview/PurposeBlock.d.ts +7 -0
  141. package/lib/tax-axis/components/extractionReview/PurposeBlock.js +18 -0
  142. package/lib/tax-axis/components/extractionReview/RerunFooter.d.ts +8 -0
  143. package/lib/tax-axis/components/extractionReview/RerunFooter.js +60 -0
  144. package/lib/tax-axis/components/extractionReview/TaxAxisExtractionReview.d.ts +11 -0
  145. package/lib/tax-axis/components/extractionReview/TaxAxisExtractionReview.js +186 -0
  146. package/lib/tax-axis/components/intake/ClientParametersSection.d.ts +7 -0
  147. package/lib/tax-axis/components/intake/ClientParametersSection.js +146 -0
  148. package/lib/tax-axis/components/intake/CpaIntakeQuestionsSection.d.ts +7 -0
  149. package/lib/tax-axis/components/intake/CpaIntakeQuestionsSection.js +93 -0
  150. package/lib/tax-axis/components/intake/IntakeCtaCards.d.ts +9 -0
  151. package/lib/tax-axis/components/intake/IntakeCtaCards.js +30 -0
  152. package/lib/tax-axis/components/intake/RefineAnalysisSection.d.ts +7 -0
  153. package/lib/tax-axis/components/intake/RefineAnalysisSection.js +151 -0
  154. package/lib/tax-axis/components/intake/StateMultiSelect.d.ts +7 -0
  155. package/lib/tax-axis/components/intake/StateMultiSelect.js +90 -0
  156. package/lib/tax-axis/components/intake/StrategyRadar.d.ts +7 -0
  157. package/lib/tax-axis/components/intake/StrategyRadar.js +240 -0
  158. package/lib/tax-axis/components/intake/TaxAxisIntake.d.ts +8 -0
  159. package/lib/tax-axis/components/intake/TaxAxisIntake.js +38 -0
  160. package/lib/tax-axis/components/intake/intakeSchema.d.ts +97 -0
  161. package/lib/tax-axis/components/intake/intakeSchema.js +91 -0
  162. package/lib/tax-axis/components/preparerWorkpaper/CalculationTraceAccordion.d.ts +9 -0
  163. package/lib/tax-axis/components/preparerWorkpaper/CalculationTraceAccordion.js +19 -0
  164. package/lib/tax-axis/components/preparerWorkpaper/EngagementHeader.d.ts +9 -0
  165. package/lib/tax-axis/components/preparerWorkpaper/EngagementHeader.js +43 -0
  166. package/lib/tax-axis/components/preparerWorkpaper/Position6694Accordion.d.ts +9 -0
  167. package/lib/tax-axis/components/preparerWorkpaper/Position6694Accordion.js +25 -0
  168. package/lib/tax-axis/components/preparerWorkpaper/PriorityGroup.d.ts +14 -0
  169. package/lib/tax-axis/components/preparerWorkpaper/PriorityGroup.js +20 -0
  170. package/lib/tax-axis/components/preparerWorkpaper/Section6694Summary.d.ts +9 -0
  171. package/lib/tax-axis/components/preparerWorkpaper/Section6694Summary.js +36 -0
  172. package/lib/tax-axis/components/preparerWorkpaper/SourceDocumentsAccordion.d.ts +9 -0
  173. package/lib/tax-axis/components/preparerWorkpaper/SourceDocumentsAccordion.js +20 -0
  174. package/lib/tax-axis/components/preparerWorkpaper/StrategyWorkpaperCard.d.ts +14 -0
  175. package/lib/tax-axis/components/preparerWorkpaper/StrategyWorkpaperCard.js +53 -0
  176. package/lib/tax-axis/components/preparerWorkpaper/TaxAxisPreparerWorkpaper.d.ts +9 -0
  177. package/lib/tax-axis/components/preparerWorkpaper/TaxAxisPreparerWorkpaper.js +175 -0
  178. package/lib/tax-axis/components/presentationMode/TaxAxisPresentationMode.d.ts +7 -0
  179. package/lib/tax-axis/components/presentationMode/TaxAxisPresentationMode.js +245 -0
  180. package/lib/tax-axis/components/processing/ProcessingStages.d.ts +7 -0
  181. package/lib/tax-axis/components/processing/ProcessingStages.js +17 -0
  182. package/lib/tax-axis/components/processing/TaxAxisProcessing.d.ts +7 -0
  183. package/lib/tax-axis/components/processing/TaxAxisProcessing.js +105 -0
  184. package/lib/tax-axis/components/prospectReport/ProspectCover.d.ts +10 -0
  185. package/lib/tax-axis/components/prospectReport/ProspectCover.js +47 -0
  186. package/lib/tax-axis/components/prospectReport/ProspectDocuments.d.ts +9 -0
  187. package/lib/tax-axis/components/prospectReport/ProspectDocuments.js +31 -0
  188. package/lib/tax-axis/components/prospectReport/ProspectNextSteps.d.ts +13 -0
  189. package/lib/tax-axis/components/prospectReport/ProspectNextSteps.js +37 -0
  190. package/lib/tax-axis/components/prospectReport/ProspectPrintView.d.ts +26 -0
  191. package/lib/tax-axis/components/prospectReport/ProspectPrintView.js +183 -0
  192. package/lib/tax-axis/components/prospectReport/ProspectStrategyCard.d.ts +10 -0
  193. package/lib/tax-axis/components/prospectReport/ProspectStrategyCard.js +52 -0
  194. package/lib/tax-axis/components/prospectReport/SampleAnalysisPreview.d.ts +7 -0
  195. package/lib/tax-axis/components/prospectReport/SampleAnalysisPreview.js +120 -0
  196. package/lib/tax-axis/components/prospectReport/TaxAxisProspectReport.d.ts +9 -0
  197. package/lib/tax-axis/components/prospectReport/TaxAxisProspectReport.js +173 -0
  198. package/lib/tax-axis/components/prospectReport/TaxPositionGap.d.ts +15 -0
  199. package/lib/tax-axis/components/prospectReport/TaxPositionGap.js +45 -0
  200. package/lib/tax-axis/components/prospectReport/theme.d.ts +26 -0
  201. package/lib/tax-axis/components/prospectReport/theme.js +33 -0
  202. package/lib/tax-axis/components/shared/ReportToolbar.d.ts +12 -0
  203. package/lib/tax-axis/components/shared/ReportToolbar.js +81 -0
  204. package/lib/tax-axis/components/shared/SectionHeader.d.ts +8 -0
  205. package/lib/tax-axis/components/shared/SectionHeader.js +15 -0
  206. package/lib/tax-axis/components/shared/TaxAxisBadge.d.ts +12 -0
  207. package/lib/tax-axis/components/shared/TaxAxisBadge.js +34 -0
  208. package/lib/tax-axis/components/shared/TaxAxisButton.d.ts +12 -0
  209. package/lib/tax-axis/components/shared/TaxAxisButton.js +17 -0
  210. package/lib/tax-axis/components/shared/TaxAxisCard.d.ts +9 -0
  211. package/lib/tax-axis/components/shared/TaxAxisCard.js +13 -0
  212. package/lib/tax-axis/index.d.ts +25 -0
  213. package/lib/tax-axis/index.js +51 -0
  214. package/lib/tax-axis/lib/compute/index.d.ts +8 -0
  215. package/lib/tax-axis/lib/compute/index.js +163 -0
  216. package/lib/tax-axis/lib/data/documents.d.ts +3 -0
  217. package/lib/tax-axis/lib/data/documents.js +33 -0
  218. package/lib/tax-axis/lib/data/extractedData.d.ts +2 -0
  219. package/lib/tax-axis/lib/data/extractedData.js +47 -0
  220. package/lib/tax-axis/lib/data/footnoteData.d.ts +2 -0
  221. package/lib/tax-axis/lib/data/footnoteData.js +48 -0
  222. package/lib/tax-axis/lib/data/index.d.ts +11 -0
  223. package/lib/tax-axis/lib/data/index.js +31 -0
  224. package/lib/tax-axis/lib/data/nextSteps.d.ts +2 -0
  225. package/lib/tax-axis/lib/data/nextSteps.js +35 -0
  226. package/lib/tax-axis/lib/data/sidebarLookup.d.ts +2 -0
  227. package/lib/tax-axis/lib/data/sidebarLookup.js +90 -0
  228. package/lib/tax-axis/lib/data/sourceDescriptions.d.ts +1 -0
  229. package/lib/tax-axis/lib/data/sourceDescriptions.js +32 -0
  230. package/lib/tax-axis/lib/data/states.d.ts +6 -0
  231. package/lib/tax-axis/lib/data/states.js +25 -0
  232. package/lib/tax-axis/lib/data/strategies.d.ts +8 -0
  233. package/lib/tax-axis/lib/data/strategies.js +166 -0
  234. package/lib/tax-axis/lib/data/strategyNarrative.d.ts +3 -0
  235. package/lib/tax-axis/lib/data/strategyNarrative.js +170 -0
  236. package/lib/tax-axis/lib/data/strategyProspect.d.ts +2 -0
  237. package/lib/tax-axis/lib/data/strategyProspect.js +66 -0
  238. package/lib/tax-axis/lib/data/workpaperInteractions.d.ts +1 -0
  239. package/lib/tax-axis/lib/data/workpaperInteractions.js +15 -0
  240. package/lib/tax-axis/lib/types/index.d.ts +183 -0
  241. package/lib/tax-axis/lib/types/index.js +7 -0
  242. package/package.json +68 -67
@@ -1,56 +1,56 @@
1
- import React from "react";
2
- interface EndProjectModalProps {
3
- project: any;
4
- freelancerId: number;
5
- expertName: string;
6
- showConfirmationModal: boolean;
7
- setShowConfirmationModal: (showConfirmationModal: boolean) => void;
8
- projectType: string;
9
- isAuthenticated: boolean;
10
- selectedTab: number;
11
- projectTagsMap: any;
12
- updateProjectStatusMutation: any;
13
- GetAllProjectIrprDetailsForFreelancerDocument: any;
14
- updateParoProjectTagsMutation: any;
15
- GetParoProjectsDocument: any;
16
- updateProjectTagReviewStatusMutation: any;
17
- updateProjectStatus: any;
18
- updateProjectTags: any;
19
- }
20
- export declare enum BillRateTypes {
21
- 'Hourly' = 1,
22
- 'Fixed' = 2
23
- }
24
- export declare enum ProjectFrequencies {
25
- 'Recurring monthly' = 1,
26
- 'Recurring quarterly' = 2,
27
- 'One Time' = 3
28
- }
29
- export declare const TASK_DESCRIPTION_VALIDATION: {
30
- MAX_LENGTH: number;
31
- MIN_LENGTH: number;
32
- LENGTH_VALIDATION_MESSAGE: string;
33
- };
34
- export declare const constants: {
35
- MINUTES_ERROR_MESSAGE: string;
36
- HOURS_ERROR_MESSAGE: string;
37
- DATE_FORMAT: string;
38
- MAX_DATE: Date;
39
- MIN_DATE: Date;
40
- DATE_VALIDATION_MESSAGE: string;
41
- TASK_DESCRIPTION_ERROR_MESSAGE: string;
42
- };
43
- type SelectDateProps = {
44
- timeLogDate: any;
45
- setTimeLogDate: (e: any) => void;
46
- isInvalid: boolean | "";
47
- setIsDateInvalid: (e: any) => void;
48
- validateDate: (e: any) => boolean;
49
- showErrorText?: boolean;
50
- disabled?: boolean;
51
- maxDate?: string;
52
- minDate?: string;
53
- };
54
- export declare const SelectDate: ({ timeLogDate, setTimeLogDate, isInvalid, setIsDateInvalid, validateDate, showErrorText, disabled, maxDate, minDate }: SelectDateProps) => React.JSX.Element;
55
- export declare const EndProjectModal: ({ project, freelancerId, expertName, showConfirmationModal, setShowConfirmationModal, projectType, isAuthenticated, selectedTab, projectTagsMap, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, }: EndProjectModalProps) => React.JSX.Element;
56
- export {};
1
+ import React from "react";
2
+ interface EndProjectModalProps {
3
+ project: any;
4
+ freelancerId: number;
5
+ expertName: string;
6
+ showConfirmationModal: boolean;
7
+ setShowConfirmationModal: (showConfirmationModal: boolean) => void;
8
+ projectType: string;
9
+ isAuthenticated: boolean;
10
+ selectedTab: number;
11
+ projectTagsMap: any;
12
+ updateProjectStatusMutation: any;
13
+ GetAllProjectIrprDetailsForFreelancerDocument: any;
14
+ updateParoProjectTagsMutation: any;
15
+ GetParoProjectsDocument: any;
16
+ updateProjectTagReviewStatusMutation: any;
17
+ updateProjectStatus: any;
18
+ updateProjectTags: any;
19
+ }
20
+ export declare enum BillRateTypes {
21
+ 'Hourly' = 1,
22
+ 'Fixed' = 2
23
+ }
24
+ export declare enum ProjectFrequencies {
25
+ 'Recurring monthly' = 1,
26
+ 'Recurring quarterly' = 2,
27
+ 'One Time' = 3
28
+ }
29
+ export declare const TASK_DESCRIPTION_VALIDATION: {
30
+ MAX_LENGTH: number;
31
+ MIN_LENGTH: number;
32
+ LENGTH_VALIDATION_MESSAGE: string;
33
+ };
34
+ export declare const constants: {
35
+ MINUTES_ERROR_MESSAGE: string;
36
+ HOURS_ERROR_MESSAGE: string;
37
+ DATE_FORMAT: string;
38
+ MAX_DATE: Date;
39
+ MIN_DATE: Date;
40
+ DATE_VALIDATION_MESSAGE: string;
41
+ TASK_DESCRIPTION_ERROR_MESSAGE: string;
42
+ };
43
+ type SelectDateProps = {
44
+ timeLogDate: any;
45
+ setTimeLogDate: (e: any) => void;
46
+ isInvalid: boolean | "";
47
+ setIsDateInvalid: (e: any) => void;
48
+ validateDate: (e: any) => boolean;
49
+ showErrorText?: boolean;
50
+ disabled?: boolean;
51
+ maxDate?: string;
52
+ minDate?: string;
53
+ };
54
+ export declare const SelectDate: ({ timeLogDate, setTimeLogDate, isInvalid, setIsDateInvalid, validateDate, showErrorText, disabled, maxDate, minDate }: SelectDateProps) => React.JSX.Element;
55
+ export declare const EndProjectModal: ({ project, freelancerId, expertName, showConfirmationModal, setShowConfirmationModal, projectType, isAuthenticated, selectedTab, projectTagsMap, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, }: EndProjectModalProps) => React.JSX.Element;
56
+ export {};
@@ -1,221 +1,221 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.EndProjectModal = exports.SelectDate = exports.constants = exports.TASK_DESCRIPTION_VALIDATION = exports.ProjectFrequencies = exports.BillRateTypes = void 0;
39
- const react_1 = __importStar(require("react"));
40
- const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
41
- const base_ui_1 = require("@paro.io/base-ui");
42
- const pickers_1 = require("@material-ui/pickers");
43
- const classnames_1 = __importDefault(require("classnames"));
44
- const dayjs_1 = __importDefault(require("@date-io/dayjs"));
45
- const core_1 = require("@material-ui/core");
46
- var BillRateTypes;
47
- (function (BillRateTypes) {
48
- BillRateTypes[BillRateTypes["Hourly"] = 1] = "Hourly";
49
- BillRateTypes[BillRateTypes["Fixed"] = 2] = "Fixed";
50
- })(BillRateTypes || (exports.BillRateTypes = BillRateTypes = {}));
51
- var ProjectFrequencies;
52
- (function (ProjectFrequencies) {
53
- ProjectFrequencies[ProjectFrequencies["Recurring monthly"] = 1] = "Recurring monthly";
54
- ProjectFrequencies[ProjectFrequencies["Recurring quarterly"] = 2] = "Recurring quarterly";
55
- ProjectFrequencies[ProjectFrequencies["One Time"] = 3] = "One Time";
56
- })(ProjectFrequencies || (exports.ProjectFrequencies = ProjectFrequencies = {}));
57
- const getMaxDateForAddTimeLog = () => {
58
- const date = new Date();
59
- date.setMonth(date.getMonth() + 1);
60
- return date;
61
- };
62
- const getMinDateForAddTimeLog = () => {
63
- const date = new Date();
64
- date.setFullYear(date.getFullYear() - 1);
65
- return date;
66
- };
67
- exports.TASK_DESCRIPTION_VALIDATION = {
68
- MAX_LENGTH: 120,
69
- MIN_LENGTH: 3,
70
- LENGTH_VALIDATION_MESSAGE: `Task Description should be greater than 3 characters.`,
71
- };
72
- exports.constants = {
73
- MINUTES_ERROR_MESSAGE: "Minutes can't be empty",
74
- HOURS_ERROR_MESSAGE: "Hours can't be empty",
75
- DATE_FORMAT: 'MM/DD/YYYY',
76
- MAX_DATE: getMaxDateForAddTimeLog(),
77
- MIN_DATE: getMinDateForAddTimeLog(),
78
- DATE_VALIDATION_MESSAGE: 'Please enter valid date',
79
- TASK_DESCRIPTION_ERROR_MESSAGE: "Task Description can't be empty",
80
- };
81
- const addHoursAndMinutes = (hours, minutes) => {
82
- const MINUTES_IN_AN_HOUR = 60;
83
- const minutesToHours = minutes / MINUTES_IN_AN_HOUR;
84
- return Number((hours + minutesToHours).toFixed(2));
85
- };
86
- const SelectDate = ({ timeLogDate, setTimeLogDate, isInvalid, setIsDateInvalid, validateDate, showErrorText = true, disabled, maxDate, minDate }) => {
87
- const theme = (0, core_1.useTheme)();
88
- const mobileScreen = (0, core_1.useMediaQuery)(theme.breakpoints.down('sm'));
89
- const handleDateChange = (date) => {
90
- const currentDate = date.$d;
91
- setTimeLogDate(currentDate);
92
- validateDate(currentDate);
93
- };
94
- const onBlur = (event) => {
95
- let currentDate = new Date(event.target.value);
96
- currentDate = currentDate.toString() !== "Invalid Date" ? currentDate : "";
97
- setTimeLogDate(currentDate);
98
- validateDate(currentDate);
99
- };
100
- const getDatePicker = (showErrorText) => {
101
- return (react_1.default.createElement(pickers_1.MuiPickersUtilsProvider, { utils: dayjs_1.default },
102
- react_1.default.createElement(pickers_1.KeyboardDatePicker, { className: (0, classnames_1.default)({
103
- "base-ui-date-picker": true,
104
- "base-ui-date-picker-error": isInvalid,
105
- }), "data-testid": "date-picker-inline", disableToolbar: true, variant: mobileScreen ? "dialog" : "inline", format: exports.constants.DATE_FORMAT, margin: "normal", placeholder: "Select Date", value: timeLogDate, onChange: () => {
106
- setIsDateInvalid("");
107
- }, onBlur: onBlur, onAccept: handleDateChange, maxDate: maxDate !== null && maxDate !== void 0 ? maxDate : exports.constants.MAX_DATE, minDate: minDate !== null && minDate !== void 0 ? minDate : exports.constants.MIN_DATE, helperText: showErrorText && isInvalid && exports.constants.DATE_VALIDATION_MESSAGE, error: isInvalid !== "" && isInvalid, style: { margin: 0 }, KeyboardButtonProps: Object.assign({ "aria-label": "change date" }, { ["data-testid"]: "timelog-datepicker" }), fullWidth: true, disabled: disabled, autoOk: true })));
108
- };
109
- return (react_1.default.createElement("div", { className: "mt-1" },
110
- react_1.default.createElement("div", { className: "block w-full sm:w-1/3" }, getDatePicker(showErrorText))));
111
- };
112
- exports.SelectDate = SelectDate;
113
- const EndProjectModal = ({ project, freelancerId, expertName, showConfirmationModal, setShowConfirmationModal, projectType, isAuthenticated, selectedTab, projectTagsMap, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, }) => {
114
- const [completeProjectLoading, setCompleteProjectLoading] = (0, react_1.useState)(false);
115
- const isTestEnv = true; //process.env.STAGE !== "prod"
116
- const handleCompleteProject = () => __awaiter(void 0, void 0, void 0, function* () {
117
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
118
- setCompleteProjectLoading(true);
119
- try {
120
- const endProjectUpdateData = {
121
- projectId: +(project === null || project === void 0 ? void 0 : project.id),
122
- input: {
123
- projectStatusId: 3,
124
- isExpertEnded: true,
125
- csmName: ((_a = project === null || project === void 0 ? void 0 : project.paroContact) === null || _a === void 0 ? void 0 : _a.firstName) + " " + ((_b = project === null || project === void 0 ? void 0 : project.paroContact) === null || _b === void 0 ? void 0 : _b.lastName),
126
- aeName: ((_c = project === null || project === void 0 ? void 0 : project.paroContact) === null || _c === void 0 ? void 0 : _c.firstName) + " " + ((_d = project === null || project === void 0 ? void 0 : project.paroContact) === null || _d === void 0 ? void 0 : _d.lastName),
127
- expertName: expertName,
128
- projectName: project === null || project === void 0 ? void 0 : project.name,
129
- clientName: (_e = project === null || project === void 0 ? void 0 : project.client) === null || _e === void 0 ? void 0 : _e.name,
130
- projectType: projectType,
131
- csmEmail: isTestEnv ? "admin@paro.io" : project === null || project === void 0 ? void 0 : project.csmEmail,
132
- aeEmail: isTestEnv ? "admin@paro.io" : (_f = project === null || project === void 0 ? void 0 : project.paroContact) === null || _f === void 0 ? void 0 : _f.email,
133
- startDate: project === null || project === void 0 ? void 0 : project.startDate,
134
- endDate: project === null || project === void 0 ? void 0 : project.endDate,
135
- projectFrequency: ProjectFrequencies[(_g = project === null || project === void 0 ? void 0 : project.projectScope) === null || _g === void 0 ? void 0 : _g.projectFrequencyId],
136
- billType: BillRateTypes[(_h = project === null || project === void 0 ? void 0 : project.projectScope) === null || _h === void 0 ? void 0 : _h.freelanceRateTypeId],
137
- freelancerId: freelancerId,
138
- },
139
- };
140
- let softwareTags = [], skillTags = [];
141
- if (projectTagsMap[project === null || project === void 0 ? void 0 : project.id]) {
142
- softwareTags = ((_j = project === null || project === void 0 ? void 0 : project.tags) === null || _j === void 0 ? void 0 : _j.reduce((acc, tag) => (tag === null || tag === void 0 ? void 0 : tag.field) === 'softwares' ? [...acc, tag.value] : acc, [])) || [];
143
- skillTags = ((_k = project === null || project === void 0 ? void 0 : project.tags) === null || _k === void 0 ? void 0 : _k.reduce((acc, tag) => (tag === null || tag === void 0 ? void 0 : tag.field) === 'skills' ? [...acc, tag.value] : acc, [])) || [];
144
- }
145
- if (isAuthenticated) {
146
- yield updateProjectStatusMutation({
147
- variables: endProjectUpdateData,
148
- refetchQueries: [
149
- { query: GetAllProjectIrprDetailsForFreelancerDocument, variables: { freelancerId, projectType: 3, activeTabId: selectedTab } }
150
- ]
151
- });
152
- if (projectTagsMap[project === null || project === void 0 ? void 0 : project.id]) {
153
- yield updateParoProjectTagsMutation({
154
- variables: {
155
- projectId: project === null || project === void 0 ? void 0 : project.id,
156
- input: [
157
- ...softwareTags,
158
- ...skillTags,
159
- ],
160
- merge: true,
161
- freelancerId
162
- },
163
- refetchQueries: [{
164
- query: GetParoProjectsDocument,
165
- variables: {
166
- legacyFreelancerId: freelancerId
167
- }
168
- }]
169
- });
170
- yield updateProjectTagReviewStatusMutation({
171
- variables: {
172
- projectId: project === null || project === void 0 ? void 0 : project.id,
173
- input: {
174
- tagReviewStatus: 2
175
- }
176
- }
177
- });
178
- }
179
- }
180
- else {
181
- yield updateProjectStatus(endProjectUpdateData);
182
- if (projectTagsMap[project === null || project === void 0 ? void 0 : project.id]) {
183
- const updateProjectTagsData = {
184
- projectId: project === null || project === void 0 ? void 0 : project.id,
185
- softwareTags,
186
- skillTags,
187
- merge: true,
188
- tagReviewStatus: 2,
189
- freelancerId
190
- };
191
- yield updateProjectTags(updateProjectTagsData);
192
- }
193
- }
194
- (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "success", icon: "success", label: `Succesfully Ended Project` }), {
195
- position: 'bottom-right',
196
- style: { borderRadius: '8px' },
197
- });
198
- }
199
- catch (error) {
200
- console.log("error ending project", error);
201
- (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "danger", icon: "danger", label: `Failed to End Project` }), {
202
- position: 'bottom-right',
203
- style: { borderRadius: '8px' },
204
- });
205
- }
206
- finally {
207
- setCompleteProjectLoading(false);
208
- setShowConfirmationModal(false);
209
- }
210
- });
211
- return (react_1.default.createElement(react_1.default.Fragment, null,
212
- react_1.default.createElement(base_ui_1.Modal, { open: showConfirmationModal, onClose: () => setShowConfirmationModal(false), className: "z-[100]", size: "sm" },
213
- react_1.default.createElement("div", { className: "flex flex-col items-center" },
214
- react_1.default.createElement("h1", { className: "font-bold text-xl mb-6" }, "Are you sure ?"),
215
- react_1.default.createElement("p", { className: "text-md mb-6 font-medium w-3/4" }, "When you end a project, you will no longer be able to bill additional hours and it will be removed from your active projects list."),
216
- react_1.default.createElement("p", { className: "text-md mb-10 font-medium w-3/4" }, "By ending this project any other pending change request will be removed from the platform."),
217
- react_1.default.createElement("div", { className: "flex flex-row gap-x-2" },
218
- react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => setShowConfirmationModal(false), label: "CANCEL", className: "mt-4" }),
219
- react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => { handleCompleteProject(); }, label: "END PROJECT", className: "mt-4", color: "primary", isLoading: completeProjectLoading }))))));
220
- };
221
- exports.EndProjectModal = EndProjectModal;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.EndProjectModal = exports.SelectDate = exports.constants = exports.TASK_DESCRIPTION_VALIDATION = exports.ProjectFrequencies = exports.BillRateTypes = void 0;
39
+ const react_1 = __importStar(require("react"));
40
+ const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
41
+ const base_ui_1 = require("@paro.io/base-ui");
42
+ const pickers_1 = require("@material-ui/pickers");
43
+ const classnames_1 = __importDefault(require("classnames"));
44
+ const dayjs_1 = __importDefault(require("@date-io/dayjs"));
45
+ const core_1 = require("@material-ui/core");
46
+ var BillRateTypes;
47
+ (function (BillRateTypes) {
48
+ BillRateTypes[BillRateTypes["Hourly"] = 1] = "Hourly";
49
+ BillRateTypes[BillRateTypes["Fixed"] = 2] = "Fixed";
50
+ })(BillRateTypes || (exports.BillRateTypes = BillRateTypes = {}));
51
+ var ProjectFrequencies;
52
+ (function (ProjectFrequencies) {
53
+ ProjectFrequencies[ProjectFrequencies["Recurring monthly"] = 1] = "Recurring monthly";
54
+ ProjectFrequencies[ProjectFrequencies["Recurring quarterly"] = 2] = "Recurring quarterly";
55
+ ProjectFrequencies[ProjectFrequencies["One Time"] = 3] = "One Time";
56
+ })(ProjectFrequencies || (exports.ProjectFrequencies = ProjectFrequencies = {}));
57
+ const getMaxDateForAddTimeLog = () => {
58
+ const date = new Date();
59
+ date.setMonth(date.getMonth() + 1);
60
+ return date;
61
+ };
62
+ const getMinDateForAddTimeLog = () => {
63
+ const date = new Date();
64
+ date.setFullYear(date.getFullYear() - 1);
65
+ return date;
66
+ };
67
+ exports.TASK_DESCRIPTION_VALIDATION = {
68
+ MAX_LENGTH: 120,
69
+ MIN_LENGTH: 3,
70
+ LENGTH_VALIDATION_MESSAGE: `Task Description should be greater than 3 characters.`,
71
+ };
72
+ exports.constants = {
73
+ MINUTES_ERROR_MESSAGE: "Minutes can't be empty",
74
+ HOURS_ERROR_MESSAGE: "Hours can't be empty",
75
+ DATE_FORMAT: 'MM/DD/YYYY',
76
+ MAX_DATE: getMaxDateForAddTimeLog(),
77
+ MIN_DATE: getMinDateForAddTimeLog(),
78
+ DATE_VALIDATION_MESSAGE: 'Please enter valid date',
79
+ TASK_DESCRIPTION_ERROR_MESSAGE: "Task Description can't be empty",
80
+ };
81
+ const addHoursAndMinutes = (hours, minutes) => {
82
+ const MINUTES_IN_AN_HOUR = 60;
83
+ const minutesToHours = minutes / MINUTES_IN_AN_HOUR;
84
+ return Number((hours + minutesToHours).toFixed(2));
85
+ };
86
+ const SelectDate = ({ timeLogDate, setTimeLogDate, isInvalid, setIsDateInvalid, validateDate, showErrorText = true, disabled, maxDate, minDate }) => {
87
+ const theme = (0, core_1.useTheme)();
88
+ const mobileScreen = (0, core_1.useMediaQuery)(theme.breakpoints.down('sm'));
89
+ const handleDateChange = (date) => {
90
+ const currentDate = date.$d;
91
+ setTimeLogDate(currentDate);
92
+ validateDate(currentDate);
93
+ };
94
+ const onBlur = (event) => {
95
+ let currentDate = new Date(event.target.value);
96
+ currentDate = currentDate.toString() !== "Invalid Date" ? currentDate : "";
97
+ setTimeLogDate(currentDate);
98
+ validateDate(currentDate);
99
+ };
100
+ const getDatePicker = (showErrorText) => {
101
+ return (react_1.default.createElement(pickers_1.MuiPickersUtilsProvider, { utils: dayjs_1.default },
102
+ react_1.default.createElement(pickers_1.KeyboardDatePicker, { className: (0, classnames_1.default)({
103
+ "base-ui-date-picker": true,
104
+ "base-ui-date-picker-error": isInvalid,
105
+ }), "data-testid": "date-picker-inline", disableToolbar: true, variant: mobileScreen ? "dialog" : "inline", format: exports.constants.DATE_FORMAT, margin: "normal", placeholder: "Select Date", value: timeLogDate, onChange: () => {
106
+ setIsDateInvalid("");
107
+ }, onBlur: onBlur, onAccept: handleDateChange, maxDate: maxDate !== null && maxDate !== void 0 ? maxDate : exports.constants.MAX_DATE, minDate: minDate !== null && minDate !== void 0 ? minDate : exports.constants.MIN_DATE, helperText: showErrorText && isInvalid && exports.constants.DATE_VALIDATION_MESSAGE, error: isInvalid !== "" && isInvalid, style: { margin: 0 }, KeyboardButtonProps: Object.assign({ "aria-label": "change date" }, { ["data-testid"]: "timelog-datepicker" }), fullWidth: true, disabled: disabled, autoOk: true })));
108
+ };
109
+ return (react_1.default.createElement("div", { className: "mt-1" },
110
+ react_1.default.createElement("div", { className: "block w-full sm:w-1/3" }, getDatePicker(showErrorText))));
111
+ };
112
+ exports.SelectDate = SelectDate;
113
+ const EndProjectModal = ({ project, freelancerId, expertName, showConfirmationModal, setShowConfirmationModal, projectType, isAuthenticated, selectedTab, projectTagsMap, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, }) => {
114
+ const [completeProjectLoading, setCompleteProjectLoading] = (0, react_1.useState)(false);
115
+ const isTestEnv = true; //process.env.STAGE !== "prod"
116
+ const handleCompleteProject = () => __awaiter(void 0, void 0, void 0, function* () {
117
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
118
+ setCompleteProjectLoading(true);
119
+ try {
120
+ const endProjectUpdateData = {
121
+ projectId: +(project === null || project === void 0 ? void 0 : project.id),
122
+ input: {
123
+ projectStatusId: 3,
124
+ isExpertEnded: true,
125
+ csmName: ((_a = project === null || project === void 0 ? void 0 : project.paroContact) === null || _a === void 0 ? void 0 : _a.firstName) + " " + ((_b = project === null || project === void 0 ? void 0 : project.paroContact) === null || _b === void 0 ? void 0 : _b.lastName),
126
+ aeName: ((_c = project === null || project === void 0 ? void 0 : project.paroContact) === null || _c === void 0 ? void 0 : _c.firstName) + " " + ((_d = project === null || project === void 0 ? void 0 : project.paroContact) === null || _d === void 0 ? void 0 : _d.lastName),
127
+ expertName: expertName,
128
+ projectName: project === null || project === void 0 ? void 0 : project.name,
129
+ clientName: (_e = project === null || project === void 0 ? void 0 : project.client) === null || _e === void 0 ? void 0 : _e.name,
130
+ projectType: projectType,
131
+ csmEmail: isTestEnv ? "admin@paro.io" : project === null || project === void 0 ? void 0 : project.csmEmail,
132
+ aeEmail: isTestEnv ? "admin@paro.io" : (_f = project === null || project === void 0 ? void 0 : project.paroContact) === null || _f === void 0 ? void 0 : _f.email,
133
+ startDate: project === null || project === void 0 ? void 0 : project.startDate,
134
+ endDate: project === null || project === void 0 ? void 0 : project.endDate,
135
+ projectFrequency: ProjectFrequencies[(_g = project === null || project === void 0 ? void 0 : project.projectScope) === null || _g === void 0 ? void 0 : _g.projectFrequencyId],
136
+ billType: BillRateTypes[(_h = project === null || project === void 0 ? void 0 : project.projectScope) === null || _h === void 0 ? void 0 : _h.freelanceRateTypeId],
137
+ freelancerId: freelancerId,
138
+ },
139
+ };
140
+ let softwareTags = [], skillTags = [];
141
+ if (projectTagsMap[project === null || project === void 0 ? void 0 : project.id]) {
142
+ softwareTags = ((_j = project === null || project === void 0 ? void 0 : project.tags) === null || _j === void 0 ? void 0 : _j.reduce((acc, tag) => (tag === null || tag === void 0 ? void 0 : tag.field) === 'softwares' ? [...acc, tag.value] : acc, [])) || [];
143
+ skillTags = ((_k = project === null || project === void 0 ? void 0 : project.tags) === null || _k === void 0 ? void 0 : _k.reduce((acc, tag) => (tag === null || tag === void 0 ? void 0 : tag.field) === 'skills' ? [...acc, tag.value] : acc, [])) || [];
144
+ }
145
+ if (isAuthenticated) {
146
+ yield updateProjectStatusMutation({
147
+ variables: endProjectUpdateData,
148
+ refetchQueries: [
149
+ { query: GetAllProjectIrprDetailsForFreelancerDocument, variables: { freelancerId, projectType: 3, activeTabId: selectedTab } }
150
+ ]
151
+ });
152
+ if (projectTagsMap[project === null || project === void 0 ? void 0 : project.id]) {
153
+ yield updateParoProjectTagsMutation({
154
+ variables: {
155
+ projectId: project === null || project === void 0 ? void 0 : project.id,
156
+ input: [
157
+ ...softwareTags,
158
+ ...skillTags,
159
+ ],
160
+ merge: true,
161
+ freelancerId
162
+ },
163
+ refetchQueries: [{
164
+ query: GetParoProjectsDocument,
165
+ variables: {
166
+ legacyFreelancerId: freelancerId
167
+ }
168
+ }]
169
+ });
170
+ yield updateProjectTagReviewStatusMutation({
171
+ variables: {
172
+ projectId: project === null || project === void 0 ? void 0 : project.id,
173
+ input: {
174
+ tagReviewStatus: 2
175
+ }
176
+ }
177
+ });
178
+ }
179
+ }
180
+ else {
181
+ yield updateProjectStatus(endProjectUpdateData);
182
+ if (projectTagsMap[project === null || project === void 0 ? void 0 : project.id]) {
183
+ const updateProjectTagsData = {
184
+ projectId: project === null || project === void 0 ? void 0 : project.id,
185
+ softwareTags,
186
+ skillTags,
187
+ merge: true,
188
+ tagReviewStatus: 2,
189
+ freelancerId
190
+ };
191
+ yield updateProjectTags(updateProjectTagsData);
192
+ }
193
+ }
194
+ (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "success", icon: "success", label: `Succesfully Ended Project` }), {
195
+ position: 'bottom-right',
196
+ style: { borderRadius: '8px' },
197
+ });
198
+ }
199
+ catch (error) {
200
+ console.log("error ending project", error);
201
+ (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "danger", icon: "danger", label: `Failed to End Project` }), {
202
+ position: 'bottom-right',
203
+ style: { borderRadius: '8px' },
204
+ });
205
+ }
206
+ finally {
207
+ setCompleteProjectLoading(false);
208
+ setShowConfirmationModal(false);
209
+ }
210
+ });
211
+ return (react_1.default.createElement(react_1.default.Fragment, null,
212
+ react_1.default.createElement(base_ui_1.Modal, { open: showConfirmationModal, onClose: () => setShowConfirmationModal(false), className: "z-[100]", size: "sm" },
213
+ react_1.default.createElement("div", { className: "flex flex-col items-center" },
214
+ react_1.default.createElement("h1", { className: "font-bold text-xl mb-6" }, "Are you sure ?"),
215
+ react_1.default.createElement("p", { className: "text-md mb-6 font-medium w-3/4" }, "When you end a project, you will no longer be able to bill additional hours and it will be removed from your active projects list."),
216
+ react_1.default.createElement("p", { className: "text-md mb-10 font-medium w-3/4" }, "By ending this project any other pending change request will be removed from the platform."),
217
+ react_1.default.createElement("div", { className: "flex flex-row gap-x-2" },
218
+ react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => setShowConfirmationModal(false), label: "CANCEL", className: "mt-4" }),
219
+ react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => { handleCompleteProject(); }, label: "END PROJECT", className: "mt-4", color: "primary", isLoading: completeProjectLoading }))))));
220
+ };
221
+ exports.EndProjectModal = EndProjectModal;
@@ -1,18 +1,18 @@
1
- import React from 'react';
2
- interface LeftCardUIProps {
3
- projectData: any;
4
- projectRateType: string;
5
- projectFrequencyType: string;
6
- project: any;
7
- isAuthenticated: boolean;
8
- activeProject: any;
9
- adhocProject: any;
10
- freelancerId: number;
11
- selectedTab: number;
12
- updateProjectTaskMutation: any;
13
- GetAllProjectIrprDetailsForFreelancerDocument: any;
14
- updateProjectTask: any;
15
- clientPortal: boolean;
16
- }
17
- export declare const LeftCardUI: ({ projectData, projectRateType, projectFrequencyType, project, isAuthenticated, activeProject, adhocProject, freelancerId, selectedTab, updateProjectTaskMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateProjectTask, clientPortal, }: LeftCardUIProps) => React.JSX.Element;
18
- export {};
1
+ import React from 'react';
2
+ interface LeftCardUIProps {
3
+ projectData: any;
4
+ projectRateType: string;
5
+ projectFrequencyType: string;
6
+ project: any;
7
+ isAuthenticated: boolean;
8
+ activeProject: any;
9
+ adhocProject: any;
10
+ freelancerId: number;
11
+ selectedTab: number;
12
+ updateProjectTaskMutation: any;
13
+ GetAllProjectIrprDetailsForFreelancerDocument: any;
14
+ updateProjectTask: any;
15
+ clientPortal: boolean;
16
+ }
17
+ export declare const LeftCardUI: ({ projectData, projectRateType, projectFrequencyType, project, isAuthenticated, activeProject, adhocProject, freelancerId, selectedTab, updateProjectTaskMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateProjectTask, clientPortal, }: LeftCardUIProps) => React.JSX.Element;
18
+ export {};