@ukhomeoffice/cop-react-form-renderer 6.0.6-peter → 6.7.0-alpha
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 +12 -12
- package/dist/components/CheckYourAnswers/Answer.test.js +92 -127
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +101 -131
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +2 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +463 -769
- package/dist/components/CollectionPage/CollectionPage.js +75 -59
- package/dist/components/CollectionPage/CollectionPage.test.js +316 -366
- package/dist/components/CollectionSummary/BannerStrip.js +15 -14
- package/dist/components/CollectionSummary/BannerStrip.scss +2 -2
- package/dist/components/CollectionSummary/BannerStrip.test.js +98 -59
- package/dist/components/CollectionSummary/CollectionSummary.js +144 -135
- package/dist/components/CollectionSummary/CollectionSummary.scss +1 -1
- package/dist/components/CollectionSummary/CollectionSummary.test.js +167 -197
- package/dist/components/CollectionSummary/Confirmation.js +14 -12
- package/dist/components/CollectionSummary/Confirmation.scss +1 -1
- package/dist/components/CollectionSummary/Confirmation.test.js +68 -63
- package/dist/components/CollectionSummary/RenderListView.js +54 -56
- package/dist/components/CollectionSummary/RenderListView.scss +10 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +89 -78
- package/dist/components/CollectionSummary/SummaryCard.js +135 -145
- package/dist/components/CollectionSummary/SummaryCard.scss +2 -1
- package/dist/components/CollectionSummary/SummaryCard.test.js +943 -932
- package/dist/components/CollectionSummary/SummaryCardDetails.js +120 -62
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +43 -6
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +261 -120
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +38 -33
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +62 -73
- package/dist/components/FormComponent/Collection.js +81 -108
- package/dist/components/FormComponent/Collection.test.js +909 -943
- package/dist/components/FormComponent/Container.js +40 -38
- package/dist/components/FormComponent/Container.test.js +314 -345
- package/dist/components/FormComponent/FormComponent.js +80 -71
- package/dist/components/FormComponent/FormComponent.test.js +353 -414
- package/dist/components/FormComponent/helpers/addLabel.js +4 -7
- package/dist/components/FormComponent/helpers/getComponentDisabled.js +1 -1
- package/dist/components/FormComponent/helpers/getComponentDisabled.test.js +7 -7
- package/dist/components/FormComponent/helpers/getComponentError.js +3 -5
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +3 -4
- package/dist/components/FormComponent/helpers/getComponentFieldSet.test.js +6 -6
- package/dist/components/FormComponent/helpers/index.js +4 -4
- package/dist/components/FormPage/FormPage.js +65 -80
- package/dist/components/FormPage/FormPage.scss +1 -1
- package/dist/components/FormPage/FormPage.test.js +127 -163
- package/dist/components/FormRenderer/FormRenderer.js +150 -183
- package/dist/components/FormRenderer/FormRenderer.scss +1 -1
- package/dist/components/FormRenderer/FormRenderer.test.js +730 -1115
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +1 -3
- package/dist/components/FormRenderer/handlers/getPageId.test.js +14 -14
- package/dist/components/FormRenderer/handlers/handlers.test.js +32 -32
- package/dist/components/FormRenderer/handlers/index.js +1 -1
- package/dist/components/FormRenderer/handlers/navigate.js +3 -3
- package/dist/components/FormRenderer/handlers/submissionError.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canActionProceed.test.js +15 -15
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -3
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +16 -20
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +17 -22
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +3 -5
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +5 -7
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +13 -24
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +2 -4
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +7 -9
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +14 -14
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.js +5 -5
- package/dist/components/FormRenderer/helpers/getSubmissionStatus.test.js +103 -97
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +62 -60
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +71 -78
- package/dist/components/FormRenderer/helpers/index.js +2 -4
- package/dist/components/FormRenderer/onCYAAction.js +59 -51
- package/dist/components/FormRenderer/onCYAAction.test.js +164 -152
- package/dist/components/FormRenderer/onPageAction.js +50 -48
- package/dist/components/FormRenderer/onPageAction.test.js +241 -217
- package/dist/components/FormRenderer/onTaskAction.js +9 -13
- package/dist/components/FormRenderer/onTaskAction.test.js +93 -88
- package/dist/components/PageActions/ActionButton.js +12 -15
- package/dist/components/PageActions/ActionButton.test.js +56 -78
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +86 -115
- package/dist/components/SummaryList/GroupAction.js +9 -17
- package/dist/components/SummaryList/GroupAction.test.js +37 -33
- package/dist/components/SummaryList/RowAction.js +11 -16
- package/dist/components/SummaryList/RowAction.test.js +37 -33
- package/dist/components/SummaryList/SummaryList.js +21 -26
- package/dist/components/SummaryList/SummaryList.scss +2 -2
- package/dist/components/SummaryList/SummaryList.test.js +143 -166
- package/dist/components/SummaryList/SummaryListHeadingRow.js +6 -4
- package/dist/components/SummaryList/SummaryListRow.js +6 -4
- package/dist/components/SummaryList/SummaryListTitleRow.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +3 -5
- package/dist/components/SummaryList/helpers/getRowActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/index.js +1 -1
- package/dist/components/TaskList/Task.js +19 -29
- package/dist/components/TaskList/Task.test.js +83 -76
- package/dist/components/TaskList/TaskList.js +45 -71
- package/dist/components/TaskList/TaskList.scss +1 -1
- package/dist/components/TaskList/TaskList.test.js +113 -111
- package/dist/components/TaskList/TaskState.js +7 -5
- package/dist/components/TaskList/TaskState.test.js +52 -45
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +57 -80
- package/dist/context/HooksContext/HooksContext.test.js +26 -35
- package/dist/context/HooksContext/index.js +3 -4
- package/dist/context/ValidationContext/ValidationContext.js +65 -72
- package/dist/context/ValidationContext/ValidationContext.test.js +58 -61
- package/dist/context/ValidationContext/index.js +3 -4
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +9 -10
- package/dist/hooks/useAxios.js +14 -40
- package/dist/hooks/useGetRequest.js +61 -97
- package/dist/hooks/useHooks.js +1 -3
- package/dist/hooks/useRefData.js +27 -40
- package/dist/hooks/useValidation.js +1 -3
- package/dist/index.js +13 -14
- package/dist/models/CollectionLabels.js +1 -1
- package/dist/models/ComponentTypes.js +25 -25
- package/dist/models/EventTypes.js +4 -4
- package/dist/models/FormPages.js +4 -4
- package/dist/models/FormTypes.js +8 -8
- package/dist/models/HubFormats.js +3 -3
- package/dist/models/PageAction.js +44 -38
- package/dist/models/TaskStates.js +29 -28
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +30 -31
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +52 -54
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +15 -25
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +33 -35
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +17 -31
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +42 -44
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +18 -24
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +15 -16
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +33 -36
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +58 -61
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +83 -89
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +164 -138
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +25 -20
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +103 -97
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +13 -18
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +70 -76
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +11 -11
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +7 -7
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -5
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +29 -24
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +3 -4
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +7 -27
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +17 -18
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +29 -19
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +66 -22
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +7 -11
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +8 -12
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +55 -0
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +153 -0
- package/dist/utils/CollectionPage/getQuickEditPage.js +37 -23
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +26 -45
- package/dist/utils/CollectionPage/index.js +3 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +31 -35
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +20 -20
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +4 -6
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -17
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +38 -20
- package/dist/utils/Component/addShowWhen.js +4 -8
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +27 -32
- package/dist/utils/Component/cleanAttributes.js +10 -13
- package/dist/utils/Component/cleanAttributes.test.js +17 -18
- package/dist/utils/Component/elevateNestedComponents.js +5 -5
- package/dist/utils/Component/elevateNestedComponents.test.js +30 -30
- package/dist/utils/Component/getComponent.js +88 -94
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +18 -17
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +46 -59
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +39 -48
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +23 -33
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +20 -18
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +20 -25
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +10 -9
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +9 -8
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +22 -26
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +155 -175
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +17 -15
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +57 -72
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +17 -22
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +31 -38
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +20 -29
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +9 -8
- package/dist/utils/Component/getDefaultValue.js +6 -8
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +22 -21
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +2 -4
- package/dist/utils/Component/isEditable.test.js +14 -15
- package/dist/utils/Component/optionIsSelected.js +1 -1
- package/dist/utils/Component/optionIsSelected.test.js +9 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +27 -29
- package/dist/utils/Component/setupContainerComponentsPath.test.js +11 -11
- package/dist/utils/Component/showComponent.js +1 -1
- package/dist/utils/Component/showComponent.test.js +28 -28
- package/dist/utils/Component/wrapInFormGroup.js +2 -2
- package/dist/utils/Condition/index.js +1 -1
- package/dist/utils/Condition/meetsAllConditions.js +8 -8
- package/dist/utils/Condition/meetsAllConditions.test.js +20 -20
- package/dist/utils/Condition/meetsCondition.js +28 -19
- package/dist/utils/Condition/meetsCondition.test.js +476 -376
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +13 -18
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +3 -5
- package/dist/utils/Container/getEditableComponents.test.js +43 -45
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +16 -20
- package/dist/utils/Container/setupNesting.test.js +27 -30
- package/dist/utils/Container/showContainer.js +3 -7
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +38 -48
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +18 -26
- package/dist/utils/Data/getAutocompleteSource.test.js +80 -86
- package/dist/utils/Data/getDataPath.js +18 -28
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +29 -25
- package/dist/utils/Data/getOptions.test.js +93 -20
- package/dist/utils/Data/getSourceData.js +6 -19
- package/dist/utils/Data/getSourceData.test.js +84 -80
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +42 -0
- package/dist/utils/Data/nestInRefdataOptions.test.js +236 -0
- package/dist/utils/Data/refDataToOptions.js +10 -13
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +7 -8
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +13 -21
- package/dist/utils/Data/setupFormData.test.js +51 -50
- package/dist/utils/Data/setupRefDataUrlForComponent.js +20 -26
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +5 -9
- package/dist/utils/FormPage/applyConditionalProperties.test.js +15 -18
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +15 -16
- package/dist/utils/FormPage/getFormPage.test.js +47 -46
- package/dist/utils/FormPage/getFormPages.js +7 -12
- package/dist/utils/FormPage/getFormPages.test.js +20 -23
- package/dist/utils/FormPage/getPageActions.js +9 -15
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +5 -7
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +2 -4
- package/dist/utils/FormPage/showFormPage.js +3 -7
- package/dist/utils/FormPage/showFormPage.test.js +32 -32
- package/dist/utils/FormPage/showFormPageCYA.js +1 -1
- package/dist/utils/FormPage/showFormPageCYA.test.js +8 -8
- package/dist/utils/FormPage/useComponent.js +21 -28
- package/dist/utils/FormPage/useComponent.test.js +77 -79
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +5 -6
- package/dist/utils/Format/formatDataForComponent.test.js +50 -78
- package/dist/utils/Format/formatDataForForm.js +6 -8
- package/dist/utils/Format/formatDataForForm.test.js +13 -16
- package/dist/utils/Format/formatDataForPage.js +4 -5
- package/dist/utils/Format/formatDataForPage.test.js +20 -25
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +28 -31
- package/dist/utils/Hub/index.js +1 -1
- package/dist/utils/Meta/constants.js +2 -2
- package/dist/utils/Meta/documents/getDocuments.js +1 -1
- package/dist/utils/Meta/documents/getDocuments.test.js +24 -16
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +14 -16
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +68 -34
- package/dist/utils/Meta/index.js +1 -1
- package/dist/utils/Operate/checkValueIsTruthy.js +2 -2
- package/dist/utils/Operate/checkValueIsTruthy.test.js +16 -16
- package/dist/utils/Operate/getFirstOf.js +5 -5
- package/dist/utils/Operate/getFirstOf.test.js +31 -31
- package/dist/utils/Operate/getIndexOfMatchingValueIn.js +10 -10
- package/dist/utils/Operate/getIndexOfMatchingValueIn.test.js +46 -52
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +22 -20
- package/dist/utils/Operate/runPageOperations.js +7 -7
- package/dist/utils/Operate/runPageOperations.test.js +35 -36
- package/dist/utils/Operate/setValueInFormData.js +2 -2
- package/dist/utils/Operate/setValueInFormData.test.js +16 -16
- package/dist/utils/Operate/shouldRun.js +6 -6
- package/dist/utils/Operate/shouldRun.test.js +21 -27
- package/dist/utils/Validate/additional/conditionallyRequired.js +4 -4
- package/dist/utils/Validate/additional/conditionallyRequired.test.js +18 -18
- package/dist/utils/Validate/additional/index.js +6 -6
- package/dist/utils/Validate/additional/index.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeAfter.js +2 -2
- package/dist/utils/Validate/additional/mustBeAfter.test.js +40 -40
- package/dist/utils/Validate/additional/mustBeBefore.js +2 -2
- package/dist/utils/Validate/additional/mustBeBefore.test.js +28 -28
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.js +7 -11
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +37 -41
- package/dist/utils/Validate/additional/mustBeGreaterThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeGreaterThan.test.js +18 -18
- package/dist/utils/Validate/additional/mustBeInTheFuture.js +2 -2
- package/dist/utils/Validate/additional/mustBeInTheFuture.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeInThePast.js +3 -3
- package/dist/utils/Validate/additional/mustBeInThePast.test.js +12 -12
- package/dist/utils/Validate/additional/mustBeLessThan.js +2 -2
- package/dist/utils/Validate/additional/mustBeLessThan.test.js +17 -17
- package/dist/utils/Validate/additional/mustBeLongerThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeLongerThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeNumbersOnly.js +2 -2
- package/dist/utils/Validate/additional/mustBeNumbersOnly.test.js +20 -20
- package/dist/utils/Validate/additional/mustBeShorterThan.js +1 -1
- package/dist/utils/Validate/additional/mustBeShorterThan.test.js +16 -16
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.js +8 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +64 -32
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +14 -16
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.js +1 -1
- package/dist/utils/Validate/additional/mustHaveLessThanDecimalPlaces.test.js +12 -12
- package/dist/utils/Validate/additional/mustNotContainSql.js +3 -4
- package/dist/utils/Validate/additional/mustNotContainSql.test.js +14 -14
- package/dist/utils/Validate/additional/mustSelectOnlyOne.js +2 -2
- package/dist/utils/Validate/additional/mustSelectOnlyOne.test.js +28 -26
- package/dist/utils/Validate/additional/utils.js +9 -22
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +19 -25
- package/dist/utils/Validate/validateCollection.test.js +74 -66
- package/dist/utils/Validate/validateComponent.js +17 -15
- package/dist/utils/Validate/validateComponent.test.js +167 -146
- package/dist/utils/Validate/validateContainer.js +16 -19
- package/dist/utils/Validate/validateContainer.test.js +84 -45
- package/dist/utils/Validate/validateDate.js +15 -21
- package/dist/utils/Validate/validateDate.test.js +31 -32
- package/dist/utils/Validate/validateEmail.js +6 -8
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +5 -7
- package/dist/utils/Validate/validateMultifile.test.js +17 -18
- package/dist/utils/Validate/validatePage.js +24 -18
- package/dist/utils/Validate/validatePage.test.js +263 -182
- package/dist/utils/Validate/validateRegex.js +3 -5
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +4 -6
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +4 -6
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +11 -18
- package/dist/utils/Validate/validateTime.test.js +16 -16
- package/dist/utils/index.js +7 -9
- package/package.json +5 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-data.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/component-used-in-multiple-pages-form.json +0 -61
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collection-data-removed.json +0 -4
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-collections.json +0 -8
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-components.json +0 -5
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-entire-collection-removed.json +0 -3
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-component-removed.json +0 -10
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/data-with-nested-components.json +0 -11
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-for-nested-components.json +0 -96
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections-delete-entire.json +0 -47
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-collections.json +0 -46
- package/dist/components/FormRenderer/clear-uncompleted-routes/test-data/form-with-components.json +0 -48
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.js +0 -175
- package/dist/components/FormRenderer/helpers/clearOutUncompletedRoutes.test.js +0 -113
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.js +0 -20
- package/dist/components/FormRenderer/helpers/deleteNodeByPath.test.js +0 -56
|
@@ -4,30 +4,30 @@ var _showContainer = _interopRequireDefault(require("./showContainer"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils.Container.showContainer',
|
|
8
|
-
|
|
7
|
+
describe('utils.Container.showContainer', () => {
|
|
8
|
+
const DATA = {
|
|
9
9
|
alpha: 'Alpha',
|
|
10
10
|
bravo: 'Bravo'
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
const HTML = {
|
|
13
13
|
type: 'html',
|
|
14
14
|
tagName: 'p',
|
|
15
15
|
content: 'Alpha'
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
const INSET_TEXT = {
|
|
18
18
|
type: 'inset-text',
|
|
19
19
|
content: 'Bravo'
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
const HEADING = {
|
|
22
22
|
type: 'heading',
|
|
23
23
|
size: 'm',
|
|
24
24
|
content: 'Charlie'
|
|
25
25
|
};
|
|
26
|
-
it('should NOT be shown when the container is null',
|
|
26
|
+
it('should NOT be shown when the container is null', () => {
|
|
27
27
|
expect((0, _showContainer.default)(null, DATA)).toBeFalsy();
|
|
28
28
|
});
|
|
29
|
-
it('should NOT be shown when the container has a single show_when condition that is NOT matched',
|
|
30
|
-
|
|
29
|
+
it('should NOT be shown when the container has a single show_when condition that is NOT matched', () => {
|
|
30
|
+
const CONTAINER = {
|
|
31
31
|
show_when: {
|
|
32
32
|
field: 'charlie',
|
|
33
33
|
op: '=',
|
|
@@ -36,8 +36,8 @@ describe('utils.Container.showContainer', function () {
|
|
|
36
36
|
};
|
|
37
37
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeFalsy();
|
|
38
38
|
});
|
|
39
|
-
it('should NOT be shown when the container has multiple show_when conditions and at least one is NOT matched',
|
|
40
|
-
|
|
39
|
+
it('should NOT be shown when the container has multiple show_when conditions and at least one is NOT matched', () => {
|
|
40
|
+
const CONTAINER = {
|
|
41
41
|
show_when: [{
|
|
42
42
|
field: 'alpha',
|
|
43
43
|
op: '=',
|
|
@@ -50,8 +50,8 @@ describe('utils.Container.showContainer', function () {
|
|
|
50
50
|
};
|
|
51
51
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeFalsy();
|
|
52
52
|
});
|
|
53
|
-
it('SHOULD be shown when the container has a single show_when condition that IS matched',
|
|
54
|
-
|
|
53
|
+
it('SHOULD be shown when the container has a single show_when condition that IS matched', () => {
|
|
54
|
+
const CONTAINER = {
|
|
55
55
|
show_when: {
|
|
56
56
|
field: 'alpha',
|
|
57
57
|
op: '=',
|
|
@@ -60,8 +60,8 @@ describe('utils.Container.showContainer', function () {
|
|
|
60
60
|
};
|
|
61
61
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
|
|
62
62
|
});
|
|
63
|
-
it('SHOULD be shown when the container has multiple show_when conditions that are ALL matched',
|
|
64
|
-
|
|
63
|
+
it('SHOULD be shown when the container has multiple show_when conditions that are ALL matched', () => {
|
|
64
|
+
const CONTAINER = {
|
|
65
65
|
show_when: [{
|
|
66
66
|
field: 'alpha',
|
|
67
67
|
op: '=',
|
|
@@ -74,14 +74,14 @@ describe('utils.Container.showContainer', function () {
|
|
|
74
74
|
};
|
|
75
75
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
|
|
76
76
|
});
|
|
77
|
-
it('SHOULD be shown when the container has NO show_when conditions and NO editable components',
|
|
78
|
-
|
|
77
|
+
it('SHOULD be shown when the container has NO show_when conditions and NO editable components', () => {
|
|
78
|
+
const CONTAINER = {
|
|
79
79
|
components: [HTML, INSET_TEXT, HEADING]
|
|
80
80
|
};
|
|
81
81
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
|
|
82
82
|
});
|
|
83
|
-
it('should NOT be shown when the container has NO show_when conditions and NO SHOWN editable components',
|
|
84
|
-
|
|
83
|
+
it('should NOT be shown when the container has NO show_when conditions and NO SHOWN editable components', () => {
|
|
84
|
+
const TEXT = {
|
|
85
85
|
type: 'text',
|
|
86
86
|
show_when: {
|
|
87
87
|
field: 'charlie',
|
|
@@ -89,7 +89,7 @@ describe('utils.Container.showContainer', function () {
|
|
|
89
89
|
value: 'Charlie'
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
|
-
|
|
92
|
+
const RADIOS = {
|
|
93
93
|
type: 'radios',
|
|
94
94
|
show_when: {
|
|
95
95
|
field: 'charlie',
|
|
@@ -97,13 +97,13 @@ describe('utils.Container.showContainer', function () {
|
|
|
97
97
|
value: 'Charlie'
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
const CONTAINER = {
|
|
101
101
|
components: [TEXT, RADIOS]
|
|
102
102
|
};
|
|
103
103
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeFalsy();
|
|
104
104
|
});
|
|
105
|
-
it('SHOULD be shown when the container has NO show_when conditions and AT LEAST ONE SHOWN editable components',
|
|
106
|
-
|
|
105
|
+
it('SHOULD be shown when the container has NO show_when conditions and AT LEAST ONE SHOWN editable components', () => {
|
|
106
|
+
const TEXT = {
|
|
107
107
|
type: 'text',
|
|
108
108
|
show_when: {
|
|
109
109
|
field: 'alpha',
|
|
@@ -111,7 +111,7 @@ describe('utils.Container.showContainer', function () {
|
|
|
111
111
|
value: 'Alpha'
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
|
-
|
|
114
|
+
const RADIOS = {
|
|
115
115
|
type: 'radios',
|
|
116
116
|
show_when: {
|
|
117
117
|
field: 'charlie',
|
|
@@ -119,13 +119,13 @@ describe('utils.Container.showContainer', function () {
|
|
|
119
119
|
value: 'Charlie'
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
|
-
|
|
122
|
+
const CONTAINER = {
|
|
123
123
|
components: [TEXT, RADIOS]
|
|
124
124
|
};
|
|
125
125
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
|
|
126
126
|
});
|
|
127
|
-
it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and ALL are matched',
|
|
128
|
-
|
|
127
|
+
it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and ALL are matched', () => {
|
|
128
|
+
const CONTAINER = {
|
|
129
129
|
show_when: {
|
|
130
130
|
"type": "or",
|
|
131
131
|
"conditions": [{
|
|
@@ -141,8 +141,8 @@ describe('utils.Container.showContainer', function () {
|
|
|
141
141
|
};
|
|
142
142
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
|
|
143
143
|
});
|
|
144
|
-
it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and at least ONE is matched',
|
|
145
|
-
|
|
144
|
+
it('SHOULD be shown when the container has multiple show_when conditions, with type "or" provided and at least ONE is matched', () => {
|
|
145
|
+
const CONTAINER = {
|
|
146
146
|
show_when: {
|
|
147
147
|
"type": "or",
|
|
148
148
|
"conditions": [{
|
|
@@ -158,8 +158,8 @@ describe('utils.Container.showContainer', function () {
|
|
|
158
158
|
};
|
|
159
159
|
expect((0, _showContainer.default)(CONTAINER, DATA)).toBeTruthy();
|
|
160
160
|
});
|
|
161
|
-
it('should NOT be shown when the container has multiple show_when conditions, with type "or" provided and NONE are matched',
|
|
162
|
-
|
|
161
|
+
it('should NOT be shown when the container has multiple show_when conditions, with type "or" provided and NONE are matched', () => {
|
|
162
|
+
const CONTAINER = {
|
|
163
163
|
show_when: {
|
|
164
164
|
"type": "or",
|
|
165
165
|
"conditions": [{
|
|
@@ -5,15 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _copReactComponents = require("@ukhomeoffice/cop-react-components");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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); } /* eslint-disable no-use-before-define, prefer-exponentiation-operator, no-restricted-properties */ // Global imports
|
|
14
|
-
var applyFormula = function applyFormula(config) {
|
|
8
|
+
/* eslint-disable no-use-before-define, prefer-exponentiation-operator, no-restricted-properties */
|
|
9
|
+
|
|
10
|
+
// Global imports
|
|
11
|
+
|
|
12
|
+
const applyFormula = config => {
|
|
15
13
|
try {
|
|
16
|
-
|
|
14
|
+
const result = simplify(config);
|
|
17
15
|
return !result && result !== 0 ? '' : result;
|
|
18
16
|
} catch (err) {
|
|
19
17
|
// eslint-disable-next-line no-console
|
|
@@ -21,72 +19,67 @@ var applyFormula = function applyFormula(config) {
|
|
|
21
19
|
}
|
|
22
20
|
return '';
|
|
23
21
|
};
|
|
24
|
-
|
|
22
|
+
const simplify = config => {
|
|
25
23
|
if (!config || !config.formula) {
|
|
26
24
|
throw new Error("Missing 'formula' definition");
|
|
27
25
|
}
|
|
28
|
-
|
|
29
|
-
name
|
|
26
|
+
const {
|
|
27
|
+
name
|
|
28
|
+
} = {
|
|
29
|
+
...config.formula
|
|
30
|
+
};
|
|
30
31
|
switch (name) {
|
|
31
32
|
case 'multiply':
|
|
32
|
-
return reduceNumber(config,
|
|
33
|
-
return t * c;
|
|
34
|
-
});
|
|
33
|
+
return reduceNumber(config, (t, c) => t * c);
|
|
35
34
|
case 'divide':
|
|
36
|
-
return reduceNumber(config,
|
|
37
|
-
return t / c;
|
|
38
|
-
});
|
|
35
|
+
return reduceNumber(config, (t, c) => t / c);
|
|
39
36
|
case 'plus':
|
|
40
|
-
return reduceNumber(config,
|
|
41
|
-
return t + c;
|
|
42
|
-
});
|
|
37
|
+
return reduceNumber(config, (t, c) => t + c);
|
|
43
38
|
case 'minus':
|
|
44
|
-
return reduceNumber(config,
|
|
45
|
-
return t - c;
|
|
46
|
-
});
|
|
39
|
+
return reduceNumber(config, (t, c) => t - c);
|
|
47
40
|
default:
|
|
48
41
|
throw new Error(!name ? "Calculation formula 'name' cannot be empty" : "Unsupported operation '".concat(name, "'"));
|
|
49
42
|
}
|
|
50
43
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
args
|
|
44
|
+
const reduceNumber = (config, reduction) => {
|
|
45
|
+
const {
|
|
46
|
+
args
|
|
47
|
+
} = {
|
|
48
|
+
...config.formula
|
|
49
|
+
};
|
|
54
50
|
if (args.length < 2) {
|
|
55
51
|
throw new Error('Requires more than one argument for calculation');
|
|
56
52
|
}
|
|
57
|
-
return round(args.map(
|
|
58
|
-
return getValue(a, config.formData);
|
|
59
|
-
}).reduce(function (total, current, index) {
|
|
60
|
-
return index === 0 ? current : reduction(total, current);
|
|
61
|
-
}, 0), config);
|
|
53
|
+
return round(args.map(a => getValue(a, config.formData)).reduce((total, current, index) => index === 0 ? current : reduction(total, current), 0), config);
|
|
62
54
|
};
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
const round = (number, config) => {
|
|
56
|
+
const roundNumber = config.formula.round;
|
|
65
57
|
if (!roundNumber && roundNumber !== 0 || !number) return number;
|
|
66
58
|
if (roundNumber === 0) {
|
|
67
59
|
return parseInt(number, 10);
|
|
68
60
|
}
|
|
69
|
-
|
|
61
|
+
const precisionScale = Math.pow(10, roundNumber);
|
|
70
62
|
return Math.round((number + Number.EPSILON) * precisionScale) / precisionScale;
|
|
71
63
|
};
|
|
72
|
-
|
|
73
|
-
|
|
64
|
+
const getValue = (arg, formData) => {
|
|
65
|
+
const keys = Object.keys(arg);
|
|
74
66
|
if (keys.length === 1) {
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
const key = keys[0];
|
|
68
|
+
const val = arg[key];
|
|
77
69
|
switch (key) {
|
|
78
70
|
case 'field':
|
|
79
71
|
{
|
|
80
|
-
|
|
72
|
+
const fieldVal = fieldValue(val, formData);
|
|
81
73
|
return !fieldVal && fieldVal !== 0 ? NaN : parseFloat(fieldVal);
|
|
82
74
|
}
|
|
83
75
|
;
|
|
84
76
|
case 'value':
|
|
85
77
|
return parseFloat(val);
|
|
86
78
|
case 'formula':
|
|
87
|
-
return applyFormula(
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
return applyFormula({
|
|
80
|
+
...arg,
|
|
81
|
+
formData
|
|
82
|
+
});
|
|
90
83
|
default:
|
|
91
84
|
throw new Error('Only accept following as argument field: {field, value, or formula}');
|
|
92
85
|
}
|
|
@@ -94,10 +87,7 @@ var getValue = function getValue(arg, formData) {
|
|
|
94
87
|
throw new Error('Argument cannot have more than one reference');
|
|
95
88
|
}
|
|
96
89
|
};
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
_copReactComponents.Utils.interpolateString('${' + field + '}', data)
|
|
101
|
-
);
|
|
102
|
-
};
|
|
90
|
+
const fieldValue = (field, data) =>
|
|
91
|
+
// eslint-disable-next-line prefer-template
|
|
92
|
+
_copReactComponents.Utils.interpolateString('${' + field + '}', data);
|
|
103
93
|
var _default = exports.default = applyFormula;
|
|
@@ -4,29 +4,29 @@ var _applyFormula = _interopRequireDefault(require("./applyFormula"));
|
|
|
4
4
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
5
5
|
// Local imports
|
|
6
6
|
|
|
7
|
-
describe('utils.Data.applyFormula',
|
|
8
|
-
|
|
9
|
-
afterAll(
|
|
7
|
+
describe('utils.Data.applyFormula', () => {
|
|
8
|
+
const error = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
9
|
+
afterAll(() => {
|
|
10
10
|
error.mockReset();
|
|
11
11
|
});
|
|
12
|
-
afterEach(
|
|
12
|
+
afterEach(() => {
|
|
13
13
|
error.mockClear();
|
|
14
14
|
});
|
|
15
|
-
it('should throw and handle exception for a null config',
|
|
15
|
+
it('should throw and handle exception for a null config', () => {
|
|
16
16
|
(0, _applyFormula.default)(null);
|
|
17
17
|
expect(error).toBeCalledWith("Missing 'formula' definition");
|
|
18
18
|
});
|
|
19
|
-
it("should throw and handle exception for config with missing 'formula'",
|
|
19
|
+
it("should throw and handle exception for config with missing 'formula'", () => {
|
|
20
20
|
(0, _applyFormula.default)({});
|
|
21
21
|
expect(error).toBeCalledWith("Missing 'formula' definition");
|
|
22
22
|
});
|
|
23
|
-
it("should throw and handle exception for config with 'formula' but missing 'name'",
|
|
23
|
+
it("should throw and handle exception for config with 'formula' but missing 'name'", () => {
|
|
24
24
|
(0, _applyFormula.default)({
|
|
25
25
|
formula: {}
|
|
26
26
|
});
|
|
27
27
|
expect(error).toBeCalledWith("Calculation formula 'name' cannot be empty");
|
|
28
28
|
});
|
|
29
|
-
it("should throw and handle exception for config with 'formula' with unsupported operation 'name'",
|
|
29
|
+
it("should throw and handle exception for config with 'formula' with unsupported operation 'name'", () => {
|
|
30
30
|
(0, _applyFormula.default)({
|
|
31
31
|
formula: {
|
|
32
32
|
name: "something"
|
|
@@ -34,7 +34,7 @@ describe('utils.Data.applyFormula', function () {
|
|
|
34
34
|
});
|
|
35
35
|
expect(error).toBeCalledWith("Unsupported operation 'something'");
|
|
36
36
|
});
|
|
37
|
-
it("should throw and handle exception for 'formula' with wrong argument name",
|
|
37
|
+
it("should throw and handle exception for 'formula' with wrong argument name", () => {
|
|
38
38
|
(0, _applyFormula.default)({
|
|
39
39
|
formula: {
|
|
40
40
|
name: 'plus',
|
|
@@ -47,7 +47,7 @@ describe('utils.Data.applyFormula', function () {
|
|
|
47
47
|
});
|
|
48
48
|
expect(error).toBeCalledWith('Only accept following as argument field: {field, value, or formula}');
|
|
49
49
|
});
|
|
50
|
-
it("should throw and handle exception for 'formula' argument with more than one field",
|
|
50
|
+
it("should throw and handle exception for 'formula' argument with more than one field", () => {
|
|
51
51
|
(0, _applyFormula.default)({
|
|
52
52
|
formula: {
|
|
53
53
|
name: 'plus',
|
|
@@ -61,7 +61,7 @@ describe('utils.Data.applyFormula', function () {
|
|
|
61
61
|
});
|
|
62
62
|
expect(error).toBeCalledWith('Argument cannot have more than one reference');
|
|
63
63
|
});
|
|
64
|
-
it("should throw and handle exception for 'formula' with single argument",
|
|
64
|
+
it("should throw and handle exception for 'formula' with single argument", () => {
|
|
65
65
|
(0, _applyFormula.default)({
|
|
66
66
|
formula: {
|
|
67
67
|
name: 'plus',
|
|
@@ -72,7 +72,7 @@ describe('utils.Data.applyFormula', function () {
|
|
|
72
72
|
});
|
|
73
73
|
expect(error).toBeCalledWith('Requires more than one argument for calculation');
|
|
74
74
|
});
|
|
75
|
-
|
|
75
|
+
const DATA = {
|
|
76
76
|
fieldA: '10',
|
|
77
77
|
fieldB: '20',
|
|
78
78
|
fieldC: 'abc',
|
|
@@ -137,9 +137,9 @@ describe('utils.Data.applyFormula', function () {
|
|
|
137
137
|
field: 'fieldE'
|
|
138
138
|
}],
|
|
139
139
|
result: 2000
|
|
140
|
-
}].forEach(
|
|
141
|
-
it("should calculate formula '".concat(test.name, "' correctly for field args to '").concat(test.result, "'"),
|
|
142
|
-
|
|
140
|
+
}].forEach(test => {
|
|
141
|
+
it("should calculate formula '".concat(test.name, "' correctly for field args to '").concat(test.result, "'"), () => {
|
|
142
|
+
const config = {
|
|
143
143
|
formData: DATA,
|
|
144
144
|
formula: {
|
|
145
145
|
name: test.name,
|
|
@@ -214,9 +214,9 @@ describe('utils.Data.applyFormula', function () {
|
|
|
214
214
|
fieldB: 'G3',
|
|
215
215
|
round: 1,
|
|
216
216
|
result: ''
|
|
217
|
-
}].forEach(
|
|
218
|
-
it("should calculdate and round result to precision ".concat(test.round),
|
|
219
|
-
|
|
217
|
+
}].forEach(test => {
|
|
218
|
+
it("should calculdate and round result to precision ".concat(test.round), () => {
|
|
219
|
+
const config = {
|
|
220
220
|
formData: {
|
|
221
221
|
fieldA: test.fieldA,
|
|
222
222
|
fieldB: test.fieldB
|
|
@@ -234,8 +234,8 @@ describe('utils.Data.applyFormula', function () {
|
|
|
234
234
|
expect((0, _applyFormula.default)(config)).toEqual(test.result);
|
|
235
235
|
});
|
|
236
236
|
});
|
|
237
|
-
it("should calculate nested 'formula'",
|
|
238
|
-
|
|
237
|
+
it("should calculate nested 'formula'", () => {
|
|
238
|
+
const config = {
|
|
239
239
|
formData: {
|
|
240
240
|
fieldA: '19',
|
|
241
241
|
fieldB: '66'
|
|
@@ -11,26 +11,26 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
// Local imports
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
(0, _getOptions.default)(config,
|
|
14
|
+
const getAutocompleteSource = config => {
|
|
15
|
+
let options = [];
|
|
16
|
+
(0, _getOptions.default)(config, val => {
|
|
17
17
|
options = val;
|
|
18
18
|
});
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
|
|
19
|
+
const labelMaker = config !== null && config !== void 0 && config.item ? _copReactComponents.Utils.itemLabel(config.item) : null;
|
|
20
|
+
return (query, populateResults) => {
|
|
21
|
+
const lcQuery = query ? query.toLowerCase() : '';
|
|
22
22
|
|
|
23
23
|
// go through all options and give them a grade
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
const results = options.map(opt => {
|
|
26
|
+
const label = labelMaker ? labelMaker(opt) : opt.label || '';
|
|
27
|
+
const lcLabel = label.toLowerCase();
|
|
28
28
|
|
|
29
29
|
// result 'score'
|
|
30
|
-
|
|
30
|
+
let grade = 0;
|
|
31
31
|
|
|
32
32
|
// highest result - match at start of string
|
|
33
|
-
|
|
33
|
+
const index = lcLabel.indexOf(lcQuery);
|
|
34
34
|
if (index === 0) {
|
|
35
35
|
grade = 1;
|
|
36
36
|
} else if (index > 0) {
|
|
@@ -38,15 +38,13 @@ var getAutocompleteSource = function getAutocompleteSource(config) {
|
|
|
38
38
|
} else {
|
|
39
39
|
var _config$item;
|
|
40
40
|
if (opt.synonyms) {
|
|
41
|
-
|
|
42
|
-
return synonym.toLowerCase().includes(lcQuery);
|
|
43
|
-
});
|
|
41
|
+
const match = opt.synonyms.some(synonym => synonym.toLowerCase().includes(lcQuery));
|
|
44
42
|
if (match) {
|
|
45
43
|
grade = 4;
|
|
46
44
|
}
|
|
47
45
|
}
|
|
48
46
|
if (!grade && (_config$item = config.item) !== null && _config$item !== void 0 && _config$item.extraFieldsToSearch) {
|
|
49
|
-
|
|
47
|
+
const found = config.item.extraFieldsToSearch.some(field => {
|
|
50
48
|
if (typeof opt[field] !== 'string') {
|
|
51
49
|
return false;
|
|
52
50
|
}
|
|
@@ -56,22 +54,16 @@ var getAutocompleteSource = function getAutocompleteSource(config) {
|
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
return {
|
|
59
|
-
grade
|
|
60
|
-
label
|
|
61
|
-
opt
|
|
57
|
+
grade,
|
|
58
|
+
label,
|
|
59
|
+
opt
|
|
62
60
|
};
|
|
63
|
-
}).filter(
|
|
64
|
-
return result.grade > 0;
|
|
65
|
-
});
|
|
61
|
+
}).filter(result => result.grade > 0);
|
|
66
62
|
|
|
67
63
|
// sort results and then map to just opts
|
|
68
64
|
populateResults(results
|
|
69
65
|
// the sort prioritises grade but also sorts by string value
|
|
70
|
-
.sort(
|
|
71
|
-
return (r1.grade - r2.grade) * 16 + r1.label.localeCompare(r2.label);
|
|
72
|
-
}).map(function (r) {
|
|
73
|
-
return r.opt;
|
|
74
|
-
}));
|
|
66
|
+
.sort((r1, r2) => (r1.grade - r2.grade) * 16 + r1.label.localeCompare(r2.label)).map(r => r.opt));
|
|
75
67
|
};
|
|
76
68
|
};
|
|
77
69
|
var _default = exports.default = getAutocompleteSource;
|