placementt-core 1.400.1094 → 1.400.1096

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.
@@ -1,5 +1,6 @@
1
1
  import { InstituteData } from "./typeDefinitions";
2
2
  import { ResolvedProducts } from "./productResolver";
3
+ import { SurveyGroupScope } from "./surveys/types";
3
4
  /**
4
5
  * Feature marketing: the things a customer already pays for but has never set
5
6
  * up, and whether now is the time to tell them about one.
@@ -16,6 +17,12 @@ import { ResolvedProducts } from "./productResolver";
16
17
  * is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
17
18
  * Marketing pitches `unconfigured` and nothing else.
18
19
  *
20
+ * The exception is a yearly deliverable with no setup behind it, like the
21
+ * impact report: there "adopted" is this year's, because last year's is not
22
+ * the thing being offered, and a campaign per academic year is exactly the
23
+ * cadence wanted. Campaign ids carry the academic year, so it comes round
24
+ * again on its own.
25
+ *
19
26
  * It is deliberately pure. Adoption is judged from the institute document plus
20
27
  * a handful of counts the caller fetches, and each entry says which counts it
21
28
  * needs (`needs`) so the backend cron fetches nothing a feature does not ask
@@ -23,8 +30,15 @@ import { ResolvedProducts } from "./productResolver";
23
30
  * dashboard reads the campaign it is handed. Neither side works adoption out
24
31
  * for itself.
25
32
  */
33
+ /**
34
+ * The switch for the whole engagement engine: the backend's weekly emails and
35
+ * the web app's homepage popup. Hardcoded on purpose. Nothing is sent and
36
+ * nothing is shown until this is true, and it is flipped in one place for both
37
+ * sides rather than deployed half at a time. Dry runs and Storybook ignore it.
38
+ */
39
+ export declare const ENGAGEMENT_ENGINE_ENABLED = false;
26
40
  /** Every feature the engine can market. Stable keys: they name campaign documents. */
27
- export type FeatureMarketingKey = "wexCohort" | "alumni" | "leavers" | "aspirations" | "parents" | "skills" | "activities" | "careersLibrary" | "guidance" | "events" | "employerPortal";
41
+ export type FeatureMarketingKey = "wexCohort" | "alumni" | "leavers" | "aspirations" | "parents" | "skills" | "activities" | "careersLibrary" | "guidance" | "events" | "employerPortal" | "impactReport";
28
42
  export declare const FEATURE_MARKETING_KEYS: FeatureMarketingKey[];
29
43
  /**
30
44
  * Counts a detector may need that are not on the institute document. The
@@ -47,6 +61,14 @@ export type FeatureMarketingCounts = {
47
61
  /** `users` where oId and lmiViews != null: students who have opened a job
48
62
  * profile in the careers library. */
49
63
  careersLibraryViewers?: number;
64
+ /** `placements` where oId. */
65
+ placements?: number;
66
+ /** `institutes` where trustLinks.{oId}.status or careersHubLinks.{oId}.status
67
+ * is approved: the schools under a trust or hub. */
68
+ schools?: number;
69
+ /** The scopes with at least one `surveyCycles` doc for the current academic
70
+ * year (see scopesWithCycles in the web app). */
71
+ surveyScopesThisYear?: SurveyGroupScope[];
50
72
  };
51
73
  export type FeatureMarketingCountKey = keyof FeatureMarketingCounts;
