@ukhomeoffice/cop-react-form-renderer 4.67.0 → 4.68.1
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/Answer.js +6 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +104 -129
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +26 -64
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +428 -555
- package/dist/components/CheckYourAnswers/index.js +0 -3
- package/dist/components/CollectionPage/CollectionPage.js +13 -42
- package/dist/components/CollectionPage/CollectionPage.test.js +160 -206
- package/dist/components/CollectionPage/index.js +0 -3
- package/dist/components/FormComponent/Collection.js +35 -79
- package/dist/components/FormComponent/Collection.test.js +340 -391
- package/dist/components/FormComponent/Container.js +10 -31
- package/dist/components/FormComponent/Container.test.js +304 -357
- package/dist/components/FormComponent/FormComponent.js +17 -60
- package/dist/components/FormComponent/FormComponent.test.js +190 -228
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +0 -4
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +0 -2
- package/dist/components/FormComponent/helpers/getComponentError.js +0 -6
- package/dist/components/FormComponent/helpers/getComponentError.test.js +0 -2
- package/dist/components/FormComponent/helpers/index.js +0 -4
- package/dist/components/FormComponent/index.js +0 -3
- package/dist/components/FormPage/FormPage.js +21 -53
- package/dist/components/FormPage/FormPage.test.js +122 -160
- package/dist/components/FormPage/index.js +0 -3
- package/dist/components/FormRenderer/FormRenderer.js +106 -296
- package/dist/components/FormRenderer/FormRenderer.test.js +820 -1058
- package/dist/components/FormRenderer/handlers/cyaAction.js +0 -5
- package/dist/components/FormRenderer/handlers/getPageId.js +0 -2
- package/dist/components/FormRenderer/handlers/getPageId.test.js +1 -2
- package/dist/components/FormRenderer/handlers/handlers.test.js +1 -18
- package/dist/components/FormRenderer/handlers/index.js +0 -5
- package/dist/components/FormRenderer/handlers/navigate.js +0 -5
- package/dist/components/FormRenderer/handlers/submissionError.js +0 -2
- package/dist/components/FormRenderer/helpers/canActionProceed.js +0 -3
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +0 -2
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +1 -5
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +4 -12
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +1 -2
- package/dist/components/FormRenderer/helpers/getCYA.js +0 -9
- package/dist/components/FormRenderer/helpers/getCYA.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getFormState.js +0 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getNextPageId.js +0 -25
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +1 -4
- package/dist/components/FormRenderer/helpers/getPage.js +0 -5
- package/dist/components/FormRenderer/helpers/getPage.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +0 -6
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +1 -3
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +0 -10
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +4 -7
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +32 -41
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +122 -8
- package/dist/components/FormRenderer/helpers/index.js +1 -11
- package/dist/components/FormRenderer/index.js +0 -3
- package/dist/components/FormRenderer/onCYAAction.js +8 -30
- package/dist/components/FormRenderer/onCYAAction.test.js +54 -79
- package/dist/components/FormRenderer/onPageAction.js +123 -0
- package/dist/components/FormRenderer/onPageAction.test.js +632 -0
- package/dist/components/PageActions/ActionButton.js +2 -17
- package/dist/components/PageActions/ActionButton.test.js +58 -81
- package/dist/components/PageActions/PageActions.js +3 -10
- package/dist/components/PageActions/PageActions.test.js +95 -120
- package/dist/components/PageActions/index.js +0 -3
- package/dist/components/SummaryList/GroupAction.js +5 -26
- package/dist/components/SummaryList/GroupAction.test.js +14 -28
- package/dist/components/SummaryList/RowAction.js +5 -25
- package/dist/components/SummaryList/RowAction.test.js +14 -28
- package/dist/components/SummaryList/SummaryList.js +7 -31
- package/dist/components/SummaryList/SummaryList.test.js +69 -126
- package/dist/components/SummaryList/SummaryListHeadingRow.js +3 -8
- package/dist/components/SummaryList/SummaryListRow.js +4 -8
- package/dist/components/SummaryList/SummaryListTitleRow.js +2 -7
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +0 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +0 -6
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +0 -3
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +0 -6
- package/dist/components/SummaryList/helpers/index.js +0 -2
- package/dist/components/SummaryList/index.js +0 -3
- package/dist/components/TaskList/Task.js +9 -31
- package/dist/components/TaskList/Task.test.js +32 -59
- package/dist/components/TaskList/TaskList.js +32 -59
- package/dist/components/TaskList/TaskList.test.js +52 -90
- package/dist/components/TaskList/TaskState.js +2 -10
- package/dist/components/TaskList/TaskState.test.js +23 -41
- package/dist/components/TaskList/index.js +0 -3
- package/dist/components/index.js +0 -7
- package/dist/context/HooksContext/HooksContext.js +21 -39
- package/dist/context/HooksContext/HooksContext.test.js +18 -34
- package/dist/context/HooksContext/index.js +0 -5
- package/dist/context/ValidationContext/ValidationContext.js +26 -56
- package/dist/context/ValidationContext/ValidationContext.test.js +43 -64
- package/dist/context/ValidationContext/index.js +0 -5
- package/dist/context/index.js +0 -3
- package/dist/hooks/index.js +0 -9
- package/dist/hooks/useAxios.js +17 -36
- package/dist/hooks/useGetRequest.js +57 -93
- package/dist/hooks/useHooks.js +2 -4
- package/dist/hooks/useRefData.js +14 -41
- package/dist/hooks/useValidation.js +2 -4
- package/dist/index.js +0 -9
- package/dist/models/PageAction.js +4 -4
- package/dist/models/TaskStates.js +4 -4
- package/dist/models/index.js +1 -10
- package/dist/setupTests.js +0 -13
- package/dist/utils/CheckYourAnswers/getCYAAction.js +1 -9
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +1 -19
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +4 -11
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +4 -9
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +4 -9
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +4 -8
- package/dist/utils/CheckYourAnswers/getCYARow.js +1 -10
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +8 -23
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +6 -21
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +2 -9
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +4 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +7 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +4 -32
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +4 -34
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +4 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +4 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +2 -22
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +7 -25
- package/dist/utils/CheckYourAnswers/index.js +1 -3
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +2 -15
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +1 -3
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +4 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +5 -6
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +0 -6
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +1 -2
- package/dist/utils/CollectionPage/index.js +1 -5
- package/dist/utils/CollectionPage/mergeCollectionPages.js +5 -11
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +1 -2
- package/dist/utils/Component/addShowWhen.js +4 -10
- package/dist/utils/Component/addShowWhen.test.js +1 -2
- package/dist/utils/Component/applyToComponentTree.js +4 -18
- package/dist/utils/Component/applyToComponentTree.test.js +4 -8
- package/dist/utils/Component/cleanAttributes.js +1 -8
- package/dist/utils/Component/cleanAttributes.test.js +15 -16
- package/dist/utils/Component/elevateNestedComponents.js +0 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +0 -2
- package/dist/utils/Component/getComponent.js +7 -86
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +6 -10
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +33 -51
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +8 -35
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +12 -29
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +6 -24
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +3 -7
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +3 -7
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +5 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +156 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +4 -10
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +8 -35
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +6 -23
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +10 -34
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +12 -31
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +1 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +3 -7
- package/dist/utils/Component/getDefaultValue.js +4 -8
- package/dist/utils/Component/getDefaultValue.test.js +0 -3
- package/dist/utils/Component/index.js +0 -10
- package/dist/utils/Component/isEditable.js +1 -4
- package/dist/utils/Component/isEditable.test.js +1 -5
- package/dist/utils/Component/setupContainerComponentsPath.js +4 -9
- package/dist/utils/Component/setupContainerComponentsPath.test.js +0 -3
- package/dist/utils/Component/showComponent.js +1 -8
- package/dist/utils/Component/showComponent.test.js +1 -2
- package/dist/utils/Component/wrapInFormGroup.js +0 -7
- package/dist/utils/Condition/index.js +0 -5
- package/dist/utils/Condition/meetsAllConditions.js +0 -9
- package/dist/utils/Condition/meetsAllConditions.test.js +1 -2
- package/dist/utils/Condition/meetsCondition.js +9 -34
- package/dist/utils/Condition/meetsCondition.test.js +21 -14
- package/dist/utils/Condition/meetsOneCondition.js +1 -9
- package/dist/utils/Condition/meetsOneCondition.test.js +1 -2
- package/dist/utils/Condition/setupConditions.js +4 -13
- package/dist/utils/Condition/setupConditions.test.js +0 -2
- package/dist/utils/Container/getEditableComponents.js +0 -7
- package/dist/utils/Container/getEditableComponents.test.js +1 -12
- package/dist/utils/Container/index.js +0 -5
- package/dist/utils/Container/setupNesting.js +4 -12
- package/dist/utils/Container/setupNesting.test.js +4 -10
- package/dist/utils/Container/showContainer.js +9 -18
- package/dist/utils/Container/showContainer.test.js +1 -2
- package/dist/utils/Data/applyFormula.js +6 -29
- package/dist/utils/Data/applyFormula.test.js +1 -2
- package/dist/utils/Data/getAutocompleteSource.js +1 -5
- package/dist/utils/Data/getAutocompleteSource.test.js +1 -2
- package/dist/utils/Data/getDataPath.js +3 -17
- package/dist/utils/Data/getDataPath.test.js +0 -4
- package/dist/utils/Data/getOptions.js +4 -14
- package/dist/utils/Data/getOptions.test.js +1 -2
- package/dist/utils/Data/getSourceData.js +6 -21
- package/dist/utils/Data/getSourceData.test.js +4 -6
- package/dist/utils/Data/index.js +1 -11
- package/dist/utils/Data/refDataToOptions.js +5 -13
- package/dist/utils/Data/refDataToOptions.test.js +1 -2
- package/dist/utils/Data/setDataItem.js +0 -5
- package/dist/utils/Data/setDataItem.test.js +0 -2
- package/dist/utils/Data/setupFormData.js +6 -25
- package/dist/utils/Data/setupFormData.test.js +8 -11
- package/dist/utils/Data/setupRefDataUrlForComponent.js +4 -15
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +1 -3
- package/dist/utils/FormPage/applyConditionalProperties.js +4 -11
- package/dist/utils/FormPage/applyConditionalProperties.test.js +4 -6
- package/dist/utils/FormPage/getFormPage.js +4 -16
- package/dist/utils/FormPage/getFormPage.test.js +10 -9
- package/dist/utils/FormPage/getFormPages.js +4 -9
- package/dist/utils/FormPage/getFormPages.test.js +6 -7
- package/dist/utils/FormPage/getPageActions.js +6 -19
- package/dist/utils/FormPage/getPageActions.test.js +1 -3
- package/dist/utils/FormPage/getParagraphFromText.js +0 -3
- package/dist/utils/FormPage/getParagraphFromText.test.js +1 -3
- package/dist/utils/FormPage/index.js +0 -7
- package/dist/utils/FormPage/showFormPage.js +9 -18
- package/dist/utils/FormPage/showFormPage.test.js +0 -2
- package/dist/utils/FormPage/showFormPageCYA.js +0 -5
- package/dist/utils/FormPage/showFormPageCYA.test.js +0 -2
- package/dist/utils/FormPage/useComponent.js +7 -19
- package/dist/utils/FormPage/useComponent.test.js +4 -7
- package/dist/utils/Format/formatData.js +0 -5
- package/dist/utils/Format/formatData.test.js +1 -2
- package/dist/utils/Format/formatDataForComponent.js +1 -6
- package/dist/utils/Format/formatDataForComponent.test.js +28 -47
- package/dist/utils/Format/formatDataForForm.js +4 -9
- package/dist/utils/Format/formatDataForForm.test.js +14 -11
- package/dist/utils/Format/formatDataForPage.js +1 -5
- package/dist/utils/Format/formatDataForPage.test.js +15 -12
- package/dist/utils/Format/index.js +1 -6
- package/dist/utils/Hub/getFormHub.js +0 -8
- package/dist/utils/Hub/getFormHub.test.js +6 -8
- package/dist/utils/Hub/index.js +1 -3
- package/dist/utils/Meta/documents/getDocuments.js +1 -4
- package/dist/utils/Meta/documents/getDocuments.test.js +4 -10
- package/dist/utils/Meta/documents/index.js +1 -5
- package/dist/utils/Meta/documents/setDocumentsForField.js +4 -11
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +4 -16
- package/dist/utils/Meta/index.js +1 -4
- package/dist/utils/Operate/checkValueIsTruthy.js +1 -7
- package/dist/utils/Operate/checkValueIsTruthy.test.js +0 -2
- package/dist/utils/Operate/getFirstOf.js +2 -9
- package/dist/utils/Operate/getFirstOf.test.js +0 -2
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +7 -21
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +6 -2
- package/dist/utils/Operate/index.js +0 -3
- package/dist/utils/Operate/persistValueInFormData.js +1 -8
- package/dist/utils/Operate/persistValueInFormData.test.js +0 -4
- package/dist/utils/Operate/runPageOperations.js +3 -19
- package/dist/utils/Operate/runPageOperations.test.js +4 -6
- package/dist/utils/Operate/setValueInFormData.js +2 -7
- package/dist/utils/Operate/setValueInFormData.test.js +0 -2
- package/dist/utils/Operate/shouldRun.js +1 -14
- package/dist/utils/Operate/shouldRun.test.js +5 -8
- package/dist/utils/Validate/additional/conditionallyRequired.js +0 -3
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +0 -2
- package/dist/utils/Validate/additional/index.js +1 -22
- package/dist/utils/Validate/additional/index.test.js +0 -6
- package/dist/utils/Validate/additional/mustBeAfter.js +3 -8
- package/dist/utils/Validate/additional/mustBeAfter.test.js +0 -4
- package/dist/utils/Validate/additional/mustBeBefore.js +3 -8
- package/dist/utils/Validate/additional/mustBeBefore.test.js +0 -4
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +5 -16
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +4 -8
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +3 -12
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +0 -3
- package/dist/utils/Validate/additional/mustBeInThePast.js +5 -13
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +0 -3
- package/dist/utils/Validate/additional/mustBeLessThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeLongerThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +0 -3
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +0 -2
- package/dist/utils/Validate/additional/mustBeShorterThan.js +0 -3
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +0 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +0 -5
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +4 -5
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +0 -3
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +0 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +0 -6
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +4 -7
- package/dist/utils/Validate/additional/utils.js +10 -26
- package/dist/utils/Validate/index.js +1 -11
- package/dist/utils/Validate/validateCollection.js +4 -10
- package/dist/utils/Validate/validateCollection.test.js +4 -6
- package/dist/utils/Validate/validateComponent.js +2 -39
- package/dist/utils/Validate/validateComponent.test.js +4 -22
- package/dist/utils/Validate/validateContainer.js +4 -14
- package/dist/utils/Validate/validateContainer.test.js +4 -10
- package/dist/utils/Validate/validateDate.js +6 -38
- package/dist/utils/Validate/validateDate.test.js +0 -4
- package/dist/utils/Validate/validateEmail.js +1 -8
- package/dist/utils/Validate/validateEmail.test.js +5 -4
- package/dist/utils/Validate/validateMultifile.js +0 -7
- package/dist/utils/Validate/validateMultifile.test.js +5 -6
- package/dist/utils/Validate/validatePage.js +4 -16
- package/dist/utils/Validate/validatePage.test.js +30 -25
- package/dist/utils/Validate/validateRegex.js +0 -10
- package/dist/utils/Validate/validateRegex.test.js +5 -4
- package/dist/utils/Validate/validateRequired.js +0 -8
- package/dist/utils/Validate/validateRequired.test.js +5 -4
- package/dist/utils/Validate/validateTextArea.js +0 -8
- package/dist/utils/Validate/validateTextArea.test.js +0 -2
- package/dist/utils/Validate/validateTime.js +5 -22
- package/dist/utils/Validate/validateTime.test.js +0 -2
- package/dist/utils/index.js +4 -20
- package/package.json +2 -2
|
@@ -4,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Data = _interopRequireDefault(require("../Data"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
9
|
+
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); }
|
|
12
10
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
-
|
|
14
11
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
-
|
|
12
|
+
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; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
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); }
|
|
18
15
|
var makeComponentFieldsAbsolute = function makeComponentFieldsAbsolute(component) {
|
|
19
16
|
if (component.show_when) {
|
|
20
17
|
var conditions = component.show_when.type ? component.show_when.conditions : component.show_when;
|
|
@@ -22,27 +19,21 @@ var makeComponentFieldsAbsolute = function makeComponentFieldsAbsolute(component
|
|
|
22
19
|
conditions = Array.isArray(conditions) ? conditions : [conditions];
|
|
23
20
|
return conditions.map(function (condition) {
|
|
24
21
|
var field = _Data.default.getDataPath(condition.field, full_path);
|
|
25
|
-
|
|
26
22
|
return _objectSpread(_objectSpread({}, condition), {}, {
|
|
27
23
|
field: field
|
|
28
24
|
});
|
|
29
25
|
});
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
return undefined;
|
|
33
28
|
};
|
|
34
|
-
|
|
35
29
|
var isCondition = function isCondition(options) {
|
|
36
30
|
return Array.isArray(options) || !!(options.field && options.op);
|
|
37
31
|
};
|
|
38
|
-
|
|
39
32
|
var setupConditions = function setupConditions(options) {
|
|
40
33
|
if (options && !isCondition(options)) {
|
|
41
34
|
return makeComponentFieldsAbsolute(options);
|
|
42
35
|
}
|
|
43
|
-
|
|
44
36
|
return options;
|
|
45
37
|
};
|
|
46
|
-
|
|
47
38
|
var _default = setupConditions;
|
|
48
39
|
exports.default = _default;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _setupConditions = _interopRequireDefault(require("./setupConditions"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
5
|
describe('utils.Condition.setupConditions', function () {
|
|
8
6
|
it('should return an array of conditions directly', function () {
|
|
9
7
|
var OPTIONS = [{
|
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _models = require("../../models");
|
|
9
|
-
|
|
10
8
|
var _Component = _interopRequireDefault(require("../Component"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
// Local imports
|
|
15
11
|
|
|
16
12
|
/**
|
|
@@ -24,15 +20,12 @@ var getEditableComponents = function getEditableComponents(container) {
|
|
|
24
20
|
if (c.type === _models.ComponentTypes.CONTAINER) {
|
|
25
21
|
return getEditableComponents(c);
|
|
26
22
|
}
|
|
27
|
-
|
|
28
23
|
return _Component.default.editable(c) ? c : null;
|
|
29
24
|
}).filter(function (c) {
|
|
30
25
|
return !!c;
|
|
31
26
|
});
|
|
32
27
|
}
|
|
33
|
-
|
|
34
28
|
return [];
|
|
35
29
|
};
|
|
36
|
-
|
|
37
30
|
var _default = getEditableComponents;
|
|
38
31
|
exports.default = _default;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
|
-
|
|
5
4
|
var _isEditable = require("../Component/isEditable");
|
|
6
|
-
|
|
7
5
|
var _getEditableComponents = _interopRequireDefault(require("./getEditableComponents"));
|
|
8
|
-
|
|
9
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
-
|
|
11
7
|
// Local imports
|
|
8
|
+
|
|
12
9
|
describe('utils.Container.getEditableComponents', function () {
|
|
13
10
|
var HTML = {
|
|
14
11
|
type: 'html',
|
|
@@ -48,7 +45,6 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
48
45
|
components: [INNER_CONTAINER]
|
|
49
46
|
})).toEqual([]);
|
|
50
47
|
});
|
|
51
|
-
|
|
52
48
|
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
53
49
|
it("should return just the \"".concat(type, "\" component if it exists in the components, but no non-editable ones"), function () {
|
|
54
50
|
var EDITABLE = {
|
|
@@ -90,21 +86,17 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
90
86
|
})).toEqual([EDITABLE, EDITABLE, EDITABLE]);
|
|
91
87
|
});
|
|
92
88
|
});
|
|
93
|
-
|
|
94
89
|
it('should return all editable components and no non-editable ones', function () {
|
|
95
90
|
var COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
96
|
-
|
|
97
91
|
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
98
92
|
COMPONENTS.push({
|
|
99
93
|
type: type
|
|
100
94
|
});
|
|
101
95
|
});
|
|
102
|
-
|
|
103
96
|
var RESULT = (0, _getEditableComponents.default)({
|
|
104
97
|
components: COMPONENTS
|
|
105
98
|
});
|
|
106
99
|
expect(RESULT.length).toEqual(_isEditable.EDITABLE_TYPES.length);
|
|
107
|
-
|
|
108
100
|
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
109
101
|
expect(RESULT).toContainEqual({
|
|
110
102
|
type: type
|
|
@@ -117,7 +109,6 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
117
109
|
type: type
|
|
118
110
|
};
|
|
119
111
|
});
|
|
120
|
-
|
|
121
112
|
var NON_EDITABLE_COMPONENTS = [HTML, INSET_TEXT, HEADING];
|
|
122
113
|
var COMPONENTS = [].concat(EDITABLE_COMPONENTS, NON_EDITABLE_COMPONENTS, [{
|
|
123
114
|
type: _models.ComponentTypes.CONTAINER,
|
|
@@ -132,13 +123,11 @@ describe('utils.Container.getEditableComponents', function () {
|
|
|
132
123
|
components: COMPONENTS
|
|
133
124
|
});
|
|
134
125
|
expect(RESULT.length).toEqual(_isEditable.EDITABLE_TYPES.length * 3); // 1 each at top, inner, and inner-inner levels.
|
|
135
|
-
|
|
136
126
|
_isEditable.EDITABLE_TYPES.forEach(function (type) {
|
|
137
127
|
expect(RESULT).toContainEqual({
|
|
138
128
|
type: type
|
|
139
129
|
});
|
|
140
130
|
});
|
|
141
|
-
|
|
142
131
|
expect(RESULT).not.toContainEqual(HTML);
|
|
143
132
|
expect(RESULT).not.toContainEqual(INSET_TEXT);
|
|
144
133
|
expect(RESULT).not.toContainEqual(HEADING);
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _getEditableComponents = _interopRequireDefault(require("./getEditableComponents"));
|
|
9
|
-
|
|
10
8
|
var _setupNesting = _interopRequireDefault(require("./setupNesting"));
|
|
11
|
-
|
|
12
9
|
var _showContainer = _interopRequireDefault(require("./showContainer"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
var Container = {
|
|
17
12
|
editableComponents: _getEditableComponents.default,
|
|
18
13
|
setup: _setupNesting.default,
|
|
@@ -4,32 +4,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _models = require("../../models");
|
|
9
|
-
|
|
8
|
+
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); }
|
|
10
9
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
-
|
|
12
10
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
16
14
|
var nestComponents = function nestComponents(container) {
|
|
17
15
|
var containerPath = container.full_path || container.fieldId;
|
|
18
16
|
return container.components.map(function (component) {
|
|
19
17
|
var full_path = containerPath ? "".concat(containerPath, ".").concat(component.fieldId) : component.fieldId;
|
|
20
|
-
|
|
21
18
|
var ret = _objectSpread(_objectSpread({}, component), {}, {
|
|
22
19
|
full_path: full_path
|
|
23
20
|
});
|
|
24
|
-
|
|
25
21
|
if (component.type === _models.ComponentTypes.CONTAINER) {
|
|
26
22
|
return setupNesting(ret);
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
return ret;
|
|
30
25
|
});
|
|
31
26
|
};
|
|
32
|
-
|
|
33
27
|
var setupNesting = function setupNesting(container) {
|
|
34
28
|
if (container) {
|
|
35
29
|
var components = nestComponents(container);
|
|
@@ -37,9 +31,7 @@ var setupNesting = function setupNesting(container) {
|
|
|
37
31
|
components: components
|
|
38
32
|
});
|
|
39
33
|
}
|
|
40
|
-
|
|
41
34
|
return container;
|
|
42
35
|
};
|
|
43
|
-
|
|
44
36
|
var _default = setupNesting;
|
|
45
37
|
exports.default = _default;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _models = require("../../models");
|
|
4
|
-
|
|
5
4
|
var _setupNesting = _interopRequireDefault(require("./setupNesting"));
|
|
6
|
-
|
|
7
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
6
|
+
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); }
|
|
9
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
|
-
|
|
11
8
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
9
|
+
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; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
+
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); }
|
|
15
12
|
describe('utils.Container.setupNesting', function () {
|
|
16
13
|
var getComponent = function getComponent(id, type) {
|
|
17
14
|
return {
|
|
@@ -20,7 +17,6 @@ describe('utils.Container.setupNesting', function () {
|
|
|
20
17
|
type: type
|
|
21
18
|
};
|
|
22
19
|
};
|
|
23
|
-
|
|
24
20
|
it('should handle an undefined container', function () {
|
|
25
21
|
expect((0, _setupNesting.default)(undefined)).toBeUndefined();
|
|
26
22
|
});
|
|
@@ -31,7 +27,6 @@ describe('utils.Container.setupNesting', function () {
|
|
|
31
27
|
var CONTAINER = _objectSpread(_objectSpread({}, getComponent('container', _models.ComponentTypes.CONTAINER)), {}, {
|
|
32
28
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
33
29
|
});
|
|
34
|
-
|
|
35
30
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
36
31
|
id: 'container',
|
|
37
32
|
fieldId: 'container',
|
|
@@ -55,7 +50,6 @@ describe('utils.Container.setupNesting', function () {
|
|
|
55
50
|
components: [getComponent('text', _models.ComponentTypes.TEXT), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
56
51
|
}), getComponent('email', _models.ComponentTypes.EMAIL)]
|
|
57
52
|
});
|
|
58
|
-
|
|
59
53
|
expect((0, _setupNesting.default)(CONTAINER)).toEqual({
|
|
60
54
|
id: 'container',
|
|
61
55
|
fieldId: 'container',
|
|
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _Component = _interopRequireDefault(require("../Component"));
|
|
9
|
-
|
|
10
8
|
var _Condition = _interopRequireDefault(require("../Condition"));
|
|
11
|
-
|
|
12
9
|
var _getEditableComponents = _interopRequireDefault(require("./getEditableComponents"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
// Local imports
|
|
17
12
|
|
|
18
13
|
/**
|
|
@@ -26,40 +21,36 @@ var showEditableComponent = function showEditableComponent(editableComponents, d
|
|
|
26
21
|
return _Component.default.show(component, data);
|
|
27
22
|
});
|
|
28
23
|
};
|
|
24
|
+
|
|
29
25
|
/**
|
|
30
26
|
* Indicates whether or not a container should be shown.
|
|
31
27
|
* @param {object} container The container to consider.
|
|
32
28
|
* @param {object} data The top-level form data.
|
|
33
29
|
* @returns Boolean true if the container should be shown; false if not.
|
|
34
30
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
31
|
var showContainer = function showContainer(container, data) {
|
|
38
32
|
if (!container) {
|
|
39
33
|
return false;
|
|
40
|
-
}
|
|
41
|
-
|
|
34
|
+
}
|
|
42
35
|
|
|
36
|
+
// If the container has a show_when condition, we should evaluate that.
|
|
43
37
|
if (container.show_when) {
|
|
44
38
|
if (container.show_when.type === "or") {
|
|
45
39
|
return _Condition.default.meetsOne(container, data);
|
|
46
40
|
}
|
|
47
|
-
|
|
48
41
|
return _Condition.default.meetsAll(container, data);
|
|
49
|
-
}
|
|
50
|
-
// contains ANY editable components, at least one of them is shown.
|
|
51
|
-
|
|
42
|
+
}
|
|
52
43
|
|
|
44
|
+
// If the container itself doesn't have a show_when, we need to make sure that if it
|
|
45
|
+
// contains ANY editable components, at least one of them is shown.
|
|
53
46
|
var editableComponents = (0, _getEditableComponents.default)(container);
|
|
54
|
-
|
|
55
47
|
if (editableComponents.length > 0) {
|
|
56
48
|
return showEditableComponent(editableComponents, data);
|
|
57
|
-
}
|
|
58
|
-
// the container has no editable components. In either case, it should be shown.
|
|
59
|
-
|
|
49
|
+
}
|
|
60
50
|
|
|
51
|
+
// At this point, either the container has no show_when condition of its own, or
|
|
52
|
+
// the container has no editable components. In either case, it should be shown.
|
|
61
53
|
return true;
|
|
62
54
|
};
|
|
63
|
-
|
|
64
55
|
var _default = showContainer;
|
|
65
56
|
exports.default = _default;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _showContainer = _interopRequireDefault(require("./showContainer"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
5
|
// Local imports
|
|
6
|
+
|
|
8
7
|
describe('utils.Container.showContainer', function () {
|
|
9
8
|
var DATA = {
|
|
10
9
|
alpha: 'Alpha',
|
|
@@ -4,15 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
9
|
-
|
|
8
|
+
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); }
|
|
10
9
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
-
|
|
12
10
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
16
14
|
var applyFormula = function applyFormula(config) {
|
|
17
15
|
try {
|
|
18
16
|
var result = simplify(config);
|
|
@@ -20,63 +18,50 @@ var applyFormula = function applyFormula(config) {
|
|
|
20
18
|
} catch (err) {
|
|
21
19
|
console.error(err.message);
|
|
22
20
|
}
|
|
23
|
-
|
|
24
21
|
return '';
|
|
25
22
|
};
|
|
26
|
-
|
|
27
23
|
var simplify = function simplify(config) {
|
|
28
24
|
if (!config || !config.formula) {
|
|
29
25
|
throw new Error("Missing 'formula' definition");
|
|
30
26
|
}
|
|
31
|
-
|
|
32
27
|
var _config$formula = _objectSpread({}, config.formula),
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
name = _config$formula.name;
|
|
35
29
|
switch (name) {
|
|
36
30
|
case 'multiply':
|
|
37
31
|
return reduceNumber(config, function (t, c) {
|
|
38
32
|
return t * c;
|
|
39
33
|
});
|
|
40
|
-
|
|
41
34
|
case 'divide':
|
|
42
35
|
return reduceNumber(config, function (t, c) {
|
|
43
36
|
return t / c;
|
|
44
37
|
});
|
|
45
|
-
|
|
46
38
|
case 'plus':
|
|
47
39
|
return reduceNumber(config, function (t, c) {
|
|
48
40
|
return t + c;
|
|
49
41
|
});
|
|
50
|
-
|
|
51
42
|
case 'minus':
|
|
52
43
|
return reduceNumber(config, function (t, c) {
|
|
53
44
|
return t - c;
|
|
54
45
|
});
|
|
55
|
-
|
|
56
46
|
default:
|
|
57
47
|
throw new Error(!name ? "Calculation formula 'name' cannot be empty" : "Unsupported operation '".concat(name, "'"));
|
|
58
48
|
}
|
|
59
49
|
};
|
|
60
|
-
|
|
61
50
|
var reduceNumber = function reduceNumber(config, reduction) {
|
|
62
51
|
var _config$formula2 = _objectSpread({}, config.formula),
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
args = _config$formula2.args;
|
|
65
53
|
if (args.length < 2) {
|
|
66
54
|
throw new Error('Requires more than one argument for calculation');
|
|
67
55
|
}
|
|
68
|
-
|
|
69
56
|
return round(args.map(function (a) {
|
|
70
57
|
return getValue(a, config.formData);
|
|
71
58
|
}).reduce(function (total, current, index) {
|
|
72
59
|
return index === 0 ? current : reduction(total, current);
|
|
73
60
|
}, 0), config);
|
|
74
61
|
};
|
|
75
|
-
|
|
76
62
|
var round = function round(number, config) {
|
|
77
63
|
var round = config.formula.round;
|
|
78
64
|
if (!round && round !== 0 || !number) return number;
|
|
79
|
-
|
|
80
65
|
if (round === 0) {
|
|
81
66
|
return parseInt(number);
|
|
82
67
|
} else {
|
|
@@ -84,27 +69,21 @@ var round = function round(number, config) {
|
|
|
84
69
|
return Math.round((number + Number.EPSILON) * precisionScale) / precisionScale;
|
|
85
70
|
}
|
|
86
71
|
};
|
|
87
|
-
|
|
88
72
|
var getValue = function getValue(arg, formData) {
|
|
89
73
|
var keys = Object.keys(arg);
|
|
90
|
-
|
|
91
74
|
if (keys.length === 1) {
|
|
92
75
|
var key = keys[0];
|
|
93
76
|
var val = arg[key];
|
|
94
|
-
|
|
95
77
|
switch (key) {
|
|
96
78
|
case 'field':
|
|
97
79
|
var fieldVal = fieldValue(val, formData);
|
|
98
80
|
return !fieldVal && fieldVal !== 0 ? NaN : parseFloat(fieldVal);
|
|
99
|
-
|
|
100
81
|
case 'value':
|
|
101
82
|
return parseFloat(val);
|
|
102
|
-
|
|
103
83
|
case 'formula':
|
|
104
84
|
return applyFormula(_objectSpread(_objectSpread({}, arg), {}, {
|
|
105
85
|
formData: formData
|
|
106
86
|
}));
|
|
107
|
-
|
|
108
87
|
default:
|
|
109
88
|
throw new Error('Only accept following as argument field: {field, value, or formula}');
|
|
110
89
|
}
|
|
@@ -112,10 +91,8 @@ var getValue = function getValue(arg, formData) {
|
|
|
112
91
|
throw new Error('Argument cannot have more than one reference');
|
|
113
92
|
}
|
|
114
93
|
};
|
|
115
|
-
|
|
116
94
|
var fieldValue = function fieldValue(field, data) {
|
|
117
95
|
return _copReactComponents.Utils.interpolateString('${' + field + '}', data);
|
|
118
96
|
};
|
|
119
|
-
|
|
120
97
|
var _default = applyFormula;
|
|
121
98
|
exports.default = _default;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _applyFormula = _interopRequireDefault(require("./applyFormula"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
5
|
// Local imports
|
|
6
|
+
|
|
8
7
|
describe('utils.Data.applyFormula', function () {
|
|
9
8
|
var error = jest.spyOn(console, 'error').mockImplementation(function () {});
|
|
10
9
|
afterAll(function () {
|
|
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _getOptions = _interopRequireDefault(require("./getOptions"));
|
|
9
|
-
|
|
10
8
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
10
|
// Local imports
|
|
11
|
+
|
|
15
12
|
var getAutocompleteSource = function getAutocompleteSource(config) {
|
|
16
13
|
var options = [];
|
|
17
14
|
(0, _getOptions.default)(config, function (val) {
|
|
@@ -26,6 +23,5 @@ var getAutocompleteSource = function getAutocompleteSource(config) {
|
|
|
26
23
|
}));
|
|
27
24
|
};
|
|
28
25
|
};
|
|
29
|
-
|
|
30
26
|
var _default = getAutocompleteSource;
|
|
31
27
|
exports.default = _default;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getAutocompleteSource = _interopRequireDefault(require("./getAutocompleteSource"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
5
|
// Local imports
|
|
6
|
+
|
|
8
7
|
describe('utils', function () {
|
|
9
8
|
describe('Data', function () {
|
|
10
9
|
describe('getAutocompleteSource', function () {
|
|
@@ -8,55 +8,45 @@ var DOT = '.';
|
|
|
8
8
|
var SLASH = '/';
|
|
9
9
|
var DOT_DOT = "".concat(DOT).concat(DOT);
|
|
10
10
|
var PARENT_PATH = "".concat(DOT).concat(SLASH);
|
|
11
|
-
|
|
12
11
|
var toPath = function toPath(arr) {
|
|
13
12
|
return arr.join(DOT);
|
|
14
13
|
};
|
|
15
|
-
|
|
16
14
|
var toParts = function toParts(str) {
|
|
17
15
|
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DOT;
|
|
18
16
|
return str.split(separator);
|
|
19
17
|
};
|
|
20
|
-
|
|
21
18
|
var isDotDot = function isDotDot(str) {
|
|
22
19
|
return str === DOT_DOT;
|
|
23
20
|
};
|
|
24
|
-
|
|
25
21
|
var isDotOrDotDot = function isDotOrDotDot(str) {
|
|
26
22
|
return [DOT, DOT_DOT].indexOf(str) > -1;
|
|
27
23
|
};
|
|
28
|
-
|
|
29
24
|
var isRelativePath = function isRelativePath(path) {
|
|
30
25
|
return path && path.indexOf(DOT) === 0;
|
|
31
26
|
};
|
|
32
|
-
|
|
33
27
|
var standardiseRelativePath = function standardiseRelativePath(path) {
|
|
34
28
|
if (path.indexOf(PARENT_PATH) === 0) {
|
|
35
29
|
return path;
|
|
36
30
|
}
|
|
37
|
-
|
|
38
31
|
return "".concat(PARENT_PATH).concat(path);
|
|
39
32
|
};
|
|
40
|
-
|
|
41
33
|
var ascendPath = function ascendPath(startPath, ascent) {
|
|
42
|
-
var relativePath = standardiseRelativePath(ascent);
|
|
43
|
-
|
|
34
|
+
var relativePath = standardiseRelativePath(ascent);
|
|
35
|
+
// Always add 1 because we're starting on a leaf node within a "directory".
|
|
44
36
|
var stepsToClimb = toParts(relativePath, SLASH).filter(isDotDot).length + 1;
|
|
45
37
|
var pathParts = startPath ? toParts(startPath) : [];
|
|
46
|
-
|
|
47
38
|
if (stepsToClimb >= pathParts.length) {
|
|
48
39
|
return '';
|
|
49
40
|
}
|
|
50
|
-
|
|
51
41
|
return toPath(pathParts.slice(0, -stepsToClimb));
|
|
52
42
|
};
|
|
53
|
-
|
|
54
43
|
var descendPath = function descendPath(startPath, descent) {
|
|
55
44
|
var stepsDown = toParts(descent, SLASH).filter(function (str) {
|
|
56
45
|
return !isDotOrDotDot(str);
|
|
57
46
|
});
|
|
58
47
|
return startPath ? "".concat(startPath, ".").concat(toPath(stepsDown)) : toPath(stepsDown);
|
|
59
48
|
};
|
|
49
|
+
|
|
60
50
|
/**
|
|
61
51
|
* Takes a path and a current path and returns an absolute path to a data element.
|
|
62
52
|
* Note that the path may be absolute or relative.
|
|
@@ -76,15 +66,11 @@ var descendPath = function descendPath(startPath, descent) {
|
|
|
76
66
|
* getDataPath('../../relative.path', 'this.is.the.current.path');
|
|
77
67
|
* // => 'this.is.relative.path'
|
|
78
68
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
69
|
var getDataPath = function getDataPath(path, currentPath) {
|
|
82
70
|
if (isRelativePath(path)) {
|
|
83
71
|
return descendPath(ascendPath(currentPath, path), path);
|
|
84
72
|
}
|
|
85
|
-
|
|
86
73
|
return path;
|
|
87
74
|
};
|
|
88
|
-
|
|
89
75
|
var _default = getDataPath;
|
|
90
76
|
exports.default = _default;
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _getDataPath = _interopRequireDefault(require("./getDataPath"));
|
|
4
|
-
|
|
5
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
-
|
|
7
5
|
describe('utils.Data.getDataPath', function () {
|
|
8
6
|
var CURRENT_PATH = 'this.is.the.current.path';
|
|
9
7
|
var RELATIVE = 'relative.path';
|
|
10
8
|
var ABSOLUTE = 'absolute.path';
|
|
11
|
-
|
|
12
9
|
var doTest = function doTest(path, currentPath, expected) {
|
|
13
10
|
expect((0, _getDataPath.default)(path, currentPath)).toEqual(expected);
|
|
14
11
|
};
|
|
15
|
-
|
|
16
12
|
it("should return an absolute path appropriately", function () {
|
|
17
13
|
doTest(ABSOLUTE, CURRENT_PATH, ABSOLUTE);
|
|
18
14
|
});
|