@ukhomeoffice/cop-react-form-renderer 5.13.1 → 5.13.3-bravo

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.
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _VisuallyHidden = _interopRequireDefault(require("@ukhomeoffice/cop-react-components/dist/VisuallyHidden"));
9
+ var _copReactComponents = require("@ukhomeoffice/cop-react-components");
10
10
  var _FormComponent = _interopRequireDefault(require("../FormComponent"));
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
12
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@@ -20,7 +20,7 @@ var Answer = function Answer(_ref) {
20
20
  component = _ref.component,
21
21
  formData = _ref.formData;
22
22
  if (!value) {
23
- return /*#__PURE__*/_react.default.createElement(_VisuallyHidden.default, null, "No answer");
23
+ return /*#__PURE__*/_react.default.createElement(_copReactComponents.VisuallyHidden, null, "No answer");
24
24
  }
25
25
  if (!component) {
26
26
  return Object.prototype.hasOwnProperty.call(value, 'label') ? value.label : value;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- var _Readonly = require("@ukhomeoffice/cop-react-components/dist/Readonly");
5
4
  var _react = _interopRequireDefault(require("react"));
6
5
  var _setupTests = require("../../setupTests");
7
6
  var _Answer = _interopRequireDefault(require("./Answer"));
@@ -66,7 +65,7 @@ describe('components', function () {
66
65
  })), container = _renderWithValidation3.container;
67
66
  answer = container.childNodes[0];
68
67
  expect(answer.tagName).toEqual('DIV');
69
- expect(answer.classList).toContain(_Readonly.DEFAULT_CLASS);
68
+ expect(answer.classList).toContain(DEFAULT_READONLY_CLASS);
70
69
  expect(answer.textContent).toEqual(VALUE);
71
70
  case 7:
72
71
  case "end":
@@ -125,7 +124,7 @@ describe('components', function () {
125
124
  })), container = _renderWithValidation5.container;
126
125
  answer = container.childNodes[0];
127
126
  expect(answer.tagName).toEqual('DIV');
128
- expect(answer.classList).toContain(_Readonly.DEFAULT_CLASS);
127
+ expect(answer.classList).toContain(DEFAULT_READONLY_CLASS);
129
128
  expect(answer.textContent).toEqual('hardcoded delta');
130
129
  case 8:
131
130
  case "end":
@@ -29,7 +29,6 @@ var DEFAULT_CLASS = _FormPage2.DEFAULT_CLASS;
29
29
  exports.DEFAULT_CLASS = DEFAULT_CLASS;
30
30
  var CollectionPage = function CollectionPage(_ref) {
31
31
  var page = _ref.page,
32
- onCollectionChange = _ref.onCollectionChange,
33
32
  onAction = _ref.onAction,
34
33
  hashLink = _ref.hashLink,
35
34
  classBlock = _ref.classBlock,
@@ -63,9 +62,6 @@ var CollectionPage = function CollectionPage(_ref) {
63
62
  value: newValue
64
63
  }
65
64
  });
66
- if (typeof onCollectionChange === 'function') {
67
- onCollectionChange(page.formData);
68
- }
69
65
  };
70
66
  var reportActiveIdChange = function reportActiveIdChange(newActiveId) {
71
67
  onPageChange({
@@ -123,7 +119,6 @@ CollectionPage.propTypes = {
123
119
  actions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({}), _propTypes.default.string])),
124
120
  formData: _propTypes.default.shape({}).isRequired
125
121
  }).isRequired,
126
- onCollectionChange: _propTypes.default.func,
127
122
  onAction: _propTypes.default.func.isRequired,
128
123
  hashLink: _propTypes.default.bool,
129
124
  classBlock: _propTypes.default.string,
@@ -131,7 +126,6 @@ CollectionPage.propTypes = {
131
126
  className: _propTypes.default.string
132
127
  };
133
128
  CollectionPage.defaultProps = {
134
- onCollectionChange: undefined,
135
129
  hashLink: false,
136
130
  classBlock: DEFAULT_CLASS,
137
131
  classModifiers: [],
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = exports.DEFAULT_CLASS = void 0;
8
- var _Utils = require("@ukhomeoffice/cop-react-components/dist/utils/Utils");
9
8
  var _react = _interopRequireDefault(require("react"));
10
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
10
  var _models = require("../../models");
12
11
  var _utils = _interopRequireDefault(require("../../utils"));
12
+ var _cleanAttributes = _interopRequireDefault(require("../../utils/Component/cleanAttributes"));
13
13
  var _FormComponent = _interopRequireDefault(require("./FormComponent"));
14
14
  var _excluded = ["container", "value", "formData", "onChange", "wrap", "onTopLevelChange"];
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -61,8 +61,8 @@ var Container = function Container(_ref) {
61
61
  }), formData);
