placementt-core 1.300.623 → 1.300.624

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
@@ -92,8 +92,21 @@ export interface EventPhase {
92
92
  };
93
93
  };
94
94
  }
95
- export declare function getEventDatesAndPhases(event: Partial<ExternalEvent>, type: "student" | "employer" | "staff" | "school", attendee?: ExternalEventAttendee, attendeeId?: string, studentOrSchool?: ExternalEventStudent | ExternalEventCareersSchool): Promise<(EventPhase[] | "noDates") | {
96
- [key: string]: EventPhase[] | "noDates";
97
- }>;
95
+ export type PhaseProgress = {
96
+ completed: boolean | "waiting" | "none" | "partial";
97
+ late?: boolean;
98
+ msg?: string;
99
+ };
100
+ export interface EventPhasesResult {
101
+ dates: EventPhase[] | "noDates";
102
+ status: PhaseProgress;
103
+ }
104
+ export interface EventPhasesResultKeyed {
105
+ byAttendee: {
106
+ [key: string]: EventPhasesResult;
107
+ };
108
+ status: PhaseProgress;
109
+ }
110
+ export declare function getEventDatesAndPhases(event: Partial<ExternalEvent>, type: "student" | "employer" | "staff" | "school", attendee?: ExternalEventAttendee, attendeeId?: string, studentOrSchool?: ExternalEventStudent | ExternalEventCareersSchool): Promise<EventPhasesResult | EventPhasesResultKeyed>;
98
111
  export declare function isValidYYYYMMDD(dateStr: string): boolean;
99
112
  export {};
package/lib/util.js CHANGED
@@ -779,29 +779,59 @@ function getEventDates(event, type, studentOrSchool, attendee, attendeeId) {
779
779
  return (0, util_1.convertDate)(a.startDate, "date").getTime() - (0, util_1.convertDate)(b.startDate, "date").getTime();
780
780
  });
781
781
  }
782
- // Used for students and employers to get the dates of the event and what phases need doing.
783
- // Also used by the staff in the tables to identify dates and stages.
782
+ function aggregatePhaseProgress(phases) {
783
+ var _a, _b, _c;
784
+ const relevant = phases.filter((p) => p.completed !== "none" && p.completed !== false);
785
+ if (relevant.length === 0)
786
+ return { completed: "none", msg: "No tasks" };
787
+ if (relevant.every((p) => p.completed === true)) {
788
+ return { completed: true, msg: ((_a = [...relevant].reverse().find((p) => p.completed === true)) === null || _a === void 0 ? void 0 : _a.msg) || "All tasks completed" };
789
+ }
790
+ if (relevant.some((p) => p.completed === "partial")) {
791
+ return { completed: "partial", late: relevant.some((p) => p.late), msg: (_b = relevant.find((p) => p.completed === "partial")) === null || _b === void 0 ? void 0 : _b.msg };
792
+ }
793
+ if (relevant.some((p) => p.completed === "waiting")) {
794
+ return { completed: "waiting", late: relevant.some((p) => p.late), msg: (_c = relevant.find((p) => p.completed === "waiting")) === null || _c === void 0 ? void 0 : _c.msg };
795
+ }
796
+ return { completed: "none", msg: "No tasks" };
797
+ }
798
+ function aggregateDatesResult(result) {
799
+ if (result === "noDates")
800
+ return { completed: "waiting", msg: "No dates selected" };
801
+ const allPhases = result.flatMap((t) => Object.values(t.phases || {}).filter(Boolean));
802
+ return aggregatePhaseProgress(allPhases);
803
+ }
784
804
  async function getEventDatesAndPhases(event, type, attendee, attendeeId, studentOrSchool) {
785
- var _a, _b, _c, _d;
786
- const firebaseQuery = new firebaseQuery_1.default();
805
+ var _a, _b, _c;
787
806
  if ((((_a = event.studentInvites) === null || _a === void 0 ? void 0 : _a.matchStudents) || ((_b = event.schoolInvites) === null || _b === void 0 ? void 0 : _b.matchSchools)) && (!studentOrSchool || !attendee)) {
788
- const matchType = ((_c = event.studentInvites) === null || _c === void 0 ? void 0 : _c.matchStudents) ? "students" : ((_d = event.schoolInvites) === null || _d === void 0 ? void 0 : _d.matchSchools) ? "schools" : undefined;
807
+ const matchType = ((_c = event.studentInvites) === null || _c === void 0 ? void 0 : _c.matchStudents) ? "students" : "schools";
808
+ const firebaseQuery = new firebaseQuery_1.default();
789
809
  switch (type) {
790
810
  case "employer": {
791
- const matchedPhases = (matchType === "schools" ? Object.keys((attendee === null || attendee === void 0 ? void 0 : attendee.schools) || {}) : matchType === "students" ? ((attendee === null || attendee === void 0 ? void 0 : attendee.students) || []) : [])
811
+ 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) || []))
792
812
  .map(async (id) => {
793
813
  const schoolOrStudent = await firebaseQuery.getDocData([`externalEvent${(0, util_1.capitalise)(matchType)}`, id]);
794
- return [id, await getEventDatesAndPhases(event, type, attendee, attendeeId, schoolOrStudent)];
795
- });
796
- return Object.fromEntries(await Promise.all(matchedPhases));
814
+ const result = await getEventDatesAndPhases(event, type, attendee, attendeeId, schoolOrStudent);
815
+ return [id, result];
816
+ }));
817
+ const byAttendee = Object.fromEntries(entries);
818
+ return {
819
+ byAttendee,
820
+ status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
821
+ };
797
822
  }
