@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.1 → 4.17.3

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,2 +1,2 @@
1
- var C=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var w=(o,e)=>{for(var t in e)a(o,t,{get:e[t],enumerable:!0})},s=(o,e,t,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of k(e))!S.call(o,n)&&n!==t&&a(o,n,{get:()=>e[n],enumerable:!(l=f(e,n))||l.enumerable});return o};var g=(o,e,t)=>(t=o!=null?C(h(o)):{},s(e||!o||!o.__esModule?a(t,"default",{value:o,enumerable:!0}):t,o)),T=o=>s(a({},"__esModule",{value:!0}),o);var P={};w(P,{default:()=>F,init:()=>m});module.exports=T(P);var b=g(require("../catalogue-list/utils")),p=g(require("../../../utils/localsHelper"));const m=async({features:o,res:e,services:t})=>{const l=await b.default.getReportsList(e,t,o),{token:n,bookmarkingEnabled:E,dprUser:d}=p.default.getValues(e),i=(await t.productCollectionService.getProductCollections(n))?.map(u=>({value:u.id,text:u.name}));i&&i.length>0&&i.unshift({value:"RESET",text:"Full catalogue"});const r=await t.productCollectionStoreService.getSelectedProductCollectionId(d.id),c=r&&await t.productCollectionService.getProductCollection(d.id,r);return{data:l,productCollectionInfo:{productCollections:i,...c&&{selectedProductCollection:c}},features:v(E,o)}},v=(o,e)=>({filteringEnabled:e?.filteringEnabled===void 0||e.filteringEnabled,unauthorisedToggleEnabled:e?.unauthorisedToggleEnabled===void 0||e.unauthorisedToggleEnabled,howToUseEnabled:e?.howToUseEnabled===void 0||e.howToUseEnabled,bookmarkingEnabled:e?.bookmarkingEnabled!==void 0?e.bookmarkingEnabled:o});var F={init:m};0&&(module.exports={init});
1
+ var f=Object.create;var i=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var w=(o,e)=>{for(var t in e)i(o,t,{get:e[t],enumerable:!0})},s=(o,e,t,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!T.call(o,n)&&n!==t&&i(o,n,{get:()=>e[n],enumerable:!(l=k(e,n))||l.enumerable});return o};var g=(o,e,t)=>(t=o!=null?f(S(o)):{},s(e||!o||!o.__esModule?i(t,"default",{value:o,enumerable:!0}):t,o)),v=o=>s(i({},"__esModule",{value:!0}),o);var U={};w(U,{default:()=>P,init:()=>m});module.exports=v(U);var b=g(require("../catalogue-list/utils")),p=g(require("../../../utils/localsHelper"));const m=async({features:o,res:e,services:t})=>{const l=await b.default.getReportsList(e,t,o),{token:n,bookmarkingEnabled:E,dprUser:d,csrfToken:C}=p.default.getValues(e),a=(await t.productCollectionService.getProductCollections(n))?.map(u=>({value:u.id,text:u.name}));a&&a.length>0&&a.unshift({value:"RESET",text:"Full catalogue"});const r=await t.productCollectionStoreService.getSelectedProductCollectionId(d.id),c=r&&await t.productCollectionService.getProductCollection(d.id,r);return{data:{...l,csrfToken:C},productCollectionInfo:{productCollections:a,...c&&{selectedProductCollection:c}},features:F(E,o)}},F=(o,e)=>({filteringEnabled:e?.filteringEnabled===void 0||e.filteringEnabled,unauthorisedToggleEnabled:e?.unauthorisedToggleEnabled===void 0||e.unauthorisedToggleEnabled,howToUseEnabled:e?.howToUseEnabled===void 0||e.howToUseEnabled,bookmarkingEnabled:e?.bookmarkingEnabled!==void 0?e.bookmarkingEnabled:o});var P={init:m};0&&(module.exports={init});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_catalogue/catalogue/utils.ts"],
4
- "sourcesContent": ["import { Response } from 'express'\nimport CatalogueListUtils from '../catalogue-list/utils'\nimport { Services } from '../../../types/Services'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { CatalogueFeatures } from './types'\n\nexport const init = async ({\n features,\n res,\n services,\n}: {\n features?: CatalogueFeatures\n res: Response\n services: Services\n}) => {\n const data = await CatalogueListUtils.getReportsList(res, services, features)\n const { token, bookmarkingEnabled, dprUser } = LocalsHelper.getValues(res)\n const productCollections = (await services.productCollectionService.getProductCollections(token))?.map(\n (collection) => ({\n value: collection.id,\n text: collection.name,\n }),\n )\n if (productCollections && productCollections.length > 0) {\n productCollections.unshift({ value: 'RESET', text: 'Full catalogue' })\n }\n const selectedProductCollectionId = await services.productCollectionStoreService.getSelectedProductCollectionId(\n dprUser.id,\n )\n const selectedProductCollection =\n selectedProductCollectionId &&\n (await services.productCollectionService.getProductCollection(dprUser.id, selectedProductCollectionId))\n return {\n data,\n productCollectionInfo: {\n productCollections,\n ...(selectedProductCollection && { selectedProductCollection }),\n },\n features: setFeatures(bookmarkingEnabled, features),\n }\n}\n\nconst setFeatures = (bookmarkingEnabled: boolean, features?: CatalogueFeatures) => {\n return {\n filteringEnabled: features?.filteringEnabled === undefined || features.filteringEnabled,\n unauthorisedToggleEnabled: features?.unauthorisedToggleEnabled === undefined || features.unauthorisedToggleEnabled,\n howToUseEnabled: features?.howToUseEnabled === undefined || features.howToUseEnabled,\n bookmarkingEnabled: features?.bookmarkingEnabled !== undefined ? features.bookmarkingEnabled : bookmarkingEnabled,\n }\n}\n\nexport default {\n init,\n}\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA+B,sCAE/BC,EAAyB,0CAGlB,MAAMH,EAAO,MAAO,CACzB,SAAAI,EACA,IAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,EAAO,MAAM,EAAAC,QAAmB,eAAeH,EAAKC,EAAUF,CAAQ,EACtE,CAAE,MAAAK,EAAO,mBAAAC,EAAoB,QAAAC,CAAQ,EAAI,EAAAC,QAAa,UAAUP,CAAG,EACnEQ,GAAsB,MAAMP,EAAS,yBAAyB,sBAAsBG,CAAK,IAAI,IAChGK,IAAgB,CACf,MAAOA,EAAW,GAClB,KAAMA,EAAW,IACnB,EACF,EACID,GAAsBA,EAAmB,OAAS,GACpDA,EAAmB,QAAQ,CAAE,MAAO,QAAS,KAAM,gBAAiB,CAAC,EAEvE,MAAME,EAA8B,MAAMT,EAAS,8BAA8B,+BAC/EK,EAAQ,EACV,EACMK,EACJD,GACC,MAAMT,EAAS,yBAAyB,qBAAqBK,EAAQ,GAAII,CAA2B,EACvG,MAAO,CACL,KAAAR,EACA,sBAAuB,CACrB,mBAAAM,EACA,GAAIG,GAA6B,CAAE,0BAAAA,CAA0B,CAC/D,EACA,SAAUC,EAAYP,EAAoBN,CAAQ,CACpD,CACF,EAEMa,EAAc,CAACP,EAA6BN,KACzC,CACL,iBAAkBA,GAAU,mBAAqB,QAAaA,EAAS,iBACvE,0BAA2BA,GAAU,4BAA8B,QAAaA,EAAS,0BACzF,gBAAiBA,GAAU,kBAAoB,QAAaA,EAAS,gBACrE,mBAAoBA,GAAU,qBAAuB,OAAYA,EAAS,mBAAqBM,CACjG,GAGF,IAAOX,EAAQ,CACb,KAAAC,CACF",
6
- "names": ["utils_exports", "__export", "utils_default", "init", "__toCommonJS", "import_utils", "import_localsHelper", "features", "res", "services", "data", "CatalogueListUtils", "token", "bookmarkingEnabled", "dprUser", "LocalsHelper", "productCollections", "collection", "selectedProductCollectionId", "selectedProductCollection", "setFeatures"]
4
+ "sourcesContent": ["import { Response } from 'express'\nimport CatalogueListUtils from '../catalogue-list/utils'\nimport { Services } from '../../../types/Services'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { CatalogueFeatures } from './types'\n\nexport const init = async ({\n features,\n res,\n services,\n}: {\n features?: CatalogueFeatures\n res: Response\n services: Services\n}) => {\n const data = await CatalogueListUtils.getReportsList(res, services, features)\n const { token, bookmarkingEnabled, dprUser, csrfToken } = LocalsHelper.getValues(res)\n const productCollections = (await services.productCollectionService.getProductCollections(token))?.map(\n (collection) => ({\n value: collection.id,\n text: collection.name,\n }),\n )\n if (productCollections && productCollections.length > 0) {\n productCollections.unshift({ value: 'RESET', text: 'Full catalogue' })\n }\n const selectedProductCollectionId = await services.productCollectionStoreService.getSelectedProductCollectionId(\n dprUser.id,\n )\n const selectedProductCollection =\n selectedProductCollectionId &&\n (await services.productCollectionService.getProductCollection(dprUser.id, selectedProductCollectionId))\n return {\n data: {\n ...data,\n csrfToken,\n },\n productCollectionInfo: {\n productCollections,\n ...(selectedProductCollection && { selectedProductCollection }),\n },\n features: setFeatures(bookmarkingEnabled, features),\n }\n}\n\nconst setFeatures = (bookmarkingEnabled: boolean, features?: CatalogueFeatures) => {\n return {\n filteringEnabled: features?.filteringEnabled === undefined || features.filteringEnabled,\n unauthorisedToggleEnabled: features?.unauthorisedToggleEnabled === undefined || features.unauthorisedToggleEnabled,\n howToUseEnabled: features?.howToUseEnabled === undefined || features.howToUseEnabled,\n bookmarkingEnabled: features?.bookmarkingEnabled !== undefined ? features.bookmarkingEnabled : bookmarkingEnabled,\n }\n}\n\nexport default {\n init,\n}\n"],
5
+ "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA+B,sCAE/BC,EAAyB,0CAGlB,MAAMH,EAAO,MAAO,CACzB,SAAAI,EACA,IAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,EAAO,MAAM,EAAAC,QAAmB,eAAeH,EAAKC,EAAUF,CAAQ,EACtE,CAAE,MAAAK,EAAO,mBAAAC,EAAoB,QAAAC,EAAS,UAAAC,CAAU,EAAI,EAAAC,QAAa,UAAUR,CAAG,EAC9ES,GAAsB,MAAMR,EAAS,yBAAyB,sBAAsBG,CAAK,IAAI,IAChGM,IAAgB,CACf,MAAOA,EAAW,GAClB,KAAMA,EAAW,IACnB,EACF,EACID,GAAsBA,EAAmB,OAAS,GACpDA,EAAmB,QAAQ,CAAE,MAAO,QAAS,KAAM,gBAAiB,CAAC,EAEvE,MAAME,EAA8B,MAAMV,EAAS,8BAA8B,+BAC/EK,EAAQ,EACV,EACMM,EACJD,GACC,MAAMV,EAAS,yBAAyB,qBAAqBK,EAAQ,GAAIK,CAA2B,EACvG,MAAO,CACL,KAAM,CACJ,GAAGT,EACH,UAAAK,CACF,EACA,sBAAuB,CACrB,mBAAAE,EACA,GAAIG,GAA6B,CAAE,0BAAAA,CAA0B,CAC/D,EACA,SAAUC,EAAYR,EAAoBN,CAAQ,CACpD,CACF,EAEMc,EAAc,CAACR,EAA6BN,KACzC,CACL,iBAAkBA,GAAU,mBAAqB,QAAaA,EAAS,iBACvE,0BAA2BA,GAAU,4BAA8B,QAAaA,EAAS,0BACzF,gBAAiBA,GAAU,kBAAoB,QAAaA,EAAS,gBACrE,mBAAoBA,GAAU,qBAAuB,OAAYA,EAAS,mBAAqBM,CACjG,GAGF,IAAOX,EAAQ,CACb,KAAAC,CACF",
6
+ "names": ["utils_exports", "__export", "utils_default", "init", "__toCommonJS", "import_utils", "import_localsHelper", "features", "res", "services", "data", "CatalogueListUtils", "token", "bookmarkingEnabled", "dprUser", "csrfToken", "LocalsHelper", "productCollections", "collection", "selectedProductCollectionId", "selectedProductCollection", "setFeatures"]
7
7
  }
