@paro.io/expert-shared-components 1.14.14 → 1.14.15

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 (75) 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/DiscussionThread/chat.d.ts +22 -22
  14. package/lib/components/DiscussionThread/chat.js +106 -106
  15. package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
  16. package/lib/components/DocumentCenter/DocumentTable.js +350 -350
  17. package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
  18. package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
  19. package/lib/components/EarningsTracker/ActiveProjectCard.d.ts +52 -52
  20. package/lib/components/EarningsTracker/ActiveProjectCard.js +161 -161
  21. package/lib/components/EarningsTracker/CenterCardUI.d.ts +13 -13
  22. package/lib/components/EarningsTracker/CenterCardUI.js +134 -134
  23. package/lib/components/EarningsTracker/EarningsTracker.d.ts +52 -52
  24. package/lib/components/EarningsTracker/EarningsTracker.js +508 -508
  25. package/lib/components/EarningsTracker/EditDateModal.d.ts +22 -22
  26. package/lib/components/EarningsTracker/EditDateModal.js +149 -149
  27. package/lib/components/EarningsTracker/EmailModal.d.ts +14 -14
  28. package/lib/components/EarningsTracker/EmailModal.js +79 -79
  29. package/lib/components/EarningsTracker/EndProjectModal.d.ts +56 -56
  30. package/lib/components/EarningsTracker/EndProjectModal.js +221 -221
  31. package/lib/components/EarningsTracker/LeftCardUI.d.ts +18 -18
  32. package/lib/components/EarningsTracker/LeftCardUI.js +189 -189
  33. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.d.ts +52 -52
  34. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.js +358 -358
  35. package/lib/components/EarningsTracker/ProgressBar.d.ts +4 -4
  36. package/lib/components/EarningsTracker/ProgressBar.js +66 -66
  37. package/lib/components/EarningsTracker/ReviewRequestModal.d.ts +17 -17
  38. package/lib/components/EarningsTracker/ReviewRequestModal.js +135 -135
  39. package/lib/components/EarningsTracker/RightCardUI.d.ts +46 -46
  40. package/lib/components/EarningsTracker/RightCardUI.js +231 -231
  41. package/lib/components/EarningsTracker/index.d.ts +1 -1
  42. package/lib/components/EarningsTracker/index.js +5 -5
  43. package/lib/components/Escalations/CustomTag.d.ts +3 -3
  44. package/lib/components/Escalations/CustomTag.js +25 -25
  45. package/lib/components/Escalations/ViewReponseModal.d.ts +8 -8
  46. package/lib/components/Escalations/ViewReponseModal.js +27 -27
  47. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  48. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
  49. package/lib/components/ExpertProfileHeader/TeamsSection.js +1 -1
  50. package/lib/components/HeaderNavBar/index.d.ts +1 -1
  51. package/lib/components/HeaderNavBar/index.js +11 -3
  52. package/lib/components/Invoices/TestDecisionSection.d.ts +1 -1
  53. package/lib/components/Invoices/TestDecisionSection.js +126 -126
  54. package/lib/components/OrganizationChart/OrgChart.d.ts +15 -1
  55. package/lib/components/OrganizationChart/OrgChart.js +33 -30
  56. package/lib/components/OrganizationChart/OrganizationChart.d.ts +15 -15
  57. package/lib/components/OrganizationChart/OrganizationChart.js +312 -312
  58. package/lib/components/OrganizationChart/PersonCard.js +5 -5
  59. package/lib/components/OrganizationChart/utils.d.ts +1 -1
  60. package/lib/components/OrganizationChart/utils.js +80 -80
  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/package.json +67 -67
