@ukhomeoffice/cop-react-form-renderer 5.28.1 → 5.32.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 (61) hide show
  1. package/dist/components/CheckYourAnswers/CheckYourAnswers.js +2 -2
  2. package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +2 -2
  3. package/dist/components/CollectionPage/CollectionPage.js +2 -2
  4. package/dist/components/CollectionPage/CollectionPage.test.js +2 -2
  5. package/dist/components/CollectionSummary/BannerStrip.js +59 -0
  6. package/dist/components/CollectionSummary/BannerStrip.scss +47 -0
  7. package/dist/components/CollectionSummary/BannerStrip.test.js +111 -0
  8. package/dist/components/CollectionSummary/CollectionSummary.js +183 -0
  9. package/dist/components/CollectionSummary/CollectionSummary.scss +21 -0
  10. package/dist/components/CollectionSummary/CollectionSummary.test.js +170 -0
  11. package/dist/components/CollectionSummary/Confirmation.js +60 -0
  12. package/dist/components/CollectionSummary/Confirmation.scss +14 -0
  13. package/dist/components/CollectionSummary/Confirmation.test.js +102 -0
  14. package/dist/components/CollectionSummary/SummaryCard.js +274 -0
  15. package/dist/components/CollectionSummary/SummaryCard.scss +248 -0
  16. package/dist/components/CollectionSummary/SummaryCard.test.js +1164 -0
  17. package/dist/components/CollectionSummary/index.js +10 -0
  18. package/dist/components/FormComponent/Collection.js +2 -2
  19. package/dist/components/FormComponent/FormComponent.js +23 -6
  20. package/dist/components/FormComponent/FormComponent.test.js +66 -34
  21. package/dist/components/FormPage/FormPage.js +12 -5
  22. package/dist/components/FormPage/FormPage.test.js +2 -2
  23. package/dist/components/FormRenderer/FormRenderer.js +10 -5
  24. package/dist/components/FormRenderer/FormRenderer.test.js +218 -133
  25. package/dist/components/FormRenderer/onCYAAction.js +20 -9
  26. package/dist/components/FormRenderer/onCYAAction.test.js +8 -1
  27. package/dist/components/FormRenderer/onPageAction.js +12 -16
  28. package/dist/components/FormRenderer/onPageAction.test.js +11 -7
  29. package/dist/components/PageActions/ActionButton.test.js +2 -2
  30. package/dist/components/SummaryList/GroupAction.js +2 -2
  31. package/dist/components/SummaryList/RowAction.js +2 -2
  32. package/dist/components/SummaryList/SummaryList.test.js +2 -2
  33. package/dist/components/TaskList/Task.js +2 -2
  34. package/dist/components/TaskList/TaskList.js +2 -2
  35. package/dist/components/TaskList/TaskList.test.js +2 -2
  36. package/dist/context/HooksContext/HooksContext.js +2 -2
  37. package/dist/context/HooksContext/HooksContext.test.js +2 -2
  38. package/dist/context/HooksContext/index.js +2 -2
  39. package/dist/context/ValidationContext/ValidationContext.js +2 -2
  40. package/dist/context/ValidationContext/ValidationContext.test.js +2 -2
  41. package/dist/context/ValidationContext/index.js +2 -2
  42. package/dist/hooks/index.js +2 -2
  43. package/dist/hooks/useRefData.js +2 -2
  44. package/dist/index.js +2 -2
  45. package/dist/models/ComponentTypes.js +2 -0
  46. package/dist/utils/CheckYourAnswers/showComponentCYA.js +1 -1
  47. package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +4 -21
  48. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +32 -0
  49. package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +68 -0
  50. package/dist/utils/CollectionPage/getQuickEditPage.js +74 -0
  51. package/dist/utils/CollectionPage/getQuickEditPage.test.js +109 -0
  52. package/dist/utils/CollectionPage/index.js +4 -0
  53. package/dist/utils/CollectionPage/removeCollectionPageEntry.js +36 -0
  54. package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +61 -0
  55. package/dist/utils/Component/cleanAttributes.test.js +2 -2
  56. package/dist/utils/Component/isEditable.test.js +2 -2
  57. package/dist/utils/Format/formatDataForComponent.test.js +2 -2
  58. package/dist/utils/Format/formatDataForPage.test.js +2 -2
  59. package/dist/utils/Validate/validateDate.test.js +2 -2
  60. package/dist/utils/Validate/validateMultifile.test.js +2 -2
  61. package/package.json +1 -1
