@ministryofjustice/hmpps-digital-prison-reporting-frontend 3.7.9 → 3.8.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.
Files changed (65) hide show
  1. package/dpr/all.scss +481 -0
  2. package/dpr/assets/css/all.css +1 -1
  3. package/dpr/assets/js/all.mjs +555 -20
  4. package/dpr/components/async-applied-filters/view.njk +12 -0
  5. package/dpr/components/async-card-group/utils.js +92 -0
  6. package/dpr/components/async-card-group/utils.ts +139 -0
  7. package/dpr/components/async-card-group/view.njk +33 -0
  8. package/dpr/components/async-columns/types.d.ts +11 -0
  9. package/dpr/components/async-columns/utils.js +44 -0
  10. package/dpr/components/async-columns/utils.ts +50 -0
  11. package/dpr/components/async-columns/view.njk +48 -0
  12. package/dpr/components/async-data-table/view.njk +28 -0
  13. package/dpr/components/async-filter-inputs/view.njk +82 -0
  14. package/dpr/components/async-filters/sortByTemplate.js +33 -0
  15. package/dpr/components/async-filters/sortByTemplate.ts +34 -0
  16. package/dpr/components/async-filters/types.d.ts +45 -0
  17. package/dpr/components/async-filters/utils.js +115 -0
  18. package/dpr/components/async-filters/utils.ts +126 -0
  19. package/dpr/components/async-filters/view.njk +53 -0
  20. package/dpr/components/async-polling/utils.js +36 -0
  21. package/dpr/components/async-polling/utils.ts +37 -0
  22. package/dpr/components/async-polling/view.njk +92 -0
  23. package/dpr/components/async-report-list/utils.js +68 -0
  24. package/dpr/components/async-report-list/utils.ts +73 -0
  25. package/dpr/components/async-report-list/view.njk +46 -0
  26. package/dpr/components/async-request-details/view.njk +11 -0
  27. package/dpr/components/card-group/view.njk +1 -1
  28. package/dpr/components/columns/view.njk +1 -2
  29. package/dpr/components/content-slide/view.njk +37 -0
  30. package/dpr/components/content-slide-cards/view.njk +50 -0
  31. package/dpr/components/data-table/utils.js +9 -0
  32. package/dpr/components/data-table/utils.ts +10 -0
  33. package/dpr/components/data-table/view.njk +1 -1
  34. package/dpr/components/filters/utils.js +59 -31
  35. package/dpr/components/filters/utils.ts +32 -3
  36. package/dpr/components/filters/view.njk +1 -1
  37. package/dpr/components/icon-button-list/utils.js +72 -0
  38. package/dpr/components/icon-button-list/utils.ts +86 -0
  39. package/dpr/components/icon-button-list/view.njk +14 -0
  40. package/dpr/components/pagination/types.d.ts +14 -0
  41. package/dpr/components/pagination/utils.js +123 -0
  42. package/dpr/components/pagination/utils.ts +137 -0
  43. package/dpr/components/pagination/view.njk +41 -0
  44. package/dpr/components/report-list/CreateRequestHandlerInput.ts +2 -0
  45. package/dpr/components/report-list/RenderListWithDefinitionInput.ts +2 -0
  46. package/dpr/components/report-list/utils.js +4 -3
  47. package/dpr/components/report-list/utils.ts +4 -1
  48. package/dpr/components/request-status-tag/view.njk +16 -0
  49. package/dpr/components/static-icon/view.njk +13 -0
  50. package/dpr/components/toggle-button/view.njk +9 -0
  51. package/dpr/components/toggle-content/view.njk +14 -0
  52. package/dpr/data/reportingClient.js +38 -0
  53. package/dpr/data/reportingClient.ts +57 -0
  54. package/dpr/data/types.d.ts +11 -0
  55. package/dpr/data/userDataStore.js +41 -0
  56. package/dpr/data/userDataStore.ts +52 -0
  57. package/dpr/routes/async-reports/routes.js +55 -0
  58. package/dpr/services/requestedReportsService.js +141 -0
  59. package/dpr/services/requestedReportsService.ts +179 -0
  60. package/dpr/types/AsyncReport.js +13 -0
  61. package/dpr/types/AsyncReport.ts +59 -0
  62. package/dpr/types/AsyncReportUtils.js +2 -0
  63. package/dpr/types/AsyncReportUtils.ts +13 -0
  64. package/package.json +1 -1
  65. package/package.zip +0 -0