@@ -1,134 +1,134 @@
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 moment_1 = __importDefault(require("moment"));
12
- const utc_1 = __importDefault(require("dayjs/plugin/utc"));
13
- const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
14
- const ActiveProjectCard_1 = require("./ActiveProjectCard");
15
- dayjs_1.default.extend(utc_1.default);
16
- dayjs_1.default.extend(timezone_1.default);
17
- const getRecommendations = ({ weeklyHoursLogged, hoursToComplete, loggedHours, minFloorHours, maxFloorHours, hoursPerWeek, remainingWeeks, startDate, endDate, minFloorName, projectFrequencyType, projectRateType, tasks }) => {
18
- const items = [];
19
- if ((0, moment_1.default)(endDate).isBefore(startDate, 'day')) {
20
- items.push(react_1.default.createElement("li", { key: "pastStartDate" }, "Please select a future end date or move your start date to a previous date."));
21
- }
22
- if ((0, moment_1.default)(startDate).isBefore((0, moment_1.default)(), 'day') && loggedHours <= 0) {
23
- 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."));
24
- }
25
- if (!endDate) {
26
- items.push(react_1.default.createElement("li", { key: "noEndDate" }, "Please edit end date above for this project."));
27
- }
28
- if (endDate && (0, moment_1.default)(endDate).isBefore((0, moment_1.default)(), 'day')) {
29
- 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."));
30
- }
31
- if (loggedHours < minFloorHours && endDate && !weeklyHoursLogged && hoursPerWeek && (0, moment_1.default)(endDate).isSameOrAfter((0, moment_1.default)(), 'day')) {
32
- 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."}`));
33
- }
34
- if (loggedHours <= minFloorHours) {
35
- 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."));
36
- }
37
- if (weeklyHoursLogged && hoursToComplete && endDate && hoursPerWeek) {
38
- items.push(react_1.default.createElement("li", { key: "onTrackMFH" },
39
- "Great work, you are on track to complete this project on time! Continue to log ",
40
- (0, ProgressBar_1.formatNumberingSystem)(hoursPerWeek),
41
- " hours per week until the project end date, in order to stay on track for this project."));
42
- }
43
- if (loggedHours >= minFloorHours && loggedHours != 0 && !(loggedHours >= maxFloorHours)) {
44
- items.push(react_1.default.createElement("li", { key: "completedMFH" },
45
- "Congrats you have completed your project's ",
46
- minFloorName,
47
- "!"));
48
- }
49
- if ((loggedHours == maxFloorHours) && loggedHours != 0) {
50
- items.push(react_1.default.createElement("li", { key: "completedMFH" }, "Congrats you have completed the Max Hours for this project!"));
51
- }
52
- if (loggedHours > maxFloorHours && loggedHours != 0) {
53
- 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."));
54
- }
55
- if (projectRateType === "Fixed" && tasks && tasks.length > 0) {
56
- const pendingTasks = tasks.filter((task) => task.statusId === 2);
57
- const inProgressTasks = tasks.filter((task) => task.statusId === 3);
58
- const completedTasks = tasks.filter((task) => task.statusId === 1);
59
- if (completedTasks.length === 0) {
60
- 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."));
61
- }
62
- if (completedTasks.length > 0 && (inProgressTasks.length > 0 || pendingTasks.length > 0)) {
63
- 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."));
64
- }
65
- }
66
- return items;
67
- };
68
- const calculateFixedEarnings = (projectFrequencyType, projectData, clientPortal) => {
69
- const { expertRate, expertSowValue } = projectData;
70
- return projectFrequencyType === "Recurring" ? '$' + `${clientPortal ? expertRate * 2 : expertRate}` + '/mo' : '$' + expertSowValue;
71
- };
72
- const CenterCardUI = ({ startDate, endDate, projectRateType, projectData, projectFrequencyType, project, adhocProject, clientPortal, }) => {
73
- var _a, _b, _c, _d;
74
- const date = (0, moment_1.default)();
75
- const today = date.date();
76
- const lastDayOfMonth = (0, moment_1.default)().endOf('month');
77
- const daysInOneTimeProject = (endDate && startDate) ? Math.max((0, moment_1.default)(endDate).diff((0, moment_1.default)(startDate), 'days'), 0) : "-";
78
- const daysLeftInOneTime = endDate ? Math.max((0, moment_1.default)(endDate).diff((0, moment_1.default)(date), 'days'), 0) : "-";
79
- const { minFloorHours, maxFloorHours, loggedHours, weeklyHoursLogged, hoursPerWeek, minFloorName, hoursToComplete, remainingWeeks } = (0, ActiveProjectCard_1.getAllProjectRecommendationData)({ projectData });
80
- const totalDays = lastDayOfMonth.date();
81
- const payRate = (_a = projectData === null || projectData === void 0 ? void 0 : projectData.expertRate) !== null && _a !== void 0 ? _a : 0;
82
- const tasks = (_b = project === null || project === void 0 ? void 0 : project.projectScopeTasks) !== null && _b !== void 0 ? _b : [];
83
- return (react_1.default.createElement("div", { className: "w-full md:w-3/4 flex flex-col" },
84
- react_1.default.createElement("div", { className: "flex flex-wrap overflow-auto" },
85
- react_1.default.createElement(base_ui_1.Table, null,
86
- react_1.default.createElement(base_ui_1.TableHead, null,
87
- react_1.default.createElement(base_ui_1.TableRow, null,
88
- react_1.default.createElement(base_ui_1.TableCell, null, "Start Date"),
89
- react_1.default.createElement(base_ui_1.TableCell, null, "End Date"),
90
- react_1.default.createElement(base_ui_1.TableCell, null, "Project Type"))),
91
- react_1.default.createElement(base_ui_1.TableBody, null,
92
- react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
93
- ((0, moment_1.default)(startDate).isBefore((0, moment_1.default)(), 'day') && (Number(loggedHours) < 0)) ?
94
- react_1.default.createElement(base_ui_1.TableCell, { className: "text-[#A73A43] font-bold text-lg" },
95
- startDate ? (0, dayjs_1.default)(startDate).format('MM/DD/YYYY') : "-",
96
- react_1.default.createElement("br", null),
97
- "Past Due")
98
- :
99
- 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 : "-"),
100
- endDate === null || (0, moment_1.default)(endDate).isBefore((0, moment_1.default)(), 'day') ?
101
- 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,
102
- (0, dayjs_1.default)(endDate).format('MM/DD/YYYY'),
103
- " ",
104
- react_1.default.createElement("br", null),
105
- " Past Due") : "Submit an End Date")
106
- :
107
- 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') : "-"),
108
- react_1.default.createElement(base_ui_1.TableCell, null, `${projectRateType} ${projectFrequencyType}`))),
109
- react_1.default.createElement(base_ui_1.TableHead, null,
110
- react_1.default.createElement(base_ui_1.TableRow, null,
111
- react_1.default.createElement(base_ui_1.TableCell, null, "Estimated Expert Earnings"),
112
- react_1.default.createElement(base_ui_1.TableCell, null, "Max Hours"),
113
- react_1.default.createElement(base_ui_1.TableCell, null, minFloorName))),
114
- react_1.default.createElement(base_ui_1.TableBody, null,
115
- react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
116
- 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)}`
117
- : projectData && calculateFixedEarnings(projectFrequencyType, projectData, clientPortal)),
118
- react_1.default.createElement(base_ui_1.TableCell, null, maxFloorHours ? (0, ProgressBar_1.formatNumberingSystem)(maxFloorHours) : "-"),
119
- react_1.default.createElement(base_ui_1.TableCell, null, minFloorHours ? (0, ProgressBar_1.formatNumberingSystem)(minFloorHours) : "-"))),
120
- react_1.default.createElement(base_ui_1.TableHead, null,
121
- react_1.default.createElement(base_ui_1.TableRow, null,
122
- react_1.default.createElement(base_ui_1.TableCell, null, "Days in Period"),
123
- react_1.default.createElement(base_ui_1.TableCell, null, "Days left in Period"),
124
- react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? "Hours Logged This Month" : "Hours Logged for Project"))),
125
- react_1.default.createElement(base_ui_1.TableBody, null,
126
- react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
127
- react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? totalDays : daysInOneTimeProject),
128
- react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? (totalDays - today) : daysLeftInOneTime),
129
- react_1.default.createElement(base_ui_1.TableCell, null, (_d = (0, ProgressBar_1.formatNumberingSystem)(loggedHours)) !== null && _d !== void 0 ? _d : "-"))))),
130
- (!adhocProject || clientPortal) && react_1.default.createElement("div", { className: "flex flex-col mt-8 gap-y-2" },
131
- react_1.default.createElement("h1", { className: "font-bold" }, "Recommendations"),
132
- react_1.default.createElement("ul", { className: "list-disc ml-6" }, getRecommendations({ weeklyHoursLogged, hoursToComplete, loggedHours, minFloorHours, maxFloorHours, hoursPerWeek, remainingWeeks, startDate, endDate, minFloorName, projectFrequencyType, projectRateType, tasks })))));
133
- };
134
- exports.CenterCardUI = CenterCardUI;
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 moment_1 = __importDefault(require("moment"));
12
+ const utc_1 = __importDefault(require("dayjs/plugin/utc"));
13
+ const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
14
+ const ActiveProjectCard_1 = require("./ActiveProjectCard");
15
+ dayjs_1.default.extend(utc_1.default);
16
+ dayjs_1.default.extend(timezone_1.default);
17
+ const getRecommendations = ({ weeklyHoursLogged, hoursToComplete, loggedHours, minFloorHours, maxFloorHours, hoursPerWeek, remainingWeeks, startDate, endDate, minFloorName, projectFrequencyType, projectRateType, tasks }) => {
18
+ const items = [];
19
+ if ((0, moment_1.default)(endDate).isBefore(startDate, 'day')) {
20
+ items.push(react_1.default.createElement("li", { key: "pastStartDate" }, "Please select a future end date or move your start date to a previous date."));
21
+ }
22
+ if ((0, moment_1.default)(startDate).isBefore((0, moment_1.default)(), 'day') && loggedHours <= 0) {
23
+ 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."));
24
+ }
25
+ if (!endDate) {
26
+ items.push(react_1.default.createElement("li", { key: "noEndDate" }, "Please edit end date above for this project."));
27
+ }
28
+ if (endDate && (0, moment_1.default)(endDate).isBefore((0, moment_1.default)(), 'day')) {
29
+ 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."));
30
+ }
31
+ if (loggedHours < minFloorHours && endDate && !weeklyHoursLogged && hoursPerWeek && (0, moment_1.default)(endDate).isSameOrAfter((0, moment_1.default)(), 'day')) {
32
+ 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."}`));
33
+ }
34
+ if (loggedHours <= minFloorHours) {
35
+ 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."));
36
+ }
37
+ if (weeklyHoursLogged && hoursToComplete && endDate && hoursPerWeek) {
38
+ items.push(react_1.default.createElement("li", { key: "onTrackMFH" },
39
+ "Great work, you are on track to complete this project on time! Continue to log ",
40
+ (0, ProgressBar_1.formatNumberingSystem)(hoursPerWeek),
41
+ " hours per week until the project end date, in order to stay on track for this project."));
42
+ }
43
+ if (loggedHours >= minFloorHours && loggedHours != 0 && !(loggedHours >= maxFloorHours)) {
44
+ items.push(react_1.default.createElement("li", { key: "completedMFH" },
45
+ "Congrats you have completed your project's ",
46
+ minFloorName,
47
+ "!"));
48
+ }
49
+ if ((loggedHours == maxFloorHours) && loggedHours != 0) {
50
+ items.push(react_1.default.createElement("li", { key: "completedMFH" }, "Congrats you have completed the Max Hours for this project!"));
51
+ }
52
+ if (loggedHours > maxFloorHours && loggedHours != 0) {
53
+ 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."));
54
+ }
55
+ if (projectRateType === "Fixed" && tasks && tasks.length > 0) {
56
+ const pendingTasks = tasks.filter((task) => task.statusId === 2);
57
+ const inProgressTasks = tasks.filter((task) => task.statusId === 3);
58
+ const completedTasks = tasks.filter((task) => task.statusId === 1);
59
+ if (completedTasks.length === 0) {
60
+ 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."));
61
+ }
62
+ if (completedTasks.length > 0 && (inProgressTasks.length > 0 || pendingTasks.length > 0)) {
63
+ 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."));
64
+ }
65
+ }
66
+ return items;
67
+ };
68
+ const calculateFixedEarnings = (projectFrequencyType, projectData, clientPortal) => {
69
+ const { expertRate, expertSowValue } = projectData;
70
+ return projectFrequencyType === "Recurring" ? '$' + `${clientPortal ? expertRate * 2 : expertRate}` + '/mo' : '$' + expertSowValue;
71
+ };
72
+ const CenterCardUI = ({ startDate, endDate, projectRateType, projectData, projectFrequencyType, project, adhocProject, clientPortal, }) => {
73
+ var _a, _b, _c, _d;
74
+ const date = (0, moment_1.default)();
75
+ const today = date.date();
76
+ const lastDayOfMonth = (0, moment_1.default)().endOf('month');
77
+ const daysInOneTimeProject = (endDate && startDate) ? Math.max((0, moment_1.default)(endDate).diff((0, moment_1.default)(startDate), 'days'), 0) : "-";
78
+ const daysLeftInOneTime = endDate ? Math.max((0, moment_1.default)(endDate).diff((0, moment_1.default)(date), 'days'), 0) : "-";
79
+ const { minFloorHours, maxFloorHours, loggedHours, weeklyHoursLogged, hoursPerWeek, minFloorName, hoursToComplete, remainingWeeks } = (0, ActiveProjectCard_1.getAllProjectRecommendationData)({ projectData });
80
+ const totalDays = lastDayOfMonth.date();
81
+ const payRate = (_a = projectData === null || projectData === void 0 ? void 0 : projectData.expertRate) !== null && _a !== void 0 ? _a : 0;
82
+ const tasks = (_b = project === null || project === void 0 ? void 0 : project.projectScopeTasks) !== null && _b !== void 0 ? _b : [];
83
+ return (react_1.default.createElement("div", { className: "w-full md:w-3/4 flex flex-col" },
84
+ react_1.default.createElement("div", { className: "flex flex-wrap overflow-auto" },
85
+ react_1.default.createElement(base_ui_1.Table, null,
86
+ react_1.default.createElement(base_ui_1.TableHead, null,
87
+ react_1.default.createElement(base_ui_1.TableRow, null,
88
+ react_1.default.createElement(base_ui_1.TableCell, null, "Start Date"),
89
+ react_1.default.createElement(base_ui_1.TableCell, null, "End Date"),
90
+ react_1.default.createElement(base_ui_1.TableCell, null, "Project Type"))),
91
+ react_1.default.createElement(base_ui_1.TableBody, null,
92
+ react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
93
+ ((0, moment_1.default)(startDate).isBefore((0, moment_1.default)(), 'day') && (Number(loggedHours) < 0)) ?
94
+ react_1.default.createElement(base_ui_1.TableCell, { className: "text-[#A73A43] font-bold text-lg" },
95
+ startDate ? (0, dayjs_1.default)(startDate).format('MM/DD/YYYY') : "-",
96
+ react_1.default.createElement("br", null),
97
+ "Past Due")
98
+ :
99
+ 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 : "-"),
100
+ endDate === null || (0, moment_1.default)(endDate).isBefore((0, moment_1.default)(), 'day') ?
101
+ 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,
102
+ (0, dayjs_1.default)(endDate).format('MM/DD/YYYY'),
103
+ " ",
104
+ react_1.default.createElement("br", null),
105
+ " Past Due") : "Submit an End Date")
106
+ :
107
+ 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') : "-"),
108
+ react_1.default.createElement(base_ui_1.TableCell, null, `${projectRateType} ${projectFrequencyType}`))),
109
+ react_1.default.createElement(base_ui_1.TableHead, null,
110
+ react_1.default.createElement(base_ui_1.TableRow, null,
111
+ react_1.default.createElement(base_ui_1.TableCell, null, "Estimated Expert Earnings"),
112
+ react_1.default.createElement(base_ui_1.TableCell, null, "Max Hours"),
113
+ react_1.default.createElement(base_ui_1.TableCell, null, minFloorName))),
114
+ react_1.default.createElement(base_ui_1.TableBody, null,
115
+ react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
116
+ 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)}`
117
+ : projectData && calculateFixedEarnings(projectFrequencyType, projectData, clientPortal)),
118
+ react_1.default.createElement(base_ui_1.TableCell, null, maxFloorHours ? (0, ProgressBar_1.formatNumberingSystem)(maxFloorHours) : "-"),
119
+ react_1.default.createElement(base_ui_1.TableCell, null, minFloorHours ? (0, ProgressBar_1.formatNumberingSystem)(minFloorHours) : "-"))),
120
+ react_1.default.createElement(base_ui_1.TableHead, null,
121
+ react_1.default.createElement(base_ui_1.TableRow, null,
122
+ react_1.default.createElement(base_ui_1.TableCell, null, "Days in Period"),
123
+ react_1.default.createElement(base_ui_1.TableCell, null, "Days left in Period"),
124
+ react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? "Hours Logged This Month" : "Hours Logged for Project"))),
125
+ react_1.default.createElement(base_ui_1.TableBody, null,
126
+ react_1.default.createElement(base_ui_1.TableRow, { className: "border border-solid" },
127
+ react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? totalDays : daysInOneTimeProject),
128
+ react_1.default.createElement(base_ui_1.TableCell, null, projectFrequencyType === "Recurring" ? (totalDays - today) : daysLeftInOneTime),
129
+ react_1.default.createElement(base_ui_1.TableCell, null, (_d = (0, ProgressBar_1.formatNumberingSystem)(loggedHours)) !== null && _d !== void 0 ? _d : "-"))))),
130
+ (!adhocProject || clientPortal) && react_1.default.createElement("div", { className: "flex flex-col mt-8 gap-y-2" },
131
+ react_1.default.createElement("h1", { className: "font-bold" }, "Recommendations"),
132
+ react_1.default.createElement("ul", { className: "list-disc ml-6" }, getRecommendations({ weeklyHoursLogged, hoursToComplete, loggedHours, minFloorHours, maxFloorHours, hoursPerWeek, remainingWeeks, startDate, endDate, minFloorName, projectFrequencyType, projectRateType, tasks })))));
133
+ };
134
+ exports.CenterCardUI = CenterCardUI;
@@ -1,52 +1,52 @@
1
- interface ActiveProjectDataType {
2
- projects: any[];
3
- image: string;
4
- freelancerId: number;
5
- freelancer: string;
6
- fullName: string;
7
- overallProjectHealth: string;
8
- sowClosed: number;
9
- upsell: number;
10
- crossSell: number;
11
- paroTenure: number;
12
- freelancerGoal: number;
13
- minFloorHoursCountDenominator: number;
14
- minFloorHoursCountNumerator: number;
15
- weeklyMinHoursLoggedCountDenominator: number;
16
- weeklyMinHoursLoggedCountNumerator: number;
17
- averageContractValue: number;
18
- projectsData: any[];
19
- monthlyEarnings: number;
20
- expertCurrMonthGoal: number;
21
- }
22
- interface EarningsTrackerAuthProps {
23
- freelancerId: number;
24
- isAuthenticated: boolean;
25
- getPendingProjectTagReviews?: any;
26
- getAllIrPrDetailsQuery?: any;
27
- getFreelancerEarningData?: any;
28
- updateProjectStatusMutation?: any;
29
- GetAllProjectIrprDetailsForFreelancerDocument?: any;
30
- updateParoProjectTagsMutation?: any;
31
- GetParoProjectsDocument?: any;
32
- updateProjectTagReviewStatusMutation?: any;
33
- getSowLazyQuery?: any;
34
- createChangeRequestMutation?: any;
35
- createOrUpdateRatingRequestMutation?: any;
36
- updateProjectTaskMutation?: any;
37
- submitProjectHoursMutation?: any;
38
- getAuth0Roles?: any;
39
- user?: any;
40
- router: any;
41
- }
42
- interface EarningsTrackerUnAuthProps {
43
- createChangeRequest?: any;
44
- updateProjectTask?: any;
45
- freelancerProjectDataUnauth?: ActiveProjectDataType;
46
- updateProjectStatus?: any;
47
- updateProjectTags?: any;
48
- sendParoSupportEmail?: any;
49
- submitProjectHoursLambda?: any;
50
- }
51
- export declare const EarningsTracker: ({ freelancerId, isAuthenticated, freelancerProjectDataUnauth, getPendingProjectTagReviews, getAllIrPrDetailsQuery, getFreelancerEarningData, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, sendParoSupportEmail, getSowLazyQuery, createChangeRequestMutation, createChangeRequest, createOrUpdateRatingRequestMutation, updateProjectTaskMutation, updateProjectTask, submitProjectHoursMutation, getAuth0Roles, submitProjectHoursLambda, user, router, }: EarningsTrackerAuthProps & EarningsTrackerUnAuthProps) => JSX.Element;
52
- export {};
1
+ interface ActiveProjectDataType {
2
+ projects: any[];
3
+ image: string;
4
+ freelancerId: number;
5
+ freelancer: string;
6
+ fullName: string;
7
+ overallProjectHealth: string;
8
+ sowClosed: number;
9
+ upsell: number;
10
+ crossSell: number;
11
+ paroTenure: number;
12
+ freelancerGoal: number;
13
+ minFloorHoursCountDenominator: number;
14
+ minFloorHoursCountNumerator: number;
15
+ weeklyMinHoursLoggedCountDenominator: number;
16
+ weeklyMinHoursLoggedCountNumerator: number;
17
+ averageContractValue: number;
18
+ projectsData: any[];
19
+ monthlyEarnings: number;
20
+ expertCurrMonthGoal: number;
21
+ }
22
+ interface EarningsTrackerAuthProps {
23
+ freelancerId: number;
24
+ isAuthenticated: boolean;
25
+ getPendingProjectTagReviews?: any;
26
+ getAllIrPrDetailsQuery?: any;
27
+ getFreelancerEarningData?: any;
28
+ updateProjectStatusMutation?: any;
29
+ GetAllProjectIrprDetailsForFreelancerDocument?: any;
30
+ updateParoProjectTagsMutation?: any;
31
+ GetParoProjectsDocument?: any;
32
+ updateProjectTagReviewStatusMutation?: any;
33
+ getSowLazyQuery?: any;
34
+ createChangeRequestMutation?: any;
35
+ createOrUpdateRatingRequestMutation?: any;
36
+ updateProjectTaskMutation?: any;
37
+ submitProjectHoursMutation?: any;
38
+ getAuth0Roles?: any;
39
+ user?: any;
40
+ router: any;
41
+ }
42
+ interface EarningsTrackerUnAuthProps {
43
+ createChangeRequest?: any;
44
+ updateProjectTask?: any;
45
+ freelancerProjectDataUnauth?: ActiveProjectDataType;
46
+ updateProjectStatus?: any;
47
+ updateProjectTags?: any;
48
+ sendParoSupportEmail?: any;
49
+ submitProjectHoursLambda?: any;
50
+ }
51
+ export declare const EarningsTracker: ({ freelancerId, isAuthenticated, freelancerProjectDataUnauth, getPendingProjectTagReviews, getAllIrPrDetailsQuery, getFreelancerEarningData, updateProjectStatusMutation, GetAllProjectIrprDetailsForFreelancerDocument, updateParoProjectTagsMutation, GetParoProjectsDocument, updateProjectTagReviewStatusMutation, updateProjectStatus, updateProjectTags, sendParoSupportEmail, getSowLazyQuery, createChangeRequestMutation, createChangeRequest, createOrUpdateRatingRequestMutation, updateProjectTaskMutation, updateProjectTask, submitProjectHoursMutation, getAuth0Roles, submitProjectHoursLambda, user, router, }: EarningsTrackerAuthProps & EarningsTrackerUnAuthProps) => JSX.Element;
52
+ export {};