@ministryofjustice/hmpps-mpop-frontend-components-lib 0.0.33 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/index.cjs.js +39 -38
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.d.ts +14 -1
  4. package/dist/index.esm.js +39 -38
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/mpop/components/person-header/_risk-flag-badge.scss +5 -0
  7. package/dist/mpop/components/person-header/template.njk +12 -2
  8. package/dist/mpop/components/supervision-package/_supervision-package.scss +4 -0
  9. package/dist/mpop/components/supervision-package/partials/_action-buttons.njk +1 -1
  10. package/dist/mpop/components/supervision-package/partials/_appointments-guidance.njk +1 -1
  11. package/dist/mpop/components/supervision-package/partials/_server-error.njk +14 -0
  12. package/dist/mpop/components/supervision-package/partials/_tags.njk +4 -4
  13. package/dist/mpop/components/supervision-package/partials/_warnings.njk +4 -4
  14. package/dist/mpop/components/supervision-package/template.njk +25 -25
  15. package/dist/mpop/components/supervision-package-summary/template.njk +5 -5
  16. package/dist/types/SupervisionPackage.d.ts +14 -1
  17. package/dist/utils/getPrimarySentence.d.ts +0 -1
  18. package/dist/utils/hasRestrictedCustodyStatus.d.ts +2 -0
  19. package/dist/utils/isRecalled.d.ts +2 -0
  20. package/dist/utils/isUnlawfullyAtLarge.d.ts +2 -0
  21. package/dist/utils/isUnlawfullyAtLarge.test.d.ts +1 -0
  22. package/dist/utils/supervisionAppointmentsReset.d.ts +1 -1
  23. package/package.json +1 -1
  24. package/dist/utils/hasBreachedSentence.d.ts +0 -2
  25. package/dist/utils/isAtLarge.d.ts +0 -2
  26. package/dist/utils/isInCustody.d.ts +0 -2
  27. /package/dist/{utils/hasBreachedSentence.test.d.ts → components/supervision-package/partials/_server-error.test.d.ts} +0 -0
  28. /package/dist/utils/{isAtLarge.test.d.ts → hasRestrictedCustodyStatus.test.d.ts} +0 -0
  29. /package/dist/utils/{isInCustody.test.d.ts → isRecalled.test.d.ts} +0 -0
package/dist/index.cjs.js CHANGED
@@ -40,6 +40,16 @@ const tierTags = {
40
40
  unavailable: { text: 'Unavailable', color: 'grey' },
41
41
  none: { text: null, color: null },
42
42
  };
