@paro.io/expert-shared-components 1.9.6 → 1.9.8

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 (86) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +2 -2
  3. package/lib/components/ClientReferencesSection/DeleteButton.js +11 -11
  4. package/lib/components/ClientReferencesSection/ParoError.js +10 -10
  5. package/lib/components/ClientReferencesSection/TagsSection.js +2 -2
  6. package/lib/components/ClientReferencesSection/styles/BrandedTypography.js +2 -2
  7. package/lib/components/ClientReferencesSection/styles/Buttons.js +15 -15
  8. package/lib/components/ClientReferencesSection/styles/Name.js +5 -5
  9. package/lib/components/ClientReferencesSection/styles/NullContentConditionalColor.js +4 -4
  10. package/lib/components/ClientReferencesSection/styles/SectionBody.js +11 -11
  11. package/lib/components/ClientReferencesSection/styles/SectionTitle.js +6 -6
  12. package/lib/components/ClientReferencesSection/styles/Tags.js +2 -2
  13. package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
  14. package/lib/components/DocumentCenter/DocumentTable.js +350 -350
  15. package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
  16. package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
  17. package/lib/components/EarningsTracker/ActiveProjectCard.d.ts +52 -0
  18. package/lib/components/EarningsTracker/ActiveProjectCard.js +161 -0
  19. package/lib/components/EarningsTracker/CenterCardUI.d.ts +13 -0
  20. package/lib/components/EarningsTracker/CenterCardUI.js +134 -0
  21. package/lib/components/EarningsTracker/EarningsTracker.d.ts +52 -0
  22. package/lib/components/EarningsTracker/EarningsTracker.js +508 -0
  23. package/lib/components/EarningsTracker/EditDateModal.d.ts +22 -0
  24. package/lib/components/EarningsTracker/EditDateModal.js +149 -0
  25. package/lib/components/EarningsTracker/EmailModal.d.ts +14 -0
  26. package/lib/components/EarningsTracker/EmailModal.js +79 -0
  27. package/lib/components/EarningsTracker/EndProjectModal.d.ts +56 -0
  28. package/lib/components/EarningsTracker/EndProjectModal.js +221 -0
  29. package/lib/components/EarningsTracker/LeftCardUI.d.ts +18 -0
  30. package/lib/components/EarningsTracker/LeftCardUI.js +189 -0
  31. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.d.ts +52 -0
  32. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.js +358 -0
  33. package/lib/components/EarningsTracker/ProgressBar.d.ts +4 -0
  34. package/lib/components/EarningsTracker/ProgressBar.js +66 -0
  35. package/lib/components/EarningsTracker/ReviewRequestModal.d.ts +17 -0
  36. package/lib/components/EarningsTracker/ReviewRequestModal.js +135 -0
  37. package/lib/components/EarningsTracker/RightCardUI.d.ts +46 -0
  38. package/lib/components/EarningsTracker/RightCardUI.js +231 -0
  39. package/lib/components/EarningsTracker/index.d.ts +1 -0
  40. package/lib/components/EarningsTracker/index.js +5 -0
  41. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  42. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -16
  43. package/lib/components/OrganizationChart/OrganizationChart.d.ts +15 -15
  44. package/lib/components/OrganizationChart/OrganizationChart.js +312 -312
  45. package/lib/components/OrganizationChart/PersonCard.js +5 -5
  46. package/lib/components/OrganizationChart/utils.js +79 -79
  47. package/lib/components/ProjectCard/ActiveProjectCard.d.ts +58 -0
  48. package/lib/components/ProjectCard/ActiveProjectCard.js +162 -0
  49. package/lib/components/ProjectCard/CenterCardUI.d.ts +13 -0
  50. package/lib/components/ProjectCard/CenterCardUI.js +133 -0
  51. package/lib/components/ProjectCard/EditDateModal.d.ts +22 -0
  52. package/lib/components/ProjectCard/EditDateModal.js +149 -0
  53. package/lib/components/ProjectCard/EmailModal.d.ts +14 -0
  54. package/lib/components/ProjectCard/EmailModal.js +79 -0
  55. package/lib/components/ProjectCard/EndProjectModal.d.ts +56 -0
  56. package/lib/components/ProjectCard/EndProjectModal.js +221 -0
  57. package/lib/components/ProjectCard/LeftCardUI.d.ts +18 -0
  58. package/lib/components/ProjectCard/LeftCardUI.js +177 -0
  59. package/lib/components/ProjectCard/LogTimeModalAuthenticated.d.ts +52 -0
  60. package/lib/components/ProjectCard/LogTimeModalAuthenticated.js +357 -0
  61. package/lib/components/ProjectCard/ProgressBar.d.ts +4 -0
  62. package/lib/components/ProjectCard/ProgressBar.js +66 -0
  63. package/lib/components/ProjectCard/ReviewRequestModal.d.ts +17 -0
  64. package/lib/components/ProjectCard/ReviewRequestModal.js +135 -0
  65. package/lib/components/ProjectCard/RightCardUI.d.ts +50 -0
  66. package/lib/components/ProjectCard/RightCardUI.js +239 -0
  67. package/lib/components/ProjectCard/index.d.ts +1 -0
  68. package/lib/components/ProjectCard/index.js +5 -0
  69. package/lib/components/Reviews/Pagination.js +6 -6
  70. package/lib/components/ReviewsTab/RatingHeader.js +6 -6
  71. package/lib/components/ReviewsTab/ReviewModal.js +1 -1
  72. package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
  73. package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
  74. package/lib/components/ServiceLinesTemplate/index.js +3 -3
  75. package/lib/components/shared/Error.d.ts +5 -5
  76. package/lib/components/shared/Error.js +8 -32
  77. package/lib/components/shared/Image.js +13 -13
  78. package/lib/components/shared/ProfileTextField.d.ts +18 -18
  79. package/lib/components/shared/ProfileTextField.js +16 -16
  80. package/lib/components/shared/StyledActionButtons.d.ts +7 -7
  81. package/lib/components/shared/StyledActionButtons.js +15 -15
  82. package/lib/components/shared/ToastNotification.d.ts +10 -10
  83. package/lib/components/shared/ToastNotification.js +63 -63
  84. package/lib/index.d.ts +1 -0
  85. package/lib/index.js +3 -1
  86. package/package.json +61 -59