62
62
  };
63
63
  var classes = _utils.default.classBuilder(DEFAULT_CLASS, [], container.className);
64
- var cleanedAttrs = (0, _Utils.cleanHtmlAttributes)(attrs);
65
- return /*#__PURE__*/_react.default.createElement("div", _extends({}, cleanedAttrs, {
64
+ var htmlAttrs = (0, _cleanAttributes.default)(attrs);
65
+ return /*#__PURE__*/_react.default.createElement("div", _extends({}, htmlAttrs, {
66
66
  className: classes(),
67
67
  id: container.id
68
68
  }), container.components && container.components.filter(shouldShow).map(function (component, index) {
@@ -354,7 +354,6 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
354
354
  className: formState.page.className
355
355
  }), formState.page && !formState.cya && formState.page.collection && /*#__PURE__*/_react.default.createElement(_CollectionPage.default, {
356
356
  page: formState.page,
357
- onCollectionChange: onChange,
358
357
  onAction: function onAction(action, patch, patchLabel) {
359
358
  (0, _onPageAction.default)(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors);
360
359
  },
@@ -101,11 +101,7 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
101
101
  onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.formData));
102
102
  }
103
103
  if (action.type === _models.PageAction.TYPES.CANCEL) {
104
- var formData = _utils.default.Format.form({
105
- pages: pages,
106
- components: components
107
- }, _objectSpread({}, data), _models.EventTypes.CANCEL);
108
- hooks.onCancel(formData);
104
+ hooks.onCancel();
109
105
  }
110
106
  };
111
107
  var _default = onCYAAction;
@@ -102,15 +102,15 @@ describe('components.FormRenderer.onCYAAction', function () {
102
102
  onFormComplete: function onFormComplete() {
103
103
  this.onFormCompleteCalls += 1;
104
104
  },
105
- onCancelArgs: [],
106
- onCancel: function onCancel(data) {
107
- this.onCancelArgs.push(data);
105
+ onCancelCalls: 0,
106
+ onCancel: function onCancel() {
107
+ this.onCancelCalls += 1;
108
108
  },
109
109
  reset: function reset() {
110
110
  this.onSubmitCalls = 0;
111
111
  this.onSubmitArgs = [];
112
112
  this.onFormCompleteCalls = 0;
113
- this.onCancelArgs = [];
113
+ this.onCancelCalls = 0;
114
114
  }
115
115
  };
116
116
  var setPagePointCalls = 0;
@@ -578,9 +578,6 @@ describe('components.FormRenderer.onCYAAction', function () {
578
578
  }
579
579
  });
580
580
  _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
581
- expect(MOCK_HOOKS.onCancelArgs.length).toEqual(1);
582
- expect(MOCK_HOOKS.onCancelArgs[0]).toMatchObject({
583
- id: 'formId'
584
- });
581
+ expect(MOCK_HOOKS.onCancelCalls).toEqual(1);
585
582
  });
586
583
  });
@@ -20,6 +20,11 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
20
20
  // patchLabel captures non-ID values
21
21
  // for display purposes after submission.)
