@ukhomeoffice/cop-react-form-renderer 6.7.0-alpha → 6.11.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 +22 -16
- package/dist/components/CheckYourAnswers/Answer.test.js +180 -92
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +137 -103
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +861 -463
- package/dist/components/CollectionPage/CollectionPage.js +63 -73
- package/dist/components/CollectionPage/CollectionPage.test.js +366 -316
- package/dist/components/CollectionSummary/BannerStrip.js +13 -13
- package/dist/components/CollectionSummary/BannerStrip.test.js +76 -80
- package/dist/components/CollectionSummary/CollectionSummary.js +126 -99
- package/dist/components/CollectionSummary/CollectionSummary.test.js +188 -152
- package/dist/components/CollectionSummary/Confirmation.js +12 -14
- package/dist/components/CollectionSummary/Confirmation.test.js +63 -68
- package/dist/components/CollectionSummary/RenderListView.js +52 -46
- package/dist/components/CollectionSummary/RenderListView.scss +1 -1
- package/dist/components/CollectionSummary/RenderListView.test.js +77 -78
- package/dist/components/CollectionSummary/SummaryCard.js +152 -110
- package/dist/components/CollectionSummary/SummaryCard.test.js +1018 -929
- package/dist/components/CollectionSummary/SummaryCardDetails.js +137 -94
- package/dist/components/CollectionSummary/SummaryCardDetails.scss +13 -4
- package/dist/components/CollectionSummary/SummaryCardDetails.test.js +331 -128
- package/dist/components/CollectionSummary/SummaryCardValidationContext.js +35 -30
- package/dist/components/CollectionSummary/SummaryCardValidationContext.test.js +74 -62
- package/dist/components/FormComponent/Collection.js +108 -74
- package/dist/components/FormComponent/Collection.test.js +1081 -909
- package/dist/components/FormComponent/Container.js +39 -40
- package/dist/components/FormComponent/Container.test.js +412 -312
- package/dist/components/FormComponent/FormComponent.js +72 -69
- package/dist/components/FormComponent/FormComponent.test.js +414 -353
- package/dist/components/FormComponent/helpers/addLabel.js +7 -4
- 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 +5 -3
- package/dist/components/FormComponent/helpers/getComponentError.test.js +14 -14
- package/dist/components/FormComponent/helpers/getComponentFieldSet.js +4 -3
- 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 +80 -65
- package/dist/components/FormPage/FormPage.test.js +163 -127
- package/dist/components/FormRenderer/FormRenderer.js +180 -143
- package/dist/components/FormRenderer/FormRenderer.test.js +1115 -730
- package/dist/components/FormRenderer/handlers/cyaAction.js +2 -2
- package/dist/components/FormRenderer/handlers/getPageId.js +3 -1
- 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 +3 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.test.js +20 -16
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.js +22 -17
- package/dist/components/FormRenderer/helpers/cleanHiddenNestedData.test.js +16 -16
- package/dist/components/FormRenderer/helpers/getCYA.js +5 -3
- package/dist/components/FormRenderer/helpers/getCYA.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getFormState.js +7 -5
- package/dist/components/FormRenderer/helpers/getFormState.test.js +10 -10
- package/dist/components/FormRenderer/helpers/getNextPageId.js +24 -13
- package/dist/components/FormRenderer/helpers/getNextPageId.test.js +67 -67
- package/dist/components/FormRenderer/helpers/getPage.js +4 -2
- package/dist/components/FormRenderer/helpers/getPage.test.js +11 -11
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +9 -7
- 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 +97 -103
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.js +60 -62
- package/dist/components/FormRenderer/helpers/getUpdatedSectionStates.test.js +78 -71
- package/dist/components/FormRenderer/helpers/index.js +1 -1
- package/dist/components/FormRenderer/onCYAAction.js +51 -59
- package/dist/components/FormRenderer/onCYAAction.test.js +152 -164
- package/dist/components/FormRenderer/onPageAction.js +39 -43
- package/dist/components/FormRenderer/onPageAction.test.js +208 -223
- package/dist/components/FormRenderer/onTaskAction.js +13 -9
- package/dist/components/FormRenderer/onTaskAction.test.js +88 -93
- package/dist/components/PageActions/ActionButton.js +15 -12
- package/dist/components/PageActions/ActionButton.test.js +78 -56
- package/dist/components/PageActions/PageActions.js +10 -10
- package/dist/components/PageActions/PageActions.test.js +115 -86
- package/dist/components/SummaryList/GroupAction.js +17 -9
- package/dist/components/SummaryList/GroupAction.test.js +33 -37
- package/dist/components/SummaryList/RowAction.js +16 -11
- package/dist/components/SummaryList/RowAction.test.js +33 -37
- package/dist/components/SummaryList/SummaryList.js +34 -21
- package/dist/components/SummaryList/SummaryList.scss +15 -0
- package/dist/components/SummaryList/SummaryList.test.js +226 -143
- package/dist/components/SummaryList/SummaryListHeadingRow.js +4 -6
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.js +53 -0
- package/dist/components/SummaryList/SummaryListHeadingRowWithAction.scss +38 -0
- package/dist/components/SummaryList/SummaryListRow.js +4 -6
- package/dist/components/SummaryList/SummaryListTitleRow.js +3 -5
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +5 -3
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +22 -22
- package/dist/components/SummaryList/helpers/getRowActionAttributes.js +5 -3
- 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 +29 -19
- package/dist/components/TaskList/Task.test.js +76 -83
- package/dist/components/TaskList/TaskList.js +92 -49
- package/dist/components/TaskList/TaskList.scss +24 -0
- package/dist/components/TaskList/TaskList.test.js +255 -113
- package/dist/components/TaskList/TaskState.js +5 -7
- package/dist/components/TaskList/TaskState.test.js +45 -52
- package/dist/components/index.js +7 -7
- package/dist/context/HooksContext/HooksContext.js +80 -57
- package/dist/context/HooksContext/HooksContext.test.js +35 -26
- package/dist/context/HooksContext/index.js +4 -3
- package/dist/context/ValidationContext/ValidationContext.js +94 -43
- package/dist/context/ValidationContext/ValidationContext.test.js +68 -56
- package/dist/context/ValidationContext/index.js +4 -3
- package/dist/context/index.js +2 -2
- package/dist/hooks/index.js +10 -9
- package/dist/hooks/useAxios.js +40 -14
- package/dist/hooks/useGetRequest.js +97 -61
- package/dist/hooks/useHooks.js +3 -1
- package/dist/hooks/useRefData.js +39 -26
- package/dist/hooks/useValidation.js +3 -1
- package/dist/index.js +14 -13
- 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 +38 -44
- package/dist/models/TaskStates.js +28 -29
- package/dist/models/index.js +9 -9
- package/dist/setupTests.js +31 -30
- package/dist/utils/CheckYourAnswers/getCYAAction.js +5 -5
- package/dist/utils/CheckYourAnswers/getCYAAction.test.js +54 -52
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.js +25 -15
- package/dist/utils/CheckYourAnswers/getCYACollectionChangeAction.test.js +35 -33
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.js +31 -17
- package/dist/utils/CheckYourAnswers/getCYACollectionDeleteAction.test.js +44 -42
- package/dist/utils/CheckYourAnswers/getCYARow.js +6 -6
- package/dist/utils/CheckYourAnswers/getCYARow.test.js +86 -86
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.js +24 -18
- package/dist/utils/CheckYourAnswers/getCYARowForGroup.test.js +16 -15
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +36 -33
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.test.js +61 -58
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.js +108 -87
- package/dist/utils/CheckYourAnswers/getCYARowsForCollectionPage.test.js +281 -162
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.js +20 -25
- package/dist/utils/CheckYourAnswers/getCYARowsForContainer.test.js +97 -103
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.js +18 -13
- package/dist/utils/CheckYourAnswers/getCYARowsForPage.test.js +76 -70
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.js +42 -0
- package/dist/utils/CheckYourAnswers/getSummaryListRowForDetails.test.js +56 -0
- package/dist/utils/CheckYourAnswers/index.js +1 -1
- package/dist/utils/CheckYourAnswers/showComponentCYA.js +4 -4
- package/dist/utils/CheckYourAnswers/showComponentCYA.test.js +25 -25
- package/dist/utils/CollectionPage/addCollectionPageEntry.js +2 -2
- package/dist/utils/CollectionPage/addCollectionPageEntry.test.js +5 -5
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.js +2 -2
- package/dist/utils/CollectionPage/duplicateCollectionPageActiveEntry.test.js +18 -17
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.js +22 -12
- package/dist/utils/CollectionPage/duplicateCollectionPageEntry.test.js +38 -47
- package/dist/utils/CollectionPage/getCollectionPageActiveId.js +2 -2
- package/dist/utils/CollectionPage/getCollectionPageActiveId.test.js +10 -10
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.js +11 -7
- package/dist/utils/CollectionPage/getCollectionPageActiveIndex.test.js +22 -22
- package/dist/utils/CollectionPage/getCollectionPageData.js +12 -8
- package/dist/utils/CollectionPage/getCollectionPageData.test.js +19 -19
- package/dist/utils/CollectionPage/getErrorsForCollection.js +24 -24
- package/dist/utils/CollectionPage/getErrorsForCollection.test.js +22 -20
- package/dist/utils/CollectionPage/getQuickEditPage.js +31 -35
- package/dist/utils/CollectionPage/getQuickEditPage.test.js +27 -15
- package/dist/utils/CollectionPage/index.js +1 -1
- package/dist/utils/CollectionPage/mergeCollectionPages.js +43 -31
- package/dist/utils/CollectionPage/mergeCollectionPages.test.js +26 -26
- package/dist/utils/CollectionPage/removeCollectionPageEntry.js +6 -4
- package/dist/utils/CollectionPage/removeCollectionPageEntry.test.js +10 -10
- package/dist/utils/CollectionPage/setCollectionPageData.js +16 -10
- package/dist/utils/CollectionPage/setCollectionPageData.test.js +24 -24
- package/dist/utils/Component/addShowWhen.js +8 -4
- package/dist/utils/Component/addShowWhen.test.js +37 -37
- package/dist/utils/Component/applyToComponentTree.js +18 -18
- package/dist/utils/Component/applyToComponentTree.test.js +32 -27
- package/dist/utils/Component/cleanAttributes.js +13 -10
- package/dist/utils/Component/cleanAttributes.test.js +18 -17
- package/dist/utils/Component/elevateNestedComponents.js +7 -6
- package/dist/utils/Component/elevateNestedComponents.test.js +68 -30
- package/dist/utils/Component/getComponent.js +94 -88
- package/dist/utils/Component/getComponentTests/getComponent.autocomplete.test.js +17 -18
- package/dist/utils/Component/getComponentTests/getComponent.calculation.test.js +59 -46
- package/dist/utils/Component/getComponentTests/getComponent.checkboxes.test.js +48 -39
- package/dist/utils/Component/getComponentTests/getComponent.date.test.js +33 -23
- package/dist/utils/Component/getComponentTests/getComponent.details.test.js +18 -20
- package/dist/utils/Component/getComponentTests/getComponent.email.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.file.test.js +25 -20
- package/dist/utils/Component/getComponentTests/getComponent.heading.test.js +9 -10
- package/dist/utils/Component/getComponentTests/getComponent.html.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.insetText.test.js +8 -9
- package/dist/utils/Component/getComponentTests/getComponent.list.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.multifile.test.js +26 -22
- package/dist/utils/Component/getComponentTests/getComponent.nested.test.js +175 -155
- package/dist/utils/Component/getComponentTests/getComponent.paragraph.test.js +15 -17
- package/dist/utils/Component/getComponentTests/getComponent.phoneNumber.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.radios.test.js +72 -57
- package/dist/utils/Component/getComponentTests/getComponent.select.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.text.test.js +22 -17
- package/dist/utils/Component/getComponentTests/getComponent.textArea.test.js +38 -31
- package/dist/utils/Component/getComponentTests/getComponent.time.test.js +29 -20
- package/dist/utils/Component/getComponentTests/getComponent.unknown.test.js +2 -2
- package/dist/utils/Component/getComponentTests/getComponent.warningText.test.js +8 -9
- package/dist/utils/Component/getDefaultValue.js +8 -6
- package/dist/utils/Component/getDefaultValue.test.js +12 -12
- package/dist/utils/Component/getDefaultValueFromConfig.js +21 -22
- package/dist/utils/Component/getDefaultValueFromConfig.test.js +31 -31
- package/dist/utils/Component/index.js +1 -1
- package/dist/utils/Component/isEditable.js +4 -2
- package/dist/utils/Component/isEditable.test.js +15 -14
- package/dist/utils/Component/optionIsSelected.js +6 -1
- package/dist/utils/Component/optionIsSelected.test.js +35 -9
- package/dist/utils/Component/setupContainerComponentsPath.js +29 -27
- 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 +25 -16
- package/dist/utils/Condition/meetsCondition.test.js +402 -402
- package/dist/utils/Condition/meetsOneCondition.js +5 -5
- package/dist/utils/Condition/meetsOneCondition.test.js +16 -16
- package/dist/utils/Condition/setupConditions.js +18 -13
- package/dist/utils/Condition/setupConditions.test.js +7 -7
- package/dist/utils/Container/getEditableComponents.js +5 -3
- package/dist/utils/Container/getEditableComponents.test.js +45 -43
- package/dist/utils/Container/index.js +1 -1
- package/dist/utils/Container/setupNesting.js +20 -16
- package/dist/utils/Container/setupNesting.test.js +30 -27
- package/dist/utils/Container/showContainer.js +7 -3
- package/dist/utils/Container/showContainer.test.js +30 -30
- package/dist/utils/Data/applyFormula.js +48 -38
- package/dist/utils/Data/applyFormula.test.js +20 -20
- package/dist/utils/Data/getAutocompleteSource.js +26 -18
- package/dist/utils/Data/getAutocompleteSource.test.js +86 -80
- package/dist/utils/Data/getDataPath.js +28 -18
- package/dist/utils/Data/getDataPath.test.js +12 -12
- package/dist/utils/Data/getOptions.js +30 -24
- package/dist/utils/Data/getOptions.test.js +27 -27
- package/dist/utils/Data/getSourceData.js +19 -6
- package/dist/utils/Data/getSourceData.test.js +80 -84
- package/dist/utils/Data/index.js +1 -1
- package/dist/utils/Data/nestInRefdataOptions.js +16 -9
- package/dist/utils/Data/nestInRefdataOptions.test.js +16 -16
- package/dist/utils/Data/refDataToOptions.js +13 -10
- package/dist/utils/Data/refDataToOptions.test.js +19 -19
- package/dist/utils/Data/setDataItem.js +8 -7
- package/dist/utils/Data/setDataItem.test.js +37 -37
- package/dist/utils/Data/setupFormData.js +21 -13
- package/dist/utils/Data/setupFormData.test.js +50 -51
- package/dist/utils/Data/setupRefDataUrlForComponent.js +26 -20
- package/dist/utils/Data/setupRefDataUrlForComponent.test.js +24 -24
- package/dist/utils/FormPage/applyConditionalProperties.js +9 -5
- package/dist/utils/FormPage/applyConditionalProperties.test.js +18 -15
- package/dist/utils/FormPage/getConditionalText.js +3 -3
- package/dist/utils/FormPage/getConditionalText.test.js +29 -29
- package/dist/utils/FormPage/getFormPage.js +16 -15
- package/dist/utils/FormPage/getFormPage.test.js +46 -47
- package/dist/utils/FormPage/getFormPages.js +12 -7
- package/dist/utils/FormPage/getFormPages.test.js +23 -20
- package/dist/utils/FormPage/getPageActions.js +15 -9
- package/dist/utils/FormPage/getPageActions.test.js +32 -32
- package/dist/utils/FormPage/getParagraphFromText.js +7 -5
- package/dist/utils/FormPage/getParagraphFromText.test.js +6 -6
- package/dist/utils/FormPage/index.js +4 -2
- package/dist/utils/FormPage/showFormPage.js +7 -3
- 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 +28 -21
- package/dist/utils/FormPage/useComponent.test.js +79 -77
- package/dist/utils/Format/formatData.js +1 -1
- package/dist/utils/Format/formatData.test.js +18 -18
- package/dist/utils/Format/formatDataForComponent.js +6 -5
- package/dist/utils/Format/formatDataForComponent.test.js +78 -50
- package/dist/utils/Format/formatDataForForm.js +8 -6
- package/dist/utils/Format/formatDataForForm.test.js +16 -13
- package/dist/utils/Format/formatDataForPage.js +5 -4
- package/dist/utils/Format/formatDataForPage.test.js +25 -20
- package/dist/utils/Format/index.js +1 -1
- package/dist/utils/Hub/getFormHub.js +1 -1
- package/dist/utils/Hub/getFormHub.test.js +31 -28
- 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 +16 -24
- package/dist/utils/Meta/documents/index.js +1 -1
- package/dist/utils/Meta/documents/setDocumentsForField.js +16 -14
- package/dist/utils/Meta/documents/setDocumentsForField.test.js +34 -68
- 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 +52 -46
- package/dist/utils/Operate/getLength.js +50 -0
- package/dist/utils/Operate/getLength.test.js +89 -0
- package/dist/utils/Operate/index.js +1 -1
- package/dist/utils/Operate/persistValueInFormData.js +3 -3
- package/dist/utils/Operate/persistValueInFormData.test.js +20 -22
- package/dist/utils/Operate/runPageOperations.js +9 -7
- package/dist/utils/Operate/runPageOperations.test.js +36 -35
- 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 +27 -21
- 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 +11 -7
- package/dist/utils/Validate/additional/mustBeEarlierDateTime.test.js +41 -37
- 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 +4 -4
- package/dist/utils/Validate/additional/mustBeUniqueInCollection.test.js +39 -35
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.js +2 -2
- package/dist/utils/Validate/additional/mustEnterAtLeastOne.test.js +16 -14
- 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 +4 -3
- 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 +26 -28
- package/dist/utils/Validate/additional/utils.js +22 -9
- package/dist/utils/Validate/index.js +1 -1
- package/dist/utils/Validate/validateCollection.js +25 -19
- package/dist/utils/Validate/validateCollection.test.js +66 -74
- package/dist/utils/Validate/validateComponent.js +21 -18
- package/dist/utils/Validate/validateComponent.test.js +176 -166
- package/dist/utils/Validate/validateContainer.js +20 -15
- package/dist/utils/Validate/validateContainer.test.js +52 -58
- package/dist/utils/Validate/validateDate.js +21 -15
- package/dist/utils/Validate/validateDate.test.js +32 -31
- package/dist/utils/Validate/validateEmail.js +8 -6
- package/dist/utils/Validate/validateEmail.test.js +25 -25
- package/dist/utils/Validate/validateMultifile.js +7 -5
- package/dist/utils/Validate/validateMultifile.test.js +18 -17
- package/dist/utils/Validate/validatePage.js +22 -19
- package/dist/utils/Validate/validatePage.test.js +203 -215
- package/dist/utils/Validate/validateRegex.js +5 -3
- package/dist/utils/Validate/validateRegex.test.js +14 -14
- package/dist/utils/Validate/validateRequired.js +6 -4
- package/dist/utils/Validate/validateRequired.test.js +18 -18
- package/dist/utils/Validate/validateTextArea.js +6 -4
- package/dist/utils/Validate/validateTextArea.test.js +20 -20
- package/dist/utils/Validate/validateTime.js +26 -11
- package/dist/utils/Validate/validateTime.test.js +62 -16
- package/dist/utils/index.js +9 -7
- package/package.json +2 -2
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.js +0 -37
- package/dist/utils/CheckYourAnswers/getComponentRowForCYA.test.js +0 -41
|
@@ -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', function () {
|
|
8
|
+
var DATA = {
|
|
9
9
|
alpha: 'Alpha',
|
|
10
10
|
bravo: 'Bravo'
|
|
11
11
|
};
|
|
12
|
-
|
|
12
|
+
var HTML = {
|
|
13
13
|
type: 'html',
|
|
14
14
|
tagName: 'p',
|
|
15
15
|
content: 'Alpha'
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
var INSET_TEXT = {
|
|
18
18
|
type: 'inset-text',
|
|
19
19
|
content: 'Bravo'
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
var 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', function () {
|
|
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', function () {
|
|
30
|
+
var CONTAINER = {
|
|
31
31
|
show_when: {
|
|
32
32
|
field: 'charlie',
|
|
33
33
|
op: '=',
|
|
@@ -36,8 +36,8 @@ describe('utils.Container.showContainer', () => {
|
|
|
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', function () {
|
|
40
|
+
var CONTAINER = {
|
|
41
41
|
show_when: [{
|
|
42
42
|
field: 'alpha',
|
|
43
43
|
op: '=',
|
|
@@ -50,8 +50,8 @@ describe('utils.Container.showContainer', () => {
|
|
|
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', function () {
|
|
54
|
+
var CONTAINER = {
|
|
55
55
|
show_when: {
|
|
56
56
|
field: 'alpha',
|
|
57
57
|
op: '=',
|
|
@@ -60,8 +60,8 @@ describe('utils.Container.showContainer', () => {
|
|
|
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', function () {
|
|
64
|
+
var CONTAINER = {
|
|
65
65
|
show_when: [{
|
|
66
66
|
field: 'alpha',
|
|
67
67
|
op: '=',
|
|
@@ -74,14 +74,14 @@ describe('utils.Container.showContainer', () => {
|
|
|
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', function () {
|
|
78
|
+
var 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', function () {
|
|
84
|
+
var TEXT = {
|
|
85
85
|
type: 'text',
|
|
86
86
|
show_when: {
|
|
87
87
|
field: 'charlie',
|
|
@@ -89,7 +89,7 @@ describe('utils.Container.showContainer', () => {
|
|
|
89
89
|
value: 'Charlie'
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
|
-
|
|
92
|
+
var RADIOS = {
|
|
93
93
|
type: 'radios',
|
|
94
94
|
show_when: {
|
|
95
95
|
field: 'charlie',
|
|
@@ -97,13 +97,13 @@ describe('utils.Container.showContainer', () => {
|
|
|
97
97
|
value: 'Charlie'
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
|
-
|
|
100
|
+
var 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', function () {
|
|
106
|
+
var TEXT = {
|
|
107
107
|
type: 'text',
|
|
108
108
|
show_when: {
|
|
109
109
|
field: 'alpha',
|
|
@@ -111,7 +111,7 @@ describe('utils.Container.showContainer', () => {
|
|
|
111
111
|
value: 'Alpha'
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
|
-
|
|
114
|
+
var RADIOS = {
|
|
115
115
|
type: 'radios',
|
|
116
116
|
show_when: {
|
|
117
117
|
field: 'charlie',
|
|
@@ -119,13 +119,13 @@ describe('utils.Container.showContainer', () => {
|
|
|
119
119
|
value: 'Charlie'
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
|
-
|
|
122
|
+
var 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', function () {
|
|
128
|
+
var CONTAINER = {
|
|
129
129
|
show_when: {
|
|
130
130
|
"type": "or",
|
|
131
131
|
"conditions": [{
|
|
@@ -141,8 +141,8 @@ describe('utils.Container.showContainer', () => {
|
|
|
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', function () {
|
|
145
|
+
var CONTAINER = {
|
|
146
146
|
show_when: {
|
|
147
147
|
"type": "or",
|
|
148
148
|
"conditions": [{
|
|
@@ -158,8 +158,8 @@ describe('utils.Container.showContainer', () => {
|
|
|
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', function () {
|
|
162
|
+
var CONTAINER = {
|
|
163
163
|
show_when: {
|
|
164
164
|
"type": "or",
|
|
165
165
|
"conditions": [{
|
|
@@ -5,13 +5,15 @@ 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
|
-
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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); } /* eslint-disable no-use-before-define, prefer-exponentiation-operator, no-restricted-properties */ // Global imports
|
|
14
|
+
var applyFormula = function applyFormula(config) {
|
|
13
15
|
try {
|
|
14
|
-
|
|
16
|
+
var result = simplify(config);
|
|
15
17
|
return !result && result !== 0 ? '' : result;
|
|
16
18
|
} catch (err) {
|
|
17
19
|
// eslint-disable-next-line no-console
|
|
@@ -19,67 +21,72 @@ const applyFormula = config => {
|
|
|
19
21
|
}
|
|
20
22
|
return '';
|
|
21
23
|
};
|
|
22
|
-
|
|
24
|
+
var simplify = function simplify(config) {
|
|
23
25
|
if (!config || !config.formula) {
|
|
24
26
|
throw new Error("Missing 'formula' definition");
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
name
|
|
28
|
-
} = {
|
|
29
|
-
...config.formula
|
|
30
|
-
};
|
|
28
|
+
var _config$formula = _objectSpread({}, config.formula),
|
|
29
|
+
name = _config$formula.name;
|
|
31
30
|
switch (name) {
|
|
32
31
|
case 'multiply':
|
|
33
|
-
return reduceNumber(config, (t, c)
|
|
32
|
+
return reduceNumber(config, function (t, c) {
|
|
33
|
+
return t * c;
|
|
34
|
+
});
|
|
34
35
|
case 'divide':
|
|
35
|
-
return reduceNumber(config, (t, c)
|
|
36
|
+
return reduceNumber(config, function (t, c) {
|
|
37
|
+
return t / c;
|
|
38
|
+
});
|
|
36
39
|
case 'plus':
|
|
37
|
-
return reduceNumber(config, (t, c)
|
|
40
|
+
return reduceNumber(config, function (t, c) {
|
|
41
|
+
return t + c;
|
|
42
|
+
});
|
|
38
43
|
case 'minus':
|
|
39
|
-
return reduceNumber(config, (t, c)
|
|
44
|
+
return reduceNumber(config, function (t, c) {
|
|
45
|
+
return t - c;
|
|
46
|
+
});
|
|
40
47
|
default:
|
|
41
48
|
throw new Error(!name ? "Calculation formula 'name' cannot be empty" : "Unsupported operation '".concat(name, "'"));
|
|
42
49
|
}
|
|
43
50
|
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
args
|
|
47
|
-
} = {
|
|
48
|
-
...config.formula
|
|
49
|
-
};
|
|
51
|
+
var reduceNumber = function reduceNumber(config, reduction) {
|
|
52
|
+
var _config$formula2 = _objectSpread({}, config.formula),
|
|
53
|
+
args = _config$formula2.args;
|
|
50
54
|
if (args.length < 2) {
|
|
51
55
|
throw new Error('Requires more than one argument for calculation');
|
|
52
56
|
}
|
|
53
|
-
return round(args.map(
|
|
57
|
+
return round(args.map(function (a) {
|
|
58
|
+
return getValue(a, config.formData);
|
|
59
|
+
}).reduce(function (total, current, index) {
|
|
60
|
+
return index === 0 ? current : reduction(total, current);
|
|
61
|
+
}, 0), config);
|
|
54
62
|
};
|
|
55
|
-
|
|
56
|
-
|
|
63
|
+
var round = function round(number, config) {
|
|
64
|
+
var roundNumber = config.formula.round;
|
|
57
65
|
if (!roundNumber && roundNumber !== 0 || !number) return number;
|
|
58
66
|
if (roundNumber === 0) {
|
|
59
67
|
return parseInt(number, 10);
|
|
60
68
|
}
|
|
61
|
-
|
|
69
|
+
var precisionScale = Math.pow(10, roundNumber);
|
|
62
70
|
return Math.round((number + Number.EPSILON) * precisionScale) / precisionScale;
|
|
63
71
|
};
|
|
64
|
-
|
|
65
|
-
|
|
72
|
+
var getValue = function getValue(arg, formData) {
|
|
73
|
+
var keys = Object.keys(arg);
|
|
66
74
|
if (keys.length === 1) {
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
var key = keys[0];
|
|
76
|
+
var val = arg[key];
|
|
69
77
|
switch (key) {
|
|
70
78
|
case 'field':
|
|
71
79
|
{
|
|
72
|
-
|
|
80
|
+
var fieldVal = fieldValue(val, formData);
|
|
73
81
|
return !fieldVal && fieldVal !== 0 ? NaN : parseFloat(fieldVal);
|
|
74
82
|
}
|
|
75
83
|
;
|
|
76
84
|
case 'value':
|
|
77
85
|
return parseFloat(val);
|
|
78
86
|
case 'formula':
|
|
79
|
-
return applyFormula({
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
});
|
|
87
|
+
return applyFormula(_objectSpread(_objectSpread({}, arg), {}, {
|
|
88
|
+
formData: formData
|
|
89
|
+
}));
|
|
83
90
|
default:
|
|
84
91
|
throw new Error('Only accept following as argument field: {field, value, or formula}');
|
|
85
92
|
}
|
|
@@ -87,7 +94,10 @@ const getValue = (arg, formData) => {
|
|
|
87
94
|
throw new Error('Argument cannot have more than one reference');
|
|
88
95
|
}
|
|
89
96
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
var fieldValue = function fieldValue(field, data) {
|
|
98
|
+
return (
|
|
99
|
+
// eslint-disable-next-line prefer-template
|
|
100
|
+
_copReactComponents.Utils.interpolateString('${' + field + '}', data)
|
|
101
|
+
);
|
|
102
|
+
};
|
|
93
103
|
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', function () {
|
|
8
|
+
var error = jest.spyOn(console, 'error').mockImplementation(function () {});
|
|
9
|
+
afterAll(function () {
|
|
10
10
|
error.mockReset();
|
|
11
11
|
});
|
|
12
|
-
afterEach(()
|
|
12
|
+
afterEach(function () {
|
|
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', function () {
|
|
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'", function () {
|
|
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'", function () {
|
|
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'", function () {
|
|
30
30
|
(0, _applyFormula.default)({
|
|
31
31
|
formula: {
|
|
32
32
|
name: "something"
|
|
@@ -34,7 +34,7 @@ describe('utils.Data.applyFormula', () => {
|
|
|
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", function () {
|
|
38
38
|
(0, _applyFormula.default)({
|
|
39
39
|
formula: {
|
|
40
40
|
name: 'plus',
|
|
@@ -47,7 +47,7 @@ describe('utils.Data.applyFormula', () => {
|
|
|
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", function () {
|
|
51
51
|
(0, _applyFormula.default)({
|
|
52
52
|
formula: {
|
|
53
53
|
name: 'plus',
|
|
@@ -61,7 +61,7 @@ describe('utils.Data.applyFormula', () => {
|
|
|
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", function () {
|
|
65
65
|
(0, _applyFormula.default)({
|
|
66
66
|
formula: {
|
|
67
67
|
name: 'plus',
|
|
@@ -72,7 +72,7 @@ describe('utils.Data.applyFormula', () => {
|
|
|
72
72
|
});
|
|
73
73
|
expect(error).toBeCalledWith('Requires more than one argument for calculation');
|
|
74
74
|
});
|
|
75
|
-
|
|
75
|
+
var DATA = {
|
|
76
76
|
fieldA: '10',
|
|
77
77
|
fieldB: '20',
|
|
78
78
|
fieldC: 'abc',
|
|
@@ -137,9 +137,9 @@ describe('utils.Data.applyFormula', () => {
|
|
|
137
137
|
field: 'fieldE'
|
|
138
138
|
}],
|
|
139
139
|
result: 2000
|
|
140
|
-
}].forEach(test
|
|
141
|
-
it("should calculate formula '".concat(test.name, "' correctly for field args to '").concat(test.result, "'"), ()
|
|
142
|
-
|
|
140
|
+
}].forEach(function (test) {
|
|
141
|
+
it("should calculate formula '".concat(test.name, "' correctly for field args to '").concat(test.result, "'"), function () {
|
|
142
|
+
var config = {
|
|
143
143
|
formData: DATA,
|
|
144
144
|
formula: {
|
|
145
145
|
name: test.name,
|
|
@@ -214,9 +214,9 @@ describe('utils.Data.applyFormula', () => {
|
|
|
214
214
|
fieldB: 'G3',
|
|
215
215
|
round: 1,
|
|
216
216
|
result: ''
|
|
217
|
-
}].forEach(test
|
|
218
|
-
it("should calculdate and round result to precision ".concat(test.round), ()
|
|
219
|
-
|
|
217
|
+
}].forEach(function (test) {
|
|
218
|
+
it("should calculdate and round result to precision ".concat(test.round), function () {
|
|
219
|
+
var config = {
|
|
220
220
|
formData: {
|
|
221
221
|
fieldA: test.fieldA,
|
|
222
222
|
fieldB: test.fieldB
|
|
@@ -234,8 +234,8 @@ describe('utils.Data.applyFormula', () => {
|
|
|
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'", function () {
|
|
238
|
+
var 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, val
|
|
14
|
+
var getAutocompleteSource = function getAutocompleteSource(config) {
|
|
15
|
+
var options = [];
|
|
16
|
+
(0, _getOptions.default)(config, function (val) {
|
|
17
17
|
options = val;
|
|
18
18
|
});
|
|
19
|
-
|
|
20
|
-
return (query, populateResults)
|
|
21
|
-
|
|
19
|
+
var labelMaker = config !== null && config !== void 0 && config.item ? _copReactComponents.Utils.itemLabel(config.item) : null;
|
|
20
|
+
return function (query, populateResults) {
|
|
21
|
+
var lcQuery = query ? query.toLowerCase() : '';
|
|
22
22
|
|
|
23
23
|
// go through all options and give them a grade
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
var results = options.map(function (opt) {
|
|
26
|
+
var label = labelMaker ? labelMaker(opt) : opt.label || '';
|
|
27
|
+
var lcLabel = label.toLowerCase();
|
|
28
28
|
|
|
29
29
|
// result 'score'
|
|
30
|
-
|
|
30
|
+
var grade = 0;
|
|
31
31
|
|
|
32
32
|
// highest result - match at start of string
|
|
33
|
-
|
|
33
|
+
var index = lcLabel.indexOf(lcQuery);
|
|
34
34
|
if (index === 0) {
|
|
35
35
|
grade = 1;
|
|
36
36
|
} else if (index > 0) {
|
|
@@ -38,13 +38,15 @@ const getAutocompleteSource = config => {
|
|
|
38
38
|
} else {
|
|
39
39
|
var _config$item;
|
|
40
40
|
if (opt.synonyms) {
|
|
41
|
-
|
|
41
|
+
var match = opt.synonyms.some(function (synonym) {
|
|
42
|
+
return synonym.toLowerCase().includes(lcQuery);
|
|
43
|
+
});
|
|
42
44
|
if (match) {
|
|
43
45
|
grade = 4;
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
if (!grade && (_config$item = config.item) !== null && _config$item !== void 0 && _config$item.extraFieldsToSearch) {
|
|
47
|
-
|
|
49
|
+
var found = config.item.extraFieldsToSearch.some(function (field) {
|
|
48
50
|
if (typeof opt[field] !== 'string') {
|
|
49
51
|
return false;
|
|
50
52
|
}
|
|
@@ -54,16 +56,22 @@ const getAutocompleteSource = config => {
|
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
return {
|
|
57
|
-
grade,
|
|
58
|
-
label,
|
|
59
|
-
opt
|
|
59
|
+
grade: grade,
|
|
60
|
+
label: label,
|
|
61
|
+
opt: opt
|
|
60
62
|
};
|
|
61
|
-
}).filter(
|
|
63
|
+
}).filter(function (result) {
|
|
64
|
+
return result.grade > 0;
|
|
65
|
+
});
|
|
62
66
|
|
|
63
67
|
// sort results and then map to just opts
|
|
64
68
|
populateResults(results
|
|
65
69
|
// the sort prioritises grade but also sorts by string value
|
|
66
|
-
.sort((r1, r2)
|
|
70
|
+
.sort(function (r1, r2) {
|
|
71
|
+
return (r1.grade - r2.grade) * 16 + r1.label.localeCompare(r2.label);
|
|
72
|
+
}).map(function (r) {
|
|
73
|
+
return r.opt;
|
|
74
|
+
}));
|
|
67
75
|
};
|
|
68
76
|
};
|
|
69
77
|
var _default = exports.default = getAutocompleteSource;
|