package/dpr/all.scss CHANGED
@@ -5,6 +5,14 @@ $govuk-assets-path: "/assets/govuk/";
5
5
 
6
6
  @import 'govuk/all';
7
7
 
8
+ .govuk-width-container {
9
+ max-width: 1170px !important;
10
+ }
11
+
12
+ .drp-reports-heading-container {
13
+ position: relative;
14
+ }
15
+
8
16
  .dpr-accordion-section {
9
17
  margin-bottom: govuk-spacing(6);
10
18
  position: relative;
@@ -145,6 +153,108 @@ $govuk-assets-path: "/assets/govuk/";
145
153
  background: govuk-colour("mid-grey");
146
154
  }
147
155
  }
156
+ .async-applied-filters-list {
157
+ padding-top: govuk-spacing(3);
158
+ padding-bottom: govuk-spacing(3);
159
+
160
+ .async-applied-filters-list__item {
161
+ display: inline-block;
162
+ margin-right: 10px;
163
+ p {
164
+ margin-bottom: 0px;
165
+ }
166
+ }
167
+
168
+ .async-applied-filters-list__item--title {
169
+ }
170
+ }
171
+
172
+ @media print {
173
+ .async-applied-filters-list {
174
+ .async-applied-filters-list__item {
175
+ display: block;
176
+ p {
177
+ font-size: 14px;
178
+ }
179
+ }
180
+ }
181
+ }
182
+
183
+ #async-columns-form {
184
+ margin-left: govuk-spacing(2);
185
+ }
186
+
187
+ .columns-container {
188
+ position: relative;
189
+
190
+ .govuk-checkboxes.govuk-checkboxes--small {
191
+ display: grid;
192
+ grid-template-columns: 1fr 1fr 1fr;
193
+ column-gap: 10px;
194
+
195
+ @media(min-width: 769px) and (max-width: 1019px) {
196
+ grid-template-columns: 1fr 1fr;
197
+ }
198
+
199
+ @media(max-width: 768px) {
200
+ grid-template-columns: 1fr;
201
+ }
202
+ }
203
+ }
204
+
205
+ .columns-header {
206
+ padding-left: 10px;
207
+ padding-top: 10px;
208
+ }
209
+
210
+ .dpr-async-controls {
211
+ .dpr-async-controls__section {
212
+ margin-bottom: govuk-spacing(9);
213
+ }
214
+ }
215
+
216
+ .drp-async-reports-heading-container {
217
+ position: relative;
218
+ margin-bottom: govuk-spacing(3);
219
+ }
220
+
221
+ .columns-select-wrapper {
222
+ .govuk-details {
223
+ margin-bottom: 0px;
224
+ }
225
+ }
226
+
227
+ @media print {
228
+ .columns-select-wrapper {
229
+ display: none;
230
+ }
231
+
232
+ .drp-async-reports-heading-container {
233
+ h1.govuk-heading-l {
234
+ font-size: 20px;
235
+ }
236
+ p.govuk-body-s {
237
+ font-size: 14px;
238
+ }
239
+ }
240
+ }
241
+
242
+ .dpr-table-container {
243
+ @media screen {
244
+ .print-header-footer,
245
+ .govuk-table__header span,
246
+ .screen-hide {
247
+ display: none;
248
+ }
249
+ }
250
+ }
251
+
252
+ .dpr-request-details {
253
+ padding: govuk-spacing(4);
254
+ border: solid 1px govuk-colour("mid-grey");
255
+ margin-bottom: govuk-spacing(6);
256
+ }
257
+
148
258
  .dpr-autocomplete-text-input {
149
259
  position: relative;
150
260
 
@@ -337,6 +447,75 @@ $govuk-assets-path: "/assets/govuk/";
337
447
  }