43
+ const isApiError = (value) => {
44
+ if (typeof value !== 'object' || value === null) {
45
+ return false;
46
+ }
47
+ const candidate = value;
48
+ return (typeof candidate.timestamp === 'string' &&
49
+ typeof candidate.status === 'number' &&
50
+ typeof candidate.error === 'string' &&
51
+ typeof candidate.path === 'string');
52
+ };
43
53
  class MPoPComponents {
44
54
  constructor(authenticationClient, config, logger = console) {
45
55
  var _a, _b;
@@ -200,16 +210,24 @@ class MPoPComponents {
200
210
  async getSupervisionPackageFrontendContext(authOptions, crn) {
201
211
  try {
202
212
  // SuppressingRestClient resolves 404s to null rather than throwing, so a missing context is not an error
203
- return await this.supervisionPackageApiRestClient.get(`/frontend-context/${crn}`, authOptions);
213
+ const response = await this.supervisionPackageApiRestClient.get(`/frontend-context/${crn}`, authOptions);
214
+ return response ? { ...response, outcome: 'success' } : null;
204
215
  }
205
216
  catch (err) {
206
217
  const responseStatus = err === null || err === void 0 ? void 0 : err.responseStatus;
207
218
  const error = err instanceof Error ? err : new Error('500 Internal Server Error');
208
219
  if (responseStatus === 503) {
209
220
  this.logger.error(`Supervision Package API unavailable (503) for crn ${crn}`);
221
+ throw error;
210
222
  }
211
- else {
223
+ if (responseStatus === 500) {
212
224
  this.logger.error(`Supervision Package API internal error (500) for crn ${crn}`);
225
+ // The API's 500 response body is already in the declared ApiError shape - tag it with the discriminator
226
+ const apiError = err.data;
227
+ if (!isApiError(apiError) || apiError.status !== 500) {
228
+ throw error;
229
+ }
230
+ return { ...apiError, outcome: 'error' };
213
231
  }
214
232
  throw error;
215
233
  }
@@ -260,37 +278,29 @@ const toTitleCase = (value) => {
260
278
  }, titleCased);
261
279
  };
262
280
 
263
- const isSpx = (sentence) => { var _a; return ((_a = sentence === null || sentence === void 0 ? void 0 : sentence.supervisionPackage) === null || _a === void 0 ? void 0 : _a.code) === 'SPX'; };
264
281
  const isTerminated = (sentence) => { var _a, _b; return ((_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) === 'T'; };
265
282
  const getPrimarySentence = (sentences) => {
266
283
  if (!sentences || !sentences.length) {
267
284
  return false;
268
285
  }
269
- if (sentences.length === 1 && !isSpx(sentences[0]) && !isTerminated(sentences[0])) {
270
- return sentences[0];
271
- }
272
- const findSPSentence = sentences.find(sentence => (sentence === null || sentence === void 0 ? void 0 : sentence.supervisionPackage) && !isTerminated(sentence) && !isSpx(sentence));
273
- const findHighestEventNumberSentence = sentences
274
- .filter(sentence => !isTerminated(sentence))
275
- .reduce((highest, sentence) => !highest || Number(sentence.eventNumber) > Number(highest.eventNumber) ? sentence : highest, false);
276
- if (findSPSentence) {
277
- return findSPSentence;
278
- }
279
- if (findHighestEventNumberSentence) {
280
- return findHighestEventNumberSentence;
281
- }
282
- return false;
283
- };
284
- const isSpxOnlySentenceList = (sentences) => !!sentences && sentences.length > 0 && sentences.every(sentence => isSpx(sentence));
285
-
286
- const hasBreachedSentence = (sentences) => {
287
- const primarySentence = getPrimarySentence(sentences);
288
- return primarySentence ? primarySentence.inBreach === true : false;
286
+ return sentences.find(sentence => sentence.isPrimarySentence) || false;
289
287
  };
290
288
 
291
289
  // True only when no sentence remains eligible to be the primary sentence, i.e. every sentence is terminated
292
290
  const hasTerminatedSentence = (sentences) => !!sentences && sentences.length > 0 && sentences.every(isTerminated);
293
291
 
292
+ // Custody status codes that prevent the sentence from following the normal supervision package flow
293
+ const RESTRICTED_CUSTODY_STATUS_CODES = ['D', 'I', 'R', 'C'];
294
+ const hasRestrictedCustodyStatus = (sentence) => {
295
+ var _a, _b;
296
+ return !!((_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) &&
297
+ RESTRICTED_CUSTODY_STATUS_CODES.includes(sentence.custody.status.code.toUpperCase());
298
+ };
299
+
300
+ const isUnlawfullyAtLarge = (sentence) => { var _a, _b; return ((_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.code) === 'UATLRG'; };
301
+
302
+ const isRecalled = (sentence) => { var _a, _b, _c; return ((_c = (_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) === null || _c === void 0 ? void 0 : _c.toUpperCase()) === 'C'; };
303
+
294
304
  const eligibleTiers = ['C', 'D', 'E', 'F', 'G'];
295
305
  const isEligibleForDiscretionaryAppointments = (context, tierScore) => (context === null || context === void 0 ? void 0 : context.gender) === 'Female' &&
296
306
  !(context === null || context === void 0 ? void 0 : context.integratedOffenderManagementRedRated) &&
@@ -328,13 +338,6 @@ const finalThirdStatus = (finalThirdDate, sentenceEndDate) => {
328
338
  };
329
339
  };
330
340
 
331
- const isInCustody = (sentences, codes = ['D', 'I', 'R', 'C']) => {
332
- var _a, _b, _c;
333
- return (_c = (_b = (_a = sentences === null || sentences === void 0 ? void 0 : sentences.find(sentence => { var _a, _b, _c; return codes.includes((_c = (_b = (_a = sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) === null || _c === void 0 ? void 0 : _c.toUpperCase()); })) === null || _a === void 0 ? void 0 : _a.custody) === null || _b === void 0 ? void 0 : _b.status) === null || _c === void 0 ? void 0 : _c.description;
334
- };
335
-
336
- const isAtLarge = (sentences) => { var _a; return (_a = sentences === null || sentences === void 0 ? void 0 : sentences.some(sentence => { var _a, _b; return ((_b = (_a = sentence.custody) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.code) === 'UATLRG'; })) !== null && _a !== void 0 ? _a : false; };
337
-
338
341
  const sentenceType = (context) => {
339
342
  var _a, _b, _c, _d, _e;
340
343
  if (!context || !context.sentences) {
@@ -365,13 +368,12 @@ const sentenceType = (context) => {
365
368
  return false;
366
369
  };
367
370
 
368
- const supervisionAppointmentsReset = (currentYearEndDate, sentences) => {
369
- const primarySentence = getPrimarySentence(sentences);
370
- if (!primarySentence || !primarySentence.endDate) {
371
+ const supervisionAppointmentsReset = (currentYearEndDate, sentence) => {
372
+ if (!sentence || !sentence.endDate) {
371
373
  return false;
372
374
  }
373
375
  const yearEndDate = luxon.DateTime.fromISO(currentYearEndDate).startOf('day');
374
- const sentenceEndDate = luxon.DateTime.fromISO(primarySentence.endDate).startOf('day');
376
+ const sentenceEndDate = luxon.DateTime.fromISO(sentence.endDate).startOf('day');
375
377
  return sentenceEndDate > yearEndDate;
376
378
  };
377
379
 
@@ -394,17 +396,16 @@ const mpopNunjucksSetup = (env) => {
394
396
  env.addFilter('govukTime', govukTime);
395
397
  env.addFilter('appointmentDateTime', appointmentDateTime);
396
398
  env.addFilter('toTitleCase', toTitleCase);
397
- env.addFilter('hasBreachedSentence', hasBreachedSentence);
398
399
  env.addFilter('hasTerminatedSentence', hasTerminatedSentence);
400
+ env.addFilter('hasRestrictedCustodyStatus', hasRestrictedCustodyStatus);
401
+ env.addFilter('isUnlawfullyAtLarge', isUnlawfullyAtLarge);
402
+ env.addFilter('isRecalled', isRecalled);
399
403
  env.addFilter('isEligibleForDiscretionaryAppointments', isEligibleForDiscretionaryAppointments);
400
404
  env.addFilter('finalThirdStatus', finalThirdStatus);
401
- env.addFilter('isInCustody', isInCustody);
402
- env.addFilter('isAtLarge', isAtLarge);
403
405
  env.addFilter('sentenceType', sentenceType);
404
406
  env.addFilter('getPrimarySentence', getPrimarySentence);
405
407
  env.addFilter('supervisionAppointmentsReset', supervisionAppointmentsReset);
406
408
  env.addFilter('spaceOutChars', spaceOutChars);
407
- env.addFilter('isSpxOnlySentenceList', isSpxOnlySentenceList);
408
409
  env.addFilter('formatName', formatName);
409
410
  };
410
411
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/SuppressingRestClient.ts","../src/utils/isBlank.ts","../src/utils/yearsSince.ts","../src/MPoPComponents.ts","../src/utils/govukTime.ts","../src/utils/dateWithYear.ts","../src/utils/appointmentDateTime.ts","../src/utils/toTitleCase.ts","../src/utils/getPrimarySentence.ts","../src/utils/hasBreachedSentence.ts","../src/utils/hasTerminatedSentence.ts","../src/utils/isEligibleForDiscretionaryAppointments.ts","../src/utils/finalThirdStatus.ts","../src/utils/isInCustody.ts","../src/utils/isAtLarge.ts","../src/utils/sentenceType.ts","../src/utils/supervisionAppointmentsReset.ts","../src/utils/spaceOutChars.ts","../src/utils/formatName.ts","../src/utils/nunjucksFilters.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DateTime","RestClient"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/SuppressingRestClient.ts","../src/utils/isBlank.ts","../src/utils/yearsSince.ts","../src/MPoPComponents.ts","../src/utils/govukTime.ts","../src/utils/dateWithYear.ts","../src/utils/appointmentDateTime.ts","../src/utils/toTitleCase.ts","../src/utils/getPrimarySentence.ts","../src/utils/hasTerminatedSentence.ts","../src/utils/hasRestrictedCustodyStatus.ts","../src/utils/isUnlawfullyAtLarge.ts","../src/utils/isRecalled.ts","../src/utils/isEligibleForDiscretionaryAppointments.ts","../src/utils/finalThirdStatus.ts","../src/utils/sentenceType.ts","../src/utils/supervisionAppointmentsReset.ts","../src/utils/spaceOutChars.ts","../src/utils/formatName.ts","../src/utils/nunjucksFilters.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DateTime","RestClient"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -86,6 +86,7 @@ type FrontendSentence = {
86
86
  type: FrontendSentenceType;
87
87
  custody: FrontendCustody;
88
88
  inBreach: boolean;
89
+ isPrimarySentence: boolean;
89
90
  };
90
91
  type PersonName = {
91
92
  forename: string;
@@ -105,6 +106,7 @@ type ContextDetails = {
105
106
  liferCategory?: LiferCategory;
106
107
  recallStatus?: CodeDescription;
107
108
  preventConcerns?: boolean;
109
+ inFlight?: boolean;
108
110
  };
109
111
  type CurrentPhase = {
110
112
  supervisionPackage: CodeDescription;
@@ -138,7 +140,14 @@ type NextAppointment = {
138
140
  type: CodeDescription;
139
141
  description: string;
140
142
  };
141
- type SupervisionPackageFrontendContextResponse = {
143
+ type ApiError = {
144
+ timestamp: string;
145
+ status: number;
146
+ error: string;
147
+ path: string;
148
+ };
149
+ type SupervisionPackageFrontendContextSuccess = {
150
+ outcome: 'success';
142
151
  currentPhase?: CurrentPhase | null;
143
152
  earlyEngagement: EarlyEngagement;
144
153
  currentYear: CurrentYear;
@@ -147,6 +156,10 @@ type SupervisionPackageFrontendContextResponse = {
147
156
  updatedAt: string;
148
157
  context: ContextDetails;
149
158
  };
159
+ type SupervisionPackageFrontendContextFailure = ApiError & {
160
+ outcome: 'error';
161
+ };
162
+ type SupervisionPackageFrontendContextResponse = SupervisionPackageFrontendContextSuccess | SupervisionPackageFrontendContextFailure;
150
163
 
151
164
  type PersonSchedule = {
152
165
  personSummary: {
package/dist/index.esm.js CHANGED
@@ -38,6 +38,16 @@ const tierTags = {
38
38
  unavailable: { text: 'Unavailable', color: 'grey' },
39
39
  none: { text: null, color: null },
40
40
  };
41
+ const isApiError = (value) => {
42
+ if (typeof value !== 'object' || value === null) {
43
+ return false;
44
+ }
45
+ const candidate = value;
46
+ return (typeof candidate.timestamp === 'string' &&
47
+ typeof candidate.status === 'number' &&
48
+ typeof candidate.error === 'string' &&
49
+ typeof candidate.path === 'string');
50
+ };
41
51
  class MPoPComponents {
42
52
  constructor(authenticationClient, config, logger = console) {
43
53
  var _a, _b;
@@ -198,16 +208,24 @@ class MPoPComponents {
198
208
  async getSupervisionPackageFrontendContext(authOptions, crn) {
199
209
  try {
200
210
  // SuppressingRestClient resolves 404s to null rather than throwing, so a missing context is not an error
201
- return await this.supervisionPackageApiRestClient.get(`/frontend-context/${crn}`, authOptions);
211
+ const response = await this.supervisionPackageApiRestClient.get(`/frontend-context/${crn}`, authOptions);
212
+ return response ? { ...response, outcome: 'success' } : null;
202
213
  }
203
214
  catch (err) {
204
215
  const responseStatus = err === null || err === void 0 ? void 0 : err.responseStatus;
205
216
  const error = err instanceof Error ? err : new Error('500 Internal Server Error');
206
217
  if (responseStatus === 503) {
207
218
  this.logger.error(`Supervision Package API unavailable (503) for crn ${crn}`);
219
+ throw error;
208
220
  }
209
- else {
221
+ if (responseStatus === 500) {
210
222
  this.logger.error(`Supervision Package API internal error (500) for crn ${crn}`);
223
+ // The API's 500 response body is already in the declared ApiError shape - tag it with the discriminator
224
+ const apiError = err.data;
225
+ if (!isApiError(apiError) || apiError.status !== 500) {
226
+ throw error;
227
+ }
228
+ return { ...apiError, outcome: 'error' };
211
229
  }
212
230
  throw error;
213
231
  }
@@ -258,37 +276,29 @@ const toTitleCase = (value) => {
258
276
  }, titleCased);
259
277
  };
260
278
 
261
- const isSpx = (sentence) => { var _a; return ((_a = sentence === null || sentence === void 0 ? void 0 : sentence.supervisionPackage) === null || _a === void 0 ? void 0 : _a.code) === 'SPX'; };
262
279
  const isTerminated = (sentence) => { var _a, _b; return ((_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) === 'T'; };
263
280
  const getPrimarySentence = (sentences) => {
264
281
  if (!sentences || !sentences.length) {
265
282
  return false;
266
283
  }
267
- if (sentences.length === 1 && !isSpx(sentences[0]) && !isTerminated(sentences[0])) {
268
- return sentences[0];
269
- }
270
- const findSPSentence = sentences.find(sentence => (sentence === null || sentence === void 0 ? void 0 : sentence.supervisionPackage) && !isTerminated(sentence) && !isSpx(sentence));
271
- const findHighestEventNumberSentence = sentences
272
- .filter(sentence => !isTerminated(sentence))
273
- .reduce((highest, sentence) => !highest || Number(sentence.eventNumber) > Number(highest.eventNumber) ? sentence : highest, false);
274
- if (findSPSentence) {
275
- return findSPSentence;
276
- }
277
- if (findHighestEventNumberSentence) {
278
- return findHighestEventNumberSentence;
279
- }
280
- return false;
281
- };
282
- const isSpxOnlySentenceList = (sentences) => !!sentences && sentences.length > 0 && sentences.every(sentence => isSpx(sentence));
283
-
284
- const hasBreachedSentence = (sentences) => {
285
- const primarySentence = getPrimarySentence(sentences);
286
- return primarySentence ? primarySentence.inBreach === true : false;
284
+ return sentences.find(sentence => sentence.isPrimarySentence) || false;
287
285
  };
288
286
 
289
287
  // True only when no sentence remains eligible to be the primary sentence, i.e. every sentence is terminated
290
288
  const hasTerminatedSentence = (sentences) => !!sentences && sentences.length > 0 && sentences.every(isTerminated);
291
289
 
290
+ // Custody status codes that prevent the sentence from following the normal supervision package flow
291
+ const RESTRICTED_CUSTODY_STATUS_CODES = ['D', 'I', 'R', 'C'];
292
+ const hasRestrictedCustodyStatus = (sentence) => {
293
+ var _a, _b;
294
+ return !!((_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) &&
295
+ RESTRICTED_CUSTODY_STATUS_CODES.includes(sentence.custody.status.code.toUpperCase());
296
+ };
297
+
298
+ const isUnlawfullyAtLarge = (sentence) => { var _a, _b; return ((_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.code) === 'UATLRG'; };
299
+
300
+ const isRecalled = (sentence) => { var _a, _b, _c; return ((_c = (_b = (_a = sentence === null || sentence === void 0 ? void 0 : sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) === null || _c === void 0 ? void 0 : _c.toUpperCase()) === 'C'; };
301
+
292
302
  const eligibleTiers = ['C', 'D', 'E', 'F', 'G'];
293
303
  const isEligibleForDiscretionaryAppointments = (context, tierScore) => (context === null || context === void 0 ? void 0 : context.gender) === 'Female' &&
294
304
  !(context === null || context === void 0 ? void 0 : context.integratedOffenderManagementRedRated) &&
@@ -326,13 +336,6 @@ const finalThirdStatus = (finalThirdDate, sentenceEndDate) => {
326
336
  };
327
337
  };
328
338
 
329
- const isInCustody = (sentences, codes = ['D', 'I', 'R', 'C']) => {
330
- var _a, _b, _c;
331
- return (_c = (_b = (_a = sentences === null || sentences === void 0 ? void 0 : sentences.find(sentence => { var _a, _b, _c; return codes.includes((_c = (_b = (_a = sentence.custody) === null || _a === void 0 ? void 0 : _a.status) === null || _b === void 0 ? void 0 : _b.code) === null || _c === void 0 ? void 0 : _c.toUpperCase()); })) === null || _a === void 0 ? void 0 : _a.custody) === null || _b === void 0 ? void 0 : _b.status) === null || _c === void 0 ? void 0 : _c.description;
332
- };
333
-
334
- const isAtLarge = (sentences) => { var _a; return (_a = sentences === null || sentences === void 0 ? void 0 : sentences.some(sentence => { var _a, _b; return ((_b = (_a = sentence.custody) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.code) === 'UATLRG'; })) !== null && _a !== void 0 ? _a : false; };
335
-
336
339
  const sentenceType = (context) => {
337
340
  var _a, _b, _c, _d, _e;
338
341
  if (!context || !context.sentences) {
@@ -363,13 +366,12 @@ const sentenceType = (context) => {
363
366
  return false;
364
367
  };
365
368
 
366
- const supervisionAppointmentsReset = (currentYearEndDate, sentences) => {
367
- const primarySentence = getPrimarySentence(sentences);
368
- if (!primarySentence || !primarySentence.endDate) {
369
+ const supervisionAppointmentsReset = (currentYearEndDate, sentence) => {
370
+ if (!sentence || !sentence.endDate) {
369
371
  return false;
370
372
  }
371
373
  const yearEndDate = DateTime.fromISO(currentYearEndDate).startOf('day');
372
- const sentenceEndDate = DateTime.fromISO(primarySentence.endDate).startOf('day');
374
+ const sentenceEndDate = DateTime.fromISO(sentence.endDate).startOf('day');
373
375
  return sentenceEndDate > yearEndDate;
374
376
  };
375
377
 
@@ -392,17 +394,16 @@ const mpopNunjucksSetup = (env) => {
392
394
  env.addFilter('govukTime', govukTime);
393
395
  env.addFilter('appointmentDateTime', appointmentDateTime);
394
396
  env.addFilter('toTitleCase', toTitleCase);
395
- env.addFilter('hasBreachedSentence', hasBreachedSentence);
396
397
  env.addFilter('hasTerminatedSentence', hasTerminatedSentence);
398
+ env.addFilter('hasRestrictedCustodyStatus', hasRestrictedCustodyStatus);
399
+ env.addFilter('isUnlawfullyAtLarge', isUnlawfullyAtLarge);
400
+ env.addFilter('isRecalled', isRecalled);
397
401
  env.addFilter('isEligibleForDiscretionaryAppointments', isEligibleForDiscretionaryAppointments);
398
402
  env.addFilter('finalThirdStatus', finalThirdStatus);
399
- env.addFilter('isInCustody', isInCustody);
400
- env.addFilter('isAtLarge', isAtLarge);
401
403
  env.addFilter('sentenceType', sentenceType);
402
404
  env.addFilter('getPrimarySentence', getPrimarySentence);
403
405
  env.addFilter('supervisionAppointmentsReset', supervisionAppointmentsReset);
404
406
  env.addFilter('spaceOutChars', spaceOutChars);
405
- env.addFilter('isSpxOnlySentenceList', isSpxOnlySentenceList);
406
407
  env.addFilter('formatName', formatName);
407
408
  };
408
409
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/SuppressingRestClient.ts","../src/utils/isBlank.ts","../src/utils/yearsSince.ts","../src/MPoPComponents.ts","../src/utils/govukTime.ts","../src/utils/dateWithYear.ts","../src/utils/appointmentDateTime.ts","../src/utils/toTitleCase.ts","../src/utils/getPrimarySentence.ts","../src/utils/hasBreachedSentence.ts","../src/utils/hasTerminatedSentence.ts","../src/utils/isEligibleForDiscretionaryAppointments.ts","../src/utils/finalThirdStatus.ts","../src/utils/isInCustody.ts","../src/utils/isAtLarge.ts","../src/utils/sentenceType.ts","../src/utils/supervisionAppointmentsReset.ts","../src/utils/spaceOutChars.ts","../src/utils/formatName.ts","../src/utils/nunjucksFilters.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/SuppressingRestClient.ts","../src/utils/isBlank.ts","../src/utils/yearsSince.ts","../src/MPoPComponents.ts","../src/utils/govukTime.ts","../src/utils/dateWithYear.ts","../src/utils/appointmentDateTime.ts","../src/utils/toTitleCase.ts","../src/utils/getPrimarySentence.ts","../src/utils/hasTerminatedSentence.ts","../src/utils/hasRestrictedCustodyStatus.ts","../src/utils/isUnlawfullyAtLarge.ts","../src/utils/isRecalled.ts","../src/utils/isEligibleForDiscretionaryAppointments.ts","../src/utils/finalThirdStatus.ts","../src/utils/sentenceType.ts","../src/utils/supervisionAppointmentsReset.ts","../src/utils/spaceOutChars.ts","../src/utils/formatName.ts","../src/utils/nunjucksFilters.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
@@ -48,6 +48,11 @@
48
48
  white-space: nowrap;
49
49
  font-weight: 400;
50
50
  text-transform: none;
51
+ &:hover {
52
+ text-decoration: underline;
53
+ text-decoration-thickness: 2px;
54
+ text-underline-offset: 2px;
55
+ }
51
56
  }
52
57
 
53
58
  /* Risk flag colours */
@@ -44,7 +44,7 @@
44
44
  href='{{ params.historyHref }}'
45
45
  data-qa='tier'
46
46
  >
47
- <span class='govuk-!-font-weight-bold'>Tier:</span> {{ params.tier }}
47
+ <span class='govuk-!-font-weight-bold'>Tier:</span> {{ params.tier }}{% if params.provisional %} <span data-qa='tierProvisional'>(provisional)</span>{% endif %}
48
48
  </a>
49
49
  </li>
50
50
 
@@ -115,7 +115,17 @@
115
115
  class='govuk-link govuk-link--no-underline govuk-link--text-colour dps-alert-status dps-alert-status--risk {{ risk.badgeClass }}'
116
116
  data-qa='risk-badge-{{ risk.id }}'
117
117
  >
118
- {{ risk.text | safe }}
118
+ {% if risk.text | replace(' - Very High', '') != risk.text %}
119
+ {{ risk.text | replace(' - Very High', ' -&nbsp;<strong>Very High</strong>') | safe }}
120
+ {% elif risk.text | replace(' - High', '') != risk.text %}
121
+ {{ risk.text | replace(' - High', ' -&nbsp;<strong>High</strong>') | safe }}
122
+ {% elif risk.text | replace(' - Medium', '') != risk.text %}
123
+ {{ risk.text | replace(' - Medium', ' -&nbsp;<strong>Medium</strong>') | safe }}
124
+ {% elif risk.text | replace(' - Low', '') != risk.text %}
125
+ {{ risk.text | replace(' - Low', ' -&nbsp;<strong>Low</strong>') | safe }}
126
+ {% else %}
127
+ {{ risk.text }}
128
+ {% endif %}
119
129
  </a>
120
130
  {% endfor %}
121
131
  {% endfor %}
@@ -33,6 +33,10 @@ $supervision-package-accent-colour: govuk-colour("blue");
33
33
  }
34
34
  }
35
35
 
36
+ .supervision-package > .app-tier-header {
37
+ gap: govuk-spacing(6);
38
+ }
39
+
36
40
  .supervision-package__tier-tag {
37
41
  margin-left: 15px;
38
42
  }
@@ -1,4 +1,4 @@
1
- {% if not (params.context.sentences | isInCustody or params.context.sentences | isAtLarge or phaseCode == 'FTHRD' ) and (params.arrangeAppointmentHref or (params.crn and params.deliusBaseURL)) %}
1
+ {% if not (sentence | hasRestrictedCustodyStatus or sentence | isUnlawfullyAtLarge or phaseCode == 'FTHRD' ) and (params.arrangeAppointmentHref or (params.crn and params.deliusBaseURL)) %}
2
2
  <div class='govuk-button-group'>
3
3
  {% if params.arrangeAppointmentHref %}
4
4
  <a href='{{ params.arrangeAppointmentHref }}' role='button' draggable='false' class='govuk-button' data-module='govuk-button' data-ai-id='supervisionPackageArrangeAppointmentLink'>
@@ -1,4 +1,4 @@
1
- {% set resets = params.currentYear.endDate | supervisionAppointmentsReset(params.context.sentences) %}
1
+ {% set resets = params.currentYear.endDate | supervisionAppointmentsReset(sentence) %}
2
2
  {% set stageEndDate = ("The supervision package resets on " if resets else "The supervision stage ends on ") + (params.currentYear.endDate | dateWithYear) + "." %}
3
3
 
4
4
  {% if params.context.preventConcerns %}
@@ -0,0 +1,14 @@
1
+ <div class='supervision-package' role='region' aria-label='Supervision package'>
2
+ <div class='app-tier-header'>
3
+ <h3 class='govuk-heading-m govuk-!-margin-bottom-0'>Supervision package</h3>
4
+ <strong class='app-status-badge govuk-tag govuk-tag--grey'>Unavailable</strong>
5
+ </div>
6
+
7
+ <div class='govuk-warning-text'>
8
+ <span class='govuk-warning-text__icon' aria-hidden='true'>!</span>
9
+ <strong class='govuk-warning-text__text'>
10
+ <span class='govuk-visually-hidden'>Warning</span>
11
+ Supervision package information is currently unavailable while the package is being recalculated.
12
+ </strong>
13
+ </div>
14
+ </div>
@@ -2,11 +2,11 @@
2
2
  <strong class='app-status-badge govuk-tag govuk-tag--red'>No appointments remaining</strong>
3
3
  {% endif %}
4
4
 
5
- {% if params.context.sentences | isAtLarge %}
5
+ {% if sentence | isUnlawfullyAtLarge %}
6
6
  <strong class='app-status-badge govuk-tag govuk-tag--yellow'>Unlawfully at large</strong>
7
- {% elseif params.context.sentences | isInCustody %}
8
- <strong class='app-status-badge govuk-tag govuk-tag--yellow'>{{ params.context.sentences | isInCustody | toTitleCase }}</strong>
9
- {% elseif params.context.sentences | hasBreachedSentence %}
7
+ {% elseif sentence | hasRestrictedCustodyStatus %}
8
+ <strong class='app-status-badge govuk-tag govuk-tag--yellow'>{{ sentence.custody.status.description | toTitleCase }}</strong>
9
+ {% elseif sentence.inBreach %}
10
10
  <strong class='app-status-badge govuk-tag govuk-tag--yellow'>In breach</strong>
11
11
  {% endif %}
12
12
 
@@ -6,7 +6,7 @@
6
6
  The supervision package shown may change. It is based on data that needs review.
7
7
  </strong>
8
8
  </div>
9
- {% elseif params.context.sentences | hasBreachedSentence %}
9
+ {% elseif sentence.inBreach %}
10
10
  <div class='govuk-warning-text'>
11
11
  <span class='govuk-warning-text__icon' aria-hidden='true'>!</span>
12
12
  <strong class='govuk-warning-text__text'>
@@ -14,7 +14,7 @@
14
14
  {{ forename }} is in breach. You should continue to offer appointments.
15
15
  </strong>
16
16
  </div>
17
- {% elseif params.context.sentences | isInCustody(['C']) %}
17
+ {% elseif sentence | isRecalled %}
18
18
  <div class='govuk-warning-text'>
19
19
  <span class='govuk-warning-text__icon' aria-hidden='true'>!</span>
20
20
  <strong class='govuk-warning-text__text'>
@@ -22,7 +22,7 @@
22
22
  {{ forename }} has been recalled. Their appointments are paused.
23
23
  </strong>
24
24
  </div>
25
- {% elseif params.context.sentences | isInCustody %}
25
+ {% elseif sentence | hasRestrictedCustodyStatus %}
26
26
  <div class='govuk-warning-text'>
27
27
  <span class='govuk-warning-text__icon' aria-hidden='true'>!</span>
28
28
  <strong class='govuk-warning-text__text'>
@@ -30,7 +30,7 @@
30
30
  {{ forename }} is in custody. Their appointments are paused.
31
31
  </strong>
32
32
  </div>
33
- {% elseif params.context.sentences | isAtLarge %}
33
+ {% elseif sentence | isUnlawfullyAtLarge %}
34
34
  <div class='govuk-warning-text'>
35
35
  <span class='govuk-warning-text__icon' aria-hidden='true'>!</span>
36
36
  <strong class='govuk-warning-text__text'>
@@ -1,29 +1,28 @@
1
1
  {% from "../supervision-final-third-progress/macro.njk" import supervisionFinalThirdProgress %}
2
+ {% set sentence = params.context.sentences | getPrimarySentence %}
2
3
  {% set standardAppointmentsComplete = params.currentYear.appointments.allowance is defined and params.currentYear.appointments.completed is defined and (params.currentYear.appointments.completed | int) >= (params.currentYear.appointments.allowance| int) %}
3
- {% set hasSpecialStatus = params.context.offenderPersonalDisorderPathway or params.context.preventConcerns or params.context.sentences | hasBreachedSentence or params.context.sentences | isInCustody or params.context.sentences | isAtLarge or params.context.integratedOffenderManagementRedRated %}
4
+ {% set hasSpecialStatus = params.context.offenderPersonalDisorderPathway or params.context.preventConcerns or sentence.inBreach or sentence | hasRestrictedCustodyStatus or sentence | isUnlawfullyAtLarge or params.context.integratedOffenderManagementRedRated %}
4
5
  {% set sentenceTypeValue = params.context | sentenceType %}
5
6
  {% set phaseCode = params.currentPhase.phase.code | upper %}
6
7
  {% set showPhaseColumn = phaseCode == 'INIT' or phaseCode == 'STD' or phaseCode == 'FTHRD' or phaseCode == 'IOM' or phaseCode == 'OPD' or phaseCode == 'SPNS' %}
7
8
  {% set lifeCategoryCode = params.context.liferCategory.code | upper %}
8
- {% set sentence = params.context.sentences | getPrimarySentence %}
9
9
  {% set forename = params.context.name.forename %}
10
10
  {% set provisionalTier = params.provisional == true %}
11
11
  {% set isFinalThirdProgress = params.context.nationalSecurityDivision and params.context.finalThirdEligibility.eligible and sentence.type.isCustodial and sentence.custody.finalThirdDate %}
12
+ {% set isInFlight = params.context.inFlight and (phaseCode == 'SPNS' or not phaseCode) %}
12
13
  {% set isEligiblePhase = showPhaseColumn or not params.currentPhase or phaseCode == 'SPNK' or provisionalTier %}
13
- {% set hasSentenceInList = sentence and params.context.sentences.length %}
14
- {% set isSpxOnlySentenceList = params.context.sentences | isSpxOnlySentenceList %}
15
- {% set isEarlyOrInFlightWithoutSentence = not sentence and not isSpxOnlySentenceList and (not params.currentPhase or phaseCode == 'SPNS') %}
16
- {% set isValidSentenceState = hasSentenceInList or isEarlyOrInFlightWithoutSentence %}
17
- {% set isSupervisionPackage = phaseCode != 'SPNA' and not params.context.nationalSecurityDivision and isEligiblePhase and isValidSentenceState %}
14
+ {% set isSupervisionPackage = phaseCode != 'SPNA' and not params.context.nationalSecurityDivision and isEligiblePhase and sentence %}
15
+ {% set error = params.status == 500 %}
18
16
 
19
- {% if isFinalThirdProgress %}
20
- <div role='region' aria-label='Supervision package'>
21
- {{ supervisionFinalThirdProgress({
22
- supervisionPackage: params
23
- }) }}
17
+ {% if error %}
18
+ {% include './partials/_server-error.njk' %}
19
+ {% elif isFinalThirdProgress %}
20
+ <div role='region' aria-label='Supervision package'>
21
+ {{ supervisionFinalThirdProgress({
22
+ supervisionPackage: params
23
+ }) }}
24
24
  </div>
25
25
  {% elif isSupervisionPackage %}
26
-
27
26
  <div class='supervision-package' role='region' aria-label='Supervision package'>
28
27
  {% if standardAppointmentsComplete or hasSpecialStatus %}
29
28
  <div class='app-tier-header'>
@@ -45,17 +44,19 @@
45
44
  <div class='{{ columnClass }}'>
46
45
  {% include './partials/_warnings.njk' %}
47
46
 
48
- {% if not params.currentPhase and params.oasysReviewHref %}
49
- {% if provisionalTier or params.tierScore == 'MISSING' %}
50
- <p class='govuk-body'><a href='{{ params.oasysReviewHref }}' data-ai-id='supervisionPackageOasysReviewLink' class='govuk-link govuk-link--no-visited-state' target='{{ "_blank" if params.openInNewTab }}' rel='{{ "noopener noreferrer" if params.openInNewTab }}'>Complete an OASys review{{ ' (opens in new tab)' if params.openInNewTab }}</a>. This confirms {{ forename}}’s tier so we can calculate the supervision package.</p>
51
- {% else %}
52
- <p class='govuk-body'><a href='{{ params.oasysReviewHref }}' data-ai-id='supervisionPackageOasysReviewLink' class='govuk-link govuk-link--no-visited-state' target='{{ "_blank" if params.openInNewTab }}' rel='{{ "noopener noreferrer" if params.openInNewTab }}'>Start an OASys review{{ ' (opens in new tab)' if params.openInNewTab }}</a> to confirm {{ forename}}’s supervision package. Until then, follow national standards for appointments.</p>
47
+ {% if isInFlight and params.oasysReviewHref %}
48
+ {% if phaseCode == 'SPNS' %}
49
+ <p class='govuk-body'><a href='{{ params.oasysReviewHref }}' data-ai-id='supervisionPackageOasysReviewLink' class='govuk-link govuk-link--no-visited-state' target='{{ "_blank" if params.openInNewTab }}' rel='{{ "noopener noreferrer" if params.openInNewTab }}'>Complete an OASys review{{ ' (opens in new tab)' if params.openInNewTab }}</a> to confirm {{ forename}}’s supervision package. Until then, follow national standards for appointments. </p>
50
+ <p class='govuk-body'>
51
+ Appointments do not count towards the package until it is confirmed.
52
+ </p>
53
+ {% elseif not phaseCode %}
54
+ {% if provisionalTier or params.tierScore == 'MISSING' %}
55
+ <p class='govuk-body'><a href='{{ params.oasysReviewHref }}' data-ai-id='supervisionPackageOasysReviewLink' class='govuk-link govuk-link--no-visited-state' target='{{ "_blank" if params.openInNewTab }}' rel='{{ "noopener noreferrer" if params.openInNewTab }}'>Complete an OASys review{{ ' (opens in new tab)' if params.openInNewTab }}</a>. This confirms {{ forename}}’s tier so we can calculate the supervision package.</p>
56
+ {% else %}
57
+ <p class='govuk-body'><a href='{{ params.oasysReviewHref }}' data-ai-id='supervisionPackageOasysReviewLink' class='govuk-link govuk-link--no-visited-state' target='{{ "_blank" if params.openInNewTab }}' rel='{{ "noopener noreferrer" if params.openInNewTab }}'>Start an OASys review{{ ' (opens in new tab)' if params.openInNewTab }}</a> to confirm {{ forename}}’s supervision package. Until then, follow national standards for appointments.</p>
58
+ {% endif %}
53
59
  {% endif %}
54
- {% elseif phaseCode == 'SPNS' and params.oasysReviewHref %}
55
- <p class='govuk-body'><a href='{{ params.oasysReviewHref }}' data-ai-id='supervisionPackageOasysReviewLink' class='govuk-link govuk-link--no-visited-state' target='{{ "_blank" if params.openInNewTab }}' rel='{{ "noopener noreferrer" if params.openInNewTab }}'>Complete an OASys review{{ ' (opens in new tab)' if params.openInNewTab }}</a> to confirm {{ forename}}’s supervision package. Until then, follow national standards for appointments. </p>
56
- <p class='govuk-body'>
57
- Appointments do not count towards the package until it is confirmed.
58
- </p>
59
60
  {% endif %}
60
61
 
61
62
  {% include './partials/_tier.njk' %}
@@ -81,7 +82,6 @@
81
82
  <div class='govuk-grid-column-one-half'>
82
83
  {% if params.context.preventConcerns %}
83
84
  <h4 class='govuk-heading-s'>{{ 'Final third stage' if phaseCode == 'FTHRD' else 'Supervision appointments' }}</h4>
84
-
85
85
  {% include './partials/_prevent-concerns.njk' %}
86
86
  {% elseif params.context.offenderPersonalDisorderPathway %}
87
87
  <h4 class='govuk-heading-s'>Supervision appointments</h4>
@@ -89,7 +89,7 @@
89
89
  {% elseif params.context.integratedOffenderManagementRedRated %}
90
90
  <h4 class='govuk-heading-s'>Supervision appointments</h4>
91
91
  {% include './partials/_red-iom.njk' %}
92
- {% elseif params.context.sentences | isAtLarge or params.context.sentences | isInCustody %}
92
+ {% elseif sentence | isUnlawfullyAtLarge or sentence | hasRestrictedCustodyStatus %}
93
93
  <h4 class='govuk-heading-s'>Supervision stage</h4>
94
94
  {% include './partials/_progress-bar.njk' %}
95
95
  {% elseif phaseCode == 'INIT' %}
@@ -32,13 +32,13 @@
32
32
  {% set remaining = required - completed %}
33
33
  {% set upcoming = params.currentYear.appointments.scheduled | int(0) %}
34
34
  {% set warning = null %}
35
- {% if params.context.sentences | hasBreachedSentence %}
35
+ {% if sentence.inBreach %}
36
36
  {% set warning = forename + " is in breach. You should continue to offer appointments." %}
37
- {% elif params.context.sentences | isInCustody(['C']) %}
37
+ {% elif sentence | isRecalled %}
38
38
  {% set warning = forename + " has been recalled. Their appointments are paused." %}
39
- {% elif params.context.sentences | isInCustody %}
39
+ {% elif sentence | hasRestrictedCustodyStatus %}
40
40
  {% set warning = forename + " is in custody. Their appointments are paused." %}
41
- {% elif params.context.sentences | isAtLarge %}
41
+ {% elif sentence | isUnlawfullyAtLarge %}
42
42
  {% set warning = forename + " is unlawfully at large. You should continue to offer appointments." %}
43
43
  {% endif %}
44
44
 
@@ -104,7 +104,7 @@
104
104
  {% if params.currentPhase.phase.code == 'STD' %}
105
105
  <p class="govuk-body">{{ forename }} has a maximum of {{ remaining }} appointments remaining.</p>
106
106
  <p class="govuk-body">
107
- {% if params.currentYear.endDate | supervisionAppointmentsReset(params.context.sentences) %}
107
+ {% if params.currentYear.endDate | supervisionAppointmentsReset(sentence) %}
108
108
  Appointments reset with the supervision package on {{ params.currentYear.endDate | dateWithYear }}.
109
109
  {% else %}
110
110
  The supervision package ends on {{ params.currentYear.endDate | dateWithYear }}.
@@ -37,6 +37,7 @@ export type FrontendSentence = {
37
37
  type: FrontendSentenceType;
38
38
  custody: FrontendCustody;
39
39
  inBreach: boolean;
40
+ isPrimarySentence: boolean;
40
41
  };
41
42
  type PersonName = {
42
43
  forename: string;
@@ -56,6 +57,7 @@ export type ContextDetails = {
56
57
  liferCategory?: LiferCategory;
57
58
  recallStatus?: CodeDescription;
58
59
  preventConcerns?: boolean;
60
+ inFlight?: boolean;
59
61
  };
60
62
  export type CurrentPhase = {
61
63
  supervisionPackage: CodeDescription;
@@ -89,7 +91,14 @@ type NextAppointment = {
89
91
  type: CodeDescription;
90
92
  description: string;
91
93
  };
92
- export type SupervisionPackageFrontendContextResponse = {
94
+ export type ApiError = {
95
+ timestamp: string;
96
+ status: number;
97
+ error: string;
98
+ path: string;
99
+ };
100
+ export type SupervisionPackageFrontendContextSuccess = {
101
+ outcome: 'success';
93
102
  currentPhase?: CurrentPhase | null;
94
103
  earlyEngagement: EarlyEngagement;
95
104
  currentYear: CurrentYear;
@@ -98,4 +107,8 @@ export type SupervisionPackageFrontendContextResponse = {
98
107
  updatedAt: string;
99
108
  context: ContextDetails;
100
109
  };
110
+ type SupervisionPackageFrontendContextFailure = ApiError & {
111
+ outcome: 'error';
112
+ };
113
+ export type SupervisionPackageFrontendContextResponse = SupervisionPackageFrontendContextSuccess | SupervisionPackageFrontendContextFailure;
101
114
  export {};
@@ -1,4 +1,3 @@
1
1
  import { FrontendSentence } from '../types/SupervisionPackage';
2
2
  export declare const isTerminated: (sentence?: FrontendSentence | null) => boolean;
3
3
  export declare const getPrimarySentence: <T extends FrontendSentence>(sentences?: T[] | null) => T | false;
4
- export declare const isSpxOnlySentenceList: (sentences?: FrontendSentence[] | null) => boolean;
@@ -0,0 +1,2 @@
1
+ import { FrontendSentence } from '../types/SupervisionPackage';
2
+ export declare const hasRestrictedCustodyStatus: (sentence?: Pick<FrontendSentence, "custody"> | null) => boolean;
@@ -0,0 +1,2 @@
1
+ import { FrontendSentence } from '../types/SupervisionPackage';
2
+ export declare const isRecalled: (sentence?: Pick<FrontendSentence, "custody"> | null) => boolean;
@@ -0,0 +1,2 @@
1
+ import { FrontendSentence } from '../types/SupervisionPackage';
2
+ export declare const isUnlawfullyAtLarge: (sentence?: Pick<FrontendSentence, "custody"> | null) => boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,2 @@
1
1
  import { FrontendSentence } from '../types/SupervisionPackage';
2
- export declare const supervisionAppointmentsReset: (currentYearEndDate: string, sentences: Array<FrontendSentence>) => boolean;
2
+ export declare const supervisionAppointmentsReset: (currentYearEndDate: string, sentence?: FrontendSentence | false | null) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-mpop-frontend-components-lib",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "MPOP front-end components library",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",
@@ -1,2 +0,0 @@
1
- import { FrontendSentence } from '../types/SupervisionPackage';
2
- export declare const hasBreachedSentence: (sentences?: Array<FrontendSentence> | null) => boolean;
@@ -1,2 +0,0 @@
1
- import { FrontendSentence } from '../types/SupervisionPackage';
2
- export declare const isAtLarge: (sentences?: Array<FrontendSentence> | null) => boolean;
@@ -1,2 +0,0 @@
1
- import { FrontendSentence } from '../types/SupervisionPackage';
2
- export declare const isInCustody: (sentences?: Array<FrontendSentence> | null, codes?: string[]) => string | undefined;