@@ -37,7 +37,7 @@ describe('CatalogueUtils', () => {
37
37
  const result = await CatalogueUtils.init({ features: {}, res, services })
38
38
 
39
39
  expect(result).toEqual({
40
- data: { head: [], rows: [] },
40
+ data: { head: [], rows: [], csrfToken: 'csrfToken' },
41
41
  features: {
42
42
  bookmarkingEnabled: undefined,
43
43
  filteringEnabled: true,
@@ -62,7 +62,7 @@ describe('CatalogueUtils', () => {
62
62
  })
63
63
 
64
64
  expect(result).toEqual({
65
- data: { head: [], rows: [] },
65
+ data: { head: [], rows: [], csrfToken: 'csrfToken' },
66
66
  features: {
67
67
  bookmarkingEnabled: false,
68
68
  filteringEnabled: false,
@@ -14,7 +14,7 @@ export const init = async ({
14
14
  services: Services
15
15
  }) => {
16
16
  const data = await CatalogueListUtils.getReportsList(res, services, features)
17
- const { token, bookmarkingEnabled, dprUser } = LocalsHelper.getValues(res)
17
+ const { token, bookmarkingEnabled, dprUser, csrfToken } = LocalsHelper.getValues(res)
18
18
  const productCollections = (await services.productCollectionService.getProductCollections(token))?.map(
19
19
  (collection) => ({
20
20
  value: collection.id,
@@ -31,7 +31,10 @@ export const init = async ({
31
31
  selectedProductCollectionId &&
32
32
  (await services.productCollectionService.getProductCollection(dprUser.id, selectedProductCollectionId))
33
33
  return {
34
- data,
34
+ data: {
35
+ ...data,
36
+ csrfToken,
37
+ },
35
38
  productCollectionInfo: {
36
39
  productCollections,
37
40
  ...(selectedProductCollection && { selectedProductCollection }),
@@ -4,6 +4,7 @@
4
4
 
5
5
  {% macro dprCatalogue(args) %}
6
6
  {% set data = args.data %}
7
+ {% set csrfToken = data.csrfToken %}
7
8
  {% set features = args.features %}
8
9
  {% set productCollectionInfo = args.productCollectionInfo %}
9
10
 
@@ -17,7 +18,7 @@
17
18
  {{ dprCatalogueHowToUse(features) }}
18
19
  {% endif %}
19
20
 
20
- {{ dprCatalogueFilters(id, features, productCollectionInfo) }}
21
+ {{ dprCatalogueFilters(id, features, productCollectionInfo, csrfToken) }}
21
22
  {{ dprCatalogueList(head, rows, id) }}
22
23
  <div>
23
24
  {% endmacro %}
@@ -3,14 +3,14 @@
3
3
  {% from "../catalogue-search/view.njk" import dprCatalogueSearch %}
4
4
  {% from "../catalogue-unauthorised-toggle/view.njk" import dprUnauthorisedToggle %}
5
5
 
6
- {% macro dprCatalogueFilters(id, features, productCollectionInfo) %}
6
+ {% macro dprCatalogueFilters(id, features, productCollectionInfo, csrfToken) %}
7
7
  {% set filteringEnabled = features.filteringEnabled %}
8
8
  {% set unauthorisedToggleEnabled = features.unauthorisedToggleEnabled %}
9
9
 
10
10
  <div class='dpr-catalogue-filters' data-dpr-module='dpr-catalogue-filters'>
11
11
  <div class='dpr-catalogue-filters--heading'>
12
12
  <div class="dpr-catalogue-filters__search">
13
- {{ dprCatalogueSearch(id, productCollectionInfo) }}
13
+ {{ dprCatalogueSearch(id, productCollectionInfo, csrfToken) }}
14
14
  </div>
15
15
  </div>
16
16
  <div class='dpr-catalogue-filters--content'>
@@ -1,7 +1,7 @@
1
1
  {% from "govuk/components/input/macro.njk" import govukInput %}
2
2
  {% from "govuk/components/select/macro.njk" import govukSelect %}
3
3
 
4
- {% macro dprCatalogueSearch(id, productCollectionInfo, type = 'catalogue') %}
4
+ {% macro dprCatalogueSearch(id, productCollectionInfo, csrfToken, type = 'catalogue') %}
5
5
  {% set productCollections = productCollectionInfo.productCollections %}
6
6
  {% set selectedProductCollection = productCollectionInfo.selectedProductCollection %}
7
7
 
@@ -23,6 +23,7 @@
23
23
  }) }}
24
24
  {% if productCollections.length > 0 %}
25
25
  <form method="post" action="dpr/product-collection/selected">
26
+ <input type="hidden" name="_csrf" value="{{ csrfToken }}">
26
27
  {{ govukSelect({
27
28
  id: 'productCollection',
28
29
  name: 'productCollection',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-digital-prison-reporting-frontend",
3
3
  "description": "The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.",
4
- "version": "4.17.1",
4
+ "version": "4.17.3",
5
5
  "main": "dpr/all.mjs",
6
6
  "sass": "dpr/all.scss",
7
7
  "engines": {