placementt-core 1.300.626 → 1.300.628

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.
package/lib/util.d.ts CHANGED
@@ -101,6 +101,10 @@ export interface EventPhasesResult {
101
101
  dates: EventPhase[] | "noDates";
102
102
  status: PhaseProgress;
103
103
  hasTasks: boolean;
104
+ chipState: {
105
+ label: string;
106
+ severity: "default" | "info" | "error" | "warning" | "success";
107
+ };
104
108
  }
105
109
  export interface EventPhasesResultKeyed {
106
110
  byAttendee: {
@@ -108,6 +112,10 @@ export interface EventPhasesResultKeyed {
108
112
  };
109
113
  status: PhaseProgress;
110
114
  hasTasks: boolean;
115
+ chipState: {
116
+ label: string;
117
+ severity: "default" | "info" | "error" | "warning" | "success";
118
+ };
111
119
  }
112
120
  export declare function getEventDatesAndPhases(event: Partial<ExternalEvent>, type: "student" | "employer" | "staff" | "school", attendee?: ExternalEventAttendee, attendeeId?: string, studentOrSchool?: ExternalEventStudent | ExternalEventCareersSchool): Promise<EventPhasesResult | EventPhasesResultKeyed>;
113
121
  export declare function isValidYYYYMMDD(dateStr: string): boolean;
package/lib/util.js CHANGED
@@ -806,7 +806,7 @@ function aggregateDatesResult(result) {
806
806
  };
807
807
  }