338
448
  }
339
449
 
450
+ .columns-header {
451
+ padding-left: 10px;
452
+ padding-top: 10px;
453
+ }
454
+
455
+ @media print {
456
+ .columns-select-wrapper {
457
+ display: none;
458
+ }
459
+ }
460
+
461
+ .dpr-slide-container {
462
+ position: relative;
463
+ padding-top: govuk-spacing(6);
464
+ padding-bottom: govuk-spacing(6);
465
+
466
+ .dpr-slide__header {
467
+ margin-bottom: govuk-spacing(4);
468
+
469
+ .dpr-slide__title {
470
+ margin-bottom: govuk-spacing(1);
471
+ }
472
+
473
+ .dpr-slide__sub-text {
474
+ margin-bottom: govuk-spacing(0);
475
+ }
476
+ }
477
+ }
478
+
479
+ .dpr-card-group {
480
+ padding-bottom: govuk-spacing(6);
481
+ .dpr-card-group__item {
482
+ padding-bottom: govuk-spacing(5);
483
+
484
+ .dpr-card-group__item_header {
485
+
486
+ }
487
+
488
+ .dpr-card-group__item__description {
489
+ margin-top: 10px;
490
+ }
491
+
492
+ ul.dpr-card-group__item__filters-list {
493
+ list-style-type: none;
494
+ padding: 0;
495
+
496
+ li {
497
+ margin-bottom: 0px;
498
+ }
499
+ }
500
+
501
+ .dpr-card-group__item__timestamp {
502
+ position: absolute;
503
+ bottom: 1px;
504
+ left: 0px;
505
+ padding-bottom: 0px;
506
+ margin-bottom: 0px;
507
+ font-size: 14px;
508
+ color: #505a5f;
509
+ }
510
+
511
+ .dpr-card-group__item__status {
512
+ position: absolute;
513
+ bottom: 0px;
514
+ right: 0px;
515
+ }
516
+ }
517
+ }
518
+
340
519
  // Cannibalised from MoJ sortable table
341
520
 
342
521
  .dpr-table-container {
@@ -604,6 +783,22 @@ $govuk-assets-path: "/assets/govuk/";
604
783
  }
605
784
  }
606
785
 
786
+ .icon-button-list {
787
+ position: absolute;
788
+ right: 0px;
789
+ top: 0px;
790
+
791
+ .dpr-icon-wrapper {
792
+ margin-right: 0px;
793
+ }
794
+ }
795
+
796
+ @media print {
797
+ .icon-button-list {
798
+ display: none;
799
+ }
800
+ }
801
+
607
802
  .dpr-loading-panel {
608
803
  display: none;
609
804
  width: 100%;
@@ -722,6 +917,20 @@ $govuk-assets-path: "/assets/govuk/";
722
917
  }
723
918
  }
724
919
 
920
+ .dpr-pagination {
921
+ overflow: auto;
922
+ }
923
+
924
+ #page-size-select {
925
+ min-width: 5em;
926
+ }
927
+
928
+ @media print {
929
+ .dpr-pagination {
930
+ display: none;
931
+ }
932
+ }
933
+
725
934
  .report-list-container {
726
935
  position: relative;
727
936
 
@@ -798,3 +1007,275 @@ $govuk-assets-path: "/assets/govuk/";
798
1007
  }
799
1008
  }
800
1009
  }
