@ministryofjustice/hmpps-arns-frontend-components-lib 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_all.scss +1 -1
- package/dist/arns/components/{predictor-badge/_predictor-badge.scss → badge-base/_badge-base.scss} +14 -14
- package/dist/arns/components/badge-base/macro.njk +3 -0
- package/dist/arns/components/badge-base/template.njk +62 -0
- package/dist/arns/components/predictor-badge/template.njk +2 -39
- package/dist/arns/components/rosh-badge/macro.njk +3 -0
- package/dist/arns/components/rosh-badge/template.njk +27 -0
- package/package.json +1 -1
package/dist/_all.scss
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Import this file into your project's main SCSS file
|
|
3
3
|
// Requires govuk-frontend to be imported first
|
|
4
4
|
|
|
5
|
-
@import "./arns/components/
|
|
5
|
+
@import "./arns/components/badge-base/badge-base";
|
|
6
6
|
@import "./arns/components/expanded-predictor-badge/expanded-predictor-badge";
|
|
7
7
|
@import "./arns/components/predictor-scale/predictor-scale";
|
|
8
8
|
@import "./arns/components/predictor-scale-bar/predictor-scale-bar";
|
package/dist/arns/components/{predictor-badge/_predictor-badge.scss → badge-base/_badge-base.scss}
RENAMED
|
@@ -14,18 +14,18 @@ $default-colour: govuk-colour("mid-grey");
|
|
|
14
14
|
$default-colour--light: govuk-colour("light-grey");
|
|
15
15
|
$default-colour__text: govuk-colour("black");
|
|
16
16
|
|
|
17
|
-
@mixin arns-
|
|
17
|
+
@mixin arns-badge-base-base($primary-colour, $secondary-colour, $text-colour) {
|
|
18
18
|
display: inline-flex;
|
|
19
19
|
outline: 2px solid $primary-colour;
|
|
20
20
|
|
|
21
|
-
& .arns-
|
|
21
|
+
& .arns-badge-base__type_and_level {
|
|
22
22
|
@include govuk-font(19, "regular");
|
|
23
23
|
color: $text-colour;
|
|
24
24
|
|
|
25
25
|
padding: 2px 10px;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
& .arns-
|
|
28
|
+
& .arns-badge-base__score {
|
|
29
29
|
@include govuk-font(19, "bold");
|
|
30
30
|
color: govuk-colour("black");
|
|
31
31
|
|
|
@@ -36,7 +36,7 @@ $default-colour__text: govuk-colour("black");
|
|
|
36
36
|
align-content: center;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
& .arns-
|
|
39
|
+
& .arns-badge-base__static_or_dynamic {
|
|
40
40
|
@include govuk-font(19, "regular");
|
|
41
41
|
color: #282D30;
|
|
42
42
|
background-color: #cecece;
|
|
@@ -49,26 +49,26 @@ $default-colour__text: govuk-colour("black");
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.arns-
|
|
53
|
-
@include arns-
|
|
52
|
+
.arns-badge-base--very-high {
|
|
53
|
+
@include arns-badge-base-base(
|
|
54
54
|
$very-high-score-colour,
|
|
55
55
|
$very-high-score-colour--light,
|
|
56
56
|
$very-high-score-colour__text
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
.arns-
|
|
61
|
-
@include arns-
|
|
60
|
+
.arns-badge-base--high {
|
|
61
|
+
@include arns-badge-base-base($high-score-colour, $high-score-colour--light, $high-score-colour__text);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
.arns-
|
|
65
|
-
@include arns-
|
|
64
|
+
.arns-badge-base--medium {
|
|
65
|
+
@include arns-badge-base-base($medium-score-colour, $medium-score-colour--light, $medium-score-colour__text);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
.arns-
|
|
69
|
-
@include arns-
|
|
68
|
+
.arns-badge-base--low {
|
|
69
|
+
@include arns-badge-base-base($low-score-colour, $low-score-colour--light, $low-score-colour__text);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
.arns-
|
|
73
|
-
@include arns-
|
|
72
|
+
.arns-badge-base--default {
|
|
73
|
+
@include arns-badge-base-base($default-colour, $default-colour--light, $default-colour__text);
|
|
74
74
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{#
|
|
2
|
+
ARNS Badge Base Component
|
|
3
|
+
|
|
4
|
+
@name badgeBase
|
|
5
|
+
|
|
6
|
+
@description Common component for displaying a specified risk predictor score badge.
|
|
7
|
+
It uses the latest assessment from the provided data set.
|
|
8
|
+
|
|
9
|
+
@example
|
|
10
|
+
In template:
|
|
11
|
+
{% from "components/badge-base/macro.njk" import badgeBase %}
|
|
12
|
+
{{ badgeBase({
|
|
13
|
+
name: string,
|
|
14
|
+
band: "LOW",
|
|
15
|
+
score: "12.84",
|
|
16
|
+
staticOrDynamic: "Static",
|
|
17
|
+
shouldShowScore: true,
|
|
18
|
+
}) }}
|
|
19
|
+
|
|
20
|
+
@param {object} params
|
|
21
|
+
@param {string} name: Predictor name or Risk of Serious Harm text
|
|
22
|
+
@param {BandLevel} band: Risk level,
|
|
23
|
+
@param {number | undefined} score: Percentage score,
|
|
24
|
+
@param {StaticOrDynamicContent} staticOrDynamic: Static or Dynamic,
|
|
25
|
+
@param {boolean | undefined} shouldShowScore: Optional config override - If true, displays the percentage score
|
|
26
|
+
#}
|
|
27
|
+
{%- from "govuk/components/tag/macro.njk" import govukTag -%}
|
|
28
|
+
|
|
29
|
+
{% set badgeClass = '' %}
|
|
30
|
+
{% switch band %}
|
|
31
|
+
{% case 'VERY HIGH' %}
|
|
32
|
+
{% set badgeClass = 'arns-badge-base--very-high' %}
|
|
33
|
+
{% case 'HIGH' %}
|
|
34
|
+
{% set badgeClass = 'arns-badge-base--high' %}
|
|
35
|
+
{% case 'MEDIUM' %}
|
|
36
|
+
{% set badgeClass = 'arns-badge-base--medium' %}
|
|
37
|
+
{% case 'LOW' %}
|
|
38
|
+
{% set badgeClass = 'arns-badge-base--low' %}
|
|
39
|
+
{% default %}
|
|
40
|
+
{% set badgeClass = 'arns-badge-base--default' %}
|
|
41
|
+
{% endswitch %}
|
|
42
|
+
{% if band == null or (shouldShowScore == true and score == null) %}
|
|
43
|
+
{% set band = 'UNKNOWN' %}
|
|
44
|
+
{% set badgeClass = 'arns-badge-base--default' %}
|
|
45
|
+
{% else %}
|
|
46
|
+
{% set band = band | replace('_', ' ') %}
|
|
47
|
+
{% endif %}
|
|
48
|
+
<div class="{{ badgeClass }}"
|
|
49
|
+
data-badge-base="{{ name }} {{ band }}">
|
|
50
|
+
|
|
51
|
+
<span class="arns-badge-base__type_and_level" data-test-id="nameAndBand">{{ name }} <strong>{{ band }}</strong></span>
|
|
52
|
+
|
|
53
|
+
{% if shouldShowScore and badgeClass != 'arns-badge-base--default' %}
|
|
54
|
+
<span class="arns-badge-base__score" data-test-id="score">{{ score }}%</span>
|
|
55
|
+
{% endif %}
|
|
56
|
+
|
|
57
|
+
{% if staticOrDynamic and badgeClass !== 'arns-badge-base--default' %}
|
|
58
|
+
<span class="arns-badge-base__static_or_dynamic" data-test-id="staticOrDynamic">
|
|
59
|
+
{{ govukTag({ text: staticOrDynamic, classes: "govuk-tag--grey arns-badge-base__govuk-tag-sizing"}) }}
|
|
60
|
+
</span>
|
|
61
|
+
{% endif %}
|
|
62
|
+
</div>
|
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
@param {boolean} [params.showScore] - Optional config override - If true, displays the percentage score
|
|
27
27
|
@param {boolean} [params.legacyFallback] - Optional (default false) - If true and predictor requested is OGRS4-gen, fallback to showing the OGRS3-gen predictor if the latest assessment is OGRS3-gen.
|
|
28
28
|
#}
|
|
29
|
-
{%- from "
|
|
30
|
-
|
|
29
|
+
{%- from "../badge-base/macro.njk" import badgeBase -%}
|
|
31
30
|
{% set latestAssessment = params.data.assessments | first if params.data.assessments else null %}
|
|
32
31
|
|
|
33
32
|
{% if latestAssessment %}
|
|
@@ -44,43 +43,7 @@
|
|
|
44
43
|
{% if key == predictorToRender %}
|
|
45
44
|
|
|
46
45
|
{% set shouldShowScore = params.showScore if params.showScore is defined else config.showScore %}
|
|
47
|
-
|
|
48
|
-
{% set badgeClass = '' %}
|
|
49
|
-
{% switch predictor.band %}
|
|
50
|
-
{% case 'VERY HIGH' %}
|
|
51
|
-
{% set badgeClass = 'arns-predictor-badge--very-high' %}
|
|
52
|
-
{% case 'HIGH' %}
|
|
53
|
-
{% set badgeClass = 'arns-predictor-badge--high' %}
|
|
54
|
-
{% case 'MEDIUM' %}
|
|
55
|
-
{% set badgeClass = 'arns-predictor-badge--medium' %}
|
|
56
|
-
{% case 'LOW' %}
|
|
57
|
-
{% set badgeClass = 'arns-predictor-badge--low' %}
|
|
58
|
-
{% default %}
|
|
59
|
-
{% set badgeClass = 'arns-predictor-badge--default' %}
|
|
60
|
-
{% endswitch %}
|
|
61
|
-
|
|
62
|
-
{% if predictor.band == null or (shouldShowScore == true and predictor.score == null) %}
|
|
63
|
-
{% set band = 'UNKNOWN' %}
|
|
64
|
-
{% set badgeClass = 'arns-predictor-badge--default' %}
|
|
65
|
-
{% else %}
|
|
66
|
-
{% set band = predictor.band | replace('_', ' ') %}
|
|
67
|
-
{% endif %}
|
|
68
|
-
|
|
69
|
-
<div class="{{ badgeClass }}"
|
|
70
|
-
data-predictor-badge="{{ predictor.name }} {{ band }}">
|
|
71
|
-
|
|
72
|
-
<span class="arns-predictor-badge__type_and_level" data-test-id="nameAndBand">{{ predictor.name }} <strong>{{ band }}</strong></span>
|
|
73
|
-
|
|
74
|
-
{% if shouldShowScore and badgeClass != 'arns-predictor-badge--default' %}
|
|
75
|
-
<span class="arns-predictor-badge__score" data-test-id="score">{{ predictor.score }}%</span>
|
|
76
|
-
{% endif %}
|
|
77
|
-
|
|
78
|
-
{% if predictor.staticOrDynamic and badgeClass !== 'arns-predictor-badge--default' %}
|
|
79
|
-
<span class="arns-predictor-badge__static_or_dynamic" data-test-id="staticOrDynamic">
|
|
80
|
-
{{ govukTag({ text: predictor.staticOrDynamic, classes: "govuk-tag--grey arns-predictor-badge__govuk-tag-sizing"}) }}
|
|
81
|
-
</span>
|
|
82
|
-
{% endif %}
|
|
83
|
-
</div>
|
|
46
|
+
{{ badgeBase(predictor.name, predictor.band, predictor.score, predictor.staticOrDynamic, shouldShowScore) }}
|
|
84
47
|
{% endif %}
|
|
85
48
|
{% endfor %}
|
|
86
49
|
{% endif %}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{#
|
|
2
|
+
ARNS Rosh Badge Component
|
|
3
|
+
|
|
4
|
+
@name roshBadge
|
|
5
|
+
|
|
6
|
+
@description Displays a specified rosh badge.
|
|
7
|
+
It uses the latest assessment from the provided data set.
|
|
8
|
+
|
|
9
|
+
@example
|
|
10
|
+
In route handler:
|
|
11
|
+
const riskData = await arnsComponents.getRoshData(token, 'crn', 'X123456')
|
|
12
|
+
res.render('page', { riskData })
|
|
13
|
+
|
|
14
|
+
In template:
|
|
15
|
+
{% from "components/rosh-badge/macro.njk" import roshBadge %}
|
|
16
|
+
{{ roshBadge({
|
|
17
|
+
data: roshData
|
|
18
|
+
}) }}
|
|
19
|
+
|
|
20
|
+
@param {object} params
|
|
21
|
+
@param {RoshData} params.data - Rosh data object from ArnsComponents.getRoshData() containing an 'assessment' object
|
|
22
|
+
#}
|
|
23
|
+
{%- from "../badge-base/macro.njk" import badgeBase -%}
|
|
24
|
+
{% set assessment = params.data.assessment if params.data.assessment else "null" %}
|
|
25
|
+
{% if assessment %}
|
|
26
|
+
{{ badgeBase("Risk of serious harm", assessment.overallRisk, null, null, false) }}
|
|
27
|
+
{% endif %}
|
package/package.json
CHANGED