808
808
  async function getEventDatesAndPhases(event, type, attendee, attendeeId, studentOrSchool) {
809
- var _a, _b, _c, _d, _e;
809
+ var _a, _b, _c, _d, _e, _f;
810
810
  if ((((_a = event.studentInvites) === null || _a === void 0 ? void 0 : _a.matchStudents) || ((_b = event.schoolInvites) === null || _b === void 0 ? void 0 : _b.matchSchools)) &&
811
811
  (((_c = event.studentInvites) === null || _c === void 0 ? void 0 : _c.perMatchTasks) || ((_d = event.schoolInvites) === null || _d === void 0 ? void 0 : _d.perMatchTasks)) &&
812
812
  (!studentOrSchool || !attendee)) {
@@ -814,31 +814,69 @@ async function getEventDatesAndPhases(event, type, attendee, attendeeId, student
814
814
  const firebaseQuery = new firebaseQuery_1.default();
815
815
  switch (type) {
816
816
  case "employer": {
817
- const entries = await Promise.all((matchType === "schools" ? Object.keys((attendee === null || attendee === void 0 ? void 0 : attendee.schools) || {}) : ((attendee === null || attendee === void 0 ? void 0 : attendee.students) || []))
818
- .map(async (id) => {
817
+ const ids = matchType === "schools"
818
+ ? Object.keys((attendee === null || attendee === void 0 ? void 0 : attendee.schools) || {})
819
+ : ((attendee === null || attendee === void 0 ? void 0 : attendee.students) || []);
820
+ if (ids.length === 0) {
821
+ return {
822
+ byAttendee: {},
823
+ status: { completed: "none", msg: "No matches assigned yet" },
824
+ hasTasks: false,
825
+ chipState: { label: "Awaiting Match", severity: "default" },
826
+ };
827
+ }
828
+ const entries = await Promise.all(ids.map(async (id) => {
819
829
  const schoolOrStudent = await firebaseQuery.getDocData([`externalEvent${(0, util_1.capitalise)(matchType)}`, id]);
820
830
  const result = await getEventDatesAndPhases(event, type, attendee, attendeeId, schoolOrStudent);
821
831
  return [id, result];
822
832
  }));
823
- const byAttendee = Object.fromEntries(entries);
833
+ const byAttendeeEmployer = Object.fromEntries(entries);
834
+ const employerStatus = aggregatePhaseProgress(Object.values(byAttendeeEmployer).map((r) => r.status));
835
+ const employerHasTasks = Object.values(byAttendeeEmployer).some((r) => r.hasTasks);
836
+ const employerWorstChip = Object.values(byAttendeeEmployer)
837
+ .map((r) => r.chipState)
838
+ .sort((a, b) => {
839
+ const order = ["error", "warning", "default", "success"];
840
+ return order.indexOf(a.severity) - order.indexOf(b.severity);
841
+ })[0] || { label: "No Tasks", severity: "default" };
824
842
  return {
825
- byAttendee,
826
- status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
827
- hasTasks: Object.values(byAttendee).some((r) => r.hasTasks),
843
+ byAttendee: byAttendeeEmployer,
844
+ status: employerStatus,
845
+ hasTasks: employerHasTasks,
846
+ chipState: employerWorstChip,
828
847
  };
829
848
  }
830
849
  default: {
831
- const entries = await Promise.all((Array.isArray(studentOrSchool === null || studentOrSchool === void 0 ? void 0 : studentOrSchool.employers) ? studentOrSchool.employers : Object.keys((studentOrSchool === null || studentOrSchool === void 0 ? void 0 : studentOrSchool.employers) || {}))
832
- .map(async (id) => {
850
+ const ids = Array.isArray(studentOrSchool === null || studentOrSchool === void 0 ? void 0 : studentOrSchool.employers)
851
+ ? studentOrSchool.employers
852
+ : Object.keys((studentOrSchool === null || studentOrSchool === void 0 ? void 0 : studentOrSchool.employers) || {});
853
+ if (ids.length === 0) {
854
+ return {
855
+ byAttendee: {},
856
+ status: { completed: "none", msg: "No matches assigned yet" },
857
+ hasTasks: false,
858
+ chipState: { label: "Awaiting Match", severity: "default" },
859
+ };
860
+ }
861
+ const entries = await Promise.all(ids.map(async (id) => {
833
862
  const att = await firebaseQuery.getDocData(["externalEventAttendees", id]);
834
863
  const result = await getEventDatesAndPhases(event, type, att, id, studentOrSchool);
835
864
  return [id, result];
836
865
  }));
837
- const byAttendee = Object.fromEntries(entries);
866
+ const byAttendeeDefault = Object.fromEntries(entries);
867
+ const defaultStatus = aggregatePhaseProgress(Object.values(byAttendeeDefault).map((r) => r.status));
868
+ const defaultHasTasks = Object.values(byAttendeeDefault).some((r) => r.hasTasks);
869
+ const defaultWorstChip = Object.values(byAttendeeDefault)
870
+ .map((r) => r.chipState)
871
+ .sort((a, b) => {
872
+ const order = ["error", "warning", "default", "success"];
873
+ return order.indexOf(a.severity) - order.indexOf(b.severity);
874
+ })[0] || { label: "No Tasks", severity: "default" };
838
875
  return {
839
- byAttendee,
840
- status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
841
- hasTasks: Object.values(byAttendee).some((r) => r.hasTasks),
876
+ byAttendee: byAttendeeDefault,
877
+ status: defaultStatus,
878
+ hasTasks: defaultHasTasks,
879
+ chipState: defaultWorstChip,
842
880
  };
843
881
  }
844
882
  }
@@ -870,12 +908,9 @@ async function getEventDatesAndPhases(event, type, attendee, attendeeId, student
870
908
  dates: "noDates",
871
909
  status: { completed: "waiting", msg: "No dates selected" },
872
910
  hasTasks: false,
911
+ chipState: { label: "Awaiting Dates", severity: "default" },
873
912
  };
874
913
  }
875
- // there may be a singular date and not recurring
876
- // the may be a singular date that is recurring
877
- // there may be multiple dates
878
- // Loop through all dates that exist.
879
914
  if (treatIndependently || dates.length === 1) {
880
915
  for (let i = 0; i < dates.length; i++) {
881
916
  const dateRange = dates[i];
@@ -883,31 +918,46 @@ async function getEventDatesAndPhases(event, type, attendee, attendeeId, student
883
918
  const end = event.dateSelectionType === "single-day" ? start : (dateRange.endDate || start);
884
919
  if (!start)
885
920
  continue;
886
- // If treated independently, push every date we have to the object.
887
- // However, only say required if within correct date range
888
921
  checkAndPush(["pre", "during", "post"], i, start, end);
889
922
  }
890
923
  }
891
924
  else {
892
- // not treated independently
893
- // More than one date, not treated independently
894
925
  console.log("FORMAT DATES");
895
926
  const firstDate = (0, util_1.convertDate)(new Date(Math.min(...dates.flatMap((d) => [d.startDate, d.endDate]
896
927
  .filter(Boolean)
897
928
  .map((d) => new Date(d).getTime())))), "dbstring");
898
- const lastDate = (0, util_1.convertDate)(new Date(Math.max(...dates.flatMap((d) => [d.startDate, d.endDate].filter(Boolean).map((d) => new Date(d).getTime())))), "dbstring");
929
+ const lastDate = (0, util_1.convertDate)(new Date(Math.max(...dates.flatMap((d) => [d.startDate, d.endDate]
930
+ .filter(Boolean)
931
+ .map((d) => new Date(d).getTime())))), "dbstring");
899
932
  checkAndPush(["pre", "during", "post"], 0, firstDate, lastDate);
900
933
  }
901
- // Return all start and end dates of the event, including every phase that needs completing.
902
- // If nothing completing, still return.
903
934
  const sortedDates = result.length > 0
904
935
  ? result.sort((a, b) => a.startDate.localeCompare(b.startDate))
905
936
  : "noDates";
906
937
  const { status, hasTasks } = aggregateDatesResult(sortedDates);
938
+ let chipState;
939
+ if (!hasTasks) {
940
+ chipState = { label: "No Tasks", severity: "default" };
941
+ }
942
+ else if (status.completed === true) {
943
+ chipState = { label: "Tasks Completed", severity: "success" };
944
+ }
945
+ else if (Array.isArray(sortedDates)) {
946
+ const earliestIncomplete = sortedDates
947
+ .flatMap((d) => ["pre", "during", "post"].map((p) => { var _a; return ({ phase: p, data: (_a = d.phases) === null || _a === void 0 ? void 0 : _a[p] }); }))
948
+ .find((p) => p.data && p.data.completed !== "none" && p.data.completed !== true && p.data.completed !== false);
949
+ chipState = earliestIncomplete
950
+ ? { label: `Awaiting ${earliestIncomplete.phase}-event tasks`, severity: ((_f = earliestIncomplete.data) === null || _f === void 0 ? void 0 : _f.late) ? "error" : "warning" }
951
+ : { label: "No Tasks", severity: "default" };
952
+ }
953
+ else {
954
+ chipState = { label: "Awaiting Tasks", severity: "default" };
955
+ }
907
956
  return {
908
957
  dates: sortedDates,
909
958
  status,
910
959
  hasTasks,
960
+ chipState,
911
961
  };
912
962
  }
913
963
  function isValidYYYYMMDD(dateStr) {
package/lib/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.300.626",
5
+ "version": "1.300.628",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
package/src/util.ts CHANGED
@@ -909,12 +909,14 @@ export interface EventPhasesResult {
909
909
  dates: EventPhase[] | "noDates";
910
910
  status: PhaseProgress; // rolled-up status for this result
911
911
  hasTasks: boolean;
912
+ chipState: { label: string, severity: "default"|"info"|"error"|"warning"|"success"},
912
913
  }
913
914
 
914
915
  export interface EventPhasesResultKeyed {
915
916
  byAttendee: { [key: string]: EventPhasesResult };
916
917
  status: PhaseProgress; // rolled-up status across ALL attendees
917
918
  hasTasks: boolean;
919
+ chipState: { label: string, severity: "default"|"info"|"error"|"warning"|"success"},
918
920
  }
919
921
 
920
922
  function aggregatePhaseProgress(phases: PhaseProgress[]): PhaseProgress {
@@ -951,48 +953,88 @@ export async function getEventDatesAndPhases(
951
953
  studentOrSchool?: ExternalEventStudent | ExternalEventCareersSchool,
952
954
  ): Promise<EventPhasesResult | EventPhasesResultKeyed> {
953
955
 
954
- if ((event.studentInvites?.matchStudents || event.schoolInvites?.matchSchools) &&
955
- (event.studentInvites?.perMatchTasks || event.schoolInvites?.perMatchTasks) &&
956
- (!studentOrSchool || !attendee)) {
957
- const matchType = event.studentInvites?.matchStudents ? "students" : "schools";
958
- const firebaseQuery = new FirebaseQuery();
959
- switch (type) {
960
- case "employer": {
961
- const entries = await Promise.all(
962
- (matchType === "schools" ? Object.keys(attendee?.schools || {}) : (attendee?.students || []))
963
- .map(async (id) => {
956
+ if ((event.studentInvites?.matchStudents || event.schoolInvites?.matchSchools) &&
957
+ (event.studentInvites?.perMatchTasks || event.schoolInvites?.perMatchTasks) &&
958
+ (!studentOrSchool || !attendee)) {
959
+ const matchType = event.studentInvites?.matchStudents ? "students" : "schools";
960
+ const firebaseQuery = new FirebaseQuery();
961
+ switch (type) {
962
+ case "employer": {
963
+ const ids = matchType === "schools"
964
+ ? Object.keys(attendee?.schools || {})
965
+ : (attendee?.students || []);
966
+
967
+ if (ids.length === 0) {
968
+ return {
969
+ byAttendee: {},
970
+ status: { completed: "none", msg: "No matches assigned yet" },
971
+ hasTasks: false,
972
+ chipState: { label: "Awaiting Match", severity: "default" },
973
+ };
974
+ }
975
+
976
+ const entries = await Promise.all(
977
+ ids.map(async (id) => {
964
978
  const schoolOrStudent = await firebaseQuery.getDocData([`externalEvent${capitalise(matchType)}`, id]) as ExternalEventCareersSchool;
965
979
  const result = await getEventDatesAndPhases(event, type, attendee, attendeeId, schoolOrStudent) as EventPhasesResult;
966
980
  return [id, result] as [string, EventPhasesResult];
967
981
  })
968
- );
969
- const byAttendee = Object.fromEntries(entries);
970
- return {
971
- byAttendee,
972
- status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
973
- hasTasks: Object.values(byAttendee).some((r) => r.hasTasks),
974
- };
982
+ );
983
+ const byAttendeeEmployer = Object.fromEntries(entries);
984
+ const employerStatus = aggregatePhaseProgress(Object.values(byAttendeeEmployer).map((r) => r.status));
985
+ const employerHasTasks = Object.values(byAttendeeEmployer).some((r) => r.hasTasks);
986
+ const employerWorstChip = Object.values(byAttendeeEmployer)
987
+ .map((r) => r.chipState)
988
+ .sort((a, b) => {
989
+ const order = ["error", "warning", "default", "success"];
990
+ return order.indexOf(a.severity) - order.indexOf(b.severity);
991
+ })[0] || {label: "No Tasks", severity: "default"};
992
+ return {
993
+ byAttendee: byAttendeeEmployer,
994
+ status: employerStatus,
995
+ hasTasks: employerHasTasks,
996
+ chipState: employerWorstChip,
997
+ };
998
+ }
999
+ default: {
1000
+ const ids = Array.isArray(studentOrSchool?.employers)
1001
+ ? studentOrSchool.employers
1002
+ : Object.keys(studentOrSchool?.employers || {});
1003
+
1004
+ if (ids.length === 0) {
1005
+ return {
1006
+ byAttendee: {},
1007
+ status: { completed: "none", msg: "No matches assigned yet" },
1008
+ hasTasks: false,
1009
+ chipState: { label: "Awaiting Match", severity: "default" },
1010
+ };
1011
+ }
975
1012
 
976
- }
977
- default: {
978
- const entries = await Promise.all(
979
- (Array.isArray(studentOrSchool?.employers) ? studentOrSchool.employers : Object.keys(studentOrSchool?.employers || {}))
980
- .map(async (id) => {
1013
+ const entries = await Promise.all(
1014
+ ids.map(async (id) => {
981
1015
  const att = await firebaseQuery.getDocData(["externalEventAttendees", id]) as ExternalEventAttendee;
982
1016
  const result = await getEventDatesAndPhases(event, type, att, id, studentOrSchool) as EventPhasesResult;
983
1017
  return [id, result] as [string, EventPhasesResult];
984
1018
  })
985
- );
986
- const byAttendee = Object.fromEntries(entries);
987
- return {
988
- byAttendee,
989
- status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
990
- hasTasks: Object.values(byAttendee).some((r) => r.hasTasks),
991
- };
1019
+ );
1020
+ const byAttendeeDefault = Object.fromEntries(entries);
1021
+ const defaultStatus = aggregatePhaseProgress(Object.values(byAttendeeDefault).map((r) => r.status));
1022
+ const defaultHasTasks = Object.values(byAttendeeDefault).some((r) => r.hasTasks);
1023
+ const defaultWorstChip = Object.values(byAttendeeDefault)
1024
+ .map((r) => r.chipState)
1025
+ .sort((a, b) => {
1026
+ const order = ["error", "warning", "default", "success"];
1027
+ return order.indexOf(a.severity) - order.indexOf(b.severity);
1028
+ })[0] || { label: "No Tasks", severity: "default"};
1029
+ return {
1030
+ byAttendee: byAttendeeDefault,
1031
+ status: defaultStatus,
1032
+ hasTasks: defaultHasTasks,
1033
+ chipState: defaultWorstChip,
1034
+ };
1035
+ }
992
1036
  }
993
1037
  }
994
- }
995
-
996
1038
 
997
1039
  const result: EventPhase[] = [];
998
1040
 
@@ -1009,13 +1051,12 @@ if ((event.studentInvites?.matchStudents || event.schoolInvites?.matchSchools) &
1009
1051
  const userData = (rolePrefix && ["student", "school"].includes(rolePrefix)) ? studentOrSchool : rolePrefix === "employer" ? attendee : undefined;
1010
1052
  if (!userData || !rolePrefix) return;
1011
1053
 
1012
- const returnObject:EventPhase = {
1054
+ const returnObject: EventPhase = {
1013
1055
  startDate: start,
1014
1056
  endDate: end,
1015
1057
  index: index,
1016
1058
  };
1017
1059
 
1018
-
1019
1060
  returnObject.phases = {
1020
1061
  pre: phases.includes("pre") ? checkEventStageCompletion(returnObject, "pre", rolePrefix, event, userData) : undefined,
1021
1062
  during: phases.includes("during") ? checkEventStageCompletion(returnObject, "during", rolePrefix, event, userData) : undefined,
@@ -1036,28 +1077,19 @@ if ((event.studentInvites?.matchStudents || event.schoolInvites?.matchSchools) &
1036
1077
  dates: "noDates",
1037
1078
  status: { completed: "waiting", msg: "No dates selected" },
1038
1079
  hasTasks: false,
1080
+ chipState: { label: "Awaiting Dates", severity: "default" },
1039
1081
  };
1040
1082
  }
1041
1083
 
1042
- // there may be a singular date and not recurring
1043
- // the may be a singular date that is recurring
1044
- // there may be multiple dates
1045
- // Loop through all dates that exist.
1046
-
1047
1084
  if (treatIndependently || dates.length === 1) {
1048
1085
  for (let i = 0; i < dates.length; i++) {
1049
1086
  const dateRange = dates[i];
1050
1087
  const start = dateRange.startDate;
1051
1088
  const end = event.dateSelectionType === "single-day" ? start : (dateRange.endDate || start);
1052
1089
  if (!start) continue;
1053
- // If treated independently, push every date we have to the object.
1054
- // However, only say required if within correct date range
1055
1090
  checkAndPush(["pre", "during", "post"], i, start, end);
1056
1091
  }
1057
1092
  } else {
1058
- // not treated independently
1059
-
1060
- // More than one date, not treated independently
1061
1093
  console.log("FORMAT DATES");
1062
1094
 
1063
1095
  const firstDate = convertDate(
@@ -1070,24 +1102,47 @@ if ((event.studentInvites?.matchStudents || event.schoolInvites?.matchSchools) &
1070
1102
  )),
1071
1103
  "dbstring"
1072
1104
  ) as string;
1073
- const lastDate = convertDate(new Date(Math.max(...dates.flatMap((d) => [d.startDate, d.endDate].filter(Boolean).map((d) => new Date(d as string).getTime())))), "dbstring") as string;
1105
+ const lastDate = convertDate(
1106
+ new Date(Math.max(
1107
+ ...dates.flatMap((d) =>
1108
+ [d.startDate, d.endDate]
1109
+ .filter(Boolean)
1110
+ .map((d) => new Date(d as string).getTime())
1111
+ )
1112
+ )),
1113
+ "dbstring"
1114
+ ) as string;
1074
1115
 
1075
1116
  checkAndPush(["pre", "during", "post"], 0, firstDate, lastDate);
1076
1117
  }
1077
1118
 
1078
-
1079
- // Return all start and end dates of the event, including every phase that needs completing.
1080
- // If nothing completing, still return.
1081
-
1082
1119
  const sortedDates: EventPhase[] | "noDates" = result.length > 0
1083
1120
  ? result.sort((a, b) => a.startDate.localeCompare(b.startDate))
1084
1121
  : "noDates";
1085
-
1122
+
1086
1123
  const { status, hasTasks } = aggregateDatesResult(sortedDates);
1124
+
1125
+ let chipState;
1126
+ if (!hasTasks) {
1127
+ chipState = { label: "No Tasks", severity: "default" };
1128
+ } else if (status.completed === true) {
1129
+ chipState = { label: "Tasks Completed", severity: "success" };
1130
+ } else if (Array.isArray(sortedDates)) {
1131
+ const earliestIncomplete = sortedDates
1132
+ .flatMap((d) => (["pre", "during", "post"] as Phase[]).map((p) => ({ phase: p, data: d.phases?.[p] })))
1133
+ .find((p) => p.data && p.data.completed !== "none" && p.data.completed !== true && p.data.completed !== false);
1134
+ chipState = earliestIncomplete
1135
+ ? {label: `Awaiting ${earliestIncomplete.phase}-event tasks`, severity: earliestIncomplete.data?.late ? "error" : "warning"}
1136
+ : {label: "No Tasks", severity: "default"};
1137
+ } else {
1138
+ chipState = { label: "Awaiting Tasks", severity: "default" };
1139
+ }
1140
+
1087
1141
  return {
1088
1142
  dates: sortedDates,
1089
1143
  status,
1090
1144
  hasTasks,
1145
+ chipState,
1091
1146
  };
1092
1147
  }
1093
1148