52
74
  export type FeatureMarketingContext = {
@@ -71,8 +93,13 @@ export type FeatureMarketingEntry = {
71
93
  /** The counts `adopted` reads. Anything not listed is not fetched. */
72
94
  needs: FeatureMarketingCountKey[];
73
95
  /** Whether this account has the feature at all. A feature nobody pays for
74
- * is not marketed, and neither is one an account type cannot run. */
96
+ * is not marketed, and neither is one an account type cannot run. Reads
97
+ * products only, never counts: it decides which counts get fetched. */
75
98
  offered: (ctx: FeatureMarketingContext) => boolean;
99
+ /** Whether there is anything behind the pitch yet, for a feature that
100
+ * shows the school its own data. Consulted once offered; absent means
101
+ * always ready. */
102
+ ready?: (ctx: FeatureMarketingContext) => boolean;
76
103
  /** Whether it has been set up, from the database and nothing else. */
77
104
  adopted: (ctx: FeatureMarketingContext) => boolean;
78
105
  /** When it is worth pitching. Empty means any time. */
@@ -86,12 +113,22 @@ export type FeatureMarketingEntry = {
86
113
  * adopted. `BREVO_TEMPLATE_UNSET` means the template has not been made
87
114
  * yet and that touch is skipped, not sent blank. */
88
115
  templateIds: number[];
116
+ /** Days after the campaign starts that each touch goes out, when the
117
+ * default cadence does not fit. Index-matched to `templateIds`. */
118
+ touchDelaysDays?: number[];
89
119
  };
90
120
  /** Placeholder for a Brevo template that has not been created yet. */
91
121
  export declare const BREVO_TEMPLATE_UNSET = 0;
92
122
  /** Days after the campaign starts that each touch goes out. Index-matched to
93
123
  * `templateIds`; a feature with fewer templates just stops sooner. */
94
124
  export declare const FEATURE_MARKETING_TOUCH_DELAYS_DAYS: number[];
125
+ /**
126
+ * The touch schedule for a feature: its own, or the default.
127
+ *
128
+ * @param {FeatureMarketingEntry} entry the feature.
129
+ * @return {number[]} days after the campaign start for each touch.
130
+ */
131
+ export declare const featureTouchDelays: (entry: FeatureMarketingEntry) => number[];
95
132
  /**
96
133
  * Whether a date falls inside any of a feature's seasons.
97
134
  *
@@ -125,7 +162,9 @@ export type FeatureAdoption = {
125
162
  offered: boolean;
126
163
  adopted: boolean;
127
164
  inSeason: boolean;
128
- /** Offered, not adopted and in season: a campaign could start today. */
165
+ /** Offered and, where the feature asks, with data behind it. */
166
+ ready: boolean;
167
+ /** Offered, ready, not adopted and in season: a campaign could start today. */
129
168
  candidate: boolean;
130
169
  };
131
170
  /**
@@ -1,16 +1,61 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.featureMarketingCandidates = exports.evaluateFeatureAdoption = exports.featureMarketingCountsNeeded = exports.FEATURE_MARKETING_BY_KEY = exports.FEATURE_MARKETING = exports.inFeatureMarketingSeason = exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = exports.BREVO_TEMPLATE_UNSET = exports.FEATURE_MARKETING_KEYS = void 0;
3
+ exports.featureMarketingCandidates = exports.evaluateFeatureAdoption = exports.featureMarketingCountsNeeded = exports.FEATURE_MARKETING_BY_KEY = exports.FEATURE_MARKETING = exports.inFeatureMarketingSeason = exports.featureTouchDelays = exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = exports.BREVO_TEMPLATE_UNSET = exports.FEATURE_MARKETING_KEYS = exports.ENGAGEMENT_ENGINE_ENABLED = void 0;
4
4
  const activityLogging_1 = require("./activityLogging");
5
+ const schedule_1 = require("./surveys/schedule");
6
+ /**
7
+ * Feature marketing: the things a customer already pays for but has never set
8
+ * up, and whether now is the time to tell them about one.
9
+ *
10
+ * Every feature has a wizard behind a tab that nobody finds, and the way a
11
+ * school learns it exists is an email in the right month with a card on the
12
+ * dashboard that says the same thing. This module is the registry those two
13
+ * surfaces share, and the detectors that decide "set up" from the database
14
+ * rather than from whether anyone opened the last email.
15
+ *
16
+ * "Adopted" means ever set up, never "built for this year". A school whose
17
+ * aspiration surveys ran last year and are not built for this one is not a
18
+ * marketing prospect, it is a school with a yearly step outstanding, and that
19
+ * is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
20
+ * Marketing pitches `unconfigured` and nothing else.
21
+ *
22
+ * The exception is a yearly deliverable with no setup behind it, like the
23
+ * impact report: there "adopted" is this year's, because last year's is not
24
+ * the thing being offered, and a campaign per academic year is exactly the
25
+ * cadence wanted. Campaign ids carry the academic year, so it comes round
26
+ * again on its own.
27
+ *
28
+ * It is deliberately pure. Adoption is judged from the institute document plus
29
+ * a handful of counts the caller fetches, and each entry says which counts it
30
+ * needs (`needs`) so the backend cron fetches nothing a feature does not ask
31
+ * for. Campaign state, cooling-off and sending live in the backend; the
32
+ * dashboard reads the campaign it is handed. Neither side works adoption out
33
+ * for itself.
34
+ */
35
+ /**
36
+ * The switch for the whole engagement engine: the backend's weekly emails and
37
+ * the web app's homepage popup. Hardcoded on purpose. Nothing is sent and
38
+ * nothing is shown until this is true, and it is flipped in one place for both
39
+ * sides rather than deployed half at a time. Dry runs and Storybook ignore it.
40
+ */
41
+ exports.ENGAGEMENT_ENGINE_ENABLED = false;
5
42
  exports.FEATURE_MARKETING_KEYS = [
6
43
  "wexCohort", "alumni", "leavers", "aspirations", "parents", "skills",
7
- "activities", "careersLibrary", "guidance", "events", "employerPortal",
44
+ "activities", "careersLibrary", "guidance", "events", "employerPortal", "impactReport",
8
45
  ];
9
46
  /** Placeholder for a Brevo template that has not been created yet. */
10
47
  exports.BREVO_TEMPLATE_UNSET = 0;
11
48
  /** Days after the campaign starts that each touch goes out. Index-matched to
12
49
  * `templateIds`; a feature with fewer templates just stops sooner. */
13
50
  exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS = [0, 7, 21];
51
+ /**
52
+ * The touch schedule for a feature: its own, or the default.
53
+ *
54
+ * @param {FeatureMarketingEntry} entry the feature.
55
+ * @return {number[]} days after the campaign start for each touch.
56
+ */
57
+ const featureTouchDelays = (entry) => entry.touchDelaysDays || exports.FEATURE_MARKETING_TOUCH_DELAYS_DAYS;
58
+ exports.featureTouchDelays = featureTouchDelays;
14
59
  const mmdd = (date) => `${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
15
60
  /**
16
61
  * Whether a date falls inside any of a feature's seasons.
@@ -182,7 +227,42 @@ exports.FEATURE_MARKETING = [
182
227
  path: "/network/overview#employerSettings",
183
228
  templateIds: [exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET],
184
229
  },
230
+ {
231
+ key: "impactReport",
232
+ label: "Impact Report",
233
+ description: "Everything this year's careers programme did, in one document, for governors, Ofsted and the hub.",
234
+ needs: ["placements", "events", "surveyScopesThisYear", "schools"],
235
+ // Schools, trusts and hubs all have a report; a hub school does not.
236
+ offered: ({ products }) => !products.isHubSchool,
237
+ // And only when there is something to put in it: a placement, an
238
+ // event or a survey for a school, a linked school for a trust or hub
239
+ // (whose report is made of its schools' data).
240
+ ready: ({ products, counts }) => {
241
+ if (products.isTrust || products.isHub)
242
+ return (counts.schools || 0) > 0;
243
+ return (counts.placements || 0) > 0 || (counts.events || 0) > 0 ||
244
+ (counts.surveyScopesThisYear || []).length > 0;
245
+ },
246
+ // This year's report, not any report: see the module comment.
247
+ adopted: ({ institute, now }) => {
248
+ const generated = impactReportOf(institute)?.generated;
249
+ return Boolean(generated) && (0, schedule_1.academicYearOf)(new Date(generated)) === (0, schedule_1.academicYearOf)(now);
250
+ },
251
+ // Start of July: the year's numbers are in and the summer is when it
252
+ // gets written up. Reminders weekly rather than the default cadence,
253
+ // so the last lands before the summer holidays start on the 18th.
254
+ seasons: [{ start: "07-01", end: "07-31" }],
255
+ // Ahead of everything else in July: it is the one thing every account
256
+ // wants that month.
257
+ priority: 1,
258
+ path: "/organisation/overview",
259
+ templateIds: [exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET, exports.BREVO_TEMPLATE_UNSET],
260
+ touchDelaysDays: [0, 7, 14],
261
+ },
185
262
  ];
263
+ /** The record is typed in the web app (ImpactReportCard.tsx), which stores it
264
+ * on the institute without waiting on a core rebuild. */
265
+ const impactReportOf = (institute) => institute.impactReport;
186
266
  exports.FEATURE_MARKETING_BY_KEY = Object.fromEntries(exports.FEATURE_MARKETING.map((f) => [f.key, f]));
187
267
  /**
188
268
  * Which counts to fetch before judging an institute, given only what is on its
@@ -214,15 +294,17 @@ const evaluateFeatureAdoption = (ctx) => {
214
294
  const now = ctx.now || new Date();
215
295
  return exports.FEATURE_MARKETING.map((f) => {
216
296
  const offered = f.offered(ctx);
297
+ const ready = offered && (!f.ready || f.ready(ctx));
217
298
  const adopted = offered && f.adopted(ctx);
218
299
  const inSeason = (0, exports.inFeatureMarketingSeason)(f.seasons, now);
219
300
  return {
220
301
  key: f.key,
221
302
  label: f.label,
222
303
  offered,
304
+ ready,
223
305
  adopted,
224
306
  inSeason,
225
- candidate: offered && !adopted && inSeason,
307
+ candidate: ready && !adopted && inSeason,
226
308
  };
227
309
  });
228
310
  };
@@ -1 +1 @@
1
- {"version":3,"file":"featureMarketing.js","sourceRoot":"","sources":["../src/featureMarketing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureMarketing.js","sourceRoot":"","sources":["../src/featureMarketing.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ const featureMarketing_1 = require("./featureMarketing");
14
14
  const OCTOBER = new Date("2026-10-06T09:00:00Z");
15
15
  const JANUARY = new Date("2027-01-20T09:00:00Z");
16
16
  const MARCH = new Date("2027-03-10T09:00:00Z");
17
+ const JULY = new Date("2027-07-03T09:00:00Z");
17
18
  const JUNE = new Date("2027-06-10T09:00:00Z");
18
19
  /** A school that has bought everything and set up nothing. */
19
20
  const school = (overrides = {}) => ({
@@ -45,11 +46,14 @@ describe("registry", () => {
45
46
  it("gives every feature a template per touch, no more touches than there are delays", () => {
46
47
  featureMarketing_1.FEATURE_MARKETING.forEach((f) => {
47
48
  expect(f.templateIds.length).toBeGreaterThan(0);
48
- expect(f.templateIds.length).toBeLessThanOrEqual(featureMarketing_1.FEATURE_MARKETING_TOUCH_DELAYS_DAYS.length);
49
+ expect(f.templateIds.length).toBeLessThanOrEqual((0, featureMarketing_1.featureTouchDelays)(f).length);
49
50
  });
51
+ expect((0, featureMarketing_1.featureTouchDelays)(featureMarketing_1.FEATURE_MARKETING_BY_KEY.events)).toBe(featureMarketing_1.FEATURE_MARKETING_TOUCH_DELAYS_DAYS);
52
+ expect((0, featureMarketing_1.featureTouchDelays)(featureMarketing_1.FEATURE_MARKETING_BY_KEY.impactReport)).toEqual([0, 7, 14]);
50
53
  });
51
54
  it("only lists counts a detector can actually read", () => {
52
- const known = ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers"];
55
+ const known = ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers",
56
+ "placements", "schools", "surveyScopesThisYear"];
53
57
  featureMarketing_1.FEATURE_MARKETING.forEach((f) => f.needs.forEach((n) => expect(known).toContain(n)));
54
58
  });
55
59
  });
@@ -90,14 +94,22 @@ describe("offered", () => {
90
94
  // Still hanging off employerEvents.
91
95
  expect(offered).toEqual(expect.arrayContaining(["skills", "activities", "guidance", "parents", "events", "employerPortal"]));
92
96
  });
93
- it("offers a hub only the employer side", () => {
97
+ it("offers a hub the employer side and the report; the report is ready once it has schools", () => {
94
98
  const hub = school({ package: "careersHub" });
95
99
  const offered = (0, featureMarketing_1.evaluateFeatureAdoption)(ctx(hub)).filter((a) => a.offered).map((a) => a.key);
96
- expect(offered.sort()).toEqual(["employerPortal", "events"]);
100
+ expect(offered.sort()).toEqual(["employerPortal", "events", "impactReport"]);
101
+ expect(adoption(ctx(hub, {}), "impactReport").ready).toBe(false);
102
+ expect(adoption(ctx(hub, { schools: 4 }), "impactReport").ready).toBe(true);
97
103
  });
98
- it("offers a trust nothing: its schools run the programmes", () => {
104
+ it("offers a trust only the report: its schools run the programmes", () => {
99
105
  const trust = school({ package: "institutes-two" });
100
- expect((0, featureMarketing_1.evaluateFeatureAdoption)(ctx(trust)).some((a) => a.offered)).toBe(false);
106
+ expect((0, featureMarketing_1.evaluateFeatureAdoption)(ctx(trust)).filter((a) => a.offered).map((a) => a.key)).toEqual(["impactReport"]);
107
+ expect(adoption(ctx(trust, {}), "impactReport").ready).toBe(false);
108
+ expect(adoption(ctx(trust, { schools: 2 }), "impactReport").ready).toBe(true);
109
+ });
110
+ it("does not offer a hub school the report", () => {
111
+ const hubSchool = school({ package: "careersSchool" });
112
+ expect(adoption(ctx(hubSchool), "impactReport").offered).toBe(false);
101
113
  });
102
114
  it("never marks something adopted that is not offered", () => {
103
115
  const hub = school({ package: "careersHub", skillsAssessments: true, cohortConfig: { g: { name: "Y10" } } });
@@ -157,16 +169,38 @@ describe("featureMarketingCountsNeeded", () => {
157
169
  it("asks for every count a full school's detectors read", () => {
158
170
  const s = school();
159
171
  expect((0, featureMarketing_1.featureMarketingCountsNeeded)(s, (0, productResolver_1.resolveProducts)(s)).sort())
160
- .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents"]);
172
+ .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents", "placements", "schools", "surveyScopesThisYear"]);
161
173
  });
162
174
  it("asks a hub for nothing about students", () => {
163
175
  const hub = school({ package: "careersHub" });
164
176
  expect((0, featureMarketing_1.featureMarketingCountsNeeded)(hub, (0, productResolver_1.resolveProducts)(hub)).sort())
165
- .toEqual(["events", "linkedProviders"]);
177
+ .toEqual(["events", "linkedProviders", "placements", "schools", "surveyScopesThisYear"]);
166
178
  });
167
- it("asks a trust for nothing", () => {
179
+ it("asks a trust only what the report needs", () => {
168
180
  const trust = school({ package: "institutes-two" });
169
- expect((0, featureMarketing_1.featureMarketingCountsNeeded)(trust, (0, productResolver_1.resolveProducts)(trust))).toEqual([]);
181
+ expect((0, featureMarketing_1.featureMarketingCountsNeeded)(trust, (0, productResolver_1.resolveProducts)(trust)).sort())
182
+ .toEqual(["events", "placements", "schools", "surveyScopesThisYear"]);
183
+ });
184
+ });
185
+ describe("impact report", () => {
186
+ const withReport = (generated) => ({ ...school(), impactReport: { generated } });
187
+ const data = { placements: 12 };
188
+ it("is this year's report, so last year's does not count", () => {
189
+ expect(adoption(ctx(school(), data, JULY), "impactReport").adopted).toBe(false);
190
+ expect(adoption(ctx(withReport("2026-07-10T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(false);
191
+ expect(adoption(ctx(withReport("2027-06-30T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(true);
192
+ });
193
+ it("is only a candidate when there is something to report", () => {
194
+ expect(adoption(ctx(school(), {}, JULY), "impactReport").candidate).toBe(false);
195
+ expect(adoption(ctx(school(), { placements: 1 }, JULY), "impactReport").candidate).toBe(true);
196
+ expect(adoption(ctx(school(), { events: 1 }, JULY), "impactReport").candidate).toBe(true);
197
+ expect(adoption(ctx(school(), { surveyScopesThisYear: ["aspirations"] }, JULY), "impactReport").candidate).toBe(true);
198
+ // Employers alone are not a year's programme.
199
+ expect(adoption(ctx(school(), { linkedProviders: 5 }, JULY), "impactReport").candidate).toBe(false);
200
+ });
201
+ it("is pitched in July and first", () => {
202
+ expect((0, featureMarketing_1.featureMarketingCandidates)(ctx(school(), data, JULY))[0].key).toBe("impactReport");
203
+ expect((0, featureMarketing_1.featureMarketingCandidates)(ctx(school(), data, OCTOBER)).map((f) => f.key)).not.toContain("impactReport");
170
204
  });
171
205
  });
172
206
  describe("candidates", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"featureMarketing.test.js","sourceRoot":"","sources":["../src/featureMarketing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureMarketing.test.js","sourceRoot":"","sources":["../src/featureMarketing.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { InstituteData } from "./typeDefinitions";
2
2
  import { ResolvedProducts } from "./productResolver";
3
- import { SurveyGroupScope } from "./surveys/types";
4
3
  import { FeatureMarketingCounts } from "./featureMarketing";
5
4
  /**
6
5
  * Onboarding pathways: for each product a customer has, the steps that take it
@@ -36,16 +35,11 @@ export type OnboardingCounts = FeatureMarketingCounts & {
36
35
  students?: number;
37
36
  activatedStudents?: number;
38
37
  staff?: number;
39
- schools?: number;
40
38
  employers?: number;
41
- placements?: number;
42
39
  eventAttendees?: number;
43
40
  emailCampaigns?: number;
44
41
  /** `cohorts` where oId for the current academic year. */
45
42
  cohortsThisYear?: number;
46
- /** The scopes with at least one `surveyCycles` doc for the current academic
47
- * year (see scopesWithCycles in the web app). */
48
- surveyScopesThisYear?: SurveyGroupScope[];
49
43
  };
50
44
  export type OnboardingCountKey = keyof OnboardingCounts;
51
45
  export type OnboardingContext = {
@@ -1 +1 @@
1
- {"version":3,"file":"onboardingPathways.js","sourceRoot":"","sources":["../src/onboardingPathways.ts"],"names":[],"mappings":";;;AAGA,uDAAuD;AACvD,yDAA0G;AAkC7F,QAAA,uBAAuB,GAA2B;IAC3D,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ;IAC7E,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO;CACjD,CAAC;AA0DF,MAAM,cAAc,GAAG,CAAC,EAAC,QAAQ,EAAoB,EAAW,EAAE,CAC9D,QAAQ,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,GAA0C,EAAE,EAAE,CACpE,CAAC,GAAsB,EAAW,EAAE,CAAC,2CAAwB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEpF,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAE,EAAE,CACzC,CAAC,GAAsB,EAAW,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEpF,QAAA,mBAAmB,GAAwB;IACpD;QACI,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,mEAAmE;gBAChF,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,UAAU,CAAC;gBACnB,yDAAyD;gBACzD,6CAA6C;gBAC7C,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;aACjD;YACD,IAAI;YACJ,oBAAoB;YACpB,kCAAkC;YAClC,oFAAoF;YACpF,mCAAmC;YACnC,wBAAwB;YACxB,mDAAmD;YACnD,KAAK;SACR;KACJ;IACD;QACI,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO;QACzC,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,eAAe;gBACpB,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,iFAAiF;gBAC9F,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;aAChD;SACJ;KACJ;IACD;QACI,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;QACvC,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,8DAA8D;gBAC3E,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;aAChD;YACD;gBACI,GAAG,EAAE,eAAe;gBACpB,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,6CAA6C;gBAC1D,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC;aAClD;YACD;gBACI,GAAG,EAAE,kBAAkB;gBACvB,KAAK,EAAE,gCAAgC;gBACvC,WAAW,EAAE,2DAA2D;gBACxE,IAAI,EAAE,oCAAoC;gBAC1C,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;aAC5D;YACD;gBACI,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,gCAAgC;gBACvC,WAAW,EAAE,4CAA4C;gBACzD,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,gBAAgB,CAAC;gBACzB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC;aACvD;YACD;gBACI,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EAAE,sDAAsD;gBACnE,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC;aACnC;SACJ;KACJ;IACD;QACI,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC;QACzD,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,YAAY;gBACjB,KAAK,EAAE,gCAAgC;gBACvC,WAAW,EAAE,gEAAgE;gBAC7E,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAE,MAAM,EAAE,uCAAoB,EAAC;gBACxE,KAAK,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBACrC,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC;gBACnC,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC;aAC5D;YACD;gBACI,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,+EAA+E;gBAC5F,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAClB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACrF;YACD;gBACI,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,8DAA8D;gBAC3E,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,mBAAmB,CAAC;gBAC5B,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC,GAAG,CAAC;aAC1D;YACD;gBACI,GAAG,EAAE,gBAAgB;gBACrB,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,iFAAiF;gBAC9F,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,YAAY,CAAC;gBACrB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC;aACnD;YACD;gBACI,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,kFAAkF;gBAC/F,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAClB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACnF;SACJ;KACJ;IACD,IAAI;IACJ,sBAAsB;IACtB,iCAAiC;IACjC,yFAAyF;IACzF,eAAe;IACf,YAAY;IACZ,wCAAwC;IACxC,2CAA2C;IAC3C,6GAA6G;IAC7G,gCAAgC;IAChC,oCAAoC;IACpC,oFAAoF;IACpF,+DAA+D;IAC/D,aAAa;IACb,YAAY;IACZ,yCAAyC;IACzC,gDAAgD;IAChD,wFAAwF;IACxF,0DAA0D;IAC1D,yBAAyB;IACzB,yEAAyE;IACzE,aAAa;IACb,SAAS;IACT,KAAK;IACL;QACI,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK;QAChF,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EAAE,8EAA8E;gBAC3F,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC;aACnC;YACD;gBACI,GAAG,EAAE,eAAe;gBACpB,KAAK,EAAE,8BAA8B;gBACrC,WAAW,EAAE,iEAAiE;gBAC9E,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,gBAAgB,CAAC;gBACzB,IAAI,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC;aACvD;SACJ;KACJ;IACD;QACI,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC;QAClE,KAAK,EAAE;YACH,IAAI;YACJ,iCAAiC;YACjC,gDAAgD;YAChD,kGAAkG;YAClG,mCAAmC;YACnC,iBAAiB;YACjB,sFAAsF;YACtF,KAAK;YACL;gBACI,GAAG,EAAE,0BAA0B;gBAC/B,KAAK,EAAE,kCAAkC;gBACzC,WAAW,EAAE,kFAAkF;gBAC/F,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAE,MAAM,EAAE,uCAAoB,EAAC;gBACxE,KAAK,EAAE,CAAC,sBAAsB,CAAC;gBAC/B,IAAI,EAAE,gBAAgB,CAAC,aAAa,CAAC;gBACrC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;aACpC;YACD;gBACI,GAAG,EAAE,sBAAsB;gBAC3B,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,2EAA2E;gBACxF,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAE,MAAM,EAAE,uCAAoB,EAAC;gBACxE,KAAK,EAAE,CAAC,sBAAsB,CAAC;gBAC/B,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC;gBACjC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;aAChC;YACD;gBACI,GAAG,EAAE,qBAAqB;gBAC1B,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,6EAA6E;gBAC1F,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM;gBACxC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC;aACnC;SACJ;KACJ;IACD;QACI,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,qBAAqB;QAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC;QAC5D,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,4EAA4E;gBACzF,IAAI,EAAE,0BAA0B;gBAChC,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAE,MAAM,EAAE,uCAAoB,EAAC;gBACxE,KAAK,EAAE,CAAC,sBAAsB,CAAC;gBAC/B,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC;gBAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;aAC/B;YACD;gBACI,GAAG,EAAE,iBAAiB;gBACtB,KAAK,EAAE,6BAA6B;gBACpC,WAAW,EAAE,uEAAuE;gBACpF,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAE,MAAM,EAAE,uCAAoB,EAAC;gBACxE,KAAK,EAAE,CAAC,sBAAsB,CAAC;gBAC/B,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC;gBAClC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;aACjC;SACJ;KACJ;IACD;QACI,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,4BAA4B;QACnC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,cAAc,CAAC,GAAG,CAAC;QAChE,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,mBAAmB;gBACxB,KAAK,EAAE,2BAA2B;gBAClC,WAAW,EAAE,yEAAyE;gBACtF,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAE,MAAM,EAAE,uCAAoB,EAAC;gBACxE,KAAK,EAAE,EAAE;gBACT,gEAAgE;gBAChE,+DAA+D;gBAC/D,IAAI,EAAE,CAAC,EAAC,SAAS,EAAE,GAAG,EAAC,EAAE,EAAE,CAAC,IAAA,sCAAoB,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,cAAc;gBACnF,QAAQ,EAAE,CAAC,EAAC,SAAS,EAAE,GAAG,EAAC,EAAE,EAAE,CAAC,IAAA,sCAAoB,EAAC,SAAS,EAAE,GAAG,CAAC,KAAK,MAAM;aAClF;SACJ;KACJ;IACD;QACI,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC;QACpE,KAAK,EAAE;YACH;gBACI,GAAG,EAAE,eAAe;gBACpB,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,kFAAkF;gBAC/F,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,EAAC,KAAK,EAAE,uCAAoB,EAAC;gBAC1C,KAAK,EAAE,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC;aACpC;SACJ;KACJ;CACJ,CAAC;AAEW,QAAA,0BAA0B,GACnC,MAAM,CAAC,WAAW,CAAC,2BAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAoD,CAAC;AAEtH;;;;;;GAMG;AACI,MAAM,sBAAsB,GAAG,CAClC,SAAwB,EAAE,QAA0B,EAChC,EAAE;IACtB,MAAM,GAAG,GAAsB,EAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAC,CAAC;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,2BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC5C,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC9D,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC;AATW,QAAA,sBAAsB,0BASjC;AAmCF;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,CAAC,GAAsB,EAA+B,EAAE,CACtF,2BAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxE,MAAM,KAAK,GAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9D,MAAM,OAAO,GAA2B,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QACrF,OAAO;YACH,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YACpE,KAAK;YACL,IAAI,EAAE,KAAK,KAAK,MAAM;YACtB,OAAO;YACP,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,uCAAoB;SAC7D,CAAC;IACN,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,QAAQ,GAAG,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC;IAC5C,OAAO;QACH,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK;QACL,SAAS;QACT,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QAC7C,OAAO,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC;QACnE,QAAQ;KACX,CAAC;AACN,CAAC,CAAC,CAAC;AA3BM,QAAA,kBAAkB,sBA2BxB;AAEP;;;;;;;;;;;;;;GAcG;AACI,MAAM,kBAAkB,GAAG,CAC9B,GAAsB,EACuF,EAAE;IAC/G,MAAM,QAAQ,GAAG,IAAA,0BAAkB,EAAC,GAAG,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;IAChE,IAAI,UAAU,EAAE,IAAI;QAAE,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAC,CAAC;IAE5G,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,CAAC,CAAC;AAVW,QAAA,kBAAkB,sBAU7B"}
1
+ {"version":3,"file":"onboardingPathways.js","sourceRoot":"","sources":["../src/onboardingPathways.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.400.1094",
5
+ "version": "1.400.1096",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
@@ -14,6 +14,7 @@ import {
14
14
  evaluateFeatureAdoption,
15
15
  featureMarketingCandidates,
16
16
  featureMarketingCountsNeeded,
17
+ featureTouchDelays,
17
18
  inFeatureMarketingSeason,
18
19
  } from "./featureMarketing";
19
20
 
@@ -27,6 +28,7 @@ import {
27
28
  const OCTOBER = new Date("2026-10-06T09:00:00Z");
28
29
  const JANUARY = new Date("2027-01-20T09:00:00Z");
29
30
  const MARCH = new Date("2027-03-10T09:00:00Z");
31
+ const JULY = new Date("2027-07-03T09:00:00Z");
30
32
  const JUNE = new Date("2027-06-10T09:00:00Z");
31
33
 
32
34
  /** A school that has bought everything and set up nothing. */
@@ -70,13 +72,16 @@ describe("registry", () => {
70
72
  it("gives every feature a template per touch, no more touches than there are delays", () => {
71
73
  FEATURE_MARKETING.forEach((f) => {
72
74
  expect(f.templateIds.length).toBeGreaterThan(0);
73
- expect(f.templateIds.length).toBeLessThanOrEqual(FEATURE_MARKETING_TOUCH_DELAYS_DAYS.length);
75
+ expect(f.templateIds.length).toBeLessThanOrEqual(featureTouchDelays(f).length);
74
76
  });
77
+ expect(featureTouchDelays(FEATURE_MARKETING_BY_KEY.events)).toBe(FEATURE_MARKETING_TOUCH_DELAYS_DAYS);
78
+ expect(featureTouchDelays(FEATURE_MARKETING_BY_KEY.impactReport)).toEqual([0, 7, 14]);
75
79
  });
76
80
 
77
81
  it("only lists counts a detector can actually read", () => {
78
82
  const known: (keyof FeatureMarketingCounts)[] =
79
- ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers"];
83
+ ["cohorts", "parents", "alumni", "events", "linkedProviders", "careersLibraryViewers",
84
+ "placements", "schools", "surveyScopesThisYear"];
80
85
  FEATURE_MARKETING.forEach((f) => f.needs.forEach((n) => expect(known).toContain(n)));
81
86
  });
82
87
  });
@@ -123,15 +128,24 @@ describe("offered", () => {
123
128
  expect(offered).toEqual(expect.arrayContaining(["skills", "activities", "guidance", "parents", "events", "employerPortal"]));
124
129
  });
125
130
 
126
- it("offers a hub only the employer side", () => {
131
+ it("offers a hub the employer side and the report; the report is ready once it has schools", () => {
127
132
  const hub = school({package: "careersHub"});
128
133
  const offered = evaluateFeatureAdoption(ctx(hub)).filter((a) => a.offered).map((a) => a.key);
129
- expect(offered.sort()).toEqual(["employerPortal", "events"]);
134
+ expect(offered.sort()).toEqual(["employerPortal", "events", "impactReport"]);
135
+ expect(adoption(ctx(hub, {}), "impactReport").ready).toBe(false);
136
+ expect(adoption(ctx(hub, {schools: 4}), "impactReport").ready).toBe(true);
130
137
  });
131
138
 
132
- it("offers a trust nothing: its schools run the programmes", () => {
139
+ it("offers a trust only the report: its schools run the programmes", () => {
133
140
  const trust = school({package: "institutes-two"});
134
- expect(evaluateFeatureAdoption(ctx(trust)).some((a) => a.offered)).toBe(false);
141
+ expect(evaluateFeatureAdoption(ctx(trust)).filter((a) => a.offered).map((a) => a.key)).toEqual(["impactReport"]);
142
+ expect(adoption(ctx(trust, {}), "impactReport").ready).toBe(false);
143
+ expect(adoption(ctx(trust, {schools: 2}), "impactReport").ready).toBe(true);
144
+ });
145
+
146
+ it("does not offer a hub school the report", () => {
147
+ const hubSchool = school({package: "careersSchool"});
148
+ expect(adoption(ctx(hubSchool), "impactReport").offered).toBe(false);
135
149
  });
136
150
 
137
151
  it("never marks something adopted that is not offered", () => {
@@ -202,18 +216,44 @@ describe("featureMarketingCountsNeeded", () => {
202
216
  it("asks for every count a full school's detectors read", () => {
203
217
  const s = school();
204
218
  expect(featureMarketingCountsNeeded(s, resolveProducts(s)).sort())
205
- .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents"]);
219
+ .toEqual(["alumni", "careersLibraryViewers", "cohorts", "events", "linkedProviders", "parents", "placements", "schools", "surveyScopesThisYear"]);
206
220
  });
207
221
 
208
222
  it("asks a hub for nothing about students", () => {
209
223
  const hub = school({package: "careersHub"});
210
224
  expect(featureMarketingCountsNeeded(hub, resolveProducts(hub)).sort())
211
- .toEqual(["events", "linkedProviders"]);
225
+ .toEqual(["events", "linkedProviders", "placements", "schools", "surveyScopesThisYear"]);
212
226
  });
213
227
 
214
- it("asks a trust for nothing", () => {
228
+ it("asks a trust only what the report needs", () => {
215
229
  const trust = school({package: "institutes-two"});
216
- expect(featureMarketingCountsNeeded(trust, resolveProducts(trust))).toEqual([]);
230
+ expect(featureMarketingCountsNeeded(trust, resolveProducts(trust)).sort())
231
+ .toEqual(["events", "placements", "schools", "surveyScopesThisYear"]);
232
+ });
233
+ });
234
+
235
+ describe("impact report", () => {
236
+ const withReport = (generated: string) => ({...school(), impactReport: {generated}} as InstituteData);
237
+ const data = {placements: 12};
238
+
239
+ it("is this year's report, so last year's does not count", () => {
240
+ expect(adoption(ctx(school(), data, JULY), "impactReport").adopted).toBe(false);
241
+ expect(adoption(ctx(withReport("2026-07-10T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(false);
242
+ expect(adoption(ctx(withReport("2027-06-30T10:00:00Z"), data, JULY), "impactReport").adopted).toBe(true);
243
+ });
244
+
245
+ it("is only a candidate when there is something to report", () => {
246
+ expect(adoption(ctx(school(), {}, JULY), "impactReport").candidate).toBe(false);
247
+ expect(adoption(ctx(school(), {placements: 1}, JULY), "impactReport").candidate).toBe(true);
248
+ expect(adoption(ctx(school(), {events: 1}, JULY), "impactReport").candidate).toBe(true);
249
+ expect(adoption(ctx(school(), {surveyScopesThisYear: ["aspirations"]}, JULY), "impactReport").candidate).toBe(true);
250
+ // Employers alone are not a year's programme.
251
+ expect(adoption(ctx(school(), {linkedProviders: 5}, JULY), "impactReport").candidate).toBe(false);
252
+ });
253
+
254
+ it("is pitched in July and first", () => {
255
+ expect(featureMarketingCandidates(ctx(school(), data, JULY))[0].key).toBe("impactReport");
256
+ expect(featureMarketingCandidates(ctx(school(), data, OCTOBER)).map((f) => f.key)).not.toContain("impactReport");
217
257
  });
218
258
  });
219
259
 
@@ -1,6 +1,8 @@
1
1
  import {InstituteData} from "./typeDefinitions";
2
2
  import {ResolvedProducts} from "./productResolver";
3
3
  import {activityLoggingState} from "./activityLogging";
4
+ import {academicYearOf} from "./surveys/schedule";
5
+ import {SurveyGroupScope} from "./surveys/types";
4
6
 
5
7
  /**
6
8
  * Feature marketing: the things a customer already pays for but has never set
@@ -18,6 +20,12 @@ import {activityLoggingState} from "./activityLogging";
18
20
  * is onboarding's to chase (onboardingPathways.ts, state `yearMissing`).
19
21
  * Marketing pitches `unconfigured` and nothing else.
20
22
  *
23
+ * The exception is a yearly deliverable with no setup behind it, like the
24
+ * impact report: there "adopted" is this year's, because last year's is not
25
+ * the thing being offered, and a campaign per academic year is exactly the
26
+ * cadence wanted. Campaign ids carry the academic year, so it comes round
27
+ * again on its own.
28
+ *
21
29
  * It is deliberately pure. Adoption is judged from the institute document plus
22
30
  * a handful of counts the caller fetches, and each entry says which counts it
23
31
  * needs (`needs`) so the backend cron fetches nothing a feature does not ask
@@ -26,14 +34,22 @@ import {activityLoggingState} from "./activityLogging";
26
34
  * for itself.
27
35
  */
28
36
 
37
+ /**
38
+ * The switch for the whole engagement engine: the backend's weekly emails and
39
+ * the web app's homepage popup. Hardcoded on purpose. Nothing is sent and
40
+ * nothing is shown until this is true, and it is flipped in one place for both
41
+ * sides rather than deployed half at a time. Dry runs and Storybook ignore it.
42
+ */
43
+ export const ENGAGEMENT_ENGINE_ENABLED = false;
44
+
29
45
  /** Every feature the engine can market. Stable keys: they name campaign documents. */
30
46
  export type FeatureMarketingKey =
31
47
  "wexCohort"|"alumni"|"leavers"|"aspirations"|"parents"|"skills"|
32
- "activities"|"careersLibrary"|"guidance"|"events"|"employerPortal";
48
+ "activities"|"careersLibrary"|"guidance"|"events"|"employerPortal"|"impactReport";
33
49
 
34
50
  export const FEATURE_MARKETING_KEYS: FeatureMarketingKey[] = [
35
51
  "wexCohort", "alumni", "leavers", "aspirations", "parents", "skills",
36
- "activities", "careersLibrary", "guidance", "events", "employerPortal",
52
+ "activities", "careersLibrary", "guidance", "events", "employerPortal", "impactReport",
37
53
  ];
38
54
 
39
55
  /**
@@ -57,6 +73,14 @@ export type FeatureMarketingCounts = {
57
73
  /** `users` where oId and lmiViews != null: students who have opened a job
58
74
  * profile in the careers library. */
59
75
  careersLibraryViewers?: number,
76
+ /** `placements` where oId. */
77
+ placements?: number,
78
+ /** `institutes` where trustLinks.{oId}.status or careersHubLinks.{oId}.status
79
+ * is approved: the schools under a trust or hub. */
80
+ schools?: number,
81
+ /** The scopes with at least one `surveyCycles` doc for the current academic
82
+ * year (see scopesWithCycles in the web app). */
83
+ surveyScopesThisYear?: SurveyGroupScope[],
60
84
  };
61
85
 
62
86
  export type FeatureMarketingCountKey = keyof FeatureMarketingCounts;
@@ -82,8 +106,13 @@ export type FeatureMarketingEntry = {
82
106
  /** The counts `adopted` reads. Anything not listed is not fetched. */
83
107
  needs: FeatureMarketingCountKey[],
84
108
  /** Whether this account has the feature at all. A feature nobody pays for
85
- * is not marketed, and neither is one an account type cannot run. */
109
+ * is not marketed, and neither is one an account type cannot run. Reads
110
+ * products only, never counts: it decides which counts get fetched. */
86
111
  offered: (ctx: FeatureMarketingContext) => boolean,
112
+ /** Whether there is anything behind the pitch yet, for a feature that
113
+ * shows the school its own data. Consulted once offered; absent means
114
+ * always ready. */
115
+ ready?: (ctx: FeatureMarketingContext) => boolean,
87
116
  /** Whether it has been set up, from the database and nothing else. */
88
117
  adopted: (ctx: FeatureMarketingContext) => boolean,
89
118
  /** When it is worth pitching. Empty means any time. */
@@ -97,6 +126,9 @@ export type FeatureMarketingEntry = {
97
126
  * adopted. `BREVO_TEMPLATE_UNSET` means the template has not been made
98
127
  * yet and that touch is skipped, not sent blank. */
99
128
  templateIds: number[],
129
+ /** Days after the campaign starts that each touch goes out, when the
130
+ * default cadence does not fit. Index-matched to `templateIds`. */
131
+ touchDelaysDays?: number[],
100
132
  };
101
133
 
102
134
  /** Placeholder for a Brevo template that has not been created yet. */
@@ -106,6 +138,15 @@ export const BREVO_TEMPLATE_UNSET = 0;
106
138
  * `templateIds`; a feature with fewer templates just stops sooner. */
107
139
  export const FEATURE_MARKETING_TOUCH_DELAYS_DAYS = [0, 7, 21];
108
140
 
141
+ /**
142
+ * The touch schedule for a feature: its own, or the default.
143
+ *
144
+ * @param {FeatureMarketingEntry} entry the feature.
145
+ * @return {number[]} days after the campaign start for each touch.
146
+ */
147
+ export const featureTouchDelays = (entry: FeatureMarketingEntry): number[] =>
148
+ entry.touchDelaysDays || FEATURE_MARKETING_TOUCH_DELAYS_DAYS;
149
+
109
150
  const mmdd = (date: Date): string =>
110
151
  `${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
111
152
 
@@ -287,8 +328,44 @@ export const FEATURE_MARKETING: FeatureMarketingEntry[] = [
287
328
  path: "/network/overview#employerSettings",
288
329
  templateIds: [BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET],
289
330
  },
331
+ {
332
+ key: "impactReport",
333
+ label: "Impact Report",
334
+ description: "Everything this year's careers programme did, in one document, for governors, Ofsted and the hub.",
335
+ needs: ["placements", "events", "surveyScopesThisYear", "schools"],
336
+ // Schools, trusts and hubs all have a report; a hub school does not.
337
+ offered: ({products}) => !products.isHubSchool,
338
+ // And only when there is something to put in it: a placement, an
339
+ // event or a survey for a school, a linked school for a trust or hub
340
+ // (whose report is made of its schools' data).
341
+ ready: ({products, counts}) => {
342
+ if (products.isTrust || products.isHub) return (counts.schools || 0) > 0;
343
+ return (counts.placements || 0) > 0 || (counts.events || 0) > 0 ||
344
+ (counts.surveyScopesThisYear || []).length > 0;
345
+ },
346
+ // This year's report, not any report: see the module comment.
347
+ adopted: ({institute, now}) => {
348
+ const generated = impactReportOf(institute)?.generated;
349
+ return Boolean(generated) && academicYearOf(new Date(generated as string)) === academicYearOf(now);
350
+ },
351
+ // Start of July: the year's numbers are in and the summer is when it
352
+ // gets written up. Reminders weekly rather than the default cadence,
353
+ // so the last lands before the summer holidays start on the 18th.
354
+ seasons: [{start: "07-01", end: "07-31"}],
355
+ // Ahead of everything else in July: it is the one thing every account
356
+ // wants that month.
357
+ priority: 1,
358
+ path: "/organisation/overview",
359
+ templateIds: [BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET, BREVO_TEMPLATE_UNSET],
360
+ touchDelaysDays: [0, 7, 14],
361
+ },
290
362
  ];
291
363
 
364
+ /** The record is typed in the web app (ImpactReportCard.tsx), which stores it
365
+ * on the institute without waiting on a core rebuild. */
366
+ const impactReportOf = (institute: InstituteData): {generated?: string}|undefined =>
367
+ (institute as InstituteData & {impactReport?: {generated?: string}}).impactReport;
368
+
292
369
  export const FEATURE_MARKETING_BY_KEY: Record<FeatureMarketingKey, FeatureMarketingEntry> =
293
370
  Object.fromEntries(FEATURE_MARKETING.map((f) => [f.key, f])) as Record<FeatureMarketingKey, FeatureMarketingEntry>;
294
371
 
@@ -317,7 +394,9 @@ export type FeatureAdoption = {
317
394
  offered: boolean,
318
395
  adopted: boolean,
319
396
  inSeason: boolean,
320
- /** Offered, not adopted and in season: a campaign could start today. */
397
+ /** Offered and, where the feature asks, with data behind it. */
398
+ ready: boolean,
399
+ /** Offered, ready, not adopted and in season: a campaign could start today. */
321
400
  candidate: boolean,
322
401
  };
323
402
 
@@ -335,15 +414,17 @@ export const evaluateFeatureAdoption = (ctx: FeatureMarketingContext): FeatureAd
335
414
  const now = ctx.now || new Date();
336
415
  return FEATURE_MARKETING.map((f) => {
337
416
  const offered = f.offered(ctx);
417
+ const ready = offered && (!f.ready || f.ready(ctx));
338
418
  const adopted = offered && f.adopted(ctx);
339
419
  const inSeason = inFeatureMarketingSeason(f.seasons, now);
340
420
  return {
341
421
  key: f.key,
342
422
  label: f.label,
343
423
  offered,
424
+ ready,
344
425
  adopted,
345
426
  inSeason,
346
- candidate: offered && !adopted && inSeason,
427
+ candidate: ready && !adopted && inSeason,
347
428
  };
348
429
  });
349
430
  };
@@ -46,16 +46,11 @@ export type OnboardingCounts = FeatureMarketingCounts & {
46
46
  students?: number,
47
47
  activatedStudents?: number,
48
48
  staff?: number,
49
- schools?: number,
50
49
  employers?: number,
51
- placements?: number,
52
50
  eventAttendees?: number,
53
51
  emailCampaigns?: number,
54
52
  /** `cohorts` where oId for the current academic year. */
55
53
  cohortsThisYear?: number,
56
- /** The scopes with at least one `surveyCycles` doc for the current academic
57
- * year (see scopesWithCycles in the web app). */
58
- surveyScopesThisYear?: SurveyGroupScope[],
59
54
  };
60
55
 
61
56
  export type OnboardingCountKey = keyof OnboardingCounts;