798
823
  default: {
799
- const matchedPhases = (Array.isArray(studentOrSchool === null || studentOrSchool === void 0 ? void 0 : studentOrSchool.employers) ? studentOrSchool.employers : Object.keys((studentOrSchool === null || studentOrSchool === void 0 ? void 0 : studentOrSchool.employers) || {}))
824
+ 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) || {}))
800
825
  .map(async (id) => {
801
- const attendee = await firebaseQuery.getDocData(["externalEventAttendees", id]);
802
- return [id, await getEventDatesAndPhases(event, type, attendee, id, studentOrSchool)];
803
- });
804
- return Object.fromEntries(await Promise.all(matchedPhases));
826
+ const att = await firebaseQuery.getDocData(["externalEventAttendees", id]);
827
+ const result = await getEventDatesAndPhases(event, type, att, id, studentOrSchool);
828
+ return [id, result];
829
+ }));
830
+ const byAttendee = Object.fromEntries(entries);
831
+ return {
832
+ byAttendee,
833
+ status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
834
+ };
805
835
  }
806
836
  }
807
837
  }
@@ -828,7 +858,10 @@ async function getEventDatesAndPhases(event, type, attendee, attendeeId, student
828
858
  const dates = getEventDates(event, type, studentOrSchool, attendee, attendeeId);
829
859
  console.log("Event dates", type, dates);
830
860
  if (!dates || dates.length === 0) {
831
- return "noDates";
861
+ return {
862
+ dates: "noDates",
863
+ status: { completed: "waiting", msg: "No dates selected" },
864
+ };
832
865
  }
833
866
  // there may be a singular date and not recurring
834
867
  // the may be a singular date that is recurring
@@ -858,7 +891,13 @@ async function getEventDatesAndPhases(event, type, attendee, attendeeId, student
858
891
  }
859
892
  // Return all start and end dates of the event, including every phase that needs completing.
860
893
  // If nothing completing, still return.
861
- return result.sort((a, b) => a.startDate.localeCompare(b.startDate));
894
+ const sortedDates = result.length > 0
895
+ ? result.sort((a, b) => a.startDate.localeCompare(b.startDate))
896
+ : "noDates";
897
+ return {
898
+ dates: sortedDates,
899
+ status: aggregateDatesResult(sortedDates),
900
+ };
862
901
  }