@@ -7,11 +7,11 @@ const react_1 = __importDefault(require("react"));
7
7
  const PersonCard = ({ name, position, experience, location, initial, noOfchildren, }) => (react_1.default.createElement("div", { className: "relative group" },
8
8
  react_1.default.createElement("div", { className: "flex flex-col items-center" },
9
9
  react_1.default.createElement("div", { className: "flex flex-col items-center mb-2" },
10
- react_1.default.createElement("div", { className: `
11
- -mb-4 z-10 w-12 h-12 rounded-full bg-[#434889] flex items-center justify-center
12
- text-white font-semibold text-lg
13
- transition-all duration-200 hover:bg-[#102377]
14
- ${noOfchildren > 0 ? 'hover:shadow-lg' : ''}
10
+ react_1.default.createElement("div", { className: `
11
+ -mb-4 z-10 w-12 h-12 rounded-full bg-[#434889] flex items-center justify-center
12
+ text-white font-semibold text-lg
13
+ transition-all duration-200 hover:bg-[#102377]
14
+ ${noOfchildren > 0 ? 'hover:shadow-lg' : ''}
15
15
  ` },
16
16
  initial,
17
17
  noOfchildren > 0 && (react_1.default.createElement("div", { className: "absolute -bottom-3 w-6 h-6 rounded bg-gray-400 flex items-center justify-center text-white text-sm" }, noOfchildren)))),
@@ -50,86 +50,86 @@ const transformEmployeeData = (employeeData, firstName, lastName, primaryService
50
50
  };
51
51
  };
52
52
  exports.transformEmployeeData = transformEmployeeData;
53
- exports.ConnectorContainer = styled_components_1.default.div `
54
- position: relative;
55
- width: 100%;
56
- display: flex;
57
- justify-content: center;
58
- align-items: center;
59
-
60
- &.parent-vertical-line {
61
- height: 40px;
62
- position: relative;
63
-
64
- &:before {
65
- content: '';
66
- position: absolute;
67
- top: 0;
68
- left: 50%;
69
- width: 2px;
70
- height: calc(100% + 2px);
71
- background-color: #D8D8D8;
72
- transform: translateX(-50%);
73
- }
74
- }
75
-
76
- &.child-vertical-line {
77
- height: 40px;
78
- position: relative;
79
- margin-bottom: 4px;
80
- &:before {
81
- content: '';
82
- position: absolute;
83
- left: 50%;
84
- width: 2px;
85
- height: 100%;
86
- background-color: #D8D8D8;
87
- transform: translateX(-50%);
88
- }
89
-
90
- &:after {
91
- content: '';
92
- position: absolute;
93
- bottom: -4px;
94
- left: 50%;
95
- width: 8px;
96
- height: 8px;
97
- border-right: 2px solid #D8D8D8;
98
- border-bottom: 2px solid #D8D8D8;
99
- transform: translateX(-50%) rotate(45deg);
100
- background-color: transparent;
101
- }
102
- }
103
-
104
- &.horizontal-line {
105
- position: absolute;
106
- height: 2px;
107
- background-color: #D8D8D8;
108
- top: 0;
109
- width: 100%;
110
- }
53
+ exports.ConnectorContainer = styled_components_1.default.div `
54
+ position: relative;
55
+ width: 100%;
56
+ display: flex;
57
+ justify-content: center;
58
+ align-items: center;
59
+
60
+ &.parent-vertical-line {
61
+ height: 40px;
62
+ position: relative;
63
+
64
+ &:before {
65
+ content: '';
66
+ position: absolute;
67
+ top: 0;
68
+ left: 50%;
69
+ width: 2px;
70
+ height: calc(100% + 2px);
71
+ background-color: #D8D8D8;
72
+ transform: translateX(-50%);
73
+ }
74
+ }
75
+
76
+ &.child-vertical-line {
77
+ height: 40px;
78
+ position: relative;
79
+ margin-bottom: 4px;
80
+ &:before {
81
+ content: '';
82
+ position: absolute;
83
+ left: 50%;
84
+ width: 2px;
85
+ height: 100%;
86
+ background-color: #D8D8D8;
87
+ transform: translateX(-50%);
88
+ }
89
+
90
+ &:after {
91
+ content: '';
92
+ position: absolute;
93
+ bottom: -4px;
94
+ left: 50%;
95
+ width: 8px;
96
+ height: 8px;
97
+ border-right: 2px solid #D8D8D8;
98
+ border-bottom: 2px solid #D8D8D8;
99
+ transform: translateX(-50%) rotate(45deg);
100
+ background-color: transparent;
101
+ }
102
+ }
103
+
104
+ &.horizontal-line {
105
+ position: absolute;
106
+ height: 2px;
107
+ background-color: #D8D8D8;
108
+ top: 0;
109
+ width: 100%;
110
+ }
111
111
  `;
112
- exports.InfoCard = (0, styled_components_1.default)(core_1.Card) `
113
- position: absolute;
114
- top: 10;
115
- right: 0;
116
- width: fit-content;
117
- max-width: 30%;
118
- z-index: 1000;
119
- padding: 8px;
120
- margin: 16px;
121
- background-color: white;
122
- border-radius: 8px;
123
- box-shadow: none;
124
- border: 1px solid #e2e8f0;
125
- max-height: 90vh;
126
- overflow: auto;
127
- @media (max-width: 600px) {
128
- position: absolute;
129
- top: 20;
130
- right: auto;
131
- min-width: 90%;
132
- }
112
+ exports.InfoCard = (0, styled_components_1.default)(core_1.Card) `
113
+ position: absolute;
114
+ top: 10;
115
+ right: 0;
116
+ width: fit-content;
117
+ max-width: 30%;
118
+ z-index: 1000;
119
+ padding: 8px;
120
+ margin: 16px;
121
+ background-color: white;
122
+ border-radius: 8px;
123
+ box-shadow: none;
124
+ border: 1px solid #e2e8f0;
125
+ max-height: 90vh;
126
+ overflow: auto;
127
+ @media (max-width: 600px) {
128
+ position: absolute;
129
+ top: 20;
130
+ right: auto;
131
+ min-width: 90%;
132
+ }
133
133
  `;
134
134
  exports.CustomDialog = (0, core_1.styled)(Dialog_1.default)(({ theme }) => ({
135
135
  '& .MuiDialog-paper': {
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<"tooltip">;
3
+ interface ActiveProjectCardProps {
4
+ project: any;
5
+ projectsData: any;
6
+ expertName: string;
7
+ freelancerId: number;
8
+ freelancerEmail: string;
9
+ isAuthenticated: boolean;
10
+ activeProject?: boolean;
11
+ adhocProject?: boolean;
12
+ upcomingProject?: boolean;
13
+ selectedTab: number;
14
+ projectTagsMap?: any;
15
+ user: any;
16
+ internalPortal?: boolean;
17
+ csmUserGroup?: boolean;
18
+ clientPortal?: boolean;
19
+ signedSow?: boolean;
20
+ isStageProd: string;
21
+ isRequestReviewEnabled?: boolean;
22
+ }
23
+ interface AuthRouteProps {
24
+ updateProjectStatusMutation?: any;
25
+ GetAllProjectIrprDetailsForFreelancerDocument?: any;
26
+ updateParoProjectTagsMutation?: any;
27
+ GetParoProjectsDocument?: any;
28
+ updateProjectTagReviewStatusMutation?: any;
29
+ getSowLazyQuery?: any;
30
+ createChangeRequestMutation?: any;
31
+ createOrUpdateRatingRequestMutation?: any;
32
+ updateProjectTaskMutation?: any;
33
+ submitProjectHoursMutation?: any;
34
+ getAuth0Roles?: any;
35
+ createOrUpdateRating?: any;
36
+ getParoProjectsByClientIdDocument?: any;
37
+ }
38
+ interface unAuthRouteProps {
39
+ updateProjectStatus?: any;
40
+ updateProjectTags?: any;
41
+ sendParoSupportEmail?: any;
42
+ submitProjectHoursLambda?: any;
43
+ updateProjectTask?: any;
44
+ createChangeRequest?: any;
45
+ }
46
+ export declare const CheckItem: ({ checked, text }: any) => React.JSX.Element;
47
+ export declare const getAllProjectRecommendationData: ({ projectData }: any) => {
48
+ minFloorHours: any;
49
+ maxFloorHours: any;
50
+ loggedHours: string | number;
51
+ weeklyHoursLogged: any;
52
+ hoursPerWeek: number | false;
53
+ minFloorName: string;
54
+ hoursToComplete: number | false;
55
+ remainingWeeks: number;
56
+ };
57
+ export declare const ActiveProjectCard: ({ project, projectsData, expertName, freelancerId, freelancerEmail, isAuthenticated, activeProject, adhocProject, upcomingProject, selectedTab, projectTagsMap, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, getSowLazyQuery, sendParoSupportEmail, createChangeRequestMutation, createChangeRequest, createOrUpdateRatingRequestMutation, updateProjectTaskMutation, updateProjectTask, submitProjectHoursMutation, getAuth0Roles, submitProjectHoursLambda, createOrUpdateRating, getParoProjectsByClientIdDocument, user, internalPortal, csmUserGroup, clientPortal, signedSow, isStageProd, isRequestReviewEnabled, }: ActiveProjectCardProps & AuthRouteProps & unAuthRouteProps) => JSX.Element;
58
+ export {};
@@ -0,0 +1,162 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ActiveProjectCard = exports.getAllProjectRecommendationData = exports.CheckItem = exports.useStyles = void 0;
30
+ const react_1 = __importStar(require("react"));
31
+ const base_icons_1 = require("@paro.io/base-icons");
32
+ const base_ui_1 = require("@paro.io/base-ui");
33
+ const core_1 = require("@material-ui/core");
34
+ const lab_1 = require("@material-ui/lab");
35
+ const dayjs_1 = __importDefault(require("dayjs"));
36
+ const styles_1 = require("@material-ui/core/styles");
37
+ const Star_1 = __importDefault(require("@material-ui/icons/Star"));
38
+ const RightCardUI_1 = require("./RightCardUI");
39
+ const LeftCardUI_1 = require("./LeftCardUI");
40
+ const CenterCardUI_1 = require("./CenterCardUI");
41
+ const utc_1 = __importDefault(require("dayjs/plugin/utc"));
42
+ const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
43
+ dayjs_1.default.extend(utc_1.default);
44
+ dayjs_1.default.extend(timezone_1.default);
45
+ exports.useStyles = (0, styles_1.makeStyles)({
46
+ tooltip: {
47
+ fontSize: ".9em",
48
+ },
49
+ });
50
+ const CheckItem = ({ checked, text }) => (react_1.default.createElement("div", { className: "p-2 w-full border-2 border-solid border-[#F1F5F9] rounded-md flex items-center" },
51
+ checked ? react_1.default.createElement(base_icons_1.IconCheck, { className: "mr-2 text-[#248384]" }) : react_1.default.createElement(base_icons_1.IconX, { className: "mr-2 text-[#A73A43]" }),
52
+ react_1.default.createElement("p", null, text)));
53
+ exports.CheckItem = CheckItem;
54
+ const getAllProjectRecommendationData = ({ projectData }) => {
55
+ var _a;
56
+ const date = (0, dayjs_1.default)();
57
+ const lastDayOfMonth = (0, dayjs_1.default)().endOf('month');
58
+ const daysLeftInProject = (0, dayjs_1.default)(projectData === null || projectData === void 0 ? void 0 : projectData.endDate).diff(date, 'day');
59
+ const checkDays = (0, dayjs_1.default)(projectData === null || projectData === void 0 ? void 0 : projectData.endDate).isBefore(lastDayOfMonth) ? lastDayOfMonth.date() : daysLeftInProject;
60
+ const remainingWeeks = Math.ceil(checkDays / 7);
61
+ const minFloorHours = (projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours) !== null && (projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours) !== undefined && (projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours) !== 0 ? projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours : projectData === null || projectData === void 0 ? void 0 : projectData.totalEstimatedMinHours;
62
+ const maxFloorHours = projectData === null || projectData === void 0 ? void 0 : projectData.maxHours;
63
+ const loggedHours = (projectData === null || projectData === void 0 ? void 0 : projectData.hoursInvoiced) ? (_a = Number(projectData === null || projectData === void 0 ? void 0 : projectData.hoursInvoiced)) === null || _a === void 0 ? void 0 : _a.toFixed(2) : 0;
64
+ const weeklyHoursLogged = projectData === null || projectData === void 0 ? void 0 : projectData.weeklyMinHoursLogged;
65
+ const hoursToComplete = minFloorHours > 0 && (loggedHours >= minFloorHours ? 0 : Number(minFloorHours) - Number(loggedHours));
66
+ const hoursPerWeek = (hoursToComplete && remainingWeeks) && hoursToComplete / remainingWeeks;
67
+ const minFloorName = (projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours) !== null && (projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours) !== undefined && (projectData === null || projectData === void 0 ? void 0 : projectData.minFloorHours) !== 0 ? "Min Floor Hours" : "Estimated Min Hours";
68
+ return {
69
+ minFloorHours,
70
+ maxFloorHours,
71
+ loggedHours,
72
+ weeklyHoursLogged,
73
+ hoursPerWeek,
74
+ minFloorName,
75
+ hoursToComplete,
76
+ remainingWeeks
77
+ };
78
+ };
79
+ exports.getAllProjectRecommendationData = getAllProjectRecommendationData;
80
+ const checkProjectFrequencyType = (projectFrequencyId) => {
81
+ let projectFrequencyType = '';
82
+ if (projectFrequencyId === 1 || projectFrequencyId === 2) {
83
+ projectFrequencyType = "Recurring";
84
+ }
85
+ else if (projectFrequencyId === 3) {
86
+ projectFrequencyType = "One-time";
87
+ }
88
+ return projectFrequencyType;
89
+ };
90
+ const checkProjectRateType = (freelanceRateTypeId) => {
91
+ let projectType = '';
92
+ if (freelanceRateTypeId === 1) {
93
+ projectType = "Hourly";
94
+ }
95
+ else if (freelanceRateTypeId === 2) {
96
+ projectType = "Fixed";
97
+ }
98
+ return projectType;
99
+ };
100
+ const ActiveProjectCard = ({ project, projectsData, expertName, freelancerId, freelancerEmail, isAuthenticated, activeProject, adhocProject, upcomingProject, selectedTab, projectTagsMap, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, getSowLazyQuery, sendParoSupportEmail, createChangeRequestMutation, createChangeRequest, createOrUpdateRatingRequestMutation, updateProjectTaskMutation, updateProjectTask, submitProjectHoursMutation, getAuth0Roles, submitProjectHoursLambda, createOrUpdateRating, getParoProjectsByClientIdDocument, user, internalPortal = false, csmUserGroup = false, clientPortal = false, signedSow = false, isStageProd, isRequestReviewEnabled = false, }) => {
101
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
102
+ const [editEndDate, setEditEndDate] = (0, react_1.useState)(false);
103
+ const [editStartDate, setEditStartDate] = (0, react_1.useState)(false);
104
+ const [showTimeModal, setShowTimeModal] = (0, react_1.useState)(false);
105
+ const [singleProjectData, setSingleProjectData] = (0, react_1.useState)();
106
+ const projectHealth = (_a = project === null || project === void 0 ? void 0 : project.healthGrade) !== null && _a !== void 0 ? _a : "!";
107
+ const [expand, setExpand] = (0, react_1.useState)(projectHealth === "!" ? true : false);
108
+ const projectRateType = checkProjectRateType((_b = project === null || project === void 0 ? void 0 : project.projectScope) === null || _b === void 0 ? void 0 : _b.freelanceRateTypeId);
109
+ const projectFrequencyType = checkProjectFrequencyType((_c = project === null || project === void 0 ? void 0 : project.projectScope) === null || _c === void 0 ? void 0 : _c.projectFrequencyId);
110
+ const checkStartDate = (0, dayjs_1.default)(project === null || project === void 0 ? void 0 : project.startDate).isSame((0, dayjs_1.default)(), 'day') || (0, dayjs_1.default)(project === null || project === void 0 ? void 0 : project.startDate).isAfter((0, dayjs_1.default)());
111
+ const classes = (0, exports.useStyles)();
112
+ let sumOfRatingValuesOfSingleProject = 0;
113
+ project === null || project === void 0 ? void 0 : project.rating.forEach((rating) => sumOfRatingValuesOfSingleProject += rating.overallRating);
114
+ const [ratingValue, setRatingValue] = (0, react_1.useState)((sumOfRatingValuesOfSingleProject / ((_d = project === null || project === void 0 ? void 0 : project.rating) === null || _d === void 0 ? void 0 : _d.length)).toFixed(1));
115
+ (0, react_1.useEffect)(() => {
116
+ setSingleProjectData(projectsData.find((projectData) => projectData.id === (project === null || project === void 0 ? void 0 : project.id)));
117
+ }, [projectsData, project]);
118
+ const sortRatingsAndRequests = (data) => {
119
+ return [...data].sort((a, b) => (0, dayjs_1.default)(b === null || b === void 0 ? void 0 : b.createdAt).diff((0, dayjs_1.default)(a === null || a === void 0 ? void 0 : a.createdAt), 'days'));
120
+ };
121
+ if ((project === null || project === void 0 ? void 0 : project.rating.length) > 1) {
122
+ project.rating = sortRatingsAndRequests(project.rating);
123
+ }
124
+ if ((project === null || project === void 0 ? void 0 : project.ratingRequest.length) > 1) {
125
+ project.ratingRequest = sortRatingsAndRequests(project.ratingRequest);
126
+ }
127
+ const showRating = ratingValue && (0, dayjs_1.default)((0, dayjs_1.default)().tz('America/Los_Angeles').format('YYYY-MM-DD HH:mm:ss')).diff((0, dayjs_1.default)((_f = (_e = project === null || project === void 0 ? void 0 : project.rating) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.createdAt.replace('Z', '')).format('YYYY-MM-DD HH:mm:ss'), 'hours') > 48;
128
+ const freelancerName = (_j = (_h = (_g = project === null || project === void 0 ? void 0 : project.projectScope) === null || _g === void 0 ? void 0 : _g.freelancer) === null || _h === void 0 ? void 0 : _h.name) !== null && _j !== void 0 ? _j : ((_m = (_l = (_k = project === null || project === void 0 ? void 0 : project.projectScope) === null || _k === void 0 ? void 0 : _k.freelancer) === null || _l === void 0 ? void 0 : _l.freelancerProfile) === null || _m === void 0 ? void 0 : _m.firstName) + ' ' + ((_q = (_p = (_o = project === null || project === void 0 ? void 0 : project.projectScope) === null || _o === void 0 ? void 0 : _o.freelancer) === null || _p === void 0 ? void 0 : _p.freelancerProfile) === null || _q === void 0 ? void 0 : _q.lastName);
129
+ const displayName = clientPortal ? freelancerName : (_r = project === null || project === void 0 ? void 0 : project.client) === null || _r === void 0 ? void 0 : _r.name;
130
+ return (react_1.default.createElement("div", { className: "w-full mb-8" },
131
+ react_1.default.createElement("h1", { className: "font-bold text-lg m-2" },
132
+ displayName,
133
+ ":",
134
+ " ", project === null || project === void 0 ? void 0 :
135
+ project.name),
136
+ react_1.default.createElement(core_1.Card, { style: { padding: '12px' } },
137
+ react_1.default.createElement("div", { className: "flex flex-col-reverse justify-between w-full mt-3 md:flex-row gap-y-4" },
138
+ react_1.default.createElement("div", { className: "flex flex-col" },
139
+ react_1.default.createElement("h1", null, displayName),
140
+ react_1.default.createElement("p", { className: "font-bold text-md mt-1" }, `${(_s = project === null || project === void 0 ? void 0 : project.name) !== null && _s !== void 0 ? _s : "Project"} ${(singleProjectData === null || singleProjectData === void 0 ? void 0 : singleProjectData.minFloorHours) ? "WITH" : "WITHOUT"} a min floor.`)),
141
+ react_1.default.createElement("div", { className: "flex flex-row gap-x-2 items-center ml-auto" },
142
+ showRating && react_1.default.createElement("div", { className: "flex flex-auto items-center justify-between" },
143
+ react_1.default.createElement(lab_1.Rating, { name: "read-only", value: Number(ratingValue), precision: 0.5, size: "large", readOnly: true, emptyIcon: react_1.default.createElement(Star_1.default, { fontSize: "inherit" }) })),
144
+ (singleProjectData === null || singleProjectData === void 0 ? void 0 : singleProjectData.minFloorHours) && !adhocProject ? react_1.default.createElement(core_1.Tooltip, { classes: { tooltip: classes.tooltip }, title: "Minimum Floor Hours is the minimum amount of hours needed to log for this project.", placement: "top", arrow: true },
145
+ react_1.default.createElement("div", { className: "h-10 w-14 bg-[#FDD7A5] border-2 border-solid border-[#F1F5F9] rounded-md flex place-content-center" },
146
+ react_1.default.createElement("p", { className: "font-bold text-md self-center" }, "MF"))) : "",
147
+ (!(clientPortal || (projectRateType === "Fixed" || adhocProject))) &&
148
+ react_1.default.createElement(core_1.Tooltip, { classes: { tooltip: classes.tooltip }, title: ['A', 'B', 'C', 'D'].includes(projectHealth) ? "This is your current grade for this project based on the amount of work you have completed to how much is expected to be completed throughout the duration of the project" : "If your project health grade is a ! log more than 60% of your Max Hours to change your grade. Please expand this section and contact your Customer Success Manager if you have questions.", placement: "top", arrow: true },
149
+ react_1.default.createElement("div", { className: `h-10 w-14 border-2 border-solid rounded-md flex place-content-center ${['A', 'B', 'C', 'D'].includes(projectHealth) ? (['A', 'B'].includes(projectHealth) && "bg-[#F1F5F9] border-[#A3DCD8]") || (['C', 'D'].includes(projectHealth) && "bg-[#A73A43] border-[#F9C34F]") : "bg-[#A73A43] text-[#F1F5F9] border-[#F1F5F9]"}` },
150
+ react_1.default.createElement("p", { className: "font-bold text-md self-center" }, projectHealth))),
151
+ checkStartDate ?
152
+ react_1.default.createElement("div", { className: "h-10 w-14 bg-[#F1F5F9] border-[#A3DCD8] border-2 border-solid rounded-md flex place-content-center" },
153
+ react_1.default.createElement("p", { className: "font-bold text-md self-center" }, "NEW !")) : "",
154
+ react_1.default.createElement("div", { className: "h-10 w-14 bg-[#F1F5F9] rounded-md flex place-content-center" },
155
+ react_1.default.createElement(base_ui_1.Button, { onClick: () => { setExpand(!expand); }, className: "font-bold text-md p-8", icon: expand ? react_1.default.createElement(base_icons_1.IconChevronUp, null) : react_1.default.createElement(base_icons_1.IconChevronDown, null) })))),
156
+ expand && react_1.default.createElement("div", { className: `flex w-full p-4 gap-x-10 gap-y-10 ${projectRateType === "Fixed" ? "flex-col" : "flex-col md:flex-row"}` },
157
+ react_1.default.createElement(LeftCardUI_1.LeftCardUI, { projectData: singleProjectData, projectFrequencyType: projectFrequencyType, projectRateType: projectRateType, project: project, isAuthenticated: isAuthenticated, adhocProject: adhocProject, activeProject: activeProject, freelancerId: freelancerId, selectedTab: selectedTab, updateProjectTaskMutation: updateProjectTaskMutation, GetAllProjectIrprDetailsForFreelancerDocument: GetAllProjectIrprDetailsForFreelancerDocument, updateProjectTask: updateProjectTask, clientPortal: clientPortal }),
158
+ react_1.default.createElement("div", { className: "flex flex-col flex-grow md:flex-row gap-x-0 justify-around" },
159
+ react_1.default.createElement(CenterCardUI_1.CenterCardUI, { startDate: project === null || project === void 0 ? void 0 : project.startDate, endDate: project === null || project === void 0 ? void 0 : project.endDate, projectData: singleProjectData, projectRateType: projectRateType, project: project, projectFrequencyType: projectFrequencyType, adhocProject: adhocProject, clientPortal: clientPortal }),
160
+ react_1.default.createElement(RightCardUI_1.RightCardUI, { project: project, expertName: expertName, freelancerEmail: freelancerEmail, freelancerId: freelancerId, isAuthenticated: isAuthenticated, editEndDate: editEndDate, setEditEndDate: setEditEndDate, editStartDate: editStartDate, setEditStartDate: setEditStartDate, showTimeModal: showTimeModal, setShowTimeModal: setShowTimeModal, setSingleProjectData: setSingleProjectData, projectData: singleProjectData, checkStartDate: checkStartDate, activeProject: activeProject, projectRateType: projectRateType, projectFrequencyType: projectFrequencyType, upcomingProject: upcomingProject, selectedTab: selectedTab, showRating: !!showRating, projectTagsMap: projectTagsMap, updateProjectStatusMutation: updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument: GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation: updateParoProjectTagsMutation, GetParoProjectsDocument: GetParoProjectsDocument, updateProjectTagReviewStatusMutation: updateProjectTagReviewStatusMutation, updateProjectStatus: updateProjectStatus, updateProjectTags: updateProjectTags, getSowLazyQuery: getSowLazyQuery, sendParoSupportEmail: sendParoSupportEmail, createChangeRequestMutation: createChangeRequestMutation, createChangeRequest: createChangeRequest, createOrUpdateRatingRequestMutation: createOrUpdateRatingRequestMutation, submitProjectHoursMutation: submitProjectHoursMutation, getAuth0Roles: getAuth0Roles, submitProjectHoursLambda: submitProjectHoursLambda, createOrUpdateRating: createOrUpdateRating, getParoProjectsByClientIdDocument: getParoProjectsByClientIdDocument, user: user, internalPortal: internalPortal, csmUserGroup: csmUserGroup, clientPortal: clientPortal, signedSow: signedSow, isStageProd: isStageProd, isRequestReviewEnabled: isRequestReviewEnabled }))))));
161
+ };
162
+ exports.ActiveProjectCard = ActiveProjectCard;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface CenterCardUIProps {
3
+ startDate: any;
4
+ endDate: any;
5
+ projectRateType: string;
6
+ projectData: any;
7
+ projectFrequencyType: string;
8
+ project: any;
9
+ adhocProject: any;
10
+ clientPortal: boolean;
11
+ }
12
+ export declare const CenterCardUI: ({ startDate, endDate, projectRateType, projectData, projectFrequencyType, project, adhocProject, clientPortal, }: CenterCardUIProps) => React.JSX.Element;
13
+ export {};
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CenterCardUI = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const ProgressBar_1 = require("./ProgressBar");
9
+ const dayjs_1 = __importDefault(require("dayjs"));
10
+ const base_ui_1 = require("@paro.io/base-ui");
11
+ const utc_1 = __importDefault(require("dayjs/plugin/utc"));
12
+ const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
13
+ const ActiveProjectCard_1 = require("./ActiveProjectCard");
14
+ dayjs_1.default.extend(utc_1.default);
15
+ dayjs_1.default.extend(timezone_1.default);
16
+ const getRecommendations = ({ weeklyHoursLogged, hoursToComplete, loggedHours, minFloorHours, maxFloorHours, hoursPerWeek, startDate, endDate, minFloorName, projectFrequencyType, projectRateType, tasks }) => {
17
+ const items = [];
18
+ if ((0, dayjs_1.default)(endDate).isBefore(startDate, 'day')) {
19
+ items.push(react_1.default.createElement("li", { key: "pastStartDate" }, "Please select a future end date or move your start date to a previous date."));
20
+ }
21
+ if ((0, dayjs_1.default)(startDate).isBefore((0, dayjs_1.default)(), 'day') && loggedHours <= 0) {
22
+ items.push(react_1.default.createElement("li", { key: "pastStartDate" }, "Please log hours for this project or request to move the project start date to later a date."));
23
+ }
24
+ if (!endDate) {
25
+ items.push(react_1.default.createElement("li", { key: "noEndDate" }, "Please edit end date above for this project."));
26
+ }
27
+ if (endDate && (0, dayjs_1.default)(endDate).isBefore((0, dayjs_1.default)(), 'day')) {
28
+ items.push(react_1.default.createElement("li", { key: "pastEndDate" }, "Please edit end date above for this project since today's date is past the project's listed end date."));
29
+ }
30
+ if (loggedHours < minFloorHours && endDate && !weeklyHoursLogged && hoursPerWeek && ((0, dayjs_1.default)(startDate).isSame((0, dayjs_1.default)(), 'day') || (0, dayjs_1.default)(startDate).isAfter((0, dayjs_1.default)()))) {
31
+ items.push(react_1.default.createElement("li", { key: "behindMFH" }, `You need to log ${(0, ProgressBar_1.formatNumberingSystem)(hoursPerWeek)} hours per week to get back on track by the ${projectFrequencyType === "Recurring" ? "end of the month." : "end date."}`));
32
+ }
33
+ if (loggedHours <= minFloorHours) {
34
+ items.push(react_1.default.createElement("li", { key: "lessWorkExpected" }, "If you are getting less work than expected, please reach out to your Customer Success Manager."));
35
+ }
36
+ if (weeklyHoursLogged && hoursToComplete && endDate && hoursPerWeek) {
37
+ items.push(react_1.default.createElement("li", { key: "onTrackMFH" },
38
+ "Great work, you are on track to complete this project on time! Continue to log ",
39
+ (0, ProgressBar_1.formatNumberingSystem)(hoursPerWeek),
40
+ " hours per week until the project end date, in order to stay on track for this project."));
41
+ }
42
+ if (loggedHours >= minFloorHours && loggedHours != 0 && !(loggedHours >= maxFloorHours)) {
43
+ items.push(react_1.default.createElement("li", { key: "completedMFH" },
44
+ "Congrats you have completed your project's ",
45
+ minFloorName,
46
+ "!"));
47
+ }
48
+ if ((loggedHours == maxFloorHours) && loggedHours != 0) {
49
+ items.push(react_1.default.createElement("li", { key: "completedMFH" }, "Congrats you have completed the Max Hours for this project!"));
50
+ }
51
+ if (loggedHours > maxFloorHours && loggedHours != 0) {
52
+ items.push(react_1.default.createElement("li", { key: "overHours" }, "You have logged too much time for this project. Please reach out to your Custom Success Manager if you wish to add additional hours."));
53
+ }
54
+ if (projectRateType === "Fixed" && tasks && tasks.length > 0) {
55
+ const pendingTasks = tasks.filter((task) => task.statusId === 2);
56
+ const inProgressTasks = tasks.filter((task) => task.statusId === 3);
57
+ const completedTasks = tasks.filter((task) => task.statusId === 1);
58
+ if (completedTasks.length === 0) {
59
+ items.push(react_1.default.createElement("li", { key: "allTasksPending" }, "Please check the status of your SOW tasks and mark them completed when finished before being able to end your project."));
60
+ }
61
+ if (completedTasks.length > 0 && (inProgressTasks.length > 0 || pendingTasks.length > 0)) {
62
+ items.push(react_1.default.createElement("li", { key: "inProgressTasks" }, "Please change all statuses that have In-Progress or Pending for this project before clicking End Project."));
63
+ }
64
+ }
65
+ return items;
66
+ };
67
+ const calculateFixedEarnings = (projectFrequencyType, projectData, clientPortal) => {
68
+ const { expertRate, expertSowValue } = projectData;
69
+ return projectFrequencyType === "Recurring" ? '$' + `${clientPortal ? expertRate * 2 : expertRate}` + '/mo' : '$' + expertSowValue;
70
+ };
71
+ const CenterCardUI = ({ startDate, endDate, projectRateType, projectData, projectFrequencyType, project, adhocProject, clientPortal, }) => {
72
+ var _a, _b, _c, _d;
73
+ const date = (0, dayjs_1.default)();
74
+ const today = date.date();
75
+ const lastDayOfMonth = (0, dayjs_1.default)().endOf('month');
76
+ const daysInOneTimeProject = (endDate && startDate) ? Math.max((0, dayjs_1.default)(endDate).diff((0, dayjs_1.default)(startDate), 'days'), 0) : "-";
77
+ const daysLeftInOneTime = endDate ? Math.max((0, dayjs_1.default)(endDate).diff((0, dayjs_1.default)(date), 'days'), 0) : "-";
78
+ const { minFloorHours, maxFloorHours, loggedHours, weeklyHoursLogged, hoursPerWeek, minFloorName, hoursToComplete, remainingWeeks } = (0, ActiveProjectCard_1.getAllProjectRecommendationData)({ projectData });
79
+ const totalDays = lastDayOfMonth.date();
80
+ const payRate = (_a = projectData === null || projectData === void 0 ? void 0 : projectData.expertRate) !== null && _a !== void 0 ? _a : 0;
81
+ const tasks = (_b = project === null || project === void 0 ? void 0 : project.projectScopeTasks) !== null && _b !== void 0 ? _b : [];
82
+ return (react_1.default.createElement("div", { className: "w-full md:w-3/4 flex flex-col" },
83
+ react_1.default.createElement("div", { className: "flex flex-wrap overflow-auto" },
84
+ react_1.default.createElement(base_ui_1.Table, null,
85
+ react_1.default.createElement(base_ui_1.TableHead, null,
86
+ react_1.default.createElement(base_ui_1.TableRow, null,
87
+ react_1.default.createElement(base_ui_1.TableCell, null, "Start Date"),
88
+ react_1.default.createElement(base_ui_1.TableCell, null, "End Date"),
89
+ react_1.default.createElement(base_ui_1.TableCell, null, "Project Type"))),
90
+ react_1.default.createElement(base_ui_1.TableBody, null,
91
+ react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
92
+ ((0, dayjs_1.default)(startDate).isBefore((0, dayjs_1.default)(), 'day') && (Number(loggedHours) < 0)) ?
93
+ react_1.default.createElement(base_ui_1.TableCell, { className: "text-[#A73A43] font-bold text-lg" },
94
+ startDate ? (0, dayjs_1.default)(startDate).format('MM/DD/YYYY') : "-",
95
+ react_1.default.createElement("br", null),
96
+ "Past Due")
97
+ :
98
+ react_1.default.createElement(base_ui_1.TableCell, { className: "text-black font-bold text-lg" }, (_c = (0, dayjs_1.default)(startDate).format('MM/DD/YYYY')) !== null && _c !== void 0 ? _c : "-"),
99
+ endDate === null || (0, dayjs_1.default)(endDate).isBefore((0, dayjs_1.default)(), 'day') ?
100
+ react_1.default.createElement(base_ui_1.TableCell, { className: "text-[#A73A43] font-bold text-lg" }, endDate ? react_1.default.createElement(react_1.default.Fragment, null,
101
+ (0, dayjs_1.default)(endDate).format('MM/DD/YYYY'),
102
+ " ",
103
+ react_1.default.createElement("br", null),
104
+ " Past Due") : "Submit an End Date")
105
+ :
106
+ react_1.default.createElement(base_ui_1.TableCell, { className: "text-black font-bold text-lg" }, endDate ? (0, dayjs_1.default)(endDate).format('MM/DD/YYYY') : "-"),
107
+ react_1.default.createElement(base_ui_1.TableCell, null, `${projectRateType} ${projectFrequencyType}`))),
108
+ react_1.default.createElement(base_ui_1.TableHead, null,
109
+ react_1.default.createElement(base_ui_1.TableRow, null,
110
+ react_1.default.createElement(base_ui_1.TableCell, null, "Estimated Expert Earnings"),
111
+ react_1.default.createElement(base_ui_1.TableCell, null, "Max Hours"),
112
+ react_1.default.createElement(base_ui_1.TableCell, null, minFloorName))),
113
+ react_1.default.createElement(base_ui_1.TableBody, null,
114
+ react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
115
+ react_1.default.createElement(base_ui_1.TableCell, null, (minFloorHours > 0 || maxFloorHours > 0) && projectRateType === "Hourly" ? "$" + `${clientPortal ? (0, ProgressBar_1.formatNumberingSystem)(minFloorHours * payRate * 2) : (0, ProgressBar_1.formatNumberingSystem)(minFloorHours * payRate)}` + " - " + "$" + `${clientPortal ? (0, ProgressBar_1.formatNumberingSystem)(maxFloorHours * payRate * 2) : (0, ProgressBar_1.formatNumberingSystem)(maxFloorHours * payRate)}`
116
+ : projectData && calculateFixedEarnings(projectFrequencyType, projectData, clientPortal)),
117
+ react_1.default.createElement(base_ui_1.TableCell, null, maxFloorHours ? (0, ProgressBar_1.formatNumberingSystem)(maxFloorHours) : "-"),
118
+ react_1.default.createElement(base_ui_1.TableCell, null, minFloorHours ? (0, ProgressBar_1.formatNumberingSystem)(minFloorHours) : "-"))),
119
+ react_1.default.createElement(base_ui_1.TableHead, null,
120
+ react_1.default.createElement(base_ui_1.TableRow, null,
121
+ react_1.default.createElement(base_ui_1.TableCell, null, "Days in Period"),
122
+ react_1.default.createElement(base_ui_1.TableCell, null, "Days left in Period"),
123
+ react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? "Hours Logged This Month" : "Hours Logged for Project"))),
124
+ react_1.default.createElement(base_ui_1.TableBody, null,
125
+ react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
126
+ react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? totalDays : daysInOneTimeProject),
127
+ react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? (totalDays - today) : daysLeftInOneTime),
128
+ react_1.default.createElement(base_ui_1.TableCell, null, (_d = (0, ProgressBar_1.formatNumberingSystem)(loggedHours)) !== null && _d !== void 0 ? _d : "-"))))),
129
+ !(clientPortal || adhocProject) && react_1.default.createElement("div", { className: "flex flex-col mt-8 gap-y-2" },
130
+ react_1.default.createElement("h1", { className: "font-bold" }, "Recommendations"),
131
+ react_1.default.createElement("ul", { className: "list-disc ml-6" }, getRecommendations({ weeklyHoursLogged, hoursToComplete, loggedHours, minFloorHours, maxFloorHours, hoursPerWeek, remainingWeeks, startDate, endDate, minFloorName, projectFrequencyType, projectRateType, tasks })))));
132
+ };
133
+ exports.CenterCardUI = CenterCardUI;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ interface EditDateModalProps {
3
+ freelancerId: number;
4
+ freelancerEmail: string;
5
+ project: any;
6
+ previousDate: any;
7
+ editDate: any;
8
+ setEditDate: (editDate: any) => void;
9
+ isDateInvalid: boolean;
10
+ setIsDateInvalid: (isDateInvalid: boolean) => void;
11
+ validateDate: any;
12
+ changeType: string;
13
+ expertName: string;
14
+ isAuthenticated: boolean;
15
+ selectedTab: number;
16
+ createChangeRequestMutation?: any;
17
+ GetAllProjectIrprDetailsForFreelancerDocument: any;
18
+ createChangeRequest?: any;
19
+ isTestEnv: boolean;
20
+ }
21
+ export declare const EditDateModal: ({ freelancerId, freelancerEmail, project, previousDate, editDate, setEditDate, setIsDateInvalid, validateDate, isDateInvalid, changeType, expertName, isAuthenticated, selectedTab, createChangeRequestMutation, GetAllProjectIrprDetailsForFreelancerDocument, createChangeRequest, isTestEnv }: EditDateModalProps) => React.JSX.Element;
22
+ export {};