1010
+
1011
+ .dpr-request-status-tag {
1012
+ text-transform: uppercase;
1013
+ font-weight: bold;
1014
+ font-size: 16px;
1015
+ letter-spacing: 1px;
1016
+ }
1017
+
1018
+ .dpr-icon:before {
1019
+ font-family: "Material Icons";
1020
+ text-rendering: optimizeLegibility;
1021
+ font-feature-settings: "liga" 1;
1022
+ font-style: normal;
1023
+ text-transform: none;
1024
+ line-height: 26px;
1025
+ font-size: 36px;
1026
+ display: inline-block;
1027
+ color: black;
1028
+ }
1029
+
1030
+ .dpr-icon-wrapper {
1031
+ display: inline-block;
1032
+ position: relative;
1033
+ border-radius: 100px;
1034
+ background-color: govuk-colour("mid-grey");
1035
+ width: 26px;
1036
+ height: 26px;
1037
+ padding: 0px;
1038
+ margin-right: 6px;
1039
+ vertical-align: middle;
1040
+
1041
+ .dpr-icon:before {
1042
+ line-height: 26px;
1043
+ font-size: 16px;
1044
+ text-align: center;
1045
+ overflow: hidden;
1046
+ -webkit-font-smoothing: antialiased;
1047
+ -moz-osx-font-smoothing: grayscale;
1048
+ color: white;
1049
+ width: 26px;
1050
+ height: 26px
1051
+ }
1052
+
1053
+ .viewed-icon.icon:before {
1054
+ content: "history";
1055
+ font-size: 20px;
1056
+ }
1057
+ }
1058
+
1059
+ .dpr-icon-live {
1060
+ border-radius: 0px;
1061
+ background-color: govuk-colour("blue");
1062
+
1063
+ &.dpr-icon--active {
1064
+ background-color: govuk-colour("yellow");
1065
+
1066
+ &:hover {
1067
+ background-color: govuk-colour("yellow");
1068
+ .dpr-icon:before {
1069
+ color: black;
1070
+ }
1071
+ }
1072
+
1073
+ .dpr-icon:before {
1074
+ color: black;
1075
+ }
1076
+ }
1077
+
1078
+ &:hover {
1079
+ background-color: govuk-colour("light-blue");
1080
+ cursor: pointer;
1081
+
1082
+ .dpr-icon:before {
1083
+ color: white;
1084
+ }
1085
+ }
1086
+
1087
+ &:active {
1088
+ background-color: govuk-colour("yellow");
1089
+
1090
+ .dpr-icon:before {
1091
+ color: black;
1092
+ }
1093
+ }
1094
+
1095
+ &.dpr-icon-disabled {
1096
+ background-color: govuk-colour("mid-grey");
1097
+
1098
+ &:hover {
1099
+ background-color: lighten(govuk-colour("mid-grey"), 5%);
1100
+ cursor: pointer;
1101
+
1102
+ .dpr-icon:before {
1103
+ color: white;
1104
+ }
1105
+ }
1106
+ }
1107
+ }
1108
+
1109
+ .dpr-icon-live:hover:after {
1110
+ background: govuk-colour("dark-grey");
1111
+ content: attr(tooltip);
1112
+ display: block;
1113
+ color: white;
1114
+ padding: govuk-spacing(3);
1115
+ position: absolute;
1116
+ white-space: nowrap;
1117
+ text-transform: none;
1118
+ z-index: 98;
1119
+ font-size: 14px;
1120
+ font-weight: normal;
1121
+ text-align: center;
1122
+ font-family: Helvetica Neue, Helvetica, Arial;
1123
+ }
1124
+
1125
+ .dpr-icon-live:hover:before {
1126
+ content: '';
1127
+ z-index: 98;
1128
+ display: block;
1129
+ position: absolute;
1130
+ width: 20;
1131
+ height: 20;
1132
+ border-left: 10px solid transparent;
1133
+ border-right: 10px solid transparent;
1134
+ border-bottom: 10px solid govuk-colour("dark-grey");
1135
+ }
1136
+
1137
+
1138
+ .dpr-icon-live.dpr-icon-wrapper--xl:hover:after {
1139
+ top: 65px !important;
1140
+ }
1141
+
1142
+ .dpr-icon-live.dpr-icon-wrapper--xl:hover:before {
1143
+ top: 56px !important;
1144
+ left: 15px !important;
1145
+ }
1146
+
1147
+ .dpr-icon-live.dpr-icon-wrapper--l:hover:after {
1148
+ top: 50px !important;
1149
+ }
1150
+
1151
+ .dpr-icon-live.dpr-icon-wrapper--l:hover:before {
1152
+ top: 44px !important;
1153
+ left: 8px !important;
1154
+ }
1155
+
1156
+ .dpr-icon-live.dpr-icon-wrapper:hover:after {
1157
+ top: 38px;
1158
+ }
1159
+
1160
+ .dpr-icon-live.dpr-icon-wrapper:hover:before {
1161
+ top: 32px;
1162
+ left: 5px;
1163
+ }
1164
+
1165
+ .dpr-icon-wrapper--l {
1166
+ width: 35px;
1167
+ height: 35px;
1168
+
1169
+ .dpr-icon:before {
1170
+ line-height: 35px;
1171
+ font-size: 21px;
1172
+ // background-color: rgba(0, 0, 0, 0.5);
1173
+ width: 35px;
1174
+ height: 35px
1175
+ }
1176
+
1177
+ .viewed-icon.dpr-icon:before {
1178
+ content: "history";
1179
+ font-size: 25px;
1180
+ }
1181
+ }
1182
+
1183
+ .dpr-icon-wrapper--xl {
1184
+ width: 50px;
1185
+ height: 50px;
1186
+
1187
+ .dpr-icon:before {
1188
+ line-height: 50px;
1189
+ font-size: 30px;
1190
+ // background-color: rgba(0, 0, 0, 0.5);
1191
+ width: 50px;
1192
+ height: 50px
1193
+ }
1194
+
1195
+ .viewed-icon.dpr-icon:before {
1196
+ content: "history";
1197
+ font-size: 35px;
1198
+ }
1199
+ }
1200
+
1201
+ .bookmark-icon.dpr-icon:before {
1202
+ content: "bookmark";
1203
+ }
1204
+
1205
+ .viewed-icon.dpr-icon:before {
1206
+ content: "history";
1207
+ }
1208
+
1209
+ .list-icon.dpr-icon:before {
1210
+ content: "list";
1211
+ }
1212
+
1213
+ .card-icon.dpr-icon:before {
1214
+ content: "grid_view";
1215
+ }
1216
+
1217
+ .print-icon.dpr-icon:before {
1218
+ content: "print";
1219
+ }
1220
+
1221
+ .download-icon.dpr-icon:before {
1222
+ content: "download";
1223
+ }
1224
+
1225
+ .share-icon.dpr-icon:before {
1226
+ content: "share";
1227
+ }
1228
+
1229
+ .close-icon.dpr-icon:before {
1230
+ content: "close";
1231
+ }
1232
+
1233
+ .info-icon.dpr-icon:before {
1234
+ content: "info";
1235
+ }
1236
+
1237
+ .info-icon.dpr-icon:before {
1238
+ content: "info";
1239
+ }
1240
+
1241
+ .pending-icon.dpr-icon:before {
1242
+ content: "pending";
1243
+ }
1244
+
1245
+ .hourglass-icon.dpr-icon:before {
1246
+ content: "hourglass_empty";
1247
+ }
1248
+
1249
+ .pending-actions-icon.dpr-icon:before {
1250
+ content: "pending_actions";
1251
+ }
1252
+
1253
+ .copy-icon.dpr-icon:before {
1254
+ content: "content_copy";
1255
+ }
1256
+
1257
+ .dpr-icon-info-tooltip:before {
1258
+ display: inline-block;
1259
+ color: govuk-colour("dark-grey");
1260
+ font-size: 24px;
1261
+ vertical-align: middle;
1262
+ cursor: pointer;
1263
+ }
1264
+
1265
+ .dpr-toggle-button-container {
1266
+ position: absolute;
1267
+ top: 30px;
1268
+ right: 0px;
1269
+
1270
+ .dpr-icon-wrapper {
1271
+ margin-right: 0px;
1272
+ }
1273
+ }
1274
+
1275
+ .dpr-toggle-content {
1276
+ display: none;
1277
+ }
1278
+
1279
+ .dpr-toggle-content--active {
1280
+ display: block;
1281
+ }