863
902
  function isValidYYYYMMDD(dateStr) {
864
903
  // Must match YYYY-MM-DD exactly
package/lib/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AA6HA,0CAyCC;AAwCD,wCAqVC;AAoHD,sDAgBC;AAGD,oDAOC;AAED,8BAwBC;AAED,8DAgEC;AAED,oDAoBC;AAED,sCA4EC;AAoBD,wDAoHC;AAED,0CAiBC;AA5gCD,kDAAyC;AACzC,6EAAqD;AAErD,0CAAqE;AAErE,2CAA2C;AAgBpC,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAA0B,EAAsB,EAAE;;IAC5I,IAAI,KAAK,GAAe,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IAE9C,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAE1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACtF,IAAI,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,0CAAE,QAAQ,MAAK,QAAQ,EAAE,CAAC;YAC7E,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,6BAA6B,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChI,MAAM,iBAAiB,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAAG,SAAS,CAAC,iBAAiB,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,0CAAE,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA,CAAC;IAC/H,MAAM,yBAAyB,GAAG,SAAS,CAAC,iBAAiB,KAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,yBAAyB,0CAAE,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA,CAAC;IAE7I,MAAM,yBAAyB,GAAG,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,uBAAuB,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IACvH,MAAM,sBAAsB,GAAG,CAAC,SAAS,CAAC,cAAc,KAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gCAAgC,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IAEzJ,MAAM,mBAAmB,GAAG,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IAC3G,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,0BAA0B,0CAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA,CAAC;IAEvI,MAAM,aAAa,GAAG,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,SAAS,EAAE,IAAI,EAAE,IAAA,kBAAW,EAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAW,CAAC,EAAE,IAAA,iBAAK,EAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpR,IAAI,aAAa,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,KAAK,0CAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA,IAAI,SAAS,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACzJ,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,SAAS,CAAC,SAAS,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC9L,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,SAAS,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACvE,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IAGD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,yBAAyB,EAAE,CAAC;QAChJ,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,mBAAmB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChQ,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,6BAA6B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,iBAAiB,IAAI,yBAAyB,EAAE,CAAC;QAC5L,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,SAAS,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,cAAc,KAAK,IAAI,IAAI,6BAA6B,IAAI,iBAAiB,IAAI,yBAAyB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9R,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,6BAA6B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,iBAAiB,IAAI,sBAAsB,EAAE,CAAC;QAC/L,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1J,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,UAAU,CAAC,SAAS,0CAAE,SAAS,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1R,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,UAAU,CAAC,SAAS,0CAAE,SAAS,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACpP,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACJ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IAGD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AArGW,QAAA,qBAAqB,yBAqGhC;AAGF,SAAgB,eAAe,CAAC,CAAM,EAAE,CAAM;IAC1C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAGM,MAAM,uBAAuB,GAAG,CAAC,UAAkD,EAAE,oBAA2C,EAAE,EAAE;IACnI,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3D,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAc,CAAC,CAAC;IAEnB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAEjE,IAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,WAAW,EAAC,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACrH,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,eAAe,CAAA;AAC1B,CAAC,CAAA;AAjBQ,QAAA,uBAAuB,2BAiB/B;AAEE,MAAM,0BAA0B,GAAG,CAAC,YAAgC,EAAE,EAAE;IAC3E,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;IAElC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,CAAC,wBAAwB;IACvC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,EAAE;QACF,GAAG,OAAO;KACX,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,UAAU,IAAI,IAAI,CAAC,CAAC,2CAA2C;AACxE,CAAC,CAAC;AAfS,QAAA,0BAA0B,8BAenC;AAGJ,SAAgB,cAAc,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAC,0BAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,GAAC,wKAAwK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAA0X;IACjvB,MAAM,cAAc,GAAG,CAAC,KAAmB,EAAE,EAAE;QAC3C,8DAA8D;QAC9D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAK,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAU,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,IAAc,IAAI,OAAO,CAAC;oBAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;oBAEvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC;oBAClC,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,OAAO,GAAG,WAAW,OAAO,WAAW,CAAC;oBAC5C,CAAC;oBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACd,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC;oBAClC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,0DAA0D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;YAC3F,CAAC;YACD,OAAO;QACX,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACpG,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,CAAC,QAA6B,EAAE,MAA2B,EAAE,IAAuC,EAAE,EAAE;QACxI,IAAI,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAEjD,yDAAyD;QACzD,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,CAAW,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACzC,gHAAgH;QAChH,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAExD,MAAM,+BAA+B,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7D,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzD,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/B,IAAI,GAAG,GAAG,4BAA4B,GAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAE1D,iEAAiE;YACjE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,CAAW,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;YACH,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,CAAW,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,GAAG;aACX,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,+BAA+B,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAI,aAAa,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,IAAI,sBAAsB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IACnE,IAAI,sBAAsB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,IAAI,wBAAwB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;IAE9E,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAEtE,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,aAAa,GAAG,IAAI,CAAC;oBACrB,OAAO;gBACX,CAAC;gBACD,sBAAsB,GAAG,IAAI,CAAC;gBAC9B,OAAO;YACX,CAAC;YACD,mBAAmB;YACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC1B,sBAAsB,GAAG,IAAI,CAAC;gBAC9B,OAAO;YACX,CAAC;YACD,wBAAwB,GAAG,IAAI,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,aAAa,CAAC,CAAC,CAAW,CAAC;IAC/C,CAAC;IAED,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;SAuB1B,CAAC;IAEN,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,CAAC,CAAC;;;;+FAIgC,sBAAsB,CAAC,GAAG,KAAK,sBAAsB,CAAC,GAAG;;;;kBAItI,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpB,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,CAAC,CAAC;;8CAET,YAAY,uHAAuH,sBAAsB,CAAC,GAAG,6BAA6B,YAAY,sVAAsV,sBAAsB,CAAC,KAAK;kBACplB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpB,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,CAAC,CAAC;;oHAEqD,wBAAwB,CAAC,GAAG,sMAAsM,wBAAwB,CAAC,KAAK;kBAClW,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpB,MAAM,eAAe,GAAG,CAAC,iBAAiB,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC;;;;;;;kCAO3C,iBAAiB;kCACjB,uBAAuB;;;;;sBAKnC,yBAAyB;;qBAE1B,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvB,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,CAAC,CAAC;;;;;;;qFAO8B,sBAAsB;;;;;;qBAMtF,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvB,MAAM,2BAA2B,GAAG,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,CAAC,CAAC;QAC5E;;;;;;;;;kCAS0B,gBAAgB,CAAC,CAAC,CAAC,iFAAiF,gBAAgB,UAAU,CAAC,CAAC;YAC1J,oBAAoB,CAAC,CAAC,CAAC,wFAAwF,oBAAoB,KAAK,oBAAoB,MAAM,CAAC,CAAC,CAAC,EAAE;;;;;;qBAM1J,CAAC,CAAC;QACf,EAAE,CAAC;IAEP,OAAO;KACN,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFA8B8D,SAAS;;;;;;;;;;;;;;;;giBAgB8b,YAAY;;;;;;;;;;;;;;;;;8MAiB9V,KAAK;;;;;;;;;;;;yFAY1H,UAAU,CAAC,CAAC,CAAC,wlBAAwlB,UAAU,iFAAiF,CAAC,CAAC,CAAC,EAAE;gJAC9oB,aAAa;;;;;;;0EAOnF,eAAe;0EACf,iBAAiB;;;;;;;;;;;;;0EAajB,2BAA2B;;;;;;;;;;;;uMAYkG,YAAY,0CAA0C,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0CjQ,CAAC;AACT,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC9C,IAAI,OAAO,GAAY,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,GAAG,GAAG,GAAG,CAAC;IACrB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO;QACH,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK;KACxE,CAAC;AACN,CAAC,CAAA;AAxBY,QAAA,gBAAgB,oBAwB5B;AAEM,MAAM,kBAAkB,GAAG,CAAC,SAAwB,EAAS,EAAE;IAClE,+DAA+D;IAC/D,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAEpD,wFAAwF;IACxF,qFAAqF;IACrF,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,GAAC,CAAC,EAAG,CAAC,CAAC,CAAC;IAC7E,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC,GAAC,CAAC,EAAG,CAAC,CAAC,CAAC;IAE3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,GAAC,CAAC,EAAG,CAAC,CAAC,CAAC;IAEzE,6KAA6K;IAC7K,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,cAAc,CAAC,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,GAAC,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC;IAElI,0LAA0L;IAC1L,MAAM,aAAa,GAAG,kBAAkB,GAAG,cAAc,CAAC,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,GAAC,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1H,kFAAkF;IAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,GAAC,CAAC,EAAG,CAAC,CAAC,CAAC;IAEhE,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,GAAC,CAAC,EAAG,CAAC,CAAC,CAAC;IAE1E,yFAAyF;IACzF,kEAAkE;IAClE,MAAM,oBAAoB,GAAG,SAAS,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAC1F,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,IAAI,CAAC,CAAC;QACpC,GAAG,GAAG,CAAC,SAAS,CAAC,eAAe,IAAI,CAAC,CAAC;QACtC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,CAAC,CACvC,GAAG,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IAErC,yFAAyF;IACzF,OAAO,CAAC,KAAK,CAAC;QACV,kBAAkB,EAAE,kBAAkB;QACtC,oBAAoB,EAAE,oBAAoB;QAC1C,aAAa,EAAE,aAAa;QAC5B,QAAQ,EAAE,QAAQ;QAClB,oBAAoB,EAAE,oBAAoB;KAC7C,CAAC,CAAA;IACF,MAAM,wBAAwB,GAAG,CAC7B,IAAI,GAAG,kBAAkB;QACzB,GAAG,GAAG,oBAAoB;QAC1B,IAAI,GAAG,aAAa;QACpB,GAAG,GAAG,QAAQ,CACjB,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAA;IAC1D,IAAI,CAAC,oBAAoB;QAAE,OAAO,KAAK,CAAC,wBAAwB,GAAG,GAAG,CAAC,CAAC;IAExE,OAAO,KAAK,CAAC,wBAAwB,GAAG,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAA;AAjDY,QAAA,kBAAkB,sBAiD9B;AAEM,MAAM,+BAA+B,GAAG,CAAC,SAA0B,EAAE,EAAE;IAE1E,MAAM,WAAW,GAAG,IAAA,wBAAgB,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,kBAAkB,GAAU,CAAC,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAC/C,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC;AAC5D,CAAC,CAAA;AAdY,QAAA,+BAA+B,mCAc3C;AAEM,MAAM,qBAAqB,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEpF,MAAM,KAAK,GAA2C,EAAE,CAAC;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc;QAC7D,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB;QAElE,KAAK,CAAC,IAAI,CAAC;YACP,SAAS,EAAE,IAAA,kBAAW,EAAC,KAAK,EAAE,UAAU,CAAW;YACnD,OAAO,EAAE,IAAA,kBAAW,EAAC,GAAG,EAAE,UAAU,CAAW;SAClD,CAAC,CAAC;IACP,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAjBW,QAAA,qBAAqB,yBAiBhC;AAGF,kGAAkG;AAClG,SAAgB,qBAAqB,CAAC,EAAC,SAAS,EAAE,OAAO,EAAyC;IAC9F,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/F,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,EAAE,CAAC;QACJ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACT,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,EAAE,CAAC;QACR,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,+IAA+I;AAC/I,SAAgB,oBAAoB,CAAC,IAAY,EAAE,MAAgB;IAC/D,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;SACtC,cAAc,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;SAC1D,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEtB,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW,EAAE,MAAM,GAAG,EAAE;IAChD,2BAA2B;IAC3B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE5B,yCAAyC;IACzC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,iBAAiB;IACjB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC;IAEhC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvE,2BAA2B;IAC3B,OAAO,CACL,GAAG;QACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CACZ,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CACrC,KAAiB,EACjB,KAAY,EACZ,IAAmC,EACnC,KAA6B,EAC7B,QAAmF;;IAEnF,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,UAAU,GAAG,IAAA,iBAAU,EAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IAEhD,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAW,CAAC;IAE5D,IAAI,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,aAAa,KAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAE,QAAiC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAE,QAAkC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/M,OAAO,EAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,0CAA0C,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,EAAC,CAAC;IAC7H,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzJ,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,IAAA,kBAAW,EAAC,IAAA,kBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAS,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3Q,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,WAAW,0CAAG,IAAI,GAAC,IAAA,iBAAU,EAAC,KAAK,CAAiB,CAAC,CAAC;IAC9E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAAU,oBAAoB,EAAC,CAAC;IAE3G,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAC,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,MAAA,MAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAiB,0CAAG,KAAK,CAAC,KAAK,CAAC,0CAAG,IAAI,GAAC,IAAA,iBAAU,EAAC,KAAK,CAAiB,CAAC,CAAC;IAExG,IAAI,CAAC,SAAS;QAAE,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,UAAU,oBAAoB,EAAC,CAAC;IAE1G,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD,mBAAmB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACnC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACjC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7G,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,kBAAkB,EAAC,CAAC;IACnE,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAClG,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,QAAQ,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAE1G,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,UAAU,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAC,CAAC;AACpG,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAA6B,EAAE,OAAyD,EAAE,QAAgC;IAC3J,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO;IAE7B,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAW,CAAC;IAE5D,IAAI,KAAK,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,EAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,EAAC,CAAC;QACrJ,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK;YAAE,OAAO;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAA2C,CAAC;QACpW,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,OAAO;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAA2C,CAAC;QACnW,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,aAAa,CAAC,KAA6B,EAAE,IAA2C,EAAE,eAAiE,EAAE,QAAgC,EAAE,UAAmB;;IAC9N,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAEhC,IAAI,OAAO,GAA8C,EAAE,CAAC;IAE5D,6BAA6B;IAC7B,IAAI,KAAK,CAAC,eAAe,KAAK,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAA,kBAAW,EAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAS,CAAC;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC;YACtD,SAAS,CAAC,CAAC;YACP,IAAA,kBAAW,EAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,CAAS,CAAC;QAEtE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,gBAAgB;QAC3F,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,MAAM,GAA8C,EAAE,CAAC;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;gBACxC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;gBACrC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAChC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACR,SAAS,EAAE,IAAA,kBAAW,EAAC,KAAK,EAAE,UAAU,CAAW;gBACnD,OAAO,EAAE,IAAA,kBAAW,EAAC,GAAG,EAAE,UAAU,CAAW;aAClD,CAAC,CAAC;QACP,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,0BAA0B;IAC1B,IAAI,KAAK,CAAC,eAAe,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,aAAa,MAAI,MAAA,KAAK,CAAC,aAAa,0CAAE,YAAY,CAAA,CAAC,CAAC,EAAE,CAAC;QACtM,OAAO,GAAG,CAAC,EAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,IAAI,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,YAAY,KAAI,eAAe,IAAI,UAAU,EAAE,CAAC;YACrE,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC;YAChD,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;YAExD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK;gBAAE,OAAO,EAAE,CAAC;YAChD,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QAC9C,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAAE,OAAO,EAAE,CAAC;YAC/B,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC,wBAAwB;YAC3D,MAAM,QAAQ,GAAG,MAAA,MAAC,eAA8C,aAA9C,eAAe,uBAAf,eAAe,CAAiC,SAAS,0CAAG,UAAU,CAAC,0CAAE,KAAK,CAAC;YACjG,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;YACzB,OAAO,GAAG,QAAQ,CAAC;QACvB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,yBAAyB;IACzB,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,eAAe,EAAE,CAAC;QACpG,IAAI,CAAC,eAAe,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtC,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,0BAA0B;IAC1B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzB,OAAQ,IAAA,kBAAW,EAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC,OAAO,EAAE,GAAI,IAAA,kBAAW,EAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC,OAAO,EAAE,CAAC;IACvH,CAAC,CAAC,CAAC;AACP,CAAC;AAiBD,4FAA4F;AAC5F,qEAAqE;AAE9D,KAAK,UAAU,sBAAsB,CACxC,KAA6B,EAC7B,IAA2C,EAC3C,QAAgC,EAChC,UAAmB,EACnB,eAAiE;;IAEjE,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAE1C,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,aAAa,MAAI,MAAA,KAAK,CAAC,aAAa,0CAAE,YAAY,CAAA,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChH,MAAM,SAAS,GAAG,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,aAAa,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,YAAY,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QAE9H,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,MAAM,aAAa,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,KAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9I,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;oBACd,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,gBAAgB,IAAA,iBAAU,EAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAA+B,CAAA;oBACnI,OAAO,CAAC,EAAE,EAAE,MAAM,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,CAA+B,CAAC,CAAC;gBAChI,CAAC,CAAsC,CAAC;gBAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,KAAI,EAAE,CAAC,CAAC;qBACxI,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;oBACd,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAA0B,CAAA;oBACxG,OAAO,CAAC,EAAE,EAAE,MAAM,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,CAA+B,CAAC,CAAC;gBACxH,CAAC,CAAsC,CAAC;gBAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvD,MAAM,kBAAkB,GAAG,KAAK,CAAC,6BAA6B,CAAC;IAE/D,MAAM,YAAY,GAAG,CACjB,MAAiC,EACjC,KAAa,EACb,KAAa,EACb,GAAW,EACb,EAAE;QACA,MAAM,QAAQ,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACjJ,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;YAAE,OAAO;QAErC,MAAM,YAAY,GAAc;YAC5B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,KAAK;SACf,CAAC;QAGF,YAAY,CAAC,MAAM,GAAG;YAClB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACrH,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9H,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;SAC3H,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,YAA0B,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEhF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,iDAAiD;IAEjD,+CAA+C;IAE/C,8BAA8B;IAE9B,qCAAqC;IAErC,IAAI,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAC5F,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,mEAAmE;YACnE,0DAA0D;YAC1D,YAAY,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;SAAM,CAAC;QACR,4BAA4B;QAExB,gDAAgD;QAChD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,IAAA,kBAAW,EACzB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACb,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;aACnB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CACnD,CACJ,CAAC,EACF,UAAU,CACH,CAAC;QACZ,MAAM,QAAQ,GAAG,IAAA,kBAAW,EAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAW,CAAC;QAEtL,YAAY,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAGD,4FAA4F;IAC5F,uCAAuC;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,eAAe,CAAC,OAAe;IAC3C,gCAAgC;IAChC,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,wBAAwB;IACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAEtD,OAAO,CACH,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI;QAC9B,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,CAC5B,CAAC;AACN,CAAC"}
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.623",
5
+ "version": "1.300.624",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
package/src/util.ts CHANGED
@@ -899,38 +899,90 @@ export interface EventPhase {
899
899
  // Used for students and employers to get the dates of the event and what phases need doing.
900
900
  // Also used by the staff in the tables to identify dates and stages.
901
901
 
902
+ export type PhaseProgress = {
903
+ completed: boolean | "waiting" | "none" | "partial";
904
+ late?: boolean;
905
+ msg?: string;
906
+ }
907
+
908
+ export interface EventPhasesResult {
909
+ dates: EventPhase[] | "noDates";
910
+ status: PhaseProgress; // rolled-up status for this result
911
+ }
912
+
913
+ export interface EventPhasesResultKeyed {
914
+ byAttendee: { [key: string]: EventPhasesResult };
915
+ status: PhaseProgress; // rolled-up status across ALL attendees
916
+ }
917
+
918
+ function aggregatePhaseProgress(phases: PhaseProgress[]): PhaseProgress {
919
+ const relevant = phases.filter((p) => p.completed !== "none" && p.completed !== false);
920
+
921
+ if (relevant.length === 0) return { completed: "none", msg: "No tasks" };
922
+ if (relevant.every((p) => p.completed === true)) {
923
+ return { completed: true, msg: [...relevant].reverse().find((p) => p.completed === true)?.msg || "All tasks completed"};
924
+ }
925
+ if (relevant.some((p) => p.completed === "partial")) {
926
+ return { completed: "partial", late: relevant.some((p) => p.late), msg: relevant.find((p) => p.completed === "partial")?.msg };
927
+ }
928
+ if (relevant.some((p) => p.completed === "waiting")) {
929
+ return { completed: "waiting", late: relevant.some((p) => p.late), msg: relevant.find((p) => p.completed === "waiting")?.msg };
930
+ }
931
+ return { completed: "none", msg: "No tasks" };
932
+ }
933
+
934
+ function aggregateDatesResult(result: EventPhase[] | "noDates"): PhaseProgress {
935
+ if (result === "noDates") return { completed: "waiting", msg: "No dates selected" };
936
+ const allPhases = result.flatMap((t) => Object.values(t.phases || {}).filter(Boolean) as PhaseProgress[]);
937
+ return aggregatePhaseProgress(allPhases);
938
+ }
939
+
902
940
  export async function getEventDatesAndPhases(
903
941
  event: Partial<ExternalEvent>,
904
- type: "student"|"employer"|"staff"|"school",
942
+ type: "student" | "employer" | "staff" | "school",
905
943
  attendee?: ExternalEventAttendee,
906
944
  attendeeId?: string,
907
- studentOrSchool?: ExternalEventStudent|ExternalEventCareersSchool,
908
- ): Promise<(EventPhase[]|"noDates")|{[key: string]: EventPhase[]|"noDates"}> {
909
- const firebaseQuery = new FirebaseQuery();
945
+ studentOrSchool?: ExternalEventStudent | ExternalEventCareersSchool,
946
+ ): Promise<EventPhasesResult | EventPhasesResultKeyed> {
910
947
 
911
948
  if ((event.studentInvites?.matchStudents || event.schoolInvites?.matchSchools) && (!studentOrSchool || !attendee)) {
912
- const matchType = event.studentInvites?.matchStudents ? "students" : event.schoolInvites?.matchSchools ? "schools" : undefined
913
-
949
+ const matchType = event.studentInvites?.matchStudents ? "students" : "schools";
950
+ const firebaseQuery = new FirebaseQuery();
914
951
  switch (type) {
915
952
  case "employer": {
916
- const matchedPhases = (matchType === "schools" ? Object.keys(attendee?.schools || {}) : matchType === "students" ? (attendee?.students || []) : [])
917
- .map(async (id) => {
918
- const schoolOrStudent = await firebaseQuery.getDocData([`externalEvent${capitalise(matchType)}`, id]) as ExternalEventCareersSchool
919
- return [id, await getEventDatesAndPhases(event, type, attendee, attendeeId, schoolOrStudent) as (EventPhase[] | "noDates")];
920
- }) as Promise<[string, EventPhase[]]>[];
921
- return Object.fromEntries(await Promise.all(matchedPhases));
953
+ const entries = await Promise.all(
954
+ (matchType === "schools" ? Object.keys(attendee?.schools || {}) : (attendee?.students || []))
955
+ .map(async (id) => {
956
+ const schoolOrStudent = await firebaseQuery.getDocData([`externalEvent${capitalise(matchType)}`, id]) as ExternalEventCareersSchool;
957
+ const result = await getEventDatesAndPhases(event, type, attendee, attendeeId, schoolOrStudent) as EventPhasesResult;
958
+ return [id, result] as [string, EventPhasesResult];
959
+ })
960
+ );
961
+ const byAttendee = Object.fromEntries(entries);
962
+ return {
963
+ byAttendee,
964
+ status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
965
+ };
922
966
  }
923
967
  default: {
924
- const matchedPhases = (Array.isArray(studentOrSchool?.employers) ? studentOrSchool.employers : Object.keys(studentOrSchool?.employers || {}))
925
- .map(async (id) => {
926
- const attendee = await firebaseQuery.getDocData(["externalEventAttendees", id]) as ExternalEventAttendee
927
- return [id, await getEventDatesAndPhases(event, type, attendee, id, studentOrSchool) as (EventPhase[] | "noDates")];
928
- }) as Promise<[string, EventPhase[]]>[];
929
- return Object.fromEntries(await Promise.all(matchedPhases));
968
+ const entries = await Promise.all(
969
+ (Array.isArray(studentOrSchool?.employers) ? studentOrSchool.employers : Object.keys(studentOrSchool?.employers || {}))
970
+ .map(async (id) => {
971
+ const att = await firebaseQuery.getDocData(["externalEventAttendees", id]) as ExternalEventAttendee;
972
+ const result = await getEventDatesAndPhases(event, type, att, id, studentOrSchool) as EventPhasesResult;
973
+ return [id, result] as [string, EventPhasesResult];
974
+ })
975
+ );
976
+ const byAttendee = Object.fromEntries(entries);
977
+ return {
978
+ byAttendee,
979
+ status: aggregatePhaseProgress(Object.values(byAttendee).map((r) => r.status)),
980
+ };
930
981
  }
931
982
  }
932
983
  }
933
984
 
985
+
934
986
  const result: EventPhase[] = [];
935
987
 
936
988
  const rolePrefix = type === "staff" ? undefined : type;
@@ -969,15 +1021,15 @@ export async function getEventDatesAndPhases(
969
1021
  console.log("Event dates", type, dates);
970
1022
 
971
1023
  if (!dates || dates.length === 0) {
972
- return "noDates";
1024
+ return {
1025
+ dates: "noDates",
1026
+ status: { completed: "waiting", msg: "No dates selected" },
1027
+ };
973
1028
  }
974
1029
 
975
1030
  // there may be a singular date and not recurring
976
-
977
1031
  // the may be a singular date that is recurring
978
-
979
1032
  // there may be multiple dates
980
-
981
1033
  // Loop through all dates that exist.
982
1034
 
983
1035
  if (treatIndependently || dates.length === 1) {
@@ -1014,7 +1066,15 @@ export async function getEventDatesAndPhases(
1014
1066
 
1015
1067
  // Return all start and end dates of the event, including every phase that needs completing.
1016
1068
  // If nothing completing, still return.
1017
- return result.sort((a, b) => a.startDate.localeCompare(b.startDate));
1069
+
1070
+ const sortedDates: EventPhase[] | "noDates" = result.length > 0
1071
+ ? result.sort((a, b) => a.startDate.localeCompare(b.startDate))
1072
+ : "noDates";
1073
+
1074
+ return {
1075
+ dates: sortedDates,
1076
+ status: aggregateDatesResult(sortedDates),
1077
+ };
1018
1078
  }
1019
1079
 
1020
1080
  export function isValidYYYYMMDD(dateStr: string): boolean {