@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.
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +2 -2
- package/dist/components/CollectionPage/CollectionPage.js +2 -2
- package/dist/components/CollectionPage/CollectionPage.test.js +2 -2
- package/dist/components/CollectionSummary/BannerStrip.js +59 -0
- package/dist/components/CollectionSummary/BannerStrip.scss +47 -0
- package/dist/components/CollectionSummary/BannerStrip.test.js +111 -0
- package/dist/components/CollectionSummary/CollectionSummary.js +183 -0
- package/dist/components/CollectionSummary/CollectionSummary.scss +21 -0
- package/dist/components/CollectionSummary/CollectionSummary.test.js +170 -0
- package/dist/components/CollectionSummary/Confirmation.js +60 -0
- package/dist/components/CollectionSummary/Confirmation.scss +14 -0
- package/dist/components/CollectionSummary/Confirmation.test.js +102 -0
- package/dist/components/CollectionSummary/SummaryCard.js +274 -0
- package/dist/components/CollectionSummary/SummaryCard.scss +248 -0
- package/dist/components/CollectionSummary/SummaryCard.test.js +1164 -0
- package/dist/components/CollectionSummary/index.js +10 -0
- package/dist/components/FormComponent/Collection.js +2 -2
- package/dist/components/FormComponent/FormComponent.js +23 -6
- package/dist/components/FormComponent/FormComponent.test.js +66 -34
- package/dist/components/FormPage/FormPage.js +12 -5
- package/dist/components/FormPage/FormPage.test.js +2 -2
- package/dist/components/FormRenderer/FormRenderer.js +10 -5
- package/dist/components/FormRenderer/FormRenderer.test.js +218 -133
- package/dist/components/FormRenderer/onCYAAction.js +20 -9
- package/dist/components/FormRenderer/onCYAAction.test.js +8 -1
- package/dist/components/FormRenderer/onPageAction.js +12 -16
- package/dist/components/FormRenderer/onPageAction.test.js +11 -7
- package/dist/components/PageActions/ActionButton.test.js +2 -2
- package/dist/components/SummaryList/GroupAction.js +2 -2
- package/dist/components/SummaryList/RowAction.js +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +2 -2
- package/dist/components/TaskList/Task.js +2 -2
- package/dist/components/TaskList/TaskList.js +2 -2
- package/dist/components/TaskList/TaskList.test.js +2 -2
- package/dist/context/HooksContext/HooksContext.js +2 -2
- package/dist/context/HooksContext/HooksContext.test.js +2 -2
- package/dist/context/HooksContext/index.js +2 -2
- package/dist/context/ValidationContext/ValidationContext.js +2 -2
- package/dist/context/ValidationContext/ValidationContext.test.js +2 -2
- package/dist/context/ValidationContext/index.js +2 -2
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/useRefData.js +2 -2
- package/dist/index.js +2 -2
- package/dist/models/ComponentTypes.js +2 -0
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +1 -1
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +4 -21
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +32 -0
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +68 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +74 -0
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +109 -0
- package/dist/utils/CollectionPage/index.js +4 -0
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +36 -0
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +61 -0
- package/dist/utils/Component/cleanAttributes.test.js +2 -2
- package/dist/utils/Component/isEditable.test.js +2 -2
- package/dist/utils/Format/formatDataForComponent.test.js +2 -2
- package/dist/utils/Format/formatDataForPage.test.js +2 -2
- package/dist/utils/Validate/validateDate.test.js +2 -2
- package/dist/utils/Validate/validateMultifile.test.js +2 -2
- 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(
|
|
22
|
-
function _interopRequireWildcard(
|
|
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(
|
|
21
|
-
function _interopRequireWildcard(
|
|
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(
|
|
15
|
-
function _interopRequireWildcard(
|
|
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(
|
|
11
|
-
function _interopRequireWildcard(
|
|
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
|
+
}
|