22
22
  var onPageAction = function onPageAction(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors) {
23
+ if (action.type === _models.PageAction.TYPES.CANCEL) {
24
+ hooks.onCancel();
25
+ return;
26
+ }
27
+ ;
23
28
  // Save a copy of data in case submit errors and we need to revert
24
29
  var preSubmitData = _objectSpread({}, data);
25
30
  var form = formState;
@@ -31,14 +36,6 @@ var onPageAction = function onPageAction(action, patch, patchLabel, hooks, data,
31
36
  // This should normally have no effect but will prevent issues
32
37
  // with validation if formData happens to have been wiped.
33
38
  form.page.formData = _objectSpread(_objectSpread({}, form.page.formData), _patch);
34
-
35
- // Exposes form data to consuming application.
36
- if (action.type === _models.PageAction.TYPES.CANCEL) {
37
- hooks.onCancel(form.page.formData);
38
- return;
39
- }
40
- ;
41
-
42
39
  // Check to see whether the action is able to proceed, which in
43
40
  // in the case of a submission will validate the fields in the page.
44
41
  if (_helpers.default.canActionProceed(action, form.page, validate.page)) {
@@ -121,15 +121,15 @@ describe('components.FormRenderer.onPageAction', function () {
121
121
  onFormComplete: function onFormComplete() {
122
122
  this.onFormCompleteCalls += 1;
123
123
  },
124
- onCancelArgs: [],
125
- onCancel: function onCancel(data) {
126
- this.onCancelArgs.push(data);
124
+ onCancelCalls: 0,
125
+ onCancel: function onCancel() {
126
+ this.onCancelCalls += 1;
127
127
  },
128
128
  reset: function reset() {
129
129
  this.onSubmitCalls = 0;
130
130
  this.onSubmitArgs = [];
131
131
  this.onFormCompleteCalls = 0;
132
- this.onCancelArgs = [];
132
+ this.onCancelCalls = 0;
133
133
  this.onActionCalls = 0;
134
134
  },
135
135
  onActionCalls: 0,
@@ -290,8 +290,7 @@ describe('components.FormRenderer.onPageAction', function () {
290
290
  action: ACTION
291
291
  });
292
292
  _onPageAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
293
- expect(MOCK_HOOKS.onCancelArgs.length).toEqual(1);
294
- expect(MOCK_HOOKS.onCancelArgs[0]).toMatchObject({});
293
+ expect(MOCK_HOOKS.onCancelCalls).toEqual(1);
295
294
  // Shouldn't get to the point of validation if
296
295
  // action is a cancel action.
297
296
  expect(_helpers.default.canActionProceedCalls).toEqual(0);
@@ -29,7 +29,6 @@ var SummaryList = function SummaryList(_ref) {
29
29
  className = _ref.className,
30
30
  attrs = _objectWithoutProperties(_ref, _excluded);
31
31
  var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
32
- var cleanedHtmlAttrs = _copReactComponents.Utils.cleanHtmlAttributes(attrs);
33
32
  var groupActionRow = null;
34
33
  if (isGroup) {
35
34
  var rowActions = rows.filter(function (r) {
@@ -39,7 +38,7 @@ var SummaryList = function SummaryList(_ref) {
39
38
  }
40
39
  return /*#__PURE__*/_react.default.createElement("div", {
41
40
  className: "group-of-rows"
42
- }, /*#__PURE__*/_react.default.createElement("dl", _extends({}, cleanedHtmlAttrs, {
41
+ }, /*#__PURE__*/_react.default.createElement("dl", _extends({}, attrs, {
43
42
  className: classes()
44
43
  }), rows.map(function (row) {
45
44
  var key = "".concat(row.pageId, "_").concat(row.full_path || row.fieldId);
@@ -8,7 +8,6 @@ exports.default = exports.DEFAULT_INCOMPLETE_TITLE = exports.DEFAULT_CLASS = voi
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _copReactComponents = require("@ukhomeoffice/cop-react-components");
11
- var _dist = require("@ukhomeoffice/cop-react-components/dist");
12
11
  var _models = require("../../models");
13
12
  var _Task = _interopRequireDefault(require("./Task"));
14
13
  var _showComponent = _interopRequireDefault(require("../../utils/Component/showComponent"));
@@ -45,7 +44,7 @@ var TaskList = function TaskList(_ref) {
45
44
  formData = _ref.formData,
46
45
  attrs = _objectWithoutProperties(_ref, _excluded);
47
46
  var classes = _copReactComponents.Utils.classBuilder(classBlock, classModifiers, className);
48
- var cleanedHtmlAttrs = _copReactComponents.Utils.cleanHtmlAttributes(attrs);
47
+
49
48
  // TODO state will be retrieved from a document in S3 rather than given in the component definition, covered under COP-9885
50
49
  var _sections$filter$redu = sections.filter(function (section) {
51
50
  return !section.skipped;
@@ -71,7 +70,7 @@ var TaskList = function TaskList(_ref) {
71
70
  };
72
71
  return /*#__PURE__*/_react.default.createElement("div", _extends({
73
72
  id: id
74
- }, cleanedHtmlAttrs, {
73
+ }, attrs, {
75
74
  className: classes()
76
75
  }), refNumber && refTitle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
77
76
  className: "govuk-body govuk-!-margin-bottom-0"
@@ -103,7 +102,7 @@ var TaskList = function TaskList(_ref) {
103
102
  className: classes('section')
104
103
  }, sections.length > 1 ? "".concat(index + 1, ". ") : '', section.name), /*#__PURE__*/_react.default.createElement("ol", {
105
104
  className: classes('items')
106
- }, /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_dist.Hint, null, section.label ? section.label : '')), section.tasks.filter(function (task) {
105
+ }, /*#__PURE__*/_react.default.createElement(_copReactComponents.Hint, null, section.label ? section.label : ''), section.tasks.filter(function (task) {
107
106
  return task.state !== _models.TaskStates.TYPES.SKIPPED;
108
107
  }).map(function (task) {
109
108
  return /*#__PURE__*/_react.default.createElement(_Task.default, {
@@ -56,7 +56,7 @@ var DEFAULT_HOOKS = {
56
56
  return errors;
57
57
  },
58
58
  // Returns the list of errors already found in FR by default.
59
- onCancel: function onCancel(data) {} // Consuming application must provide function to action, else this does nothing.
59
+ onCancel: function onCancel() {} // Consuming application must provide function to action, else this does nothing.
60
60
  };
61
61
 
62
62
  var ALLOWED_HOOKS = Object.keys(DEFAULT_HOOKS);
@@ -52,7 +52,8 @@ var useRefData = function useRefData(component, formData) {
52
52
  setStatus = _useState4[1];
53
53
  (0, _react.useEffect)(function () {
54
54
  if (!url) {
55
- if (component.data && component.data.options) {
55
+ var _component$data;
56
+ if ((_component$data = component.data) !== null && _component$data !== void 0 && _component$data.options) {
56
57
  setData(_Data.default.refData.toOptions(component.data.options, component.item));
57
58
  }
58
59
  setStatus(STATUS_COMPLETE);
@@ -10,6 +10,7 @@ var TYPE_CALCULATION = 'calculation';
10
10
  var TYPE_CHECKBOXES = 'checkboxes';
11
11
  var TYPE_COLLECTION = 'collection';
12
12
  var TYPE_CONTAINER = 'container';
13
+ var TYPE_DATA = 'data';
13
14
  var TYPE_DATE = 'date';
14
15
  var TYPE_DETAILS = 'details';
15
16
  var TYPE_EMAIL = 'email';
@@ -34,6 +35,7 @@ var ComponentTypes = {
34
35
  CHECKBOXES: TYPE_CHECKBOXES,
35
36
  COLLECTION: TYPE_COLLECTION,
36
37
  CONTAINER: TYPE_CONTAINER,
38
+ DATA: TYPE_DATA,
37
39
  DATE: TYPE_DATE,
38
40
  DETAILS: TYPE_DETAILS,
39
41
  EMAIL: TYPE_EMAIL,
@@ -6,11 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var TYPE_BLUR = 'blur';
8
8
  var TYPE_SUBMIT = 'submit';
9
- var TYPE_CANCEL = 'cancel';
10
9
  var EventTypes = {
11
10
  BLUR: TYPE_BLUR,
12
- SUBMIT: TYPE_SUBMIT,
13
- CANCEL: TYPE_CANCEL
11
+ SUBMIT: TYPE_SUBMIT
14
12
  };
15
13
  var _default = EventTypes;
16
14
  exports.default = _default;
@@ -80,6 +80,17 @@ var getCalculation = function getCalculation(config) {
80
80
  readonly: true
81
81
  }));
82
82
  };
83
+ var getData = function getData(config) {
84
+ var options = [];
85
+ _Data.default.getOptions(config, function (val) {
86
+ options = val;
87
+ });
88
+ var attrs = (0, _cleanAttributes.default)(config);
89
+ var text = JSON.stringify(options, null, 2);
90
+ return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextArea, _extends({}, attrs, {
91
+ value: text
92
+ }));
93
+ };
83
94
  var getDate = function getDate(config) {
84
95
  var attrs = (0, _cleanAttributes.default)(config);
85
96
  return /*#__PURE__*/_react.default.createElement(_copReactComponents.DateInput, attrs);
@@ -220,6 +231,8 @@ var getComponentByType = function getComponentByType(config) {
220
231
  return getParagraph(config);
221
232
  case _models.ComponentTypes.LIST:
222
233
  return getList(config);
234
+ case _models.ComponentTypes.DATA:
235
+ return getData(config);
223
236
  default:
224
237
  {
225
238
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "5.13.1",
3
+ "version": "5.13.3-bravo",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",
@@ -16,7 +16,7 @@
16
16
  "post-compile": "rimraf dist/*.test.* dist/**/*.test.* dist/**/*.stories.* dist/docs dist/assets"
17
17
  },
18
18
  "dependencies": {
19
- "@ukhomeoffice/cop-react-components": "^3.4.1",
19
+ "@ukhomeoffice/cop-react-components": "^3.4.2",
20
20
  "axios": "^0.23.0",
21
21
  "dayjs": "^1.11.0",
22
22
  "govuk-frontend": "^4.3.1",