@@ -18,8 +18,8 @@ var _SummaryList = _interopRequireDefault(require("../SummaryList"));
18
18
  var _Answer = _interopRequireDefault(require("./Answer"));
19
19
  require("./CheckYourAnswers.scss");
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
23
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
24
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25
25
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -17,8 +17,8 @@ var _models = require("../../models");
17
17
  var _setupTests = require("../../setupTests");
18
18
  var _utils = _interopRequireDefault(require("../../utils"));
19
19
  var _CheckYourAnswers = _interopRequireWildcard(require("./CheckYourAnswers"));
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
24
24
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -11,8 +11,8 @@ var _utils = _interopRequireDefault(require("../../utils"));
11
11
  var _FormPage = _interopRequireDefault(require("../FormPage"));
12
12
  var _FormPage2 = require("../FormPage/FormPage");
13
13
  require("../FormPage/FormPage.scss");
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -7,8 +7,8 @@ var _setupTests = require("../../setupTests");
7
7
  var _utils = _interopRequireDefault(require("../../utils"));
8
8
  var _ActionButton = require("../PageActions/ActionButton");
9
9
  var _CollectionPage = _interopRequireWildcard(require("./CollectionPage"));
10
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
14
14
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.DEFAULT_CLASS = void 0;
7
+ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _utils = _interopRequireDefault(require("../../utils"));
11
+ require("./BannerStrip.scss");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ // Global imports.
14
+
15
+ // Local imports.
16
+
17
+ // Styles.
18
+
19
+ var DEFAULT_CLASS = 'hods-form-banner-strip';
20
+ exports.DEFAULT_CLASS = DEFAULT_CLASS;
21
+ var BannerStrip = function BannerStrip(_ref) {
22
+ var id = _ref.id,
23
+ banners = _ref.banners,
24
+ formData = _ref.formData,
25
+ classModifiers = _ref.classModifiers;
26
+ var classes = _utils.default.classBuilder(DEFAULT_CLASS, classModifiers, '');
27
+ return /*#__PURE__*/_react.default.createElement("div", {
28
+ id: id,
29
+ className: classes()
30
+ }, banners.map(function (banner, index) {
31
+ var bannerId = "".concat(id, "-banner-").concat(index);
32
+ if (typeof banner === 'string') {
33
+ return /*#__PURE__*/_react.default.createElement("div", {
34
+ id: bannerId,
35
+ key: bannerId,
36
+ className: classes('banner')
37
+ }, _utils.default.interpolateString(banner, formData));
38
+ }
39
+ return /*#__PURE__*/_react.default.createElement(_copReactComponents.Tag, {
40
+ key: bannerId,
41
+ classBlock: "".concat(DEFAULT_CLASS, "__tag"),
42
+ classModifiers: banner.classModifiers,
43
+ text: _utils.default.interpolateString(banner.text, formData)
44
+ });
45
+ }));
46
+ };
47
+ BannerStrip.propTypes = {
48
+ id: _propTypes.default.string.isRequired,
49
+ banners: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({})])),
50
+ formData: _propTypes.default.shape({}),
51
+ classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)])
52
+ };
53
+ BannerStrip.defaultProps = {
54
+ banners: [],
55
+ formData: null,
56
+ classModifiers: null
57
+ };
58
+ var _default = BannerStrip;
59
+ exports.default = _default;
@@ -0,0 +1,47 @@
1
+ @import "node_modules/govuk-frontend/govuk/_base";
2
+ @import "node_modules/govuk-frontend/govuk/components/tag/_index";
3
+
4
+ .hods-form-banner-strip {
5
+ display: block;
6
+ width: 100%;
7
+ padding: 0;
8
+ margin: 0 0 govuk-spacing(1) 0;
9
+ &__banner {
10
+ @include govuk-font($size: 19, $weight: bold);
11
+ display: inline-block;
12
+ margin-right: govuk-spacing(2);
13
+ }
14
+ &__tag {
15
+ @extend .govuk-tag;
16
+ text-transform: uppercase;
17
+ &--dark-grey{
18
+ background: #5C6367;
19
+ }
20
+ &--white{
21
+ background: #FFFFFF;
22
+ color: #000000;
23
+ border: 1px solid #BFC1C3
24
+
25
+ }
26
+ &--dark-blue{
27
+ background: #005EA5;
28
+ }
29
+ font-weight: bold;
30
+ }
31
+ }
32
+
33
+ @mixin banner-tag-colours($colour) {
34
+ .hods-form-banner-strip__tag--#{$colour} {
35
+ @extend .govuk-tag--#{$colour};
36
+ }
37
+ }
38
+
39
+ @include banner-tag-colours('grey');
40
+ @include banner-tag-colours('purple');
41
+ @include banner-tag-colours('turquoise');
42
+ @include banner-tag-colours('blue');
43
+ @include banner-tag-colours('yellow');
44
+ @include banner-tag-colours('orange');
45
+ @include banner-tag-colours('red');
46
+ @include banner-tag-colours('pink');
47
+ @include banner-tag-colours('green');
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _setupTests = require("../../setupTests");
7
+ var _BannerStrip = _interopRequireWildcard(require("./BannerStrip"));
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ // Global imports.
12
+
13
+ // Local imports.
14
+
15
+ describe('components.CollectionSummary.BannerStrip', function () {
16
+ var ID = 'testBanner';
17
+ var BANNERS = ['Banner 1', 'Banner 2'];
18
+ var FORM_DATA = {
19
+ textField: 'banner'
20
+ };
21
+ var classes = _copReactComponents.Utils.classBuilder(_BannerStrip.DEFAULT_CLASS, [], '');
22
+ var checkSetup = function checkSetup(container) {
23
+ var bannerStripDiv = container.children[0];
24
+ expect(bannerStripDiv.tagName).toEqual('DIV');
25
+ expect(bannerStripDiv.id).toEqual(ID);
26
+ return bannerStripDiv;
27
+ };
28
+ it('should correctly render a BannerStrip component with plain-text banners', function () {
29
+ var _renderWithValidation = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
30
+ id: ID,
31
+ banners: BANNERS,
32
+ formData: FORM_DATA
33
+ })),
34
+ container = _renderWithValidation.container;
35
+ var bannerStripDiv = checkSetup(container);
36
+ expect(bannerStripDiv.tagName).toEqual('DIV');
37
+ expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
38
+ expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
39
+
40
+ var firstBanner = bannerStripDiv.children[0];
41
+ expect(firstBanner.tagName).toEqual('DIV');
42
+ expect(firstBanner.classList).toContain(classes('banner'));
43
+ expect(firstBanner.textContent).toEqual(BANNERS[0]);
44
+ var secondBanner = bannerStripDiv.children[1];
45
+ expect(secondBanner.tagName).toEqual('DIV');
46
+ expect(secondBanner.classList).toContain(classes('banner'));
47
+ expect(secondBanner.textContent).toEqual(BANNERS[1]);
48
+ });
49
+ it('should correctly render a BannerStrip component with tag banners', function () {
50
+ var TAG_BANNERS = [{
51
+ text: 'Banner 1'
52
+ }, {
53
+ text: 'Banner 2'
54
+ }];
55
+ var _renderWithValidation2 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
56
+ id: ID,
57
+ banners: TAG_BANNERS,
58
+ formData: FORM_DATA
59
+ })),
60
+ container = _renderWithValidation2.container;
61
+ var bannerStripDiv = checkSetup(container);
62
+ expect(bannerStripDiv.tagName).toEqual('DIV');
63
+ expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
64
+ expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
65
+
66
+ var firstBanner = bannerStripDiv.children[0];
67
+ expect(firstBanner.tagName).toEqual('STRONG');
68
+ expect(firstBanner.classList).toContain(classes('tag'));
69
+ expect(firstBanner.textContent).toEqual(BANNERS[0]);
70
+ var secondBanner = bannerStripDiv.children[1];
71
+ expect(secondBanner.tagName).toEqual('STRONG');
72
+ expect(secondBanner.classList).toContain(classes('tag'));
73
+ expect(secondBanner.textContent).toEqual(BANNERS[1]);
74
+ });
75
+ it('should correctly interpolate banners', function () {
76
+ var INTERPOLATED_BANNERS = [{
77
+ // eslint-disable-next-line no-template-curly-in-string
78
+ text: 'An interpolated ${textField}'
79
+ },
80
+ // eslint-disable-next-line no-template-curly-in-string
81
+ 'Another interpolated ${textField}'];
82
+ var _renderWithValidation3 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
83
+ id: ID,
84
+ banners: INTERPOLATED_BANNERS,
85
+ formData: FORM_DATA
86
+ })),
87
+ container = _renderWithValidation3.container;
88
+ var bannerStripDiv = checkSetup(container);
89
+ expect(bannerStripDiv.children.length).toEqual(2); // One for each banner provided.
90
+
91
+ var firstBanner = bannerStripDiv.children[0];
92
+ expect(firstBanner.tagName).toEqual('STRONG');
93
+ expect(firstBanner.classList).toContain(classes('tag'));
94
+ expect(firstBanner.textContent).toEqual("An interpolated ".concat(FORM_DATA.textField));
95
+ var secondBanner = bannerStripDiv.children[1];
96
+ expect(secondBanner.tagName).toEqual('DIV');
97
+ expect(secondBanner.classList).toContain(classes('banner'));
98
+ expect(secondBanner.textContent).toEqual("Another interpolated ".concat(FORM_DATA.textField));
99
+ });
100
+ it('should render no banners if none are provided', function () {
101
+ var _renderWithValidation4 = (0, _setupTests.renderWithValidation)( /*#__PURE__*/_react.default.createElement(_BannerStrip.default, {
102
+ id: ID,
103
+ formData: FORM_DATA
104
+ })),
105
+ container = _renderWithValidation4.container;
106
+ var bannerStripDiv = checkSetup(container);
107
+ expect(bannerStripDiv.tagName).toEqual('DIV');
108
+ expect(bannerStripDiv.classList).toContain(_BannerStrip.DEFAULT_CLASS);
109
+ expect(bannerStripDiv.children.length).toEqual(0);
110
+ });
111
+ });
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.DEFAULT_ADD_BUTTON_LABEL = void 0;
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _PageAction = require("../../models/PageAction");
11
+ var _utils = _interopRequireDefault(require("../../utils"));
12
+ var _ActionButton = _interopRequireDefault(require("../PageActions/ActionButton"));
13
+ var _Confirmation = _interopRequireDefault(require("./Confirmation"));
14
+ var _SummaryCard = _interopRequireDefault(require("./SummaryCard"));
15
+ require("./CollectionSummary.scss");
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
23
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
24
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
26
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
28
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
29
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // Global imports.
30
+ // Local imports.
31
+ // Styles.
32
+ var DEFAULT_ADD_BUTTON_LABEL = 'Add';
33
+ exports.DEFAULT_ADD_BUTTON_LABEL = DEFAULT_ADD_BUTTON_LABEL;
34
+ var CollectionSummary = function CollectionSummary(_ref) {
35
+ var _config$confirmation, _config$confirmation2;
36
+ var config = _ref.config,
37
+ formData = _ref.formData,
38
+ onAction = _ref.onAction,
39
+ onChange = _ref.onChange,
40
+ pages = _ref.pages;
41
+ var _useState = (0, _react.useState)(null),
42
+ _useState2 = _slicedToArray(_useState, 2),
43
+ entryToDelete = _useState2[0],
44
+ setEntryToDelete = _useState2[1];
45
+ var data = (0, _react.useMemo)(function () {
46
+ return _utils.default.CollectionPage.getData(config.collectionName, formData) || [];
47
+ }, [formData]);
48
+ var masterPage = (0, _react.useMemo)(function () {
49
+ var newMasterPages = _utils.default.CollectionPage.mergePages(pages || []) || [];
50
+ return newMasterPages.find(function (page) {
51
+ var _page$collection;
52
+ return ((_page$collection = page.collection) === null || _page$collection === void 0 ? void 0 : _page$collection.name) === config.collectionName;
53
+ });
54
+ }, [pages]);
55
+ var onSummaryCardChange = function onSummaryCardChange(page, entryId) {
56
+ if (typeof onAction !== 'function') {
57
+ return;
58
+ }
59
+ onAction({
60
+ type: _PageAction.PageActionTypes.SAVE_AND_NAVIGATE,
61
+ page: page,
62
+ addToFormData: {
63
+ field: "".concat(config.collectionName.split('.').pop(), "ActiveId"),
64
+ value: entryId
65
+ }
66
+ });
67
+ };
68
+ var onDuplicate = function onDuplicate(entry) {
69
+ _utils.default.CollectionPage.duplicateEntry(config.collectionName, formData, entry.id);
70
+ var parentCollection = config.collectionName.split('.').shift();
71
+ // Report the whole top-level collection as being changed. We have to do this
72
+ // because of how patch is applied to formData on a page submission.
73
+ if (typeof onChange === 'function') {
74
+ onChange({
75
+ target: {
76
+ name: parentCollection,
77
+ value: _utils.default.CollectionPage.getData(parentCollection, formData)
78
+ }
79
+ });
80
+ }
81
+ };
82
+ var onDeleteConfirm = function onDeleteConfirm() {
83
+ if (!entryToDelete) {
84
+ return;
85
+ }
86
+ _utils.default.CollectionPage.removeEntry(config.collectionName, formData, entryToDelete.id);
87
+ var parentCollection = config.collectionName.split('.').shift();
88
+ // Report the whole top-level collection as being changed. We have to do this
89
+ // because of how patch is applied to formData on a page submission.
90
+ if (typeof onChange === 'function') {
91
+ onChange({
92
+ target: {
93
+ name: parentCollection,
94
+ value: _utils.default.CollectionPage.getData(parentCollection, formData)
95
+ }
96
+ });
97
+ }
98
+ setEntryToDelete(null);
99
+ };
100
+ return /*#__PURE__*/_react.default.createElement("div", {
101
+ id: config.fieldId
102
+ }, entryToDelete && /*#__PURE__*/_react.default.createElement(_Confirmation.default, {
103
+ id: "".concat(config.fieldId, ".confirmation"),
104
+ message: _utils.default.interpolateString((_config$confirmation = config.confirmation) === null || _config$confirmation === void 0 ? void 0 : _config$confirmation.message, entryToDelete) || null,
105
+ confirmLabel: _utils.default.interpolateString((_config$confirmation2 = config.confirmation) === null || _config$confirmation2 === void 0 ? void 0 : _config$confirmation2.label, entryToDelete) || null,
106
+ onConfirm: onDeleteConfirm,
107
+ onCancel: function onCancel() {
108
+ return setEntryToDelete(null);
109
+ }
110
+ }, /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
111
+ id: "".concat(config.fieldId, ".confirmationChild"),
112
+ entryData: entryToDelete,
113
+ config: config.card ? _objectSpread(_objectSpread({}, config.card), {}, {
114
+ quickEdit: null
115
+ }) : {},
116
+ masterPage: masterPage,
117
+ classModifiers: "nested",
118
+ hideDetails: true
119
+ })), config.addButton && /*#__PURE__*/_react.default.createElement(_ActionButton.default, {
120
+ id: "".concat(config.fieldId, ".addButton"),
121
+ action: {
122
+ collection: config.collectionName,
123
+ label: config.addButton.label || DEFAULT_ADD_BUTTON_LABEL,
124
+ page: config.addButton.page,
125
+ type: _PageAction.PageActionTypes.COLLECTION_ADD,
126
+ classModifiers: ['secondary']
127
+ },
128
+ onAction: onAction
129
+ }), data.map(function (entry, index) {
130
+ var key = "".concat(config.fieldId, ".summaryCard").concat(entry.id);
131
+ return /*#__PURE__*/_react.default.createElement(_SummaryCard.default, {
132
+ id: key,
133
+ key: key,
134
+ entryData: _objectSpread(_objectSpread({}, entry), {}, {
135
+ index: index
136
+ }),
137
+ masterPage: masterPage,
138
+ config: config.card || {},
139
+ onChange: onSummaryCardChange,
140
+ onDuplicate: onDuplicate,
141
+ onDelete: function onDelete() {
142
+ return setEntryToDelete(entry);
143
+ },
144
+ pages: pages,
145
+ onQuickEdit: function onQuickEdit(target) {
146
+ return onChange(target);
147
+ },
148
+ parentCollectionName: config.collectionName.split('.').shift(),
149
+ formData: formData,
150
+ classModifiers: entry === entryToDelete ? ['deleting-summary-card'] : ['']
151
+ });
152
+ }));
153
+ };
154
+ CollectionSummary.propTypes = {
155
+ config: _propTypes.default.shape({
156
+ fieldId: _propTypes.default.string.isRequired,
157
+ collectionName: _propTypes.default.string.isRequired,
158
+ addButton: _propTypes.default.shape({
159
+ label: _propTypes.default.string,
160
+ page: _propTypes.default.string.isRequired
161
+ }),
162
+ card: _propTypes.default.shape({
163
+ banners: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({})])),
164
+ title: _propTypes.default.string,
165
+ details: _propTypes.default.string
166
+ }),
167
+ confirmation: _propTypes.default.shape({
168
+ message: _propTypes.default.string,
169
+ label: _propTypes.default.string
170
+ })
171
+ }).isRequired,
172
+ onAction: _propTypes.default.func,
173
+ onChange: _propTypes.default.func,
174
+ formData: _propTypes.default.shape({}).isRequired,
175
+ pages: _propTypes.default.arrayOf(_propTypes.default.shape({}))
176
+ };
177
+ CollectionSummary.defaultProps = {
178
+ onAction: null,
179
+ onChange: null,
180
+ pages: []
181
+ };
182
+ var _default = CollectionSummary;
183
+ exports.default = _default;
@@ -0,0 +1,21 @@
1
+ @import "node_modules/govuk-frontend/govuk/_base";
2
+
3
+ .hods-form-summary-card.hods-form-summary-card--nested {
4
+ box-shadow: none;
5
+ border: none;
6
+ padding: 0;
7
+ margin-bottom: govuk-spacing(2);
8
+
9
+ .hods-form-summary-card {
10
+ &__header {
11
+ width: auto;
12
+ display: flex;
13
+ flex-direction: row;
14
+ @media (max-width: 640px) {
15
+ flex-direction: column;
16
+ }
17
+ color: #0b0c0c;
18
+ padding: 0;
19
+ }
20
+ }
21
+ }